{"version":3,"file":"static/js/index.be2fdc07.js","sources":["webpack://@jotforminc/academy/../../configs/tracking-config/src/index.js","webpack://@jotforminc/academy/../../../../src/icons/general/bars.svg","webpack://@jotforminc/academy/../../libs/header-body/src/assets/svg/arrow.svg","webpack://@jotforminc/academy/../../libs/header-body/src/assets/svg/hipaa.svg","webpack://@jotforminc/academy/../../libs/header-body/src/assets/svg/government.svg","webpack://@jotforminc/academy/../../libs/header-body/src/assets/svg/logoJotformDark.svg","webpack://@jotforminc/academy/../../libs/header-body/src/assets/svg/logoJotformLight.svg","webpack://@jotforminc/academy/../../libs/header-body/src/assets/svg/logoJotformFullLight.svg","webpack://@jotforminc/academy/../../libs/header-body/src/assets/svg/logoJotformKoreanDark.svg","webpack://@jotforminc/academy/../../libs/header-body/src/assets/svg/logoJotformKoreanLight.svg","webpack://@jotforminc/academy/../../libs/header-body/src/assets/svg/logoJotformKoreanFullLight.svg","webpack://@jotforminc/academy/../../../../src/icons/general/location-pin-filled.svg","webpack://@jotforminc/academy/../../libs/header/src/components/Providers/HeaderProvider.js","webpack://@jotforminc/academy/./src/assets/svg/academy-logo-dark.svg","webpack://@jotforminc/academy/./src/assets/svg/academy-logo-light.svg","webpack://@jotforminc/academy/../../../../src/icons/media/triangle-circle-filled.svg","webpack://@jotforminc/academy/./src/assets/timeline/watched.svg","webpack://@jotforminc/academy/./src/assets/timeline/half-watched.svg","webpack://@jotforminc/academy/./src/assets/timeline/check.svg","webpack://@jotforminc/academy/../../../../src/icons/editor/arrow-pointer-click-filled.svg","webpack://@jotforminc/academy/../../../../src/icons/general/trash-filled.svg","webpack://@jotforminc/academy/../../../../src/icons/time-date/clock-filled.svg","webpack://@jotforminc/academy/./src/assets/courses-cards/logo.svg","webpack://@jotforminc/academy/./src/assets/hero/left.svg","webpack://@jotforminc/academy/./src/assets/hero/right.svg","webpack://@jotforminc/academy/../../../../src/icons/time-date/alarm-clock-check-filled.svg","webpack://@jotforminc/academy/./src/assets/landing/check.svg","webpack://@jotforminc/academy/./src/assets/landing/icons/badge.svg","webpack://@jotforminc/academy/./src/assets/landing/icons/course.svg","webpack://@jotforminc/academy/./src/assets/cer.svg","webpack://@jotforminc/academy/../../../../src/icons/arrows/arrow-rotate-right.svg","webpack://@jotforminc/academy/../../../../src/icons/general/circle-lg-filled.svg","webpack://@jotforminc/academy/./src/assets/player/play.svg","webpack://@jotforminc/academy/./src/assets/player/pip.svg","webpack://@jotforminc/academy/./src/assets/player/mute.svg","webpack://@jotforminc/academy/./src/assets/player/pause.svg","webpack://@jotforminc/academy/./src/assets/player/volume.svg","webpack://@jotforminc/academy/./src/assets/player/subtitle.svg","webpack://@jotforminc/academy/./src/assets/player/fullscreen.svg","webpack://@jotforminc/academy/./src/assets/player/playbackRate.svg","webpack://@jotforminc/academy/./src/assets/my-courses/playIcon.svg","webpack://@jotforminc/academy/./src/assets/player/play-circle-opacity.svg","webpack://@jotforminc/academy/./src/assets/landing/icons/logo-mark-filled.svg","webpack://@jotforminc/academy/./src/assets/landing/icons/message-filled.svg","webpack://@jotforminc/academy/./src/assets/landing/icons/mingcute_certificate-fill.svg","webpack://@jotforminc/academy/../../../../src/icons/brand/facebook-circle-filled.svg","webpack://@jotforminc/academy/../../../../src/icons/brand/twitter.svg","webpack://@jotforminc/academy/../../../../src/icons/brand/linkedin-filled.svg","webpack://@jotforminc/academy/../../../../src/icons/general/copy-filled.svg","webpack://@jotforminc/academy/../../../../src/icons/general/xmark-circle.svg","webpack://@jotforminc/academy/../../../../src/icons/general/share-nodes-filled.svg","webpack://@jotforminc/academy/./src/assets/certificates-quiz.svg","webpack://@jotforminc/academy/../../../../src/icons/time-date/alarm-clock-filled.svg","webpack://@jotforminc/academy/../../../../src/icons/general/magnifying-glass-minus.svg","webpack://@jotforminc/academy/../../../../src/icons/general/magnifying-glass-plus.svg","webpack://@jotforminc/academy/../../../../src/icons/editor/list-bullet.svg","webpack://@jotforminc/academy/../../../../src/icons/general/question-circle-filled.svg","webpack://@jotforminc/academy/./src/assets/landing/icons/enroll.svg","webpack://@jotforminc/academy/./src/assets/landing/icons/take-a-course.svg","webpack://@jotforminc/academy/./src/assets/landing/icons/certificate.svg","webpack://@jotforminc/academy/./src/assets/landing/icons/get-a-course-badge.svg","webpack://@jotforminc/academy/./src/assets/landing/qnote.svg","webpack://@jotforminc/academy/../../../../src/icons/arrows/chevron-up.svg","webpack://@jotforminc/academy/../../../../src/icons/general/ellipsis-vertical.svg","webpack://@jotforminc/academy/../../../../src/icons/general/link-diagonal.svg","webpack://@jotforminc/academy/./src/assets/certificates.svg","webpack://@jotforminc/academy/./src/assets/my-courses/placeholder/logo.svg","webpack://@jotforminc/academy/./src/assets/my-courses/placeholder/badge.svg","webpack://@jotforminc/academy/./src/assets/my-courses/my-certificates/empty-certificates.svg","webpack://@jotforminc/academy/./src/assets/my-courses/my-certificates/empty-badge.svg","webpack://@jotforminc/academy/./src/assets/my-courses/wishlist/empty.svg","webpack://@jotforminc/academy/./src/assets/my-courses/course-progress/empty.svg","webpack://@jotforminc/academy/../../../../src/icons/general/plus.svg","webpack://@jotforminc/academy/../../../../src/icons/arrows/arrows-rotate.svg","webpack://@jotforminc/academy/../../libs/router-bridge/src/init.js","webpack://@jotforminc/academy/../../libs/tracking/src/init.ts","webpack://@jotforminc/academy/./src/store/actionTypes.js","webpack://@jotforminc/academy/./src/store/reducers/ui.js","webpack://@jotforminc/academy/./src/store/reducers/user.js","webpack://@jotforminc/academy/../../libs/utils/src/gtm.js","webpack://@jotforminc/academy/./src/api/requestLayer.js","webpack://@jotforminc/academy/./src/api/index.js","webpack://@jotforminc/academy/./src/constants/index.js","webpack://@jotforminc/academy/./src/utils/index.js","webpack://@jotforminc/academy/./src/store/reducers/player.js","webpack://@jotforminc/academy/./src/store/reducers/course.js","webpack://@jotforminc/academy/./src/sagas/main/ui.js","webpack://@jotforminc/academy/./src/store/actionCreators.js","webpack://@jotforminc/academy/./src/sagas/main/user.js","webpack://@jotforminc/academy/./src/store/selectors.js","webpack://@jotforminc/academy/./src/sagas/main/course.js","webpack://@jotforminc/academy/./src/sagas/main/actions.js","webpack://@jotforminc/academy/./src/sagas/root/index.js","webpack://@jotforminc/academy/./src/sagas/main/player.js","webpack://@jotforminc/academy/./src/store/store.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/PreLoaders/LoginGroupPreLoader.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/PreLoaders/PreLoaders.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/Navigation/HamburgerButton.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/Sc/ScHeaderNavigation.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/Navigation/Navigation.js","webpack://@jotforminc/academy/../../libs/constants/src/commonHeader/texts.js","webpack://@jotforminc/academy/../../libs/constants/src/commonHeader/templatesNavItem.js","webpack://@jotforminc/academy/../../libs/constants/src/commonHeader/integrationsNavItem.js","webpack://@jotforminc/academy/../../libs/constants/src/commonHeader/productsNavItem.js","webpack://@jotforminc/academy/../../libs/constants/src/commonHeader/supportNavItem.js","webpack://@jotforminc/academy/../../libs/constants/src/commonHeader/index.js","webpack://@jotforminc/academy/../../libs/constants/src/commonHeader/myFromsNavItem.js","webpack://@jotforminc/academy/../../libs/constants/src/commonHeader/enterpriseNavItem.js","webpack://@jotforminc/academy/../../libs/constants/src/commonHeader/pricingsNavItem.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/Navigation/NavItemBadge.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/MenuTypes/SignMenuType.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Banners/Product/DedicatedSupportSection.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Banners/Product/ProfessionalServicesBanner.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/MenuTypes/SupportMenuType.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/MenuTypes/DefaultMenuType.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/MenuTypes/ProductsMenuType.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/MenuTypes/PdfEditorMenuType.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/MenuTypes/TemplatesMenuType.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/MenuTypes/IntegrationsMenuType.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/Navigation/NavLink.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/Navigation/NavItem.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/Navigation/NavItems.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/Navigation/SignupButtonMobile.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/LogoGroup/LogoBadge.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/LogoGroup/SideLink.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/LogoGroup/LogoVisual.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/LogoGroup/Logo.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/LogoGroup/LogoGroup.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/Sc/ScHeaderWrapper.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/Sc/ScHeaderContainer.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/Sc/ScHeader.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/Sc/ScLogoWrapper.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/Navigation/ContactSalesMobile.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/HeaderBody/HeaderBody.js","webpack://@jotforminc/academy/../../libs/header/src/utils/abTests/languageSwitcherTest.js","webpack://@jotforminc/academy/../../libs/header/src/components/Providers/ModeProvider.js","webpack://@jotforminc/academy/../../libs/magnet/src/components/Dropdown/dropdown.types.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Dropdown/dropdown.cva.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Tag/tag.cva.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Tag/tag.types.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Tag/Tag.tsx","webpack://@jotforminc/academy/../../libs/magnet/src/components/Dropdown/Dropdown.tsx","webpack://@jotforminc/academy/../../libs/magnet/src/components/Dropdown/DropdownOption.tsx","webpack://@jotforminc/academy/../../libs/header/src/components/LanguageSwitcher.js","webpack://@jotforminc/academy/../../libs/header/src/assets/svg/notifications/close.svg","webpack://@jotforminc/academy/../../libs/header/src/components/DeletedFormNotification.js","webpack://@jotforminc/academy/../../libs/header/src/components/Header.js","webpack://@jotforminc/academy/./src/components/Sidebar/index.js","webpack://@jotforminc/academy/./src/components/Breadcrumbs/index.js","webpack://@jotforminc/academy/./src/components/ScrollHandler/index.js","webpack://@jotforminc/academy/./src/components/CourseCardItem/index.js","webpack://@jotforminc/academy/./src/components/Search/index.js","webpack://@jotforminc/academy/./src/components/Header/Hero.js","webpack://@jotforminc/academy/./src/components/VideoPlayerWrapper/countdown.js","webpack://@jotforminc/academy/../../libs/apploaders/src/Container/index.js","webpack://@jotforminc/academy/../../libs/apploaders/src/Circle/index.js","webpack://@jotforminc/academy/./src/components/VideoPlayerWrapper/PlaybackRateInput/index.js","webpack://@jotforminc/academy/./src/components/VideoPlayer/index.js","webpack://@jotforminc/academy/./src/components/VideoPlayerWrapper/index.js","webpack://@jotforminc/academy/./src/components/CoursePreviewModal.js","webpack://@jotforminc/academy/./src/components/Heading/Maintitle.js","webpack://@jotforminc/academy/./src/components/Heading/Subtitle.js","webpack://@jotforminc/academy/./src/components/Modal/index.js","webpack://@jotforminc/academy/./src/components/CenterVideoSection/index.js","webpack://@jotforminc/academy/./src/components/pages/MyCourses/CourseRequestForm.js","webpack://@jotforminc/academy/./src/components/Landing/infobox/index.js","webpack://@jotforminc/academy/./src/components/CertificateDisclaimer.js","webpack://@jotforminc/academy/./src/components/InfoBoxSection.js","webpack://@jotforminc/academy/./src/components/pages/CoursesHomepage.js","webpack://@jotforminc/academy/./src/constants/meta.js","webpack://@jotforminc/academy/./src/components/Tabmenu/index.js","webpack://@jotforminc/academy/./src/components/QuizViewer/ExitQuizModal.js","webpack://@jotforminc/academy/./src/hooks/index.js","webpack://@jotforminc/academy/./src/components/QuizViewer/CooldownCountDown.js","webpack://@jotforminc/academy/./src/components/QuizViewer/CertificateViewer.js","webpack://@jotforminc/academy/./src/components/QuizViewer/CreateCertificateWizard.js","webpack://@jotforminc/academy/../../libs/magnet/src/components/Modal/ModalHeader.tsx","webpack://@jotforminc/academy/../../libs/magnet/src/components/Modal/ModalActions.tsx","webpack://@jotforminc/academy/./src/components/CommonModal/index.js","webpack://@jotforminc/academy/./src/components/QuizViewer/index.js","webpack://@jotforminc/academy/./src/components/CourseContentViewer/index.js","webpack://@jotforminc/academy/./src/components/CourseNotFoundHandler/index.js","webpack://@jotforminc/academy/./src/history.js","webpack://@jotforminc/academy/./src/components/Landing/Infocard/index.js","webpack://@jotforminc/academy/./src/components/Landing/Testimonials/index.js","webpack://@jotforminc/academy/./src/components/pages/Landing.js","webpack://@jotforminc/academy/../../libs/drawer/src/utils/index.js","webpack://@jotforminc/academy/../../libs/drawer/src/components/MenuComponents/MenuItemSubheader.js","webpack://@jotforminc/academy/../../libs/drawer/src/components/MenuComponents/MenuItemButton.js","webpack://@jotforminc/academy/../../libs/drawer/src/components/MenuComponents/MenuItemIcon.js","webpack://@jotforminc/academy/../../libs/drawer/src/components/MenuComponents/MenuItemTitle.js","webpack://@jotforminc/academy/../../libs/drawer/src/components/MenuComponents/MenuItemBadge.js","webpack://@jotforminc/academy/../../libs/drawer/src/components/MenuComponents/MenuItemShortcut.js","webpack://@jotforminc/academy/../../libs/drawer/src/components/MenuComponents/MenuItem.js","webpack://@jotforminc/academy/../../libs/drawer/src/components/MenuComponents/MenuList.js","webpack://@jotforminc/academy/../../libs/drawer/src/components/MenuComponents/MenuDivider.js","webpack://@jotforminc/academy/../../libs/context-menu/src/components/ContextMenu.js","webpack://@jotforminc/academy/./src/components/pages/MyCourses/MyCertificates.js","webpack://@jotforminc/academy/./src/components/pages/MyCourses/Wishlist.js","webpack://@jotforminc/academy/./src/components/MyCourses/Completed/Card/index.js","webpack://@jotforminc/academy/./src/components/MyCourses/ContinueLearning/Card/index.js","webpack://@jotforminc/academy/./src/components/MyCourses/ContinueLearning/Card/Subcard.js","webpack://@jotforminc/academy/./src/components/pages/MyCourses/MyLearningStatus.js","webpack://@jotforminc/academy/./src/components/pages/MyCourses/index.js","webpack://@jotforminc/academy/./src/components/pages/Faq/index.js","webpack://@jotforminc/academy/./src/components/pages/CertificateVerification/index.js","webpack://@jotforminc/academy/./src/index.js","webpack://@jotforminc/academy/./src/App.js","webpack://@jotforminc/academy/../../libs/abtest-manager/src/utils/utils.js","webpack://@jotforminc/academy/../../libs/abtest-manager/src/utils/ABTestVariantCache.js","webpack://@jotforminc/academy/../../libs/abtest-manager/src/utils/layer.js","webpack://@jotforminc/academy/../../libs/abtest-manager/src/utils/ABTestManager.js","webpack://@jotforminc/academy/../../libs/abtest-manager/src/utils/ActionManager.js","webpack://@jotforminc/academy/../../libs/constants/src/commonHeader/menuTypes.js","webpack://@jotforminc/academy/../../libs/enterprise-utils/src/helpers.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/api/index.js","webpack://@jotforminc/academy/../../../../src/icons/communication/message-ellipsis-pencil-filled.svg","webpack://@jotforminc/academy/../../libs/ep-utils/src/hooks/useHubspotTracker.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/components/FeedbackForm.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/components/PrefilledLeadFormAside.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/constants/assetIdentifier/index.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/constants/assetIdentifier/abTest.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/constants/assetIdentifier/campaign.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/constants/assetIdentifier/product.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/constants/assetIdentifier/automation.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/constants/assetIdentifier/webinar.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/constants/constants.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/constants/gaAdFormTrackingItems .js","webpack://@jotforminc/academy/../../libs/ep-utils/src/constants/gaFormTrackingItems.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/constants/leadFormMap.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/constants/leadFormModifiers.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/constants/propTypes.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/constants/sdrSources.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/constants/texts.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/constants/urls.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/utils/googleAnalyticsTracking.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/utils/prefilledFormUtils.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/utils/utils.js","webpack://@jotforminc/academy/../../../src/components/GrowthAssetManager.js","webpack://@jotforminc/academy/../../../src/components/GrowthAssetRenderer.js","webpack://@jotforminc/academy/../../../src/context/AssetManagerContext.js","webpack://@jotforminc/academy/../../../src/utils/namings.js","webpack://@jotforminc/academy/../../../../../src/components/assets/assetList/_46__46__47__46__46__47_assets_47_campaigns_47__42__42__47__42__46_js","webpack://@jotforminc/academy/../../../../../src/components/assets/assetList/_46__46__47__46__46__47_assets_47_promotions_47__42__42__47__42__46_js","webpack://@jotforminc/academy/../../../../../src/components/assets/assetList/_46__46__47__46__46__47_assets_47_launches_47__42__42__47__42__46_js","webpack://@jotforminc/academy/../../../../../src/components/assets/assetList/_46__46__47__46__46__47_assets_47_announcements_47__42__42__47__42__46_js","webpack://@jotforminc/academy/../../../src/utils/campaign.js","webpack://@jotforminc/academy/../../libs/header-body/src/components/AccountBoxAvatar/AccountBoxAvatar.js","webpack://@jotforminc/academy/../../libs/header-body/src/constants/constants.js","webpack://@jotforminc/academy/../../libs/header-body/src/propTypes/propTypes.js","webpack://@jotforminc/academy/../../libs/header-body/src/utils/utils.js","webpack://@jotforminc/academy/../../libs/header/src/components/Providers/JotformActionsProvider.js","webpack://@jotforminc/academy/../../libs/header/src/components/Providers/MobileMenuProvider.js","webpack://@jotforminc/academy/../../libs/header/src/components/Providers/UserProvider.js","webpack://@jotforminc/academy/../../libs/header/src/constants/constants.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/assets/svg/close_revised.svg","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/assets/svg/generalFaqProfessionalServicesBanner/rocket.svg","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/assets/svg/userGuideProfessionalServices/rocket.svg","webpack://@jotforminc/academy/../../../../src/icons/general/rocket-square-filled.svg","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/assets/svg/enterpriseRocketMini.svg","webpack://@jotforminc/academy/../../../../src/logos/brand/jotform-color.svg","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/assets/svg/blogDownloadBanner/visual.svg","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/assets/svg/advertisementLeadFlowModal/close.svg","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/assets/svg/advertisementLeadFlowModal/visual.svg","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/assets/svg/advertisementLeadFlowBanner/rocket.svg","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/assets/svg/advertisementLeadFlowBanner/visual.svg","webpack://@jotforminc/academy/../../libs/onboarding/src/assets/svg/jfLogo.svg","webpack://@jotforminc/academy/../../libs/onboarding/src/assets/svg/lineV2.svg","webpack://@jotforminc/academy/../../libs/onboarding/src/assets/svg/user.svg","webpack://@jotforminc/academy/../../libs/onboarding/src/assets/svg/email.svg","webpack://@jotforminc/academy/../../libs/onboarding/src/assets/svg/organization.svg","webpack://@jotforminc/academy/../../../../src/icons/arrows/angle-left.svg","webpack://@jotforminc/academy/../../../../src/icons/arrows/angle-right.svg","webpack://@jotforminc/academy/../../libs/onboarding/src/assets/svg/logo.svg","webpack://@jotforminc/academy/../../../../src/icons/users/users-more-filled.svg","webpack://@jotforminc/academy/../../../../src/icons/general/building.svg","webpack://@jotforminc/academy/../../libs/header/src/hooks/useUser.js","webpack://@jotforminc/academy/../../libs/header/src/hooks/useStickyHeader.js","webpack://@jotforminc/academy/../../libs/header/src/hooks/useLazyLoginGroup.js","webpack://@jotforminc/academy/../../libs/header/src/hooks/useIsMobileScreen.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/utils/renderModal.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Modals/Campaign/EttEducationReportModal/Renderers.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Modals/Campaign/EttEducationReportModal/EducationReportModal.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Modals/Campaign/EttEducationReportModal/EttEducationGatedContentModal.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/helpers/renderEttEducationGatedContentModal.js","webpack://@jotforminc/academy/../../libs/header/src/enterprisePromotions/epEttGatedContentModal/initEpEttGatedContentModal.js","webpack://@jotforminc/academy/../../libs/ep-utils/src/utils/renderAsset.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Modals/Campaign/HealthcareReportModal/Renderers.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Modals/Campaign/HealthcareReportModal/HealthcareReportModal.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/helpers/renderHealthcareReportModal.js","webpack://@jotforminc/academy/../../libs/header/src/enterprisePromotions/epHealthcareReportModal/enabledPages.js","webpack://@jotforminc/academy/../../libs/header/src/enterprisePromotions/epHealthcareReportModal/initEpHealthcareReportModal.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Banners/Product/GeneralFaqProfessionalServicesBanner.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Banners/Product/UserGuideProfessionalServicesBanner.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/helpers/renderProfServicesAsset.js","webpack://@jotforminc/academy/../../libs/header/src/enterprisePromotions/epProfessionalServices/initEpProfessionalServices.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Modals/AbTest/EducationDiscountModal/Renderers.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Modals/AbTest/EducationDiscountModal/EducationDiscountModal.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Banners/Product/BlogEducationSideBanner.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/helpers/renderFerpaBanner.js","webpack://@jotforminc/academy/../../libs/header/src/enterprisePromotions/epFerpaBanner/initEpFerpaBanner.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Modals/Product/PdfDownloadModal/Renderers.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Modals/Product/PdfDownloadModal/PdfDownloadModal.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Banners/Product/BlogDownloadBanner.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/helpers/renderBlogCaseStudies.js","webpack://@jotforminc/academy/../../libs/header/src/enterprisePromotions/epCaseStudyAssets/caseStudies.js","webpack://@jotforminc/academy/../../libs/header/src/enterprisePromotions/epCaseStudyAssets/index.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Modals/AbTest/AdvertisementLeadFlowModal/Renderers.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Modals/AbTest/AdvertisementLeadFlowModal/AdvertisementLeadFlowModal.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Modals/AbTest/AdvertisementLeadFlowModal/AdSecondExitIntentModal.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Modals/AbTest/AdvertisementLeadFlowModal/AdFirstExitIntentModal.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Modals/AbTest/AdvertisementLeadFlowModal/AdBannerModal.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Banners/AbTest/AdvertisementLeadFlowBanner.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/hooks/useActionManager.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/components/Flows/AbTest/AdvertisementLeadFlow/AdvertisementLeadFlow.js","webpack://@jotforminc/academy/../../libs/enterprise-promotions/src/helpers/renderAdvertisementLeadFlow.js","webpack://@jotforminc/academy/../../libs/header/src/enterprisePromotions/epAdLeadFlowBlogPosts/blogPosts.js","webpack://@jotforminc/academy/../../libs/header/src/enterprisePromotions/epAdLeadFlowBlogPosts/index.js","webpack://@jotforminc/academy/../../libs/onboarding/src/utils/utils.js","webpack://@jotforminc/academy/../../libs/onboarding/src/constants/constants.js","webpack://@jotforminc/academy/../../libs/onboarding/src/utils/api.js","webpack://@jotforminc/academy/../../libs/onboarding/src/constants/texts.js","webpack://@jotforminc/academy/../../libs/onboarding/src/utils/fullstory.js","webpack://@jotforminc/academy/../../libs/onboarding/src/hooks/useLogAbTestAction.js","webpack://@jotforminc/academy/../../libs/onboarding/src/hooks/useFullstory.js","webpack://@jotforminc/academy/../../libs/onboarding/src/contexts/EpOnboadingProvider.js","webpack://@jotforminc/academy/../../libs/onboarding/src/constants/contents.js","webpack://@jotforminc/academy/../../libs/onboarding/src/components/InfoCard.js","webpack://@jotforminc/academy/../../libs/onboarding/src/components/Content-V2.js","webpack://@jotforminc/academy/../../libs/onboarding/src/constants/actionData.js","webpack://@jotforminc/academy/../../libs/magnet/src/components/Radio/radio.cva.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Radio/radio.types.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Radio/Radio.tsx","webpack://@jotforminc/academy/../../libs/onboarding/src/components/EpOnboardingSteps/Questions.js","webpack://@jotforminc/academy/../../libs/onboarding/src/components/EpOnboardingSteps/index.js","webpack://@jotforminc/academy/../../libs/onboarding/src/components/EpOnboardingSteps/UsageTierStep.js","webpack://@jotforminc/academy/../../libs/onboarding/src/components/EpOnboardingSteps/IndustryStep.js","webpack://@jotforminc/academy/../../libs/onboarding/src/components/EpOnboardingSteps/OrganizationInfoStep.js","webpack://@jotforminc/academy/../../libs/onboarding/src/components/EpOnboardingSteps/JobRoleStep.js","webpack://@jotforminc/academy/../../libs/onboarding/src/components/AllSteps.js","webpack://@jotforminc/academy/../../libs/onboarding/src/OnboardingV2.js","webpack://@jotforminc/academy/../../libs/onboarding/src/initEpOnboarding.js","webpack://@jotforminc/academy/../../libs/header/src/enterprisePromotions/epOnboardingProgress/epOnboardingProgress.js","webpack://@jotforminc/academy/../../libs/header/src/hooks/useEnterprisePromotions.js","webpack://@jotforminc/academy/../../libs/header/src/hooks/useLazyIntegrationImages.js","webpack://@jotforminc/academy/../../libs/header/src/utils/dom.js","webpack://@jotforminc/academy/../../libs/header/src/utils/api.js","webpack://@jotforminc/academy/../../libs/header/src/utils/date.js","webpack://@jotforminc/academy/../../libs/header/src/utils/browser.js","webpack://@jotforminc/academy/../../libs/header/src/utils/jotform.js","webpack://@jotforminc/academy/../../libs/header/src/utils/loginFlow/customRedirects.js","webpack://@jotforminc/academy/../../libs/header/src/utils/scriptLoaders/loadByApplyingLazyIgnoredElements.js","webpack://@jotforminc/academy/../../libs/header/src/utils/scriptLoaders/loadAfter.js","webpack://@jotforminc/academy/../../libs/header/src/utils/scriptLoaders/loadAndInsertAsFirstScript.js","webpack://@jotforminc/academy/../../libs/header/src/utils/loginFlow/loadLoginFlow.js","webpack://@jotforminc/academy/../../libs/header/src/utils/ActionManager.js","webpack://@jotforminc/academy/../../libs/header/src/utils/loginFlow/openLoginFlow.js","webpack://@jotforminc/academy/../../libs/header/src/utils/loginFlow/attachLoginFlowOpenerToWindow.js","webpack://@jotforminc/academy/../../libs/header/src/utils/loginFlow/toggleSignupLoaders.js","webpack://@jotforminc/academy/../../libs/header/src/utils/loginFlow/createSocialTermsFlow.js","webpack://@jotforminc/academy/../../libs/header/src/utils/loginFlow/initGoogleOneTap.js","webpack://@jotforminc/academy/../../libs/header/src/utils/loginFlow/listenAppSignInOnFailure.js","webpack://@jotforminc/academy/../../libs/header/src/utils/loginFlow/openSocialLoginFlow.js","webpack://@jotforminc/academy/../../libs/header/src/utils/loginFlow/attachLoginFlowToTrioButtons.js","webpack://@jotforminc/academy/../../libs/header/src/utils/loginFlow/initLoginFlowTrioButtons.js","webpack://@jotforminc/academy/../../libs/header/src/utils/loginFlow/attachObsoleteSignupLoadingFunctionToWindow.js","webpack://@jotforminc/academy/../../libs/header/src/utils/yieldToMain.js","webpack://@jotforminc/academy/../../libs/header/src/utils/jotCookie.js","webpack://@jotforminc/academy/../../libs/loading/src/components/Loading.js","webpack://@jotforminc/academy/../../libs/router-bridge/src/jfrouter.js","webpack://@jotforminc/academy/../../libs/storage-helper/src/constants.js","webpack://@jotforminc/academy/../../libs/storage-helper/src/index.js","webpack://@jotforminc/academy/../../../../src/icons/arrows/angle-down.svg","webpack://@jotforminc/academy/../../../../src/icons/arrows/arrow-down-to-line.svg","webpack://@jotforminc/academy/../../../../src/icons/arrows/arrow-right.svg","webpack://@jotforminc/academy/../../../../src/icons/arrows/chevron-down.svg","webpack://@jotforminc/academy/../../../../src/icons/arrows/chevron-left.svg","webpack://@jotforminc/academy/../../../../src/icons/arrows/chevron-right.svg","webpack://@jotforminc/academy/../../../../src/icons/general/check-circle-filled.svg","webpack://@jotforminc/academy/../../../../src/icons/general/check-circle.svg","webpack://@jotforminc/academy/../../../../src/icons/general/check.svg","webpack://@jotforminc/academy/../../../../src/icons/general/exclamation-circle.svg","webpack://@jotforminc/academy/../../../../src/icons/general/info-circle-filled.svg","webpack://@jotforminc/academy/../../../../src/icons/general/magnifying-glass.svg","webpack://@jotforminc/academy/../../../../src/icons/general/minus.svg","webpack://@jotforminc/academy/../../../../src/icons/general/xmark-sm.svg","webpack://@jotforminc/academy/../../../../src/icons/general/xmark.svg","webpack://@jotforminc/academy/../../../../src/icons/security/lock-filled.svg","webpack://@jotforminc/academy/../../../../src/icons/users/user-filled.svg","webpack://@jotforminc/academy/../../libs/translation/src/constants/index.js","webpack://@jotforminc/academy/../../libs/translation/src/hof.js","webpack://@jotforminc/academy/../../libs/translation/src/domHelper.js","webpack://@jotforminc/academy/../../libs/translation/src/Translation.js","webpack://@jotforminc/academy/../../libs/translation/src/utils.js","webpack://@jotforminc/academy/../../libs/translation/src/index.js","webpack://@jotforminc/academy/../../libs/translation/src/global.js","webpack://@jotforminc/academy/../../libs/uikit/src/components/Modal/index.js","webpack://@jotforminc/academy/../../libs/uikit/src/components/Portal/index.js","webpack://@jotforminc/academy/../../libs/uikit/src/utils/constants.js","webpack://@jotforminc/academy/../../libs/uikit/src/utils/hooks.js","webpack://@jotforminc/academy/../../libs/uikit/src/utils/index.js","webpack://@jotforminc/academy/../../libs/utils/src/cookies.js","webpack://@jotforminc/academy/../../libs/utils/src/data.js","webpack://@jotforminc/academy/../../libs/utils/src/dom.js","webpack://@jotforminc/academy/../../libs/constants/src/platforms/index.js","webpack://@jotforminc/academy/../../libs/feature-flag/src/components/FeatureFlag/FeatureFlag.js","webpack://@jotforminc/academy/../../libs/utils/src/platform/platform.js","webpack://@jotforminc/academy/../../libs/utils/src/validation.js","webpack://@jotforminc/academy/../../libs/magnet/src/components/Button/button.cva.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Button/button.types.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Button/ButtonContent.tsx","webpack://@jotforminc/academy/../../libs/magnet/src/components/Loader/loader.cva.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Loader/loader.types.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Loader/Loader.tsx","webpack://@jotforminc/academy/../../libs/magnet/src/components/Button/Button.tsx","webpack://@jotforminc/academy/../../libs/magnet/src/components/Checkbox/checkbox.cva.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Checkbox/checkbox.types.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Checkbox/Checkbox.tsx","webpack://@jotforminc/academy/../../libs/magnet/src/components/Indicator/indicator.cva.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Indicator/Indicator.tsx","webpack://@jotforminc/academy/../../libs/magnet/src/components/Indicator/indicator.types.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Input/input.cva.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Input/BaseInput.tsx","webpack://@jotforminc/academy/../../libs/magnet/src/components/Input/InputText.tsx","webpack://@jotforminc/academy/../../libs/magnet/src/components/Input/input.types.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/ColorPicker/color-picker.types.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Modal/Modal.tsx","webpack://@jotforminc/academy/../../libs/magnet/src/components/Modal/ModalBody.tsx","webpack://@jotforminc/academy/../../libs/magnet/src/components/Modal/modal.cva.ts","webpack://@jotforminc/academy/../../libs/magnet/src/components/Modal/modal.types.ts","webpack://@jotforminc/academy/../../libs/magnet/src/constants/common.cva.ts","webpack://@jotforminc/academy/../../libs/magnet/src/constants/common.values.ts","webpack://@jotforminc/academy/../../libs/magnet/src/contexts/index.tsx","webpack://@jotforminc/academy/../../libs/magnet/src/shared/ChoiceLabel/choice-label.cva.ts","webpack://@jotforminc/academy/../../libs/magnet/src/shared/ChoiceLabel/ChoiceLabel.tsx","webpack://@jotforminc/academy/../../libs/magnet/src/shared/ChoiceLabel/choice-label.types.ts","webpack://@jotforminc/academy/../../libs/magnet/src/tokens/colors/primary.ts","webpack://@jotforminc/academy/../../libs/magnet/src/tokens/colors/secondary.ts","webpack://@jotforminc/academy/../../libs/magnet/src/utils/index.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/request-cache/constants.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/request-cache/utils.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/request-cache/index.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/utils/argumentParser.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/utils/constructInterceptorConfig.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/layer/interceptors/index.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/layer/interceptors/defaultInterceptors/index.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/layer/interceptors/defaultInterceptors/utils.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/layer/interceptors/defaultInterceptors/platform/salesforceInterceptors.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/layer/interceptors/defaultInterceptors/defaultInterceptors.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/utils/setInterceptors.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/layer/engines/utils.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/layer/engines/constants.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/layer/engines/AxiosEngine.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/layer/utils.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/layer/index.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/layer/interceptors/customInterceptors/index.ts","webpack://@jotforminc/academy/../../libs/request-layer/src/utils/managerUtils.ts","webpack://@jotforminc/academy/../../libs/tracking/src/utils/FullStoryManager.ts","webpack://@jotforminc/academy/../../libs/tracking/src/constants/index.ts","webpack://@jotforminc/academy/../../libs/tracking/src/utils/SentryManager.ts","webpack://@jotforminc/academy/../../libs/tracking/src/index.ts","webpack://@jotforminc/academy/../../libs/tracking/src/utils/TrackingManager.ts"],"sourcesContent":["const { window } = global;\n\nconst getSheetsDSN = () => {\n if (window?.isReport) {\n return 'https://d69c7dc71f6243c19aa8f1466c32ab5c@o61806.ingest.sentry.io/5352078';\n }\n\n if (window?.isBoards) {\n return 'https://983ae60052ddc6cf8a60dca2bfaa3b8c@o61806.ingest.sentry.io/4507571577749504';\n }\n\n // Sheets\n return 'https://23de99eacf6c4a068ba11e1a39556e6a@o61806.ingest.sentry.io/1211430';\n};\n\nconst getFSEnabledForSignFiller = () => {\n try {\n return window?.parent?.fsEnabled;\n } catch (e) {\n return false;\n }\n};\n\nmodule.exports = {\n academy: {\n sentry: {\n enable: true,\n dsn: 'https://e21856d505644c643840103d8dbd250c@o61806.ingest.sentry.io/4506626385641472'\n // name: 'academy',\n }\n },\n checkout: {\n sentry: {\n enable: true,\n dsn: 'https://ca58c76e1157458f941020590eab787c@o61806.ingest.sentry.io/4505396476641280'\n },\n fullStory: {\n enable: true\n }\n },\n 'data-dashboards': {\n sentry: {\n enable: true,\n dsn: 'https://64a93c3dc440e48a9118dc2c169351ef@o61806.ingest.us.sentry.io/4507407451160576'\n }\n },\n 'email-builder': {\n sentry: {\n enable: true,\n dsn: 'https://6625f7b197c65a4d8e49bc8e7641c8c2@o61806.ingest.us.sentry.io/4507407576465408'\n }\n },\n 'email-details': {\n sentry: {\n enable: true,\n dsn: 'https://e0a74287bf15c46b981ddad77de5d7d7@o61806.ingest.sentry.io/4505822059823104'\n },\n fullStory: {\n enable: false\n }\n },\n 'form-builder': {\n sentry: {\n enable: true,\n dsn: 'https://7b39e767f39941dd89d9361cf50382dd@o61806.ingest.sentry.io/132624',\n name: 'jotform-40'\n }\n },\n inbox: {\n sentry: {\n enable: true,\n dsn: 'https://f5fc3cd88f0744df9e3c8a263cd00db1@o61806.ingest.sentry.io/1353659'\n // name: 'inbox'\n },\n fullStory: {\n enable: window?.isFullStoryEnabled\n }\n },\n 'interview-management': {\n sentry: {\n enable: true,\n dsn: 'https://f875f9d7646f4149a6bfff821534e23b@o61806.ingest.sentry.io/4504971807162368'\n }\n },\n listings: {\n sentry: {\n enable: true,\n dsn: 'https://2c715cb8ed4745c383ff6830ca885807@o61806.ingest.sentry.io/5975209',\n name: 'listings'\n },\n fullStory: {\n enable: window?.isFullStoryEnabled\n }\n },\n myaccount: {\n sentry: {\n enable: true,\n dsn: 'https://4048665e726d45eba296f250ad4d09bb@o61806.ingest.sentry.io/6396369'\n // name: 'myaccountv4'\n },\n fullStory: {\n enable: window?.fullstoryEnabled\n }\n },\n 'page-builder': {\n sentry: {\n enable: true,\n dsn: 'https://727c1f481e28485a97e8a4ddae1bdaab@o61806.ingest.sentry.io/6179928'\n // name: 'landing-builder'\n }\n },\n 'pdf-editor': {\n sentry: {\n enable: window?.location.href.indexOf('download') < 0,\n dsn: 'https://10dcd48960b74f9e84c93bee96ee2c9e@o61806.ingest.sentry.io/1234288'\n // name: 'pdf-designer'\n },\n fullStory: {\n enable: window?.isFullStoryEnabled\n }\n },\n portal: {\n sentry: {\n enable: true,\n dsn: 'https://36d29a013f8a4bd7adfe310f5fe4d75a@o61806.ingest.sentry.io/5223511',\n name: 'app-builder'\n },\n fullStory: {\n enable: window?.fullStoryActiveForPortal\n }\n },\n 'refund-request': {\n sentry: {\n enable: true,\n dsn: 'https://c2bf244d1db8d74e25fafaf1b8f70747@o61806.ingest.sentry.io/4505786346110976'\n },\n fullStory: {\n enable: true\n }\n },\n sheets: {\n sentry: {\n enable: true,\n dsn: getSheetsDSN()\n // name: ['reports', 'spreadsheets']\n }\n },\n sign: {\n sentry: {\n enable: true,\n dsn: 'https://9b0abbc9280c47c683b8a9067f61e88e@o61806.ingest.sentry.io/5680940'\n // name: 'sign'\n },\n fullStory: {\n enable: window?.fsEnabled\n }\n },\n 'sign-filler': {\n sentry: {\n enable: true,\n dsn: 'https://1e23807c9020c755e635a09392e97b22@o61806.ingest.us.sentry.io/4507339316985856'\n },\n fullStory: {\n enable: getFSEnabledForSignFiller()\n }\n },\n 'subscription-dashboard': {\n sentry: {\n enable: true,\n dsn: 'https://75f5c88aeffd4f54964275c0fba96d59@o61806.ingest.sentry.io/6190171'\n // name: 'subscription-dashboard'\n }\n },\n workflow: {\n sentry: {\n enable: true,\n dsn: 'https://15571fc5437e4368b4e2ed0e32c6d93f@o61806.ingest.sentry.io/5261296'\n // name: 'workflow'\n },\n fullStory: {\n enable: !window?.isTemplateMode\n }\n },\n 'ai-agent': {\n sentry: {\n enable: true,\n dsn: 'https://9595e22b6185cd8e2ff3ea2fc28cc68f@o61806.ingest.us.sentry.io/4507502561001472',\n name: 'ai-agent'\n }\n },\n 'ai-agent-builder': {\n sentry: {\n enable: true,\n dsn: 'https://59098a0cef7524a00cbc88db5b10e2f5@o61806.ingest.us.sentry.io/4507883422875648'\n },\n fullStory: {\n enable: window?.fsEnabled\n }\n }\n};\n","\n \n\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgArrow = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 8 4\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.861934 0.195262C1.12228 -0.0650874 1.54439 -0.0650874 1.80474 0.195262L4 2.39052L6.19527 0.195262C6.45562 -0.0650874 6.87773 -0.0650874 7.13808 0.195262C7.39843 0.455612 7.39843 0.877722 7.13808 1.13807L4.47141 3.80474C4.21106 4.06509 3.78895 4.06509 3.5286 3.80474L0.861934 1.13807C0.601584 0.877722 0.601584 0.455612 0.861934 0.195262Z\",\n fill: \"currentColor\"\n})));\nexport default SvgArrow;","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgHipaa = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 110 133\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0C8FF2\",\n d: \"m104.8 15.2-43-13.6C57.4.2 52.6.2 48.2 1.6l-43 13.6c-2.6.8-4.4 3.3-4.4 6v16.2c0 37.1 18.1 71.9 48.5 93.2 1.6 1.2 3.7 1.8 5.6 1.8 1.9 0 4-.5 5.6-1.8C75.8 120 87.9 106 96.2 89.9c8.4-15.9 12.9-34 12.9-52.5V21.2c.3-2.7-1.5-5.2-4.3-6Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M72.8 26.1c-2.9-2.4-5-1.8-7.9 3.4-1.9 3.5-5 3.9-6.9 3.8v-.7c2.2-1.1 3.8-3.3 3.8-5.9a6.7 6.7 0 0 0-13.4 0c0 2.6 1.6 4.8 3.8 5.9v.7c-1.9.1-5-.3-6.9-3.8-2.9-5.3-5-5.8-7.9-3.4-3 2.4-14.6 16.3-28.8 15 0 0 2.8 6.4 10.5 5 0 0 4.1 4.3 10.7 1.3 0 0 3.5 3.1 9 .3 0 0 4.1 3.1 8.4.4 0 0 2.5 1.8 5.2 1.3l.2 16.1c-.3-.1-.6-.1-.9-.2 0 0-4.8-1-9.8-2.4-4.8-1.3-10.1-3.3-10.9-4.4.1-.1.2-.1.3-.2.4-.2 1.2-.5 2-.6 1.8-.4 4.2-.5 6.6-.6 4.8-.2 5.7 0 5.8.1 0-.2 2.8.3 3.5-2.5 0 0 .1-.1 0-.2-.2-1.9-1.7-2-2.9-2.3-2-.3-1-.2-3.6-.1-4.4.3-18-.8-19.7 6.4v.5c.6 6.2 13.4 8.9 22.8 10.8-3.2 2.2-4.9 5-5.5 8.6-.3 3.9 2.8 7.6 9.9 11.7-5.4 3.9-9 7.5-8.7 11.8.5 3.6 3.7 8.3 9.8 11.3 0 0-4.3-6.6-4.6-10.2-.3-2.1.9-5.2 6.2-9l.2 13.2c0 1.1.9 2 2 2s2-.9 2-2l.2-12.9c4.8 3.6 5.9 6.6 5.7 8.6-.3 3.6-4.6 10.2-4.6 10.2 6.2-3 9.3-7.8 9.8-11.3.3-4.4-3.3-8-8.7-11.8 7.2-4.1 10.2-7.8 9.9-11.7-.7-3.6-2.4-6.5-5.5-8.6 9.3-1.9 22.2-4.6 22.8-10.8v-.5C85 51.3 71.4 52.4 67 52c-2.7 0-1.6-.1-3.6.1-1.2.2-2.7.3-2.9 2.3v.2c.8 2.8 3.5 2.3 3.5 2.5.1 0 .9-.2 5.8-.1 2.4.1 4.8.3 6.6.6.9.2 1.6.4 2 .6.1.1.3.1.3.2-.8 1.1-6.1 3.1-10.9 4.4-5 1.4-9.8 2.4-9.8 2.4-.1 0-.2 0-.3.1l.2-15.9c2.8.5 5.2-1.3 5.2-1.3 4.3 2.7 8.4-.4 8.4-.4 5.5 2.8 8.9-.3 8.9-.3 6.6 3 10.7-1.3 10.7-1.3 7.7 1.4 10.5-5 10.5-5-14.3 1.3-25.9-12.6-28.8-15ZM48.7 83c-1.8-1.1-2.6-2.6-2.4-3.6.1-1.4-.4-4.7 6.2-7.2l.2 13.3c-1.3-.8-2.6-1.7-4-2.5Zm14.4-3.6c.2 1-.7 2.5-2.4 3.6-1.2.7-2.3 1.5-3.4 2.2l.2-12.7c5.9 2.3 5.5 5.5 5.6 6.9Z\"\n}))));\nexport default SvgHipaa;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgGovernment = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 20\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M8.054 11.522a2.498 2.498 0 0 0-2.515-2.506 2.538 2.538 0 0 0-2.521 2.53L3 19.49a2.498 2.498 0 0 0 2.514 2.506 2.538 2.538 0 0 0 2.522-2.531l.018-7.943Zm6.474 0a2.498 2.498 0 0 0-2.515-2.506 2.538 2.538 0 0 0-2.522 2.53l-.017 7.944a2.498 2.498 0 0 0 2.514 2.506 2.538 2.538 0 0 0 2.522-2.531l.018-7.943Zm3.959-2.506a2.498 2.498 0 0 1 2.514 2.506l-.017 7.943a2.538 2.538 0 0 1-2.522 2.53 2.498 2.498 0 0 1-2.514-2.505l.017-7.943a2.538 2.538 0 0 1 2.522-2.53Zm2.55-1.931L12.57 1.202a1 1 0 0 0-1.14 0L2.963 7.085c-.445.31-.145 1.033.39.945 2.34-.387 5.957-.902 8.646-.902 2.69 0 6.307.515 8.646.902.534.088.835-.636.39-.945Z\",\n clipRule: \"evenodd\"\n})));\nexport default SvgGovernment;","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgLogoJotformDark = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n style: {\n transform: \"translateY(-2px)\"\n },\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 167 30\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.818 6.37702L107.109 6.46019V2.40392L106.975 2.34307C106.77 2.24989 106.44 2.16554 106.06 2.10414C105.674 2.04193 105.219 2.0006 104.755 2.0006C102.949 2.0006 100.918 2.59842 99.8661 3.67542C98.8149 4.75184 98.2353 6.28607 98.2353 8.12166V8.97865H95.5949V13.635H98.2353V27.7904H103.535V13.635H107.109V8.97865H103.535V8.18607C103.535 7.36123 103.823 6.8864 104.192 6.60981C104.572 6.32452 105.072 6.22481 105.528 6.22481C106.214 6.22481 106.611 6.31799 106.818 6.37702Z\",\n fill: \"#0A1551\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M49.1243 19.174L44.0006 19.174L44.0038 19.3774C44.044 21.9596 44.9509 24.0849 46.4694 25.5739C48.0238 27.0981 50.2403 27.9765 52.8837 27.9765C58.1751 27.9765 61.8811 23.9254 61.8811 19.0812V3.94955H56.3415V18.9263C56.3415 20.0073 56.0255 20.9611 55.4188 21.6487C54.8085 22.3404 53.9252 22.7382 52.845 22.7382C51.9598 22.7382 51.1104 22.4771 50.4539 21.9162C49.7942 21.3524 49.3534 20.5062 49.254 19.3841C49.2486 19.3235 49.2216 19.2691 49.1825 19.2309L49.1243 19.174Z\",\n fill: \"#0A1551\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M116.819 9.33463C111.552 9.33463 107.563 13.2099 107.563 18.5909C107.563 23.937 111.551 27.8473 116.819 27.8473C122.087 27.8473 126.075 23.937 126.075 18.5909C126.075 13.2099 122.086 9.33463 116.819 9.33463ZM116.819 23.026C115.782 23.026 114.794 22.648 114.066 21.9163C113.34 21.1869 112.85 20.0832 112.85 18.5909C112.85 17.0808 113.34 15.9778 114.065 15.2534C114.792 14.5267 115.78 14.1559 116.819 14.1559C117.858 14.1559 118.846 14.5267 119.573 15.2534C120.297 15.9778 120.788 17.0808 120.788 18.5909C120.788 20.1011 120.297 21.2041 119.573 21.9285C118.846 22.6552 117.858 23.026 116.819 23.026Z\",\n fill: \"#0A1551\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M73.0204 9.46392C67.7533 9.46392 63.7641 13.3392 63.7641 18.7202C63.7641 24.0663 67.7524 27.9765 73.0204 27.9765C78.2884 27.9765 82.2767 24.0663 82.2767 18.7202C82.2767 13.3392 78.2875 9.46392 73.0204 9.46392ZM73.0204 23.1553C71.9832 23.1553 70.9954 22.7773 70.2672 22.0456C69.5413 21.3162 69.051 20.2125 69.051 18.7202C69.051 17.2101 69.5418 16.1071 70.2666 15.3827C70.9937 14.656 71.9812 14.2852 73.0204 14.2852C74.0595 14.2852 75.0471 14.656 75.7742 15.3827C76.499 16.1071 76.9898 17.2101 76.9898 18.7202C76.9898 20.2304 76.499 21.3334 75.7742 22.0578C75.0471 22.7845 74.0595 23.1553 73.0204 23.1553Z\",\n fill: \"#0A1551\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M145.727 27.7904H140.471V9.90995H145.521V11.3476C146.684 10.1172 148.531 9.48442 150.126 9.48442C152.315 9.48442 154.166 10.3566 155.18 12.006C155.806 11.1713 156.524 10.567 157.335 10.1596C158.287 9.68097 159.348 9.48442 160.504 9.48442C162.133 9.48442 163.752 9.97937 164.966 11.0937C166.186 12.2135 166.963 13.9253 166.963 16.2835V27.7904H161.845V17.2157C161.845 16.3511 161.633 15.6374 161.217 15.1452C160.809 14.6624 160.166 14.3473 159.198 14.3473C158.314 14.3473 157.627 14.687 157.157 15.2197C156.683 15.757 156.413 16.51 156.413 17.3538V27.7904H151.193V17.2157C151.193 16.3539 150.974 15.6397 150.553 15.1463C150.139 14.6615 149.494 14.3473 148.546 14.3473C147.64 14.3473 146.945 14.6816 146.473 15.2086C145.997 15.7402 145.727 16.4917 145.727 17.3538V27.7904Z\",\n fill: \"#0A1551\"\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M138.496 9.92466V15.2802L138.086 15.1975C137.596 15.0988 137.174 15.0662 136.783 15.0662C135.669 15.0662 134.679 15.3389 133.968 16.0015C133.262 16.6597 132.775 17.7555 132.775 19.5236V27.7899H127.534V9.90938H132.638V11.6351C133.901 10.1176 135.861 9.8228 137.091 9.8228C137.486 9.8228 137.842 9.85878 138.181 9.89296L138.496 9.92466Z\",\n fill: \"#0A1551\"\n})), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M93.9746 23.5231L93.701 23.6066C93.5069 23.6659 93.1333 23.7594 92.489 23.7594C92.0605 23.7594 91.5908 23.6593 91.2333 23.3729C90.8868 23.0952 90.6156 22.6185 90.6156 21.7905V13.6369L93.9746 13.6369V9.00224L90.6156 9.00225V3.97336H85.6457L85.6457 9.00225L83.1643 9.00225L83.1643 13.6369H85.6457V21.8551C85.6457 23.6979 86.1904 25.2382 87.1782 26.3189C88.1665 27.4001 90.065 28.0003 91.7627 28.0003C92.1985 28.0003 92.626 27.9588 92.9884 27.8963C93.3462 27.8347 93.6561 27.75 93.8488 27.6564L93.9746 27.5954V23.5231Z\",\n fill: \"#0A1551\"\n})), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.47266 28.5098C8.03906 29.0589 7.6388 29.9996 6.83452 29.9996H1.80114C0.808059 29.9996 0 29.2163 0 28.2536V23.3741C0 22.5944 0.970426 22.2064 1.53682 22.7555L7.47266 28.5098Z\",\n fill: \"#0A1551\"\n})), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.3409 28.8897C13.851 27.4096 13.851 25.0097 15.3409 23.5295L20.718 18.1875C22.2079 16.7073 24.6235 16.7073 26.1134 18.1875C27.6033 19.6677 27.6033 22.0676 26.1134 23.5478L20.7363 28.8897C19.2464 30.3699 16.8308 30.3699 15.3409 28.8897Z\",\n fill: \"#FFB629\"\n})), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.135 15.4667C-0.354897 13.9865 -0.354896 11.5867 1.135 10.1065L10.184 1.11014C11.6739 -0.370046 14.0895 -0.370048 15.5794 1.11014C17.0693 2.59033 17.0693 4.99019 15.5794 6.47038L6.5304 15.4667C5.0405 16.9469 2.6249 16.9469 1.135 15.4667Z\",\n fill: \"#0099FF\"\n})), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.5324 21.8782C7.0425 20.398 7.0425 17.9982 8.5324 16.518L20.7592 4.37085C22.2491 2.89067 24.6647 2.89066 26.1546 4.37085C27.6445 5.85104 27.6445 8.2509 26.1546 9.73109L13.9278 21.8782C12.4379 23.3584 10.0223 23.3584 8.5324 21.8782Z\",\n fill: \"#FF6100\"\n})));\nexport default SvgLogoJotformDark;","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgLogoJotformLight = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n style: {\n transform: \"translateY(-2px)\"\n },\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 167 30\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.818 6.37702L107.109 6.46019V2.40392L106.975 2.34307C106.77 2.24989 106.44 2.16554 106.06 2.10414C105.674 2.04193 105.219 2.0006 104.755 2.0006C102.949 2.0006 100.918 2.59842 99.8661 3.67542C98.8149 4.75184 98.2353 6.28607 98.2353 8.12166V8.97865H95.5949V13.635H98.2353V27.7904H103.535V13.635H107.109V8.97865H103.535V8.18607C103.535 7.36123 103.823 6.8864 104.192 6.60981C104.572 6.32452 105.072 6.22481 105.528 6.22481C106.214 6.22481 106.611 6.31799 106.818 6.37702Z\",\n fill: \"#FFFFFF\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M49.1243 19.174L44.0006 19.174L44.0038 19.3774C44.044 21.9596 44.9509 24.0849 46.4694 25.5739C48.0238 27.0981 50.2403 27.9765 52.8837 27.9765C58.1751 27.9765 61.8811 23.9254 61.8811 19.0812V3.94955H56.3415V18.9263C56.3415 20.0073 56.0255 20.9611 55.4188 21.6487C54.8085 22.3404 53.9252 22.7382 52.845 22.7382C51.9598 22.7382 51.1104 22.4771 50.4539 21.9162C49.7942 21.3524 49.3534 20.5062 49.254 19.3841C49.2486 19.3235 49.2216 19.2691 49.1825 19.2309L49.1243 19.174Z\",\n fill: \"#FFFFFF\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M116.819 9.33463C111.552 9.33463 107.563 13.2099 107.563 18.5909C107.563 23.937 111.551 27.8473 116.819 27.8473C122.087 27.8473 126.075 23.937 126.075 18.5909C126.075 13.2099 122.086 9.33463 116.819 9.33463ZM116.819 23.026C115.782 23.026 114.794 22.648 114.066 21.9163C113.34 21.1869 112.85 20.0832 112.85 18.5909C112.85 17.0808 113.34 15.9778 114.065 15.2534C114.792 14.5267 115.78 14.1559 116.819 14.1559C117.858 14.1559 118.846 14.5267 119.573 15.2534C120.297 15.9778 120.788 17.0808 120.788 18.5909C120.788 20.1011 120.297 21.2041 119.573 21.9285C118.846 22.6552 117.858 23.026 116.819 23.026Z\",\n fill: \"#FFFFFF\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M73.0204 9.46392C67.7533 9.46392 63.7641 13.3392 63.7641 18.7202C63.7641 24.0663 67.7524 27.9765 73.0204 27.9765C78.2884 27.9765 82.2767 24.0663 82.2767 18.7202C82.2767 13.3392 78.2875 9.46392 73.0204 9.46392ZM73.0204 23.1553C71.9832 23.1553 70.9954 22.7773 70.2672 22.0456C69.5413 21.3162 69.051 20.2125 69.051 18.7202C69.051 17.2101 69.5418 16.1071 70.2666 15.3827C70.9937 14.656 71.9812 14.2852 73.0204 14.2852C74.0595 14.2852 75.0471 14.656 75.7742 15.3827C76.499 16.1071 76.9898 17.2101 76.9898 18.7202C76.9898 20.2304 76.499 21.3334 75.7742 22.0578C75.0471 22.7845 74.0595 23.1553 73.0204 23.1553Z\",\n fill: \"#FFFFFF\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M145.727 27.7904H140.471V9.90995H145.521V11.3476C146.684 10.1172 148.531 9.48442 150.126 9.48442C152.315 9.48442 154.166 10.3566 155.18 12.006C155.806 11.1713 156.524 10.567 157.335 10.1596C158.287 9.68097 159.348 9.48442 160.504 9.48442C162.133 9.48442 163.752 9.97937 164.966 11.0937C166.186 12.2135 166.963 13.9253 166.963 16.2835V27.7904H161.845V17.2157C161.845 16.3511 161.633 15.6374 161.217 15.1452C160.809 14.6624 160.166 14.3473 159.198 14.3473C158.314 14.3473 157.627 14.687 157.157 15.2197C156.683 15.757 156.413 16.51 156.413 17.3538V27.7904H151.193V17.2157C151.193 16.3539 150.974 15.6397 150.553 15.1463C150.139 14.6615 149.494 14.3473 148.546 14.3473C147.64 14.3473 146.945 14.6816 146.473 15.2086C145.997 15.7402 145.727 16.4917 145.727 17.3538V27.7904Z\",\n fill: \"#FFFFFF\"\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M138.496 9.92466V15.2802L138.086 15.1975C137.596 15.0988 137.174 15.0662 136.783 15.0662C135.669 15.0662 134.679 15.3389 133.968 16.0015C133.262 16.6597 132.775 17.7555 132.775 19.5236V27.7899H127.534V9.90938H132.638V11.6351C133.901 10.1176 135.861 9.8228 137.091 9.8228C137.486 9.8228 137.842 9.85878 138.181 9.89296L138.496 9.92466Z\",\n fill: \"#FFFFFF\"\n})), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M93.9746 23.5231L93.701 23.6066C93.5069 23.6659 93.1333 23.7594 92.489 23.7594C92.0605 23.7594 91.5908 23.6593 91.2333 23.3729C90.8868 23.0952 90.6156 22.6185 90.6156 21.7905V13.6369L93.9746 13.6369V9.00224L90.6156 9.00225V3.97336H85.6457L85.6457 9.00225L83.1643 9.00225L83.1643 13.6369H85.6457V21.8551C85.6457 23.6979 86.1904 25.2382 87.1782 26.3189C88.1665 27.4001 90.065 28.0003 91.7627 28.0003C92.1985 28.0003 92.626 27.9588 92.9884 27.8963C93.3462 27.8347 93.6561 27.75 93.8488 27.6564L93.9746 27.5954V23.5231Z\",\n fill: \"#FFFFFF\"\n})), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.47266 28.5098C8.03906 29.0589 7.6388 29.9996 6.83452 29.9996H1.80114C0.808059 29.9996 0 29.2163 0 28.2536V23.3741C0 22.5944 0.970426 22.2064 1.53682 22.7555L7.47266 28.5098Z\",\n fill: \"#FFFFFF\"\n})), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.3409 28.8897C13.851 27.4096 13.851 25.0097 15.3409 23.5295L20.718 18.1875C22.2079 16.7073 24.6235 16.7073 26.1134 18.1875C27.6033 19.6677 27.6033 22.0676 26.1134 23.5478L20.7363 28.8897C19.2464 30.3699 16.8308 30.3699 15.3409 28.8897Z\",\n fill: \"#FFB629\"\n})), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.135 15.4667C-0.354897 13.9865 -0.354896 11.5867 1.135 10.1065L10.184 1.11014C11.6739 -0.370046 14.0895 -0.370048 15.5794 1.11014C17.0693 2.59033 17.0693 4.99019 15.5794 6.47038L6.5304 15.4667C5.0405 16.9469 2.6249 16.9469 1.135 15.4667Z\",\n fill: \"#0099FF\"\n})), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.5324 21.8782C7.0425 20.398 7.0425 17.9982 8.5324 16.518L20.7592 4.37085C22.2491 2.89067 24.6647 2.89066 26.1546 4.37085C27.6445 5.85104 27.6445 8.2509 26.1546 9.73109L13.9278 21.8782C12.4379 23.3584 10.0223 23.3584 8.5324 21.8782Z\",\n fill: \"#FF6100\"\n})));\nexport default SvgLogoJotformLight;","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgLogoJotformFullLight = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n style: {\n transform: \"translateY(-2px)\"\n },\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 167 30\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.818 6.37702L107.109 6.46019V2.40392L106.975 2.34307C106.77 2.24989 106.44 2.16554 106.06 2.10414C105.674 2.04193 105.219 2.0006 104.755 2.0006C102.949 2.0006 100.918 2.59842 99.8661 3.67542C98.8149 4.75184 98.2353 6.28607 98.2353 8.12166V8.97865H95.5949V13.635H98.2353V27.7904H103.535V13.635H107.109V8.97865H103.535V8.18607C103.535 7.36123 103.823 6.8864 104.192 6.60981C104.572 6.32452 105.072 6.22481 105.528 6.22481C106.214 6.22481 106.611 6.31799 106.818 6.37702Z\",\n fill: \"#FFFFFF\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M49.1243 19.174L44.0006 19.174L44.0038 19.3774C44.044 21.9596 44.9509 24.0849 46.4694 25.5739C48.0238 27.0981 50.2403 27.9765 52.8837 27.9765C58.1751 27.9765 61.8811 23.9254 61.8811 19.0812V3.94955H56.3415V18.9263C56.3415 20.0073 56.0255 20.9611 55.4188 21.6487C54.8085 22.3404 53.9252 22.7382 52.845 22.7382C51.9598 22.7382 51.1104 22.4771 50.4539 21.9162C49.7942 21.3524 49.3534 20.5062 49.254 19.3841C49.2486 19.3235 49.2216 19.2691 49.1825 19.2309L49.1243 19.174Z\",\n fill: \"#FFFFFF\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M116.819 9.33463C111.552 9.33463 107.563 13.2099 107.563 18.5909C107.563 23.937 111.551 27.8473 116.819 27.8473C122.087 27.8473 126.075 23.937 126.075 18.5909C126.075 13.2099 122.086 9.33463 116.819 9.33463ZM116.819 23.026C115.782 23.026 114.794 22.648 114.066 21.9163C113.34 21.1869 112.85 20.0832 112.85 18.5909C112.85 17.0808 113.34 15.9778 114.065 15.2534C114.792 14.5267 115.78 14.1559 116.819 14.1559C117.858 14.1559 118.846 14.5267 119.573 15.2534C120.297 15.9778 120.788 17.0808 120.788 18.5909C120.788 20.1011 120.297 21.2041 119.573 21.9285C118.846 22.6552 117.858 23.026 116.819 23.026Z\",\n fill: \"#FFFFFF\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M73.0204 9.46392C67.7533 9.46392 63.7641 13.3392 63.7641 18.7202C63.7641 24.0663 67.7524 27.9765 73.0204 27.9765C78.2884 27.9765 82.2767 24.0663 82.2767 18.7202C82.2767 13.3392 78.2875 9.46392 73.0204 9.46392ZM73.0204 23.1553C71.9832 23.1553 70.9954 22.7773 70.2672 22.0456C69.5413 21.3162 69.051 20.2125 69.051 18.7202C69.051 17.2101 69.5418 16.1071 70.2666 15.3827C70.9937 14.656 71.9812 14.2852 73.0204 14.2852C74.0595 14.2852 75.0471 14.656 75.7742 15.3827C76.499 16.1071 76.9898 17.2101 76.9898 18.7202C76.9898 20.2304 76.499 21.3334 75.7742 22.0578C75.0471 22.7845 74.0595 23.1553 73.0204 23.1553Z\",\n fill: \"#FFFFFF\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M145.727 27.7904H140.471V9.90995H145.521V11.3476C146.684 10.1172 148.531 9.48442 150.126 9.48442C152.315 9.48442 154.166 10.3566 155.18 12.006C155.806 11.1713 156.524 10.567 157.335 10.1596C158.287 9.68097 159.348 9.48442 160.504 9.48442C162.133 9.48442 163.752 9.97937 164.966 11.0937C166.186 12.2135 166.963 13.9253 166.963 16.2835V27.7904H161.845V17.2157C161.845 16.3511 161.633 15.6374 161.217 15.1452C160.809 14.6624 160.166 14.3473 159.198 14.3473C158.314 14.3473 157.627 14.687 157.157 15.2197C156.683 15.757 156.413 16.51 156.413 17.3538V27.7904H151.193V17.2157C151.193 16.3539 150.974 15.6397 150.553 15.1463C150.139 14.6615 149.494 14.3473 148.546 14.3473C147.64 14.3473 146.945 14.6816 146.473 15.2086C145.997 15.7402 145.727 16.4917 145.727 17.3538V27.7904Z\",\n fill: \"#FFFFFF\"\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M138.496 9.92466V15.2802L138.086 15.1975C137.596 15.0988 137.174 15.0662 136.783 15.0662C135.669 15.0662 134.679 15.3389 133.968 16.0015C133.262 16.6597 132.775 17.7555 132.775 19.5236V27.7899H127.534V9.90938H132.638V11.6351C133.901 10.1176 135.861 9.8228 137.091 9.8228C137.486 9.8228 137.842 9.85878 138.181 9.89296L138.496 9.92466Z\",\n fill: \"#FFFFFF\"\n})), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M93.9746 23.5231L93.701 23.6066C93.5069 23.6659 93.1333 23.7594 92.489 23.7594C92.0605 23.7594 91.5908 23.6593 91.2333 23.3729C90.8868 23.0952 90.6156 22.6185 90.6156 21.7905V13.6369L93.9746 13.6369V9.00224L90.6156 9.00225V3.97336H85.6457L85.6457 9.00225L83.1643 9.00225L83.1643 13.6369H85.6457V21.8551C85.6457 23.6979 86.1904 25.2382 87.1782 26.3189C88.1665 27.4001 90.065 28.0003 91.7627 28.0003C92.1985 28.0003 92.626 27.9588 92.9884 27.8963C93.3462 27.8347 93.6561 27.75 93.8488 27.6564L93.9746 27.5954V23.5231Z\",\n fill: \"#FFFFFF\"\n})), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.47266 28.5098C8.03906 29.0589 7.6388 29.9996 6.83452 29.9996H1.80114C0.808059 29.9996 0 29.2163 0 28.2536V23.3741C0 22.5944 0.970426 22.2064 1.53682 22.7555L7.47266 28.5098Z\",\n fill: \"#FFFFFF\"\n})), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.3409 28.8897C13.851 27.4096 13.851 25.0097 15.3409 23.5295L20.718 18.1875C22.2079 16.7073 24.6235 16.7073 26.1134 18.1875C27.6033 19.6677 27.6033 22.0676 26.1134 23.5478L20.7363 28.8897C19.2464 30.3699 16.8308 30.3699 15.3409 28.8897Z\",\n fill: \"#FFFFFF\"\n})), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.135 15.4667C-0.354897 13.9865 -0.354896 11.5867 1.135 10.1065L10.184 1.11014C11.6739 -0.370046 14.0895 -0.370048 15.5794 1.11014C17.0693 2.59033 17.0693 4.99019 15.5794 6.47038L6.5304 15.4667C5.0405 16.9469 2.6249 16.9469 1.135 15.4667Z\",\n fill: \"#FFFFFF\"\n})), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.5324 21.8782C7.0425 20.398 7.0425 17.9982 8.5324 16.518L20.7592 4.37085C22.2491 2.89067 24.6647 2.89066 26.1546 4.37085C27.6445 5.85104 27.6445 8.2509 26.1546 9.73109L13.9278 21.8782C12.4379 23.3584 10.0223 23.3584 8.5324 21.8782Z\",\n fill: \"#FFFFFF\"\n})));\nexport default SvgLogoJotformFullLight;","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgLogoJotformKoreanDark = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n style: {\n transform: \"translateY(-2px)\"\n },\n viewBox: \"0 0 299 66\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n className: \"jl-main jfLogo-white\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M188.28 50.6124C187.16 50.6264 186.049 50.4179 185.01 49.999C183.972 49.5802 183.027 48.9593 182.23 48.1724C180.63 46.5724 179.55 44.1424 179.55 40.8624C179.55 37.5424 180.63 35.1224 182.23 33.5224C183.03 32.7432 183.977 32.13 185.015 31.7181C186.054 31.3062 187.163 31.1038 188.28 31.1224C190.56 31.1224 192.73 31.9224 194.33 33.5224C195.93 35.1224 197 37.5424 197 40.8624C197 44.1824 195.93 46.6024 194.33 48.2024C193.53 48.9816 192.583 49.5948 191.545 50.0067C190.506 50.4186 189.397 50.6211 188.28 50.6024V50.6124ZM188.28 20.5124C176.7 20.5124 167.93 29.0324 167.93 40.8624C167.93 52.6124 176.7 61.2124 188.28 61.2124C199.86 61.2124 208.63 52.6124 208.63 40.8624C208.63 29.0324 199.86 20.5124 188.28 20.5124ZM240.27 61.0824H251.82V38.1424C251.82 36.2424 252.42 34.5924 253.46 33.4324C254.038 32.805 254.744 32.3102 255.532 31.9822C256.319 31.6542 257.168 31.5007 258.02 31.5324C260.1 31.5324 261.52 32.2324 262.43 33.2924C263.36 34.3724 263.83 35.9424 263.83 37.8424V61.0824H275.31V38.1424C275.31 36.2924 275.91 34.6424 276.95 33.4524C277.512 32.8254 278.204 32.3287 278.978 31.9971C279.752 31.6655 280.588 31.5069 281.43 31.5324C283.56 31.5324 284.97 32.2324 285.87 33.2924C286.79 34.3724 287.25 35.9424 287.25 37.8424V61.0824H298.5V35.7824C298.5 30.6124 296.8 26.8424 294.11 24.3824C291.44 21.9324 287.88 20.8424 284.31 20.8424C281.76 20.8424 279.43 21.2824 277.34 22.3324C275.55 23.2324 273.98 24.5524 272.6 26.3924C270.37 22.7624 266.3 20.8424 261.5 20.8424C257.98 20.8424 253.93 22.2424 251.37 24.9424V21.7824H240.27V61.0824ZM235.92 21.8124V33.5824L235.02 33.4024C233.95 33.1924 233.02 33.1124 232.16 33.1124C229.71 33.1124 227.53 33.7124 225.97 35.1724C224.42 36.6224 223.35 39.0324 223.35 42.9124V61.0824H211.83V21.7824H223.05V25.5824C225.82 22.2424 230.13 21.5824 232.84 21.5824C233.7 21.5824 234.49 21.6724 235.24 21.7424L235.92 21.8124ZM96.72 42.1424H107.98L108.11 42.2724C108.19 42.3524 108.25 42.4724 108.26 42.6024C108.309 43.6595 108.567 44.6964 109.02 45.6526C109.474 46.6089 110.113 47.4654 110.9 48.1724C112.382 49.3819 114.248 50.0205 116.16 49.9724C117.219 50.0079 118.273 49.8124 119.248 49.3997C120.224 48.987 121.098 48.3669 121.81 47.5824C123.194 45.9038 123.916 43.7767 123.84 41.6024V8.68242H136.02V41.9424C136.02 52.5924 127.87 61.4924 116.24 61.4924C110.44 61.4924 105.56 59.5624 102.14 56.2124C98.8 52.9424 96.81 48.2724 96.72 42.5924V42.1424ZM166.3 14.0124L166.94 14.2024V5.28242L166.64 5.15242C165.994 4.89541 165.319 4.71745 164.63 4.62242C163.78 4.48242 162.78 4.39242 161.76 4.39242C157.79 4.39242 153.33 5.71242 151.02 8.08242C148.71 10.4424 147.43 13.8124 147.43 17.8524V19.7324H141.63V29.9724H147.43V61.0824H159.08V29.9724H166.94V19.7324H159.08V17.9924C159.08 16.1824 159.71 15.1324 160.52 14.5324C161.385 13.9437 162.415 13.646 163.46 13.6824C164.96 13.6824 165.84 13.8824 166.3 14.0124Z\",\n className: \"jl-main-color jl-main-text jl-main-text-all\",\n fill: \"#0A1551\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.43 62.6724C17.67 63.8724 16.79 65.9424 15.03 65.9424H3.95C2.91734 65.9558 1.92154 65.559 1.18104 64.8391C0.440538 64.1192 0.015802 63.135 0 62.1024V51.3824C0 49.6624 2.13 48.8124 3.38 50.0224L16.43 62.6724Z\",\n className: \"jl-main-color\",\n fill: \"#0A1551\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.72 63.5024C32.943 62.7309 32.3263 61.8133 31.9054 60.8024C31.4846 59.7916 31.2679 58.7074 31.2679 57.6124C31.2679 56.5174 31.4846 55.4333 31.9054 54.4224C32.3263 53.4115 32.943 52.4939 33.72 51.7224L45.54 39.9824C47.1171 38.4179 49.2485 37.54 51.47 37.54C53.6915 37.54 55.8229 38.4179 57.4 39.9824C58.177 40.7539 58.7938 41.6715 59.2146 42.6824C59.6354 43.6933 59.8521 44.7774 59.8521 45.8724C59.8521 46.9674 59.6354 48.0516 59.2146 49.0624C58.7938 50.0733 58.177 50.9909 57.4 51.7624L45.58 63.5024C44.0029 65.0669 41.8715 65.9448 39.65 65.9448C37.4285 65.9448 35.2971 65.0669 33.72 63.5024V63.5024Z\",\n className: \"jl-pen-bottom\",\n fill: \"#FFB629\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.5 33.9924C1.72296 33.2209 1.10625 32.3033 0.685406 31.2924C0.264561 30.2816 0.0478973 29.1974 0.0478973 28.1024C0.0478973 27.0074 0.264561 25.9233 0.685406 24.9124C1.10625 23.9015 1.72296 22.9839 2.5 22.2124L22.39 2.44242C23.9671 0.877893 26.0985 0 28.32 0C30.5415 0 32.6729 0.877893 34.25 2.44242C35.027 3.2139 35.6437 4.13152 36.0646 5.1424C36.4854 6.15328 36.7021 7.23744 36.7021 8.33242C36.7021 9.4274 36.4854 10.5116 36.0646 11.5224C35.6437 12.5333 35.027 13.4509 34.25 14.2224L14.35 33.9924C12.7733 35.5539 10.644 36.4299 8.425 36.4299C6.20597 36.4299 4.07665 35.5539 2.5 33.9924V33.9924Z\",\n className: \"jl-pen-top\",\n fill: \"#09F\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.76 48.0924C17.983 47.3209 17.3662 46.4033 16.9454 45.3924C16.5246 44.3816 16.3079 43.2974 16.3079 42.2024C16.3079 41.1074 16.5246 40.0233 16.9454 39.0124C17.3662 38.0015 17.983 37.0839 18.76 36.3124L45.63 9.61242C47.2071 8.04789 49.3385 7.17 51.56 7.17C53.7815 7.17 55.9129 8.04789 57.49 9.61242C58.267 10.3839 58.8837 11.3015 59.3046 12.3124C59.7254 13.3233 59.9421 14.4074 59.9421 15.5024C59.9421 16.5974 59.7254 17.6816 59.3046 18.6924C58.8837 19.7033 58.267 20.6209 57.49 21.3924L30.62 48.0924C29.0429 49.6569 26.9115 50.5348 24.69 50.5348C22.4685 50.5348 20.3371 49.6569 18.76 48.0924V48.0924Z\",\n className: \"jl-pen-middle\",\n fill: \"#FF6100\"\n})));\nexport default SvgLogoJotformKoreanDark;","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgLogoJotformKoreanLight = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n style: {\n transform: \"translateY(-2px)\"\n },\n viewBox: \"0 0 299 66\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n className: \"jl-main jfLogo-white\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M188.28 50.6124C187.16 50.6264 186.049 50.4179 185.01 49.999C183.972 49.5802 183.027 48.9593 182.23 48.1724C180.63 46.5724 179.55 44.1424 179.55 40.8624C179.55 37.5424 180.63 35.1224 182.23 33.5224C183.03 32.7432 183.977 32.13 185.015 31.7181C186.054 31.3062 187.163 31.1038 188.28 31.1224C190.56 31.1224 192.73 31.9224 194.33 33.5224C195.93 35.1224 197 37.5424 197 40.8624C197 44.1824 195.93 46.6024 194.33 48.2024C193.53 48.9816 192.583 49.5948 191.545 50.0067C190.506 50.4186 189.397 50.6211 188.28 50.6024V50.6124ZM188.28 20.5124C176.7 20.5124 167.93 29.0324 167.93 40.8624C167.93 52.6124 176.7 61.2124 188.28 61.2124C199.86 61.2124 208.63 52.6124 208.63 40.8624C208.63 29.0324 199.86 20.5124 188.28 20.5124ZM240.27 61.0824H251.82V38.1424C251.82 36.2424 252.42 34.5924 253.46 33.4324C254.038 32.805 254.744 32.3102 255.532 31.9822C256.319 31.6542 257.168 31.5007 258.02 31.5324C260.1 31.5324 261.52 32.2324 262.43 33.2924C263.36 34.3724 263.83 35.9424 263.83 37.8424V61.0824H275.31V38.1424C275.31 36.2924 275.91 34.6424 276.95 33.4524C277.512 32.8254 278.204 32.3287 278.978 31.9971C279.752 31.6655 280.588 31.5069 281.43 31.5324C283.56 31.5324 284.97 32.2324 285.87 33.2924C286.79 34.3724 287.25 35.9424 287.25 37.8424V61.0824H298.5V35.7824C298.5 30.6124 296.8 26.8424 294.11 24.3824C291.44 21.9324 287.88 20.8424 284.31 20.8424C281.76 20.8424 279.43 21.2824 277.34 22.3324C275.55 23.2324 273.98 24.5524 272.6 26.3924C270.37 22.7624 266.3 20.8424 261.5 20.8424C257.98 20.8424 253.93 22.2424 251.37 24.9424V21.7824H240.27V61.0824ZM235.92 21.8124V33.5824L235.02 33.4024C233.95 33.1924 233.02 33.1124 232.16 33.1124C229.71 33.1124 227.53 33.7124 225.97 35.1724C224.42 36.6224 223.35 39.0324 223.35 42.9124V61.0824H211.83V21.7824H223.05V25.5824C225.82 22.2424 230.13 21.5824 232.84 21.5824C233.7 21.5824 234.49 21.6724 235.24 21.7424L235.92 21.8124ZM96.72 42.1424H107.98L108.11 42.2724C108.19 42.3524 108.25 42.4724 108.26 42.6024C108.309 43.6595 108.567 44.6964 109.02 45.6526C109.474 46.6089 110.113 47.4654 110.9 48.1724C112.382 49.3819 114.248 50.0205 116.16 49.9724C117.219 50.0079 118.273 49.8124 119.248 49.3997C120.224 48.987 121.098 48.3669 121.81 47.5824C123.194 45.9038 123.916 43.7767 123.84 41.6024V8.68242H136.02V41.9424C136.02 52.5924 127.87 61.4924 116.24 61.4924C110.44 61.4924 105.56 59.5624 102.14 56.2124C98.8 52.9424 96.81 48.2724 96.72 42.5924V42.1424ZM166.3 14.0124L166.94 14.2024V5.28242L166.64 5.15242C165.994 4.89541 165.319 4.71745 164.63 4.62242C163.78 4.48242 162.78 4.39242 161.76 4.39242C157.79 4.39242 153.33 5.71242 151.02 8.08242C148.71 10.4424 147.43 13.8124 147.43 17.8524V19.7324H141.63V29.9724H147.43V61.0824H159.08V29.9724H166.94V19.7324H159.08V17.9924C159.08 16.1824 159.71 15.1324 160.52 14.5324C161.385 13.9437 162.415 13.646 163.46 13.6824C164.96 13.6824 165.84 13.8824 166.3 14.0124Z\",\n className: \"jl-main-color jl-main-text jl-main-text-all\",\n fill: \"#FFFFFF\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.43 62.6724C17.67 63.8724 16.79 65.9424 15.03 65.9424H3.95C2.91734 65.9558 1.92154 65.559 1.18104 64.8391C0.440538 64.1192 0.015802 63.135 0 62.1024V51.3824C0 49.6624 2.13 48.8124 3.38 50.0224L16.43 62.6724Z\",\n className: \"jl-main-color\",\n fill: \"#FFFFFF\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.72 63.5024C32.943 62.7309 32.3263 61.8133 31.9054 60.8024C31.4846 59.7916 31.2679 58.7074 31.2679 57.6124C31.2679 56.5174 31.4846 55.4333 31.9054 54.4224C32.3263 53.4115 32.943 52.4939 33.72 51.7224L45.54 39.9824C47.1171 38.4179 49.2485 37.54 51.47 37.54C53.6915 37.54 55.8229 38.4179 57.4 39.9824C58.177 40.7539 58.7938 41.6715 59.2146 42.6824C59.6354 43.6933 59.8521 44.7774 59.8521 45.8724C59.8521 46.9674 59.6354 48.0516 59.2146 49.0624C58.7938 50.0733 58.177 50.9909 57.4 51.7624L45.58 63.5024C44.0029 65.0669 41.8715 65.9448 39.65 65.9448C37.4285 65.9448 35.2971 65.0669 33.72 63.5024V63.5024Z\",\n className: \"jl-pen-bottom\",\n fill: \"#FFB629\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.5 33.9924C1.72296 33.2209 1.10625 32.3033 0.685406 31.2924C0.264561 30.2816 0.0478973 29.1974 0.0478973 28.1024C0.0478973 27.0074 0.264561 25.9233 0.685406 24.9124C1.10625 23.9015 1.72296 22.9839 2.5 22.2124L22.39 2.44242C23.9671 0.877893 26.0985 0 28.32 0C30.5415 0 32.6729 0.877893 34.25 2.44242C35.027 3.2139 35.6437 4.13152 36.0646 5.1424C36.4854 6.15328 36.7021 7.23744 36.7021 8.33242C36.7021 9.4274 36.4854 10.5116 36.0646 11.5224C35.6437 12.5333 35.027 13.4509 34.25 14.2224L14.35 33.9924C12.7733 35.5539 10.644 36.4299 8.425 36.4299C6.20597 36.4299 4.07665 35.5539 2.5 33.9924V33.9924Z\",\n className: \"jl-pen-top\",\n fill: \"#09F\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.76 48.0924C17.983 47.3209 17.3662 46.4033 16.9454 45.3924C16.5246 44.3816 16.3079 43.2974 16.3079 42.2024C16.3079 41.1074 16.5246 40.0233 16.9454 39.0124C17.3662 38.0015 17.983 37.0839 18.76 36.3124L45.63 9.61242C47.2071 8.04789 49.3385 7.17 51.56 7.17C53.7815 7.17 55.9129 8.04789 57.49 9.61242C58.267 10.3839 58.8837 11.3015 59.3046 12.3124C59.7254 13.3233 59.9421 14.4074 59.9421 15.5024C59.9421 16.5974 59.7254 17.6816 59.3046 18.6924C58.8837 19.7033 58.267 20.6209 57.49 21.3924L30.62 48.0924C29.0429 49.6569 26.9115 50.5348 24.69 50.5348C22.4685 50.5348 20.3371 49.6569 18.76 48.0924V48.0924Z\",\n className: \"jl-pen-middle\",\n fill: \"#FF6100\"\n})));\nexport default SvgLogoJotformKoreanLight;","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgLogoJotformKoreanFullLight = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n style: {\n transform: \"translateY(-2px)\"\n },\n viewBox: \"0 0 299 66\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n className: \"jl-main jfLogo-white\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M188.28 50.6124C187.16 50.6264 186.049 50.4179 185.01 49.999C183.972 49.5802 183.027 48.9593 182.23 48.1724C180.63 46.5724 179.55 44.1424 179.55 40.8624C179.55 37.5424 180.63 35.1224 182.23 33.5224C183.03 32.7432 183.977 32.13 185.015 31.7181C186.054 31.3062 187.163 31.1038 188.28 31.1224C190.56 31.1224 192.73 31.9224 194.33 33.5224C195.93 35.1224 197 37.5424 197 40.8624C197 44.1824 195.93 46.6024 194.33 48.2024C193.53 48.9816 192.583 49.5948 191.545 50.0067C190.506 50.4186 189.397 50.6211 188.28 50.6024V50.6124ZM188.28 20.5124C176.7 20.5124 167.93 29.0324 167.93 40.8624C167.93 52.6124 176.7 61.2124 188.28 61.2124C199.86 61.2124 208.63 52.6124 208.63 40.8624C208.63 29.0324 199.86 20.5124 188.28 20.5124ZM240.27 61.0824H251.82V38.1424C251.82 36.2424 252.42 34.5924 253.46 33.4324C254.038 32.805 254.744 32.3102 255.532 31.9822C256.319 31.6542 257.168 31.5007 258.02 31.5324C260.1 31.5324 261.52 32.2324 262.43 33.2924C263.36 34.3724 263.83 35.9424 263.83 37.8424V61.0824H275.31V38.1424C275.31 36.2924 275.91 34.6424 276.95 33.4524C277.512 32.8254 278.204 32.3287 278.978 31.9971C279.752 31.6655 280.588 31.5069 281.43 31.5324C283.56 31.5324 284.97 32.2324 285.87 33.2924C286.79 34.3724 287.25 35.9424 287.25 37.8424V61.0824H298.5V35.7824C298.5 30.6124 296.8 26.8424 294.11 24.3824C291.44 21.9324 287.88 20.8424 284.31 20.8424C281.76 20.8424 279.43 21.2824 277.34 22.3324C275.55 23.2324 273.98 24.5524 272.6 26.3924C270.37 22.7624 266.3 20.8424 261.5 20.8424C257.98 20.8424 253.93 22.2424 251.37 24.9424V21.7824H240.27V61.0824ZM235.92 21.8124V33.5824L235.02 33.4024C233.95 33.1924 233.02 33.1124 232.16 33.1124C229.71 33.1124 227.53 33.7124 225.97 35.1724C224.42 36.6224 223.35 39.0324 223.35 42.9124V61.0824H211.83V21.7824H223.05V25.5824C225.82 22.2424 230.13 21.5824 232.84 21.5824C233.7 21.5824 234.49 21.6724 235.24 21.7424L235.92 21.8124ZM96.72 42.1424H107.98L108.11 42.2724C108.19 42.3524 108.25 42.4724 108.26 42.6024C108.309 43.6595 108.567 44.6964 109.02 45.6526C109.474 46.6089 110.113 47.4654 110.9 48.1724C112.382 49.3819 114.248 50.0205 116.16 49.9724C117.219 50.0079 118.273 49.8124 119.248 49.3997C120.224 48.987 121.098 48.3669 121.81 47.5824C123.194 45.9038 123.916 43.7767 123.84 41.6024V8.68242H136.02V41.9424C136.02 52.5924 127.87 61.4924 116.24 61.4924C110.44 61.4924 105.56 59.5624 102.14 56.2124C98.8 52.9424 96.81 48.2724 96.72 42.5924V42.1424ZM166.3 14.0124L166.94 14.2024V5.28242L166.64 5.15242C165.994 4.89541 165.319 4.71745 164.63 4.62242C163.78 4.48242 162.78 4.39242 161.76 4.39242C157.79 4.39242 153.33 5.71242 151.02 8.08242C148.71 10.4424 147.43 13.8124 147.43 17.8524V19.7324H141.63V29.9724H147.43V61.0824H159.08V29.9724H166.94V19.7324H159.08V17.9924C159.08 16.1824 159.71 15.1324 160.52 14.5324C161.385 13.9437 162.415 13.646 163.46 13.6824C164.96 13.6824 165.84 13.8824 166.3 14.0124Z\",\n className: \"jl-main-color jl-main-text jl-main-text-all\",\n fill: \"#FFFFFF\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.43 62.6724C17.67 63.8724 16.79 65.9424 15.03 65.9424H3.95C2.91734 65.9558 1.92154 65.559 1.18104 64.8391C0.440538 64.1192 0.015802 63.135 0 62.1024V51.3824C0 49.6624 2.13 48.8124 3.38 50.0224L16.43 62.6724Z\",\n className: \"jl-main-color\",\n fill: \"#FFFFFF\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.72 63.5024C32.943 62.7309 32.3263 61.8133 31.9054 60.8024C31.4846 59.7916 31.2679 58.7074 31.2679 57.6124C31.2679 56.5174 31.4846 55.4333 31.9054 54.4224C32.3263 53.4115 32.943 52.4939 33.72 51.7224L45.54 39.9824C47.1171 38.4179 49.2485 37.54 51.47 37.54C53.6915 37.54 55.8229 38.4179 57.4 39.9824C58.177 40.7539 58.7938 41.6715 59.2146 42.6824C59.6354 43.6933 59.8521 44.7774 59.8521 45.8724C59.8521 46.9674 59.6354 48.0516 59.2146 49.0624C58.7938 50.0733 58.177 50.9909 57.4 51.7624L45.58 63.5024C44.0029 65.0669 41.8715 65.9448 39.65 65.9448C37.4285 65.9448 35.2971 65.0669 33.72 63.5024V63.5024Z\",\n className: \"jl-pen-bottom\",\n fill: \"#FFFFFF\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.5 33.9924C1.72296 33.2209 1.10625 32.3033 0.685406 31.2924C0.264561 30.2816 0.0478973 29.1974 0.0478973 28.1024C0.0478973 27.0074 0.264561 25.9233 0.685406 24.9124C1.10625 23.9015 1.72296 22.9839 2.5 22.2124L22.39 2.44242C23.9671 0.877893 26.0985 0 28.32 0C30.5415 0 32.6729 0.877893 34.25 2.44242C35.027 3.2139 35.6437 4.13152 36.0646 5.1424C36.4854 6.15328 36.7021 7.23744 36.7021 8.33242C36.7021 9.4274 36.4854 10.5116 36.0646 11.5224C35.6437 12.5333 35.027 13.4509 34.25 14.2224L14.35 33.9924C12.7733 35.5539 10.644 36.4299 8.425 36.4299C6.20597 36.4299 4.07665 35.5539 2.5 33.9924V33.9924Z\",\n className: \"jl-pen-top\",\n fill: \"#FFFFFF\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.76 48.0924C17.983 47.3209 17.3662 46.4033 16.9454 45.3924C16.5246 44.3816 16.3079 43.2974 16.3079 42.2024C16.3079 41.1074 16.5246 40.0233 16.9454 39.0124C17.3662 38.0015 17.983 37.0839 18.76 36.3124L45.63 9.61242C47.2071 8.04789 49.3385 7.17 51.56 7.17C53.7815 7.17 55.9129 8.04789 57.49 9.61242C58.267 10.3839 58.8837 11.3015 59.3046 12.3124C59.7254 13.3233 59.9421 14.4074 59.9421 15.5024C59.9421 16.5974 59.7254 17.6816 59.3046 18.6924C58.8837 19.7033 58.267 20.6209 57.49 21.3924L30.62 48.0924C29.0429 49.6569 26.9115 50.5348 24.69 50.5348C22.4685 50.5348 20.3371 49.6569 18.76 48.0924V48.0924Z\",\n className: \"jl-pen-middle\",\n fill: \"#FFFFFF\"\n})));\nexport default SvgLogoJotformKoreanFullLight;","\n \n\n","import React from 'react';\nimport {\n bool, string, object\n} from 'prop-types';\nimport {\n THEME_MAP, userPropType, userTypePropType, logoPropType, themePropType, stickyModeThemePropType,\n logoDefaultProps, logoSideLinkDefaultProps, logoSideLinkPropType, navItemsPropType, menuStylesPropType\n} from '@jotforminc/header-body';\n\nimport Header from '../Header';\nimport ModeProvider from './ModeProvider';\nimport UserProvider from './UserProvider';\nimport MobileMenuProvider from './MobileMenuProvider';\nimport JotformActionsProvider from './JotformActionsProvider';\n\nconst HeaderProvider = ({\n user,\n userType,\n isLoggedIn,\n language,\n isEnterprise,\n hostname,\n currentPath,\n customNavItems,\n logoProps,\n logoSideLinkProps,\n bgColor,\n fullWidth,\n stickyMode,\n menuStyles,\n theme,\n stickyModeTheme,\n hideAccountBox,\n hideLoginButton,\n hideSignupButton,\n disableLoginFlow,\n replaceAuthButtons,\n replaceAuthButtonsLocalized,\n appPickerProps,\n languageSwitcher,\n isAcademyAppsCourseReleased,\n contactSalesAbTestVariation,\n contactSalesAbTestVariationURL\n}) => {\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\nHeaderProvider.propTypes = {\n // user & env props\n user: userPropType,\n userType: userTypePropType,\n isLoggedIn: bool,\n language: string,\n isEnterprise: bool,\n hostname: string,\n currentPath: string,\n // logo & menu props\n customNavItems: navItemsPropType,\n logoProps: logoPropType,\n logoSideLinkProps: logoSideLinkPropType,\n // ui props\n bgColor: string,\n fullWidth: bool,\n stickyMode: bool,\n menuStyles: menuStylesPropType,\n theme: themePropType,\n stickyModeTheme: stickyModeThemePropType,\n // login flow props\n hideAccountBox: bool,\n hideLoginButton: bool,\n hideSignupButton: bool,\n disableLoginFlow: bool,\n replaceAuthButtons: string,\n replaceAuthButtonsLocalized: string,\n // other\n appPickerProps: object,\n languageSwitcher: object,\n contactSalesAbTestVariation: string,\n contactSalesAbTestVariationURL: string,\n isAcademyAppsCourseReleased: string\n};\n\nHeaderProvider.defaultProps = {\n // user & env props\n user: global.window?.__jfCommonHeaderProps?.user || global.window?.user,\n userType: global.window?.userType || global.window?.__jfCommonHeaderProps?.userType,\n isLoggedIn: global.window?.__jfCommonHeaderProps?.isLoggedIn,\n language: global.window?.__jfCommonHeaderProps?.language || 'en-US',\n isEnterprise: global.window?.__jfCommonHeaderProps?.isEnterprise || false,\n hostname: global.window?.__jfCommonHeaderProps?.hostname || (global.window?.location || global.location)?.hostname,\n currentPath: global.window?.__jfCommonHeaderProps?.currentPath || (global.window?.location || global.location)?.pathname,\n // logo & menu props\n customNavItems: global.window?.__jfCommonHeaderProps?.customNavItems,\n logoProps: global.window?.__jfCommonHeaderProps?.logoProps || logoDefaultProps,\n logoSideLinkProps: global.window?.__jfCommonHeaderProps?.logoSideLinkProps || logoSideLinkDefaultProps,\n // ui props\n bgColor: global.window?.__jfCommonHeaderProps?.bgColor || '',\n fullWidth: global.window?.__jfCommonHeaderProps?.fullWidth || false,\n stickyMode: global.window?.__jfCommonHeaderProps?.stickyMode || false,\n menuStyles: global.window?.__jfCommonHeaderProps?.menuStyles || {},\n theme: global.window?.__jfCommonHeaderProps?.theme || THEME_MAP.DARK,\n stickyModeTheme: global.window?.__jfCommonHeaderProps?.stickyModeTheme || '',\n // login flow props\n hideAccountBox: global.window?.__jfCommonHeaderProps?.hideAccountBox || false,\n hideLoginButton: global.window?.__jfCommonHeaderProps?.hideLoginButton || false,\n hideSignupButton: global.window?.__jfCommonHeaderProps?.hideSignupButton || false,\n disableLoginFlow: global.window?.__jfCommonHeaderProps?.disableLoginFlow || false,\n replaceAuthButtons: global.window?.__jfCommonHeaderProps?.replaceAuthButtons || '',\n replaceAuthButtonsLocalized: global.window?.__jfCommonHeaderProps?.replaceAuthButtonsLocalized || '',\n // other\n appPickerProps: global.window?.__jfCommonHeaderProps?.appPickerProps || {},\n languageSwitcher: global.window?.__jfCommonHeaderProps?.languageSwitcher || {},\n contactSalesAbTestVariation: global.window?.__jfCommonHeaderProps?.contactSalesAbTestVariation || '',\n contactSalesAbTestVariationURL: global.window?.__jfCommonHeaderProps?.contactSalesAbTestVariationURL || '',\n isAcademyAppsCourseReleased: global.window?.__jfCommonHeaderProps?.isAcademyAppsCourseReleased || ''\n};\n\nexport default HeaderProvider;\n","var _path, _path2, _path3, _path4, _path5, _path6;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgAcademyLogoDark = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 248 33\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n fillRule: \"evenodd\",\n d: \"M93.392 23.565c-.915 0-1.786-.334-2.428-.979-.641-.643-1.073-1.617-1.073-2.933 0-1.333.432-2.306 1.072-2.945.641-.64 1.513-.968 2.43-.968.916 0 1.787.327 2.428.968.64.64 1.073 1.612 1.073 2.945s-.433 2.305-1.073 2.944c-.64.64-1.512.968-2.429.968m0-12.078c-4.646 0-8.165 3.419-8.165 8.166 0 4.716 3.518 8.165 8.165 8.165 4.648 0 8.166-3.45 8.166-8.166 0-4.747-3.52-8.165-8.166-8.165M54.753 23.68c-.915 0-1.787-.334-2.43-.98-.64-.643-1.072-1.617-1.072-2.933 0-1.332.433-2.305 1.072-2.944.642-.641 1.513-.969 2.43-.969.916 0 1.787.328 2.429.969.64.639 1.072 1.612 1.072 2.944s-.433 2.305-1.072 2.944c-.642.641-1.513.969-2.43.969m0-12.079c-4.647 0-8.166 3.419-8.166 8.166 0 4.716 3.518 8.166 8.166 8.166 4.647 0 8.165-3.45 8.165-8.166 0-4.747-3.519-8.166-8.165-8.166M114.257 27.769h4.635v-9.207c0-.761.239-1.424.659-1.893.416-.465 1.03-.76 1.829-.76.837 0 1.406.277 1.771.705.371.435.564 1.066.564 1.826v9.328h4.605v-9.206c0-.745.238-1.41.656-1.883.414-.47 1.021-.77 1.801-.77.854 0 1.421.278 1.781.704.367.434.554 1.064.554 1.827v9.328h4.515v-10.15c0-2.08-.686-3.591-1.762-4.579-1.071-.983-2.499-1.42-3.937-1.42-1.019 0-1.954.174-2.795.596-.715.36-1.349.893-1.901 1.629-.894-1.455-2.528-2.225-4.458-2.225-1.408 0-3.037.559-4.063 1.644v-1.268h-4.454zM112.513 12.008v4.725l-.363-.073a5.7 5.7 0 0 0-1.149-.116c-.983 0-1.856.24-2.483.825-.623.58-1.052 1.547-1.052 3.107v7.293h-4.624V11.995h4.503v1.522c1.113-1.338 2.843-1.598 3.928-1.598a9 9 0 0 1 .962.061zM29.152 20.168h4.52l.052.05a.22.22 0 0 1 .063.135c.087.99.476 1.736 1.058 2.233.58.495 1.329.726 2.11.726.953 0 1.732-.351 2.27-.961.535-.607.814-1.448.814-2.402V6.737h4.887v13.349c0 4.273-3.27 7.847-7.937 7.847-2.332 0-4.288-.775-5.659-2.12-1.34-1.313-2.14-3.188-2.175-5.466zM84.57 8.878l.256.074V5.373l-.118-.053c-.18-.083-.471-.157-.807-.211a7.4 7.4 0 0 0-1.15-.092c-1.595 0-3.386.528-4.314 1.478s-1.439 2.303-1.439 3.922v.756h-2.33v4.108h2.33v12.488h4.675000000000001V15.28h3.153v-4.108h-3.153v-.699c0-.728.255-1.146.58-1.39.336-.252.777-.34 1.179-.34.605 0 .955.082 1.138.134M72.996 24.078l.242-.074v3.593l-.111.053c-.17.083-.444.158-.76.212-.319.055-.696.092-1.08.092-1.498 0-3.173-.53-4.045-1.483s-1.352-2.313-1.352-3.938v-7.25h-2.189v-4.089h2.19V6.758h4.383v4.436h2.964v4.089h-2.963v7.193c0 .73.239 1.15.544 1.396.316.252.73.34 1.108.34.569 0 .898-.082 1.07-.134\",\n clipRule: \"evenodd\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"M6.592 28.41c.5.485.147 1.315-.563 1.315H1.59c-.876 0-1.589-.691-1.589-1.54V23.88c0-.688.856-1.03 1.356-.546z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFB629\",\n d: \"M13.534 28.746a3.33 3.33 0 0 1 0-4.73l4.743-4.712a3.38 3.38 0 0 1 4.76 0 3.33 3.33 0 0 1 0 4.729l-4.744 4.712a3.38 3.38 0 0 1-4.76 0\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#09F\",\n d: \"M1.001 16.904a3.33 3.33 0 0 1 0-4.728l7.983-7.937a3.38 3.38 0 0 1 4.76 0 3.33 3.33 0 0 1 0 4.729L5.76 16.904a3.38 3.38 0 0 1-4.76 0\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF6100\",\n d: \"M7.528 22.56a3.33 3.33 0 0 1 0-4.728L18.314 7.116a3.38 3.38 0 0 1 4.76 0 3.33 3.33 0 0 1 0 4.729L12.287 22.56a3.38 3.38 0 0 1-4.76 0M152.155 13.941q.237.981.373 1.557l2.538 11.848v.033q-1.015.203-2.234.136a12.4 12.4 0 0 1-2.302-.271h-.033q-.203-.542-.407-1.286a48 48 0 0 0-.372-1.524 24 24 0 0 0-.372-1.489 8.4 8.4 0 0 0-.44-1.218 5 5 0 0 0-.677-.068h-.44a3 3 0 0 0-.407.034h-.575q-.237.541-.406 1.286a97 97 0 0 1-.305 1.523q-.135.78-.305 1.523-.168.745-.473 1.32-.035 0-.068.034h-.034q-.271.068-1.354 0-1.083-.067-3.385-.034-.033 0-.068-.033.068-.237.237-1.32.17-1.085.474-2.81.305-1.726.711-3.96.44-2.268 1.016-4.807.575-2.539 1.252-5.28t1.489-5.45q.237-.034.508-.034h1.8279999999999998a44 44 0 0 0 1.828-.136q.101.44.305 1.354.236.88.473 2.031.271 1.117.542 2.404.305 1.285.575 2.47.271 1.185.508 2.167m-4.366 3.791q.642-.033 1.286-.034-.339-2.91-.609-4.536-.237-1.624-.44-2.2-.17-.575-.373-.237-.169.304-.338 1.287-.136.982-.339 2.47-.17 1.491-.406 3.216.576.034 1.219.034m18.295 4.123q.481 0 .793.085-.056.737-.113 1.445t-.142 1.331a7 7 0 0 1-.227 1.049q-.113.424-.311.623a2.6 2.6 0 0 1-1.275.963 5.8 5.8 0 0 1-1.671.34q-.907.085-1.87 0a30 30 0 0 0-1.756-.057q-1.445-.255-2.436-1.246a3.47 3.47 0 0 1-1.049-1.7 10 10 0 0 1-.34-2.124 31 31 0 0 1-.028-2.267q.057-1.132-.057-2.068 0-1.02.17-2.04.028-.31.199-.85.17-.537.255-.82a1.9 1.9 0 0 1 .623-.737 4.3 4.3 0 0 1 1.02-.51 5.5 5.5 0 0 1 1.246-.312q.68-.085 1.36-.085.566.057 1.076.029a5.7 5.7 0 0 1 1.133 0 6.5 6.5 0 0 1 1.729.34 3.85 3.85 0 0 1 1.416.85q.397.282.595.764.226.482.34 1.133.113.652.113 1.474.029.792.057 1.727a3.8 3.8 0 0 1-.85.085q-.453 0-.963-.028a17 17 0 0 1-.963-.085 29 29 0 0 1-.822-.113q-.141-.992-.821-1.53-.681-.567-1.785-.283a1.86 1.86 0 0 0-.963.623q-.171.113-.255.567-.114.878-.114 1.784 0 .907-.056 1.898-.057.652.311 1.02.397.369.935.51.538.114 1.105.057.567-.085.907-.312.282-.199.424-.652.171-.48.255-.85.284.03.765.029l1.02-.057a9 9 0 0 1 1.02 0m12.22-8.668q.708.028 1.615.085.028.17.028.34.028.17.028.34v.283q-.085 3.06.029 6.034a58 58 0 0 1-.085 5.977q0 .369-.029.737 0 .368-.339.425h-.34a16 16 0 0 1-.935-.029 7 7 0 0 0-.907-.056 3.5 3.5 0 0 0-.623.056 6 6 0 0 1-.595.029.43.43 0 0 1-.283-.227 1.3 1.3 0 0 1-.057-.397q0-.31.057-.51.057-.198.057-.481-.681.68-1.728 1.161-1.02.483-2.012.482a2.64 2.64 0 0 1-1.898-.765q-.765-.765-1.275-1.898a11 11 0 0 1-.764-2.464 15 15 0 0 1-.227-2.465q0-1.416.368-2.606.369-1.19.992-2.04a4.7 4.7 0 0 1 1.529-1.36 3.9 3.9 0 0 1 1.87-.538q.51 0 .935.029.453 0 .821.141.369.114.652.397.283.255.482.736a3.2 3.2 0 0 1 .028-.764q.085-.34.085-.68 0-.03.17-.029.198-.028.425 0h.765q.482.03 1.161.057m-5.835 4.476q-.652.538-.794 1.246-.113.368-.141.765a10 10 0 0 0-.029.737q0 1.275.652 2.18.68.88 1.87.88.708 0 1.048-.228.368-.255.51-.68.17-.453.17-1.076.027-.651.028-1.445 0-.99-.028-1.558 0-.594-.142-.906a.6.6 0 0 0-.425-.397q-.284-.084-.878-.085-1.161 0-1.841.567m16.843-9.008q.029-.312.057-.879v-.311q0-.03.368-.057.396-.057.935-.057.566-.027 1.189 0 .624 0 1.077.085v1.87q0 4.731.142 9.348.14 4.618.028 8.697-.879 0-1.926.028-1.049.058-1.898-.056a.5.5 0 0 1-.029-.199q0-.283-.028-.453v-.481a.4.4 0 0 0-.142-.199q-.056-.084-.141.085-.425.85-1.133 1.105a3.3 3.3 0 0 1-1.502.113q-1.614-.113-2.549-.821a4.7 4.7 0 0 1-1.417-1.841 10 10 0 0 1-.623-2.522 35 35 0 0 1-.17-2.804q0-.991.113-1.927.142-.935.397-1.7.284-.793.708-1.33a2.43 2.43 0 0 1 1.077-.794 5.8 5.8 0 0 1 1.671-.34 9 9 0 0 1 1.756 0q.822.057 1.388.255.567.198.624.454a106 106 0 0 1-.029-2.153V9.703q.029-.285.029-.51.028-.255.028-.538m-3.513 8.3q-.68.51-.821 1.501a3 3 0 0 0-.17.822q-.029.425-.029.821 0 .708.17 1.388.171.652.51 1.19.34.51.822.821.482.312 1.076.312.709 0 1.105-.312.425-.31.623-.85.226-.537.255-1.274.057-.765.057-1.672 0-1.104-.057-1.728-.029-.65-.198-.991a.77.77 0 0 0-.538-.425q-.34-.113-.935-.113-1.161 0-1.87.51m13.595 3.399a7 7 0 0 1-.907-.085v.51q.029.85.057 1.388.057.538.368 1.048.34.652.963.963.624.312 1.218.199.595-.114.992-.68.425-.595.368-1.757.284.03.765.029.481-.03.991-.057a9 9 0 0 1 1.02 0q.482 0 .793.085-.056.737-.113 1.445a24 24 0 0 1-.142 1.331 7 7 0 0 1-.226 1.048q-.114.426-.312.595a2.6 2.6 0 0 1-1.246.963 5.8 5.8 0 0 1-1.672.34q-.906.057-1.869 0a29 29 0 0 0-1.728-.056 4 4 0 0 1-1.473-.51 4.5 4.5 0 0 1-1.275-1.388 9 9 0 0 1-.822-1.898 11.8 11.8 0 0 1-.424-2.21 16 16 0 0 1-.057-2.323q.085-1.048.17-2.011a8.4 8.4 0 0 1 .453-1.926 3.5 3.5 0 0 1 1.133-1.389 5.2 5.2 0 0 1 1.728-.878 7.2 7.2 0 0 1 2.04-.34 7.8 7.8 0 0 1 2.096.227q1.304.226 2.096.907.794.679 1.19 1.643.425.963.51 2.124t0 2.351q-.198.057-.765.114a43 43 0 0 1-2.889.198q-.85.028-1.643.028-.765 0-1.388-.028m3.314-3.711a1.82 1.82 0 0 0-.793-.765 1.6 1.6 0 0 0-.453-.198 1.5 1.5 0 0 0-.539-.085q-.68 0-1.104.141a1.7 1.7 0 0 0-.68.397q-.255.255-.397.595a4.4 4.4 0 0 0-.17.708 3 3 0 0 0-.057.453q.029.114.284.17.255.03.793.029.566-.03 1.643-.029.736 0 1.105.029.367.028.51.028.17-.028.17-.085v-.311a2.03 2.03 0 0 0-.312-1.077m8.678-2.606q0 .312.028.708.142-.085.34-.198.227-.114.368-.227.596-.425 1.332-.68t1.501-.283a5.2 5.2 0 0 1 1.53.17q.737.198 1.331.708.142.142.284.482.14-.086.34-.17.198-.114.34-.227.594-.425 1.331-.68.736-.255 1.501-.283a5.2 5.2 0 0 1 1.53.17q.737.198 1.331.708.284.255.425 1.077.17.792.199 1.926.056 1.132.028 2.493 0 1.33-.028 2.72l-.057 2.634a28 28 0 0 0 .028 2.238q-.992.141-1.784.113h-1.757a18 18 0 0 1-.056-1.473v-1.7q.029-.877 0-1.756 0-.878-.057-1.643a62 62 0 0 1-.057-.737 6 6 0 0 0-.113-.821 2.6 2.6 0 0 0-.198-.708 1 1 0 0 0-.34-.482q-.029-.028-.057-.028-.029 0-.056-.029a2 2 0 0 0-.425-.141 2.6 2.6 0 0 0-.567-.057q-.283 0-.595.113a1.6 1.6 0 0 0-.538.284q.029 1.105 0 2.35l-.057 2.437-.056 2.323q0 1.105.056 1.955-.992.141-1.784.113h-1.757a17 17 0 0 1-.056-1.473v-1.7q.027-.877 0-1.756 0-.878-.057-1.643a62 62 0 0 1-.057-.737 6 6 0 0 0-.113-.821 2.6 2.6 0 0 0-.198-.708 1 1 0 0 0-.34-.482q-.028-.028-.057-.028-.028 0-.057-.029-.226-.113-.679-.17a1.63 1.63 0 0 0-.85.057q-.426.114-.765.51-.34.368-.397 1.133a23 23 0 0 0-.028 1.955l.057 1.898q.056.934.056 1.87 0 .934-.113 1.869v.113a4.2 4.2 0 0 1-.85.17 4.4 4.4 0 0 1-.708 0q-.368 0-.822-.028a8 8 0 0 0-1.133.028q0-3.484-.085-6.968a156 156 0 0 1 .057-7.224q.34.029.566.057h.85q.227-.03.567-.057.113 0 .396-.028.284-.057.567-.085.284-.03.51 0 .227 0 .227.085.056.48.028.793m16.678-.765a10.3 10.3 0 0 1 2.04.028q.198 1.02.453 2.436.255 1.389.538 2.833t.595 2.777q.312 1.302.623 2.152.312-.849.51-2.238.199-1.387.369-2.889.197-1.5.425-2.89.226-1.387.566-2.237.963.028 1.955-.029a17 17 0 0 1 2.181.029 121 121 0 0 0-.822 3.257q-.34 1.53-.679 3.003a50 50 0 0 0-.68 2.918 27 27 0 0 1-.737 3.003 15.7 15.7 0 0 1-1.105 2.804 7.4 7.4 0 0 1-1.813 2.295q-1.104.99-2.776 1.501-1.642.51-4.051.368-.283-.849-.283-1.926a9 9 0 0 1 .113-1.841q.68 0 1.388.056.737.057 1.304-.085.566-.113.849-.538.312-.424.17-1.36a81 81 0 0 0-1.501-6.855 718 718 0 0 0-1.785-6.629q1.02.114 2.153.057\"\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n fillRule: \"evenodd\",\n d: \"m241.898 13.62-1.253 3.455c-.227.626-.835 1.03-1.497.953-1.184-.14-3.05-.452-4.259-1.113s-2.478-2.063-3.234-2.985c-.422-.515-.411-1.246-.006-1.775l2.233-2.918 2.502 3.124c.379.473.931.774 1.533.838zm-5.151-1.924a2.27 2.27 0 0 0 1.533.839l3.802.47a.048.048 0 0 0 .044-.077l-3.056-4.032a.455.455 0 0 1 .715-.561l3.126 3.983c.102.162.2.34.257.499.342.966-.169 2.28-.345 2.6-.245.449-.614.818-.891 1.095a6 6 0 0 0-.248.257 6.7 6.7 0 0 0-1.405 2.455.41.41 0 0 0 .29.526l1.661.434a.416.416 0 0 0 .517-.464 7 7 0 0 1-.044-1.14c.026-.67.145-1.473.5-2.122 0 0 .23-.382.35-.64.304-.655.413-2.067.447-2.678l1.806.19a.756.756 0 0 0 .623-1.279l-5.192-5.347a2.28 2.28 0 0 0-1.176-.643l-7.304-1.486a.756.756 0 0 0-.741 1.214l2.365 2.954z\",\n clipRule: \"evenodd\"\n})));\nexport default SvgAcademyLogoDark;","var _path, _path2, _path3, _path4, _path5, _path6;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgAcademyLogoLight = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 248 33\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M93.393 23.186c-.915 0-1.787-.334-2.43-.98-.64-.643-1.072-1.616-1.072-2.933 0-1.332.433-2.305 1.072-2.944.642-.641 1.513-.968 2.43-.968.916 0 1.788.327 2.429.968.64.639 1.072 1.612 1.072 2.944s-.432 2.305-1.072 2.945-1.513.968-2.43.968m0-12.078c-4.647 0-8.166 3.418-8.166 8.165 0 4.716 3.518 8.166 8.166 8.166 4.647 0 8.165-3.45 8.165-8.166 0-4.747-3.519-8.165-8.165-8.165M54.753 23.3c-.915 0-1.786-.333-2.429-.979-.64-.643-1.073-1.617-1.073-2.933 0-1.333.433-2.306 1.073-2.945.641-.64 1.512-.968 2.43-.968.916 0 1.787.327 2.428.969.64.639 1.073 1.611 1.073 2.944s-.433 2.305-1.073 2.944c-.641.641-1.512.968-2.429.968m0-12.078c-4.647 0-8.166 3.419-8.166 8.166 0 4.716 3.519 8.165 8.166 8.165s8.166-3.45 8.166-8.165c0-4.747-3.52-8.166-8.166-8.166M114.257 27.39h4.636v-9.208c0-.76.239-1.423.658-1.892.417-.465 1.03-.76 1.829-.76.837 0 1.406.277 1.771.705.371.435.564 1.065.564 1.826v9.328h4.606v-9.207c0-.744.238-1.408.655-1.882.415-.47 1.022-.77 1.801-.77.854 0 1.422.278 1.781.704.367.434.555 1.064.555 1.827v9.328h4.514V17.24c0-2.081-.685-3.591-1.761-4.58-1.071-.982-2.499-1.419-3.937-1.419-1.019 0-1.955.174-2.795.596-.716.36-1.35.892-1.902 1.629-.894-1.455-2.527-2.225-4.457-2.225-1.408 0-3.038.558-4.063 1.644v-1.268h-4.455zM112.513 11.629v4.725l-.363-.073a5.7 5.7 0 0 0-1.149-.116c-.983 0-1.856.24-2.483.825-.623.58-1.052 1.547-1.052 3.107v7.292h-4.624V11.616h4.503v1.522c1.113-1.339 2.843-1.599 3.928-1.599a9 9 0 0 1 .962.062zM29.153 19.788h4.52l.051.05a.22.22 0 0 1 .063.136c.088.99.477 1.736 1.059 2.233.579.495 1.328.725 2.11.725.952 0 1.731-.35 2.27-.96.535-.607.813-1.449.813-2.402V6.358h4.887v13.348c0 4.274-3.269 7.847-7.937 7.847-2.332 0-4.287-.774-5.658-2.12-1.34-1.313-2.14-3.187-2.175-5.465zM84.57 8.499l.257.073V4.994l-.118-.054c-.181-.082-.472-.156-.808-.21a7.4 7.4 0 0 0-1.15-.092c-1.594 0-3.386.528-4.314 1.478S77 8.419 77 10.038v.756h-2.33v4.108H77v12.487h4.675000000000001V14.902h3.153v-4.108h-3.153v-.7c0-.727.254-1.146.58-1.39.335-.251.776-.34 1.178-.34.605 0 .956.083 1.138.135M72.997 23.699l.241-.074v3.592l-.11.054c-.17.083-.444.157-.76.212-.32.055-.697.092-1.081.092-1.498 0-3.172-.53-4.044-1.484-.872-.953-1.352-2.312-1.352-3.937v-7.25H63.7v-4.089h2.19V6.379h4.384v4.436h2.963v4.089h-2.963v7.192c0 .731.24 1.151.545 1.396.315.253.73.341 1.108.341.568 0 .898-.082 1.069-.134\",\n clipRule: \"evenodd\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M6.592 28.031c.5.485.147 1.315-.563 1.315H1.59c-.876 0-1.589-.692-1.589-1.54V23.5c0-.688.856-1.03 1.356-.546z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFB629\",\n d: \"M13.534 28.366a3.33 3.33 0 0 1 0-4.728l4.743-4.713a3.38 3.38 0 0 1 4.76 0 3.33 3.33 0 0 1 0 4.729l-4.744 4.712a3.38 3.38 0 0 1-4.76 0\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#09F\",\n d: \"M1.001 16.525a3.33 3.33 0 0 1 0-4.729L8.984 3.86a3.38 3.38 0 0 1 4.76 0 3.33 3.33 0 0 1 0 4.729L5.76 16.525a3.38 3.38 0 0 1-4.76 0\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF6100\",\n d: \"M7.528 22.181a3.33 3.33 0 0 1 0-4.728L18.314 6.737a3.38 3.38 0 0 1 4.76 0 3.33 3.33 0 0 1 0 4.729L12.287 22.18a3.38 3.38 0 0 1-4.76 0M152.156 13.562q.237.981.372 1.557l2.539 11.847V27a9 9 0 0 1-2.234.135 12.4 12.4 0 0 1-2.302-.27h-.034q-.203-.542-.406-1.287a48 48 0 0 0-.373-1.523 23 23 0 0 0-.372-1.49 8 8 0 0 0-.44-1.218 5 5 0 0 0-.677-.068h-.44q-.17 0-.406.034h-.576q-.237.541-.406 1.287-.136.71-.304 1.523a31 31 0 0 1-.305 1.523 5.4 5.4 0 0 1-.474 1.32q-.034 0-.068.034h-.033q-.271.068-1.354 0-1.084-.067-3.385-.034-.035 0-.068-.034.067-.237.237-1.32.17-1.082.474-2.81.304-1.725.711-3.96.44-2.268 1.015-4.806.576-2.54 1.252-5.28.678-2.743 1.49-5.45.237-.035.508-.035h1.827a44 44 0 0 0 1.828-.135q.102.44.305 1.354.237.88.474 2.031.27 1.118.541 2.403.305 1.287.576 2.471t.508 2.167m-4.367 3.79a25 25 0 0 1 1.286-.033q-.337-2.91-.609-4.536-.237-1.624-.44-2.2-.17-.576-.372-.237-.17.305-.339 1.286l-.338 2.471q-.17 1.49-.407 3.216.576.034 1.219.034m18.295 4.124q.482 0 .794.085l-.114 1.445q-.057.708-.141 1.331a7 7 0 0 1-.227 1.048q-.113.425-.312.624a2.6 2.6 0 0 1-1.274.963 5.8 5.8 0 0 1-1.672.34q-.906.084-1.869 0a30 30 0 0 0-1.757-.057q-1.445-.255-2.436-1.246a3.46 3.46 0 0 1-1.048-1.7 9.8 9.8 0 0 1-.34-2.125 30 30 0 0 1-.028-2.266 12 12 0 0 0-.057-2.068q0-1.02.17-2.04a4.4 4.4 0 0 1 .198-.85q.171-.537.255-.82a1.9 1.9 0 0 1 .623-.738 4.3 4.3 0 0 1 1.02-.51 5.5 5.5 0 0 1 1.247-.311q.68-.085 1.359-.085.567.057 1.077.028a5.7 5.7 0 0 1 1.133 0q.906.058 1.728.34a3.8 3.8 0 0 1 1.416.85q.397.284.595.765.227.482.34 1.133a8.6 8.6 0 0 1 .114 1.473q.027.794.056 1.728a3.8 3.8 0 0 1-.85.085q-.453 0-.963-.028a17 17 0 0 1-.963-.085 30 30 0 0 1-.821-.113q-.142-.991-.822-1.53-.68-.567-1.785-.283a1.87 1.87 0 0 0-.963.623q-.17.113-.255.566-.113.878-.113 1.785t-.057 1.898q-.056.651.312 1.02.396.367.935.51a3.6 3.6 0 0 0 1.105.056q.566-.084.906-.311.283-.199.425-.652.17-.48.255-.85.283.03.765.029.482-.03 1.02-.057a9 9 0 0 1 1.019 0m12.221-8.668q.708.028 1.614.085.029.17.029.34.028.17.028.34v.283a92 92 0 0 0 .028 6.034 58 58 0 0 1-.085 5.977q0 .367-.028.736 0 .37-.34.425h-.34q-.453 0-.935-.028a7 7 0 0 0-.906-.057q-.312 0-.623.057a6 6 0 0 1-.595.028.43.43 0 0 1-.284-.226 1.3 1.3 0 0 1-.056-.397q0-.312.056-.51.057-.198.057-.481-.68.68-1.728 1.161-1.02.482-2.011.482a2.64 2.64 0 0 1-1.898-.765q-.765-.765-1.275-1.898a11 11 0 0 1-.765-2.465 15 15 0 0 1-.227-2.464q0-1.417.369-2.606.368-1.191.991-2.04a4.75 4.75 0 0 1 1.53-1.36 3.9 3.9 0 0 1 1.87-.538q.51 0 .934.028.454 0 .822.142.368.113.651.397.284.255.482.736a3.3 3.3 0 0 1 .028-.765q.085-.34.085-.68 0-.028.17-.028.199-.028.425 0h.765q.481.029 1.162.057m-5.836 4.476q-.651.538-.793 1.246-.114.368-.142.765a10 10 0 0 0-.028.736q0 1.275.651 2.182.68.878 1.87.878.709 0 1.048-.227.369-.255.51-.68.17-.453.17-1.076.028-.652.028-1.445 0-.99-.028-1.558 0-.595-.142-.907a.6.6 0 0 0-.425-.396q-.282-.085-.878-.085-1.161 0-1.841.567m16.843-9.009q.029-.311.057-.878v-.312q0-.027.368-.056.397-.057.935-.057a13 13 0 0 1 1.19 0q.623 0 1.076.085v1.87q0 4.731.142 9.348t.028 8.697q-.877 0-1.926.028-1.048.057-1.898-.057a.5.5 0 0 1-.028-.198q0-.284-.029-.453v-.482a.4.4 0 0 0-.141-.198q-.057-.085-.142.085-.425.85-1.133 1.105a3.3 3.3 0 0 1-1.501.113q-1.615-.113-2.55-.822a4.7 4.7 0 0 1-1.416-1.84 10 10 0 0 1-.623-2.522 34 34 0 0 1-.17-2.805q0-.99.113-1.926.141-.935.396-1.7.283-.793.709-1.33a2.43 2.43 0 0 1 1.076-.794 5.8 5.8 0 0 1 1.671-.34 9 9 0 0 1 1.757 0q.82.057 1.388.255.567.198.623.453-.028-1.33-.028-2.153V9.323a5 5 0 0 0 .028-.51q.028-.255.028-.538m-3.512 8.3q-.68.51-.822 1.502a3 3 0 0 0-.17.821q-.028.425-.028.822 0 .707.17 1.388.17.65.51 1.19.34.51.821.821.482.312 1.077.312.708 0 1.105-.312.425-.312.623-.85.226-.539.255-1.274.056-.766.056-1.672 0-1.104-.056-1.728-.028-.652-.199-.991a.77.77 0 0 0-.538-.425q-.34-.114-.935-.114-1.161 0-1.869.51m13.594 3.4a7 7 0 0 1-.906-.085v.51q.028.85.056 1.388a2.5 2.5 0 0 0 .369 1.048q.339.651.963.963t1.218.198.991-.68q.425-.594.369-1.756.282.028.764.028l.992-.056a9 9 0 0 1 1.02 0q.481 0 .793.085l-.113 1.444q-.057.709-.142 1.332a7 7 0 0 1-.227 1.048q-.113.425-.311.595a2.6 2.6 0 0 1-1.247.963 5.8 5.8 0 0 1-1.671.34q-.907.057-1.87 0a29 29 0 0 0-1.728-.057 4 4 0 0 1-1.473-.51 4.5 4.5 0 0 1-1.275-1.388 9 9 0 0 1-.821-1.898 11.8 11.8 0 0 1-.425-2.21 16 16 0 0 1-.057-2.322q.086-1.049.17-2.011a8.4 8.4 0 0 1 .454-1.927 3.5 3.5 0 0 1 1.133-1.388 5.2 5.2 0 0 1 1.728-.878 7.2 7.2 0 0 1 2.039-.34 7.8 7.8 0 0 1 2.097.227q1.302.226 2.096.906.793.68 1.19 1.643.424.963.51 2.125.084 1.161 0 2.351-.2.057-.765.113a44 44 0 0 1-4.533.227q-.764 0-1.388-.028m3.314-3.711a1.8 1.8 0 0 0-.793-.765 1.6 1.6 0 0 0-.453-.199 1.5 1.5 0 0 0-.538-.085q-.68 0-1.105.142t-.68.397-.396.595a4 4 0 0 0-.17.708 3 3 0 0 0-.057.453q.028.114.283.17.255.028.793.028.567-.027 1.643-.028.737 0 1.105.028.369.03.51.029.17-.029.17-.085v-.312a2.03 2.03 0 0 0-.312-1.076m8.678-2.606q0 .31.029.708.14-.085.34-.199.226-.112.368-.226.595-.425 1.331-.68a5.15 5.15 0 0 1 3.031-.113q.737.198 1.332.708.141.142.283.481.142-.084.34-.17.199-.112.34-.226.595-.425 1.331-.68.737-.255 1.502-.283a5.2 5.2 0 0 1 1.53.17q.736.198 1.331.708.283.255.425 1.076.17.793.198 1.927.057 1.133.028 2.492 0 1.332-.028 2.72l-.056 2.634q-.029 1.275.028 2.238a10 10 0 0 1-1.785.114h-1.756a17 17 0 0 1-.057-1.473v-1.7q.029-.878 0-1.756 0-.88-.056-1.643a63 63 0 0 1-.057-.737 6 6 0 0 0-.113-.822 2.6 2.6 0 0 0-.199-.708 1 1 0 0 0-.34-.481q-.028-.03-.056-.029t-.057-.028a2 2 0 0 0-.425-.142 2.6 2.6 0 0 0-.566-.056q-.284 0-.595.113a1.7 1.7 0 0 0-.539.283q.029 1.105 0 2.352l-.056 2.436-.057 2.323q0 1.105.057 1.954a10 10 0 0 1-1.785.114h-1.756a17 17 0 0 1-.057-1.473v-1.7q.029-.878 0-1.756 0-.88-.057-1.643l-.056-.737a6 6 0 0 0-.114-.822 2.5 2.5 0 0 0-.198-.708 1 1 0 0 0-.34-.481q-.029-.03-.056-.029-.029 0-.057-.028-.227-.113-.68-.17a1.63 1.63 0 0 0-.85.057q-.424.112-.765.51-.339.368-.396 1.133a23 23 0 0 0-.029 1.954l.057 1.898q.057.936.057 1.87 0 .935-.114 1.87v.113a4.2 4.2 0 0 1-.849.17 4.4 4.4 0 0 1-.709 0q-.368 0-.821-.028a8 8 0 0 0-1.133.028q0-3.484-.085-6.969-.057-3.484.056-7.223.34.027.567.056h.85q.227-.028.566-.056.114 0 .397-.029.283-.057.567-.085.282-.029.509 0 .227 0 .227.085.057.482.028.793m16.679-.765a10.3 10.3 0 0 1 2.039.028q.2 1.02.454 2.436.255 1.389.538 2.833t.595 2.776q.31 1.303.623 2.153.312-.85.51-2.238t.368-2.89q.198-1.5.425-2.889t.567-2.238q.963.03 1.954-.028a17 17 0 0 1 2.181.028 117 117 0 0 0-.821 3.258q-.34 1.53-.68 3.003a52 52 0 0 0-.68 2.918 27 27 0 0 1-.736 3.002 16 16 0 0 1-1.105 2.805 7.4 7.4 0 0 1-1.813 2.294q-1.105.992-2.776 1.502-1.644.51-4.051.368-.283-.85-.283-1.926a9 9 0 0 1 .113-1.842q.68 0 1.388.057.736.057 1.303-.085.567-.113.85-.538.311-.425.17-1.36a81 81 0 0 0-1.502-6.855 751 751 0 0 0-1.784-6.629q1.02.112 2.153.057\"\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"m241.897 13.24-1.252 3.456c-.227.626-.836 1.03-1.497.952-1.185-.139-3.05-.45-4.259-1.112-1.209-.661-2.479-2.063-3.235-2.986-.422-.515-.41-1.245-.006-1.774l2.233-2.919 2.502 3.124c.379.473.931.775 1.534.839zm-5.151-1.923c.379.473.931.775 1.534.839l3.802.469c.042.005.069-.043.044-.077l-3.056-4.032a.454.454 0 0 1 .714-.56l3.127 3.983c.102.162.199.34.256.499.343.965-.169 2.28-.344 2.6-.246.449-.615.818-.892 1.095-.097.097-.183.183-.248.257a6.7 6.7 0 0 0-1.404 2.455.414.414 0 0 0 .29.526l1.66.434a.42.42 0 0 0 .518-.464 7 7 0 0 1-.044-1.14c.025-.67.145-1.474.499-2.122 0 0 .231-.382.351-.641.304-.655.412-2.067.446-2.678l1.807.191a.758.758 0 0 0 .622-1.28l-5.192-5.346a2.27 2.27 0 0 0-1.176-.643l-7.303-1.487a.757.757 0 0 0-.742 1.215l2.366 2.954z\",\n clipRule: \"evenodd\"\n})));\nexport default SvgAcademyLogoLight;","\n \n\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgWatched = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E3E5F5\",\n fillRule: \"evenodd\",\n stroke: \"#0A1551\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8\",\n clipRule: \"evenodd\"\n})));\nexport default SvgWatched;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgHalfWatched = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E3E5F5\",\n fillRule: \"evenodd\",\n stroke: \"#0A1551\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8\",\n clipRule: \"evenodd\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"M12 8a4 4 0 1 1-8 0h8\"\n})));\nexport default SvgHalfWatched;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgCheck = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#64B200\",\n fillRule: \"evenodd\",\n d: \"M8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12m3.113-7.25a.545.545 0 0 0-.771-.772L7.455 8.865l-1.251-1.25a.545.545 0 1 0-.772.77l1.637 1.637a.545.545 0 0 0 .771 0z\",\n clipRule: \"evenodd\"\n})));\nexport default SvgCheck;","\n \n\n","\n \n\n","\n \n\n","var _path, _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgLogo = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 23 26\"\n}, props), /*#__PURE__*/React.createElement(\"g\", {\n style: {\n mixBlendMode: \"lighten\"\n }\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"logo_svg__a\",\n width: 23,\n height: 26,\n x: 0,\n y: 0,\n maskUnits: \"userSpaceOnUse\",\n style: {\n maskType: \"alpha\"\n }\n}, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A2AFD5\",\n d: \"M17.365 3.54a3.007 3.007 0 1 1 4.254 4.256L10.984 18.434A3.007 3.007 0 1 1 6.73 14.18zM8.325.881a3.007 3.007 0 1 1 4.254 4.256l-7.444 7.446A3.007 3.007 0 1 1 .881 8.328zM16.833 15.775a3.01 3.01 0 0 1 4.254 4.255l-4.254 4.255a3.01 3.01 0 0 1-4.254-4.255zM1.504 25.2h4.2c.67 0 1.006-.81.532-1.284l-4.952-4.954A.752.752 0 0 0 0 19.494v4.202c0 .83.673 1.504 1.504 1.504\"\n}))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#logo_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillOpacity: 0.4,\n d: \"M-10-8h42v42h-42z\"\n})))));\nexport default SvgLogo;","var _rect, _path, _path2, _path3, _path4, _path5, _path6, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgLeft = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 300 301\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 112.604,\n height: 111.891,\n x: 0.406,\n y: 188.132,\n stroke: \"url(#left_svg__a)\",\n strokeWidth: 0.812,\n rx: 31.178\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#left_svg__b)\",\n fillRule: \"evenodd\",\n stroke: \"url(#left_svg__c)\",\n strokeWidth: 0.865,\n d: \"M37.588 222.518a2.566 2.566 0 0 0-2.573 2.558v37.508a2.565 2.565 0 0 0 2.573 2.557h37.746a2.566 2.566 0 0 0 2.573-2.557v-37.508a2.566 2.566 0 0 0-2.573-2.558zm.644 6.393c-.593 0-1.073.477-1.073 1.066v5.328c0 .588.48 1.065 1.073 1.065h8.578c.592 0 1.072-.477 1.072-1.065v-5.328c0-.589-.48-1.066-1.072-1.066zm13.94 0c-.592 0-1.073.477-1.073 1.066v5.328c0 .588.48 1.065 1.073 1.065h8.578c.593 0 1.073-.477 1.073-1.065v-5.328c0-.589-.48-1.066-1.073-1.066zm12.868 1.066c0-.589.48-1.066 1.072-1.066h8.578c.593 0 1.073.477 1.073 1.066v5.328c0 .588-.48 1.065-1.073 1.065h-8.578a1.07 1.07 0 0 1-1.072-1.065zm-26.808 9.589c-.593 0-1.073.477-1.073 1.066v7.459c0 .588.48 1.066 1.073 1.066h8.578a1.07 1.07 0 0 0 1.072-1.066v-7.459c0-.589-.48-1.066-1.072-1.066zm12.867 1.066c0-.589.48-1.066 1.073-1.066h8.578c.593 0 1.073.477 1.073 1.066v7.459a1.07 1.07 0 0 1-1.073 1.066h-8.578a1.07 1.07 0 0 1-1.073-1.066zm15.013-1.066c-.592 0-1.072.477-1.072 1.066v7.459c0 .588.48 1.066 1.072 1.066h8.578a1.07 1.07 0 0 0 1.073-1.066v-7.459c0-.589-.48-1.066-1.073-1.066zM37.159 253.42c0-.589.48-1.066 1.073-1.066h8.578c.592 0 1.072.477 1.072 1.066v7.459c0 .588-.48 1.065-1.072 1.065h-8.578a1.07 1.07 0 0 1-1.073-1.065zm15.013-1.066c-.592 0-1.073.477-1.073 1.066v7.459c0 .588.48 1.065 1.073 1.065h8.578c.593 0 1.073-.477 1.073-1.065v-7.459c0-.589-.48-1.066-1.073-1.066zm12.868 1.066c0-.589.48-1.066 1.072-1.066h8.578c.593 0 1.073.477 1.073 1.066v7.459c0 .588-.48 1.065-1.073 1.065h-8.578a1.07 1.07 0 0 1-1.072-1.065z\",\n clipRule: \"evenodd\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"url(#left_svg__d)\",\n strokeWidth: 0.811,\n d: \"M135.021 127.118c0-17.219 13.96-31.179 31.179-31.179h50.055c17.219 0 31.179 13.959 31.179 31.179v50.055c0 17.219-13.96 31.179-31.179 31.179H166.2c-17.219 0-31.179-13.96-31.179-31.179z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#left_svg__e)\",\n d: \"M167.723 167.855V148.36c0-.849.953-1.349 1.652-.868l17.948 12.364a6.32 6.32 0 0 0 7.174 0l17.948-12.364a1.054 1.054 0 0 1 1.651.868v19.495a6.323 6.323 0 0 1-6.323 6.323h-33.726a6.324 6.324 0 0 1-6.324-6.323\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#left_svg__f)\",\n fillRule: \"evenodd\",\n d: \"m172.361 145.754 14.962 10.308a6.32 6.32 0 0 0 7.175 0l14.962-10.307v-11.627a6.324 6.324 0 0 0-6.324-6.323h-24.452a6.323 6.323 0 0 0-6.323 6.323zm6.956-8.675a2.32 2.32 0 0 1 2.319-2.318h18.549a2.318 2.318 0 0 1 0 4.637h-18.549a2.32 2.32 0 0 1-2.319-2.319m0 8.136a2.32 2.32 0 0 1 2.319-2.318h12.225a2.318 2.318 0 1 1 0 4.637h-12.225a2.32 2.32 0 0 1-2.319-2.319m20.698-2.318a2.32 2.32 0 0 0 0 4.637h.169a2.318 2.318 0 0 0 0-4.637z\",\n clipRule: \"evenodd\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"url(#left_svg__g)\",\n strokeWidth: 0.811,\n d: \"M31.584.405H81.64c17.22 0 31.179 13.96 31.179 31.18v50.054c0 17.22-13.96 31.179-31.18 31.179H31.585c-17.22 0-31.179-13.96-31.179-31.18V31.585c0-17.22 13.96-31.179 31.18-31.179Z\"\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#left_svg__h)\",\n fillRule: \"evenodd\",\n d: \"M42.954 31.427h27.665a6.916 6.916 0 0 1 6.917 6.916v36.888a6.916 6.916 0 0 1-6.917 6.916H42.954a6.916 6.916 0 0 1-6.916-6.916V38.343a6.916 6.916 0 0 1 6.916-6.916m3.78 13.833a2.628 2.628 0 1 0 0 5.256h20.104a2.628 2.628 0 1 0 0-5.256zm-2.627 11.527a2.63 2.63 0 0 1 2.628-2.629h20.103a2.628 2.628 0 1 1 0 5.257H46.735a2.63 2.63 0 0 1-2.628-2.628m2.628 6.27a2.628 2.628 0 1 0 0 5.257h20.103a2.628 2.628 0 1 0 0-5.256z\",\n clipRule: \"evenodd\"\n})), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"left_svg__a\",\n x1: 56.708,\n x2: 56.708,\n y1: 300.621,\n y2: 187.726,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#009432\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#64D342\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"left_svg__b\",\n x1: 56.461,\n x2: 56.461,\n y1: 265.214,\n y2: 222.518,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#009432\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#64D342\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"left_svg__c\",\n x1: 56.461,\n x2: 56.461,\n y1: 265.214,\n y2: 222.518,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#009432\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#64D342\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"left_svg__d\",\n x1: 190.725,\n x2: 190.725,\n y1: 96.87,\n y2: 210.093,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#6CCCE0\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#249BB4\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"left_svg__e\",\n x1: 190.704,\n x2: 190.704,\n y1: 128.352,\n y2: 174.726,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#6CCCE0\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#249BB4\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"left_svg__f\",\n x1: 190.704,\n x2: 190.704,\n y1: 128.352,\n y2: 174.726,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#6CCCE0\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#249BB4\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"left_svg__g\",\n x1: 56.109,\n x2: 56.109,\n y1: 1.336,\n y2: 114.559,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#F6A41C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FB7B0C\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"left_svg__h\",\n x1: 56.602,\n x2: 56.602,\n y1: 32.025,\n y2: 82.745,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#F6A41C\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FB7B0C\"\n})))));\nexport default SvgLeft;","var _rect, _g, _rect2, _path, _path2, _path3, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgRight = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 300 300\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 112.41,\n height: 112.41,\n x: 187.075,\n y: 186.78,\n stroke: \"url(#right_svg__a)\",\n strokeWidth: 0.803,\n rx: 30.828\n})), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#right_svg__b)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#right_svg__c)\",\n fillRule: \"evenodd\",\n d: \"M222.142 261.334v-37.032a6.944 6.944 0 0 1 6.944-6.944h20.269c1.841 0 3.607.732 4.91 2.034l3.752 3.753 3.753 3.752a6.95 6.95 0 0 1 2.033 4.91v10.581l-.093.091-10.808 10.808a4.64 4.64 0 0 0-1.218 2.151l-.345 1.381a2 2 0 0 0-.152-.126c-.779-.552-2.116-.396-2.423-.306-1.049.306-4.632 1.518-7.053 2.667l-.476.225c-.368.175-.641.232-.933.294-.193.041-.393.083-.634.162-.419.136-1.114.365-1.209.418.101-.483.352-1.069.569-1.576.199-.463.369-.86.369-1.049 0-.656-.09-.845-.22-1.116a5 5 0 0 1-.098-.213 2.3 2.3 0 0 1-.078-.376c-.076-.467-.195-1.197-.544-1.445-.647-.46-1.661-.358-2.008-.323-.754.016-1.342.306-1.972.616q-.16.08-.327.159c-1.358.648-2.628 1.69-3.047 2.034l-.092.075c-.545.58-.984 1.288-.654 2.069l.002.006c.104.248.666 1.582 2.312-.007.286-.231 1.348-.688 1.348-.688s2.428-1.51 2.557-1.513l.041-.002c.075-.006.123-.009.123.135 0 .17-.291.589-.291.589s-.402.89-.422 1.48c-.017.514.106.861.254 1.276.055.155.113.319.168.505.06.199.093.386.124.562.069.394.13.736.463 1.062.358.35.587.494 1.158.551.683.069 1.338-.043 2.141-.18q.21-.036.436-.073c.41-.067.802-.262 1.234-.475a9 9 0 0 1 1.08-.474c2.532-.874 3.962-1.504 5.076-1.994.924-.407 1.629-.718 2.565-.992a.16.16 0 0 1 .119.016l-.043.176c-.601 2.403 1.575 4.579 3.978 3.978l3.53-.882a4.64 4.64 0 0 0 2.151-1.218l3.342-3.343v3.831a6.943 6.943 0 0 1-6.943 6.944h-27.774a6.944 6.944 0 0 1-6.944-6.944m10.74-25.459a2.638 2.638 0 1 0 0 5.277h20.182a2.64 2.64 0 0 0 0-5.277zm0 9.072a2.639 2.639 0 1 0 0 5.277h20.182a2.639 2.639 0 1 0 0-5.277zm19.349-24.117v5.555a3.703 3.703 0 0 0 3.703 3.703h5.555z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"M268.08 244.115a1.934 1.934 0 0 0-2.733 0l-4.947 4.948-5.861 5.861a2.3 2.3 0 0 0-.609 1.075l-.883 3.53a.966.966 0 0 0 1.172 1.172l3.53-.883a2.3 2.3 0 0 0 1.075-.608l5.861-5.861 4.948-4.948a1.93 1.93 0 0 0 0-2.733z\"\n}))), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 112.41,\n height: 112.41,\n x: 187.075,\n y: 0.401,\n stroke: \"url(#right_svg__d)\",\n strokeWidth: 0.803,\n rx: 30.828\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#right_svg__e)\",\n fillRule: \"evenodd\",\n d: \"M229.571 30.85h27.83a6.957 6.957 0 0 1 6.957 6.958v37.106a6.957 6.957 0 0 1-6.957 6.958h-27.83a6.96 6.96 0 0 1-6.958-6.958V37.808a6.96 6.96 0 0 1 6.958-6.958m25.65 14.24a2.644 2.644 0 0 0-5.288 0V69.95a2.644 2.644 0 0 0 5.288 0zm-9.091 6.957a2.644 2.644 0 0 0-5.288 0v17.904a2.644 2.644 0 0 0 5.288 0zm-11.735 4.314a2.643 2.643 0 0 1 2.643 2.644V69.95a2.643 2.643 0 1 1-5.287 0V59.005a2.643 2.643 0 0 1 2.644-2.644\",\n clipRule: \"evenodd\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"url(#right_svg__f)\",\n strokeWidth: 0.802,\n d: \"M53.401 125.558c0-17.037 13.81-30.847 30.847-30.847h50.717c17.036 0 30.846 13.81 30.846 30.847v50.716c0 17.037-13.81 30.847-30.846 30.847H84.248c-17.036 0-30.847-13.81-30.847-30.847z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#right_svg__g)\",\n fillRule: \"evenodd\",\n d: \"M93.628 127.824a6.95 6.95 0 0 0-6.949 6.949v32.426a6.95 6.95 0 0 0 6.949 6.949h32.427a6.95 6.95 0 0 0 6.948-6.949v-32.426a6.95 6.95 0 0 0-6.948-6.949zm1.158 5.79a2.316 2.316 0 0 0-2.316 2.317v10.423a2.316 2.316 0 0 0 2.316 2.316h10.423a2.316 2.316 0 0 0 2.316-2.316v-10.423a2.316 2.316 0 0 0-2.316-2.317zm19.688 0a2.316 2.316 0 0 0-2.316 2.317v10.423a2.316 2.316 0 0 0 2.316 2.316h10.423a2.316 2.316 0 0 0 2.316-2.316v-10.423a2.316 2.316 0 0 0-2.316-2.317zM92.47 155.618a2.316 2.316 0 0 1 2.316-2.316h10.423a2.316 2.316 0 0 1 2.316 2.316v10.423a2.316 2.316 0 0 1-2.316 2.317H94.786a2.316 2.316 0 0 1-2.316-2.317zm28.952-.694a1.62 1.62 0 1 0-3.242 0v4.285h-4.401a1.62 1.62 0 1 0 0 3.242h4.401v4.285a1.622 1.622 0 1 0 3.242 0v-4.285h4.17a1.621 1.621 0 0 0 0-3.242h-4.17z\",\n clipRule: \"evenodd\"\n})), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"right_svg__a\",\n x1: 243.28,\n x2: 243.28,\n y1: 186.379,\n y2: 299.591,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#A1E02D\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#5C8B05\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"right_svg__c\",\n x1: 242.973,\n x2: 242.973,\n y1: 217.358,\n y2: 268.278,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#A1E02D\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#5C8B05\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"right_svg__d\",\n x1: 243.28,\n x2: 243.28,\n y1: 0,\n y2: 113.212,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#32B5FF\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#0075E3\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"right_svg__e\",\n x1: 243.486,\n x2: 243.486,\n y1: 30.85,\n y2: 81.872,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#32B5FF\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#0075E3\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"right_svg__f\",\n x1: 109.606,\n x2: 109.606,\n y1: 94.31,\n y2: 207.522,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#9C4DD3\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#802DB9\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"right_svg__g\",\n x1: 109.841,\n x2: 109.841,\n y1: 127.824,\n y2: 174.148,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#9C4DD3\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#802DB9\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"right_svg__b\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M215.199 215.044h55.548v55.548h-55.548z\"\n})))));\nexport default SvgRight;","\n \n \n\n","var _g, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgCheck = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 25 24\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#check_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10.944 2.1a2 2 0 0 1 2.7-.116l.128.117L15.672 4h2.686a2 2 0 0 1 1.994 1.85l.006.15v2.686l1.9 1.9a2 2 0 0 1 .116 2.701l-.117.127-1.9 1.9V18a2 2 0 0 1-1.85 1.995l-.149.005h-2.685l-1.9 1.9a2 2 0 0 1-2.7.116l-.128-.116-1.9-1.9H6.358a2 2 0 0 1-1.995-1.85L4.358 18v-2.686l-1.9-1.9a2 2 0 0 1-.116-2.701l.116-.127 1.9-1.9V6a2 2 0 0 1 1.85-1.994L6.358 4h2.686zm4.493 6.883-4.244 4.244-1.768-1.768a1 1 0 0 0-1.414 1.415l2.404 2.404a1.1 1.1 0 0 0 1.556 0l4.88-4.881a1 1 0 0 0-1.414-1.414\",\n clipRule: \"evenodd\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"check_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M.358 0h24v24h-24z\"\n})))));\nexport default SvgCheck;","var _circle, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgBadge = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12,\n cy: 12,\n r: 12,\n fill: \"#6C73A8\"\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M12 5.4 6.6 7.8v3.6c0 3.33 2.304 6.444 5.4 7.2 3.096-.756 5.4-3.87 5.4-7.2V7.8z\"\n})));\nexport default SvgBadge;","var _circle, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgCourse = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12,\n cy: 12,\n r: 12,\n fill: \"#6C73A8\"\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M15.968 19.2H8.143a.944.944 0 0 1-.943-.943V6.943A.944.944 0 0 1 8.143 6h7.825a.944.944 0 0 1 .943.943v11.314a.945.945 0 0 1-.943.943M13.8 12.6l2.168 1.466V6.943h-4.296v7.123z\"\n})));\nexport default SvgCourse;","var _g, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgCer = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 269 183\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#cer_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M9 7h251v165.743H9z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F4F7FF\",\n d: \"M119.447 123.82c1.373 1.331.403 3.612-1.547 3.612h-12.204c-2.408 0-4.367-1.899-4.367-4.233v-11.831c0-1.89 2.353-2.831 3.726-1.5zM138.526 124.741a9.15 9.15 0 0 1 0-12.997l13.038-12.952c3.612-3.588 9.469-3.588 13.081 0a9.147 9.147 0 0 1 0 12.997l-13.037 12.952c-3.612 3.588-9.469 3.588-13.082 0M104.083 92.196a9.15 9.15 0 0 1 0-12.996l21.94-21.813c3.612-3.588 9.469-3.588 13.081 0a9.146 9.146 0 0 1 0 12.997l-21.939 21.812c-3.613 3.589-9.47 3.589-13.082 0M122.018 107.742a9.15 9.15 0 0 1 0-12.996l29.645-29.452c3.613-3.588 9.469-3.588 13.082 0a9.15 9.15 0 0 1 0 12.997L135.1 107.742c-3.612 3.589-9.469 3.589-13.082 0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"M56.874 143.904v2.204h-.54v-2.204h-.495v-.473h.495v-.45q0-.223.067-.395a.9.9 0 0 1 .189-.29.8.8 0 0 1 .278-.172 1 1 0 0 1 .345-.061.8.8 0 0 1 .311.055v.468a.695.695 0 0 0-.228-.034.53.53 0 0 0-.283.089.4.4 0 0 0-.1.139.6.6 0 0 0-.04.229v.422h.646v.473zm2.243 1.82a.8.8 0 0 0 .317-.062q.15-.06.267-.183a.9.9 0 0 0 .184-.301q.066-.178.067-.411 0-.234-.067-.406a.9.9 0 0 0-.184-.301.8.8 0 0 0-.267-.183.83.83 0 0 0-.901.183.9.9 0 0 0-.184.301q-.066.172-.067.406 0 .233.067.411a.9.9 0 0 0 .184.301.8.8 0 0 0 .267.183.8.8 0 0 0 .317.062m0-2.376q.3 0 .55.111.251.106.435.295.183.189.284.451.1.255.1.562 0 .306-.1.567a1.3 1.3 0 0 1-.718.751q-.25.106-.551.106-.3 0-.55-.106a1.307 1.307 0 0 1-.718-.751 1.6 1.6 0 0 1-.1-.567q0-.306.1-.562a1.3 1.3 0 0 1 .717-.746q.25-.111.551-.111m3.523.612a2 2 0 0 0-.228-.017.75.75 0 0 0-.534.195q-.2.19-.2.629v1.341h-.523v-2.677h.512v.468a.9.9 0 0 1 .166-.251.88.88 0 0 1 .735-.256 1 1 0 0 1 .072.012zm2.171 1.285q.028.212.184.356.155.145.44.145.221 0 .339-.106a.33.33 0 0 0 .116-.25.3.3 0 0 0-.089-.217.5.5 0 0 0-.255-.128l-.457-.1a.9.9 0 0 1-.495-.267.72.72 0 0 1-.172-.484q0-.173.072-.323a.93.93 0 0 1 .506-.456q.178-.067.373-.067.273 0 .456.078a.9.9 0 0 1 .306.195.8.8 0 0 1 .173.233q.06.122.083.212l-.462.172a1 1 0 0 0-.039-.128.487.487 0 0 0-.256-.267.6.6 0 0 0-.261-.05.46.46 0 0 0-.323.111.32.32 0 0 0-.122.245q0 .256.306.323l.434.094q.367.078.55.29a.72.72 0 0 1 .19.506q0 .145-.061.289a.8.8 0 0 1-.184.267.8.8 0 0 1-.3.195 1.1 1.1 0 0 1-.434.078q-.278 0-.479-.078a1.1 1.1 0 0 1-.328-.195 1 1 0 0 1-.2-.25.9.9 0 0 1-.084-.256zm4.03.54a.68.68 0 0 1-.334.311q-.223.095-.456.095-.234 0-.423-.083a.9.9 0 0 1-.312-.229 1.1 1.1 0 0 1-.2-.339 1.3 1.3 0 0 1-.067-.423v-1.686h.523v1.608q0 .14.034.267a.6.6 0 0 0 .105.217q.072.094.184.151a.7.7 0 0 0 .284.055q.317 0 .472-.189a.74.74 0 0 0 .162-.495v-1.614h.523v2.181q0 .162.005.295.011.128.023.201h-.501a1 1 0 0 1-.017-.14 3 3 0 0 1-.005-.183m2.484-1.953q-.162 0-.306.061a.75.75 0 0 0-.44.468q-.066.172-.066.406 0 .228.066.406a1 1 0 0 0 .178.295.75.75 0 0 0 .262.178q.15.061.311.061a.8.8 0 0 0 .318-.056.7.7 0 0 0 .217-.139.7.7 0 0 0 .139-.178q.05-.1.072-.178l.462.2a1.4 1.4 0 0 1-.145.295 1.16 1.16 0 0 1-.6.462 1.3 1.3 0 0 1-.462.078q-.296 0-.546-.106a1.3 1.3 0 0 1-.423-.3 1.5 1.5 0 0 1-.283-.451 1.6 1.6 0 0 1-.1-.567q0-.312.1-.573.106-.262.283-.445a1.3 1.3 0 0 1 .429-.295 1.35 1.35 0 0 1 .534-.106q.267 0 .467.078a1.1 1.1 0 0 1 .59.473q.09.15.133.3l-.472.201a1 1 0 0 0-.078-.201.6.6 0 0 0-.14-.178.71.71 0 0 0-.5-.189m2.923 0q-.162 0-.306.061a.75.75 0 0 0-.44.468 1.1 1.1 0 0 0-.066.406q0 .228.066.406a1 1 0 0 0 .178.295.75.75 0 0 0 .262.178q.15.061.312.061a.8.8 0 0 0 .317-.056.7.7 0 0 0 .217-.139.7.7 0 0 0 .139-.178q.05-.1.072-.178l.462.2a1.4 1.4 0 0 1-.145.295 1.16 1.16 0 0 1-.6.462 1.3 1.3 0 0 1-.462.078q-.296 0-.546-.106a1.3 1.3 0 0 1-.422-.3 1.5 1.5 0 0 1-.284-.451 1.6 1.6 0 0 1-.1-.567q0-.312.1-.573.105-.262.284-.445a1.3 1.3 0 0 1 .428-.295 1.35 1.35 0 0 1 .534-.106q.267 0 .467.078a1.1 1.1 0 0 1 .59.473q.09.15.134.3l-.473.201a1 1 0 0 0-.078-.201.6.6 0 0 0-.14-.178.71.71 0 0 0-.5-.189m3.602.662a.72.72 0 0 0-.195-.484q-.183-.2-.54-.2a.71.71 0 0 0-.667.434.7.7 0 0 0-.061.25zm.528.851q-.055.178-.166.334a1.2 1.2 0 0 1-.607.445 1.41 1.41 0 0 1-.94-.028 1.3 1.3 0 0 1-.434-.278 1.4 1.4 0 0 1-.295-.45 1.6 1.6 0 0 1-.106-.607 1.5 1.5 0 0 1 .384-1.018 1.2 1.2 0 0 1 .412-.289q.234-.106.484-.106.306 0 .545.106.245.1.406.283.162.184.245.446a1.7 1.7 0 0 1 .078.734H76.37a1 1 0 0 0 .067.328q.06.15.167.262.112.105.255.167.15.055.318.055.327 0 .5-.156a.9.9 0 0 0 .25-.383zm.907-.1q.028.212.184.356.156.145.44.145.221 0 .339-.106a.33.33 0 0 0 .117-.25.3.3 0 0 0-.09-.217.5.5 0 0 0-.255-.128l-.457-.1a.9.9 0 0 1-.495-.267.72.72 0 0 1-.172-.484q0-.173.072-.323a.93.93 0 0 1 .506-.456q.179-.067.373-.067.273 0 .456.078a.9.9 0 0 1 .306.195.8.8 0 0 1 .173.233q.06.122.083.212l-.462.172a1 1 0 0 0-.038-.128.487.487 0 0 0-.256-.267.6.6 0 0 0-.262-.05.46.46 0 0 0-.323.111.32.32 0 0 0-.122.245q0 .256.306.323l.434.094q.367.078.55.29a.72.72 0 0 1 .19.506q0 .145-.061.289a.8.8 0 0 1-.184.267.8.8 0 0 1-.3.195 1.1 1.1 0 0 1-.434.078q-.278 0-.479-.078a1.1 1.1 0 0 1-.328-.195 1 1 0 0 1-.2-.25.9.9 0 0 1-.084-.256zm2.516 0q.028.212.183.356.156.145.44.145.222 0 .34-.106a.33.33 0 0 0 .116-.25.3.3 0 0 0-.089-.217.5.5 0 0 0-.256-.128l-.456-.1a.9.9 0 0 1-.495-.267.72.72 0 0 1-.173-.484q0-.173.073-.323a.93.93 0 0 1 .506-.456q.178-.067.373-.067.272 0 .456.078a.9.9 0 0 1 .306.195.8.8 0 0 1 .172.233q.062.122.084.212l-.462.172a1 1 0 0 0-.039-.128.487.487 0 0 0-.256-.267.6.6 0 0 0-.261-.05.46.46 0 0 0-.323.111.32.32 0 0 0-.122.245q0 .256.306.323l.434.094q.367.078.55.29a.72.72 0 0 1 .19.506q0 .145-.062.289a.8.8 0 0 1-.183.267.8.8 0 0 1-.3.195 1.1 1.1 0 0 1-.435.078q-.278 0-.478-.078a1.1 1.1 0 0 1-.328-.195 1 1 0 0 1-.2-.25.9.9 0 0 1-.084-.256zm2.994-1.341v2.204h-.54v-2.204h-.495v-.473h.495v-.45q0-.223.067-.395a.9.9 0 0 1 .19-.29.8.8 0 0 1 .277-.172 1 1 0 0 1 .345-.061.8.8 0 0 1 .312.055v.468a.696.696 0 0 0-.228-.034.53.53 0 0 0-.284.089.4.4 0 0 0-.1.139.6.6 0 0 0-.04.229v.422h.646v.473zm2.942 1.881a.68.68 0 0 1-.333.311q-.222.095-.457.095-.233 0-.422-.083a.9.9 0 0 1-.312-.229 1.1 1.1 0 0 1-.2-.339 1.3 1.3 0 0 1-.067-.423v-1.686h.523v1.608q0 .14.033.267a.6.6 0 0 0 .106.217q.072.094.184.151a.66.66 0 0 0 .283.055q.318 0 .473-.189a.74.74 0 0 0 .162-.495v-1.614h.523v2.181q0 .162.005.295.012.128.022.201h-.5a1 1 0 0 1-.017-.14 3 3 0 0 1-.006-.183m1.388.323v-4.029h.523v4.029zm1.413 0v-4.029h.523v4.029zm1.507 1.118.668-1.413-1.152-2.382h.6l.835 1.848.801-1.848h.562l-1.741 3.795zm5.332-3.394q-.161 0-.306.061a.75.75 0 0 0-.44.468q-.066.172-.066.406 0 .228.067.406a1 1 0 0 0 .178.295.75.75 0 0 0 .261.178q.15.061.312.061a.8.8 0 0 0 .317-.056.7.7 0 0 0 .217-.139.7.7 0 0 0 .139-.178q.05-.1.072-.178l.462.2a1.4 1.4 0 0 1-.145.295 1.162 1.162 0 0 1-.6.462 1.3 1.3 0 0 1-.462.078q-.296 0-.545-.106a1.3 1.3 0 0 1-.423-.3 1.5 1.5 0 0 1-.284-.451 1.6 1.6 0 0 1-.1-.567q0-.312.1-.573.105-.262.284-.445a1.3 1.3 0 0 1 .428-.295 1.35 1.35 0 0 1 .534-.106q.267 0 .468.078a1.1 1.1 0 0 1 .59.473q.088.15.133.3l-.473.201a1 1 0 0 0-.078-.201.6.6 0 0 0-.139-.178.71.71 0 0 0-.5-.189m2.946 1.892a.8.8 0 0 0 .317-.062q.15-.06.267-.183a.9.9 0 0 0 .183-.301q.067-.178.067-.411a1.1 1.1 0 0 0-.067-.406.9.9 0 0 0-.183-.301.8.8 0 0 0-.267-.183.83.83 0 0 0-.635 0 .8.8 0 0 0-.267.183.9.9 0 0 0-.183.301q-.067.172-.067.406 0 .233.067.411a.9.9 0 0 0 .183.301.8.8 0 0 0 .267.183.8.8 0 0 0 .318.062m0-2.376q.3 0 .55.111.25.106.434.295t.284.451q.1.255.1.562 0 .306-.1.567a1.3 1.3 0 0 1-.284.451 1.4 1.4 0 0 1-.434.3 1.4 1.4 0 0 1-.55.106q-.301 0-.551-.106a1.305 1.305 0 0 1-.718-.751 1.6 1.6 0 0 1-.1-.567q0-.306.1-.562a1.3 1.3 0 0 1 .718-.746q.25-.111.551-.111m2.037 2.76v-2.677h.501v.357a.8.8 0 0 1 .351-.329q.228-.105.461-.105.25 0 .468.122.222.123.334.384a.87.87 0 0 1 .4-.395q.24-.111.495-.111a1 1 0 0 1 .34.061.8.8 0 0 1 .295.189.85.85 0 0 1 .211.317q.078.189.078.451v1.736h-.518v-1.681a.67.67 0 0 0-.139-.434q-.133-.178-.428-.178a.57.57 0 0 0-.451.195.7.7 0 0 0-.167.479v1.619h-.523v-1.681a.7.7 0 0 0-.133-.434q-.134-.178-.434-.178a.59.59 0 0 0-.456.189.7.7 0 0 0-.167.49v1.614zm4.771 1.057v-3.734h.506v.418a.9.9 0 0 1 .339-.34q.228-.139.557-.139.3 0 .528.112.234.105.384.294.156.19.234.445.083.257.083.546 0 .3-.083.556a1.4 1.4 0 0 1-.245.451 1.2 1.2 0 0 1-.395.3 1.2 1.2 0 0 1-.523.106q-.312 0-.534-.128a.9.9 0 0 1-.334-.306v1.419zm2.097-2.398q0-.2-.055-.367a.9.9 0 0 0-.156-.295.723.723 0 0 0-.579-.273.75.75 0 0 0-.328.072.8.8 0 0 0-.25.201.8.8 0 0 0-.162.295 1.2 1.2 0 0 0-.055.367q0 .205.055.384a.9.9 0 0 0 .162.3.8.8 0 0 0 .25.195q.15.067.328.067a.8.8 0 0 0 .328-.067.7.7 0 0 0 .245-.195.9.9 0 0 0 .162-.3q.055-.179.055-.384m1.201 1.341v-4.029h.523v4.029zm3.215-1.614a.72.72 0 0 0-.195-.484q-.183-.2-.539-.2a.71.71 0 0 0-.668.434.7.7 0 0 0-.061.25zm.528.851a1.17 1.17 0 0 1-.428.601 1.298 1.298 0 0 1-.773.245 1.4 1.4 0 0 1-.512-.095 1.3 1.3 0 0 1-.434-.278 1.4 1.4 0 0 1-.295-.45 1.7 1.7 0 0 1-.106-.607 1.5 1.5 0 0 1 .384-1.018q.178-.19.412-.289.234-.106.484-.106.306 0 .545.106.245.1.406.283.162.184.245.446a1.7 1.7 0 0 1 .078.734h-2.014a1 1 0 0 0 .067.328q.061.15.167.262.11.105.256.167.15.055.317.055.328 0 .5-.156a.9.9 0 0 0 .251-.383zm1.386-1.914h.578v.473h-.578v1.391q0 .184.083.278.084.09.29.089.05 0 .111-.005a.4.4 0 0 0 .094-.017v.445a1 1 0 0 1-.128.028 1 1 0 0 1-.228.022q-.345 0-.545-.194-.2-.2-.2-.568v-1.469h-.512v-.473h.145q.216 0 .311-.116a.44.44 0 0 0 .1-.295v-.434h.479zm1.276 2.677v-2.677h.518v2.677zm-.116-3.689q0-.162.105-.267a.37.37 0 0 1 .267-.111q.162 0 .267.111.112.105.112.267a.36.36 0 0 1-.112.267.36.36 0 0 1-.267.106.38.38 0 0 1-.267-.106.38.38 0 0 1-.105-.267m2.047 3.689h-.523v-2.677h.512v.384a.84.84 0 0 1 .367-.356q.222-.105.456-.105.24 0 .417.083a.76.76 0 0 1 .301.223.86.86 0 0 1 .178.333q.06.195.061.418v1.697h-.523V144.5q0-.14-.033-.262a.5.5 0 0 0-.106-.211.45.45 0 0 0-.195-.145.7.7 0 0 0-.289-.056.6.6 0 0 0-.273.062.54.54 0 0 0-.195.155.7.7 0 0 0-.116.234 1 1 0 0 0-.039.284zm2.912.027q.028.284.223.468a.7.7 0 0 0 .506.189q.423 0 .618-.217.2-.217.2-.651v-.384a.8.8 0 0 1-.306.312 1 1 0 0 1-.512.128 1.3 1.3 0 0 1-.495-.095 1.3 1.3 0 0 1-.389-.267 1.3 1.3 0 0 1-.256-.412 1.5 1.5 0 0 1-.089-.523q0-.272.089-.506a1.2 1.2 0 0 1 1.14-.796q.311 0 .518.112a.7.7 0 0 1 .306.311v-.373h.517v2.476q0 .256-.067.495-.066.245-.228.429a1.1 1.1 0 0 1-.412.3q-.256.117-.634.117a1.37 1.37 0 0 1-.845-.284 1.2 1.2 0 0 1-.268-.317 1 1 0 0 1-.122-.395zm.807-.595q.34 0 .551-.234.211-.233.211-.623 0-.389-.211-.623a.7.7 0 0 0-.551-.234.72.72 0 0 0-.562.234q-.211.234-.211.623 0 .396.206.629.212.228.567.228m4.19-2.109h.579v.473h-.579v1.391q0 .184.084.278.083.09.289.089.05 0 .111-.005a.4.4 0 0 0 .095-.017v.445a1 1 0 0 1-.128.028 1 1 0 0 1-.228.022q-.345 0-.545-.194-.201-.2-.201-.568v-1.469h-.512v-.473h.145q.218 0 .312-.116a.44.44 0 0 0 .1-.295v-.434h.478zm1.8 2.677h-.523v-4.029h.523v1.664a.8.8 0 0 1 .361-.3q.217-.09.451-.089.24 0 .417.083a.76.76 0 0 1 .301.223.86.86 0 0 1 .178.333q.061.195.061.418v1.697h-.523V144.5q0-.14-.033-.262a.5.5 0 0 0-.106-.211.45.45 0 0 0-.195-.145.7.7 0 0 0-.289-.056q-.15 0-.267.056a.6.6 0 0 0-.189.15.7.7 0 0 0-.123.223 1 1 0 0 0-.044.278zm4.404-1.614a.73.73 0 0 0-.195-.484q-.184-.2-.54-.2a.71.71 0 0 0-.667.434.7.7 0 0 0-.062.25zm.528.851q-.056.178-.167.334a1.18 1.18 0 0 1-.606.445q-.195.067-.429.067-.267 0-.511-.095a1.26 1.26 0 0 1-.729-.728 1.6 1.6 0 0 1-.106-.607 1.48 1.48 0 0 1 .384-1.018q.178-.19.412-.289.233-.106.484-.106.305 0 .545.106.244.1.406.283.161.184.245.446a1.7 1.7 0 0 1 .078.734h-2.014a1 1 0 0 0 .066.328q.062.15.167.262.112.105.256.167.15.055.317.055.328 0 .501-.156a.9.9 0 0 0 .25-.383zm1.742-.701.739-.133v.361q.006.307.156.451a.56.56 0 0 0 .39.139.49.49 0 0 0 .384-.156.6.6 0 0 0 .139-.417v-2.726h.767v2.726q0 .267-.094.506a1.2 1.2 0 0 1-.262.412 1.23 1.23 0 0 1-.929.384q-.294 0-.534-.089a1.2 1.2 0 0 1-.406-.262 1.2 1.2 0 0 1-.261-.406 1.5 1.5 0 0 1-.089-.528zm4.583.874a.7.7 0 0 0 .261-.05.7.7 0 0 0 .223-.145.859.859 0 0 0 .211-.584q0-.195-.061-.339a.67.67 0 0 0-.373-.39.72.72 0 0 0-.523 0 .6.6 0 0 0-.222.15.7.7 0 0 0-.156.24 1 1 0 0 0-.056.339q0 .195.056.339a.652.652 0 0 0 .378.39q.128.05.262.05m0-2.231q.306 0 .567.111.267.107.456.3.195.19.301.457.111.267.111.584t-.111.584a1.4 1.4 0 0 1-.301.456q-.189.195-.456.306a1.5 1.5 0 0 1-.567.106q-.306 0-.573-.106a1.4 1.4 0 0 1-.457-.306 1.5 1.5 0 0 1-.3-.456 1.6 1.6 0 0 1-.106-.584q0-.317.106-.584.111-.267.3-.457.195-.194.457-.3.267-.111.573-.111m2.921.083h.55v.657h-.55v1.146q0 .178.078.25.083.067.244.067.067 0 .134-.006a.4.4 0 0 0 .094-.016v.612a1 1 0 0 1-.155.044 1.2 1.2 0 0 1-.262.022q-.4 0-.634-.222t-.234-.623v-1.274h-.495v-.657h.139q.218 0 .317-.122a.47.47 0 0 0 .106-.312v-.384h.668zm2.431-.679a.6.6 0 0 0-.133.017.3.3 0 0 0-.123.061.3.3 0 0 0-.094.112.44.44 0 0 0-.034.189v.3h.618v.634h-.618v2.104h-.745v-2.104h-.456v-.634h.456v-.311q0-.234.067-.418a1 1 0 0 1 .2-.322.9.9 0 0 1 .317-.206 1.1 1.1 0 0 1 .412-.072q.117 0 .217.016.105.016.15.039v.623a.3.3 0 0 0-.084-.016 1 1 0 0 0-.15-.012m1.885 2.827a.7.7 0 0 0 .261-.05.7.7 0 0 0 .223-.145.859.859 0 0 0 .211-.584q0-.195-.061-.339a.67.67 0 0 0-.373-.39.72.72 0 0 0-.523 0 .6.6 0 0 0-.222.15.7.7 0 0 0-.156.24 1 1 0 0 0-.056.339q0 .195.056.339a.8.8 0 0 0 .156.245.7.7 0 0 0 .222.145q.128.05.262.05m0-2.231q.306 0 .567.111.267.107.456.3.195.19.301.457.111.267.111.584t-.111.584a1.4 1.4 0 0 1-.301.456q-.189.195-.456.306a1.5 1.5 0 0 1-.567.106q-.306 0-.573-.106a1.4 1.4 0 0 1-.457-.306 1.5 1.5 0 0 1-.3-.456 1.6 1.6 0 0 1-.106-.584q0-.317.106-.584.111-.267.3-.457.195-.194.457-.3.267-.111.573-.111m3.688.818a1 1 0 0 0-.222-.023 1 1 0 0 0-.273.039.56.56 0 0 0-.222.128.7.7 0 0 0-.156.24 1 1 0 0 0-.056.367v1.252h-.74v-2.738h.718v.406a.65.65 0 0 1 .156-.217.7.7 0 0 1 .206-.133 1 1 0 0 1 .216-.061q.112-.017.201-.017a1 1 0 0 1 .083.006q.045 0 .089.005zm.521 2.003v-2.738h.706v.334a.7.7 0 0 1 .145-.178.8.8 0 0 1 .195-.128q.111-.05.228-.078a1.08 1.08 0 0 1 .729.089.74.74 0 0 1 .317.34.9.9 0 0 1 .378-.351q.217-.106.49-.106.189 0 .367.062a.8.8 0 0 1 .317.183.9.9 0 0 1 .223.328q.083.195.083.468v1.775h-.718v-1.625a.56.56 0 0 0-.117-.367q-.11-.15-.367-.15a.46.46 0 0 0-.372.161.56.56 0 0 0-.134.378v1.603h-.734v-1.625a.56.56 0 0 0-.117-.367q-.118-.15-.367-.15-.246 0-.379.155a.57.57 0 0 0-.133.384v1.603zm6.358 0v-3.945h2.492v.729h-1.724v.973h1.535v.707h-1.53v1.536zm4.119-.59a.7.7 0 0 0 .261-.05.7.7 0 0 0 .223-.145.859.859 0 0 0 .211-.584q0-.195-.061-.339a.67.67 0 0 0-.373-.39.72.72 0 0 0-.523 0 .6.6 0 0 0-.222.15.7.7 0 0 0-.156.24 1 1 0 0 0-.056.339q0 .195.056.339a.8.8 0 0 0 .156.245.7.7 0 0 0 .222.145q.128.05.262.05m0-2.231q.306 0 .567.111.267.107.456.3.195.19.301.457.111.267.111.584t-.111.584a1.4 1.4 0 0 1-.301.456q-.189.195-.456.306a1.5 1.5 0 0 1-.567.106q-.306 0-.573-.106a1.4 1.4 0 0 1-.457-.306 1.5 1.5 0 0 1-.3-.456 1.6 1.6 0 0 1-.106-.584q0-.317.106-.584.111-.267.3-.457.195-.194.457-.3.267-.111.573-.111m3.8 2.821a1 1 0 0 1-.017-.128 2 2 0 0 1-.005-.167.65.65 0 0 1-.329.283 1.2 1.2 0 0 1-.428.084q-.25 0-.445-.084a1 1 0 0 1-.323-.233 1 1 0 0 1-.206-.34 1.3 1.3 0 0 1-.066-.422v-1.731h.739v1.58q0 .234.117.395.123.156.384.156.25 0 .384-.15t.134-.39v-1.591h.74v2.242q0 .162.005.295.012.128.022.201zm2.208 0h-.74v-2.738h.718v.34a.78.78 0 0 1 .345-.312q.222-.1.445-.1.256 0 .44.089a.9.9 0 0 1 .311.228.9.9 0 0 1 .178.345q.061.2.061.423v1.725h-.74v-1.597a.6.6 0 0 0-.122-.39q-.117-.156-.384-.155a.46.46 0 0 0-.378.166.6.6 0 0 0-.134.401zm5.119-.496q0 .14.005.279.006.133.017.217h-.707a2 2 0 0 1-.022-.134 3 3 0 0 1-.005-.184.76.76 0 0 1-.295.273.94.94 0 0 1-.473.111q-.296 0-.54-.105a1.4 1.4 0 0 1-.423-.301 1.5 1.5 0 0 1-.272-.456 1.6 1.6 0 0 1-.101-.579q0-.3.095-.562.1-.261.273-.45.173-.195.411-.306.246-.112.535-.112.177 0 .306.034.133.033.228.083a.6.6 0 0 1 .15.112q.061.056.089.111v-1.564h.729zm-2.07-.879q0 .368.189.573.195.207.49.206a.63.63 0 0 0 .478-.206q.195-.206.195-.578 0-.367-.195-.562a.64.64 0 0 0-.478-.2.66.66 0 0 0-.484.2q-.195.2-.195.567m2.689.629q0-.183.061-.323a.82.82 0 0 1 .434-.417q.151-.061.323-.089l.673-.1q.117-.016.162-.067a.2.2 0 0 0 .044-.128.33.33 0 0 0-.117-.25q-.111-.106-.345-.106-.245 0-.378.134a.5.5 0 0 0-.145.311l-.656-.139a.9.9 0 0 1 .1-.323q.084-.161.228-.289t.356-.206q.211-.083.49-.083.322 0 .551.089a.94.94 0 0 1 .367.228.8.8 0 0 1 .206.328q.066.19.066.395v1.347q0 .111.012.239.01.121.022.195h-.679a2 2 0 0 1-.022-.151 3 3 0 0 1-.006-.178.925.925 0 0 1-.807.406 1.05 1.05 0 0 1-.689-.25.9.9 0 0 1-.19-.261.8.8 0 0 1-.061-.312m1.096.273q.117 0 .223-.028a.5.5 0 0 0 .195-.106.6.6 0 0 0 .133-.195.8.8 0 0 0 .05-.306v-.122l-.617.095a.5.5 0 0 0-.245.105q-.095.078-.095.24 0 .121.089.222.09.095.267.095m2.966-2.265h.551v.657h-.551v1.146q0 .178.078.25.084.067.245.067.067 0 .134-.006a.4.4 0 0 0 .094-.016v.612a1 1 0 0 1-.156.044 1.2 1.2 0 0 1-.261.022q-.401 0-.634-.222-.234-.222-.234-.623v-1.274h-.495v-.657h.139q.217 0 .317-.122a.47.47 0 0 0 .106-.312v-.384h.667zm1.18 2.738v-2.738h.74v2.738zm-.089-3.634q0-.194.133-.328a.44.44 0 0 1 .323-.133.43.43 0 0 1 .323.133.45.45 0 0 1 .133.328.43.43 0 0 1-.133.318.43.43 0 0 1-.323.133.44.44 0 0 1-.323-.133.43.43 0 0 1-.133-.318m2.85 3.044a.7.7 0 0 0 .262-.05.7.7 0 0 0 .223-.145.859.859 0 0 0 .211-.584q0-.195-.061-.339a.67.67 0 0 0-.373-.39.72.72 0 0 0-.523 0 .6.6 0 0 0-.223.15.7.7 0 0 0-.155.24 1 1 0 0 0-.056.339q0 .195.056.339.06.145.155.245a.7.7 0 0 0 .223.145q.127.05.261.05m0-2.231q.306 0 .568.111.267.107.456.3.195.19.301.457.111.267.111.584t-.111.584a1.4 1.4 0 0 1-.301.456q-.189.195-.456.306a1.5 1.5 0 0 1-.568.106q-.306 0-.573-.106a1.4 1.4 0 0 1-.456-.306 1.5 1.5 0 0 1-.3-.456 1.6 1.6 0 0 1-.106-.584q0-.317.106-.584.111-.267.3-.457a1.4 1.4 0 0 1 .456-.3q.267-.111.573-.111m2.76 2.821h-.74v-2.738h.718v.34a.78.78 0 0 1 .345-.312q.222-.1.445-.1.255 0 .439.089.189.084.312.228a.9.9 0 0 1 .178.345q.061.2.061.423v1.725h-.74v-1.597a.6.6 0 0 0-.122-.39q-.117-.156-.384-.155a.46.46 0 0 0-.379.166.6.6 0 0 0-.133.401zm2.91-.902a.46.46 0 0 0 .133.29q.123.128.367.128.184 0 .273-.078a.26.26 0 0 0 .089-.195.22.22 0 0 0-.067-.161q-.066-.073-.228-.106l-.362-.084q-.4-.089-.584-.306a.78.78 0 0 1-.183-.511q0-.185.078-.345a.84.84 0 0 1 .211-.284 1.07 1.07 0 0 1 .734-.267q.29 0 .49.083a.92.92 0 0 1 .512.462.8.8 0 0 1 .072.245l-.617.139a.6.6 0 0 0-.039-.122.3.3 0 0 0-.078-.123.4.4 0 0 0-.139-.089.5.5 0 0 0-.195-.033.4.4 0 0 0-.25.078.24.24 0 0 0-.101.194q0 .1.067.162.073.06.184.083l.389.084q.406.083.607.311a.77.77 0 0 1 .206.529q0 .166-.067.328a.8.8 0 0 1-.195.289 1 1 0 0 1-.334.206 1.3 1.3 0 0 1-.467.078q-.312 0-.523-.089a1.1 1.1 0 0 1-.345-.217.9.9 0 0 1-.2-.273 1 1 0 0 1-.073-.267zm4.974-1.246q.289 0 .45-.15a.53.53 0 0 0 .167-.412.53.53 0 0 0-.167-.417q-.161-.15-.45-.15h-.607v1.129zm-.612.662v1.486h-.768v-3.945h1.474q.29 0 .529.095.238.088.411.255.173.162.262.39.094.222.094.489 0 .268-.094.496a1.04 1.04 0 0 1-.262.389 1.3 1.3 0 0 1-.411.256q-.24.089-.529.089zm4.154-.517a1 1 0 0 0-.222-.023 1 1 0 0 0-.273.039.6.6 0 0 0-.223.128.7.7 0 0 0-.155.24 1 1 0 0 0-.056.367v1.252h-.74v-2.738h.718v.406a.65.65 0 0 1 .155-.217.78.78 0 0 1 .423-.194q.112-.017.201-.017a1 1 0 0 1 .083.006q.045 0 .089.005zm1.723 1.413a.7.7 0 0 0 .261-.05.65.65 0 0 0 .223-.145.859.859 0 0 0 .211-.584q0-.195-.061-.339a.67.67 0 0 0-.373-.39.72.72 0 0 0-.523 0 .6.6 0 0 0-.222.15.7.7 0 0 0-.156.24 1 1 0 0 0-.055.339q0 .195.055.339a.8.8 0 0 0 .156.245.7.7 0 0 0 .222.145q.129.05.262.05m0-2.231q.306 0 .567.111.267.107.457.3.194.19.3.457.111.267.111.584t-.111.584q-.106.261-.3.456a1.35 1.35 0 0 1-.457.306 1.5 1.5 0 0 1-.567.106q-.306 0-.573-.106a1.4 1.4 0 0 1-.456-.306 1.5 1.5 0 0 1-.301-.456 1.6 1.6 0 0 1-.105-.584q0-.317.105-.584a1.4 1.4 0 0 1 .301-.457 1.4 1.4 0 0 1 .456-.3q.267-.111.573-.111m2.492 2.793a.6.6 0 0 0 .206.372.64.64 0 0 0 .434.145q.351 0 .54-.183.189-.178.189-.579v-.2a.8.8 0 0 1-.273.244 1 1 0 0 1-.489.106 1.26 1.26 0 0 1-.913-.378 1.4 1.4 0 0 1-.267-.417 1.5 1.5 0 0 1-.094-.535q0-.272.094-.511.095-.245.262-.429a1.2 1.2 0 0 1 .918-.395q.328 0 .517.117a.7.7 0 0 1 .262.256v-.323h.712v2.443q0 .284-.084.539a1.204 1.204 0 0 1-.695.774 1.6 1.6 0 0 1-.657.122q-.283 0-.517-.083a1.3 1.3 0 0 1-.401-.217 1.1 1.1 0 0 1-.411-.69zm.735-.729a.6.6 0 0 0 .462-.189q.183-.189.183-.507 0-.317-.189-.5a.62.62 0 0 0-.456-.189.7.7 0 0 0-.262.05.628.628 0 0 0-.345.356.8.8 0 0 0-.05.283q0 .324.184.512.183.184.473.184m3.781-1.246a1 1 0 0 0-.222-.023 1 1 0 0 0-.273.039.56.56 0 0 0-.222.128.7.7 0 0 0-.156.24 1 1 0 0 0-.056.367v1.252h-.74v-2.738h.718v.406a.65.65 0 0 1 .156-.217.7.7 0 0 1 .206-.133 1 1 0 0 1 .217-.061q.11-.017.2-.017a1 1 0 0 1 .083.006q.045 0 .089.005zm.37 1.257q0-.183.061-.323a.82.82 0 0 1 .434-.417q.15-.061.323-.089l.673-.1q.117-.016.162-.067a.2.2 0 0 0 .044-.128.33.33 0 0 0-.117-.25q-.111-.106-.345-.106-.244 0-.378.134a.5.5 0 0 0-.145.311l-.656-.139a.9.9 0 0 1 .1-.323q.084-.161.228-.289t.356-.206q.211-.083.49-.083.322 0 .551.089a.94.94 0 0 1 .367.228.8.8 0 0 1 .206.328q.066.19.066.395v1.347a3 3 0 0 0 .034.434h-.679a2 2 0 0 1-.022-.151 3 3 0 0 1-.006-.178.925.925 0 0 1-.807.406 1.05 1.05 0 0 1-.689-.25.9.9 0 0 1-.19-.261.8.8 0 0 1-.061-.312m1.096.273q.117 0 .223-.028a.5.5 0 0 0 .194-.106.6.6 0 0 0 .134-.195.8.8 0 0 0 .05-.306v-.122l-.617.095a.5.5 0 0 0-.245.105q-.095.078-.095.24 0 .121.089.222.09.095.267.095m2.07.473v-2.738h.707v.334a.7.7 0 0 1 .144-.178.9.9 0 0 1 .195-.128q.111-.05.228-.078.123-.028.234-.028.283 0 .495.117a.74.74 0 0 1 .317.34.9.9 0 0 1 .379-.351q.216-.106.489-.106.19 0 .367.062a.8.8 0 0 1 .318.183.9.9 0 0 1 .222.328q.084.195.084.468v1.775h-.718v-1.625a.56.56 0 0 0-.117-.367q-.111-.15-.367-.15a.46.46 0 0 0-.373.161.56.56 0 0 0-.134.378v1.603h-.734v-1.625a.56.56 0 0 0-.117-.367q-.117-.15-.367-.15a.47.47 0 0 0-.378.155.57.57 0 0 0-.134.384v1.603zm4.923-.357a.37.37 0 0 1 .111-.272.36.36 0 0 1 .273-.117.36.36 0 0 1 .272.117.36.36 0 0 1 .117.272.36.36 0 0 1-.117.273.37.37 0 0 1-.272.111.37.37 0 0 1-.273-.111.37.37 0 0 1-.111-.273M87.56 136.012a2.1 2.1 0 0 1-.762-.139 2 2 0 0 1-.634-.401 2 2 0 0 1-.434-.645 2.2 2.2 0 0 1-.161-.868q0-.484.167-.863.167-.383.44-.645.277-.267.634-.406a2 2 0 0 1 .745-.145q.373 0 .673.106.3.1.523.278.223.173.367.406.145.234.212.49l-.629.211a1.2 1.2 0 0 0-.139-.333 1.022 1.022 0 0 0-.567-.462 1.3 1.3 0 0 0-.44-.067q-.245 0-.478.089a1.2 1.2 0 0 0-.418.267q-.183.178-.294.451a1.6 1.6 0 0 0-.112.623q0 .345.106.612.11.261.295.439.183.178.417.273a1.4 1.4 0 0 0 .935.017 1.14 1.14 0 0 0 .578-.473q.1-.156.15-.323l.613.2q-.067.25-.212.49-.144.234-.373.417a1.88 1.88 0 0 1-1.201.401m4.091-1.736a.7.7 0 0 0-.05-.223.5.5 0 0 0-.122-.194.6.6 0 0 0-.206-.134.77.77 0 0 0-.562.006.6.6 0 0 0-.2.139.6.6 0 0 0-.134.195.6.6 0 0 0-.055.211zm.618.879a1.3 1.3 0 0 1-.162.334q-.105.156-.261.272a1.2 1.2 0 0 1-.356.184 1.4 1.4 0 0 1-.445.067q-.279 0-.529-.095a1.3 1.3 0 0 1-.44-.284 1.5 1.5 0 0 1-.305-.456 1.6 1.6 0 0 1-.112-.617q0-.323.106-.584.111-.262.295-.446.183-.189.423-.289.24-.105.495-.106.312 0 .556.101.25.1.418.283.172.184.261.445a1.76 1.76 0 0 1 .073.785h-1.981a.71.71 0 0 0 .228.506.8.8 0 0 0 .228.15q.135.05.284.05.295 0 .45-.133a.76.76 0 0 0 .229-.339zm2.235-1.296a1.5 1.5 0 0 0-.21-.017q-.379 0-.557.206-.173.206-.173.59v1.29h-.645v-2.709h.629v.434a.7.7 0 0 1 .306-.345.93.93 0 0 1 .65-.106zm1.477-.64h.562v.573h-.562v1.257q0 .178.083.262.084.078.262.078.066 0 .133-.006a1 1 0 0 0 .09-.017v.535a1.3 1.3 0 0 1-.396.061q-.378 0-.595-.212-.217-.211-.217-.595v-1.363h-.5v-.573h.138q.217 0 .317-.123a.46.46 0 0 0 .1-.3v-.406h.585zm1.225 2.709v-2.709h.64v2.709zm-.1-3.661a.4.4 0 0 1 .122-.3.4.4 0 0 1 .295-.122q.178 0 .3.122a.4.4 0 0 1 .123.3.41.41 0 0 1-.423.418.41.41 0 0 1-.417-.418m2.668-.395a1 1 0 0 1 .212.023.6.6 0 0 1 .128.033v.551a.3.3 0 0 0-.084-.017 1 1 0 0 0-.15-.011.6.6 0 0 0-.134.017.3.3 0 0 0-.133.067.35.35 0 0 0-.095.127.45.45 0 0 0-.039.201v.356h1.803v2.709h-.634v-2.147h-1.169v2.147h-.65v-2.147h-.474v-.562h.473v-.373q0-.228.067-.406a.9.9 0 0 1 .195-.306.9.9 0 0 1 .3-.195q.173-.066.384-.067m.774.39q0-.178.116-.301a.41.41 0 0 1 .301-.122.4.4 0 0 1 .3.122.4.4 0 0 1 .123.301.4.4 0 0 1-.123.295.4.4 0 0 1-.3.122.41.41 0 0 1-.301-.122.4.4 0 0 1-.116-.295m2.754 1.469a.73.73 0 0 0-.523.217.8.8 0 0 0-.161.261 1 1 0 0 0-.061.362q0 .205.061.367a.9.9 0 0 0 .161.267.755.755 0 0 0 .534.217.7.7 0 0 0 .607-.334.8.8 0 0 0 .072-.167l.568.206a1.3 1.3 0 0 1-.406.601 1.2 1.2 0 0 1-.362.206 1.4 1.4 0 0 1-.479.078q-.3 0-.556-.106a1.37 1.37 0 0 1-.74-.762 1.5 1.5 0 0 1-.106-.573q0-.312.106-.573.106-.267.295-.456a1.34 1.34 0 0 1 .985-.407q.272 0 .484.078t.367.206q.156.123.25.284.095.16.139.323l-.578.211a.7.7 0 0 0-.073-.178.5.5 0 0 0-.127-.167.6.6 0 0 0-.19-.117.7.7 0 0 0-.267-.044m1.648 1.463q0-.183.061-.323a.82.82 0 0 1 .434-.406q.15-.061.322-.089l.696-.106q.117-.016.156-.066a.2.2 0 0 0 .044-.128.39.39 0 0 0-.122-.29q-.123-.122-.39-.122-.255 0-.395.145a.56.56 0 0 0-.161.345l-.59-.134a.9.9 0 0 1 .106-.334q.088-.16.234-.284a1.1 1.1 0 0 1 .345-.194q.206-.072.456-.073.311 0 .528.084.223.083.356.222.14.14.201.323.066.183.066.384v1.346q0 .184.012.301.016.112.022.133h-.601a1 1 0 0 1-.017-.094 2 2 0 0 1-.011-.251 1 1 0 0 1-.3.295.97.97 0 0 1-.534.134q-.212 0-.384-.067a1 1 0 0 1-.29-.178.9.9 0 0 1-.183-.261.8.8 0 0 1-.061-.312m1.04.312a1 1 0 0 0 .256-.034.6.6 0 0 0 .211-.117.6.6 0 0 0 .151-.217.9.9 0 0 0 .055-.334v-.122l-.706.106a.53.53 0 0 0-.256.117q-.106.083-.106.25 0 .139.1.245t.295.106m2.895-2.287h.562v.573h-.562v1.257q0 .178.083.262.084.078.262.078.066 0 .133-.006a1 1 0 0 0 .089-.017v.535a1.2 1.2 0 0 1-.395.061q-.378 0-.595-.212-.217-.211-.217-.595v-1.363h-.501v-.573h.139q.218 0 .317-.123a.46.46 0 0 0 .1-.3v-.406h.585zm2.978 1.057a.7.7 0 0 0-.05-.223.5.5 0 0 0-.123-.194.6.6 0 0 0-.205-.134.78.78 0 0 0-.562.006.6.6 0 0 0-.201.139.6.6 0 0 0-.133.195.6.6 0 0 0-.056.211zm.617.879a1.2 1.2 0 0 1-.161.334q-.106.156-.261.272t-.356.184a1.4 1.4 0 0 1-.446.067q-.278 0-.528-.095a1.3 1.3 0 0 1-.44-.284 1.5 1.5 0 0 1-.306-.456 1.6 1.6 0 0 1-.111-.617q0-.323.106-.584.11-.262.295-.446.183-.189.422-.289.24-.105.496-.106.311 0 .556.101.25.1.417.283.172.184.262.445a1.8 1.8 0 0 1 .072.785h-1.981a.71.71 0 0 0 .229.506.8.8 0 0 0 .228.15q.133.05.283.05.295 0 .451-.133a.75.75 0 0 0 .228-.339zm2.031.773v-2.709h.639v2.709zm-.101-3.661q0-.177.123-.3a.4.4 0 0 1 .295-.122q.178 0 .3.122a.4.4 0 0 1 .123.3.41.41 0 0 1-.423.418.41.41 0 0 1-.418-.418m1.896 2.771q.016.184.15.323.14.14.4.139.2 0 .301-.089a.3.3 0 0 0 .106-.223.26.26 0 0 0-.078-.189.46.46 0 0 0-.24-.111l-.4-.089q-.362-.078-.545-.289a.75.75 0 0 1-.184-.501q0-.178.078-.334a.9.9 0 0 1 .211-.278 1.07 1.07 0 0 1 .707-.262q.284 0 .473.084.195.078.317.195a.7.7 0 0 1 .178.25.9.9 0 0 1 .078.228l-.545.156a1 1 0 0 0-.039-.128.4.4 0 0 0-.089-.134.4.4 0 0 0-.15-.1.5.5 0 0 0-.223-.044.42.42 0 0 0-.284.094.28.28 0 0 0-.105.217.25.25 0 0 0 .072.184.4.4 0 0 0 .2.1l.412.083q.384.084.578.306a.74.74 0 0 1 .201.518.852.852 0 0 1-.256.59.9.9 0 0 1-.317.2q-.195.078-.451.078a1.3 1.3 0 0 1-.501-.084 1.1 1.1 0 0 1-.339-.206.9.9 0 0 1-.2-.267.8.8 0 0 1-.078-.261zm3.6 1.947v-3.766h.623v.367a.8.8 0 0 1 .323-.3q.222-.129.539-.128.302 0 .534.111.234.106.39.295.16.189.245.45.083.257.083.557 0 .306-.089.567a1.22 1.22 0 0 1-.662.751q-.234.106-.523.106-.295 0-.506-.106a.84.84 0 0 1-.317-.267v1.363zm2.092-2.414q0-.384-.201-.612a.67.67 0 0 0-.528-.228.7.7 0 0 0-.295.061.66.66 0 0 0-.228.172.8.8 0 0 0-.15.262 1 1 0 0 0-.056.345q0 .389.206.623a.67.67 0 0 0 .523.228.66.66 0 0 0 .523-.228q.206-.234.206-.623m2.851-.712a1.5 1.5 0 0 0-.211-.017q-.378 0-.557.206-.172.206-.172.59v1.29h-.645v-2.709h.628v.434a.7.7 0 0 1 .306-.345.94.94 0 0 1 .651-.106zm1.702 1.574a.73.73 0 0 0 .696-.489q.061-.162.061-.373a1 1 0 0 0-.061-.367.75.75 0 0 0-.167-.267.6.6 0 0 0-.245-.162.773.773 0 0 0-.573 0 .6.6 0 0 0-.239.162.8.8 0 0 0-.167.267 1 1 0 0 0-.061.367q0 .211.061.373.066.16.167.272.105.106.239.162a.8.8 0 0 0 .289.055m0-2.298q.306 0 .562.112.256.105.445.3.19.189.295.451.106.261.106.573t-.106.578q-.105.262-.295.457a1.4 1.4 0 0 1-.445.3q-.255.106-.562.106-.3 0-.562-.106a1.4 1.4 0 0 1-.445-.3 1.5 1.5 0 0 1-.289-.457 1.6 1.6 0 0 1-.106-.578q0-.312.106-.573.105-.262.289-.451.19-.195.445-.3a1.4 1.4 0 0 1 .562-.112m3.779 2.493a.67.67 0 0 1-.317.284 1.1 1.1 0 0 1-.451.094q-.245 0-.434-.083a1 1 0 0 1-.322-.228 1.1 1.1 0 0 1-.201-.345 1.3 1.3 0 0 1-.066-.423v-1.708h.645v1.591a1 1 0 0 0 .028.239.6.6 0 0 0 .1.195.49.49 0 0 0 .417.184q.284 0 .423-.167a.67.67 0 0 0 .145-.44v-1.602h.645v2.214q0 .167.006.295.01.123.022.2h-.618a1 1 0 0 1-.016-.128 3 3 0 0 1-.006-.172m1.865-1.063q0 .39.195.629a.67.67 0 0 0 .534.234q.156 0 .289-.062a.7.7 0 0 0 .228-.178.8.8 0 0 0 .145-.272 1.1 1.1 0 0 0 .056-.356q0-.39-.201-.612a.64.64 0 0 0-.512-.228.7.7 0 0 0-.528.228q-.206.228-.206.617m2.07.868a4 4 0 0 0 .028.495h-.618a1 1 0 0 1-.022-.155 4 4 0 0 1-.006-.195.8.8 0 0 1-.3.295.96.96 0 0 1-.495.122q-.295 0-.535-.106a1.3 1.3 0 0 1-.411-.3 1.4 1.4 0 0 1-.262-.456 1.7 1.7 0 0 1-.094-.568 1.56 1.56 0 0 1 .356-1.001q.173-.195.411-.306a1.2 1.2 0 0 1 .523-.111q.179 0 .312.038a.8.8 0 0 1 .228.095.62.62 0 0 1 .256.256V131.9h.629zm.843.495V131.9h.645v4.028zm1.611 1.096.651-1.418-1.157-2.387h.729l.779 1.713.729-1.713h.684l-1.725 3.805zm4.268-.039v-3.766h.623v.367a.8.8 0 0 1 .323-.3q.222-.129.539-.128.3 0 .534.111.234.106.39.295.16.189.245.45.083.257.083.557 0 .306-.089.567a1.22 1.22 0 0 1-.662.751q-.234.106-.523.106-.295 0-.506-.106a.84.84 0 0 1-.317-.267v1.363zm2.092-2.414q0-.384-.201-.612a.67.67 0 0 0-.528-.228.7.7 0 0 0-.295.061.66.66 0 0 0-.228.172.8.8 0 0 0-.15.262 1 1 0 0 0-.056.345q0 .389.206.623a.67.67 0 0 0 .523.228.66.66 0 0 0 .523-.228q.206-.234.206-.623m2.851-.712a1.5 1.5 0 0 0-.211-.017q-.379 0-.557.206-.172.206-.172.59v1.29h-.646v-2.709h.629v.434a.7.7 0 0 1 .306-.345.94.94 0 0 1 .651-.106zm2.292.417a.7.7 0 0 0-.05-.223.5.5 0 0 0-.122-.194.6.6 0 0 0-.206-.134.77.77 0 0 0-.562.006.6.6 0 0 0-.201.139.6.6 0 0 0-.133.195.6.6 0 0 0-.056.211zm.618.879q-.056.178-.162.334-.105.156-.261.272t-.356.184a1.4 1.4 0 0 1-.445.067q-.279 0-.529-.095a1.33 1.33 0 0 1-.745-.74 1.6 1.6 0 0 1-.112-.617q0-.323.106-.584.11-.262.295-.446a1.3 1.3 0 0 1 .423-.289q.239-.105.495-.106.312 0 .556.101.25.1.417.283.173.184.262.445a1.8 1.8 0 0 1 .072.785h-1.98a.71.71 0 0 0 .228.506.8.8 0 0 0 .228.15q.133.05.284.05.294 0 .45-.133a.75.75 0 0 0 .228-.339zm.972-.117a.53.53 0 0 0 .151.323q.138.14.4.139.2 0 .301-.089a.29.29 0 0 0 .105-.223.26.26 0 0 0-.078-.189.46.46 0 0 0-.239-.111l-.4-.089q-.362-.078-.546-.289a.76.76 0 0 1-.183-.501q0-.178.078-.334a.9.9 0 0 1 .211-.278 1.07 1.07 0 0 1 .707-.262q.283 0 .473.084a1 1 0 0 1 .317.195.7.7 0 0 1 .178.25.9.9 0 0 1 .078.228l-.546.156a1 1 0 0 0-.039-.128.4.4 0 0 0-.089-.134.4.4 0 0 0-.15-.1.5.5 0 0 0-.222-.044.42.42 0 0 0-.284.094.27.27 0 0 0-.106.217q0 .112.073.184a.4.4 0 0 0 .2.1l.412.083q.383.084.578.306.2.218.2.518a.852.852 0 0 1-.255.59.95.95 0 0 1-.318.2q-.194.078-.45.078-.296 0-.501-.084a1.1 1.1 0 0 1-.339-.206.844.844 0 0 1-.279-.528zm3.985-.762a.7.7 0 0 0-.051-.223.5.5 0 0 0-.122-.194.6.6 0 0 0-.206-.134.77.77 0 0 0-.562.006.6.6 0 0 0-.2.139.6.6 0 0 0-.134.195.6.6 0 0 0-.055.211zm.617.879q-.056.178-.161.334a1.1 1.1 0 0 1-.262.272q-.156.117-.356.184a1.4 1.4 0 0 1-.445.067 1.5 1.5 0 0 1-.528-.095 1.3 1.3 0 0 1-.44-.284 1.5 1.5 0 0 1-.306-.456 1.6 1.6 0 0 1-.111-.617q0-.323.105-.584.112-.262.295-.446a1.3 1.3 0 0 1 .423-.289q.24-.105.495-.106.312 0 .557.101.25.1.417.283.173.184.261.445.09.257.089.579 0 .078-.005.139a.4.4 0 0 1-.011.067h-1.981a.71.71 0 0 0 .228.506.8.8 0 0 0 .228.15.8.8 0 0 0 .284.05q.295 0 .451-.133a.77.77 0 0 0 .228-.339zm1.296.773h-.646v-2.709h.629v.361a.78.78 0 0 1 .35-.333q.223-.106.451-.106.25 0 .434.083a.8.8 0 0 1 .3.234q.123.145.184.339t.061.418v1.713h-.645v-1.602a.7.7 0 0 0-.128-.423q-.123-.178-.428-.178-.279 0-.423.189a.73.73 0 0 0-.139.451zm3.367-2.709h.562v.573h-.562v1.257q0 .178.083.262.084.078.262.078.066 0 .133-.006a1 1 0 0 0 .089-.017v.535a1.2 1.2 0 0 1-.395.061q-.378 0-.595-.212-.217-.211-.217-.595v-1.363h-.501v-.573h.139q.218 0 .317-.123a.46.46 0 0 0 .101-.3v-.406h.584zm2.978 1.057a.7.7 0 0 0-.05-.223.5.5 0 0 0-.122-.194.6.6 0 0 0-.206-.134.77.77 0 0 0-.562.006.6.6 0 0 0-.201.139.6.6 0 0 0-.133.195.6.6 0 0 0-.056.211zm.618.879q-.055.178-.162.334-.105.156-.261.272t-.356.184a1.4 1.4 0 0 1-.445.067q-.279 0-.529-.095a1.33 1.33 0 0 1-.745-.74 1.6 1.6 0 0 1-.112-.617q0-.323.106-.584.11-.262.295-.446a1.3 1.3 0 0 1 .423-.289q.238-.105.495-.106.312 0 .556.101.25.1.417.283.173.184.262.445a1.8 1.8 0 0 1 .072.785h-1.98a.71.71 0 0 0 .228.506.8.8 0 0 0 .228.15q.133.05.284.05.294 0 .45-.133a.75.75 0 0 0 .228-.339zm1.084-.59q0 .39.194.629a.67.67 0 0 0 .535.234q.155 0 .289-.062a.7.7 0 0 0 .228-.178.8.8 0 0 0 .145-.272 1.1 1.1 0 0 0 .055-.356q0-.39-.2-.612a.64.64 0 0 0-.512-.228.69.69 0 0 0-.528.228q-.207.228-.206.617m2.069.868a4 4 0 0 0 .028.495h-.617a1 1 0 0 1-.023-.155l-.005-.195a.8.8 0 0 1-.301.295.96.96 0 0 1-.495.122q-.294 0-.534-.106a1.3 1.3 0 0 1-.412-.3 1.5 1.5 0 0 1-.261-.456 1.66 1.66 0 0 1 0-1.113 1.5 1.5 0 0 1 .261-.456q.173-.195.412-.306a1.2 1.2 0 0 1 .523-.111q.179 0 .312.038a.8.8 0 0 1 .228.095.614.614 0 0 1 .256.256V131.9h.628zm3.041-2.214h.562v.573h-.562v1.257q0 .178.084.262.084.078.261.078.067 0 .134-.006.066-.01.089-.017v.535a1 1 0 0 1-.122.033 1 1 0 0 1-.273.028q-.379 0-.595-.212-.217-.211-.217-.595v-1.363h-.501v-.573h.139q.217 0 .317-.123a.46.46 0 0 0 .1-.3v-.406h.584zm2.389 2.214a.73.73 0 0 0 .695-.489q.062-.162.062-.373a1 1 0 0 0-.062-.367.7.7 0 0 0-.166-.267.64.64 0 0 0-.245-.162.77.77 0 0 0-.573 0 .64.64 0 0 0-.24.162.9.9 0 0 0-.166.267 1 1 0 0 0-.062.367q0 .211.062.373.066.16.166.272a.8.8 0 0 0 .24.162.8.8 0 0 0 .289.055m0-2.298q.306 0 .562.112.256.105.445.3.189.189.295.451.106.261.106.573t-.106.578a1.4 1.4 0 0 1-.295.457 1.4 1.4 0 0 1-.445.3 1.5 1.5 0 0 1-.562.106q-.3 0-.562-.106a1.4 1.4 0 0 1-.445-.3 1.5 1.5 0 0 1-.289-.457 1.5 1.5 0 0 1-.106-.578q0-.312.106-.573.106-.262.289-.451.189-.195.445-.3.262-.112.562-.112m3.545 3.889.651-1.418-1.157-2.387h.728l.779 1.713.729-1.713h.684l-1.724 3.805zm3.953-1.591a.73.73 0 0 0 .695-.489q.061-.162.061-.373a1 1 0 0 0-.061-.367.73.73 0 0 0-.411-.429.77.77 0 0 0-.573 0 .64.64 0 0 0-.24.162.9.9 0 0 0-.167.267q-.06.155-.061.367 0 .211.061.373a1 1 0 0 0 .167.272.8.8 0 0 0 .24.162.8.8 0 0 0 .289.055m0-2.298q.306 0 .562.112.255.105.445.3.189.189.295.451.105.261.105.573t-.105.578a1.4 1.4 0 0 1-.295.457 1.4 1.4 0 0 1-.445.3 1.5 1.5 0 0 1-.562.106q-.3 0-.562-.106a1.4 1.4 0 0 1-.445-.3 1.4 1.4 0 0 1-.289-.457 1.5 1.5 0 0 1-.106-.578q0-.312.106-.573.105-.262.289-.451.189-.195.445-.3.262-.112.562-.112m3.779 2.493a.67.67 0 0 1-.318.284 1.1 1.1 0 0 1-.45.094q-.245 0-.434-.083a1 1 0 0 1-.323-.228 1.1 1.1 0 0 1-.2-.345 1.3 1.3 0 0 1-.067-.423v-1.708h.645v1.591q0 .128.028.239a.51.51 0 0 0 .267.329q.106.05.251.05.284 0 .422-.167a.66.66 0 0 0 .145-.44v-1.602h.646v2.214q0 .167.005.295.011.123.022.2h-.617a1 1 0 0 1-.017-.128 3 3 0 0 1-.005-.172\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n stroke: \"#fff\",\n strokeWidth: 0.473,\n d: \"m112.191 102.836-.001-.001.001-.002.001-.002h7.374q.004 0 .004.004v5.91q0 .003-.004.003h-7.374l-.001-.002-.001-.001.001-.002 1.7-2.699a.48.48 0 0 0 0-.508zm-.001-.002Zm.002-.003ZM157.473 102.836l.001-.001-.001-.002-.001-.002h-7.604q-.003 0-.003.004v5.91q0 .003.003.003h7.604l.001-.002.001-.001-.001-.002-1.746-2.694a.48.48 0 0 1 0-.519zm0-.005Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n stroke: \"#343C6A\",\n strokeWidth: 0.96,\n d: \"M119.576 93.491a.96.96 0 0 1 .501-.843l14.162-7.718a.96.96 0 0 1 .919 0l14.162 7.718a.96.96 0 0 1 .501.843v17.054a.96.96 0 0 1-.501.843l-14.162 7.717a.96.96 0 0 1-.919 0l-14.162-7.717a.96.96 0 0 1-.501-.843z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"m130.178 109.711.507 1.027 1.134.165-.821.8.194 1.129-1.014-.533-1.015.533.194-1.129-.82-.8 1.133-.165z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n stroke: \"#0A1551\",\n strokeWidth: 0.173,\n d: \"m134.425 109.906.43.87.02.041.045.006.96.14-.695.678-.032.031.007.045.164.957-.859-.452-.04-.021-.04.021-.86.452.164-.957.008-.045-.032-.031-.696-.678.961-.14.045-.006.02-.041zM138.672 109.906l.43.87.02.041.045.006.961.14-.696.678-.032.031.008.045.164.957-.86-.452-.04-.021-.04.021-.859.452.164-.957.007-.045-.032-.031-.695-.678.961-.14.044-.006.02-.041z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"m127.851 91.976.403-.073v.197q.004.167.085.246a.3.3 0 0 0 .213.076.27.27 0 0 0 .209-.085.33.33 0 0 0 .076-.228v-1.487h.419v1.487q0 .146-.051.276a.675.675 0 0 1-.65.434.8.8 0 0 1-.292-.048.7.7 0 0 1-.221-.143.7.7 0 0 1-.143-.221.8.8 0 0 1-.048-.289zm1.999-.28q0 .182.058.32a.64.64 0 0 0 .367.354.74.74 0 0 0 .492 0 .65.65 0 0 0 .37-.355.8.8 0 0 0 .058-.319.8.8 0 0 0-.058-.316.63.63 0 0 0-.37-.355.7.7 0 0 0-.492 0 .6.6 0 0 0-.215.13.6.6 0 0 0-.152.225.8.8 0 0 0-.058.316m-.434.003q0-.261.091-.467.091-.21.243-.355.152-.146.352-.222a1.13 1.13 0 0 1 .838 0q.204.075.355.222.151.145.243.355.091.206.091.467t-.091.468a1.054 1.054 0 0 1-.598.577q-.2.075-.419.076-.218 0-.419-.076a1.07 1.07 0 0 1-.595-.577 1.14 1.14 0 0 1-.091-.468m3.243-.68v1.755h-.422v-1.755h-.68v-.398h1.782v.398zm.792 1.755v-2.153h1.361v.398h-.942v.532h.838v.385h-.835v.838zm1.815-1.078q0 .182.058.32a.7.7 0 0 0 .151.22.7.7 0 0 0 .216.134.74.74 0 0 0 .492 0 .6.6 0 0 0 .215-.133.6.6 0 0 0 .155-.222.8.8 0 0 0 .058-.319.8.8 0 0 0-.058-.316.62.62 0 0 0-.37-.355.7.7 0 0 0-.708.13.65.65 0 0 0-.151.225.8.8 0 0 0-.058.316m-.434.003q0-.261.091-.467.091-.21.243-.355.151-.146.352-.222a1.134 1.134 0 0 1 .838 0 1.03 1.03 0 0 1 .598.577q.091.206.091.467t-.091.468a1.064 1.064 0 0 1-.598.577q-.2.075-.419.076a1.2 1.2 0 0 1-.419-.076 1.06 1.06 0 0 1-.595-.577 1.14 1.14 0 0 1-.091-.468m3.035.246h-.219v.829h-.422v-2.153h.841a.7.7 0 0 1 .282.052q.128.052.216.14a.6.6 0 0 1 .14.21.7.7 0 0 1 .048.26.6.6 0 0 1-.124.389.62.62 0 0 1-.334.222l.461.88h-.467zm.121-.361q.16 0 .249-.082a.28.28 0 0 0 .088-.216.28.28 0 0 0-.088-.218.35.35 0 0 0-.249-.082h-.34v.598zm2.942 1.19v-1.509l-.619 1.509h-.35l-.619-1.497v1.497h-.401v-2.153h.553l.647 1.555.631-1.555h.571v2.153zm-16.205 4v-2.153h1.36v.398h-.942v.532h.838v.385h-.834v.838zm1.814-1.078q0 .182.058.32a.7.7 0 0 0 .151.22.7.7 0 0 0 .216.134.74.74 0 0 0 .492 0 .6.6 0 0 0 .215-.133.6.6 0 0 0 .155-.222.8.8 0 0 0 .058-.319.8.8 0 0 0-.058-.316.62.62 0 0 0-.37-.355.7.7 0 0 0-.708.13.65.65 0 0 0-.151.225.8.8 0 0 0-.058.316m-.434.003q0-.261.091-.467.092-.21.243-.355.151-.146.352-.222a1.134 1.134 0 0 1 .838 0 1.03 1.03 0 0 1 .598.577q.091.206.091.467t-.091.468a1.064 1.064 0 0 1-.598.577q-.2.075-.419.076a1.2 1.2 0 0 1-.419-.076 1.06 1.06 0 0 1-.595-.577 1.14 1.14 0 0 1-.091-.468m3.199 1.124a1 1 0 0 1-.325-.052.7.7 0 0 1-.261-.155.8.8 0 0 1-.176-.255.9.9 0 0 1-.064-.349v-1.39h.419v1.36q0 .212.109.322.11.109.298.109a.4.4 0 0 0 .3-.11q.11-.109.109-.321v-1.36h.419v1.39a.9.9 0 0 1-.066.35.704.704 0 0 1-.438.41 1 1 0 0 1-.324.05m2.514-.049-.977-1.527v1.527h-.419v-2.153h.522l.896 1.424v-1.424h.419v2.153zm1.502-.389q.13 0 .249-.039a.56.56 0 0 0 .346-.34.8.8 0 0 0 .052-.307.8.8 0 0 0-.052-.303.6.6 0 0 0-.14-.216.5.5 0 0 0-.203-.127.7.7 0 0 0-.249-.043h-.337v1.375zm-.753.389v-2.153h.771q.231 0 .425.073a.9.9 0 0 1 .334.213.9.9 0 0 1 .222.337q.082.2.082.455t-.082.456a.94.94 0 0 1-.559.546 1.2 1.2 0 0 1-.425.073zm3.192-.492h-.874l-.179.492h-.443l.825-2.153h.486l.82 2.153h-.456zm-.734-.382h.595l-.298-.814zm2.168-.88v1.754h-.422v-1.755h-.68v-.398h1.782v.398zm.793 1.754v-2.153h.425v2.153zm1.04-1.078q0 .182.058.32a.7.7 0 0 0 .152.22.7.7 0 0 0 .216.134.73.73 0 0 0 .491 0 .65.65 0 0 0 .371-.355.8.8 0 0 0 .057-.319.8.8 0 0 0-.057-.316.63.63 0 0 0-.371-.355.7.7 0 0 0-.491 0 .7.7 0 0 0-.216.13.7.7 0 0 0-.152.225.8.8 0 0 0-.058.316m-.434.003q0-.261.091-.467.091-.21.243-.355.152-.146.352-.222a1.14 1.14 0 0 1 .838 0 1.03 1.03 0 0 1 .598.577q.092.206.092.467t-.092.468q-.09.207-.242.352-.153.145-.356.225a1.178 1.178 0 0 1-.838 0 1.07 1.07 0 0 1-.595-.577 1.2 1.2 0 0 1-.091-.468m3.791 1.075-.977-1.527v1.527h-.419v-2.153h.522l.895 1.424v-1.424h.419v2.153zm1.821-1.524a.5.5 0 0 0-.034-.097.3.3 0 0 0-.067-.1.4.4 0 0 0-.118-.076.4.4 0 0 0-.173-.03.4.4 0 0 0-.246.084.3.3 0 0 0-.067.085.2.2 0 0 0-.024.104q0 .087.058.154a.3.3 0 0 0 .176.089l.3.057a.9.9 0 0 1 .258.088q.113.061.189.146a.57.57 0 0 1 .154.4.63.63 0 0 1-.203.46.8.8 0 0 1-.243.148.9.9 0 0 1-.331.058q-.216 0-.37-.061a.9.9 0 0 1-.261-.161.7.7 0 0 1-.158-.216.8.8 0 0 1-.067-.236l.389-.104a.5.5 0 0 0 .036.152.5.5 0 0 0 .091.13.4.4 0 0 0 .143.089.5.5 0 0 0 .2.033q.171 0 .258-.073a.24.24 0 0 0 .091-.191.22.22 0 0 0-.066-.16.36.36 0 0 0-.195-.095l-.3-.06a.77.77 0 0 1-.413-.21.57.57 0 0 1-.152-.407.6.6 0 0 1 .058-.264.7.7 0 0 1 .164-.216.8.8 0 0 1 .239-.142.8.8 0 0 1 .289-.052q.194 0 .331.055.14.051.231.133.09.083.139.182a.7.7 0 0 1 .07.189z\"\n}), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"cer_svg__b\",\n fill: \"#fff\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M117.676 92.866c0-.702.383-1.348.999-1.685l15.044-8.232a1.92 1.92 0 0 1 1.844 0l15.044 8.232c.616.337.999.983.999 1.685v7.093h-1.396v-6.503c0-.526-.287-1.01-.747-1.263l-14.044-7.711a1.44 1.44 0 0 0-1.387 0l-14.043 7.711a1.44 1.44 0 0 0-.747 1.263v6.503h-1.566zm0 14.43v3.78c0 .702.383 1.347.999 1.684l15.044 8.233c.575.314 1.27.314 1.844 0l15.044-8.233a1.92 1.92 0 0 0 .999-1.684v-3.78h-1.396v3.22c0 .525-.287 1.009-.747 1.262l-14.044 7.712a1.44 1.44 0 0 1-1.387 0l-14.043-7.712a1.44 1.44 0 0 1-.747-1.262v-3.22z\",\n clipRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EBF4FF\",\n fillRule: \"evenodd\",\n d: \"M117.676 92.866c0-.702.383-1.348.999-1.685l15.044-8.232a1.92 1.92 0 0 1 1.844 0l15.044 8.232c.616.337.999.983.999 1.685v7.093h-1.396v-6.503c0-.526-.287-1.01-.747-1.263l-14.044-7.711a1.44 1.44 0 0 0-1.387 0l-14.043 7.711a1.44 1.44 0 0 0-.747 1.263v6.503h-1.566zm0 14.43v3.78c0 .702.383 1.347.999 1.684l15.044 8.233c.575.314 1.27.314 1.844 0l15.044-8.233a1.92 1.92 0 0 0 .999-1.684v-3.78h-1.396v3.22c0 .525-.287 1.009-.747 1.262l-14.044 7.712a1.44 1.44 0 0 1-1.387 0l-14.043-7.712a1.44 1.44 0 0 1-.747-1.262v-3.22z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EBF4FF\",\n fillRule: \"evenodd\",\n d: \"M117.676 92.866c0-.702.383-1.348.999-1.685l15.044-8.232a1.92 1.92 0 0 1 1.844 0l15.044 8.232c.616.337.999.983.999 1.685v7.093h-1.396v-6.503c0-.526-.287-1.01-.747-1.263l-14.044-7.711a1.44 1.44 0 0 0-1.387 0l-14.043 7.711a1.44 1.44 0 0 0-.747 1.263v6.503h-1.566zm0 14.43v3.78c0 .702.383 1.347.999 1.684l15.044 8.233c.575.314 1.27.314 1.844 0l15.044-8.233a1.92 1.92 0 0 0 .999-1.684v-3.78h-1.396v3.22c0 .525-.287 1.009-.747 1.262l-14.044 7.712a1.44 1.44 0 0 1-1.387 0l-14.043-7.712a1.44 1.44 0 0 1-.747-1.262v-3.22z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m118.675 91.181.922 1.685zm15.044-8.232-.922-1.685zm1.844 0 .922-1.685zm15.044 8.232-.921 1.685zm.999 8.778v1.92h1.921v-1.92zm-1.396 0h-1.921v1.92h1.921zm-.747-7.766.924-1.683zm-14.044-7.711.924-1.684zm-1.387 0 .925 1.683zm-14.043 7.711.924 1.684zm-.747 7.766v1.92h1.92v-1.92zm-1.566 0h-1.92v1.92h1.92zm0 7.337v-1.921h-1.92v1.921zm.999 5.464.922-1.684zm15.044 8.233.922-1.685zm1.844 0-.922-1.685zm15.044-8.233-.921-1.684zm.999-5.464h1.921v-1.921h-1.921zm-1.396 0v-1.921h-1.921v1.921zm-.747 4.482-.925-1.683zm-14.044 7.712.924 1.683zm-1.387 0 .925-1.684zm-14.043-7.712-.925 1.684zm-.747-4.482h1.92v-1.921h-1.92zm-1.489-17.8a3.84 3.84 0 0 0-1.997 3.37h3.841zm15.044-8.232-15.044 8.232 1.844 3.37 15.044-8.232zm3.688 0a3.84 3.84 0 0 0-3.688 0l1.844 3.37zm15.044 8.232-15.044-8.232-1.844 3.37 15.045 8.232zm1.998 3.37a3.84 3.84 0 0 0-1.998-3.37l-1.843 3.37zm0 7.093v-7.093h-3.841v7.093zm-3.317 1.92h1.396v-3.84h-1.396zm1.92-1.92v-6.503h-3.841v6.503zm0-6.503a3.36 3.36 0 0 0-1.743-2.946l-1.849 3.367a.48.48 0 0 1-.249-.421zm-1.743-2.946-14.044-7.712-1.848 3.367 14.043 7.712zm-14.044-7.712a3.36 3.36 0 0 0-3.235 0l1.849 3.367a.48.48 0 0 1-.462 0zm-3.235 0-14.044 7.712 1.849 3.367 14.044-7.712zm-14.044 7.712a3.36 3.36 0 0 0-1.743 2.946h3.841a.48.48 0 0 1-.249.42zm-1.743 2.946v6.503h3.841v-6.503zm.355 8.423h1.566v-3.84h-1.566zm-1.92-9.013v7.093h3.841v-7.093zm0 14.43v3.78h3.841v-3.78zm0 3.78a3.84 3.84 0 0 0 1.997 3.369l1.844-3.369zm1.997 3.369 15.044 8.232 1.844-3.369-15.044-8.232zm15.044 8.232a3.84 3.84 0 0 0 3.688 0l-1.844-3.369zm3.688 0 15.044-8.232-1.843-3.369-15.045 8.232zm15.044-8.232a3.84 3.84 0 0 0 1.998-3.369h-3.841zm1.998-3.369v-3.78h-3.841v3.78zm-1.921-5.701h-1.396v3.841h1.396zm.524 5.141v-3.22h-3.841v3.22zm-1.743 2.946a3.36 3.36 0 0 0 1.743-2.946h-3.841a.48.48 0 0 1 .249-.421zm-14.044 7.711 14.044-7.711-1.849-3.367-14.043 7.711zm-3.235 0a3.36 3.36 0 0 0 3.235 0l-1.848-3.367a.48.48 0 0 1 .462 0zm-14.044-7.711 14.044 7.711 1.849-3.367-14.044-7.711zm-1.743-2.946c0 1.226.668 2.355 1.743 2.946l1.849-3.367a.48.48 0 0 1 .249.421zm0-3.22v3.22h3.841v-3.22zm1.921-1.921h-1.566v3.841h1.566z\",\n mask: \"url(#cer_svg__b)\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 37.396,\n height: 7.1,\n x: 116.019,\n y: 100.701,\n fill: \"#0A1551\",\n stroke: \"#fff\",\n strokeWidth: 0.473,\n rx: 0.473\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M131.642 105.057a.38.38 0 0 1-.277-.112.45.45 0 0 1-.123-.334c0-.152.05-.263.122-.336a.4.4 0 0 1 .278-.111.4.4 0 0 1 .277.111.46.46 0 0 1 .122.336.46.46 0 0 1-.122.335.39.39 0 0 1-.277.111m0-1.378c-.53 0-.932.39-.932.932 0 .537.402.931.932.931s.931-.394.931-.931a.905.905 0 0 0-.931-.932M127.235 105.07a.38.38 0 0 1-.277-.112.46.46 0 0 1-.123-.334c0-.152.05-.263.122-.336a.4.4 0 0 1 .278-.111.4.4 0 0 1 .277.111.46.46 0 0 1 .122.336.46.46 0 0 1-.122.335.39.39 0 0 1-.277.111m0-1.378c-.53 0-.932.39-.932.932 0 .538.402.931.932.931s.931-.393.931-.931a.905.905 0 0 0-.931-.932M134.021 105.536h.529v-1.05c0-.086.027-.162.075-.216a.27.27 0 0 1 .209-.086c.095 0 .16.031.202.08.042.05.064.122.064.208v1.064h.526v-1.05c0-.085.027-.16.074-.214a.27.27 0 0 1 .206-.088c.097 0 .162.031.203.08q.063.076.063.208v1.064h.515v-1.157c0-.238-.078-.41-.201-.523a.66.66 0 0 0-.449-.162.7.7 0 0 0-.319.068.6.6 0 0 0-.217.186c-.102-.166-.288-.254-.508-.254a.66.66 0 0 0-.463.188v-.145h-.509zM133.823 103.739v.539l-.042-.009a.6.6 0 0 0-.131-.013.4.4 0 0 0-.283.094c-.071.066-.12.177-.12.355v.831h-.528v-1.799h.514v.174c.127-.153.324-.182.448-.182q.06 0 .11.007zM124.314 104.669h.516l.006.006a.03.03 0 0 1 .007.015c.01.113.054.199.121.255a.36.36 0 0 0 .24.083c.109 0 .198-.04.259-.11a.4.4 0 0 0 .093-.274v-1.507h.558v1.523a.885.885 0 0 1-.906.895.9.9 0 0 1-.645-.242.87.87 0 0 1-.248-.623zM130.635 103.382l.03.008v-.408l-.014-.006a.4.4 0 0 0-.092-.024 1 1 0 0 0-.131-.011c-.182 0-.386.061-.492.169a.62.62 0 0 0-.164.447v.087h-.266v.468h.266v1.424h.533v-1.424h.36v-.468h-.36v-.08c0-.083.029-.131.066-.159a.22.22 0 0 1 .135-.039c.069 0 .109.01.129.016M129.315 105.115l.028-.008v.41l-.013.006a.4.4 0 0 1-.087.024 1 1 0 0 1-.123.01c-.171 0-.362-.06-.461-.169a.65.65 0 0 1-.154-.449v-.827h-.25v-.466h.25v-.506h.5v.506h.338v.466h-.338v.821c0 .083.027.131.062.159a.2.2 0 0 0 .126.039c.065 0 .103-.01.122-.016\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M121.741 105.61c.057.055.017.149-.064.149h-.507a.18.18 0 0 1-.181-.175v-.491c0-.079.098-.118.155-.062z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFB629\",\n d: \"M122.533 105.648a.38.38 0 0 1 0-.54l.541-.537a.386.386 0 0 1 .543 0 .38.38 0 0 1 0 .539l-.542.538a.384.384 0 0 1-.542 0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#09F\",\n d: \"M121.104 104.297a.38.38 0 0 1 0-.539l.91-.906a.386.386 0 0 1 .543 0 .38.38 0 0 1 0 .54l-.91.905a.386.386 0 0 1-.543 0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF6100\",\n d: \"M121.848 104.942a.38.38 0 0 1 0-.539l1.23-1.222a.386.386 0 0 1 .543 0 .38.38 0 0 1 0 .539l-1.23 1.222a.386.386 0 0 1-.543 0M138.344 103.879l.042.178.29 1.351v.004q-.115.024-.255.016a1.4 1.4 0 0 1-.262-.031h-.004a2 2 0 0 1-.047-.147q-.019-.085-.042-.174a3 3 0 0 0-.043-.17 1 1 0 0 0-.05-.139 1 1 0 0 0-.077-.007h-.05l-.046.004h-.066a1 1 0 0 0-.046.146l-.035.174q-.015.088-.035.174a.6.6 0 0 1-.054.15q-.004 0-.008.004h-.004a.7.7 0 0 1-.154 0 6 6 0 0 0-.386-.004q-.004 0-.008-.003.007-.028.027-.151l.054-.321.081-.451q.05-.259.116-.548t.143-.603q.077-.312.17-.621a.4.4 0 0 1 .058-.004h.20800000000000002q.081-.004.209-.016l.035.155q.027.1.054.231.03.128.061.275.035.146.066.281zm-.498.433q.074-.004.147-.004a11 11 0 0 0-.07-.517 1.6 1.6 0 0 0-.05-.251q-.02-.066-.043-.027a.6.6 0 0 0-.038.146l-.039.282q-.02.17-.046.367.066.004.139.004m2.087.47q.054 0 .09.01l-.013.165q-.006.08-.016.152a1 1 0 0 1-.026.119.2.2 0 0 1-.035.071.3.3 0 0 1-.146.11.7.7 0 0 1-.19.039q-.103.009-.214 0a3 3 0 0 0-.2-.007.5.5 0 0 1-.278-.142.4.4 0 0 1-.119-.194 1 1 0 0 1-.039-.242 3 3 0 0 1-.003-.259 1.4 1.4 0 0 0-.007-.235q0-.117.019-.233a1 1 0 0 1 .023-.097l.029-.094a.2.2 0 0 1 .071-.084.602.602 0 0 1 .259-.093q.077-.01.155-.01a1 1 0 0 0 .123.003 1 1 0 0 1 .129 0 .7.7 0 0 1 .197.039.4.4 0 0 1 .161.097q.046.032.068.087.026.056.039.129.013.075.013.168l.007.197a.4.4 0 0 1-.097.01 2 2 0 0 1-.314-.026.26.26 0 0 0-.094-.174q-.077-.065-.203-.032a.2.2 0 0 0-.11.071q-.02.013-.029.064a2 2 0 0 0-.013.204q0 .104-.006.216-.007.075.035.117.045.042.107.058a.4.4 0 0 0 .126.006.25.25 0 0 0 .103-.035.14.14 0 0 0 .049-.075 1 1 0 0 0 .029-.097q.031.004.087.004l.116-.007a1 1 0 0 1 .117 0m1.393-.989.185.01.003.039.003.039v.032q-.009.35.003.688t-.009.682q0 .042-.004.084 0 .042-.038.048h-.039a2 2 0 0 1-.21-.009.4.4 0 0 0-.071.006l-.068.003a.05.05 0 0 1-.032-.025.192.192 0 0 1 0-.104.2.2 0 0 0 .006-.055.67.67 0 0 1-.427.188.3.3 0 0 1-.216-.088.7.7 0 0 1-.145-.216 1.3 1.3 0 0 1-.088-.281 2 2 0 0 1-.025-.281q0-.162.042-.297a.8.8 0 0 1 .113-.233.52.52 0 0 1 .387-.217q.059 0 .107.004.051 0 .094.016a.215.215 0 0 1 .129.129.4.4 0 0 1 .003-.087.3.3 0 0 0 .01-.078q0-.003.019-.003a.2.2 0 0 1 .049 0h.087zm-.665.511a.25.25 0 0 0-.091.142.4.4 0 0 0-.016.087l-.003.084q0 .145.074.249.078.1.214.1.08 0 .119-.026a.15.15 0 0 0 .058-.077.4.4 0 0 0 .02-.123 4 4 0 0 0 0-.342.3.3 0 0 0-.017-.104.07.07 0 0 0-.048-.045.4.4 0 0 0-.1-.01.32.32 0 0 0-.21.065m1.921-1.027.006-.101v-.035q0-.004.042-.007a1 1 0 0 1 .107-.006 1.5 1.5 0 0 1 .259.01v.213q0 .54.016 1.066.016.527.003.992l-.22.003q-.12.007-.216-.006a.1.1 0 0 1-.004-.023l-.003-.052v-.054q-.006-.017-.016-.023-.006-.01-.016.01a.24.24 0 0 1-.129.126.4.4 0 0 1-.172.013.54.54 0 0 1-.29-.094.54.54 0 0 1-.162-.21 1.2 1.2 0 0 1-.071-.288 4 4 0 0 1-.019-.32q0-.112.013-.219.015-.107.045-.194a.5.5 0 0 1 .081-.152.3.3 0 0 1 .122-.091.7.7 0 0 1 .191-.038 1 1 0 0 1 .2 0 .6.6 0 0 1 .159.029q.064.022.071.051-.004-.152-.004-.245v-.236a.4.4 0 0 0 .004-.058zm-.401.946a.25.25 0 0 0-.093.171.3.3 0 0 0-.02.094l-.003.094q0 .08.019.158.02.075.059.136a.3.3 0 0 0 .093.094.23.23 0 0 0 .123.035.2.2 0 0 0 .126-.035.2.2 0 0 0 .071-.097.4.4 0 0 0 .029-.146 3 3 0 0 0 0-.387.3.3 0 0 0-.022-.114.1.1 0 0 0-.062-.048.3.3 0 0 0-.106-.013.36.36 0 0 0-.214.058m1.551.388a1 1 0 0 1-.104-.01v.058l.007.159q.006.061.042.119a.24.24 0 0 0 .249.133.18.18 0 0 0 .113-.078q.048-.068.042-.2.031.003.087.003l.113-.006a1 1 0 0 1 .116 0q.055 0 .091.009l-.013.165q-.006.081-.016.152a1 1 0 0 1-.026.12.14.14 0 0 1-.036.067.3.3 0 0 1-.142.11.6.6 0 0 1-.19.039 2 2 0 0 1-.214 0 4 4 0 0 0-.197-.006.5.5 0 0 1-.168-.059.5.5 0 0 1-.145-.158 1 1 0 0 1-.094-.216 1.3 1.3 0 0 1-.048-.252 2 2 0 0 1-.007-.265l.02-.23a1 1 0 0 1 .051-.22.4.4 0 0 1 .13-.158.6.6 0 0 1 .197-.1.8.8 0 0 1 .232-.039 1 1 0 0 1 .239.026.5.5 0 0 1 .239.103.5.5 0 0 1 .136.188.7.7 0 0 1 .058.242q.01.133 0 .268a2.89 2.89 0 0 1-.236.026 6.136 6.136 0 0 1-.526.01m.378-.423a.2.2 0 0 0-.091-.088.2.2 0 0 0-.051-.022.2.2 0 0 0-.062-.01.4.4 0 0 0-.126.016.2.2 0 0 0-.077.046.2.2 0 0 0-.045.067.4.4 0 0 0-.026.133q.003.013.032.019.03.003.09.003a4 4 0 0 1 .372.004q.02-.004.019-.01v-.036a.22.22 0 0 0-.035-.122m.99-.298.003.081.039-.022.042-.026a.59.59 0 0 1 .497-.091.4.4 0 0 1 .152.081.2.2 0 0 1 .032.055l.039-.019.039-.026a.59.59 0 0 1 .498-.091.4.4 0 0 1 .151.081q.033.028.049.123.02.09.022.22a10.914 10.914 0 0 1 0 .594l-.006.301q-.003.145.003.255a1 1 0 0 1-.203.013h-.201a2 2 0 0 1-.006-.168v-.194a3 3 0 0 0 0-.201 2 2 0 0 0-.013-.271.6.6 0 0 0-.036-.174.1.1 0 0 0-.038-.055l-.007-.004-.006-.003a.2.2 0 0 0-.049-.016.3.3 0 0 0-.064-.006.2.2 0 0 0-.068.013.2.2 0 0 0-.062.032q.004.126 0 .268l-.006.278-.007.265q0 .126.007.223a1 1 0 0 1-.204.013h-.2a2 2 0 0 1-.006-.168v-.194a3 3 0 0 0 0-.201 3 3 0 0 0-.026-.365.3.3 0 0 0-.023-.08.1.1 0 0 0-.045-.059l-.007-.003a.3.3 0 0 0-.077-.019.2.2 0 0 0-.097.006.2.2 0 0 0-.087.058q-.039.043-.046.13a3 3 0 0 0-.003.223l.007.216q.006.106.006.213t-.013.214v.013a.5.5 0 0 1-.177.019l-.094-.003a1 1 0 0 0-.129.003q0-.398-.01-.795a19 19 0 0 1 .006-.824l.065.007h.097a1 1 0 0 1 .11-.01l.064-.01a.3.3 0 0 1 .059 0q.025 0 .025.01a.4.4 0 0 1 .004.09m1.902-.087q.13-.009.233.003l.051.278q.03.16.062.323.032.165.068.317.035.149.071.246a1.4 1.4 0 0 0 .058-.256q.023-.158.042-.329.022-.171.048-.33.026-.157.065-.255.11.003.223-.003.112-.008.249.003a11 11 0 0 0-.094.372 46 46 0 0 1-.155.675q-.033.174-.084.342a2 2 0 0 1-.126.32.85.85 0 0 1-.524.433 1.3 1.3 0 0 1-.462.042.7.7 0 0 1-.032-.22 1 1 0 0 1 .013-.21q.078 0 .158.007a.5.5 0 0 0 .149-.01.14.14 0 0 0 .097-.061q.035-.049.019-.155a9 9 0 0 0-.171-.782 74 74 0 0 0-.204-.756q.117.012.246.006\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"m148.58 103.922-.143.394a.16.16 0 0 1-.171.109c-.135-.016-.348-.051-.486-.127-.138-.075-.282-.235-.369-.34a.164.164 0 0 1 0-.203l.254-.333.286.357a.26.26 0 0 0 .175.095zm-.588-.219a.26.26 0 0 0 .175.096l.434.053c.005.001.008-.005.005-.009l-.349-.459a.05.05 0 0 1 .009-.073.05.05 0 0 1 .073.009l.356.454a.3.3 0 0 1 .03.057c.039.11-.02.26-.04.296a.6.6 0 0 1-.101.125l-.029.03a.8.8 0 0 0-.16.28.04.04 0 0 0 .004.037q.01.017.029.023l.19.049q.024.006.043-.011a.05.05 0 0 0 .016-.042 1 1 0 0 1-.005-.13.54.54 0 0 1 .057-.242s.026-.043.04-.073a1 1 0 0 0 .05-.305l.206.021a.085.085 0 0 0 .087-.048.09.09 0 0 0-.016-.098l-.592-.609a.26.26 0 0 0-.134-.074l-.833-.169a.085.085 0 0 0-.084.138l.269.337z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"url(#cer_svg__c)\",\n strokeWidth: 0.708,\n d: \"M234.671 74.013H35\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"M67.17 62.486c-2.275 0-4.171-1.644-4.171-4.241s1.965-4.252 4.148-4.252c2.253 0 3.414 1.379 3.735 2.7l-1.494.472c-.195-.782-.827-1.644-2.24-1.644-1.219 0-2.506.874-2.506 2.724 0 1.735 1.218 2.69 2.529 2.69 1.39 0 2.068-.909 2.286-1.667l1.483.448c-.31 1.253-1.483 2.77-3.77 2.77m5.897-3.643h2.528c-.023-.564-.39-1.115-1.264-1.115-.793 0-1.23.597-1.264 1.115m2.677 1.47 1.276.38c-.287.977-1.184 1.793-2.574 1.793-1.552 0-2.92-1.115-2.92-3.023 0-1.804 1.334-2.976 2.782-2.976 1.746 0 2.792 1.114 2.792 2.93 0 .218-.023.448-.023.471h-4.045c.035.747.667 1.287 1.425 1.287.713 0 1.103-.356 1.287-.861m6.007-3.677v1.54a2.3 2.3 0 0 0-.46-.046c-.78 0-1.459.38-1.459 1.597v2.586h-1.528V56.66h1.482v.839c.345-.747 1.126-.885 1.61-.885.126 0 .24.012.355.023m3.185-1.666v1.69h1.137v1.355h-1.137v2.367c0 .495.23.656.666.656.184 0 .39-.023.471-.046v1.264c-.137.057-.413.138-.861.138-1.104 0-1.793-.655-1.793-1.747v-2.632h-1.023V56.66h.287c.598 0 .874-.39.874-.896v-.793zm3.964 7.343h-1.528V56.66H88.9zm-1.712-7.504a.942.942 0 1 1 1.885 0c0 .506-.414.93-.943.93a.944.944 0 0 1-.942-.93m7.44 3.16h-2.264v4.344h-1.54V57.97h-.943v-1.31h.943v-.643c0-1.276.804-2.103 2.057-2.103.322 0 .632.057.758.115v1.287a1.7 1.7 0 0 0-.482-.058c-.334 0-.793.15-.793.782v.62h3.78v5.654h-1.516zm-.184-3.172a.95.95 0 0 1 .942-.953.95.95 0 0 1 .942.953c0 .518-.425.931-.942.931a.937.937 0 0 1-.942-.93m5.882 3.103c-.781 0-1.436.563-1.436 1.586s.666 1.598 1.447 1.598c.782 0 1.173-.518 1.299-.954l1.345.448c-.253.942-1.138 1.907-2.644 1.907-1.666 0-2.976-1.264-2.976-2.999 0-1.747 1.287-3 2.93-3 1.54 0 2.414.955 2.655 1.908l-1.367.46c-.138-.471-.495-.954-1.253-.954m3.411 2.873c0-1.011.747-1.574 1.69-1.712l1.39-.207c.322-.046.425-.207.425-.402 0-.402-.31-.736-.953-.736-.667 0-1.035.426-1.081.92l-1.356-.288c.092-.884.908-1.861 2.425-1.861 1.793 0 2.459 1.011 2.459 2.149v2.78c0 .3.035.702.069.897h-1.402a4 4 0 0 1-.057-.678c-.288.448-.828.839-1.667.839-1.206 0-1.942-.816-1.942-1.7m2.264.563c.644 0 1.241-.31 1.241-1.31v-.253l-1.275.196c-.391.057-.701.276-.701.712 0 .334.241.655.735.655m6.127-6.366v1.69h1.138v1.355h-1.138v2.367c0 .495.23.656.666.656.184 0 .391-.023.472-.046v1.264c-.138.057-.414.138-.862.138-1.103 0-1.793-.655-1.793-1.747v-2.632h-1.023V56.66h.288c.597 0 .873-.39.873-.896v-.793zm3.495 3.873h2.528c-.023-.564-.391-1.115-1.264-1.115-.793 0-1.23.597-1.264 1.115m2.677 1.47 1.276.38c-.288.977-1.184 1.793-2.574 1.793-1.552 0-2.919-1.115-2.919-3.023 0-1.804 1.333-2.976 2.781-2.976 1.746 0 2.792 1.114 2.792 2.93 0 .218-.023.448-.023.471h-4.045c.035.747.667 1.287 1.425 1.287.713 0 1.103-.356 1.287-.861m7.939.782c.747 0 1.436-.54 1.436-1.609s-.689-1.609-1.436-1.609-1.437.54-1.437 1.61c0 1.056.69 1.608 1.437 1.608m0-4.608c1.689 0 2.965 1.252 2.965 3 0 1.734-1.276 2.999-2.965 2.999s-2.965-1.265-2.965-3c0-1.747 1.276-3 2.965-3m6.791-1.23c-.344 0-.793.15-.793.782v.62h1.276v1.31h-1.276v4.344h-1.54V57.97h-.942v-1.31h.942v-.643c0-1.276.805-2.103 2.058-2.103.321 0 .632.057.758.115v1.287a1.7 1.7 0 0 0-.483-.058m9.958 7.056-.678-1.862h-3.309l-.678 1.862h-1.678l3.126-8.148h1.838l3.103 8.148zm-2.333-6.39-1.126 3.08h2.253zm7.412 1.977c-.782 0-1.437.563-1.437 1.586s.667 1.598 1.448 1.598c.782 0 1.172-.518 1.299-.954l1.344.448c-.253.942-1.137 1.907-2.643 1.907-1.666 0-2.976-1.264-2.976-2.999 0-1.747 1.287-3 2.93-3 1.54 0 2.414.955 2.655 1.908l-1.368.46c-.138-.471-.494-.954-1.252-.954m5.307 1.092v3.321h-1.529v-8.32h1.529v3.137c.367-.436.988-.62 1.528-.62 1.437 0 2.103 1 2.103 2.24v3.563h-1.528v-3.298c0-.632-.311-1.126-1.046-1.126-.644 0-1.023.482-1.057 1.103m6.711 3.321h-1.529V56.66h1.529zm-1.713-7.504a.942.942 0 1 1 1.885 0c0 .506-.414.93-.942.93a.945.945 0 0 1-.943-.93m4.464 4.034h2.528c-.023-.564-.391-1.115-1.264-1.115-.793 0-1.23.597-1.264 1.115m2.677 1.47 1.276.38c-.287.977-1.184 1.793-2.574 1.793-1.552 0-2.919-1.115-2.919-3.023 0-1.804 1.333-2.976 2.781-2.976 1.747 0 2.792 1.114 2.792 2.93 0 .218-.022.448-.022.471h-4.046c.035.747.667 1.287 1.425 1.287.713 0 1.104-.356 1.287-.861m7.78-3.654-2.195 5.654h-1.528l-2.31-5.654h1.678l1.402 3.792 1.344-3.792zm1.876 2.184h2.529c-.023-.564-.391-1.115-1.264-1.115-.793 0-1.23.597-1.265 1.115m2.678 1.47 1.276.38c-.288.977-1.184 1.793-2.575 1.793-1.551 0-2.918-1.115-2.918-3.023 0-1.804 1.333-2.976 2.781-2.976 1.746 0 2.792 1.114 2.792 2.93 0 .218-.023.448-.023.471h-4.045c.034.747.666 1.287 1.425 1.287.712 0 1.103-.356 1.287-.861m4.088 2h-1.528V56.66h1.459v.69c.31-.552 1.034-.85 1.655-.85.77 0 1.391.332 1.678.941.448-.689 1.046-.942 1.793-.942 1.045 0 2.045.632 2.045 2.15v3.665h-1.482v-3.355c0-.61-.299-1.07-1-1.07-.655 0-1.046.506-1.046 1.115v3.31h-1.517v-3.355c0-.61-.31-1.07-1-1.07-.666 0-1.057.495-1.057 1.115zm9.765-3.47h2.528c-.023-.564-.39-1.115-1.264-1.115-.793 0-1.229.597-1.264 1.115m2.678 1.47 1.275.38c-.287.977-1.183 1.793-2.574 1.793-1.551 0-2.919-1.115-2.919-3.023 0-1.804 1.333-2.976 2.781-2.976 1.747 0 2.793 1.114 2.793 2.93 0 .218-.023.448-.023.471h-4.045c.034.747.666 1.287 1.425 1.287.712 0 1.103-.356 1.287-.861m4.088-1.252v3.252h-1.528V56.66h1.482v.701c.345-.586 1.023-.85 1.632-.85 1.402 0 2.045 1 2.045 2.24v3.563h-1.528v-3.298c0-.632-.31-1.126-1.046-1.126-.666 0-1.057.517-1.057 1.172m7.067-4.091v1.69h1.138v1.355h-1.138v2.367c0 .495.23.656.667.656.184 0 .391-.023.471-.046v1.264c-.138.057-.414.138-.862.138-1.103 0-1.793-.655-1.793-1.747v-2.632h-1.022V56.66h.287c.597 0 .873-.39.873-.896v-.793z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n fillRule: \"evenodd\",\n d: \"M123.911 41.853c-.293 0-.572-.107-.778-.314-.205-.206-.343-.517-.343-.94 0-.426.138-.737.343-.942s.484-.31.778-.31.573.105.778.31.343.516.343.943-.138.738-.343.943-.484.31-.778.31m0-3.869c-1.488 0-2.615 1.096-2.615 2.616 0 1.51 1.127 2.615 2.615 2.615s2.615-1.105 2.615-2.615c0-1.52-1.127-2.616-2.615-2.616M111.535 41.89c-.293 0-.572-.107-.778-.314-.205-.206-.344-.518-.344-.94 0-.426.139-.738.344-.942.205-.206.484-.31.778-.31s.573.104.778.31c.205.204.344.516.344.943s-.139.738-.344.943-.484.31-.778.31m0-3.869c-1.488 0-2.615 1.095-2.615 2.616 0 1.51 1.127 2.615 2.615 2.615s2.615-1.105 2.615-2.615c0-1.52-1.127-2.616-2.615-2.616M130.595 43.2h1.485v-2.95a.9.9 0 0 1 .211-.605.76.76 0 0 1 .586-.244c.268 0 .45.089.567.226.119.14.181.341.181.585V43.2h1.475v-2.95c0-.238.076-.45.21-.602a.74.74 0 0 1 .577-.247c.273 0 .455.09.57.226.118.139.178.34.178.585V43.2h1.446v-3.252c0-.666-.22-1.15-.565-1.466-.343-.315-.8-.455-1.26-.455-.327 0-.627.056-.896.191a1.7 1.7 0 0 0-.609.522c-.286-.466-.809-.713-1.427-.713-.451 0-.973.179-1.302.527v-.407h-1.427zM130.036 38.152v1.513l-.116-.024a2 2 0 0 0-.368-.037c-.315 0-.595.077-.795.264-.2.186-.337.496-.337.996v2.335h-1.482v-5.052h1.443v.488c.356-.429.91-.512 1.258-.512.111 0 .212.01.308.02zM103.336 40.765h1.448l.016.016q.017.016.02.043c.028.317.153.556.339.716.186.158.426.232.676.232a.94.94 0 0 0 .727-.308c.172-.194.261-.464.261-.77v-4.23h1.565v4.275c0 1.368-1.047 2.513-2.542 2.513-.747 0-1.373-.248-1.813-.679-.429-.42-.685-1.021-.696-1.75zM121.086 37.149l.082.023v-1.146l-.037-.017a1 1 0 0 0-.259-.067 2.4 2.4 0 0 0-.369-.03c-.51 0-1.084.17-1.381.474s-.461.737-.461 1.256v.242h-.746V39.2h.746v4h1.498v-4h1.009v-1.316h-1.009v-.224c0-.233.081-.367.185-.445a.64.64 0 0 1 .378-.109c.193 0 .306.026.364.043M117.38 42.017l.077-.023v1.15l-.035.018a1 1 0 0 1-.244.067c-.102.018-.223.03-.346.03-.48 0-1.016-.17-1.295-.475-.279-.306-.433-.74-.433-1.262V39.2h-.701v-1.31h.701v-1.42h1.404v1.42h.949v1.31h-.949v2.304c0 .234.077.369.175.447.101.081.233.11.354.11.182 0 .288-.027.343-.044\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"M96.11 43.405c.16.155.047.42-.18.42h-1.422a.5.5 0 0 1-.51-.492v-1.38c0-.22.275-.33.435-.174z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFB629\",\n d: \"M98.334 43.512a1.066 1.066 0 0 1 0-1.514l1.519-1.51a1.08 1.08 0 0 1 1.524 0 1.066 1.066 0 0 1 0 1.515l-1.519 1.51a1.083 1.083 0 0 1-1.524 0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#09F\",\n d: \"M94.32 39.72a1.066 1.066 0 0 1 0-1.515l2.556-2.542a1.083 1.083 0 0 1 1.524 0 1.066 1.066 0 0 1 0 1.515l-2.556 2.542a1.083 1.083 0 0 1-1.525 0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF6100\",\n d: \"M96.41 41.531a1.066 1.066 0 0 1 0-1.514l3.454-3.432a1.083 1.083 0 0 1 1.525 0 1.066 1.066 0 0 1 0 1.514l-3.455 3.432a1.083 1.083 0 0 1-1.525 0M142.733 39.123l.119.498.813 3.795v.01a2.8 2.8 0 0 1-.715.044 4 4 0 0 1-.737-.087h-.011a4 4 0 0 1-.13-.412 17 17 0 0 0-.12-.487 8 8 0 0 0-.119-.477 2.6 2.6 0 0 0-.141-.39 2 2 0 0 0-.217-.023h-.141a1 1 0 0 0-.13.011h-.184a2.3 2.3 0 0 0-.13.412l-.098.488a10 10 0 0 1-.097.488q-.054.24-.152.423a.03.03 0 0 0-.022.01h-.011q-.086.023-.433 0a16 16 0 0 0-1.084-.01q-.012 0-.022-.01.022-.076.076-.424.054-.346.151-.9.098-.552.228-1.268.142-.727.325-1.54.184-.812.402-1.691a35 35 0 0 1 .477-1.745q.075-.012.162-.011h.586q.227-.011.585-.044l.098.434q.075.282.152.65.086.359.173.77.097.413.184.792t.163.694m-1.399 1.214q.207-.01.412-.011a31 31 0 0 0-.195-1.453q-.075-.52-.141-.704-.054-.185-.119-.076-.054.097-.108.412l-.109.791q-.054.477-.13 1.03.184.01.39.01m5.86 1.32q.155 0 .254.028l-.036.462a8 8 0 0 1-.045.427 2 2 0 0 1-.073.336.43.43 0 0 1-.1.2.83.83 0 0 1-.408.308q-.245.09-.535.109a3.3 3.3 0 0 1-.599 0 10 10 0 0 0-.563-.019 1.43 1.43 0 0 1-.78-.399 1.1 1.1 0 0 1-.336-.544 3.2 3.2 0 0 1-.109-.68 10 10 0 0 1-.009-.727 4 4 0 0 0-.018-.662 4 4 0 0 1 .054-.653q.01-.1.064-.272l.082-.264a.6.6 0 0 1 .199-.235q.145-.1.327-.164.19-.072.399-.1.217-.027.436-.027.182.018.344.01.173-.02.363 0 .29.017.554.108.262.09.454.272.127.091.19.245.072.154.109.363.036.21.036.472l.018.554a1.2 1.2 0 0 1-.272.027 5.5 5.5 0 0 1-.88-.073.73.73 0 0 0-.263-.49q-.218-.18-.572-.09a.6.6 0 0 0-.308.2q-.054.035-.082.18a5 5 0 0 0-.036.572q0 .29-.018.608-.018.21.1.327a.7.7 0 0 0 .299.163q.173.036.354.018a.7.7 0 0 0 .29-.1.38.38 0 0 0 .136-.208q.055-.154.082-.273.09.01.245.01l.327-.019q.171-.009.326 0m3.914-2.776q.227.009.517.027a1 1 0 0 1 .009.11q.01.053.01.108v.09a28 28 0 0 0 .009 1.933q.036.945-.028 1.915 0 .117-.009.236 0 .118-.109.136h-.108q-.146 0-.3-.01a2 2 0 0 0-.29-.017q-.1 0-.2.018-.09.009-.19.009a.14.14 0 0 1-.091-.073.613.613 0 0 1 0-.29.6.6 0 0 0 .018-.154q-.218.218-.553.372a1.5 1.5 0 0 1-.645.154.85.85 0 0 1-.608-.245 2 2 0 0 1-.408-.608 3.6 3.6 0 0 1-.245-.79 5 5 0 0 1-.072-.789q0-.453.118-.834.117-.382.317-.654.209-.28.49-.435.281-.164.599-.173.164 0 .299.01.146 0 .263.045a.5.5 0 0 1 .209.127.6.6 0 0 1 .154.236 1 1 0 0 1 .009-.245.9.9 0 0 0 .028-.218q0-.01.054-.01a.5.5 0 0 1 .136 0h.245q.155.01.372.02m-1.869 1.434a.7.7 0 0 0-.254.399q-.036.117-.045.245a3 3 0 0 0-.009.236q0 .408.208.698a.72.72 0 0 0 .599.282q.227 0 .336-.073a.42.42 0 0 0 .163-.218 1 1 0 0 0 .055-.345q.009-.209.009-.462 0-.318-.009-.5a.7.7 0 0 0-.046-.29.19.19 0 0 0-.136-.127 1 1 0 0 0-.281-.027q-.372 0-.59.182m5.395-2.886q.009-.1.018-.28v-.1q0-.01.118-.019.128-.018.299-.018.181-.009.382 0 .2 0 .344.027v.599q0 1.515.046 2.994.045 1.48.009 2.786-.282 0-.617.009a3.3 3.3 0 0 1-.608-.018.2.2 0 0 1-.009-.064 1 1 0 0 0-.009-.145v-.154a.13.13 0 0 0-.046-.064q-.018-.027-.045.027-.136.273-.363.354-.226.072-.481.037-.518-.037-.816-.264a1.5 1.5 0 0 1-.454-.59 3.3 3.3 0 0 1-.2-.807q-.045-.444-.054-.898 0-.318.036-.617.046-.3.127-.544.091-.255.227-.427a.8.8 0 0 1 .345-.254q.245-.09.535-.109.3-.027.563 0 .263.019.444.082.182.063.2.145a34 34 0 0 1-.009-.69v-.6619999999999999q.009-.09.009-.163.009-.082.009-.173m-1.125 2.659a.7.7 0 0 0-.263.48 1 1 0 0 0-.055.264q-.009.135-.009.263 0 .227.055.444.054.21.163.382a.9.9 0 0 0 .263.263q.154.1.345.1a.56.56 0 0 0 .354-.1.57.57 0 0 0 .199-.273 1.2 1.2 0 0 0 .082-.408q.018-.245.018-.535 0-.353-.018-.554a.8.8 0 0 0-.063-.317.25.25 0 0 0-.173-.136 1 1 0 0 0-.299-.036q-.372 0-.599.163m4.354 1.089a2 2 0 0 1-.29-.028v.164q.009.272.018.444a.8.8 0 0 0 .118.336q.108.21.308.308a.6.6 0 0 0 .39.064.5.5 0 0 0 .318-.218q.136-.19.118-.562.09.009.245.009l.317-.018a3 3 0 0 1 .327 0q.155 0 .254.027l-.036.463a8 8 0 0 1-.045.426 2 2 0 0 1-.073.336.38.38 0 0 1-.1.19.84.84 0 0 1-.399.309q-.245.09-.535.109a5 5 0 0 1-.599 0 9 9 0 0 0-.554-.019 1.3 1.3 0 0 1-.472-.163 1.45 1.45 0 0 1-.408-.444 3 3 0 0 1-.263-.608 4 4 0 0 1-.136-.708 5 5 0 0 1-.018-.744l.054-.644q.036-.318.145-.617.119-.264.363-.445.246-.19.554-.281.308-.1.653-.109.345-.01.671.073.418.072.672.29t.381.526q.136.31.163.68.027.373 0 .754a2 2 0 0 1-.245.036 14 14 0 0 1-1.896.064m1.062-1.189a.6.6 0 0 0-.254-.245.5.5 0 0 0-.146-.064.5.5 0 0 0-.172-.027q-.218 0-.354.046a.55.55 0 0 0-.218.127.6.6 0 0 0-.127.19 1.4 1.4 0 0 0-.054.227 1 1 0 0 0-.018.145q.009.036.09.055.082.009.255.009a12 12 0 0 1 .88 0q.118.009.163.009.054-.009.054-.027v-.1a.66.66 0 0 0-.099-.345m2.779-.835q0 .1.009.227.046-.028.109-.063a.7.7 0 0 0 .118-.073 1.67 1.67 0 0 1 .907-.309q.255-.008.49.055.237.063.427.227.045.045.09.154.046-.027.109-.054a1 1 0 0 0 .109-.073q.19-.135.427-.218a1.64 1.64 0 0 1 .97-.036q.237.063.427.227.09.082.136.345.054.254.064.617.018.362.009.798 0 .426-.009.871l-.019.844q-.009.408.009.717-.317.045-.571.036h-.563a6 6 0 0 1-.018-.472v-.544a9 9 0 0 0 0-.563q0-.281-.018-.526l-.018-.236a2 2 0 0 0-.036-.263.9.9 0 0 0-.064-.227.3.3 0 0 0-.109-.154q-.009-.01-.018-.01t-.018-.008a.6.6 0 0 0-.136-.046 1 1 0 0 0-.182-.018.6.6 0 0 0-.19.036.5.5 0 0 0-.173.091q.009.354 0 .753l-.018.78-.018.745q0 .353.018.626-.317.045-.571.036h-.563a6 6 0 0 1-.018-.472v-.544a9 9 0 0 0 0-.563q0-.281-.018-.526l-.018-.236a2 2 0 0 0-.037-.263.8.8 0 0 0-.063-.227.33.33 0 0 0-.109-.154q-.009-.01-.018-.01t-.018-.008a.7.7 0 0 0-.218-.055.5.5 0 0 0-.272.018.5.5 0 0 0-.245.164q-.11.118-.127.363a7 7 0 0 0-.009.626l.018.608q.018.3.018.598 0 .3-.036.6v.036a1.4 1.4 0 0 1-.499.054q-.119 0-.264-.01a3 3 0 0 0-.362.01q0-1.116-.028-2.232a50 50 0 0 1 .018-2.314q.11.009.182.018h.272a5 5 0 0 1 .309-.027q.09-.018.181-.027a.7.7 0 0 1 .163 0q.073 0 .073.027.018.155.009.254m5.342-.245q.363-.027.653.01.064.325.145.78.082.445.173.907.09.463.19.89.1.416.2.689.1-.272.163-.717.064-.445.118-.925.064-.482.136-.926t.182-.717q.308.009.626-.009a6 6 0 0 1 .699.01q-.145.543-.264 1.043-.109.49-.217.961a16 16 0 0 0-.218.935 9 9 0 0 1-.236.962 5 5 0 0 1-.354.898q-.218.427-.581.735a2.3 2.3 0 0 1-.889.48q-.526.164-1.297.119a2 2 0 0 1-.091-.617q-.009-.335.036-.59.219 0 .445.018.236.018.417-.027a.4.4 0 0 0 .273-.172q.099-.136.054-.436a26 26 0 0 0-.481-2.196q-.29-1.098-.572-2.123.327.036.69.018\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n fillRule: \"evenodd\",\n d: \"m171.477 38.668-.401 1.106a.46.46 0 0 1-.48.305c-.379-.044-.977-.144-1.364-.356s-.794-.66-1.036-.956a.456.456 0 0 1-.002-.569l.715-.934.802 1a.73.73 0 0 0 .491.269zm-1.65-.616a.73.73 0 0 0 .491.268l1.218.15c.013.002.022-.013.014-.024l-.979-1.291a.145.145 0 0 1 .229-.18l1.001 1.276a1 1 0 0 1 .082.16c.11.309-.054.73-.11.832-.078.144-.197.262-.285.351l-.08.082a2.1 2.1 0 0 0-.45.787.13.13 0 0 0 .011.104.13.13 0 0 0 .082.064l.532.14a.134.134 0 0 0 .166-.15 2 2 0 0 1-.014-.364c.008-.215.046-.472.16-.68 0 0 .073-.123.112-.206.097-.21.132-.661.143-.857l.578.061a.243.243 0 0 0 .2-.41l-1.663-1.712a.73.73 0 0 0-.377-.206l-2.339-.476a.242.242 0 0 0-.237.389l.757.946z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#3562D7\",\n strokeWidth: 1.49,\n d: \"M17.943 15.943h223.45v.177a8.943 8.943 0 0 0 8.943 8.943h.721V163.8H27.607v-.177a8.943 8.943 0 0 0-8.944-8.943h-.72z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"url(#cer_svg__d)\",\n strokeWidth: 0.596,\n d: \"M246.883 28.46v131.167H22.121l.138-8.339V20.116h215.586l9.038.127z\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"cer_svg__c\",\n x1: 230.599,\n x2: 35,\n y1: 73.865,\n y2: 73.865,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FF3D00\",\n stopOpacity: 0\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.379,\n stopColor: \"#FF3D00\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.616,\n stopColor: \"#0500FF\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#0500FF\",\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"cer_svg__d\",\n x1: 37.83,\n x2: 211.066,\n y1: 19.818,\n y2: 170.247,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FF6100\",\n stopOpacity: 0\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.354,\n stopColor: \"#FF6100\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.703,\n stopColor: \"#FF6100\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FF6100\",\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"cer_svg__a\",\n width: 267.483,\n height: 182.226,\n x: 0.759,\n y: 0.59,\n colorInterpolationFilters: \"sRGB\",\n filterUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n result: \"hardAlpha\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", {\n dy: 1.831\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 4.121\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_1969_3996\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_1969_3996\",\n result: \"shape\"\n})))));\nexport default SvgCer;","\n \n\n","\n \n\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgPlay = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M8.815 3.642c-1.119-.746-2.617.056-2.617 1.401v13.914c0 1.345 1.498 2.147 2.617 1.4l10.436-6.956c1-.666 1-2.136 0-2.802z\",\n clipRule: \"evenodd\"\n})));\nexport default SvgPlay;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgPip = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1zm-1 2h-6v4h6z\"\n})));\nexport default SvgPip;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgMute = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M10.53 3.556c.434-.034.86.142 1.143.474.254.297.294.655.31.828.017.195.017.436.017.682v12.92c0 .246 0 .487-.017.682-.016.173-.056.53-.31.828a1.36 1.36 0 0 1-1.144.474c-.39-.03-.67-.255-.804-.367-.15-.125-.32-.296-.495-.47L6.33 16.705a6 6 0 0 0-.159-.155l-.002-.002h-.003a6 6 0 0 0-.222-.003H4.335c-.23 0-.453 0-.642-.015a1.8 1.8 0 0 1-.7-.183 1.8 1.8 0 0 1-.795-.794 1.8 1.8 0 0 1-.183-.7C2 14.663 2 14.44 2 14.21V9.789c0-.23 0-.453.015-.642.017-.208.057-.453.183-.7.174-.342.453-.62.795-.794.247-.126.492-.166.7-.183.189-.016.412-.016.642-.015h1.608c.12 0 .178 0 .222-.003h.003l.002-.002.159-.155 2.878-2.878.023-.024c.174-.174.345-.345.495-.47.133-.112.415-.336.804-.367m4.464 5.074a.91.91 0 0 1 1.285 0l2.085 2.084 2.084-2.084a.909.909 0 1 1 1.286 1.286L19.649 12l2.085 2.084a.91.91 0 0 1-1.286 1.286l-2.084-2.084-2.085 2.084a.91.91 0 0 1-1.286-1.286L17.079 12l-2.085-2.084a.91.91 0 0 1 0-1.286\",\n clipRule: \"evenodd\"\n})));\nexport default SvgMute;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgPause = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M7 4a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1zm8 0a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1z\",\n clipRule: \"evenodd\"\n})));\nexport default SvgPause;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgVolume = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M10.53 3.556c.434-.034.86.142 1.143.474.254.297.294.655.31.828.017.195.017.436.017.682v12.92c0 .246 0 .487-.017.682-.016.173-.056.53-.31.828a1.36 1.36 0 0 1-1.144.474c-.39-.03-.67-.255-.804-.367-.15-.125-.32-.296-.495-.47L6.33 16.705a6 6 0 0 0-.159-.155l-.002-.002h-.003a6 6 0 0 0-.222-.003H4.335c-.23 0-.453 0-.642-.015a1.8 1.8 0 0 1-.7-.183 1.8 1.8 0 0 1-.795-.794 1.8 1.8 0 0 1-.183-.7C2 14.663 2 14.44 2 14.21V9.789c0-.23 0-.453.015-.642.017-.208.057-.453.183-.7.174-.342.453-.62.795-.794.247-.126.492-.166.7-.183.189-.016.412-.016.642-.015h1.608c.12 0 .178 0 .222-.003h.003l.002-.002.159-.155 2.878-2.878.023-.024c.174-.174.345-.345.495-.47.133-.112.415-.336.804-.367m7.983 1.342a.91.91 0 0 1 1.268.207A11.77 11.77 0 0 1 22 12c0 2.572-.822 4.954-2.218 6.895a.909.909 0 1 1-1.476-1.062A9.95 9.95 0 0 0 20.182 12a9.95 9.95 0 0 0-1.876-5.833.91.91 0 0 1 .207-1.269m-3.628 2.72a.91.91 0 0 1 1.265.226A7.24 7.24 0 0 1 17.455 12a7.24 7.24 0 0 1-1.305 4.156.91.91 0 1 1-1.49-1.04A5.43 5.43 0 0 0 15.635 12c0-1.16-.36-2.233-.977-3.116a.91.91 0 0 1 .226-1.266\",\n clipRule: \"evenodd\"\n})));\nexport default SvgVolume;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgSubtitle = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 18 14\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M2 0C.9 0 0 .9 0 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm0 6h3v2H2zm9 6H2v-2h9zm5 0h-3v-2h3zm0-4H7V6h9z\"\n})));\nexport default SvgSubtitle;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgFullscreen = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 20 20\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M12.5 1.667a.833.833 0 1 0 0 1.666h2.988l-4.41 4.411a.833.833 0 0 0 1.178 1.179l4.41-4.411V7.5a.833.833 0 0 0 1.667 0v-5a.833.833 0 0 0-.833-.833zM3.333 12.5a.833.833 0 1 0-1.666 0v5c0 .46.373.833.833.833h5a.833.833 0 1 0 0-1.666H4.512l4.41-4.411a.833.833 0 1 0-1.178-1.179l-4.41 4.411z\",\n clipRule: \"evenodd\"\n})));\nexport default SvgFullscreen;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgPlaybackRate = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 36 36\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M23.94 18.78c.03-.25.05-.51.05-.78s-.02-.52-.05-.78l1.68-1.32c.15-.12.19-.33.09-.51l-1.6-2.76c-.09-.17-.31-.24-.48-.17l-1.99.8q-.615-.48-1.35-.78l-.3-2.12a.38.38 0 0 0-.39-.33h-3.2c-.2 0-.36.14-.39.33l-.3 2.12c-.48.2-.93.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.48.17l-1.6 2.76c-.1.17-.05.39.09.51l1.68 1.32c-.03.25-.05.52-.05.78s.02.52.05.78l-1.68 1.32c-.15.12-.19.33-.09.51l1.6 2.76c.09.17.31.24.48.17l1.99-.8q.615.48 1.35.78l.3 2.12c.02.19.19.33.39.33h3.2c.2 0 .36-.14.39-.33l.3-2.12c.48-.2.93-.47 1.35-.78l1.99.8c.18.07.39 0 .48-.17l1.6-2.76c.09-.17.05-.39-.09-.51zM18 20.79c-1.54 0-2.8-1.25-2.8-2.8 0-1.54 1.25-2.8 2.8-2.8 1.54 0 2.8 1.25 2.8 2.8 0 1.54-1.25 2.8-2.8 2.8\"\n})));\nexport default SvgPlaybackRate;","var _g, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgPlayIcon = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 13 13\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#playIcon_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6C73A8\",\n d: \"M6.5 12.333A5.833 5.833 0 1 0 6.5.667a5.833 5.833 0 0 0 0 11.666\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M5.438 8.444a.486.486 0 0 0 .83.344l1.945-1.945a.486.486 0 0 0 0-.687L6.268 4.21a.486.486 0 0 0-.83.344z\",\n clipRule: \"evenodd\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"playIcon_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h13v13H0z\"\n})))));\nexport default SvgPlayIcon;","var _circle, _circle2, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgPlayCircleOpacity = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 59 59\"\n}, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 29.25,\n cy: 29.25,\n r: 29.25,\n fill: \"#384BB4\",\n fillOpacity: 0.8\n})), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 29.25,\n cy: 29.25,\n r: 28.75,\n stroke: \"#fff\",\n strokeOpacity: 0.7\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M40.709 28.384a1 1 0 0 1 0 1.732l-16.438 9.49a1 1 0 0 1-1.5-.865V19.759a1 1 0 0 1 1.5-.866z\"\n})));\nexport default SvgPlayCircleOpacity;","var _path, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgLogoMarkFilled = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 94,\n height: 135,\n fill: \"none\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#logo-mark-filled_svg__a)\",\n fillOpacity: 0.4,\n fillRule: \"evenodd\",\n d: \"M20.625 69.25a14.15 14.15 0 0 1 0-20.1l33.934-33.737c5.587-5.55 14.646-5.55 20.233 0a14.15 14.15 0 0 1 0 20.101L40.858 69.251c-5.587 5.55-14.646 5.55-20.233 0m53.273 30.235a14.15 14.15 0 0 0 0 20.101c5.587 5.551 14.645 5.551 20.233 0l20.164-20.032a14.15 14.15 0 0 0 0-20.101c-5.588-5.551-14.646-5.551-20.233 0zm-31.9 24.266c3.016 0 4.517-3.528 2.393-5.587l-22.26-21.579c-2.123-2.06-5.762-.604-5.762 2.32v18.298c0 3.61 3.03 6.548 6.754 6.548zm6.367-50.556a14.15 14.15 0 0 0 0 20.1c5.588 5.551 14.646 5.551 20.233 0l45.851-45.552a14.15 14.15 0 0 0 0-20.1c-5.587-5.551-14.645-5.551-20.233 0z\",\n clipRule: \"evenodd\"\n})), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"logo-mark-filled_svg__a\",\n x1: 89.001,\n x2: 8.5,\n y1: 59,\n y2: 59,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FFB629\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFB629\",\n stopOpacity: 0\n})))));\nexport default SvgLogoMarkFilled;","var _path, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgMessageFilled = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 84,\n height: 121,\n fill: \"none\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#message-filled_svg__a)\",\n fillOpacity: 0.4,\n fillRule: \"evenodd\",\n d: \"M100.833 10.083H20.167c-8.354 0-15.126 6.772-15.126 15.125v55.459c0 8.353 6.772 15.125 15.125 15.125h42.438c1.918 0 3.797.547 5.415 1.577l20.023 12.748c3.356 2.137 7.75-.274 7.75-4.253V95.792h5.041c8.353 0 15.125-6.772 15.125-15.125V25.208c0-8.353-6.772-15.125-15.125-15.125M30.25 42.854a5.04 5.04 0 0 1 5.041-5.041h50.417a5.042 5.042 0 0 1 0 10.083H35.292a5.04 5.04 0 0 1-5.042-5.042M35.29 57.98a5.042 5.042 0 0 0 0 10.084h50.417a5.042 5.042 0 1 0 0-10.084z\",\n clipRule: \"evenodd\"\n})), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"message-filled_svg__a\",\n x1: 83.813,\n x2: -3.492,\n y1: 52.88,\n y2: 52.88,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FFB629\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFB629\",\n stopOpacity: 0\n})))));\nexport default SvgMessageFilled;","var _g, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgMingcuteCertificateFill = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 89,\n height: 130,\n fill: \"none\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#mingcute_certificate-fill_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#mingcute_certificate-fill_svg__b)\",\n fillOpacity: 0.4,\n fillRule: \"evenodd\",\n d: \"M57.34 11.375a10.834 10.834 0 0 1 14.625-.628l.694.634L82.95 21.667H97.5a10.834 10.834 0 0 1 10.8 10.02l.033.813v14.55l10.292 10.291a10.833 10.833 0 0 1 .628 14.63l-.634.688-10.291 10.292v14.55a10.835 10.835 0 0 1-10.021 10.806l-.807.027H82.956l-10.292 10.291a10.834 10.834 0 0 1-14.63.629l-.688-.629-10.292-10.291H32.5a10.835 10.835 0 0 1-10.806-10.021l-.028-.813V82.951L11.375 72.659a10.833 10.833 0 0 1-.629-14.63l.629-.688 10.291-10.292V32.5a10.833 10.833 0 0 1 10.021-10.8l.813-.033h14.549zm24.337 37.283L58.69 71.646l-9.577-9.576a5.418 5.418 0 1 0-7.659 7.664l13.022 13.022a5.96 5.96 0 0 0 8.428 0l26.434-26.439a5.417 5.417 0 0 0-7.66-7.659\",\n clipRule: \"evenodd\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"mingcute_certificate-fill_svg__b\",\n x1: 88.875,\n x2: -0.535,\n y1: 56.419,\n y2: 56.419,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FFB629\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFB629\",\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"mingcute_certificate-fill_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h130v130H0z\"\n})))));\nexport default SvgMingcuteCertificateFill;","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","var _path, _g, _path2, _circle, _circle2, _circle3, _circle4, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgCertificatesQuiz = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 423 192\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"M30.5 102.306c37.418-14.25 55.605 11.07 60.02 25.511-7.342-18.198-23.352-23.041-33.776-23.403-9.657-.335-22.22 2.618-27.855 7.007-2.415 1.881-5.55-1.255-4.023-4.725.978-2.222 3.815-3.656 5.635-4.39M389.019 48.199c-39.866-3.72-50.615 25.543-51.006 40.64 2.206-19.5 16.337-28.45 26.283-31.588 9.216-2.907 22.112-3.423 28.715-.701 2.83 1.166 5.012-2.694 2.612-5.63-1.537-1.879-4.655-2.5-6.604-2.721\"\n})), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#certificates-quiz_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 244.291,\n height: 159,\n x: 89.875,\n y: 20,\n fill: \"#fff\",\n rx: 7.439\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F4F7FF\",\n d: \"M196.889 133.188c1.33 1.29.39 3.5-1.499 3.5h-11.825c-2.333 0-4.231-1.84-4.231-4.102v-11.463c0-1.831 2.28-2.743 3.61-1.453zM215.375 134.08a8.863 8.863 0 0 1 0-12.592l12.632-12.55c3.5-3.477 9.175-3.477 12.675 0a8.864 8.864 0 0 1 0 12.593L228.05 134.08c-3.5 3.477-9.175 3.477-12.675 0M182 102.547a8.863 8.863 0 0 1 0-12.592l21.258-21.134c3.5-3.477 9.175-3.477 12.675 0a8.863 8.863 0 0 1 0 12.592l-21.258 21.134c-3.5 3.477-9.175 3.477-12.675 0M199.379 117.61a8.863 8.863 0 0 1 0-12.592l28.723-28.536c3.5-3.478 9.175-3.478 12.675 0a8.863 8.863 0 0 1 0 12.592l-28.723 28.536c-3.5 3.477-9.175 3.477-12.675 0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"M118.92 118.053c-3.126 0-5.731-2.258-5.731-5.826 0-3.569 2.7-5.842 5.7-5.842 3.095 0 4.689 1.894 5.131 3.71l-2.052.647c-.269-1.073-1.137-2.257-3.079-2.257-1.674 0-3.442 1.2-3.442 3.742 0 2.384 1.674 3.694 3.473 3.694 1.911 0 2.842-1.247 3.142-2.289l2.037.616c-.426 1.721-2.037 3.805-5.179 3.805m8.101-5.005h3.474c-.032-.774-.537-1.532-1.737-1.532-1.089 0-1.689.821-1.737 1.532m3.679 2.021 1.753.521c-.395 1.342-1.627 2.463-3.537 2.463-2.132 0-4.01-1.532-4.01-4.153 0-2.479 1.831-4.089 3.821-4.089 2.399 0 3.836 1.531 3.836 4.026 0 .3-.031.616-.031.647h-5.558c.047 1.027.916 1.769 1.958 1.769.979 0 1.516-.49 1.768-1.184m8.254-5.053v2.116a3.2 3.2 0 0 0-.632-.063c-1.074 0-2.005.521-2.005 2.194v3.553h-2.1v-7.768h2.037v1.152c.473-1.026 1.547-1.215 2.21-1.215.174 0 .332.015.49.031m4.375-2.289v2.321h1.563v1.863h-1.563v3.252c0 .679.315.9.915.9.253 0 .537-.031.648-.063v1.737c-.19.079-.569.189-1.185.189-1.515 0-2.463-.9-2.463-2.399v-3.616h-1.405v-1.863h.395c.821 0 1.2-.537 1.2-1.232v-1.089zm5.446 10.089h-2.1v-7.768h2.1zm-2.352-10.31c0-.727.584-1.311 1.295-1.311.726 0 1.294.584 1.294 1.311 0 .694-.568 1.279-1.294 1.279a1.3 1.3 0 0 1-1.295-1.279m10.221 4.342h-3.11v5.968h-2.116v-5.968h-1.294v-1.8h1.294v-.884c0-1.753 1.106-2.89 2.827-2.89.442 0 .868.079 1.042.158v1.768a2.4 2.4 0 0 0-.664-.079c-.457 0-1.089.206-1.089 1.074v.853h5.195v7.768h-2.085zm-.252-4.358c0-.726.584-1.311 1.295-1.311.71 0 1.294.585 1.294 1.311 0 .71-.584 1.279-1.294 1.279a1.287 1.287 0 0 1-1.295-1.279m8.082 4.263c-1.074 0-1.974.774-1.974 2.179s.916 2.194 1.989 2.194c1.074 0 1.611-.71 1.785-1.31l1.847.616c-.348 1.294-1.563 2.621-3.632 2.621-2.289 0-4.089-1.737-4.089-4.121 0-2.4 1.768-4.121 4.026-4.121 2.116 0 3.316 1.31 3.647 2.621l-1.878.631c-.19-.647-.679-1.31-1.721-1.31m4.687 3.947c0-1.389 1.026-2.163 2.321-2.352l1.91-.285c.442-.063.584-.284.584-.552 0-.553-.426-1.011-1.31-1.011-.916 0-1.421.585-1.484 1.263l-1.864-.394c.127-1.216 1.248-2.558 3.332-2.558 2.463 0 3.379 1.389 3.379 2.952v3.821c0 .411.047.964.095 1.232h-1.927c-.047-.205-.079-.632-.079-.932-.394.616-1.136 1.153-2.289 1.153-1.658 0-2.668-1.121-2.668-2.337m3.11.774c.884 0 1.705-.426 1.705-1.8v-.347l-1.752.268c-.537.079-.963.379-.963.979 0 .458.331.9 1.01.9m8.418-8.747v2.321h1.563v1.863h-1.563v3.252c0 .679.315.9.915.9.253 0 .537-.031.648-.063v1.737c-.19.079-.569.189-1.184.189-1.516 0-2.464-.9-2.464-2.399v-3.616h-1.405v-1.863h.395c.821 0 1.2-.537 1.2-1.232v-1.089zm4.801 5.321h3.474c-.032-.774-.537-1.532-1.737-1.532-1.09 0-1.69.821-1.737 1.532m3.679 2.021 1.752.521c-.394 1.342-1.626 2.463-3.536 2.463-2.132 0-4.011-1.532-4.011-4.153 0-2.479 1.832-4.089 3.821-4.089 2.4 0 3.837 1.531 3.837 4.026 0 .3-.032.616-.032.647h-5.557c.047 1.027.915 1.769 1.957 1.769.979 0 1.516-.49 1.769-1.184m10.907 1.073c1.026 0 1.974-.742 1.974-2.21 0-1.469-.948-2.211-1.974-2.211s-1.974.742-1.974 2.211c0 1.452.948 2.21 1.974 2.21m0-6.331c2.321 0 4.073 1.721 4.073 4.121 0 2.384-1.752 4.121-4.073 4.121s-4.074-1.737-4.074-4.121c0-2.4 1.753-4.121 4.074-4.121m9.331-1.69c-.474 0-1.089.206-1.089 1.074v.853h1.752v1.8h-1.752v5.968h-2.116v-5.968h-1.295v-1.8h1.295v-.884c0-1.753 1.105-2.89 2.826-2.89.442 0 .868.079 1.042.158v1.768a2.4 2.4 0 0 0-.663-.079m13.681 9.695-.931-2.558h-4.547l-.932 2.558h-2.305l4.294-11.194h2.527l4.263 11.194zm-3.205-8.779-1.547 4.232h3.095zm10.183 2.716c-1.074 0-1.974.774-1.974 2.179s.916 2.194 1.99 2.194 1.61-.71 1.784-1.31l1.847.616c-.347 1.294-1.563 2.621-3.631 2.621-2.29 0-4.09-1.737-4.09-4.121 0-2.4 1.769-4.121 4.026-4.121 2.116 0 3.316 1.31 3.648 2.621l-1.879.631c-.19-.647-.679-1.31-1.721-1.31m7.291 1.5v4.563h-2.1v-11.431h2.1v4.31c.505-.6 1.358-.853 2.1-.853 1.974 0 2.89 1.374 2.89 3.079v4.895h-2.1v-4.532c0-.868-.427-1.547-1.437-1.547-.884 0-1.405.663-1.453 1.516m9.221 4.563h-2.1v-7.768h2.1zm-2.353-10.31c0-.727.584-1.311 1.295-1.311.726 0 1.295.584 1.295 1.311 0 .694-.569 1.279-1.295 1.279a1.3 1.3 0 0 1-1.295-1.279m6.132 5.542h3.474c-.032-.774-.537-1.532-1.737-1.532-1.089 0-1.689.821-1.737 1.532m3.679 2.021 1.753.521c-.395 1.342-1.626 2.463-3.537 2.463-2.131 0-4.01-1.532-4.01-4.153 0-2.479 1.831-4.089 3.821-4.089 2.4 0 3.836 1.531 3.836 4.026 0 .3-.031.616-.031.647h-5.558c.047 1.027.916 1.769 1.958 1.769.979 0 1.516-.49 1.768-1.184m10.689-5.021-3.016 7.768h-2.1l-3.173-7.768h2.305l1.926 5.21 1.848-5.21zm2.578 3h3.473c-.031-.774-.536-1.532-1.736-1.532-1.09 0-1.69.821-1.737 1.532m3.679 2.021 1.752.521c-.394 1.342-1.626 2.463-3.536 2.463-2.132 0-4.011-1.532-4.011-4.153 0-2.479 1.832-4.089 3.821-4.089 2.4 0 3.837 1.531 3.837 4.026 0 .3-.032.616-.032.647h-5.557c.047 1.027.915 1.769 1.957 1.769.979 0 1.516-.49 1.769-1.184m5.616 2.747h-2.1v-7.768h2.006v.947c.426-.758 1.421-1.168 2.273-1.168 1.058 0 1.911.458 2.306 1.294.615-.947 1.436-1.294 2.463-1.294 1.436 0 2.81.868 2.81 2.952v5.037h-2.037v-4.61c0-.837-.41-1.469-1.373-1.469-.9 0-1.437.695-1.437 1.532v4.547h-2.084v-4.61c0-.837-.427-1.469-1.374-1.469-.916 0-1.453.679-1.453 1.532zm13.417-4.768h3.474c-.032-.774-.537-1.532-1.737-1.532-1.09 0-1.69.821-1.737 1.532m3.679 2.021 1.752.521c-.394 1.342-1.626 2.463-3.536 2.463-2.132 0-4.011-1.532-4.011-4.153 0-2.479 1.832-4.089 3.821-4.089 2.4 0 3.837 1.531 3.837 4.026 0 .3-.032.616-.032.647h-5.557c.047 1.027.915 1.769 1.957 1.769.979 0 1.516-.49 1.769-1.184m5.617-1.721v4.468h-2.1v-7.768h2.036v.963c.474-.805 1.406-1.169 2.242-1.169 1.927 0 2.811 1.374 2.811 3.079v4.895h-2.1v-4.532c0-.868-.426-1.547-1.437-1.547-.916 0-1.452.711-1.452 1.611m9.71-5.621v2.321h1.563v1.863h-1.563v3.252c0 .679.315.9.915.9.253 0 .537-.031.648-.063v1.737c-.19.079-.569.189-1.185.189-1.515 0-2.463-.9-2.463-2.399v-3.616h-1.405v-1.863h.395c.821 0 1.2-.537 1.2-1.232v-1.089z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n fillRule: \"evenodd\",\n d: \"M196.877 90.192c-.403 0-.787-.147-1.069-.43s-.472-.712-.472-1.292c0-.586.19-1.014.471-1.295a1.5 1.5 0 0 1 1.07-.426c.403 0 .787.144 1.069.426.281.28.471.71.471 1.295 0 .587-.19 1.015-.471 1.296a1.5 1.5 0 0 1-1.069.426m0-5.315c-2.045 0-3.594 1.504-3.594 3.593 0 2.076 1.548 3.594 3.594 3.594s3.593-1.518 3.593-3.594c0-2.089-1.549-3.593-3.593-3.593M179.875 90.243c-.403 0-.786-.147-1.069-.431-.282-.283-.472-.712-.472-1.291 0-.586.19-1.015.472-1.296a1.5 1.5 0 0 1 1.069-.426c.403 0 .786.144 1.069.426.281.281.472.71.472 1.296s-.191 1.014-.472 1.296a1.5 1.5 0 0 1-1.069.426m0-5.315c-2.045 0-3.594 1.504-3.594 3.593 0 2.075 1.549 3.593 3.594 3.593s3.593-1.518 3.593-3.593c0-2.09-1.549-3.594-3.593-3.594M206.059 92.042h2.039V87.99c0-.334.106-.626.29-.832s.453-.335.805-.335c.369 0 .619.122.779.31.164.192.249.47.249.804v4.105h2.026V87.99c0-.327.105-.62.289-.828a1.02 1.02 0 0 1 .792-.339c.376 0 .626.123.784.31.162.191.244.468.244.804v4.105h1.987v-4.467c0-.916-.302-1.58-.776-2.015-.471-.432-1.099-.624-1.732-.624-.448 0-.86.076-1.23.262a2.4 2.4 0 0 0-.837.716c-.393-.64-1.112-.978-1.961-.978-.62 0-1.337.245-1.788.723V85.1h-1.96zM205.295 85.107v2.079l-.16-.032a2.5 2.5 0 0 0-.505-.051c-.433 0-.817.106-1.093.363-.274.255-.463.68-.463 1.367v3.21h-2.035V85.1h1.982v.67c.49-.59 1.251-.704 1.728-.704.153 0 .292.014.424.027zM168.609 88.697h1.989l.023.022a.1.1 0 0 1 .028.06c.038.435.209.764.466.983.254.217.584.319.928.319.419 0 .762-.155.999-.423.236-.267.358-.637.358-1.057v-5.814h2.151v5.874c0 1.88-1.439 3.453-3.493 3.453-1.026 0-1.887-.34-2.49-.932-.59-.579-.942-1.404-.957-2.406zM192.994 83.73l.113.032v-1.575l-.052-.023a1.5 1.5 0 0 0-.356-.093 3 3 0 0 0-.506-.04c-.701 0-1.49.232-1.898.65s-.633 1.013-.633 1.726v.333h-1.025v1.807h1.025v5.496h2.057v-5.496h1.388V84.74h-1.388v-.308c0-.32.112-.505.255-.612a.87.87 0 0 1 .519-.15c.266 0 .42.037.501.06M187.901 90.418l.106-.033v1.581l-.049.024a1.4 1.4 0 0 1-.334.093c-.14.024-.306.04-.475.04-.66 0-1.397-.233-1.78-.652-.384-.42-.595-1.018-.595-1.733v-3.19h-.963v-1.8h.963v-1.952h1.929v1.952h1.304v1.8h-1.304v3.165c0 .321.105.506.24.614a.78.78 0 0 0 .487.15c.251 0 .396-.036.471-.06\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"M158.68 92.325c.22.213.065.578-.247.578h-1.954a.69.69 0 0 1-.7-.678v-1.894c0-.303.377-.453.597-.24z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFB629\",\n d: \"M161.735 92.472a1.463 1.463 0 0 1 0-2.08l2.087-2.074a1.49 1.49 0 0 1 2.095 0 1.465 1.465 0 0 1 0 2.08l-2.088 2.074a1.487 1.487 0 0 1-2.094 0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#09F\",\n d: \"M156.221 87.262a1.465 1.465 0 0 1 0-2.081l3.513-3.492a1.487 1.487 0 0 1 2.094 0 1.464 1.464 0 0 1 0 2.08l-3.513 3.493a1.487 1.487 0 0 1-2.094 0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF6100\",\n d: \"M159.092 89.75a1.465 1.465 0 0 1 0-2.08l4.747-4.716a1.487 1.487 0 0 1 2.094 0 1.465 1.465 0 0 1 0 2.08l-4.746 4.716a1.49 1.49 0 0 1-2.095 0M222.743 86.076q.105.432.164.685l1.117 5.213v.015q-.446.09-.983.06a5.5 5.5 0 0 1-1.013-.12h-.014a6 6 0 0 1-.179-.565q-.075-.328-.164-.67-.075-.344-.164-.656a3.6 3.6 0 0 0-.194-.536 2 2 0 0 0-.297-.03h-.194q-.075 0-.179.015h-.253q-.104.238-.179.566-.06.313-.134.67-.06.343-.134.67-.075.328-.209.581-.014 0-.029.015h-.015q-.12.03-.596 0t-1.49-.015q-.015 0-.029-.014.029-.105.104-.581.075-.477.208-1.237.135-.759.313-1.743.194-.998.447-2.115.254-1.118.551-2.324a50 50 0 0 1 .656-2.398 2 2 0 0 1 .223-.015h.804q.313-.015.805-.06l.134.597q.104.387.208.893.12.492.239 1.058.134.566.253 1.087.119.522.223.954m-1.921 1.668q.283-.015.566-.015a44 44 0 0 0-.268-1.996q-.104-.716-.194-.968-.075-.253-.164-.105-.074.135-.149.567l-.149 1.087q-.074.656-.178 1.415.252.015.536.015m8.051 1.814q.211 0 .349.038l-.05.636q-.025.311-.062.585a3 3 0 0 1-.1.462.6.6 0 0 1-.137.274q-.212.299-.561.424-.337.124-.736.15-.399.036-.822 0a13 13 0 0 0-.773-.025 1.96 1.96 0 0 1-1.072-.55 1.53 1.53 0 0 1-.462-.747q-.125-.449-.149-.935a13 13 0 0 1-.013-.997 5.3 5.3 0 0 0-.025-.91q0-.45.075-.898.013-.137.087-.374l.113-.361a.84.84 0 0 1 .274-.324q.199-.138.449-.225a2.4 2.4 0 0 1 .548-.137q.3-.037.599-.037.25.024.473.012.237-.024.499 0 .399.025.76.15.362.124.624.374a.76.76 0 0 1 .261.336q.1.213.15.499t.05.648q.013.35.025.76a1.7 1.7 0 0 1-.374.038 8 8 0 0 1-1.209-.1q-.062-.436-.362-.673-.299-.25-.785-.125a.82.82 0 0 0-.424.275q-.075.05-.112.249-.05.387-.05.785 0 .4-.025.836-.025.285.137.448a.95.95 0 0 0 .411.225q.237.05.487.025a1 1 0 0 0 .399-.137.53.53 0 0 0 .187-.287q.074-.212.112-.374.124.012.336.012l.449-.025q.237-.012.449 0m5.377-3.814q.312.012.711.037.012.075.012.15.013.075.013.15v.124q-.038 1.347.012 2.655.05 1.297-.037 2.63 0 .163-.012.325 0 .162-.15.187h-.15q-.2 0-.411-.013a3 3 0 0 0-.399-.025 1.5 1.5 0 0 0-.274.025 3 3 0 0 1-.262.013.2.2 0 0 1-.125-.1.6.6 0 0 1-.025-.174q0-.138.025-.225a.8.8 0 0 0 .025-.212q-.299.3-.76.511a2.1 2.1 0 0 1-.885.212 1.16 1.16 0 0 1-.835-.336 2.8 2.8 0 0 1-.561-.836 4.9 4.9 0 0 1-.337-1.084q-.1-.585-.1-1.085 0-.622.162-1.147.162-.523.437-.897a2.1 2.1 0 0 1 .673-.599 1.7 1.7 0 0 1 .823-.236q.224 0 .411.012.2 0 .361.063a.7.7 0 0 1 .287.174.9.9 0 0 1 .212.324 1.4 1.4 0 0 1 .013-.337q.037-.15.037-.299 0-.012.075-.012a.7.7 0 0 1 .187 0h.336q.213.012.511.025m-2.568 1.97a.95.95 0 0 0-.349.548q-.05.162-.062.337a4 4 0 0 0-.012.324q0 .561.286.96.3.386.823.386.312 0 .461-.1a.58.58 0 0 0 .225-.299q.075-.199.075-.474.012-.286.012-.635 0-.437-.012-.686a1 1 0 0 0-.063-.399.26.26 0 0 0-.187-.175 1.5 1.5 0 0 0-.386-.037q-.511 0-.811.25m7.413-3.965q.012-.137.024-.386v-.137q0-.013.163-.025.174-.025.411-.025.25-.012.523 0 .274 0 .474.037v.823q0 2.083.063 4.114.061 2.031.012 3.827-.387 0-.848.012a4.5 4.5 0 0 1-.835-.025.2.2 0 0 1-.012-.087q0-.125-.013-.2v-.211a.18.18 0 0 0-.062-.088q-.026-.037-.063.038-.186.374-.498.486a1.5 1.5 0 0 1-.661.05q-.711-.05-1.122-.362a2.06 2.06 0 0 1-.623-.81 4.4 4.4 0 0 1-.274-1.11 15 15 0 0 1-.075-1.234q0-.435.05-.847.061-.412.174-.748.124-.35.312-.586a1.07 1.07 0 0 1 .474-.35q.336-.123.735-.149.411-.038.773 0 .362.025.611.112.249.088.274.2a48 48 0 0 1-.012-.947v-.911q.012-.124.012-.224a2 2 0 0 0 .013-.237m-1.546 3.653q-.3.225-.362.66a1.4 1.4 0 0 0-.075.362 6 6 0 0 0-.012.361q0 .312.075.611.075.287.224.524.15.225.362.361a.85.85 0 0 0 .473.137q.312 0 .487-.137a.8.8 0 0 0 .274-.374q.1-.236.112-.56.025-.337.025-.736 0-.487-.025-.76a1.1 1.1 0 0 0-.087-.437.34.34 0 0 0-.237-.187q-.15-.05-.411-.05-.511 0-.823.225m5.982 1.496a3 3 0 0 1-.399-.038v.225q.012.374.025.61.025.237.162.462.15.285.424.424a.83.83 0 0 0 .536.087.68.68 0 0 0 .436-.3q.187-.26.162-.772.125.012.337.012l.436-.025q.237-.012.449 0 .212 0 .349.038l-.05.636a10 10 0 0 1-.062.585 3 3 0 0 1-.1.462.5.5 0 0 1-.137.261q-.212.3-.548.424t-.736.15-.823 0a13 13 0 0 0-.76-.025 1.8 1.8 0 0 1-.648-.225 2 2 0 0 1-.561-.61 4 4 0 0 1-.362-.835 5 5 0 0 1-.187-.973 7 7 0 0 1-.025-1.022q.038-.462.075-.885.05-.437.199-.848.163-.36.499-.61.337-.262.761-.387.423-.136.897-.15.474-.012.923.1.573.1.922.399t.524.723q.186.423.224.935.037.51 0 1.035-.087.024-.337.05a19 19 0 0 1-1.271.087q-.373.012-.723.012-.336 0-.611-.012m1.459-1.633a.8.8 0 0 0-.349-.337.7.7 0 0 0-.2-.087.7.7 0 0 0-.237-.038q-.299 0-.486.063a.75.75 0 0 0-.299.174.8.8 0 0 0-.175.262q-.05.15-.074.312a1 1 0 0 0-.025.2q.012.048.124.074.112.012.349.012a16 16 0 0 1 1.21 0q.161.013.224.013.075-.012.075-.037v-.138a.9.9 0 0 0-.137-.473m3.818-1.147q0 .137.013.311l.149-.087a1 1 0 0 0 .162-.1q.262-.186.586-.299a2.27 2.27 0 0 1 1.334-.05q.325.088.586.312a.7.7 0 0 1 .125.212q.062-.037.149-.075.088-.05.15-.1.262-.186.586-.299a2.26 2.26 0 0 1 1.334-.05q.324.088.586.312.124.113.187.474.074.35.087.847.025.5.012 1.097 0 .587-.012 1.197l-.025 1.16q-.012.56.012.984a4.5 4.5 0 0 1-.785.05h-.773a8 8 0 0 1-.025-.648v-.748q.013-.387 0-.773a10 10 0 0 0-.025-.723l-.025-.324a3 3 0 0 0-.049-.362 1.1 1.1 0 0 0-.088-.311.45.45 0 0 0-.149-.212q-.013-.013-.025-.013t-.025-.012a.8.8 0 0 0-.187-.062 1.2 1.2 0 0 0-.25-.025.8.8 0 0 0-.261.05.7.7 0 0 0-.237.124q.012.487 0 1.035l-.025 1.072-.025 1.022q0 .486.025.86a4.5 4.5 0 0 1-.785.05h-.773a7 7 0 0 1-.025-.648v-.748q.012-.387 0-.773 0-.386-.025-.723-.013-.15-.025-.324a2.5 2.5 0 0 0-.05-.362 1.2 1.2 0 0 0-.087-.311.44.44 0 0 0-.15-.212q-.012-.013-.025-.013-.012 0-.025-.012a1 1 0 0 0-.299-.075.7.7 0 0 0-.374.025.67.67 0 0 0-.336.225q-.15.162-.175.498-.025.437-.012.86l.024.835q.025.412.025.823 0 .412-.049.823v.05a2 2 0 0 1-.374.075q-.15.012-.312 0a6 6 0 0 1-.362-.013 3.5 3.5 0 0 0-.498.013q0-1.534-.038-3.067a70 70 0 0 1 .025-3.179q.15.012.25.025h.374a6 6 0 0 1 .423-.037q.126-.026.25-.038.125-.012.224 0 .1 0 .1.038.025.211.012.349m7.34-.337q.498-.037.897.013.088.448.2 1.072.112.611.237 1.246.125.636.261 1.222.137.573.275.947.137-.373.224-.984t.162-1.272q.087-.66.187-1.271a5 5 0 0 1 .249-.985q.425.012.861-.013.435-.024.959.013-.2.747-.361 1.433-.15.675-.299 1.322-.162.61-.299 1.284-.126.672-.325 1.321a7 7 0 0 1-.486 1.234 3.2 3.2 0 0 1-.798 1.01q-.486.436-1.221.66-.723.225-1.783.163a2.7 2.7 0 0 1-.124-.848 4 4 0 0 1 .049-.81q.3 0 .611.025.324.025.574-.038a.56.56 0 0 0 .374-.237q.137-.186.074-.598a35 35 0 0 0-.66-3.017 318 318 0 0 0-.786-2.917q.45.05.948.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n fillRule: \"evenodd\",\n d: \"m262.234 85.816-.552 1.52a.625.625 0 0 1-.658.42c-.522-.061-1.342-.199-1.874-.49-.533-.29-1.091-.908-1.424-1.314a.625.625 0 0 1-.002-.78l.982-1.285 1.101 1.375a1 1 0 0 0 .675.369zm-2.267-.846a1 1 0 0 0 .675.369l1.673.206c.018.002.03-.019.019-.034l-1.345-1.774a.2.2 0 1 1 .315-.247l1.376 1.753c.045.072.087.15.112.22.151.425-.074 1.003-.151 1.144-.108.198-.271.36-.392.482q-.066.064-.11.113a3 3 0 0 0-.618 1.08c-.015.048-.01.1.014.144a.19.19 0 0 0 .114.088l.731.19a.183.183 0 0 0 .227-.204 3 3 0 0 1-.019-.5c.011-.296.064-.65.22-.935 0 0 .101-.168.154-.282.134-.288.182-.91.197-1.178l.795.084a.332.332 0 0 0 .273-.563l-2.284-2.353a1 1 0 0 0-.518-.283l-3.214-.654a.333.333 0 0 0-.326.534l1.041 1.3z\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#3562D7\",\n strokeWidth: 1.461,\n d: \"M97.51 27.37h219.024v.174a8.766 8.766 0 0 0 8.766 8.766h.706V172.3H106.982v-.174a8.766 8.766 0 0 0-8.766-8.766h-.706z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"url(#certificates-quiz_svg__b)\",\n strokeWidth: 0.584,\n d: \"M321.916 39.64V168.21h-220.31l.135-8.174V31.461h211.316l8.859.125z\"\n}))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"M369.038 105.785c-17.867-9.853-28.846 1.629-32.102 8.602 5-8.66 13.424-9.965 18.709-9.406 4.897.518 11.027 2.902 13.558 5.518 1.084 1.121 2.89-.238 2.366-2.098-.336-1.19-1.665-2.116-2.531-2.616M60.724 34.003c16.41-1.08 20.532 11.393 20.541 17.765-.71-8.251-6.424-12.199-10.478-13.644-3.756-1.339-9.047-1.715-11.786-.648-1.174.458-2.032-1.197-1.016-2.406.65-.773 1.936-.998 2.739-1.067M38.876 77.34l2.082 3.068 3.6-.887-2.274 2.929 1.956 3.15-3.488-1.258-2.391 2.833.118-3.706-3.433-1.399 3.56-1.032zM356.073 127.065l.471 3.678 3.612.836-3.352 1.584.32 3.694-2.542-2.698-3.414 1.446 1.781-3.252-2.431-2.8 3.643.689zM135.073 1.065l.471 3.678 3.612.836-3.352 1.584.32 3.694-2.542-2.698-3.414 1.446 1.781-3.252-2.431-2.8 3.643.689zM386.073 21.065l.471 3.677 3.612.837-3.352 1.584.32 3.694-2.542-2.698-3.414 1.446 1.781-3.252-2.431-2.8 3.643.689zM412.627 46.568l-.259 7.292 6.748 2.776-7.015 2.008-.556 7.275-4.077-6.052-7.091 1.72 4.496-5.747-3.827-6.213 6.855 2.5zM19.676 104.946l-1.251 7.189 6.305 3.671-7.223 1.032-1.543 7.131-3.213-6.551-7.26.736 5.238-5.08-2.943-6.676 6.45 3.411z\"\n})), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 77.875,\n cy: 65,\n r: 3,\n fill: \"#6C73A8\"\n})), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 345.875,\n cy: 93,\n r: 1,\n fill: \"#6C73A8\"\n})), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 296.875,\n cy: 10,\n r: 3,\n fill: \"#6C73A8\"\n})), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 84.375,\n cy: 158.5,\n r: 1.5,\n fill: \"#6C73A8\"\n})), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"certificates-quiz_svg__b\",\n x1: 117.003,\n x2: 286.809,\n y1: 31.17,\n y2: 178.619,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FF6100\",\n stopOpacity: 0\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.354,\n stopColor: \"#FF6100\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.703,\n stopColor: \"#FF6100\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FF6100\",\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"certificates-quiz_svg__a\",\n width: 265.351,\n height: 180.06,\n x: 79.345,\n y: 11.576,\n colorInterpolationFilters: \"sRGB\",\n filterUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n result: \"hardAlpha\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", {\n dy: 2.106\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 5.265\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0.0392157 0 0 0 0 0.0823529 0 0 0 0 0.317647 0 0 0 0.2 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_2316_6402\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_2316_6402\",\n result: \"shape\"\n})))));\nexport default SvgCertificatesQuiz;","\n \n\n","\n \n\n","\n \n\n","\n \n\n","\n \n\n","var _rect, _rect2, _rect3, _path, _rect4, _path2, _rect5, _path3, _rect6, _g, _path4, _g2, _path5, _path6, _circle, _circle2, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgEnroll = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 320 204\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 152.584,\n height: 161.18,\n x: 83.536,\n y: 26.283,\n fill: \"#fff\",\n stroke: \"#C8CEED\",\n strokeWidth: 1.075,\n rx: 4.835\n})), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 85,\n height: 14,\n x: 130.999,\n y: 107,\n fill: \"#E3E5F5\",\n rx: 2\n})), _rect3 || (_rect3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 85,\n height: 14,\n x: 130.999,\n y: 150,\n fill: \"#E3E5F5\",\n rx: 2\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E3E5F5\",\n d: \"M101.266 102.001h21.491v21.491h-21.491z\"\n})), _rect4 || (_rect4 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 20.416,\n height: 20.416,\n x: 101.803,\n y: 102.538,\n stroke: \"#0A1551\",\n strokeWidth: 1.075,\n rx: 2.686\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E3E5F5\",\n d: \"M101.265 145.018h21.491v21.491h-21.491z\"\n})), _rect5 || (_rect5 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 20.416,\n height: 20.416,\n x: 101.803,\n y: 145.556,\n stroke: \"#0A1551\",\n strokeWidth: 1.075,\n rx: 2.686\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n fillRule: \"evenodd\",\n d: \"M104.488 55.831a3.224 3.224 0 0 0-3.224 3.224v15.043a3.224 3.224 0 0 0 3.224 3.224h15.043a3.224 3.224 0 0 0 3.224-3.224V59.055a3.224 3.224 0 0 0-3.224-3.224zm13.654 8.282a1.074 1.074 0 1 0-1.52-1.52l-5.687 5.688-2.464-2.464a1.074 1.074 0 1 0-1.519 1.52l3.223 3.223c.42.42 1.1.42 1.52 0z\",\n clipRule: \"evenodd\"\n})), _rect6 || (_rect6 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 84.888,\n height: 21.491,\n x: 131.352,\n y: 55.832,\n fill: \"#529300\",\n rx: 2.07\n})), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#enroll_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M157.64 70.754a4.177 4.177 0 1 0-.001-8.354 4.177 4.177 0 0 0 .001 8.354m-.549-6.062a.38.38 0 0 0-.59.316v3.138a.38.38 0 0 0 .59.316l2.353-1.57a.38.38 0 0 0 0-.631z\",\n clipRule: \"evenodd\"\n}))), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M171.128 70.077h-4.706v-7.618h4.706v1.203h-3.417v2.02h3.095v1.171h-3.095v2.02h3.417zm2.582-3.02v3.02h-1.246v-5.233h1.214v.698c.344-.601.967-.849 1.547-.849 1.279 0 1.891.925 1.891 2.074v3.31h-1.246v-3.095c0-.644-.29-1.16-1.075-1.16-.709 0-1.085.548-1.085 1.236m7.986-2.245v1.268a3 3 0 0 0-.408-.033c-.967 0-1.408.56-1.408 1.537v2.493h-1.246v-5.233h1.214v.838c.247-.57.827-.903 1.515-.903.15 0 .279.022.333.033m3.288 4.309c.773 0 1.461-.57 1.461-1.666 0-1.085-.688-1.644-1.461-1.644-.763 0-1.462.559-1.462 1.644s.699 1.666 1.462 1.666m0-4.438c1.569 0 2.718 1.171 2.718 2.772 0 1.612-1.149 2.783-2.718 2.783-1.558 0-2.708-1.171-2.708-2.783 0-1.601 1.15-2.772 2.708-2.772m5.169 5.394h-1.246v-7.78h1.246zm2.855 0h-1.247v-7.78h1.247z\"\n})), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n clipRule: \"evenodd\",\n filter: \"url(#enroll_svg__b)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n fillRule: \"evenodd\",\n d: \"M204.371 70.916a.78.78 0 0 0-.985.985l3.481 10.442a.779.779 0 0 0 1.447.078l1.942-4.25a.78.78 0 0 1 .385-.385l4.25-1.942a.779.779 0 0 0-.077-1.447z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M204.371 70.916a.78.78 0 0 0-.985.985l3.481 10.442a.779.779 0 0 0 1.447.078l1.942-4.25a.78.78 0 0 1 .385-.385l4.25-1.942a.779.779 0 0 0-.077-1.447z\"\n}))), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#343C6A\",\n d: \"M82.999 32.193a6.447 6.447 0 0 1 6.447-6.448H230.21a6.447 6.447 0 0 1 6.447 6.448v2.149H82.999z\"\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#343C6A\",\n d: \"M136.726 24.67c0-1.186.962-2.148 2.149-2.148h42.982c1.187 0 2.149.962 2.149 2.149v11.82c0 1.187-.962 2.149-2.149 2.149h-42.982a2.15 2.15 0 0 1-2.149-2.15z\"\n})), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 160.903,\n cy: 21.985,\n r: 6.984,\n fill: \"#343C6A\"\n})), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 160.903,\n cy: 21.985,\n r: 3.761,\n fill: \"#fff\"\n})), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"enroll_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M153.083 62.02h9.113v9.114h-9.113z\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"enroll_svg__b\",\n width: 21,\n height: 21,\n x: 198.846,\n y: 68.376,\n colorInterpolationFilters: \"sRGB\",\n filterUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n result: \"hardAlpha\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", {\n dy: 2\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 2\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_1794_2302\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_1794_2302\",\n result: \"shape\"\n})))));\nexport default SvgEnroll;","var _rect, _rect2, _rect3, _path, _circle, _circle2, _circle3, _rect4, _g, _path2, _g2, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgTakeACourse = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 320 204\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 198.217,\n height: 131.932,\n x: 60.776,\n y: 33.686,\n fill: \"#fff\",\n stroke: \"#E3E5F5\",\n strokeWidth: 5.373,\n rx: 5.373\n})), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 245,\n height: 8,\n x: 38,\n y: 164,\n fill: \"#E3E5F5\",\n rx: 3.179\n})), _rect3 || (_rect3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 192.223,\n height: 127.925,\n x: 63.514,\n y: 35.537,\n fill: \"#F3F3FE\",\n stroke: \"#F1F1F4\",\n strokeWidth: 1.075,\n rx: 3.25\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#8F96CC\",\n d: \"M63 38.788A3.787 3.787 0 0 1 66.787 35h185.425A3.79 3.79 0 0 1 256 38.788V44H63z\"\n})), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 69.092,\n cy: 39.557,\n r: 2,\n fill: \"#fff\"\n})), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 75.943,\n cy: 39.557,\n r: 2,\n fill: \"#fff\"\n})), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 82.799,\n cy: 39.557,\n r: 2,\n fill: \"#fff\"\n})), _rect4 || (_rect4 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 140.186,\n height: 27.475,\n x: 90,\n y: 88,\n fill: \"#0A1551\",\n rx: 13.738\n})), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#take-a-course_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M117.504 108.655a6.917 6.917 0 1 0 0-13.834 6.917 6.917 0 0 0 0 13.834m-.909-10.039a.63.63 0 0 0-.978.523v5.197c0 .502.56.802.978.523l3.897-2.598a.63.63 0 0 0 0-1.047z\",\n clipRule: \"evenodd\"\n}))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M138.394 99.353v6.838h-1.377v-6.838h-2.639v-1.296h6.666v1.296zm2.506 5.324q0-.38.126-.666a1.67 1.67 0 0 1 .895-.837q.31-.127.666-.184l1.434-.218q.242-.034.321-.138a.4.4 0 0 0 .092-.264.8.8 0 0 0-.252-.596q-.253-.253-.804-.253-.527 0-.814.299a1.15 1.15 0 0 0-.333.711l-1.216-.275q.034-.356.218-.689a2.1 2.1 0 0 1 .482-.585q.299-.252.711-.401.425-.15.941-.15.643 0 1.09.173.46.171.734.458.287.288.413.666.138.378.138.792v2.776q0 .379.023.62.034.229.046.275h-1.239a1 1 0 0 1-.035-.195 5 5 0 0 1-.023-.516q-.195.321-.619.608-.424.275-1.102.275a2.2 2.2 0 0 1-.791-.138 1.9 1.9 0 0 1-.597-.367 1.9 1.9 0 0 1-.379-.539 1.7 1.7 0 0 1-.126-.642m2.146.642q.275 0 .527-.069.253-.08.436-.241.195-.172.31-.447a1.8 1.8 0 0 0 .115-.689v-.252l-1.457.218a1.1 1.1 0 0 0-.528.241q-.218.172-.218.516 0 .287.207.505.206.218.608.218m7.403-2.352 2.34 3.224h-1.629l-1.641-2.283-.688.723v1.56h-1.32v-8.307h1.32v4.98l2.145-2.26h1.767zm6.866-.184a1.3 1.3 0 0 0-.103-.458 1.06 1.06 0 0 0-.252-.402 1.3 1.3 0 0 0-.425-.275 1.6 1.6 0 0 0-.596-.104q-.31 0-.563.115-.24.104-.413.287a1.4 1.4 0 0 0-.275.401 1.2 1.2 0 0 0-.115.436zm1.274 1.813a2.6 2.6 0 0 1-.333.689 2.4 2.4 0 0 1-.539.562 2.6 2.6 0 0 1-.734.378 2.9 2.9 0 0 1-.918.138q-.574 0-1.09-.195a2.8 2.8 0 0 1-.907-.585q-.39-.39-.631-.941a3.3 3.3 0 0 1-.229-1.273q0-.666.218-1.205.23-.54.608-.918a2.6 2.6 0 0 1 .872-.597 2.5 2.5 0 0 1 1.021-.218 3 3 0 0 1 1.147.207q.517.207.861.585.356.379.539.918.184.528.184 1.193 0 .16-.012.287a.5.5 0 0 1-.023.138h-4.084q.01.321.137.585a1.56 1.56 0 0 0 .804.769q.274.102.585.103.608 0 .929-.276a1.56 1.56 0 0 0 .471-.699zm4.164.081q0-.38.126-.666a1.66 1.66 0 0 1 .895-.837q.31-.127.665-.184l1.434-.218q.241-.034.322-.138a.4.4 0 0 0 .091-.264.8.8 0 0 0-.252-.596q-.252-.253-.803-.253-.528 0-.815.299a1.15 1.15 0 0 0-.333.711l-1.216-.275q.035-.356.218-.689.184-.333.482-.585t.711-.401q.425-.15.941-.15.643 0 1.09.173.459.171.735.458.286.288.413.666.137.378.137.792v2.776q0 .379.023.62.034.229.046.275h-1.239a1 1 0 0 1-.034-.195 4 4 0 0 1-.023-.516q-.195.321-.62.608-.424.275-1.101.275-.436 0-.792-.138a2 2 0 0 1-.597-.367q-.24-.24-.378-.539a1.7 1.7 0 0 1-.126-.642m2.145.642q.276 0 .528-.069a1.2 1.2 0 0 0 .436-.241q.195-.172.31-.447a1.8 1.8 0 0 0 .114-.689v-.252l-1.457.218a1.1 1.1 0 0 0-.528.241q-.218.172-.218.516 0 .287.207.505t.608.218m11.201 1.044a4.3 4.3 0 0 1-1.572-.287 4 4 0 0 1-1.308-.826 4.1 4.1 0 0 1-.895-1.331q-.332-.79-.332-1.79 0-.998.344-1.778a4.05 4.05 0 0 1 .906-1.33 4 4 0 0 1 1.308-.838 4.1 4.1 0 0 1 1.538-.299q.768 0 1.388.218.62.207 1.078.574.46.355.758.838a3.7 3.7 0 0 1 .436 1.009l-1.297.436a2.5 2.5 0 0 0-.287-.688 1.9 1.9 0 0 0-.482-.574 2.1 2.1 0 0 0-.688-.379 2.7 2.7 0 0 0-.906-.137q-.505 0-.987.183a2.5 2.5 0 0 0-.861.551 2.7 2.7 0 0 0-.608.929q-.23.552-.229 1.285 0 .712.218 1.263.23.538.608.906.378.367.86.562.494.184 1.01.184t.918-.149q.402-.15.7-.402t.493-.574q.207-.321.31-.665l1.262.413a3.9 3.9 0 0 1-.436 1.01 3.4 3.4 0 0 1-.769.86 3.9 3.9 0 0 1-1.078.597q-.62.23-1.4.229m7.38-1.193q.31 0 .585-.115.287-.114.505-.333.218-.23.344-.562t.126-.768-.126-.758a1.5 1.5 0 0 0-.344-.55 1.3 1.3 0 0 0-.505-.333 1.59 1.59 0 0 0-1.182 0q-.275.103-.493.333a1.8 1.8 0 0 0-.344.55 2.1 2.1 0 0 0-.126.758q0 .435.126.768.138.333.344.562a1.5 1.5 0 0 0 1.09.448m0-4.739q.631 0 1.159.23.528.218.918.619.39.39.608.93.218.539.218 1.182t-.218 1.193a2.9 2.9 0 0 1-.608.941q-.39.39-.918.619a3 3 0 0 1-1.159.218q-.62 0-1.159-.218a2.9 2.9 0 0 1-.918-.619 3 3 0 0 1-.596-.941 3.2 3.2 0 0 1-.218-1.193q0-.643.218-1.182a2.9 2.9 0 0 1 .596-.93q.39-.401.918-.619.54-.23 1.159-.23m7.953 5.14a1.37 1.37 0 0 1-.654.586q-.436.195-.929.195-.505 0-.895-.172a2 2 0 0 1-.666-.471 2.3 2.3 0 0 1-.413-.711 2.7 2.7 0 0 1-.137-.872v-3.522h1.331v3.281q0 .264.057.493.07.23.206.402.138.172.345.275.218.103.516.103.585 0 .872-.344.298-.355.298-.906v-3.304h1.331v4.566q0 .344.012.608.022.252.045.413h-1.273a1.6 1.6 0 0 1-.034-.264 6 6 0 0 1-.012-.356m6.415-3.648a3 3 0 0 0-.436-.034q-.78 0-1.147.424-.356.424-.356 1.216v2.662h-1.331v-5.587h1.297v.894q.195-.458.631-.711t.987-.252q.126 0 .218.011t.137.023zm1.949 2.432q.034.38.309.666.288.287.826.287.413 0 .62-.184a.6.6 0 0 0 .218-.459.53.53 0 0 0-.161-.39q-.16-.161-.493-.229l-.826-.184q-.746-.16-1.124-.597a1.55 1.55 0 0 1-.379-1.032q0-.367.161-.689.16-.332.436-.573a1.9 1.9 0 0 1 .642-.39q.378-.15.815-.15.585 0 .975.173.402.16.654.401t.367.516q.126.264.161.471l-1.125.321a2 2 0 0 0-.08-.264.8.8 0 0 0-.184-.275.85.85 0 0 0-.309-.207 1 1 0 0 0-.459-.091.87.87 0 0 0-.585.195.56.56 0 0 0-.218.447q0 .23.149.379a.8.8 0 0 0 .413.206l.849.172q.792.172 1.193.631.413.448.413 1.067 0 .322-.138.643a1.7 1.7 0 0 1-.39.573 1.9 1.9 0 0 1-.654.413 2.5 2.5 0 0 1-.929.161q-.608 0-1.033-.172a2.3 2.3 0 0 1-.7-.424 2 2 0 0 1-.413-.551 1.7 1.7 0 0 1-.16-.539zm8.376-1.572a1.3 1.3 0 0 0-.103-.458 1.1 1.1 0 0 0-.252-.402 1.3 1.3 0 0 0-.425-.275 1.6 1.6 0 0 0-.597-.104q-.309 0-.562.115-.24.104-.413.287a1.4 1.4 0 0 0-.275.401 1.2 1.2 0 0 0-.115.436zm1.274 1.813a2.6 2.6 0 0 1-.333.689 2.4 2.4 0 0 1-.539.562 2.6 2.6 0 0 1-.734.378 2.9 2.9 0 0 1-.918.138q-.574 0-1.09-.195a2.8 2.8 0 0 1-.907-.585q-.39-.39-.631-.941a3.3 3.3 0 0 1-.229-1.273q0-.666.218-1.205.229-.54.608-.918a2.6 2.6 0 0 1 .872-.597 2.5 2.5 0 0 1 1.021-.218 3 3 0 0 1 1.147.207q.517.207.861.585.356.379.539.918.184.528.184 1.193 0 .16-.012.287a.5.5 0 0 1-.023.138h-4.084q.01.321.137.585t.333.459.471.31q.274.102.585.103.608 0 .929-.276a1.55 1.55 0 0 0 .47-.699z\"\n})), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n clipRule: \"evenodd\",\n filter: \"url(#take-a-course_svg__b)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n fillRule: \"evenodd\",\n d: \"M205.025 112.04a.78.78 0 0 0-.985.985l3.481 10.442a.779.779 0 0 0 1.447.078l1.942-4.25a.78.78 0 0 1 .385-.385l4.25-1.942a.779.779 0 0 0-.078-1.447z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M205.025 112.04a.78.78 0 0 0-.985.985l3.481 10.442a.779.779 0 0 0 1.447.078l1.942-4.25a.78.78 0 0 1 .385-.385l4.25-1.942a.779.779 0 0 0-.078-1.447z\"\n}))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"take-a-course_svg__a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M109.957 94.191h15.093v15.093h-15.093z\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"take-a-course_svg__b\",\n width: 21,\n height: 21,\n x: 199.5,\n y: 109.5,\n colorInterpolationFilters: \"sRGB\",\n filterUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n result: \"hardAlpha\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", {\n dy: 2\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 2\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_1794_2326\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_1794_2326\",\n result: \"shape\"\n})))));\nexport default SvgTakeACourse;","var _rect, _path, _path2, _path3, _path4, _circle, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgCertificate = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 320 204\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 214.504,\n height: 145.092,\n x: 58.977,\n y: 24.519,\n fill: \"#F3F3FE\",\n stroke: \"#C8CEED\",\n strokeWidth: 1.038,\n rx: 3.943\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n stroke: \"#C8CEED\",\n strokeWidth: 1.038,\n d: \"M69.938 149.532V44.04a9.165 9.165 0 0 0 9.118-9.165v-.613h174.653v.901a8.877 8.877 0 0 0 8.814 8.877v105.492a8.877 8.877 0 0 0-8.814 8.877v.244H79.056c-.026-5.025-4.094-9.095-9.118-9.121Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#6C73A8\",\n strokeWidth: 1.038,\n d: \"M190.086 118.99c2.214 2.818 7.005 7.367 8.454 3.019 1.812-5.434-1.208-6.642-3.623-4.83-1.932 1.449-.805 14.693 0 21.134-.201-4.227.242-11.956 3.623-9.057 4.227 3.623 1.812-7.85 4.227-2.416 1.932 4.348 3.623 3.422 4.227 2.416v-2.416c.201 1.409 1.207 4.227 3.623 4.227 3.019 0 10.265-7.246 9.661-12.077-.483-3.864-4.227 3.623-6.038 7.85l2.415 11.473c-1.006-2.214-1.691-7.125 3.623-9.057 6.642-2.416 6.642 5.434 12.077-2.416M112.7 119.203c-1 7.254-2.831 21.663-6.296 16.958-4.331-5.882-7.33-16.779.001-6.192 7.33 10.586 6.094 7.601 8.093-7.691 1.342-10.266 5.394-4.615 4.495-1.54 0 0-5.182 10.806-6.293 14.563-1.112 3.757 8.646-4.434 8.646-4.434s-5.192 5.294-2.353 5.294 9.118-5.294 9.118-5.294c-6.663 5.294-.651 6.151 5.642 0 3.182-3.11.741 9.225 6.294 1.579\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#050C34\",\n d: \"M108.239 68.244a5.9 5.9 0 0 1-2.186-.406 5.5 5.5 0 0 1-1.811-1.156 5.5 5.5 0 0 1-1.219-1.812q-.453-1.062-.453-2.389t.453-2.39a5.6 5.6 0 0 1 1.25-1.827 5.5 5.5 0 0 1 1.796-1.155q1.03-.405 2.139-.406 1.14 0 2.015.328.89.312 1.499.843.625.516 1 1.171.39.657.562 1.328l-2.03.64a3.3 3.3 0 0 0-.313-.796 2.4 2.4 0 0 0-.593-.719 3 3 0 0 0-.89-.515q-.531-.204-1.25-.203a3.4 3.4 0 0 0-1.234.234 3.1 3.1 0 0 0-1.093.672 3.3 3.3 0 0 0-.781 1.155q-.296.703-.296 1.64 0 .89.281 1.577.297.672.765 1.14.484.454 1.093.703.626.234 1.296.234.703 0 1.234-.203.547-.218.922-.546.374-.328.609-.719.234-.405.343-.796l2.015.609a5 5 0 0 1-.547 1.312q-.375.656-1.015 1.202a5.3 5.3 0 0 1-1.515.906q-.874.344-2.046.344m9.943-.235V56.937h6.934v2.03h-4.778v2.53h4.325v1.921h-4.325v2.561h4.778v2.03zm15.415-4.263h-1.125v4.263h-2.17V56.937h4.326q.811 0 1.452.266.656.264 1.109.718.469.453.718 1.077.25.625.25 1.344 0 1.17-.64 1.999-.625.826-1.718 1.14l2.374 4.528h-2.405zm.625-1.858q.827 0 1.28-.422.453-.421.453-1.109 0-.702-.453-1.124t-1.28-.422h-1.75v3.077zm13.524-2.905v9.026h-2.171v-9.026h-3.498v-2.046h9.167v2.046zm8.045 9.026V56.937h2.186v11.072zm7.742 0V56.937h6.996v2.046h-4.841v2.733h4.31v1.983h-4.294v4.31zm11.799 0V56.937h2.186v11.072zm12.755.235a5.9 5.9 0 0 1-2.186-.406 5.5 5.5 0 0 1-1.812-1.156 5.6 5.6 0 0 1-1.218-1.812q-.453-1.062-.453-2.389t.453-2.39a5.6 5.6 0 0 1 1.25-1.827 5.5 5.5 0 0 1 1.796-1.155q1.03-.405 2.139-.406 1.14 0 2.015.328.89.312 1.499.843.625.516.999 1.171.391.657.563 1.328l-2.031.64a3.3 3.3 0 0 0-.312-.796 2.4 2.4 0 0 0-.593-.719 3 3 0 0 0-.891-.515q-.53-.204-1.249-.203-.625 0-1.234.234a3.1 3.1 0 0 0-1.093.672 3.3 3.3 0 0 0-.781 1.155q-.296.703-.296 1.64 0 .89.281 1.577.297.672.765 1.14.484.454 1.093.703.625.234 1.296.234.703 0 1.234-.203.547-.218.922-.546.374-.328.609-.719.234-.405.343-.796l2.015.609a5 5 0 0 1-.547 1.312q-.375.656-1.015 1.202a5.3 5.3 0 0 1-1.515.906q-.874.344-2.046.344m16.076-2.764h-4.498l-.921 2.53h-2.28l4.248-11.073h2.498l4.217 11.072h-2.342zm-3.779-1.968h3.061l-1.531-4.186zm15.121-4.53v9.027h-2.171v-9.026h-3.498v-2.046h9.167v2.046zm8.045 9.027V56.937h6.934v2.03h-4.779v2.53h4.326v1.921h-4.326v2.561h4.779v2.03z\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#DADEF3\",\n d: \"M102.297 88.364h54.799V90.8h-54.799zM161.965 88.364h70.63V90.8h-70.63zM102.297 95.667h40.186v2.436h-40.186zM146.136 95.667h40.186v2.436h-40.186zM191.193 95.667h41.404v2.436h-41.404z\"\n})), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 66.328,\n cy: 139.836,\n r: 20.328,\n fill: \"#0A1551\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"M50.878 156.098s5.562 6.505 15.45 6.505 15.448-6.505 15.448-6.505v19.362c0 1.962-2.198 3.121-3.816 2.013l-11.633-7.958-11.632 7.958c-1.619 1.108-3.817-.051-3.817-2.013z\"\n})));\nexport default SvgCertificate;","var _g, _rect, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgGetACourseBadge = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 306 204\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipRule: \"evenodd\",\n filter: \"url(#get-a-course-badge_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n fillRule: \"evenodd\",\n d: \"M205.025 112.04a.78.78 0 0 0-.985.985l3.481 10.442a.779.779 0 0 0 1.447.078l1.942-4.25a.78.78 0 0 1 .385-.385l4.25-1.942a.779.779 0 0 0-.078-1.447z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M205.025 112.04a.78.78 0 0 0-.985.985l3.481 10.442a.779.779 0 0 0 1.447.078l1.942-4.25a.78.78 0 0 1 .385-.385l4.25-1.942a.779.779 0 0 0-.078-1.447z\"\n}))), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 192,\n height: 140,\n x: 56.5,\n y: 32.5,\n fill: \"#F3F3FE\",\n stroke: \"#C8CEED\",\n rx: 4.5\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"m93.9 102.457 10.245 5.357-7.237 19.414-3.87-5.906-6.374.549z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"m112.733 102.457-10.244 5.357 7.236 19.414 3.6-5.906 6.645.549z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#3E498A\",\n stroke: \"#C8CEED\",\n strokeWidth: 0.772,\n d: \"m94.005 80.012-1.386 2.71zm0 0a4.774 4.774 0 0 1 5.72-2.37l2.898.937c.421.137.875.137 1.297 0l2.898-.939a4.77 4.77 0 0 1 5.722 2.37l1.384 2.713c.202.395.523.716.918.918l2.712 1.386.172-.335-.172.335a4.774 4.774 0 0 1 2.369 5.72l-.937 2.898a2.1 2.1 0 0 0 0 1.297l.939 2.898a4.775 4.775 0 0 1-2.371 5.722l-2.712 1.384a2.1 2.1 0 0 0-.918.918l-1.386 2.712.344.176-.344-.176a4.77 4.77 0 0 1-5.72 2.369l-2.898-.937a2.1 2.1 0 0 0-1.297 0l-2.898.939a4.77 4.77 0 0 1-5.72-2.371l-1.386-2.712a2.1 2.1 0 0 0-.918-.918l-2.71-1.386a4.77 4.77 0 0 1-2.371-5.72l.937-2.898a2.1 2.1 0 0 0 0-1.297l-.94-2.898a4.77 4.77 0 0 1 2.372-5.72m5.016-5.015-5.016 5.015m0 0 2.712-1.386m-2.712 1.386 2.712-1.386m0 0c.395-.202.716-.523.918-.918z\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFB629\",\n fillRule: \"evenodd\",\n stroke: \"#FFB629\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M110.707 90.293a1 1 0 0 1 0 1.414l-8 8a1 1 0 0 1-1.414 0l-4-4a1 1 0 0 1 1.414-1.414L102 97.586l7.293-7.293a1 1 0 0 1 1.414 0\",\n clipRule: \"evenodd\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"m138.284 102.642 15.967 8.349-11.279 30.259-6.031-9.206-9.936.857z\"\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"m167.638 102.642-15.968 8.349 11.279 30.259 5.611-9.206 10.357.857z\"\n})), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#3E498A\",\n stroke: \"#C8CEED\",\n strokeWidth: 0.738,\n d: \"M138.241 67.556a7.67 7.67 0 0 1 9.194-3.811l4.516 1.46a3.05 3.05 0 0 0 1.878 0h.001l4.516-1.463a7.67 7.67 0 0 1 9.196 3.81l2.158 4.228a3.05 3.05 0 0 0 1.33 1.33l4.227 2.16.168-.329-.168.329a7.67 7.67 0 0 1 3.808 9.194l-1.461 4.516a3.04 3.04 0 0 0 0 1.879l1.463 4.516a7.67 7.67 0 0 1-3.81 9.196l-4.227 2.158a3.05 3.05 0 0 0-1.33 1.33l-2.16 4.227a7.674 7.674 0 0 1-9.194 3.808l-4.517-1.461a3.04 3.04 0 0 0-1.878 0l-4.516 1.463h-.001a7.67 7.67 0 0 1-9.193-3.81l-2.161-4.227a3.05 3.05 0 0 0-1.329-1.33l-4.224-2.16h-.001a7.676 7.676 0 0 1-3.81-9.194l1.461-4.516a3.06 3.06 0 0 0 0-1.879l-1.464-4.516a7.675 7.675 0 0 1 3.811-9.194l4.227-2.16a3.05 3.05 0 0 0 1.329-1.33z\"\n})), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFB629\",\n fillRule: \"evenodd\",\n stroke: \"#FFB629\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M165.643 81.557a1.9 1.9 0 0 1 0 2.686l-15.2 15.2a1.9 1.9 0 0 1-2.687 0l-7.6-7.6a1.9 1.9 0 1 1 2.687-2.687l6.257 6.257 6.928-6.928 6.928-6.928a1.9 1.9 0 0 1 2.687 0\",\n clipRule: \"evenodd\"\n})), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"m193.137 102.457 10.245 5.357-7.237 19.414-3.87-5.906-6.375.549z\"\n})), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"m211.97 102.457-10.245 5.357 7.237 19.414 3.599-5.906 6.646.549z\"\n})), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#3E498A\",\n stroke: \"#C8CEED\",\n strokeWidth: 0.772,\n d: \"m193.241 80.012-1.386 2.71zm0 0a4.775 4.775 0 0 1 5.72-2.37l2.898.937c.422.137.876.137 1.297 0h.001l2.897-.939a4.776 4.776 0 0 1 5.722 2.37l1.384 2.713a2.1 2.1 0 0 0 .919.918l2.711 1.386.172-.335-.171.335a4.77 4.77 0 0 1 2.369 5.72l-.938 2.898a2.1 2.1 0 0 0 0 1.297l.939 2.898a4.775 4.775 0 0 1-2.37 5.722l-2.712 1.384a2.1 2.1 0 0 0-.919.918l-1.386 2.712.344.176-.344-.176a4.77 4.77 0 0 1-5.72 2.369l-2.898-.937a2.1 2.1 0 0 0-1.297 0l-2.898.939a4.77 4.77 0 0 1-5.72-2.371l-1.386-2.712a2.1 2.1 0 0 0-.918-.918l-2.71-1.386a4.77 4.77 0 0 1-2.371-5.72l.937-2.898a2.1 2.1 0 0 0 0-1.297l-.939-2.898a4.78 4.78 0 0 1 2.371-5.72m5.016-5.015-5.016 5.015m0 0 2.712-1.386m-2.712 1.386 2.712-1.386m0 0c.395-.202.716-.523.918-.918z\"\n})), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFB629\",\n fillRule: \"evenodd\",\n stroke: \"#FFB629\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M209.707 90.293a1 1 0 0 1 0 1.414l-8 8a1 1 0 0 1-1.414 0l-4-4a1 1 0 1 1 1.414-1.414L201 97.586l7.293-7.293a1 1 0 0 1 1.414 0\",\n clipRule: \"evenodd\"\n})), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"get-a-course-badge_svg__a\",\n width: 21,\n height: 21,\n x: 199.5,\n y: 109.5,\n colorInterpolationFilters: \"sRGB\",\n filterUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n result: \"hardAlpha\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", {\n dy: 2\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 2\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_2668_3013\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_2668_3013\",\n result: \"shape\"\n})))));\nexport default SvgGetACourseBadge;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgQnote = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"#9AC2FF\",\n viewBox: \"0 0 73 57\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.205 41.859c0-8.453-5.232-13.886-14.288-13.886-1.811 0-3.22.402-4.226 1.006.402-9.257 8.854-15.496 16.502-16.703V0C18.514 1.207 0 10.263 0 37.23c0 10.666 6.842 19.32 17.508 19.32 9.459 0 15.697-6.843 15.697-14.691m39.645 0c0-8.453-5.232-13.886-14.288-13.886-1.812 0-3.22.402-4.226 1.006.402-9.257 8.854-15.496 16.501-16.703V0C58.16 1.207 39.645 10.263 39.645 37.23c0 10.666 6.842 19.32 17.508 19.32 9.458 0 15.697-6.843 15.697-14.691\"\n})));\nexport default SvgQnote;","\n \n\n","\n \n\n","\n \n\n","var _rect, _path, _path2, _path3, _path4, _path5, _path6, _path7;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgCertificates = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 315 200\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 315,\n height: 200,\n fill: \"#fff\",\n rx: 3\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"m80.754 65.777 1.9-.39v1.072q0 1.023.503 1.495.504.454 1.267.454.78 0 1.234-.487.456-.504.455-1.38v-8.056h1.95v8.007q0 .763-.26 1.445a3.8 3.8 0 0 1-.731 1.202 3.6 3.6 0 0 1-1.137.812 3.7 3.7 0 0 1-1.495.293 4.3 4.3 0 0 1-1.526-.26 3.5 3.5 0 0 1-1.17-.764 3.4 3.4 0 0 1-.73-1.169 4.3 4.3 0 0 1-.26-1.527zm13.171 2.778q.44 0 .829-.163.405-.162.714-.47.309-.327.487-.797.18-.471.179-1.088 0-.617-.179-1.072a2.2 2.2 0 0 0-.487-.78 1.8 1.8 0 0 0-.715-.47 2.1 2.1 0 0 0-.828-.163q-.439 0-.844.163-.39.146-.699.47a2.5 2.5 0 0 0-.487.78q-.18.454-.179 1.072 0 .617.179 1.088.195.471.487.796.309.309.699.471.406.163.844.163m0-6.708q.893 0 1.64.325.748.308 1.3.877.552.552.86 1.315.31.764.31 1.673 0 .91-.31 1.69a4.1 4.1 0 0 1-.86 1.331q-.552.552-1.3.877a4.3 4.3 0 0 1-1.64.309 4.3 4.3 0 0 1-1.64-.309 4.2 4.2 0 0 1-1.3-.877 4.2 4.2 0 0 1-.844-1.332 4.6 4.6 0 0 1-.309-1.689q0-.91.309-1.673t.844-1.315a3.8 3.8 0 0 1 1.3-.877 4.15 4.15 0 0 1 1.64-.325m8.27.243h1.64v1.673h-1.64v3.67q0 .52.244.764.243.228.763.228.195 0 .39-.017.194-.032.26-.048v1.559a3 3 0 0 1-.358.097q-.276.081-.796.081-1.104 0-1.737-.617-.634-.616-.634-1.738v-3.979h-1.462V62.09h.406q.634 0 .926-.357a1.34 1.34 0 0 0 .293-.877V59.67h1.705zm7.052-2.24q-.194 0-.406.048a.95.95 0 0 0-.373.195q-.162.129-.276.373a1.3 1.3 0 0 0-.114.585v1.04h1.835v1.64h-1.835V70h-1.9v-6.27h-1.381v-1.64h1.381v-1.088q0-.666.195-1.185.21-.536.568-.894.374-.373.877-.568.504-.195 1.121-.195.357 0 .617.065.276.048.374.097v1.608a1 1 0 0 0-.244-.048 2.3 2.3 0 0 0-.439-.033m5.408 8.705q.44 0 .829-.163.405-.162.714-.47.309-.327.487-.797.18-.471.179-1.088 0-.617-.179-1.072a2.2 2.2 0 0 0-.487-.78 1.84 1.84 0 0 0-.714-.47 2.249 2.249 0 0 0-1.673 0q-.39.146-.699.47a2.5 2.5 0 0 0-.487.78q-.179.454-.179 1.072 0 .617.179 1.088.195.471.487.796.309.309.699.471.406.163.844.163m0-6.708q.894 0 1.641.325.747.308 1.299.877.552.552.861 1.315.308.764.308 1.673 0 .91-.308 1.69a4.1 4.1 0 0 1-.861 1.331q-.552.552-1.299.877a4.3 4.3 0 0 1-1.641.309 4.3 4.3 0 0 1-1.64-.309 4.2 4.2 0 0 1-1.299-.877 4.2 4.2 0 0 1-.845-1.332 4.5 4.5 0 0 1-.309-1.689q0-.91.309-1.673.308-.763.845-1.315a3.8 3.8 0 0 1 1.299-.877 4.15 4.15 0 0 1 1.64-.325m10.559 2.111a4 4 0 0 0-.617-.048q-1.105 0-1.625.6-.503.601-.503 1.722V70h-1.884v-7.91h1.835v1.267q.276-.649.894-1.007a2.73 2.73 0 0 1 1.396-.357q.178 0 .309.016.13.017.195.033zM126.787 70v-7.91h1.802v1.007q.341-.6 1.007-.91a3 3 0 0 1 1.332-.324q.78 0 1.413.357.633.341.958 1.04.471-.78 1.121-1.088a3.4 3.4 0 0 1 1.446-.309q.535 0 1.039.179t.893.552q.39.357.617.926.244.568.244 1.348V70h-1.819v-4.824q0-.698-.374-1.153-.357-.47-1.153-.47-.746 0-1.202.519-.438.503-.438 1.234V70h-1.852v-4.824q0-.681-.357-1.153-.357-.47-1.169-.47-.764 0-1.202.503-.44.487-.439 1.25V70zm18.37 0V58.485h7.163v1.835h-5.214v3.232h4.678v1.803h-4.678V70zm11.815-1.445q.438 0 .828-.163.406-.162.715-.47.308-.327.487-.797a3.1 3.1 0 0 0 .179-1.088q0-.617-.179-1.072a2.2 2.2 0 0 0-.487-.78 1.8 1.8 0 0 0-.715-.47 2.1 2.1 0 0 0-.828-.163q-.439 0-.845.163-.39.146-.698.47a2.5 2.5 0 0 0-.487.78q-.18.454-.179 1.072 0 .617.179 1.088.195.471.487.796.309.309.698.471.406.163.845.163m0-6.708a4.1 4.1 0 0 1 1.64.325q.747.308 1.299.877.554.552.861 1.315.309.764.309 1.673 0 .91-.309 1.69a4.1 4.1 0 0 1-.861 1.331q-.552.552-1.299.877a4.3 4.3 0 0 1-1.64.309 4.3 4.3 0 0 1-1.641-.309 4.2 4.2 0 0 1-1.299-.877 4.2 4.2 0 0 1-.845-1.332 4.6 4.6 0 0 1-.308-1.689q0-.91.308-1.673.31-.763.845-1.315a3.8 3.8 0 0 1 1.299-.877 4.15 4.15 0 0 1 1.641-.325m11.03 7.276q-.291.535-.925.828-.617.276-1.316.276-.714 0-1.267-.243a2.8 2.8 0 0 1-.942-.666 3.3 3.3 0 0 1-.584-1.007 3.8 3.8 0 0 1-.195-1.235V62.09h1.884v4.645q0 .374.081.699.097.325.292.568.195.245.488.39.308.147.73.146.829 0 1.235-.487.422-.504.422-1.283V62.09h1.884v6.465q0 .486.016.86.033.357.065.585h-1.803a2.4 2.4 0 0 1-.048-.374 8 8 0 0 1-.017-.503m6.11.877h-1.884v-7.91h1.835v1.056q.39-.683 1.023-.974a3.04 3.04 0 0 1 1.316-.309q.73 0 1.267.244.535.243.877.682.356.422.536.99.178.569.178 1.219V70h-1.884v-4.677q0-.732-.373-1.235-.358-.52-1.251-.52-.812 0-1.234.553-.406.535-.406 1.315zm8.709-3.98q0 1.138.568 1.836.585.682 1.559.682.455 0 .845-.178.39-.195.666-.52.276-.342.422-.796a3.2 3.2 0 0 0 .162-1.04q0-1.136-.584-1.786-.568-.666-1.495-.666-.925 0-1.542.666-.601.666-.601 1.803m6.041 2.535a12 12 0 0 0 .082 1.445h-1.803a4 4 0 0 1-.065-.455 11 11 0 0 1-.016-.568q-.276.503-.877.86-.601.358-1.446.358a3.8 3.8 0 0 1-1.559-.309 3.7 3.7 0 0 1-1.202-.877 4.2 4.2 0 0 1-.763-1.332 4.8 4.8 0 0 1-.276-1.656q0-.845.276-1.592.276-.764.763-1.332a3.6 3.6 0 0 1 1.202-.893 3.6 3.6 0 0 1 1.527-.325q.519 0 .909.114.39.097.666.276.292.162.471.357t.276.39v-4.775h1.835zm1.943-.699q0-.536.179-.942a2.35 2.35 0 0 1 1.267-1.186q.438-.178.942-.26l2.03-.308q.341-.048.454-.195a.58.58 0 0 0 .13-.373 1.12 1.12 0 0 0-.357-.845q-.357-.357-1.137-.357-.747 0-1.153.422-.406.405-.471 1.007l-1.722-.39q.05-.503.309-.974.26-.47.682-.829a3.3 3.3 0 0 1 1.007-.568q.602-.21 1.332-.211.91 0 1.543.243.65.245 1.039.65.406.406.585.942.195.536.195 1.12v3.931q0 .537.032.877.05.325.065.39h-1.754a1.6 1.6 0 0 1-.048-.276 6 6 0 0 1-.033-.731q-.276.455-.877.86-.601.39-1.559.39-.618 0-1.121-.194a2.8 2.8 0 0 1-.844-.52 2.6 2.6 0 0 1-.536-.763 2.4 2.4 0 0 1-.179-.91m3.037.91q.39 0 .747-.098.357-.114.617-.34.277-.244.439-.634t.162-.975v-.357l-2.062.309a1.6 1.6 0 0 0-.747.34q-.309.245-.309.731 0 .407.292.715.293.309.861.309m8.45-6.676h1.641v1.673h-1.641v3.67q0 .52.244.764.244.228.763.228.195 0 .39-.017.195-.032.26-.048v1.559a3 3 0 0 1-.358.097q-.276.081-.795.081-1.105 0-1.738-.617-.633-.616-.634-1.738v-3.979h-1.461V62.09h.406q.633 0 .925-.357a1.34 1.34 0 0 0 .293-.877V59.67h1.705zm3.576 7.91v-7.91h1.868V70zm-.292-10.687q0-.52.357-.877t.861-.357q.52 0 .877.357t.357.877-.357.877a1.22 1.22 0 0 1-.877.341q-.504 0-.861-.34a1.2 1.2 0 0 1-.357-.878m8.066 9.242q.44 0 .829-.163.405-.162.714-.47.309-.327.487-.797.18-.471.179-1.088 0-.617-.179-1.072a2.2 2.2 0 0 0-.487-.78 1.84 1.84 0 0 0-.714-.47 2.249 2.249 0 0 0-1.673 0q-.39.146-.699.47a2.5 2.5 0 0 0-.487.78q-.179.454-.179 1.072 0 .617.179 1.088.195.471.487.796.309.309.699.471.406.163.844.163m0-6.708q.894 0 1.641.325.747.308 1.299.877.552.552.861 1.315.308.764.308 1.673 0 .91-.308 1.69a4.1 4.1 0 0 1-.861 1.331q-.552.552-1.299.877a4.3 4.3 0 0 1-1.641.309 4.3 4.3 0 0 1-1.64-.309 4.2 4.2 0 0 1-1.299-.877 4.2 4.2 0 0 1-.845-1.332 4.5 4.5 0 0 1-.309-1.689q0-.91.309-1.673.308-.763.845-1.315a3.8 3.8 0 0 1 1.299-.877 4.15 4.15 0 0 1 1.64-.325M221.456 70h-1.884v-7.91h1.835v1.056q.39-.683 1.024-.974a3 3 0 0 1 1.315-.309q.731 0 1.267.244.536.243.877.682.357.422.536.99t.179 1.219V70h-1.884v-4.677q0-.732-.374-1.235-.357-.52-1.251-.52-.811 0-1.234.553-.406.535-.406 1.315zm8.384-2.599q.05.537.439.942.405.406 1.169.406.585 0 .877-.26.309-.275.309-.65a.75.75 0 0 0-.228-.551q-.227-.228-.698-.325l-1.169-.26q-1.056-.227-1.592-.845a2.2 2.2 0 0 1-.536-1.461q0-.52.227-.975.228-.47.617-.812.39-.357.91-.552.536-.21 1.153-.211.828 0 1.381.243.568.228.925.569t.52.73q.178.375.228.667l-1.592.454a2.4 2.4 0 0 0-.114-.373 1.1 1.1 0 0 0-.26-.39 1.2 1.2 0 0 0-.438-.292 1.45 1.45 0 0 0-.65-.13q-.504 0-.828.276a.8.8 0 0 0-.309.633.73.73 0 0 0 .211.536q.212.212.585.293l1.202.243q1.12.244 1.689.894.585.633.585 1.51 0 .454-.195.91a2.5 2.5 0 0 1-.552.812 2.7 2.7 0 0 1-.926.584q-.569.228-1.316.228-.861 0-1.461-.244a3.3 3.3 0 0 1-.991-.6 2.7 2.7 0 0 1-.585-.78 2.4 2.4 0 0 1-.227-.764zM56.536 89.297v-6.514h.9v5.669h3.078v.845zm6.789-.634q.276 0 .524-.101t.44-.303.304-.496a1.9 1.9 0 0 0 .11-.68q0-.386-.11-.671a1.4 1.4 0 0 0-.303-.496 1.3 1.3 0 0 0-.441-.303 1.4 1.4 0 0 0-.524-.101q-.275 0-.524.1a1.3 1.3 0 0 0-.44.304q-.194.202-.304.496-.11.285-.11.67 0 .387.11.68.111.295.303.497.194.201.441.303.249.1.524.1m0-3.923q.495 0 .91.184.413.174.716.487.303.312.469.744.165.421.165.928a2.6 2.6 0 0 1-.165.937q-.165.432-.469.744a2.3 2.3 0 0 1-.717.496 2.3 2.3 0 0 1-.91.175q-.495 0-.909-.175a2.3 2.3 0 0 1-.716-.496 2.2 2.2 0 0 1-.469-.744q-.165-.432-.165-.937t.165-.928q.166-.432.469-.744t.716-.487q.415-.184.91-.184m5.818 1.01a3 3 0 0 0-.377-.027q-.542 0-.882.322-.33.312-.33 1.038v2.214h-.864v-4.42h.845v.773q.12-.258.276-.414.165-.165.34-.257.174-.101.358-.138a1.8 1.8 0 0 1 .514-.027 1 1 0 0 1 .12.018zm3.852.882a1.2 1.2 0 0 0-.322-.799q-.303-.33-.89-.33a1.18 1.18 0 0 0-1.103.716 1.1 1.1 0 0 0-.101.413zm.873 1.406q-.092.294-.276.551a1.96 1.96 0 0 1-1.001.735 2.2 2.2 0 0 1-.708.11q-.44 0-.845-.156a2.1 2.1 0 0 1-.716-.459 2.3 2.3 0 0 1-.487-.744 2.7 2.7 0 0 1-.175-1.002 2.46 2.46 0 0 1 .634-1.68q.293-.313.68-.478a1.9 1.9 0 0 1 .8-.175q.504 0 .9.175.403.165.67.468t.404.735q.147.423.147.937 0 .083-.009.156a.6.6 0 0 1-.01.12h-3.325q.01.293.11.542.102.248.276.432.184.174.423.275.248.092.523.092.542 0 .827-.257.285-.258.414-.634zm1.13 1.259v-4.42h.826v.589q.211-.368.58-.542.376-.175.762-.175.413 0 .772.202.367.202.55.634.267-.477.662-.652.396-.184.818-.184.285 0 .56.101t.487.313q.22.202.35.523.128.312.128.744v2.867h-.855v-2.775q0-.431-.23-.716-.22-.294-.707-.294a.95.95 0 0 0-.744.321q-.275.313-.275.79v2.674h-.864v-2.775q0-.431-.22-.716-.22-.294-.717-.294-.469 0-.753.312-.276.312-.276.808v2.665zm10.174 0v-4.42h.854v4.42zm-.193-6.091q0-.267.174-.441a.6.6 0 0 1 .441-.184q.267 0 .441.184a.58.58 0 0 1 .184.44.6.6 0 0 1-.184.442.6.6 0 0 1-.44.174.62.62 0 0 1-.442-.174.62.62 0 0 1-.174-.441m2.516 7.836v-6.164h.836v.689q.185-.33.56-.56.378-.23.92-.23.495 0 .872.183.386.176.634.487.257.313.386.735.138.423.138.9 0 .497-.138.92-.138.422-.404.744a1.9 1.9 0 0 1-.653.496 2 2 0 0 1-.863.174q-.514 0-.882-.211a1.5 1.5 0 0 1-.551-.505v2.342zm3.464-3.96q0-.33-.092-.606a1.5 1.5 0 0 0-.257-.487 1.196 1.196 0 0 0-.955-.45q-.295 0-.543.12-.239.12-.413.33a1.4 1.4 0 0 0-.267.487 1.9 1.9 0 0 0-.091.607q0 .34.091.634.092.285.267.496.174.202.413.321.249.11.542.11.303 0 .542-.11.24-.12.404-.321.175-.211.267-.496.092-.294.092-.634m2.35.79q.045.35.303.589.256.239.726.239.367 0 .56-.175a.54.54 0 0 0 .193-.413q0-.211-.147-.359a.86.86 0 0 0-.423-.211l-.753-.165q-.524-.11-.818-.441a1.18 1.18 0 0 1-.285-.8q0-.285.12-.532a1.53 1.53 0 0 1 .836-.754q.294-.11.616-.11.45 0 .753.129.313.127.505.321.194.184.285.386.1.202.138.35l-.763.284a2 2 0 0 0-.064-.211.806.806 0 0 0-.423-.441 1 1 0 0 0-.431-.083q-.332 0-.533.184a.52.52 0 0 0-.202.404q0 .423.505.533l.716.156q.607.129.91.478.312.34.312.836 0 .239-.1.477-.102.24-.304.441a1.4 1.4 0 0 1-.496.322 1.8 1.8 0 0 1-.717.129 2.2 2.2 0 0 1-.79-.129 1.9 1.9 0 0 1-.542-.322 1.6 1.6 0 0 1-.33-.413 1.5 1.5 0 0 1-.138-.423zm6.654.892a1.13 1.13 0 0 1-.552.514 1.9 1.9 0 0 1-.753.157q-.386 0-.698-.138a1.5 1.5 0 0 1-.515-.377 1.8 1.8 0 0 1-.33-.56 2.1 2.1 0 0 1-.11-.698v-2.784h.863v2.655q0 .23.055.44.055.203.174.36a.86.86 0 0 0 .304.247q.193.092.468.092.525 0 .781-.312.267-.313.267-.818v-2.664h.863v3.601q0 .267.009.487.02.21.037.33h-.827a1.4 1.4 0 0 1-.027-.229 6 6 0 0 1-.01-.303m2.291.533v-4.42h.827v.589a1.3 1.3 0 0 1 .578-.542q.378-.175.763-.175.414 0 .772.202.367.202.551.634.267-.477.661-.652a1.9 1.9 0 0 1 .818-.184q.285 0 .56.101t.487.313q.221.202.349.523.129.312.129.744v2.867h-.854v-2.775q0-.431-.23-.716-.22-.294-.707-.294a.95.95 0 0 0-.745.321q-.275.313-.275.79v2.674h-.864v-2.775q0-.431-.22-.716-.22-.294-.717-.294-.468 0-.753.312-.276.312-.276.808v2.665zm10.688-2.224q0 .34.083.634.092.285.257.497.165.21.404.33t.552.12q.294 0 .532-.12.24-.129.405-.34.165-.21.248-.505.092-.294.092-.634 0-.69-.34-1.112-.331-.422-.928-.422a1.23 1.23 0 0 0-.956.44q-.165.203-.257.488t-.092.624m2.582 1.553a1.46 1.46 0 0 1-.505.56q-.34.23-.864.23-.487 0-.873-.174a2 2 0 0 1-.661-.496 2.4 2.4 0 0 1-.414-.745 2.9 2.9 0 0 1-.147-.928q0-.468.147-.881a2.3 2.3 0 0 1 .432-.735q.275-.322.662-.506.386-.193.854-.193.294 0 .514.065.23.064.395.174.167.101.276.24a1 1 0 0 1 .165.266v-2.858h.855v5.834a7 7 0 0 0 .046.818h-.836a2 2 0 0 1-.037-.23 7 7 0 0 1-.009-.367zm4.197.037q.276 0 .524-.101t.441-.303q.194-.202.303-.496.11-.295.11-.68t-.11-.671a1.4 1.4 0 0 0-.303-.496 1.3 1.3 0 0 0-.441-.303 1.4 1.4 0 0 0-.524-.101q-.275 0-.523.1a1.25 1.25 0 0 0-.441.304q-.193.202-.304.496-.11.285-.11.67 0 .387.11.68.11.295.304.497.192.201.441.303.248.1.523.1m0-3.923q.496 0 .91.184.413.174.716.487.304.312.469.744.165.421.165.928 0 .505-.165.937t-.469.744a2.3 2.3 0 0 1-.716.496 2.3 2.3 0 0 1-.91.175q-.496 0-.909-.175a2.3 2.3 0 0 1-.717-.496 2.2 2.2 0 0 1-.468-.744 2.6 2.6 0 0 1-.166-.937q0-.506.166-.928.165-.432.468-.744t.717-.487q.413-.184.909-.184m3.365 4.557v-6.652h.864v6.652zm4.225-.634q.276 0 .524-.101.247-.102.441-.303.194-.202.303-.496.11-.295.11-.68t-.11-.671a1.4 1.4 0 0 0-.303-.496 1.3 1.3 0 0 0-.441-.303 1.4 1.4 0 0 0-.524-.101q-.275 0-.523.1a1.25 1.25 0 0 0-.441.304q-.193.202-.303.496-.111.285-.111.67 0 .387.111.68.11.295.303.497.192.201.441.303.248.1.523.1m0-3.923q.496 0 .91.184.413.174.717.487.303.312.468.744.165.421.165.928 0 .505-.165.937t-.468.744a2.3 2.3 0 0 1-.717.496 2.3 2.3 0 0 1-.91.175q-.495 0-.909-.175a2.3 2.3 0 0 1-.717-.496 2.2 2.2 0 0 1-.468-.744q-.165-.432-.166-.937 0-.506.166-.928.165-.432.468-.744t.717-.487q.414-.184.909-.184m5.818 1.01a3 3 0 0 0-.376-.027q-.543 0-.882.322-.331.312-.331 1.038v2.214h-.864v-4.42h.846v.773q.119-.258.275-.414.165-.165.34-.257.174-.101.358-.138t.349-.037a1.4 1.4 0 0 1 .285.028zm3.585 2.123a.95.95 0 0 0 .303.588q.258.239.726.239.368 0 .56-.175a.54.54 0 0 0 .193-.413q0-.211-.147-.359a.86.86 0 0 0-.422-.211l-.754-.165q-.523-.11-.817-.441a1.18 1.18 0 0 1-.285-.8q0-.285.119-.532a1.53 1.53 0 0 1 .836-.754q.294-.11.616-.11.45 0 .753.129.313.127.505.321.194.184.285.386a1.7 1.7 0 0 1 .138.35l-.762.284a2 2 0 0 0-.065-.211.7.7 0 0 0-.147-.24.8.8 0 0 0-.275-.201 1 1 0 0 0-.432-.083q-.331 0-.533.184a.52.52 0 0 0-.202.404q0 .423.505.533l.717.156q.606.129.909.478.313.34.313.836 0 .239-.101.477-.102.24-.304.441a1.4 1.4 0 0 1-.496.322 1.8 1.8 0 0 1-.716.129q-.46 0-.79-.129a1.9 1.9 0 0 1-.542-.322 1.6 1.6 0 0 1-.331-.413 1.5 1.5 0 0 1-.138-.423zm3.786 1.424v-4.42h.855v4.42zm-.193-6.091a.6.6 0 0 1 .175-.441.6.6 0 0 1 .441-.184q.267 0 .441.184a.58.58 0 0 1 .184.44.6.6 0 0 1-.184.442.6.6 0 0 1-.441.174.62.62 0 0 1-.441-.174.62.62 0 0 1-.175-.441m3.675 1.672h.955v.78h-.955v2.297q0 .304.137.46.139.147.478.147.083 0 .184-.01a.7.7 0 0 0 .156-.027v.735a2 2 0 0 1-.211.046 1.7 1.7 0 0 1-.377.037q-.57 0-.9-.322-.331-.33-.331-.937V85.66h-.845v-.781h.239q.358 0 .514-.193a.72.72 0 0 0 .166-.487v-.717h.79zm4.129 3.234q0-.294.101-.524.1-.24.276-.404a1.5 1.5 0 0 1 .431-.267q.249-.1.533-.147l1.195-.174q.201-.028.266-.12a.33.33 0 0 0 .073-.211.75.75 0 0 0-.229-.551q-.22-.24-.726-.24-.46 0-.707.258a1.03 1.03 0 0 0-.294.634l-.827-.193q.037-.312.184-.579a1.5 1.5 0 0 1 .395-.45q.239-.192.551-.294a2.1 2.1 0 0 1 .68-.11q.495 0 .845.138.349.128.569.349.221.22.322.514.1.294.101.616v2.214q0 .294.018.469.02.174.037.257h-.845a3 3 0 0 1-.037-.22 6 6 0 0 1-.009-.377q-.073.12-.193.248a1.46 1.46 0 0 1-.707.413 1.7 1.7 0 0 1-.524.074q-.34 0-.615-.11a1.6 1.6 0 0 1-.46-.285 1.4 1.4 0 0 1-.303-.423 1.3 1.3 0 0 1-.101-.505m1.598.597q.266 0 .497-.065.239-.073.404-.22.174-.156.275-.404a1.7 1.7 0 0 0 .101-.616v-.202l-1.35.202a.9.9 0 0 0-.459.212q-.184.156-.184.45 0 .248.193.45.192.193.523.193m3.486.588v-4.42h.827v.589q.212-.368.579-.542.376-.175.763-.175.412 0 .771.202.368.202.551.634.267-.477.662-.652.395-.184.818-.184.284 0 .56.101t.487.313q.22.202.349.523.129.312.129.744v2.867h-.855v-2.775q0-.431-.229-.716-.22-.294-.708-.294a.95.95 0 0 0-.744.321q-.276.313-.276.79v2.674h-.863v-2.775q0-.431-.221-.716-.22-.294-.716-.294-.47 0-.754.312-.275.312-.275.808v2.665zm10.854-2.665a1.2 1.2 0 0 0-.321-.799q-.304-.33-.891-.33a1.18 1.18 0 0 0-.864.358 1.3 1.3 0 0 0-.239.358 1.1 1.1 0 0 0-.101.413zm.873 1.406a1.9 1.9 0 0 1-.276.551 1.96 1.96 0 0 1-1.001.735q-.321.11-.707.11-.441 0-.846-.156a2.1 2.1 0 0 1-.716-.459 2.3 2.3 0 0 1-.487-.744 2.7 2.7 0 0 1-.175-1.002q0-.523.175-.946.174-.432.459-.735a2 2 0 0 1 .68-.477 1.9 1.9 0 0 1 .799-.175q.505 0 .901.175.404.165.67.468.267.303.405.735.147.423.147.937 0 .083-.01.156a.6.6 0 0 1-.009.12h-3.326q.01.293.111.542.1.248.275.432.185.174.423.275.248.092.524.092.542 0 .826-.257.285-.258.414-.634zm2.287-3.16h.956v.78h-.956v2.297q0 .304.138.46.138.147.478.147.082 0 .184-.01a.7.7 0 0 0 .156-.027v.735a2 2 0 0 1-.211.046 1.7 1.7 0 0 1-.377.037q-.57 0-.9-.322-.331-.33-.331-.937V85.66h-.845v-.781h.239q.358 0 .514-.193a.72.72 0 0 0 .165-.487v-.717h.79zm6.261.661q-.266 0-.505.101a1.2 1.2 0 0 0-.432.285q-.183.193-.294.487-.11.285-.11.67 0 .377.11.671.111.285.294.487.184.194.432.294.248.102.514.101.313 0 .524-.092.22-.09.358-.23.147-.138.23-.293.083-.166.119-.294l.763.33q-.083.24-.239.487a1.95 1.95 0 0 1-.992.763 2.1 2.1 0 0 1-.763.129q-.486 0-.9-.175a2.2 2.2 0 0 1-.698-.496 2.5 2.5 0 0 1-.469-.744q-.165-.432-.165-.937 0-.515.165-.947.175-.43.469-.734.303-.313.707-.487.414-.175.882-.175.44 0 .772.129.34.12.579.321.248.202.395.46.147.247.22.496l-.781.33q-.045-.165-.128-.33a1 1 0 0 0-.23-.294 1.172 1.172 0 0 0-.827-.312m4.864 3.124q.275 0 .523-.101.249-.102.441-.303.193-.202.304-.496.11-.295.11-.68t-.11-.671a1.4 1.4 0 0 0-.304-.496 1.25 1.25 0 0 0-.441-.303 1.4 1.4 0 0 0-.523-.101q-.276 0-.524.1a1.3 1.3 0 0 0-.441.304q-.194.202-.303.496-.11.285-.11.67 0 .387.11.68.11.295.303.497.194.201.441.303.248.1.524.1m0-3.923q.496 0 .909.184.414.174.717.487.303.312.468.744.166.421.166.928 0 .505-.166.937-.165.432-.468.744a2.3 2.3 0 0 1-.717.496 2.3 2.3 0 0 1-.909.175q-.496 0-.91-.175a2.3 2.3 0 0 1-.716-.496 2.2 2.2 0 0 1-.469-.744q-.165-.432-.165-.937t.165-.928q.166-.432.469-.744t.716-.487q.414-.184.91-.184m4.228 4.557h-.863v-4.42h.845v.635q.239-.414.606-.588a1.74 1.74 0 0 1 .754-.175q.395 0 .689.138.303.129.496.367.201.23.294.552.1.321.101.689v2.802h-.864v-2.655q0-.23-.055-.432a.8.8 0 0 0-.175-.35.75.75 0 0 0-.321-.238 1.1 1.1 0 0 0-.478-.092.96.96 0 0 0-.45.101.9.9 0 0 0-.322.257q-.128.166-.192.386a1.7 1.7 0 0 0-.065.469zm4.663-1.424a.95.95 0 0 0 .303.588q.257.239.726.239.368 0 .56-.175a.54.54 0 0 0 .193-.413q0-.211-.147-.359a.86.86 0 0 0-.422-.211l-.754-.165q-.523-.11-.817-.441a1.18 1.18 0 0 1-.285-.8q0-.285.119-.532a1.53 1.53 0 0 1 .836-.754q.294-.11.616-.11.45 0 .753.129.313.127.505.321.193.184.285.386a1.7 1.7 0 0 1 .138.35l-.763.284a2 2 0 0 0-.064-.211.7.7 0 0 0-.147-.24.8.8 0 0 0-.275-.201 1 1 0 0 0-.432-.083q-.331 0-.533.184a.52.52 0 0 0-.202.404q0 .423.505.533l.717.156q.606.129.909.478.313.34.313.836 0 .239-.101.477-.102.24-.304.441a1.4 1.4 0 0 1-.496.322 1.8 1.8 0 0 1-.716.129q-.46 0-.79-.129a1.9 1.9 0 0 1-.542-.322 1.6 1.6 0 0 1-.331-.413 1.5 1.5 0 0 1-.138-.423zm6.718-1.24a1.2 1.2 0 0 0-.321-.8q-.304-.33-.892-.33a1.18 1.18 0 0 0-.863.358 1.3 1.3 0 0 0-.239.358 1.1 1.1 0 0 0-.101.413zm.873 1.405a1.9 1.9 0 0 1-.276.551q-.174.249-.432.441-.248.184-.569.294-.322.11-.708.11-.44 0-.845-.156a2.1 2.1 0 0 1-.716-.459 2.3 2.3 0 0 1-.487-.744 2.7 2.7 0 0 1-.175-1.002q0-.523.175-.946.174-.432.459-.735a2 2 0 0 1 .68-.477 1.9 1.9 0 0 1 .799-.175q.505 0 .901.175.404.165.67.468.267.303.404.735.147.423.147.937 0 .083-.009.156a.6.6 0 0 1-.009.12h-3.326q.009.293.111.542.1.248.275.432.184.174.423.275.248.092.523.092.542 0 .827-.257.285-.258.414-.634zm2.986-2.499q-.267 0-.506.101a1.2 1.2 0 0 0-.432.285q-.183.193-.293.487-.111.285-.111.67 0 .377.111.671.11.285.293.487.184.194.432.294.248.102.515.101.313 0 .523-.092a1.1 1.1 0 0 0 .359-.23q.147-.138.229-.293.083-.166.12-.294l.762.33q-.082.24-.239.487a1.92 1.92 0 0 1-.992.763 2.1 2.1 0 0 1-.762.129q-.487 0-.901-.175a2.2 2.2 0 0 1-.698-.496 2.5 2.5 0 0 1-.468-.744 2.6 2.6 0 0 1-.166-.937q0-.515.166-.947.174-.43.468-.734a2.18 2.18 0 0 1 1.59-.662q.441 0 .771.129a1.8 1.8 0 0 1 .974.78q.147.249.221.497l-.781.33a2 2 0 0 0-.129-.33 1 1 0 0 0-.23-.294 1 1 0 0 0-.34-.22 1.2 1.2 0 0 0-.486-.093m4.173-.661h.955v.78h-.955v2.297q0 .304.138.46.138.147.478.147.083 0 .183-.01a.7.7 0 0 0 .156-.027v.735a2 2 0 0 1-.211.046 1.7 1.7 0 0 1-.377.037q-.568 0-.9-.322-.33-.33-.331-.937V85.66h-.845v-.781h.239q.358 0 .515-.193a.72.72 0 0 0 .165-.487v-.717h.79zm5.04 1.754a1.2 1.2 0 0 0-.322-.799q-.303-.33-.891-.33a1.18 1.18 0 0 0-1.102.716 1.1 1.1 0 0 0-.101.413zm.873 1.406q-.092.294-.276.551-.174.249-.432.441-.248.184-.569.294-.322.11-.708.11-.44 0-.845-.156a2.1 2.1 0 0 1-.717-.459 2.3 2.3 0 0 1-.486-.744 2.7 2.7 0 0 1-.175-1.002q0-.523.175-.946.174-.432.459-.735a2 2 0 0 1 .68-.477q.385-.175.799-.175.505 0 .9.175.405.165.671.468t.404.735q.147.423.147.937 0 .083-.009.156a.6.6 0 0 1-.009.12h-3.326q.01.293.11.542.102.248.276.432.183.174.423.275.248.092.523.092.542 0 .827-.257.285-.258.414-.634zm2.287-3.16h.956v.78h-.956v2.297q0 .304.138.46.138.147.478.147.083 0 .183-.01a.7.7 0 0 0 .157-.027v.735a2 2 0 0 1-.212.046 1.7 1.7 0 0 1-.376.037q-.57 0-.901-.322-.33-.33-.33-.937V85.66h-.846v-.781h.239q.359 0 .515-.193a.72.72 0 0 0 .165-.487v-.717h.79zm5.021 3.886a1.13 1.13 0 0 1-.552.514 1.9 1.9 0 0 1-.753.157q-.386 0-.698-.138a1.5 1.5 0 0 1-.515-.377 1.8 1.8 0 0 1-.33-.56 2.1 2.1 0 0 1-.111-.698v-2.784h.864v2.655q0 .23.055.44.055.203.175.36a.85.85 0 0 0 .303.247q.193.092.468.092.524 0 .781-.312.267-.313.267-.818v-2.664h.863v3.601q0 .267.009.487.02.21.037.33h-.827a1.4 1.4 0 0 1-.027-.229 6 6 0 0 1-.009-.303m4.744-3.013a3 3 0 0 0-.377-.028q-.541 0-.882.322-.33.312-.33 1.038v2.214h-.864v-4.42h.845v.773q.12-.258.276-.414.165-.165.34-.257.174-.101.358-.138t.349-.037a1.3 1.3 0 0 1 .285.028zm.003 2.958a.6.6 0 0 1 .184-.45.6.6 0 0 1 .45-.193q.267 0 .45.193a.6.6 0 0 1 .193.45.6.6 0 0 1-.193.45.6.6 0 0 1-.45.184.6.6 0 0 1-.45-.184.6.6 0 0 1-.184-.45m11.193.588v-5.071l-2.224 5.07h-.826l-2.205-5.07v5.07h-.892v-6.513h1.222l2.297 5.301 2.315-5.3h1.204v6.513zm4.348-.634q.276 0 .523-.101.249-.102.441-.303.193-.202.304-.496.11-.295.11-.68t-.11-.671a1.4 1.4 0 0 0-.304-.496 1.25 1.25 0 0 0-.441-.303 1.4 1.4 0 0 0-.523-.101q-.276 0-.524.1a1.3 1.3 0 0 0-.441.304q-.193.202-.303.496-.11.285-.11.67 0 .387.11.68.11.295.303.497.193.201.441.303.248.1.524.1m0-3.923q.496 0 .909.184.414.174.717.487.303.312.468.744.166.421.166.928 0 .505-.166.937-.165.432-.468.744a2.3 2.3 0 0 1-.717.496 2.3 2.3 0 0 1-.909.175q-.496 0-.91-.175a2.3 2.3 0 0 1-.716-.496 2.2 2.2 0 0 1-.469-.744q-.165-.432-.165-.937t.165-.928q.166-.432.469-.744t.716-.487q.414-.184.91-.184m3.365 4.557v-6.652h.863v6.652zm5.309-2.665a1.2 1.2 0 0 0-.322-.799q-.303-.33-.891-.33a1.18 1.18 0 0 0-1.102.716 1.1 1.1 0 0 0-.101.413zm.873 1.406q-.092.294-.276.551-.174.249-.432.441-.248.184-.569.294-.322.11-.708.11-.44 0-.845-.156a2.1 2.1 0 0 1-.717-.459 2.3 2.3 0 0 1-.486-.744 2.7 2.7 0 0 1-.175-1.002q0-.523.175-.946.174-.432.459-.735a2 2 0 0 1 .68-.477q.385-.175.799-.175.505 0 .9.175.405.165.671.468.267.303.404.735.147.423.147.937 0 .083-.009.156a.6.6 0 0 1-.009.12h-3.326q.01.293.11.542.102.248.276.432a1.4 1.4 0 0 0 .423.275q.248.092.523.092.542 0 .827-.257.285-.258.414-.634zm1.497-.165a.95.95 0 0 0 .303.588q.258.239.726.239.367 0 .561-.175a.54.54 0 0 0 .192-.413q0-.211-.147-.359a.86.86 0 0 0-.422-.211l-.754-.165q-.523-.11-.817-.441a1.18 1.18 0 0 1-.285-.8q0-.285.119-.532a1.55 1.55 0 0 1 .836-.754q.294-.11.616-.11.45 0 .753.129.313.127.506.321.192.184.284.386a1.7 1.7 0 0 1 .138.35l-.762.284a2 2 0 0 0-.065-.211.7.7 0 0 0-.147-.24.8.8 0 0 0-.275-.201 1 1 0 0 0-.432-.083.76.76 0 0 0-.533.184.52.52 0 0 0-.202.404q0 .423.505.533l.717.156q.606.129.909.478.313.34.313.836 0 .239-.101.477-.102.24-.303.441a1.4 1.4 0 0 1-.497.322q-.303.129-.716.129a2.2 2.2 0 0 1-.79-.129 1.9 1.9 0 0 1-.542-.322 1.6 1.6 0 0 1-.331-.413 1.5 1.5 0 0 1-.138-.423zm4.944-2.995h.956v.78h-.956v2.297q0 .304.138.46.138.147.478.147.083 0 .183-.01a.7.7 0 0 0 .157-.027v.735a2 2 0 0 1-.212.046 1.7 1.7 0 0 1-.376.037q-.57 0-.901-.322-.33-.33-.33-.937V85.66h-.846v-.781h.239q.359 0 .515-.193a.72.72 0 0 0 .165-.487v-.717h.79zm2.108 4.419v-4.42h.855v4.42zm-.193-6.091a.6.6 0 0 1 .175-.441.6.6 0 0 1 .441-.184q.266 0 .441.184a.58.58 0 0 1 .184.44.6.6 0 0 1-.184.442.6.6 0 0 1-.441.174.62.62 0 0 1-.441-.174.62.62 0 0 1-.175-.441m5.494 3.426a1.2 1.2 0 0 0-.322-.799q-.303-.33-.891-.33a1.18 1.18 0 0 0-1.103.716 1.1 1.1 0 0 0-.101.413zm.872 1.406q-.092.294-.275.551a2 2 0 0 1-1.002.735q-.321.11-.707.11-.441 0-.845-.156a2.1 2.1 0 0 1-.717-.459 2.3 2.3 0 0 1-.487-.744 2.7 2.7 0 0 1-.174-1.002q0-.523.174-.946.175-.432.46-.735.294-.312.679-.477.387-.175.8-.175.505 0 .9.175.405.165.671.468t.404.735q.147.423.147.937 0 .083-.009.156a.6.6 0 0 1-.009.12h-3.326q.01.293.11.542.1.248.276.432.183.174.422.275a1.5 1.5 0 0 0 .524.092q.542 0 .827-.257.284-.258.413-.634zm-191.97 15.259h-.873l-1.792-4.42h.974l1.259 3.409 1.267-3.408h.928zm5.502-.533a1.12 1.12 0 0 1-.551.514 1.9 1.9 0 0 1-.754.157 1.7 1.7 0 0 1-.698-.138 1.5 1.5 0 0 1-.514-.377 1.8 1.8 0 0 1-.331-.56 2.1 2.1 0 0 1-.11-.699v-2.783h.863v2.655q0 .23.056.441.054.202.174.358t.303.248q.193.092.469.092.524 0 .78-.312.267-.313.267-.818v-2.664h.864v3.601q0 .267.009.487.018.211.037.331h-.827a1.4 1.4 0 0 1-.028-.23 6 6 0 0 1-.009-.303m2.291.533v-6.652h.864v6.652zm2.333 1.745v-6.164h.836v.689q.185-.33.56-.56.377-.23.92-.23.495 0 .872.183.385.176.634.487.257.313.386.735.137.423.137.901 0 .496-.137.918-.138.423-.405.745a1.95 1.95 0 0 1-.652.496 2 2 0 0 1-.863.174q-.514 0-.882-.211a1.5 1.5 0 0 1-.552-.505v2.342zm3.463-3.959q0-.331-.091-.607a1.5 1.5 0 0 0-.258-.487 1.196 1.196 0 0 0-.956-.45q-.293 0-.541.12-.24.12-.413.33a1.4 1.4 0 0 0-.267.487 1.9 1.9 0 0 0-.092.607q0 .34.092.634.092.284.266.496.175.202.414.321.248.11.542.11.303 0 .542-.11.24-.12.404-.321.175-.212.267-.496.09-.294.091-.634m4.85 1.681a1.12 1.12 0 0 1-.551.514 1.9 1.9 0 0 1-.753.157 1.7 1.7 0 0 1-.699-.138 1.5 1.5 0 0 1-.514-.377 1.8 1.8 0 0 1-.33-.56 2.1 2.1 0 0 1-.111-.699v-2.783h.864v2.655q0 .23.055.441.055.202.174.358.12.156.303.248.194.092.469.092.525 0 .78-.312.267-.313.267-.818v-2.664h.864v3.601q0 .267.01.487.017.211.036.331h-.827a1.4 1.4 0 0 1-.028-.23 5 5 0 0 1-.009-.303m3.45-3.886h.955v.78h-.956v2.297q0 .304.138.46.138.147.478.147.083 0 .183-.009a1 1 0 0 0 .157-.028v.735a2 2 0 0 1-.212.046q-.156.037-.376.037-.57 0-.9-.322-.331-.33-.331-.937v-2.425h-.846v-.781h.24q.357 0 .514-.193a.72.72 0 0 0 .165-.487v-.717h.79zm1.832 3.234q0-.294.1-.524.102-.239.276-.404.184-.166.432-.267.248-.1.533-.147l1.194-.174q.203-.028.267-.12a.33.33 0 0 0 .073-.211.75.75 0 0 0-.23-.551q-.22-.24-.725-.24-.459 0-.708.258a1.04 1.04 0 0 0-.294.634l-.826-.193q.036-.312.183-.579.156-.266.395-.45.24-.192.552-.294.32-.11.68-.11.495 0 .845.138.348.128.57.349.22.22.32.514.102.294.102.616v2.214q0 .294.018.469.019.174.037.257h-.845a3 3 0 0 1-.037-.221 6 6 0 0 1-.01-.376 1.51 1.51 0 0 1-.487.487 1.5 1.5 0 0 1-.412.174 1.7 1.7 0 0 1-.524.074q-.34 0-.616-.111a1.6 1.6 0 0 1-.46-.284 1.4 1.4 0 0 1-.302-.423 1.3 1.3 0 0 1-.101-.505m1.598.597q.267 0 .496-.065.24-.073.405-.22.174-.156.275-.404.102-.258.101-.616v-.202l-1.35.202a.9.9 0 0 0-.46.212q-.183.156-.183.45 0 .248.193.45.192.192.523.193m4.644-3.831h.955v.78h-.955v2.297q0 .304.138.46.136.147.477.147.083 0 .184-.009a1 1 0 0 0 .156-.028v.735a2 2 0 0 1-.211.046q-.156.037-.377.037-.57 0-.9-.322-.33-.33-.33-.937v-2.425h-.846v-.781h.239q.358 0 .514-.193a.72.72 0 0 0 .166-.487v-.717h.79zm5.04 1.755a1.2 1.2 0 0 0-.322-.8q-.303-.33-.891-.33a1.18 1.18 0 0 0-1.103.716 1.1 1.1 0 0 0-.101.414zm.872 1.405q-.092.294-.275.551a1.96 1.96 0 0 1-1.002.735q-.321.111-.707.111-.441 0-.845-.157a2.1 2.1 0 0 1-.717-.459 2.3 2.3 0 0 1-.487-.744 2.7 2.7 0 0 1-.174-1.002 2.46 2.46 0 0 1 .634-1.68q.294-.313.679-.478.386-.175.8-.175.505 0 .9.175.404.165.671.468.266.303.404.735.147.423.147.937 0 .082-.009.156a1 1 0 0 1-.009.12h-3.326q.01.294.11.542t.276.432q.183.174.422.275.248.092.524.092.542 0 .827-.257a1.5 1.5 0 0 0 .413-.634zm3.427 1.259v-4.42h.827v.589q.212-.368.579-.542.377-.175.762-.175.414 0 .772.202.368.202.551.634.266-.477.662-.652.395-.184.817-.184.285 0 .561.101.275.102.487.313.22.202.349.523.128.313.128.744v2.867h-.854v-2.775q0-.431-.23-.716-.22-.294-.707-.294a.95.95 0 0 0-.744.321q-.276.313-.276.79v2.674h-.863v-2.775q0-.431-.221-.716-.22-.294-.717-.294-.468 0-.753.312-.276.312-.276.809v2.664zm7.602-1.185a1.28 1.28 0 0 1 .376-.928q.184-.166.432-.267.248-.1.533-.147l1.194-.174q.203-.028.267-.12a.33.33 0 0 0 .073-.211.75.75 0 0 0-.229-.551q-.22-.24-.726-.24-.459 0-.708.258a1.05 1.05 0 0 0-.294.634l-.826-.193q.036-.312.183-.579.156-.266.395-.45.24-.192.552-.294.322-.11.679-.11.496 0 .846.138.348.128.569.349t.322.514q.1.294.101.616v2.214q0 .294.018.469.019.174.037.257h-.845a2 2 0 0 1-.037-.221 6 6 0 0 1-.009-.376 1.535 1.535 0 0 1-.487.487 1.5 1.5 0 0 1-.414.174 1.7 1.7 0 0 1-.523.074q-.34 0-.616-.111a1.6 1.6 0 0 1-.459-.284 1.4 1.4 0 0 1-.303-.423 1.3 1.3 0 0 1-.101-.505m1.598.597q.267 0 .496-.065.24-.073.405-.22.174-.156.275-.404.101-.258.101-.616v-.202l-1.35.202a.9.9 0 0 0-.46.212q-.183.156-.183.45 0 .248.193.45.192.192.523.193m6.309.055a1.13 1.13 0 0 1-.551.514 1.9 1.9 0 0 1-.754.157q-.386 0-.698-.138a1.5 1.5 0 0 1-.515-.377 1.8 1.8 0 0 1-.33-.56 2.1 2.1 0 0 1-.11-.699v-2.783h.863v2.655q0 .23.055.441.055.202.175.358.119.156.303.248.194.092.468.092.525 0 .781-.312.267-.313.267-.818v-2.664h.863v3.601q0 .267.01.487a6 6 0 0 0 .036.331h-.827a1.4 1.4 0 0 1-.027-.23 6 6 0 0 1-.009-.303m4.744-3.013a3 3 0 0 0-.377-.028q-.542 0-.882.322-.33.312-.33 1.038v2.214h-.864v-4.42h.845v.773q.12-.258.276-.414.165-.165.34-.257.175-.101.358-.138.184-.037.349-.037a1.4 1.4 0 0 1 .285.028zm.92 3.546v-4.42h.855v4.42zm-.193-6.091a.6.6 0 0 1 .175-.441.6.6 0 0 1 .441-.184q.267 0 .441.184a.58.58 0 0 1 .184.44.6.6 0 0 1-.184.442.6.6 0 0 1-.441.174.62.62 0 0 1-.441-.174.62.62 0 0 1-.175-.441m2.885 4.667a.94.94 0 0 0 .303.588q.257.239.726.239.367 0 .56-.175a.54.54 0 0 0 .193-.413.5.5 0 0 0-.147-.359.86.86 0 0 0-.423-.211l-.753-.165q-.524-.111-.818-.441a1.18 1.18 0 0 1-.285-.8q0-.285.12-.532a1.53 1.53 0 0 1 .836-.754q.294-.11.615-.11.451 0 .754.129.312.127.505.321.194.184.285.386.1.202.138.35l-.763.284a2 2 0 0 0-.064-.211.8.8 0 0 0-.423-.441 1 1 0 0 0-.432-.083q-.33 0-.532.184a.52.52 0 0 0-.202.404q0 .422.505.533l.716.156q.607.129.91.478.312.34.312.836 0 .238-.101.477-.1.24-.303.441a1.4 1.4 0 0 1-.496.322 1.8 1.8 0 0 1-.717.129q-.459 0-.79-.129a1.9 1.9 0 0 1-.542-.322 1.6 1.6 0 0 1-.331-.413 1.5 1.5 0 0 1-.137-.423zm6.946 1.424h-.863v-4.42h.845v.635q.238-.414.606-.588a1.74 1.74 0 0 1 .754-.175q.395 0 .689.138.303.129.496.367.202.23.294.552.1.321.101.689v2.802h-.864v-2.655q0-.23-.055-.432a.8.8 0 0 0-.174-.35.76.76 0 0 0-.322-.238 1.1 1.1 0 0 0-.478-.092.96.96 0 0 0-.45.101.9.9 0 0 0-.321.257q-.129.165-.193.386a1.7 1.7 0 0 0-.065.469zm7.272-2.664a1.2 1.2 0 0 0-.321-.8q-.304-.33-.892-.33a1.18 1.18 0 0 0-.863.358 1.3 1.3 0 0 0-.239.358 1.1 1.1 0 0 0-.101.414zm.873 1.405q-.091.294-.276.551-.174.249-.431.441a2 2 0 0 1-.57.294q-.321.111-.707.111-.441 0-.846-.157a2.1 2.1 0 0 1-.716-.459 2.3 2.3 0 0 1-.487-.744 2.7 2.7 0 0 1-.175-1.002q0-.523.175-.946.174-.432.459-.735a2 2 0 0 1 .68-.477 1.9 1.9 0 0 1 .799-.175q.505 0 .901.175.404.165.67.468.267.303.404.735.147.423.147.937 0 .082-.009.156a1 1 0 0 1-.009.12h-3.326q.01.294.111.542.1.248.275.432.185.174.423.275a1.5 1.5 0 0 0 .524.092q.541 0 .826-.257.285-.258.414-.634zm2.287-3.16h.956v.78h-.956v2.297q0 .304.138.46.138.147.478.147.082 0 .184-.009a1 1 0 0 0 .156-.028v.735a2 2 0 0 1-.211.046q-.157.037-.377.037-.57 0-.9-.322-.331-.33-.331-.937v-2.425h-.845v-.781h.239q.357 0 .514-.193a.72.72 0 0 0 .165-.487v-.717h.79zm5.021 3.886a1.13 1.13 0 0 1-.551.514 1.9 1.9 0 0 1-.754.157q-.386 0-.698-.138a1.5 1.5 0 0 1-.514-.377 1.8 1.8 0 0 1-.331-.56 2.1 2.1 0 0 1-.11-.699v-2.783h.863v2.655q0 .23.055.441.055.202.175.358t.303.248q.193.092.469.092.523 0 .781-.312.266-.313.266-.818v-2.664h.864v3.601q0 .267.009.487a6 6 0 0 0 .036.331h-.826a1.3 1.3 0 0 1-.028-.23 6 6 0 0 1-.009-.303m2.659-.891a.94.94 0 0 0 .303.588q.256.239.726.239.367 0 .56-.175a.54.54 0 0 0 .193-.413.5.5 0 0 0-.147-.359.86.86 0 0 0-.423-.211l-.753-.165q-.524-.111-.818-.441a1.2 1.2 0 0 1-.284-.8q0-.285.119-.532a1.53 1.53 0 0 1 .836-.754q.294-.11.616-.11.45 0 .753.129.313.127.505.321.194.184.285.386.1.202.138.35l-.763.284a2 2 0 0 0-.064-.211.8.8 0 0 0-.423-.441 1 1 0 0 0-.431-.083q-.332 0-.533.184a.52.52 0 0 0-.202.404q0 .422.505.533l.716.156q.607.129.91.478.312.34.312.836 0 .238-.101.477-.1.24-.303.441a1.4 1.4 0 0 1-.496.322 1.8 1.8 0 0 1-.717.129q-.459 0-.79-.129a1.9 1.9 0 0 1-.542-.322 1.6 1.6 0 0 1-.33-.413 1.4 1.4 0 0 1-.138-.423zm8.995.891a1.12 1.12 0 0 1-.551.514 1.9 1.9 0 0 1-.753.157q-.386 0-.699-.138a1.5 1.5 0 0 1-.514-.377 1.8 1.8 0 0 1-.331-.56 2.2 2.2 0 0 1-.11-.699v-2.783h.864v2.655q0 .23.055.441.055.202.174.358.12.156.303.248.193.092.469.092.523 0 .781-.312.266-.313.266-.818v-2.664h.864v3.601q0 .267.009.487.018.211.037.331h-.827a1.4 1.4 0 0 1-.028-.23 6 6 0 0 1-.009-.303m3.449-3.886h.956v.78h-.956v2.297q0 .304.138.46.138.147.478.147.083 0 .183-.009a1 1 0 0 0 .157-.028v.735a2 2 0 0 1-.212.046 1.7 1.7 0 0 1-.376.037q-.57 0-.901-.322-.33-.33-.331-.937v-2.425h-.845v-.781h.239q.358 0 .515-.193a.72.72 0 0 0 .165-.487v-.717h.79zm2.016 3.831q0-.267.184-.45a.6.6 0 0 1 .45-.193q.267 0 .45.193a.6.6 0 0 1 .193.45.6.6 0 0 1-.193.45.61.61 0 0 1-.45.184.62.62 0 0 1-.45-.184.62.62 0 0 1-.184-.45m7.279-.212q.45 0 .855-.146.404-.157.707-.46a2.1 2.1 0 0 0 .478-.762q.174-.46.174-1.075t-.174-1.075a2.1 2.1 0 0 0-.478-.772 1.9 1.9 0 0 0-.698-.468 2.3 2.3 0 0 0-.845-.157h-1.351v4.915zm-2.232.8v-6.514h2.278q.617 0 1.176.211.57.212.992.625t.671 1.03q.257.605.257 1.405t-.257 1.405a2.9 2.9 0 0 1-.68 1.02q-.432.405-1.001.616a3.5 3.5 0 0 1-1.176.202zm8.413-.634q.275 0 .523-.101.249-.102.441-.303.194-.202.303-.496a1.9 1.9 0 0 0 .111-.68q0-.386-.111-.671a1.4 1.4 0 0 0-.303-.496 1.25 1.25 0 0 0-.441-.303 1.4 1.4 0 0 0-.523-.101q-.276 0-.524.1a1.3 1.3 0 0 0-.441.304q-.193.202-.303.496-.11.285-.11.671t.11.68.303.496.441.303q.248.1.524.101m0-3.923q.496 0 .909.184.414.174.717.487.303.312.468.744.166.423.166.928t-.166.937a2.2 2.2 0 0 1-.468.744 2.3 2.3 0 0 1-.717.496 2.3 2.3 0 0 1-.909.175q-.496 0-.91-.175a2.3 2.3 0 0 1-.716-.496 2.15 2.15 0 0 1-.469-.744q-.165-.432-.165-.937t.165-.928a2.15 2.15 0 0 1 1.185-1.231q.414-.184.91-.184m4.228 4.557h-.863v-4.42h.845v.635q.238-.414.606-.588.368-.175.753-.175.396 0 .689.138.304.129.497.367.201.23.294.552.1.321.101.689v2.802h-.864v-2.655q0-.23-.055-.432a.8.8 0 0 0-.175-.35.75.75 0 0 0-.321-.238 1.1 1.1 0 0 0-.478-.092.96.96 0 0 0-.45.101.9.9 0 0 0-.322.257q-.128.165-.193.386a1.7 1.7 0 0 0-.064.469zm7.272-2.664a1.2 1.2 0 0 0-.322-.8q-.303-.33-.891-.33a1.18 1.18 0 0 0-1.102.716 1.1 1.1 0 0 0-.101.414zm.873 1.405q-.092.294-.276.551a1.9 1.9 0 0 1-.432.441 2 2 0 0 1-.569.294 2.2 2.2 0 0 1-.708.111q-.44 0-.845-.157a2.1 2.1 0 0 1-.717-.459 2.3 2.3 0 0 1-.486-.744 2.7 2.7 0 0 1-.175-1.002q0-.523.175-.946.174-.432.459-.735a2 2 0 0 1 .68-.477q.385-.175.799-.175.505 0 .9.175.405.165.671.468.267.303.404.735.147.423.147.937 0 .082-.009.156a1 1 0 0 1-.009.12h-3.326q.01.294.11.542a1.4 1.4 0 0 0 .276.432q.183.174.423.275a1.5 1.5 0 0 0 .523.092q.542 0 .827-.257.285-.258.414-.634zm2.985-2.499q-.266 0-.505.101a1.2 1.2 0 0 0-.432.285q-.183.193-.294.487-.11.285-.11.671 0 .376.11.67.111.285.294.487.185.194.432.294.248.102.515.101a1.3 1.3 0 0 0 .523-.092q.22-.091.359-.229.147-.138.229-.294a2 2 0 0 0 .12-.294l.762.331a2.4 2.4 0 0 1-.239.486q-.156.24-.404.441a2 2 0 0 1-.588.322q-.33.129-.762.129-.487 0-.901-.175a2.2 2.2 0 0 1-.698-.496 2.5 2.5 0 0 1-.469-.744q-.165-.432-.165-.937 0-.515.165-.947a2.182 2.182 0 0 1 1.176-1.221q.414-.175.882-.175.442 0 .772.129a1.8 1.8 0 0 1 .974.78q.147.249.22.497l-.78.33a2 2 0 0 0-.129-.33 1 1 0 0 0-.23-.294 1.17 1.17 0 0 0-.827-.312m8.418 5.503v-2.37a1.3 1.3 0 0 1-.533.542q-.348.202-.845.202-.477 0-.863-.184a2 2 0 0 1-.662-.505 2.3 2.3 0 0 1-.422-.744 2.8 2.8 0 0 1-.147-.91q0-.468.137-.881.147-.423.414-.735.266-.322.652-.506.386-.183.873-.183.285 0 .514.073.23.064.405.175.183.11.303.257a1.4 1.4 0 0 1 .193.285v-.68h.836v6.164zm-2.591-3.969q0 .34.092.634.092.285.258.497.174.21.413.33t.533.12.533-.12.413-.33q.175-.212.267-.497.091-.294.091-.634 0-.339-.091-.624a1.4 1.4 0 0 0-.267-.487 1.2 1.2 0 0 0-.413-.312q-.24-.12-.533-.12-.606 0-.956.432-.34.423-.34 1.111m7.737 1.691a1.13 1.13 0 0 1-.552.514 1.9 1.9 0 0 1-.753.157q-.386 0-.698-.138a1.5 1.5 0 0 1-.515-.377 1.8 1.8 0 0 1-.33-.56 2.1 2.1 0 0 1-.111-.699v-2.783h.864v2.655q0 .23.055.441.055.202.175.358.119.156.303.248.193.092.468.092.524 0 .781-.312.267-.313.267-.818v-2.664h.863v3.601q0 .267.009.487.02.211.037.331h-.827a1.4 1.4 0 0 1-.027-.23 6 6 0 0 1-.009-.303m2.291.533v-4.42h.854v4.42zm-.193-6.091q0-.267.174-.441a.6.6 0 0 1 .441-.184q.267 0 .441.184a.58.58 0 0 1 .184.44.6.6 0 0 1-.184.442.6.6 0 0 1-.441.174.62.62 0 0 1-.441-.174.62.62 0 0 1-.174-.441m2.884 4.667a.95.95 0 0 0 .303.588q.258.239.726.239.368 0 .56-.175a.54.54 0 0 0 .193-.413.5.5 0 0 0-.147-.359.86.86 0 0 0-.422-.211l-.754-.165q-.523-.111-.817-.441a1.18 1.18 0 0 1-.285-.8q0-.285.119-.532a1.53 1.53 0 0 1 .836-.754q.294-.11.616-.11.45 0 .753.129.312.127.506.321.192.184.284.386a1.7 1.7 0 0 1 .138.35l-.762.284a2 2 0 0 0-.065-.211.7.7 0 0 0-.147-.24.8.8 0 0 0-.275-.201 1 1 0 0 0-.432-.083q-.331 0-.533.184a.52.52 0 0 0-.202.404q0 .422.505.533l.717.156q.606.129.909.478.313.34.313.836 0 .238-.101.477a1.4 1.4 0 0 1-.304.441 1.4 1.4 0 0 1-.496.322 1.8 1.8 0 0 1-.716.129q-.46 0-.79-.129a1.9 1.9 0 0 1-.542-.322 1.6 1.6 0 0 1-.331-.413 1.4 1.4 0 0 1-.138-.423zm6.083 1.424v-4.42h.827v.589q.211-.368.579-.542.376-.175.762-.175.414 0 .772.202.368.202.551.634.267-.477.662-.652.395-.184.817-.184.285 0 .561.101t.487.313q.22.202.349.523.129.313.128.744v2.867h-.854v-2.775q0-.431-.23-.716-.22-.294-.707-.294a.95.95 0 0 0-.744.321q-.276.313-.276.79v2.674h-.863v-2.775q0-.431-.221-.716-.22-.294-.716-.294-.47 0-.754.312-.275.312-.275.809v2.664zm7.602-1.185a1.28 1.28 0 0 1 .376-.928q.184-.166.432-.267.248-.1.533-.147l1.194-.174q.202-.028.267-.12a.33.33 0 0 0 .073-.211.75.75 0 0 0-.229-.551q-.22-.24-.726-.24-.459 0-.708.258a1.05 1.05 0 0 0-.294.634l-.826-.193q.036-.312.183-.579.156-.266.395-.45.24-.192.552-.294.321-.11.679-.11.496 0 .846.138.348.128.569.349t.322.514q.1.294.101.616v2.214q0 .294.018.469.02.174.037.257h-.845a3 3 0 0 1-.037-.221 6 6 0 0 1-.009-.376 1.535 1.535 0 0 1-.487.487 1.5 1.5 0 0 1-.413.174 1.7 1.7 0 0 1-.524.074q-.34 0-.616-.111a1.6 1.6 0 0 1-.459-.284 1.4 1.4 0 0 1-.303-.423 1.3 1.3 0 0 1-.101-.505m1.598.597q.267 0 .496-.065.24-.073.405-.22.174-.156.275-.404.101-.258.101-.616v-.202l-1.35.202a.9.9 0 0 0-.46.212q-.183.156-.183.45 0 .248.193.45.192.192.523.193m6.309.055a1.13 1.13 0 0 1-.551.514 1.9 1.9 0 0 1-.754.157q-.386 0-.698-.138a1.5 1.5 0 0 1-.514-.377 1.8 1.8 0 0 1-.331-.56 2.1 2.1 0 0 1-.11-.699v-2.783h.863v2.655q0 .23.055.441.055.202.175.358a.86.86 0 0 0 .303.248q.193.092.469.092.523 0 .78-.312.267-.313.267-.818v-2.664h.863v3.601q0 .267.01.487a6 6 0 0 0 .036.331h-.826a1.3 1.3 0 0 1-.028-.23 6 6 0 0 1-.009-.303m4.744-3.013a3 3 0 0 0-.377-.028q-.541 0-.882.322-.33.312-.33 1.038v2.214h-.864v-4.42h.845v.773q.12-.258.276-.414.166-.165.34-.257.174-.101.358-.138t.349-.037a1.4 1.4 0 0 1 .285.028zm.921 3.546v-4.42h.854v4.42zm-.193-6.091q0-.267.174-.441a.6.6 0 0 1 .441-.184q.267 0 .441.184a.58.58 0 0 1 .184.44.6.6 0 0 1-.184.442.6.6 0 0 1-.441.174.62.62 0 0 1-.441-.174.62.62 0 0 1-.174-.441m2.884 4.667a.94.94 0 0 0 .303.588q.257.239.726.239.367 0 .56-.175a.54.54 0 0 0 .193-.413.5.5 0 0 0-.147-.359.86.86 0 0 0-.423-.211l-.753-.165q-.524-.111-.818-.441a1.2 1.2 0 0 1-.284-.8q0-.285.119-.532a1.53 1.53 0 0 1 .836-.754q.294-.11.616-.11.45 0 .753.129.313.127.505.321.193.184.285.386.1.202.138.35l-.763.284a2 2 0 0 0-.064-.211.8.8 0 0 0-.423-.441 1 1 0 0 0-.431-.083q-.332 0-.533.184a.52.52 0 0 0-.202.404q0 .422.505.533l.716.156q.607.129.91.478.312.34.312.836 0 .238-.101.477-.1.24-.303.441a1.4 1.4 0 0 1-.496.322 1.8 1.8 0 0 1-.717.129q-.459 0-.79-.129a1.9 1.9 0 0 1-.542-.322 1.6 1.6 0 0 1-.33-.413 1.4 1.4 0 0 1-.138-.423zM55.345 117.297v-4.419h.827v.588q.21-.368.579-.542.376-.175.762-.175.414 0 .772.202.368.202.551.634.267-.477.662-.652a1.9 1.9 0 0 1 .817-.184q.285 0 .56.101t.488.313q.22.201.349.523.128.313.128.744v2.867h-.854v-2.775q0-.431-.23-.716-.22-.294-.707-.294a.95.95 0 0 0-.744.321q-.276.313-.276.79v2.674h-.864v-2.775q0-.431-.22-.716-.22-.294-.717-.294-.468 0-.753.312-.276.312-.276.809v2.664zm7.602-1.185q0-.294.1-.524.102-.239.276-.404.184-.166.432-.267.248-.1.533-.147l1.194-.174q.203-.028.267-.12a.33.33 0 0 0 .073-.211.75.75 0 0 0-.23-.551q-.22-.239-.725-.239-.459 0-.708.257a1.04 1.04 0 0 0-.294.634l-.827-.193a1.6 1.6 0 0 1 .184-.579q.156-.266.395-.45.24-.192.551-.294.322-.11.68-.11.496 0 .846.138.348.129.57.349.22.22.32.514.102.294.102.616v2.214q0 .294.018.469.019.174.037.257h-.845a3 3 0 0 1-.037-.221 6 6 0 0 1-.01-.376 1.51 1.51 0 0 1-.487.487 1.5 1.5 0 0 1-.413.174 1.7 1.7 0 0 1-.523.074q-.34 0-.616-.111a1.6 1.6 0 0 1-.46-.284 1.4 1.4 0 0 1-.302-.423 1.3 1.3 0 0 1-.101-.505m1.598.597q.267 0 .496-.065.24-.073.404-.22.176-.156.276-.404.1-.258.101-.616v-.202l-1.35.202a.9.9 0 0 0-.46.212q-.183.156-.183.45 0 .248.193.45.192.192.523.193m3.486.588v-6.652h.864v6.652zm5.31-2.664a1.2 1.2 0 0 0-.322-.8q-.304-.33-.891-.33a1.17 1.17 0 0 0-.864.358 1.3 1.3 0 0 0-.239.358 1.1 1.1 0 0 0-.1.414zm.872 1.405q-.092.294-.275.551-.175.249-.432.441a2 2 0 0 1-.57.294q-.321.111-.707.111-.441 0-.846-.157a2.1 2.1 0 0 1-.716-.459 2.3 2.3 0 0 1-.487-.744 2.7 2.7 0 0 1-.175-1.002 2.46 2.46 0 0 1 .634-1.681q.294-.312.68-.477a1.9 1.9 0 0 1 .8-.175q.504 0 .9.175.405.165.67.468.267.303.405.735.147.423.147.937 0 .082-.01.156a.6.6 0 0 1-.009.12h-3.325q.008.294.11.542.101.248.275.432.184.174.423.275a1.5 1.5 0 0 0 .524.092q.542 0 .827-.257a1.5 1.5 0 0 0 .413-.634zm1.498-.165q.045.35.303.588.257.239.726.239.367 0 .56-.175a.54.54 0 0 0 .193-.413.5.5 0 0 0-.147-.359.86.86 0 0 0-.423-.211l-.753-.165q-.525-.111-.818-.441a1.19 1.19 0 0 1-.285-.8q0-.284.12-.532a1.53 1.53 0 0 1 .836-.754 1.8 1.8 0 0 1 .615-.11q.45 0 .754.129.312.128.505.321.194.184.285.386.1.202.138.349l-.763.285a2 2 0 0 0-.064-.211.7.7 0 0 0-.147-.239.8.8 0 0 0-.276-.202 1 1 0 0 0-.432-.083q-.33 0-.532.184a.52.52 0 0 0-.203.404q0 .422.506.533l.716.156q.607.129.91.478.312.34.312.836 0 .238-.1.477-.102.24-.304.441a1.4 1.4 0 0 1-.496.322 1.8 1.8 0 0 1-.717.129q-.46 0-.79-.129a1.9 1.9 0 0 1-.542-.322 1.6 1.6 0 0 1-.33-.413 1.5 1.5 0 0 1-.138-.423zm6.653.891a1.12 1.12 0 0 1-.55.514 1.9 1.9 0 0 1-.754.157 1.7 1.7 0 0 1-.698-.138 1.5 1.5 0 0 1-.515-.377 1.8 1.8 0 0 1-.33-.56 2.1 2.1 0 0 1-.11-.699v-2.783h.863v2.655q0 .23.055.441.056.202.174.358.12.156.304.248.192.092.468.092.525 0 .781-.312.266-.313.266-.818v-2.664h.864v3.601q0 .267.01.487.018.211.036.331h-.827a1.4 1.4 0 0 1-.027-.23 6 6 0 0 1-.01-.303m2.016-.652q0-.294.101-.524.102-.239.276-.404.183-.166.432-.267.248-.1.532-.147l1.195-.174q.202-.028.266-.12a.33.33 0 0 0 .074-.211.75.75 0 0 0-.23-.551q-.22-.239-.726-.239-.46 0-.707.257a1.04 1.04 0 0 0-.294.634l-.827-.193a1.6 1.6 0 0 1 .184-.579q.155-.266.395-.45.239-.192.551-.294.321-.11.68-.11.495 0 .845.138.35.129.57.349t.321.514.101.616v2.214q0 .294.019.469.018.174.036.257h-.845a3 3 0 0 1-.037-.221 6 6 0 0 1-.009-.376 1.51 1.51 0 0 1-.487.487 1.5 1.5 0 0 1-.413.174 1.7 1.7 0 0 1-.524.074q-.34 0-.615-.111a1.6 1.6 0 0 1-.46-.284 1.4 1.4 0 0 1-.303-.423 1.3 1.3 0 0 1-.1-.505m1.599.597q.266 0 .496-.065.239-.073.404-.22.174-.156.276-.404.1-.258.1-.616v-.202l-1.35.202a.9.9 0 0 0-.46.212q-.183.156-.183.45 0 .248.193.45.193.192.524.193m4-1.636q0 .34.083.634.092.285.257.497.165.21.404.33t.551.12q.294 0 .533-.12.24-.129.404-.34t.249-.505q.09-.294.091-.634 0-.689-.34-1.112-.33-.422-.927-.422-.294 0-.542.119a1.2 1.2 0 0 0-.414.322q-.165.202-.257.487t-.092.624m2.582 1.553a1.46 1.46 0 0 1-.506.561q-.34.23-.863.229a2.1 2.1 0 0 1-.873-.174 2.1 2.1 0 0 1-.662-.496 2.4 2.4 0 0 1-.413-.745 2.9 2.9 0 0 1-.147-.928q0-.468.147-.881a2.3 2.3 0 0 1 .432-.735q.276-.322.661-.506.386-.192.855-.193.294 0 .514.065.23.065.395.174.165.102.276.239a1 1 0 0 1 .165.267v-2.858h.855v5.834a7 7 0 0 0 .046.818h-.836a2 2 0 0 1-.037-.23 7 7 0 0 1-.01-.367zm2.029-.514q0-.294.101-.524.101-.239.276-.404.183-.166.431-.267.249-.1.533-.147l1.195-.174q.201-.028.266-.12a.33.33 0 0 0 .074-.211.75.75 0 0 0-.23-.551q-.221-.239-.726-.239-.46 0-.707.257a1.04 1.04 0 0 0-.294.634l-.827-.193a1.6 1.6 0 0 1 .184-.579q.155-.266.395-.45.239-.192.55-.294.323-.11.68-.11.497 0 .846.138.349.129.57.349t.321.514.101.616v2.214q0 .294.019.469.018.174.036.257h-.845a3 3 0 0 1-.037-.221 6 6 0 0 1-.009-.376 1.516 1.516 0 0 1-.487.487 1.5 1.5 0 0 1-.413.174 1.7 1.7 0 0 1-.524.074q-.34 0-.615-.111a1.6 1.6 0 0 1-.46-.284 1.4 1.4 0 0 1-.303-.423 1.3 1.3 0 0 1-.101-.505m1.599.597q.266 0 .496-.065.239-.073.404-.22.174-.156.276-.404.1-.258.1-.616v-.202l-1.35.202a.9.9 0 0 0-.46.212q-.183.156-.183.45 0 .248.193.45.192.192.523.193m7.803.588h-.872l-1.792-4.419h.974l1.259 3.408 1.267-3.408h.928zm5.433-2.664a1.2 1.2 0 0 0-.322-.8q-.303-.33-.891-.33a1.17 1.17 0 0 0-.864.358 1.3 1.3 0 0 0-.238.358 1.1 1.1 0 0 0-.101.414zm.872 1.405q-.092.294-.275.551a1.9 1.9 0 0 1-.432.441 2 2 0 0 1-.57.294q-.321.111-.707.111-.441 0-.845-.157a2.1 2.1 0 0 1-.717-.459 2.3 2.3 0 0 1-.487-.744 2.7 2.7 0 0 1-.174-1.002q0-.523.174-.946a2.4 2.4 0 0 1 .46-.735q.293-.312.68-.477.385-.175.799-.175.505 0 .9.175.404.165.671.468.266.303.404.735.147.423.147.937 0 .082-.009.156a1 1 0 0 1-.009.12h-3.326q.01.294.11.542.101.248.276.432.183.174.422.275.249.092.524.092.542 0 .827-.257a1.5 1.5 0 0 0 .413-.634zm1.498-.165a.95.95 0 0 0 .303.588q.257.239.726.239.368 0 .56-.175a.54.54 0 0 0 .193-.413.5.5 0 0 0-.147-.359.86.86 0 0 0-.422-.211l-.754-.165q-.523-.111-.817-.441a1.18 1.18 0 0 1-.285-.8q0-.284.119-.532a1.54 1.54 0 0 1 .836-.754 1.8 1.8 0 0 1 .616-.11q.45 0 .753.129.313.128.505.321.194.184.285.386.102.202.138.349l-.762.285a2 2 0 0 0-.065-.211.7.7 0 0 0-.147-.239.8.8 0 0 0-.275-.202 1 1 0 0 0-.432-.083q-.331 0-.533.184a.52.52 0 0 0-.202.404q0 .422.505.533l.717.156q.606.129.909.478.313.34.313.836 0 .238-.101.477a1.4 1.4 0 0 1-.304.441 1.4 1.4 0 0 1-.496.322 1.8 1.8 0 0 1-.716.129q-.46 0-.79-.129a1.9 1.9 0 0 1-.542-.322 1.6 1.6 0 0 1-.331-.413 1.4 1.4 0 0 1-.138-.423zm4.944-2.995h.955v.781h-.955v2.296q0 .304.138.46.138.147.477.147.084 0 .184-.009a1 1 0 0 0 .156-.028v.735a2 2 0 0 1-.211.046q-.156.037-.377.037-.569 0-.9-.322-.33-.33-.331-.937v-2.425h-.845v-.781h.239q.358 0 .514-.193a.72.72 0 0 0 .166-.487v-.717h.79zm2.108 4.419v-4.419h.854v4.419zm-.193-6.091q0-.267.175-.441a.6.6 0 0 1 .441-.184q.266 0 .441.184a.58.58 0 0 1 .183.441.6.6 0 0 1-.183.441.6.6 0 0 1-.441.174.62.62 0 0 1-.441-.174.62.62 0 0 1-.175-.441m2.517 6.091v-6.652h.854v2.858q.156-.294.533-.524.376-.23.928-.23.506 0 .882.184.376.175.634.496.257.312.386.735.128.423.128.9 0 .496-.138.928-.137.423-.404.744a1.8 1.8 0 0 1-.643.496 1.96 1.96 0 0 1-.873.184q-.495 0-.863-.202a1.5 1.5 0 0 1-.57-.56v.643zm3.463-2.233q0-.716-.349-1.13-.35-.422-.955-.422-.285 0-.533.11a1.2 1.2 0 0 0-.414.312 1.4 1.4 0 0 0-.275.487q-.092.285-.092.643t.092.653a1.6 1.6 0 0 0 .275.505 1.21 1.21 0 0 0 .947.422q.597 0 .946-.431.358-.432.358-1.149m4.85 1.7a1.12 1.12 0 0 1-.551.514 1.9 1.9 0 0 1-.754.157q-.386 0-.698-.138a1.5 1.5 0 0 1-.514-.377 1.8 1.8 0 0 1-.331-.56 2.2 2.2 0 0 1-.11-.699v-2.783h.863v2.655q0 .23.056.441.054.202.174.358t.303.248q.193.092.469.092.523 0 .781-.312.266-.313.266-.818v-2.664h.864v3.601q0 .267.009.487.018.211.037.331h-.827a1.4 1.4 0 0 1-.028-.23 6 6 0 0 1-.009-.303m2.291.533v-6.652h.864v6.652zm5.2-.533a1.12 1.12 0 0 1-.551.514 1.9 1.9 0 0 1-.753.157q-.386 0-.698-.138a1.5 1.5 0 0 1-.515-.377 1.8 1.8 0 0 1-.331-.56 2.2 2.2 0 0 1-.11-.699v-2.783h.864v2.655q0 .23.055.441.056.202.174.358a.86.86 0 0 0 .304.248q.192.092.468.092.524 0 .781-.312.267-.313.267-.818v-2.664h.863v3.601q0 .267.009.487.02.211.037.331h-.827a1.4 1.4 0 0 1-.027-.23 6 6 0 0 1-.01-.303m2.292.533v-4.419h.827v.588q.21-.368.578-.542.377-.175.763-.175.414 0 .772.202.367.202.551.634.266-.477.661-.652.395-.184.818-.184.285 0 .56.101t.487.313q.221.201.349.523.129.313.129.744v2.867h-.854v-2.775q0-.431-.23-.716-.22-.294-.707-.294a.95.95 0 0 0-.745.321q-.275.313-.275.79v2.674h-.864v-2.775q0-.431-.22-.716-.22-.294-.717-.294-.468 0-.753.312-.276.312-.276.809v2.664zm11.331-4.419h.956v.781h-.956v2.296q0 .304.138.46.138.147.478.147.082 0 .184-.009a1 1 0 0 0 .156-.028v.735a2 2 0 0 1-.212.046 1.7 1.7 0 0 1-.376.037q-.57 0-.901-.322-.33-.33-.33-.937v-2.425h-.846v-.781h.239q.359 0 .515-.193a.72.72 0 0 0 .165-.487v-.717h.79zm5.04 1.755a1.2 1.2 0 0 0-.321-.8q-.303-.33-.892-.33a1.17 1.17 0 0 0-.863.358 1.3 1.3 0 0 0-.239.358 1.1 1.1 0 0 0-.101.414zm.873 1.405q-.091.294-.276.551-.174.249-.431.441a2 2 0 0 1-.57.294q-.321.111-.707.111-.441 0-.846-.157a2.1 2.1 0 0 1-.716-.459 2.3 2.3 0 0 1-.487-.744 2.7 2.7 0 0 1-.175-1.002q0-.523.175-.946a2.3 2.3 0 0 1 .459-.735q.294-.312.68-.477a1.9 1.9 0 0 1 .799-.175q.505 0 .901.175.404.165.67.468.267.303.405.735.147.423.147.937 0 .082-.01.156a1 1 0 0 1-.009.12h-3.326q.01.294.111.542.1.248.275.432.184.174.423.275a1.5 1.5 0 0 0 .524.092q.542 0 .826-.257.285-.258.414-.634zm1.13 1.259v-4.419h.827v.588a1.3 1.3 0 0 1 .579-.542q.376-.175.762-.175.414 0 .772.202.367.202.551.634.267-.477.661-.652.395-.184.818-.184.285 0 .561.101.275.102.486.313.22.201.35.523.128.313.128.744v2.867h-.854v-2.775q0-.431-.23-.716-.22-.294-.707-.294a.95.95 0 0 0-.744.321q-.276.313-.276.79v2.674h-.864v-2.775q0-.431-.22-.716-.22-.294-.717-.294-.468 0-.753.312-.276.312-.276.809v2.664zm7.877 1.745v-6.164h.836v.689q.184-.33.561-.561.376-.23.918-.229.496 0 .873.183.386.175.634.487.257.313.386.735.138.423.138.901 0 .496-.138.918t-.404.745a2 2 0 0 1-.653.496 2 2 0 0 1-.863.174q-.514 0-.882-.211a1.54 1.54 0 0 1-.552-.505v2.342zm3.464-3.959q0-.331-.092-.607a1.5 1.5 0 0 0-.257-.487 1.19 1.19 0 0 0-.956-.45q-.294 0-.542.12-.239.12-.413.33a1.4 1.4 0 0 0-.267.487 1.9 1.9 0 0 0-.092.607q0 .34.092.634.092.284.267.496.174.202.413.321.248.11.542.11.303 0 .542-.11a1.2 1.2 0 0 0 .404-.321q.175-.212.267-.496.092-.294.092-.634m3.874 1.58q.276 0 .524-.101a1.3 1.3 0 0 0 .441-.303q.193-.202.303-.496a1.9 1.9 0 0 0 .111-.68q0-.386-.111-.671a1.4 1.4 0 0 0-.303-.496 1.25 1.25 0 0 0-.441-.303 1.4 1.4 0 0 0-.524-.101 1.4 1.4 0 0 0-.523.101 1.25 1.25 0 0 0-.441.303q-.194.202-.303.496-.111.285-.111.671t.111.68.303.496.441.303q.248.1.523.101m0-3.923q.496 0 .91.184.413.174.717.487.303.312.468.744.165.423.165.928t-.165.937a2.2 2.2 0 0 1-.468.744 2.3 2.3 0 0 1-.717.496 2.3 2.3 0 0 1-.91.175q-.495 0-.909-.175a2.3 2.3 0 0 1-.717-.496 2.2 2.2 0 0 1-.468-.744q-.166-.432-.166-.937t.166-.928a2.135 2.135 0 0 1 1.185-1.231q.414-.184.909-.184m5.818 1.011a2.6 2.6 0 0 0-.376-.028q-.543 0-.882.322-.331.312-.331 1.038v2.214h-.864v-4.419h.846v.772q.119-.258.275-.414.166-.165.34-.257.174-.101.358-.138t.35-.037a1.4 1.4 0 0 1 .284.028zm3.585 2.122a.95.95 0 0 0 .303.588q.258.239.726.239.368 0 .56-.175a.54.54 0 0 0 .193-.413.5.5 0 0 0-.147-.359.86.86 0 0 0-.422-.211l-.754-.165q-.523-.111-.817-.441a1.18 1.18 0 0 1-.285-.8q0-.284.119-.532a1.54 1.54 0 0 1 .836-.754q.294-.11.616-.11.45 0 .753.129.312.128.506.321.192.184.284.386.102.202.138.349l-.762.285a2 2 0 0 0-.065-.211.7.7 0 0 0-.147-.239.8.8 0 0 0-.275-.202 1 1 0 0 0-.432-.083q-.331 0-.533.184a.52.52 0 0 0-.202.404q0 .422.505.533l.717.156q.606.129.909.478.313.34.313.836 0 .238-.101.477a1.4 1.4 0 0 1-.304.441 1.4 1.4 0 0 1-.496.322 1.8 1.8 0 0 1-.716.129q-.46 0-.79-.129a1.9 1.9 0 0 1-.542-.322 1.6 1.6 0 0 1-.331-.413 1.4 1.4 0 0 1-.138-.423zm6.718-1.24a1.2 1.2 0 0 0-.321-.8q-.304-.33-.891-.33a1.17 1.17 0 0 0-.864.358 1.3 1.3 0 0 0-.239.358 1.1 1.1 0 0 0-.101.414zm.873 1.405q-.091.294-.276.551-.174.249-.431.441a2 2 0 0 1-.57.294q-.321.111-.707.111-.441 0-.846-.157a2.1 2.1 0 0 1-.716-.459 2.3 2.3 0 0 1-.487-.744 2.7 2.7 0 0 1-.175-1.002q0-.523.175-.946a2.3 2.3 0 0 1 .459-.735q.294-.312.68-.477a1.9 1.9 0 0 1 .799-.175q.505 0 .901.175.404.165.67.468.267.303.405.735.147.423.147.937 0 .082-.01.156a1 1 0 0 1-.009.12h-3.326q.01.294.111.542.1.248.275.432.185.174.423.275a1.5 1.5 0 0 0 .524.092q.542 0 .826-.257.285-.258.414-.634zm1.644-.965q0 .34.083.634.092.285.257.497.166.21.405.33t.551.12q.293 0 .533-.12.239-.129.404-.34t.248-.505q.092-.294.092-.634 0-.689-.34-1.112-.331-.422-.928-.422-.294 0-.542.119a1.2 1.2 0 0 0-.414.322q-.165.202-.257.487t-.092.624m2.582 1.553a1.47 1.47 0 0 1-.505.561q-.34.23-.864.229-.487 0-.873-.174a2.1 2.1 0 0 1-.661-.496 2.4 2.4 0 0 1-.414-.745 2.9 2.9 0 0 1-.147-.928q0-.468.147-.881.157-.423.432-.735.275-.322.662-.506a1.9 1.9 0 0 1 .854-.193q.294 0 .515.065.229.065.395.174.165.102.275.239a1 1 0 0 1 .166.267v-2.858h.854v5.834a7 7 0 0 0 .046.818h-.836a2 2 0 0 1-.037-.23 7 7 0 0 1-.009-.367zm5.759-3.748h.956v.781h-.956v2.296q0 .304.138.46.138.147.478.147.083 0 .183-.009a1 1 0 0 0 .157-.028v.735a2 2 0 0 1-.212.046 1.7 1.7 0 0 1-.376.037q-.57 0-.901-.322-.33-.33-.33-.937v-2.425h-.846v-.781h.239q.359 0 .515-.193a.72.72 0 0 0 .165-.487v-.717h.79zm2.108 4.419v-4.419h.855v4.419zm-.193-6.091q0-.267.175-.441a.6.6 0 0 1 .441-.184.58.58 0 0 1 .441.184.58.58 0 0 1 .184.441.6.6 0 0 1-.184.441.6.6 0 0 1-.441.174.62.62 0 0 1-.441-.174.62.62 0 0 1-.175-.441m3.381 6.091h-.864v-4.419h.845v.634q.24-.414.607-.588.368-.175.753-.175.395 0 .689.138.303.129.496.367.202.23.294.552.1.321.101.689v2.802h-.863v-2.655q0-.23-.056-.432a.8.8 0 0 0-.174-.349.76.76 0 0 0-.322-.239 1.1 1.1 0 0 0-.477-.092.96.96 0 0 0-.772.358q-.129.166-.193.386a1.7 1.7 0 0 0-.064.469zm6.151-3.758q-.267 0-.506.101a1.2 1.2 0 0 0-.431.285 1.4 1.4 0 0 0-.294.487q-.111.285-.111.671 0 .376.111.67.11.285.294.487.183.194.431.294.248.102.515.101.313 0 .523-.092.22-.091.359-.229.147-.138.229-.294.083-.165.12-.294l.762.331a2.4 2.4 0 0 1-.238.486q-.157.24-.405.441a2 2 0 0 1-.588.322q-.33.129-.762.129-.487 0-.901-.175a2.2 2.2 0 0 1-.698-.496 2.5 2.5 0 0 1-.468-.744 2.6 2.6 0 0 1-.166-.937q0-.515.166-.947.174-.43.468-.735a2.17 2.17 0 0 1 1.59-.661q.441 0 .771.129a1.8 1.8 0 0 1 .974.781q.147.247.221.496l-.781.33a2 2 0 0 0-.129-.33.9.9 0 0 0-.23-.294 1 1 0 0 0-.339-.221 1.2 1.2 0 0 0-.487-.092m3.015 3.758v-4.419h.855v4.419zm-.192-6.091q0-.267.174-.441a.6.6 0 0 1 .441-.184.58.58 0 0 1 .441.184.58.58 0 0 1 .184.441.6.6 0 0 1-.184.441.6.6 0 0 1-.441.174.62.62 0 0 1-.441-.174.62.62 0 0 1-.174-.441m3.031 3.867q0 .34.082.634.092.285.258.497.165.21.404.33t.551.12q.294 0 .533-.12.239-.129.404-.34t.248-.505q.092-.294.092-.634 0-.689-.34-1.112-.33-.422-.928-.422-.293 0-.542.119a1.2 1.2 0 0 0-.413.322q-.165.202-.257.487t-.092.624m2.581 1.553a1.46 1.46 0 0 1-.505.561q-.34.23-.864.229-.486 0-.872-.174a2.05 2.05 0 0 1-.662-.496 2.4 2.4 0 0 1-.413-.745 2.9 2.9 0 0 1-.147-.928q0-.468.147-.881a2.3 2.3 0 0 1 .431-.735q.276-.322.662-.506a1.9 1.9 0 0 1 .854-.193q.294 0 .515.065.23.065.395.174.165.102.275.239a1 1 0 0 1 .166.267v-2.858h.854v5.834a6 6 0 0 0 .046.818h-.836a2 2 0 0 1-.037-.23 7 7 0 0 1-.009-.367zm5.173.138a1.13 1.13 0 0 1-.552.514 1.9 1.9 0 0 1-.753.157q-.386 0-.698-.138a1.5 1.5 0 0 1-.515-.377 1.8 1.8 0 0 1-.33-.56 2.1 2.1 0 0 1-.111-.699v-2.783h.864v2.655q0 .23.055.441.055.202.175.358.119.156.303.248.193.092.468.092.524 0 .781-.312.267-.313.267-.818v-2.664h.863v3.601q0 .267.009.487.02.211.037.331h-.827a1.4 1.4 0 0 1-.027-.23 6 6 0 0 1-.009-.303m3.155.533h-.864v-4.419h.845v.634a1.4 1.4 0 0 1 .606-.588q.368-.175.754-.175.395 0 .689.138.303.129.496.367.202.23.294.552.1.321.101.689v2.802h-.864v-2.655q0-.23-.055-.432a.8.8 0 0 0-.174-.349.76.76 0 0 0-.322-.239 1.1 1.1 0 0 0-.478-.092.96.96 0 0 0-.45.101.9.9 0 0 0-.321.257q-.129.166-.193.386a1.7 1.7 0 0 0-.064.469zm5.452-4.419h.956v.781h-.956v2.296q0 .304.138.46.138.147.478.147.082 0 .184-.009a1 1 0 0 0 .156-.028v.735a2 2 0 0 1-.212.046 1.7 1.7 0 0 1-.376.037q-.57 0-.901-.322-.33-.33-.33-.937v-2.425h-.846v-.781h.239q.359 0 .515-.193a.72.72 0 0 0 .165-.487v-.717h.79zm4.405 6.164v-6.164h.836v.689q.184-.33.561-.561.377-.23.918-.229.496 0 .873.183.386.175.634.487.257.313.386.735.138.423.138.901 0 .496-.138.918t-.404.745a1.95 1.95 0 0 1-.653.496 2 2 0 0 1-.863.174q-.514 0-.882-.211a1.5 1.5 0 0 1-.551-.505v2.342zm3.464-3.959q0-.331-.092-.607a1.5 1.5 0 0 0-.257-.487 1.19 1.19 0 0 0-.956-.45q-.294 0-.542.12-.239.12-.413.33a1.4 1.4 0 0 0-.267.487 1.9 1.9 0 0 0-.092.607q0 .34.092.634.091.284.267.496.174.202.413.321.248.11.542.11.303 0 .542-.11a1.2 1.2 0 0 0 .404-.321 1.5 1.5 0 0 0 .267-.496q.092-.294.092-.634m4.435-1.332a3 3 0 0 0-.377-.028q-.541 0-.882.322-.33.312-.33 1.038v2.214h-.864v-4.419h.845v.772q.12-.258.276-.414.165-.165.34-.257.175-.101.358-.138.184-.037.349-.037a1.4 1.4 0 0 1 .285.028zm2.768 2.912q.276 0 .524-.101a1.3 1.3 0 0 0 .441-.303q.192-.202.303-.496t.11-.68-.11-.671a1.5 1.5 0 0 0-.303-.496 1.3 1.3 0 0 0-.441-.303 1.4 1.4 0 0 0-.524-.101q-.275 0-.524.101a1.3 1.3 0 0 0-.441.303 1.5 1.5 0 0 0-.303.496q-.11.285-.11.671t.11.68q.111.294.303.496.194.201.441.303.249.1.524.101m0-3.923q.496 0 .91.184a2.14 2.14 0 0 1 1.185 1.231q.165.423.165.928t-.165.937a2.18 2.18 0 0 1-1.185 1.24 2.3 2.3 0 0 1-.91.175q-.496 0-.909-.175a2.177 2.177 0 0 1-1.186-1.24q-.165-.432-.165-.937t.165-.928q.166-.432.469-.744.303-.313.717-.487.413-.184.909-.184m3.365 4.557v-4.419h.854v4.419zm-.193-6.091q0-.267.175-.441a.6.6 0 0 1 .441-.184q.266 0 .441.184a.58.58 0 0 1 .183.441.6.6 0 0 1-.183.441.6.6 0 0 1-.441.174.62.62 0 0 1-.441-.174.62.62 0 0 1-.175-.441m3.38 6.091h-.863v-4.419h.845v.634a1.4 1.4 0 0 1 .606-.588 1.7 1.7 0 0 1 .754-.175q.395 0 .689.138.303.129.496.367.201.23.294.552.1.321.101.689v2.802h-.864v-2.655q0-.23-.055-.432a.8.8 0 0 0-.175-.349.75.75 0 0 0-.321-.239 1.1 1.1 0 0 0-.478-.092.96.96 0 0 0-.45.101.9.9 0 0 0-.322.257q-.128.166-.192.386a1.7 1.7 0 0 0-.065.469zm4.204-.588q0-.267.183-.45a.6.6 0 0 1 .45-.193q.267 0 .451.193a.6.6 0 0 1 .193.45.6.6 0 0 1-.193.45.62.62 0 0 1-.451.184.62.62 0 0 1-.45-.184.62.62 0 0 1-.183-.45\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n fillRule: \"evenodd\",\n d: \"M146.213 143.953c-.35 0-.683-.128-.929-.375-.245-.246-.411-.619-.411-1.123 0-.51.166-.882.411-1.127a1.3 1.3 0 0 1 .929-.37c.351 0 .685.125.93.37s.411.617.411 1.127-.166.883-.411 1.127a1.3 1.3 0 0 1-.93.371m0-4.624c-1.778 0-3.125 1.309-3.125 3.126 0 1.805 1.347 3.126 3.125 3.126 1.78 0 3.126-1.321 3.126-3.126 0-1.817-1.347-3.126-3.126-3.126M131.422 143.997c-.35 0-.684-.128-.93-.375-.245-.246-.411-.619-.411-1.123 0-.51.166-.882.411-1.127s.579-.371.93-.371.684.126.93.371c.244.245.41.617.41 1.127s-.166.882-.41 1.127a1.3 1.3 0 0 1-.93.371m0-4.624c-1.779 0-3.126 1.309-3.126 3.126 0 1.805 1.347 3.126 3.126 3.126s3.126-1.321 3.126-3.126c0-1.817-1.348-3.126-3.126-3.126M154.2 145.562h1.775v-3.524c0-.291.091-.545.252-.725.159-.178.394-.291.7-.291.32 0 .538.107.678.27.142.167.216.408.216.699v3.571h1.763v-3.524c0-.285.091-.54.251-.721a.89.89 0 0 1 .689-.295c.327 0 .544.107.682.27.14.166.212.407.212.699v3.571h1.728v-3.886c0-.796-.262-1.374-.674-1.752-.41-.377-.957-.544-1.507-.544-.39 0-.749.067-1.07.228a2.1 2.1 0 0 0-.728.624c-.342-.557-.968-.852-1.706-.852-.539 0-1.163.214-1.556.629v-.485H154.2zM153.531 139.529v1.809l-.139-.028a2 2 0 0 0-.439-.045c-.377 0-.711.092-.951.316-.238.222-.403.592-.403 1.189v2.792h-1.77v-6.038h1.724v.583c.426-.513 1.088-.612 1.504-.612.133 0 .254.012.368.023zM121.622 142.652h1.731l.019.019a.1.1 0 0 1 .024.052c.034.379.183.665.406.855.221.19.508.278.807.278.365 0 .663-.134.869-.368.205-.232.312-.554.312-.919v-5.058h1.87v5.11c0 1.636-1.251 3.004-3.038 3.004-.892 0-1.641-.297-2.166-.812-.513-.502-.819-1.22-.833-2.092zM142.836 138.331l.098.028v-1.37l-.045-.02a1.3 1.3 0 0 0-.309-.081 3 3 0 0 0-.441-.035c-.61 0-1.296.202-1.651.566s-.551.881-.551 1.501v.289h-.891v1.573h.891v4.78h1.79v-4.78h1.207v-1.573h-1.207v-.267c0-.279.097-.439.222-.533a.76.76 0 0 1 .451-.13c.232 0 .366.032.436.052M138.406 144.149l.092-.028v1.375l-.042.021c-.065.031-.17.06-.291.081a2.5 2.5 0 0 1-.414.035c-.573 0-1.214-.203-1.548-.568s-.518-.885-.518-1.507v-2.775h-.837v-1.566h.837v-1.698h1.679v1.698h1.134v1.566h-1.134v2.753c0 .28.091.441.208.534.121.097.28.131.424.131.218 0 .344-.032.41-.052\",\n clipRule: \"evenodd\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n d: \"M112.985 145.808c.191.185.056.503-.215.503h-1.7a.6.6 0 0 1-.608-.59v-1.648c0-.263.327-.394.519-.209z\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFB629\",\n d: \"M115.643 145.936a1.27 1.27 0 0 1 0-1.81l1.815-1.804c.503-.5 1.319-.5 1.822 0s.503 1.31 0 1.81l-1.815 1.804c-.504.5-1.319.5-1.822 0\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#09F\",\n d: \"M110.844 141.403a1.274 1.274 0 0 1 0-1.81l3.056-3.038c.503-.5 1.319-.5 1.822 0s.503 1.31 0 1.81l-3.056 3.038c-.503.5-1.318.5-1.822 0\"\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF6100\",\n d: \"M113.343 143.568a1.274 1.274 0 0 1 0-1.81l4.129-4.102c.503-.5 1.319-.5 1.822 0s.503 1.31 0 1.81l-4.129 4.102c-.503.5-1.319.5-1.822 0M168.706 140.933l.142.596.972 4.535v.013q-.389.078-.855.052a4.7 4.7 0 0 1-.881-.103h-.013a6 6 0 0 1-.156-.493q-.064-.285-.142-.583a9 9 0 0 0-.143-.57 3 3 0 0 0-.168-.466 2 2 0 0 0-.259-.026h-.169q-.065 0-.155.013h-.221a3 3 0 0 0-.155.492q-.052.272-.117.583a11 11 0 0 1-.116.583q-.065.286-.182.505-.012 0-.026.013h-.013q-.103.027-.518 0a19 19 0 0 0-1.296-.013q-.012 0-.026-.013.027-.09.091-.505.065-.415.182-1.075.116-.661.272-1.516.168-.868.388-1.84t.48-2.022q.26-1.049.57-2.086.09-.013.194-.013h.7q.272-.013.7-.052.04.169.116.519.091.336.182.777.103.428.207.92.117.492.22.946t.195.829m-1.672 1.452q.246-.013.493-.013a39 39 0 0 0-.234-1.737q-.09-.621-.168-.842-.065-.22-.143-.091-.064.117-.129.493l-.13.946q-.065.57-.155 1.231.22.013.466.013m7.004 1.578q.184 0 .303.032l-.043.553q-.022.272-.054.51a2.6 2.6 0 0 1-.087.401.53.53 0 0 1-.119.239 1 1 0 0 1-.488.369 2.3 2.3 0 0 1-.64.13q-.347.031-.716 0-.369-.022-.672-.022a1.7 1.7 0 0 1-.933-.477 1.33 1.33 0 0 1-.401-.651 3.7 3.7 0 0 1-.13-.813 11 11 0 0 1-.011-.868 4.7 4.7 0 0 0-.022-.791q0-.39.065-.781.012-.119.076-.325.065-.206.098-.315a.75.75 0 0 1 .238-.282 1.7 1.7 0 0 1 .391-.195 2 2 0 0 1 .477-.119q.26-.033.52-.033.217.022.413.011.205-.021.433 0 .347.022.662.13.314.109.542.326.151.109.228.292.087.185.13.434t.043.564l.022.662a1.5 1.5 0 0 1-.325.032 7 7 0 0 1-.738-.043q-.173-.022-.314-.044a.87.87 0 0 0-.315-.585q-.26-.217-.683-.109a.7.7 0 0 0-.369.239q-.065.043-.097.217a5 5 0 0 0-.044.683q0 .346-.021.726-.022.25.119.391a.8.8 0 0 0 .358.195q.206.043.423.022a.9.9 0 0 0 .347-.12.45.45 0 0 0 .162-.249q.065-.184.098-.325.108.01.293.011.184-.012.39-.022a4 4 0 0 1 .391 0m4.677-3.318q.272.01.618.032a1 1 0 0 1 .011.13 1 1 0 0 1 .011.13v.109q-.033 1.171.011 2.31.044 1.127-.033 2.288 0 .141-.01.282 0 .141-.13.162h-.131q-.173 0-.357-.011a3 3 0 0 0-.347-.021q-.12 0-.239.021a2 2 0 0 1-.228.011.16.16 0 0 1-.108-.087.71.71 0 0 1 0-.347.7.7 0 0 0 .022-.184 2.3 2.3 0 0 1-.662.445 1.8 1.8 0 0 1-.77.184q-.423 0-.726-.293a2.4 2.4 0 0 1-.488-.726 4.2 4.2 0 0 1-.293-.944 5.6 5.6 0 0 1-.087-.943q0-.542.141-.998t.38-.78q.249-.337.585-.521a1.5 1.5 0 0 1 .716-.206q.195 0 .358.011.173 0 .314.054.14.044.25.152a.8.8 0 0 1 .184.282 1.2 1.2 0 0 1 .011-.293q.032-.13.032-.26 0-.01.065-.011a.6.6 0 0 1 .163 0h.293zm-2.233 1.713a.82.82 0 0 0-.304.477 1.3 1.3 0 0 0-.054.293 3 3 0 0 0-.011.282q0 .487.249.835a.86.86 0 0 0 .716.336q.271 0 .401-.087a.5.5 0 0 0 .195-.26 1.2 1.2 0 0 0 .065-.412q.011-.25.011-.553 0-.38-.011-.597a.9.9 0 0 0-.054-.347.23.23 0 0 0-.162-.151 1.3 1.3 0 0 0-.337-.033q-.444 0-.704.217m6.447-3.448q.011-.12.022-.337v-.119q0-.01.141-.021.151-.022.358-.022.216-.01.455 0 .238 0 .412.032v.716q0 1.81.054 3.579.055 1.767.011 3.329-.336 0-.737.01-.402.022-.727-.021a.2.2 0 0 1-.011-.076q0-.108-.01-.174v-.184a.17.17 0 0 0-.055-.076q-.021-.033-.054.033-.162.324-.434.422-.27.087-.574.044-.618-.043-.976-.315a1.8 1.8 0 0 1-.542-.704 3.8 3.8 0 0 1-.239-.966 13 13 0 0 1-.065-1.073q0-.38.043-.737.054-.358.152-.651.108-.304.271-.51a.93.93 0 0 1 .412-.303q.293-.109.64-.131.358-.031.672 0 .315.022.532.098.216.077.238.174-.01-.51-.011-.825v-.7909999999999999q.012-.108.011-.195.012-.098.011-.206m-1.344 3.177q-.261.195-.315.575a1.2 1.2 0 0 0-.065.314 5 5 0 0 0-.011.315q0 .27.065.531.066.25.195.455.13.195.315.315.184.119.412.119.271 0 .423-.119a.7.7 0 0 0 .238-.326q.087-.206.098-.487.022-.294.022-.64 0-.423-.022-.662a1 1 0 0 0-.076-.379.3.3 0 0 0-.206-.163 1.2 1.2 0 0 0-.358-.043q-.445 0-.715.195m5.203 1.301a3 3 0 0 1-.347-.032v.195q.012.326.022.531a.94.94 0 0 0 .141.401q.13.25.369.369.238.12.466.076a.6.6 0 0 0 .38-.26q.162-.228.14-.673.109.012.293.011l.38-.021a3 3 0 0 1 .39 0q.184 0 .304.032l-.044.553a9 9 0 0 1-.054.51q-.031.227-.087.401a.44.44 0 0 1-.119.228 1 1 0 0 1-.477.368 2.2 2.2 0 0 1-.64.131 6 6 0 0 1-.715 0 11 11 0 0 0-.662-.022 1.6 1.6 0 0 1-.564-.195 1.7 1.7 0 0 1-.488-.532 3.4 3.4 0 0 1-.314-.726 4.5 4.5 0 0 1-.163-.846 6 6 0 0 1-.022-.889l.065-.77q.043-.38.174-.738.141-.314.434-.531.292-.228.661-.336.369-.12.781-.13t.802.087q.499.086.803.347.303.26.455.629.163.367.195.813.033.444 0 .9-.076.022-.292.043a17 17 0 0 1-1.735.087q-.293 0-.532-.011m1.269-1.42a.7.7 0 0 0-.304-.293.6.6 0 0 0-.173-.076.6.6 0 0 0-.206-.033q-.261 0-.423.055a.65.65 0 0 0-.26.151.7.7 0 0 0-.152.228 1.6 1.6 0 0 0-.065.271q-.022.12-.022.174.011.043.109.065.097.01.303.011a13 13 0 0 1 1.052 0q.141.01.195.01.066-.01.065-.032v-.119a.77.77 0 0 0-.119-.412m3.322-.998q0 .119.011.271l.13-.076a1 1 0 0 0 .141-.087 2 2 0 0 1 1.084-.368q.304-.012.586.065.282.076.509.271a.6.6 0 0 1 .109.184q.054-.032.13-.065a1 1 0 0 0 .13-.087 2 2 0 0 1 1.085-.368 2 2 0 0 1 .585.065q.282.076.51.271.108.097.162.412.066.303.076.737.022.434.011.955 0 .508-.011 1.041l-.021 1.008q-.011.488.01.857a4 4 0 0 1-.683.043h-.672a7 7 0 0 1-.022-.564v-.65a9 9 0 0 0 0-.673 9 9 0 0 0-.043-.911 2 2 0 0 0-.043-.314 1 1 0 0 0-.076-.271.4.4 0 0 0-.13-.185q-.012-.01-.022-.01-.011 0-.022-.011a.7.7 0 0 0-.162-.054 1 1 0 0 0-.217-.022.7.7 0 0 0-.228.043.6.6 0 0 0-.206.109q.01.423 0 .9l-.022.932-.021.889q0 .423.021.749-.38.054-.683.043h-.672a6 6 0 0 1-.022-.564v-.65q.01-.337 0-.673 0-.335-.022-.629l-.021-.282a2 2 0 0 0-.044-.314 1 1 0 0 0-.076-.271.4.4 0 0 0-.13-.185q-.01-.01-.021-.01t-.022-.011a.8.8 0 0 0-.26-.065.6.6 0 0 0-.326.021.58.58 0 0 0-.292.196q-.13.14-.152.433a9 9 0 0 0-.011.749l.022.726q.021.358.021.716t-.043.715v.044a1.6 1.6 0 0 1-.597.065q-.14 0-.314-.011a3 3 0 0 0-.434.011q0-1.333-.032-2.668a59 59 0 0 1 .021-2.765q.13.011.217.022h.326a5 5 0 0 1 .368-.033q.11-.021.217-.032a1 1 0 0 1 .195 0q.087 0 .087.032.022.184.011.304m6.384-.293q.434-.033.781.011.076.39.174.933.097.53.206 1.084.108.553.227 1.063.12.498.239.824.118-.326.195-.857t.141-1.106q.076-.575.163-1.106t.217-.857q.368.012.748-.011.38-.02.835.011-.174.651-.315 1.247-.13.586-.26 1.15a19 19 0 0 0-.26 1.117q-.108.585-.282 1.149a6 6 0 0 1-.423 1.074 2.9 2.9 0 0 1-.694.878 2.8 2.8 0 0 1-1.063.575q-.629.195-1.55.141a2.3 2.3 0 0 1-.109-.738 3.5 3.5 0 0 1 .044-.704q.26 0 .531.021.282.022.499-.032a.49.49 0 0 0 .325-.206q.12-.163.065-.521a31 31 0 0 0-.575-2.624q-.347-1.312-.683-2.538.39.044.824.022\"\n})), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0A1551\",\n fillRule: \"evenodd\",\n d: \"m203.059 140.146-.479 1.323a.545.545 0 0 1-.573.364c-.454-.053-1.168-.173-1.631-.426s-.948-.789-1.238-1.142a.55.55 0 0 1-.002-.68l.855-1.117.957 1.196a.87.87 0 0 0 .587.321zm-1.972-.736a.87.87 0 0 0 .587.321l1.456.179c.016.002.026-.016.017-.029l-1.17-1.543a.174.174 0 1 1 .273-.215l1.197 1.525c.039.062.076.13.098.191.131.369-.065.872-.132.995-.094.172-.235.313-.341.419a2.572 2.572 0 0 0-.633 1.038.16.16 0 0 0 .112.202l.635.166a.16.16 0 0 0 .147-.036.16.16 0 0 0 .051-.142 3 3 0 0 1-.017-.436c.01-.257.056-.564.192-.812 0 0 .088-.147.134-.246.116-.25.158-.791.171-1.025l.691.073a.289.289 0 0 0 .238-.49l-1.987-2.046a.87.87 0 0 0-.45-.247l-2.796-.569a.29.29 0 0 0-.305.133.29.29 0 0 0 .021.332l.906 1.131z\",\n clipRule: \"evenodd\"\n})));\nexport default SvgCertificates;","var _g, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgLogo = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 331 216\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#logo_svg__a)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 315,\n height: 200,\n x: 8,\n y: 4,\n fill: \"#fff\",\n rx: 8\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F4F7FF\",\n d: \"M142.609 146.374c1.673 1.623.491 4.403-1.886 4.403H125.85c-2.935 0-5.323-2.315-5.323-5.16v-14.418c0-2.304 2.868-3.451 4.542-1.828zM165.862 147.497a11.15 11.15 0 0 1 0-15.84l15.889-15.785c4.402-4.374 11.54-4.374 15.943 0a11.15 11.15 0 0 1 0 15.839l-15.889 15.786c-4.403 4.374-11.541 4.374-15.943 0M123.883 107.833a11.15 11.15 0 0 1 0-15.84l26.739-26.583c4.403-4.374 11.541-4.374 15.943 0a11.15 11.15 0 0 1 0 15.84l-26.739 26.583c-4.402 4.374-11.54 4.374-15.943 0M145.742 126.78a11.15 11.15 0 0 1 0-15.84l36.13-35.894c4.403-4.374 11.541-4.374 15.943 0a11.15 11.15 0 0 1 0 15.84l-36.129 35.894c-4.403 4.374-11.541 4.374-15.944 0\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.5\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#343C6A\",\n d: \"M133.459 152.412v-5.65h3.434v.725h-2.653v1.817h2.406v.733h-2.406v2.375zm5.67-.55q.24 0 .454-.088a1.1 1.1 0 0 0 .383-.263q.167-.175.263-.43.095-.255.095-.59t-.095-.581a1.3 1.3 0 0 0-.263-.431 1.1 1.1 0 0 0-.383-.263 1.2 1.2 0 0 0-.454-.087q-.239 0-.454.087a1.1 1.1 0 0 0-.382.263q-.168.176-.263.431a1.6 1.6 0 0 0-.096.581q0 .335.096.59.095.255.263.43.167.176.382.263t.454.088m0-3.403q.43 0 .789.16.358.151.622.422.262.272.406.645.143.367.143.805t-.143.813q-.144.375-.406.645a2 2 0 0 1-.622.431 2 2 0 0 1-.789.151q-.43 0-.789-.151a2 2 0 0 1-.621-.431 1.9 1.9 0 0 1-.407-.645 2.3 2.3 0 0 1-.143-.813q0-.438.143-.805.143-.374.407-.645.262-.271.621-.422.359-.16.789-.16m5.406 3.49a.98.98 0 0 1-.478.447q-.32.135-.654.135-.335 0-.605-.119a1.3 1.3 0 0 1-.446-.327 1.5 1.5 0 0 1-.287-.486 1.9 1.9 0 0 1-.096-.606v-2.414h.749v2.303q0 .198.048.382a.9.9 0 0 0 .151.311q.104.135.263.215.168.08.407.08.453 0 .677-.271.231-.271.231-.709v-2.311h.749v3.123q0 .231.008.423.016.183.032.287h-.717a1 1 0 0 1-.024-.2 5 5 0 0 1-.008-.263m2.736.463h-.749v-3.833h.733v.55q.207-.359.526-.51t.654-.152q.342 0 .597.12.263.111.431.318.174.2.255.479.087.279.087.597v2.431h-.749v-2.303q0-.2-.048-.375a.7.7 0 0 0-.151-.303.66.66 0 0 0-.279-.207 1 1 0 0 0-.414-.079.84.84 0 0 0-.67.31q-.111.144-.167.335a1.5 1.5 0 0 0-.056.406zm4.172-1.929q0 .295.072.55.08.247.223.43a1 1 0 0 0 .829.391q.255 0 .462-.104.207-.11.35-.295a1.2 1.2 0 0 0 .215-.438q.08-.255.08-.55 0-.597-.295-.964-.286-.366-.805-.366-.255 0-.47.103a1 1 0 0 0-.358.279q-.144.176-.223.422-.08.248-.08.542m2.239 1.347q-.135.279-.438.486-.295.2-.749.199-.423 0-.757-.151a1.8 1.8 0 0 1-.574-.43 2.1 2.1 0 0 1-.359-.646 2.5 2.5 0 0 1-.127-.805q0-.406.127-.765.137-.367.375-.637.239-.279.574-.438.335-.168.741-.168.255 0 .446.056.2.056.343.151a1 1 0 0 1 .239.208.8.8 0 0 1 .143.231v-2.479h.741v5.06a6 6 0 0 0 .04.71h-.725a2 2 0 0 1-.032-.2 6 6 0 0 1-.008-.318zm4.581-1.729a1.03 1.03 0 0 0-.279-.693q-.263-.288-.773-.287a1.03 1.03 0 0 0-.749.31 1.1 1.1 0 0 0-.207.311 1 1 0 0 0-.088.359zm.757 1.219q-.08.255-.239.478a1.7 1.7 0 0 1-.374.383 1.84 1.84 0 0 1-1.108.35q-.382 0-.733-.135a1.8 1.8 0 0 1-.622-.399 2 2 0 0 1-.422-.645 2.4 2.4 0 0 1-.151-.869 2.12 2.12 0 0 1 .549-1.458q.255-.272.59-.414.334-.152.693-.152.439 0 .781.152.351.143.582.406t.351.638a2.46 2.46 0 0 1 .111 1.051h-2.885q.009.255.096.471t.239.374q.16.152.367.239.215.08.454.08.47 0 .717-.223t.359-.55zm3.108-1.984a2 2 0 0 0-.327-.024q-.47 0-.765.279-.287.27-.287.9v1.921H160v-3.833h.733v.669a1.23 1.23 0 0 1 .534-.582q.152-.087.311-.119t.303-.032a1.2 1.2 0 0 1 .247.024zm5.611 2.327a3.3 3.3 0 0 1-.733.621q-.375.223-.853.223-.399 0-.709-.119a1.6 1.6 0 0 1-.51-.327 1.4 1.4 0 0 1-.415-.996 1.52 1.52 0 0 1 .271-.893q.136-.19.319-.35.183-.168.407-.335l.079-.064-.103-.111-.216-.231a3 3 0 0 1-.223-.295 2 2 0 0 1-.175-.343 1.374 1.374 0 0 1 .064-.996q.127-.262.334-.438a1.5 1.5 0 0 1 .471-.271 1.5 1.5 0 0 1 .526-.096q.318 0 .589.096.279.096.478.279.2.175.311.43.12.255.12.574 0 .207-.072.39a1.5 1.5 0 0 1-.175.335q-.113.152-.255.287a4 4 0 0 1-.295.239l-.287.215 1.052 1.092 1.259-1.403v1.028l-.765.885 1.283 1.323h-1.06zm-1.578.127a.94.94 0 0 0 .574-.183 3.3 3.3 0 0 0 .478-.438l.024-.032-1.148-1.204-.287.216a1.5 1.5 0 0 0-.342.358.86.86 0 0 0-.136.494q0 .144.056.287.064.135.167.255a1 1 0 0 0 .263.183.9.9 0 0 0 .351.064m-.574-3.785q0 .12.04.231t.104.215q.063.096.135.184.08.087.152.159l.175.191.382-.287q.255-.183.335-.35a.76.76 0 0 0 .088-.351.64.64 0 0 0-.208-.478.67.67 0 0 0-.51-.207.7.7 0 0 0-.247.048.6.6 0 0 0-.223.135.7.7 0 0 0-.159.215.65.65 0 0 0-.064.295m8.767 4.526q-.549 0-1.059-.191a2.7 2.7 0 0 1-.893-.574 2.9 2.9 0 0 1-.621-.924 3.2 3.2 0 0 1-.232-1.259q0-.71.239-1.251.24-.55.63-.925.399-.374.9-.565.51-.2 1.036-.2.486 0 .893.128.406.127.725.359.318.23.534.565.223.335.335.741l-.726.255q-.159-.645-.613-.988-.447-.342-1.148-.342-.382 0-.749.143-.359.135-.645.414-.28.279-.446.702a2.6 2.6 0 0 0-.168.964q0 .549.168.972.167.414.446.701.286.279.645.423.367.135.749.135.358 0 .654-.104.294-.104.518-.278a1.7 1.7 0 0 0 .382-.431q.16-.254.247-.542l.693.255q-.11.399-.334.733-.224.336-.542.574-.31.24-.725.375a2.8 2.8 0 0 1-.893.135m3.53-.119v-5.65h3.435v.725h-2.654v1.737h2.407v.733h-2.407v1.729h2.654v.726zm5.03-2.829q0 .549.167.972.175.414.454.701.287.279.654.423a2.2 2.2 0 0 0 1.522 0q.374-.144.653-.423.287-.287.454-.701a2.5 2.5 0 0 0 .176-.972q0-.55-.176-.964a2 2 0 0 0-.454-.702 1.76 1.76 0 0 0-.653-.414 2.1 2.1 0 0 0-.757-.143 2.1 2.1 0 0 0-.765.143q-.367.135-.654.414-.279.279-.454.702a2.6 2.6 0 0 0-.167.964m-.797 0q0-.71.239-1.251.248-.55.645-.925.399-.374.909-.565.51-.2 1.044-.2t1.044.2q.51.191.908.565.399.375.638.925.246.541.247 1.251 0 .709-.247 1.259-.24.549-.638.924-.399.375-.908.574a2.96 2.96 0 0 1-2.088 0 2.8 2.8 0 0 1-.909-.574 2.9 2.9 0 0 1-.645-.924 3.1 3.1 0 0 1-.239-1.259M140.769 140.993h-2.391l-.526 1.419h-1.012l2.2-5.65h1.107l2.2 5.65h-1.044zm-2.056-.884h1.721l-.86-2.311zm4.237 3.872.932-2.032-1.657-3.418h1.044l1.115 2.454 1.044-2.454h.98l-2.47 5.45zm5.385-5.45h.804v.821h-.804v1.801q0 .254.119.374.12.111.375.112.095 0 .191-.008.096-.016.127-.024v.765q-.04.015-.175.048-.135.039-.39.039-.543 0-.853-.302-.31-.303-.311-.853v-1.952h-.717v-.821h.199q.311 0 .455-.175a.66.66 0 0 0 .143-.431v-.581h.837zm4.265 1.514a1 1 0 0 0-.071-.319.74.74 0 0 0-.176-.279.9.9 0 0 0-.295-.191 1.1 1.1 0 0 0-.414-.072.93.93 0 0 0-.677.279.94.94 0 0 0-.271.582zm.885 1.259q-.08.255-.231.478a1.6 1.6 0 0 1-.375.391 1.8 1.8 0 0 1-.51.263 2 2 0 0 1-.637.095q-.399 0-.757-.135a1.9 1.9 0 0 1-.63-.407 2.1 2.1 0 0 1-.438-.653 2.3 2.3 0 0 1-.159-.885q0-.462.151-.836a2 2 0 0 1 .422-.638q.263-.27.606-.414.343-.152.709-.152.447 0 .797.144.358.144.598.406.246.263.374.638.128.366.128.828 0 .112-.008.2a.5.5 0 0 1-.016.095h-2.837a1.02 1.02 0 0 0 .327.725q.143.136.326.216.192.07.407.071.422 0 .645-.191.231-.2.327-.486zm2.971-1.132 1.625 2.24h-1.131l-1.14-1.586-.478.502v1.084h-.916v-5.77h.916v3.459l1.49-1.57h1.227zm2.294 2.24v-3.881h.917v3.881zm-.143-5.244q0-.255.175-.43a.57.57 0 0 1 .422-.175q.255 0 .431.175.175.175.175.43t-.175.431a.6.6 0 0 1-.431.167.586.586 0 0 1-.597-.598m3.176 5.244h-.924v-3.881h.901v.518q.19-.335.502-.478.318-.152.645-.152.358 0 .622.12.262.12.43.335.175.207.263.486.087.279.087.597v2.455h-.924v-2.295a1 1 0 0 0-.183-.606q-.176-.255-.614-.255-.398 0-.605.271-.2.262-.2.645zm7.923-4.75v4.75h-.956v-4.75h-1.833v-.9h4.63v.9zm1.629 3.698q0-.264.088-.462a1.16 1.16 0 0 1 .622-.582q.215-.088.462-.128l.996-.151q.167-.024.223-.096a.3.3 0 0 0 .064-.183.55.55 0 0 0-.176-.414q-.174-.176-.557-.176-.367 0-.566.208a.8.8 0 0 0-.231.494l-.845-.192q.024-.246.152-.478.127-.23.334-.406.207-.175.494-.279.296-.104.654-.104.445 0 .757.12.318.12.51.319.198.2.287.462.095.262.095.55v1.928q0 .263.016.43.024.16.032.192h-.861a1 1 0 0 1-.024-.136 3 3 0 0 1-.015-.358 1.4 1.4 0 0 1-.431.422q-.294.19-.765.191a1.5 1.5 0 0 1-.55-.095 1.4 1.4 0 0 1-.414-.255 1.3 1.3 0 0 1-.263-.375 1.2 1.2 0 0 1-.088-.446m1.491.446q.19 0 .366-.048a.8.8 0 0 0 .303-.167.8.8 0 0 0 .215-.311 1.3 1.3 0 0 0 .08-.478v-.175l-1.012.151a.8.8 0 0 0-.367.167q-.151.12-.151.359 0 .2.143.351.144.151.423.151m3.914.606h-.924v-3.881h.9v.518a1.1 1.1 0 0 1 .502-.478 1.5 1.5 0 0 1 .645-.152q.359 0 .622.12t.43.335q.176.207.263.486t.088.597v2.455h-.924v-2.295a1 1 0 0 0-.184-.606q-.175-.255-.613-.255-.399 0-.606.271-.2.262-.199.645zm5.691-2.24 1.626 2.24h-1.132l-1.139-1.586-.478.502v1.084h-.917v-5.77h.917v3.459l1.49-1.57h1.227zM119.826 121.08v2.367h-.579v-2.367h-.532v-.508h.532v-.484q0-.238.071-.424a1 1 0 0 1 .204-.311.84.84 0 0 1 .298-.185q.174-.066.371-.066a.9.9 0 0 1 .335.06v.502a.4.4 0 0 0-.084-.024 1 1 0 0 0-.161-.012.57.57 0 0 0-.305.096.4.4 0 0 0-.108.149.6.6 0 0 0-.042.245v.454h.694v.508zm2.41 1.955q.18 0 .341-.066a.8.8 0 0 0 .287-.197.9.9 0 0 0 .197-.323q.072-.192.072-.442 0-.252-.072-.437a.9.9 0 0 0-.197-.322.8.8 0 0 0-.287-.197.9.9 0 0 0-.341-.066.9.9 0 0 0-.34.066.8.8 0 0 0-.287.197.9.9 0 0 0-.197.322 1.2 1.2 0 0 0-.072.437q0 .25.072.442a.9.9 0 0 0 .197.323.8.8 0 0 0 .287.197.9.9 0 0 0 .34.066m0-2.552q.324 0 .592.119.269.114.466.317.198.203.305.484.108.275.108.604t-.108.609a1.4 1.4 0 0 1-.305.484 1.5 1.5 0 0 1-.466.323 1.5 1.5 0 0 1-.592.114q-.323 0-.591-.114a1.5 1.5 0 0 1-.466-.323 1.4 1.4 0 0 1-.305-.484 1.7 1.7 0 0 1-.108-.609q0-.329.108-.604a1.4 1.4 0 0 1 .771-.801q.269-.119.591-.119m3.785.657a2 2 0 0 0-.245-.018.8.8 0 0 0-.574.209q-.215.204-.215.676v1.44h-.562v-2.875h.55v.502a1 1 0 0 1 .179-.269 1 1 0 0 1 .222-.167.8.8 0 0 1 .233-.09 1.2 1.2 0 0 1 .334-.017 1 1 0 0 1 .078.012zm2.332 1.381q.03.227.197.382.168.156.472.156.24 0 .365-.114a.35.35 0 0 0 .125-.269.32.32 0 0 0-.095-.233.55.55 0 0 0-.275-.137l-.49-.108a.95.95 0 0 1-.532-.287.77.77 0 0 1-.185-.52q0-.185.077-.346a1 1 0 0 1 .544-.491 1.2 1.2 0 0 1 .4-.071q.294 0 .491.083a.99.99 0 0 1 .603.688l-.496.185a1 1 0 0 0-.042-.137.524.524 0 0 0-.275-.287.65.65 0 0 0-.281-.054.5.5 0 0 0-.346.119.34.34 0 0 0-.132.263q0 .276.329.347l.466.102q.394.083.592.31a.78.78 0 0 1 .203.544.8.8 0 0 1-.066.311.9.9 0 0 1-.197.287.9.9 0 0 1-.323.209 1.2 1.2 0 0 1-.466.084q-.298 0-.514-.084a1.2 1.2 0 0 1-.352-.209 1 1 0 0 1-.215-.269 1 1 0 0 1-.09-.275zm4.328.579a.73.73 0 0 1-.358.335 1.2 1.2 0 0 1-.49.102q-.252 0-.454-.09a1 1 0 0 1-.335-.245 1.1 1.1 0 0 1-.215-.365 1.4 1.4 0 0 1-.072-.454v-1.811h.562v1.728q0 .149.036.286a.7.7 0 0 0 .113.234.6.6 0 0 0 .197.161q.126.06.305.06.341 0 .508-.204.173-.202.173-.531v-1.734h.562v2.343q0 .174.006.317.012.137.024.215h-.538a1 1 0 0 1-.018-.149 4 4 0 0 1-.006-.198m2.669-2.097a.9.9 0 0 0-.329.065.8.8 0 0 0-.281.186.9.9 0 0 0-.191.316 1.2 1.2 0 0 0-.072.437q0 .245.072.436.072.185.191.317a.8.8 0 0 0 .281.191.9.9 0 0 0 .335.066q.203 0 .341-.06a.755.755 0 0 0 .382-.341 1 1 0 0 0 .078-.191l.496.215a1.6 1.6 0 0 1-.156.317 1.275 1.275 0 0 1-.645.496 1.4 1.4 0 0 1-.496.084 1.5 1.5 0 0 1-.586-.114 1.4 1.4 0 0 1-.454-.323 1.6 1.6 0 0 1-.305-.484 1.7 1.7 0 0 1-.107-.609q0-.335.107-.616a1.5 1.5 0 0 1 .305-.478q.197-.203.46-.317.269-.113.574-.113.287 0 .502.083.221.078.376.21.162.131.257.298.096.162.144.323l-.508.215a1.2 1.2 0 0 0-.084-.215.6.6 0 0 0-.149-.191.7.7 0 0 0-.221-.144.8.8 0 0 0-.317-.059m3.14 0a.9.9 0 0 0-.329.065.8.8 0 0 0-.281.186.9.9 0 0 0-.191.316 1.2 1.2 0 0 0-.072.437q0 .245.072.436.072.185.191.317a.8.8 0 0 0 .281.191.9.9 0 0 0 .335.066q.203 0 .34-.06a.755.755 0 0 0 .383-.341 1 1 0 0 0 .078-.191l.496.215a1.6 1.6 0 0 1-.156.317 1.275 1.275 0 0 1-.645.496 1.4 1.4 0 0 1-.496.084q-.317 0-.586-.114a1.4 1.4 0 0 1-.454-.323 1.6 1.6 0 0 1-.305-.484 1.7 1.7 0 0 1-.107-.609q0-.335.107-.616.113-.28.305-.478.197-.203.46-.317.269-.113.574-.113a1.4 1.4 0 0 1 .502.083q.221.078.376.21.162.131.257.298.096.162.144.323l-.508.215a1.2 1.2 0 0 0-.084-.215.6.6 0 0 0-.149-.191.7.7 0 0 0-.221-.144.8.8 0 0 0-.317-.059m3.869.711a.78.78 0 0 0-.209-.52q-.198-.215-.58-.215a.76.76 0 0 0-.717.466.7.7 0 0 0-.066.269zm.568.914q-.06.192-.18.359a1.27 1.27 0 0 1-.651.478q-.21.072-.46.072-.288 0-.55-.102a1.4 1.4 0 0 1-.466-.299 1.5 1.5 0 0 1-.317-.484 1.8 1.8 0 0 1-.114-.651 1.6 1.6 0 0 1 .413-1.094 1.3 1.3 0 0 1 .442-.311q.251-.113.52-.113.328 0 .586.113.262.108.436.305.174.198.263.478a1.84 1.84 0 0 1 .084.789h-2.164q.006.192.072.353a.9.9 0 0 0 .179.281q.12.113.275.179.162.06.341.06.352 0 .538-.168a1 1 0 0 0 .269-.412zm.974-.107q.03.227.197.382.167.156.472.156.239 0 .365-.114a.35.35 0 0 0 .125-.269.32.32 0 0 0-.095-.233.55.55 0 0 0-.275-.137l-.49-.108a.94.94 0 0 1-.532-.287.77.77 0 0 1-.186-.52q0-.185.078-.346a1 1 0 0 1 .544-.491q.191-.07.4-.071.294 0 .49.083a1 1 0 0 1 .329.21.8.8 0 0 1 .185.251q.066.13.09.227l-.496.185a1 1 0 0 0-.042-.137.524.524 0 0 0-.275-.287.65.65 0 0 0-.281-.054.5.5 0 0 0-.346.119.34.34 0 0 0-.132.263q0 .276.329.347l.466.102q.394.083.592.31a.78.78 0 0 1 .203.544.8.8 0 0 1-.066.311.9.9 0 0 1-.197.287.9.9 0 0 1-.323.209 1.2 1.2 0 0 1-.466.084q-.298 0-.514-.084a1.2 1.2 0 0 1-.352-.209 1 1 0 0 1-.216-.269 1 1 0 0 1-.089-.275zm2.702 0q.03.227.197.382.168.156.472.156.24 0 .365-.114a.35.35 0 0 0 .125-.269.32.32 0 0 0-.095-.233.55.55 0 0 0-.275-.137l-.49-.108a.95.95 0 0 1-.532-.287.77.77 0 0 1-.185-.52q0-.185.077-.346a1 1 0 0 1 .544-.491q.191-.07.401-.071.292 0 .49.083a.99.99 0 0 1 .603.688l-.496.185a1 1 0 0 0-.042-.137.524.524 0 0 0-.275-.287.65.65 0 0 0-.28-.054.5.5 0 0 0-.347.119.34.34 0 0 0-.132.263q0 .276.329.347l.466.102q.394.083.592.31a.78.78 0 0 1 .203.544.8.8 0 0 1-.066.311.9.9 0 0 1-.197.287.9.9 0 0 1-.323.209 1.2 1.2 0 0 1-.466.084q-.298 0-.514-.084a1.2 1.2 0 0 1-.352-.209 1 1 0 0 1-.215-.269 1 1 0 0 1-.09-.275zm3.216-1.441v2.367h-.58v-2.367h-.532v-.508h.532v-.484q0-.238.072-.424a1 1 0 0 1 .203-.311.9.9 0 0 1 .299-.185q.174-.066.371-.066a.9.9 0 0 1 .334.06v.502a.4.4 0 0 0-.083-.024 1 1 0 0 0-.162-.012.56.56 0 0 0-.305.096.4.4 0 0 0-.107.149.6.6 0 0 0-.042.245v.454h.693v.508zm3.161 2.02a.73.73 0 0 1-.359.335 1.2 1.2 0 0 1-.49.102q-.25 0-.454-.09a1 1 0 0 1-.335-.245 1.2 1.2 0 0 1-.215-.365 1.4 1.4 0 0 1-.071-.454v-1.811h.561v1.728q0 .149.036.286a.7.7 0 0 0 .114.234.6.6 0 0 0 .197.161q.125.06.305.06.34 0 .508-.204a.8.8 0 0 0 .173-.531v-1.734h.562v2.343q0 .174.006.317.012.137.024.215h-.538a1 1 0 0 1-.018-.149 4 4 0 0 1-.006-.198m1.49.347v-4.327h.562v4.327zm1.518 0v-4.327h.562v4.327zm1.619 1.201.717-1.518-1.237-2.558h.645l.897 1.985.86-1.985h.604l-1.871 4.076zm5.728-3.645a.9.9 0 0 0-.329.065.8.8 0 0 0-.281.186.9.9 0 0 0-.191.316 1.2 1.2 0 0 0-.072.437q0 .245.072.436.072.185.191.317a.8.8 0 0 0 .281.191.9.9 0 0 0 .335.066q.203 0 .34-.06a.755.755 0 0 0 .383-.341 1 1 0 0 0 .078-.191l.496.215a1.6 1.6 0 0 1-.156.317 1.275 1.275 0 0 1-.645.496 1.4 1.4 0 0 1-.496.084q-.317 0-.586-.114a1.4 1.4 0 0 1-.454-.323 1.6 1.6 0 0 1-.305-.484 1.7 1.7 0 0 1-.107-.609q0-.335.107-.616.113-.28.305-.478.197-.203.46-.317.269-.113.574-.113a1.4 1.4 0 0 1 .502.083q.221.078.376.21.162.131.257.298.096.162.144.323l-.508.215a1.2 1.2 0 0 0-.084-.215.6.6 0 0 0-.149-.191.7.7 0 0 0-.221-.144.8.8 0 0 0-.317-.059m3.164 2.032a.9.9 0 0 0 .34-.066.8.8 0 0 0 .287-.197.9.9 0 0 0 .197-.323q.072-.192.072-.442 0-.252-.072-.437a.9.9 0 0 0-.197-.322.8.8 0 0 0-.287-.197.9.9 0 0 0-.34-.066.9.9 0 0 0-.341.066.8.8 0 0 0-.287.197.9.9 0 0 0-.197.322 1.2 1.2 0 0 0-.072.437q0 .25.072.442a.9.9 0 0 0 .197.323.8.8 0 0 0 .287.197.9.9 0 0 0 .341.066m0-2.552q.323 0 .591.119a1.4 1.4 0 0 1 .771.801q.108.275.108.604t-.108.609a1.4 1.4 0 0 1-.305.484 1.5 1.5 0 0 1-.466.323 1.5 1.5 0 0 1-.591.114q-.323 0-.592-.114a1.5 1.5 0 0 1-.466-.323 1.4 1.4 0 0 1-.305-.484 1.7 1.7 0 0 1-.108-.609q0-.329.108-.604a1.4 1.4 0 0 1 .771-.801q.269-.119.592-.119m2.189 2.964v-2.875h.537v.383a.86.86 0 0 1 .377-.353q.245-.113.496-.113.269 0 .502.131a.82.82 0 0 1 .359.413q.173-.311.43-.425.257-.119.532-.119.185 0 .364.065.18.066.317.204a.9.9 0 0 1 .227.34q.084.204.084.484v1.865h-.556v-1.805a.72.72 0 0 0-.149-.466q-.143-.19-.461-.191a.62.62 0 0 0-.484.209.75.75 0 0 0-.179.514v1.739h-.562v-1.805a.74.74 0 0 0-.143-.466q-.144-.19-.466-.191a.63.63 0 0 0-.49.203.76.76 0 0 0-.18.526v1.733zm5.124 1.136v-4.011h.544v.449a1 1 0 0 1 .364-.365q.246-.15.598-.149.322 0 .568.119.25.113.412.317.168.203.251.478.09.275.09.586 0 .323-.09.597-.09.276-.263.484a1.3 1.3 0 0 1-.424.323 1.3 1.3 0 0 1-.562.114q-.334 0-.574-.138a1 1 0 0 1-.358-.328v1.524zm2.253-2.576q0-.216-.06-.395a1 1 0 0 0-.167-.316.76.76 0 0 0-.269-.216.8.8 0 0 0-.353-.077.8.8 0 0 0-.352.077.8.8 0 0 0-.269.216.9.9 0 0 0-.174.316q-.059.18-.059.395 0 .221.059.412.06.186.174.323a.9.9 0 0 0 .269.209.85.85 0 0 0 .352.072.8.8 0 0 0 .353-.072.8.8 0 0 0 .263-.209 1 1 0 0 0 .173-.323q.06-.191.06-.412m1.289 1.44v-4.327h.562v4.327zm3.454-1.733a.77.77 0 0 0-.209-.52q-.197-.215-.58-.215a.76.76 0 0 0-.561.233.9.9 0 0 0-.156.233.7.7 0 0 0-.066.269zm.568.914a1.28 1.28 0 0 1-.831.837 1.512 1.512 0 0 1-1.01-.03 1.4 1.4 0 0 1-.466-.299 1.5 1.5 0 0 1-.317-.484 1.8 1.8 0 0 1-.113-.651q0-.341.113-.616.114-.28.299-.478a1.3 1.3 0 0 1 .442-.311q.252-.113.52-.113.33 0 .586.113.263.108.436.305.174.198.263.478a1.84 1.84 0 0 1 .084.789h-2.163q.005.192.071.353a.9.9 0 0 0 .18.281.9.9 0 0 0 .274.179q.162.06.341.06.352 0 .538-.168a1 1 0 0 0 .269-.412zm1.488-2.056h.622v.508h-.622v1.494q0 .198.09.299.089.096.31.096.054 0 .12-.006a.5.5 0 0 0 .102-.018v.478q-.036.012-.138.03a1 1 0 0 1-.245.024q-.37 0-.586-.209-.215-.216-.215-.61v-1.578h-.55v-.508h.156q.233 0 .335-.125a.47.47 0 0 0 .107-.317v-.466h.514zm1.371 2.875v-2.875h.556v2.875zm-.125-3.962q0-.174.113-.287.12-.12.287-.12.174 0 .287.12.12.113.12.287 0 .167-.12.287a.4.4 0 0 1-.287.113.4.4 0 0 1-.287-.113.4.4 0 0 1-.113-.287m2.199 3.962h-.562v-2.875h.55v.413a.9.9 0 0 1 .394-.383q.24-.113.49-.113.257 0 .449.089a.8.8 0 0 1 .322.239q.132.15.192.359.065.209.065.448v1.823h-.561v-1.727q0-.15-.036-.281a.5.5 0 0 0-.114-.227.5.5 0 0 0-.209-.156.7.7 0 0 0-.311-.059.64.64 0 0 0-.502.233.7.7 0 0 0-.125.251 1 1 0 0 0-.042.305zm3.129.03q.029.304.239.502a.76.76 0 0 0 .543.203q.454 0 .664-.233.215-.233.215-.699v-.413a.85.85 0 0 1-.329.335 1.04 1.04 0 0 1-.55.138q-.286 0-.531-.102a1.4 1.4 0 0 1-.419-.287 1.4 1.4 0 0 1-.275-.442 1.6 1.6 0 0 1-.095-.562q0-.292.095-.544a1.32 1.32 0 0 1 .682-.741q.244-.114.543-.113.336 0 .556.119a.76.76 0 0 1 .329.335v-.401h.556v2.66q0 .274-.072.532a1.14 1.14 0 0 1-.245.46 1.2 1.2 0 0 1-.442.323 1.7 1.7 0 0 1-.682.125q-.268 0-.502-.083a1.4 1.4 0 0 1-.406-.222 1.3 1.3 0 0 1-.287-.34 1.1 1.1 0 0 1-.131-.425zm.866-.64a.76.76 0 0 0 .592-.251q.227-.25.227-.669 0-.418-.227-.669a.76.76 0 0 0-.592-.251.77.77 0 0 0-.603.251q-.228.25-.228.669 0 .424.222.675.227.246.609.245m4.501-2.265h.622v.508h-.622v1.494q0 .198.09.299.089.096.31.096.054 0 .12-.006a.5.5 0 0 0 .102-.018v.478q-.036.012-.138.03a1 1 0 0 1-.245.024q-.37 0-.586-.209-.215-.216-.215-.61v-1.578h-.55v-.508h.156q.233 0 .335-.125a.47.47 0 0 0 .107-.317v-.466h.514zm1.933 2.875h-.562v-4.327h.562v1.787a.87.87 0 0 1 .389-.323q.232-.095.484-.095.257 0 .448.089a.8.8 0 0 1 .323.239q.13.15.191.359.066.209.066.448v1.823h-.562v-1.727q0-.15-.036-.281a.5.5 0 0 0-.113-.227.5.5 0 0 0-.21-.156.7.7 0 0 0-.31-.059.7.7 0 0 0-.287.059.6.6 0 0 0-.203.162.8.8 0 0 0-.132.239 1.2 1.2 0 0 0-.048.299zm4.731-1.733a.77.77 0 0 0-.21-.52q-.196-.215-.579-.215a.76.76 0 0 0-.717.466.7.7 0 0 0-.066.269zm.567.914a1.294 1.294 0 0 1-.83.837q-.21.072-.46.072-.288 0-.55-.102a1.4 1.4 0 0 1-.466-.299 1.5 1.5 0 0 1-.317-.484 1.8 1.8 0 0 1-.114-.651 1.6 1.6 0 0 1 .413-1.094 1.3 1.3 0 0 1 .442-.311q.251-.113.52-.113.328 0 .585.113.263.108.437.305.173.198.263.478a1.9 1.9 0 0 1 .083.789h-2.163q.006.192.072.353a.9.9 0 0 0 .179.281q.12.113.275.179.16.06.341.06.353 0 .537-.168a.95.95 0 0 0 .269-.412zM97.817 111.553q-.413 0-.795-.144a2.1 2.1 0 0 1-.67-.43 2.2 2.2 0 0 1-.465-.693 2.4 2.4 0 0 1-.174-.945q0-.531.18-.938a2.1 2.1 0 0 1 .472-.693q.299-.281.675-.425.382-.149.777-.149.364 0 .67.096.305.095.543.269.24.173.4.424.168.25.252.556l-.544.191q-.12-.484-.46-.741-.335-.257-.861-.257-.287 0-.562.107a1.4 1.4 0 0 0-.484.311q-.209.21-.335.526a1.9 1.9 0 0 0-.125.723q0 .413.125.729.126.312.335.526.216.21.484.317a1.6 1.6 0 0 0 1.052.024q.221-.078.388-.209.174-.138.287-.323.12-.191.186-.406l.52.191q-.084.298-.252.55a1.795 1.795 0 0 1-.95.711 2.1 2.1 0 0 1-.67.102m4.407-1.823a.77.77 0 0 0-.209-.52q-.197-.216-.58-.215a.8.8 0 0 0-.322.065.7.7 0 0 0-.239.168.8.8 0 0 0-.156.233.7.7 0 0 0-.065.269zm.568.914a1.28 1.28 0 0 1-.831.837 1.512 1.512 0 0 1-1.01-.03 1.4 1.4 0 0 1-.466-.299 1.5 1.5 0 0 1-.317-.484 1.8 1.8 0 0 1-.113-.651q0-.341.113-.616.114-.281.299-.478a1.3 1.3 0 0 1 .443-.311q.25-.114.519-.113.33 0 .586.113.263.108.436.305.174.197.263.478a1.84 1.84 0 0 1 .084.789h-2.163q.005.19.071.353a.9.9 0 0 0 .18.28.9.9 0 0 0 .275.18q.161.06.34.059.353 0 .538-.167a.96.96 0 0 0 .269-.412zm2.331-1.488a2 2 0 0 0-.245-.018.8.8 0 0 0-.574.209q-.215.204-.215.676v1.44h-.562v-2.875h.55v.502a1 1 0 0 1 .179-.269.97.97 0 0 1 .454-.257 1.2 1.2 0 0 1 .335-.018 1 1 0 0 1 .078.012zm1.503-.568h.622v.508h-.622v1.494q0 .197.09.299.09.096.311.096.054 0 .119-.006a.5.5 0 0 0 .102-.018v.478q-.036.012-.138.03a1 1 0 0 1-.245.024q-.37 0-.585-.209-.215-.216-.215-.61v-1.578h-.55v-.508h.155q.233 0 .335-.125a.47.47 0 0 0 .107-.317v-.466h.514zm1.372 2.875v-2.875h.555v2.875zm-.126-3.962q0-.174.114-.287a.4.4 0 0 1 .287-.12q.173 0 .286.12.12.113.12.287 0 .167-.12.286a.39.39 0 0 1-.286.114.4.4 0 0 1-.287-.114.4.4 0 0 1-.114-.286m2.755-.383a.9.9 0 0 1 .335.06v.502a.4.4 0 0 0-.084-.024 1 1 0 0 0-.161-.012.57.57 0 0 0-.305.096.4.4 0 0 0-.108.149.6.6 0 0 0-.042.239v.46h1.901v2.875h-.556v-2.367h-1.345v2.367h-.579v-2.367h-.532v-.508h.532v-.484q0-.239.071-.424a.829.829 0 0 1 .502-.496q.173-.066.371-.066m.854.371q0-.174.114-.287a.4.4 0 0 1 .287-.12.38.38 0 0 1 .287.12.38.38 0 0 1 .119.287q0 .167-.119.286a.4.4 0 0 1-.287.114.4.4 0 0 1-.287-.114.4.4 0 0 1-.114-.286m2.842 1.53a.8.8 0 0 0-.328.065.8.8 0 0 0-.281.186.9.9 0 0 0-.192.316 1.2 1.2 0 0 0-.071.437q0 .244.071.436.072.185.192.317a.8.8 0 0 0 .281.191.9.9 0 0 0 .334.066q.204 0 .341-.06a.7.7 0 0 0 .233-.15.7.7 0 0 0 .149-.191q.054-.108.078-.191l.496.215a1.305 1.305 0 0 1-.418.604 1.3 1.3 0 0 1-.383.209 1.4 1.4 0 0 1-.496.084q-.317 0-.585-.114a1.4 1.4 0 0 1-.455-.323 1.6 1.6 0 0 1-.304-.484 1.7 1.7 0 0 1-.108-.609 1.7 1.7 0 0 1 .108-.616 1.417 1.417 0 0 1 1.338-.908 1.4 1.4 0 0 1 .879.292q.16.132.257.299.095.162.143.323l-.508.215a1.3 1.3 0 0 0-.083-.215.6.6 0 0 0-.15-.191.76.76 0 0 0-.538-.203m1.754 1.673q0-.192.065-.341a.8.8 0 0 1 .18-.263 1 1 0 0 1 .281-.173q.161-.066.346-.096l.777-.113q.132-.018.174-.078a.22.22 0 0 0 .047-.137.49.49 0 0 0-.149-.359q-.144-.155-.472-.155-.299 0-.46.167a.68.68 0 0 0-.192.412l-.538-.125q.024-.204.12-.377.102-.173.257-.292.155-.126.359-.192a1.4 1.4 0 0 1 .442-.071q.322 0 .55.089.227.084.37.227a.86.86 0 0 1 .209.335q.066.192.066.4v1.441q0 .19.012.305.012.113.024.167h-.55a2 2 0 0 1-.024-.144 4 4 0 0 1-.006-.245.977.977 0 0 1-.585.431 1.1 1.1 0 0 1-.341.048q-.221 0-.4-.072a1 1 0 0 1-.299-.185.9.9 0 0 1-.198-.275.9.9 0 0 1-.065-.329m1.04.388q.173 0 .322-.041a.7.7 0 0 0 .263-.144.7.7 0 0 0 .18-.263 1.1 1.1 0 0 0 .065-.4v-.132l-.878.132a.6.6 0 0 0-.299.137q-.12.102-.12.293 0 .162.126.293a.46.46 0 0 0 .341.125m3.02-2.492h.622v.508h-.622v1.494q0 .197.09.299.09.096.311.096.053 0 .119-.006a.5.5 0 0 0 .102-.018v.478q-.036.012-.138.03a1 1 0 0 1-.245.024q-.37 0-.585-.209-.216-.216-.215-.61v-1.578h-.55v-.508h.155q.233 0 .335-.125a.47.47 0 0 0 .107-.317v-.466h.514zm3.279 1.142a.78.78 0 0 0-.209-.52q-.198-.216-.58-.215a.8.8 0 0 0-.323.065.7.7 0 0 0-.239.168.8.8 0 0 0-.155.233.7.7 0 0 0-.066.269zm.568.914q-.06.192-.18.359a1.27 1.27 0 0 1-.651.478q-.21.072-.46.072-.288 0-.55-.102a1.4 1.4 0 0 1-.466-.299 1.5 1.5 0 0 1-.317-.484 1.8 1.8 0 0 1-.114-.651 1.6 1.6 0 0 1 .413-1.094q.191-.203.442-.311.251-.114.52-.113.328 0 .586.113.262.108.436.305.173.197.263.478a1.84 1.84 0 0 1 .084.789h-2.164q.006.19.072.353a.9.9 0 0 0 .179.28.9.9 0 0 0 .275.18 1 1 0 0 0 .341.059q.352 0 .538-.167a.96.96 0 0 0 .268-.412zm2.229.819v-2.875h.556v2.875zm-.126-3.962q0-.174.114-.287a.4.4 0 0 1 .287-.12q.173 0 .286.12.12.113.12.287 0 .167-.12.286a.39.39 0 0 1-.286.114.4.4 0 0 1-.287-.114.4.4 0 0 1-.114-.286m1.876 3.036q.03.226.198.382.167.155.472.155.239 0 .364-.113a.35.35 0 0 0 .126-.269.32.32 0 0 0-.096-.233.56.56 0 0 0-.275-.138l-.49-.107a.96.96 0 0 1-.532-.287.77.77 0 0 1-.185-.52.8.8 0 0 1 .078-.347 1.007 1.007 0 0 1 .544-.49q.191-.07.4-.071.293 0 .49.083.203.084.329.209.125.12.185.251.066.132.09.228l-.496.185a1 1 0 0 0-.042-.138.5.5 0 0 0-.096-.155.5.5 0 0 0-.179-.131.65.65 0 0 0-.281-.054.5.5 0 0 0-.347.119.34.34 0 0 0-.131.263q0 .275.329.347l.466.101q.395.084.591.311a.77.77 0 0 1 .204.544.8.8 0 0 1-.066.311.93.93 0 0 1-.52.496 1.2 1.2 0 0 1-.466.084q-.299 0-.514-.084a1.2 1.2 0 0 1-.353-.209 1 1 0 0 1-.215-.269 1 1 0 0 1-.09-.275zm3.958 2.061v-4.01h.543v.448a1 1 0 0 1 .365-.364q.245-.15.598-.149.322 0 .567.119.251.114.413.317.167.203.251.478.09.274.089.586 0 .322-.089.597-.09.276-.263.484a1.3 1.3 0 0 1-.425.323q-.245.114-.561.114a1.13 1.13 0 0 1-.574-.138 1 1 0 0 1-.359-.329v1.524zm2.253-2.575q0-.216-.06-.395a1 1 0 0 0-.167-.317.77.77 0 0 0-.622-.292.8.8 0 0 0-.353.077.8.8 0 0 0-.269.215.9.9 0 0 0-.173.317q-.06.18-.06.395 0 .22.06.412.06.185.173.323a.9.9 0 0 0 .269.209.9.9 0 0 0 .353.072.8.8 0 0 0 .353-.072.8.8 0 0 0 .263-.209 1 1 0 0 0 .173-.323q.06-.192.06-.412m2.885-.867a2 2 0 0 0-.245-.018.8.8 0 0 0-.574.209q-.215.204-.215.676v1.44h-.562v-2.875h.55v.502a1 1 0 0 1 .179-.269.97.97 0 0 1 .455-.257 1.2 1.2 0 0 1 .334-.018 1 1 0 0 1 .078.012zm1.801 1.895a.9.9 0 0 0 .34-.066.8.8 0 0 0 .287-.197.9.9 0 0 0 .197-.323q.072-.192.072-.442 0-.252-.072-.437a.9.9 0 0 0-.197-.322.8.8 0 0 0-.287-.198.911.911 0 0 0-.681 0 .8.8 0 0 0-.287.198.9.9 0 0 0-.197.322 1.2 1.2 0 0 0-.072.437q0 .25.072.442a.9.9 0 0 0 .197.323.8.8 0 0 0 .287.197.9.9 0 0 0 .341.066m0-2.552q.322 0 .591.119a1.39 1.39 0 0 1 .771.801q.108.274.108.604 0 .328-.108.609a1.4 1.4 0 0 1-.305.484 1.5 1.5 0 0 1-.466.323 1.5 1.5 0 0 1-.591.114q-.324 0-.592-.114a1.5 1.5 0 0 1-.466-.323 1.4 1.4 0 0 1-.305-.484 1.7 1.7 0 0 1-.108-.609q0-.33.108-.604a1.4 1.4 0 0 1 .771-.801q.268-.12.592-.119m4.054 2.617a.73.73 0 0 1-.359.335 1.2 1.2 0 0 1-.49.102q-.251 0-.454-.09a1 1 0 0 1-.335-.245 1.2 1.2 0 0 1-.215-.365 1.4 1.4 0 0 1-.072-.454v-1.811h.562v1.727q0 .15.036.287a.7.7 0 0 0 .114.233.55.55 0 0 0 .197.162q.126.06.305.059.34 0 .508-.203.173-.202.173-.532v-1.733h.562v2.343q0 .174.006.317.012.137.024.215h-.538a1 1 0 0 1-.018-.15 4 4 0 0 1-.006-.197m1.796-1.099q0 .22.054.412.059.185.167.323a.8.8 0 0 0 .263.215.8.8 0 0 0 .359.078.76.76 0 0 0 .346-.078.8.8 0 0 0 .263-.221.9.9 0 0 0 .161-.329q.06-.191.06-.412 0-.449-.221-.723-.215-.276-.603-.275a.8.8 0 0 0-.353.077.8.8 0 0 0-.269.209 1 1 0 0 0-.167.317q-.06.185-.06.407m1.679 1.01a.95.95 0 0 1-.328.364 1 1 0 0 1-.562.15q-.317 0-.568-.114a1.3 1.3 0 0 1-.43-.323 1.5 1.5 0 0 1-.269-.484 1.85 1.85 0 0 1 0-1.177q.1-.275.281-.478.179-.21.43-.329.251-.126.556-.125.191 0 .334.041a.9.9 0 0 1 .437.269.6.6 0 0 1 .107.174v-1.859h.556v3.795a4 4 0 0 0 .03.532h-.544a1 1 0 0 1-.024-.15 4 4 0 0 1-.006-.239zm1.5.436v-4.327h.561v4.327zm1.619 1.201.717-1.518-1.237-2.558h.645l.897 1.984.86-1.984h.604l-1.871 4.076zm4.52-.066v-4.01h.544v.448q.12-.214.365-.364t.597-.149q.324 0 .568.119.252.114.413.317.167.203.251.478.089.274.089.586 0 .322-.089.597-.09.276-.263.484a1.3 1.3 0 0 1-.425.323q-.244.114-.562.114-.334 0-.573-.138a1 1 0 0 1-.359-.329v1.524zm2.253-2.575a1.2 1.2 0 0 0-.059-.395 1 1 0 0 0-.168-.317.772.772 0 0 0-.621-.292.8.8 0 0 0-.353.077.8.8 0 0 0-.269.215.9.9 0 0 0-.173.317q-.06.18-.06.395 0 .22.06.412.06.185.173.323a.9.9 0 0 0 .269.209.9.9 0 0 0 .353.072.8.8 0 0 0 .352-.072.8.8 0 0 0 .263-.209 1 1 0 0 0 .174-.323q.06-.192.059-.412m2.886-.867a2 2 0 0 0-.245-.018.8.8 0 0 0-.574.209q-.216.204-.215.676v1.44h-.562v-2.875h.55v.502a1 1 0 0 1 .179-.269.97.97 0 0 1 .454-.257 1.2 1.2 0 0 1 .335-.018 1 1 0 0 1 .078.012zm2.506.574a.77.77 0 0 0-.21-.52q-.197-.216-.579-.215a.8.8 0 0 0-.323.065.7.7 0 0 0-.239.168.8.8 0 0 0-.221.502zm.567.914a1.294 1.294 0 0 1-.83.837 1.4 1.4 0 0 1-.461.072q-.286 0-.549-.102a1.4 1.4 0 0 1-.467-.299 1.5 1.5 0 0 1-.316-.484 1.8 1.8 0 0 1-.114-.651 1.6 1.6 0 0 1 .413-1.094q.19-.203.442-.311a1.2 1.2 0 0 1 .52-.113q.328 0 .585.113.263.108.437.305.173.197.263.478a1.9 1.9 0 0 1 .083.789h-2.163q.006.19.072.353a.9.9 0 0 0 .179.28.9.9 0 0 0 .275.18q.161.06.34.059.354 0 .538-.167a.96.96 0 0 0 .269-.412zm.974-.107q.03.226.198.382.167.155.472.155.239 0 .364-.113a.35.35 0 0 0 .126-.269.32.32 0 0 0-.096-.233.56.56 0 0 0-.275-.138l-.49-.107a.96.96 0 0 1-.532-.287.77.77 0 0 1-.185-.52.8.8 0 0 1 .078-.347 1 1 0 0 1 .544-.49q.191-.07.4-.071.293 0 .49.083.204.084.329.209.125.12.185.251.066.132.09.228l-.496.185a1 1 0 0 0-.042-.138.5.5 0 0 0-.096-.155.5.5 0 0 0-.179-.131.65.65 0 0 0-.281-.054.5.5 0 0 0-.347.119.34.34 0 0 0-.131.263q0 .275.329.347l.466.101q.394.084.591.311a.77.77 0 0 1 .204.544.8.8 0 0 1-.066.311.93.93 0 0 1-.52.496 1.2 1.2 0 0 1-.466.084q-.299 0-.514-.084a1.2 1.2 0 0 1-.353-.209 1 1 0 0 1-.215-.269 1 1 0 0 1-.09-.275zm4.371-.807a.78.78 0 0 0-.209-.52q-.198-.216-.58-.215a.8.8 0 0 0-.323.065.7.7 0 0 0-.239.168.8.8 0 0 0-.155.233.7.7 0 0 0-.066.269zm.567.914a1.272 1.272 0 0 1-.83.837q-.21.072-.46.072-.288 0-.55-.102a1.4 1.4 0 0 1-.466-.299 1.5 1.5 0 0 1-.317-.484 1.8 1.8 0 0 1-.114-.651 1.6 1.6 0 0 1 .413-1.094q.191-.203.442-.311.251-.114.52-.113.328 0 .586.113.262.108.436.305.173.197.263.478a1.84 1.84 0 0 1 .083.789h-2.163q.006.19.072.353a.9.9 0 0 0 .179.28.9.9 0 0 0 .275.18 1 1 0 0 0 .341.059q.353 0 .537-.167a.95.95 0 0 0 .269-.412zm1.297.819h-.561v-2.875h.549v.413a.9.9 0 0 1 .395-.383q.239-.114.49-.113.257 0 .448.089a.925.925 0 0 1 .514.598q.066.209.066.448v1.823h-.562v-1.727q0-.15-.036-.281a.5.5 0 0 0-.113-.227.5.5 0 0 0-.21-.156.7.7 0 0 0-.31-.059.63.63 0 0 0-.628.484 1 1 0 0 0-.042.304zm3.547-2.875h.622v.508h-.622v1.494q0 .197.09.299.09.096.311.096.054 0 .119-.006a.5.5 0 0 0 .102-.018v.478q-.036.012-.137.03-.102.024-.246.024-.37 0-.585-.209-.215-.216-.215-.61v-1.578h-.55v-.508h.155q.233 0 .335-.125a.47.47 0 0 0 .107-.317v-.466h.514zm3.279 1.142a.78.78 0 0 0-.209-.52q-.198-.216-.58-.215a.8.8 0 0 0-.323.065.7.7 0 0 0-.239.168.9.9 0 0 0-.155.233.7.7 0 0 0-.066.269zm.568.914q-.06.192-.18.359a1.3 1.3 0 0 1-.651.478 1.508 1.508 0 0 1-1.01-.03 1.4 1.4 0 0 1-.466-.299 1.5 1.5 0 0 1-.317-.484 1.8 1.8 0 0 1-.113-.651 1.6 1.6 0 0 1 .412-1.094q.191-.203.442-.311.251-.114.52-.113.328 0 .586.113.263.108.436.305t.263.478a1.84 1.84 0 0 1 .084.789h-2.164q.006.19.072.353a.9.9 0 0 0 .179.28q.12.114.275.18a1 1 0 0 0 .341.059q.352 0 .538-.167a1 1 0 0 0 .269-.412zm1.069-.627q0 .22.054.412.06.185.168.323a.76.76 0 0 0 .621.293.8.8 0 0 0 .347-.078.85.85 0 0 0 .424-.55q.06-.191.06-.412 0-.449-.221-.723-.216-.276-.604-.275a.8.8 0 0 0-.353.077.8.8 0 0 0-.268.209 1 1 0 0 0-.168.317q-.06.185-.06.407m1.68 1.01a.95.95 0 0 1-.329.364 1 1 0 0 1-.562.15q-.317 0-.567-.114a1.3 1.3 0 0 1-.431-.323 1.6 1.6 0 0 1-.269-.484 1.88 1.88 0 0 1 0-1.177q.102-.275.281-.478.18-.21.431-.329.25-.126.555-.125.191 0 .335.041a.9.9 0 0 1 .436.269.6.6 0 0 1 .108.174v-1.859h.556v3.795a4 4 0 0 0 .03.532h-.544a1 1 0 0 1-.024-.15 4 4 0 0 1-.006-.239zm3.746-2.439h.622v.508h-.622v1.494q0 .197.09.299.09.096.311.096.054 0 .119-.006a.5.5 0 0 0 .102-.018v.478q-.036.012-.138.03a1 1 0 0 1-.245.024q-.37 0-.585-.209-.215-.216-.215-.61v-1.578h-.55v-.508h.155q.233 0 .335-.125a.47.47 0 0 0 .107-.317v-.466h.514zm2.574 2.463a.9.9 0 0 0 .34-.066.8.8 0 0 0 .287-.197.9.9 0 0 0 .197-.323q.072-.192.072-.442 0-.252-.072-.437a.9.9 0 0 0-.197-.322.8.8 0 0 0-.287-.198.911.911 0 0 0-.681 0 .8.8 0 0 0-.287.198.9.9 0 0 0-.197.322 1.2 1.2 0 0 0-.072.437q0 .25.072.442a.9.9 0 0 0 .197.323.8.8 0 0 0 .287.197.9.9 0 0 0 .341.066m0-2.552q.322 0 .591.119a1.39 1.39 0 0 1 .771.801q.108.274.108.604 0 .328-.108.609a1.4 1.4 0 0 1-.305.484 1.5 1.5 0 0 1-.466.323 1.5 1.5 0 0 1-.591.114q-.324 0-.592-.114a1.5 1.5 0 0 1-.466-.323 1.4 1.4 0 0 1-.305-.484 1.7 1.7 0 0 1-.108-.609q0-.33.108-.604a1.4 1.4 0 0 1 .771-.801q.268-.12.592-.119m3.294 3.436v-.472h3.06v.472zm3.239 0v-.472h3.06v.472zm3.239 0v-.472h3.06v.472zm3.24 0v-.472h3.059v.472zm3.239 0v-.472h3.06v.472zm3.239 0v-.472h3.06v.472zm3.239 0v-.472h3.06v.472zm3.239 0v-.472h3.06v.472zm3.239 0v-.472h3.06v.472zm3.239 0v-.472h3.06v.472zm3.24 0v-.472h3.059v.472z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#E3E5F5\",\n strokeWidth: 0.996,\n d: \"M300.888 96.498H20\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#343C6A\",\n d: \"M78.337 83.743q-1.032 0-1.953-.362a4.9 4.9 0 0 1-1.617-1.032 5 5 0 0 1-1.088-1.618q-.404-.948-.404-2.133t.404-2.134a5 5 0 0 1 1.116-1.632q.698-.67 1.603-1.031a5.2 5.2 0 0 1 1.91-.363q1.02 0 1.8.293.795.279 1.338.753.558.46.893 1.046.349.585.502 1.185l-1.813.572a3 3 0 0 0-.279-.712 2.2 2.2 0 0 0-.53-.641 2.6 2.6 0 0 0-.794-.46 3.1 3.1 0 0 0-1.116-.181q-.558 0-1.102.209-.543.195-.976.6a3 3 0 0 0-.697 1.031q-.265.628-.265 1.465 0 .795.25 1.408.266.6.684 1.018.433.405.976.627.558.21 1.158.21.627 0 1.101-.182.489-.195.823-.488.335-.293.544-.641.21-.363.307-.711l1.799.543a4.4 4.4 0 0 1-.488 1.172q-.336.585-.907 1.073a4.7 4.7 0 0 1-1.352.81q-.781.306-1.827.306m10.222-4.42a1.5 1.5 0 0 0-.111-.488 1 1 0 0 0-.28-.433 1.2 1.2 0 0 0-.473-.306 1.6 1.6 0 0 0-.67-.126 1.55 1.55 0 0 0-1.115.446 1.5 1.5 0 0 0-.307.433 1.5 1.5 0 0 0-.112.474zm1.73 2.245a2.9 2.9 0 0 1-.405.85q-.265.39-.655.684-.39.292-.92.46a3.4 3.4 0 0 1-1.144.181q-.711 0-1.353-.237a3.4 3.4 0 0 1-1.13-.725 3.5 3.5 0 0 1-.78-1.157 4.1 4.1 0 0 1-.28-1.548q0-.823.28-1.492.279-.67.739-1.13a3.3 3.3 0 0 1 1.087-.725 3.2 3.2 0 0 1 1.27-.265q1.603 0 2.496.948.892.949.892 2.608 0 .195-.014.376-.015.168-.014.196H85.45q.014.335.153.627.153.28.377.488.237.21.543.335.307.111.656.111.655 0 1.018-.292.376-.294.544-.754zm5.741-3.054a3 3 0 0 0-.558-.056q-.362 0-.683.098t-.558.32a1.7 1.7 0 0 0-.39.6q-.14.363-.14.92v3.138h-1.854v-6.86h1.799v1.017q.153-.334.39-.544.251-.222.516-.335.279-.111.544-.153.279-.042.502-.042.111 0 .209.014.112 0 .223.014zm3.864-1.84h1.38v1.645h-1.38v2.872q0 .447.195.628.21.167.614.167.167 0 .334-.014a1 1 0 0 0 .237-.042v1.534a2 2 0 0 1-.39.112 3 3 0 0 1-.655.056q-1.005 0-1.59-.558t-.586-1.562v-3.193h-1.24v-1.646h.348q.543 0 .795-.307.265-.32.265-.78v-.963h1.673zm2.956 6.86v-6.86h1.855v6.86zm-.223-9.106q0-.488.334-.823.335-.334.809-.334.488 0 .809.334.335.335.335.823 0 .46-.335.795a1.07 1.07 0 0 1-.809.335q-.474 0-.809-.335a1.09 1.09 0 0 1-.334-.795m6.28 3.835v5.27h-1.868v-5.27h-1.144v-1.59h1.144v-.78q0-.587.167-1.047.181-.474.502-.809a2.3 2.3 0 0 1 .795-.515q.46-.182 1.032-.182.292 0 .544.042.265.042.376.098v1.561a.8.8 0 0 0-.209-.041 2 2 0 0 0-.376-.028q-.154 0-.321.042a.9.9 0 0 0-.321.153.8.8 0 0 0-.237.279q-.084.18-.084.474v.753h4.588v6.86h-1.84v-5.27zm2.524-3.849q0-.488.335-.823t.809-.334.809.334q.334.335.334.823 0 .474-.334.809-.335.32-.809.32t-.809-.32a1.1 1.1 0 0 1-.335-.809m7.138 3.765q-.362 0-.683.126-.307.125-.544.376a1.7 1.7 0 0 0-.376.6q-.14.362-.14.822 0 .461.14.823.139.363.376.614.25.251.558.376.32.126.683.126.349 0 .614-.098.279-.111.474-.279.195-.167.307-.376.125-.21.181-.405l1.631.544a3 3 0 0 1-.376.85q-.251.405-.655.74-.405.321-.949.516-.543.21-1.227.21-.753-.001-1.422-.266a3.6 3.6 0 0 1-1.144-.767 3.6 3.6 0 0 1-.767-1.143 3.8 3.8 0 0 1-.279-1.465q0-.794.265-1.464.279-.669.753-1.143a3.4 3.4 0 0 1 1.13-.753 3.6 3.6 0 0 1 1.408-.28q.698 0 1.241.21.558.195.963.516.404.32.655.74.25.418.363.85l-1.66.558a1.85 1.85 0 0 0-.488-.795q-.348-.363-1.032-.363m4.14 3.486q0-.46.153-.809.167-.361.446-.627.279-.265.642-.418a3.7 3.7 0 0 1 .809-.223l1.687-.251q.293-.042.404-.168a.5.5 0 0 0 .112-.32.82.82 0 0 0-.293-.628q-.279-.265-.865-.265-.613 0-.948.335a1.27 1.27 0 0 0-.362.78l-1.646-.348q.042-.405.251-.809.21-.404.572-.725.363-.321.892-.516.53-.21 1.228-.21.809 0 1.38.224.572.21.92.572.363.348.516.823.168.474.168.99v3.374q0 .279.028.6.027.306.055.488h-1.701a6 6 0 0 1-.056-.377 9 9 0 0 1-.014-.446q-.264.405-.767.711-.487.307-1.255.307-.543 0-.99-.181a2.4 2.4 0 0 1-.739-.446 2.2 2.2 0 0 1-.474-.656 2.1 2.1 0 0 1-.153-.78m2.747.684q.292 0 .558-.07.279-.084.488-.265a1.4 1.4 0 0 0 .334-.488 2 2 0 0 0 .126-.767v-.307l-1.548.237a1.23 1.23 0 0 0-.614.265q-.237.195-.237.6 0 .306.223.558.223.237.67.237m7.434-5.676h1.381v1.646h-1.381v2.872q0 .447.196.628.208.167.613.167.168 0 .335-.014a1 1 0 0 0 .237-.042v1.534a2 2 0 0 1-.391.112 3 3 0 0 1-.655.056q-1.004 0-1.59-.558-.585-.558-.585-1.562v-3.193h-1.242v-1.646h.349q.544 0 .795-.307.265-.32.265-.78v-.963h1.673zm7.309 2.65a1.5 1.5 0 0 0-.112-.488 1 1 0 0 0-.279-.433 1.2 1.2 0 0 0-.474-.306 1.6 1.6 0 0 0-.669-.126 1.55 1.55 0 0 0-1.116.446q-.195.195-.307.433a1.5 1.5 0 0 0-.111.474zm1.729 2.245a2.9 2.9 0 0 1-.405.85q-.264.39-.655.684-.39.292-.92.46a3.4 3.4 0 0 1-1.144.181q-.711 0-1.352-.237a3.4 3.4 0 0 1-1.13-.725 3.5 3.5 0 0 1-.781-1.157q-.279-.684-.279-1.548 0-.823.279-1.492a3.5 3.5 0 0 1 .739-1.13 3.3 3.3 0 0 1 1.088-.725 3.2 3.2 0 0 1 1.269-.265q1.603 0 2.496.948.892.949.892 2.608 0 .195-.014.376a4 4 0 0 0-.013.196h-4.909q.014.335.153.627.154.28.377.488.237.21.544.335a1.9 1.9 0 0 0 .655.111q.655 0 1.018-.292a1.65 1.65 0 0 0 .544-.754zm8.085.488q.335 0 .655-.126.321-.125.558-.362.237-.251.377-.614.153-.363.153-.85 0-.49-.153-.851a1.7 1.7 0 0 0-.377-.6 1.5 1.5 0 0 0-.558-.376 1.78 1.78 0 0 0-1.31 0q-.321.125-.558.376a1.9 1.9 0 0 0-.391.6 2.4 2.4 0 0 0-.139.85q0 .49.139.851.154.362.391.614.237.237.558.362.32.126.655.126m0-5.592q.767 0 1.422.279.67.265 1.144.753.488.474.753 1.143.279.67.279 1.465 0 .794-.279 1.464a3.4 3.4 0 0 1-.753 1.143 3.4 3.4 0 0 1-1.144.767 3.8 3.8 0 0 1-1.422.265q-.767 0-1.436-.265a3.6 3.6 0 0 1-1.144-.767 3.7 3.7 0 0 1-.753-1.143 4 4 0 0 1-.265-1.465q0-.794.265-1.464.279-.669.753-1.143a3.4 3.4 0 0 1 1.144-.753 3.7 3.7 0 0 1 1.436-.28m8.241-1.492q-.153 0-.334.042a.8.8 0 0 0-.307.153.8.8 0 0 0-.237.279q-.084.18-.084.474v.753h1.548v1.59h-1.548v5.27h-1.869v-5.27h-1.143v-1.59h1.143v-.78q0-.587.168-1.047.181-.474.502-.809a2.3 2.3 0 0 1 .795-.515q.459-.182 1.032-.182a3.3 3.3 0 0 1 .543.042q.266.042.377.098v1.561a.8.8 0 0 0-.209-.041 2 2 0 0 0-.377-.028m11.261 6.303h-4.016l-.823 2.259h-2.036l3.793-9.887h2.231l3.765 9.887h-2.091zm-3.375-1.757h2.733l-1.366-3.737zm10.36-1.339q-.362 0-.683.126-.307.125-.544.376a1.7 1.7 0 0 0-.377.6 2.3 2.3 0 0 0-.139.822q0 .461.139.823.14.363.377.614.25.251.558.376.32.126.683.126.348 0 .614-.098.278-.111.474-.279.195-.167.306-.376.126-.21.182-.405l1.631.544q-.111.433-.376.85-.252.405-.656.74a3.3 3.3 0 0 1-.948.516q-.543.21-1.227.21-.753-.001-1.422-.266a3.6 3.6 0 0 1-1.144-.767 3.6 3.6 0 0 1-.767-1.143 3.8 3.8 0 0 1-.279-1.465q0-.794.265-1.464.279-.669.753-1.143a3.4 3.4 0 0 1 1.13-.753 3.6 3.6 0 0 1 1.408-.28q.698 0 1.241.21.558.195.962.516.405.32.656.74.25.418.362.85l-1.659.558a1.85 1.85 0 0 0-.488-.795q-.348-.363-1.032-.363m6.44 5.355h-1.855V73.438h1.855v3.807q.334-.404.85-.572a3 3 0 0 1 1.004-.181q.656 0 1.13.223.487.21.795.572.321.362.474.864t.153 1.06v4.323h-1.854v-4.002q0-.585-.307-.976-.293-.39-.962-.39-.587 0-.921.39-.335.376-.362.948zm6.289 0v-6.86h1.854v6.86zm-.223-9.106q0-.488.334-.823.335-.334.809-.334.488 0 .809.334.335.335.335.823 0 .46-.335.795a1.07 1.07 0 0 1-.809.335q-.474 0-.809-.335a1.09 1.09 0 0 1-.334-.795m8.483 4.895a1.5 1.5 0 0 0-.111-.488 1 1 0 0 0-.279-.433 1.2 1.2 0 0 0-.474-.306 1.6 1.6 0 0 0-.669-.126 1.55 1.55 0 0 0-1.116.446q-.195.195-.307.433a1.5 1.5 0 0 0-.111.474zm1.73 2.245a2.9 2.9 0 0 1-.405.85q-.264.39-.655.684a3 3 0 0 1-.921.46q-.516.18-1.143.181-.711 0-1.353-.237a3.4 3.4 0 0 1-1.129-.725 3.5 3.5 0 0 1-.781-1.157q-.279-.684-.279-1.548 0-.823.279-1.492a3.5 3.5 0 0 1 .739-1.13 3.3 3.3 0 0 1 1.088-.725 3.2 3.2 0 0 1 1.269-.265q1.604 0 2.496.948.892.949.892 2.608 0 .195-.014.376a5 5 0 0 0-.014.196h-4.908q.013.335.153.627.153.28.377.488.237.21.544.335a1.9 1.9 0 0 0 .655.111q.655 0 1.018-.292a1.65 1.65 0 0 0 .544-.754zm5.228 1.966h-1.854l-2.803-6.86h2.036l1.701 4.6 1.632-4.6h1.952zm8.009-4.211a1.5 1.5 0 0 0-.112-.488 1 1 0 0 0-.279-.433 1.2 1.2 0 0 0-.474-.306 1.6 1.6 0 0 0-.669-.126 1.55 1.55 0 0 0-1.116.446q-.195.195-.307.433a1.5 1.5 0 0 0-.111.474zm1.729 2.245a2.9 2.9 0 0 1-.405.85q-.264.39-.655.684-.39.292-.92.46-.517.18-1.144.181-.711 0-1.352-.237a3.4 3.4 0 0 1-1.13-.725 3.5 3.5 0 0 1-.781-1.157q-.279-.684-.279-1.548 0-.823.279-1.492a3.5 3.5 0 0 1 .739-1.13 3.3 3.3 0 0 1 1.088-.725 3.2 3.2 0 0 1 1.269-.265q1.603 0 2.496.948.892.949.892 2.608 0 .195-.014.376a4 4 0 0 0-.013.196h-4.909q.013.335.153.627.154.28.377.488.237.21.544.335a1.9 1.9 0 0 0 .655.111q.655 0 1.018-.292a1.65 1.65 0 0 0 .544-.754zm1.558 1.966v-6.86h1.771v.836q.14-.251.362-.447.224-.195.489-.32.278-.126.571-.195.307-.07.586-.07.711 0 1.241.293.53.292.795.85.404-.627.948-.878a2.8 2.8 0 0 1 1.227-.265q.474 0 .921.153.446.14.794.46.35.322.558.823.21.489.209 1.171v4.449h-1.798v-4.072q0-.558-.293-.92-.279-.377-.921-.377-.599 0-.934.405-.335.39-.335.948v4.016h-1.84v-4.072q0-.558-.293-.92-.293-.377-.921-.377-.613 0-.948.39t-.334.963v4.016zm16.772-4.211a1.5 1.5 0 0 0-.112-.488 1 1 0 0 0-.279-.433 1.2 1.2 0 0 0-.474-.306 1.6 1.6 0 0 0-.669-.126 1.54 1.54 0 0 0-1.422.879 1.5 1.5 0 0 0-.112.474zm1.729 2.245a2.9 2.9 0 0 1-.404.85 2.9 2.9 0 0 1-.656.684q-.39.292-.92.46a3.4 3.4 0 0 1-1.144.181q-.711 0-1.352-.237a3.4 3.4 0 0 1-1.13-.725 3.55 3.55 0 0 1-.781-1.157q-.279-.684-.279-1.548 0-.823.279-1.492.28-.67.739-1.13a3.3 3.3 0 0 1 1.088-.725 3.2 3.2 0 0 1 1.269-.265q1.604 0 2.496.948.893.949.893 2.608 0 .195-.014.376-.014.168-.014.196h-4.909q.014.335.154.627.153.28.376.488.237.21.544.335a1.9 1.9 0 0 0 .655.111q.656 0 1.018-.292.377-.294.544-.754zm3.413 1.966h-1.855v-6.86h1.799v.85q.32-.53.865-.781a2.7 2.7 0 0 1 1.115-.251q.642 0 1.102.223.474.21.781.572.306.362.446.864.153.502.153 1.06v4.323h-1.854v-4.002q0-.585-.307-.976-.293-.39-.962-.39-.613 0-.948.418-.335.404-.335 1.004zm8.576-6.86h1.38v1.645h-1.38v2.872q0 .447.195.628.209.167.613.167.168 0 .335-.014a1 1 0 0 0 .237-.042v1.534a2 2 0 0 1-.39.112 3 3 0 0 1-.656.056q-1.004 0-1.589-.558-.586-.558-.586-1.562v-3.193h-1.241v-1.646h.348q.544 0 .795-.307.265-.32.265-.78v-.963h1.674z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#343C6A\",\n fillRule: \"evenodd\",\n d: \"M147.186 59.268a1.32 1.32 0 0 1-.944-.38c-.249-.25-.417-.629-.417-1.14 0-.518.169-.897.417-1.145a1.32 1.32 0 0 1 .944-.376c.357 0 .695.127.944.376.249.248.417.627.417 1.144 0 .518-.168.896-.417 1.145s-.587.376-.944.376m0-4.694c-1.806 0-3.173 1.328-3.173 3.173 0 1.833 1.367 3.174 3.173 3.174s3.174-1.34 3.174-3.174c0-1.845-1.368-3.173-3.174-3.173M132.171 59.313c-.356 0-.695-.13-.944-.38s-.417-.63-.417-1.14c0-.519.168-.897.417-1.145.249-.25.587-.377.944-.377.356 0 .695.128.944.377.248.248.417.626.417 1.144s-.169.896-.417 1.144c-.249.25-.588.377-.944.377m0-4.695c-1.806 0-3.174 1.33-3.174 3.174 0 1.833 1.368 3.174 3.174 3.174s3.173-1.341 3.173-3.174c0-1.845-1.367-3.174-3.173-3.174M155.299 60.902h1.801v-3.578c0-.296.093-.554.256-.736.162-.18.401-.295.711-.295.326 0 .547.108.688.274.145.169.22.414.22.71v3.625h1.79v-3.578c0-.29.092-.548.255-.732a.9.9 0 0 1 .699-.3c.332 0 .553.109.693.274.142.17.215.414.215.71v3.626h1.755v-3.945c0-.809-.267-1.396-.685-1.78-.416-.382-.971-.551-1.53-.551-.396 0-.76.067-1.086.231-.278.14-.525.347-.739.633-.348-.566-.983-.864-1.733-.864-.547 0-1.18.216-1.579.638v-.493h-1.731zM154.62 54.777v1.836l-.141-.029a2.2 2.2 0 0 0-.446-.045c-.382 0-.722.094-.965.321-.243.226-.409.602-.409 1.208v2.834h-1.798v-6.13h1.751v.591c.432-.52 1.104-.621 1.526-.621a4 4 0 0 1 .374.024zM122.221 57.948h1.756l.02.02a.1.1 0 0 1 .025.052c.034.384.185.675.411.868s.517.282.82.282c.37 0 .673-.137.883-.374.208-.236.316-.563.316-.933v-5.135h1.899v5.188c0 1.66-1.27 3.05-3.085 3.05-.906 0-1.666-.301-2.199-.824-.52-.51-.831-1.24-.845-2.125zM143.758 53.56l.1.029v-1.39l-.046-.022a1.3 1.3 0 0 0-.314-.082 3 3 0 0 0-.447-.035c-.619 0-1.316.205-1.676.574-.361.37-.56.895-.56 1.524v.294h-.905v1.597h.905v4.853h1.8170000000000002V56.05h1.226v-1.597h-1.226v-.271c0-.283.099-.446.226-.54a.77.77 0 0 1 .458-.133c.235 0 .371.032.442.052M139.261 59.467l.094-.028v1.396l-.043.02a1.2 1.2 0 0 1-.295.083 2.5 2.5 0 0 1-.42.036c-.583 0-1.233-.206-1.572-.577-.339-.37-.526-.898-.526-1.53v-2.818h-.851V54.46h.851v-1.724h1.704v1.724h1.152v1.59h-1.152v2.795c0 .284.093.447.212.542a.7.7 0 0 0 .431.133c.22 0 .349-.032.415-.053\",\n clipRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#343C6A\",\n d: \"M113.453 61.152c.194.188.057.51-.219.51h-1.726a.61.61 0 0 1-.617-.598V59.39c0-.267.332-.4.527-.212zM116.151 61.282a1.293 1.293 0 0 1 0-1.838l1.843-1.832a1.314 1.314 0 0 1 1.85 0c.511.508.511 1.33 0 1.838l-1.843 1.832a1.314 1.314 0 0 1-1.85 0M111.281 56.68a1.293 1.293 0 0 1 0-1.838l3.102-3.085a1.314 1.314 0 0 1 1.85 0c.511.508.511 1.33 0 1.838l-3.103 3.085a1.313 1.313 0 0 1-1.849 0M113.817 58.878a1.293 1.293 0 0 1 0-1.838l4.192-4.165a1.314 1.314 0 0 1 1.85 0c.511.508.511 1.33 0 1.838l-4.192 4.165a1.314 1.314 0 0 1-1.85 0M170.029 56.034l.144.605.987 4.605v.013a3.5 3.5 0 0 1-.868.053 5 5 0 0 1-.895-.106h-.013a6 6 0 0 1-.158-.5q-.066-.29-.145-.592a10 10 0 0 0-.144-.579 3.3 3.3 0 0 0-.171-.473 2 2 0 0 0-.264-.027h-.171q-.065 0-.157.014h-.224q-.092.21-.158.5-.052.276-.118.592-.053.302-.119.592a2 2 0 0 1-.184.513q-.013 0-.026.013h-.013q-.106.026-.527 0-.42-.027-1.315-.013-.013 0-.027-.014a6 6 0 0 0 .093-.513q.065-.42.184-1.091.118-.671.276-1.54.171-.88.395-1.868.224-.987.486-2.052.264-1.066.579-2.118a1.4 1.4 0 0 1 .198-.014h.71q.276-.013.711-.052l.118.526q.092.342.184.79.105.433.211.934.118.5.223.96t.198.842m-1.698 1.473a10 10 0 0 1 .5-.013 38 38 0 0 0-.236-1.763q-.093-.63-.171-.855-.066-.224-.145-.092-.066.12-.132.5l-.131.96a58 58 0 0 1-.158 1.25q.224.013.473.013m7.111 1.603q.188 0 .308.033l-.044.561a9 9 0 0 1-.055.518q-.033.231-.088.407a.53.53 0 0 1-.121.242q-.187.265-.495.375a2.3 2.3 0 0 1-.65.132 4 4 0 0 1-.727 0 12 12 0 0 0-.682-.022 1.73 1.73 0 0 1-.947-.485 1.34 1.34 0 0 1-.407-.66 3.8 3.8 0 0 1-.133-.826 12 12 0 0 1-.011-.88 4.6 4.6 0 0 0-.022-.804q0-.397.066-.793.011-.12.078-.33l.099-.32a.74.74 0 0 1 .242-.286q.175-.12.396-.198.231-.089.485-.121.264-.033.528-.033.22.022.418.01a2.2 2.2 0 0 1 .441 0q.353.023.671.133.32.11.551.33.155.111.231.297.089.188.132.44.044.254.044.573.012.309.022.672a1.5 1.5 0 0 1-.33.033 7 7 0 0 1-1.068-.088q-.055-.385-.319-.595-.264-.22-.694-.11a.72.72 0 0 0-.374.242q-.066.045-.099.22-.044.343-.044.694 0 .352-.022.738-.023.253.121.396a.84.84 0 0 0 .363.199q.21.044.43.021a.9.9 0 0 0 .352-.12.47.47 0 0 0 .165-.254q.066-.187.099-.33.11.01.297.01l.397-.021a4 4 0 0 1 .396 0m4.75-3.37q.274.013.627.034a1 1 0 0 1 .011.132 1 1 0 0 1 .011.132v.11a36 36 0 0 0 .011 2.345q.044 1.146-.033 2.323 0 .144-.011.287 0 .142-.132.165h-.132q-.177 0-.363-.011a3 3 0 0 0-.353-.022q-.121 0-.242.022-.11.01-.231.01a.17.17 0 0 1-.11-.087.726.726 0 0 1 0-.352.7.7 0 0 0 .022-.188q-.264.264-.672.452a1.8 1.8 0 0 1-.782.187q-.43 0-.737-.297a2.5 2.5 0 0 1-.496-.738 4.3 4.3 0 0 1-.297-.958 6 6 0 0 1-.088-.958q0-.55.143-1.013t.385-.792a1.8 1.8 0 0 1 .595-.529q.341-.198.727-.21.198 0 .363.012.176 0 .319.055.144.044.253.154a.8.8 0 0 1 .188.286 1.2 1.2 0 0 1 .011-.297q.033-.132.033-.264 0-.011.066-.011a.6.6 0 0 1 .165 0h.297zm-2.268 1.74a.84.84 0 0 0-.309.485 1.4 1.4 0 0 0-.055.297q-.01.144-.011.286 0 .495.253.848a.87.87 0 0 0 .727.341q.275 0 .407-.088a.5.5 0 0 0 .199-.264q.066-.176.066-.418.01-.253.011-.562 0-.386-.011-.605a.9.9 0 0 0-.055-.353.24.24 0 0 0-.166-.154 1.3 1.3 0 0 0-.341-.033q-.451 0-.715.22m6.546-3.5q.011-.122.022-.342v-.121q0-.012.143-.022.154-.022.363-.022.22-.012.463 0 .242 0 .418.033v.727q0 1.838.055 3.633.056 1.794.011 3.38-.34 0-.749.01a4 4 0 0 1-.737-.021.2.2 0 0 1-.011-.077 1 1 0 0 0-.011-.176v-.188a.16.16 0 0 0-.055-.077q-.022-.032-.055.033-.165.33-.441.43a1.3 1.3 0 0 1-.583.044q-.628-.044-.991-.32a1.8 1.8 0 0 1-.551-.715 4 4 0 0 1-.242-.98q-.055-.54-.066-1.09 0-.385.044-.749.055-.363.154-.66.11-.309.276-.518a.94.94 0 0 1 .418-.308 2.3 2.3 0 0 1 .65-.132q.363-.033.682 0 .32.023.54.099t.242.176a37 37 0 0 1-.011-.837v-.8029999999999999q.01-.11.011-.199.01-.099.011-.209m-1.365 3.225q-.265.198-.32.584-.054.154-.066.319-.01.165-.011.32 0 .275.066.539.066.253.198.462.133.198.32.32.187.12.418.12.276 0 .43-.12.165-.122.242-.33.088-.21.099-.496a9 9 0 0 0 .022-.65q0-.429-.022-.672a1 1 0 0 0-.077-.385.3.3 0 0 0-.209-.165 1.2 1.2 0 0 0-.364-.044q-.452 0-.726.198m5.283 1.321a3 3 0 0 1-.352-.033v.198q.011.33.022.54.022.21.143.407a.84.84 0 0 0 .374.375q.243.12.474.077a.6.6 0 0 0 .385-.265q.165-.23.143-.682.111.01.297.01l.386-.021a4 4 0 0 1 .396 0q.188 0 .308.033l-.044.562a9 9 0 0 1-.055.517q-.033.231-.088.407a.45.45 0 0 1-.121.231q-.187.265-.484.375a2.3 2.3 0 0 1-.65.132 6 6 0 0 1-.726 0 11 11 0 0 0-.672-.022 1.6 1.6 0 0 1-.573-.198 1.75 1.75 0 0 1-.495-.54 3.5 3.5 0 0 1-.319-.737 4.5 4.5 0 0 1-.165-.86 6 6 0 0 1-.022-.902l.066-.782q.044-.385.176-.748.143-.32.44-.54.297-.231.672-.341.374-.12.792-.132t.815.088q.507.088.815.352.308.265.462.639.165.375.198.825a6 6 0 0 1 0 .914q-.076.023-.297.044a16 16 0 0 1-1.123.077q-.33.012-.638.011-.298 0-.54-.01m1.288-1.442a.7.7 0 0 0-.308-.297.6.6 0 0 0-.176-.077.6.6 0 0 0-.209-.033q-.264 0-.43.055a.7.7 0 0 0-.264.154.7.7 0 0 0-.154.231q-.043.132-.066.275-.022.122-.022.176.01.045.11.067a3 3 0 0 0 .308.01 14 14 0 0 1 1.068 0q.144.012.198.012.066-.012.066-.033v-.122a.8.8 0 0 0-.121-.418m3.373-1.013q0 .121.011.275l.132-.077a.8.8 0 0 0 .143-.088q.231-.165.518-.264a2 2 0 0 1 1.178-.044q.286.077.517.275.056.056.11.187.055-.033.133-.066.077-.043.132-.088.23-.165.517-.264a2 2 0 0 1 1.178-.044q.286.077.518.275.11.1.165.419.066.308.077.748.022.44.011.97 0 .517-.011 1.056l-.022 1.024q-.012.495.011.87a4 4 0 0 1-.694.044h-.682a7 7 0 0 1-.022-.573v-.66q.01-.341 0-.683 0-.34-.022-.638l-.022-.287a2 2 0 0 0-.045-.319 1 1 0 0 0-.077-.275.4.4 0 0 0-.132-.187q-.01-.012-.022-.011-.01 0-.022-.011a.7.7 0 0 0-.165-.055 1 1 0 0 0-.22-.023.7.7 0 0 0-.231.044.6.6 0 0 0-.209.11q.01.43 0 .915l-.022.946-.023.903q0 .43.023.76a4 4 0 0 1-.694.044h-.683a7 7 0 0 1-.022-.573v-.66a10 10 0 0 0 0-.683q0-.34-.022-.638l-.022-.287a2 2 0 0 0-.044-.319 1 1 0 0 0-.077-.275.4.4 0 0 0-.132-.187.03.03 0 0 0-.022-.011.03.03 0 0 1-.022-.011.9.9 0 0 0-.264-.066.64.64 0 0 0-.331.021.6.6 0 0 0-.297.199q-.132.143-.154.44-.022.385-.011.76l.022.738q.022.363.022.726t-.044.727v.044a1.7 1.7 0 0 1-.33.066q-.132.01-.276 0-.142 0-.319-.011a3 3 0 0 0-.44.01q0-1.353-.033-2.708a59 59 0 0 1 .022-2.807q.132.011.22.022h.33a6 6 0 0 1 .375-.033 2 2 0 0 1 .22-.033 1 1 0 0 1 .198 0q.088 0 .088.033.022.187.011.308m6.482-.297a4 4 0 0 1 .793.01q.077.397.176.948.1.54.209 1.1.111.563.231 1.08.122.505.243.837.12-.33.198-.87.077-.54.143-1.123.076-.585.165-1.123.088-.54.22-.87.375.011.76-.011.386-.022.848.01-.177.661-.319 1.267-.133.594-.265 1.167-.142.54-.264 1.134-.11.595-.286 1.167-.165.573-.43 1.09a2.9 2.9 0 0 1-.704.892 2.8 2.8 0 0 1-1.079.584q-.639.198-1.575.143-.11-.33-.11-.75a3.6 3.6 0 0 1 .044-.715q.264 0 .54.022.286.022.506-.033.22-.044.331-.209.12-.165.066-.528a32 32 0 0 0-.584-2.665 279 279 0 0 0-.694-2.576q.398.045.837.022\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#343C6A\",\n fillRule: \"evenodd\",\n d: \"m204.908 55.403-.487 1.343a.55.55 0 0 1-.582.37c-.46-.054-1.185-.175-1.655-.432s-.963-.802-1.257-1.16a.55.55 0 0 1-.002-.69l.868-1.135.972 1.215a.88.88 0 0 0 .596.325zm-2.002-.748a.88.88 0 0 0 .596.326l1.478.183c.016.002.027-.017.017-.03l-1.188-1.567a.176.176 0 1 1 .278-.218l1.215 1.548c.04.063.077.132.099.194.134.375-.065.886-.133 1.01a2 2 0 0 1-.347.426 2.605 2.605 0 0 0-.642 1.054.16.16 0 0 0 .113.204l.645.17a.162.162 0 0 0 .201-.181 3 3 0 0 1-.017-.443c.01-.26.056-.573.194-.825 0 0 .09-.148.136-.25.118-.254.161-.802.174-1.04l.702.075a.294.294 0 0 0 .242-.498l-2.018-2.078a.9.9 0 0 0-.457-.25l-2.839-.578a.294.294 0 0 0-.288.472l.92 1.148z\",\n clipRule: \"evenodd\"\n})))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"logo_svg__a\",\n width: 331,\n height: 216,\n x: 0,\n y: 0,\n colorInterpolationFilters: \"sRGB\",\n filterUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n result: \"hardAlpha\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0.145098 0 0 0 0 0.176471 0 0 0 0 0.356863 0 0 0 0.04 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_3586_30798\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n result: \"hardAlpha\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", {\n dy: 4\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 4\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n values: \"0 0 0 0 0.329412 0 0 0 0 0.372549 0 0 0 0 0.435294 0 0 0 0.16 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n in2: \"effect1_dropShadow_3586_30798\",\n result: \"effect2_dropShadow_3586_30798\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n in: \"SourceGraphic\",\n in2: \"effect2_dropShadow_3586_30798\",\n result: \"shape\"\n})))));\nexport default SvgLogo;","var _rect, _mask, _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgBadge = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 150 151\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 149.089,\n height: 150.127,\n fill: \"#F3F3FE\",\n rx: 8\n})), _mask || (_mask = /*#__PURE__*/React.createElement(\"mask\", {\n id: \"badge_svg__a\",\n fill: \"#fff\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M71.89 16.73a5.45 5.45 0 0 1 5.446 0l46.434 26.808a5.45 5.45 0 0 1 2.723 4.717v11.57h3.873a2.723 2.723 0 0 1 2.723 2.722V92.27a2.723 2.723 0 0 1-2.723 2.722h-3.73v6.881a5.45 5.45 0 0 1-2.723 4.717l-46.434 26.809a5.45 5.45 0 0 1-2.794.729 5.45 5.45 0 0 1-2.795-.729l-46.434-26.809a5.45 5.45 0 0 1-2.723-4.717v-6.88h-4.01A2.723 2.723 0 0 1 16 92.268v-29.72a2.723 2.723 0 0 1 2.723-2.724h4.01v-11.57a5.45 5.45 0 0 1 2.723-4.716z\",\n clipRule: \"evenodd\"\n}))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#C8CEED\",\n fillRule: \"evenodd\",\n d: \"M71.89 16.73a5.45 5.45 0 0 1 5.446 0l46.434 26.808a5.45 5.45 0 0 1 2.723 4.717v11.57h3.873a2.723 2.723 0 0 1 2.723 2.722V92.27a2.723 2.723 0 0 1-2.723 2.722h-3.73v6.881a5.45 5.45 0 0 1-2.723 4.717l-46.434 26.809a5.45 5.45 0 0 1-2.794.729 5.45 5.45 0 0 1-2.795-.729l-46.434-26.809a5.45 5.45 0 0 1-2.723-4.717v-6.88h-4.01A2.723 2.723 0 0 1 16 92.268v-29.72a2.723 2.723 0 0 1 2.723-2.724h4.01v-11.57a5.45 5.45 0 0 1 2.723-4.716z\",\n clipRule: \"evenodd\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6C73A8\",\n d: \"m77.336 16.73-.5.866zm-5.446 0 .5.866zm51.88 26.808-.5.867zm2.723 16.286h-1v1h1zm.143 35.168v-1h-1v1zm-2.723 11.597-.5-.866zm-46.434 26.809-.5-.866zm-2.794.729.013-1h-.026zm-2.795-.729-.5.866zm-46.434-26.809-.5.866zm-2.723-11.597h1v-1h-1zm0-35.168v1h1v-1zm2.723-16.286.5.867zm52.38-27.674a6.45 6.45 0 0 0-6.446 0l1 1.732a4.45 4.45 0 0 1 4.446 0zm46.434 26.808L77.836 15.864l-1 1.732 46.434 26.809zm3.223 5.583a6.45 6.45 0 0 0-3.223-5.583l-1 1.733a4.45 4.45 0 0 1 2.223 3.85zm0 11.57v-11.57h-2v11.57zm-1 1h3.873v-2h-3.873zm3.873 0c.952 0 1.723.77 1.723 1.722h2a3.723 3.723 0 0 0-3.723-3.723zm1.723 1.722v14.86h2v-14.86zm0 14.86V92.27h2V77.408zm0 14.862c0 .951-.771 1.722-1.723 1.722v2a3.723 3.723 0 0 0 3.723-3.722zm-1.723 1.722h-3.73v2h3.73zm-2.73 7.881v-6.88h-2v6.88zm-3.223 5.583a6.45 6.45 0 0 0 3.223-5.583h-2a4.45 4.45 0 0 1-2.223 3.851zm-46.434 26.809 46.434-26.809-1-1.732-46.434 26.809zm-3.307.863a6.44 6.44 0 0 0 3.307-.863l-1-1.732a4.45 4.45 0 0 1-2.28.595zm-3.282-.863a6.45 6.45 0 0 0 3.309.863l-.027-2a4.45 4.45 0 0 1-2.282-.595zm-46.434-26.809 46.434 26.809 1-1.732-46.434-26.809zm-3.223-5.583a6.45 6.45 0 0 0 3.223 5.583l1-1.732a4.45 4.45 0 0 1-2.223-3.851zm0-6.88v6.88h2v-6.88zm1-1h-4.01v2h4.01zm-4.01 0A1.723 1.723 0 0 1 17 92.268h-2a3.723 3.723 0 0 0 3.723 3.724zM17 92.268v-29.72h-2v29.72zm0-29.72c0-.952.771-1.724 1.723-1.724v-2A3.723 3.723 0 0 0 15 62.547zm1.723-1.724h4.01v-2h-4.01zm3.01-12.57v11.57h2v-11.57zm3.223-5.582a6.45 6.45 0 0 0-3.223 5.583h2c0-1.589.847-3.056 2.223-3.85zM71.39 15.864 24.956 42.672l1 1.733 46.434-26.81z\",\n mask: \"url(#badge_svg__a)\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6C73A8\",\n d: \"M55.963 70.113q.725 0 1.283.21.558.195.934.557.39.349.586.837.21.487.209 1.06 0 .766-.404 1.338-.405.573-1.032.781.362.084.67.293.32.21.557.516.237.293.376.683.14.39.14.85 0 .6-.223 1.117-.21.501-.614.864-.39.363-.962.572-.558.21-1.255.209h-3.821v-9.887zM55.67 74.2q.669 0 1.032-.335.377-.335.377-.906 0-.572-.363-.893-.349-.334-1.06-.334h-1.352v2.468zm.195 4.197q.712 0 1.102-.334.39-.35.39-.949 0-.585-.376-.948-.362-.376-1.088-.376h-1.59v2.607zm10.706-.655h-4.016L61.733 80h-2.036l3.793-9.887h2.23L69.487 80h-2.092zm-3.374-1.757h2.733l-1.367-3.737zm11.012 2.231q.6 0 1.143-.181.545-.195.948-.586.405-.39.642-.976.237-.6.237-1.408 0-.81-.237-1.395-.237-.6-.641-.99a2.5 2.5 0 0 0-.935-.586 3.4 3.4 0 0 0-1.143-.195h-1.548v6.317zM70.75 80v-9.887h3.542q1.06 0 1.953.335a4.25 4.25 0 0 1 1.534.976 4.3 4.3 0 0 1 1.018 1.548q.376.92.376 2.092 0 1.17-.376 2.091a4.3 4.3 0 0 1-1.018 1.548q-.656.628-1.548.962a5.5 5.5 0 0 1-1.953.335zm17.482 0-.125-1.13a3 3 0 0 1-.433.502q-.264.238-.641.433-.363.18-.823.293a4.3 4.3 0 0 1-1.018.111q-1.004 0-1.896-.348a4.9 4.9 0 0 1-1.576-1.018 5.1 5.1 0 0 1-1.074-1.618q-.39-.962-.39-2.161t.404-2.148a5 5 0 0 1 1.116-1.632 4.9 4.9 0 0 1 1.617-1.018 5.2 5.2 0 0 1 1.925-.362q.976 0 1.729.265a4.4 4.4 0 0 1 1.325.683q.557.433.92.976.363.544.544 1.116l-1.841.655a2.7 2.7 0 0 0-.307-.669 2.1 2.1 0 0 0-.53-.6 2.5 2.5 0 0 0-.78-.446 2.9 2.9 0 0 0-1.06-.181q-.558 0-1.116.195-.557.195-1.004.614-.432.404-.711 1.046-.28.627-.28 1.505 0 .837.252 1.479.265.627.683 1.06.432.417.99.641.572.21 1.2.21.683 0 1.17-.196.489-.21.796-.502.321-.292.474-.628.166-.335.21-.6h-3.125v-1.673h4.937V80zm3.504 0v-9.887h6.191v1.813H93.66v2.259h3.863V75.9H93.66v2.287h4.267V80z\"\n})));\nexport default SvgBadge;","var _rect, _rect2, _path, _path2, _path3, _path4;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgEmptyCertificates = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 279 183\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 265.448,\n height: 160.945,\n x: 14.123,\n fill: \"#DADEF3\",\n rx: 4.471,\n transform: \"rotate(4.893 14.123 0)\"\n})), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 264.838,\n height: 160.335,\n x: 7.028,\n y: 11.333,\n fill: \"#fff\",\n stroke: \"#DADEF3\",\n strokeWidth: 0.611,\n rx: 4.165\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#C8CEED\",\n d: \"m136.645 80.435 11.948-6.91 10.84 18.808-8.93-1.674-3.018 8.585z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#C8CEED\",\n d: \"m131.061 73.526 11.948 6.91-10.84 18.809-3.018-8.585-8.931 1.674z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#C8CEED\",\n stroke: \"#fff\",\n strokeWidth: 1.484,\n d: \"m141.332 44.426-.41.613.41-.613a2.89 2.89 0 0 0-3.211 0l-1.755 1.174c-.31.207-.689.283-1.054.21l-2.07-.412a2.89 2.89 0 0 0-2.965 1.23l-1.175 1.76a1.4 1.4 0 0 1-.892.597l-2.073.413a2.89 2.89 0 0 0-2.267 2.269l-.413 2.08a1.4 1.4 0 0 1-.596.892l-1.76 1.179a2.89 2.89 0 0 0-1.225 2.96l.413 2.084c.072.364-.003.742-.209 1.051l-1.177 1.766a2.89 2.89 0 0 0 0 3.204l1.177 1.766c.206.308.281.686.209 1.05l-.413 2.084a2.89 2.89 0 0 0 1.225 2.961l.413-.617-.413.617 1.76 1.178c.309.207.523.528.596.892l.413 2.081a2.89 2.89 0 0 0 2.267 2.269l2.073.413a1.4 1.4 0 0 1 .892.597l1.175 1.76a2.89 2.89 0 0 0 2.965 1.23l2.07-.413c.365-.072.744.003 1.054.21l1.755 1.175c.972.65 2.24.65 3.211 0l1.755-1.175c.31-.207.689-.282 1.054-.21l2.07.413a2.89 2.89 0 0 0 2.965-1.23l1.175-1.76c.206-.31.528-.524.893-.597l2.072-.413a2.89 2.89 0 0 0 2.267-2.269l.413-2.08c.073-.365.287-.686.596-.893l1.76-1.178a2.89 2.89 0 0 0 1.225-2.961l-.413-2.083a1.4 1.4 0 0 1 .209-1.052l1.177-1.765a2.89 2.89 0 0 0 0-3.204l-1.177-1.766a1.4 1.4 0 0 1-.209-1.051l.413-2.083a2.89 2.89 0 0 0-1.225-2.961l-1.76-1.178a1.4 1.4 0 0 1-.596-.893l-.413-2.08a2.89 2.89 0 0 0-2.267-2.27l-2.072-.412a1.4 1.4 0 0 1-.893-.597l-1.175-1.76a2.89 2.89 0 0 0-2.965-1.23l-2.07.412a1.4 1.4 0 0 1-1.054-.21z\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#C8CEED\",\n d: \"M107.979 109.013h63.497v4.884h-63.497zM59.254 123.666h160.945v4.471H59.254zM86.078 134.284h107.297v4.471H86.078z\"\n})));\nexport default SvgEmptyCertificates;","var _mask, _path, _path2, _mask2, _path3, _path4, _path5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgEmptyBadge = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 150 149\"\n}, props), _mask || (_mask = /*#__PURE__*/React.createElement(\"mask\", {\n id: \"empty-badge_svg__a\",\n fill: \"#fff\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M79.177.96a7.27 7.27 0 0 0-7.224 0L13.61 34.374a7.27 7.27 0 0 0-3.656 6.307v14.9h-6.68A2.314 2.314 0 0 0 .96 57.893V90.84a2.314 2.314 0 0 0 2.314 2.313h6.679v14.248a7.27 7.27 0 0 0 3.656 6.307l58.344 33.412a7.27 7.27 0 0 0 7.224 0l58.344-33.412a7.27 7.27 0 0 0 3.656-6.307V93.153h5.55a2.314 2.314 0 0 0 2.313-2.313V57.893a2.314 2.314 0 0 0-2.313-2.313h-5.55v-14.9a7.27 7.27 0 0 0-3.656-6.307z\",\n clipRule: \"evenodd\"\n}))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#DADEF3\",\n fillRule: \"evenodd\",\n d: \"M79.177.96a7.27 7.27 0 0 0-7.224 0L13.61 34.374a7.27 7.27 0 0 0-3.656 6.307v14.9h-6.68A2.314 2.314 0 0 0 .96 57.893V90.84a2.314 2.314 0 0 0 2.314 2.313h6.679v14.248a7.27 7.27 0 0 0 3.656 6.307l58.344 33.412a7.27 7.27 0 0 0 7.224 0l58.344-33.412a7.27 7.27 0 0 0 3.656-6.307V93.153h5.55a2.314 2.314 0 0 0 2.313-2.313V57.893a2.314 2.314 0 0 0-2.313-2.313h-5.55v-14.9a7.27 7.27 0 0 0-3.656-6.307z\",\n clipRule: \"evenodd\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#C8CEED\",\n d: \"m71.953.96.575 1.005zm7.224 0L78.6 1.966zM13.609 34.374l.575 1.004zM9.953 55.58v1.157h1.157V55.58zm0 37.573h1.157v-1.156H9.953zm3.656 20.555-.575 1.004zm58.344 33.412-.575 1.004zm7.224 0 .574 1.004zm58.344-33.412-.575-1.004zm3.656-20.555v-1.156h-1.157v1.156zm0-37.573h-1.157v1.157h1.157zm-3.656-21.207.575-1.004zM72.528 1.965a6.11 6.11 0 0 1 6.073 0l1.15-2.008a8.43 8.43 0 0 0-8.373 0zM14.184 35.377 72.528 1.965l-1.15-2.008-58.344 33.412zM11.11 40.68a6.11 6.11 0 0 1 3.074-5.303l-1.15-2.008a8.43 8.43 0 0 0-4.238 7.31zm0 14.9v-14.9H8.796v14.9zm-7.836 1.157h6.679v-2.314h-6.68zm-1.157 1.156c0-.639.518-1.157 1.157-1.157v-2.313a3.47 3.47 0 0 0-3.47 3.47zm0 32.947V57.893H-.197V90.84zm1.157 1.157a1.157 1.157 0 0 1-1.157-1.157H-.197a3.47 3.47 0 0 0 3.47 3.47zm6.679 0h-6.68v2.313h6.68zM11.11 107.4V93.153H8.796v14.248zm3.074 5.303a6.11 6.11 0 0 1-3.074-5.303H8.796a8.42 8.42 0 0 0 4.238 7.311zm58.344 33.412-58.344-33.412-1.15 2.008 58.344 33.412zm6.074 0a6.11 6.11 0 0 1-6.074 0l-1.15 2.008a8.43 8.43 0 0 0 8.373 0zm58.344-33.412-58.344 33.412 1.15 2.008 58.344-33.412zm3.074-5.303a6.11 6.11 0 0 1-3.074 5.303l1.15 2.008a8.42 8.42 0 0 0 4.237-7.311zm0-14.248v14.248h2.313V93.153zm6.707-1.156h-5.55v2.313h5.55zm1.156-1.157c0 .639-.517 1.157-1.156 1.157v2.313a3.47 3.47 0 0 0 3.47-3.47zm0-16.473V90.84h2.314V74.367zm0-16.474v16.474h2.314V57.893zm-1.156-1.157c.638 0 1.156.519 1.156 1.157h2.314a3.47 3.47 0 0 0-3.47-3.47zm-5.55 0h5.55v-2.313h-5.55zM140.02 40.68v14.9h2.313v-14.9zm-3.074-5.303a6.11 6.11 0 0 1 3.074 5.303h2.313c0-3.02-1.616-5.81-4.237-7.311zM78.602 1.965l58.344 33.412 1.15-2.008L79.751-.043z\",\n mask: \"url(#empty-badge_svg__a)\"\n})), _mask2 || (_mask2 = /*#__PURE__*/React.createElement(\"mask\", {\n id: \"empty-badge_svg__b\",\n width: 130,\n height: 131,\n x: 10.803,\n y: 8.893,\n fill: \"#000\",\n maskUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M10.803 8.893h130v131h-130z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M79.09 10.723a6.28 6.28 0 0 0-6.243 0L22.415 39.604a6.28 6.28 0 0 0-3.16 5.452v12.598h-4.311a3.14 3.14 0 0 0-3.141 3.141v26.197a3.14 3.14 0 0 0 3.14 3.14h4.311v12.598a6.28 6.28 0 0 0 3.16 5.451l50.433 28.881a6.3 6.3 0 0 0 3.187.831 6.3 6.3 0 0 0 3.213-.83l50.432-28.881a6.28 6.28 0 0 0 3.16-5.452V90.133h3.823a3.14 3.14 0 0 0 3.141-3.141V60.795a3.14 3.14 0 0 0-3.141-3.14h-3.979v-12.6a6.28 6.28 0 0 0-3.16-5.45z\",\n clipRule: \"evenodd\"\n}))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M79.09 10.723a6.28 6.28 0 0 0-6.243 0L22.415 39.604a6.28 6.28 0 0 0-3.16 5.452v12.598h-4.311a3.14 3.14 0 0 0-3.141 3.141v26.197a3.14 3.14 0 0 0 3.14 3.14h4.311v12.598a6.28 6.28 0 0 0 3.16 5.451l50.433 28.881a6.3 6.3 0 0 0 3.187.831 6.3 6.3 0 0 0 3.213-.83l50.432-28.881a6.28 6.28 0 0 0 3.16-5.452V90.133h3.823a3.14 3.14 0 0 0 3.141-3.141V60.795a3.14 3.14 0 0 0-3.141-3.14h-3.979v-12.6a6.28 6.28 0 0 0-3.16-5.45z\",\n clipRule: \"evenodd\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#C8CEED\",\n d: \"m72.847 10.723.497.868zm6.244 0-.497.868zM22.415 39.604l.496.868zm-3.16 18.05v1h1v-1zm0 32.479h1v-1h-1zm3.16 18.048-.497.868zm50.432 28.881.497-.868zm3.187.831.014-1-.012-.001-.013.001zm3.213-.83-.497-.868zm50.432-28.881-.497-.868zm3.16-18.05v-1h-1v1zm-.156-32.478h-1v1h1zm-3.16-18.05.497-.867zm-56.18-28.013a5.28 5.28 0 0 1 5.25 0l.995-1.736a7.28 7.28 0 0 0-7.238 0zM22.912 40.472l50.433-28.881-.994-1.736-50.432 28.882zm-2.657 4.584a5.28 5.28 0 0 1 2.657-4.584l-.994-1.736a7.28 7.28 0 0 0-3.663 6.32zm0 12.598V45.056h-2v12.598zm-5.31 1h4.31v-2h-4.31zm-2.141 2.141c0-1.182.958-2.14 2.14-2.14v-2a4.14 4.14 0 0 0-4.14 4.14zm0 26.197V60.795h-2v26.197zm2.14 2.14a2.14 2.14 0 0 1-2.14-2.14h-2a4.14 4.14 0 0 0 4.14 4.14zm4.311 0h-4.31v2h4.31zm1 13.598V90.133h-2v12.597zm2.657 4.583a5.28 5.28 0 0 1-2.657-4.583h-2a7.28 7.28 0 0 0 3.663 6.319zm50.433 28.881L22.91 107.313l-.994 1.736L72.35 137.93zm2.68.699a5.3 5.3 0 0 1-2.68-.699l-.994 1.736a7.3 7.3 0 0 0 3.694.963zm2.726-.698a5.3 5.3 0 0 1-2.702.698l-.029 1.999a7.3 7.3 0 0 0 3.725-.962zm50.432-28.881L78.75 136.195l.994 1.735 50.432-28.881zm2.657-4.584a5.28 5.28 0 0 1-2.657 4.584l.994 1.735a7.28 7.28 0 0 0 3.663-6.319zm0-12.597v12.597h2V90.133zm4.823-1h-3.823v2h3.823zm2.141-2.141a2.14 2.14 0 0 1-2.141 2.14v2a4.14 4.14 0 0 0 4.141-4.14zm0-13.099v13.099h2V73.893zm0-13.098v13.098h2V60.795zm-2.141-2.14c1.182 0 2.141.958 2.141 2.14h2a4.14 4.14 0 0 0-4.141-4.14zm-3.979 0h3.979v-2h-3.979zm-1-13.6v12.6h2v-12.6zm-2.657-4.583a5.28 5.28 0 0 1 2.657 4.584h2a7.28 7.28 0 0 0-3.663-6.32zM78.594 11.591l50.432 28.881.994-1.736-50.432-28.88z\",\n mask: \"url(#empty-badge_svg__b)\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6C73A8\",\n fillRule: \"evenodd\",\n d: \"M72.806 68.293c0-1.731 1.414-3.134 3.159-3.134s3.159 1.403 3.159 3.133v3.134h-6.318zm-3.79 3.133v-3.133c0-3.808 3.11-6.894 6.949-6.894s6.95 3.086 6.95 6.894v3.133h.631a2.517 2.517 0 0 1 2.528 2.506V83.96a2.517 2.517 0 0 1-2.528 2.507H68.384a2.517 2.517 0 0 1-2.528-2.507V73.932a2.517 2.517 0 0 1 2.528-2.506z\",\n clipRule: \"evenodd\"\n})));\nexport default SvgEmptyBadge;","var _rect, _rect2, _rect3, _path, _path2, _rect4, _rect5, _rect6, _rect7, _rect8, _rect9;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgEmpty = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 160 193\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 148.884,\n height: 177.738,\n x: 0.305,\n y: 14.782,\n fill: \"#C8CEED\",\n rx: 5.693,\n transform: \"rotate(-3.477 .305 14.782)\"\n})), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 144.675,\n height: 172.907,\n x: 7.346,\n y: 12.5,\n fill: \"#fff\",\n stroke: \"#C8CEED\",\n rx: 5.07\n})), _rect3 || (_rect3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 62.11,\n height: 15.81,\n x: 49.194,\n y: 8.469,\n fill: \"#fff\",\n stroke: \"#C8CEED\",\n strokeWidth: 1.129,\n rx: 0.565\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#C8CEED\",\n d: \"M86.284 3a8.53 8.53 0 0 1 2.484 5.534H71.73A8.534 8.534 0 0 1 86.284 3Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#C8CEED\",\n d: \"M61.053 41.783h37.266V92.6L79.686 77.92 61.053 92.6z\"\n})), _rect4 || (_rect4 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 7.905,\n height: 7.905,\n x: 38.467,\n y: 116.314,\n fill: \"#C8CEED\",\n rx: 3.952\n})), _rect5 || (_rect5 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 7.905,\n height: 7.905,\n x: 38.467,\n y: 133.253,\n fill: \"#C8CEED\",\n rx: 3.952\n})), _rect6 || (_rect6 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 7.905,\n height: 7.905,\n x: 38.467,\n y: 150.192,\n fill: \"#C8CEED\",\n rx: 3.952\n})), _rect7 || (_rect7 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 66.627,\n height: 7.905,\n x: 54.277,\n y: 116.314,\n fill: \"#C8CEED\",\n rx: 3.952\n})), _rect8 || (_rect8 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 66.627,\n height: 7.905,\n x: 54.277,\n y: 133.253,\n fill: \"#C8CEED\",\n rx: 3.952\n})), _rect9 || (_rect9 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 66.627,\n height: 7.905,\n x: 54.277,\n y: 150.192,\n fill: \"#C8CEED\",\n rx: 3.952\n})));\nexport default SvgEmpty;","var _circle, _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgEmpty = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 120 122\"\n}, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 60,\n cy: 59.485,\n r: 59.485,\n fill: \"#DADEF3\"\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n stroke: \"#C8CEED\",\n strokeWidth: 1.433,\n d: \"M60.202 109.404c27.726 0 50.202-22.476 50.202-50.202S87.928 9 60.202 9 10 31.476 10 59.202s22.476 50.202 50.202 50.202Z\",\n clipRule: \"evenodd\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6C73A8\",\n d: \"M51.058 39.66c-2.59-1.725-6.058.13-6.058 3.243v32.194c0 3.112 3.468 4.968 6.057 3.242l24.146-16.097c2.314-1.542 2.314-4.942 0-6.484z\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#6C73A8\",\n fillRule: \"evenodd\",\n d: \"M85.45 98.28a1.493 1.493 0 0 0-1.888 1.889l6.671 20.014a1.492 1.492 0 0 0 2.774.148l3.723-8.146c.149-.326.41-.588.737-.737l8.146-3.722a1.492 1.492 0 0 0-.148-2.774z\",\n clipRule: \"evenodd\"\n})));\nexport default SvgEmpty;","\n \n\n","\n \n\n","import { getAssetPath } from './index';\n\n// eslint-disable-next-line no-undef, camelcase\n__webpack_public_path__ = `${getAssetPath()}/`;\n","import TrackingManager from './index';\nimport { getActiveApp } from '@jotforminc/router-bridge'; // eslint-disable-line\n\nconst activeApp = getActiveApp();\nexport default TrackingManager.enableErrorTracking(activeApp);\n","const generatePromiseActionType = baseName => ({\n REQUEST: `${baseName}/REQUEST`,\n SUCCESS: `${baseName}/SUCCESS`,\n ERROR: `${baseName}/ERROR`\n});\n\nexport const ACTION_TYPES = {\n RESET: 'RESET',\n SET_USER: 'SET_USER',\n SET_VIDEO: 'SET_VIDEO',\n TICK_ACTION: 'TICK_ACTION',\n SET_COURSES: 'SET_COURSES',\n SET_WISHLIST: 'SET_WISHLIST',\n SET_CAPTIONS: 'SET_CAPTIONS',\n RESTART_VIDEO: 'RESTART_VIDEO',\n REFRESH_COURSES: 'REFRESH_COURSES',\n SET_CERTIFICATES: 'SET_CERTIFICATES',\n HANDLE_PASS_QUIZ: 'HANDLE_PASS_QUIZ',\n SET_CURRENT_STAGE: 'SET_CURRENT_STAGE',\n RESET_VIDEO_STATE: 'RESET_VIDEO_STATE',\n HANDLE_SEEK_VIDEO: 'HANDLE_SEEK_VIDEO',\n TOGGLE_QUIZ_ACTIVE: 'TOGGLE_QUIZ_ACTIVE',\n SET_COURSE_CHAPTERS: 'SET_COURSE_CHAPTERS',\n SET_ACTIVE_COURSE: 'SET_ACTIVE_COURSE',\n UPDATE_USER_PROPERTY: 'UPDATE_USER_PROPERTY',\n UPDATE_USER_FULLNAME: 'UPDATE_USER_FULLNAME',\n HANDLE_SECTION_ACTION: 'HANDLE_SECTION_ACTION',\n HANDLE_ENROLL_CHAPTER: 'HANDLE_ENROLL_CHAPTER',\n TOGGLE_EXIT_QUIZ_MODAL: 'TOGGLE_EXIT_QUIZ_MODAL',\n REGENERATE_CERTIFICATE: 'REGENERATE_CERTIFICATE',\n FETCH_USER: generatePromiseActionType('FETCH_USER'),\n HANDLE_END_QUIZ_COOLDOWN: 'HANDLE_END_QUIZ_COOLDOWN',\n SET_ACTIVE_COURSE_SECTION: 'SET_ACTIVE_COURSE_SECTION',\n SET_COURSE_NOT_FOUND_ERROR: 'SET_COURSE_NOT_FOUND_ERROR',\n FETCH_COURSES: generatePromiseActionType('FETCH_COURSES'),\n SET_SECTION_NOT_FOUND_ERROR: 'SET_SECTION_NOT_FOUND_ERROR',\n SET_NEXT_SECTION_OPENER_ACTIVE: 'SET_NEXT_SECTION_OPENER_ACTIVE',\n HANDLE_PREV_NEXT_COURSE_CONTENT: 'HANDLE_PREV_NEXT_COURSE_CONTENT',\n TOGGLE_COURSES_PANEL_VISIBILITY: 'TOGGLE_COURSES_PANEL_VISIBILITY',\n FETCH_COURSE_CONTENT: generatePromiseActionType('FETCH_COURSE_CONTENT'),\n REFRESH_SECTION_PROPERTIES_N_PROGESS: 'REFRESH_SECTION_PROPERTIES_N_PROGESS',\n ADD_REMOVE_TO_EXPANDED_COURSE_SECTIONS: 'ADD_REMOVE_TO_EXPANDED_COURSE_SECTIONS'\n};\n","import { ACTION_TYPES } from '../actionTypes';\n\nconst initialState = {\n currentStage: '',\n expandedCourseSections: [],\n coursesPanaelVisible: false,\n exitQuizModalVisible: false\n};\n\nexport default function uiReducer(state = initialState, action) {\n switch (action.type) {\n case ACTION_TYPES.RESET: {\n return initialState;\n }\n case ACTION_TYPES.SET_CURRENT_STAGE: {\n const { currentStage } = action;\n return {\n ...state,\n currentStage\n };\n }\n case ACTION_TYPES.TOGGLE_COURSES_PANEL_VISIBILITY: {\n const { coursesPanaelVisible } = state;\n return {\n ...state,\n coursesPanaelVisible: !coursesPanaelVisible\n };\n }\n case ACTION_TYPES.ADD_REMOVE_TO_EXPANDED_COURSE_SECTIONS: {\n const { expandedCourseSections } = state;\n const { actionKey = 'add', courseID } = action;\n const newSections = expandedCourseSections.filter(section => courseID !== section);\n\n return {\n ...state,\n expandedCourseSections: (\n actionKey === 'remove'\n ? newSections\n : [...newSections, courseID]\n )\n };\n }\n case ACTION_TYPES.TOGGLE_EXIT_QUIZ_MODAL: {\n const { visible: exitQuizModalVisible, payload: exitQuizActionPayload } = action;\n return {\n ...state,\n exitQuizActionPayload,\n exitQuizModalVisible\n };\n }\n default:\n return state;\n }\n}\n","import { ACTION_TYPES } from '../actionTypes';\n\nconst initialState = {\n type: '',\n forms: [],\n systemPlans: {},\n permissions: [],\n campaingType: 'NONE',\n availableCampaingList: []\n};\n\nexport default function userReducer(state = initialState, action) {\n switch (action.type) {\n case ACTION_TYPES.RESET: {\n return initialState;\n }\n case ACTION_TYPES.SET_USER_FORMS: {\n return {\n ...state,\n forms: action.forms\n };\n }\n case ACTION_TYPES.FETCH_USER.SUCCESS: {\n return { ...state, ...action.user };\n }\n case ACTION_TYPES.UPDATE_USER_PROPERTY: {\n return {\n ...state,\n credentials: {\n ...state.credentials,\n ...action.changes\n }\n };\n }\n case ACTION_TYPES.SET_WISHLIST: {\n return {\n ...state,\n wishList: action.wishList\n };\n }\n case ACTION_TYPES.SET_CERTIFICATES: {\n return {\n ...state,\n certificates: action.certificates\n };\n }\n default:\n return state;\n }\n}\n","export const pushDataLayer = ({ event, ...rest }) => {\n const { dataLayer, JOTFORM_ENV } = window || {};\n\n if (JOTFORM_ENV !== 'PRODUCTION' || !event) return false;\n if (!dataLayer || !Array.isArray(dataLayer)) return false;\n\n return dataLayer.push({ event, ...rest }) > 0;\n};\n","import { RequestLayer, Interceptors } from '@jotforminc/request-layer';\n\nexport const r = new RequestLayer('/API', {\n interceptorConfig: {\n customResponseInterceptors: [Interceptors.requestManagerResponseNormalizer],\n shouldCache: true,\n logCachePayload: {\n projectName: 'academy'\n }\n }\n});\n","/* eslint-disable camelcase */\nimport { pushDataLayer } from '@jotforminc/utils';\nimport { r as requestLayer } from './requestLayer';\n\nconst formDataCreator = dataArr => {\n const formData = new window.FormData();\n dataArr.forEach(data => {\n if (data.value !== undefined) formData.append(data.key, data.value);\n });\n return formData;\n};\n\nconst withPrefetchedData = (prefetchedKey, handler) => {\n if (typeof window[prefetchedKey] === 'undefined') {\n return handler;\n }\n\n return (...params) => {\n let prefetchedData = window[prefetchedKey];\n if (typeof prefetchedData === 'undefined') {\n return handler(...params);\n }\n if (Array.isArray(window[prefetchedKey])) {\n prefetchedData = [...window[prefetchedKey]];\n } else {\n prefetchedData = { ...window[prefetchedKey] };\n }\n delete window[prefetchedKey];\n return Promise.resolve(prefetchedData);\n };\n};\n\nconst getUserSettingAPI = () => requestLayer.get('user/settings');\n\nexport const getUserSettings = withPrefetchedData('__userSettings', getUserSettingAPI);\n\nexport const fetchUserOwnersAPI = () => {\n return requestLayer.get('user/subusers/owners');\n};\n\nexport const fetchUserOwners = withPrefetchedData('__sharedAccounts', fetchUserOwnersAPI);\n\nexport function fetchUserPlansAPI() {\n return requestLayer.get('system/plans');\n}\n\nexport const fetchUserPlans = withPrefetchedData('__systemPlans', fetchUserPlansAPI);\n\nexport const fetchCombinedUser = () => requestLayer.get(\n 'user/combinedinfo?formCount=1&isAppsCreationFlowAvailable=1&campaign=1'\n);\n\nexport const fetchUser = withPrefetchedData('__userInfo', fetchCombinedUser);\n\nexport const fetchCourses = () => requestLayer.get('courses');\n\nexport const gtmActionWrapper = (actionData = {}) => {\n const {\n action, context, sectionType, dataPayload = {}\n } = actionData;\n if (!action) return;\n\n if (context === 'section') {\n switch (true) {\n case action === 'start':\n pushDataLayer({ event: 'video_start' });\n break;\n case action === 'complete' && sectionType !== 'quiz':\n pushDataLayer({ event: 'video_complete' });\n break;\n case action === 'videoProgress':\n const { video_percent } = dataPayload;\n pushDataLayer({ event: 'video_progress', video_percent });\n break;\n default:\n break;\n }\n } else if (context === 'chapter') {\n switch (true) {\n case ['enroll', 'start', 'complete'].includes(action):\n pushDataLayer({ event: `chapter_${action}` });\n break;\n case ['badgeDownload'].includes(action):\n const { chapterTitle: chapter_name } = actionData;\n pushDataLayer({ event: 'badge_download', chapter_name });\n break;\n default:\n break;\n }\n } else if (context === 'course') {\n switch (action) {\n case 'complete':\n pushDataLayer({ event: `course_${action}` });\n break;\n default:\n break;\n }\n } else if (context === 'certificate' && ['download'].includes(action)) {\n const { certificateCourseName: certificate_program_name } = actionData;\n pushDataLayer({ event: `certificate_${action}`, certificate_program_name });\n }\n};\n\nexport function sendAction({\n action, identifier, context, value, ...rest\n}) {\n gtmActionWrapper({\n action, identifier, context, value, ...rest\n });\n return requestLayer.post('academy/action', {\n action,\n context,\n identifier,\n ...(value !== undefined && { value })\n });\n}\n\nexport const getCourseByID = courseID => requestLayer.get(`course/${courseID}`);\n\nexport const getUserWishlist = () => requestLayer.get('academy/wishlist');\n\nexport const addCourseWishlist = courseID => requestLayer.post(`academy/wishlist/course/${courseID}`);\n\nexport const removeCourseWishlist = courseID => requestLayer.delete(`academy/wishlist/course/${courseID}`);\n\nexport const registerCourseCertification = courseID => requestLayer.post(`course/${courseID}/certificate`);\n\nexport const getUserBadges = () => requestLayer.get('academy/badges');\n\nexport const getUserCertificates = () => requestLayer.get('academy/certificates');\n\nexport const fetchQuizResults = quizSectionID => requestLayer.get(`/API/section/${quizSectionID}/quiz`);\n\nexport const verifyCertificate = certificateID => requestLayer.get(`/API/academy/certificate/${certificateID}`);\n\nexport const logSearchTerms = term => requestLayer.post(\n '/API/search',\n formDataCreator([\n { key: 'term', value: term },\n { key: 'location', value: window.location.href },\n { key: 'project', value: 'academy' }\n ])\n);\n\nexport const updateUserFullname = newFullname => requestLayer.post(\n '/API/user/settings',\n formDataCreator([{ key: 'name', value: newFullname }])\n);\n","/* eslint-disable camelcase */\n/* eslint-disable max-lines */\n/* eslint-disable react/no-unescaped-entities */\n/* eslint-disable max-len */\n\nimport React from 'react';\nimport { t } from '@jotforminc/translation';\nimport CoursesCard1 from '../assets/courses-cards/1.png';\nimport CoursesCard2 from '../assets/courses-cards/2.png';\nimport CoursesCard3 from '../assets/courses-cards/3.png';\n\nimport appImage from '../assets/courses-cards/app.png';\nimport signImage from '../assets/courses-cards/sign.png';\nimport tablesImage from '../assets/courses-cards/tables.png';\nimport enterpriseImage from '../assets/courses-cards/enterprise.png';\nimport jotformFoundation from '../assets/courses-cards/jotform-foundation.png';\n\n// eslint-disable-next-line import/no-cycle\nimport { stringToSecond } from '../utils';\n\nexport const answerSheetsMap = {\n // PROGRAM - Jotform Foundations\n\n // Introduction to Jotform\n 232822685816969: ['D', 'A', 'B', 'B', 'B', 'D', 'D', 'B', 'C', 'C'],\n\n // Introduction to Form Building\n 233093237565964: ['C', 'D', 'B', 'D', 'B'],\n 233102310830942: ['A', 'C', 'D', 'B', 'C'],\n 233102705560950: ['A', 'C', 'D', 'D', 'B'],\n\n // Introduction to Data Management\n 240110699027957: ['C', 'D', 'C', 'C', 'C', 'A', 'B', 'B', 'D', 'C'],\n\n // PROGRAM - Jotform Apps\n 243181267743964: ['C', 'A', 'D', 'D', 'B'],\n 243190901598967: ['A', 'A', 'B', 'C', 'A'],\n 243220724572956: ['C', 'B', 'B', 'D', 'D', 'A', 'B', 'C', 'A', 'D']\n};\n\nexport const announcementVideoConstants = {\n poster: 'https://cdn.jotfor.ms/videos/academy/announcement/poster.png',\n videoSrc: 'https://cdn.jotfor.ms/videos/academy/announcement/jotform-academy-announcement.mp4',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/announcement/jotform-academy-announcement.m3u8'\n};\n\nexport const smallPosters = {\n 'jotform-apps': 'https://cdn.jotfor.ms/videos/academy/jotform-apps/poster-small.png',\n 'jotform-foundations': 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/poster-small.png'\n};\n\nexport const coverImages = {\n 'jotform-apps': appImage,\n 'jotform-sign': signImage,\n 'jotform-tables': tablesImage,\n 'jotform-enterprise': enterpriseImage,\n 'jotform-foundations': jotformFoundation\n};\n\nexport const programObjectives = {\n '018b3787a1e47ff7bf6901aca15c0b15b4c9': [\n 'Identify Jotform’s core products and use cases',\n 'Build a form from scratch following best practices',\n 'Locate and use Jotform Tables, Reports, and Inbox'\n ],\n '018c1fbc27fe7d74ac8da503375303585c5d': [\n 'Understand app and Jotform Apps use cases',\n 'Know how to create an App',\n 'Understand how to access and analyze App-related data'\n ]\n};\n\nexport const chapterConstants = {\n '018b3787a1e47ff7bf6901aca15c0b15b4c9': {\n 1: {\n order: 1,\n coverImage: CoursesCard1,\n title: 'color-pdf-light',\n textColor: 'color-pdf-light',\n backgroundColor: 'navy-gradient',\n sidebarColor: 'border-blue-400',\n theme: 'linear-gradient(109deg, #0C327C 0.95%, #0A1139 100%)'\n },\n 2: {\n order: 2,\n coverImage: CoursesCard2,\n title: 'color-yellow-100',\n textColor: 'color-yellow-100',\n backgroundColor: 'orange-gradient',\n sidebarColor: 'border-orange-500',\n theme: 'linear-gradient(109deg, #F5A51C 0.95%, #FF6100 100%)'\n },\n 3: {\n order: 3,\n coverImage: CoursesCard3,\n title: 'color-green-100',\n textColor: 'color-green-100',\n backgroundColor: 'green-gradient',\n sidebarColor: 'border-tables-default',\n theme: 'linear-gradient(109deg, #007B2A 0.95%, #00A639 100%)'\n }\n },\n '018c1fbc27fe7d74ac8da503375303585c5d': {\n 1: {\n order: 1,\n coverImage: appImage,\n title: 'color-purple-100',\n textColor: 'color-purple-100',\n backgroundColor: 'bg-purple-600',\n sidebarColor: 'border-apps-default',\n theme: 'linear-gradient(109deg, #64278F 0.95%, #0A1139 100%)'\n }\n }\n};\n\nexport const courseConstants = {\n '018b3787a1e47ff7bf6901aca15c0b15b4c9': {\n 1: {\n courseCoverImage: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/poster.png?v-1',\n introVideoSrc: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/01v2.mp4',\n courseOveview: [\n 'State core Jotform value props and products',\n 'Understand different plan costs & limitations',\n 'Develop understanding of all Jotform products & tools'\n ]\n },\n 2: {\n courseCoverImage: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/poster.png?v-1',\n introVideoSrc: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/01v2.mp4',\n courseOveview: [\n 'Deeply understand all form features',\n 'Become familiar with customization options',\n 'Be able to share forms in a variety of different ways'\n ]\n },\n 3: {\n courseCoverImage: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/poster.png?v-1',\n introVideoSrc: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/01v2.mp4',\n courseOveview: [\n 'Become familiar with all data access points',\n 'Understand the best ways to interact with individual responses',\n 'Understand how to access and analyze data in aggregate'\n ]\n }\n },\n '018c1fbc27fe7d74ac8da503375303585c5d': {\n 1: {\n courseCoverImage: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/poster.png?v-1',\n introVideoSrc: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/01-m3u8/01.m3u8',\n courseOveview: false\n }\n }\n};\n\nexport const sectionConstants = {\n '018b3787a1e47ff7bf6901aca15c0b15b4c9': {\n // course 1\n 1.1: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/subtitles/subtitle_chapter_1_1.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/01v2-m3u8/01v2.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(6)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:06\n
\n

Hi, welcome to Jotform Academy!

\n\n

\n I'm Morgan Ziontz and I'll be your guide for this course, Introduction to Jotform. We're really excited you're here and congratulations on taking the steps to master everything Jotform has to offer. In this introductory course, we're providing an overview on the whys, hows and wheres: who Jotform is for and why you should use it, how all of the products and features work together, and where to find everything you need to fully utilize the power of Jotform. After going through the course, you'll have a firm foundation in Jotform basics and can go on to Introduction to Form Building and Introduction to Data Management to see the products and features in action. This course should take you about 30 minutes and we've included some other helpful links for further reading and watching.\n

\n
\n
\n\n
seekVideo(53)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:53\n
\n

Here's what you'll find in the following videos:

\n
    \n
  1. What is Jotform and why should you use it?
  2. \n
  3. What types of plans are available
  4. \n
  5. How to get started with a form
  6. \n
  7. How forms interact with other Jotform tools
  8. \n
\n
\n
\n\n
seekVideo(66)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:06\n
\n

\n We recommend going through each topic in order and you'll need to watch each video in its entirety to complete the course. When you finish the videos, be sure to take the quiz to test your knowledge. You'll need an 80% on the quiz to earn your Introduction to Jotform badge and you can retake the quiz twice every 4 hours until you pass. If you decide to go on to Introduction to Form Building and Introduction to Data Management, you'll also be eligible to receive a certificate in Jotform Foundations. Feel free to reach out to\n {' '}\n academy@jotform.com\n {' '}\n if you have any questions or feedback as you go. Otherwise, good luck and have fun!\n

\n
\n
\n \n )\n },\n 1.2: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/subtitles/subtitle_chapter_1_2.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/02-m3u8/02.m3u8',\n outroDuration: 16,\n getTranscript: seekVideo => (\n <>\n
seekVideo(4)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:04\n
\n

If you’re here, you’re probably already at least somewhat familiar with Jotform, but let’s kick this off with the Jotform basics.

\n
\n
\n
seekVideo(11)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:11\n
\n

Jotform is an online, no-code form builder that makes creating powerful forms and collecting important data incredibly easy. Jotform is trusted by tens of millions of people worldwide to create everything from registration forms, to surveys, to appointment schedulers, to full-fledged digital stores. And because Jotform is a no-code tool you don’t need to have any technical or design expertise to build any of these. Everything you build within Jotform is done by dragging and dropping whatever fields you need, wherever you need them on your form page. What’s more, Jotform has thousands of templates so that you don’t have to start from scratch. You can search or browse the template library until you find something that looks like a good fit, then customize that to your specific needs. When your form is complete you can publish it in a number of ways to start collecting responses and data.

\n
\n
\n
seekVideo(61)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:01\n
\n

Once you’ve shared your form you can manage all of your form data in Jotform Tables. Tables automatically creates a database of all form data so that you can view, sort, filter, and report on it. You can even create different views– if the default spreadsheet view doesn’t give you a full picture, try the report view or the calendar view. You can also pull in data from other forms to easily cross-reference against other form responses.

\n
\n
\n
seekVideo(74)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:14\n
\n

Jotform is also more than forms and data. It’s everything you need to turn your physical paperwork into a digital experience. If you need contracts signed or expenses approved, there are tools built into the system to manage those processes. If you want to sell products we have 40 payment integration options and counting, and the ability to create professional branded PDFs for receipts. If you need to curate a collection of forms that you want easily accessible in a single space, you can create an app using Jotform. And you can manage any communications related to any of these processes with a native email inbox.

\n
\n
\n
seekVideo(120)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:00\n
\n

So, what is Jotform? Jotform is an all-in-one solution to streamline processes and digitize workflows. Keep watching to learn more!

\n
\n
\n \n )\n },\n 1.3: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/subtitles/subtitle_chapter_1_3.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/03-m3u8/03.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(6)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:06\n
\n

Somewhere between understanding what Jotform is and learning how to best use the platform is another big question: Why should you use Jotform? There are virtually endless reasons to use Jotform, some of which we’ve already touched upon: digitization, flexibility, customization. Jotform is trusted by thousands of organizations and millions of individual users, and here are some of their favorite reasons to use the platform.

\n
\n
\n
seekVideo(31)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:31\n
\n

\n First, there are tons of widgets and integrations,to help you seamlessly incorporate Jotform into your existing workflows. Among the most popular are CRM integrations that push form data to your CRM to create or update contacts, as well as integrations to pull data from your CRM to pre-populate forms. There are also email marketing platform integrations that help you grow distribution lists, cloud storage integrations to automatically back up all your form data, and project management integrations to add tasks to your project boards. All of these really just scratch the surface of available options. You can see the full lists at\n {' '}\n https://www.jotform.com/integrations/\n {', and '}\n https://www.jotform.com/widgets/\n .\n

\n
\n
\n
seekVideo(76)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:16\n
\n

Next, data. When you use Jotform, you have access to all kinds of data. First, as we’ve mentioned briefly, all of the data you get as form responses gets collected into Tables so you can easily view and analyze it all in one place. You can also turn that data into reports in a matter of seconds, creating beautiful data visualizations that you can share. In addition to the data from your forms, you also have access to data about your forms. You can use Form Analytics to get a sense of the data behind the data– where your users are coming from, how long they’re spending on your form, even your form conversion rate. These insights can help you target users and create more powerful, more used forms. Iterate on design, language, or integrations and see how that affects your form’s performance over time.

\n
\n
\n
seekVideo(128)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:08\n
\n

Third, Jotform is mobile friendly. You can use the Jotform app to create, share, and track form responses. Your form users will appreciate a responsive form design that looks just as good on their desktops as it does on their phones and tablets. You can even collect responses while offline and trust that they’ll sync to your account as soon as you’re back with an internet connection.

\n
\n
\n
seekVideo(152)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:32\n
\n

Next, let’s talk about design. With Jotform, you can create clean, attractive, easy-to-use forms within a matter of minutes, whether you start from scratch or with a template. You can customize colors, fonts, background images, and overall page layout, and add your logo. You can choose between a card layout, and add your logo. You can choose between a card layout or a page layout design whichever you think is better for your users. If you use a page design you can add in page breaks and a progress tracker so that users have a sense of how much time they’ll be spending on the form. You have multiple question format options and can choose whether or not each question is required. All of these features come together to make a fun and attractive experience for your users, and to create forms that people will actually want to use.

\n
\n
\n
seekVideo(203)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:23\n
\n

That leads us seamlessly to our last point, ease of use for you, the form creator. Jotform is attractive and easy to use on your end as well. In addition to the drag-and-drop functionality and easy access to data, it’s incredibly easy to add in those integrations I mentioned earlier, to adjust form settings, to share your form, and to navigate among various Jotform tools. In many cases, you have a couple of different ways to get started or to move throughout the system, meaning that you can choose what works best for you and for the workflows or processes you’ve created.

\n
\n
\n \n )\n },\n 1.4: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/subtitles/subtitle_chapter_1_4.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/04-m3u8/04.m3u8',\n outroDuration: 14,\n getTranscript: seekVideo => (\n <>\n
seekVideo(6)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:05\n
\n

With Jotform almost everything starts with a form, but Jotform is also so much more than forms. You can send your forms through approval processes, obtain electronic signatures, collect and analyze data, and more, and everything you need is readily and easily available throughout the system. What’s more, these tools are available to you regardless of the Jotform plan you use. All of these tools come together to make Jotform not just a form-builder, but an indispensable workflow automation tool.

\n
\n
\n
seekVideo(37)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:37\n
\n

In the next group of videos we’ll be showing you how to create forms from scratch and from a template, how to add and edit sections, how to design a form that’s attractive to your users, how to add in any needed widgets and integrations, how to adjust overall settings, and how to share your form with the world… or whomever your audience might be.

\n
\n
\n
seekVideo(57)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:57\n
\n

Here I’ll be providing a brief overview of how to create and access your account, as well as where you’ll find other Jotform tools.

\n
\n
\n
seekVideo(65)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:05\n
\n

If you don’t already have an account, you can create one at jotform.com. You’ll see a few options to get started and can choose the one that works best for you. In the remaining videos in this introduction we’ll be talking about the different account types and account limitations, but if this is your first time with Jotform you can always create a free account to get started. If you do already have an account, you can look for the log-in button on the Jotform homepage

\n
\n
\n
seekVideo(98)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:38\n
\n

When you log into your account you’ll be brought to your My Forms landing page. Since everything starts with a form, it makes sense that you’ll land on the page that allows you to easily access any forms you already have, and create new forms. Forms can be archived and deleted from here, as well as opened, edited, etc. When you’re ready to start a form, click the “create form” button.

\n
\n
\n
seekVideo(126)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:06\n
\n

If you need to get to other Jotform tools, you’ll typically have two ways to do that. One is here, from this landing page. Look for the Jotform logo in the left-hand corner. Next to that will be the title of the page you’re on, which is also a drop-down menu to navigate to your other tools, so you can see all of your Tables, Sign Documents, Approval flows, etc. in one place, just like here you see all of your forms. You’ll see this navigation menu in the same spot no matter where you are within the system.

\n

You can also navigate to other tools from within a form. Simply open the form editor and look for that same drop-down menu. When you’re inside of a form this menu will send you directly to the tool that’s associated with that individual form. So if you want to see responses to this specific form in an email format, you can navigate to Inbox. If you want to see all of the data associated with this form you can navigate to Tables, and so on.

\n

Back on the MyForms page you’ll also see page organization and your account options. You can view any archived forms here, deleted forms within a certain time period, and you’ll see these other navigation tools along the top bar. This navigation remains consistent throughout the system, so whatever product you’re looking at– Approvals, for example– you’ll see archived Approvals, etc.

\n

If you’d like to review your account settings, you can do so up here– simply click your avatar in the upper right-hand corner and navigate to whatever you need, whether it’s to review account activity, change your password, or anything else. You’ll find this available in the same spot, on any page you’re in within Jotform.

\n
\n
\n \n )\n },\n 1.5: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/subtitles/subtitle_chapter_1_5.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/05-m3u8/05.m3u8',\n outroDuration: 14,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:05\n
\n

Introduction to other Jotform Products and Tools

\n

With that overview of how to use and navigate forms, let’s also look at the other Jotform tools that you’re able to use when you create a Jotform account. In the next two videos we’ll cover pricing and account limitations, but anyone with a Jotform account will be able to take advantage of these tools.

\n
\n
\n
seekVideo(23)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:23\n
\n

Tables/Reports

\n

\n You’ve already heard us mention Tables and Reports quite a bit, and that’s because they’re a key counterpart to your Forms. Afterall, what good is a form if you can’t easily access and analyze the data you receive from it? Every time you create a form a Table is automatically created as well, featuring all of the form fields included in your form. As responses come in they are collected into Tables, and you can add additional fields as needed to make your Table a full-fledged database of responses.\n {' '}\n Reports\n {' '}\n are a function of Tables that allow you to create data visualizations with just a few clicks of your mouse.\n

\n
\n
\n
seekVideo(59)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:59\n
\n

Inbox

\n

Inbox is another way to view your form responses. By default when somebody responds to your form you’ll receive an email of that response sent to the email account you register with. But what if you want to be able to review responses or follow up with someone without having to dig through your email? Inbox is essentially an email function built into your forms. Each form has an Inbox where you can view each form response in an email format, along with any additional information associated with that form response. If you’re using Approval workflows, for example, you’ll see approval status included here. If you use Inbox to follow up on a response you’ll see that in line with the original form response. You can also create tags and response views to easily locate particular responses in the future.

\n
\n
\n
seekVideo(107)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 1:47\n
\n

Approvals

\n

If getting someone to fill out a form is just the start of a process, check out Approvals. We created Approvals in response to a need to enable users to create flexible workflows within the same space as the data and responses you’re gathering in Forms. Approvals uses the same drag-and-drop interface functionality you’ll become used to with Jotform, and makes it easy to add any number of approvers, customize responses, and automate your workflows, no matter how complex they are.

\n
\n
\n
seekVideo(137)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 2:17\n
\n

Sign Documents/PDF Editor

\n

\n Jotform Sign is an electronic signature solution that allows you to create legally binding signature workflows. It’s also the easiest way to digitize your paper-based signature processes, saving you time and money. We created Sign because of the wide range of Jotform users seeking legally binding signatures on their forms. With this feature you can digitize any fillable documents, assign fields to signers, and create flows to collect signatures, with the same drag-and-drop ease you’ll find throughout the rest of Jotform. You can use our\n {' '}\n PDF Editor\n {' '}\n in the same way, to build any PDF documents you may need.\n

\n
\n
\n
seekVideo(174)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 2:54\n
\n

App/Store builder

\n

\n With Jotform Apps you can create mobile data hubs, no coding required. If you’d like a single space to send people for multiple types of forms, plus downloadable documents, contact information, maps, images, etc., Apps is a quick and easy way to create an app for your organization, tying together all of your forms and anything else someone might need from you. And if you’re looking to sell anything,\n {' '}\n Store Builder\n {' '}\n allows you to do the same thing, with your products or services front-and-center.\n

\n
\n
\n
seekVideo(204)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 3:26\n
\n

Teams

\n

One of our newest features is Jotform Teams, a new way for Jotform Enterprise users to collaborate with each other. This is one feature that’s currently only available to Enterprise users, who are already using the platform in collaborative license. In your shared online workspace, multiple team members can create forms, reports, workflows, and signable documents that are available to everyone on the team without having to share each individually. You can define user roles for each team member, view a log of team activity, and connect with teams across your organization.

\n
\n
\n \n )\n },\n 1.6: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/subtitles/subtitle_chapter_1_6.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/06-m3u8-v2/06.m3u8',\n outroDuration: 10,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:05\n
\n

One of the most important questions that we all ask ourselves when looking at new product or service is “what does it cost?” This is important to assess whether the perceived value of the product or service is worth it. While we believe Jotform’s value is limitless, and one of the goals of this course is to show you everything we offer so you can take full advantage of Jotform, we understand that everyone has decisions to make around budgets.

\n

Jotform has multiple plan options for both individuals and groups of users, from a free plan through Enterprise licenses. This means that there are Jotform plans accessible to everyone.

\n
\n
\n
seekVideo(66)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 1:06\n
\n

For individual users we offer Starter, Bronze, Silver, and Gold plans. If you’d like to check Jotform out, or if you have a limited use case– let’s say a handful of forms a year sent to a specific audience, or occasional one-off signed document requirements– the Starter plan may be everything you need to get started and make full use of the platform. If you have broader needs or expect to gather more responses, check out our paid plans. Each plan includes a certain amount of forms, submissions, payment submissions, and signed documents per month, plus a certain amount of storage. You can see current limits and prices on our pricing page, linked below. Also note that you can upgrade, downgrade or cancel your subscription at any time.

\n

If you’re part of an organization that needs multiple linked Jotform seats, Enterprise is the solution for you. With Enterprise you’ll find all of the features available in individual accounts with additional options for team collaboration, and features like custom domains and white labeling. Costs for Jotform Enterprise vary depending on the number of seats you need, so if you’re looking for an enterprise solution for your organization, you can contact our sales team for pricing – the information on how to do that is also linked below.

\n
\n
\n
seekVideo(112)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 1:52\n
\n

If you’re part of an organization that needs multiple linked Jotform seats, Enterprise is the solution for you. With Enterprise you’ll find all of the features available in individual accounts with additional options for team collaboration, and features like custom domains and white labeling. Costs for Jotform Enterprise vary depending on the number of seats you need, so if you’re looking for an enterprise solution for your organization, you can contact our sales team for pricing – the information on how to do that is also linked below.

\n

Regardless of what plan fits you best, all Jotform users are able to access and use all features. There are sometimes differences between how and when new features are rolled out to individual versus Enterprise users, and sometimes a feature may benefit one audience more than another. In those cases we do our best to be very clear about any differences or delays to each audience. But the core Jotform features: Forms, Tables, customizable PDFs, Reports, Sign Documents – those are available for everyone to use. In the next section we’ll talk a little more about limitations for certain features.

\n
\n
\n \n )\n },\n 1.7: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/subtitles/subtitle_chapter_1_7.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/07-m3u8-v2/07.m3u8',\n outroDuration: 10,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:04\n
\n

Support & Security

\n

In the last section we talked about three things: what Jotform costs, how individual users can get access to more form submissions and data storage with higher level plans, and the difference between individual and Enterprise users. As we mentioned there all Jotform users, regardless of plan, enjoy access to the products and features that make Jotform Jotform. In this section we’ll clarify additional differences between accounts.

\n

First, let’s talk about support. Every Jotform user has access to Jotform’s 24/7 customer support. You can reach support online at jotform.com/contact, and you can typically expect to receive a response within 2 hours. On that page you’ll be asked to define your issue and share any relevant information, and support will use that to get back to you in the order your question is received. What’s more, if you make your question public the entire Jotform user community will be able to benefit from seeing the response. You can also search jotform.com/answers for previous support questions. (I actually do this all the time when I’m not 100% sure how to do something!).

\n

Because of the unique customizations and licensing agreements, Enterprise users benefit from dedicated, real-time phone and email support. Jotform Enterprise has a separate support team available to speak with you whenever you need if you’re an Enterprise user.

\n
\n
\n
seekVideo(84)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 1:26\n
\n

Next, many Jotform users handle protected health information. If you work for a medical office, other health care organization, or may otherwise be managing personal health data within Jotform, you'll need to make sure that you have a plan that includes HIPAA protection.

\n
\n
\n
seekVideo(103)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 1:43\n
\n

We take form and data security very seriously. Regardless of your plan, your forms are served across a protected 256 bit SSL connection, your data is regularly backed up, and you have options to limit form data and access. Jotform is also compliant with any industry standard regulations that apply to our business. You can read all about Jotform’s security measures at the link below.

\n

\n https://www.jotform.com/security/#Form-Encryption\n .\n

\n

\n [https://www.jotform.com/help/717-enterprise-regular-server-vs-hipaa-compliant-server/]\n .\n

\n

\n If you need the extra layer of security to manage patient data, You'll find HIPAA compliance in our Gold and Enterprise level plans, which you can read more about at\n {' '}\n https://www.jotform.com/hipaa/\n .\n {' '}\n Our HIPAA compliant forms automatically encrypt form data, and our signed Business Associate Agreement creates a binding liability to keep your business protected.\n

\n
\n
\n
seekVideo(143)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 2:23\n
\n

Another difference you’ll see across account levels is branding. With Jotform’s free plan all of your forms will have Jotform branding along the bottom of the form. When you upgrade to a paid account you’ll be able to remove this from all of your forms. And, as mentioned in the last section, Enterprise users have additional branding control in the form of white labeling and custom domains. That way your forms can be seamlessly integrated into everything else your organization does. If you or your organization have any particular branding concerns or needs, be sure to select a plan that works for you.

\n

This concludes our introductory section.Be sure to take the quiz and we'll see you in the next section about creating forms when you're ready to move on.

\n
\n
\n \n )\n },\n 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/01.mp4?v=0.1': {\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-01/01-m3u8/01.m3u8?v=0.1'\n },\n\n // course 2\n 2.1: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_1.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/01v2-m3u8/01v2.m3u8',\n outroDuration: 10,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:05\n
\n

Welcome to Introduction to Form Building

\n

Hi! Welcome to Jotform Academy! I’m Morgan Ziontz, and I’ll be your guide for this course, Introduction to Form Building. Congratulations on taking the steps to deepen your Jotform knowledge.

\n

In this course we’re giving you a detailed look at everything you need to know about creating, formatting, and sharing your forms. While Jotform’s drag-and-drop form builder makes it easy to get started, this course will also provide you with everything you need to take a basic form to the next level by adding logos, widgets, logic elements, and more.

\n
\n
\n
seekVideo(40)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:40\n
\n

Since there’s a lot you can do with forms, this course will take about 2 ½ hours to complete in its entirety, including passing the quizzes. By the end of the course you’ll know

\n
    \n
  1. How to design your forms to reflect your organization’s branding,
  2. \n
  3. How to include and set up extras like widgets, integrations, and payment integrations
  4. \n
  5. How to share your forms in multiple different ways,
  6. \n
  7. And everything else you need to know to create well-designed, easy-to-fill forms for your audience.
  8. \n
\n

We recommend going through each topic in order, and you’ll need to watch each video fully to complete the course. Since this is a longer course we’ve included two quizzes, both of which you'll need to pass within 80% to earn your introduction to form building badge. You can retake the quizzes twice every 4 hours until you pass.

\n
\n
\n
seekVideo(95)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 1:35\n
\n

If you decide to complete our Introduction to Jotform and Introduction to Data Management courses you’ll also be eligible to receive a certificate in Jotform Foundations.

\n

\n Feel free to reach out to\n {' '}\n academy@jotform.com\n {' '}\n if you have any questions or feedback as you go. Otherwise, good luck, and have fun!\n

\n
\n
\n \n )\n },\n 2.2: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_2.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/02-m3u8/02.m3u8',\n outroDuration: 14,\n getTranscript: seekVideo => (\n
seekVideo(3)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:00\n
\n

Let’s start at the very beginning: how do you create a form? First, you’ll need to make sure you’re logged into your Jotform account. If you need a reminder of how to sign up for an account or how to log in, check out section 1.4, “Everything starts with a form.” When you log into your account you’ll find yourself at your My Forms page, where you’ll create your forms. Down the line, when you have forms in your account, you’ll also be able to view and edit them from this page.

\n

Before we move on to creating a form, let’s briefly recap Jotform navigation. The items in the navy navigation bar along the very top of the page remain consistent, and provide easy ways to navigate resources and other Jotform tools. Clicking the Jotform logo takes you back to your My Forms page, and next to that logo is a drop-down menu that you can use to get to other landing pages throughout the system. When it comes to navigating the page you’re on, you have the gray panel on the left-hand side, as well as a white bar along the top of the page that you can use to search and sort. When you click on a form you’ll see additional actions appear in that space. Finally, in the center of the page here you can see all of your active forms. On other pages you’ll see your active Tables, Apps, etc., depending on the page you’re on.

\n

You’ve probably already noticed the orange “create form” button on the upper-left of the page and that’s exactly what you’ll want to look for when it’s time to create a form. The next step is to click that, which will take you to a page of options on how to get started. You’ll see 4 options here: from scratch, use a template, import form, and create signable document. We’re not going to cover signable documents in this section because it relates to a separate tool, but let’s look at those other three options.

\n

First, starting from scratch. This is a great option if you want full control over your form content and design. When you “start from scratch” you’ll next be prompted to choose the classic or card layout. Classic design means all questions will appear on the same page, versus the card design where each question lives on it’s own page. Whichever option you choose, from there you’ll have a blank slate.

\n

If you need to get up and running quickly, or want inspiration from others who’ve already tackled similar forms, your next option is to select from one of over 10,000 templates in our Form template library. Clicking “use template” will take you directly to that template library, where you can search, browse, filter, and sort templates to get to one that seems like the right fit for you. When you find one you like click “preview” to get a better look at all of the fields, or “use form” to jump right in. Clicking “use form” will clone a copy of that form into your account where you can then customize it to exactly meet your needs. Note that you can also access the template library in the navy toolbar from anywhere within Jotform.

\n

Your last option is to import a form. Importing a form is actually a cluster of ways to get started – either by pulling something in from a webpage, converting a PDF you already have on file, or, when you have forms already in place, cloning one of your existing forms.

\n

When you choose to “clone an existing form” you’ll see a drop-down menu of all of your forms, and all you’ll need to do is choose the one to clone. This is a great option if you need to almost exactly replicate the design and questions from another form – for example, if you’re sending out an annual survey and just want to make some small changes from last year’s survey. Once your cloned form is created you can easily change or customize any existing fields and layouts.

\n

Let’s say you’re migrating content over to Jotform. Using the annual survey example, maybe you hosted the survey on an individual landing page last year and you want to move it into Jotform for better data management moving forward. In that case, “import from a web page” is your best option. When you click this you’ll just be prompted to enter the URL that you want to pull from, and Jotform will pull in any form fields it finds on the page.

\n

Or maybe you’ve mailed out physical copies of your survey in the past and want to make the transition to digital to save paper, time, and money. If your blank survey is saved in a PDF file you can use “import PDF form” to pull your survey into Jotform. When you choose this option you’ll then be prompted to upload the file and from there, as with the web site option, Jotform will scan that for questions and translate your existing questions into form fields. With both of these options you can still edit and customize the form, but you’re saved from having to entirely replicate the survey.

\n

To summarize: Jotform makes it easy to create a form whether you have form content already or not. To have full control over your form design and content choose “start from scratch.” If you’ve issued your form in another format previously, use “import form” to pull in your form URL or to upload a PDF. And for full templates or inspiration, check out our extensive template library. Now that you know how to get started, check out the next section for how to design your form.

\n
\n
\n )\n },\n 2.3: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_3.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/03-m3u8/03.m3u8',\n outroDuration: 14,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:05\n
\n

Once your form is created you can start designing it at any time. Whether you're still determining what content to include in the form, or after your questions are set up and ready to go. Whenever you decide you’re ready to move into design, start by looking for the paint roller icon on the right-hand side of your form. Clicking on that will open the Form Designer. Even if you use a template you can come here if you want to alter a color or change a background image, for example.

\n

Your options vary slightly depending on whether you use the Classic or Card style of forms, but in either case, you’ll see default themes as well as have the option to create your own design. Let’s first look at the panel for the Card style. When you open the panel you’ll see four tabs: Color, Image, Video, and Layout. In those first 3 tabs, you’ll see ready-made theme options that you can choose out-of-the-box, as well as options to customize your color, image, or video background. Choose customize if you’d like to design your own form from scratch, or if you’d like to use one of the pre-made themes and adjust any of the design elements.

\n

In the custom color menu you’ll be able to add a color gradient to your page, change your font, and change the colors within your section pages, thank you pages, and buttons. When it comes to fonts and colors you’ll be able to make those same changes in other menus as well, so don’t worry about forgetting which tab to go into for those changes. In images you’ll be able to add and edit your own background image to your form, or adjust any of the available themes – for example, by blurring the image a bit, or adding a color overlay. To do that you’ll first choose the image theme you want, then go into the custom menu to make your adjustments. In the custom video menu you can add your own brief video that will loop in the background of your form, or you can edit any of the theme videos. Similar to the images menu, you have some control here over how the video looks when it’s played.

\n

The last tab, layout, allows you to change from a card layout to a classic layout once you’ve already launched your form. Any changes you make to any of these design elements happen in real time and are saved automatically, so there’s no need to remember to save any changes before you move on. And if you create a theme you’d like to be able to access over and over again, look for the “save as theme” button in the bottom of any of the customized menus. If you want to see what the form will look like to your users, look for the Preview Form switch on the right side of the form, and toggle that switch to the on position.

\n
\n
\n
seekVideo(146)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 2:26\n
\n

In the classic form style you’ll see four tabs as well: Colors, Styles, Themes, and Layout. Layout has exactly the same function as in card forms, allowing you to change from a classic to card form once you’ve already created the form. On the Colors tab you’ll see out-of-the-box color schemes or be able to apply your own page, font, background, and field colors. Here you can also add images for your form or page backgrounds. On the styles tab you can adjust form and field widths and spacing between fields, as well as the font, font size, and the style of the buttons on your page. If you do know CSS and want even more control over your page design, you can insert custom CSS here as well. You can also look for the “advanced designer” button at the bottom of the Color and Style tabs for that extra customization. Finally, on the Themes tab you can select from among ready-made themes. If you’d like to use one of these themes but edit the form colors or button styles, you can still do so in the other tabs. If you’d like to explore other themes, you can always visit Jotform’s Theme Store at the link below, to preview and purchase other options.

\n
\n
\n
seekVideo(254)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 4:14\n
\n

Let’s set up a quick and easy example. Here I’m going to create a card-style form with a default video background. All I’m going to do is

\n
    \n
  1. Create my form from scratch and select the “card” layout
  2. \n
  3. Open the Form Designer menu and navigate to Video
  4. \n
  5. Select the video I’d like to use – let’s say Palm Trees
  6. \n
\n

You can see that these changes happen as I click them, no need to save. And from here, I can also make edits to this theme. I can click “custom” in this video menu to edit the video. If I want to make this lighter, for example, I can navigate to Background Effects, select “lighten,” and use the slider to choose how much lighter I’d like it to be.

\n

I can also navigate to the custom menu under Colors to make other small changes, like updating the button color.

\n
\n
\n
seekVideo(309)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 5:09\n
\n

Let’s look at a similar process with a classic form, adding a theme:

\n
    \n
  1. I’ll create a form from scratch and select “classic”
  2. \n
  3. Open the Form Designer and navigate to Themes
  4. \n
  5. Select my theme – let’s say Sunset Hair
  6. \n
  7. And now let’s preview it so we can see what it looks like so far
  8. \n
\n
\n
\n
seekVideo(338)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 5:38\n
\n

Let’s summarize what we talked about in this section. You can design and redesign your forms any time you like, including choosing templates and themes and adjusting them for your purposes. Add colors, background images, even background videos, and preview your form at any time to see it from your user’s perspective. Your design never has to be “done,” you can iterate on it as much as you’d like, at any time – even once your form is launched. But once you have a working design it’s time to move on to the next step. In our next video we’ll be talking about adding in your form fields.

\n
\n
\n \n )\n },\n 2.4: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_4.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/04-m3u8/04.m3u8',\n outroDuration: 14,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:05\n
\n

Adding and Editing Form Fields

\n

Form fields are undoubtedly the most important parts of your form. Afterall, you can send off a page with a beautiful design, but it’s not a form without fields. Getting your fields right, and in the right order, are integral to getting the data you need from your users. In this section we’re looking at how to add and edit form fields.

\n

Thankfully Jotform makes it really easy to add in whatever fields you need, as well as to reorganize them and edit them. With your form open in the Form Editor, look for the “add form element” toolbar on the left-hand side of the page, and click the plus sign to open it. Once the toolbar is open you’ll see three tabs: Basic, Payments, and Widgets. We’ll come back to Payments and Widgets in a later video, but those menus are where you’ll be able to locate any payment processors and widgets to add something extra to your forms. As far as adding them to your forms, moving, and editing them, though, you’ll follow the same process we discuss here.

\n

In the Basic elements tab you’ll find fields that tend to be the bread and butter of forms – fields like name, email, address, and phone number. Here you’ll also see common question formats like multiple choice, drop-down, short answer, and long answer fields, and common survey formats like star and number ratings, and response grids. Additionally, you’ll see more specialized but still common elements like options for scheduling, options for selecting quantity, signature fields, and captchas.

\n

To add fields to your form just drag and drop them wherever you want them to appear on the page. Another option is to simply click the field, which will automatically add it to your form as the last field on the page. To move fields around you can also drag and drop them. Select the field you’d like to move, click and hold on it, and drag it to the spot you want it to appear.

\n

When you click on the field itself you’ll see a trashcan icon to delete the field, as well as a gear icon of settings specific to that fiend. Settings will vary per field, but include things like sublabels, descriptions, field limits, and more. Any changes you make appear instantly and don’t need to be saved, and you can make these changes as often as you need. Continue to add and move fields in the same way until you have everything you need, exactly where you want it.

\n
\n
\n
seekVideo(146)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 2:26\n
\n

In the form design section we pointed out multiple differences between design options in the classic and card versions of forms. When it comes to form elements you’ll still see some small differences, but the majority of fields fields are the same. And while the Form Designer allows you to edit the layout of your entire form, clicking on individual fields will bring up a menu of options specific to that field.

\n

Let’s look at a brief demo of how this all works.

\n
    \n
  1. I’m going to use the same classic form I created in the design video and I’m going to add in just a few basic fields: name, email, and a star rating.
  2. \n
  3. I’m going to change the header of the star rating to “how satisfied are you with today’s service?”
  4. \n
  5. Let’s say I also want to include a subheader in the email field to assure survey participants that we won’t reach out unless we have to. To do that I’m going to click on the email field and look for the gear widget that I mentioned earlier.
  6. \n
  7. On this “general” tab I can change the field label, change how text is aligned throughout the form, choose if this field will be required, and add in a sub-label or other information for context. I can also duplicate this field if I’d like to be able to easily replicate it.
  8. \n
  9. Any fields I require will then include a red asterisk and form users won’t be able to submit unless they complete that field
  10. \n
  11. When it comes to email here I have additional settings as well – on the Options tab I can limit the number of characters, I can exclude certain email domains from responding, I can add in a confirmation email field for extra user security, and I can change the width of the field itself.
  12. \n
  13. Finally, under the Advanced tab I can add a placeholder value to appear inside the field, hover text, and a default response. I can also prevent people from entering values in this field by making it read-only, I can shrink the size of the field for more compact forms, and I can hide the field from users.
  14. \n
  15. Sometimes it’s valuable to have a field on the form for back-end purposes only, sometimes you don’t want form users to be able to see but you want to be able to access and potentially edit after responses come in. That’s where hiding the field comes in handy.
  16. \n
  17. If you’d like to duplicate, require or unrequire, hide or unhide, or delete multiple fields at once, check out the article “How to Manage Multiple Fields,” linked below.
  18. \n
  19. Finally, let’s preview this form so we can see how it’ll look to the form users
  20. \n
\n

Every field will have different settings options, so it’s important to familiarize yourself with the settings for each field. You will see some consistency throughout – for example, you’ll always be able to change the name of the field, choose whether or not it’s required, be able to duplicate, and be able to hide the field.

\n
\n
\n
seekVideo(311)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 5:11\n
\n

That wraps up this section! As a summary, here we discussed adding fields from the Add Form Element toolbar, as well as how access settings and make adjustments to individual fields. We also talked about how to organize fields on the page by simply dragging and dropping them where you want them to appear. In our next section we’re going to talk about the overall form page layout, including headings, logos, and section breaks.

\n
\n
\n \n )\n },\n 2.5: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_5.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/05-m3u8/05.m3u8',\n outroDuration: 14,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:05\n
\n

Headings, Page Breaks, Logos, and More

\n

We’ve now talked about overall form design, as well as how to add, move, and edit your form fields. In this section we’ll talk more about form structure and how to add in the elements that make your forms easier to navigate.

\n

First, if you want to add some extra branding to your forms, you can add your organization logo so it’s one of the first things people see when they're viewing your form. The process here will be different depending on if you’re using the card or the classic version of the form.

\n
    \n
  1. For the classic version you’ll want to look above your form content for a dotted line that says “add your logo.” When you click on that a Logo Properties panel will open that will allow you to upload a new logo, choose from among other images you’ve already added to Jotform, or pull your logo from a website. Once you click to add your logo to the page you’ll see a separate Logo Properties screen that will allow you to adjust the size and orientation of the logo.
  2. \n
  3. For the Card version you’ll also look above the form content, in this case for the dotted line that says “add welcome page.” Since Card Forms only show one question per page, a welcome page can be a beneficial way to introduce your users to what they can expect in the form. They’ll see this before they get to questions. Once you add your welcome page look for the button that says “click to add logo.” You’ll see a Welcome Page Properties panel identical to the Logo Properties panel that we just looked at in classic forms, or you have the option to select from one of hundreds of icons. Here you will not be able to adjust the size or placement of your logo.
  4. \n
  5. Also note that you have a few other options with your Welcome Page as well. You can change the title or subheader here just by clicking on them and typing. You also have the option to include the question count here at the top of the form, so that users know how many questions to expect. Multiple studies show that steps like this – where you’re giving users a sense of how long the form will take them to complete – are likely to increase form conversion rates.
  6. \n
  7. In card forms this welcome page serves as both a title page and a space for your logo, but in the classic version of forms these two elements are separate. When you create your classic form you’ll automatically see a title attached to the very top of your form. To edit the title can click on the field and look for the gear widget properties icon to open the Heading Properties menu. In this menu you’ll see the options to edit the text, add subtext, and change the size and alignment. You can also add a separate image here by clicking on the Heading Image tab.
  8. \n
\n
\n
\n
seekVideo(157)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 2:37\n
\n

Next let’s look at some form elements that can provide context to individual sections of your forms. In both the card and classic version of forms you can use headers and paragraphs to give your users a little more information about what to expect in the next section of the form. For Headers look in the Form Elements panel for “heading” in classic forms and “section header” in card forms. Paragraphs are labeled as “paragraph” in both versions of forms, and are also in the Form Elements panel.

\n
    \n
  1. Headings can be especially useful in longer forms so that users know what to expect from the next section of questions. Think about any longer forms you’ve filled out– things like annual performance surveys, or the census. There are often groups of questions in forms like these, and headings can help categorize different sections. In classic forms, just as with the form title, you can add images to each heading you use.
  2. \n
  3. The paragraph field is a WYSIWYG editor that you can use to add instructions or any other text you might want to include. This can be a simple introduction to a form or section of the form, to links to related resources, to a complex set of instructions with multiple text formats and colors, tables, and even linked form fields. To add your text you’ll click on the paragraph field and look for the pencil icon above the gear settings icon. This will open up the text editor where you can see all the options to create instructive text.
  4. \n
  5. If you’d like to link any of the form fields to the paragraph – for example, to personalize a paragraph by pulling in the name your user added to the name field, look for the Form Fields dropdown menu. Here you’ll see a list of all of your form fields and you can select the field or fields you’d like to use.
  6. \n
  7. When you’re done editing your text, look for the checkmark “save” icon, in the same spot where you saw the pencil “edit” icon prior to editing the text.
  8. \n
\n
\n
\n
seekVideo(271)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 4:31\n
\n

The last section of page elements are those that can help make your classic forms appear cleaner and easier to follow, especially for those longer forms. Since card forms are structured to show only one question per page you won’t see these options in card forms. These elements are section dividers, section collapse, and page breaks, and they’re all available in the Form Elements toolbar.

\n
    \n
  1. You can use section dividers to add a bold line between form fields on your form, to break up different sections. You can also use a heading for similar purposes, but the section break will not include a section title whereas a heading will.
  2. \n
  3. Much like a menu that you can open and close, section collapse condenses a section of your form so that it appears closed by default. You can include text about the section and let users know to click to expand. This can be useful for many reasons– maybe you have a section that includes a long explanation and you want the explanation to be hidden unless needed, or maybe you have a section that’s applicable to some form users but not others
  4. \n
  5. You can use page breaks to divide your form into multiple pages. Again, this can be especially useful for longer forms.
  6. \n
\n
\n
\n
seekVideo(339)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 5:39\n
\n

In this demo I’ve taken the same form that we’ve been building so far and have added a number of additional fields so that we have a longer, more complex form. Let’s add in some of these page elements to provide more structure and context to the form.

\n
    \n
  1. First, let’s add a logo. This will appear above the form itself. To do this I’ll click on the dotted line above my form to add the logo. I have the logo saved on my desktop, so I’ll click upload a file to find it and add it in.
  2. \n
  3. Now that it’s in there, I can adjust the size and spacing until it looks just right
  4. \n
  5. Since this is a classic form, my title is already included at the top of the form, so no need to add that in, but I can click on it to adjust the size and spacing
  6. \n
  7. Next I’m going to add in some section headers so that it’s clear what each group of questions is about. After I do this, I’m also going to add page breaks between each section, so that each group of questions appears on a different page
  8. \n
  9. First I’ll find that section header element and drag it where I want it on the form. I can add a title and subheader
  10. \n
  11. Next I’ll find that page break and drag that where I want it on the form as well – in this case I want to add it right above the section headings
  12. \n
  13. \n A few things happen as I make page breaks\n
      \n
    1. First, right before the page break is now a “next” button. This will allow users to see that there is another section coming, and they’ll need to click that to move to the next section
    2. \n
    3. Second, I now have a new navigation panel along the bottom of my screen that allows me to easily jump to individual pages as I’m building and perfecting my form
    4. \n
    \n
  14. \n
  15. As always, let’s preview this before sending so that we can make sure it’s ready to go.
  16. \n
\n
\n
\n
seekVideo(444)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 7:24\n
\n

That wraps up this section! We covered all of the ways to add structure and navigational elements to your forms, like logos, sections, and page breaks. While this will vary slightly based on whether you’re using Card or Classic forms, generally speaking you’ll find the option to add a logo just above the form itself, and additional page elements in the Form Elements toolbar. If you’d like to add additional pages to your classic forms, look just below the form for the text that says “add new page here.”

\n

There are two more form-builder elements we’re going to look at before moving on to form settings, so stick around for our next videos on widgets and payment integrations.

\n
\n
\n \n )\n },\n 2.6: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_6.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/06-m3u8/06.m3u8',\n outroDuration: 12,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:05\n
\n

Explore Widgets

\n

If you want to take your form to the next level, consider widgets and integrations. We’ll be discussing integrations in a later video, but in this section we'll cover some popular widgets, where to find them, and how to add them to your form.

\n

First, what is a widget? It’s an external program or product that interacts with your form before it’s submitted. So, generally speaking, a space on your form for your user to enter information, just like any other field. This is versus an integration, which interacts with your form after it’s submitted – typically by pushing data from Jotform to another platform.

\n

You’ll find and add widgets in the same way you’d add any other form field: by opening the Form Builder, then the Add Form Element toolbar. You’ll see Widgets as the third tab here. If you’re wondering about that second tab, payments, we’ll be tackling that in the next couple of videos.

\n

There are over 300 widgets available in Jotform, so how do you know which one or ones to choose? You have a couple of options: first, when you’re in that widgets menu you can browse the list. It’s a long list, so searching using the search bar along the top of the menu is a good option. If you’re looking for a calculator, for example, simply searching “calculator” will show you all of the widgets that have “calculator” in the title. If you need a little more information about a widget that looks interesting, you can click the “i” icon that appears when you hover over the widget name. Also here you’ll see a star. If you find widgets that you expect to use over and over, you can click that star for easy reference. When you do that, that widget will appear at the top of the Widgets menu every time you create or edit a form in your account.

\n
\n
\n
seekVideo(100)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 1:40\n
\n

Another option is to view the full list of widgets on the landing page at jotform.com/widgets, linked below. There you can browse through all of the widgets, search, and even look at specific categories of widgets, like “mapping” or “video.” If you’re here and you need more information, simply click on the widget’s name to learn more.

\n

When it’s time to use a widget all you have to do is drag and drop it where you want it to appear on your form. Just as with other form fields, when you click on the widget you’ll see the trashcan icon to delete, and the gear icon for settings that apply to how the widget looks on the page and fits in with the rest of the form. Widgets also have a wand icon for additional settings that pertain to the widget itself. If you’re setting up a widget field and don’t see a setting you expect, be sure to check both of these settings menus for your full list of options.

\n
\n
\n
seekVideo(100)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 1:40\n
\n

Another option is to view the full list of widgets on the landing page at jotform.com/widgets, linked below. There you can browse through all of the widgets, search, and even look at specific categories of widgets, like “mapping” or “video.” If you’re here and you need more information, simply click on the widget’s name to learn more.

\n

When it’s time to use a widget all you have to do is drag and drop it where you want it to appear on your form. Just as with other form fields, when you click on the widget you’ll see the trashcan icon to delete, and the gear icon for settings that apply to how the widget looks on the page and fits in with the rest of the form. Widgets also have a wand icon for additional settings that pertain to the widget itself. If you’re setting up a widget field and don’t see a setting you expect, be sure to check both of these settings menus for your full list of options.

\n
\n
\n
seekVideo(150)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 2:30\n
\n

Now that you know how to add these widgets, let’s talk about some examples. Obviously with over 300 options we can’t go through all of them here, but these are some favorites from Jotform users like you. Be sure to check out that widgets landing page to view the full list of widgets organized by category, and to learn more. Also, remember that if you’re using Card forms there may be some widgets that aren’t available to you because they’re not maximized for Cards formatting.

\n
    \n
  • \n Widgets that give you options for adding image and video content are a popular way to make more dynamic forms.\n {' '}\n Take photo\n {' '}\n , one of the most widely used widgets, allows users to take a photo on their smart phone while using your form, and can be perfect for field workers, accident reports, medical records, and more.\n {' '}\n Image slider\n {' '}\n is a popular widget for showing a carousel of images – maybe ones that you want to sell, or that show off a space you rent out. If you are an artist showing off your work, you can also connect to certain other programs you’re already using, like\n {' '}\n Flickr\n {' '}\n and\n {' '}\n Pinterest\n {' '}\n . To embed video you can connect to sites like\n {' '}\n Vimeo\n {' '}\n and\n {' '}\n YouTube\n {' '}\n . And if you want to have your users record directly into their forms – like if you want your piano student to submit a sample of their evening practice session –\n {' '}\n Loom Video Recorder\n {' '}\n does exactly that. For other multimedia embed and upload options, also consider the widgets in the\n {' '}\n Audio\n {' '}\n and\n {' '}\n Drawing\n {' '}\n categories.\n
  • \n
  • \n Other popular widgets include those that share or collect data in ways that basic fields may not be optimized for. One of the most popular of these is\n {' '}\n terms and conditions\n {' '}\n , which you can use to share your important fine print with your form users.\n {' '}\n Configurable List\n {' '}\n transforms multiple form fields into a single row, and\n {' '}\n Dynamic Dropdown\n {' '}\n allows your users to add additional rows. Both of these can be used to create more concise forms while still collecting the data you need. Widgets like\n {' '}\n Data Grid\n {' '}\n and\n {' '}\n Spreadsheet\n {' '}\n allow you to share full grids of data – Spreadsheet even creates a fillable grid. For more widgets along these same lines, look at the Multiple Entries, Rich Content, and Surveys categories.\n
  • \n
  • \n There are also a number of widgets that help you better understand your users, and help your users better understand your form. Widgets like\n {' '}\n Timer\n {' '}\n and\n {' '}\n Submissions Counter\n {' '}\n give you a sense of how long your form takes and how often it’s being filled. Data like this can help you restructure your forms to be as efficient as possible. You can also grab data about your users’ location and how they found your form with\n {' '}\n Geolocation\n {' '}\n and\n {' '}\n Get Referrer\n {' '}\n widgets. On the user end, widgets like\n {' '}\n Review before Submit\n {' '}\n and\n {' '}\n Unfilled Fields\n {' '}\n can give them more oversight of their submission before officially sending it off.\n
  • \n
\n
\n
\n
seekVideo(307)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 5:07\n
\n

Again, we can’t cover every available widget here, but we hope that this section and these lists give you a good sense of what’s available, as well as where to find more information. In addition to the introduction and pointing you to further resources, we looked at how to find and add widgets, and the various settings that are available. Stay tuned for our next section on payment integrations to learn about additional ways to connect your forms to other platforms.

\n
\n
\n \n )\n },\n 2.7: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_7.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/07-m3u8/07.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:05\n
\n

Introduction to Payment Integrations

\n

So far we’ve covered everything you’ll find in the build tab of the Form Builder except one thing: payment integrations. If you’re selling products, collecting registration fees, accepting donations, or expecting to gather money for any other reason, Jotform is a great option. With Jotform you can collect money right alongside any other information you need to process that money. You also have the benefit of other built-in Jotform tools to manage transactions – for example, Tables can be used to track orders and shipping, and PDF Editor can be used to create and send custom PDFs for receipts. And where else can you do all this without any coding experience needed?

\n

Aside from the convenience of all your data in one place, Jotform is a perfect solution for payments for a variety of other reasons as well. First, Jotform integrates with over 30 payment processors, from big names through local and regional options. You can find the full list of integrations at the link below. Whether you’re looking to take your business or organization online for the first time, or to simply to expand the reach of your existing online presence, the variety of available payment gateway options means that you can easily reach your target market by just sharing a link to your form.

\n

In addition to all that, Jotform charges no additional transaction fees, so the only fees you’ll pay are whatever you’re paying to your payment gateway. Also, the ability to create a form that collects payments is included as part of your Jotform license, so there’re no hidden fee in that respect either.

\n
\n
\n
seekVideo(93)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 1:33\n
\n

Finally, let’s talk about security, which is obviously one of the biggest concerns when it comes to accepting payments, both for sellers and for buyers. Payment gateways themselves have a ton of built-in security features, but on top of that Jotform protects cardholder data with PCI compliance, and all form data is protected as well. You can even enable an extra layer of security with form encryption, which we’ll be touching on more in a future video.

\n

To find and select a payment gateway, let’s go back to that Add Form Element toolbar we’ve been visiting over the last videos. When you expand that menu by clicking on it, you’ll see that the second tab is called Payments – and that’s exactly where you’ll find your payment integration options. We’re not going to go through each one in detail here, but you can browse or search the list to find the one that you want. Once you’re ready to proceed, simply drag and drop the payment gateway where you want it to appear on the form, just as with any other fields.

\n

Once you add the payment gateway to your form you’ll see a payment settings menu automatically pop up on the right-hand side of your screen. When this menu is closed you’ll be able to find it again by clicking on the payment field itself and looking for the magic wand icon. This is where you can manage everything from inventory to coupons to shipping. The settings available for each processor do vary, but you’ll see a menu similar to what I’m going to walk you through now. Just like with widgets, as we discussed in the last video, you’ll also have a separate settings menu, which you can get to by clicking on the field and looking for the gear icon. In this general settings menu you can name the field and determine whether or not it should be required.

\n

In the payment gateway settings, first you’ll notice that you need to connect to the payment gateway. You will need an account with the payment gateway for this, and if it’s your first time connecting Jotform with that gateway, you’ll be guided through the process of authenticating your account to ensure that Jotform and the payment platform can interact with each other. If you’ve connected previously, that process may be shortened so that you just need to log in to the payment platform. Either way, you’ll start this process by hitting the green Connect button and you’ll follow the prompts until you receive confirmation that you’re connected.

\n

Once you’re connected, you’ll see the option to switch from live mode to demo mode. Demo mode allows you to play around with your settings without actually collecting money. You’ll also set your location and the currency with which you’ll be conducting your transactions. Below that you’ll see a drop-down menu where you can select what it is you’ll be selling: products, subscriptions, user-defined amounts, or donations. Each of these has its own settings, so it’s important to choose the one that best fits your circumstances. We’ll come back to this in the next video, where I’ll cover each option in detail.

\n

Also on this page you may view options for which payment methods you want users to be able to select. For example, if you use Square your users will be able to pay with a credit card, or with Apple Pay, Google Pay, or Cash App Pay. You’ll use check boxes to select the option or options you want to make available.

\n

Finally, when you get to the bottom of this settings menu, you’ll see a drop-down called “Additional Gateway Settings.” This menu of options isn’t as critical as the above settings, but it’s still worth a review. It’s important to note again that the settings you’ll see here will vary from one gateway to another, but generally speaking you can expect to see fields that pertain to how your customers will interact with this payment field itself. This includes determining whether or not you want to collect their email address in the payment field, if they’re able to buy multiple products, if you want to use decimal places and show total pricing for their order, and whether they’ll be able to click to preview any images you’ve added in for your products.

\n
\n
\n
seekVideo(308)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 5:08\n
\n

Alright, a quick recap of what we’ve covered here! Jotform is an excellent choice when you’re ready to bring your product, organization, or services online. When you add a payment gateway to your forms you can collect and manage all the information you need in a single place, saving you and your customers a ton of time. We’ve looked at how to add a payment field to your form, how to connect to that gateway, and some settings that will be relevant to how the payment field appears to your users. In the next video we’ll go into detail about each of the types of payments you can accept, and the settings that apply to each type. Stay tuned!

\n
\n
\n \n )\n },\n 2.8: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_8.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/08-m3u8/08.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:05\n
\n

In this section we’re picking up where we left off in the last section. We’ve chosen a payment gateway and gone through the general settings for it, and we’re ready to choose a Payment Type and add our products or services.

\n

First, with the payment gateway added and the gateway settings menu open, let’s jump back to the “payment type” field. As mentioned in the last video, here you can select what it is that you’re collecting money for: products, subscriptions, user-defined amounts, or donations. Each type of payment has its own settings, so it’s important to choose the one that best fits your needs.

\n

\n If you’re setting up a form to\n {' '}\n collect donations\n {' '}\n , or if you want to use the\n {' '}\n user-defined amount\n {' '}\n option so people can select how much they’re able to pay for your latest album release, for example, you’ll just have a few additional settings.\n

\n
    \n
  • First, you can add a sub-label for the field where they’ll enter the amount they’re contributing. I’m going to label this one “support my music!”
  • \n
  • \n Next you can decide if you want to add a suggested amount that will appear in that box\n
      \n
    1. If you do choose to add a suggested amount you’ll then see a space to write in what that amount should be – so let’s say $20 here.
    2. \n
    3. You also have a toggle to determine whether that should be set as a minimum value that people can give.
    4. \n
    \n
  • \n
  • When you’re done setting these, look for the green Save button at the bottom of the page. Hit that button and you’re all set!
  • \n
\n

A few other things to note here. First, the example you’re seeing right now is of the user-defined amount, but the settings are the same if you choose “collect donations.” Second, as a reminder, if you’d like to change the name of the entire field, click on the field and look for the gear icon. You’ll be able to change the title there and require this field if you so choose.

\n
\n
\n
seekVideo(112)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 1:52\n
\n

\n If you’re setting up subscriptions or selling products, you have a little bit more work cut out for you in terms of setup, but once you’re done, you’re ready to start selling your products. Let’s look at\n {' '}\n subscriptions first\n {' '}\n .\n

\n
    \n
  • Select “subscriptions” from the drop-down Payment Type menu, then scroll to the bottom of the settings menu to find and click on the green “continue” button.
  • \n
  • This will take you to a new settings page to create subscriptions. If you need to return to the previous page at any time, click on the gear icon at the very top of the menu. You’ll also see a blue settings button here that you can use to change the layout of the subscriptions you’ll be adding.
  • \n
  • To create a subscription, click the blue “create a new subscription” button, which will direct you to a new settings menu where you can add in all the information about this particular subscription.
  • \n
  • \n Let’s say I want to create a weekly international recipe newsletter called Weekly World Chews.\n
      \n
    1. First I’ll add the name, then the price - $1 a week, and a description.
    2. \n
    3. I’ll add the subscription period – weekly in this case, since this will be a newsletter that comes out each week
    4. \n
    5. And I’ll add the number of payments. In my case I want it to be 52 so they’re paying annually for a subscription and don’t have to worry about coming back each week to re-subscribe. You can also choose to have no limit here, or to have your subscribers choose how much they want to pay up front. If you’d like to set a variable price that your customers can determine, there’s an option for that a little further down the menu.
    6. \n
    7. After this you can add an image for your subscription – in this case, maybe I want to include an image of one of my top-rated recipes. This helps subscribers know what they’re getting. If you choose to auto-scale images, below that, the image will responsively adjust to the subscriber’s device.
    8. \n
    9. Finally, you’ll see the option to set a trial period, and to set a custom cost for the first payment, things that often go along with subscriptions. The trial period will be a period without payment, and you can define that time period once you toggle that option on. If you choose to set a custom first payment you’ll then add the payment amount and can also choose when that payment should happen.
    10. \n
    11. All you’ll need to do after this is determine if this particular subscription should be selected by default, and hit the green Save button at the bottom of the menu.
    12. \n
    13. From there you’ll see that this subscription has been added. If you’d like to make any changes to it, click on the subscription and look for the pencil icon, which opens the menu we were just looking at. You’ll also see a gear icon for settings; the settings allow you to duplicate, disable, or delete this subscription.
    14. \n
    15. From here you can add additional subscriptions in the same way. You can also create a coupon or add taxes. You’ll see these same options if you’re selling products, so I’ll cover that in the last section here.
    16. \n
    \n
  • \n
\n
\n
\n\n
seekVideo(257)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 4:17\n
\n

Finally, let’s look at the process for creating products. Once again, you’ll start with the initial payment gateway menu settings and this time select “sell products” from the Payment Type drop-down menu, and then hit the green Continue button at the bottom of the screen to get to the product settings. You’ll see 5 tabs – product settings, coupons, shipping, tax, and invoice.

\n
    \n
  • \n On the product settings tab, just like with subscriptions, click the blue “add new product” button to get started. You’ll also see that blue Settings button once again.\n
      \n
    1. You’ll see that the Product button opens up a sub-menu with 3 tabs. The first tab has your basic settings. Here you can add your product name, price, and description, add an image, and select if the product should be required or selected by default.
    2. \n
    3. On the Options tab you’ll see a button to add quantity – meaning that your users can select more than one of your product – and a button to add product options. If you’re selling the same t-shirt in multiple child and adult sizes, for example, Product Options allows you to label and create those options. You can also choose special pricing, which you can then add to a grid. In this case let’s say I want to charge $10 more for adult size t-shirts than for youth sizes.
    4. \n
    5. Finally, you’ll see an option to enable Stock settings so that you don’t oversell your products. You’ll also see the option to receive a low-stock alert, so that you get an email when you’re running low and know to restock before you officially sell out.
    6. \n
    7. When you’re done with all of these settings click any Save buttons you see, and hit the Back button at the bottom of the menu screen to go to the previous menu. You’ll now see that your product has been added, and you can repeat this process until you add all of your products.
    8. \n
    \n
  • \n
  • \n On the coupons tab click the blue Create Coupon button to add a coupon.\n
      \n
    1. Here you can name your coupon or keep the automatically generated code, you can set a coupon limit either by date or by number of redeemed coupons, you can choose whether the coupon should be a discount percentage or fixed rate, and you can set the percentage if you’re using the percentage option.
    2. \n
    3. You can also choose what that coupon should apply to – the product, shipping, or subtotal, and choose what item or items can be discounted.
    4. \n
    5. Finally, at the bottom of this screen you’ll see a button to edit Global Coupon Text, which allows you to name the coupon itself, to add redemption language, and to add expiration language. If you make any changes to this menu, be sure to hit Save to save your changes.
    6. \n
    7. When you’re done with all of your coupon settings hit Save to save the coupon. You’ll then see that the coupon has been added. If you want to share it all you need to do is copy the code or name of the coupon and share it where you’d like – maybe you want to run a special promotion for Facebook followers, for example.
    8. \n
    \n
  • \n
  • Next you have the Shipping tab. If you’ll be sending items off to your customers, use this tab to add in shipping costs – either per item or per transaction. There’s an additional grid where you can add shipping costs per product. Any shipping costs will be automatically added to the total price when your customers make a selection.
  • \n
  • The tax tab allows you to add in taxes that will also be automatically added to the total price for customers. You can enter a set tax rate, and exempt certain products that shouldn’t be taxed. If you are collecting addresses in your form you can also set your form to choose a tax rate based on the buyer’s location.
  • \n
  • Finally, on the Invoice tab you can choose to send an invoice along with your transactions. To do this toggle the Invoice button on you’ll see a number of additional fields pop up. Add your business details in these boxes. You can also add your logo and preview the invoice. Previewing connects to Jotform’s PDF Editor where you can fully customize the information you want to appear on the invoice, as well as the design. At the bottom of the tab you can choose to attach this to confirmation emails your buyers receive, and you can choose to have Jotform automatically generate an invoice number. Note that choosing to add an invoice number will add a separate, hidden Invoice ID field to your form, filled by the system but not visible to your customers.
  • \n
\n
\n
\n
seekVideo(524)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 8:44\n
\n

This was a big section, but we covered every type of payment that you can accept – products, subscriptions, user-defined amounts, and donations – and we went through the full menu of settings for each option. While user-defined amounts and donations just require a few additional fields, subscriptions and products include space for you to adjust pricing, inventory, coupons, and taxes. Now, when you combine this with everything you learned in the very last video, you have everything you need to start accepting payments through Jotform!

\n
\n
\n \n )\n },\n 2.9: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_9.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/09-m3u8/09.m3u8',\n outroDuration: 14,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:05\n
\n

At this point you’ve added all your content, added in page elements, and chosen a gorgeous design for your form. You’ve done all of this in the Build tab of the Form Builder, and now it’s time to move on to the Settings tab. On this tab you’ll see a range of options that pertain to your forms, thank you pages, emails, and more. In this video, we’re going to cover the first tab you see on the left of the Settings tab, Form Settings.

\n

In Form Settings you can customize your form status and properties, generally the items that cover form availability and accessibility. Right off the bat you’ll see three fields: first, you can rename your form here if you’d like, or haven’t already done so on the Build tab. Next you’ll see a form status bar where you can change from an enabled, or active, form, to a disabled form, or choose a time to disable. Forms you create will be enabled by default. With this drop-down menu you can choose to disable immediately, meaning no one will be able to access the form even if they have a direct link. You can also choose to disable at a certain date – for example, if your event should have a hard registration deadline – or after a certain number of submissions, like if you’re doing a giveaway for the first 100 people to use your form to sign up for your newsletter. When you choose either of these you’ll be asked to define the date or number limit, and can add a message for folks who try to access your disabled forms. You can also choose to disable either at a certain time or with a certain number of submissions, whichever comes first. Finally, you have the option to encrypt your form. Encryption is a big topic, so please check out the additional resources linked below to learn more. Essentially this field allows you to provide extra security in a few ways, including setting a key to retrieve form data from Tables.

\n

Below this initial box is a button that says “Show More Options.” When you click on that you’ll see a host of other settings options, some of which have full submenus to go along with them. Let’s go down the list, and I’ll tell you what to expect from each option.

\n
\n
\n
seekVideo(133)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 2:13\n
\n

When humans are involved there’s always room for error. And in the process of filling out a form, there’s plenty of opportunity to skim over a section entirely or misunderstand how to complete a field. That’s where the next setting, Form Warnings comes in handy. This group of settings allow you to fully customize the language your users will see if they skip a required field, hit a character limit, or enter an incorrect credit card number, for example. The comprehensive list also includes space to customize overall form navigation language, like the text users will see while they’re waiting for their form to process, or if they’re trying to go back a step.

\n

Next on the list are language settings, which you can access by clicking the Edit button next to the Form Languages heading. On the next page use the Settings tab to apply settings for how and when translated text will be presented to users. On the Languages tab set your form's default language -- for example, English -- and choose any translations you'd like to translate your form into. Once you've added a translated language hover over the language, and click the trashcan icon to delete this translation entirely, or the pencil icon to view and edit the translation. Many fields will be translated by default and can be reviewed here, and you can add translations where one has not already been included. Note that you have tabs both for form fields translations and for form warnings.

\n

Further down the list are security settings. If you’d like to add a little extra security to your forms, you have a few options here. First, you can choose to apply a password to your form, meaning that anyone who fills out the form will need a password to do so. Additionally, you can auto-delete submissions at a set date to ensure the data isn’t sitting in your account for too long if you don’t want it to be. When you click “enable” here you’ll next see a dropdown menu where you can set the time period after which form data should be deleted.

\n

Next, Save and Continue Later allows users to save their progress and come back to the form and when Save and Continue is enabled, you can also fully customize an email that your form users will receive. If they choose to take advantage of this feature. Below that are a few settings that apply to who can fill out your form. Jotform Enterprise users will be able to require Single Sign On, or SSO, login to fill out, edit, or return to a form later. Unique submissions allow you to limit any user to a single submission by checking their cookies and/or IP address. Similarly, enabling Unique Field allows you to restrict duplicate entries for a specific field. You’ll see a dropdown list here if you have relevant fields in your form, like email addresses. For example, if you want to provide a 10% off coupon to every new store visitor who provides their email address, you can use this setting to prevent people from signing up repeatedly.

\n

Next is form accessibility, which you can turn on to check how accessible your form is to people with disabilities. This is another big topic, so we’ve again linked to some resources below for you to learn more. When you enable this field you’ll see a message about how many accessibility issues you have in your form – like fields that aren’t labeled, or images with no alt text – and back in the Build tab you can see each problematic field flagged. From here you can easily fix any accessibility issues. In this space, you can also choose to enable a badge that certifies that your form is maximized for accessibility.

\n
\n
\n
seekVideo(345)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 5:45\n
\n

The last settings on the page are generally about what happens to, and how you can format form data, with the exception of two fields. First, with Page Title you can choose a title to be shown as the browser title. Below that, if you have fields that are hidden by conditional logic, you can use the Clear Hidden Field Values setting to choose whether or not to clear fields of content at the time they become hidden or when the form is submitted. This can be especially important if you have default values in certain fields.

\n

Form layout allows you to switch from a classic to a card form from this settings menu and prevent cloning when enabled ensures that no one can make a copy of this form. Next, Highlight Effect and Show Error Navigation both draw attention to fields as a user goes through the form. Highlight Effect subtly highlights fields as a user clicks on them for better visibility. Show Error Navigation will add a red bar along the top of the form to alert a user of any -skipped required fields or other errors. Both of these options are enabled by default but can be disabled in the settings here. If Error Navigation is disabled users will still see error fields highlighted in red before submitting, but won’t see the bar along the top of the form to help them jump directly to errors. Finally, the last setting you’ll find here is Allow Browser Autocomplete. This is enabled by default and will work to fill in fields if the user also has this enabled on their browser. You can choose to disable this as well.

\n
\n
\n
seekVideo(435)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 7:15\n
\n

We’re just about ready to wrap up this section, but before we do that, let’s briefly look at differences on this settings tab for Card forms. There are just a few differences here. First, since Cards feature one question per page and won’t let users advance to the next page if there’s an error, you won’t see options for Highlight Effect, or Error Navigation in Cards settings. Also, since questions are distributed this way in Cards, you’ll see a few options that will make Cards easier for users to navigate: the option to Review Before Submission, which allows users to see all of their responses in a single place before submitting, Show Form Title, which can help serve as a guidepost for users, and Show Form Progress, which adds a progress bar to the bottom of each card to let users know how much further they have to go in the form. Show Form Title and Form Progress are enabled by default but can be disabled here, and Review Before Submission can be enabled.

\n
\n
\n
seekVideo(490)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 8:10\n
\n

When you dive in, you can see that there can be a lot more to forms than just adding fields to a page, and here we dove into all of the options that you have for settings that generally apply to your form as a whole. These settings give you control over how your users will experience the form. And while there are a lot of options here to give you that granularity if you want it, rest assured that our best practice recommendations are enabled by default, making it easy for you to get up and running no matter what. Over the next few chapters we’ll be talking about everything else you can find on this Settings tab, so stay tuned for more.

\n
\n
\n \n )\n },\n '2.10': {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_10.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/10-m3u8/10.m3u8',\n outroDuration: 13,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:05\n
\n

We’ve talked about widgets, and we’ve talked about payment gateways, and now it’s time to complete the conversation about how you can seamlessly connect Jotform with other platforms. That’s right: in this video, we’re looking at integrations.

\n

As a reminder, integrations interact with your form after it’s submitted, to share your form data with other platforms. In most cases that means that data gets pushed from Jotform to the other platform. Integrations can save you tons of time by taking over some of that pesky busywork that can often clog up your day. They also reduce the space for human error by removing the need for you to have to manually enter data.

\n

To find and add an integration you’ll need to go to the Settings page in the form builder, and look for the Integrations tab on the left-hand side of the page. Click on that tab to see the full list of integrations. If you have one in mind you can get to it quickly by using the search bar. If you’re looking for a particular category of integration but don’t have a specific platform in mind, you can also browse by category using the drop-down list to the left of the search bar, or you can skim through the entire list just by scrolling the page.

\n

When you find an integration that looks like a good fit, click on the tile to learn more about functionality. If you’re sold on that integration, next just follow the prompts to first authenticate your account, and then to complete the integration.

\n

We won’t be able to walk through every integration here, but most integrations follow a similar path, so let’s look at an example. As with our lesson on setting up a payment integration, please keep in mind that not all integrations will look exactly like this. This is meant to give you a sense of what information you’ll need for an integration and how to proceed through the process.

\n

Let’s use Slack as an example.

\n
    \n
  1. First, we’ll find Slack among the integration options and click on the tile to see what this integration does. In this case we can use this integration to send form submissions to individuals or channels in Slack.
  2. \n
  3. Next we’ll need to authenticate our Slack account, which lets Jotform and Slack share information. If this is your first time connecting you’ll go through a full process of signing into your Slack account, with guidelines for each step. This process is a little shorter if you’ve connected to this account in another form previously.
  4. \n
  5. From here you’ll select what Slack channel or person you want form responses to go to, then name your message, and choose what form fields you want to appear in the message.
  6. \n
  7. You can send a test message and hit Save when everything looks good.
  8. \n
\n
\n
\n
seekVideo(162)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 2:42\n
\n
    \n
  1. \n

    Again, generally speaking integrations will follow a similar process: authenticate or log into your account, choose where you want the data to go, and then choose which data you want to send.

    \n

    Even though we can’t talk about every single integration option in this video, Let’s talk about some of our most popular types of integrations and how to use them!

    \n
  2. \n
  3. CRM integrations, like with Hubspot, Salesforce, Zoho and Keap, generally allow you to use Jotform to generate new customer records in your CRM. If you use Jotform as a contact form on your website, for example, these integrations can seamlessly add those new contacts to your CRM, to keep you up-to-date on new leads. Some of the integrations offer additional options, like creating deals when a contract is signed, assigning tags, and adding notes or additional context.
  4. \n
  5. Project management platforms, like Monday.com, Asana, and ClickUp make it easy to create tasks from your forms. If you use forms as an intake for new clients, for example, these integrations can save you the step of getting the project information out of Jotform and into your project management platform by starting your project board or list for you.
  6. \n
  7. Integrating with a cloud storage platform can be an easy and effective way to ensure you always have a copy of your data stored somewhere – especially when it comes to things like receipts, contracts, or registration information. So if you use Box, Google Drive, OneDrive, or another document sharing service, you may want to consider this type of integration
  8. \n
  9. If you’re looking to seamlessly build out your mailing list, consider email integrations. Platforms like Mailchimp, ConstantContact, and AWeber allow you to add and update contacts without having to take the extra step of manually typing Jotform data into your mailing list.
  10. \n
  11. It’s important to note that many of these integrations are native to Jotform, but some do require Zapier as a conduit. If that’s the case, you’ll see the Zapier logo in the upper right-hand corner of the integration tile, and will need a Zapier account as well as an account with the platform you’re integrating with. In addition to these integrations, you can always explore Zapier as a connection point to thousands of other platforms.
  12. \n
\n
\n
\n
seekVideo(296)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 4:56\n
\n

Integrations are an incredible way to cut time out of your workflows, and to make Jotform and your data work harder for you. In this video we looked at where to find our integrations, an example of how to set them up, and popular types of integrations. In our next video, we’ll be looking at another way to make your forms easier for everyone involved, conditional logic.

\n
\n
\n \n )\n },\n 2.11: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_11.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/11-m3u8/11.m3u8',\n outroDuration: 12,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:05\n
\n

Adding Conditional Logic Elements

\n

Conditional logic allows you to set actions in your form based on responses provided in the form. By doing so, logic can transform a lengthy form into a curated form experience. It can help personalize your message and follow-up actions. It can even turn form fields into calculations. Honestly, we could do an entire course just on this; there are infinite ways logic can improve form experience for users and make things easier on you as well. Since we don’t have a full course on this – not yet, anyway – let’s look at an overview of what each logic element does, and discuss some ideas of how you can use each option.

\n

To find the Conditional Logic options, go to the Settings page of the Form Builder and look for the Conditions tab on the left-hand side of the screen. Here you’ll see six logic options: show or hide a field, update or calculate a field, enable or require a field, skip to or hide a page, change a thank you page, and change email recipient. You can add as many logic elements as you need to each form. If you’re adding multiple elements it can help to go through your form as you go, to make sure everything works the way you expect it to.

\n

Generally speaking, the way you’ll set up conditional logic is to set the logic element you want to add, set your condition – this is the “if” section, and then the action or outcome – the “do” section. For your “if,” you’ll choose the field you want to create the condition on, your conditional statement, and what the value will be. For “do” you’ll select the action and the field to apply that action to.

\n
\n
\n
seekVideo(101)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 1:41\n
\n

Show/Hide a field, enable/require field, and Skip to/Hide a page all allow you to streamline your forms based on what someone enters into a field. For example, if your survey includes the question “Do you live with roommates” and the next 5 questions are about how much time someone spends with roommates, who typically does the cleaning, how you split bills, etc., those questions aren’t relevant to someone who answers that no, they don’t have roommates. In this case, jumping those “no” responders to the next relevant question will make your form faster and easier for them to complete.

\n

The option you use will depend on how your survey is structured, whether it’s individual questions or sectioned into different pages. You can use show/hide to say “if ‘do you live with roommates’ is equal to ‘no,” hide multiple, and then highlight the 5 additional roommate questions. If your form is broken into pages, you can use skip to/hide a page to skip to the next relevant page. In these cases your “no” respondents won’t see these questions at all. You can also use enable/require fields to disable these fields to those respondents – this way they’ll still see the subsequent questions but won’t be able to respond to them.

\n
\n
\n
seekVideo(177)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 2:57\n
\n

You’ll find that there are often a few logic choices to get to the same or a similar outcomes, so use whichever feels most comfortable to you to set up, and most appropriate to the form.

\n

You can also use show/hide a field to show a field based on response, rather than hide fields like in the roommate example. Let’s say you’re surveying customers for your bakery and you’re looking for feedback on everyone’s favorite cookie flavors. In this case you have the question “have you tried our cookies?” If the answer is yes, you then want to ask a few follow-up questions. Here you can use “show field” logic to say “if ‘have you tried our cookies’ is equal to yes, show multiple, and add the next 2 questions “which flavors have you tried, and “choose your top 3 favorite flavors.” Similarly, you can use enable/require field to enable or require a field that wouldn’t have been available or required previously. In this case, maybe you want all of the fields to show on the form for all customers, but want to require that anyone who says “yes” to “have you tried our cookies” fills out the question “which flavors have you tried,” or they can’t submit the form. Or perhaps you want to enable that question only for the “yes” responses. That way those who say no, they haven’t tried your cookies are unable to weigh in on favorite flavors. Another great use case for the require option might be a new patient intake form – if someone says yes, they do take medication, you can require they fill the next field “what medication do you take and how often.”

\n

Use update/calculate field to fill in or calculate a field based on a response to an earlier field. After setting your condition you’ll choose one of 3 outcomes and what field to send that outcome to. The outcomes are to copy a single field’s value, multiple fields’ values, or to calculate a value. This logic can get especially complex, but here are a few straightforward examples. Maybe you’re using Jotform to accept submissions to your campus’s lit review and you want to automatically generate citations based on form fields that your student submitters have provided. You can set up logic to say “if the field “semester/year” is equal to “fall 2026” then “copy multiple fields values” into a field called “citation.” In the copy multiple fields box you’ll choose the fields name, story name, journal title, and semester/year as your fields, with any necessary quotes, commas, periods, or spaces between the fields where needed. Then, if you wind up publishing the story, you’ll have your citation ready to go. This example uses the “copy multiple fields values” logic but you can use “copy single field values” in the same way. For that same journal, maybe you have a group review process where the student reads their submission for 3 reviewers and each reviewer scores the submission. You can use “calculate value” to say “if reviewer one’s score is filled, calculate,” then add the fields for reviewers 1, 2, and 3 to the calculation box, and have the result go into a field called “total score.”

\n

If you’re using update/calculate field, be sure to choose the brown “A-Z” option if you want to use static text – that is, pull in the field exactly as written, or the black “0-9” if you’re adding calculable text. You can toggle any brown or black box between static and calculable text just by clicking on it. You can also add any additional text you’d like to the output field.

\n
\n
\n
seekVideo(387)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 6:27\n
\n

\n Finally, change a “thank you” page, and change email recipient both allow you to use logic to customize who sees what after a form is submitted. Thank you pages pop up upon form submission and are fully customizable on the Thank You Page tab, which we’ll cover in the next lesson. With this logic you can create an alternate thank you page or redirect users to a URL based on form response. Using the patient intake form mentioned earlier, we could create logic that says that if a patient selects that they’re having any acute symptoms we want to display a page that says “Thank you, someone will reach out to you at\n {' {phone number} '}\n within the hour.” Or we can use the URL to redirect them to our page on our website that displays local emergency room and urgent care locations.\n

\n
\n
\n
seekVideo(433)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 7:13\n
\n

Emails can be either autoresponses that go to the submitter, or notifications that go to you or someone on your team. Both can be fully customized, and you can have multiple versions tied to each form – we’ll be covering this in a few chapters. When you set up those emails you’ll assign a recipient or recipients, but the change email recipient logic allows you to route one of these emails to someone else based on form response. For example, maybe we want patients who say that they have acute symptoms to be directed to our triage nurse or doctor on call. For both of these logic elements you’ll set your logic “if” statements the same way we did in the other examples. To change email recipient, just choose the email you want to share – autoresponder or notification – and the email address of the person you want to send it to.

\n
\n
\n
seekVideo(482)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 8:02\n
\n

This was another long section, so thanks for powering through with me! We covered all of our conditional logic statement options, with basic examples for each of them. And while I know that this just scratches the surface of what you can do with logic, hopefully this is enough to inspire you to consider ways to simplify the experience of filling out your forms, gathering data, and getting both forms and form data to the right audience.

\n
\n
\n \n )\n },\n 2.12: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_12.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/12-m3u8/12.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:05\n
\n

Someone has just submitted your form – what do they do now? In many cases they may not need to do much of anything, but in just as many cases there may be something you want them to see, or another action you want them to take. Thank You Pages are a great way to close the loop with your users, whatever that loop might be.

\n

To find and edit your Thank You Page, go to the Settings page and find and click on the Thank You Page tab on the left-hand side of the page. At the very top of the thank you page tab you’ll see your first option: choose between showing a thank you page after submission or redirecting to an external URL. If you’re redirecting to a URL simply enter the URL in the box provided. Your users will automatically be taken to this page upon form submission.

\n

If, instead, you’d like your form users to see the Thank You Page upon submission, you’ll work in the text editor to make any edits. First, if you want to change your overall layout from what you see on the screen to another template, click on the green “add field” button at the top right of the text editor to open up the Layout and Fields menu. On the Layout tab you’ll see over 20 different templated options to use as-is, or as a starting point. If you’re pretty set on one of the templated layouts but really wish you could show anything other than the default checkmark image, simply click on that image in the text editor to choose from a gallery of preselected images, upload your own, or choose from other images you’ve already uploaded to Jotform.

\n

\n The other tab that you see when you click “add field,” Fields, includes every field from your form, any of which can be added to the Thank You Page by clicking the plus sign to the left of that field name. One common and practical use case here is to thank your submitters by name. Another example is to include their phone number or email address saying something like “We’ll be reaching out to you soon at\n {' {number} '}\n or\n {' {email} '}\n .”\n

\n

To add or edit text, just click within the text editor and start typing. Along the top of the text editor, from left to right, you’ll see a number of options: change the font, change the text size, make text bold or italic, change text alignment, change text color, add a link, image, view source code, add a table, and view in full screen. You can include whatever text you’d like on the Thank You Page, and customize the appearance of the text with these options. You can also add links and images to make your Thank You Page more engaging. The “add table” element allows you to create a grid on the thank you page that you can use for text. And if you have coding experience, editing the source code will provide granular control over things like page colors.

\n

You may have noticed a blue button called “Action Buttons” right next to the green “add field” button we talked about a minute ago. When you click on that you’ll see the option to add buttons that automatically direct your users to perform another action: they can fill out the same form again, fill out another form, edit their form, or download PDFs.

\n
\n
\n
seekVideo(186)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 3:06\n
\n

There are a wide range of reasons you might be interested in any one of these, so here's just one example of each. Use “fill again” to give parents an easy way to register multiple kids for camp, use “fill another form” to seamlessly guide new employees through onboarding paperwork, use “edit form” to allow quiz takers to immediately change answers they might be rethinking, and use “download PDFs” to direct new patients to download the medical paperwork you’re required to share with them.

\n

For each of these buttons you’ll first see the option to name the button as it will appear on the thank you page. For “edit form” that’s all you’ll need to do – once you name the button just click the green “create” button to add it to the Thank You Page. For “add PDF” you’ll choose what PDF to add before hitting the “create” button.

\n

For “fill another form” you’ll select the form you want to direct your user to. And for both “fill another form” and “fill again” you’ll be able to prefill fields on behalf of your users. In both cases click “set prefill,” then, on the next screen, toggle prefill on. From there you’ll be directed to choose the fields you want to fill in advance and where you want the prefilled data to come from. Using the summer camp example, if you want a parent to easily be able to fill a registration form for multiple children, you can add a “fill again” button and use prefill to pull fields like caregiver name, relationship to child, email, and phone number from the parent’s first form submission. That way when they fill out the same form for their second child they’ll only have to add information specific to the child. In the employee onboarding example of the “fill another form” button, you can prefill fields like employee name, phone number, and email, so that the employee doesn’t have to add all that redundant information to each onboarding form.

\n

This is the first video in a while where we’ve had any differences between the Cards and Classic versions of forms, and it’s a significant one. If you’re using Cards, you’ll instead find the option to edit your “Thank You Page” on the bottom of the form itself when you’re in the form builder. Under your last field look for and click on the dotted line that says Edit Thank You Page. You’ll see that the options are similar overall, and you can follow the instructions I’ve just shared. However, here you won’t see the option to change the layout or to swap the default checkmark image with another image. Instead, if you click on the checkbox you’ll have the option to select from a menu of icons or to upload a file or choose from one you’ve already added.

\n
\n
\n
seekVideo(336)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 5:36\n
\n

Alright, this wraps up our video on Thank You Pages, your opportunity to share important information with your form submitters, or to just send them a friendly thank you for their time. We covered accessing the Thank You Page editor to edit it – on the Settings tab in Classic forms or at the bottom of the build tab in Cards. We also looked at ways you can edit what appears on this page, and switching from a thank you page to to displaying a URL if desired. Finally, we covered automated actions that you can add to the thank you page, making it easy for your users to follow up in a specific way. In the next section we’re going to cover another key feature of following up with your users: emails.

\n
\n
\n \n )\n },\n 2.13: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_13.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/13-m3u8/13.m3u8',\n outroDuration: 14,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 0:05\n
\n

Emails

\n

How do you know when someone’s submitted a response to your form? You can check the Table associated with that form every time you need an update. You could also set up a digest report to send you periodic updates. And if you want real-time updates, you can create a notification email. You can also add an autoresponder email that will go to your user upon submission. In this section we’ll look at how to view, edit, add, and remove those emails.

\n

First, in the Settings tab of your Form Builder, find and click on Emails in the left-hand side bar to open the Email settings page. Once on this page you’ll see a large button that says “add email.” If you already have any emails set up you’ll also see them here, and you’ll be able to edit them from this spot – we’ll come back to that a little later.

\n

When you click “add email,” you’ll choose whether you want to create a notification email, or an autoresponder email. As mentioned earlier, notification emails are meant to notify you that someone has filled out your form. An autoresponder email goes to the form user as a confirmation of their submission. Both of these can be customized with tailored language, form fields, and design.

\n

Settings for both email types are nearly identical, so let’s look first at creating a notification email, then we’ll look at how this differs from an autoresponder. Click on the “notification email” option to get started. You’ll see a separate page of email settings, broken out into 3 tabs. The first tab, Email, is where you can customize your email subject and text, including pulling in fields from the form itself. By default, you should see a subject that includes the form title and the responder’s name, and an email body that includes all of your form fields and responses.

\n

Generally speaking you can change the subject and email body in any way you’d like just by highlighting and deleting what you want to remove, and adding in new text where you want. You can also pull form fields into both the subject and email body – you’ll find those just above the text edit box, on the right hand side, and when you click you’ll see a drop-down menu containing all of your form fields.

\n

To make any layout changes to the email body, click anywhere within the body field and look for the menu of structural elements that pops up. That menu includes table properties to adjust the overall structure, a trashcan icon to delete a section, options to insert a row above or below the space where your cursor currently appears, as well as to delete a row, and options to insert a column left or right of the cursor, or delete a column. You can use this to add or remove any sections you’d like, thereby adjusting the overall email layout.

\n

Along the very top of the email editor box you’ll see the same elements we talked about when we covered Thank You Pages: from left to right there, you can change the font, you can change text size, you can make text bold or italicized, change your overall text alignment, and change text color. You can also add a link, and an image.

\n

Also in the edit options, and also just like with Thank You Pages, are the option to view the email full screen for better visibility, and an option to view and edit the source code if you have coding experience you want to put to use.

\n
\n
\n
seekVideo(201)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 3:21\n
\n

Editing the source code gives you greater flexibility over colors, overall email layout, and more.

\n

Let’s look at a quick example. I use Jotform for webinar registrations and want myself and an additional colleague to receive these emails.

\n
    \n
  1. I’m going to use the title “Webinar registration: [form title]’ since the form title is the name of the webinar
  2. \n
  3. \n I’m not going to alter any body text or layouts, but I do want to add a few things\n
      \n
    1. First, I’m going to add the webinar cover slide as an image. We typically have several webinars going on at once, so this will be a nice visual to help keep things straight
    2. \n
    3. Next, I’m going to add a link to the blog that says more about this webinar. This way if I or anyone else have any questions, it’s there for easy reference.
    4. \n
    \n
  4. \n
\n

Moving on to the second tab, Recipients, here you can change the Sender Name and Reply-to email address. When you receive the email whatever you choose for Sender Name will be listed as the name of the person who sent the email, and Reply-to will be listed as their return email address. These fields are both drop-down lists with relevant fields from the form itself as options. Also here you can change who this autoresponder email goes to. By default the account owner’s email will appear here, but you can remove that or add additional recipients. So in my webinars example, all I need to do is add my colleague’s email address here.

\n

Finally, we have the advanced tab. First you can choose if you want to receive the notification when the submission is initially sent, when it’s edited, or both. If you are asking form users to upload files when they submit, you can toggle to receive those files as an attachment. You can also choose to have a PDF version of this form attached to this autoresponder email. This is a great option if you’re using Jotform’s PDF editor for any reason, like to create branded receipts. If you do want to send a PDF you can also choose to password protect that PDF – you’ll see this option when you toggle the “Attach PDF” button on. Finally, you have toggles to hide empty form fields so you only see filled fields in the email, and to receive an updated email if the form is edited. Also, you can set a sender email here. In the email itself this will show up as the sender email, different from the reply-to email you set earlier. If at any time you want to preview this email, look for the white “test email” button below the email edit box, on the left. When you’re all set, hit the green “save” button to save your email settings.

\n

For autoresponder emails, Email and Recipient tabs are the same, but there are some small differences to the Advanced tab. Here you can choose a file that will be attached to every autoresponder email, and you can choose when your responders should receive this email – either immediately, or at a later time. Note that a file you attach here is different from attaching the PDF version of the form response, and it can be anything you’d like. The PDF form response is just a PDF version of the form data itself.

\n

Finally, if you’d like to review or change either type of email, you can do so back at the Emails tab. Simply hover over the email you’d like to visit, and look for and click the pencil icon. When you hover over the email you’ll also see an icon to clone the email, and the trash can to delete.

\n
\n
\n
seekVideo(411)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 6:51\n
\n

Now you have everything you need to send informative and neatly designed emails. To recap, notification emails go to you, and autoresponder emails to the your form user. Once you have the settings panel open for either, you can customize your content and design from the Email tab, and change email settings from the Recipient and Advanced tabs. These emails are a great way to stay up-to-date on form submissions, and to provide confirmation and valuable information to your users after they submit.

\n
\n
\n \n )\n },\n 2.14: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_14.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/14-m3u8/14.m3u8',\n outroDuration: 14,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:05\n
\n

Other Settings

\n

While we’re still on the Settings page of the Form Builder you may have noticed a few tabs that we haven’t covered: Approvals Flows, Jotform Sign, and Mobile Notifications.

\n

As discussed toward the beginning of the course, we won’t be doing a deep dive into Approvals and Sign here, but keep an eye out for future courses where we’ll look at these products in depth. However, if you’re interested in enabling either of these for your Forms, this is one place you can do that.

\n

If you’d like to add an approval workflow to your form, click on Approval Flows and then the “Create an approval flow” button to get started. This will add a simple, one-step workflow directly to this form, and you’ll be redirected to the workflow to manage it. What you’ll see is a workflow that starts with a form submission to this form at the top, includes you - the account owner - listed as the approver, and ends with you making a decision to either approve or deny this form. You can build on this approval flow however you’d like – by changing the approver to another person or team, adding levels of approvals and additional outcomes, requiring signatures, and more. As with forms, any changes you make to the workflow will happen in real time, so this workflow will be immediately added to your form.

\n

When you click on the Jotform Sign tab you’ll see a prompt to add a signature field to get started. If you already have a signature field on your form, or once you add one, you’ll instead see a toggle to Enable Jotform Sign Automation.

\n

When you enable Jotform Sign a few things will happen: first, you’ll now see PDF versions of your form submissions, including one with an attached audit trail, every time it’s signed. Your form users will now have to consent to complete the form, and won’t be able to make any changes once they submit. You can also choose to send the PDF with audit trail to an email from the form, and to each signer once complete.

\n
\n
\n
seekVideo(123)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:03\n
\n

Finally, the last tab is Mobile Notifications. If you plan to use the Jotform App you can use this tab to turn on and customize the messages you’ll see on your phone whenever you receive a form submission. In both Notification Title and Notification Content, you’ll be able to use text and form fields to create your notifications. The preview box above these fields gives you a general sense of what this message will look like. For this to work please also be sure to have notifications enabled on your mobile device as well.

\n
\n
\n
seekVideo(154)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:34\n
\n

With that, we’ve covered everything on our Settings page and are ready to move onto the final page of the Form Builder, Publish. In this section we looked at an overview of how to add an Approval flow to a form, how to enable Jotform Sign for this form, and how to enable and customize mobile notifications. In the next section we’ll be diving into your options for sharing your form, now that it’s complete and ready to send to your audience.

\n
\n
\n \n )\n },\n 2.15: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_15.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/15-m3u8/15.m3u8',\n outroDuration: 12,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:05\n
\n

Sharing by Email, Link, and Social

\n

By now you’ve created and designed your form, added integrations to make it work harder for you, and applied all your settings. Now comes the most exciting part: sharing it. What’s a form with no form responses? In the next few videos we’ll be covering everything you’ll find on the Publish tab of the form builder, all of the ways you can get your form out into the world.

\n

Let’s start by navigating over to the Publish Tab. On the left-hand side of this page you’ll see all of your options for sharing: quick share, embed, assign form, email, prefill, PDF, and platforms. In this chapter we’re going to look at ways to share by email, link, and social media. You’ll find these under the Quick Share, Assign Form, and Email tabs.

\n

Let’s start with the Quick Share tab. Here you’ll see 3 sections: from top to bottom you’ll see a section to share by link and email, one with social media sharing options, and one that directs you to create an App. While we’re not covering Apps in this introductory course, you can use your current form as a starting point for creating a form and information hub with Jotform Apps. Just click that bottom box to get started.

\n

If you’d like to share your form directly to your Facebook, LinkedIn, or X accounts, click on the appropriate icon, or the “view more” link in the “Share Form” section in the middle of the page. When you click on any of those accounts you’ll be prompted to log into that account and will be able to share your form once you’re logged in.

\n
\n
\n
seekVideo(97)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:37\n
\n

In this same section you’ll also see the option to generate a QR code for your form. This can be useful in many situations – especially those where you’re using your form publicly and may want a touch-free solution. All you need to do to generate the QR code is click on the QR code icon. Once the code is generated you’ll see the option to download it, as well as see the embed code HTML if you want to add it to your website.

\n

Finally, the top section on this tab is where you can copy a link to your form to share wherever you’d like, and invite someone by email to fill out the form. Clicking either the oval access level icon next to the section heading on the top left of this box, or the blue Settings link on the top right of this box, will give you a pop-up window where you’re able to change access to the form.

\n

In this window you can switch this from a public to a private form – one that is only available to people who have a direct link. You can also choose to make your form accessible to people within your company, which you’ll enable by entering your company’s domain address. On this tab you’ll also be able to choose whether your submitters will just be able to submit their responses, or if you want them to also be able to view their response at a later date.

\n

If you’re sharing by link, also note that you can change the form URL. To do this, look for and click on the pencil icon next to the default URL. Enter your new URL and hit Apply. If, at any time, you want to go back to the original, or change the link again, you’ll now see a reset icon next to the URL.

\n

To invite people by email, click in the Recipient box in the “Invite by Email” section. Here you can add your recipient or recipients, and, if you’d like, include a message that will get sent along with the default email. Next to the Recipient box you’ll once again see the option to change your form from “submit only” to “submit and view” so submitters can review their submissions later. And right next to the Invite By Email heading you’ll see an upload icon. If you have a large user list, you can upload that list by CSV here.

\n
\n
\n
seekVideo(239)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:59\n
\n

Next, let’s go to the Assign Form tab. Assign Form looks a bit like the Quick Share tab, but serves a different purpose. With Assign form you’re specifically giving your users the task of filling out the form, rather than simply requesting they do so. This is often used within an organization, like employee timecards, or asking field workers for a daily site report. Because of that, when you Assign a form, your form users will be required to sign into a Jotform account to complete the form, and will be able to access all assigned forms within their account. This is not the case if you’re just sharing a form – in that case, users do not have to be logged into a Jotform account to complete the form. If you’re a Jotform Enterprise user note that you’re also able to assign this form to your entire organization with the “Assign to Everyone in the Organization” toggle toward the bottom of this tab.

\n

The Assign with Link settings here are the same as those on the Quick Share tab, with the addition of the option to add and set an expiration date for the assigned link. These settings can be accessed in the same place as on the Quick Share tab – either by clicking the form permissions oval, or the blue settings link, both at the top of the section.

\n

Another additional setting you’ll see in Assign Form is the option to prefill some data if you’re assigning by email. Next to the Recipient box in Email you’ll see a button that says “Set Prefill,” and if you click that button you’ll see your form. Here you can enter data into the fields that you want to fill on behalf of your recipients. Using the time card or site report example, maybe you want to add the date to the top of the form for your users, so it’s clear what day they should be reporting for. Once you add your prefilled data, click the green Create button at the top right of your form to set that data, and you’ll be returned to the previous page. From here you can now hit “edit prefill” to make any changes to the prefilled data, or if you’re ready to send off your form you can send it from here.

\n

Lastly, let’s look at the Email tab, which gives you one final option for sending your form by email. Here, when you click the Share on Email button, you’ll see subject and text boxes that you can edit and format, and you can choose your sender name, reply-to email address, and recipient email address on the Recipients tab. Quick Share, Assign Form, and Email give you three different options for emailing your forms, each of which appears slightly different to your email recipient. Generally speaking the Email tab option gives you more flexibility and personalization over the message.

\n

Also on the Email tab is the option to set and customize reminder emails, to periodically remind your form assignees and recipients to complete the form. You can even create multiple reminders. When you click the Reminder Email tab you’ll first see the option to customize the reminder subject and message, including basic text settings and the ability to add an image. On the Recipients tab you can once again set your sender name, reply-to email address, and the recipients. And on the Schedule tab you’ll choose whether this should go out daily, weekly, or monthly, what day and time the message will go out, and the end date for the message if you have one. You can name your reminder by clicking on the title of the reminder, next to the green envelope icon. When this message is ready to go, click Save. From this screen you can now access and edit this message at any time.

\n

Emails and links are two of the most widely used ways to share forms, so this was a long section, but an important one! We covered three ways to email your forms – from the Quick Share, Assign, and Email tabs. We also looked at sharing links to your form, from the Quick Share and Assign tabs, talked about the differences between Assigning and Sharing, and looked at how to create reminder emails, in the Email tab. In the next section we’ll be looking at ways to Embed your form, and how to download and share a fillable PDF version of your form. Stay tuned!

\n
\n
\n \n )\n },\n 2.16: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_16.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/16-m3u8/16.m3u8',\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:05\n
\n

In our last video we looked at the ways you can email and link to your form, as well as how to generate a form QR code, and where to set up reminder emails. In this video we’re continuing to explore your form sharing options. Here we’re looking at ways you can embed, and how to download and share a fillable PDF version of your form.

\n

First, let’s talk about how you can embed your form onto a certain platform or website. Embedding allows you to publish your form anywhere, and is commonly used as a way to add a contact form to a website, a feedback form to a blog, or a registration form to a Facebook group, among other options. You can find your embed options both under the Embed tab and the Platforms tab.

\n

On the Embed tab you’ll see all of your options for embedding your form, including the ability to embed a form in a pop-up window, lightbox, or as a “feedback button.” On this tab you can also find the code to embed your form in an iFrame, and you can download your source code. To access any of these codes, just click on the option you’d like to use, then click the green “copy code” button, and paste in the appropriate section of your outside site. Jotform Cards users will also see two additional toggles on this tab: smart embed and fullscreen. When toggled on Smart Embed will match your form to the site in which it's embedded, and Fullscreen will switch your embedded form to a full-screen view.

\n

In Platforms you’ll find embed codes unique to over 40 popular sites, like WordPress, Unbounce, and Wix. To access these, simply click on the tile of the site you want to embed to. There you’ll find both the embed code for that site as well as instructions for how to use the code.

\n
\n
\n
seekVideo(113)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:53\n
\n

When it comes to embedding, there’s not much more to it than that! There may be additional settings on your website or other external site, but it’s pretty straightforward on the Jotform side. Just click, copy, and paste.

\n

Switching gears a bit, let’s also look at the option to view and download a fillable PDF version of your form. There are any number of reasons you may want to go with this option, and they all come down to user experience. PDFs are a good option if you may have users who don't have a reliable internet connection. They'll need to be downloaded and then uploaded but they can be filled out over time and without the Internet.

\n

Sending a fillable PDF may also be a convenient way for you to email your form to multiple people at once. Or you can post a link, or embed somewhere where anyone can easily access the PDF; for example, I’ve personally filled out new patient paperwork that I downloaded from a doctor’s website. While you can also do all this with a form, in certain cases a PDF is the expected option, or a user-friendly way to collect data.

\n

If you want to explore and use fillable PDFs, look for the PDF tab and then click on the green Download button. From here you’ll be taken to Jotform’s PDF Editor. You’ll see a tab along the top called PDF Form, which will show you your fillable PDF. If you’re happy with this form and are ready to share it as-is, click the green Download button on the upper right-hand side of the page, and share the PDF however you’d like.

\n

If you’d like to make any content changes you can add additional fields from the toolbar on the left-hand side of the page, and remove or edit fields by clicking on them and looking for the settings or trashcan icons. All of these function the same way they do in forms, and any changes you make to the PDF will also appear in your form. Also like forms, you have the paint-roller icon on the right-hand side of the page to adjust your PDF design, and a Preview PDF toggle above that that you can use to see what your PDF will look like to your users.

\n
\n
\n
seekVideo(233)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:53\n
\n

In this short section we covered two unrelated but equally significant ways to get your forms out to the world: embedding, and fillable PDFs. To embed, all you need to do is find the right embed code for your platform or design, and paste your code where you want your embedded form to appear. For fillable PDFs just adjust your PDF as desired, the same way you would in the form builder, then you can download it and send it off. We have one final sharing option, so stay tuned for our next section where we’ll be talking about prefilled forms.

\n
\n
\n \n )\n },\n 2.17: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_17.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/17-m3u8/17.m3u8',\n outroDuration: 11,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:05\n
\n

Prefill

\n

When it comes to sharing your forms, you have one final option: Prefill. Prefill is really a group of options that provide ways to prepopulate some form data before sending out your form. This creates personalized prefilled form links that you can share, ultimately making your forms faster and easier for users to complete, and leading to more accurate and more timely responses for you. In this lesson, we’ll be looking at each of the available prefill options.

\n

Let’s start by navigating to the Prefill tab, where we can see all of the options: Manual Prefill, Prefill from Forms, Prefill from Tables, SSO Prefill, and a collection of options to prefill from your CRM or project management tools.

\n

First on the list is manual entry. In essence, when you use manual entry you’re filling some form fields out as if you were the customer. One key use case here is when you have data available externally. Another is to send the same partially filled form to multiple recipients. As an example of both, let’s say you’re gathering feedback on this semester’s courses and want to populate course and instructor names before sending evaluations out to students in each class.

\n

To use manual prefill, first find and click “Manual Prefill,” then, on the next page, click the “Add a New Prefill” button. You’ll be taken to your form where you can fill out the data before sending. When you’re done, you can click the blue “Send Invitation” button to send this off immediately, or the green “Create” button to be directed back to the previous page, where you’ll now see a unique link to this prefilled form. Both of these buttons are in the upper right hand corner of the form.

\n

When you’re back at the previous page with the new prefill link added, you can copy and share this link, and you’ll see settings for this form. Immediately next to the link you can choose whether the prefilled data is editable to your form users or not, by toggling between “Can Edit” and “Read Only.” To the right of that is a vertical ellipses menu where you can edit, delete, or duplicate this prefilled form, as well as send the invitation or copy the URL from here, or rename the link. You’ll see settings in the same place for every prefilled form, regardless of which prefill method you use as your data source. You can create as many prefilled forms as you’d like – for example, one for each course and course instructor. If you’d like to create another, click the “Add a new Prefill” button and start the same process over.

\n

On this page you’ll also now see a “select all” checkbox above your new prefill link. When you click on that you’ll see options for editing all of the prefilled forms in this section, whether you have one link or hundreds. You’ll see options to delete and send whatever forms you select, as well as the option to download all of those forms. And once again, you’ll see this “select all” checkbox across all of the other prefill options as well.

\n
\n
\n
seekVideo(182)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:02\n
\n

Next, let’s talk about both Form and Table Prefill. These options both give you a way to prefill forms with data you’ve already collected in Jotform. Both of these will pull data from one of your Tables but the key difference is that some Jotform users are most comfortable just using Forms. These options function the same and either will get you to the same set of data.

\n

You’re actually already familiar with this pair of options though you may not realize it! In the Thank You Pages section we talked about the option to add a “Fill again” or “Fill Another Form” button, and that’s exactly what we’re doing here. We’re just creating it and sharing it in a different way.

\n

To use these prefill options click on either Form Prefill or Tables Prefill. On the next screen you’ll see a dropdown menu where you’ll select either the Form or the Table you want to use as your data source. This can include the form you’re currently using the one you’d like to prefill. If you’re using Tables you’ll also see a dropdown to select what tab to pull data from. Once you’ve completed these steps, you should see some fields pop up. These are fields Jotform has determined map from your data source to the form you’re prefilling. You can remove any of these fields by hitting the trashcan icon next to the field and you can manually map additional fields by finding the blue “Add More” button. When you’ve completed this step, click the green “save settings” button.

\n

From here you’ll be sent to the previous screen. You’ll see that \"You have completed the prefill settings.\" which means that you’ve told the system what you want this prefill structure to look like. If you’d like to edit that click on the blue “Prefill Settings” link to be taken to the previous screen where you can edit your mapped fields.

\n

Now that you have the prefill settings in place you’ll need to identify the specific data for each individual unique prefilled link. Click on either blue “Add a New Prefill” button which will take you to your data source Table. You’ll be directed to a Table whether you’re using Form or Table prefill. Now you can select any responses as a data source by clicking the checkbox next to that row and each response you select will get its own unique link. When you’ve selected the rows you want to use hit the green “Create” button in the upper right hand corner of the Table to be directed back to the previous page. Now you’ll see all of the prefilled form links for each row, and will be able to edit, send, and delete just as we discussed in manual prefill.

\n
\n
\n
seekVideo(326)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 05:26\n
\n

The next prefill option is SSO. Those of you who are Enterprise users can take advantage of the secure data transfer option you get with your Single Sign-on providers. This is the easiest prefill option to set up – it just takes a matter of seconds. After you click on SSO Prefill, on the next page you’ll just need to toggle “Enable SSO prefill” to Yes, and then choose what fields you want to share across platforms. By default you should see relevant fields already mapped, and you can hit the blue “add more” button to identify additional fields. Once you’ve done that you’re all set.

\n

Last but certainly not least are prefill from CRM or project management platform options. If you’re using Airtable or Monday.com for collaboration, or Salesforce, Hubspot, or Pipedrive as a CRM, you can pull data from these external sites to populate form fields.

\n

As with examples in a few of our earlier videos, the process of setting up any of these up is fairly similar, so we’ll just look at one example from this group. In this case I’m going to send an annual account review form to my customers, and I’ll use Salesforce to populate these forms with customer contact information before sending.

\n

For each of these options you’ll first select the platform you want to use. On the next screen you’ll be prompted to log in to your account. Next, I’m going to tell my form what list to use as a data source – in the case of Salesforce, I’m going to use Contacts, but I could use my Leads list instead. Hubspot and Pipedrive may call these lists something different, but the type of information you can use as your source is the same. With Airtable and Monday.com you’re also selecting your data source at this point, but you’re selecting from a particular project or board.

\n

Once you’ve selected the list to use as a data source, the rest should look familiar. As with the other prefill methods you’ll see that Jotform has automatically mapped over some fields. In this case, I’m getting name, phone, and email fields. You can delete or add additional fields as desired. When you’re set, click the green “Save Settings” button.

\n

Once again, you’ve now told Jotform exactly where to get the data, but you need to give it the data to collect. On the following page click either of the blue “Add a New Prefill” options to pull up your data source list, and select the contact or contacts you’d like to create those unique, personalized prefilled links. From here you can edit, remove, and share just as with the other prefill options.

\n
\n
\n
seekVideo(480)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 08:00\n
\n

With fields already completed on behalf of users that’s less time and effort on their part, which means a better customer experience, and which also means an increased likelihood they’ll go through with the purchase, feedback, registration, or whatever it is you’re asking of them. The implications for you as the form owner are significant: more sales, signups, appointments, better feedback… essentially more and better quality of responses, whatever you’re collecting. We offer multiple ways to Prefill: manually, from your Form or Table, with SSO, and from your external CRM or collaboration platform. For each of these you’ll first select your data source, then the data itself, and then you can share your prefilled form with your audience. That wraps up this video, and section two. I'll see you in section three to talk about all things data.

\n
\n
\n \n )\n },\n 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/01v2.mp4': {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/subtitles/subtitle_chapter_2_1.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-02/01v2-m3u8/01v2.m3u8',\n outroDuration: 10\n },\n\n // course 3\n 3.1: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/subtitles/subtitle_chapter_3_1.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/01v2-m3u8/01v2.m3u8',\n outroDuration: 11,\n getTranscript: seekVideo => (\n <>\n
seekVideo(6)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:06\n
\n

Hi! Welcome to Jotform Academy! I’m Morgan Ziontz, and I’ll be your guide for this course, Introduction to Data Management. Thanks for joining me, and congratulations on making the choice to continue developing your Jotform knowledge.

\n
\n
\n
seekVideo(19)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:19\n
\n

This is the third course in Jotform Foundations, and here we’re looking at what happens after you send your form to your audience. More specifically, we’ll be exploring how to find, track, and manage form responses as they come in.

\n
\n
\n
seekVideo(33)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:33\n
\n

The full course, including passing quizzes, will take about an hour and a half to complete. By the end of the course you’ll know how to access all of your form responses in a variety of different formats, all of which come together to give you a full picture of your data.

\n
\n
\n
seekVideo(47)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:47\n
\n

Stay tuned to learn how to get data about how your users access your forms, how to get data highlights sent directly to your email, how Jotform Inbox and PDF Editor can help you manage individual responses, and how Tables can help you analyze, track, and report on data.

\n
\n
\n
seekVideo(65)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:05\n
\n

We recommend going through each topic in order, and you’ll need to watch each video in full to complete the course. You’ll need to pass the quizzes with an 80% to earn your Introduction to Data Management badge. You can retake the quizzes twice every 4 hours until you pass.

\n
\n
\n
seekVideo(80)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:20\n
\n

If you’ve already completed our Introduction to Jotform and Introduction to Form Building courses, you’ll also receive your certificate in Jotform Foundations once you complete this course. If you haven’t yet taken those courses, feel free to get start with them at any time!

\n
\n
\n
seekVideo(96)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:36\n
\n

\n Reach out to\n {' '}\n academy@jotform.com\n {' '}\n if you have any questions or feedback as you go. Otherwise, good luck, and have fun!\n

\n
\n
\n \n )\n },\n 3.2: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/subtitles/subtitle_chapter_3_2.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/02-m3u8/02.m3u8',\n outroDuration: 12,\n getTranscript: seekVideo => (\n <>\n
seekVideo(7)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:07\n
\n

In this course we’re talking about data. For the most part this means accessing and analyzing the data you receive when someone submits their form response. However, we’re going to kick off this section by looking at data about how users use your form. The Form Analytics space provides valuable insight into form usage, enabling you to easily iterate upon your form design in strategic ways.

\n
\n
\n
seekVideo(31)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:31\n
\n

In Jotform, you’ll find all data tied to an individual form, whether you’re looking for Form Analytics or responses. Start on your My Forms landing page, where you can see all of your active forms. Hover over the title of any individual form, and look for the More menu to the right. This opens a pop-up menu of all of the actions you can take with this form, and the center section of this pop-up is dedicated to Analytics. To access data about your form, click on the Form Analytics option.

\n
\n
\n
seekVideo(62)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:02\n
\n

From there, you’ll be directed to Form Analytics. Once you’re in Form Analytics you can switch the form you’re viewing in the orange bar along the top of the screen. Under that you’ll see a gray bar that shows you the time frame you’ve selected, along with the specific date range included within that time frame. Your initial view will be the past week of data, but you can switch your time period as needed, to view data for the past week or month, for all time, or set a custom range.

\n
\n
\n
seekVideo(90)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:30\n
\n

Aside from your time range, one of the first things you’ll notice on this page is a graph. By default this graph shows the total number of form views during that time period, and when you received those views. Below this graph you can see the total number of views and submissions within the selected time period, as well as the conversion rate, and the average time spent on the form. You can click on any of these data points to switch your graph from form views to a corresponding graph for that data point.

\n
\n
\n
seekVideo(119)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:59\n
\n

We recommend going through each topic in order, and you’ll need to watch each video in full to complete the course. You’ll need to pass the quizzes with an 80% to earn your Introduction to Data Management badge. You can retake the quizzes twice every 4 hours until you pass.

\n
\n
\n
seekVideo(160)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:40\n
\n

Device, Platform, and Location provide overviews of how people viewed your form and where they came from. The Device tab shows a pie chart and summary of what devices people used to view your form – for example, whether they used a desktop and mobile. It also shows a summary of screen sizes. The Platform tab gives a summary of what browsers and operating systems people used. And the Location tab shows a map and summary of viewer location by country. As with the snapshot statistics above this section, these three tabs will update to correspond to date range changes.

\n
\n
\n
seekVideo(197)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:17\n
\n

Having information like this can be really important to maximizing your form value and usage. For example, if you’re seeing a really low conversion rate on a long form, maybe you’ll want to take action to inform and incentivize your users. Let them know upfront how long the form should take, give them a progress indicator throughout, and consider offering a small token of appreciation. If your form is solely in English but you’re seeing a lot of users from Spain, consider offering a form translated into Spanish. If the majority of users are accessing your form on a mobile device, be sure to utilize the preview option and make sure your form looks good to that audience. Or if you need folks to fill out 3 forms and you’re finding that the 3rd of the set is consistently getting skipped, consider additional ways to draw attention to that form. Consistently checking your analytics can help troubleshoot any issues and identify opportunities to better serve users. Make changes, check the analytics, and repeat until you have desired results and participation.

\n
\n
\n
seekVideo(261)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 04:21\n
\n

Your users give you data in the form of form responses, but the data about their usage can be just as important. Access Form Analytics from the form you want data about, and from there you can see just how users are viewing your form, when and where they’re filling it out, and how often people are converting from viewers to responders. In our next few videos, we’ll be looking at those responses, both individually, and as a full set of data.

\n
\n
\n \n )\n },\n 3.3: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/subtitles/subtitle_chapter_3_3.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/03-m3u8/03.m3u8',\n outroDuration: 12,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:05\n
\n

Your form is out, and your responses are coming in! But you’re starting to realize that your form went out to a lot of people… and your notification emails are coming in so often that now they sometimes feel like a distraction. Here’s where Digest Emails come in handy: with Digest Emails you can receive responses as a summary, and at regular intervals.

\n

To set up a Digest Email you’ll once again start at the My Forms landing page. Hover over a form, look for the More menu, and, in the Data section, find and click on Create Digest Email. From here you’ll be taken to Create a Digest. As an alternative, you can go into your form Settings and Emails, and you’ll see the option to add a Digest Email there.

\n

On this first Create a Digest page you’ll add your overall settings for the Digest. First, name your digest. We recommend something that will be clear to you when it pops up in your email. Next, choose your recipients. Jotform free users can have 1 recipient, paid users 10, and Enterprise users will be able to send to unlimited recipients. Below that you’ll select when you want to receive this digest, whether daily, weekly, or monthly, what day or days you’d like to receive it, and what time of day and corresponding time zone.

\n

Once you’ve taken care of all of these settings, click on the blue “next” button in the lower right hand corner of the page. On the next page you’ll choose the actual content you want to receive in your digest emails. This includes the ability to add additional forms to the digest. You can do this by clicking on the black Add Forms button on the left-hand side of the page and selecting the additional form or forms you’d like to add. You can also do this by looking for the blue Add Forms button on the bottom of the page. And if you’d like to go back to the previous settings page at any time, click on the blue Gear icon on the right-hand side of the page.

\n

The email you receive will look nearly identical to the layout you see on this page. First, at the top, you have a summary. You’ll see the total number of new responses over all forms included in this digest, and the form that received the most submissions. If you’d like to make any changes to this section– like if you’re only including one form in the digest and don’t need the box that shows which form had the most submissions– just click on the summary box and look for the gear icon. There you can toggle off the heading, and either summary statistic. Or, if you’d like, you can use the trash can icon to delete this section entirely.

\n

Next you’ll see a box specific to a particular form. So if you have multiple forms included in this digest, you’ll see one box per form. If you’d like to change the order of these boxes, you can either drag and drop them in the order you’d like them to appear, or use the up-and-down arrows to the right of the box to shift the order from there.

\n

At the top of an individual form box you’ll see the number of submissions to that form since your last digest, as well as the total number of submissions to that form. Below that you’ll see data from each form response. Just as with the summary box at the top of the page, when you click on this box you’ll see a trashcan icon to delete this form summary, and a gear icon to control settings.

\n
\n
\n
seekVideo(202)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:22\n
\n

Settings are especially important here, because this is where you’ll decide what data you actually need to see in your email. You’ll see three tabs of settings. First, you have the Overview tab, where you can toggle off the summary for that form. Here you can also choose whether your email will include a view submissions button. When you click this button from your email you’ll be taken directly to full form responses.

\n

On the second tab, Charts, you have the option to include data visualizations directly in your digest. You can create up to 3 charts, and you can select from relevant questions – like dropdowns and multiple choice. You can also include a summary of approval status if you’re using Jotform Approvals on this form. First choose a question or approval status, then click on the question to see additional chart settings specific to that question. You’ll choose between either a column or bar chart, you’ll select whether or not you want a table of the chart data to appear below the chart, and you’ll choose how you want your responses sorted.

\n

When you’re done with chart settings, click the arrow next to the form title at the very top of this settings pop-up menu to return to the full settings menu.

\n
\n
\n
seekVideo(274)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 04:34\n
\n

Digest Emails are meant to provide summaries of what you need when you need it, and these data visualizations can be an especially useful way to keep up with critical data at a glance.

\n

Finally, your last settings are in the Submissions tab. Here you can choose up to 5 fields to appear in the Digest, for each form response. If you don’t want this detailed summary in your email, you can toggle off Submissions List to hide it. You can also choose whether or not you want empty fields to appear in your Digest – so, if someone skips a field, that empty field doesn’t take up valuable Digest real estate.

\n

Below those two toggles you’ll select the name of each submission – that can be any field from the form, but it can be a good idea to use a field that’s specific to a user and one that’s not likely to be skipped – like name. Finally, in the list of all form fields use the checkbox next to a field to include it in the digest.

\n

To finish your digest, close the settings menu, and look for the green Create Digest button in the lower right-hand corner of the screen. You’ll see a popup where you can confirm settings, and then click the green Confirm button to put your digest in place. If you’d like to do a test run to make sure everything looks okay, use the blue Test Email button to send an example off to yourself.

\n

Once you’ve selected the list to use as a data source, the rest should look familiar. As with the other prefill methods you’ll see that Jotform has automatically mapped over some fields. In this case, I’m getting name, phone, and email fields. You can delete or add additional fields as desired. When you’re set, click the green “Save Settings” button.

\n

Once again, you’ve now told Jotform exactly where to get the data, but you need to give it the data to collect. On the following page click either of the blue “Add a New Prefill” options to pull up your data source list, and select the contact or contacts you’d like to create those unique, personalized prefilled links. From here you can edit, remove, and share just as with the other prefill options.

\n
\n
\n
seekVideo(351)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 05:51\n
\n

Digest Emails can keep you up-to-date on form data without overwhelming your email with responses. All you need to do is choose which form or forms you want to summarize, set when you want to receive the Digest, and choose what fields you want to see, including charts of your most important data. From there your Digest goes right to your email– once a day, week, or month, rather than every few minutes.

\n
\n
\n \n )\n },\n 3.4: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/subtitles/subtitle_chapter_3_4.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/04-m3u8/04.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(8)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:08\n
\n

Whether or not you choose to have notifications sent directly to your email, form responses are always accessible inside your Jotform account. To view an individual response in more detail, or interact with it in any way, look to Jotform Inbox. Inbox is a native email tool that allows you to reply to and forward responses, add comments, approve, and more. With Inbox you get a complete picture of an individual response, along with any follow-up actions or comments. It’s where you end up any time you’re looking for more information about one of your form responses, including when you click on a button from an email you’ve received. Like the data sources we’ve discussed in the last few videos, you’ll find Inboxes tied to specific forms. So to find Inbox, go to your My Forms landing and hover over a form, then click on the Inbox link. If you’re working on a form inside the Form Builder, you can also get to the Inbox by opening the dropdown menu next to the Jotform logo and selecting Inbox.

\n
\n
\n
seekVideo(71)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:11\n
\n

Once in your Inbox you’ll see the full list of responses along the left-hand side of the screen, and a detailed view of an individual response in the center of the page. You’ll first see details of the most recent response in the center of the page, but you can navigate among responses by clicking them in the side panel.

\n
\n
\n
seekVideo(90)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:30\n
\n

In that side panel, above the list of responses, you’ll see a space to search and filter responses, and the option to select all responses. When you check the Select All box you can download all responses as a CSV, Excel file, or PDF. You’ll also see a vertical ellipsis menu where you can mark all responses as read or unread, star for easy reference, and archive or delete all. To take these same actions on multiple responses but not all of them, just use the checkbox next to a response to add or remove it from the list. You can also take these actions on individual responses from within the detailed view.

\n
\n
\n
seekVideo(131)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:11\n
\n

Moving into the detailed view in the center of the page, here you’ll see all data from a single submission. If you’re using Jotform Sign, or if your form has a built-in approval workflow – or both – you’ll also see information related to those features. For Sign you’ll see two versions of a completed form – one with an attached audit trail and one without. With Approvals you’ll see any approval actions that have been taken related to this submission. If you’re an approver on this form, you’ll also see the opportunity to make your decision from here, including adding any relevant feedback.

\n
\n
\n
seekVideo(169)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:49\n
\n

At the top of the detailed view, right above the title, you’ll see a small blue button that says Add Tag. From here you can create and add tags to submissions to organize them in groups, or to be able to easily find something later on. For example, use this in onboarding to tag new employee paperwork with the name of their department. That way you can easily send all of a team’s paperwork to their manager anytime you need to.

\n
\n
\n
seekVideo(194)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:14\n
\n

Fully above the submission, on the right hand side of the screen, are a number of action buttons. First, Reply allows you to respond to the user directly from here, for any reason. If you need a quick clarification, want to respond to a question they’ve asked, or confirm something they’ve provided, being able to respond from here saves you the hassle of copying and pasting their responses, or tracking down their contact information externally. By default your message will include their full submission, but you can remove, add, and customize text as needed before sending, as well as add attachments. You can also choose to add additional recipients.

\n
\n
\n
seekVideo(234)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:54\n
\n

Next, you’ll see a button to comment. This is space for you to make any general comments about this submission, or add any attachments necessary. These comments will be visible to anyone who has access to your Inbox, and they’ll appear underneath the submission details, in the order made, and in the same place you’ll see approval status updates. Also note that if you hover over an individual field you’ll see the option to make in-line comments, specific to that field. Comments made about specific fields will also appear among the actions listed below the submission, and will be highlighted and tagged to the individual field.

\n
\n
\n
seekVideo(272)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 04:32\n
\n

Lastly is a vertical ellipsis menu. You’ll see the Reply and Comment options here as well, in addition to options to download, print, star, mark as unread, archive, or delete this specific submission. There’s a Customize PDF link that will take you to the PDF Editor for this form. We’ll be covering the PDF Editor in depth in our next video. This menu also includes the option to forward this submission to anyone you’d like.

\n
\n
\n
seekVideo(302)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 05:02\n
\n

Finally, let’s talk about Inbox organization and sharing. Above the submission detail and the list of all responses, are teal navigation tabs. These are here to help you better organize and navigate submissions in the future. In these tabs the navigation and layout is the same as we’ve discussed so far, but you’ll only see specific submissions.

\n
\n
\n
seekVideo(324)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 05:24\n
\n

First, is the Inbox tab we’ve been looking at. Here you get your complete list of submissions. Then you’ll see Sentbox, which shows you any submissions you’ve made to a form assigned to you. On the “Waiting For Me” tab you’ll see any submissions that require approval from you, where a workflow is waiting for your input before it proceeds. Finally, you have Archive and Trash tabs as well. Trashed responses will be stored for 30 days before being permanently deleted.

\n
\n
\n
seekVideo(354)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 05:54\n
\n

With regards to sharing, if you’d like to share your Inbox with someone on your team – maybe someone who also needs to stay on top of submissions, look for the gray share button in the top right of the page, next to your avatar. Click on that to control share settings, like whether folks you share with have read-only access or also ability to respond or act on submissions. When your settings are ready, just send it off with a link or by email.

\n
\n
\n
seekVideo(381)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 06:21\n
\n

With design and functionality that mimics an email account, Inbox is a simple and intuitive way to find, review, and respond to the submissions you receive for your form. In our next section, we’ll be looking at PDFs: one additional way to view and interact with individual form responses.

\n
\n
\n \n )\n },\n 3.5: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/subtitles/subtitle_chapter_3_5.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/05-m3u8/05.m3u8',\n outroDuration: 14,\n getTranscript: seekVideo => (\n <>\n
seekVideo(9)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:09\n
\n

In this video we’re looking at one more way to focus on individual form submissions: PDF Editor. With PDF Editor you can create and fully customize a PDF version of your form responses. The ability to be able to easily design, download, and share PDFs make them ideal for maintaining an official record of form responses.

\n
\n
\n
seekVideo(30)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:30\n
\n

Before we move into using PDF Editor, it’s important to make some distinctions. First, this tool has two key features: creating PDFs and accessing them. With PDF Editor you’ll first build your own PDF layout that showcases your brand and form data. From there, you’ll be able to download and share individual form responses in that PDF layout. PDF Editor is different from Jotform’s PDF Builder, which allows you to create fillable PDFs within Jotform. These tools are related and work together in many ways, but you can think of it like this: PDF Editor is for what your PDFs look like after they have data in them, and PDF Builder is for creating a PDF that will collect data.

\n
\n
\n
seekVideo(75)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:15\n
\n

To access the PDF Editor, go to your My Forms landing page, hover over one of your forms, look for the More menu and then click Create PDF Document in the middle section of the menu. Or, if you’re inside the form builder and want to build your PDF concurrent to setting up your form, you can look for the dropdown menu next to the Jotform logo and click on PDF Editor from there.

\n
\n
\n
seekVideo(98)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:38\n
\n

Once inside the PDF Editor, you’ll see an overall layout that closely resembles the form builder. On the left hand side of the screen, in the Add Elements menu, are fields you can add to the PDF. On the right are a paint roller icon and gear icon for design and overall settings, respectively.

\n
\n
\n
seekVideo(116)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:56\n
\n

In the center of the page you’ll see a clean but plain default PDF that includes all of the fields from your form, along with sample response data. Let’s talk first about editing your PDF content. To get started, click on any field to see settings, as well as options to duplicate and delete that field. In the settings for the header box at the top of the page, you’ll also see the option to change the header color or add a background image. If you’d like to add a logo in this header or anywhere else on the page, look for the image option in the add element toolbar on the left hand side of the page and drag and drop it anywhere you want it to appear. You can change the size of any individual field by clicking on it, looking for the blue outline, and dragging that outline to the size you want it to appear.

\n
\n
\n
seekVideo(166)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:46\n
\n

To rearrange fields, just drag and drop them wherever you want them to appear on the page. And if you’d like to add any additional fields, look to the Add Element menu. Here you’ll see two tabs: basic elements, and form fields. Just click or drag-and-drop any of these fields to add them.

\n
\n
\n
seekVideo(184)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:04\n
\n

In the case of PDFs, Basic Elements are often fields that help organize and format the PDF itself – things like headings, text boxes, and empty spaces, for example. You’ll also see a handful of elements you might not collect on the form but may need as part of the PDF record – fields like signature, submission ID, and IP address. The Form Fields menu lists all of the fields you have in the corresponding form, so that if you delete one from the PDF you can easily find it and add it back in if needed.

\n
\n
\n
seekVideo(216)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:36\n
\n

To edit your PDF design, click on the paint roller icon. You’ll see 3 tabs: General, Element Style, - and Templates. On the General tab you can switch the size and layout of the PDF, and apply a background color or image. Element Style gives you control over question alignment, fonts, and spacing. Finally, if you want something a bit more designed than the default PDF but aren’t sure where to start, consider a template. All you need to do to apply a template is click on one that seems like a good fit. From there you may have to do some field rearranging or other small edits, but it’s a great starting point, just like with form templates.

\n
\n
\n
seekVideo(258)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 04:18\n
\n

In the PDF Settings, below the Design menu, you have settings that generally apply to printing or saving the PDF. These settings include naming the PDF, adjusting margins, enabling password protection, and turning the PDF layout you created into a template. Most of these settings are pretty straightforward, and can be adjusted to your preference. To add a password, all you need to do is click the box that says “enable password protection” and add whatever password you’d like to use. This is a useful way to have a little bit more control over your submissions, and you can share that password with anyone who’ll be opening the PDF.

\n
\n
\n
seekVideo(297)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 04:57\n
\n

Above the space where you’ll edit your PDF you’ll see a blue navigation bar. On the left hand side, next to the tab we’ve been working in so far, is a second tab that says “New PDF.” If there’s any reason you’ll need multiple versions of your PDF, click the New PDF tab, then click “New PDF Document” to create another layout following the same process we just covered. For example, maybe you collect user feedback. You need one version of a PDF that includes the full record, and another that’s anonymized for sharing throughout your company. You can create those two versions here.

\n
\n
\n
seekVideo(336)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 05:36\n
\n

Note that you’re also able to create a fillable PDF from this spot, by clicking “New PDF Form” instead of “New PDF Document.” We’re not covering that in this course, but stay tuned for future courses where we’ll cover that in depth.

\n
\n
\n
seekVideo(350)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 05:50\n
\n

On the right hand side of that blue bar is a preview toggle. You can use this to preview the actual PDF. As with forms, you can continue to iterate on your PDF design as needed, and can use the preview as a guide. Right below that toggle you’ll see action items to interact with the form, send this PDF to someone directly from here, print it, or download it. And right above the toggle you’ll see a Share button, which you can use to share your collection of PDFs, in the same way we discussed sharing your Inbox in our last video.

\n
\n
\n
seekVideo(384)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 06:24\n
\n

So far we’ve talked about creating your PDF, but, as I mentioned at the top of this video, this is also a space where you can access your PDFs. In the center of any tab, right above the PDF, you’ll see an identifier for the PDF you’re currently viewing – it’s usually someone’s name or a company name. You’ll also see that this is X out of Y number of submissions. Use the down arrow directly next to the identifier to navigate to a specific PDF, or the left and right arrows on either side to scroll through submissions. Again, you’re also able to get to these PDFs from your Jotform Inbox, from Tables, which we’ll be speaking about in the next videos, and anywhere else you see the option to download a response or attach a PDF.

\n
\n
\n
seekVideo(430)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 07:10\n
\n

One last thing about PDFs is that you can integrate Jotform with other platforms – like your cloud storage platform of choice, or certain CRMs – to directly send PDFs to those platforms. This can be useful in many instances – as a data backup, as your permanent record if you want to delete data from your Jotform account, or tied to a particular customer or account, for example. If any of those reasons are compelling to you, be sure to review our list of integration partners for seamless file sharing options.

\n
\n
\n
seekVideo(461)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 07:41\n
\n

And that covers it on our PDF Editor! You’ll see access to PDFs throughout Jotform – in emails both to you and your users, in your Jotform Inbox, from Tables, and more. They serve as a record of individual responses and can be shared as such, so it’s important to customize them and make them yours. Find the PDF Editor attached to any specific form, edit fields, add logos and images, and choose a color or background that represents you and your organization. Then you’re ready to go.

\n
\n
\n \n )\n },\n 3.6: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/subtitles/subtitle_chapter_3_6.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/06-m3u8/06.m3u8',\n outroDuration: 12,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:05\n
\n

So far in this course we’ve covered 3 things: getting form usage data, getting summary data sent directly to you, and accessing and following up on individual responses. When it comes to data management, we’ve saved the best for last: in these last few chapters, we’re diving into Jotform Tables. With Tables you can view data in aggregate, turn that data into a database, and seamlessly create reports to summarize your submissions.

\n

We’re starting this topic with Tables navigation. As with everything else we’ve discussed in this section, Tables are created as a function of your forms, so you’ll find each table tied to a specific form. To get to a Table, go to your My Forms landing page, hover over a form title, look for the More menu, and click on Submissions in the center of the menu. There are a few other ways you can get to your Table from this landing page as well: under the title of the form, click on the X number submissions link, or, click on the form title to highlight it, and you’ll see a shortcut to Submissions in the navigation bar above your form titles. Finally, if you’re inside the Form Builder and want to easily get to your Table, click on the navigation menu next to the Jotform logo, and then Tables.

\n

Once you’re inside a Table, you’ll see something that looks like a spreadsheet. Each column represents one field from your form, and each row is a complete form response. Right away you can see how easy it is to view all of your responses in this format, even just with a quick glance at the Table. By default, columns are presented in the order they appear in your form, but can be hidden or rearranged as needed, to help you make the most of your data. If your form has a built in Approval workflow, you’ll see a column for approval status before your form data. And if you’re using Jotform Sign you’ll see a column with your downloadable Sign documents before the data as well.

\n
\n
\n
seekVideo(122)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:22\n
\n

In addition to hiding and rearranging columns, you can add both rows and columns. Let’s say you’re doing a fundraising drive. Most people are using your form, but you’ve gotten a check in the mail and you still want to include this donation in the total amount raised. In that case, you can scroll to the bottom of your Table, look on the left for the button that says Add, click on that to add a new row, and then manually enter the donation information for the check.

\n

To add a column, scroll all the way to the right of your Table and look for the Add button there. When you click on Add here, you’ll get a popup list of multiple different types of columns you can add. We’ll be covering this more in our next video.

\n

You can edit Table data as well. Let’s say you have a recurring donor whose name you know well, but you notice they have a typo. All you need to do is click into the field and change the text as needed. Note that if you have a form powered by Jotform Sign your data is locked and won’t be available for editing. If you want data locked for any other reason, there’s a setting to do so.

\n

Above your Table, on the left, is a search and filter bar that allows you to easily find or focus on specific responses. If you create a filtered view you’ll see a blue bar in the table, above the data, that will tell you how many submissions meet your filter criteria. On the right side of that blue bar you’ll see the options to create a new tab of this filtered view, and to remove this filter. If this view is something you want to come back, just click Create a New Tab and name the tab. For example, if you’re asking for customer feedback, maybe you want a filtered view of customers who’ve shared a testimonial. A filtered view will also send any new responses that meet the filter directly to this tab as well.

\n

Above your Table on the right, are actions you can take with this form data. The columns dropdown is where you can choose to show or hide individual columns. The Form dropdown will allow you to view the actual form, assign the form to someone, edit the form in the Form Builder, and edit your Auto-Delete Submissions settings. Finally, the Download All button allows you to download all responses as a CSV or Excel file, or to download the PDFs associated with each entry. If your form includes an upload field, you’ll also see the option to download attachments here. Just as in Inbox, if you want to take bulk action but not download ALL, use the check boxes next to each row to choose which rows you want to download.

\n

You’ll also notice stars and a vertical ellipses next to each row. Click on stars to highlight entries you might want to return to, like high level donors you want to send personalized thank you notes. In the vertical ellipses menu there are actions you can take on that specific response: you can star the entry from here, mark it as read or unread, and view the entry in its own popup. You’ll notice that read rows appear white and unread gray, and the distinction can help you keep track of submissions as they come in. You’ll also see the options to download this single submission, insert a row above or below, reply to or forward the submission, and archive or delete it. If you have a built in Approval flow, you’ll see some Approval-related options here as well.

\n
\n
\n
seekVideo(323)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 05:23\n
\n

There are a few final navigation pieces to note about Tables. Look above the search and filter box for the green row to switch between or create new tabs. To create a new tab, click on New Tab. You’ll see multiple different formats you can use as a starting point, which we’ll cover in a little more detail in the next videos. Each tab also has overall settings, in a vertical ellipses next to the name of the tab. Here you’ll see a number of options that generally apply to the full data set. You can use Manage Columns, Form, and Download here as alternatives to the buttons mentioned earlier. You can Lock All Data to ensure no one can make any edits to the Table. You can rename, duplicate, and add a description to the Table and, if you’d like to change the format from the default Table to one of the other formats, you can do that by clicking Change Type.

\n

Finally, just like with Inbox and PDFs, you can share your Table. Look for the share icon in the upper right-hand corner of the page, next to your avatar. Here you’ll also see the option to embed your table publicly and make data available for download and printing.

\n
\n
\n
seekVideo(393)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 06:33\n
\n

Digest Emails can keep you up-to-date on form data without overwhelming your email with responses. All you need to do is choose which form or forms you want to summarize, set when you want to receive the Digest, and choose what fields you want to see, including charts of your most important data. From there your Digest goes right to your email– once a day, week, or month, rather than every few minutes.

\n
\n
\n \n )\n },\n 3.7: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/subtitles/subtitle_chapter_3_7.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/07-m3u8/07.m3u8',\n outroDuration: 14,\n getTranscript: seekVideo => (\n <>\n
seekVideo(10)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:10\n
\n

In our last lesson we walked through overall Tables navigation, and looked at managing and exploring individual entries. In this lesson we’re picking Tables back up, talking about Columns. There are a lot of options for beefing up your Tables, some of which can get pretty complex. The purpose of this video is to introduce you to the column types, what they’re there for, and how to add them to your Table. Stay tuned for a future Jotform Academy course for a deeper dive into settings and functionality.

\n
\n
\n
seekVideo(37)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:37\n
\n

When you add a column to your Table you can manually enter data into that column without making any changes to the associated form. There are any number of reasons to add additional columns to your Table. It can be to capture data you didn’t in the form – like if you want to pull in email addresses from another form. It can be to help manage follow-up actions – like adding a checkbox to confirm that someone on your team has followed up with a submission. It can also be for your record keeping– like creating a new lead from a contact form. All this, and so much more, can be done easily by adding columns.

\n
\n
\n
seekVideo(74)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:14\n
\n

As a reminder from our last video, by default your columns are organized in the order they appear in your form, but can be rearranged and hidden as needed. To add additional columns for any reason, scroll all the way to the right of your table and look for the Add button. When you click that button you’ll be presented with a popup menu with four tabs of options: basic, formula, buttons, and connection.

\n
\n
\n
seekVideo(100)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:40\n
\n

In the basic menu you’ll find options for adding in common, uncomplicated fields to your Table. For the most part, these fields mimic what you’d find in forms: you can add in columns formatted for short or long text, email and phone numbers, dates, and single or multiple choice. You can also add columns to include attachments, star ratings to rate certain submissions, columns formatted for numbers – like cost, and that checkbox option I mentioned earlier. Finally, if you’ve shared your Table and would like to specifically assign a submission to someone you’ve shared with, you can add an Assignee column to tag them in that submission.

\n
\n
\n
seekVideo(141)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:21\n
\n

To add a column, either from this basic menu or any of the others, click on the type of column you want to add, and then look for the blue Next button. You’ll first be prompted to name the column, then click the green Create Column button to officially add this column to your table. Some options may require additional settings, for those you’ll instead see another blue Next button. For example, if you’re adding a multiple choice column, you’ll need to define the choices. For a date and time column, you’ll choose whether you want to collect Date, or Time, or both. Once you’ve reached your final settings you’ll see that green Create Column button and can now add your column.

\n
\n
\n
seekVideo(182)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:02\n
\n

Next on the list of types of columns is Formulas. You can use Formulas to combine data, perform calculations, and even include data from other Forms or Tables. On this tab you’ll see four options: Advanced Formula, Lookup, Rollup, and Counter.

\n
\n
\n
seekVideo(200)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:20\n
\n

Use Advanced Formula to create typical spreadsheet or database calculations. After clicking to add the column and naming the column, you’ll see space to create your formula. Below that space, form fields will be on the left, and formula types on the right. You’ll see all kinds of formulas you can create: simple math equations, if/then logic, statistics, arrays, and more.

\n
\n
\n
seekVideo(224)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:44\n
\n

Use Counter to count the number of responses in a particular field. For example, if you’re trying to create next month’s work schedule and need to know how many days each of your employees is available, Counter can quickly give you that answer. Just add the counter column, select the field you want to count, and you’re set. This is only available for fields in which there are multiple options.

\n
\n
\n
seekVideo(247)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 04:07\n
\n

Lookup and Rollup both reference connected entries. Lookup can be used to gather and update related data from another Form or Table, and Rollup can be used to make a calculation with data from another Form or Table. For both of these you’ll be prompted to connect to the Form or Table as you go, but you can also choose to do that beforehand, on the Connections tab. You’re first prompted to choose the Form or Table to use as a data source, and, with Tables, you’ll then specify which tab to use. Once you do that, you’ll see that a copy of that data has been added to your Table in a new tab, from there you can add in Lookup and Rollup equations to combine data from multiple Tables.

\n
\n
\n
seekVideo(290)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 04:50\n
\n

Since that covers the Connections tab as well, the last tab is Buttons. When you add buttons to your Table you’ll add settings first, and will then be able to follow-up just by clicking the button. This can be a huge time saver for many workflows, rather than manually requesting a follow up, or downloading a file and then uploading it externally, for example. You can use “send an email” and “request an update” to forward or reply to the submission, respectively. Use “send a prefilled form” to send a new form with data partially completed. If you watched our Introduction to Form Building course, this is similar to what we discussed both in our thank you pages lesson and emails lesson – in this case, you’re just doing that from Tables. Use “send data via webhook” and “send data to other apps” to integrate your Table with external platforms and be able to seamlessly send submission data over. This can be used to create new accounts, customers, tasks, etc., depending on the platform with which you’re integrating. Finally, you can use “send files to an external source” and “send a PDF” to send finalized versions of data to external sources, like your cloud storage platform. For each of these you’ll first follow the prompts to create the button settings, and, where applicable, integrate with the external platform. Once done, you’ll see the column added, with a button available for each submission. From there, any time you want to take that action– whether it’s forwarding a message, sending the PDF to the cloud, using the submission to create a new account, or anything else, all you’ll need to do is click the button – you’ve already set it up to do exactly what you want.

\n
\n
\n
seekVideo(390)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 06:30\n
\n

Before we close out this section, let’s look at column settings. You can find settings for each column by looking for the dropdown arrow next to the column name. Settings will be fairly consistent for each column, but some columns may have settings unique to that field. For the most part, you’ll first see the option to organize the entire Table by that column, in ascending or descending order. You’ll also see other fairly straightforward options: renaming the column, duplicating it, inserting a blank column on either side, hiding, or deleting the column, and freezing the Table at that column for easy scrolling.

\n
\n
\n
seekVideo(428)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 07:08\n
\n

For each column you have ability to add a description, which will then be visible by hovering over the “i” information icon next to the column heading. And you can summarize each field with a chart, which will pop up on the right side of your Table. You’re able to filter, reformat, and download the chart from here. Charts are a quick visual indicator of certain data points – We’ll be talking a bit more about that in our next video.

\n
\n
\n
seekVideo(454)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 07:34\n
\n

Most columns also include the option to add a summary, with a dropdown of what type of summary you’d like to see. The summary itself will appear along the very bottom of the page, where you’re also able to change or edit the type of summary. Approvals columns and multiple choice columns include the ability to group your data by response type, and to ultimately create a new Table with that grouped view.

\n
\n
\n
seekVideo(478)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 07:58\n
\n

Some columns include the ability to lock that data in particular, even if the rest of your Table is still open for editing. Finally, if you’ve added a column that has any additional settings – like action buttons, formulas, or multiple choice questions – you’ll see the option to edit the settings for that column. Any columns connected to other data will have the option to disconnect and delete the column, and Action Buttons will also have a separate settings menu to design the button itself.

\n
\n
\n
seekVideo(510)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 08:30\n
\n

In this second Tables chapter we covered all things columns, which, as you can tell, is quite a bit! We looked at adding in basic columns, formulas, and action buttons, as well as connecting your Table to other forms and tables for external data reference. We also looked at settings for each column, which help you organize, view, and analyze data in multiple different ways. In our next video – which is also our last! – we’ll be finishing off Tables by looking at Reports and other types of tables formats.

\n
\n
\n \n )\n },\n 3.8: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/subtitles/subtitle_chapter_3_8.vtt',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-foundation/course-03/08-m3u8/08.m3u8',\n outroDuration: 12,\n getTranscript: seekVideo => (\n <>\n
seekVideo(5)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:05\n
\n

Welcome to our final video, where we’re going to close out our lesson on Tables. In this video we’ll take a look at adding and formatting new tabs.

\n
\n
\n
seekVideo(18)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:18\n
\n

Since there’s a lot to Tables, let’s start with a quick recap. So far we’ve covered general Tables navigation, adding, editing, and formatting rows and columns, and the different types of columns you can add. Each row of a Table is a single submission, and each column represents one field from your form. You can add new rows– or new responses– by scrolling to the bottom of the Table and looking for the Add button. You can add new columns to help manage your data by scrolling to the far right of your table and looking for the Add button there. Finally, rows, columns, and tables each have their own settings. You’ll find overall table settings in the vertical ellipses next to the table title, column settings in the dropdown menu next to the column heading, and row settings in the vertical ellipses near the row number.

\n

In our last lesson we talked about one reason to add a new tab to your table, which is to use columns to connect your data with another table as a data source. We’ve also talked about using filter or sort features to add new tabs. This gives you easy access to a certain data view while keeping your full dataset untouched. An example of that would be to filter your data by approval status, and create a tab only of submissions that haven’t yet been approved.

\n

You can also create a new tab by looking for the green Add Tab button in the green header bar. Once you click on that button you’ll see a menu of options: Table, Calendar, Cards, Uploads, and Reports. Each of these are different formats for viewing data, and can be customized as needed.

\n

Once you select which format to use, you’ll then determine if you want to start with a blank slate, or create the tab with data you already have. Each tab can be customized, sorted, and filtered in much the same way we discussed in our earlier Tables lessons.

\n
\n
\n
seekVideo(138)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:18\n
\n

We’ll save a deep dive into most of these for a future course, but let’s briefly look at each of the other options and a little more closely at Reports. We’ll focus on how to use these features to create custom views of existing data.

\n

First up is Calendar. If dates and times play any role in your form, this is a way to easily turn your form submissions into a schedule, with little extra time or effort on your part. Choose your data source and define the calendar limits, and instantly see your submissions appear within the calendar. This can be useful for managing appointments, scheduling social media output, viewing responses by submission date, and so much more.

\n
\n
\n
seekVideo(180)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:00\n
\n

Next is Cards. With Cards you see a uniform tile for each submission, and can select any data you’d like to include in the card. This can be a really useful way to still be able to look at many submissions at once, but with a bit more focus on individual submissions rather than the aggregate data set. That makes cards ideal for contact lists, registration forms, and a case studies database – really anything where it can be useful to be able to quickly view important data points, or find a certain entry among a group.

\n

If you have a form that includes a file upload field, the Uploads view creates cards that prioritize the uploaded file. Use this to organize things like submissions for photo contests, digital assets, and patient files with signed consent forms clearly visible. You’ll see that upload front-and-center on the card.

\n

Finally, Reports. With reports you can turn your full data set into a slide show or downloadable PDF in a matter of seconds. First click on Reports and then the blue next button, then choose your data source and click the blue next button once again. Finally, choose whether you want to create your report from scratch, or want an automatically generated report in either a compact or extended view, and hit that final next button.

\n

If you’ve chosen compact or extended view, you’ll see your report ready to go, complete with cover and end slides. Each column will be represented by a chart or graph, chosen by default to well represent that data.

\n

No matter how you start your report, on the left-hand side of the page you’ll see an Add Element toolbar, which you can use to add headers, shapes, and more. You’ll find these under the Basic tab, and in the Form Elements tab you’ll see all your form fields – these are generally more useful if you’re building your report from scratch.

\n

On the right hand side of the page you’ll see a paint roller icon to choose colors, layout, and add animations. Below that you’ll see an icon with pages that allows you to easily jump to certain pages of the report, or to view all pages together.

\n

On each slide, to the top right of the slide itself, you’ll see a number of options specific to that slide. First, the gear icon gives you settings for that slide, including changing colors and other visual elements, as well as the ability to rearrange slide elements just by dragging elements into the order you’d like them to appear. Below the gear icon you’ll see an icon to duplicate that slide, then one to delete that slide. Use up and down arrows below those to rearrange slides, and the plus icon to add a new, blank slide immediately after the one you’re on.

\n

Clicking within the slide gives you the ability to edit that slide as well. Drag charts or graphs to other places, update slide titles or add subtitles, and add in additional elements here, directly within the slide. If you click into the header or on the chart, you’ll also see settings specific to that space. Once again you’ll see the gear icon for settings, duplicate and delete icons, and a lock to lock that space so it can’t be edited. For charts, your settings include the ability to change the chart from the default applied to a different type of visual representation.

\n

As with any of the other tabs we’ve added to tables, you can also search, filter, sort, and download in the space right above the presentation. Here, next to your download button on the upper right of the page, you’ll also see a button to preview the report. Use preview both to review the report, or to present it. Finally, you have a publish button to share your report directly from here. One other thing to note is that you can create and access reports outside of Tables by clicking the My Reports button in the general navigation drop-down menu.

\n
\n
\n
seekVideo(436)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 07:16\n
\n

And with that, we’re closing out our lessons about Tables and our Introduction to Data Management course. In this last video we looked at the other types of tabs you can add to your Table, each of which give you different ways to visualize data. Calendar is great for anything related to scheduling, Cards and Uploads give you a way to focus on individual submissions in your data pool, and reports turn your dataset into an easily sharable and customizable presentation in a matter of seconds. Each have their own settings, and give you the power to truly understand your data. With this, you should now have an understanding of the power of what you can do with your data, and you’re well on your way to earning your Introduction to Data Management badge. If you’ve taken Introduction to Jotform and Introduction to Form Building, you’re also eligible to earn your Jotform Foundations certificate. Good luck with the quiz!

\n
\n
\n \n )\n }\n },\n '018c1fbc27fe7d74ac8da503375303585c5d': {\n 1.1: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/subtitles/01.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/01-m3u8/01.m3u8',\n outroDuration: 15,\n getTranscript: f => f\n },\n 1.2: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/subtitles/02.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/02-m3u8/02.m3u8',\n outroDuration: 15,\n getTranscript: f => f\n },\n 1.3: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/subtitles/03.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/03-m3u8/03.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(8)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:08\n
\n

Like other Jotform products, you’ll be able to create, navigate, and take action on any of your apps by finding the appropriate landing page. To do that, log into your account, click the navigation menu on the upper left-hand side of the page next to the Jotform logo, and click My Apps.

\n\n

\n You’ll first notice that the My Apps landing page looks very similar to the Jotform landing pages we explored in our Jotform Foundations courses. The navy header bar at the top of the page is your global site navigation. In the white bar underneath that you’ll find sort and search options on the right side, and the purple Create App button on the left. In the gray column on the left-hand side of the page you can organize and view Apps in folders. And, finally, in the center of the page are all of the apps you’ve created that you haven’t deleted or archived. Hover over or click on any app name to see what actions you can take with that app.\n

\n
\n
\n\n
seekVideo(66)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:06\n
\n

In the rest of this lesson, we’re going to focus on what happens if you click that purple Create App button. First, you’ll be redirected to the Create App page, where you’ll see you have 4 options to get started: start from scratch, use a template, clone an existing app, or build a store.

\n
\n
\n\n
seekVideo(86)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:26\n
\n

\n If you start from scratch, you’ll be brought to the App Builder, where you have a blank slate to create your app. From here you’ll drag and drop app elements from the Add Element toolbar on the left-hand side of the page, and adjust design with the App Designer on the right-hand side of the page. We’ll cover design in the next video, and Form Elements after that.\n

\n
\n
\n\n
seekVideo(106)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:46\n
\n

\n Your next option is to use a template, as mentioned briefly in the last video. When you click Choose Template you’ll be brought to the App Template Library where you can search and browse hundreds of beautifully designed apps for exactly what you need. You can enter keywords into the search bar along the top, or choose a specific category to browse on the left. If you’d like to see any app in more detail, simply click on it to read some of its highlights, see what it looks like in desktop, mobile, and tablet views, and even scan a QR code to see it in action on your own device. If a template is a good fit for you, you’ll find green Use Template buttons at the very top of the page, and underneath the QR code, both on the right-hand side. Clicking either button will clone a copy of that template into your account where you can customize as needed by swapping out template features, colors, and images for your own.\n

\n
\n
\n\n
seekVideo(154)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:34\n
\n

\n The third option is to Clone an Existing App. Once you’re up and running you may find yourself with an app or apps that you love. You’ve made something beautiful and you don’t want to change a thing… except maybe the content. In this case, click Clone Existing App to see the list of your current apps, then choose the app you want to clone and hit the blue next button in the lower right-hand corner. Once you’ve chosen an app you’ll next see a screen where you can rename the cloned app, and choose whether you also want to clone any forms included in the app, or use the forms that already exist. Once you’ve made those choices, click the blue clone button in the lower right-hand corner to create the app. Your last option is to Build a Store. If you’re collecting money through a Jotform App you have two options: you can create a form, and that form can be included in your app along with other elements. Or you can create a store that features your products, services, tickets, or donation requests front-and-center in the app. If you click this last button you’ll again be taken to the App Builder with a blank slate, but here you’ll see a format maximized to feature whatever you’re selling.\n

\n
\n
\n\n
seekVideo(223)} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:43\n
\n

\n In this lesson we covered your options for creating an app: you can build from scratch, create a store from scratch, or copy a template or an existing form. If you have specific designs and features already in mind, you may want to start from scratch and build your perfect app. But if you’re looking for inspiration or something well-designed and ready to go, turn to templates. In the next lesson we’ll get started creating an app and take a look at the design and layout options available.\n

\n
\n
\n \n )\n },\n 1.4: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/subtitles/04.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/04-m3u8/04.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(stringToSecond('00:05'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:05\n
\n

\n In our last video we learned how to create an app. Now we’re going to look at how to brand and design the app before we talk about adding in app elements in the next lessons. You can add elements and design your app in any order you choose, and you can iterate on all of it as much as you’d like. However, I find that it can be helpful to have layout and design chosen before you add content so you have a good sense of how your app will look as you build it out. So we’re starting here.\n

\n
\n
\n
seekVideo(stringToSecond('00:37'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:37\n
\n

\n You have two spaces where you can control app design: with the paint roller icon on the right-hand side of the page, and in the header bar along the top of the page – that’s that darker purple color if you’re starting from scratch. Clicking the paint roller icon opens the App Designer menu, which gives you control over the look of the entire app. Clicking the header opens up the App Header Properties menu, where you can specifically customize the app header.\n

\n

\n First, let’s look at the App Designer menu, from the paint roller icon. This menu contains two tabs: General, and App Layouts. On the General tab you can control app colors, background images, and fonts. This includes being able to upload your own image for the app background, and creating your own color gradient by picking different start and end colors. You’re also able to change the List Background Color here. When you start adding elements to your app, the list background is the area that appears immediately behind the elements.\n

\n
\n
\n
seekVideo(stringToSecond('01:34'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:34\n
\n

\n The App Layouts tab gives you flexibility over the way your app elements appear once you add them in. Here you’ll see options to show elements with or without icons, in compact or expanded views, and with or without a header. You can click among options until you find the one you like best.\n

\n

\n Moving on to the app header area, clicking anywhere within the header – even on the logo space – will open up an App Header Properties menu on the right of your screen. This menu has 3 tabs: General, Logo, and Style. First, on the General tab, you can rename your app and add an app description that will appear just under the app title. If you’d like to design your App without a header, you also have the option here to turn this header off by toggling the Show App Header button to the off position.\n

\n
\n
\n
seekVideo(stringToSecond('02:49'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:49\n
\n

\n Finally, on the Style tab you can choose whether you’d like a different header background color or if it should just match the rest of your app. Do this by toggling Show Background off or on. Here you can also choose the header background color or upload a header image, you can customize the color of the header text, and you can adjust header alignment.\n

\n

\n If you’ve been building your own app along with this video, you may have already noticed that you have a Live Preview toggle on the very right of the purple navigation bar. As you go through the process of building your app, toggle this on to see a real-time preview of your app on a phone screen so you’ll know exactly how your users will experience your app. Above the image of your app on a phone you can also switch to tablet or desktop views.\n

\n
\n
\n
seekVideo(stringToSecond('03:33'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:33\n
\n

\n While we’ve been going through this video from the perspective of designing an app from scratch, your options are exactly the same if you’ve cloned an app or chosen a template and want to customize in any way. In the next video, we’ll start looking at adding app elements, focusing on how to structure your app and app content.\n

\n
\n
\n \n )\n },\n 1.5: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/subtitles/05.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/05-m3u8/05.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(stringToSecond('00:05'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:05\n
\n

\n Your app isn’t truly an app until you’ve added content. Over the next few videos, we’ll look at the types of content elements available, what they do, and how to add and customize them. Here we’re starting with those elements that provide context and structure to your app.\n

\n
\n
\n
seekVideo(stringToSecond('00:27'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:27\n
\n

\n First things first. To find the App Elements menu, look at the upper left-hand side of your screen and find the Add Element toolbar. Click on that to open the menu. From there you’ll see two tabs: Basic and Widgets. Elements on the Basic tab are those that make up the essential building blocks of your app, and Widgets help add a little extra functionality or flare to your app.\n

\n

\n When it comes to adding context to your app, you’ll find Heading and Paragraph elements on the Basic tab. You’ll also see elements like Big Header, Animated Heading, Quotes, and Autoscrolling Text on the Widgets tab. Elements like these give you a way to provide your users with more information, whether about your organization or the app itself. Scrolling text and similar elements can even draw attention to things you specifically want to highlight for your users.\n

\n

\n At the very bottom of the Basic tab you’ll also see Divider and Spacer. These are two ways to provide some extra distinction between app elements, with a line and a space, respectively. You’ll see a similar option called Basic Separator on the Widgets tab.\n

\n

\n Drag and drop any of these elements to add them wherever you want them to appear on your app. Once you’ve added an element, click on it and look for the gear icon for Properties for that element. Properties are generally more limited here in Apps than they are in Forms, but this is where you can expect to find options to change things like sizing, alignment, and color.\n

\n
\n
\n
seekVideo(stringToSecond('02:02'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:02\n
\n

\n In addition to these elements, once you start adding content to your app, you’ll see a dotted line with an “add a page” button underneath the content you’ve added. If you’d like to create a multi-page app, add additional pages by clicking this button. You can add as many pages as you’d like, with any combination of elements on each page.\n

\n

\n When you add an additional page, you’ll see a page navigation toolbar pop up along the bottom of the app. On the left side of this bar, you’ll see a tab for each of your pages and a button to add additional pages. You can rename your pages by double-clicking the title here, and you can rearrange your page order by dragging and dropping these tabs in the order you’d like them to appear – this automatically rearranges your app content accordingly.\n

\n
\n
\n
seekVideo(stringToSecond('02:25'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:25\n
\n

\n On the right side of the navigation bar you’ll see a Navigation Settings button that opens Navigation Menu Properties settings, with a General and a Page Visibilities tab. On the General tab you can choose whether to make a navigation menu visible to your users, helping them find their way around your app. You can also choose what to call that menu, and choose an icon for the menu. On the Page Visibilities tab, you’ll choose whether each page of your app is visible to users by clicking the eye icon to the right of the page title, and you’ll be able to add an icon for each tab by clicking the icon to the left of the title.\n

\n

\n Let’s look at an example to pull this all together. Say you want to create an employee resource portal for your company. You can create a single tab for onboarding paperwork, another for HR paperwork like vacation requests, and a third for office equipment and other physical requests. First, you can add an intro tab with your app heading – like “Our Employee Resources,” then a paragraph introducing what employees can find in this app. Add the additional pages to build out your structure, and then all that’s left is to add the forms. We’ll talk about that next.\n

\n
\n
\n
seekVideo(stringToSecond('04:10'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 04:10\n
\n

\n In summary: you’ll find all your app elements in the Add Element toolbar and can add them by dragging and dropping them wherever you want them. If you explore both the Basic and Widgets tabs you’ll find options for headings, short text, and paragraph-length text, and you’ll find ways to separate elements with dividers and spacing. Next, we’ll look at building out your app content by adding in Forms, Sign Documents, PDFs, links, and more.\n

\n
\n
\n \n )\n },\n 1.6: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/subtitles/06.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/06-m3u8/06.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(stringToSecond('00:07'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:07\n
\n

\n One of the highlights of building an app in Jotform is the ability to easily incorporate other Jotform products and tools into your app, including your Jotform Forms and Sign Documents.\n

\n
\n
\n
seekVideo(stringToSecond('00:18'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:18\n
\n

\n As we covered in the last video, to get started, open the App Elements toolbar. On the Basic tab, among the first items you'll see are Form and Sign Document. To add your form or Jotform Sign document, click on either of these or drag-and-drop them where you want the element to appear. When you do that, you'll see a popup menu of your active Forms or Documents. Select the form or Sign document you'd like to add, then click the blue Add Forms button or Add Sign Documents button in the lower right corner of the list. Note that you can add multiple forms or documents by clicking the check boxes next to each of the forms or documents you'd like to add.\n

\n

\n Note for Sign Documents: Also, note that when it comes to Sign you're only able to add documents that require a single signer, meaning that the document only requires a signature from a single client, and no countersignature. You'll additionally need to generate an embeddable link for your document.\n

\n
\n
\n
seekVideo(stringToSecond('01:26'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:26\n
\n

\n If you haven't yet created any Forms or Sign Documents, you can also create them at this point. Simply drag and drop the element as we just discussed, then follow the prompts to find a template. With Forms, you can also create one from scratch. If you'd like more information about how to create or customize your forms, please pause here and check out our Introduction to Form Building course.\n

\n
\n
\n
seekVideo(stringToSecond('01:48'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:48\n
\n

\n Once you've added a form to your app, click on it for options to delete it, visit and edit the form itself with the pencil icon, and view properties. Click the gear icon to open the Form Properties menu, which has both General and Style tabs. On the General tab you'll first see the options to edit the form or swap it out for a different form. Then there's a space where you can change the form title that appears here, and add a description for your users. If you'd like your form to appear embedded in your app rather than linked, toggle on the Show Form button. If you do so, you'll then choose the sizing of the form and how long you want your form's Thank You page to display after submission.\n

\n

\n If you're choosing to link to your form you'll next be able to control the size of the element link. In Element Size, choose between Normal and Large, which doubles the height of the element. Then, if you'd like to shrink the width to half the size of other elements, toggle Shrink to On. Finally, you can mark forms as required, indicating to your users that that form has to be completed, and you can choose to include a checkmark for forms that have been completed and submitted.\n

\n

\n On the second tab, Style, you have additional element customization options. Choose from default color schemes or create your own by clicking the Change Style button under Element Style. Or, add your own background image or choose from default images to design the element. Below those options, you can change the text alignment within the element, and then choose whether or not you'd like the element to have an icon. If it does have an icon, you can choose from the full icon list and change the icon color and background color, just like we discussed when it came to logos.\n

\n
\n
\n
seekVideo(stringToSecond('03:40'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:40\n
\n

\n That covers customizations for Form elements, and you'll see exactly the same options for Sign Documents. In addition to these elements, you have a few other ways to share documents and other information. Back in the Basic menu of the App Elements toolbar, you'll see Link and Document elements. Use Link to add a link out to an external site, and Document to upload any external document to your app. You can customize these elements in the same way we just demonstrated for Forms.\n

\n

\n If you'd like to instead embed a link or document, look on the Widgets tab for Iframe Embed to display an external website within your app, and PDF Embed to display a PDF. Check out the Widgets tab to embed or link to more specialized types of documents as well. You'll see options for Scribd, Diagrams.net, and CircuitLab.\n

\n
\n
\n
seekVideo(stringToSecond('04:37'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 04:37\n
\n

\n When it comes to documents, Apps has you covered. Whether you're linking to a single or multiple forms, Jotform Sign documents, directing users to other sites, or sharing documents essential to your workflow, you have everything you need to make your important information available to users. Simply add the element to your app and customize sizing, colors, and images as desired. Next we'll look at how to add images and other media.\n

\n
\n
\n \n )\n },\n 1.7: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/subtitles/07.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/07-m3u8/07.m3u8',\n outroDuration: 15,\n getTranscript: f => f\n },\n 1.8: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/subtitles/08.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/08-m3u8/08.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(stringToSecond('00:08'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:08\n
\n

\n So far we’ve looked at app elements to share documents and media. In this video we’re looking at elements for displaying and sharing data and other types of information.\n

\n
\n
\n
seekVideo(stringToSecond('00:19'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:19\n
\n

\n First, let’s look at maps. If you’re building an app where it would help to share a physical location – like if you’re inviting people to visit your museum, selling tickets to a church carnival happening at a local park, or wanting to show employees where to find the HR office on your company’s sprawling campus – you can include a map to your location. After you open the App Elements toolbar, scroll down the Basic tab until you find Map, open up the element properties, and enter the appropriate latitude and longitude.\n

\n
\n
\n
seekVideo(stringToSecond('00:53'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:53\n
\n

\n Next, if you want to add timers or countdowns to your app, you have a number of Widget options, like Fancy Timer, Countdown, and World Time. For any of these, first add the element, and then open the widget’s properties menu to adjust to the time or timing. Include Countdown on a wedding app to show guests how soon the wedding is happening, Fancy Timer to let students see exactly how long their quizzes are taking them to complete, and multiple World Time widgets to display the local time at each of your company’s worldwide offices, for example.\n

\n
\n
\n
seekVideo(stringToSecond('01:27'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:27\n
\n

\n There are a number of ways you can display and share data with your app users. For data outside of your Jotform account, look on the Widgets tab for Data Grid and Math Graphs, or share documents, images, or external sites as we’ve discussed in previous videos. With Data Grid you can create a grid of information – just add that element, and open the properties menu to enter data. Put column headings in the first box and data values in the second, and change the grid color from the Theme dropdown. Math Graphs allows you to share math functions in a graph format. Open the element’s properties menu to add the range and function or functions you’d like to display. Users will see whatever functions you’ve programmed into the graph.\n

\n

\n To share data you’ve collected within your Jotform account, including from forms that are available in your app, open the App Elements toolbar to the Basic tab and scroll to the section called Data Elements. There you’ll see the elements Table, Report, and Sentbox, which each allow you to embed different Jotform products into your app, giving you even more opportunity to use and share the data you’re collecting with Jotform. With Table you can display the table of data responses from any of your forms, with Report you’ll select from any reports you’ve created using Jotform’s Report Builder, and with Sentbox your logged-in users will be able to access the entries they’ve made to one of your forms.\n

\n
\n
\n
seekVideo(stringToSecond('02:58'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:58\n
\n

\n There are a number of applications here, and here are some examples. If you have an employee resources app, use Sentbox so that employees can easily keep track of all of their submissions – for example, what hours they’ve worked on which projects, or any time off requests they’ve made. Tables can be embedded in habit or food tracker apps to give clients built-in access to everything they’ve logged. Or embed Tables for registration apps so whomever you have scanning tickets at the door can quickly check off attendees as they arrive. Nonprofits can use Reports to show off donation highlights from the previous year, and conference planners can use Reports to show registrants real time information about how many people have signed up for each session.\n

\n
\n
\n
seekVideo(stringToSecond('03:44'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:44\n
\n

\n To add any of these data elements, first drag them into your app. When you do that, you’ll see a pop-up directing you to choose the Table, Report, or Sentbox you’d like to connect. Note that for Tables and Reports you’ll be able to choose from any active Tables or Reports in your account – that is, those that haven’t been deleted or archived. If you haven’t yet explored our Report builder, it’s a seamless way to create data visualizations of your Jotform or external data. Go to the Reports tab in your Jotform account and choose your Form, Table, or external data source, and hit Create. In seconds you’ll have a report of your data that you can then share however you’d like, including displaying it in your App. For more information about Reports, pause here and check out our Introduction to Data Management course.\n

\n

\n When it comes to Sentbox you’ll only be able to add Sentboxes that correspond to forms that you’ve included in your app. If you don’t have any forms already added, you’ll see a popup reminding you to add a form. Additionally, if you eventually delete a form from your app, the Sentbox will automatically be removed as well.\n

\n
\n
\n
seekVideo(stringToSecond('05:11'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 05:11\n
\n

\n Whether maps, graphs, tables, or reports, data can be a valuable visual resource for many purposes. In this lesson we looked at how to add data and other visuals that correspond to your Jotform account, as well as those that stand alone. In our next lesson, which is the last about types of app elements available, we’ll discuss social media and sharing options.\n

\n
\n
\n \n )\n },\n 1.9: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/subtitles/09.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/09-m3u8/09.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(stringToSecond('00:09'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:09\n
\n

\n The last type of app elements are all about sharing: they’re those that give people a way to get in touch with you, those that give people a way to share your app, and those that give you a way to share feedback and testimonials.\n

\n
\n
\n
seekVideo(stringToSecond('00:22'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:22\n
\n

\n First, use the Button element to highlight a particular action, like getting in touch with you by sending an email, making a call, or visiting an affiliated URL. Find Button on the Basic tab of the App Elements toolbar and drag and drop it where you want it to appear on your app. Then click on the element to find settings and customize the button.\n

\n

\n In settings you’ll see two tabs: General and Style. On the General tab you can first rename the button, then select what the button should do. If you choose “send email,” for example, you’ll then be asked to add an email address that the button will send to. If you choose “make call,” you’ll be asked for the phone number, etc. On the second tab, Style, you can change and customize your button color by selecting from available options or defining your own colors. You can also adjust the width and alignment, and select whether you’d like your button corners rounded.\n

\n

\n In addition to sending an email, making a call, or directing to a particular URL, you can have a button send users to a specific page of your multi-page app, open one of your forms, or open up a menu of social sharing options that app users can use to share the app with their followers. As with the other examples, once you choose the action, you’ll next see settings to define the action – like selecting which page of the app you want the button to jump a user to. These dynamic, interactive options give app users an easy way to engage with you.\n

\n
\n
\n
seekVideo(stringToSecond('01:57'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:57\n
\n

\n There are two additional elements similar to Button:\n

\n
\n
\n
seekVideo(stringToSecond('02:01'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:01\n
\n

\n If you specifically want to create a Share Button – the option that gives users an easy way to share an automatically generated link to your app on their own social media – you can use the Share Button element to skip the other Button setup options.\n

\n
\n
\n
seekVideo(stringToSecond('02:15'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:15\n
\n

\n With Cards you can perform the same actions as buttons but the element will appear as a visual card element rather than a button. Once you’ve added a card to your app click on it for settings. Here you’ll see General and Action tabs. On the General tab you can name and describe the card, and customize how it will appear on the app, including adding images or icons. On the Actions tab you’ll see the same actions as you do with Buttons, except instead of the “share app” action you’ll see a “none” option. This option will add an image to your app that won’t perform any action.\n

\n
\n
\n
seekVideo(stringToSecond('02:52'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:52\n
\n

\n Next, let’s look at ways you can add your social media accounts to your app. On the Basic tab of the App Elements toolbar you’ll see the option Social Follow. Once you add that element open the settings menu to add links to your social accounts. You’ll see over 10 social networks you can add. Once you’ve added them you’ll see an icon for each network you’ve added, and users will be able to click those icons to go directly to your social media sites. On the Widgets tab of the App Elements toolbar you’ll see options like Facebook Follow, Instagram, Whatsapp, Skype, and Pinterest, all of which give you alternate options for embedding or linking to your socials.\n

\n
\n
\n
seekVideo(stringToSecond('03:35'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:35\n
\n

\n Once you add this element to your app click on it for settings. There you’ll see placeholder testimonials that you can edit to add your own quotes and images. You’ll also see a blue Add new Testimonial button that you can use to add additional quotes. Click the trashcan icon next to any existing quotes to delete the placeholder, or the gear icon to change the title, image, and quote. Once you’re done with any edits, hit the green Save button.\n

\n

\n In the settings, below your testimonials, you can change the speed at which the testimonials transition, choose whether or not you want them to appear with quotation marks, and shrink or duplicate the entire element.\n

\n
\n
\n
seekVideo(stringToSecond('04:34'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 04:34\n
\n

\n In this video we covered ways to stay connected. Encourage users to stay in touch with you with Buttons, Cards, and Social Follow, and make it easy for them to spread the word with a Share Button. Use testimonials to highlight some of your best user or patient experiences. Now that we’ve covered all of the app contents it’s time to look into overall app settings and how to get your app out into the world. Stay tuned!\n

\n
\n
\n \n )\n },\n '1.10': {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/subtitles/10.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/10-m3u8/10.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(stringToSecond('00:17'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:17\n
\n

\n Now that we’ve looked at all of the different elements you can add to your app, it’s time to look at the global app settings you’ll find on the Settings tab of the App Builder.\n

\n
\n
\n
seekVideo(stringToSecond('00:39'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:39\n
\n

\n First, in App Settings, you’ll see a handful of settings that pertain to your app status and the status of forms within the app. At the top of these settings you’ll see a drop-down menu where you can determine if your app should be enabled, disabled, or disabled at a future date and time.\n

\n

\n If you select Enabled, your app is ready to be shared and used. If you’re instead disabling an app, you’ll choose whether to show a message to people who try to access the app, or to redirect them to a different app.\n

\n

\n For an example, let’s say you host a conference every year and create a new Jotform App each year, to host registration, sponsorship, and speaker request forms, an embedded map to the conference center, and downloadable schedules. When it’s time to disable last year’s app you can use the Redirect option so that anyone who tries to access that app will be automatically sent to the app for this year’s event.\n

\n
\n
\n
seekVideo(stringToSecond('02:00'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:00\n
\n

\n Also on the App Settings tab you’ll see toggles for Add to Home Screen Modal, Continue Forms Later, Progress Bar, and Prevent Cloning.\n

\n
    \n
  • \n The Add to Home Screen Modal shows your app visitors a pop-up window that prompts them to save the app to their home screen or device. It’s enabled by default but can be disabled here.\n
  • \n
  • \n Continue Forms Later allows users to save their submission to complete through the app at a later time. They’ll see a Save button in forms to do so, and will receive a link and an email to be able to easily access the in-progress form when they’re ready to continue.\n
  • \n

    \n Enabling the progress bar – which is disabled by default – will show users how far they are through filling out forms in your app. In order to turn this toggle on, you’ll have to have at least 2 required forms in your app. This would be a great option for something like an employee onboarding app where you have multiple forms that all need to be completed.\n

    \n
  • \n Prevent Cloning is toggled off by default but when turned on will prevent anyone from being able to clone your form.\n
  • \n
\n\n
\n
\n
seekVideo(stringToSecond('03:28'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:28\n
\n

\n Next in the sidebar is App Name and Icon. While you may have already named your app and edited your icon on the Build tab, this gives you another option to do so. Rename your app in the App Name bar, and click the Edit Icon link to upload your own image or change icon colors. Below these settings you’ll see a preview of the way your app name and icon will appear on a mobile device.\n

\n
\n
\n
seekVideo(stringToSecond('03:51'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:51\n
\n

\n The next option in the side bar is Splash Screen. Here you can customize the screen mobile users see immediately after they open your app, before they see the app content. Your logo will appear in the middle of the screen, and you can customize the background color and font color by clicking the blue Customize button in the upper right hand corner of the screen.\n

\n

\n Here you can enter the Hex values you’d like to use – to match your company’s branding guidelines, for example – or use the color picker to choose what you’d like.\n

\n
\n
\n
seekVideo(stringToSecond('04:23'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 04:23\n
\n

\n Finally, the last item here is Push Notifications. When your app users open your app they’ll see the option to save the app to their desktop or mobile device. From this tab you’re able to send push notifications to those who have saved the app and allow notifications.\n

\n

\n After you click on this tab first toggle on Enable Push Notifications. When you do that you’ll see a space to add a notification title and the notification text, both of which are required.\n

\n

\n As you send push notifications you’ll see them listed on the bottom of this tab, along with stats about how many have been sent and clicked. Users that have allowed push notifications will now receive these messages as soon as you send them, giving you an easy way to stay connected with your audience.\n

\n
\n
\n
seekVideo(stringToSecond('05:11'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 05:11\n
\n

\n Once your app is fully assembled, Settings is where you can customize the final touches that make your app available, easy to use, and attractive to users. Here we discussed how to enable the app, how to make forms easy to navigate, and how to control the way the app appears to mobile users. In our next video we’ll look at the various ways to share your app.\n

\n
\n
\n \n )\n },\n 1.11: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/subtitles/11.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/11-m3u8/11.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(stringToSecond('00:05'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:05\n
\n

\n You’ve created your app: you’ve added all the elements you need, made it look exactly right, and applied the settings that determine how people can interact with it. All that’s left to do now is share your app.\n

\n

\n From the purple navigation bar above your app content, click Publish. The Publish tab is where you’ll see your sharing options. On the left sidebar you’ll see Quick Share and Embed tabs. Click on the Embed tab to find code to embed your app into another site, as well as Wordpress-specific code.\n

\n

\n For all other sharing options, click on the Quick Share tab. Here you’ll see two boxes: one where you can copy a link or invite people by email and, below that, a box for sharing on your social media sites.\n

\n

\n In the top box, click the button next to the words “Your App Link” or the blue Settings link to change app privacy – this will open a popup menu of settings. Private access requires users to have a Jotform account to use the app, and gives you the option to set an expiration date for the app share link. With public access you can choose whether or not users need a Jotform account. And with either public or private access you can choose if users can access their submissions in the app. All of these can be set with the checkboxes below the access settings. You can also set your app to company access by clicking that option and adding the company domain name.\n

\n

\n Once you set your access level and other settings, hit the X in the upper right-hand corner to close the settings menu. Then look for the green Copy button to copy and share your URL wherever you’d like – email, on a company message board, etc. To see your app in action click the blue “Open in New Tab” button.\n

\n
\n
\n
seekVideo(stringToSecond('01:57'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:57\n
\n

\n To invite people by email, click in the To box underneath the text that says “Invite by Email.” Add the email address or addresses you’d like to send to, and any message you’d like to include in the email. If you have a large email list, look for the upload button next to “Invite by Email” to upload a CSV of email addresses.\n

\n
\n
\n
seekVideo(stringToSecond('02:18'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:18\n
\n

\n To share a link to your socials, look for the lower box on the page. Click on the Facebook, Whatsapp, X, or LinkedIn icons to share directly to those sites. Your app URL will automatically be copied, and you can add any message you’d like to appear when you share.\n

\n

\n In this box you’ll additionally see the option to share with a QR code. Click on the QR code icon to generate a QR code that you can then share either downloading or copying the link. QR codes can be especially useful for spreading the word offline. Let’s say you have a brick-and-mortar store and you want to encourage shoppers to visit you online: you can post the QR code at the checkout counter. Or if you work at a gym and want people to be able to access your class schedule online, post the QR code on your front door for everyone who enters or walks by.\n

\n

\n To close this section, let’s look at an example. Say you use apps to create a new HR portal for your company. In this case, you probably want to set the access level to company. If you use SSO, you can require SSO sign-in. Then think about how to share. You can email the link to the entire company, copy and paste the link to your company Discord channel, or generate a QR code to print out and paste in your breakrooms.\n

\n
\n
\n
seekVideo(stringToSecond('03:37'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:37\n
\n

\n You probably want to use all of these options to really get the word out.\n

\n

\n And that’s all there is to it to get your app out there, whether you’re sharing something internal to your company or external to the world, to a new or returning audience. Just go to the Publish tab and you’ll be able to generate a link, QR code, or email. We have just a couple more things to discuss before the end of this course: special kinds of apps, and how to access your app data. Check out our next videos to learn more.\n

\n
\n
\n \n )\n },\n 1.12: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/subtitles/12.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/12-m3u8/12.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(stringToSecond('00:08'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:08\n
\n

\n One of the key features of Jotform is how easy it is to access your data, and that’s no different when it comes to Apps. In this video we’ll be looking at Jotform Apps as an access point to your Jotform data. If you need an in-depth refresher about how to manage data in Jotform, feel free to pause here and check out our Introduction to Data Management course.\n

\n
\n
\n
seekVideo(stringToSecond('00:32'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:32\n
\n

\n First, as long as your app includes forms you’ll be able to create a Digest Email from the My Apps landing page. To do this, first click on the app title and look for and click on the “More” menu to the right of the title, then click “Create Digest Email.” Alternatively, click on the button along the top of the page that says “Create New Digest.” If you’ve already created a digest, you’ll instead see “Digest Email” listed under the “More” menu, and you can edit or delete your digest from there.\n

\n

\n Note that when you create a Digest in this way, with your App as a starting point, the default is for the digest to include a summary of all of the forms that are featured in your app. You can adjust that as you create the digest, or at any point in the future. So if you have an HR app with a form called Employee Survey and another form called Weekly Timesheet, your digest will include submission summaries for both forms. If you decide in the future that you only need to regularly receive a summary of timesheet submissions you can edit the digest to remove the Employee Survey summary.\n

\n
\n
\n
seekVideo(stringToSecond('01:38'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:38\n
\n

\n You can also access Tables from the My Apps landing page. Once again, click on the app title and, in this case, look for the link that says “Submissions.” This will take you directly to the Table. Just like with Digest Emails, if your app includes multiple forms, your Table will include a tab for each form. This way you can easily see related data in a single space, like data from an inventory management form along with all of the purchases from your order form.\n

\n

\n Tables related to Apps will also automatically include a column called “Source App.” This way if you have a form that appears in multiple apps or that you also send out independently of Apps, you’ll be able to see how people have accessed this form.\n

\n
\n
\n
seekVideo(stringToSecond('02:50'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 02:50\n
\n

\n Those are your options for reaching data from the My Apps landing page, but once you’re inside the App Builder you have access to all your other Jotform data in the same way you can access that data from within the Form Builder. With an App open in the App Builder look for the App Builder link next to the Jotform logo in the upper left-hand corner. Click on that to see a direct access point to all other Jotform products and tools specific to the app you’re inside.\n

\n

\n If you’d like to view a response in a PDF format, correspond with a customer via Inbox, or view Analytics to see how many times a specific form has been opened, simply click on the appropriate tile from this menu. If there are multiple forms in your app you’ll next select the form title and then you’ll be right where you need to be.\n

\n
\n
\n
seekVideo(stringToSecond('03:10'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:10\n
\n

\n Overall, accessing data from Jotform Apps is very similar to accessing it from Forms, with just some small formatting changes to Digests and Tables. Having these access options from Apps ensures that you’re able to easily retrieve and use your Jotform data, no matter where you are within Jotform and how you’re using the system.\n

\n
\n
\n \n )\n },\n 1.13: {\n subtitleFile: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/subtitles/13.vtt?version=1.1',\n liveStreamURL: 'https://cdn.jotfor.ms/videos/academy/jotform-apps/course-01/13-m3u8/13.m3u8',\n outroDuration: 15,\n getTranscript: seekVideo => (\n <>\n
seekVideo(stringToSecond('00:05'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:05\n
\n

\n Now that we’ve covered everything you need to know about building and designing your app, let’s close the course by looking at two specific types of apps: Store Builder, and Donation Apps. These are unique app formats designed to quickly get you started with selling products and collecting donations.\n

\n

\n To create either a store or a donation app, open the App Elements Toolbar and find the Payment Elements section, where you’ll see Product List and Donation Box. When you add either of these elements to your app you’ll see your products or donations element front-and-center in the app. You’ll also see that a Contact Information page has been added.\n

\n
\n
\n
seekVideo(stringToSecond('00:49'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 00:49\n
\n

\n Let’s look first at building a store. To start adding products first click on the Product List element. From there you have two options: click on the sample product that’s included by default and look for the Edit button or click the blue Add New Product button.\n

\n

\n You’ll see two tabs of settings for each product: Basic and Options. On the Basic tab you’ll set the product name, price, and description and add an image of the product. On the Options tab choose whether you want to include a quantity selector – allowing people to buy multiple of the same product, and add options – like different colors or sizes.\n

\n

\n Any changes or additions appear immediately, and you can edit products any time by clicking on them on the app page. As an alternative, to the right of the Products element you’ll see a gray list icon. When you click on that you’ll see all of your products listed. You can edit or delete products from here by clicking on them, or add new products with the blue Add a New Product button at the top of the list. You can also rename your product list from here.\n

\n
\n
\n
seekVideo(stringToSecond('01:59'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 01:59\n
\n

\n To create a donation app, start by adding the Donation Box element. Similar to the Product List element you’ll see default fixed donation amounts and text. To make any changes click on the element and look for the blue Donation Box Properties menu. Here you’ll see General and Style tabs. On the Style tab you can choose or create other button styles, and change your header alignment.\n

\n

\n On the General tab you can change the header and subheader at the top of the tab, and change the button text at the bottom. You’ll also see the default fixed donation amounts, which you can change or delete by clicking on them and looking for the pencil or trash icons, respectively. You can also add additional fixed amounts by clicking the blue Add New Amount button.\n

\n

\n Below the fixed amounts you’ll see several toggles. Allow Custom Amounts, which is on by default, lets people set their own donation; Amount Limits, off by default, allows you to set a minimum or maximum donation amount – you’ll set those limits. Show Donation Goal, off by default, will add a progress bar to your app and you’ll set the donation goal.\n

\n
\n
\n
seekVideo(stringToSecond('03:09'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:09\n
\n

\n For both the Product List and Donation Box you’ll also see a green payment icon – Store Properties for Products and Payment Properties for donations. While the settings are a bit different between Donations and Stores, this is generally where you’ll connect to your payment gateway and edit your checkout page.\n

\n
\n
\n
seekVideo(stringToSecond('03:28'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 03:28\n
\n

\n For Donation Apps you’ll see two tabs here: Payment and Checkout Page. On the Payment tab, click the blue Add Payment Integration to find your preferred payment gateway, and connect following the prompts. Also you can choose your currency on this tab.\n

\n

\n On the second tab, Checkout Page, view and edit the checkout page that buyers see as they complete their purchases. By default this will include name and email fields, but you can add fields for phone, address, short and long text, and single and multiple choice questions by clicking the blue Add Element button. Note that this is the same as the Contact Information page that’s automatically added when you create a Donation App or Store, so you can also click on that element and look for the gear icon to make any changes to the checkout page.\n

\n
\n
\n
seekVideo(stringToSecond('04:22'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 04:22\n
\n

\n For Stores you’ll see 3 tabs: Payment, Product Settings, and Checkout Page. Checkout Page is identical to the Donation App, and Payment is very similar – here in Store Properties you’ll also see the option to add express checkout. On the second tab, Product Settings, adjust the Product List Layout to feature your products across one, two, or three columns, and choose whether or not you want to add a search bar to the list. Search can be especially useful if you’re selling a lot of products and want to make it easier for your customers to find something specific.\n

\n
\n
\n
seekVideo(stringToSecond('04:58'))} className=\"flex flex-col md:flex-row gap-2 md:gap-9 pt-8 cursor-pointer\">\n 04:58\n
\n

\n And just like that, you’ve created a fully functioning, fully online store or donation app. All that’s left to do is share so you can start selling and raising money right away. And also just like that, we’re done with the lessons in this course. All that’s left for you to do *here* is pass the quiz to earn your Jotform Apps badge. Good luck, thanks for watching, and be sure to check out our other courses.\n

\n
\n
\n \n )\n }\n }\n};\n\nconst transcriptSkeleton = (\n <>\n
\n \n
\n

\n

\n

\n

\n

\n

\n

\n

\n

    \n
  1. \n \n \n
  2. \n
  3. \n \n \n
  4. \n
  5. \n \n \n
  6. \n
  7. \n \n \n
  8. \n
\n
\n
\n
\n \n
\n

\n

\n

\n

\n

\n
\n \n);\n\nexport const videoTranscriptRenderer = (programID, sectionID, seekVideo = f => f, loading) => (\n
\n {loading ? transcriptSkeleton : ((sectionConstants[programID][sectionID]?.getTranscript || (() => null))(seekVideo) ||

{t('There are currently no transcript available for this course.')}

)}\n
\n);\n\nexport const myCoursesSidebarElements = [\n { buttonText: 'Course Progress', basePath: true, path: 'mycourses' },\n { buttonText: 'Certificates & Badges', path: 'certificates' },\n { buttonText: 'Wishlist', path: 'wishlist' }\n];\n","/* eslint-disable camelcase */\nimport { getAppPath } from '@jotforminc/router-bridge';\nimport { handleCustomNavigation } from '@jotforminc/utils';\nimport { t } from '@jotforminc/translation';\nimport { getUserCertificates, sendAction } from '../api';\n// eslint-disable-next-line import/no-cycle\nimport { sectionConstants } from '../constants';\n\nexport const redirectToLoginPage = rp => {\n const nextHref = `/login?rp=${encodeURIComponent(rp || window.location)}`;\n handleCustomNavigation(nextHref, '_self', true);\n};\n\nexport const redirectToLogoutPage = () => {\n const nextHref = '/logout.php';\n handleCustomNavigation(nextHref, '_self', true);\n};\n\nexport const setLocalStorageWithExpiry = (key, value, ttl = 0) => {\n const now = new Date();\n const item = {\n value: value,\n expiry: ttl === 0 ? undefined : now.getTime() + ttl\n };\n global?.localStorage.setItem(key, JSON.stringify(item));\n};\n\nexport const getLocalStorageWithExpiry = key => {\n const itemStr = global?.localStorage.getItem(key);\n if (!itemStr) {\n return null;\n }\n const item = JSON.parse(itemStr);\n const now = new Date();\n if (now.getTime() > item.expiry) {\n global?.localStorage.removeItem(key);\n return null;\n }\n return item.value;\n};\n\nexport const convertStoMs = seconds => {\n let minutes = Math.floor(seconds / 60);\n let extraSeconds = seconds % 60;\n minutes = minutes < 10 ? `0${minutes}` : minutes;\n extraSeconds = extraSeconds < 10 ? `0${extraSeconds}` : extraSeconds;\n return `${minutes}:${extraSeconds}`;\n};\n\nexport const handleToggleCaptions = (player, captionLanguage) => {\n const { getInternalPlayer } = player;\n const { textTracks } = getInternalPlayer();\n for (let i = 0; i < textTracks.length; i++) {\n const { language } = textTracks[i];\n textTracks[i].mode = language === captionLanguage ? 'showing' : 'hidden';\n }\n};\n\nexport const getAppInfoFromURL = () => {\n const { location: { href } } = window;\n const urlPaths = href.split('/');\n const baseURLIndex = urlPaths.findIndex(path => path === 'academy');\n const [firstPath, secondPath, thirdPath] = urlPaths.slice(baseURLIndex + 1);\n\n if (firstPath === '') return { stage: 'homepage' };\n if (firstPath === 'courses') return { stage: 'course', programSlug: secondPath, courseSlug: thirdPath };\n if (firstPath) {\n return {\n stage: 'video',\n programSlug: firstPath,\n courseSlug: secondPath,\n sectionSlug: thirdPath\n };\n }\n};\n\nexport const getLocalizedOutLink = (url, appPath) => {\n const splitedAppPath = appPath.split('/').filter(path => path);\n const rootIndex = splitedAppPath.findIndex(path => path === 'academy');\n if (rootIndex === 1) return `/${splitedAppPath[0]}${url}`;\n return url;\n};\n\nconst getResourcesMenu = appPath => {\n return {\n name: 'resources',\n menuTitle: 'RESOURCES',\n menuItems: [\n {\n target: '_blank',\n name: 'userGuide',\n title: 'User Guides',\n url: getLocalizedOutLink('/help/', appPath)\n },\n {\n target: '_blank',\n name: 'webinars',\n title: 'Webinars',\n url: getLocalizedOutLink('/webinars/', appPath)\n },\n {\n target: '_blank',\n name: 'jotformForBeginners',\n title: 'Jotform for Beginners',\n url: getLocalizedOutLink('/jotform-for-beginners/', appPath)\n },\n {\n target: '_blank',\n name: 'professionalServices',\n title: 'Professional Services',\n url: getLocalizedOutLink('/enterprise/professional-services/', appPath)\n }\n ]\n };\n};\n\nexport const urlParamsSaver = url => {\n const queryString = window.location.search;\n return (\n queryString.length > 0\n ? `${url}/${queryString}`\n : `${url}/`\n ).replaceAll('//', '/');\n};\n\nconst getMyCoursesMenu = appPath => {\n return {\n name: 'my courses',\n menuTitle: 'MYCOURSES',\n menuItems: [\n {\n target: '_self',\n name: 'courseProgress',\n title: 'Course Progress',\n url: urlParamsSaver(`${appPath}/mycourses`)\n },\n {\n target: '_self',\n name: 'certificates',\n title: 'Certificates & Badges',\n url: urlParamsSaver(`${appPath}/mycourses/certificates/`)\n },\n {\n target: '_self',\n name: 'wishlist',\n title: 'Wishlist',\n url: urlParamsSaver(`${appPath}/mycourses/wishlist/`)\n }\n ]\n };\n};\n\nexport const getCurrentHeaderNavigationItems = (appPath, currentStage, isUserLoggedIn = false) => {\n return [\n {\n name: 'courses',\n linkProps: {\n target: '_self',\n title: t('All Courses'),\n url: urlParamsSaver(`${appPath}/courses`)\n }\n },\n {\n name: 'my courses',\n menuProps: getMyCoursesMenu(appPath),\n linkProps: {\n renderAs: 'button',\n title: t('My Courses'),\n menuType: 'submenu'\n }\n },\n {\n name: 'faq',\n linkProps: {\n target: '_self',\n title: t('FAQ'),\n url: urlParamsSaver(`${appPath}/faq`)\n }\n },\n {\n name: 'resources',\n menuProps: getResourcesMenu(appPath),\n linkProps: {\n renderAs: 'button',\n title: t('Resources'),\n menuType: 'submenu'\n }\n }\n ].filter(item => {\n if (!isUserLoggedIn && item?.name === 'my courses') return false;\n if (currentStage !== 'course') return true;\n return item?.name !== 'courses';\n });\n};\n\nexport const findSectionObjectBySectionID = (chapters, sectionID) => {\n for (let index = 0; index < chapters.length; index++) {\n const { sections = [] } = chapters[index];\n const sectionObj = sections.find(section => section?.sectionID === sectionID);\n const sectionObjIndex = sections.findIndex(section => section?.sectionID === sectionID);\n if (sectionObj) {\n return { section: sectionObj, index: sectionObjIndex, chapterIndex: index };\n }\n }\n};\n\nexport const findSectionObjectBySlugs = (chapters, courseSlug, sectionSlug) => {\n for (let index = 0; index < chapters.length; index++) {\n const { sections = [], slug } = chapters[index];\n if (slug !== courseSlug) continue;\n\n let notFoundNRedirected = false;\n let sectionObjIndex = sections.findIndex(section => section?.slug === sectionSlug);\n if (sectionObjIndex === -1) {\n sectionObjIndex = 0;\n notFoundNRedirected = true;\n }\n return {\n section: sections[sectionObjIndex], index: sectionObjIndex, chapterIndex: index, notFoundNRedirected\n };\n }\n};\n\nexport const getPrevNextCourseContent = (prev, chapters, sectionID) => {\n const {\n index, chapterIndex\n } = findSectionObjectBySectionID(chapters, sectionID);\n\n let newActiveCourseSection = chapters[chapterIndex]?.sections[prev ? index - 1 : index + 1];\n if (!newActiveCourseSection) {\n const prevNextChapterIndex = prev ? chapterIndex - 1 : chapterIndex + 1;\n newActiveCourseSection = chapters[prevNextChapterIndex]?.sections[prev ? chapters[prevNextChapterIndex]?.sections.length - 1 : 0];\n }\n if (newActiveCourseSection) return newActiveCourseSection;\n // no more next or previous content\n};\n\nexport const secondToMinutes = durationSecond => Math.round(durationSecond / 60);\n\nexport const stringToSecond = str => {\n const splitter = str.includes('.') ? '.' : ':';\n const [minute, second] = str.split(splitter);\n return parseInt(minute, 10) * 60 + parseInt(second, 10);\n};\n\nexport const calculateChapterDurations = course => {\n const { chapters } = course || {};\n let totalDuration = 0;\n chapters.forEach(({ sections = [] }) => {\n sections.forEach(section => {\n const { properties = {} } = section || {};\n totalDuration += stringToSecond((properties?.duration || '00:00'));\n });\n });\n return totalDuration;\n};\n\nexport const remainingTimePrettifier = duration => {\n const totalMinutes = secondToMinutes(duration);\n if (totalMinutes < 60) {\n return `${totalMinutes} m`;\n }\n const hour = Math.floor(totalMinutes / 60);\n return `${hour}h ${totalMinutes - 60 * hour} m`;\n};\n\nconst calculateCourseDetails = (chapters = []) => {\n let totalSeconds = 0;\n chapters.forEach(({ sections }) => {\n totalSeconds += Object.values(sections).reduce((sum, contentObj) => {\n return sum + stringToSecond((contentObj?.properties?.duration || '00:00'));\n }, 0);\n });\n return totalSeconds;\n};\n\nexport const calculateCourseDurations = courses => courses.map(course => ({ ...course, duration: calculateCourseDetails(course.chapters) }));\n\nexport const chaptersToTotalVideoCount = (chapters = []) => chapters.reduce((sum, contentObj) => {\n return sum + (contentObj?.sections.filter(section => section?.properties?.type === 'section') || []).length;\n}, 0);\n\nexport const getNumberOfTotalVideos = course => {\n const { chapters = [] } = course || {};\n let videosTotal = 0;\n chapters.forEach(({ sections = [] }) => {\n videosTotal += sections.filter(({ properties = {} }) => properties?.type === 'section').length;\n });\n return videosTotal;\n};\n\nexport const chaptersToTotalQuizCount = (chapters = []) => chapters.reduce((sum, contentObj = {}) => {\n const { sections = [] } = contentObj;\n return sum + (sections.filter(section => {\n const { properties = {}, id } = section;\n const { type } = properties;\n const order = sections.findIndex(sectionObj => sectionObj?.id === id);\n\n return type === 'quiz' && sections.length - 1 === order;\n }) || []).length;\n}, 0);\n\nexport const getLastInteractedCourseByAction = (courses, slug, action) => {\n const requestedCourse = courses.find(course => course?.slug === slug);\n if (!requestedCourse) return;\n const { chapters } = requestedCourse;\n const formattedChapters = Array.isArray(chapters) ? chapters : Object.values(chapters);\n\n const [lastViewedChapter] = formattedChapters.sort((chapterA, chapterB) => new Date(chapterA?.progess?.[action]).getTime() - new Date(chapterB?.progess?.[action]).getTime());\n const { properties } = lastViewedChapter || {};\n const { order: chapterOrder } = properties || {};\n\n const { sections = [] } = lastViewedChapter || {};\n const formattedSections = Array.isArray(sections) ? sections : Object.values(sections);\n\n const [lastViewedSection] = formattedSections.sort((sectionA, sectionB) => new Date(sectionA?.progess?.[action]).getTime() - new Date(sectionB?.progess?.[action]).getTime());\n\n const { properties: sectionProperty } = lastViewedSection || {};\n const { order: sectionOrder } = sectionProperty || {};\n const [parentSection, subSection] = `${sectionOrder}`.split('.');\n\n return `${chapterOrder + 1}.${parseInt(parentSection, 10) + 1}${subSection ? `.${subSection}` : ''}`;\n};\n\nexport const isDevelopmentEnvironment = () => window?.location?.href?.includes('.pro');\n\nconst getFirstIncompleteSectionOfProgram = (programCourses = []) => {\n const firstIncompleteCourse = programCourses.find(course => !course?.progress?.complete);\n const { sections = [] } = firstIncompleteCourse || {};\n return { firstIncompleteSection: sections.find(section => !section?.progress?.complete), firstIncompleteCourse };\n};\n\nexport const getFirstIncompleteQuiz = (chapters = []) => {\n const allQuizSections = chapters.map(chapter => chapter?.sections.filter(section => section?.properties?.type === 'quiz'));\n const mergedAllQuizSections = allQuizSections.reduce((result, array) => result.concat(array), []);\n return mergedAllQuizSections.find(quiz => !quiz?.progress?.complete);\n};\n\nexport const getAllIncompletedQuizzes = (chapters = []) => {\n const allQuizSections = chapters.map(chapter => chapter?.sections.filter(section => section?.properties?.type === 'quiz'));\n const mergedAllQuizSections = allQuizSections.reduce((result, array) => result.concat(array), []);\n return mergedAllQuizSections.filter(quiz => !quiz?.progress?.complete);\n};\n\nexport const isChapterBreakPoint = (courseCompleted, currentSectionID, chapterSections = []) => {\n const incompletedChapterItems = chapterSections.filter(section => !section?.progress?.complete);\n return (\n courseCompleted\n || (incompletedChapterItems.length === 1 && incompletedChapterItems[0]?.id === currentSectionID)\n || incompletedChapterItems.length === 0\n );\n};\n\nexport const getFirstIncompleteSection = (chapters = [], currentChapterID) => {\n let firstIncompleteCourse;\n const currentChapter = chapters.find(chapter => chapter?.id === currentChapterID);\n const orderedChapters = [currentChapter, ...chapters.filter(chapter => chapter?.id !== currentChapterID)];\n\n for (let i = 0; i < orderedChapters.length; i++) {\n const { sections } = orderedChapters[i];\n const lastSection = sections.filter(section => section?.properties?.type === 'section').find(section => {\n const { progress: sectionProgress } = section;\n if (!sectionProgress) return true;\n const { complete } = sectionProgress;\n return !complete;\n });\n if (lastSection) {\n firstIncompleteCourse = lastSection;\n break;\n }\n }\n return firstIncompleteCourse;\n};\n\nexport const getRemainingTimePrettyText = (unwatchedSeconds, useMinimalText = false) => {\n const remainingTime = Math.round((unwatchedSeconds) / 60);\n const { minutesText, secondsText } = {\n minutesText: useMinimalText ? 'm' : ' min',\n secondsText: useMinimalText ? 's' : ' second'\n };\n\n return (\n remainingTime > 0\n ? `${remainingTime}${minutesText}${(remainingTime) > 1 && !useMinimalText ? 's' : ''} left`\n : `${unwatchedSeconds}${secondsText}${(unwatchedSeconds) > 1 && !useMinimalText ? 's' : ''} left`\n );\n};\n\nexport const calculateCourseDuration = course => {\n let totalDuration = 0;\n const { sections = [] } = course;\n sections.forEach(section => {\n const { properties = {} } = section || {};\n totalDuration += stringToSecond((properties?.duration || '00:00'));\n });\n return totalDuration;\n};\n\nexport const calculateCourseTotalProgress = course => {\n const { chapters, duration } = course;\n let totalProgress = 0;\n let unwatchedSectionCount = 0;\n chapters.forEach(chapter => {\n const { sections } = chapter;\n sections.forEach(section => {\n const { progress, properties: { type, duration: sectionDuration } } = section;\n if (type === 'section') {\n const {\n complete, start, videoPlayhead = false, videoProgress = false\n } = progress || {};\n if (complete) {\n totalProgress += stringToSecond(sectionDuration);\n } else if (start && (videoPlayhead || videoProgress)) {\n totalProgress += parseInt((videoPlayhead || videoProgress), 10);\n unwatchedSectionCount++;\n } else {\n unwatchedSectionCount++;\n }\n }\n });\n });\n\n const remainingTimePrettyText = getRemainingTimePrettyText(duration - totalProgress);\n return { totalProgress, unwatchedSectionCount, remainingTimePrettyText };\n};\n\nexport const getAllContinuingSections = courses => {\n const continuingSectionsMap = {};\n courses.forEach(course => {\n const { chapters = [], id } = course;\n const continuingChapters = chapters.filter(({ sections = [] }) => sections.length > 0);\n continuingChapters.forEach(chapter => {\n const { sections } = chapter;\n const continuingSections = sections.filter(section => {\n const { progress = {} } = section || {};\n const { start = false, complete = false } = progress;\n if (!complete && start) return true;\n return false;\n });\n if (continuingSections.length > 0) {\n continuingSectionsMap[id] = [...(continuingSectionsMap[id] || []), ...continuingSections];\n }\n });\n });\n return continuingSectionsMap;\n};\n\nexport const tickAcademyAction = (payload = {}) => {\n let { academyTracker } = window;\n\n if (!academyTracker) {\n academyTracker = props => console.log('Action->', props);\n if (window.__jfrouter.JOTFORM_ENV === 'PRODUCTION') {\n academyTracker = window.JotFormActions('JotformAcademy')?.tick;\n }\n window.academyTracker = academyTracker;\n }\n\n academyTracker(payload);\n};\n\nexport const handleDownloadBadge = (chapterID, username, chapterTitle) => {\n tickAcademyAction({\n actor: username,\n action: 'download-badge',\n target: `badge-${chapterID}`\n });\n sendAction({\n action: 'badgeDownload', context: 'chapter', identifier: chapterID, value: 1, chapterTitle\n });\n // eslint-disable-next-line @jotforminc/no-window-open-call\n window.open(`/API/chapter/${chapterID}/badge/download`, '_blank');\n};\n\nconst downloadCertificate = (username, certificateID, certificateCourseName) => {\n tickAcademyAction({\n actor: username,\n action: 'download-certificate',\n target: `certificate-${certificateID}`\n });\n sendAction({\n action: 'download', context: 'certificate', identifier: certificateID, value: 1, certificateCourseName\n });\n // eslint-disable-next-line @jotforminc/no-window-open-call\n window.open(`/academy/certificate/${certificateID}`, '_blank');\n};\n\nexport const handleDownloadCertificate = (certificateID, username, certificateCourseName, certificateCourseID) => {\n if (!certificateID) {\n getUserCertificates().then(certificates => {\n if (Array.isArray(certificates) && certificates.length === 0) return;\n\n const certificateIndex = Object.values(certificates).findIndex(certificate => certificate?.course_id === certificateCourseID);\n if (certificateIndex !== -1) {\n downloadCertificate(username, Object.keys(certificates)[certificateIndex], certificateCourseName);\n }\n });\n return;\n }\n\n downloadCertificate(username, certificateID, certificateCourseName);\n};\n\nexport const handleGuestEnroll = (payload = {}) => {\n const {\n courseID,\n enrollFunction,\n redirectionURL,\n fetchCourseContent,\n programSlug, courseSlug, sectionSlug,\n setLoginFlowVisible = f => f\n } = payload;\n\n window.setCustomFunction_signup = true;\n window.setCustomFunction_login = true;\n\n window.customFunction_signup = () => {\n const url = window.location.href;\n if (enrollFunction) {\n enrollFunction(courseID, () => {\n fetchCourseContent(programSlug, courseSlug, sectionSlug);\n handleCustomNavigation(redirectionURL, '_self', true);\n });\n return;\n }\n // eslint-disable-next-line @jotforminc/no-location-href-assignment\n window.location.href = url;\n };\n window.customFunction_login = window.customFunction_signup;\n\n if (window.showModal) {\n const handleCloseLoginFlow = () => setLoginFlowVisible(false);\n window.showModal('s1', undefined, true, undefined, undefined, {\n onClosed: handleCloseLoginFlow,\n onOpened: () => {\n setLoginFlowVisible(true);\n const closeBtn = document.querySelector('.xcl-close');\n if (closeBtn) {\n closeBtn.addEventListener('click', handleCloseLoginFlow);\n }\n }\n });\n }\n};\n\nexport const getActionButtonProperties = ({\n handleOpenCoursePreviewModal, onlyEnroll,\n upcoming = false, isAddedToWishlist = false, progress,\n fetchCourseContent, chapterID, username, program, previewedChapter,\n customEnrollFunction, user, setLoginFlowVisible, tickAction, previewModal\n}) => {\n if (upcoming) {\n return {\n text: isAddedToWishlist ? 'Add to wishlist' : 'Added to wishlist',\n onClick: isAddedToWishlist ? () => {} : () => {}\n };\n }\n const { chapters: programCourses = [], slug: programSlug } = program;\n\n let isEnrolled; let isStarted; let courseSlug; let sectionSlug;\n if (!previewModal) {\n isEnrolled = programCourses.find(chapter => chapter?.progress?.enroll === '1') !== undefined;\n isStarted = programCourses.find(chapter => (chapter?.progress?.start || '').length > 0) !== undefined;\n\n const { firstIncompleteSection = {}, firstIncompleteCourse = {} } = getFirstIncompleteSectionOfProgram(programCourses);\n\n ({ slug: courseSlug } = firstIncompleteCourse);\n ({ slug: sectionSlug } = firstIncompleteSection);\n } else {\n isEnrolled = previewedChapter?.progress?.enroll === '1';\n isStarted = (previewedChapter?.progress?.start || '').length > 0;\n const firstIncompleteSection = (previewedChapter.sections || []).find(section => !section?.progress?.complete);\n ({ slug: courseSlug } = previewedChapter);\n ({ slug: sectionSlug } = firstIncompleteSection);\n }\n\n const {\n complete = ''\n } = progress || {};\n\n const { account_type: accountType } = user || {};\n const { name = '' } = accountType || {};\n const isUserLoggedIn = name !== '' && name !== 'GUEST';\n\n switch (true) {\n case !isEnrolled:\n return {\n text: 'Enroll',\n isLink: customEnrollFunction && isUserLoggedIn,\n linkSrc: (customEnrollFunction && isUserLoggedIn) && `/${programSlug}/${courseSlug}/${sectionSlug}?autoStart=1`,\n onClick: event => {\n const handler = customEnrollFunction || handleOpenCoursePreviewModal;\n event.stopPropagation();\n if (customEnrollFunction && !isUserLoggedIn) {\n handleGuestEnroll({\n programSlug,\n courseSlug,\n sectionSlug,\n fetchCourseContent,\n setLoginFlowVisible,\n courseID: chapterID,\n enrollFunction: customEnrollFunction,\n redirectionURL: `/academy/${programSlug}/${courseSlug}/${sectionSlug}?autoStart=1`\n });\n return;\n }\n handler(chapterID, () => {\n const introVideoActions = getLocalStorageWithExpiry('introVideoActions');\n try {\n if (introVideoActions && tickAction) {\n const events = JSON.parse(introVideoActions);\n events.forEach(actionEvent => {\n const {\n identifier, action, context, value, dataPayload\n } = actionEvent;\n tickAction(identifier, action, context, value, dataPayload, 'introVideo');\n });\n }\n } catch (error) {\n console.log('Error IntroVideoAction -> ', error);\n }\n fetchCourseContent(programSlug, courseSlug, sectionSlug);\n });\n }\n };\n case onlyEnroll:\n break;\n case (complete.length > 0):\n return {\n text: 'Completed',\n onClick: handleOpenCoursePreviewModal\n };\n default:\n return {\n isLink: true,\n text: isStarted ? 'Continue the course' : 'Start the course',\n onClick: event => {\n event.stopPropagation();\n tickAcademyAction({\n actor: username,\n target: programSlug,\n action: isStarted ? 'click-continue-course-cta' : 'click-start-course-cta'\n });\n fetchCourseContent(programSlug, courseSlug, sectionSlug);\n },\n linkSrc: `/${programSlug}/${courseSlug}/${sectionSlug}`\n };\n }\n};\n\nexport const capitalizeFirstLetter = text => text.charAt(0).toUpperCase() + text.slice(1);\n\nexport const getUserPrepopulatedURLParam = user => {\n const { credentials = {} } = user;\n const {\n name, username, email, account_type = {}\n } = credentials;\n const { name: accountTypeName = '' } = account_type;\n let result = '';\n if (name) {\n const [firstName, lastName] = name.split(' ');\n if (firstName) result += `name[first]=${firstName}`;\n if (lastName) result += `&name[last]=${lastName}`;\n } else if (username) {\n const isGuest = accountTypeName === 'GUEST' || accountTypeName === '';\n result += isGuest ? `guest_username=${username}` : `name[first]=${username}`;\n }\n if (email) {\n result += `&email=${email}`;\n }\n return result;\n};\n\nconst shareAchievement = (platformName, callback = f => f, payload) => {\n const {\n badgeURL,\n chapterID,\n certificateID,\n certificateData,\n isCertificateShare\n } = payload;\n\n const formatedPlatformName = platformName.replaceAll(' ', '');\n switch (formatedPlatformName) {\n case 'LinkedIn':\n let linkedInShareURL;\n if (isCertificateShare) {\n const {\n timestamp: creationDate, course_name: courseName\n } = certificateData;\n const organizationID = '3541463';\n const creationDateObj = new Date(creationDate);\n\n const expireDate = new Date(creationDate);\n expireDate.setFullYear(expireDate.getFullYear() + 2);\n const certificateCredentialURL = `https://www.jotform.com/academy/certificate/${certificateID}/verify/`;\n // eslint-disable-next-line max-len\n linkedInShareURL = `https://www.linkedin.com/profile/add?startTask=${courseName}&name=${courseName}&organizationId=${organizationID}&issueYear=${creationDateObj.getFullYear()}&issueMonth=${creationDateObj.getMonth() + 1}&expirationYear=${expireDate.getFullYear()}&expirationMonth=${expireDate.getMonth() + 1}&certUrl=${certificateCredentialURL}&certId=${certificateID}`;\n } else {\n linkedInShareURL = `https://www.linkedin.com/sharing/share-offsite/?url=jotform.com/academy/badge/${chapterID}/`;\n }\n handleCustomNavigation(linkedInShareURL, '_blank', true);\n break;\n case 'Facebook':\n const facebookShareURL = `https://www.facebook.com/sharer/sharer.php?u=jotform.com/academy${isCertificateShare ? `/certificate/${certificateID}/verify/` : `/badge/${chapterID}/`}`;\n handleCustomNavigation(facebookShareURL, '_blank', true);\n break;\n case 'X':\n const xShareURL = `https://www.twitter.com/intent/tweet?url=jotform.com/academy${isCertificateShare ? `/certificate/${certificateID}/verify/` : `/badge/${chapterID}/`}`;\n handleCustomNavigation(xShareURL, '_blank', true);\n break;\n case 'CopyLink':\n // eslint-disable-next-line no-undef\n navigator.clipboard.writeText(\n isCertificateShare\n ? `${window.location.origin}/academy/certificate/${certificateID}/verify`\n : badgeURL\n );\n break;\n default:\n break;\n }\n sendAction({\n value: platformName,\n context: isCertificateShare ? 'certificate' : 'chapter',\n identifier: isCertificateShare ? certificateID : chapterID,\n action: isCertificateShare ? 'socialShare' : 'badgeSocialShare'\n });\n callback();\n};\n\nexport const handleSocialShare = (platformName, achievement = {}, callback = f => f, certificateCourseID) => {\n const { type, chapterID } = achievement;\n const isCertificateShare = type === 'certificate';\n const { certificateID, badgeURL, certificateData } = achievement;\n if (isCertificateShare && !certificateID) {\n getUserCertificates().then(certificates => {\n if (Array.isArray(certificates) && certificates.length === 0) return;\n\n const certificateIndex = Object.values(certificates || {}).findIndex(certificate => certificate?.course_id === certificateCourseID);\n if (certificateIndex !== -1) {\n shareAchievement(platformName, callback, {\n chapterID,\n isCertificateShare,\n certificateID: Object.keys(certificates)[certificateIndex],\n badgeURL,\n certificateData: Object.values(certificates)[certificateIndex]\n });\n }\n });\n return;\n }\n shareAchievement(platformName, callback, {\n chapterID, isCertificateShare, certificateID, badgeURL, certificateData\n });\n};\n\nexport const isNextPreviousEnabled = ({\n chapters = [], sectionID, buttonType = 'next'\n}) => {\n const enrolledChapters = chapters.filter(chapter => chapter?.progress?.enroll === '1');\n if (!sectionID || enrolledChapters.length <= 0) return false;\n const isPrevious = buttonType === 'previous';\n\n const [courseOrder] = sectionID.split('.');\n const targetedChapter = enrolledChapters.find(chapter => chapter?.properties?.order === parseInt(courseOrder, 10));\n if (!targetedChapter) return false;\n\n const prevNextSection = getPrevNextCourseContent(\n isPrevious,\n enrolledChapters,\n sectionID\n );\n if (!prevNextSection) return false;\n return prevNextSection;\n};\n\nexport const getLiveStreamURL = (programID, sectionID) => sectionConstants[programID][sectionID]?.liveStreamURL;\n\nexport const getVideoOutroDuration = sectionID => (sectionConstants[sectionID]?.outroDuration || 20);\n\nexport const getVideoPoster = (programSlug, sectionID = '') => {\n if (programSlug === '' || sectionID === '') return;\n\n const [courseOrder, sectionOrder] = sectionID.split('.');\n // eslint-disable-next-line no-param-reassign\n programSlug = programSlug === 'jotform-foundations' ? programSlug.slice(0, -1) : programSlug;\n return `https://cdn.jotfor.ms/videos/academy/${programSlug}/course-0${courseOrder}/posters/${sectionOrder.length >= 2 ? sectionOrder : `0${sectionOrder}`}.png`;\n};\n\nexport const isMobileDevice = () => {\n // eslint-disable-next-line no-undef\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\n return true;\n }\n return false;\n};\n\nexport const isHLSActive = () => !isMobileDevice() || window.location.href.includes('useHLS=1');\n\nconst HAS_NAVIGATOR = typeof navigator !== 'undefined';\n// eslint-disable-next-line no-undef\nexport const IS_SAFARI = HAS_NAVIGATOR && (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) && !window.MSStream;\n\nexport const compareIgnoreCase = (text = '', textCompare = '') => text.toLowerCase().includes(textCompare.toLowerCase());\n\nconst formatDateForCertificate = date => {\n const todayDay = date.getDate();\n const todayYear = date.getFullYear();\n const todayMonth = date.toLocaleString('default', { month: 'long' });\n return `${todayMonth} ${todayDay}, ${todayYear}`;\n};\n\nexport const getCertificateValidityDates = () => {\n const today = new Date();\n const expireDate = new Date();\n expireDate.setFullYear(expireDate.getFullYear() + 2);\n return {\n startDate: formatDateForCertificate(today),\n expireDate: formatDateForCertificate(expireDate)\n };\n};\n\nexport const getAppPathWrapper = () => {\n let appPath = getAppPath();\n appPath = !appPath.includes('/academy') ? appPath.replace('/academ', '/academy') : appPath;\n\n const splitedAppPath = appPath.split('/').filter(path => path);\n const academyIndex = splitedAppPath.findIndex(path => path === 'academy');\n const normalizedAppPath = ['', ...splitedAppPath].slice(0, academyIndex + 2).join('/');\n return normalizedAppPath;\n};\n","/* eslint-disable no-param-reassign */\nimport { StorageHelper } from '@jotforminc/storage-helper';\nimport { ACTION_TYPES } from '../actionTypes';\nimport { handleToggleCaptions } from '../../utils';\n\nconst getInitialVideoState = () => {\n const autoPlayPreference = StorageHelper.getLocalStorageItem({ key: 'jf-academy-autoplay' });\n const captions = StorageHelper.getLocalStorageItem({ key: 'jf-academy-captions' });\n const volume = StorageHelper.getLocalStorageItem({ key: 'jf-academy-volume' });\n const playbackRate = StorageHelper.getLocalStorageItem({ key: 'jf-academy-video-speed' });\n const initialAutoPlay = autoPlayPreference === '1';\n\n return {\n pip: false,\n duration: 0,\n loop: false,\n ended: false,\n light: false,\n playing: false,\n seeking: false,\n controls: false,\n muted: volume === 'mute',\n autoplay: initialAutoPlay,\n nextSectionOpenerActive: false,\n volume: parseFloat(volume) || 0.8,\n captions: !captions ? false : captions,\n playbackRate: parseFloat(playbackRate) || 1.0\n };\n};\n\nconst initialState = {\n ...getInitialVideoState()\n};\n\nexport default function playerReducer(state = initialState, action) {\n switch (action.type) {\n case ACTION_TYPES.RESET: {\n return initialState;\n }\n case ACTION_TYPES.SET_VIDEO: {\n const { payload } = action;\n return { ...state, ...payload };\n }\n case ACTION_TYPES.RESET_VIDEO_STATE: {\n return { ...state, ...getInitialVideoState() };\n }\n case ACTION_TYPES.RESTART_VIDEO: {\n return { ...getInitialVideoState(), playing: true, ended: false };\n }\n case ACTION_TYPES.HANDLE_SEEK_VIDEO: {\n const { time: timeSecond } = action;\n const { duration } = state;\n const { jfPlayer } = window;\n const { seekTo = f => f } = jfPlayer || {};\n seekTo(timeSecond / duration);\n return state;\n }\n case ACTION_TYPES.SET_CAPTIONS: {\n const { captionLanguage } = action;\n const { jfPlayer } = window;\n handleToggleCaptions(jfPlayer, captionLanguage);\n return { ...state, captions: captionLanguage };\n }\n case ACTION_TYPES.SET_NEXT_SECTION_OPENER_ACTIVE: {\n const { nextSectionOpenerActive } = action;\n return { ...state, nextSectionOpenerActive };\n }\n default:\n return state;\n }\n}\n","import { findSectionObjectBySectionID, getPrevNextCourseContent, urlParamsSaver } from '../../utils';\nimport { ACTION_TYPES } from '../actionTypes';\n\nconst initialState = {\n chapters: [],\n courses: [],\n quizActive: false,\n courseNotFoundError: false\n};\n\nexport default function courseReducer(state = initialState, action) {\n switch (action.type) {\n case ACTION_TYPES.SET_COURSE_CHAPTERS: {\n const { chapters } = action;\n return { ...state, chapters };\n }\n case ACTION_TYPES.SET_ACTIVE_COURSE_SECTION: {\n const { course } = action;\n if (typeof course === 'string') {\n const { chapters } = state;\n return {\n ...state,\n activeCourseSection: findSectionObjectBySectionID(chapters, course)?.section\n };\n }\n return { ...state, activeCourseSection: course };\n }\n case ACTION_TYPES.SET_COURSES: {\n const { courses } = action;\n return { ...state, courses };\n }\n case ACTION_TYPES.SET_COURSE_NOT_FOUND_ERROR: {\n const { notFound = false } = action;\n return { ...state, courseNotFoundError: notFound };\n }\n case ACTION_TYPES.SET_SECTION_NOT_FOUND_ERROR: {\n const { notFound = false } = action;\n return { ...state, sectionNotFoundError: notFound };\n }\n case ACTION_TYPES.HANDLE_PREV_NEXT_COURSE_CONTENT: {\n const { prev = false, history = [] } = action;\n const { activeCourseSection, chapters, activeCourse } = state;\n const { slug: activeSlug } = activeCourse || {};\n const { sectionID } = activeCourseSection || {};\n if (!sectionID) return state;\n\n const newActiveCourseSection = getPrevNextCourseContent(prev, chapters, sectionID);\n if (!newActiveCourseSection) return; // no more next\n\n const { slug, chapter_id: currentChapterID } = newActiveCourseSection;\n const currentChapter = chapters.find(chapter => chapter?.id === currentChapterID);\n const { slug: chapterSlug } = currentChapter || {};\n history.push(urlParamsSaver(`/${activeSlug}/${chapterSlug}/${slug}`));\n return { ...state, activeCourseSection: newActiveCourseSection };\n }\n case ACTION_TYPES.SET_ACTIVE_COURSE: {\n const { course } = action;\n return { ...state, activeCourse: course };\n }\n case ACTION_TYPES.TOGGLE_QUIZ_ACTIVE: {\n const { quizActive } = action;\n return { ...state, quizActive };\n }\n default:\n return state;\n }\n}\n","import { takeLatest } from 'redux-saga/effects';\n\nimport { ACTION_TYPES } from '../../store/actionTypes';\n\nfunction* handleToggleCoursesPanel() {\n yield console.log('handleToggleCoursesPanel');\n}\n\nexport function* rootUIFlow() {\n yield takeLatest(ACTION_TYPES.TOGGLE_COURSES_PANEL_VISIBILITY, handleToggleCoursesPanel);\n}\n","import { ACTION_TYPES } from './actionTypes';\n\nexport const ACTION_CREATORS = {\n fetchUser: () => ({\n type: ACTION_TYPES.FETCH_USER.REQUEST\n }),\n setUser: user => ({\n user,\n type: ACTION_TYPES.FETCH_USER.SUCCESS\n }),\n setVideo: payload => ({\n payload,\n type: ACTION_TYPES.SET_VIDEO\n }),\n restartVideo: () => ({\n type: ACTION_TYPES.RESTART_VIDEO\n }),\n handleSeekVideo: time => ({\n time,\n type: ACTION_TYPES.HANDLE_SEEK_VIDEO\n }),\n setCourseChapters: chapters => ({\n chapters,\n type: ACTION_TYPES.SET_COURSE_CHAPTERS\n }),\n setActiveCourseSection: course => ({\n course,\n type: ACTION_TYPES.SET_ACTIVE_COURSE_SECTION\n }),\n resetVideoPlayer: () => ({\n type: ACTION_TYPES.RESET\n }),\n setCaptions: captionLanguage => ({\n captionLanguage,\n type: ACTION_TYPES.SET_CAPTIONS\n }),\n handlePrevNextCourseContent: (prev, history) => ({\n prev,\n history,\n type: ACTION_TYPES.HANDLE_PREV_NEXT_COURSE_CONTENT\n }),\n setCourses: courses => ({\n courses,\n type: ACTION_TYPES.SET_COURSES\n }),\n addRemoveExpandedCourseSections: (courseID, actionKey) => ({\n courseID,\n actionKey,\n type: ACTION_TYPES.ADD_REMOVE_TO_EXPANDED_COURSE_SECTIONS\n }),\n setCourseNotFoundError: notFound => ({\n notFound,\n type: ACTION_TYPES.SET_COURSE_NOT_FOUND_ERROR\n }),\n setSectionNotFoundError: notFound => ({\n notFound,\n type: ACTION_TYPES.SET_SECTION_NOT_FOUND_ERROR\n }),\n fetchCourseContent: (programSlug, courseSlug, sectionSlug) => ({\n courseSlug,\n programSlug,\n sectionSlug,\n type: ACTION_TYPES.FETCH_COURSE_CONTENT.REQUEST\n }),\n setCurrentStage: currentStage => ({\n currentStage,\n type: ACTION_TYPES.SET_CURRENT_STAGE\n }),\n setActiveCourse: course => ({\n course,\n type: ACTION_TYPES.SET_ACTIVE_COURSE\n }),\n tickAction: payload => ({\n ...payload,\n type: ACTION_TYPES.TICK_ACTION\n }),\n refreshSectionPropertiesNProgresses: courseID => ({\n courseID,\n type: ACTION_TYPES.REFRESH_SECTION_PROPERTIES_N_PROGESS\n }),\n refreshCourses: () => ({\n type: ACTION_TYPES.FETCH_COURSES.REQUEST\n }),\n enrollChapter: (chapterID, callback) => ({\n callback,\n chapterID,\n type: ACTION_TYPES.HANDLE_ENROLL_CHAPTER\n }),\n handlePassQuiz: payload => ({\n ...payload,\n type: ACTION_TYPES.HANDLE_PASS_QUIZ\n }),\n handleSectionAction: (courseID, action, sectionType) => ({\n action,\n courseID,\n sectionType,\n type: ACTION_TYPES.HANDLE_SECTION_ACTION\n }),\n setWishlist: wishList => ({\n wishList,\n type: ACTION_TYPES.SET_WISHLIST\n }),\n setCertificates: certificates => ({\n certificates,\n type: ACTION_TYPES.SET_CERTIFICATES\n }),\n setNextSectionOpenerActive: nextSectionOpenerActive => ({\n nextSectionOpenerActive,\n type: ACTION_TYPES.SET_NEXT_SECTION_OPENER_ACTIVE\n }),\n handleEndQuizCooldown: () => ({\n type: ACTION_TYPES.HANDLE_END_QUIZ_COOLDOWN\n }),\n regenerateCertificate: (activeCourseID, callback) => ({\n type: ACTION_TYPES.REGENERATE_CERTIFICATE,\n activeCourseID,\n callback\n }),\n toggleExitQuizModal: (visible, payload) => ({\n visible,\n payload,\n type: ACTION_TYPES.TOGGLE_EXIT_QUIZ_MODAL\n }),\n toggleQuizActive: quizActive => ({\n quizActive,\n type: ACTION_TYPES.TOGGLE_QUIZ_ACTIVE\n }),\n updateUserFullname: (newFullname, callback) => ({\n callback,\n newFullname,\n type: ACTION_TYPES.UPDATE_USER_FULLNAME\n }),\n updateUserProperty: changes => ({\n type: ACTION_TYPES.UPDATE_USER_PROPERTY,\n changes\n }),\n restartVideoState: () => ({\n type: ACTION_TYPES.RESET_VIDEO_STATE\n })\n};\n","import {\n all, call, takeLatest, put, delay\n} from 'redux-saga/effects';\nimport Tracking from '@jotforminc/tracking';\nimport { translation } from '@jotforminc/translation';\nimport { setCookie } from '@jotforminc/utils';\n\nimport * as API from '../../api';\nimport { redirectToLogoutPage } from '../../utils';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\n\nimport { ACTION_TYPES } from '../../store/actionTypes';\n\nexport function* initializeTranslation(language) {\n try {\n if (!language || language.toLowerCase() === 'en-us') {\n return false;\n }\n yield call(translation.addDictionary, language);\n } catch (e) {\n console.log('Error while fetching translations');\n console.error(e);\n return false;\n }\n}\n\nexport function initializeSentryIdentifier(email) {\n if (window.JOTFORM_ENV === 'PRODUCTION') {\n Tracking.configureGlobalScope(scope => {\n scope.setExtra({ user: email });\n });\n }\n}\n\nexport function initializeCampaings() {\n return {\n campaingType: window.campaingType,\n availableCampaingList: window.availableCampaingList\n };\n}\n\nexport function* getPropertiesByUserType(userType) {\n const properties = {};\n if (userType === 'USER') {\n const [sharedAccounts, systemPlans] = yield all([\n call(API.fetchUserOwners),\n call(API.fetchUserPlans)\n ]);\n properties.sharedAccounts = sharedAccounts;\n properties.systemPlans = systemPlans;\n }\n return properties;\n}\n\nexport function* setUserCertificates(payload = {}) {\n const {\n certificateCourseID = '',\n waitUntilCertificateRegistration = false\n } = payload;\n\n if (!waitUntilCertificateRegistration || !certificateCourseID) {\n const allCertificates = yield call(API.getUserCertificates);\n yield put(ACTION_CREATORS.setCertificates(allCertificates));\n return;\n }\n\n let limit = 0;\n let certificates = [];\n let requestedCertificate;\n do {\n certificates = yield call(API.getUserCertificates);\n requestedCertificate = Object.values(certificates || {}).find(certificate => certificate?.course_id === certificateCourseID);\n if (requestedCertificate) {\n yield put(ACTION_CREATORS.setCertificates(certificates));\n return;\n }\n if (limit > 10) {\n return;\n }\n\n yield delay(500);\n limit++;\n } while (!requestedCertificate);\n}\n\nfunction* waitUntilUserLoad() {\n let limit = 0;\n do {\n const { user } = window;\n if (user || limit > 10) return { credentials: user, type: 'USER' };\n yield delay(500);\n limit++;\n } while (!window.user);\n}\n\nfunction* handleUpdateUserFullname(payload) {\n const { newFullname = '', callback = f => f } = payload;\n if (!newFullname) {\n callback();\n return;\n }\n\n const updatedUser = yield call(API.updateUserFullname, newFullname);\n if (!updatedUser?.name) {\n callback();\n return;\n }\n\n const { name } = updatedUser;\n yield put(ACTION_CREATORS.updateUserProperty({ name }));\n callback(name);\n}\n\nexport function* initializeUser() {\n const user = yield call(waitUntilUserLoad);\n const { type, credentials } = user;\n\n yield call(initializeSentryIdentifier, credentials?.email);\n\n if (user?.code === '401' && window.localStorage.getItem('prevent401Redirect') !== 'yes') {\n yield call(redirectToLogoutPage);\n return;\n }\n const { reactivationWarning } = credentials;\n\n if (reactivationWarning) {\n window.limitWarningAlignment = 'left_alt';\n }\n\n const userSettings = yield user.type !== 'FORM_USER' ? call(API.getUserSettings) : {};\n\n const newSheets = credentials.spreadsheets !== '8';\n\n yield put(ACTION_CREATORS.setUser({\n type,\n newSheets,\n credentials: {\n ...credentials,\n ...userSettings\n }\n }));\n\n const wishlist = yield call(API.getUserWishlist);\n yield put(ACTION_CREATORS.setWishlist(wishlist));\n yield call(setUserCertificates);\n\n // set browser language as cookie for language switch offer notification\n const navLang = window.navigator.userLanguage || window.navigator.language;\n setCookie('navLang', navLang);\n}\n\nexport function* rootUserFlow() {\n yield takeLatest(ACTION_TYPES.FETCH_USER.REQUEST, initializeUser);\n yield takeLatest(ACTION_TYPES.UPDATE_USER_FULLNAME, handleUpdateUserFullname);\n}\n","import { createSelector } from 'reselect';\n\nconst getUI = state => state.ui;\nconst getUser = state => state.user;\nconst getPlayer = state => state.player;\nconst getCourse = state => state.course;\n\nconst getUserWishList = createSelector(getUser, user => (user?.wishList));\nconst getUsername = createSelector(getUser, user => (user?.credentials?.username || ''));\nconst getUserFullname = createSelector(getUser, user => (user?.credentials?.name || ''));\nconst getUserType = createSelector(getUser, user => (user?.credentials?.account_type?.name || ''));\nconst getUserCertificatesSelector = createSelector(getUser, user => (user?.certificates));\n\n// Player Selectors\nconst getNextSectionOpenerActive = createSelector(getPlayer, player => (player?.nextSectionOpenerActive));\n\nexport const USER_SELECTORS = {\n getUser,\n getUsername,\n getUserType,\n getUserWishList,\n getUserFullname,\n getUserCertificatesSelector\n};\n\nexport const PLAYER_SELECTORS = {\n getPlayer,\n getNextSectionOpenerActive\n};\n\nconst getSkeletonList = (isUpcoming = false) => {\n let skeletonList;\n if (!isUpcoming) {\n skeletonList = [1, 2];\n } else {\n skeletonList = [1, 2, 3];\n }\n return skeletonList.map(skeletonID => ({\n id: `skeleton-${skeletonID}${isUpcoming ? '-upcoming' : ''}`,\n type: 'skeleton'\n }));\n};\n\nconst getChapters = createSelector(getCourse, course => course?.chapters || []);\nconst getCourses = createSelector(getCourse, course => (course?.courses || []));\nconst getProgramsByStatus = status => createSelector(getCourse, course => {\n const upcomingRequested = status === 'DISABLED';\n const upcomingCourses = (course?.courses || []).filter(({ status: courseStatus }) => courseStatus === status);\n // eslint-disable-next-line no-nested-ternary\n return upcomingCourses.length > 0\n ? upcomingRequested ? upcomingCourses.filter(upCourse => upCourse.slug !== 'jotform-apps') : upcomingCourses\n : getSkeletonList(upcomingRequested);\n});\nconst getActiveCourseSection = createSelector(getCourse, course => course?.activeCourseSection || {});\nconst getCourseNotFoundError = createSelector(getCourse, course => course?.courseNotFoundError);\nconst getActiveCourse = createSelector(getCourse, course => course?.activeCourse);\nconst getQuizActive = createSelector(getCourse, course => course?.quizActive);\nconst getSectionNotFoundError = createSelector(getCourse, course => course?.sectionNotFoundError);\n\nexport const COURSE_SELECTORS = {\n getCourse,\n getCourses,\n getChapters,\n getQuizActive,\n getActiveCourse,\n getProgramsByStatus,\n getActiveCourseSection,\n getCourseNotFoundError,\n getSectionNotFoundError\n};\n\nconst getExpandedCourseSections = createSelector(getUI, ui => ui?.expandedCourseSections);\nconst getExitQuizModalVisible = createSelector(getUI, ui => ui?.exitQuizModalVisible);\nconst getExitQuizModalPayload = createSelector(getUI, ui => ui?.exitQuizActionPayload);\nconst getCurrentStage = createSelector(getUI, ui => (ui?.currentStage || ''));\n\nexport const UI_SELECTORS = {\n getCurrentStage,\n getExitQuizModalVisible,\n getExitQuizModalPayload,\n getExpandedCourseSections\n};\n","import {\n call, takeLatest, put, select\n} from 'redux-saga/effects';\nimport * as API from '../../api';\n\nimport { ACTION_TYPES } from '../../store/actionTypes';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\nimport {\n calculateCourseDurations, findSectionObjectBySlugs, getAllIncompletedQuizzes, getAppInfoFromURL, getLastInteractedCourseByAction\n} from '../../utils';\nimport { COURSE_SELECTORS } from '../../store/selectors';\nimport { setUserCertificates } from './user';\n\nexport function* initializeCourseContent(payload) {\n const { courseSlug, sectionSlug, programSlug } = payload || {};\n const courses = yield select(COURSE_SELECTORS.getCourses);\n const requestedCourse = courses.find(course => course?.slug === programSlug);\n if (!requestedCourse) return false;\n\n const { chapters } = requestedCourse;\n if (!chapters || !courseSlug) {\n yield put(ACTION_CREATORS.setCourseNotFoundError(true));\n return;\n }\n\n yield put(ACTION_CREATORS.setActiveCourse(requestedCourse));\n yield put(ACTION_CREATORS.setCourseChapters(chapters));\n\n const { section: initialActiveSection, notFoundNRedirected } = findSectionObjectBySlugs(chapters, courseSlug, sectionSlug) || {};\n yield put(ACTION_CREATORS.setActiveCourseSection(initialActiveSection));\n if (notFoundNRedirected) yield put(ACTION_CREATORS.setSectionNotFoundError(true));\n}\n\nconst normalizeCourses = courses => courses.map(course => ({\n ...course,\n chapters: Object.values(course.chapters).map((chapter, chapterID) => ({\n ...chapter,\n sections: Object.values(chapter.sections).map(section => {\n const { resources = [], properties: { order = '' } } = section;\n const [parentSection, subSection] = `${order}`.split('.');\n return {\n ...section,\n resources: Array.isArray(resources) ? resources : Object.values(resources),\n sectionID: `${chapterID + 1}.${parseInt(parentSection, 10)}${subSection ? `.${subSection}` : ''}`\n };\n })\n })),\n lastViewedSection: getLastInteractedCourseByAction(courses, course?.slug, 'view')\n}));\n\nexport function* initializeCourses() {\n let courses = yield call(API.fetchCourses) || [];\n courses = normalizeCourses(courses);\n courses = calculateCourseDurations(courses);\n const activeCourse = yield select(COURSE_SELECTORS.getActiveCourse);\n if (activeCourse) {\n const { id: activeCourseId } = activeCourse;\n const updatedActiveCourse = courses.find(course => course?.id === activeCourseId);\n if (updatedActiveCourse) yield put(ACTION_CREATORS.setActiveCourse(updatedActiveCourse));\n }\n yield put(ACTION_CREATORS.setCourses(courses));\n}\n\nfunction* refreshSectionPropertiesNProgresses(payload) {\n const { courseID } = payload;\n const newCourseSectionData = yield call(API.getCourseByID, courseID) || {};\n if (Object.keys(newCourseSectionData).length <= 0) return;\n const { chapters } = newCourseSectionData;\n const refreshedChaptersData = Object.values(chapters);\n const currentChapters = yield select(COURSE_SELECTORS.getChapters);\n const activeCourseSection = yield select(COURSE_SELECTORS.getActiveCourseSection);\n\n const updatedChapters = currentChapters.map((chapter, chapterIndex) => ({\n ...chapter,\n progress: refreshedChaptersData[chapterIndex]?.progress,\n properties: refreshedChaptersData[chapterIndex]?.properties,\n sections: chapter.sections.map((section, sectionIndex) => {\n const refreshedChapters = Object.values(refreshedChaptersData[chapterIndex]?.sections);\n return {\n ...section,\n disabled: refreshedChapters[sectionIndex]?.disabled,\n progress: refreshedChapters[sectionIndex]?.progress,\n properties: refreshedChapters[sectionIndex]?.properties,\n cooldown_ms_until: refreshedChapters[sectionIndex]?.cooldown_ms_until\n };\n })\n }));\n\n if (activeCourseSection) {\n for (let i = 0; i < updatedChapters.length; i++) {\n const updatedActiveCourseSection = updatedChapters[i]?.sections.find(section => section?.id === activeCourseSection?.id);\n if (updatedActiveCourseSection) {\n yield put(ACTION_CREATORS.setActiveCourseSection(updatedActiveCourseSection));\n break;\n }\n }\n }\n yield put(ACTION_CREATORS.setCourseChapters(updatedChapters));\n}\n\nfunction* handleGenerateCertificate(payload, callback) {\n const courseID = typeof payload === 'object' ? payload?.activeCourseID : payload;\n const callbackFunction = typeof payload === 'object' ? payload?.callback : callback;\n try {\n yield call(API.registerCourseCertification, courseID);\n yield call(setUserCertificates, { certificateCourseID: courseID, waitUntilCertificateRegistration: true });\n } catch (err) {\n console.log('handleGenerateCertificate -> error', err);\n }\n (callbackFunction || (() => {}))();\n}\n\nfunction* handlePassQuiz(payload) {\n const {\n sectionID, score, currentChapterID,\n firstIncompleteSection, activeCourseID, callback\n } = payload;\n\n let courses = yield call(API.fetchCourses) || [];\n courses = normalizeCourses(courses);\n const { chapters } = courses.find(course => course?.id === activeCourseID);\n yield put(ACTION_CREATORS.handleSectionAction(sectionID, 'complete', 'quiz'));\n\n yield put(ACTION_CREATORS.tickAction({\n identifier: sectionID,\n action: 'quizCurrentScore',\n context: 'section',\n value: score\n }));\n\n const incompletedQuizzes = getAllIncompletedQuizzes(chapters);\n\n const courseCompleted = !firstIncompleteSection && (incompletedQuizzes.length === 0 || (incompletedQuizzes.length === 1 && incompletedQuizzes[0]?.id === sectionID));\n\n const currentChapter = chapters.find(chapter => chapter?.id === currentChapterID);\n const { sections = [] } = currentChapter;\n const incompletedChapterSections = sections.find(section => !section?.progress?.complete && section?.id !== sectionID);\n\n const isNewChapterBreakPoint = courseCompleted || !incompletedChapterSections;\n if (isNewChapterBreakPoint) {\n yield put(ACTION_CREATORS.tickAction({\n identifier: currentChapterID,\n action: 'complete',\n context: 'chapter',\n value: 1\n }));\n yield put(ACTION_CREATORS.setCourseChapters(chapters.map(chapter => {\n if (currentChapterID !== chapter?.id) return chapter;\n return { ...chapter, progress: ((chapter?.progress || {})) };\n })));\n }\n\n if (courseCompleted) {\n yield put(ACTION_CREATORS.tickAction({\n identifier: activeCourseID,\n action: 'complete',\n context: 'course',\n value: 1\n }));\n setTimeout(() => window.location.reload()); // TODO :: temporarily fix white screen issue after certificate generation\n }\n yield call(callback);\n}\n\nfunction* handleEndQuizCountdown() {\n const activeCourseSection = yield select(COURSE_SELECTORS.getActiveCourseSection);\n const chapters = yield select(COURSE_SELECTORS.getChapters);\n const { chapter_id: currentChapterID, id: currentSectionID } = activeCourseSection;\n const { cooldown_ms_until: cooldownUntil, disabled, ...updatedCourseSection } = activeCourseSection;\n yield put(ACTION_CREATORS.setActiveCourseSection(updatedCourseSection));\n yield put(ACTION_CREATORS.setCourseChapters(chapters.map(chapter => {\n if (chapter?.id !== currentChapterID) return chapter;\n const { sections = [] } = chapter;\n return {\n ...chapter,\n sections: sections.map(section => {\n if (section?.id !== currentSectionID) return section;\n return updatedCourseSection;\n })\n };\n })));\n}\n\nexport function* rootCourseFlow() {\n yield call(initializeCourses);\n const {\n stage, ...rest\n } = getAppInfoFromURL();\n if (stage === 'video') {\n yield call(initializeCourseContent, rest);\n }\n\n yield takeLatest(ACTION_TYPES.FETCH_COURSES.REQUEST, initializeCourses);\n yield takeLatest(ACTION_TYPES.HANDLE_PASS_QUIZ, handlePassQuiz);\n yield takeLatest(ACTION_TYPES.REGENERATE_CERTIFICATE, handleGenerateCertificate);\n yield takeLatest(ACTION_TYPES.HANDLE_END_QUIZ_COOLDOWN, handleEndQuizCountdown);\n yield takeLatest(ACTION_TYPES.FETCH_COURSE_CONTENT.REQUEST, initializeCourseContent);\n yield takeLatest(ACTION_TYPES.REFRESH_SECTION_PROPERTIES_N_PROGESS, refreshSectionPropertiesNProgresses);\n}\n","import {\n takeLatest, call, select, put\n} from 'redux-saga/effects';\n\nimport { ACTION_TYPES } from '../../store/actionTypes';\nimport { sendAction } from '../../api';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\nimport { COURSE_SELECTORS, UI_SELECTORS } from '../../store/selectors';\n\nfunction* handleCompleteSection(courseID, currentStage, actionPayload, dispatchedFrom = '') {\n // handle enroll course\n if (actionPayload?.context === 'course' && ['start', 'complete'].includes(actionPayload?.action) && ['courses', 'course'].includes(currentStage)) {\n yield put(ACTION_CREATORS.refreshCourses());\n } else if (courseID || dispatchedFrom === 'introVideo') {\n yield put(ACTION_CREATORS.refreshSectionPropertiesNProgresses(courseID));\n }\n}\n\nfunction* tickAction(payload) {\n const { type, ...actionPayload } = payload;\n const { action, dispatchedFrom } = actionPayload;\n const currentStage = yield select(UI_SELECTORS.getCurrentStage);\n let courseID;\n if (currentStage === 'courses') {\n courseID = actionPayload?.identifier;\n } else {\n ({ id: courseID } = yield select(COURSE_SELECTORS.getActiveCourse) || {});\n }\n const postActionMap = {\n complete: handleCompleteSection,\n start: handleCompleteSection\n };\n\n yield call(sendAction, actionPayload);\n\n const postTickFunction = (postActionMap[action]) || (f => f);\n yield call(postTickFunction, courseID, currentStage, actionPayload, dispatchedFrom);\n}\n\nfunction* handleEnrollChapter({ chapterID, callback = f => f }) {\n const success = yield call(sendAction, {\n action: 'enroll',\n context: 'chapter',\n identifier: chapterID,\n value: 1\n });\n if (success === true) {\n const courses = yield select(COURSE_SELECTORS.getCourses);\n yield put(ACTION_CREATORS.setCourses(courses.map(course => {\n return {\n ...course,\n chapters: course?.chapters.map(chapter => {\n if (chapter?.id === chapterID) {\n return {\n ...chapter,\n progress: { ...(chapter?.progress || {}), enroll: '1' }\n };\n }\n return chapter;\n })\n };\n })));\n callback();\n }\n}\n\nfunction* handleSectionAction(payload) {\n const { courseID, action, sectionType } = payload;\n const success = yield call(sendAction, {\n action,\n context: 'section',\n identifier: courseID,\n value: 1,\n sectionType\n });\n if (success) {\n const chapters = yield select(COURSE_SELECTORS.getChapters);\n yield put(ACTION_CREATORS.setCourseChapters(\n chapters.map(chapter => {\n return {\n ...chapter,\n sections: chapter?.sections.map(section => {\n if (section?.id === courseID) {\n return {\n ...section,\n progress: {\n ...(section?.progress || {}),\n [action]: '1'\n }\n };\n }\n return section;\n })\n };\n })\n ));\n }\n}\n\nexport function* rootActionTrackingFlow() {\n yield takeLatest(ACTION_TYPES.TICK_ACTION, tickAction);\n yield takeLatest(ACTION_TYPES.HANDLE_SECTION_ACTION, handleSectionAction);\n yield takeLatest(ACTION_TYPES.HANDLE_ENROLL_CHAPTER, handleEnrollChapter);\n}\n","import { all, spawn, call } from 'redux-saga/effects';\nimport { setCookie } from '@jotforminc/utils';\nimport { rootUIFlow } from '../main/ui';\nimport { rootPlayerFlow } from '../main/player';\nimport { rootUserFlow, initializeUser } from '../main/user';\nimport { rootCourseFlow } from '../main/course';\nimport { rootActionTrackingFlow } from '../main/actions';\n\nexport const flowList = [\n rootUserFlow,\n rootUIFlow,\n rootPlayerFlow,\n rootActionTrackingFlow,\n rootCourseFlow\n].filter(flow => !!flow);\n\nexport function* rootSagaFlow() {\n if (window.location.href.includes('testMode=1')) {\n yield setCookie('academy-uxr-test-mode', '1', 1);\n } else {\n yield setCookie('academy-uxr-test-mode', '0');\n }\n\n yield call(initializeUser);\n\n const flowSpawnList = flowList.map(flow => spawn(flow));\n yield all(flowSpawnList);\n}\n","export function* rootPlayerFlow() {\n //\n}\n","import Tracking from '@jotforminc/tracking';\nimport {\n applyMiddleware, combineReducers, compose, createStore\n} from 'redux';\nimport createSagaMiddleware from 'redux-saga';\n\nimport uiReducer from './reducers/ui';\nimport userReducer from './reducers/user';\nimport playerReducer from './reducers/player';\nimport courseReducer from './reducers/course';\nimport featureReducer from './reducers/feature';\n\nimport { rootSagaFlow } from '../sagas/root';\n\nconst createRootReducer = () => combineReducers({\n ui: uiReducer,\n user: userReducer,\n player: playerReducer,\n course: courseReducer,\n feature: featureReducer\n});\n\nexport const createStoreWithSagas = () => {\n const rootReducer = createRootReducer({});\n const sagaMiddleware = createSagaMiddleware({\n onError: (error, { sagaStack }) => {\n if (window.errorTracking === true) {\n Tracking.captureException(error, scope => {\n scope.setTag('section', 'saga');\n\n const sagaName = (sagaStack.match(/The above error occurred in task (.*?)( |\\n)/) || [])[1];\n if (sagaName) scope.setTag('saga.name', sagaName);\n\n scope.addBreadcrumb({\n type: 'error',\n level: 'error',\n category: 'error',\n message: sagaStack\n });\n });\n }\n\n /* eslint-disable no-console */\n console.error(error);\n console.error(sagaStack);\n /* eslint-enable no-console */\n }\n });\n\n const middlewares = applyMiddleware(sagaMiddleware);\n\n const composeEnhancers = (typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) || compose;\n const store = createStore(rootReducer, composeEnhancers(middlewares));\n\n sagaMiddleware.run(rootSagaFlow);\n return store;\n};\n\nexport const defaultStore = createStoreWithSagas();\n\nexport default defaultStore;\n","import React from 'react';\nimport { bool, string } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { CONTACT_SALES_AB_TEST_VARIATIONS } from '../../constants';\nimport { shouldRenderSignupButton } from '../../utils';\n\nconst LoginGroupPreLoader = ({\n hideLoginButton,\n hideSignupButton,\n contactSalesAbTestVariation,\n contactSalesAbTestVariationURL\n}) => {\n const { CONTACT_SALES_AS_CTA, CONTACT_SALES_AS_ITEM } = CONTACT_SALES_AB_TEST_VARIATIONS;\n\n return (\n
    \n {/* A/B Test: contactSalesButtonOnHeader */}\n {/* contact sales as item */}\n {\n contactSalesAbTestVariation === CONTACT_SALES_AS_ITEM && (\n
  • \n {t('Contact Sales')}\n
  • \n )\n }\n {\n !hideLoginButton && (\n
  • \n {t('Login')}\n
  • \n )\n }\n {/* A/B Test: contactSalesButtonOnHeader */}\n {\n shouldRenderSignupButton({ hideSignupButton, contactSalesAbTestVariation }) && (\n
  • \n {t('Sign Up for Free')}\n
  • \n )\n }\n {/* A/B Test: contactSalesButtonOnHeader */}\n {/* contact sales as cta */}\n {\n contactSalesAbTestVariation === CONTACT_SALES_AS_CTA && (\n
  • \n {t('Contact Sales')}\n
  • \n )\n }\n
\n );\n};\n\nLoginGroupPreLoader.propTypes = {\n hideLoginButton: bool.isRequired,\n hideSignupButton: bool.isRequired,\n contactSalesAbTestVariation: string.isRequired,\n contactSalesAbTestVariationURL: string.isRequired\n};\n\nexport default LoginGroupPreLoader;\n","import React from 'react';\nimport { bool, string } from 'prop-types';\nimport { AccountBoxAvatar } from '../AccountBoxAvatar';\nimport LoginGroupPreLoader from './LoginGroupPreLoader';\n\nconst PreLoaders = ({\n isLoggedIn,\n username,\n avatarUrl,\n hideLoginButton,\n hideSignupButton,\n contactSalesAbTestVariation,\n contactSalesAbTestVariationURL\n}) => {\n return (\n <>\n {isLoggedIn ? (\n \n ) : (\n \n )}\n \n );\n};\n\nPreLoaders.propTypes = {\n isLoggedIn: bool.isRequired,\n username: string,\n avatarUrl: string,\n hideLoginButton: bool.isRequired,\n hideSignupButton: bool.isRequired,\n contactSalesAbTestVariation: string.isRequired,\n contactSalesAbTestVariationURL: string.isRequired\n};\n\nexport default PreLoaders;\n","import React from 'react';\nimport { bool, func } from 'prop-types';\nimport cx from 'classnames';\nimport { t } from '@jotforminc/translation';\nimport { IconBars, IconXmark } from '@jotforminc/svg-icons';\n\nconst HamburgerButton = ({ onClick, isActive }) => {\n return (\n \n {isActive ? : }\n \n );\n};\n\nHamburgerButton.propTypes = {\n onClick: func,\n isActive: bool\n};\n\nHamburgerButton.defaultProps = {\n onClick: f => f,\n isActive: false\n};\n\nexport default HamburgerButton;\n","import styled from 'styled-components';\n\nconst ScHeaderNavigation = styled.nav`\n display: flex;\n flex: 1;\n @media screen and (max-width: 1024px) {\n display: none;\n }\n a {\n text-decoration: none;\n }\n &.isMobile {\n top: var(--jf-header-size);\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n flex-direction: column;\n position: fixed;\n background-color: #fff;\n overflow: auto;\n }\n .jfRHeader--nav-menu {\n display: flex;\n align-items: center;\n margin-left: auto;\n margin-top: 0;\n margin-bottom: 0;\n padding: 0;\n list-style: none;\n html[dir=\"rtl\"] & {\n margin-left: 0;\n margin-right: auto;\n }\n &.isMobile {\n overflow-x: auto;\n }\n &-item {\n position: relative;\n list-style: none;\n & > a {\n color: var(--jf-header-nav-menu);\n padding: 0 12px;\n white-space: nowrap;\n position: relative;\n display: inline-block;\n font-size: 14px;\n letter-spacing: -0.084px;\n line-height: var(--jf-header-size);\n @media screen and (min-width: 1280px) {\n font-size: 14px;\n letter-spacing: -0.176px;\n }\n &:focus {\n outline: thin dotted #d5daff;\n }\n }\n @media screen and (min-width: 1025px) {\n & + li {\n margin-left: 6px;\n list-style: none;\n html[dir=\"rtl\"] & {\n margin-left: 0;\n margin-right: 6px;\n }\n }\n }\n &.isBadge {\n & > a {\n display: inline-flex;\n align-items: center;\n }\n }\n &-badge {\n background-color: #64b200;\n color: #fff;\n padding: 0 4px;\n border-radius: 4px;\n font-size: 10px;\n letter-spacing: 0.1px;\n line-height: 16px;\n margin-left: 4px;\n html[dir=\"rtl\"] & {\n margin-left: 0;\n margin-right: 4px;\n }\n }\n &-icon {\n width: 18px;\n height: 18px;\n margin-right: 6px;\n html[dir=\"rtl\"] & {\n margin-right: 0;\n margin-left: 6px;\n }\n }\n &-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n margin-bottom: 4px;\n background-color: #EB4145;\n margin-left: 2px;\n html[dir=\"rtl\"] & {\n margin-left: 0;\n margin-right: 2px;\n }\n }\n &.hasSubMenu {\n & > a {\n display: inline-flex;\n align-items: center;\n svg {\n margin-left: 8px;\n width: 8px;\n min-width: 8px;\n height: 4px;\n html[dir=\"rtl\"] & {\n margin-left: 0;\n margin-right: 8px;\n }\n }\n @media screen and (max-width: 1024px) {\n font-size: 16px;\n font-weight: 500;\n &.isOpen {\n color: var(--jf-header-nav-menu-active);\n svg {\n transform: rotate(180deg);\n }\n }\n svg {\n margin-left: auto;\n width: 16px;\n height: 8px;\n html[dir=\"rtl\"] & {\n margin-left: 0;\n margin-right: auto;\n }\n }\n }\n }\n .jfRHeader--nav-sub-menu {\n display: none; // for ssr landings(handle broken submenu before hydration)\n @media screen and (max-width: 1024px) {\n &.isOpen {\n display: flex;\n }\n }\n }\n &:has(.jfRHeader--nav-sub-menu-item > a.isCurrent) {\n > a {\n color: var(--jf-header-nav-menu-active);\n &:after,\n &:before {\n width: 18%;\n }\n }\n }\n }\n &:not(.hasSubMenu) {\n & > a {\n .jfRHeader--nav.jfRHeader--nav-efc & {\n &:after,\n &:before {\n content: \"\";\n width: 0;\n height: 2px;\n position: absolute;\n bottom: 10px;\n z-index: -1;\n transition: width 0.2s ease;\n }\n &:before {\n border-radius: 1px 0 0 1px;\n right: 50%;\n }\n &:after {\n border-radius: 0 1px 1px 0;\n left: 50%;\n }\n @media screen and (min-width: 1025px) {\n &:hover {\n color: var(--jf-header-nav-menu-hover);\n &:after,\n &:before {\n background-color: var(--jf-header-nav-menu-hover);\n width: 18%;\n }\n }\n }\n }\n &.isCurrent {\n color: var(--jf-header-nav-menu-active);\n font-weight: 500;\n @media screen and (min-width: 1025px) {\n &:after,\n &:before {\n background-color: var(--jf-header-nav-menu-active);\n width: 18%;\n }\n }\n }\n }\n }\n &-button {\n a:not(.jfRHeader--custom-cta) {\n border-radius: 4px;\n font-size: 16px;\n padding: 8px 10px;\n color: #fff;\n display: inline-flex;\n white-space: nowrap;\n color: #fff;\n background-color: #ff6100;\n transition: all 0.2s ease;\n &:hover {\n background-color: #E55300;\n }\n @media screen and (max-width: 1024px) {\n margin-left: 16px;\n margin-right: 16px;\n }\n }\n }\n @media screen and (min-width: 1025px) {\n &:hover {\n & > a {\n color: var(--jf-header-nav-menu-hover);\n }\n a:not(.jfRHeader--custom-cta) + .jfRHeader--nav-sub-menu {\n &:not(.isOpen){\n display: flex;\n }\n }\n }\n }\n }\n @media screen and (max-width: 1024px) {\n margin-left: 0;\n html[dir=\"rtl\"] & {\n margin-right: 0;\n }\n flex-direction: column;\n align-items: flex-start;\n &-item {\n width: 100%;\n & + .jfRHeader--nav-menu-item {\n border-top: 1px solid #e3e5f5;\n }\n & > a {\n width: 100%;\n font-size: 16px;\n font-weight: 500;\n --jf-header-nav-menu: #0a1551;\n }\n }\n }\n }\n .jfRHeader--nav-action {\n display: flex;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n @media screen and (max-width: 1024px) {\n width: 100%;\n box-shadow: 0 0 16px rgba(41, 42, 61, 0.25);\n border-top: 1px solid #e3e5f5;\n margin-top: auto;\n }\n &-item {\n position: relative;\n width: 100%;\n list-style: none;\n button, a {\n position: relative;\n padding: 0 16px;\n white-space: nowrap;\n font-weight: 400;\n display: block;\n border-radius: 4px;\n font-size: 14px;\n letter-spacing: -0.072px;\n line-height: 16px;\n padding: 8px 12px;\n border: 0;\n outline: none;\n background-color: transparent;\n cursor: pointer;\n @media screen and (min-width: 1280px) {\n padding: 12px 20px;\n letter-spacing: -0.084px;\n }\n &.jfRHeader--nav-action-list-login {\n line-height: calc(var(--jf-header-size) - 16px);\n color: var(--jf-header-nav-menu);\n @media screen and (min-width: 1280px) {\n line-height: calc(var(--jf-header-size) - 24px);\n }\n @media (hover: hover) {\n &:hover {\n color: var(--jf-header-nav-menu-hover);\n }\n }\n }\n &.jfRHeader--nav-action-list-signup {\n background-color: #ff6100;\n color: #fff;\n transition: all 0.2s ease;\n @media (hover: hover) {\n &:hover {\n background-color: #e15600;\n }\n }\n }\n // A/B Test: contactSalesButtonOnHeader\n &.jfRHeader--contact-sales {\n background-color: #0075E3;\n font-weight: 500;\n color: #fff;\n transition: all 0.2s ease;\n @media screen and (max-width: 1024px) {\n background-color: #0a1551;\n width: 100%;\n margin: 16px 16px 16px 8px;\n text-align: center;\n }\n @media (hover: hover) {\n &:hover {\n background-color: #0066c3;\n }\n }\n }\n }\n @media screen and (max-width: 1024px) {\n width: 50%;\n display: flex;\n button, a {\n padding: 16px 0px;\n font-size: 16px;\n font-weight: 500;\n text-align: center;\n &.jfRHeader--nav-action-list-login {\n width: 100%;\n line-height: 1;\n margin: 16px 8px 16px 16px;\n border: 1px solid #0a1551;\n color: #0a1551;\n // A/B Test: contactSalesButtonOnHeader\n border: none;\n text-align: center;\n }\n &.jfRHeader--nav-action-list-signup {\n width: 100%;\n margin: 16px 16px 16px 8px;\n background-color: #0a1551;\n border: 1px solid #0a1551;\n }\n }\n }\n }\n &.isNotLoggedIn {\n &:before {\n content: \"\";\n background: #e3e5f5;\n width: 1px;\n height: 40px;\n margin: 0 8px;\n flex-shrink: 0;\n @media screen and (max-width: 1024px) {\n display: none;\n }\n }\n }\n &.isMobile {\n .jfRHeader--nav-action-list {\n width: 100%;\n position: relative;\n height: 80px;\n overflow: hidden;\n }\n }\n &.isMobileOpen {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: #ffffff;\n justify-content: center;\n align-items: flex-start;\n border-radius: 40px 40px 0 0;\n overflow: hidden;\n z-index: 2;\n .jfRHeader--nav-action-list {\n height: auto;\n overflow: visible;\n }\n }\n // A/B Test: contactSalesButtonOnHeader\n @media screen and (max-width: 520px) {\n &.is-trio-button {\n flex-direction: column;\n gap: 6px;\n padding: 12px;\n .jfRHeader--nav-action-item {\n width: 100%;\n a.jfRHeader--nav-action-list-login {\n margin: 0;\n }\n button {\n margin: 0;\n }\n }\n } \n }\n\n }\n\n .jfRHeader--nav-account-box {\n position: relative;\n &-avatar {\n button {\n width: var(--jf-header-size);\n height: var(--jf-header-size);\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 0;\n background-color: transparent;\n outline: none;\n }\n img {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n border: 2px solid #ff6100;\n object-fit: cover;\n object-position: center;\n &.dummy {\n background-color: #ff6100;\n }\n &[src=\"\"] {\n text-indent: -9999px;\n &:before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n background-color: #0a1551;\n border: 2px solid #ff6100;\n box-sizing: border-box;\n }\n }\n }\n @media screen and (max-width: 1024px) {\n display: none;\n }\n }\n &-menu {\n position: absolute;\n right: 10px;\n top: 100%;\n width: 320px;\n border-radius: 10px;\n border: 1px solid #c8ceed;\n background-color: #fff;\n display: none;\n z-index: 1;\n html[dir=\"rtl\"] & {\n right: auto;\n left: 10px;\n }\n .jNewHeader-subMenu {\n border-radius: 10px;\n overflow: hidden;\n }\n &.isVisible {\n display: block;\n }\n &:before {\n content: \"\";\n position: absolute;\n top: -7px;\n right: 17px;\n width: 12px;\n height: 12px;\n background-color: #fff;\n background-image: linear-gradient(135deg, #fff 50%, transparent 50%);\n border-top: 1px solid #c8ceed;\n border-right: 1px solid transparent;\n border-bottom: 1px solid transparent;\n border-left: 1px solid #c8ceed;\n transform: rotateZ(45deg);\n border-radius: 2px 0 0 0;\n animation: 0.25s arrowSlideIn ease-out forwards;\n html[dir=\"rtl\"] & {\n right: auto;\n left: 17px;\n }\n }\n @media screen and (max-width: 1024px) {\n position: relative;\n right: auto;\n top: auto;\n width: 100%;\n border-radius: 0;\n border: 0;\n display: block;\n html[dir=\"rtl\"] & {\n left: auto;\n }\n &:before {\n display: none;\n }\n }\n }\n &-mobile-btn {\n display: none;\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n height: 80px;\n z-index: 2;\n width: 100%;\n border: 0;\n outline: none;\n &:before {\n content: \"\";\n position: absolute;\n top: 12px;\n left: 50%;\n border: 2px solid #8b92ad;\n width: 10px;\n height: 10px;\n transform: translateY(-50%) rotate(45deg);\n border-radius: 4px 0 0 0;\n border-bottom: 0;\n border-right: 0;\n }\n &.isMobileOpen {\n &:before {\n transform: translateY(-50%) rotate(225deg);\n }\n }\n @media screen and (max-width: 1024px) {\n display: block;\n }\n }\n }\n`;\n\nexport default ScHeaderNavigation;\n","import React from 'react';\nimport {\n elementType, bool, node, string\n} from 'prop-types';\nimport cx from 'classnames';\nimport { CONTACT_SALES_AB_TEST_VARIATIONS } from '@jotforminc/header-body';\nimport { PreLoaders } from '../PreLoaders';\nimport { ScHeaderNavigation } from '../Sc';\n\nconst Navigation = ({\n LoginGroupRenderer,\n children = null,\n isMobileScreen = false,\n isMobile = false,\n isLoggedIn = false,\n avatarUrl = undefined,\n username = undefined,\n disableLoginFlow = false,\n hideLoginButton,\n hideSignupButton,\n replaceAuthButtons,\n contactSalesAbTestVariation,\n contactSalesAbTestVariationURL\n}) => {\n const showLoginGroup = !disableLoginFlow && !replaceAuthButtons;\n const { CONTACT_SALES_AS_ITEM } = CONTACT_SALES_AB_TEST_VARIATIONS;\n\n // TODO: will this to props and remove hardcoded value\n const navEffectHover = true;\n\n return (\n \n
    \n {children}\n
\n {showLoginGroup && LoginGroupRenderer && }\n {showLoginGroup && !LoginGroupRenderer && (\n \n )}\n
\n );\n};\n\nNavigation.propTypes = {\n LoginGroupRenderer: elementType.isRequired,\n children: node,\n isMobileScreen: bool,\n isMobile: bool,\n isLoggedIn: bool,\n avatarUrl: string,\n username: string,\n disableLoginFlow: bool,\n hideLoginButton: bool.isRequired,\n hideSignupButton: bool.isRequired,\n replaceAuthButtons: string.isRequired,\n contactSalesAbTestVariation: string.isRequired,\n contactSalesAbTestVariationURL: string.isRequired\n};\n\nexport default Navigation;\n","export const TEXTS = {\n ENTERPRISE: 'Enterprise',\n HIPAA: 'HIPAA',\n HIPAA_COMPLIANCE: 'HIPAA Compliance',\n GOVERNMENT: 'Government',\n SEE_100_INTEGRATIONS: 'See 100+ integrations',\n MY_FORMS: 'My Forms',\n PRICING: 'Pricing',\n SEE_MORE_FEATURES: 'See more features',\n SUPPORT: 'Support',\n ALL_TEAMS: 'All Teams'\n};\n","import { MENU_TYPES } from './menuTypes';\n\nconst templatesMenu = {\n name: 'templates',\n menuTitle: 'TEMPLATES',\n menuItems: [\n {\n name: 'formTemplates',\n title: 'Form Templates',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/templates/form.svg',\n url: '/form-templates/?classic'\n },\n {\n name: 'cardFormTemplates',\n title: 'Card Form Templates',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/templates/card-form.svg',\n url: '/form-templates/?cards'\n },\n {\n name: 'appTemplates',\n title: 'App Templates',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/templates/app.svg',\n url: '/app-templates/'\n },\n {\n name: 'storeBuilderTemplates',\n title: 'Store Builder Templates',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/templates/store-builder.svg?v=1.0',\n url: '/app-templates/category/online-store-templates'\n },\n {\n name: 'tableTemplates',\n title: 'Table Templates',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/templates/table.svg',\n url: '/table-templates/'\n },\n {\n name: 'workflowTemplates',\n title: 'Workflow Templates',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/templates/approval.svg',\n url: '/workflow-templates/',\n badge: {\n text: 'NEW'\n }\n },\n {\n name: 'pdfTemplates',\n title: 'PDF Templates',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/templates/pdf.svg',\n url: '/pdf-templates/'\n },\n {\n name: 'signTemplates',\n title: 'Sign Templates',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/templates/sign.svg',\n url: '/pdf-templates/e-sign/'\n }\n ]\n};\n\nexport const templatesNavItem = {\n name: 'templates',\n menuProps: templatesMenu,\n linkProps: {\n renderAs: 'button',\n title: 'Templates',\n menuType: MENU_TYPES.TEMPLATES\n }\n};\n","import { MENU_TYPES } from './menuTypes';\n\nconst INTEGRATIONS = {\n FEATURED_INTEGRATIONS: 'featuredIntegrations',\n CRM: 'crm',\n STORAGE: 'storage',\n PAYMENT: 'payment',\n EMAIL: 'email'\n};\n\nconst featuredIntegrationsLinks = [\n {\n name: 'featuredMicrosoftTeams',\n title: 'Microsoft Teams',\n url: '/integrations/microsoft-teams',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/microsoft-teams.svg'\n },\n {\n name: 'featuredPaypal',\n title: 'PayPal',\n url: '/integrations/paypal-business',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/paypal.svg'\n },\n {\n name: 'featuredSlack',\n title: 'Slack',\n url: '/integrations/slack',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/slack.svg'\n },\n {\n name: 'featuredGoogleSheets',\n title: 'Google Sheets',\n url: '/integrations/google-sheets',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/google-sheets.svg'\n },\n {\n name: 'featuredMailchimp',\n title: 'Mailchimp',\n url: '/integrations/mailchimp',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/mailchimp.svg'\n },\n {\n name: 'featuredZoom',\n title: 'Zoom',\n url: '/integrations/zoom',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/zoom.svg'\n },\n {\n name: 'featuredDropbox',\n title: 'Dropbox',\n url: '/integrations/dropbox',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/dropbox.svg'\n },\n {\n name: 'featuredGoogleCalendar',\n title: 'Google Calendar',\n url: '/integrations/google-calendar',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/google-calendar.svg'\n },\n {\n name: 'featuredSalesforce',\n title: 'Salesforce',\n url: '/integrations/salesforce',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/salesforce.svg'\n }\n];\n\nconst crmLinks = [\n {\n name: 'salesforce',\n title: 'Salesforce',\n url: '/integrations/salesforce',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/salesforce.svg'\n },\n {\n name: 'hubspot',\n title: 'Hubspot',\n url: '/integrations/hubspot',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/hubspot.svg'\n },\n {\n name: 'zohoCrm',\n title: 'Zoho CRM',\n url: '/integrations/zoho-crm',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/zoho.svg'\n },\n {\n name: 'activeCampaign',\n title: 'Active Campaign',\n url: '/integrations/activeCampaign',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/active-campaign.svg'\n },\n {\n name: 'pipedrive',\n title: 'Pipedrive',\n url: '/integrations/pipedrive',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/pipedrive.svg'\n },\n {\n name: 'zendek',\n title: 'Zendesk',\n url: '/integrations/zendesk',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/zendesk.svg'\n },\n {\n name: 'insightly',\n title: 'Insightly',\n url: '/integrations/insightly',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/insightly.svg'\n },\n {\n name: 'keap',\n title: 'Keap',\n url: '/integrations/keap',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/keap.svg'\n },\n {\n name: 'engageBay',\n title: 'EngageBay',\n url: '/integrations/engageBay',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/engagebay.svg'\n }\n];\n\nconst storageLinks = [\n {\n name: 'googleDrive',\n title: 'Google Drive',\n url: '/integrations/google-drive',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/google-drive.svg'\n },\n {\n name: 'dropbox',\n title: 'Dropbox',\n url: '/integrations/dropbox',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/dropbox.svg'\n },\n {\n name: 'oneDrive',\n title: 'OneDrive',\n url: '/integrations/onedrive',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/onedrive.svg'\n },\n {\n name: 'box',\n title: 'Box',\n url: '/integrations/box',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/box.svg'\n },\n {\n name: 'egnyte',\n title: 'Egnyte',\n url: '/integrations/egnyte',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/egnyte.svg'\n },\n {\n name: 'ftp',\n title: 'FTP',\n url: '/integrations/ftp',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/ftp.png'\n },\n {\n name: 'galleria',\n title: 'Galleria',\n url: '/integrations/galleria',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/galleria.png'\n }\n];\n\nconst paymentLinks = [\n {\n name: 'paypalPersonal',\n title: 'Paypal Personal',\n url: '/integrations/paypal-personal',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/paypal.svg'\n },\n {\n name: 'square',\n title: 'Square',\n url: '/integrations/square',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/square.svg'\n },\n {\n name: 'paypalBusiness',\n title: 'Paypal Business',\n url: '/integrations/paypal-business',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/paypal.svg'\n },\n {\n name: 'stripe',\n title: 'Stripe',\n url: '/integrations/stripe',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/stripe.svg'\n },\n {\n name: 'authorizeNet',\n title: 'Authorize.Net',\n url: '/integrations/authorize-net',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/authorize-net-v2.svg'\n },\n {\n name: 'applePayandGooglePay',\n title: 'Apple Pay & Google Pay',\n url: '/integrations/apple-pay-google-pay',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/apple-pay-google-pay.svg'\n },\n {\n name: 'paysafe',\n title: 'Paysafe',\n url: '/integrations/paysafe',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/paysafe.svg'\n },\n {\n name: 'mollie',\n title: 'Mollie',\n url: '/integrations/mollie',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/mollie.svg'\n },\n {\n name: 'venmo',\n title: 'Venmo',\n url: '/integrations/venmo',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/venmo.svg'\n }\n];\n\nconst emailLinks = [\n {\n name: 'constantContact',\n title: 'Constant Contact',\n url: '/integrations/constant-contact',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/constant-contact.svg'\n },\n {\n name: 'mailchimp',\n title: 'Mailchimp',\n url: '/integrations/mailchimp',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/mailchimp.svg'\n },\n {\n name: 'activeCampaign',\n title: 'ActiveCampaign',\n url: '/integrations/activecampaign',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/active-campaign.svg'\n },\n {\n name: 'aweber',\n alt: 'AWeber Email Marketing Icon',\n title: 'AWeber',\n url: '/integrations/aweber',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/aweber.svg'\n },\n {\n name: 'campaignMonitor',\n title: 'Campaign Monitor',\n url: '/integrations/campaign-monitor',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/campaign-monitor.svg'\n },\n {\n name: 'getResponse',\n title: 'GetResponse',\n url: '/integrations/getresponse',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/get-response.svg'\n },\n {\n name: 'googleContacts',\n title: 'Google Contacts',\n url: '/integrations/google-contacts',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/google-contacts.svg'\n },\n {\n name: 'iContact',\n alt: 'Blue and Big I Image for iContact',\n title: 'iContact',\n url: '/integrations/icontact',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/integrations/icontact.svg'\n }\n];\n\nconst integrationsMenu = {\n name: 'integrations',\n menuTitle: 'INTEGRATIONS',\n seeAll: {\n title: 'See all integrations',\n url: '/integrations/'\n },\n menuItems: [\n // featured\n {\n name: INTEGRATIONS.FEATURED_INTEGRATIONS,\n title: 'INTEGRATIONS',\n subTitle: 'FEATURED INTEGRATIONS',\n seeMore: {\n title: 'See more',\n url: '/integrations/'\n },\n subLinks: featuredIntegrationsLinks\n },\n // crm\n {\n name: INTEGRATIONS.CRM,\n title: 'CRM',\n subTitle: 'CRM',\n seeMore: {\n title: 'See more',\n url: '/integrations/category/crm'\n },\n subLinks: crmLinks\n },\n // storage\n {\n name: INTEGRATIONS.STORAGE,\n title: 'Storage',\n subTitle: 'STORAGE',\n seeMore: {\n title: 'See more',\n url: '/integrations/category/file-sharing-and-storage'\n },\n subLinks: storageLinks\n },\n // payment\n {\n name: INTEGRATIONS.PAYMENT,\n title: 'Payment',\n subTitle: 'PAYMENT',\n seeMore: {\n title: 'See more',\n url: '/integrations/category/payment-processing'\n },\n subLinks: paymentLinks\n },\n // email\n {\n name: INTEGRATIONS.EMAIL,\n title: 'Email',\n subTitle: 'EMAIL',\n seeMore: {\n title: 'See more',\n url: '/integrations/category/emailing'\n },\n subLinks: emailLinks\n }\n ]\n};\n\nexport const integrationsNavItem = {\n name: 'integrations',\n menuProps: integrationsMenu,\n linkProps: {\n renderAs: 'button',\n title: 'Integrations',\n menuType: MENU_TYPES.INTEGRATIONS\n }\n};\n","/* eslint-disable max-len */\n\nimport { TEXTS } from './texts';\nimport { MENU_TYPES } from './menuTypes';\n\nconst productsMenu = {\n name: 'products',\n menuTitle: 'PRODUCTS',\n sideMenuTitle: 'FEATURES',\n sideMenuSeeMoreTitle: TEXTS.SEE_MORE_FEATURES,\n sideMenuSeeMoreUrl: '/features/',\n menuItems: [\n {\n name: 'formBuilder',\n title: 'Form Builder',\n urlGuest: '/',\n url: '/build',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/products/form-builder.svg'\n },\n {\n name: 'jotformEnterprise',\n title: 'Jotform Enterprise',\n url: '/enterprise/',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/products/enterprise.svg'\n },\n {\n name: 'jotformApps',\n title: 'Jotform Apps',\n url: '/products/apps/',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/products/apps.svg'\n },\n {\n name: 'storeBuilder',\n title: 'Store Builder',\n url: '/products/store-builder/',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/products/store-builder.svg?v=1.0'\n },\n {\n name: 'jotformTables',\n title: 'Jotform Tables',\n url: '/products/tables/',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/products/tables.svg'\n },\n {\n name: 'jotformInbox',\n title: 'Jotform Inbox',\n url: '/features/inbox/',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/products/inbox.svg'\n },\n {\n name: 'jotformMobileApp',\n title: 'Jotform Mobile App',\n url: '/products/mobile-forms/',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/products/mobile-app.svg'\n },\n {\n name: 'reportBuilder',\n title: 'Report Builder',\n url: '/products/report-builder/',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/products/report-builder.svg'\n },\n {\n name: 'smartPDFforms',\n title: 'Smart PDF Forms',\n url: '/products/smart-pdf-forms/',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/products/smart-pdf-forms.svg'\n },\n {\n name: 'pdfEditor',\n title: 'PDF Editor',\n url: '/products/pdf-editor/',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/products/pdf-editor.svg'\n },\n {\n name: 'jotformSign',\n title: 'Jotform Sign',\n url: '/products/sign/',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/products/sign.svg'\n },\n {\n name: 'jotformSalesforce',\n title: 'Jotform for Salesforce',\n url: 'https://link.jotform.com/pQYiDWJG55?utm_source=jotform.com&utm_campaign=salesforce2023&utm_medium=header&utm_content=cta_salesforce&campaign=header&adgroup=jotform.com&creative=cta_salesforce',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/products/salesforce.svg'\n },\n {\n name: 'jotformWorkflows',\n title: 'Jotform Workflows',\n url: '/products/workflows/',\n icon: 'https://cdn01.jotfor.ms/assets/img/jfHeader/v2/products/approvals.svg',\n badge: {\n text: 'NEW'\n }\n }\n ],\n sideMenuItems: [\n {\n name: 'jotformTeams',\n title: 'Jotform Teams',\n url: '/teams/'\n },\n {\n name: 'enterpriseMobile',\n title: 'Enterprise Mobile',\n url: '/enterprise/mobile-app/',\n badge: {\n text: 'NEW'\n }\n },\n {\n name: 'prefillForms',\n title: 'Prefill Forms',\n url: '/prefill-forms/whats-new/'\n },\n {\n name: 'hipaaForms',\n title: 'HIPAA Forms',\n url: '/hipaa/'\n },\n {\n name: 'secureForms',\n title: 'Secure Forms',\n url: '/security/'\n },\n {\n name: 'assignForm',\n title: 'Assign Forms',\n url: '/features/assign-forms/'\n },\n {\n name: 'onlinePayments',\n title: 'Online Payments',\n url: '/online-payments/'\n },\n {\n name: 'widgets',\n title: 'Widgets',\n url: '/widgets/'\n }\n ]\n};\n\nexport const productsNavItem = {\n name: 'products',\n menuProps: productsMenu,\n linkProps: {\n renderAs: 'button',\n title: 'Products',\n menuType: MENU_TYPES.PRODUCTS\n }\n};\n","import { MENU_TYPES } from './menuTypes';\n\nconst supportMenu = {\n name: 'support',\n menuTitle: 'GET HELP',\n columnCount: 1,\n menuItems: [\n {\n name: 'contactSupport',\n title: 'Contact Support',\n url: '/contact/'\n },\n {\n name: 'mySupportRequests',\n title: 'My Support Requests',\n url: '/answers/asked/',\n loginRequired: true\n },\n {\n name: 'helpCenter',\n title: 'Help Center',\n url: '/answers/'\n },\n {\n name: 'faq',\n title: 'FAQ',\n url: '/faq/'\n }\n ],\n sideMenuTitle: 'LEARN',\n sideMenuItems: [\n {\n name: 'userGuide',\n title: 'User Guide',\n url: '/help/'\n },\n {\n name: 'jotformBooks',\n title: 'Jotform Books',\n url: '/books/'\n },\n {\n name: 'blog',\n title: 'Blog',\n url: '/blog/'\n },\n {\n name: 'videos',\n title: 'Videos',\n url: 'https://www.youtube.com/user/TheJotform'\n }, {\n name: 'academy',\n title: 'Jotform Academy',\n url: '/academy/'\n }\n ]\n};\n\nexport const supportNavItem = {\n name: 'support',\n menuProps: supportMenu,\n linkProps: {\n renderAs: 'button',\n title: 'Support',\n menuType: MENU_TYPES.SUPPORT\n }\n};\n","import { myFormsNavItem } from './myFromsNavItem';\nimport { templatesNavItem } from './templatesNavItem';\nimport { integrationsNavItem } from './integrationsNavItem';\nimport { productsNavItem } from './productsNavItem';\nimport { supportNavItem } from './supportNavItem';\nimport { enterpriseNavItem } from './enterpriseNavItem';\nimport { pricingsNavItem } from './pricingsNavItem';\n\nimport { signNavItem } from './signNavItem';\nimport { pdfEditorNavItem } from './pdfEditorNavItem';\n\nexport { MENU_TYPES } from './menuTypes';\n\nexport const DEFAULT_NAV_ITEMS = [\n myFormsNavItem,\n templatesNavItem,\n integrationsNavItem,\n productsNavItem,\n supportNavItem,\n enterpriseNavItem,\n pricingsNavItem\n];\n\nexport const PDF_TEMPLATES_SUBCATEGORY_NAV_ITEMS = [\n signNavItem,\n pdfEditorNavItem\n];\n","import { TEXTS } from './texts';\n\nexport const myFormsNavItem = {\n name: 'myForms',\n linkProps: {\n url: '/myforms/',\n title: TEXTS.MY_FORMS\n }\n};\n","import { TEXTS } from './texts';\n\nexport const enterpriseNavItem = {\n name: 'enterprise',\n linkProps: {\n url: '/enterprise/?utm_medium=referral&utm_source=jotform.com&utm_content=Jotform_Enterprise_Header&utm_campaign=enterprise_common_header',\n title: TEXTS.ENTERPRISE\n }\n};\n","import { TEXTS } from './texts';\n\nexport const pricingsNavItem = {\n name: 'pricing',\n linkProps: {\n url: '/pricing/',\n title: TEXTS.PRICING,\n isPricingLink: true\n }\n};\n","import React from 'react';\nimport { string } from 'prop-types';\nimport { t } from '@jotforminc/translation';\n\nconst NavItemBadge = ({ text }) => {\n return (\n \n {t(text)}\n \n );\n};\n\nNavItemBadge.propTypes = {\n text: string.isRequired\n};\n\nexport default NavItemBadge;\n","import React from 'react';\nimport cx from 'classnames';\nimport { array, bool } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { IconChevronRight } from '@jotforminc/svg-icons';\nimport NavItemBadge from '../Navigation/NavItemBadge';\n\nconst SignMenuType = ({ menuItems, isOpen }) => {\n const SignMenuTypeClasses = cx('jfRHeader--nav-sub-menu jfSign', {\n isOpen\n });\n\n return (\n <>\n {menuItems.length > 0 && (\n \n )}\n \n );\n};\n\nSignMenuType.propTypes = {\n menuItems: array.isRequired,\n isOpen: bool.isRequired\n};\n\nexport default SignMenuType;\n","import React, { useEffect } from 'react';\nimport { handleCustomNavigation } from '@jotforminc/utils';\nimport { func } from 'prop-types';\nimport { t, translationRenderer } from '@jotforminc/translation';\nimport {\n ASSET_IDENTIFIER, ALL_TEXTS, CTA_URLS, SDR_SOURCES,\n GA_SUFFIXES, createGaAttributes, saveCustomerAsHubspotFormByUsername, setEPActions\n} from '@jotforminc/ep-utils';\nimport '../../../styles/dedicatedSupportSection.scss';\n\nconst DedicatedSupportSection = ({ logAbTestAction }) => {\n const { PRODUCT: { DEDICATED_SUPPORT_SECTION: target } } = ASSET_IDENTIFIER;\n const {\n DEDICATED_SUPPORT_SECTION: { CONTACT_SALES_URL }\n } = CTA_URLS;\n\n const gaAttributes = createGaAttributes(target);\n const gaAttributesCs = createGaAttributes(target, GA_SUFFIXES.CONTACT_SALES);\n\n useEffect(() => {\n setEPActions({ asset: target, target, action: 'seen' });\n }, [logAbTestAction]);\n\n const handleContactSalesClick = async e => {\n e.preventDefault();\n\n try {\n await setEPActions({ asset: target, target: 'contactSalesButton', action: 'click' });\n await saveCustomerAsHubspotFormByUsername({ lastProductAssetInteraction: SDR_SOURCES.SUPPORT_MENU });\n } catch (error) {\n console.log('Something went wrong with setting ep actions or saving to hubspot.');\n } finally {\n handleCustomNavigation(CONTACT_SALES_URL, '_self', true);\n }\n };\n\n return (\n \n
\n \n {translationRenderer('[1[Dedicated]] Support')({\n renderer1: text => {text}\n })}\n \n
\n
\n

{t(ALL_TEXTS.DEDICATED_SUPPORT_SECTION_DESCRIPTION)}

\n \n {t(ALL_TEXTS.CONTACT_SALES)}\n \n
\n \n );\n};\n\nDedicatedSupportSection.propTypes = {\n logAbTestAction: func\n};\n\nDedicatedSupportSection.defaultProps = {\n logAbTestAction: f => f\n};\n\nexport default DedicatedSupportSection;\n","import React from 'react';\nimport { IconArrowRight } from '@jotforminc/svg-icons';\nimport { t } from '@jotforminc/translation';\nimport '../../../styles/professionalServicesBanner.scss';\n\nconst ProfessionalServicesBanner = () => {\n return (\n \n {t('Professional Services')}\n
\n {t('Explore')}\n \n
\n \n );\n};\n\nexport default ProfessionalServicesBanner;\n","import React from 'react';\nimport cx from 'classnames';\nimport {\n array, bool, number, string\n} from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { DedicatedSupportSection, ProfessionalServicesBanner } from '@jotforminc/enterprise-promotions';\nimport NavItemBadge from '../Navigation/NavItemBadge';\n\nconst SupportMenuType = ({\n menuItems, sideMenuItems, isLoggedIn, menuTitle,\n sideMenuTitle, isOpen, unreadSupportAnswerCount, isEnterprise, isAcademyAppsCourseReleased\n}) => {\n const SupportMenuTypeClasses = cx('jfRHeader--nav-sub-menu jfSupport', {\n isOpen\n });\n const filteredMenuItems = menuItems.filter(({ loginRequired }) => (loginRequired ? isLoggedIn : true));\n\n const shouldShowSupportAnswersCount = ({ name, count }) => name === 'mySupportRequests' && count > 0 && !isEnterprise;\n\n return (\n \n );\n};\n\nSupportMenuType.defaultProps = {\n isAcademyAppsCourseReleased: ''\n};\n\nSupportMenuType.propTypes = {\n menuItems: array.isRequired,\n sideMenuItems: array.isRequired,\n isLoggedIn: bool.isRequired,\n menuTitle: string.isRequired,\n sideMenuTitle: string.isRequired,\n isOpen: bool.isRequired,\n unreadSupportAnswerCount: number.isRequired,\n isEnterprise: bool.isRequired,\n isAcademyAppsCourseReleased: string\n};\n\nexport default SupportMenuType;\n","import React from 'react';\nimport cx from 'classnames';\nimport { array, bool, string } from 'prop-types';\nimport { t } from '@jotforminc/translation';\n\nimport { isSamePath } from '../../utils';\nimport NavItemBadge from '../Navigation/NavItemBadge';\n\nconst DefaultMenuType = ({\n menuItems,\n isOpen,\n currentPath\n}) => {\n const defaultMenuTypeClasses = cx('jfRHeader--nav-sub-menu jfSubMenu', {\n isOpen: isOpen\n });\n\n return (\n <>\n {menuItems.length > 0 && (\n \n )}\n \n );\n};\n\nDefaultMenuType.propTypes = {\n menuItems: array.isRequired,\n isOpen: bool.isRequired,\n currentPath: string.isRequired\n};\n\nexport default DefaultMenuType;\n","import React from 'react';\nimport cx from 'classnames';\nimport { t } from '@jotforminc/translation';\nimport { array, bool, string } from 'prop-types';\nimport { IconChevronRight } from '@jotforminc/svg-icons';\nimport NavItemBadge from '../Navigation/NavItemBadge';\n\nconst ProductsMenuType = ({\n menuItems, sideMenuItems, menuTitle, sideMenuTitle, sideMenuSeeMoreTitle, sideMenuSeeMoreUrl, isOpen, isLoggedIn\n}) => {\n const ProductsMenuTypeClasses = cx('jfRHeader--nav-sub-menu jfProducts', {\n isOpen\n });\n return (\n \n );\n};\n\nProductsMenuType.propTypes = {\n menuItems: array.isRequired,\n sideMenuItems: array.isRequired,\n menuTitle: string.isRequired,\n sideMenuTitle: string.isRequired,\n sideMenuSeeMoreTitle: string.isRequired,\n sideMenuSeeMoreUrl: string.isRequired,\n isOpen: bool.isRequired,\n isLoggedIn: bool.isRequired\n};\n\nexport default ProductsMenuType;\n","import React from 'react';\nimport cx from 'classnames';\nimport { array, bool } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { splitArray } from '../../utils';\nimport NavItemBadge from '../Navigation/NavItemBadge';\n\nconst PdfEditorMenuType = ({ menuItems, isOpen }) => {\n const PdfEditorMenuTypeClasses = cx('jfRHeader--nav-sub-menu jfPDFEditor', {\n isOpen\n });\n\n return (\n <>\n {menuItems.length > 0 && (\n \n )}\n \n );\n};\n\nPdfEditorMenuType.propTypes = {\n menuItems: array.isRequired,\n isOpen: bool.isRequired\n};\n\nexport default PdfEditorMenuType;\n","/* eslint-disable max-len */\nimport React from 'react';\nimport cx from 'classnames';\nimport { array, bool, string } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport NavItemBadge from '../Navigation/NavItemBadge';\n\nconst TemplatesMenuType = ({\n menuItems,\n isOpen,\n menuTitle,\n showAiAgentBanner\n}) => {\n const TemplatesMenuTypeClasses = cx('jfRHeader--nav-sub-menu jfTemplates', {\n isOpen\n });\n\n return (\n <>\n {menuItems.length > 0 && (\n
    \n
  • {t(menuTitle)}
  • \n {menuItems.map(({\n name, title, url, icon, badge\n }) => (\n
  • \n \n {icon && {t(title)}}\n {t(title)}\n {badge && }\n \n
  • \n ))}\n {showAiAgentBanner && (\n
  • \n \n \n {t('Meet your AI Agents')}\n {t('Discover Now')}\n \n
  • \n )}\n
\n )}\n \n );\n};\n\nTemplatesMenuType.propTypes = {\n menuItems: array.isRequired,\n isOpen: bool.isRequired,\n menuTitle: string.isRequired,\n showAiAgentBanner: bool.isRequired\n};\n\nexport default TemplatesMenuType;\n","/* eslint-disable array-callback-return */\nimport React from 'react';\nimport { array, bool } from 'prop-types';\nimport cx from 'classnames';\nimport { t } from '@jotforminc/translation';\nimport { IconChevronRight } from '@jotforminc/svg-icons';\nimport { TEXTS } from '../../constants';\nimport NavItemBadge from '../Navigation/NavItemBadge';\n\nconst IntegrationsMenuType = ({ menuItems, isOpen }) => {\n const IntegrationsMenuTypeClasses = cx('jfRHeader--nav-sub-menu jfIntegrations', {\n isOpen\n });\n\n return (\n <>\n {menuItems.length > 0 && (\n
\n \n
\n )}\n\n \n );\n};\n\nIntegrationsMenuType.propTypes = {\n menuItems: array.isRequired,\n isOpen: bool.isRequired\n};\n\nexport default IntegrationsMenuType;\n","import React from 'react';\nimport {\n bool, string, func, oneOf, node\n} from 'prop-types';\nimport { MENU_TYPES } from '@jotforminc/constants';\nimport { a11yClickHandler } from '../../utils';\nimport { RENDER_AS_TYPES } from '../../constants';\nimport ArrowIcon from '../../assets/svg/arrow.svg';\n\nconst NavLink = ({\n url,\n target,\n renderAs,\n classNames,\n menuType,\n showRedDot,\n children,\n onClick\n}) => (\n a11yClickHandler(event, onClick)}\n {...(menuType && { 'aria-haspopup': 'listbox', role: 'button' })}\n {...(renderAs === RENDER_AS_TYPES.LINK && { href: url, target: target })}\n >\n {children}\n {showRedDot && }\n {menuType && }\n \n);\n\nNavLink.propTypes = {\n children: node.isRequired,\n url: string.isRequired,\n target: string.isRequired,\n title: string.isRequired,\n classNames: string.isRequired,\n menuType: oneOf([...Object.values(MENU_TYPES)]),\n renderAs: oneOf([...Object.values(RENDER_AS_TYPES)]),\n onClick: func.isRequired,\n showRedDot: bool.isRequired\n};\n\nNavLink.defaultProps = {\n renderAs: RENDER_AS_TYPES.LINK\n};\n\nexport default NavLink;\n","import React from 'react';\nimport cx from 'classnames';\nimport {\n bool, string, func, number\n} from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { MENU_TYPES } from '@jotforminc/constants';\nimport { GrowthAssetManager } from '@jotforminc/growth-asset-manager';\n\nimport SignMenuType from '../MenuTypes/SignMenuType';\nimport SupportMenuType from '../MenuTypes/SupportMenuType';\nimport DefaultMenuType from '../MenuTypes/DefaultMenuType';\nimport ProductsMenuType from '../MenuTypes/ProductsMenuType';\nimport PdfEditorMenuType from '../MenuTypes/PdfEditorMenuType';\nimport TemplatesMenuType from '../MenuTypes/TemplatesMenuType';\nimport IntegrationsMenuType from '../MenuTypes/IntegrationsMenuType';\n\nimport NavLink from './NavLink';\nimport { isSamePath } from '../../utils';\nimport NavItemBadge from './NavItemBadge';\nimport { linkPropType, menuPropType, userPropType } from '../../propTypes';\n\nconst menuTypes = {\n submenu: DefaultMenuType,\n templates: TemplatesMenuType,\n integrations: IntegrationsMenuType,\n products: ProductsMenuType,\n support: SupportMenuType,\n sign: SignMenuType,\n pdfEditor: PdfEditorMenuType\n};\n\nconst NavItem = ({\n user,\n isPricing,\n isLoggedIn,\n openedMenu,\n currentPath,\n isEnterprise,\n setOpenedMenu,\n logHeaderAction,\n showAiAgentBanner,\n isMobileMenuActive,\n unreadSupportAnswerCount,\n linkProps,\n menuProps,\n onMobileMenuClose,\n hasAnyItemMatchingWithCurrentPath,\n isAcademyAppsCourseReleased\n}) => {\n const {\n title, url, className, target, menuType, renderAs, icon, badge, selected\n } = linkProps;\n\n const MenuComponent = menuTypes[menuType];\n\n const showRedDot = isLoggedIn && unreadSupportAnswerCount > 0 && menuType === MENU_TYPES.SUPPORT && !isEnterprise;\n const isOpen = openedMenu === title;\n\n const defaultClassname = 'jfRHeader--nav-menu-item';\n const combinedClassname = cx(defaultClassname, {\n hasSubMenu: menuType,\n isBadge: !!badge,\n isPricing\n });\n const linkClassname = cx({\n isOpen,\n isCurrent: isSamePath(url, currentPath, selected, hasAnyItemMatchingWithCurrentPath),\n [className]: className\n });\n\n const handleClick = () => {\n setTimeout(() => logHeaderAction({ action: 'headerMenu-click', target: title, project: 'jfHeaderCTA' }), 0);\n setOpenedMenu(prev => (prev === title ? '' : title));\n\n if (url) {\n try {\n const targetUrl = new URL(url);\n // handle anchor links\n if (isMobileMenuActive && !!targetUrl.hash && currentPath === targetUrl.pathname) {\n onMobileMenuClose();\n setTimeout(() => {\n // eslint-disable-next-line @jotforminc/no-location-href-assignment\n window.location.href = targetUrl.hash;\n }, 10);\n }\n } catch (error) {\n console.error('click-link-error', error);\n }\n }\n };\n\n const handleMenuClose = () => {\n if (!isMobileMenuActive) {\n setOpenedMenu('');\n }\n };\n\n const getUrlWithUtms = () => {\n if (isPricing && user?.campaign?.utm_campaign && user.campaign.utm_campaign !== 'NONE') {\n const utmCampaign = user.campaign.utm_campaign;\n const utmSource = `${user.campaign.utm_campaign}-pricing-nav`;\n const utmMedium = 'website';\n const utmContent = currentPath !== '/' ? currentPath.replace(/\\//g, '') : 'homepage';\n return `${url}?utm_source=${utmSource}&utm_medium=${utmMedium}&utm_content=${utmContent}&utm_campaign=${utmCampaign}`;\n }\n return url;\n };\n\n return (\n \n \n {isPricing && }\n {icon && {title}}\n {t(title)}\n {badge && }\n \n {menuType && (\n \n )}\n \n );\n};\n\nNavItem.propTypes = {\n user: userPropType,\n isPricing: bool,\n isLoggedIn: bool,\n openedMenu: string.isRequired,\n currentPath: string.isRequired,\n isEnterprise: bool.isRequired,\n setOpenedMenu: func.isRequired,\n logHeaderAction: func,\n showAiAgentBanner: bool.isRequired,\n isMobileMenuActive: bool,\n unreadSupportAnswerCount: number,\n linkProps: linkPropType.isRequired,\n menuProps: menuPropType,\n onMobileMenuClose: func.isRequired,\n hasAnyItemMatchingWithCurrentPath: bool.isRequired,\n isAcademyAppsCourseReleased: string\n};\n\nNavItem.defaultProps = {\n user: undefined,\n isPricing: false,\n isLoggedIn: undefined,\n logHeaderAction: f => f,\n isMobileMenuActive: false,\n unreadSupportAnswerCount: 0,\n isAcademyAppsCourseReleased: ''\n};\n\nexport default NavItem;\n","import React, { useEffect, useState } from 'react';\nimport {\n bool, func, number, string\n} from 'prop-types';\nimport { DEFAULT_NAV_ITEMS } from '@jotforminc/constants';\n\nimport NavItem from './NavItem';\nimport { navItemsPropType, userPropType } from '../../propTypes';\nimport { CONTACT_SALES_AB_TEST_VARIATIONS } from '../../constants';\nimport { ensureTrailingSlash, isSamePath } from '../../utils';\n\nconst NavItems = ({\n user,\n navItems,\n logHeaderAction,\n currentPath,\n isLoggedIn,\n isMobileMenuActive,\n unreadSupportAnswerCount,\n showAiAgentBanner,\n contactSalesAbTestVariation,\n onMobileMenuClose,\n isEnterprise,\n isAcademyAppsCourseReleased\n}) => {\n const [openedMenu, setOpenedMenu] = useState('');\n const { CONTACT_SALES_AS_ITEM, NO_INTEGRATIONS_MENU } = CONTACT_SALES_AB_TEST_VARIATIONS;\n\n const selectNavItems = () => {\n if (navItems === false) return [];\n if (typeof navItems === 'undefined' || navItems?.length === 0) return DEFAULT_NAV_ITEMS;\n return navItems;\n };\n\n let items = [...selectNavItems()];\n\n // A/B Test: contactSalesButtonOnHeader\n if ([CONTACT_SALES_AS_ITEM, NO_INTEGRATIONS_MENU].includes(contactSalesAbTestVariation)) {\n items = items.filter(item => item.name !== 'integrations');\n }\n const activePageMenuItem = items.find(({ menuProps }) => menuProps?.menuItems.some(({ url: itemUrl }) => isSamePath(itemUrl, currentPath)));\n\n useEffect(() => {\n if (activePageMenuItem?.linkProps?.title && isMobileMenuActive) {\n setOpenedMenu(activePageMenuItem.linkProps.title);\n }\n }, [isMobileMenuActive, activePageMenuItem]);\n\n const hasAnyItemMatchingWithCurrentPath = items.some(({ linkProps: { url = '' } } = {}) => {\n return ensureTrailingSlash(url) === ensureTrailingSlash(currentPath);\n });\n\n return (\n <>\n {items.map(({ name, linkProps, menuProps }) => (\n \n ))}\n \n );\n};\n\nNavItems.propTypes = {\n user: userPropType,\n navItems: navItemsPropType,\n logHeaderAction: func,\n currentPath: string.isRequired,\n isLoggedIn: bool,\n isMobileMenuActive: bool,\n unreadSupportAnswerCount: number,\n showAiAgentBanner: bool.isRequired,\n contactSalesAbTestVariation: string.isRequired,\n isEnterprise: bool.isRequired,\n onMobileMenuClose: func.isRequired,\n isAcademyAppsCourseReleased: string\n};\n\nNavItems.defaultProps = {\n user: undefined,\n navItems: DEFAULT_NAV_ITEMS,\n logHeaderAction: () => {},\n isLoggedIn: undefined,\n isMobileMenuActive: false,\n unreadSupportAnswerCount: 0,\n isAcademyAppsCourseReleased: ''\n};\n\nexport default NavItems;\n","import React from 'react';\nimport { func } from 'prop-types';\n\nimport { t } from '@jotforminc/translation';\n\nconst SignupButtonMobile = ({ onClick }) => (\n \n {t('Sign Up')}\n \n);\n\nSignupButtonMobile.propTypes = {\n onClick: func\n};\n\nSignupButtonMobile.defaultProps = {\n onClick: f => f\n};\n\nexport default SignupButtonMobile;\n","import React from 'react';\nimport { oneOf } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { BADGE_TYPES, TEXTS } from '../../constants';\nimport HipaaSvg from '../../assets/svg/hipaa.svg';\nimport GovernmentSvg from '../../assets/svg/government.svg';\n\nconst LogoBadge = ({ type }) => {\n return (\n
\n {type === BADGE_TYPES.GOVERNMENT ? : }\n \n {type === BADGE_TYPES.GOVERNMENT ? t(TEXTS.GOVERNMENT) : t(TEXTS.HIPAA_COMPLIANCE)}\n \n
\n );\n};\n\nLogoBadge.propTypes = {\n type: oneOf([...Object.values(BADGE_TYPES)]).isRequired\n};\n\nexport default LogoBadge;\n","import React from 'react';\nimport { bool, string } from 'prop-types';\nimport cx from 'classnames';\nimport { t } from '@jotforminc/translation';\n\nimport { logoSideLinkDefaultProps, logoSideLinkPropType, userPropType } from '../../propTypes';\nimport LogoBadge from './LogoBadge';\nimport { BADGE_TYPES } from '../../constants';\n\nconst SideLink = ({\n user,\n logoSideLinkProps,\n currentPath,\n isEnterprise\n}) => {\n const {\n sideLinkText, dividerColor, sideLinkUrl, sideLinkClassName,\n sideLinkTextColor, sideLinkLogoAsHtmlString\n } = logoSideLinkProps;\n\n const linkClasses = cx('locale jfRHeader--logo-text', sideLinkClassName);\n const sideLinkClasses = cx('jfRHeader--logo-custom', sideLinkClassName);\n\n const { isGovernment: showGovernmentBadge, isHIPAA } = user || {};\n const showHipaaBadge = isHIPAA === '1';\n\n const isBadgeAvailable = () => {\n const pathname = currentPath?.replace(/\\/platform\\/(.*?)\\//, '/')?.replace(/\\/$/, '');\n const isOnPage = ['/pricing', '/myaccount', '/myforms', '/mytables', '/myreports', '/myapprovals', '/myapps', '/mysigndocuments', '/f/headerapp'].some(page => pathname?.includes(page));\n return isOnPage && !sideLinkText && !sideLinkLogoAsHtmlString;\n };\n\n const getBadgeType = () => {\n if (isEnterprise && showGovernmentBadge) {\n return BADGE_TYPES.GOVERNMENT;\n }\n if (showHipaaBadge) {\n return BADGE_TYPES.HIPAA;\n }\n return false;\n };\n\n return (\n <>\n {sideLinkText && (\n <>\n
\n \n {t(sideLinkText)}\n \n \n )}\n {sideLinkLogoAsHtmlString && (\n <>\n
\n \n \n )}\n\n {(isBadgeAvailable() && getBadgeType()) && (\n \n )}\n \n );\n};\n\nSideLink.propTypes = {\n user: userPropType,\n logoSideLinkProps: logoSideLinkPropType,\n currentPath: string.isRequired,\n isEnterprise: bool.isRequired\n};\n\nSideLink.defaultProps = {\n logoSideLinkProps: logoSideLinkDefaultProps\n};\n\nexport default SideLink;\n","import React from 'react';\nimport { bool, string } from 'prop-types';\nimport { isDarkTheme, isGrayTheme, isLightTheme } from '../../utils';\nimport { logoDefaultProps, logoPropType, themePropType } from '../../propTypes';\n\n// jotform logos\nimport LogoJotformDark from '../../assets/svg/logoJotformDark.svg';\nimport LogoJotformLight from '../../assets/svg/logoJotformLight.svg';\nimport LogoJotformFullLight from '../../assets/svg/logoJotformFullLight.svg';\n\n// korean jotform logos\nimport LogoJotformKoreanDark from '../../assets/svg/logoJotformKoreanDark.svg';\nimport LogoJotformKoreanLight from '../../assets/svg/logoJotformKoreanLight.svg';\nimport LogoJotformKoreanFullLight from '../../assets/svg/logoJotformKoreanFullLight.svg';\n\nconst LogoVisual = ({\n theme,\n isKorean,\n className,\n logoProps: { logoFullLight },\n isMobileMenuActive\n}) => {\n const selectLogo = () => {\n if (isMobileMenuActive) {\n return isKorean ? LogoJotformKoreanDark : LogoJotformDark;\n }\n\n if (logoFullLight) {\n return isKorean ? LogoJotformKoreanFullLight : LogoJotformFullLight;\n }\n\n if (isDarkTheme(theme)) {\n return isKorean ? LogoJotformKoreanLight : LogoJotformLight;\n }\n\n if (isLightTheme(theme) || isGrayTheme(theme)) {\n return isKorean ? LogoJotformKoreanDark : LogoJotformDark;\n }\n\n return null;\n };\n\n const SelectedLogo = selectLogo();\n\n return ;\n};\n\nLogoVisual.propTypes = {\n theme: themePropType.isRequired,\n className: string,\n isKorean: bool,\n logoProps: logoPropType,\n isMobileMenuActive: bool\n};\n\nLogoVisual.defaultProps = {\n className: '',\n isKorean: false,\n logoProps: logoDefaultProps,\n isMobileMenuActive: false\n};\n\nexport default LogoVisual;\n","import React from 'react';\nimport cx from 'classnames';\nimport { bool, func, string } from 'prop-types';\nimport { handleCustomNavigation } from '@jotforminc/utils';\n\nimport LogoVisual from './LogoVisual';\nimport { logoDefaultProps, logoPropType, themePropType } from '../../propTypes';\nimport { THEME_MAP } from '../../constants';\n\nconst Logo = ({\n theme,\n isSticky,\n language,\n logHeaderAction,\n isMobileMenuActive,\n isEnterprise,\n logoProps: {\n logoUrl,\n logoFullLight,\n customLogoAsReactElement,\n customLogoAsReactElementOnMobileMenuOpen,\n customLogoAsHtmlString,\n customLogoAsHtmlStringOnMobileMenuOpen,\n enterpriseLogoSrc\n }\n}) => {\n const isCustomLogo = customLogoAsReactElement || customLogoAsHtmlString;\n const isKorean = language === 'ko-KR';\n const logoSvgClasses = cx({ isSticky });\n const url = logoUrl || '/';\n\n const selectedCustomLogoAsReactElement = isMobileMenuActive && customLogoAsReactElementOnMobileMenuOpen ? customLogoAsReactElementOnMobileMenuOpen : customLogoAsReactElement;\n const selectedCustomLogoAsHtmlString = isMobileMenuActive && customLogoAsHtmlStringOnMobileMenuOpen ? customLogoAsHtmlStringOnMobileMenuOpen : customLogoAsHtmlString;\n\n const handleClick = e => {\n e.preventDefault();\n\n if (isEnterprise) {\n logHeaderAction({ action: 'click', target: 'topLeftMainLogo' });\n }\n\n handleCustomNavigation(url, '_self', true);\n };\n\n if (!isCustomLogo || (isCustomLogo && isKorean)) {\n return (\n \n {!isEnterprise && (\n \n )}\n {isEnterprise && enterpriseLogoSrc && company logo}\n \n );\n }\n\n return (\n <>\n {selectedCustomLogoAsReactElement && (\n \n {selectedCustomLogoAsReactElement}\n \n )}\n {selectedCustomLogoAsHtmlString && (\n \n )}\n \n );\n};\n\nLogo.propTypes = {\n theme: themePropType.isRequired,\n isSticky: bool,\n language: string,\n logoProps: logoPropType,\n logHeaderAction: func,\n isMobileMenuActive: bool,\n isEnterprise: bool.isRequired\n};\n\nLogo.defaultProps = {\n isSticky: false,\n language: undefined,\n logoProps: logoDefaultProps,\n logHeaderAction: f => f,\n isMobileMenuActive: false\n};\n\nexport default Logo;\n\n// make sure you test your changings on these Pages\n// https://www.jotform.com/myforms/\n// https://www.jotform.com/form-templates/\n// https://www.jotform.com/blog/\n// https://www.jotform.com/terms/\n// https://www.jotform.com/return-to-office-guidelines/\n// https://www.jotform.com/data-filtering/\n// https://www.jotform.com/photography/\n// https://www.jotform.com/enterprise/\n// https://www.jotform.com/online-payments/\n// https://www.jotform.com/2checkout/\n// https://www.jotform.com/products/sign/\n// https://www.jotform.com/blog/announcing-jotform-group-approvals/\n// https://www.jotform.com/wufoo-alternative/\n","/* eslint-disable complexity */\nimport React from 'react';\nimport {\n bool, string, func\n} from 'prop-types';\nimport SideLink from './SideLink';\nimport Logo from './Logo';\nimport {\n logoPropType, logoDefaultProps, logoSideLinkPropType,\n logoSideLinkDefaultProps, themePropType, userPropType\n} from '../../propTypes';\n\nconst LogoGroup = ({\n user,\n theme,\n isSticky,\n language,\n logoProps,\n logoSideLinkProps,\n isMobileMenuActive,\n logHeaderAction,\n isEnterprise,\n currentPath\n}) => {\n return (\n <>\n \n \n \n );\n};\n\nLogoGroup.propTypes = {\n isMobileMenuActive: bool,\n isSticky: bool,\n user: userPropType,\n theme: themePropType.isRequired,\n language: string,\n logoProps: logoPropType,\n logoSideLinkProps: logoSideLinkPropType,\n logHeaderAction: func,\n isEnterprise: bool.isRequired,\n currentPath: string.isRequired\n};\n\nLogoGroup.defaultProps = {\n isMobileMenuActive: false,\n isSticky: false,\n language: undefined,\n logoProps: logoDefaultProps,\n logoSideLinkProps: logoSideLinkDefaultProps,\n logHeaderAction: f => f\n};\n\nexport default LogoGroup;\n\n// make sure you test your changings on these pages\n// https://www.jotform.com/myforms/\n// https://www.jotform.com/form-templates/\n// https://www.jotform.com/blog/\n// https://www.jotform.com/terms/\n// https://www.jotform.com/return-to-office-guidelines/\n// https://www.jotform.com/data-filtering/\n// https://www.jotform.com/photography/\n// https://www.jotform.com/enterprise/\n// https://www.jotform.com/online-payments/\n// https://www.jotform.com/2checkout/\n// https://www.jotform.com/products/sign/\n// https://www.jotform.com/blog/announcing-jotform-group-approvals/\n// https://www.jotform.com/wufoo-alternative/\n","import styled from 'styled-components';\n\nexport const ScHeaderWrapper = styled.div`\n --jf-header-bg: ${props => props.menuStyles.headerBackground || 'transparent'};\n --jf-header-bg-sticky: ${props => props.menuStyles.headerBackgroundSticky || 'rgba(255, 255, 255, 0.9)'};\n --jf-header-logo-text: ${props => props.menuStyles.logoTextColor || '#0a224c'};\n --jf-header-nav-menu: ${props => props.menuStyles.navMenuColor || '#0a1551'};\n --jf-header-nav-menu-active: ${props => props.menuStyles.navMenuActiveColor || '#0075E3'};\n --jf-header-nav-menu-hover: ${props => props.menuStyles.navMenuHoverColor || '#0075E3'};\n --jf-hamburger-menu: ${props => props.menuStyles.hamburgerMenuColor || '#343C6A'};\n --jf-app-picker-border: ${props => props.menuStyles.appPickerBorderColor || '#E3E5F5'};\n --jf-header-size: ${props => props.menuStyles.headerHeight || '64px'};\n --bg-blue-500: #0075e3;\n --bg-blue-600: #0066c3;\n @media screen and (max-width: 1024px) {\n --jf-header-size: 45px;\n }\n`;\n\nexport default ScHeaderWrapper;\n","import styled from 'styled-components';\n\nconst ScHeaderContainer = styled.div`\n width: 100%;\n margin: 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: var(--jf-header-size);\n padding: 0 12px;\n &:not(.isMobileMenuActive) {\n @media screen and (min-width: 480px) {\n max-width: 608px;\n padding: 0 16px;\n }\n @media screen and (min-width: 640px) {\n max-width: 736px;\n }\n @media screen and (min-width: 768px) {\n max-width: 984px;\n }\n @media screen and (min-width: 1024px) {\n max-width: 1200px;\n }\n @media screen and (min-width: 1280px) {\n max-width: 1296px;\n }\n }\n &.mobileScreen {\n position: relative;\n z-index: 1;\n }\n &.isMobileMenuActive {\n position: fixed;\n left: 0;\n top: 0;\n right: 0;\n width: 100%;\n background-color: #fff;\n .jfRHeader--mobile-nav-signup-btn {\n display: none;\n }\n }\n`;\n\nexport default ScHeaderContainer;\n","import styled from 'styled-components';\nimport ScHeaderContainer from './ScHeaderContainer';\n\nconst ScHeader = styled.div`\n pointer-events: none; // for ssr landings(handle broken submenu before hydration)\n position: ${props => props.menuStyles.headerPosition || 'relative'};\n font-family: Circular, -apple-system, BlinkMacSystemFont, \"Segoe UI\", roboto, oxygen-sans, ubuntu, cantarell, \"Helvetica Neue\", sans-serif;\n width: 100%;\n z-index: 100;\n background: var(--jf-header-bg);\n transition: background-color 0.2s ease;\n &.jfRHeader--dark-mode {\n --jf-header-bg: ${props => props.menuStyles.headerBackground || '#0a1551'};\n --jf-header-bg-sticky: ${props => props.menuStyles.headerBackgroundSticky || 'rgba(10, 21, 81, 0.9)'};\n --jf-header-logo-text: ${props => props.menuStyles.logoTextColor || '#fff'};\n --jf-header-nav-menu: ${props => props.menuStyles.navMenuColor || '#fff'};\n --jf-header-nav-menu-active: ${props => props.menuStyles.navMenuActiveColor || '#0075E3'};\n --jf-header-nav-menu-hover: ${props => props.menuStyles.navMenuHoverColor || '#0075E3'};\n --jf-hamburger-menu: ${props => props.menuStyles.hamburgerMenuColor || '#fff'};\n --jf-app-picker-border: ${props => props.menuStyles.appPickerBorderColor || '#252d5b'};\n --jf-header-size: ${props => props.menuStyles.headerHeight || '64px'};\n @media screen and (max-width: 1024px) {\n --jf-header-size: 45px;\n }\n ${ScHeaderContainer} {\n &.isMobileMenuActive {\n background: var(--jf-header-bg);\n }\n }\n @media screen and (max-width: 1024px) {\n --jf-header-nav-menu: #0a1551;\n }\n }\n &.jfRHeader--gray-mode {\n --jf-header-bg: ${props => props.menuStyles.headerBackground || '#F3F3FE'};\n --jf-header-bg-sticky: ${props => props.menuStyles.headerBackgroundSticky || 'rgba(244, 244, 244, 0.9)'};\n --jf-header-logo-text: ${props => props.menuStyles.logoTextColor || '#0a1551'};\n --jf-header-nav-menu: ${props => props.menuStyles.navMenuColor || '#0a1551'};\n --jf-header-nav-menu-active: ${props => props.menuStyles.navMenuActiveColor || '#0075E3'};\n --jf-header-nav-menu-hover: ${props => props.menuStyles.navMenuHoverColor || '#0075E3'};\n --jf-hamburger-menu: ${props => props.menuStyles.hamburgerMenuColor || '#333'};\n --jf-app-picker-border: ${props => props.menuStyles.appPickerBorderColor || '#e0e0e0'};\n --jf-header-size: ${props => props.menuStyles.headerHeight || '64px'};\n @media screen and (max-width: 1024px) {\n --jf-header-size: 45px;\n }\n ${ScHeaderContainer} {\n &.isMobileMenuActive {\n background: var(--jf-header-bg);\n }\n }\n @media screen and (max-width: 1024px) {\n --jf-header-nav-menu: #0a1551;\n }\n }\n &.isSticky {\n backdrop-filter: saturate(180%) blur(20px);\n background: var(--jf-header-bg-sticky) !important; // stylelint-disable-line\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 8000;\n }\n &.jfRHeader--full-width {\n ${ScHeaderContainer} {\n @media screen and (min-width: 480px) {\n max-width: 100%;\n }\n }\n }\n`;\n\nexport default ScHeader;\n","import styled from 'styled-components';\n\nconst ScLogoWrapper = styled.div`\n display: flex;\n align-items: center;\n @media screen and (max-width: 1024px) {\n width: 100%;\n }\n @media screen and (min-width: 1024px) {\n padding-inline-end: 16px;\n transform: translateY(-.09rem);\n }\n // Mobile Nav\n .jfRHeader--mobile-nav {\n margin-left: 0;\n display: none;\n &-signup-btn {\n padding: 0 8px;\n border-radius: 4px;\n font-weight: 700;\n letter-spacing: -0.5px;\n cursor: pointer;\n background-color: #17255b;\n color: #fff;\n margin-left: 4px;\n margin-right: 4px;\n text-align: center;\n line-height: 24px;\n font-size: 12px;\n outline: none;\n border: 0;\n white-space: nowrap;\n }\n @media screen and (max-width: 1024px) {\n display: flex;\n flex: 1;\n justify-content: flex-end;\n align-items: center;\n }\n }\n // Hamburger Menu\n .jfRHeader--hamburger {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--jf-hamburger-menu);\n border: 0;\n outline: none;\n padding: 0;\n margin-inline-end: -8px;\n svg {\n width: 16px;\n }\n &.isActive {\n svg {\n width: 24px;\n }\n }\n }\n .jfRHeader--logo-link {\n width: 120px;\n height: auto;\n display: flex;\n svg {\n max-width: 100%;\n max-height: 100%;\n height: 30px;\n width: auto;\n }\n img {\n max-width: 100%;\n height: auto;\n max-height: 30px;\n }\n @media screen and (min-width: 1280px) {\n width: 148px;\n height: auto;\n }\n &:focus {\n outline: thin dotted #d5daff;\n }\n }\n .jfRHeader--logo-divider {\n background-color: #d3d6ec;\n width: 1px;\n height: 24px;\n margin-left: 16px;\n margin-right: 16px;\n @media screen and (max-width: 1280px) {\n height: 18px;\n margin-left: 10px;\n margin-right: 10px;\n }\n }\n .jfRHeader--logo-text {\n font-size: 20px;\n font-weight: 500;\n color: var(--jf-header-logo-text);\n text-decoration: none;\n margin-inline-start: -2px;\n @media screen and (max-width: 1280px) {\n font-size: 16px;\n }\n @media screen and (max-width: 480px) {\n font-size: 12px;\n max-width: 100px;\n }\n }\n .jfRHeader--logo-custom {\n svg {\n width: auto;\n height: 20px;\n display: block;\n }\n @media screen and (max-width: 1024px) {\n svg {\n height: 16px;\n }\n }\n }\n .jfRHeader--badge {\n display: flex; \n align-items: center;\n &:before {\n content: \"\";\n background-color: #d3d6ec;\n width: 1px;\n height: 24px;\n margin-left: 16px;\n margin-right: 16px;\n @media screen and (max-width: 1024px) {\n height: 18px;\n margin-left: 10px;\n margin-right: 10px;\n }\n }\n &-logo {\n width: 26px;\n height: auto;\n color: var(--jf-header-logo-text);\n @media screen and (max-width: 1024px) {\n width: 20px;\n }\n }\n &-text {\n margin-left: 8px;\n width: 96px;\n font-size: 14px;\n line-height: 18px;\n font-weight: 700;\n color: var(--jf-header-logo-text);\n html[dir='rtl'] & {\n margin-left: 0;\n margin-right: 8px;\n }\n @media screen and (max-width: 1024px) {\n display: none;\n }\n }\n }\n`;\n\nexport default ScLogoWrapper;\n","import React from 'react';\nimport { string } from 'prop-types';\n\nimport { t } from '@jotforminc/translation';\n\n// A/B Test: contactSalesButtonOnHeader\nconst ContactSalesMobile = ({ contactSalesAbTestVariationURL }) => {\n return (\n \n {t('Contact Sales')}\n \n );\n};\n\nContactSalesMobile.propTypes = {\n contactSalesAbTestVariationURL: string.isRequired\n};\n\nexport default ContactSalesMobile;\n","/* eslint-disable max-len */\n/* eslint-disable no-nested-ternary */\n/* eslint-disable complexity */\nimport React, { Fragment, useEffect, useState } from 'react';\nimport { StyleSheetManager } from 'styled-components';\nimport cx from 'classnames';\nimport {\n string, bool, elementType, func, node\n} from 'prop-types';\nimport {\n logoDefaultProps, logoPropType, logoSideLinkDefaultProps,\n logoSideLinkPropType, navItemsPropType, themePropType, userPropType, menuStylesPropType\n} from '../../propTypes';\nimport { CONTACT_SALES_AB_TEST_VARIATIONS, THEME_CLASSNAME_MAP } from '../../constants';\nimport { isDarkTheme, isGrayTheme } from '../../utils';\nimport HamburgerButton from '../Navigation/HamburgerButton';\nimport Navigation from '../Navigation/Navigation';\nimport NavItems from '../Navigation/NavItems';\nimport SignupButtonMobile from '../Navigation/SignupButtonMobile';\nimport { LogoGroup } from '../LogoGroup';\nimport {\n ScHeaderWrapper, ScHeader, ScHeaderContainer, ScLogoWrapper\n} from '../Sc';\nimport ContactSalesMobile from '../Navigation/ContactSalesMobile';\n\nconst HeaderBody = ({\n AppPickerRenderer,\n LoginGroupRenderer,\n children,\n customNavItems,\n logoProps,\n logoSideLinkProps,\n disableLoginFlow,\n hideLoginButton,\n hideSignupButton,\n bgColor,\n fullWidth,\n isMobileScreen,\n isMobileMenuActive,\n isSticky,\n onMobileMenuButtonClick,\n onMobileSignupButtonClick,\n user,\n theme,\n logHeaderAction,\n currentPath,\n isLoggedIn,\n replaceAuthButtons,\n replaceAuthButtonsLocalized,\n language,\n menuStyles,\n isEnterprise,\n showAiAgentBanner,\n contactSalesAbTestVariation,\n contactSalesAbTestVariationURL,\n isAcademyAppsCourseReleased\n}) => {\n const [bgStyles, setBgStyles] = useState({});\n const outlineWrapper = cx('jfRHeader', {\n 'jfRHeader--dark-mode': (isDarkTheme(theme) && !isMobileScreen) || (isDarkTheme(theme) && isMobileScreen && !isMobileMenuActive),\n 'jfRHeader--gray-mode': (isGrayTheme(theme) && !isMobileScreen) || (isGrayTheme(theme) && isMobileScreen && !isMobileMenuActive),\n isSticky: isSticky && !isMobileMenuActive,\n 'jfRHeader--full-width': fullWidth,\n [THEME_CLASSNAME_MAP[theme]]: !!THEME_CLASSNAME_MAP[theme], // hasOwn would be better but im not sure if that works on ie11\n isMobileMenuActive\n });\n\n const { CONTACT_SALES_AS_CTA } = CONTACT_SALES_AB_TEST_VARIATIONS;\n\n const outlineClasses = cx('jfRHeader--container', {\n fullWidth,\n mobileScreen: isMobileScreen && isMobileMenuActive,\n isMobileMenuActive,\n isEnterprise\n });\n\n // TODO: It'll remove bgColor prop.\n useEffect(() => {\n if (!(menuStyles?.headerBackground || menuStyles?.headerBackgroundSticky)) {\n if (bgColor && isSticky) {\n setBgStyles({ '--jf-header-bg-sticky': bgColor });\n } else if (bgColor) {\n setBgStyles({ '--jf-header-bg': bgColor });\n }\n }\n }, [bgColor, isSticky, menuStyles]);\n\n const unreadSupportAnswerCount = parseInt(user?.unreadSupportAnswerCount || 0, 10);\n\n return (\n \n \n {children}\n \n \n \n {/* logo */}\n \n {/* app picker */}\n \n {/* mobile only */}\n
\n {(!disableLoginFlow && !hideSignupButton && !isLoggedIn && !replaceAuthButtons && contactSalesAbTestVariation !== CONTACT_SALES_AS_CTA) && (\n \n )}\n {/* A/B Test: contactSalesButtonOnHeader */}\n {(!disableLoginFlow && !hideSignupButton && !isLoggedIn && !replaceAuthButtons && contactSalesAbTestVariation === CONTACT_SALES_AS_CTA) && (\n \n )}\n {(customNavItems?.length > 0 || !disableLoginFlow) && (\n \n )}\n
\n
\n \n \n {(replaceAuthButtons && !disableLoginFlow) && (\n \n )}\n \n
\n \n
\n
\n );\n};\n\nHeaderBody.propTypes = {\n AppPickerRenderer: elementType,\n LoginGroupRenderer: elementType,\n logoProps: logoPropType,\n logoSideLinkProps: logoSideLinkPropType,\n customNavItems: navItemsPropType.isRequired,\n disableLoginFlow: bool,\n hideLoginButton: bool,\n hideSignupButton: bool,\n children: node,\n bgColor: string,\n fullWidth: bool,\n isMobileScreen: bool,\n isMobileMenuActive: bool,\n isSticky: bool,\n onMobileMenuButtonClick: func,\n onMobileSignupButtonClick: func,\n user: userPropType,\n theme: themePropType.isRequired,\n logHeaderAction: func,\n currentPath: string.isRequired,\n isLoggedIn: bool.isRequired,\n replaceAuthButtons: string,\n replaceAuthButtonsLocalized: string,\n language: string.isRequired,\n menuStyles: menuStylesPropType,\n isEnterprise: bool.isRequired,\n showAiAgentBanner: bool.isRequired,\n contactSalesAbTestVariation: string.isRequired,\n contactSalesAbTestVariationURL: string.isRequired,\n isAcademyAppsCourseReleased: string\n};\n\nHeaderBody.defaultProps = {\n user: undefined,\n AppPickerRenderer: Fragment,\n LoginGroupRenderer: undefined,\n logoProps: logoDefaultProps,\n logoSideLinkProps: logoSideLinkDefaultProps,\n disableLoginFlow: false,\n hideLoginButton: false,\n hideSignupButton: false,\n children: null,\n bgColor: '',\n fullWidth: false,\n isMobileScreen: false,\n isMobileMenuActive: false,\n isSticky: false,\n onMobileMenuButtonClick: () => {},\n onMobileSignupButtonClick: () => {},\n logHeaderAction: () => {},\n replaceAuthButtons: '',\n replaceAuthButtonsLocalized: '',\n menuStyles: {},\n isAcademyAppsCourseReleased: ''\n};\n\nexport default HeaderBody;\n","import { ABTestManager } from '@jotforminc/abtest-manager';\nimport { readCookie } from '../jotCookie';\n\nexport const initLanguageSwitcherTest = async (user, languageSwitcher, setLanguageSwitcherVisible) => {\n if (!languageSwitcher || !languageSwitcher.browserLanguage || !languageSwitcher.domainLanguage) return;\n\n const { pathname = '' } = global?.window?.location || {};\n if (!pathname.includes('/form-templates')) return;\n if (!document) return;\n\n const languagesSwitcherDiscarded = readCookie('LANGUAGE_SWITCHER:Flyin') === 'true';\n if (languagesSwitcherDiscarded) return;\n\n const languageList = Array.from(document.querySelectorAll('link'))\n .filter(link => link.getAttribute('hreflang') && link.getAttribute('hreflang') !== 'x-default')\n .map(lang => lang.getAttribute('hreflang'));\n\n const {\n browserLanguage, domainLanguage\n } = languageSwitcher;\n\n const isSwitchLanguageAvailable = languageList.find(lang => lang === browserLanguage.split('-')[0]);\n if (browserLanguage !== domainLanguage && isSwitchLanguageAvailable) {\n const abTestManager = new ABTestManager({\n user,\n isTestEnabled: true,\n testVariantCode: '28502',\n controlVariantCode: '28492',\n urlParam: 'languageSwitcherAB',\n testName: 'languageSwitcherFormTemplates'\n });\n try {\n const isTestVariantNewUser = await abTestManager.isTestVariant();\n if (isTestVariantNewUser) {\n const logAbTestActionLangSwitcher = abTestManager.registerABTestAction;\n global.window.logAbTestActionLangSwitcher = logAbTestActionLangSwitcher;\n setLanguageSwitcherVisible(true);\n }\n } catch (error) {\n //\n }\n }\n};\n","import React, { createContext } from 'react';\nimport { bool, node } from 'prop-types';\n\nexport const ModeContext = createContext();\n\nconst ModeProvider = ({ stickyMode, children }) => {\n return (\n \n {children}\n \n );\n};\n\nModeProvider.propTypes = {\n stickyMode: bool,\n children: node\n};\n\nModeProvider.defaultProps = {\n stickyMode: false,\n children: null\n};\n\nexport default ModeProvider;\n","import {\n ComponentPropsWithoutRef,\n PropsWithChildren\n} from 'react';\n\nimport { Icon } from '../../constants/common.types';\n\nimport {\n commonInputDefaults,\n DropdownGroupContextType,\n DropdownOptionType,\n FormControlContextType\n} from '../../contexts';\n\ntype DropdownOptionNativeProps = Omit & ComponentPropsWithoutRef<'button'>, 'size'>\ntype DropdownNativeProps = FormControlContextType & PropsWithChildren, 'onChange'>>;\ntype DropdownGroupNativeProps = Pick & PropsWithChildren>;\n\nexport type DropdownOptionProps = DropdownOptionType & DropdownOptionNativeProps\n\nexport type DropdownProps = {\n onChange?: ((options: string | string[] | number | number[]) => void)\n value?: string | string[] | number | number[],\n placeholderIcon?: Icon,\n searchable?: boolean | string,\n noResultFoundText?: string,\n multiple?: boolean\n expand?: boolean,\n ghost?: boolean,\n showCountOnly?: ((count: number) => string) | boolean\n} & DropdownNativeProps;\n\nexport type DropdownGroupProps = {\n icon?: Icon\n id: string,\n title: string\n} & DropdownGroupNativeProps & DropdownGroupContextType;\n\nexport const dropdownDefaultProps:Partial = commonInputDefaults;\n","import { cva } from 'class-variance-authority';\nimport { CVAType } from '../../types';\nimport { DropdownProps } from './dropdown.types';\nimport { primary } from '../../tokens/colors';\nimport { DropdownGroupContextType } from '../../contexts';\n\ntype DropdownOptionHelperTypes = {\n isSelected: boolean,\n isActive: boolean,\n as: 'title' | 'option'\n};\n\ntype DropdownOptionCVAType = CVAType & DropdownOptionHelperTypes & Pick>\ntype DropdownSizeCVAType = CVAType>\ntype DropdownThemeCVAType = CVAType>\n\nexport const dropdownOptionCVA = cva('flex items-center w-full', {\n variants: {\n size: {\n small: 'h-8',\n medium: 'h-10',\n large: 'h-12'\n },\n isSelected: {},\n disabled: {},\n isActive: {},\n theme: {},\n as: {\n title: 'font-bold'\n },\n indent: {}\n },\n compoundVariants: [\n {\n indent: false,\n size: 'small',\n className: 'px-2'\n },\n {\n indent: false,\n size: ['medium', 'large'],\n className: 'px-3'\n },\n {\n indent: true,\n as: 'option',\n size: 'small',\n className: 'pl-6 pr-2'\n },\n {\n indent: true,\n as: 'option',\n size: 'medium',\n className: 'pl-8 pr-3'\n },\n {\n indent: true,\n as: 'option',\n size: 'large',\n className: 'pl-10 pr-3'\n },\n {\n theme: 'light',\n as: 'option',\n className: 'color-navy-700'\n },\n {\n theme: 'dark',\n as: 'option',\n className: 'color-white'\n },\n {\n size: ['small', 'medium'],\n className: 'text-sm'\n },\n {\n size: 'large',\n className: 'text-md'\n },\n {\n disabled: true,\n className: 'opacity-40 cursor-not-allowed'\n },\n {\n disabled: false,\n isSelected: false,\n isActive: true,\n theme: 'light',\n className: 'bg-navy-25'\n },\n {\n disabled: false,\n isSelected: true,\n theme: 'light',\n className: 'bg-blue-100'\n },\n {\n disabled: false,\n isSelected: false,\n isActive: true,\n theme: 'dark',\n className: 'bg-gray-600'\n },\n {\n disabled: false,\n isSelected: true,\n theme: 'dark',\n className: 'bg-gray-700'\n },\n {\n as: 'title',\n theme: 'light',\n className: primary.text.medium.base\n },\n {\n as: 'title',\n theme: 'dark',\n className: 'color-gray-100'\n }\n ]\n});\n\nexport const dropdownOptionIconCVA = cva('shrink-0', {\n variants: {\n size: {\n small: 'w-4 h-4 mr-2',\n medium: 'w-5 h-5 mr-3',\n large: 'w-6 h-6 mr-3'\n }\n }\n});\n\nexport const dropdownListCVA = cva('radius flex flex-col', {\n variants: {\n theme: {\n light: 'bg-white shadow-md border border-navy-50',\n dark: 'bg-gray-500 shadow-dark-md'\n }\n }\n});\n\nexport const dropdownSearchInputCVA = cva('shrink-0 border-b', {\n variants: {\n theme: {\n light: 'border-b-navy-50',\n dark: 'border-b-gray-400'\n }\n }\n});\n\nexport const dropdownResultNotFoundCVA = cva('text-center',\n {\n variants: {\n size: {\n small: 'p-2 text-sm',\n medium: 'p-3 text-sm',\n large: 'p-3.5 text-md'\n },\n theme: {\n light: [primary.text.medium.base, primary.background.lightest.base],\n dark: 'color-white'\n }\n }\n }\n);\n","import { cva } from 'class-variance-authority';\nimport { CVAType } from '../../types/system.types';\nimport { TagProps } from './tag.types';\n\n// CVA Types\ntype TagCVAType = CVAType>;\ntype TagSizeCVAType = CVAType>\n\n// Classes\nexport const tagCVA = cva(\n 'magnet-tag inline-flex items-center color-navy-700 radius max-w-full overflow-hidden', {\n variants: {\n size: {\n small: 'h-5 text-xs px-1',\n medium: 'h-7 text-sm px-1.5',\n large: 'h-8 text-md px-2'\n },\n colorStyle: {\n blue: 'bg-blue-100',\n gray: 'bg-gray-50',\n green: 'bg-green-100',\n orange: 'bg-orange-100',\n purple: 'bg-purple-100',\n red: 'bg-red-100',\n yellow: 'bg-yellow-100'\n },\n disabled: {\n true: 'opacity-70',\n false: ''\n }\n }\n }\n);\n\nexport const tagTextCVA = cva('truncate', {\n variants: {\n size: {\n small: 'px-1',\n medium: 'px-1.5',\n large: 'px-2'\n }\n }\n});\n\nexport const tagIconCVA = cva('color-current shrink-0', {\n variants: {\n size: {\n small: 'w-3 h-3',\n medium: 'w-4 h-4',\n large: 'w-4 h-4'\n }\n }\n});\n","import { ComponentPropsWithoutRef } from 'react';\nimport { Icon, Size } from '../../constants/common.types';\n\nexport type TagProps = ComponentPropsWithoutRef<'span'> & {\n size?: Size,\n colorStyle?: 'orange' | 'red' | 'purple' | 'blue' | 'yellow' | 'green' | 'gray',\n icon?: Icon,\n disabled?: boolean\n}\n\nexport const tagDefaultProps:Partial = {\n colorStyle: 'orange',\n size: 'medium'\n};\n","import React from 'react';\nimport { cx } from 'class-variance-authority';\n\nimport '@jotforminc/jotform.css';\n\nimport { IconXmark } from '@jotforminc/svg-icons';\nimport { tagCVA, tagTextCVA, tagIconCVA } from './tag.cva';\nimport { TagProps, tagDefaultProps } from './tag.types';\n\nexport const Tag = (props: TagProps):JSX.Element => {\n const {\n className,\n children,\n colorStyle = tagDefaultProps.colorStyle,\n size = tagDefaultProps.size,\n icon: BadgeIcon,\n onClick,\n disabled,\n ...rest\n } = props;\n\n const hasChildren = !!children;\n const hasIcon = !!BadgeIcon;\n\n const tagClassName = cx(className, tagCVA({\n colorStyle,\n size,\n disabled: !!disabled\n }));\n\n const tagButtonClassName = cx('shrink-0 inline-flex items-center focus:outline radius-full', {\n 'cursor-not-allowed': !!disabled\n });\n\n return (\n \n {hasIcon && }\n {hasChildren && {children}}\n \n \n \n \n );\n};\n","import React, {\n ChangeEvent,\n KeyboardEvent,\n MouseEvent,\n ReactChild,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\n\nimport { cx } from 'class-variance-authority';\n\nimport {\n autoUpdate,\n flip,\n useFloating,\n useInteractions,\n useListNavigation,\n useClick,\n useDismiss,\n useRole,\n FloatingFocusManager,\n FloatingList,\n size as floatingSize,\n offset\n} from '@floating-ui/react';\n\nimport {\n IconAngleDown,\n IconLockFilled,\n IconMagnifyingGlass,\n IconXmarkSm\n} from '@jotforminc/svg-icons';\n\nimport {\n DropdownProps,\n dropdownDefaultProps\n} from './dropdown.types';\n\nimport { BaseInput, BaseInputAddon } from '../Input/BaseInput';\n\nimport {\n DropdownContext, DropdownOptionType, HandleGroupSelectParams, HandleSelectParams, useFormControl\n} from '../../contexts';\n\nimport { dropdownListCVA, dropdownResultNotFoundCVA, dropdownSearchInputCVA } from './dropdown.cva';\nimport { arraysEqualsCheck, flattenChildren } from '../../utils';\nimport { InputText } from '../Input';\nimport { Tag } from '../Tag';\n\nconst allowedKeys = ['ArrowDown', 'ArrowUp', 'Enter'];\n\nexport const Dropdown = (props: DropdownProps):JSX.Element => {\n const {\n colorStyle,\n disabled,\n readOnly,\n theme,\n size,\n required,\n placeholder = 'Select an option',\n noResultFoundText = 'No results found.',\n searchable,\n placeholderIcon,\n ghost,\n value: defaultValue,\n onChange,\n id,\n children,\n className,\n multiple = false,\n expand = false,\n showCountOnly,\n style,\n ...rest\n } = useFormControl(props);\n\n const [isOpen, setIsOpen] = useState(false);\n const [activeIndex, setActiveIndex] = useState(null);\n const [selectedIndex, setSelectedIndex] = useState(null);\n const [selectedOptionArray, setSelectedOptionArray] = useState(null);\n const [selectedOption, setSelectedOption] = useState();\n const [searchTerm, setSearchTerm] = useState('');\n const [resultNotFound, setResultNotFound] = useState(false);\n\n useEffect(() => {\n const defaultValueArr = ((typeof defaultValue === 'string' || typeof defaultValue === 'number') ? [defaultValue] : defaultValue) || [];\n let childrenArray:ReactChild[] = [];\n\n if (children) {\n childrenArray = flattenChildren({\n children,\n depth: 3,\n filter: 'DropdownOption',\n group: 'DropdownGroup'\n });\n\n if (!childrenArray) {\n return;\n }\n }\n\n if (!defaultValueArr) { return; }\n\n const defaultValueIndex = childrenArray.findIndex(child => (child as ReactElement)?.props?.value === defaultValueArr[0]);\n if (!multiple && defaultValueIndex >= 0) { setSelectedIndex(defaultValueIndex); }\n\n if (arraysEqualsCheck(defaultValueArr, selectedOptionArray?.map(o => o.value)) || arraysEqualsCheck(defaultValueArr, selectedOption ? [selectedOption?.value] : [])) {\n const updatedOptions = defaultValueArr?.map(defValue => {\n const child = childrenArray.find(component => (component as ReactElement)?.props?.value === defValue) as ReactElement;\n return child?.props;\n });\n\n setSelectedOption(updatedOptions[0]);\n setSelectedOptionArray(updatedOptions);\n } else {\n const defaultValues = childrenArray?.filter(component => (defaultValueArr?.includes((component as ReactElement)?.props?.value))).map(component => (component as ReactElement).props);\n setSelectedOptionArray(defaultValues);\n setSelectedOption(defaultValues[0]);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [children, defaultValue]);\n\n const { refs, floatingStyles, context } = useFloating({\n placement: 'bottom-start',\n open: isOpen,\n onOpenChange: setIsOpen,\n whileElementsMounted: autoUpdate,\n strategy: 'fixed',\n middleware: [\n flip(),\n offset(6),\n floatingSize({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n maxHeight: `${availableHeight - 16}px`,\n minWidth: `${rects.reference.width}px`,\n marginTop: 0\n });\n }\n })\n ]\n });\n\n const elementsRef = useRef>([]);\n const labelsRef = useRef>([]);\n const searchInputRef = useRef(null);\n\n const handleSelect = useCallback(({\n index, children: singleChildren, icon: singleIcon, value\n }: HandleSelectParams) => {\n setSelectedIndex(index);\n setIsOpen(false);\n if (index !== null) {\n setSelectedOption({ children: singleChildren, icon: singleIcon, value });\n if (onChange) onChange(value);\n }\n }, [onChange, setIsOpen]);\n\n const handleMultiSelect = useCallback(({\n checked, value, tagStyles, tagColorStyle, children: tagText, icon: OptionIcon\n }) => {\n const newSelectedOptionArray = checked ? [...selectedOptionArray || [], {\n value,\n tagStyles,\n tagColorStyle,\n children: tagText as string,\n icon: OptionIcon\n }] : (selectedOptionArray?.filter(option => option.value !== value) || []);\n\n setSelectedOptionArray(newSelectedOptionArray);\n if (onChange) onChange(newSelectedOptionArray.map(o => o.value));\n }, [onChange, selectedOptionArray]);\n\n const handleGroupSelect = useCallback(({\n checked, allOptions, childrenArray\n }: HandleGroupSelectParams) => {\n const group:DropdownOptionType[] = (checked ? allOptions?.filter(\n (obj: DropdownOptionType, index: number, self: DropdownOptionType[]) => index === self.findIndex((opt: DropdownOptionType) => (opt?.value === obj?.value))\n ) : selectedOptionArray?.filter(val => !childrenArray?.find((ch: DropdownOptionType) => ch?.value === val?.value))) || [];\n\n setSelectedOptionArray(group);\n if (onChange) onChange(group.map(g => g.value) as keyof typeof onChange);\n }, [onChange, selectedOptionArray]);\n\n const listNav = useListNavigation(context, {\n listRef: elementsRef,\n activeIndex,\n selectedIndex,\n onNavigate: setActiveIndex\n });\n\n const click = useClick(context);\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: 'listbox' });\n\n const {\n getReferenceProps,\n getFloatingProps,\n getItemProps\n } = useInteractions([listNav, click, dismiss, role]);\n\n const dropdownContext = useMemo(\n () => ({\n activeIndex,\n selectedIndex,\n getItemProps,\n handleSelect,\n size,\n theme,\n multiple,\n selectedOptionArray,\n setSelectedOptionArray,\n handleMultiSelect,\n handleGroupSelect\n }),\n [activeIndex, selectedIndex, getItemProps, handleSelect, size, theme, multiple, selectedOptionArray, setSelectedOptionArray, handleMultiSelect, handleGroupSelect]\n );\n\n const handleChange = (e: ChangeEvent | KeyboardEvent) => {\n if (allowedKeys.includes((e as KeyboardEvent).key)) {\n return;\n }\n\n const term = (e?.target as HTMLInputElement)?.value;\n e.stopPropagation();\n setSearchTerm(term);\n };\n\n const hideGroup = (e?: HTMLElement | null) => {\n if (!e) return;\n const group = e?.closest('.magnet-dropdown-group') as HTMLElement;\n\n if (group) {\n const hasNotDisabled = group.querySelector('[role=\"option\"]:not([disabled])');\n\n if (!hasNotDisabled) {\n group.style.setProperty('display', 'none');\n } else {\n group.style.removeProperty('display');\n }\n }\n };\n\n useEffect(() => {\n if (!isOpen) {\n setSearchTerm('');\n }\n\n elementsRef.current.forEach(element => {\n // search in checkbox labels or option texts\n const searchIn = multiple ? element?.closest('label') : element;\n if (!searchIn) return;\n if (!searchIn?.textContent?.toLowerCase().includes(searchTerm.toLowerCase())) {\n searchIn?.style.setProperty('display', 'none');\n element?.setAttribute('disabled', 'true');\n } else {\n searchIn?.style.removeProperty('display');\n element?.removeAttribute('disabled');\n }\n hideGroup(searchIn);\n });\n\n if (searchTerm.length > 0) {\n setResultNotFound(!elementsRef.current.find(element => !element?.hasAttribute('disabled') && !element?.hasAttribute('data-dropdown-group-checkbox')));\n } else {\n setResultNotFound(false);\n }\n }, [searchTerm, isOpen, multiple]);\n\n const clearSearch = () => {\n setSearchTerm('');\n if (searchInputRef.current) (searchInputRef.current as HTMLInputElement).focus();\n };\n\n const isDisabled = readOnly || disabled;\n const selectedOptionForMultiple = multiple && selectedOptionArray ? selectedOptionArray.length > 0 : false;\n const startIcon = selectedOption && !multiple ? selectedOption?.icon : placeholderIcon;\n\n const handleTagClick = (e: MouseEvent, option: DropdownOptionType) => {\n e.stopPropagation();\n if (selectedOptionArray) {\n const filteredOptionArray = selectedOptionArray?.filter(filteredOption => filteredOption.value !== option.value);\n if (onChange) onChange(filteredOptionArray.map(f => f.value) as keyof typeof onChange);\n setSelectedOptionArray(filteredOptionArray);\n }\n if (refs?.reference?.current) {\n (refs?.reference?.current as HTMLElement).focus();\n }\n };\n\n const countMarkup = () => {\n const countText = `${selectedOptionArray?.length} option${selectedOptionArray && selectedOptionArray.length > 1 ? 's' : ''} selected`;\n return (typeof showCountOnly === 'function' ? showCountOnly(selectedOptionArray?.length || 0) : countText);\n };\n\n const selectedOptionMarkup = ():ReactNode | undefined => {\n if (!multiple) {\n return selectedOption?.children;\n }\n if (multiple && selectedOptionForMultiple) {\n return !showCountOnly ? (\n \n {selectedOptionArray?.map(option => (\n handleTagClick(e, option)}\n style={option?.tagStyles}\n disabled={isDisabled}\n >\n {option?.children}\n \n ))}\n \n ) : countMarkup();\n }\n return undefined;\n };\n\n return (\n <>\n \n )}\n addonEnd={(\n \n )}\n {... !isDisabled ? getReferenceProps() : {}}\n {...rest}\n >\n {selectedOptionMarkup()}\n \n \n {isOpen && !isDisabled && (\n \n \n {!!searchable\n && (\n 0 ? {\n as: 'button',\n icon: IconXmarkSm,\n onClick: clearSearch\n } : undefined\n }\n value={searchTerm}\n theme={theme}\n onChange={handleChange}\n ref={searchInputRef}\n />\n )}\n
\n \n {children}\n \n
\n
{noResultFoundText}
\n
\n \n )}\n \n \n );\n};\n\nDropdown.defaultProps = dropdownDefaultProps;\n","import React, { ChangeEvent, MouseEvent } from 'react';\nimport { useListItem } from '@floating-ui/react';\nimport { cx } from 'class-variance-authority';\nimport { useDropdownContext, useDropdownGroupContext } from '../../contexts';\nimport { DropdownOptionProps } from './dropdown.types';\nimport { dropdownOptionCVA, dropdownOptionIconCVA } from './dropdown.cva';\nimport { Checkbox } from '../Checkbox';\n\nexport const DropdownOption = (props: DropdownOptionProps):JSX.Element => {\n const {\n value,\n children,\n icon: OptionIcon,\n disabled,\n tagStyles,\n tagColorStyle,\n onClick,\n onChange,\n className,\n id,\n ...rest\n } = props;\n\n const {\n activeIndex,\n selectedIndex,\n getItemProps,\n handleSelect,\n handleMultiSelect,\n size,\n theme,\n multiple,\n selectedOptionArray\n } = useDropdownContext();\n\n const {\n indent\n } = useDropdownGroupContext();\n\n const { ref, index } = useListItem({ label: value as string });\n const isActive = activeIndex === index;\n const isSelected = selectedIndex === index;\n const isChecked = !!selectedOptionArray?.find(option => option.value === value);\n\n const handleCheckboxChange = (e: ChangeEvent) => {\n const { checked, value: chValue } = e.target;\n\n handleMultiSelect({\n checked, value: chValue, tagStyles, tagColorStyle, children, icon: OptionIcon\n });\n\n if (onChange) onChange(e);\n };\n\n const handleClick = (e: MouseEvent) => {\n handleSelect({\n index, children, icon: OptionIcon, value\n });\n if (onClick) onClick(e);\n };\n\n const iconMargin = cx({\n 'mr-2': size === 'small',\n 'mr-3': size !== 'small'\n });\n\n const dropdownOptionClassName = cx(\n dropdownOptionCVA({\n size,\n isSelected: multiple ? isChecked : isSelected,\n isActive,\n theme,\n disabled: !!disabled,\n as: 'option',\n indent: !!indent\n }),\n className\n );\n\n if (multiple) {\n return (\n \n \n {children}\n \n );\n }\n\n return (\n \n {OptionIcon && }\n {children}\n \n );\n};\n\nDropdownOption.displayName = 'DropdownOption';\n","import React, { useEffect, useState } from 'react';\nimport { setCookie } from '@jotforminc/utils';\nimport { bool, string, func } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport {\n Button,\n Dropdown,\n DropdownOption\n} from '@jotforminc/magnet';\nimport {\n IconLocationPinFilled,\n IconXmark\n} from '@jotforminc/svg-icons';\n\nconst LanguageSwitcher = ({\n isSticky, languageSwitcher, setLanguageSwitcherVisible\n}) => {\n const target = 'LanguageSwitcher';\n const [visible, setVisible] = useState(true);\n const {\n browserLanguage, switchText, languageCodeURLPaths, languagesAvailable\n } = languageSwitcher;\n\n const languageList = Array.from(document.querySelectorAll('link'))\n .filter(link => link.getAttribute('hreflang') && link.getAttribute('hreflang') !== 'x-default')\n .map(lang => lang.getAttribute('hreflang'));\n\n const languages = languageList.map(langCode => {\n // eslint-disable-next-line no-param-reassign\n langCode = langCode === 'pt-br' ? 'pt' : langCode;\n let [longLangKey] = Object.entries(languageCodeURLPaths).find(path => path[1] === langCode);\n\n longLangKey = longLangKey === 'pt-BR' ? 'pt-PT' : longLangKey;\n const [langPrettyName] = Object.entries(languagesAvailable).find(lang => lang[1] === longLangKey);\n\n return { label: langPrettyName, value: longLangKey, order: Object.keys(languagesAvailable).findIndex(lang => lang === langPrettyName) };\n }).sort((a, b) => {\n if (a.order < b.order) return -1;\n if (a.order > b.order) return 1;\n return 0;\n });\n\n const [selectedLang] = useState(browserLanguage);\n const prettyBrowserLang = languages.find(lang => lang.value === selectedLang)?.label || '';\n\n const handleClose = () => {\n setCookie('LANGUAGE_SWITCHER:Flyin', 'true', 365);\n global.window.logAbTestActionLangSwitcher({ action: 'close', target });\n document.querySelector('body').classList.remove('jf-languageSwitcher');\n setLanguageSwitcherVisible(false);\n };\n\n useEffect(() => {\n global.window.logAbTestActionLangSwitcher({ action: 'seen', target });\n }, []);\n\n useEffect(() => {\n if (!isSticky) {\n document.querySelector('body').classList.add('jf-languageSwitcher--isSticky');\n setVisible(true);\n } else {\n document.querySelector('body').classList.remove('jf-languageSwitcher--isSticky');\n setVisible(false);\n }\n }, [isSticky]);\n\n useEffect(() => {\n if (visible) {\n document.querySelector('body').classList.add('jf-languageSwitcher');\n } else {\n document.querySelector('body').classList.remove('jf-languageSwitcher');\n }\n }, [visible]);\n\n if (!visible) {\n return null;\n }\n\n const splitedSwithText = switchText.split('{languageSwitcher}');\n return (\n \n
\n
\n \n \n {\n splitedSwithText.map((text, index) => {\n if (index === 1) {\n return (\n
\n {\n if (typeof global.window.changeLanguage === 'function') {\n const hreflang = languageList.find(lang => lang.includes(newLang.split('-')[0]));\n global.window.logAbTestActionLangSwitcher({ action: 'switch-lang', target: newLang });\n global.window.changeLanguage(newLang, hreflang);\n }\n }}\n >\n {\n languages.map(language => (\n \n {language.label}\n \n ))\n }\n \n ?\n
\n );\n }\n return text;\n })\n }\n
\n
\n {\n if (typeof global.window.changeLanguage === 'function') {\n const hreflang = languageList.find(lang => lang.includes(selectedLang.split('-')[0]));\n global.window.logAbTestActionLangSwitcher({ action: 'switch-lang', target: selectedLang });\n global.window.changeLanguage(selectedLang, hreflang);\n }\n }}\n >\n {t('Switch to {language}'.replace('{language}', prettyBrowserLang))}\n {t('Switch')}\n \n \n
\n \n );\n};\n\nLanguageSwitcher.propTypes = {\n isSticky: bool,\n languageSwitcher: string,\n setLanguageSwitcherVisible: func\n};\n\nLanguageSwitcher.defaultProps = {\n isSticky: false,\n languageSwitcher: { show: false },\n setLanguageSwitcherVisible: f => f\n};\n\nexport default LanguageSwitcher;\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgClose = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 30 30\",\n style: {\n enableBackground: \"new 0 0 30 30\",\n pointerEvents: \"none\"\n },\n xmlSpace: \"preserve\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#FFFFFF\"\n },\n d: \"M2.8,27.2c0.7,0.7,1.9,0.7,2.6,0c0,0,0,0,0,0l9.6-9.6l9.6,9.6c0.7,0.7,1.9,0.7,2.6,0c0.7-0.7,0.7-1.9,0-2.6l0,0L17.6,15l9.6-9.6c0.7-0.7,0.7-1.9,0-2.6c-0.7-0.7-1.9-0.7-2.6,0L15,12.4L5.4,2.8c-0.7-0.7-1.9-0.7-2.6,0s-0.7,1.9,0,2.6l9.6,9.6l-9.6,9.6C2.1,25.3,2.1,26.5,2.8,27.2z\"\n}));\nexport default SvgClose;","import React, { useContext, useEffect, useState } from 'react';\nimport { bool, func } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport cx from 'classnames';\nimport CloseSvg from '../assets/svg/notifications/close.svg';\nimport { JotformActionsContext } from './Providers/JotformActionsProvider';\nimport { isEnterprise } from '../utils';\n\nconst DeletedFormNotification = ({\n defaultVisible, onClose, isSticky\n}) => {\n const [isVisible, setIsVisible] = useState(defaultVisible);\n const [isAnimationVisible, setIsAnimationVisible] = useState(false);\n const { logHeaderAction } = useContext(JotformActionsContext);\n\n useEffect(() => {\n if (isVisible) {\n logHeaderAction?.({ action: 'seen', target: 'notification' });\n setIsVisible(true);\n setTimeout(() => {\n document.body.classList.add('jf-deleted-form-notification');\n setIsAnimationVisible(true);\n }, 500);\n }\n }, [isVisible]);\n\n const handleCloseClick = () => {\n logHeaderAction?.({ action: 'click', target: 'close-notification' });\n setIsAnimationVisible(false);\n document.body.classList.remove('jf-deleted-form-notification');\n setTimeout(() => {\n setIsVisible(false);\n }, 500);\n onClose();\n };\n\n const handleClick = () => {\n logHeaderAction?.({ action: 'click', target: 'click-on-notification' });\n if (isEnterprise()) {\n global.window.open('/myforms/?action=createWizard', '_blank').focus();\n return;\n }\n global.window.open('/signup/', '_blank').focus();\n };\n\n const deletedFormClass = cx('jfHeader--deleted-form-notification', {\n isSticky\n });\n\n const deletedFormInnerClass = cx('jfHeader--deleted-form-notification-inner', {\n isAnimationVisible\n });\n\n const deletedFormContentClass = cx('jfHeader--deleted-form-notification-content', {\n '': isAnimationVisible\n });\n\n if (!isVisible) return null;\n\n return (\n
\n
\n
\n

{t('Oops! The form you would like to see is deleted. What about creating your own?')}

\n \n {t('Create a New Form')}\n \n
\n \n \n \n
\n
\n );\n};\n\nDeletedFormNotification.propTypes = {\n defaultVisible: bool,\n onClose: func,\n isSticky: bool\n};\n\nDeletedFormNotification.defaultProps = {\n defaultVisible: false,\n onClose: f => f,\n isSticky: false\n};\n\nexport default DeletedFormNotification;\n","import React, {\n useContext, useEffect, useCallback, Suspense, lazy, useState, useMemo\n} from 'react';\nimport {\n string, bool, object\n} from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\nimport {\n HeaderBody, themePropType, stickyModeThemePropType, USER_TYPES, PreLoaders,\n logoPropType, logoSideLinkPropType, navItemsPropType, menuStylesPropType\n} from '@jotforminc/header-body';\nimport { getUrlParameter } from '@jotforminc/utils';\nimport { GrowthAssetManager } from '@jotforminc/growth-asset-manager';\nimport { initLanguageSwitcherTest } from '../utils/abTests/index';\nimport {\n runFooterCustomFunction,\n toggleDocumentOverflowProperty,\n attachObsoleteSignupLoadingFunctionToWindow,\n addBrowserClassNames,\n exceptionallyOverwriteUserDataForFormUser,\n isAiAgentBannerAvailable,\n showLoginFlowModal,\n yieldToMain,\n initLoginFlowTrioButtons,\n listenAppSignInOnFailure,\n initGoogleOneTap,\n getUserAccountType\n} from '../utils';\n\nimport {\n useStickyHeader, useEnterprisePromotions, useLazyIntegrationImages, useLazyLoginGroup\n} from '../hooks';\n\nimport { ModeContext } from './Providers/ModeProvider';\nimport { UserContext } from './Providers/UserProvider';\nimport { MobileMenuContext } from './Providers/MobileMenuProvider';\nimport { JotformActionsContext } from './Providers/JotformActionsProvider';\n\nimport LanguageSwitcher from './LanguageSwitcher';\nimport DeletedFormNotification from './DeletedFormNotification';\n\nimport '../styles/header.scss';\n\nconst AppPickerBox = lazy(() => import(/* webpackChunkName: \"AppPickerBoxComponent\" */ './AppPickerBox'));\nconst LoginGroup = lazy(() => import(/* webpackChunkName: \"LoginGroupComponent\" */ './LoginGroup/LoginGroup'));\n\nconst Header = ({\n fullWidth,\n logoProps,\n logoSideLinkProps,\n customNavItems,\n appPickerProps,\n disableLoginFlow,\n hideLoginButton,\n hideSignupButton,\n theme: themeProp,\n stickyModeTheme: stickyModeThemeProp,\n bgColor,\n hideAccountBox,\n replaceAuthButtons,\n replaceAuthButtonsLocalized,\n language,\n currentPath,\n menuStyles,\n isEnterprise,\n languageSwitcher,\n contactSalesAbTestVariation,\n contactSalesAbTestVariationURL,\n hostname,\n isAcademyAppsCourseReleased,\n ...props\n}) => {\n const [loadLoginGroup, lazyLoadEvent] = useLazyLoginGroup();\n const [isSticky, theme] = useStickyHeader(useContext(ModeContext), 0, themeProp, stickyModeThemeProp);\n const [languageSwitcherVisible, setLanguageSwitcherVisible] = useState(false);\n\n const { logHeaderAction } = useContext(JotformActionsContext);\n const { user, userType, isLoggedIn } = useContext(UserContext);\n const { isMobileMenuActive, isMobileScreen, onMobileMenuButtonClick } = useContext(MobileMenuContext);\n\n const disableAccountBox = hideAccountBox || !isLoggedIn;\n const { isAppPickerEnabled = false, appPickerItems = [] } = appPickerProps;\n\n // FIXME: this is a temporary fix for showing flying to enterprise env. It has to be managed by GAM backend according by asset type.\n const customCampaignInfo = !global?.window?.campaignInfo && isEnterprise\n ? {\n launch: {\n status: true,\n type: 'WORKFLOWS',\n assetsVersion: 'v1',\n assetsAvailable: true,\n assetYear: '2024',\n expires: []\n }\n }\n : undefined;\n\n attachObsoleteSignupLoadingFunctionToWindow();\n useEnterprisePromotions(user);\n useLazyIntegrationImages();\n useEffect(() => {\n addBrowserClassNames();\n }, []);\n\n useEffect(() => {\n toggleDocumentOverflowProperty(isMobileMenuActive);\n }, [isMobileMenuActive]);\n\n useEffect(() => {\n if (!user || !loadLoginGroup) return;\n initLoginFlowTrioButtons();\n listenAppSignInOnFailure();\n if (!disableLoginFlow) {\n initGoogleOneTap(lazyLoadEvent, user);\n }\n }, [user, loadLoginGroup, lazyLoadEvent, disableLoginFlow]);\n\n useEffect(() => {\n if (!user) return;\n runFooterCustomFunction(user);\n exceptionallyOverwriteUserDataForFormUser(user, userType === USER_TYPES.FORM_USER);\n initLanguageSwitcherTest(user, languageSwitcher, setLanguageSwitcherVisible);\n }, [user]);\n\n const AppPickerRenderer = useCallback(() => {\n if (isAppPickerEnabled && !isEmpty(user) && appPickerItems.length > 0) {\n return (\n \n \n \n );\n }\n return <>;\n }, [user]);\n\n const handleSignupButtonMobileClick = async () => {\n await yieldToMain();\n logHeaderAction?.({ action: 'click', target: 'header-signup' });\n showLoginFlowModal('s1');\n };\n\n const preLoaders = useMemo(() => {\n return (\n \n );\n }, [isLoggedIn, user]);\n\n const LoginGroupRenderer = useCallback(() => {\n if (disableLoginFlow || replaceAuthButtons) return <>;\n if (!loadLoginGroup) return preLoaders;\n return (\n \n \n \n );\n }, [loadLoginGroup, preLoaders]);\n\n const updateFavicon = dark => {\n const icon = `favicon-2021-${dark ? 'dark' : 'light'}.png`;\n const link = document.querySelector('[rel=\"shortcut icon\"]');\n if (link) link.href = `https://cdn.jotfor.ms/assets/img/favicons/${icon}`;\n };\n\n useEffect(() => {\n if (isEnterprise) return;\n const mediaQuery = global.window.matchMedia('(prefers-color-scheme: dark)');\n const handleChange = e => updateFavicon(e.matches);\n\n if (mediaQuery) {\n updateFavicon(mediaQuery.matches);\n mediaQuery.addListener(handleChange);\n }\n\n return () => mediaQuery.addListener(handleChange);\n }, []);\n\n const showDeletedFormNotificationVisible = getUrlParameter('utm_campaign') === 'form-deleted';\n\n return (\n \n <>\n {!showDeletedFormNotificationVisible && !isMobileMenuActive && (\n <>\n {languageSwitcherVisible ? (\n \n ) : (\n \n )}\n \n \n )}\n {!isMobileMenuActive && showDeletedFormNotificationVisible && (\n \n )}\n \n \n );\n};\n\nHeader.defaultProps = {\n isAcademyAppsCourseReleased: ''\n};\n\nHeader.propTypes = {\n logoProps: logoPropType.isRequired,\n logoSideLinkProps: logoSideLinkPropType.isRequired,\n customNavItems: navItemsPropType.isRequired,\n fullWidth: bool.isRequired,\n appPickerProps: object.isRequired,\n disableLoginFlow: bool.isRequired,\n hideLoginButton: bool.isRequired,\n hideSignupButton: bool.isRequired,\n theme: themePropType.isRequired,\n bgColor: string.isRequired,\n hideAccountBox: bool.isRequired,\n replaceAuthButtons: string.isRequired,\n replaceAuthButtonsLocalized: string.isRequired,\n language: string.isRequired,\n currentPath: string.isRequired,\n menuStyles: menuStylesPropType.isRequired,\n isEnterprise: bool.isRequired,\n languageSwitcher: object.isRequired,\n contactSalesAbTestVariation: string.isRequired,\n contactSalesAbTestVariationURL: string.isRequired,\n hostname: string.isRequired,\n stickyModeTheme: stickyModeThemePropType.isRequired,\n isAcademyAppsCourseReleased: string\n};\n\nexport default Header;\n","/* eslint-disable max-len */\nimport { Link } from 'react-router-dom';\nimport React, { useEffect, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {\n IconTriangleCircleFilled,\n IconXmark,\n IconChevronDown,\n IconBars\n} from '@jotforminc/svg-icons';\nimport classNames from 'classnames';\nimport { COURSE_SELECTORS, PLAYER_SELECTORS, UI_SELECTORS } from '../../store/selectors';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\nimport WatchIcon from '../../assets/timeline/watched.svg';\nimport HalfWatchIcon from '../../assets/timeline/half-watched.svg';\nimport CheckWatchIcon from '../../assets/timeline/check.svg';\nimport { urlParamsSaver } from '../../utils';\nimport { chapterConstants } from '../../constants';\n\nconst Sidebar = () => {\n const dispatch = useDispatch();\n\n const quizActive = useSelector(COURSE_SELECTORS.getQuizActive);\n const exitQuizModalVisible = useSelector(UI_SELECTORS.getExitQuizModalVisible);\n const toggleExitQuizModal = (courseID, payload) => dispatch(ACTION_CREATORS.toggleExitQuizModal(courseID, payload));\n\n const setActiveCourseSection = (course, courseURL) => {\n if (quizActive) {\n toggleExitQuizModal(true, { course, courseURL });\n return;\n }\n dispatch(ACTION_CREATORS.setActiveCourseSection(course));\n };\n const addRemoveExpandedCourseSections = (courseID, actionKey) => dispatch(ACTION_CREATORS.addRemoveExpandedCourseSections(courseID, actionKey));\n\n const [showSidebar, setShowSidebar] = useState(false);\n const chapters = useSelector(COURSE_SELECTORS.getChapters);\n\n const { slug: programSlug } = useSelector(COURSE_SELECTORS.getActiveCourse) || {};\n const nextSectionOpenerActive = useSelector(PLAYER_SELECTORS.getNextSectionOpenerActive);\n const { ended: videoEnded } = useSelector(PLAYER_SELECTORS.getPlayer);\n\n const activeCourseSection = useSelector(COURSE_SELECTORS.getActiveCourseSection);\n const expandedCourseSections = useSelector(UI_SELECTORS.getExpandedCourseSections);\n\n useEffect(() => {\n if (activeCourseSection && Object.keys(activeCourseSection).length > 0) {\n const { chapter_id: chapterID } = activeCourseSection;\n addRemoveExpandedCourseSections(chapterID);\n }\n }, [activeCourseSection]);\n\n const toggleSidebar = () => {\n setShowSidebar(!showSidebar);\n };\n useEffect(() => {\n if (showSidebar) {\n document.querySelector('html').style = 'overflow:hidden!important';\n } else {\n document.querySelector('html').style = 'overflow:visible!important';\n }\n }, [showSidebar]);\n const renderCourseContent = course => {\n const {\n title,\n id: courseID,\n sectionID,\n slug: sectionSlug,\n chapter_id: chapterID,\n properties: { type, duration },\n progress\n } = course;\n const relatedChapter = chapters.find(chapter => chapter?.id === chapterID);\n const { slug: courseSlug } = relatedChapter;\n const { complete = false, start = false } = progress || {};\n const { id: activeSectionID } = activeCourseSection;\n\n let SectionIcon = WatchIcon;\n if (complete) {\n SectionIcon = CheckWatchIcon;\n } else if (start) SectionIcon = HalfWatchIcon;\n\n return (\n setShowSidebar(false)}\n to={!quizActive ? urlParamsSaver(`/${programSlug}/${courseSlug}/${sectionSlug}`) : '#'}\n >\n setActiveCourseSection(course)}\n onClick={() => setActiveCourseSection(course, urlParamsSaver(`/${programSlug}/${courseSlug}/${sectionSlug}`))}\n className={classNames(\n { 'bg-navy-50': activeSectionID === courseID },\n 'flex gap-2 py-4 px-3 duration-300 hover:bg-navy-50 w-full radius mb-4'\n )}\n >\n
\n \n
\n
\n
\n {title}\n
\n {(type === 'section' && duration) && (\n
\n \n \n {duration.replaceAll('.', ':')}\n m\n \n
\n )}\n
\n
\n \n );\n };\n\n const renderSection = chapterContent => {\n const {\n sections, title, id, properties, course_id: courseID\n } = chapterContent;\n const { order: chapterOrder } = properties;\n const { sidebarColor = '' } = chapterConstants[courseID][chapterOrder];\n\n const stringToSecond = str => {\n const splitter = str.includes(':') ? ':' : '.';\n const [minute, second] = str.split(splitter);\n return parseInt(minute, 10) * 60 + parseInt(second, 10);\n };\n\n const calculateCourseDetails = () => {\n const sectionCourses = sections.filter(content => content?.properties?.type === 'section');\n const totalSeconds = sectionCourses.reduce((sum, contentObj) => {\n const { properties: { duration } } = contentObj;\n return sum + (duration ? stringToSecond(duration) : 0);\n }, 0);\n return {\n numberOfVideos: sectionCourses.length,\n totalMinutes: Math.round(totalSeconds / 60)\n };\n };\n\n const { numberOfVideos, totalMinutes } = calculateCourseDetails();\n\n const handleToggleCollapseChapter = () => {\n const action = expandedCourseSections.includes(id) ? 'remove' : 'add';\n addRemoveExpandedCourseSections(id, action);\n };\n\n return (\n <>\n \n
\n
\n

{title}

\n
{`${numberOfVideos} Videos | ${totalMinutes} minutes`}
\n
\n \n \n \n
\n \n {expandedCourseSections.includes(id) ? (\n sections.map(content => renderCourseContent(content))\n ) : ('')}\n\n \n );\n };\n\n const disableRedirection = (nextSectionOpenerActive && videoEnded) || exitQuizModalVisible;\n\n return (\n <>\n \n
\n {\n chapters.length === 0 ? (\n <>\n
\n
\n
\n
\n
\n
\n
\n \n ) : (\n chapters.filter(chapter => (chapter?.progress?.enroll || '').length > 0 && chapter?.sections.length > 0).map(chapterContent => {\n const { hidden = false, properties: { order } } = chapterContent;\n return (\n
\n {hidden &&
}\n {renderSection(chapterContent)}\n
\n );\n })\n )\n }\n
\n \n \n {showSidebar ? () : ()}\n\n \n \n \n );\n};\n\nexport default Sidebar;\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Link } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { COURSE_SELECTORS, UI_SELECTORS } from '../../store/selectors';\nimport { urlParamsSaver } from '../../utils';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\n\nconst Sidebar = () => {\n const dispatch = useDispatch();\n const quizActive = useSelector(COURSE_SELECTORS.getQuizActive);\n const exitQuizModalVisible = useSelector(UI_SELECTORS.getExitQuizModalVisible);\n const courses = useSelector(COURSE_SELECTORS.getCourses);\n const { slug: activeCourseSlug } = useSelector(COURSE_SELECTORS.getActiveCourse) || {};\n const toggleExitQuizModal = (courseID, payload) => dispatch(ACTION_CREATORS.toggleExitQuizModal(courseID, payload));\n const breadcrumbs = [\n { title: 'Home', to: '/' },\n { title: 'Courses', to: '/courses' }\n ];\n if (activeCourseSlug && courses.length > 0) {\n const activeCourse = courses.find(course => activeCourseSlug === course.slug);\n breadcrumbs.push({ title: activeCourse?.title, isActive: true, to: false });\n }\n const disableRedirection = exitQuizModalVisible;\n return (\n
\n \n {\n breadcrumbs.length < 3 ? (\n <>\n \n \n \n \n ) : (\n breadcrumbs.map((breadcrumb, index) => {\n const { isActive = false, title, to } = breadcrumb;\n return (\n {\n if (!quizActive) return;\n toggleExitQuizModal(true, { pageURL: urlParamsSaver(to) });\n }}\n key={title}\n className={classNames({\n 'pointer-events-none': !to,\n 'color-navy-700': !isActive,\n 'color-orange-500': isActive\n }, 'text-sm')}\n >\n {title}\n { breadcrumbs.length - 1 !== index && (' /') }\n \n );\n })\n )\n }\n
\n \n );\n};\n\nexport default Sidebar;\n","/* eslint-disable react/prop-types */\nimport { useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\n\nconst ScrollHandler = ({ history, stage }) => {\n useEffect(() => {\n const unlisten = history.listen(() => {\n const autoScrollDisabledStages = ['course', 'courses'];\n if (!autoScrollDisabledStages.includes(stage)) {\n window.scrollTo(0, 0);\n }\n });\n return () => {\n unlisten();\n };\n }, [stage]);\n return null;\n};\n\nexport default withRouter(ScrollHandler);\n","/* eslint-disable quotes */\n/* eslint-disable max-len */\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport classNames from 'classnames';\nimport {\n object, func, bool, string, arrayOf\n} from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport {\n IconTriangleCircleFilled, IconClockFilled, IconTrashFilled, IconCheckCircleFilled\n} from '@jotforminc/svg-icons';\n\nimport CoursesCardLogo from '../../assets/courses-cards/logo.svg';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\nimport {\n getNumberOfTotalVideos,\n calculateChapterDurations,\n remainingTimePrettifier,\n getActionButtonProperties,\n urlParamsSaver,\n handleGuestEnroll,\n tickAcademyAction\n} from '../../utils';\nimport { USER_SELECTORS } from '../../store/selectors';\nimport { removeCourseWishlist, addCourseWishlist, getUserWishlist } from '../../api';\nimport { chapterConstants, coverImages } from '../../constants';\n\nconst CourseCardItem = ({\n course: program = {}, setPreviewCourse = f => f, type = 'course', courses = [],\n isWishlistPage = false\n}) => {\n const { credentials: user } = useSelector(USER_SELECTORS.getUser);\n const username = useSelector(USER_SELECTORS.getUsername);\n const userWishList = useSelector(USER_SELECTORS.getUserWishList);\n\n const {\n id,\n slug,\n title,\n status,\n progress,\n description = '',\n course_id: courseID,\n properties,\n new: isNew,\n chapters\n } = program;\n const upcoming = status === 'DISABLED';\n\n const { order } = properties || {};\n\n const handleOpenCoursePreviewModal = () => {\n if (upcoming) return;\n tickAcademyAction({ actor: username, target: program?.slug, action: 'open-course-preview-modal' });\n setPreviewCourse(program);\n };\n\n const dispatch = useDispatch();\n const fetchCourseContent = (programSlugParam, courseSlugParam, sectionSlugParam) => dispatch(ACTION_CREATORS.fetchCourseContent(programSlugParam, courseSlugParam, sectionSlugParam));\n const setUserWishList = updatedList => dispatch(ACTION_CREATORS.setWishlist(updatedList));\n\n const handleAddOrRemoveWishList = addedToTheWishlist => {\n const handler = addedToTheWishlist ? removeCourseWishlist : addCourseWishlist;\n handler(id).then(() => {\n getUserWishlist().then(updatedWishList => {\n setUserWishList(updatedWishList);\n });\n });\n };\n\n const WishlistController = () => {\n if (upcoming && !isWishlistPage) {\n const addedToTheWishlist = userWishList.includes(id);\n const { account_type: accountType } = user || {};\n const { name = '' } = accountType || {};\n const isUserLoggedIn = name !== '' && name !== 'GUEST';\n return (\n {\n if (!isUserLoggedIn) {\n handleGuestEnroll();\n return;\n }\n tickAcademyAction({\n actor: username,\n target: program?.slug,\n action: `${!addedToTheWishlist ? 'add' : 'remove'}Wishlist`\n });\n handleAddOrRemoveWishList(addedToTheWishlist);\n }}\n className={classNames({\n group: addedToTheWishlist,\n 'bg-green-500 color-white group-hover:bg-green-600 group-hover:color-white': addedToTheWishlist,\n 'border border-green-500 color-green-500 group-hover:bg-green-500 group-hover:color-white': !addedToTheWishlist\n }, 'flex shrink-0 items-center justify-center whitespace-nowrap focus:outline-2 focus:outline-navy-100 focus:outline-opacity-30 radius py-4 px-12 text-md md:text-lg w-full text-center duration-300 font-medium h-14')}\n >\n \n {addedToTheWishlist && (\n \n )}\n {`Add${addedToTheWishlist ? 'ed' : ''} to wishlist`}\n\n \n Remove from wishlist\n \n );\n } if (isWishlistPage) {\n return null;\n }\n\n const {\n text, onClick, isLink = false, linkSrc\n } = getActionButtonProperties({\n slug,\n user,\n courses,\n upcoming,\n username,\n progress,\n courseID,\n chapterID: id,\n fetchCourseContent,\n handleOpenCoursePreviewModal,\n program\n }) || {};\n if (isLink) {\n return (\n \n \n {text}\n \n \n );\n }\n return (\n \n {text}\n \n );\n };\n if (type === 'skeleton') {\n return (\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n }\n const isWishlistCard = type !== \"chapter\";\n let whistlistBgColor = '';\n switch (program.slug) {\n case 'jotform-sign':\n whistlistBgColor = '#009906';\n break;\n case 'jotform-apps':\n whistlistBgColor = '#64278F';\n break;\n case 'jotform-tables':\n whistlistBgColor = '#095110';\n break;\n case 'jotform-foundations':\n whistlistBgColor = '#0A1551';\n break;\n case 'jotform-enterprise':\n whistlistBgColor = '#030514';\n break;\n default:\n }\n return (\n
\n {\n isNew && (\n
NEW
\n )\n }\n \n
\n
\n \n\n
\n
\n \n
\n {\n !isWishlistCard && (\n
{`Course ${order}`}
\n )\n }\n
{title}
\n
\n\n
\n \n
\n
\n\n {isWishlistPage && (\n \n \n \n )}\n
\n
\n {\n upcoming ? (\n
UPCOMING
\n ) : (\n <>\n
\n
\n \n {`${getNumberOfTotalVideos(program)} Videos`}\n
\n
\n \n {remainingTimePrettifier(calculateChapterDurations(program))}\n
\n
\n \n )\n }\n
\n {\n !upcoming && (\n

\n {chapters.length}\n {` `}\n {\n chapters.length === 1 ? 'Course' : 'Courses'\n }\n

\n )\n }\n
\n {title}\n
\n
\n
\n
\n
\n

\n {(description || '').substr(0, 100)}\n ...\n

\n
\n
\n \n
\n
\n
\n
\n );\n};\nexport default CourseCardItem;\n\nCourseCardItem.propTypes = {\n type: string,\n course: object,\n isWishlistPage: bool,\n setPreviewCourse: func,\n courses: arrayOf(object)\n};\n","/* eslint-disable max-len */\nimport React from 'react';\nimport { useDebouncedCallback } from 'use-debounce';\nimport { IconMagnifyingGlass } from '@jotforminc/svg-icons';\nimport { logSearchTerms } from '../../api';\n\n// eslint-disable-next-line react/prop-types\nconst Search = ({ searchKeyword, setSearchkeyword }) => {\n const debouncedRunner = useDebouncedCallback(action => action(), 500).callback;\n return (\n <>\n
\n {\n const { target: { value: searchValue = '' } } = event;\n if (searchValue.length >= 3) {\n debouncedRunner(() => logSearchTerms(searchValue));\n }\n setSearchkeyword(searchValue);\n }}\n className='searchbar-placeholder bg-white p-3 sm:p-4 radius w-full max-w-full md:max-w-md min-h-10 sm:min-h-14 bg-navy-50 '\n />\n \n
\n\n \n );\n};\nexport default Search;\n","/* eslint-disable max-len */\nimport React from 'react';\nimport { string, func } from 'prop-types';\nimport classNames from 'classnames';\nimport Search from '../Search';\nimport IconLeft from '../../assets/hero/left.svg';\nimport IconRight from '../../assets/hero/right.svg';\n\nconst Hero = ({\n title = '', description = '', searchKeyword = '', setSearchkeyword = null\n}) => {\n return (\n <>\n
\n
\n \n \n
\n
\n

{title}

\n \n {description}\n

\n {\n setSearchkeyword && \n }\n
\n \n \n
\n
\n \n \n );\n};\nexport default Hero;\n\nHero.propTypes = {\n title: string,\n description: string,\n searchKeyword: string,\n setSearchkeyword: func\n};\n","import React from 'react';\nimport { string, func } from 'prop-types';\nimport { CountdownCircleTimer } from 'react-countdown-circle-timer';\nimport Play from '../../assets/player/play.svg';\n\nconst Countdown = ({ className = '', setNextSectionCounterTime = f => f, handleCompleteNextCourseCounter = f => f }) => {\n return (\n <>\n \n setNextSectionCounterTime(remainingTime)}\n >\n {() => }\n \n
\n \n );\n};\n\nexport default Countdown;\n\nCountdown.propTypes = {\n className: string,\n setNextSectionCounterTime: func,\n handleCompleteNextCourseCounter: func\n};\n","import React from 'react';\nimport Styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nconst ContainerDiv = Styled.div`\n position: relative;\n z-index: 1;\n width: ${props => props.size};\n height: ${props => props.size};\n max-width: 100px;\n max-height: 180px;\n display: flex;\n justify-content: center;\n`;\nconst Container = ({ size = 'calc(10px + 5vw + 5vh)', children = null, className = '' }) => {\n return (\n \n {children}\n \n );\n};\n\nexport default Container;\n\nContainer.propTypes = {\n size: PropTypes.string,\n children: PropTypes.node,\n className: PropTypes.string\n};\n","/* eslint-disable react/prop-types */\nimport React from 'react';\nimport Styled from 'styled-components';\nimport Container from '../Container';\n\nexport const LoaderSvg = Styled.svg`\nwidth: 100%;\nheight: 100%;\n.circle {\n fill: none;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-width: 10px;\n stroke-dasharray: 140px;\n stroke-dashoffset: 139px;\n transform: rotate(180deg);\n}\n.c1 {\n animation-name: circleAnim1, color;\n animation-fill-mode: backwards;\n animation-duration: 1.5s, 6s;\n transform-origin: center;\n animation-direction: normal;\n animation-iteration-count: infinite;\n animation-timing-function: cubic-bezier(0.21, 0.09, 0.48, 0.65), ease-out;\n}\n\n@keyframes circleAnim1 {\n 0% { stroke-dashoffset: 139px; }\n 50% {\n stroke-dashoffset: 30px;\n transform: rotate(400deg);\n }\n 100% {\n stroke-dashoffset: 140px;\n transform: rotate(900deg);\n }\n}\n@keyframes color {\n 0% { stroke: #0099ff; }\n 24.9% { stroke: #0099ff; }\n 25% {\n stroke: #ff6100;\n }\n 49.9% {\n stroke: #ff6100;\n }\n 50% {\n stroke: #ffb629;\n }\n 74.9% {\n stroke: #ffb629;\n }\n 75% {\n stroke: #e4ebfc;\n }\n 100% { stroke: #e4ebfc; }\n}\n`;\n\nconst Loader = ({ size, className }) => {\n return (\n \n \n \n \n \n );\n};\n\nexport default Loader;\n","import React, { useEffect, useRef } from 'react';\nimport { bool, func, number } from 'prop-types';\nimport PlaybackRateIcon from '../../../assets/player/playbackRate.svg';\n\nconst PlaybackRateInput = ({\n playbackRate = 1.0, playbackRateDropdownOpen = false, handlePlaybackRateChange = f => f,\n handlePlaybackRateDropdownMenu = f => f, setPlaybackRateDropdownOpen = f => f\n}) => {\n const playbackrateInputRef = useRef();\n const handleClickOutside = event => {\n if (!playbackrateInputRef.current) return;\n\n const isInsideClick = playbackrateInputRef.current.contains(event.target);\n if (!isInsideClick) setPlaybackRateDropdownOpen(false);\n };\n\n useEffect(() => {\n window.addEventListener('click', handleClickOutside);\n return () => {\n window.removeEventListener('click', handleClickOutside);\n };\n }, [playbackrateInputRef]);\n\n const playbackRateOptions = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0];\n\n return (\n f}\n className=\"w-full\"\n ref={playbackrateInputRef}\n onClick={() => setPlaybackRateDropdownOpen(!playbackRateDropdownOpen)}\n >\n {playbackRateDropdownOpen && (\n
\n \n );\n })\n }\n \n
\n
\n )}\n \n \n \n
\n );\n};\n\nexport default PlaybackRateInput;\n\nPlaybackRateInput.propTypes = {\n playbackRate: number,\n handlePlaybackRateChange: func,\n playbackRateDropdownOpen: bool,\n setPlaybackRateDropdownOpen: func,\n handlePlaybackRateDropdownMenu: func\n};\n","/* eslint-disable complexity */\n/* eslint-disable no-nested-ternary */\n/* eslint-disable react/prop-types */\nimport React, { forwardRef, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport classNames from 'classnames';\nimport ReactPlayer from 'react-player';\nimport { CircleLoader } from '@jotforminc/apploaders';\n// import { func, string } from 'prop-types';\nimport { useDispatch } from 'react-redux';\nimport { Hooks } from '@jotforminc/uikit';\nimport { IconXmark } from '@jotforminc/svg-icons';\nimport { StorageHelper } from '@jotforminc/storage-helper';\nimport Pip from '../../assets/player/pip.svg';\nimport Mute from '../../assets/player/mute.svg';\nimport Play from '../../assets/player/play.svg';\nimport Pause from '../../assets/player/pause.svg';\nimport Volume from '../../assets/player/volume.svg';\nimport Subtitle from '../../assets/player/subtitle.svg';\nimport Fullscreen from '../../assets/player/fullscreen.svg';\n\nimport {\n convertStoMs, getLiveStreamURL, isHLSActive, isMobileDevice, IS_SAFARI\n} from '../../utils';\nimport PlaybackRateInput from '../VideoPlayerWrapper/PlaybackRateInput';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\n\nconst VideoPlayer = forwardRef((\n {\n played,\n loading,\n videoSrc,\n programID,\n sectionID,\n videoState,\n setPlaying,\n handleReady,\n videoPoster,\n handleEnded,\n subtitleFile,\n playedSeconds,\n onChangeVolume,\n handlePipMode,\n customVideoSrc,\n introSectionID,\n videoLocalState,\n handleClickMute,\n handleOnProgress,\n handleSeekChange,\n customVideoPoster,\n forCourseOverview,\n handleSeekMouseUp,\n handleSeekMouseDown,\n fullscreenModeToggle,\n handleMouseLeaveVideo,\n setFullscreenModeToggle,\n handleClickPlayPauseRestart,\n ...props\n },\n playerRef\n) => {\n const history = useHistory();\n const dispatch = useDispatch();\n const [videoLoading, setVideoLoading] = useState(true);\n const setVideoState = payload => dispatch(ACTION_CREATORS.setVideo(payload));\n const setCaptions = captionLanguage => dispatch(ACTION_CREATORS.setCaptions(captionLanguage));\n\n const {\n pip,\n playing,\n controls,\n light,\n volume,\n muted,\n duration,\n ended,\n loop,\n playbackRate,\n captions\n } = videoState;\n\n useEffect(() => {\n if (window.location.href.includes('autoStart=1')) {\n setVideoState({ playing: true, muted: true });\n history.push(window.location.pathname.replace('/academy', ''));\n }\n }, []);\n\n Hooks.useEffectIgnoreFirst(() => {\n if (playing) setVideoLoading(true);\n }, [videoSrc]);\n\n const handleSeekChangeHelper = event => {\n const { loadedSeconds } = videoLocalState;\n if (loadedSeconds < duration && !(isMobileDevice() || IS_SAFARI)) {\n setVideoLoading(true);\n }\n handleSeekChange(event);\n };\n\n if (loading) {\n return (\n <>\n
\n \n
\n
\n \n \n \n
\n \n );\n }\n const useHLS = isHLSActive();\n const trackID = sectionID || introSectionID;\n return (\n <>\n \n setPlaying(true)}\n className=\"react-player relative z-1\"\n onCanPlay={({ target }) => {\n if (useHLS && target) {\n setVideoState({ duration: target.duration });\n }\n setVideoLoading(false);\n }}\n onError={e => console.log('onError', e)}\n url={useHLS ? customVideoSrc || getLiveStreamURL(programID, sectionID) : videoSrc}\n onEnablePIP={() => setVideoState({ pip: true })}\n onDisablePIP={() => setVideoState({ pip: false })}\n />\n {\n videoLoading && (\n \n \n \n
\n
\n )\n }\n \n {\n !videoLoading && (\n \n {ended ? (\n \n ) : playing ? (\n \n ) : (\n \n )}\n \n )\n }\n
\n
\n
\n
\n
\n {convertStoMs(\n Math.round(\n playedSeconds !== undefined ? playedSeconds : 0\n )\n )}\n
\n
\n {convertStoMs(Math.round(duration))}\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {ended ? (\n \n ) : playing ? (\n \n ) : (\n \n )}\n \n
\n \n {muted || volume <= 0.01 ? (\n \n ) : (\n \n )}\n \n
\n \n
\n
\n
\n
\n
\n \n {subtitleFile && (\n {\n setCaptions(captions !== 'en' ? 'en' : false);\n StorageHelper.setLocalStorageItem({\n key: 'jf-academy-captions',\n value: captions !== 'en' ? 'en' : false\n });\n }}\n >\n \n \n )}\n
\n \n \n \n {\n setFullscreenModeToggle(!fullscreenModeToggle);\n if (!fullscreenModeToggle) setVideoState({ pip: false });\n }}\n className={classNames({\n 'opacity-40': !fullscreenModeToggle,\n 'opacity-100': fullscreenModeToggle\n }, 'hover:opacity-100')}\n >\n \n \n
\n
\n
\n
\n {\n fullscreenModeToggle && (\n setFullscreenModeToggle(false)}\n className='absolute top-5 right-5 color-white'\n >\n \n \n )\n }\n \n
\n \n );\n});\n\nexport default VideoPlayer;\n","/* eslint-disable complexity */\nimport { useHistory } from 'react-router-dom';\nimport { bool, string, number } from 'prop-types';\nimport classNames from 'classnames';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n IconCircleLgFilled,\n IconChevronLeft,\n IconChevronRight,\n IconArrowRotateRight\n} from '@jotforminc/svg-icons';\n\nimport { StorageHelper } from '@jotforminc/storage-helper';\n\nimport { ACTION_CREATORS } from '../../store/actionCreators';\nimport { PLAYER_SELECTORS, COURSE_SELECTORS } from '../../store/selectors';\nimport {\n handleToggleCaptions,\n urlParamsSaver,\n getVideoPoster,\n isNextPreviousEnabled,\n getVideoOutroDuration,\n isHLSActive\n} from '../../utils';\nimport Countdown from './countdown';\nimport NextVideoThumbnail from '../../assets/nextvideo-thumbnail.png';\nimport VideoPlayer from '../VideoPlayer';\nimport { sectionConstants } from '../../constants';\n\nconst initialVideoLocalState = {\n played: 0,\n loaded: 0,\n playedSeconds: 0\n};\n\nconst VideoPlayerWrapper = ({\n loading = false, forCourseOverview = false,\n customVideoSrc = null, customVideoPoster = null, overviewChapterOrder = null, isEnrolled = true\n}) => {\n const dispatch = useDispatch();\n const history = useHistory();\n const activeCourse = useSelector(COURSE_SELECTORS.getActiveCourse);\n const [introVideoActions, setIntroVideoActions] = useState([]);\n const [fullscreenModeToggle, setFullscreenModeToggle] = useState(false);\n const nextSectionOpenerActive = useSelector(PLAYER_SELECTORS.getNextSectionOpenerActive);\n const setNextSectionOpenerActive = payload => dispatch(ACTION_CREATORS.setNextSectionOpenerActive(payload));\n const seekVideo = time => dispatch(ACTION_CREATORS.handleSeekVideo(time));\n\n const [videoLocalState, setVideoLocalState] = useState(\n initialVideoLocalState\n );\n const [nextSectionCounterTime, setNextSectionCounterTime] = useState(10);\n\n const { played, playedSeconds } = videoLocalState;\n\n const { chapters: activeCourseChapters = [], id: programID, slug: programSlug } = activeCourse || {};\n const [introSection] = (activeCourseChapters[overviewChapterOrder - 1]?.sections || []);\n const { id: introSectionID } = introSection || {};\n\n const setVideoState = payload => dispatch(ACTION_CREATORS.setVideo(payload));\n const handlePrevNextCourseContent = prev => dispatch(ACTION_CREATORS.handlePrevNextCourseContent(prev, history));\n\n const handleSectionAction = (courseID, action) => {\n if (forCourseOverview) {\n if (isEnrolled) return;\n\n setIntroVideoActions([...introVideoActions, {\n identifier: introSectionID, action, context: 'section', value: 1\n }]);\n return;\n }\n dispatch(ACTION_CREATORS.handleSectionAction(courseID, action));\n };\n\n const tickAction = (identifier, action, context, value, dataPayload) => {\n if (forCourseOverview) {\n if (isEnrolled) return;\n\n setIntroVideoActions([...introVideoActions, {\n identifier: introSectionID, action, context, value\n }]);\n return;\n }\n dispatch(\n ACTION_CREATORS.tickAction({\n identifier,\n action,\n context,\n ...(value && { value }),\n ...(dataPayload && { dataPayload })\n })\n );\n };\n\n useEffect(() => {\n if (!forCourseOverview || isEnrolled || true) return;\n\n const introVideoProgressFeatEnabled = true;\n if (!introVideoProgressFeatEnabled) return;\n if (introVideoActions.length === 0) {\n // eslint-disable-next-line no-undef\n StorageHelper.removeLocalStorageItem({ key: 'introVideoActions' });\n }\n if (introVideoActions.length > 0) {\n StorageHelper.setLocalStorageItem({\n key: 'introVideoActions', value: JSON.stringify(introVideoActions), ttl: 0\n });\n }\n }, [introVideoActions]);\n\n const videoState = useSelector(PLAYER_SELECTORS.getPlayer);\n const chapters = useSelector(COURSE_SELECTORS.getChapters);\n\n const {\n pip,\n playing,\n volume,\n muted,\n duration,\n ended,\n seeking,\n autoplay,\n captions\n } = videoState;\n\n const {\n name,\n sectionID,\n properties,\n id: courseID,\n progress,\n chapter_id: chapterID\n } = useSelector(COURSE_SELECTORS.getActiveCourseSection);\n\n useEffect(() => {\n if (progress?.complete || forCourseOverview || duration === 0) return;\n const outroDuration = getVideoOutroDuration(sectionID);\n\n const remainingSeconds = duration - playedSeconds;\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(remainingSeconds) && remainingSeconds < outroDuration) {\n tickAction(courseID, 'complete', 'section', 1);\n }\n }, [playedSeconds]);\n\n const playerRef = useRef();\n\n const onChangeVolume = ({ target: { value: volumeValue } }) => {\n if (volumeValue < 0 || volumeValue > 1) return;\n setVideoState({\n muted: false,\n volume: parseFloat(volumeValue).toFixed(2)\n });\n StorageHelper.setLocalStorageItem({\n key: 'jf-academy-volume',\n value: parseFloat(volumeValue).toFixed(2)\n });\n };\n\n const handleVideoControlShortKeys = event => {\n const { key, keyCode } = event;\n let anyActionDispatched = false;\n if (key === 'Space' || keyCode === 32) {\n setVideoState({ playing: !playing });\n anyActionDispatched = true;\n } else if (['ArrowDown', 'ArrowUp'].includes(key)) {\n onChangeVolume({\n target: {\n value: key === 'ArrowDown' ? parseFloat(volume) - 0.1 : parseFloat(volume) + 0.1\n }\n });\n anyActionDispatched = true;\n } else if (['ArrowRight', 'ArrowLeft'].includes(key)) {\n const { seekTo = f => f } = playerRef?.current || {};\n const playedSecondsValue = parseInt(playedSeconds, 10);\n const newSeekTime = key === 'ArrowRight' ? playedSecondsValue + 5 : playedSecondsValue - 5;\n seekTo(newSeekTime, 'seconds');\n anyActionDispatched = true;\n }\n if (anyActionDispatched) event.preventDefault();\n };\n\n const handleToggleFullscreenMode = () => {\n setFullscreenModeToggle(true);\n };\n\n useEffect(() => {\n document.addEventListener('keydown', handleVideoControlShortKeys);\n document.addEventListener('fullscreenchange', handleToggleFullscreenMode);\n\n return () => {\n document.removeEventListener('keydown', handleVideoControlShortKeys);\n document.removeEventListener('fullscreenchange', handleToggleFullscreenMode);\n };\n }, [fullscreenModeToggle, playing, volume, playedSeconds]);\n\n useEffect(() => {\n if (forCourseOverview || loading) return;\n const { progress: chapterProgress } = chapters.find(chapter => chapter?.id === chapterID) || {};\n if (!chapterProgress || !chapterProgress?.enroll) {\n history.push(urlParamsSaver('/courses'));\n }\n }, []);\n\n useEffect(() => {\n if (!playing) return;\n if (!courseID) return;\n\n const chapterObj = chapters.find(chapter => chapter?.id === chapterID);\n const { progress: chapterProgress } = chapterObj;\n if (!chapterProgress?.start) {\n tickAction(chapterID, 'start', 'chapter', 1);\n }\n\n const { start = false } = progress || {};\n if (!start) {\n handleSectionAction(courseID, 'start');\n }\n }, [courseID, playing]);\n\n const handleRememberVideoProgress = ({ second, isPlayhead = false }) => {\n const currentPlayedSeconds = Number.isNaN(Math.round(second))\n ? 0\n : Math.round(second);\n\n let safeInterval;\n if (!isPlayhead) {\n const videoActionBreakpointInterval = Math.round(duration / 10);\n safeInterval = videoActionBreakpointInterval < 10 ? 10 : videoActionBreakpointInterval;\n }\n\n if (\n currentPlayedSeconds > 0\n && (isPlayhead || currentPlayedSeconds % safeInterval === 0)\n ) {\n tickAction(\n courseID,\n isPlayhead ? 'videoPlayhead' : 'videoProgress',\n 'section',\n currentPlayedSeconds,\n { video_percent: Math.round((currentPlayedSeconds * 100) / duration) }\n );\n }\n };\n\n const beforeUnloadAux = () => handleRememberVideoProgress({ second: playedSeconds, isPlayhead: true });\n\n useEffect(() => {\n window.addEventListener('beforeunload', beforeUnloadAux);\n return () => window.removeEventListener('beforeunload', beforeUnloadAux);\n }, [duration, courseID, played]);\n\n const restartVideo = () => dispatch(ACTION_CREATORS.restartVideo());\n const { videoSrc } = forCourseOverview ? { videoSrc: customVideoSrc } : (properties || {});\n\n useEffect(() => {\n setVideoLocalState(initialVideoLocalState);\n setVideoState({ ended: false });\n if (progress) {\n const {\n videoProgress = false,\n videoPlayhead = false,\n complete = false\n } = progress;\n if (complete) return;\n const { seekTo = f => f } = playerRef?.current || {};\n if (!videoPlayhead && !videoProgress) return;\n seekTo(parseInt(videoPlayhead || videoProgress, 10), 'seconds');\n }\n if (playing) {\n const { start = false } = progress || {};\n if (!start) {\n handleSectionAction(courseID, 'start');\n }\n }\n }, [videoSrc, forCourseOverview]); // videoSrc a solution? activeCourseSectionSlug, forCourseOverview\n\n const handleReady = player => {\n const { getDuration } = player;\n window.jfPlayer = player;\n handleToggleCaptions(player, captions);\n const videoDuration = getDuration();\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(videoDuration)) setVideoState({ duration: getDuration() });\n };\n\n const handleSeekMouseDown = () => {\n setVideoState({ seeking: true });\n };\n\n const handleSeekChange = e => {\n setVideoLocalState({\n ...videoLocalState,\n played: parseFloat(e.target.value)\n });\n };\n\n const handleSeekMouseUp = e => {\n setVideoState({ seeking: false });\n if (playerRef?.current) {\n const { seekTo = f => f } = playerRef?.current || {};\n handleRememberVideoProgress({\n second: parseFloat(e.target.value) * duration,\n isPlayhead: true\n });\n seekTo(parseFloat(e.target.value));\n }\n };\n\n const handleEnded = () => {\n tickAction(courseID, 'complete', 'section', 1);\n setVideoState({ ended: true, pip: false });\n if (forCourseOverview) return;\n if (autoplay) {\n setNextSectionOpenerActive(true);\n }\n };\n\n const handleClickPlayPauseRestart = () => {\n if (ended) {\n restartVideo();\n return;\n }\n\n setVideoState({ playing: !playing });\n };\n\n const handleOnProgress = progressState => {\n if (!seeking) {\n handleRememberVideoProgress({ second: progressState?.playedSeconds });\n setVideoLocalState(progressState);\n }\n };\n\n const handleCompleteNextCourseCounter = (play = true) => {\n setNextSectionOpenerActive(false);\n setNextSectionCounterTime(10);\n if (play) handlePrevNextCourseContent(false);\n };\n\n const currentNextSection = isNextPreviousEnabled({ buttonType: 'next', chapters, sectionID });\n const {\n properties: nextSectionProperties,\n sectionID: nextSectionID,\n title: nextSectionTitle\n } = currentNextSection || {};\n\n const currentPreviousSection = isNextPreviousEnabled({ buttonType: 'previous', chapters, sectionID });\n\n const handlePlaybackRateChange = updatedPlaybackRate => {\n setVideoState({ playbackRate: updatedPlaybackRate });\n StorageHelper.setLocalStorageItem({ key: 'jf-academy-video-speed', value: updatedPlaybackRate });\n };\n\n const [playbackRateDropdownOpen, setPlaybackRateDropdownOpen] = useState(false);\n\n const splitedSrc = (videoSrc || '').split('/');\n\n const useHLS = isHLSActive();\n const sectionCode = splitedSrc[splitedSrc.length - (useHLS ? 3 : 2)];\n\n const [, code = ''] = (sectionCode || '').split('-');\n const recoveredSectionID = `${code.replace('0', '')}.1`;\n const subtitleFile = videoSrc ? sectionConstants[programID][sectionID || recoveredSectionID]?.subtitleFile : undefined;\n const videoPoster = getVideoPoster(programSlug, sectionID);\n\n const handleMouseLeaveVideo = () => {\n setPlaybackRateDropdownOpen(false);\n };\n\n const handleClickMute = () => {\n setVideoState({ muted: !muted });\n StorageHelper.setLocalStorageItem({\n key: 'jf-academy-volume',\n value: !muted ? 'mute' : volume\n });\n };\n\n const replayVideo = () => {\n const { current = {} } = playerRef || {};\n const { wrapper = {} } = current;\n if (wrapper) {\n seekVideo(0);\n setVideoState({ ended: false, playing: true });\n setNextSectionOpenerActive(false);\n\n const videoElement = wrapper.querySelector('video');\n if (videoElement) videoElement.play();\n }\n };\n\n const disablePrevNext = nextSectionOpenerActive && ended;\n return (\n <>\n

\n {name}\n

\n
\n
\n \n
\n \n
\n
\n {(autoplay && !forCourseOverview) && (\n <>\n Up next in\n \n {nextSectionCounterTime}\n \n \n )}\n
\n {(nextSectionOpenerActive && ended && !forCourseOverview) && (\n handleCompleteNextCourseCounter()}\n onKeyDown={() => handleCompleteNextCourseCounter()}\n className=\"lg:mt-14\"\n >\n \n
\n )}\n\n
\n \n

\n {nextSectionProperties?.type === 'section'\n && `Lesson ${nextSectionID}`}\n

\n

\n {nextSectionTitle}\n

\n
\n
\n \n {currentNextSection?.name}\n \n
\n \n \n Replay\n \n {\n !forCourseOverview && (\n \n {currentNextSection?.properties?.type === 'section'\n ? 'Play Next Video'\n : 'Take the Quiz'}\n \n )\n }\n
\n
\n
\n
\n
\n
\n setVideoState({ playing: playingValue })}\n handlePipMode={() => {\n setVideoState({ pip: !pip });\n if (!pip) setFullscreenModeToggle(false);\n }}\n videoSrc={videoSrc}\n />\n
\n {\n (!loading && !forCourseOverview) && (\n
\n
\n handlePrevNextCourseContent(true)}\n className={\n `flex justify-center items-center text-xs xs:text-sm md:text-lg px-3 sm:px-6 py-1.5 radius-full color-navy-400 bg-navy-50 duration-300 ${\n disablePrevNext ? 'pointer-events-none' : 'hover:bg-navy-500 hover:color-white'\n }`\n }\n >\n \n Previous lesson\n \n
\n {\n !forCourseOverview && (\n \n \n Auto Play\n \n {\n if (nextSectionOpenerActive && ended) return;\n setVideoState({ autoplay: !autoplay });\n StorageHelper.setLocalStorageItem({\n key: 'jf-academy-autoplay',\n value: !autoplay ? '1' : '0'\n });\n }}\n />\n
\n \n
\n \n )\n }\n
\n {(currentNextSection) && (\n handlePrevNextCourseContent(false)}\n className={\n `flex justify-center items-center text-xs xs:text-sm md:text-lg px-3 sm:px-6 py-1.5 radius-full color-navy-400 bg-navy-50 duration-300 ${\n disablePrevNext ? 'pointer-events-none' : 'hover:bg-navy-500 hover:color-white'\n }`\n }\n >\n Next lesson\n \n \n )}\n
\n
\n )\n }\n \n \n );\n};\n\nVideoPlayerWrapper.propTypes = {\n loading: bool,\n isEnrolled: bool,\n forCourseOverview: bool,\n customVideoSrc: string,\n customVideoPoster: string,\n overviewChapterOrder: number\n};\n\nexport default VideoPlayerWrapper;\n","/* eslint-disable @jotforminc/no-native-button */\n/* eslint-disable react/no-array-index-key */\n/* eslint-disable max-len */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\nimport React, { useEffect, useRef, useState } from 'react';\nimport { arrayOf, func, object } from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport {\n IconXmark,\n IconTriangleCircleFilled,\n IconAlarmClockCheckFilled,\n IconCheckCircleFilled\n} from '@jotforminc/svg-icons';\nimport classNames from 'classnames';\nimport { t } from '@jotforminc/translation';\nimport { ACTION_CREATORS } from '../store/actionCreators';\nimport WatchIcon from '../assets/timeline/watched.svg';\nimport HalfWatchIcon from '../assets/timeline/half-watched.svg';\nimport CheckWatchIcon from '../assets/timeline/check.svg';\nimport CheckCertificationIcon from '../assets/landing/check.svg';\nimport BadgeIcon from '../assets/landing/icons/badge.svg';\nimport CourseIcon from '../assets/landing/icons/course.svg';\nimport Certificate from '../assets/cer.svg';\nimport { courseConstants, programObjectives, sectionConstants } from '../constants';\n\nimport {\n isHLSActive,\n chaptersToTotalQuizCount,\n chaptersToTotalVideoCount,\n getActionButtonProperties,\n handleDownloadBadge,\n handleDownloadCertificate,\n remainingTimePrettifier,\n urlParamsSaver,\n calculateCourseDuration\n} from '../utils';\nimport { USER_SELECTORS } from '../store/selectors';\nimport VideoPlayerWrapper from './VideoPlayerWrapper';\nimport { getUserBadges } from '../api';\n\nconst CoursePreviewModal = ({\n course = {}, setPreviewCourse = f => f, previewedChapter = {}, courses = [], setLoginFlowVisible = f => f, setPreviewedChapter = f => f\n}) => {\n const {\n title: programTitle,\n id: courseID,\n properties,\n duration,\n chapters = [],\n id: programID,\n slug: programSlug,\n title: courseTitle,\n progress: courseProgress\n } = course;\n const isAppsProgram = programSlug === 'jotform-apps';\n const {\n id: previewedChapterID,\n title: previewedChapterTitle,\n properties: chapterProperties,\n progress: previewChapterProgress = {}\n } = previewedChapter;\n\n const { enroll: isEnrolledPreviewedChapter } = previewChapterProgress;\n const { order: chapterOrder } = chapterProperties;\n\n const { credentials: user } = useSelector(USER_SELECTORS.getUser);\n const username = useSelector(USER_SELECTORS.getUsername);\n const certificates = useSelector(USER_SELECTORS.getUserCertificatesSelector);\n\n const certificateIndex = Object.values(certificates).findIndex(certificate => certificate?.course_slug === programSlug);\n const certificateID = Object.keys(certificates)[certificateIndex];\n\n const { progress } = previewedChapter || {};\n const filteredChapters = chapters.filter(chapter => {\n return (chapter?.sections || []).length > 0;\n });\n const previewedChapterRef = useRef();\n const { cover_img: coverImage } = properties;\n const [badges, setBadges] = useState([]);\n\n const dispatch = useDispatch();\n const restartVideoState = () => dispatch(ACTION_CREATORS.restartVideoState());\n const fetchCourseContent = (programSlugParam, courseSlugParam, sectionSlugParam) => dispatch(ACTION_CREATORS.fetchCourseContent(programSlugParam, courseSlugParam, sectionSlugParam));\n const enrollChapter = (chapterID, callback) => dispatch(ACTION_CREATORS.enrollChapter(chapterID, callback));\n const handleCloseModal = () => setPreviewCourse();\n const tickAction = (identifier, action, context, value, dataPayload, dispatchedFrom) => dispatch(\n ACTION_CREATORS.tickAction({\n identifier,\n action,\n context,\n dispatchedFrom,\n ...(value && { value }),\n ...(dataPayload && { dataPayload })\n })\n );\n\n const certificateDownloadable = (courseProgress?.complete || '').length > 0;\n\n useEffect(() => {\n try {\n getUserBadges().then(badgesData => {\n setBadges(badgesData);\n });\n } catch {\n setBadges([]);\n }\n return () => restartVideoState;\n }, []);\n\n const handleEscPress = event => {\n const { key } = event;\n if (key !== 'Escape') return;\n setPreviewCourse();\n };\n\n useEffect(() => {\n if (programTitle && previewedChapterTitle) {\n document.title = `${previewedChapterTitle} - ${programTitle} | Jotform Academy`;\n }\n document.body.style.overflow = 'hidden';\n document.addEventListener('keydown', handleEscPress);\n return () => {\n document.body.style.removeProperty('overflow');\n document.removeEventListener('keydown', handleEscPress);\n };\n }, []);\n\n const courseActionButtonRenderer = (payload = {}) => {\n const { onlyEnroll = false, customChapterID, customProgress } = payload;\n const currentChapterID = customChapterID || previewedChapter?.id;\n const {\n text, onClick, isLink = false, linkSrc\n } = getActionButtonProperties({\n user,\n courses,\n courseID,\n onlyEnroll,\n slug: programSlug,\n setLoginFlowVisible,\n allChapters: chapters,\n fetchCourseContent,\n previewModal: true,\n chapterID: currentChapterID,\n customEnrollFunction: enrollChapter,\n progress: customProgress || progress,\n handleOpenCoursePreviewModal: f => f,\n tickAction,\n program: course,\n previewedChapter\n }) || {};\n\n if (!text) return null;\n if (isLink) {\n return (\n \n \n {t(text)}\n \n \n );\n }\n const isCompletedBtn = text === 'Completed';\n const { badgeURL = '' } = ((badges || []).find(badge => badge?.chapterID === currentChapterID) || {});\n return (\n \n
\n
\n {\n isCompletedBtn && \n }\n {t(text)}\n
\n {\n (isCompletedBtn && badgeURL && !isAppsProgram) && (\n \n )\n }\n
\n \n );\n };\n const {\n courseCoverImage, introVideoSrc: introVideoSrcMp4, courseOveview = []\n } = courseConstants[courseID][chapterOrder] || {};\n const useHLS = isHLSActive();\n const { liveStreamURL } = sectionConstants[programID][`${chapterOrder}.1`];\n const introVideoSrc = useHLS ? liveStreamURL : introVideoSrcMp4;\n return (\n <>\n
\n
\n
\n \n \n \n ESC\n \n \n
\n
\n
\n
\n \n
\n
\n
\n

{programTitle}

\n {certificateDownloadable && (\n
\n
\n \n
\n
\n {courseProgress?.complete && (\n f}\n className='radius-md text-lg py-3.5 bg-transparent flex gap-2 justify-center items-center color-green-500 pointer-events-none px-0 font-bold'\n >\n \n {t('Completed')}\n \n )}\n handleDownloadCertificate(certificateID, username, courseTitle, courseID)}\n // eslint-disable-next-line max-len\n className=\"inline-flex items-center whitespace-nowrap focus:outline-2 focus:outline-navy-100 focus:outline-opacity-30 radius px-3.5 sm:py-3.5 py-3.5 sm:px-4 text-sm sm:text-lg bg-green-500 hover:bg-green-600 color-white shadow-center\"\n >\n Download Your Certificate\n \n
\n
\n )}\n
\n
\n \n
\n Program Objectives\n
\n \n At the end of this program learners should be able to:\n \n
    \n {\n programObjectives[programID].map(objective =>
  • {objective}
  • )\n }\n
\n
\n
\n
\n
\n \n {`${filteredChapters.length} Course${filteredChapters.length > 1 ? 's' : ''}`}\n
\n
\n \n {`${chaptersToTotalVideoCount(filteredChapters)} Video${filteredChapters.length > 0 ? 's' : ''}`}\n
\n {\n (chaptersToTotalQuizCount(filteredChapters) > 0 && !isAppsProgram) && (\n
\n \n {`${chaptersToTotalQuizCount(filteredChapters)} Badge${filteredChapters.length > 0 ? 's' : ''}`}\n
\n )\n }\n
\n \n 1\n Certification\n
\n
\n \n Total Duration:\n {' '}\n {`${remainingTimePrettifier(duration)}`}\n
\n
\n
\n
\n
\n {\n filteredChapters.map((chapter, index) => {\n const isSelectedChapterTab = chapter?.id === previewedChapterID;\n return (\n {\n setPreviewedChapter(chapter);\n }}\n className={classNames({\n 'font-normal color-navy-300': !isSelectedChapterTab,\n 'font-medium color-navy-700 border-blue-500': isSelectedChapterTab\n\n }, 'text-md md:text-xl color-navy-700 px-4 sm:px-10 py-2 border-blue-500 w-full sm:w-auto')}\n style={isSelectedChapterTab ? { borderBottomWidth: '4px' } : {}}\n >\n {t(`Course ${index + 1}`)}\n \n );\n })\n }\n
\n
\n
\n\n {(filteredChapters.filter(chapter => chapter?.id === previewedChapterID)).map(chapter => {\n const {\n title: chapterTitle,\n sections: chapterSections,\n id: chapterID,\n slug: courseSlug,\n // properties: { order },\n progress: chapterProgress = {}\n } = chapter;\n const filteredChapterSections = chapterSections.filter(section => section?.properties?.type === 'section');\n const chapterSectionsCount = filteredChapterSections.length;\n const { enroll: enrolledChapter = '' } = chapterProgress;\n const isEnrolledChapter = enrolledChapter.length > 0;\n const isSelected = previewedChapter?.id === chapterID;\n return (\n \n\n
\n
\n
\n

{chapterTitle}

\n {\n !isAppsProgram && (\n
\n
\n \n Total Duration:\n {`${remainingTimePrettifier(calculateCourseDuration(previewedChapter))}`}\n
\n
\n \n {`${chapterSectionsCount} Lesson${chapterSectionsCount > 1 ? 's' : ''}`}\n
\n
\n )\n }\n
\n
\n
\n {courseActionButtonRenderer({\n customChapterID: chapterID,\n customProgress: chapterProgress\n })}\n {/* */}\n
\n {\n courseOveview.length > 0 && (\n
\n
\n Course Overview\n
\n \n At the end of this program learners should be able to:\n \n
    \n { courseOveview.map((content, index) =>
  • {content}
  • ) }\n
\n
\n )\n }\n \n
Lessons
\n
    \n {chapterSections.map(\n ({\n id = '',\n title: sectionTitle,\n progress: sectionProgress,\n slug: sectionSlug,\n properties: { duration: sectionDuration = '' }\n }) => {\n const { complete = false, start = false } = sectionProgress || {};\n let SectionItemIcon = WatchIcon;\n if (complete) {\n SectionItemIcon = CheckWatchIcon;\n } else if (start) { SectionItemIcon = HalfWatchIcon; }\n return (\n fetchCourseContent(programSlug, courseSlug, sectionSlug)}\n title={sectionTitle}\n key={`link-${id}`}\n >\n \n
    \n \n {sectionTitle}\n
    \n {(sectionTitle.length > 0 && (sectionDuration || '').length > 0) && (\n \n {`${sectionDuration.replaceAll('.', ':')}`}\n \n )}\n
\n \n );\n }\n )}\n {\n ((chapterProgress?.complete || '').length > 0 && !isAppsProgram) && (\n handleDownloadBadge(chapterID, username, chapterTitle)}\n // eslint-disable-next-line max-len\n className=\"inline-flex items-center whitespace-nowrap focus:outline-2 focus:outline-navy-100 focus:outline-opacity-30 radius px-3.5 sm:py-3.5 py-3.5 sm:px-4 text-sm sm:text-lg bg-green-500 hover:bg-green-600 color-white shadow-center\"\n >\n Download the Badge\n \n )\n }\n \n
\n
\n \n );\n })}\n
\n
\n \n \n
\n
\n \n );\n};\n\nexport default CoursePreviewModal;\n\nCoursePreviewModal.propTypes = {\n course: object,\n setPreviewCourse: func,\n courses: arrayOf(object),\n previewedChapter: object,\n setLoginFlowVisible: func,\n setPreviewedChapter: func\n};\n","/* eslint-disable max-len */\nimport React from 'react';\nimport { string, bool } from 'prop-types';\nimport classNames from 'classnames';\n\nconst Maintitle = ({\n title = '', light = false, dark = false, className = ''\n}) => {\n return (\n
\n
\n
\n );\n};\nexport default Maintitle;\n\nMaintitle.propTypes = {\n title: string,\n light: bool,\n dark: bool,\n className: string\n};\n","/* eslint-disable max-len */\nimport React from 'react';\nimport { string, bool } from 'prop-types';\nimport classNames from 'classnames';\n\nconst Subtitle = ({\n title = '', light = false, dark = false, className = ''\n}) => {\n return (\n \n );\n};\nexport default Subtitle;\n\nSubtitle.propTypes = {\n title: string,\n light: bool,\n dark: bool,\n className: string\n};\n","import React, { useEffect } from 'react';\nimport {\n bool, object, string, func\n} from 'prop-types';\nimport { IconXmark } from '@jotforminc/svg-icons';\n\nconst Modal = ({\n isOpen = false, onClose = f => f, children = null, className = '', height = ''\n}) => {\n const closeModal = () => {\n onClose(false);\n };\n\n const handleKeydownOnModal = ({ key }) => {\n if (key === 'Escape') closeModal();\n };\n\n useEffect(() => {\n document.addEventListener('keydown', handleKeydownOnModal);\n return () => {\n document.removeEventListener('keydown', handleKeydownOnModal);\n };\n });\n\n useEffect(() => {\n if (isOpen) {\n document.querySelector('html').style = 'overflow:hidden!important';\n } else {\n document.querySelector('html').style = 'overflow:visible!important';\n }\n\n return () => {\n document.querySelector('html').style = 'overflow:visible!important';\n };\n }, [isOpen]);\n\n if (!isOpen) return null;\n\n const closeAndReset = () => {\n closeModal();\n };\n return (\n <>\n
\n \n \n \n \n ESC\n \n \n
\n
\n
\n
{children}
\n
\n
\n \n \n \n );\n};\nexport default Modal;\n\nModal.propTypes = {\n isOpen: bool,\n onClose: func,\n height: string,\n children: object,\n className: string\n};\n","import React, { useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Title, Subtitle } from '../Heading';\nimport Modal from '../Modal';\nimport { tickAcademyAction } from '../../utils';\nimport { USER_SELECTORS } from '../../store/selectors';\nimport { announcementVideoConstants } from '../../constants';\n\nconst BottomSection = () => {\n const target = 'landing-video';\n\n const userneme = useSelector(USER_SELECTORS.getUsername);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const newPoster = 'https://cdn.jotfor.ms/videos/academy/announcement/poster-apps.png';\n\n const openModal = () => {\n tickAcademyAction({ action: 'open', target, actor: userneme });\n setIsModalOpen(true);\n };\n\n const closeModal = () => {\n tickAcademyAction({ action: 'close', target, actor: userneme });\n setIsModalOpen(false);\n };\n const { poster, videoSrc } = announcementVideoConstants;\n return (\n <>\n \n \n \n
\n
\n
\n
\n
\n
\n
\n \n <Subtitle className=\"px-0 md:px-40\" dark title=\"Watch this brief video to learn why you should enroll in Jotform Academy.\" />\n </div>\n <div className=\"relative z-1 flex justify-center w-full\">\n <div className=\"shadow-center bg-white radius-xl p-4\">\n <div className='relative'>\n <img\n loading=\"lazy\"\n src={newPoster}\n className=\"w-full sm:max-w-sm h-auto radius-xl cursor-pointer\"\n width={1920}\n height={1080}\n alt=\"Jotform Foundation Poster\"\n />\n <div className='absolute left-0 top-0 w-full h-full flex justify-center items-center cursor-pointer group' onClick={openModal}>\n <button type=\"button\" aria-label='Play Video'>\n <svg\n className='w-20 w-12 color-red-500 relative z-4 group-hover:opacity-70 duration-300'\n viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n x=\"9\" y=\"8\" width=\"7\"\n height=\"7\" fill=\"#D9D9D9\"\n />\n <path\n // eslint-disable-next-line max-len\n d=\"M22.54 6.42C22.4156 5.95201 22.1705 5.5249 21.8292 5.18145C21.4878 4.83799 21.0622 4.59024 20.595 4.463C18.88 4 12 4 12 4C12 4 5.12 4 3.405 4.463C2.93778 4.59024 2.51219 4.83799 2.17084 5.18145C1.82949 5.5249 1.58436 5.95201 1.46 6.42C1 8.147 1 11.75 1 11.75C1 11.75 1 15.353 1.46 17.08C1.58531 17.5442 1.83128 17.9669 2.1729 18.3052C2.51453 18.6434 2.93963 18.8853 3.405 19.006C5.12 19.469 12 19.469 12 19.469C12 19.469 18.88 19.469 20.595 19.006C21.0604 18.8853 21.4855 18.6434 21.8271 18.3052C22.1687 17.9669 22.4147 17.5442 22.54 17.08C23 15.353 23 11.75 23 11.75C23 11.75 23 8.147 22.54 6.42ZM9.75 15.021V8.48L15.5 11.751L9.75 15.022V15.021Z\"\n fill=\"#D64438\"\n />\n </svg>\n </button>\n\n </div>\n <div className='absolute right-0 bottom-1 bg-black bg-opacity-50 color-white text-lg font-medium px-3 py-1.5 radius-tl-xl radius-br-xl '>0:25</div>\n </div>\n </div>\n </div>\n </div>\n </section>\n </>\n );\n};\nexport default BottomSection;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { USER_SELECTORS } from '../../../store/selectors';\nimport { getUserPrepopulatedURLParam } from '../../../utils';\n\nconst CourseRequestForm = () => {\n const user = useSelector(USER_SELECTORS.getUser);\n const prepopulatedURLParam = getUserPrepopulatedURLParam(user);\n return (\n <>\n <section>\n <iframe\n id=\"JotFormIFrame-232882487159975\"\n title=\"Course Request Form\"\n className='w-full h-100vh border-0 radius-md'\n allowtransparency=\"true\"\n allowFullScreen={true}\n allow=\"geolocation; microphone; camera\"\n src={`https://form.jotform.com/232882487159975?${prepopulatedURLParam}`}\n frameBorder=\"0\"\n />\n </section>\n </>\n );\n};\n\nexport default CourseRequestForm;\n","/* eslint-disable max-len */\nimport React from 'react';\nimport { string, func } from 'prop-types';\n\nconst Infobox = ({ title = '', desc = '', Icon = () => null }) => {\n return (\n <div className='custom-shadow-2 bg-light md:radius-xl overflow-hidden h-full'>\n <div className='relative flex justify-between lg:justify-start items-center lg:items-start gap-4 py-8 px-10 h-full overflow-hidden'>\n <div className='flex flex-col h-full text-left mr-4 w-full pr-0 sm:pr-20'>\n <h6 className='mt-0 mb-4 color-navy-700 font-bold text-md sm:text-lg md:text-lg xl:text-2xl whitespace-nowrap'>{title}</h6>\n <p className='color-navy-500 text-sm xs:text-md md:text-md xl:text-lg xl:line-height-2xl text-left w-full'>{desc}</p>\n </div>\n <div className='hidden sm:flex flex-col justify-end items-end h-full absolute -right-12 bottom-10 w-full '>\n <Icon className=\"w-32 h-32\" />\n </div>\n </div>\n </div>\n );\n};\nexport default Infobox;\n\nInfobox.propTypes = {\n title: string,\n desc: string,\n Icon: func\n};\n","import React from 'react';\nimport { getAppPathWrapper, getLocalizedOutLink } from '../utils';\n\nconst CertificateDisclaimer = () => {\n const appPath = getAppPathWrapper();\n return (\n <span className='line-height-xl font-normal color-navy-500'>\n Jotform certificates show that the person has completed Jotform Academy courses, and do not mean that Jotform has endorsed them or declared them to be an expert on the use of Jotform.\n {' '}\n <a target='_blank' className='color-blue-500 underline' href={getLocalizedOutLink('/contact/', appPath)}>Contact Jotform Support</a>\n {' '}\n or review our\n {' '}\n <a target='_blank' className='color-blue-500 underline' href={getLocalizedOutLink('/answers/', appPath)}>Jotform Answers page</a>\n {' '}\n if you want definitive information about how to use our platform.\n </span>\n );\n};\n\nexport default CertificateDisclaimer;\n","import React from 'react';\nimport { Title } from './Heading';\nimport Infobox from './Landing/infobox';\nimport LogoMarkFilled from '../assets/landing/icons/logo-mark-filled.svg';\nimport MessageFilled from '../assets/landing/icons/message-filled.svg';\nimport MingcuteCertificateFill from '../assets/landing/icons/mingcute_certificate-fill.svg';\nimport CertificateDisclaimer from './CertificateDisclaimer';\n\nconst InfoBoxSection = () => {\n return (\n <section>\n <div className=\"max-w-xl mx-auto py-10 sm:py-32 px-7 xl:px-0\">\n <Title dark title=\"Why should you join\" className=\"mb-4 sm:mb-18 text-3xl xs:text-4xl sm:text-6xl md:text-6xl\" />\n <div className=\"grid cols-1 sm:cols-1 md:cols-1 lg:cols-3 gap-6 px-2 xl:px-0 mb-9\">\n <Infobox\n Icon={LogoMarkFilled}\n title=\"Become a Jotform master\"\n desc=\"Jotform is a powerful tool with many versatile features. After taking our courses, you’ll be able to take advantage of everything Jotform has to offer.\"\n />\n <Infobox\n Icon={MingcuteCertificateFill}\n title=\"Prove your proficiency\"\n desc=\"Demonstrate your Jotform proficiency with your own Jotform Academy certificate. Show your clients or employer that you know a thing or two about Jotform and its tools.\"\n />\n <Infobox\n Icon={MessageFilled}\n title=\"Help us with your feedback\"\n // eslint-disable-next-line max-len\n desc=\"Jotform cares about your opinion. We encourage you to provide feedback after finishing a course. You can even suggest a new course if we haven’t covered what you’re looking for.\"\n />\n </div>\n <CertificateDisclaimer />\n </div>\n </section>\n );\n};\n\nexport default InfoBoxSection;\n","/* eslint-disable max-len */\nimport React, { useRef, useState, useEffect } from 'react';\nimport { Link, Route, useHistory } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {\n IconTriangleCircleFilled,\n IconUserFilled,\n IconCheckCircleFilled,\n IconArrowPointerClickFilled\n} from '@jotforminc/svg-icons';\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport { Pagination, Navigation } from 'swiper/modules';\nimport 'swiper/css';\nimport classNames from 'classnames';\nimport CourseCardItem from '../CourseCardItem';\nimport { COURSE_SELECTORS, USER_SELECTORS } from '../../store/selectors';\nimport Hero from '../Header/Hero';\nimport CoursePreviewModal from '../CoursePreviewModal';\nimport { Title, Subtitle } from '../Heading';\nimport CenterVideoSection from '../CenterVideoSection';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\nimport Modal from '../Modal';\nimport CourseRequestForm from './MyCourses/CourseRequestForm';\nimport {\n compareIgnoreCase,\n getAllContinuingSections,\n getAppInfoFromURL,\n getRemainingTimePrettyText,\n stringToSecond,\n tickAcademyAction,\n urlParamsSaver\n // compareIgnoreCase\n} from '../../utils';\nimport PlayIcon from '../../assets/my-courses/playIcon.svg';\nimport PlayCircleFill from '../../assets/player/play-circle-opacity.svg';\nimport { chapterConstants } from '../../constants';\nimport { COURSES_META_DESC, COURSES_TITLE } from '../../constants/meta';\nimport InfoBoxSection from '../InfoBoxSection';\n\nconst getInitialPreviewCourseChapter = () => {\n const [url] = window.location.href.split('?');\n const splittedURL = (url || '').split('/');\n const coursesPathIndex = (url || '')\n .split('/')\n .findIndex(path => path === 'courses');\n return splittedURL[coursesPathIndex + 2];\n};\n\nconst CoursesHomepage = () => {\n const history = useHistory();\n const [searchKeyword, setSearchkeyword] = useState('');\n const dispatch = useDispatch();\n const refreshCourses = () => dispatch(ACTION_CREATORS.refreshCourses());\n const setActiveCourse = course => dispatch(ACTION_CREATORS.setActiveCourse(course));\n const setCurrentStage = currentStage => dispatch(ACTION_CREATORS.setCurrentStage(currentStage));\n const fetchCourseContent = (programSlugParam, courseSlugParam, sectionSlugParam) => dispatch(ACTION_CREATORS.fetchCourseContent(programSlugParam, courseSlugParam, sectionSlugParam));\n const username = useSelector(USER_SELECTORS.getUsername);\n\n const courses = useSelector(COURSE_SELECTORS.getCourses);\n const releasedPrograms = useSelector(COURSE_SELECTORS.getProgramsByStatus('ACTIVE'));\n const upcomingPrograms = useSelector(COURSE_SELECTORS.getProgramsByStatus('DISABLED'));\n\n let allChapters = [];\n courses.forEach(course => {\n const { chapters = [] } = course;\n allChapters = [\n ...allChapters,\n ...chapters.filter(chapter => (chapter?.sections || []).length > 0)\n ];\n });\n const [previewCourse, setPreviewCourse] = useState();\n const [loginFlowVisible, setLoginFlowVisible] = useState(false);\n const sliderRef = useRef(null);\n\n const [previewedChapter, setPreviewedChapter] = useState();\n useEffect(() => {\n refreshCourses();\n const { programSlug, courseSlug } = getAppInfoFromURL();\n if (programSlug && !courseSlug) {\n history.push(urlParamsSaver('/courses'));\n }\n setCurrentStage('courses');\n }, []);\n\n const handleOpenClosePreviewModal = selectedProgram => {\n const { chapters = [] } = selectedProgram || {};\n const [firstCourse] = chapters;\n const { slug: chapterSlug, course_id: courseID } = firstCourse || {};\n const selectedCourse = courses.find(course => course?.id === courseID);\n setPreviewCourse(selectedCourse);\n history.push(\n urlParamsSaver(\n selectedCourse\n ? `/courses/${selectedCourse?.slug}/${chapterSlug}`\n : '/courses'\n )\n );\n };\n\n useEffect(() => {\n if (allChapters && allChapters.length === 0) return;\n\n const { programSlug, courseSlug } = getAppInfoFromURL();\n if (programSlug !== 'badge') return;\n\n const previewedCourse = allChapters.find(chapter => chapter?.id === courseSlug);\n handleOpenClosePreviewModal(previewedCourse);\n }, [allChapters]);\n\n useEffect(() => {\n if (!previewCourse) {\n setPreviewedChapter();\n } else {\n const currentChapter = (previewCourse?.chapters || []).find(\n chapter => chapter?.slug === getInitialPreviewCourseChapter()\n );\n setPreviewedChapter(currentChapter);\n }\n }, [previewCourse]);\n\n useEffect(() => {\n const academyCoursesURL = `${window?.location.origin}/academy/courses/`;\n const canonicalLinkEl = document?.querySelector('link[rel=\"canonical\"]');\n const metaDescriptionEl = document?.querySelector('meta[name=\"description\"]');\n const initialPreviewCourseChapter = getInitialPreviewCourseChapter();\n const currentPageURL = window?.location.href;\n\n if (!previewCourse) {\n document.title = COURSES_TITLE;\n metaDescriptionEl.content = COURSES_META_DESC;\n if (canonicalLinkEl && currentPageURL !== canonicalLinkEl.href) {\n canonicalLinkEl.href = academyCoursesURL;\n }\n } else if (canonicalLinkEl && currentPageURL !== canonicalLinkEl.href) {\n const canonical = `${academyCoursesURL}${previewCourse.slug}/${initialPreviewCourseChapter}/`;\n canonicalLinkEl.href = canonical;\n }\n\n if (metaDescriptionEl && previewCourse) {\n const selectedChapter = previewCourse?.chapters.find(each => each.slug === initialPreviewCourseChapter);\n if (selectedChapter && selectedChapter?.description) {\n metaDescriptionEl.content = selectedChapter.description;\n }\n }\n\n setActiveCourse(previewCourse);\n }, [previewCourse]);\n\n // handle pre-previewed template\n useEffect(() => {\n if (courses.length > 0) {\n const initialPreviewCourse = getInitialPreviewCourseChapter();\n if (initialPreviewCourse) {\n const foundCourse = courses.find(course => (course?.chapters || []).find(\n chapter => chapter?.slug === initialPreviewCourse\n ));\n if (foundCourse) setPreviewCourse(foundCourse);\n }\n }\n }, [courses]);\n\n const [requestCourseModalOpen, setRequestCourseModalOpen] = useState(window.location.href.includes('requestACourse=1'));\n const requestCourseFormTarget = 'request-course-form';\n const openModal = () => {\n tickAcademyAction({ action: 'open', target: requestCourseFormTarget, actor: username });\n setRequestCourseModalOpen(!requestCourseModalOpen);\n };\n\n const closeModal = () => {\n tickAcademyAction({ action: 'close', target: requestCourseFormTarget, actor: username });\n setRequestCourseModalOpen(false);\n };\n const continuingSectionsData = getAllContinuingSections(courses);\n let continuingSections = [];\n\n Object.keys(continuingSectionsData).forEach(courseID => {\n continuingSections = [\n ...continuingSections,\n ...(continuingSectionsData[courseID] || []).map(section => {\n const {\n title: courseName,\n slug,\n chapters,\n properties: { cover_img: coursePoster }\n } = courses.find(course => course?.id === courseID);\n const { id: chapterID, properties: chapterProperties = {} } = chapters.find(chapter => chapter?.sections.find(\n chapterSection => chapterSection?.id === section?.id\n ));\n const { order: chapterOrder } = chapterProperties;\n return {\n ...section,\n courseID,\n chapterID,\n courseName,\n coursePoster,\n chapterOrder,\n courseSlug: slug,\n chapterName: (\n chapters.find(chapter => chapter?.sections.find(\n chapterSection => chapterSection?.id === section?.id\n )) || { title: '' }\n ).title,\n chapterSlug: (\n chapters.find(chapter => chapter?.sections.find(\n chapterSection => chapterSection?.id === section?.id\n )) || { title: '' }\n ).slug\n };\n })\n ];\n });\n\n const filteredContinuingSections = continuingSections.filter(\n section => section?.progress?.videoProgress || section?.progress?.videoPlayhead\n );\n\n const [firstWishlistItem] = upcomingPrograms;\n\n const coursesLoaded = true;\n let filteredPrograms = searchKeyword.length >= 3 ? releasedPrograms.filter(program => compareIgnoreCase(program.title, searchKeyword)) : releasedPrograms;\n filteredPrograms = filteredPrograms.sort((programA, programB) => {\n if (programA.slug === 'jotform-apps') return -1;\n if (programB.slug === 'jotform-apps') return 1;\n return 0;\n });\n filteredPrograms = filteredPrograms.map(program => (program.slug === 'jotform-apps' ? { ...program, new: true } : program));\n\n return (\n <>\n <Modal isOpen={requestCourseModalOpen} onClose={closeModal} height=\"h-100vh sm:h-95vh\">\n <CourseRequestForm />\n </Modal>\n <Hero\n searchKeyword={searchKeyword}\n setSearchkeyword={setSearchkeyword}\n title=\"Jotform Academy Courses\"\n description=\"Check out all the available courses and what they cover.\"\n />\n {filteredContinuingSections.length > 0 && (\n <section className=\"continue-learning bg-navy-10\">\n <div className=\"max-w-xl mx-auto pb-10 sm:pb-5 lg:pb-18 pt-10 lg:pt-18 px-7 xl:px-0\">\n <div className=\"w-full\">\n <h6\n className={classNames(\n { 'sm:ml-6': filteredContinuingSections.length <= 1 },\n 'text-lg xl:text-2xl font-medium color-gray-700 mb-4 mt-0'\n )}\n >\n Continue Learning\n </h6>\n <section className=\"flex items-center w-full\">\n <Swiper\n className={classNames({ 'swiper-padding ': false, 'w-full': true })}\n ref={sliderRef}\n slidesPerView={2}\n spaceBetween={30}\n loop={false}\n pagination={{\n el: '.custom-pagination',\n clickable: true,\n renderBullet: (index, className) => {\n return `<span class=\"${className}\"></span>`;\n }\n }}\n breakpoints={{\n 0: { slidesPerView: 1, loop: false },\n 1205: { slidesPerView: 2, loop: false }\n }}\n navigation={false}\n modules={[Pagination, Navigation]}\n >\n {filteredContinuingSections.map(\n (\n {\n slug: sectionSlug,\n progress,\n sectionID,\n chapterOrder,\n courseID,\n courseSlug,\n chapterName,\n chapterSlug,\n title: sectionName,\n courseName,\n properties: { duration }\n }\n ) => {\n const totalDuration = stringToSecond(duration);\n const { videoProgress, videoPlayhead } = progress;\n const remainingSeconds = totalDuration - parseInt(videoProgress || videoPlayhead, 10);\n const progressRatio = Math.ceil(((totalDuration - remainingSeconds) * 100) / totalDuration);\n const unwatched = getRemainingTimePrettyText(remainingSeconds, true);\n const {\n backgroundColor = 'orange-gradient', textColor = 'color-yellow-100', order\n } = chapterConstants[courseID]?.[chapterOrder] || {};\n return (\n <SwiperSlide\n key={sectionSlug}\n >\n <Link\n to={urlParamsSaver(\n `/${courseSlug}/${chapterSlug}/${sectionSlug}`\n )}\n onClick={() => fetchCourseContent(courseSlug, chapterSlug, sectionSlug)}\n >\n <article\n key={sectionSlug}\n className=\"flex justify-center items-center xs:gap-4 w-full shadow-center radius-tl radius-tr max-w-full w-full shrink-0 bg-white h-full\"\n >\n <figure className='flex relative h-full'>\n <div className={`w-full xs:w-44 h-full hidden xs:flex flex-col items-start justify-end px-4 xs:pb-4 py-10 xs:pt-0 radius-tl radius-tr ${backgroundColor}`}>\n <h5 className={`mb-2 text-xs font-medium ${textColor}`}>\n {`Course ${order}`}\n </h5>\n <h6 className='font-bold text-md color-white'>{sectionName}</h6>\n </div>\n <div className='flex justify-center items-center absolute top-0 left-0 w-full h-full'>\n <PlayCircleFill className=\"w-10 h-10\" />\n </div>\n </figure>\n <div className=\"w-full p-4\">\n <div className=\"flex flex-col justify-center items-start w-full\">\n <h5 className=\"color-navy-700 text-sm xs:text-lg lg:text-xl font-bold mb-2 mt-0 truncate\">\n {courseName}\n </h5>\n <div className=\"flex text-xs xs:text-lg flex-col justify-center items-start w-full mb-2 \">\n <p className='font-medium mb-1 xs:mb-2 color-navy-700'>\n {chapterName}\n\n </p>\n <p className='text-md color-navy-700'>\n {`${sectionID} ${sectionName}`}\n </p>\n\n </div>\n </div>\n <div className=\"flex items-center gap-2.5 xs:mb-2\">\n <IconTriangleCircleFilled className=\"w-4 h-4 shrink-0 color-navy-300\" />\n <span className=\"color-navy-300 text-xs sm:text-md\">\n {unwatched}\n </span>\n </div>\n </div>\n </article>\n <div className=\"relative\">\n <div className=\"h-2 radius-bl-xl radius-br-xl bg-navy-50\" />\n <div\n className=\"absolute top-0 left-0 w-full h-2 radius-bl-xl radius-br-xl radius-tl-none radius-tr-xl bg-navy-300\"\n style={{ width: `${progressRatio}%` }}\n >\n <PlayIcon className=\"absolute color-navy-300 w-4 h-4 shrink-0 -right-1 -top-1 z-2\" />\n </div>\n </div>\n </Link>\n\n </SwiperSlide>\n );\n }\n )}\n </Swiper>\n </section>\n <div className=\"custom-pagination mt-5\" />\n </div>\n </div>\n </section>\n )}\n <section>\n <div\n className={classNames(\n { 'pt-10': courses.length <= 0 },\n 'max-w-xl mx-auto py-10 sm:py-18 px-7 xl:px-0'\n )}\n >\n {\n // eslint-disable-next-line no-nested-ternary\n filteredPrograms.length === 0 ? (\n <div className='flex flex-col justify-start items-center w-full py-11'>\n <h6 className='text-lg md:text-2xl font-medium color-red-400 text-center'>Sorry! No result found.</h6>\n <p className='color-red-400 text-sm md:text-xl text-center'>But you might be interested in our other courses.</p>\n </div>\n ) : (\n !coursesLoaded ? (\n <div className='flex w-full justify-center'>\n <span className='c-skeleton-line w-92 h-10 mb-11' />\n </div>\n ) : (\n <Title\n dark\n title=\"Our Certificate Programs\"\n className=\"mb-6 xs:mb-11 text-center text-lg xs:text-3xl xs:text-4xl\"\n />\n )\n )\n }\n <div className=\"card-grid-container grid gap-10 w-full justify-center\" style={{ gridTemplateColumns: 'repeat(auto-fit, minmax(320px, 400px));' }}>\n {filteredPrograms.map(course => {\n return (\n <CourseCardItem\n course={course}\n key={course?.slug}\n type={course?.type === 'skeleton' ? 'skeleton' : undefined}\n setPreviewCourse={selectedCourse => handleOpenClosePreviewModal(selectedCourse)}\n />\n );\n })}\n </div>\n </div>\n </section>\n <section\n className=\"bg-size-cover bg-no-repeat bg-center py-7\"\n style={{\n backgroundImage:\n 'url(\"https://cdn.jotfor.ms/assets/academy/image/light-blue-gradient.svg\")'\n }}\n >\n <div className=\"px-7 xl:px-0 max-w-xl mx-auto\">\n <Title\n light\n title=\"To receive a Jotform Academy certificate, you must\"\n className=\"mb-6 xs:mb-11 text-center text-lg xs:text-3xl xs:text-4xl\"\n />\n <Swiper\n slidesPerView={4}\n spaceBetween={30}\n loop={false}\n pagination={{\n el: '.custom-pagination-orange',\n clickable: true,\n renderBullet: (index, className) => {\n return `<span class=\"${className}\"></span>`;\n }\n }}\n breakpoints={{\n 0: {\n slidesPerView: 1,\n spaceBetween: 30\n },\n 768: {\n slidesPerView: 1,\n spaceBetween: 16\n },\n 1140: {\n slidesPerView: 2,\n spaceBetween: 16\n }\n }}\n navigation={false}\n modules={[Pagination, Navigation]}\n >\n <SwiperSlide className=\"w-full shrink-0\">\n <div className='flex flex-col md:flex-row w-full h-full'>\n <li className=\"flex flex-row gap-2 md:gap-2 items-start text-md sm:text-lg color-white w-full mb-6 md:mb-0 border-b border-r-0 md:border-b-0 md:border-r border-blue-400 pb-8 mb-8 md:mb-0 md:pb-0 md:pr-4 md:mr-4 h-full\">\n <div className=\"mb-1 md:mb-2 flex justify-center items-center bg-white radius-full w-6 h-6 shrink-0\">\n <IconUserFilled className=\"w-4 h-4 color-navy-500\" />\n </div>\n <div className='flex flex-col items-start w-full'>\n <h6 className='text-lg xs:text-md font-medium color-white mb-4'>Have an active Jotform account.</h6>\n <p className='text-sm xs:text-md opacity-70 color-white'>You can either log into your existing account or create a new one to enroll and become eligible for certification.</p>\n </div>\n </li>\n <li className=\"flex flex-row gap-2 md:gap-2 items-start text-md sm:text-lg color-white w-full mb-6 md:mb-0 border-0 md:border-b-0 md:border-r-0 lg:border-r border-orange-500 md:pr-4 md:mr-4 h-full\">\n <div className='mb-1 md:mb-2'>\n <IconTriangleCircleFilled className=\"w-6 h-6 shrink-0 color-white \" />\n </div>\n <div className='flex flex-col items-start w-full'>\n <h6 className='text-lg xs:text-md font-medium color-white mb-4'>Watch all course videos. </h6>\n <p className='text-sm xs:text-md opacity-70 color-white'>You can start with any video you want, although we recommend that you follow the default course order.</p>\n </div>\n </li>\n </div>\n </SwiperSlide>\n <SwiperSlide className=\"w-full shrink-0\">\n <div className='flex flex-col md:flex-row w-full h-full'>\n <li className=\"flex flex-row gap-2 md:gap-2 items-start text-md sm:text-lg color-white w-full mb-6 md:mb-0 border-b border-r-0 md:border-b-0 md:border-r border-yellow-400 pb-8 mb-8 md:mb-0 md:pb-0 md:pr-4 md:mr-4 h-full\">\n <div className=\"mb-1 md:mb-2 flex justify-center items-center bg-white radius-full w-6 h-6 shrink-0\">\n <IconArrowPointerClickFilled className=\"w-4 h-4 color-navy-500 \" />\n </div>\n <div className='flex flex-col items-start w-full'>\n <h6 className='text-lg xs:text-md font-medium color-white mb-4'>Pass all course quizzes.</h6>\n <p className='text-sm xs:text-md opacity-70 color-white'>You can’t take a quiz for a later section if you haven’t completed previous quizzes yet. </p>\n </div>\n </li>\n <li className=\"flex flex-row gap-2 md:gap-2 items-start text-md sm:text-lg color-white w-full h-full\">\n <div className='mb-1 md:mb-2'>\n <IconCheckCircleFilled className=\"w-6 h-6 shrink-0 color-white \" />\n </div>\n <div className='flex flex-col items-start w-full'>\n <h6 className='text-lg xs:text-md font-medium color-white mb-4'>Complete all three courses.</h6>\n <p className='text-sm xs:text-md opacity-70 color-white'>Once you complete all the courses under a certificate program, you will be eligible to get a certificate of achievement.</p>\n </div>\n </li>\n </div>\n </SwiperSlide>\n </Swiper>\n <div className=\"custom-pagination-orange mt-5\" />\n </div>\n </section>\n <section>\n <div\n className={classNames(\n { 'pt-10': courses.length <= 0 },\n 'max-w-xl mx-auto py-10 sm:py-18 px-7 xl:px-0 text-center xl:text-left'\n )}\n >\n {\n firstWishlistItem?.type === 'skeleton' ? (\n <span className='c-skeleton-line w-24 h-7 mb-4 mt-0' />\n ) : (\n <h6 className=\"text-lg xl:text-2xl color-gray-700 mb-6 mt-0 font-medium\">\n Upcoming Courses\n </h6>\n )\n }\n {upcomingPrograms.length > 0 && (\n <div className=\"card-grid-container grid gap-10 w-full justify-center\" style={{ gridTemplateColumns: 'repeat(auto-fit, minmax(320px, 400px));' }}>\n {upcomingPrograms.map(course => {\n const { type, id: upcomingCourseID } = course;\n const isSkeleton = type === 'skeleton';\n return (\n <CourseCardItem\n course={course}\n isWishlistPage={false}\n key={isSkeleton ? upcomingCourseID : course?.slug}\n type={course?.type === 'skeleton' ? 'skeleton' : undefined}\n setPreviewCourse={selectedCourse => handleOpenClosePreviewModal(selectedCourse)}\n />\n );\n })}\n </div>\n )}\n </div>\n </section>\n <section\n className=\"bg-size-cover bg-no-repeat bg-center\"\n style={{\n backgroundImage:\n 'url(\"https://cdn.jotfor.ms/assets/academy/image/light-blue-gradient.svg\")'\n }}\n >\n <div className=\"max-w-xl mx-auto py-10 sm:py-14 px-7 xl:px-0\">\n <div className=\"text-center\">\n <Title light title=\"Don’t see the course you want?\" className=\"text-lg xs:text-3xl xs:text-4xl sm:text-6xl md:text-6xl mb-6\" />\n <Subtitle\n className=\"px-0 md:px-32\"\n light\n title=\"If you would like to learn about something we haven’t covered yet, don’t hesitate to <br> request it using the form below. \"\n />\n <button\n type=\"button\"\n onClick={openModal}\n className=\"bg-green-500 hover:bg-green-600 radius-md color-white text-lg py-3 px-12\"\n >\n Request a course\n </button>\n </div>\n </div>\n </section>\n <InfoBoxSection />\n <CenterVideoSection />\n <Route exact path=\"/courses/:courseSlug/:chapterSlug\">\n {(previewCourse && !loginFlowVisible && previewedChapter) && (\n <CoursePreviewModal\n courses={courses}\n course={previewCourse}\n setPreviewedChapter={setPreviewedChapter}\n setLoginFlowVisible={setLoginFlowVisible}\n setPreviewCourse={course => handleOpenClosePreviewModal(course)}\n previewedChapter={previewedChapter}\n />\n )}\n </Route>\n </>\n );\n};\nexport default CoursesHomepage;\n","const COURSES_META_DESC = 'Want to learn about Jotform from the experts? Enroll in Jotform Academy now to access comprehensive training courses and become a certified Jotform user!';\nconst COURSES_TITLE = 'Jotform Academy Courses';\n\nexport {\n COURSES_TITLE,\n COURSES_META_DESC\n};\n","import classNames from 'classnames';\nimport { bool } from 'prop-types';\nimport React, { useState } from 'react';\nimport { t } from '@jotforminc/translation';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\nimport { COURSE_SELECTORS } from '../../store/selectors';\nimport { videoTranscriptRenderer } from '../../constants';\n\nconst Tabmenu = ({ loading = false }) => {\n const { sectionID, description = '', resources = [] } = useSelector(COURSE_SELECTORS.getActiveCourseSection) || {};\n const { id: programID } = useSelector(COURSE_SELECTORS.getActiveCourse) || {};\n\n const [activeTab, setActiveTab] = useState(1);\n const dispatch = useDispatch();\n\n const seekVideo = time => dispatch(ACTION_CREATORS.handleSeekVideo(time));\n\n const handleTabClick = index => {\n setActiveTab(index);\n };\n\n const isExternalLink = (resourceURL = '') => !resourceURL.includes('www.jotform.com');\n\n const tabs = [\n {\n tabName: 'Session Overview',\n contentRenderer: () => (\n <section className=\"py-10 color-navy-500 text-md line-height-xl\">\n {description}\n </section>\n )\n },\n {\n tabName: 'Transcript',\n contentRenderer: () => videoTranscriptRenderer(programID, sectionID, seekVideo, loading)\n },\n {\n tabName: 'Resources',\n contentRenderer: () => {\n const videos = resources.filter(resource => resource?.type === 'video');\n const helpGuidesNBlogs = resources.filter(resource => resource?.type !== 'video');\n return (\n (\n <section className=\"py-10 color-navy-500 text-md line-height-xl\">\n {\n Array.isArray(resources) && resources.length === 0 && (\n t('There are currently no resources available for this course.')\n )\n }\n {\n videos.length > 0 && (\n <div className='mb-4'>\n <h6 className='color-navy-700 text-md font-bold mb-2'>VIDEOS</h6>\n <ul className='list-disc p-4'>\n {\n videos.map(({ url: videoURL, description: videoDescription, title: videoTitle }) => (\n <li key={videoDescription} className='mb-2'>\n <a\n className='color-blue-500'\n href={isExternalLink(videoURL) ? `https://www.jotform.com/redirect/?l=${videoURL}` : videoURL}\n target='_blank'\n >\n {videoTitle}\n </a>\n {' - '}\n {videoDescription}\n </li>\n ))\n }\n </ul>\n </div>\n )\n }\n {\n helpGuidesNBlogs.length > 0 && (\n <div className='mb-4'>\n <h6 className='color-navy-700 text-md font-bold mb-2'>HELP GUIDE & BLOGS</h6>\n <ul className='list-disc p-4'>\n {\n helpGuidesNBlogs.map(({ url: resourceURL, description: resourceDescription, title: resourceTitle }) => (\n <li key={resourceDescription} className='mb-2'>\n <a\n className='color-blue-500'\n href={resourceURL}\n target='_blank'\n >\n {resourceTitle}\n </a>\n {' - '}\n {resourceDescription}\n </li>\n ))\n }\n </ul>\n </div>\n )\n }\n </section>\n )\n );\n }\n }\n ];\n\n const { contentRenderer = () => null } = tabs[activeTab];\n return (\n <section>\n {\n loading ? (\n <ul className=\"flex w-full overflow-x-scroll xl:overflow-hidden\">\n <li className=\"w-full text-center\">\n <span className='c-skeleton-line w-2/4 h-6' />\n </li>\n <li className=\"w-full text-center\">\n <span className='c-skeleton-line w-2/4 h-6' />\n </li>\n <li className=\"w-full text-center\">\n <span className='c-skeleton-line w-2/4 h-6' />\n </li>\n </ul>\n ) : (\n <ul className=\"flex w-full overflow-x-scroll xl:overflow-hidden\">\n {\n tabs.map(({ tabName, disabled = false }, index) => (\n <li key={tabName} className={classNames('w-full', { 'cursor-not-allowed': disabled })}>\n <button\n type=\"button\"\n style={disabled ? { pointerEvents: 'none', opacity: '0.5' } : {}}\n onClick={() => handleTabClick(index)}\n className={classNames({\n 'color-navy-300 border-b': activeTab !== index,\n 'color-navy-700 font-medium border-b-2': activeTab === index\n }, 'text-md xl:text-xl w-full py-2 px-3 whitespace-nowrap')}\n >\n {tabName}\n </button>\n </li>\n ))\n }\n </ul>\n )\n }\n <div className=\"tab-content md:px-0 px-6\">\n <div>\n {contentRenderer()}\n </div>\n </div>\n </section>\n );\n};\n\nexport default Tabmenu;\n\nTabmenu.propTypes = {\n loading: bool\n};\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { IconExclamationCircle } from '@jotforminc/svg-icons';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\nimport { UI_SELECTORS } from '../../store/selectors';\n\nconst ExitQuizModal = () => {\n const history = useHistory();\n const dispatch = useDispatch();\n\n const exitQuizModalPayload = useSelector(UI_SELECTORS.getExitQuizModalPayload);\n\n const setActiveCourseSection = course => dispatch(ACTION_CREATORS.setActiveCourseSection(course));\n const handlePrevNextCourseContent = prev => dispatch(ACTION_CREATORS.handlePrevNextCourseContent(prev, history));\n const toggleExitQuizModal = (courseID, payload) => dispatch(ACTION_CREATORS.toggleExitQuizModal(courseID, payload));\n\n const handleLeaveQuiz = () => {\n const {\n course, courseURL, prev, pageURL\n } = exitQuizModalPayload;\n if (course) {\n setActiveCourseSection(course);\n history.push(courseURL);\n } else if (pageURL) {\n history.push(pageURL);\n } else {\n handlePrevNextCourseContent(prev);\n }\n toggleExitQuizModal(false);\n };\n\n return (\n <div className='absolute top-0 left-0 flex justify-center items-center w-full h-full bg-navy-700 bg-opacity-40 p-4 xs:p-0'>\n <div className='flex flex-col justify-center items-center w-120 bg-white shadow-center radius-lg p-8'>\n <div className='flex justify-center items-center bg-yellow-500 bg-opacity-30 radius-lg w-20 h-20 mb-8'>\n <IconExclamationCircle className='w-10 h-10 color-yellow-500' />\n </div>\n <h3 className='color-navy-700 font-medium text-center text-lg mb-2'>Exit the quiz?</h3>\n <p className='color-navy-500 text-sm text-center mb-8'>If you leave the quiz before completing it, you won’t receive your course badge and will have to retake the quiz.</p>\n\n <div className='flex flex-col xs:flex-row justify-center items-center gap-4'>\n <button\n type=\"button\"\n onClick={() => toggleExitQuizModal(false)}\n className='bg-blue-500 color-white font-medium text-sm py-3 px-5 radius hover:bg-opacity-70 duration-300'\n >\n Stay on this quiz page\n </button>\n <button\n type=\"button\"\n onClick={handleLeaveQuiz}\n className='border border-navy-100 color-navy-500 font-medium text-sm py-3 px-5 radius hover:bg-opacity-70 duration-300'\n >\n Leave the quiz page\n </button>\n </div>\n </div>\n </div>\n );\n};\n\nexport default ExitQuizModal;\n","import { useEffect, useRef } from 'react';\n\nexport const useInterval = (callback, delay = null) => {\n const savedCallback = useRef(callback);\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (delay === null) {\n return;\n }\n\n const id = setInterval(() => savedCallback.current(), delay);\n\n return () => clearInterval(id);\n }, [delay]);\n};\n","import React, { useState, useEffect } from 'react';\nimport { number } from 'prop-types';\n\nimport { t } from '@jotforminc/translation';\nimport { IconAlarmClockFilled } from '@jotforminc/svg-icons';\n\nimport { useDispatch } from 'react-redux';\nimport { useInterval } from '../../hooks';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\n\nconst CooldownCountDown = ({ coolDownUntil = null }) => {\n const dispatch = useDispatch();\n\n const handleEndQuizCooldown = () => dispatch(ACTION_CREATORS.handleEndQuizCooldown());\n\n const getRemainingTime = () => {\n const now = new Date().getTime();\n const expires = new Date(coolDownUntil).getTime();\n const distance = expires - now;\n return distance;\n };\n\n const [countdown, setCountdown] = useState(getRemainingTime() < 0 ? '00:00:00' : '04:00:00');\n const [delay, setDelay] = useState(getRemainingTime() < 0 ? null : 1000);\n\n useInterval(() => {\n const distance = getRemainingTime();\n if (distance < 0) {\n setCountdown('00:00:00');\n setDelay(null);\n }\n\n let hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\n let minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\n let seconds = Math.floor((distance % (1000 * 60)) / 1000);\n\n if (hours < 10) hours = `0${hours}`;\n if (minutes < 10) minutes = `0${minutes}`;\n if (seconds < 10) seconds = `0${seconds}`;\n\n if (seconds >= 0) setCountdown(`${hours}:${minutes}:${seconds}`);\n }, delay);\n\n const digitsRenderer = digits => {\n const splitedDigits = digits.split('');\n return (\n <div className='flex justify-center items-center'>\n {splitedDigits.map((hourDigit, index) => (\n <span className={`count-down-bg flex justify-center items-center text-6xl p-2 font-bold border-r w-11 color-white${index === 0 ? ' border-white' : ''} `}>{hourDigit}</span>\n ))}\n </div>\n );\n };\n\n const splitedCountdown = countdown.split(':');\n\n useEffect(() => {\n if (countdown !== '00:00:00') return;\n\n handleEndQuizCooldown();\n }, [countdown]);\n\n return (\n <div className='radius py-16 min-h-120 flex flex-col justify-center items-center bg-navy-50'>\n <div className=\"flex justify-center items-center w-32 h-32 bg-primary radius-xl mb-8\">\n <IconAlarmClockFilled className=\"w-14 h-14 color-blue-500\" />\n </div>\n <h6 className='color-navy-700 text-xl mb-6 text-center px-20 sm:px-0'>{t('You have the opportunity to redo the exam after four hours.')}</h6>\n <section className='flex'>\n {\n splitedCountdown.map((countdownElement, index) => {\n const countdownTitles = ['hours', 'minutes', 'seconds'];\n const isLastCountdownElement = index === splitedCountdown.length - 1;\n return (\n <div className='flex justify-center items-center'>\n <div className='flex flex-col justify-center items-center'>\n { digitsRenderer(countdownElement) }\n <p className='text-15 color-navy-300'>{countdownTitles[index]}</p>\n </div>\n { !isLastCountdownElement && <div className='text-6xl color-navy-700 mx-2 -mt-6'>:</div> }\n </div>\n );\n })\n }\n </section>\n </div>\n );\n};\n\nCooldownCountDown.propTypes = {\n coolDownUntil: number\n};\n\nexport default CooldownCountDown;\n","/* eslint-disable max-len */\nimport React from 'react';\nimport { string, number } from 'prop-types';\n\nconst CertificateViewer = ({\n username = '', programName = '', zoomRatio = 1, startDate = '', expireDate = ''\n}) => {\n return (\n <svg\n className='w-92'\n style={{\n transform: `scale(${zoomRatio})`,\n transformOrigin: 'left top'\n\n }}\n viewBox=\"0 0 372 251\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g filter=\"url(#filter0_dd_5_8)\">\n <rect\n width=\"355.09\"\n height=\"234.478\"\n transform=\"translate(8 4)\"\n fill=\"white\"\n />\n <path\n d=\"M164.253 169.265C166.196 171.148 164.823 174.375 162.064 174.375L144.799 174.375C141.393 174.375 138.621 171.688 138.621 168.386L138.621 151.649C138.621 148.975 141.95 147.644 143.893 149.527L164.253 169.265Z\"\n fill=\"#F4F7FF\"\n />\n <path\n d=\"M191.243 170.568C186.133 165.491 186.133 157.259 191.243 152.182L209.687 133.859C214.797 128.782 223.083 128.782 228.193 133.859C233.304 138.936 233.304 147.167 228.193 152.245L209.75 170.568C204.639 175.645 196.354 175.645 191.243 170.568Z\"\n fill=\"#F4F7FF\"\n />\n <path\n d=\"M142.516 124.527C137.405 119.45 137.405 111.218 142.516 106.141L173.554 75.2831C178.665 70.206 186.951 70.206 192.061 75.2831C197.171 80.3602 197.171 88.5919 192.061 93.669L161.022 124.527C155.912 129.604 147.626 129.604 142.516 124.527Z\"\n fill=\"#F4F7FF\"\n />\n <path\n d=\"M167.892 146.52C162.782 141.443 162.782 133.211 167.892 128.134L209.831 86.4687C214.942 81.3916 223.227 81.3916 228.338 86.4687C233.448 91.5459 233.448 99.7775 228.338 104.855L186.399 146.52C181.289 151.597 173.003 151.597 167.892 146.52Z\"\n fill=\"#F4F7FF\"\n />\n <path\n d=\"M163.202 193.181H162.541L162.541 188.397H165.449V189.011H163.202V190.549H165.24V191.17H163.202V193.181Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M167.343 192.715C167.883 192.715 168.355 192.31 168.355 191.554C168.355 190.805 167.883 190.401 167.343 190.401C166.803 190.401 166.331 190.805 166.331 191.554C166.331 192.31 166.803 192.715 167.343 192.715ZM167.343 189.834C168.314 189.834 169.003 190.569 169.003 191.554C169.003 192.546 168.314 193.282 167.343 193.282C166.371 193.282 165.683 192.546 165.683 191.554C165.683 190.569 166.371 189.834 167.343 189.834Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M171.92 192.789C171.745 193.127 171.34 193.282 170.962 193.282C170.206 193.282 169.747 192.715 169.747 191.98V189.935H170.382V191.885C170.382 192.33 170.584 192.722 171.117 192.722C171.63 192.722 171.886 192.384 171.886 191.892V189.935H172.521V192.58C172.521 192.836 172.541 193.066 172.554 193.181H171.947C171.934 193.106 171.92 192.924 171.92 192.789Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M174.237 191.305V193.181H173.603V189.935H174.224V190.401C174.46 189.996 174.845 189.841 175.222 189.841C175.998 189.841 176.383 190.401 176.383 191.123V193.181H175.749V191.231C175.749 190.778 175.56 190.414 174.993 190.414C174.494 190.414 174.237 190.812 174.237 191.305Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M177.77 191.548C177.77 192.216 178.114 192.708 178.721 192.708C179.302 192.708 179.659 192.202 179.659 191.534C179.659 190.866 179.308 190.407 178.728 190.407C178.148 190.407 177.77 190.88 177.77 191.548ZM179.666 192.742V192.688C179.511 192.998 179.167 193.268 178.66 193.268C177.709 193.268 177.122 192.513 177.122 191.548C177.122 190.63 177.743 189.847 178.66 189.847C179.234 189.847 179.544 190.131 179.652 190.394V188.295H180.28V192.58C180.28 192.89 180.307 193.127 180.314 193.181H179.7C179.686 193.106 179.666 192.938 179.666 192.742Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M181.77 191.224H183.545C183.531 190.758 183.228 190.394 182.654 190.394C182.121 190.394 181.797 190.805 181.77 191.224ZM183.639 192.067L184.186 192.256C184.004 192.83 183.484 193.282 182.729 193.282C181.858 193.282 181.096 192.648 181.096 191.548C181.096 190.529 181.831 189.834 182.648 189.834C183.646 189.834 184.206 190.522 184.206 191.534C184.206 191.615 184.199 191.696 184.193 191.737H181.75C181.764 192.317 182.182 192.722 182.729 192.722C183.255 192.722 183.518 192.432 183.639 192.067Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M186.817 189.901V190.576C186.723 190.563 186.629 190.556 186.541 190.556C186.008 190.556 185.65 190.839 185.65 191.554V193.181H185.016V189.935H185.637V190.502C185.873 190.002 186.278 189.881 186.608 189.881C186.696 189.881 186.784 189.895 186.817 189.901Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M192.176 193.181L191.569 192.546C191.177 192.985 190.759 193.262 190.226 193.262C189.322 193.262 188.843 192.654 188.843 192.04C188.843 191.419 189.18 191.082 189.686 190.704L189.754 190.65L189.666 190.556C189.443 190.32 189.092 189.955 189.092 189.49C189.092 188.714 189.733 188.295 190.327 188.295C191.049 188.295 191.596 188.747 191.596 189.463C191.596 189.935 191.258 190.272 190.921 190.522L190.678 190.704L191.569 191.629L192.635 190.441V191.312L191.987 192.06L193.073 193.181H192.176ZM190.233 192.654C190.597 192.654 190.86 192.418 191.123 192.128L191.144 192.101L190.172 191.082L189.929 191.264C189.7 191.44 189.524 191.656 189.524 191.986C189.524 192.31 189.794 192.654 190.233 192.654ZM189.747 189.449C189.747 189.719 189.956 189.955 190.111 190.117L190.26 190.279L190.584 190.036C190.867 189.827 190.941 189.645 190.941 189.442C190.941 189.125 190.685 188.862 190.334 188.862C190.057 188.862 189.747 189.071 189.747 189.449Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M197.171 193.282C195.936 193.282 194.796 192.384 194.796 190.785C194.796 189.186 195.983 188.295 197.171 188.295C198.264 188.295 199.033 188.889 199.276 189.814L198.662 190.029C198.48 189.307 197.953 188.903 197.171 188.903C196.3 188.903 195.47 189.537 195.47 190.785C195.47 192.034 196.3 192.675 197.171 192.675C197.987 192.675 198.5 192.182 198.696 191.527L199.283 191.743C199.026 192.641 198.271 193.282 197.171 193.282Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M203.068 193.181H200.16V188.397H203.068V189.011H200.821V190.482H202.859V191.102H200.821V192.567H203.068V193.181Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M204.419 190.785C204.419 192.034 205.256 192.675 206.146 192.675C207.037 192.675 207.874 192.034 207.874 190.785C207.874 189.537 207.037 188.903 206.146 188.903C205.256 188.903 204.419 189.537 204.419 190.785ZM203.744 190.785C203.744 189.186 204.945 188.295 206.146 188.295C207.347 188.295 208.548 189.186 208.548 190.785C208.548 192.384 207.347 193.282 206.146 193.282C204.945 193.282 203.744 192.384 203.744 190.785Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M169.183 184.181L168.731 182.98H166.707L166.262 184.181H165.405L167.267 179.397H168.205L170.067 184.181H169.183ZM167.719 180.274L166.99 182.231H168.448L167.719 180.274Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M171.415 185.51H170.578L171.368 183.789L169.964 180.895H170.848L171.793 182.973L172.677 180.895H173.507L171.415 185.51Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M175.138 179.889V180.895H175.819V181.59H175.138V183.114C175.138 183.405 175.266 183.526 175.556 183.526C175.664 183.526 175.792 183.506 175.826 183.499V184.147C175.779 184.167 175.63 184.221 175.347 184.221C174.74 184.221 174.362 183.857 174.362 183.243V181.59H173.755V180.895H173.923C174.274 180.895 174.429 180.672 174.429 180.382V179.889H175.138Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M177.137 182.177H178.75C178.736 181.792 178.48 181.448 177.94 181.448C177.447 181.448 177.164 181.826 177.137 182.177ZM178.837 183.034L179.499 183.243C179.323 183.816 178.804 184.282 178.014 184.282C177.124 184.282 176.334 183.634 176.334 182.521C176.334 181.482 177.103 180.793 177.933 180.793C178.945 180.793 179.539 181.461 179.539 182.5C179.539 182.629 179.526 182.737 179.519 182.75H177.117C177.137 183.249 177.528 183.607 178.014 183.607C178.487 183.607 178.73 183.357 178.837 183.034Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M183.364 180.895L182.015 182.285L183.391 184.181H182.433L181.468 182.838L181.063 183.263V184.181H180.287V179.295H181.063V182.224L182.325 180.895H183.364Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M184.733 184.181H183.958V180.895H184.733V184.181ZM183.836 179.741C183.836 179.457 184.065 179.228 184.342 179.228C184.626 179.228 184.855 179.457 184.855 179.741C184.855 180.024 184.626 180.247 184.342 180.247C184.065 180.247 183.836 180.024 183.836 179.741Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M186.526 182.285V184.181H185.743V180.895H186.506V181.333C186.722 180.955 187.113 180.8 187.477 180.8C188.28 180.8 188.665 181.38 188.665 182.102V184.181H187.882V182.237C187.882 181.832 187.7 181.509 187.207 181.509C186.762 181.509 186.526 181.853 186.526 182.285Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M194.793 180.159H193.235V184.181H192.425V180.159H190.873V179.397H194.793V180.159Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M194.614 183.29C194.614 182.703 195.046 182.379 195.606 182.298L196.45 182.17C196.639 182.143 196.693 182.048 196.693 181.934C196.693 181.657 196.504 181.434 196.072 181.434C195.66 181.434 195.431 181.697 195.397 182.028L194.682 181.866C194.743 181.299 195.255 180.793 196.065 180.793C197.077 180.793 197.462 181.367 197.462 182.021V183.654C197.462 183.951 197.496 184.147 197.502 184.181H196.774C196.767 184.16 196.74 184.025 196.74 183.762C196.585 184.012 196.261 184.282 195.728 184.282C195.04 184.282 194.614 183.809 194.614 183.29ZM195.876 183.668C196.315 183.668 196.693 183.459 196.693 182.818V182.669L195.836 182.797C195.593 182.838 195.397 182.973 195.397 183.243C195.397 183.465 195.566 183.668 195.876 183.668Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M199.191 182.285V184.181H198.408V180.895H199.171V181.333C199.386 180.955 199.778 180.8 200.142 180.8C200.945 180.8 201.33 181.38 201.33 182.102V184.181H200.547V182.237C200.547 181.832 200.365 181.509 199.872 181.509C199.427 181.509 199.191 181.853 199.191 182.285Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M205.36 180.895L204.01 182.285L205.387 184.181H204.428L203.463 182.838L203.059 183.263V184.181H202.283V179.295H203.059V182.224L204.32 180.895H205.36Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M170.81 177.171C170.81 177.126 170.82 177.071 170.801 177.026C170.783 176.962 170.738 176.898 170.71 176.843C170.719 176.834 170.728 176.834 170.747 176.825C170.765 176.862 170.783 176.889 170.801 176.925C170.856 177.017 170.902 177.017 170.947 176.925C170.993 176.825 171.02 176.707 171.075 176.606C171.394 175.987 171.713 175.367 172.05 174.757C172.46 174 172.897 173.253 173.307 172.487C173.754 171.667 174.182 170.829 174.601 169.999C174.857 169.489 175.094 168.97 175.331 168.45C175.376 168.359 175.413 168.268 175.467 168.159C175.431 168.159 175.403 168.14 175.376 168.15C174.848 168.332 174.31 168.505 173.781 168.705C173.298 168.888 172.824 169.079 172.351 169.289C171.694 169.571 171.038 169.854 170.409 170.173C169.854 170.455 169.325 170.783 168.787 171.102C167.721 171.731 166.664 172.378 165.598 173.007C165.315 173.171 165.015 173.308 164.714 173.453C164.65 173.49 164.577 173.508 164.504 173.535C164.404 173.563 164.358 173.526 164.386 173.417C164.413 173.289 164.513 173.226 164.614 173.162C164.869 173.016 165.124 172.879 165.379 172.733C166.327 172.205 167.275 171.685 168.213 171.139C168.888 170.747 169.544 170.328 170.2 169.899C171.549 169.033 172.888 168.159 174.228 167.284C174.866 166.874 175.504 166.454 176.142 166.054C176.315 165.944 176.442 165.807 176.506 165.598C176.606 165.27 176.743 164.96 176.871 164.641C177.044 164.194 177.208 163.748 177.372 163.301C177.663 162.509 177.955 161.716 178.247 160.923C178.511 160.203 178.775 159.483 179.04 158.754C179.267 158.143 179.495 157.524 179.723 156.913C179.933 156.348 180.133 155.792 180.352 155.227C180.798 154.052 181.254 152.867 181.837 151.746C181.992 151.445 182.165 151.154 182.384 150.898C182.63 150.607 183.004 150.579 183.232 150.944C183.359 151.154 183.459 151.391 183.541 151.627C183.787 152.384 183.924 153.168 184.034 153.96C184.134 154.708 184.252 155.455 184.362 156.202C184.434 156.703 184.489 157.205 184.571 157.697C184.708 158.517 184.854 159.337 185 160.157C185.027 160.312 185.054 160.476 185.082 160.649C185.382 160.495 185.665 160.358 185.947 160.212C187.26 159.519 188.59 158.882 189.957 158.326C191.051 157.879 192.153 157.451 193.311 157.196C193.876 157.068 194.441 156.959 195.015 156.959C195.233 156.959 195.443 157.004 195.634 157.132C195.926 157.323 195.999 157.624 196.008 157.934C196.017 158.417 195.908 158.872 195.735 159.319C195.48 159.966 195.106 160.54 194.687 161.078C194.204 161.697 193.712 162.299 193.229 162.909C193.11 163.064 193.01 163.228 192.91 163.392C192.828 163.538 192.837 163.593 192.992 163.657C193.238 163.757 193.493 163.839 193.748 163.903C194.395 164.067 195.06 164.194 195.707 164.358C196.473 164.559 197.211 164.841 197.831 165.361C198.368 165.807 198.769 166.354 199.07 166.974C199.416 167.685 199.726 168.414 200.063 169.134C200.218 169.471 200.382 169.817 200.574 170.136C201.039 170.911 201.686 171.476 202.515 171.831C203.289 172.159 204.11 172.36 204.948 172.469C205.404 172.533 205.868 172.578 206.324 172.633C206.351 172.633 206.379 172.651 206.406 172.679C206.215 172.697 206.023 172.733 205.832 172.743C205.513 172.743 205.194 172.715 204.875 172.715C204.401 172.706 203.946 172.606 203.49 172.496C202.597 172.278 201.749 171.941 201.066 171.284C200.546 170.783 200.173 170.182 199.881 169.516C199.635 168.961 199.398 168.396 199.143 167.84C198.815 167.138 198.46 166.454 197.904 165.889C197.412 165.388 196.819 165.06 196.163 164.851C195.826 164.741 195.48 164.659 195.133 164.568C194.495 164.413 193.857 164.267 193.22 164.112C193.065 164.076 192.91 164.003 192.773 163.93C192.591 163.83 192.527 163.675 192.618 163.493C192.7 163.31 192.819 163.128 192.937 162.973C193.466 162.308 194.021 161.652 194.541 160.978C195.024 160.349 195.443 159.683 195.662 158.909C195.771 158.526 195.844 158.143 195.753 157.742C195.698 157.496 195.543 157.36 195.316 157.278C195.069 157.196 194.823 157.205 194.568 157.25C194.094 157.323 193.63 157.405 193.156 157.496C192.973 157.533 192.8 157.606 192.618 157.66C192.427 157.715 192.235 157.751 192.053 157.815C191.051 158.189 190.048 158.553 189.073 158.991C187.788 159.556 186.549 160.212 185.3 160.841C185.154 160.914 185.145 160.932 185.182 161.105C185.446 162.317 185.792 163.502 186.193 164.677C186.649 166.017 187.187 167.32 187.834 168.569C188.353 169.58 188.918 170.564 189.565 171.494C189.793 171.831 190.075 172.132 190.322 172.442C190.358 172.487 190.385 172.533 190.404 172.588C190.422 172.66 190.394 172.733 190.312 172.779C190.23 172.815 190.185 172.779 190.13 172.724C189.911 172.451 189.675 172.196 189.483 171.913C189.082 171.312 188.563 170.829 188.016 170.364C187.597 170.009 187.159 169.653 186.713 169.325C186.002 168.806 185.255 168.341 184.425 168.022C184.024 167.867 183.614 167.721 183.204 167.594C182.931 167.512 182.648 167.457 182.366 167.42C181.792 167.348 181.227 167.275 180.643 167.302C180.224 167.32 179.796 167.293 179.377 167.329C178.793 167.393 178.219 167.484 177.645 167.594C177.162 167.685 176.688 167.812 176.214 167.931C176.06 167.967 175.914 168.022 175.768 168.049C175.567 168.086 175.522 168.25 175.458 168.396C175.057 169.225 174.674 170.063 174.264 170.883C173.872 171.667 173.453 172.433 173.034 173.207C172.879 173.499 172.697 173.781 172.533 174.073C172.041 174.948 171.521 175.814 171.111 176.725C171.056 176.834 171.011 176.953 170.974 177.071C170.965 177.108 170.965 177.144 170.965 177.181C170.902 177.171 170.856 177.171 170.81 177.171ZM176.515 165.789C176.524 165.789 176.533 165.798 176.543 165.798C176.615 165.744 176.688 165.689 176.761 165.643C177.928 164.905 179.094 164.167 180.27 163.447C181.391 162.764 182.521 162.117 183.651 161.461C184.043 161.233 184.434 161.014 184.826 160.795C184.854 160.777 184.89 160.722 184.881 160.695C184.826 160.385 184.753 160.075 184.699 159.765C184.589 159.091 184.471 158.408 184.371 157.733C184.243 156.895 184.143 156.056 184.015 155.227C183.879 154.325 183.742 153.423 183.578 152.521C183.496 152.074 183.368 151.627 183.177 151.208C183.104 151.044 183.004 150.917 182.831 150.844C182.749 150.807 182.676 150.826 182.594 150.871C182.393 150.999 182.275 151.181 182.156 151.372C181.719 152.11 181.382 152.885 181.054 153.669C180.853 154.143 180.662 154.626 180.479 155.109C180.297 155.573 180.124 156.029 179.951 156.494C179.841 156.786 179.741 157.077 179.632 157.369C179.441 157.897 179.24 158.417 179.049 158.945C178.857 159.456 178.666 159.975 178.484 160.485C178.283 161.023 178.074 161.57 177.873 162.108C177.645 162.718 177.427 163.338 177.199 163.948C177.007 164.459 176.807 164.969 176.615 165.488C176.579 165.598 176.552 165.698 176.515 165.789ZM184.945 161.005C184.908 161.023 184.89 161.032 184.872 161.041C184.389 161.315 183.906 161.579 183.432 161.861C182.575 162.363 181.719 162.855 180.871 163.365C179.914 163.948 178.967 164.541 178.019 165.133C177.509 165.452 176.998 165.789 176.488 166.108C176.36 166.19 176.278 166.3 176.242 166.445C176.205 166.591 176.142 166.728 176.087 166.855C175.959 167.165 175.823 167.466 175.686 167.767C175.668 167.812 175.659 167.867 175.64 167.913C175.996 167.812 176.342 167.712 176.688 167.63C176.98 167.557 177.272 167.484 177.563 167.43C177.809 167.375 178.064 167.348 178.311 167.302C178.675 167.247 179.04 167.184 179.413 167.147C179.696 167.12 179.987 167.129 180.279 167.129C180.953 167.129 181.619 167.102 182.293 167.22C182.594 167.275 182.894 167.329 183.195 167.411C183.523 167.493 183.851 167.585 184.17 167.703C184.498 167.821 184.817 167.967 185.127 168.122C185.437 168.277 185.747 168.432 186.029 168.614C186.512 168.933 186.986 169.27 187.451 169.626C187.834 169.927 188.198 170.255 188.572 170.574C188.599 170.592 188.617 170.61 188.654 170.637C186.859 167.657 185.71 164.413 184.945 161.005ZM170.902 169.772C170.902 169.781 170.911 169.781 170.911 169.79C170.938 169.781 170.956 169.772 170.984 169.763C171.129 169.69 171.275 169.608 171.43 169.544C172.177 169.234 172.916 168.915 173.663 168.614C174.073 168.45 174.492 168.323 174.911 168.186C175.039 168.14 175.176 168.113 175.303 168.068C175.422 168.022 175.531 167.967 175.586 167.831C175.768 167.375 175.959 166.919 176.151 166.464C176.169 166.427 176.16 166.391 176.178 166.318C174.392 167.484 172.642 168.633 170.902 169.772Z\"\n fill=\"#0A1551\"\n />\n <text\n transform=\"translate(109.045 133.132)\"\n fill=\"#0A1551\"\n xmlSpace=\"preserve\"\n style={{ whiteSpace: 'pre' }}\n fontFamily=\"Circular\"\n fontSize=\"5.90411\"\n letterSpacing=\"0px\"\n >\n <tspan\n x=\"0.340431\"\n y=\"5.65205\"\n >\n {`Certified: ${startDate} through ${expireDate}`}\n </tspan>\n </text>\n <text\n transform=\"translate(101.545 122.758)\"\n fill=\"#0A1551\"\n xmlSpace=\"preserve\"\n style={{ whiteSpace: 'pre' }}\n fontFamily=\"Circular\"\n fontSize=\"5.90411\"\n letterSpacing=\"0px\"\n >\n <tspan\n x=\"0.471825\"\n y=\"5.65205\"\n >\n for successfully completing the\n </tspan>\n </text>\n\n <text\n y=\"128.16\"\n x=\"186\"\n fill=\"#0A1551\"\n xmlSpace=\"default\"\n width=\"100\"\n style={{ whiteSpace: 'pre' }}\n fontFamily=\"Circular\"\n fontSize=\"5.90411\"\n letterSpacing=\"0px\"\n >\n <tspan\n font-weight=\"bold\"\n >\n {programName}\n </tspan>\n <tspan>\n {' '}\n Program.\n </tspan>\n </text>\n <text\n y=\"116\"\n transform=\"translate(190)\"\n fill=\"#0A1551\"\n xmlSpace=\"default\"\n width=\"100%\"\n textAnchor=\"center\"\n style={{ whiteSpace: 'pre' }}\n fontFamily=\"Lobster\"\n fontSize=\"13.8325\"\n letterSpacing=\"0px\"\n >\n <tspan\n x=\"0\"\n textAnchor=\"middle\"\n >\n {username}\n </tspan>\n </text>\n <path\n d=\"M137.92 95.1753H136.52L136.52 98.824H135.942V95.1753H134.542L134.542 94.638H137.92V95.1753Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M139.005 97.1531V98.824H138.45V94.5494H139.005V96.3148C139.211 96.0137 139.542 95.9015 139.867 95.9015C140.546 95.9015 140.882 96.3915 140.882 97.0233V98.824H140.327V97.1177C140.327 96.7221 140.162 96.4033 139.666 96.4033C139.241 96.4033 139.016 96.734 139.005 97.1531Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M142.314 98.824H141.765V95.9841H142.314V98.824ZM141.641 94.9096C141.641 94.6852 141.818 94.5081 142.037 94.5081C142.261 94.5081 142.438 94.6852 142.438 94.9096C142.438 95.128 142.261 95.3052 142.037 95.3052C141.818 95.3052 141.641 95.128 141.641 94.9096Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M142.993 98.086L143.494 97.9089C143.53 98.2041 143.754 98.4402 144.156 98.4402C144.469 98.4402 144.64 98.2631 144.64 98.0624C144.64 97.8853 144.51 97.7495 144.274 97.6963L143.79 97.5901C143.347 97.4956 143.081 97.1945 143.081 96.793C143.081 96.3089 143.536 95.8956 144.091 95.8956C144.87 95.8956 145.112 96.4033 145.171 96.6572L144.681 96.8402C144.658 96.6926 144.539 96.3679 144.091 96.3679C143.807 96.3679 143.618 96.5509 143.618 96.7458C143.618 96.917 143.725 97.041 143.943 97.0882L144.404 97.1886C144.917 97.3008 145.189 97.6137 145.189 98.0329C145.189 98.4343 144.852 98.9126 144.15 98.9126C143.37 98.9126 143.04 98.4107 142.993 98.086Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M148.596 96.4092C148.148 96.4092 147.734 96.7399 147.734 97.4011C147.734 98.0506 148.142 98.3989 148.602 98.3989C149.134 98.3989 149.329 98.0388 149.394 97.8144L149.884 98.027C149.748 98.4343 149.34 98.9126 148.602 98.9126C147.776 98.9126 147.168 98.2631 147.168 97.4011C147.168 96.5155 147.788 95.8956 148.596 95.8956C149.352 95.8956 149.742 96.3679 149.86 96.7989L149.358 97.0114C149.287 96.734 149.081 96.4092 148.596 96.4092Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M150.866 97.1118H152.419C152.407 96.7044 152.141 96.3856 151.639 96.3856C151.173 96.3856 150.89 96.7458 150.866 97.1118ZM152.501 97.8498L152.98 98.0151C152.82 98.517 152.366 98.9126 151.704 98.9126C150.943 98.9126 150.276 98.3576 150.276 97.3952C150.276 96.5037 150.919 95.8956 151.634 95.8956C152.507 95.8956 152.997 96.4978 152.997 97.3834C152.997 97.4543 152.991 97.5251 152.986 97.5605H150.848C150.86 98.0683 151.226 98.4225 151.704 98.4225C152.165 98.4225 152.395 98.1687 152.501 97.8498Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M155.282 95.9546V96.545C155.2 96.5332 155.117 96.5273 155.04 96.5273C154.574 96.5273 154.261 96.7753 154.261 97.4011V98.824H153.706V95.9841H154.249V96.4801C154.456 96.0432 154.81 95.9369 155.099 95.9369C155.176 95.9369 155.253 95.9487 155.282 95.9546Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M156.768 95.0867V95.9841H157.382V96.486H156.768V97.962C156.768 98.2218 156.874 98.3517 157.163 98.3517C157.234 98.3517 157.334 98.3399 157.382 98.3281V98.8004C157.334 98.8181 157.193 98.8535 157.004 98.8535C156.52 98.8535 156.213 98.5583 156.213 98.0447V96.486H155.669V95.9841H155.823C156.13 95.9841 156.26 95.7952 156.26 95.5472V95.0867H156.768Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M158.671 98.824H158.122V95.9841H158.671V98.824ZM157.998 94.9096C157.998 94.6852 158.175 94.5081 158.394 94.5081C158.618 94.5081 158.795 94.6852 158.795 94.9096C158.795 95.128 158.618 95.3052 158.394 95.3052C158.175 95.3052 157.998 95.128 157.998 94.9096Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M160.72 94.5317C160.909 94.5317 161.027 94.5731 161.05 94.5908V95.0867C161.021 95.0749 160.95 95.0513 160.808 95.0513C160.613 95.0513 160.36 95.1398 160.36 95.5295V95.9841H162.237V98.824H161.688V96.486H160.36V98.824H159.787V96.486H159.261V95.9841H159.787V95.5059C159.787 94.8742 160.206 94.5317 160.72 94.5317ZM161.564 94.8978C161.564 94.6734 161.741 94.4963 161.96 94.4963C162.184 94.4963 162.361 94.6734 162.361 94.8978C162.361 95.1162 162.184 95.2934 161.96 95.2934C161.741 95.2934 161.564 95.1162 161.564 94.8978Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M164.372 96.4092C163.923 96.4092 163.51 96.7399 163.51 97.4011C163.51 98.0506 163.917 98.3989 164.377 98.3989C164.909 98.3989 165.104 98.0388 165.169 97.8144L165.659 98.027C165.523 98.4343 165.115 98.9126 164.377 98.9126C163.551 98.9126 162.943 98.2631 162.943 97.4011C162.943 96.5155 163.563 95.8956 164.372 95.8956C165.127 95.8956 165.517 96.3679 165.635 96.7989L165.133 97.0114C165.062 96.734 164.856 96.4092 164.372 96.4092Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M166.104 98.0624C166.104 97.5546 166.476 97.2712 166.966 97.2004L167.733 97.0882C167.904 97.0646 167.952 96.976 167.952 96.8757C167.952 96.5982 167.769 96.3679 167.338 96.3679C166.948 96.3679 166.73 96.61 166.694 96.9406L166.163 96.8166C166.222 96.2734 166.712 95.8956 167.326 95.8956C168.176 95.8956 168.507 96.3797 168.507 96.9347V98.3576C168.507 98.6056 168.53 98.7532 168.542 98.824H167.999C167.987 98.7532 167.969 98.6469 167.969 98.4402C167.845 98.641 167.562 98.9126 167.054 98.9126C166.476 98.9126 166.104 98.5111 166.104 98.0624ZM167.131 98.4461C167.586 98.4461 167.952 98.2277 167.952 97.6078V97.4779L167.084 97.6078C166.848 97.6432 166.671 97.779 166.671 98.0329C166.671 98.2454 166.848 98.4461 167.131 98.4461Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M170.115 95.0867V95.9841H170.729V96.486H170.115V97.962C170.115 98.2218 170.221 98.3517 170.511 98.3517C170.582 98.3517 170.682 98.3399 170.729 98.3281V98.8004C170.682 98.8181 170.54 98.8535 170.351 98.8535C169.867 98.8535 169.56 98.5583 169.56 98.0447V96.486H169.017V95.9841H169.171C169.478 95.9841 169.607 95.7952 169.607 95.5472V95.0867H170.115Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M171.801 97.1118H173.354C173.342 96.7044 173.077 96.3856 172.575 96.3856C172.108 96.3856 171.825 96.7458 171.801 97.1118ZM173.437 97.8498L173.915 98.0151C173.756 98.517 173.301 98.9126 172.64 98.9126C171.878 98.9126 171.211 98.3576 171.211 97.3952C171.211 96.5037 171.854 95.8956 172.569 95.8956C173.443 95.8956 173.933 96.4978 173.933 97.3834C173.933 97.4543 173.927 97.5251 173.921 97.5605H171.784C171.795 98.0683 172.162 98.4225 172.64 98.4225C173.1 98.4225 173.331 98.1687 173.437 97.8498Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M176.666 98.824H176.117V95.9841H176.666V98.824ZM175.993 94.9096C175.993 94.6852 176.17 94.5081 176.389 94.5081C176.613 94.5081 176.79 94.6852 176.79 94.9096C176.79 95.128 176.613 95.3052 176.389 95.3052C176.17 95.3052 175.993 95.128 175.993 94.9096Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M177.345 98.086L177.847 97.9089C177.882 98.2041 178.106 98.4402 178.508 98.4402C178.821 98.4402 178.992 98.2631 178.992 98.0624C178.992 97.8853 178.862 97.7495 178.626 97.6963L178.142 97.5901C177.699 97.4956 177.433 97.1945 177.433 96.793C177.433 96.3089 177.888 95.8956 178.443 95.8956C179.222 95.8956 179.464 96.4033 179.523 96.6572L179.033 96.8402C179.01 96.6926 178.892 96.3679 178.443 96.3679C178.16 96.3679 177.971 96.5509 177.971 96.7458C177.971 96.917 178.077 97.041 178.295 97.0882L178.756 97.1886C179.27 97.3008 179.541 97.6137 179.541 98.0329C179.541 98.4343 179.205 98.9126 178.502 98.9126C177.723 98.9126 177.392 98.4107 177.345 98.086Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M182.305 99.9458H181.756V95.9841H182.293V96.4269C182.447 96.1435 182.783 95.9192 183.244 95.9192C184.094 95.9192 184.549 96.5745 184.549 97.4011C184.549 98.2454 184.059 98.9008 183.226 98.9008C182.789 98.9008 182.459 98.6941 182.305 98.4402V99.9458ZM183.982 97.4011C183.982 96.8343 183.663 96.4092 183.144 96.4092C182.636 96.4092 182.299 96.8343 182.299 97.4011C182.299 97.9856 182.636 98.4048 183.144 98.4048C183.657 98.4048 183.982 97.9856 183.982 97.4011Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M186.832 95.9546V96.545C186.75 96.5332 186.667 96.5273 186.59 96.5273C186.124 96.5273 185.811 96.7753 185.811 97.4011V98.824H185.256V95.9841H185.799V96.4801C186.006 96.0432 186.36 95.9369 186.649 95.9369C186.726 95.9369 186.803 95.9487 186.832 95.9546Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M188.611 98.4166C189.084 98.4166 189.497 98.0624 189.497 97.4011C189.497 96.7458 189.084 96.3915 188.611 96.3915C188.139 96.3915 187.726 96.7458 187.726 97.4011C187.726 98.0624 188.139 98.4166 188.611 98.4166ZM188.611 95.8956C189.461 95.8956 190.064 96.5391 190.064 97.4011C190.064 98.269 189.461 98.9126 188.611 98.9126C187.761 98.9126 187.159 98.269 187.159 97.4011C187.159 96.5391 187.761 95.8956 188.611 95.8956Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M192.616 98.4816C192.463 98.7768 192.109 98.9126 191.778 98.9126C191.117 98.9126 190.715 98.4166 190.715 97.7731V95.9841H191.27V97.6904C191.27 98.0801 191.447 98.4225 191.914 98.4225C192.363 98.4225 192.587 98.1273 192.587 97.6963V95.9841H193.142V98.2985C193.142 98.5229 193.16 98.7236 193.171 98.824H192.64C192.628 98.7591 192.616 98.5997 192.616 98.4816Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M194.391 97.3952C194.391 97.9797 194.692 98.4107 195.223 98.4107C195.731 98.4107 196.044 97.9679 196.044 97.3834C196.044 96.7989 195.737 96.3974 195.229 96.3974C194.721 96.3974 194.391 96.8107 194.391 97.3952ZM196.05 98.4402V98.393C195.914 98.6646 195.613 98.9008 195.17 98.9008C194.338 98.9008 193.824 98.2395 193.824 97.3952C193.824 96.5923 194.367 95.9074 195.17 95.9074C195.672 95.9074 195.944 96.1554 196.038 96.3856V94.5494H196.587V98.2985C196.587 98.5701 196.611 98.7768 196.617 98.824H196.079C196.068 98.7591 196.05 98.6115 196.05 98.4402Z\"\n fill=\"#0A1551\"\n />\n <path d=\"M198.086 98.824H197.531V94.5494H198.086V98.824Z\" fill=\"#0A1551\" />\n <path\n d=\"M199.739 100.011H199.131L199.839 98.5111L198.617 95.9841H199.255L200.14 97.9443L200.99 95.9841H201.587L199.739 100.011Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M204.146 99.9458H203.597V95.9841H204.134V96.4269C204.287 96.1435 204.624 95.9192 205.085 95.9192C205.935 95.9192 206.389 96.5745 206.389 97.4011C206.389 98.2454 205.899 98.9008 205.067 98.9008C204.63 98.9008 204.299 98.6941 204.146 98.4402V99.9458ZM205.823 97.4011C205.823 96.8343 205.504 96.4092 204.984 96.4092C204.476 96.4092 204.14 96.8343 204.14 97.4011C204.14 97.9856 204.476 98.4048 204.984 98.4048C205.498 98.4048 205.823 97.9856 205.823 97.4011Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M208.673 95.9546V96.545C208.59 96.5332 208.508 96.5273 208.431 96.5273C207.964 96.5273 207.651 96.7753 207.651 97.4011V98.824H207.096V95.9841H207.64V96.4801C207.846 96.0432 208.201 95.9369 208.49 95.9369C208.567 95.9369 208.643 95.9487 208.673 95.9546Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M209.596 97.1118H211.149C211.137 96.7044 210.871 96.3856 210.369 96.3856C209.903 96.3856 209.619 96.7458 209.596 97.1118ZM211.231 97.8498L211.709 98.0151C211.55 98.517 211.095 98.9126 210.434 98.9126C209.672 98.9126 209.005 98.3576 209.005 97.3952C209.005 96.5037 209.649 95.8956 210.363 95.8956C211.237 95.8956 211.727 96.4978 211.727 97.3834C211.727 97.4543 211.721 97.5251 211.715 97.5605H209.578C209.59 98.0683 209.956 98.4225 210.434 98.4225C210.895 98.4225 211.125 98.1687 211.231 97.8498Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M212.17 98.086L212.672 97.9089C212.707 98.2041 212.932 98.4402 213.333 98.4402C213.646 98.4402 213.817 98.2631 213.817 98.0624C213.817 97.8853 213.687 97.7495 213.451 97.6963L212.967 97.5901C212.524 97.4956 212.258 97.1945 212.258 96.793C212.258 96.3089 212.713 95.8956 213.268 95.8956C214.047 95.8956 214.289 96.4033 214.348 96.6572L213.858 96.8402C213.835 96.6926 213.717 96.3679 213.268 96.3679C212.985 96.3679 212.796 96.5509 212.796 96.7458C212.796 96.917 212.902 97.041 213.12 97.0882L213.581 97.1886C214.095 97.3008 214.366 97.6137 214.366 98.0329C214.366 98.4343 214.03 98.9126 213.327 98.9126C212.548 98.9126 212.217 98.4107 212.17 98.086Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M215.436 97.1118H216.989C216.977 96.7044 216.712 96.3856 216.21 96.3856C215.743 96.3856 215.46 96.7458 215.436 97.1118ZM217.072 97.8498L217.55 98.0151C217.391 98.517 216.936 98.9126 216.275 98.9126C215.513 98.9126 214.846 98.3576 214.846 97.3952C214.846 96.5037 215.49 95.8956 216.204 95.8956C217.078 95.8956 217.568 96.4978 217.568 97.3834C217.568 97.4543 217.562 97.5251 217.556 97.5605H215.419C215.431 98.0683 215.797 98.4225 216.275 98.4225C216.735 98.4225 216.966 98.1687 217.072 97.8498Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M218.831 97.1827V98.824H218.276V95.9841H218.819V96.3915C219.026 96.0373 219.363 95.9015 219.693 95.9015C220.372 95.9015 220.709 96.3915 220.709 97.0233V98.824H220.154V97.1177C220.154 96.7221 219.988 96.4033 219.492 96.4033C219.056 96.4033 218.831 96.7517 218.831 97.1827Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M222.335 95.0867V95.9841H222.949V96.486H222.335V97.962C222.335 98.2218 222.442 98.3517 222.731 98.3517C222.802 98.3517 222.902 98.3399 222.949 98.3281V98.8004C222.902 98.8181 222.761 98.8535 222.572 98.8535C222.087 98.8535 221.78 98.5583 221.78 98.0447V96.486H221.237V95.9841H221.391C221.698 95.9841 221.828 95.7952 221.828 95.5472V95.0867H222.335Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M224.022 97.1118H225.574C225.563 96.7044 225.297 96.3856 224.795 96.3856C224.329 96.3856 224.045 96.7458 224.022 97.1118ZM225.657 97.8498L226.135 98.0151C225.976 98.517 225.521 98.9126 224.86 98.9126C224.098 98.9126 223.431 98.3576 223.431 97.3952C223.431 96.5037 224.075 95.8956 224.789 95.8956C225.663 95.8956 226.153 96.4978 226.153 97.3834C226.153 97.4543 226.147 97.5251 226.141 97.5605H224.004C224.016 98.0683 224.382 98.4225 224.86 98.4225C225.32 98.4225 225.551 98.1687 225.657 97.8498Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M227.192 97.3952C227.192 97.9797 227.493 98.4107 228.025 98.4107C228.532 98.4107 228.845 97.9679 228.845 97.3834C228.845 96.7989 228.538 96.3974 228.03 96.3974C227.523 96.3974 227.192 96.8107 227.192 97.3952ZM228.851 98.4402V98.393C228.715 98.6646 228.414 98.9008 227.971 98.9008C227.139 98.9008 226.625 98.2395 226.625 97.3952C226.625 96.5923 227.168 95.9074 227.971 95.9074C228.473 95.9074 228.745 96.1554 228.839 96.3856V94.5494H229.388V98.2985C229.388 98.5701 229.412 98.7768 229.418 98.824H228.881C228.869 98.7591 228.851 98.6115 228.851 98.4402Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M232.552 95.0867V95.9841H233.166V96.486H232.552V97.962C232.552 98.2218 232.659 98.3517 232.948 98.3517C233.019 98.3517 233.119 98.3399 233.166 98.3281V98.8004C233.119 98.8181 232.977 98.8535 232.789 98.8535C232.304 98.8535 231.997 98.5583 231.997 98.0447V96.486H231.454V95.9841H231.608C231.915 95.9841 232.045 95.7952 232.045 95.5472V95.0867H232.552Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M235.095 98.4166C235.567 98.4166 235.98 98.0624 235.98 97.4011C235.98 96.7458 235.567 96.3915 235.095 96.3915C234.622 96.3915 234.209 96.7458 234.209 97.4011C234.209 98.0624 234.622 98.4166 235.095 98.4166ZM235.095 95.8956C235.945 95.8956 236.547 96.5391 236.547 97.4011C236.547 98.269 235.945 98.9126 235.095 98.9126C234.244 98.9126 233.642 98.269 233.642 97.4011C233.642 96.5391 234.244 95.8956 235.095 95.8956Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M304.47 83.9532L66.619 83.9532\"\n stroke=\"url(#paint0_linear_5_8)\"\n strokeWidth=\"0.843444\"\n />\n <path\n d=\"M116.018 73.4102C113.68 73.4102 111.731 71.7216 111.731 69.0529C111.731 66.3843 113.751 64.6839 115.994 64.6839C118.308 64.6839 119.501 66.1009 119.832 67.4588L118.297 67.943C118.096 67.14 117.446 66.2544 115.994 66.2544C114.742 66.2544 113.42 67.1518 113.42 69.0529C113.42 70.836 114.672 71.8161 116.018 71.8161C117.446 71.8161 118.143 70.8832 118.368 70.1039L119.891 70.5644C119.572 71.8515 118.368 73.4102 116.018 73.4102Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M122.076 69.667H124.674C124.65 69.0884 124.272 68.5216 123.375 68.5216C122.56 68.5216 122.112 69.1356 122.076 69.667ZM124.827 71.1784L126.138 71.5681C125.843 72.5718 124.922 73.4102 123.493 73.4102C121.899 73.4102 120.494 72.2648 120.494 70.3046C120.494 68.4507 121.864 67.2463 123.351 67.2463C125.146 67.2463 126.221 68.3917 126.221 70.2574C126.221 70.4817 126.197 70.7179 126.197 70.7415H122.041C122.076 71.5091 122.726 72.064 123.505 72.064C124.237 72.064 124.639 71.698 124.827 71.1784Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M131 67.3998V68.9821C130.823 68.9467 130.669 68.9349 130.528 68.9349C129.725 68.9349 129.028 69.3245 129.028 70.5762V73.233H127.458V67.4234H128.981V68.2854C129.335 67.5179 130.138 67.3762 130.634 67.3762C130.764 67.3762 130.882 67.388 131 67.3998Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M134.272 65.6876V67.4234H135.441V68.8168H134.272V71.2493C134.272 71.757 134.508 71.9223 134.957 71.9223C135.146 71.9223 135.358 71.8987 135.441 71.8751V73.174C135.299 73.2331 135.016 73.3157 134.555 73.3157C133.422 73.3157 132.713 72.6426 132.713 71.5209V68.8168H131.662V67.4234H131.957C132.572 67.4234 132.855 67.0219 132.855 66.5024V65.6876H134.272Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M138.345 73.233H136.775V67.4234H138.345V73.233ZM136.586 65.5223C136.586 64.9791 137.023 64.5422 137.554 64.5422C138.097 64.5422 138.523 64.9791 138.523 65.5223C138.523 66.0418 138.097 66.4787 137.554 66.4787C137.023 66.4787 136.586 66.0418 136.586 65.5223Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M144.231 68.7695H141.904V73.233H140.322V68.7695H139.354V67.4234H140.322V66.7621C140.322 65.4514 141.149 64.6012 142.436 64.6012C142.766 64.6012 143.085 64.6603 143.215 64.7193V66.0418C143.132 66.0182 142.979 65.9828 142.719 65.9828C142.377 65.9828 141.904 66.1363 141.904 66.7858V67.4234H145.789V73.233H144.231V68.7695ZM144.042 65.5105C144.042 64.9673 144.479 64.5304 145.01 64.5304C145.541 64.5304 145.978 64.9673 145.978 65.5105C145.978 66.0418 145.541 66.4669 145.01 66.4669C144.479 66.4669 144.042 66.0418 144.042 65.5105Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M150.086 68.6987C149.283 68.6987 148.61 69.2773 148.61 70.3282C148.61 71.3792 149.295 71.9696 150.098 71.9696C150.901 71.9696 151.302 71.4382 151.432 70.9895L152.813 71.45C152.554 72.4183 151.644 73.4102 150.098 73.4102C148.385 73.4102 147.039 72.1113 147.039 70.3282C147.039 68.5334 148.362 67.2463 150.05 67.2463C151.633 67.2463 152.53 68.2264 152.778 69.2064L151.373 69.6788C151.231 69.1946 150.865 68.6987 150.086 68.6987Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M153.591 71.6507C153.591 70.6116 154.359 70.033 155.327 69.8913L156.756 69.6788C157.086 69.6315 157.193 69.4662 157.193 69.2655C157.193 68.8522 156.874 68.5098 156.213 68.5098C155.528 68.5098 155.15 68.9467 155.103 69.4544L153.709 69.1592C153.804 68.25 154.642 67.2463 156.201 67.2463C158.043 67.2463 158.728 68.2854 158.728 69.4544V72.312C158.728 72.619 158.763 73.0323 158.799 73.233H157.358C157.322 73.0795 157.299 72.7607 157.299 72.5364C157.004 72.9969 156.449 73.3984 155.587 73.3984C154.347 73.3984 153.591 72.56 153.591 71.6507ZM155.917 72.2294C156.579 72.2294 157.193 71.9105 157.193 70.8832V70.6234L155.882 70.8242C155.48 70.8832 155.162 71.1076 155.162 71.5563C155.162 71.8987 155.41 72.2294 155.917 72.2294Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M162.213 65.6876V67.4234H163.382V68.8168H162.213V71.2493C162.213 71.757 162.449 71.9223 162.898 71.9223C163.086 71.9223 163.299 71.8987 163.382 71.8751V73.174C163.24 73.2331 162.957 73.3157 162.496 73.3157C161.362 73.3157 160.654 72.6426 160.654 71.5209V68.8168H159.603V67.4234H159.898C160.512 67.4234 160.796 67.0219 160.796 66.5024V65.6876H162.213Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M165.803 69.667H168.401C168.378 69.0884 168 68.5216 167.102 68.5216C166.288 68.5216 165.839 69.1356 165.803 69.667ZM168.555 71.1784L169.865 71.5681C169.57 72.5718 168.649 73.4102 167.22 73.4102C165.626 73.4102 164.221 72.2648 164.221 70.3046C164.221 68.4507 165.591 67.2463 167.079 67.2463C168.874 67.2463 169.948 68.3917 169.948 70.2574C169.948 70.4817 169.925 70.7179 169.925 70.7415H165.768C165.803 71.509 166.453 72.064 167.232 72.064C167.964 72.064 168.366 71.698 168.555 71.1784Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M176.712 71.9814C177.479 71.9814 178.188 71.4264 178.188 70.3282C178.188 69.2301 177.479 68.6751 176.712 68.6751C175.944 68.6751 175.236 69.2301 175.236 70.3282C175.236 71.4146 175.944 71.9814 176.712 71.9814ZM176.712 67.2463C178.448 67.2463 179.758 68.5334 179.758 70.3282C179.758 72.1113 178.448 73.4102 176.712 73.4102C174.976 73.4102 173.665 72.1113 173.665 70.3282C173.665 68.5334 174.976 67.2463 176.712 67.2463Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M183.69 65.9828C183.336 65.9828 182.876 66.1363 182.876 66.7858V67.4234H184.186V68.7695H182.876V73.233H181.293V68.7695H180.325V67.4234H181.293V66.7621C181.293 65.4514 182.12 64.6012 183.407 64.6012C183.738 64.6012 184.056 64.6603 184.186 64.7193V66.0418C184.104 66.0182 183.95 65.9828 183.69 65.9828Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M193.922 73.233L193.226 71.3201H189.825L189.128 73.233H187.404L190.616 64.861H192.505L195.694 73.233H193.922ZM191.525 66.6677L190.368 69.8323H192.683L191.525 66.6677Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M199.141 68.6987C198.338 68.6987 197.665 69.2773 197.665 70.3282C197.665 71.3792 198.349 71.9696 199.152 71.9696C199.955 71.9696 200.357 71.4382 200.487 70.9895L201.868 71.45C201.609 72.4183 200.699 73.4102 199.152 73.4102C197.44 73.4102 196.094 72.1113 196.094 70.3282C196.094 68.5334 197.417 67.2463 199.105 67.2463C200.688 67.2463 201.585 68.2264 201.833 69.2064L200.428 69.6788C200.286 69.1946 199.92 68.6987 199.141 68.6987Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M204.594 69.8205V73.233H203.023V64.6839H204.594V67.9075C204.972 67.4588 205.609 67.2699 206.164 67.2699C207.64 67.2699 208.325 68.2972 208.325 69.5725V73.233H206.755V69.8441C206.755 69.1946 206.436 68.6869 205.68 68.6869C205.019 68.6869 204.629 69.1828 204.594 69.8205Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M211.49 73.233H209.919V67.4234H211.49V73.233ZM209.73 65.5223C209.73 64.9791 210.167 64.5422 210.698 64.5422C211.242 64.5422 211.667 64.9791 211.667 65.5223C211.667 66.0418 211.242 66.4787 210.698 66.4787C210.167 66.4787 209.73 66.0418 209.73 65.5223Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M214.316 69.667H216.914C216.891 69.0884 216.513 68.5216 215.615 68.5216C214.8 68.5216 214.352 69.1356 214.316 69.667ZM217.068 71.1784L218.378 71.5681C218.083 72.5718 217.162 73.4102 215.733 73.4102C214.139 73.4102 212.734 72.2648 212.734 70.3046C212.734 68.4507 214.104 67.2463 215.592 67.2463C217.386 67.2463 218.461 68.3917 218.461 70.2574C218.461 70.4817 218.437 70.7179 218.437 70.7415H214.281C214.316 71.509 214.966 72.064 215.745 72.064C216.477 72.064 216.879 71.698 217.068 71.1784Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M225.061 67.4234L222.806 73.233H221.236L218.862 67.4234H220.586L222.027 71.3201L223.408 67.4234H225.061Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M226.989 69.667H229.587C229.564 69.0884 229.186 68.5216 228.288 68.5216C227.474 68.5216 227.025 69.1356 226.989 69.667ZM229.741 71.1784L231.051 71.5681C230.756 72.5718 229.835 73.4102 228.406 73.4102C226.812 73.4102 225.407 72.2648 225.407 70.3046C225.407 68.4507 226.777 67.2463 228.265 67.2463C230.06 67.2463 231.134 68.3917 231.134 70.2574C231.134 70.4817 231.11 70.7179 231.11 70.7415H226.954C226.989 71.509 227.639 72.064 228.418 72.064C229.15 72.064 229.552 71.698 229.741 71.1784Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M233.941 73.233H232.371V67.4234H233.87V68.1319C234.189 67.5651 234.933 67.2581 235.571 67.2581C236.362 67.2581 237 67.6005 237.295 68.2264C237.755 67.5179 238.369 67.2581 239.137 67.2581C240.211 67.2581 241.239 67.9075 241.239 69.4662V73.233H239.716V69.785C239.716 69.1592 239.409 68.6869 238.688 68.6869C238.015 68.6869 237.614 69.2064 237.614 69.8323V73.233H236.055V69.785C236.055 69.1592 235.736 68.6869 235.028 68.6869C234.343 68.6869 233.941 69.1946 233.941 69.8323V73.233Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M243.975 69.667H246.573C246.549 69.0884 246.172 68.5216 245.274 68.5216C244.459 68.5216 244.011 69.1356 243.975 69.667ZM246.727 71.1784L248.037 71.5681C247.742 72.5718 246.821 73.4102 245.392 73.4102C243.798 73.4102 242.393 72.2648 242.393 70.3046C242.393 68.4507 243.763 67.2463 245.251 67.2463C247.045 67.2463 248.12 68.3917 248.12 70.2574C248.12 70.4817 248.096 70.7179 248.096 70.7415H243.94C243.975 71.509 244.625 72.064 245.404 72.064C246.136 72.064 246.538 71.698 246.727 71.1784Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M250.927 69.8913V73.233H249.357V67.4234H250.88V68.1437C251.234 67.5415 251.931 67.2699 252.557 67.2699C253.997 67.2699 254.659 68.2972 254.659 69.5725V73.233H253.088V69.8441C253.088 69.1946 252.769 68.6869 252.014 68.6869C251.329 68.6869 250.927 69.2183 250.927 69.8913Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M258.189 65.6876V67.4234H259.358V68.8168H258.189V71.2493C258.189 71.757 258.425 71.9223 258.874 71.9223C259.063 71.9223 259.275 71.8987 259.358 71.8751V73.174C259.216 73.2331 258.933 73.3157 258.472 73.3157C257.339 73.3157 256.63 72.6426 256.63 71.5209V68.8168H255.579V67.4234H255.875C256.489 67.4234 256.772 67.0219 256.772 66.5024V65.6876H258.189Z\"\n fill=\"#0A1551\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M174.314 55.8378C174.013 55.8378 173.727 55.728 173.515 55.5156C173.304 55.3038 173.162 54.9834 173.162 54.5501C173.162 54.1117 173.304 53.7915 173.515 53.5811C173.726 53.3701 174.013 53.2625 174.314 53.2625C174.616 53.2625 174.903 53.3701 175.114 53.5811C175.325 53.7915 175.467 54.1117 175.467 54.5501C175.467 54.9886 175.325 55.3088 175.114 55.5191C174.903 55.7301 174.616 55.8378 174.314 55.8378ZM174.314 51.8627C172.785 51.8627 171.627 52.9878 171.627 54.5501C171.627 56.1022 172.785 57.2375 174.314 57.2375C175.844 57.2375 177.002 56.1022 177.002 54.5501C177.002 52.9878 175.844 51.8627 174.314 51.8627Z\"\n fill=\"#0A1551\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M161.599 55.8753C161.298 55.8753 161.011 55.7656 160.8 55.5532C160.589 55.3414 160.446 55.0209 160.446 54.5877C160.446 54.1492 160.589 53.829 160.799 53.6187C161.01 53.4077 161.297 53.3001 161.599 53.3001C161.901 53.3001 162.187 53.4077 162.398 53.6187C162.609 53.829 162.751 54.1492 162.751 54.5877C162.751 55.0261 162.609 55.3464 162.398 55.5567C162.187 55.7677 161.901 55.8753 161.599 55.8753ZM161.599 51.9003C160.07 51.9003 158.911 53.0254 158.911 54.5877C158.911 56.1398 160.069 57.2751 161.599 57.2751C163.128 57.2751 164.286 56.1398 164.286 54.5877C164.286 53.0254 163.128 51.9003 161.599 51.9003Z\"\n fill=\"#0A1551\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M181.183 57.221H182.708V54.1909C182.708 53.9406 182.787 53.7224 182.925 53.5681C183.062 53.4151 183.264 53.318 183.527 53.318C183.802 53.318 183.99 53.4093 184.11 53.55C184.232 53.6933 184.295 53.9006 184.295 54.1509V57.221H185.811V54.1909C185.811 53.946 185.889 53.7273 186.027 53.5713C186.163 53.4167 186.363 53.318 186.62 53.318C186.901 53.318 187.087 53.4096 187.206 53.5497C187.327 53.6926 187.388 53.8998 187.388 54.1509V57.221H188.874V53.8802C188.874 53.1956 188.648 52.6986 188.294 52.3735C187.942 52.0499 187.472 51.9062 186.999 51.9062C186.663 51.9062 186.355 51.9633 186.079 52.1023C185.843 52.2205 185.635 52.396 185.453 52.6383C185.159 52.1594 184.621 51.9062 183.986 51.9062C183.522 51.9062 182.986 52.0899 182.649 52.4472V52.0298H181.183V57.221Z\"\n fill=\"#0A1551\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M180.609 52.0343V53.5892L180.49 53.5652C180.348 53.5366 180.225 53.5271 180.112 53.5271C179.788 53.5271 179.501 53.6062 179.294 53.7986C179.089 53.9897 178.948 54.3079 178.948 54.8212V57.2211H177.426V52.0299H178.908V52.5309C179.275 52.0903 179.844 52.0047 180.201 52.0047C180.315 52.0047 180.419 52.0152 180.518 52.0251L180.609 52.0343Z\"\n fill=\"#0A1551\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M153.174 54.7195H154.661L154.678 54.736C154.69 54.7471 154.697 54.7628 154.699 54.7804C154.728 55.1062 154.856 55.3519 155.047 55.5156C155.238 55.6784 155.485 55.7542 155.742 55.7542C156.055 55.7542 156.312 55.6387 156.489 55.4379C156.665 55.2383 156.757 54.9614 156.757 54.6475V50.2993H158.365V54.6925C158.365 56.0989 157.289 57.2751 155.753 57.2751C154.985 57.2751 154.342 57.02 153.891 56.5775C153.45 56.1452 153.186 55.5282 153.175 54.7785L153.174 54.7195Z\"\n fill=\"#0A1551\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M171.411 51.0042L171.495 51.0284V49.8507L171.456 49.833C171.397 49.806 171.301 49.7815 171.191 49.7637C171.079 49.7456 170.946 49.7336 170.812 49.7336C170.287 49.7336 169.698 49.9072 169.392 50.2198C169.087 50.5324 168.919 50.9778 168.919 51.5107V51.7595H168.152V53.1114H168.919V57.2212H170.457V53.1114L171.495 53.1114V51.7595H170.457V51.5294C170.457 51.29 170.541 51.1521 170.648 51.0718C170.759 50.989 170.904 50.96 171.036 50.96C171.235 50.96 171.351 50.9871 171.411 51.0042Z\"\n fill=\"#0A1551\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M167.604 56.0065L167.684 55.9823V57.1646L167.647 57.1823C167.591 57.2095 167.501 57.2341 167.397 57.252C167.292 57.2701 167.168 57.2822 167.041 57.2822C166.548 57.2822 165.997 57.1079 165.71 56.794C165.424 56.4802 165.265 56.0331 165.265 55.498V53.1121H164.545V51.7665H165.265V50.3064H166.708V51.7665H167.684V53.1121H166.708V55.4793C166.708 55.7197 166.787 55.8581 166.888 55.9387C166.991 56.0219 167.128 56.0509 167.252 56.0509C167.439 56.0509 167.548 56.0238 167.604 56.0065Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M145.753 57.4318C145.917 57.5913 145.801 57.8644 145.568 57.8644H144.106C143.818 57.8644 143.583 57.6369 143.583 57.3574V55.9408C143.583 55.7144 143.865 55.6018 144.029 55.7612L145.753 57.4318Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M148.038 57.5425C147.606 57.1128 147.606 56.416 148.038 55.9863L149.599 54.4354C150.032 54.0056 150.733 54.0056 151.166 54.4354C151.598 54.8651 151.598 55.5618 151.166 55.9916L149.605 57.5425C149.172 57.9723 148.471 57.9723 148.038 57.5425Z\"\n fill=\"#FFB629\"\n />\n <path\n d=\"M143.912 53.6452C143.48 53.2155 143.48 52.5187 143.912 52.089L146.54 49.477C146.972 49.0473 147.674 49.0473 148.106 49.477C148.539 49.9068 148.539 50.6035 148.106 51.0333L145.479 53.6452C145.046 54.075 144.345 54.075 143.912 53.6452Z\"\n fill=\"#0099FF\"\n />\n <path\n d=\"M146.062 55.5068C145.629 55.077 145.629 54.3803 146.062 53.9505L149.612 50.4239C150.044 49.9941 150.745 49.9941 151.178 50.4239C151.611 50.8536 151.611 51.5503 151.178 51.9801L147.628 55.5068C147.196 55.9365 146.494 55.9365 146.062 55.5068Z\"\n fill=\"#FF6100\"\n />\n <path\n d=\"M193.659 52.7842C193.711 52.9996 193.752 53.1704 193.781 53.2966L194.617 57.1957V57.2068C194.394 57.2514 194.149 57.2662 193.882 57.2514C193.614 57.244 193.362 57.2143 193.124 57.1623H193.113C193.068 57.0434 193.024 56.9023 192.979 56.7389C192.942 56.5756 192.901 56.4085 192.857 56.2376C192.82 56.0668 192.779 55.9034 192.734 55.7475C192.69 55.5915 192.641 55.4578 192.589 55.3464C192.493 55.3316 192.419 55.3241 192.367 55.3241C192.315 55.3241 192.266 55.3241 192.222 55.3241C192.185 55.3241 192.14 55.3279 192.088 55.3353C192.044 55.3353 191.98 55.3353 191.899 55.3353C191.847 55.4541 191.802 55.5952 191.765 55.7586C191.735 55.9146 191.702 56.0817 191.665 56.2599C191.635 56.4307 191.602 56.5978 191.564 56.7612C191.527 56.9246 191.475 57.0694 191.409 57.1957C191.401 57.1957 191.394 57.1994 191.386 57.2068C191.386 57.2068 191.383 57.2068 191.375 57.2068C191.316 57.2217 191.167 57.2217 190.929 57.2068C190.692 57.192 190.32 57.1883 189.815 57.1957C189.808 57.1957 189.801 57.192 189.793 57.1846C189.808 57.1326 189.834 56.9877 189.871 56.7501C189.908 56.5124 189.96 56.2042 190.027 55.8254C190.094 55.4467 190.172 55.0122 190.261 54.522C190.358 54.0245 190.469 53.4971 190.595 52.9401C190.722 52.3831 190.859 51.8038 191.007 51.2023C191.156 50.6007 191.319 50.0028 191.498 49.4087C191.55 49.4013 191.605 49.3976 191.665 49.3976C191.724 49.3976 191.802 49.3976 191.899 49.3976C191.995 49.3976 192.118 49.3976 192.266 49.3976C192.422 49.3901 192.623 49.3753 192.868 49.353C192.89 49.4495 192.924 49.5981 192.968 49.7986C193.02 49.9917 193.072 50.2145 193.124 50.467C193.184 50.7121 193.243 50.9758 193.302 51.258C193.369 51.5402 193.432 51.8113 193.492 52.0712C193.551 52.3311 193.607 52.5688 193.659 52.7842ZM192.222 54.0319C192.363 54.0245 192.504 54.0207 192.645 54.0207C192.571 53.382 192.504 52.8844 192.445 52.528C192.393 52.1715 192.344 51.9301 192.3 51.8038C192.263 51.6776 192.222 51.6516 192.177 51.7259C192.14 51.7927 192.103 51.9338 192.066 52.1492C192.036 52.3646 191.999 52.6356 191.954 52.9624C191.917 53.2892 191.873 53.642 191.821 54.0207C191.947 54.0282 192.081 54.0319 192.222 54.0319Z\"\n fill=\"#FF6100\"\n />\n <path\n d=\"M198.243 55.3888C198.349 55.3888 198.436 55.3982 198.504 55.4168C198.492 55.5784 198.479 55.7369 198.467 55.8923C198.454 56.0477 198.439 56.1937 198.42 56.3305C198.401 56.461 198.377 56.576 198.345 56.6754C198.321 56.7687 198.286 56.837 198.243 56.8805C198.137 57.0297 197.997 57.1354 197.823 57.1975C197.656 57.2597 197.472 57.297 197.273 57.3094C197.074 57.328 196.869 57.328 196.658 57.3094C196.447 57.297 196.254 57.2907 196.08 57.2907C195.763 57.2348 195.496 57.0981 195.278 56.8805C195.11 56.7314 194.995 56.5449 194.933 56.3211C194.871 56.0974 194.834 55.8643 194.821 55.6219C194.809 55.3733 194.806 55.1247 194.812 54.8761C194.824 54.6275 194.818 54.4006 194.793 54.1955C194.793 53.9718 194.812 53.748 194.849 53.5242C194.856 53.4559 194.877 53.3626 194.915 53.2446C194.952 53.1265 194.98 53.0363 194.998 52.9742C195.042 52.881 195.11 52.8002 195.204 52.7318C195.303 52.6634 195.415 52.6075 195.539 52.564C195.67 52.5143 195.806 52.4801 195.949 52.4614C196.099 52.4428 196.248 52.4335 196.397 52.4335C196.521 52.4459 196.639 52.449 196.751 52.4428C196.869 52.4303 196.994 52.4303 197.124 52.4428C197.323 52.4552 197.513 52.4925 197.693 52.5547C197.873 52.6168 198.028 52.71 198.159 52.8343C198.246 52.8965 198.311 52.9804 198.355 53.0861C198.404 53.1917 198.442 53.316 198.467 53.459C198.492 53.6019 198.504 53.7635 198.504 53.9438C198.51 54.1178 198.516 54.3074 198.523 54.5125C198.442 54.5311 198.349 54.5405 198.243 54.5405C198.143 54.5405 198.038 54.5373 197.926 54.5311C197.82 54.5249 197.715 54.5156 197.609 54.5032C197.509 54.4907 197.419 54.4783 197.339 54.4659C197.307 54.2483 197.217 54.0805 197.068 53.9624C196.919 53.8381 196.723 53.807 196.481 53.8692C196.35 53.9065 196.245 53.9749 196.164 54.0743C196.127 54.0992 196.099 54.1613 196.08 54.2608C196.055 54.4534 196.043 54.6492 196.043 54.8481C196.043 55.047 196.036 55.2552 196.024 55.4728C196.012 55.6157 196.046 55.7276 196.127 55.8084C196.214 55.8892 196.316 55.9451 196.434 55.9762C196.552 56.0011 196.674 56.0073 196.798 55.9948C196.922 55.9762 197.022 55.942 197.096 55.8923C197.158 55.8488 197.205 55.7773 197.236 55.6779C197.273 55.5722 197.301 55.479 197.32 55.3982C197.382 55.4044 197.466 55.4075 197.572 55.4075C197.677 55.4013 197.789 55.3951 197.907 55.3888C198.025 55.3826 198.137 55.3826 198.243 55.3888Z\"\n fill=\"#FF6100\"\n />\n <path\n d=\"M202.265 52.536C202.42 52.5422 202.597 52.5515 202.796 52.564C202.802 52.6013 202.805 52.6386 202.805 52.6759C202.812 52.7131 202.815 52.7504 202.815 52.7877V52.881C202.796 53.5522 202.799 54.2142 202.824 54.8668C202.849 55.5132 202.84 56.1689 202.796 56.8339C202.796 56.9147 202.793 56.9955 202.787 57.0763C202.787 57.1571 202.749 57.2037 202.675 57.2162H202.563C202.464 57.2162 202.361 57.213 202.255 57.2068C202.156 57.1944 202.056 57.1882 201.957 57.1882C201.889 57.1882 201.82 57.1944 201.752 57.2068C201.69 57.213 201.624 57.2162 201.556 57.2162C201.513 57.2037 201.482 57.1789 201.463 57.1416C201.45 57.1043 201.444 57.0608 201.444 57.0111C201.444 56.9427 201.45 56.8867 201.463 56.8432C201.475 56.7997 201.482 56.7469 201.482 56.6847C201.332 56.8339 201.143 56.9613 200.913 57.067C200.689 57.1726 200.468 57.2255 200.251 57.2255C200.009 57.2255 199.8 57.1416 199.626 56.9738C199.458 56.8059 199.319 56.5977 199.207 56.3491C199.095 56.1005 199.011 55.8301 198.955 55.538C198.905 55.2459 198.88 54.9755 198.88 54.7269C198.88 54.4161 198.921 54.1302 199.002 53.8692C199.082 53.6082 199.191 53.3844 199.328 53.1979C199.471 53.0053 199.639 52.8561 199.831 52.7504C200.024 52.6386 200.229 52.5795 200.447 52.5733C200.559 52.5733 200.661 52.5764 200.754 52.5826C200.854 52.5826 200.944 52.5982 201.025 52.6292C201.106 52.6541 201.177 52.6976 201.239 52.7598C201.301 52.8157 201.354 52.8965 201.398 53.0022C201.391 52.9027 201.395 52.8188 201.407 52.7504C201.426 52.6759 201.435 52.6013 201.435 52.5267C201.435 52.5205 201.454 52.5174 201.491 52.5174C201.534 52.5111 201.581 52.5111 201.631 52.5174C201.68 52.5174 201.73 52.5174 201.78 52.5174C201.83 52.5174 201.864 52.5174 201.882 52.5174C201.988 52.5236 202.116 52.5298 202.265 52.536ZM200.344 54.009C200.201 54.1271 200.114 54.2639 200.083 54.4193C200.058 54.5001 200.043 54.584 200.036 54.671C200.03 54.7518 200.027 54.8326 200.027 54.9134C200.027 55.1931 200.099 55.4324 200.242 55.6312C200.391 55.8239 200.596 55.9203 200.857 55.9203C201.012 55.9203 201.127 55.8954 201.202 55.8457C201.283 55.7897 201.339 55.7152 201.37 55.6219C201.407 55.5225 201.426 55.4044 201.426 55.2676C201.432 55.1247 201.435 54.9662 201.435 54.7922C201.435 54.5746 201.432 54.4037 201.426 54.2794C201.426 54.1489 201.41 54.0494 201.379 53.9811C201.354 53.9127 201.308 53.8692 201.239 53.8506C201.177 53.8319 201.081 53.8226 200.95 53.8226C200.695 53.8226 200.493 53.8847 200.344 54.009Z\"\n fill=\"#FF6100\"\n />\n <path\n d=\"M205.887 51.0443C205.894 50.976 205.9 50.8796 205.906 50.7553V50.6528C205.906 50.6465 205.947 50.6403 206.027 50.6341C206.114 50.6217 206.217 50.6155 206.335 50.6155C206.459 50.6093 206.59 50.6093 206.727 50.6155C206.863 50.6155 206.981 50.6248 207.081 50.6434V51.2588C207.081 52.2967 207.096 53.3222 207.127 54.3353C207.159 55.3484 207.162 56.3025 207.137 57.1975C206.944 57.1975 206.733 57.2006 206.503 57.2068C206.273 57.2193 206.065 57.213 205.878 57.1882C205.872 57.1758 205.869 57.154 205.869 57.1229C205.869 57.0608 205.866 57.0111 205.859 56.9738C205.859 56.9365 205.859 56.8836 205.859 56.8153C205.847 56.7842 205.832 56.7624 205.813 56.75C205.8 56.7314 205.785 56.7407 205.766 56.778C205.673 56.9644 205.549 57.0856 205.393 57.1416C205.238 57.1913 205.073 57.2037 204.899 57.1789C204.545 57.154 204.265 57.0639 204.06 56.9085C203.855 56.7469 203.7 56.5449 203.594 56.3025C203.495 56.0539 203.426 55.7773 203.389 55.4728C203.358 55.1682 203.339 54.8605 203.333 54.5498C203.333 54.3322 203.345 54.1209 203.37 53.9158C203.401 53.7107 203.445 53.5242 203.501 53.3564C203.563 53.1824 203.641 53.0363 203.734 52.9183C203.833 52.7939 203.951 52.7069 204.088 52.6572C204.256 52.5951 204.439 52.5578 204.638 52.5453C204.843 52.5267 205.036 52.5267 205.216 52.5453C205.396 52.5578 205.549 52.5857 205.673 52.6292C205.797 52.6727 205.866 52.7225 205.878 52.7784C205.872 52.4863 205.869 52.2501 205.869 52.0699C205.869 51.8896 205.869 51.7467 205.869 51.641C205.869 51.5291 205.869 51.4452 205.869 51.3893C205.875 51.3271 205.878 51.2712 205.878 51.2215C205.884 51.1655 205.887 51.1065 205.887 51.0443ZM204.731 53.776C204.582 53.8878 204.492 54.0526 204.461 54.2701C204.43 54.3571 204.411 54.4472 204.405 54.5405C204.399 54.6337 204.396 54.7238 204.396 54.8108C204.396 54.9662 204.414 55.1185 204.452 55.2676C204.489 55.4106 204.545 55.5411 204.62 55.6592C204.694 55.7711 204.784 55.8612 204.89 55.9296C204.996 55.998 205.114 56.0321 205.244 56.0321C205.4 56.0321 205.521 55.998 205.608 55.9296C205.701 55.8612 205.769 55.768 205.813 55.6499C205.863 55.5318 205.891 55.392 205.897 55.2304C205.909 55.0625 205.915 54.8792 205.915 54.6803C205.915 54.4379 205.909 54.2483 205.897 54.1116C205.891 53.9686 205.869 53.8599 205.832 53.7853C205.794 53.7107 205.735 53.6641 205.654 53.6454C205.58 53.6206 205.477 53.6082 205.347 53.6082C205.092 53.6082 204.887 53.6641 204.731 53.776Z\"\n fill=\"#FF6100\"\n />\n <path\n d=\"M209.205 54.8947C209.069 54.8885 208.969 54.8792 208.907 54.8668V55.0346C208.913 55.221 208.92 55.3733 208.926 55.4914C208.938 55.6095 208.979 55.7245 209.047 55.8364C209.122 55.9793 209.227 56.085 209.364 56.1533C209.501 56.2217 209.634 56.2435 209.765 56.2186C209.895 56.1937 210.004 56.1192 210.091 55.9948C210.184 55.8643 210.225 55.6716 210.212 55.4168C210.274 55.423 210.358 55.4261 210.464 55.4261C210.57 55.4199 210.678 55.4137 210.79 55.4075C210.908 55.4013 211.02 55.4013 211.126 55.4075C211.232 55.4075 211.319 55.4168 211.387 55.4355C211.375 55.5971 211.362 55.7556 211.35 55.9109C211.337 56.0663 211.322 56.2124 211.303 56.3491C211.284 56.4796 211.26 56.5946 211.229 56.6941C211.204 56.7873 211.169 56.8526 211.126 56.8899C211.02 57.039 210.884 57.1447 210.716 57.2068C210.548 57.269 210.365 57.3063 210.166 57.3187C209.967 57.3311 209.762 57.3311 209.55 57.3187C209.345 57.3063 209.156 57.3001 208.982 57.3001C208.808 57.2752 208.646 57.2193 208.497 57.1322C208.329 57.0142 208.189 56.8619 208.077 56.6754C207.965 56.4827 207.875 56.2745 207.807 56.0508C207.739 55.8208 207.692 55.5784 207.667 55.3236C207.642 55.0688 207.636 54.8139 207.648 54.5591C207.667 54.3291 207.686 54.1085 207.704 53.8972C207.729 53.6796 207.779 53.4683 207.854 53.2632C207.934 53.083 208.059 52.9307 208.227 52.8064C208.394 52.6759 208.584 52.5795 208.795 52.5174C209.007 52.449 209.23 52.4117 209.466 52.4055C209.703 52.3993 209.933 52.4241 210.156 52.4801C210.442 52.5298 210.672 52.6292 210.846 52.7784C211.02 52.9276 211.151 53.1078 211.238 53.3191C211.331 53.5305 211.387 53.7635 211.406 54.0184C211.424 54.2732 211.424 54.5311 211.406 54.7922C211.362 54.8046 211.278 54.817 211.154 54.8295C211.036 54.8419 210.893 54.8543 210.725 54.8668C210.563 54.8792 210.389 54.8885 210.203 54.8947C210.017 54.9009 209.836 54.9041 209.662 54.9041C209.494 54.9041 209.342 54.9009 209.205 54.8947ZM210.296 53.6734C210.234 53.5615 210.147 53.4776 210.035 53.4217C209.985 53.3906 209.936 53.3689 209.886 53.3564C209.836 53.3378 209.777 53.3285 209.709 53.3285C209.56 53.3285 209.439 53.344 209.345 53.3751C209.252 53.4062 209.177 53.4497 209.122 53.5056C209.066 53.5615 209.022 53.6268 208.991 53.7014C208.966 53.776 208.947 53.8537 208.935 53.9345C208.923 54.0028 208.916 54.0526 208.916 54.0836C208.923 54.1085 208.954 54.1271 209.01 54.1396C209.066 54.1458 209.153 54.1489 209.271 54.1489C209.395 54.1427 209.575 54.1396 209.811 54.1396C209.973 54.1396 210.094 54.1427 210.175 54.1489C210.256 54.1551 210.312 54.1582 210.343 54.1582C210.38 54.152 210.399 54.1427 210.399 54.1302C210.399 54.1116 210.399 54.0774 210.399 54.0277C210.399 53.9034 210.365 53.7853 210.296 53.6734Z\"\n fill=\"#FF6100\"\n />\n <path\n d=\"M213.152 52.8157C213.152 52.8841 213.155 52.9618 213.162 53.0488C213.193 53.0301 213.23 53.0084 213.273 52.9835C213.323 52.9587 213.364 52.9338 213.395 52.9089C213.525 52.8157 213.671 52.7411 213.833 52.6852C213.994 52.6292 214.159 52.5982 214.327 52.5919C214.501 52.5857 214.669 52.6044 214.83 52.6479C214.992 52.6914 215.138 52.7691 215.269 52.881C215.3 52.912 215.331 52.9649 215.362 53.0395C215.393 53.0208 215.43 53.0022 215.474 52.9835C215.517 52.9587 215.554 52.9338 215.585 52.9089C215.716 52.8157 215.862 52.7411 216.024 52.6852C216.185 52.6292 216.35 52.5982 216.518 52.5919C216.692 52.5857 216.86 52.6044 217.021 52.6479C217.183 52.6914 217.329 52.7691 217.459 52.881C217.522 52.9369 217.568 53.055 217.599 53.2352C217.637 53.4093 217.658 53.6206 217.665 53.8692C217.677 54.1178 217.68 54.3913 217.674 54.6896C217.674 54.9817 217.671 55.2801 217.665 55.5846C217.658 55.883 217.652 56.172 217.646 56.4517C217.64 56.7314 217.643 56.9769 217.655 57.1882C217.438 57.2193 217.242 57.2317 217.068 57.2255C216.9 57.2255 216.707 57.2255 216.49 57.2255C216.477 57.0825 216.471 56.9209 216.471 56.7407C216.471 56.5604 216.471 56.374 216.471 56.1813C216.477 55.9886 216.477 55.796 216.471 55.6033C216.471 55.4106 216.465 55.2304 216.453 55.0625C216.446 54.988 216.44 54.9072 216.434 54.8201C216.428 54.7269 216.415 54.6368 216.397 54.5498C216.384 54.4628 216.362 54.3851 216.331 54.3167C216.306 54.2483 216.269 54.1955 216.219 54.1582C216.213 54.152 216.207 54.1489 216.201 54.1489C216.195 54.1489 216.188 54.1458 216.182 54.1396C216.145 54.1209 216.098 54.1054 216.042 54.093C215.986 54.0805 215.924 54.0743 215.856 54.0743C215.794 54.0743 215.728 54.0867 215.66 54.1116C215.598 54.1302 215.539 54.1613 215.483 54.2048C215.489 54.4472 215.489 54.7052 215.483 54.9786C215.477 55.2459 215.471 55.5132 215.464 55.7804C215.458 56.0415 215.452 56.2963 215.446 56.5449C215.446 56.7873 215.452 57.0017 215.464 57.1882C215.247 57.2193 215.051 57.2317 214.877 57.2255C214.709 57.2255 214.516 57.2255 214.299 57.2255C214.286 57.0825 214.28 56.9209 214.28 56.7407C214.28 56.5604 214.28 56.374 214.28 56.1813C214.286 55.9886 214.286 55.796 214.28 55.6033C214.28 55.4106 214.274 55.2304 214.262 55.0625C214.255 54.988 214.249 54.9072 214.243 54.8201C214.237 54.7269 214.224 54.6368 214.206 54.5498C214.193 54.4628 214.172 54.3851 214.14 54.3167C214.116 54.2483 214.078 54.1955 214.029 54.1582C214.022 54.152 214.016 54.1489 214.01 54.1489C214.004 54.1489 213.997 54.1458 213.991 54.1396C213.942 54.1147 213.867 54.0961 213.768 54.0836C213.674 54.065 213.581 54.0712 213.488 54.1023C213.395 54.1271 213.311 54.1831 213.236 54.2701C213.162 54.3509 213.118 54.4752 213.106 54.643C213.093 54.8605 213.09 55.075 213.096 55.2863C213.102 55.4914 213.109 55.6996 213.115 55.9109C213.127 56.116 213.134 56.3211 213.134 56.5263C213.134 56.7314 213.121 56.9365 213.096 57.1416V57.1789C212.991 57.2099 212.897 57.2286 212.817 57.2348C212.742 57.241 212.664 57.241 212.583 57.2348C212.503 57.2348 212.413 57.2317 212.313 57.2255C212.214 57.2193 212.089 57.2224 211.94 57.2348C211.94 56.4703 211.931 55.7058 211.912 54.9413C211.9 54.1769 211.906 53.3844 211.931 52.564C212.005 52.5702 212.068 52.5764 212.117 52.5826C212.167 52.5826 212.214 52.5826 212.257 52.5826C212.301 52.5826 212.347 52.5826 212.397 52.5826C212.447 52.5764 212.509 52.5702 212.583 52.564C212.608 52.564 212.652 52.5609 212.714 52.5547C212.776 52.5422 212.838 52.5329 212.9 52.5267C212.963 52.5205 213.019 52.5205 213.068 52.5267C213.118 52.5267 213.143 52.536 213.143 52.5547C213.155 52.6603 213.158 52.7473 213.152 52.8157Z\"\n fill=\"#FF6100\"\n />\n <path\n d=\"M218.641 52.564C218.89 52.5453 219.114 52.5484 219.312 52.5733C219.356 52.7971 219.406 53.0643 219.462 53.3751C219.518 53.6796 219.577 53.9904 219.639 54.3074C219.701 54.6244 219.766 54.9289 219.835 55.221C219.903 55.5069 219.971 55.7431 220.04 55.9296C220.108 55.7431 220.164 55.4976 220.207 55.1931C220.251 54.8885 220.291 54.5715 220.329 54.2421C220.372 53.9127 220.419 53.5957 220.468 53.2912C220.518 52.9866 220.58 52.7411 220.655 52.5547C220.866 52.5609 221.081 52.5578 221.298 52.5453C221.516 52.5329 221.755 52.536 222.016 52.5547C221.917 52.9276 221.827 53.285 221.746 53.6268C221.671 53.9624 221.597 54.2918 221.522 54.615C221.441 54.9196 221.367 55.2397 221.298 55.5753C221.236 55.9109 221.155 56.2403 221.056 56.5635C220.963 56.8867 220.841 57.1944 220.692 57.4865C220.543 57.7786 220.344 58.0304 220.096 58.2417C219.853 58.4592 219.549 58.6239 219.182 58.7358C218.821 58.8477 218.377 58.8881 217.849 58.857C217.787 58.6705 217.756 58.4592 217.756 58.223C217.749 57.9931 217.762 57.7911 217.793 57.617C217.942 57.617 218.094 57.6233 218.25 57.6357C218.411 57.6481 218.554 57.6388 218.678 57.6077C218.803 57.5829 218.896 57.5238 218.958 57.4306C219.027 57.3374 219.045 57.1882 219.014 56.9831C218.884 56.231 218.719 55.479 218.52 54.7269C218.321 53.9749 218.125 53.2477 217.933 52.5453C218.156 52.5702 218.393 52.5764 218.641 52.564Z\"\n fill=\"#FF6100\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M223.192 52.5647L222.78 53.7017C222.705 53.9077 222.505 54.0407 222.287 54.0152C221.897 53.9694 221.283 53.8667 220.885 53.6491C220.487 53.4314 220.07 52.9701 219.821 52.6665C219.682 52.497 219.686 52.2566 219.819 52.0825L220.554 51.122L221.377 52.1502C221.502 52.3058 221.684 52.4052 221.882 52.4261L223.192 52.5647ZM221.497 51.9315C221.621 52.0872 221.803 52.1865 222.001 52.2075L223.253 52.362C223.266 52.3637 223.275 52.3479 223.267 52.3368L222.261 51.0098C222.21 50.9449 222.222 50.8509 222.287 50.8C222.352 50.749 222.446 50.7603 222.496 50.8252L223.525 52.1362C223.559 52.1895 223.591 52.2478 223.61 52.3003C223.723 52.6181 223.554 53.0506 223.496 53.1563C223.416 53.3038 223.294 53.4254 223.203 53.5165C223.171 53.5485 223.143 53.5768 223.121 53.6011C222.96 53.7813 222.77 54.0521 222.659 54.4089C222.647 54.4445 222.651 54.4837 222.67 54.5162C222.688 54.5487 222.719 54.5732 222.755 54.5822L223.301 54.7249C223.345 54.7365 223.393 54.7252 223.427 54.6943C223.462 54.6633 223.478 54.6176 223.471 54.5721C223.455 54.4482 223.452 54.3216 223.457 54.1973C223.465 53.9765 223.505 53.7121 223.621 53.4988C223.621 53.4988 223.697 53.3729 223.737 53.2877C223.837 53.0723 223.872 52.6076 223.884 52.4066L224.478 52.4694C224.582 52.4804 224.682 52.425 224.728 52.3307C224.774 52.2364 224.756 52.1235 224.683 52.0482L222.974 50.2885C222.87 50.1806 222.735 50.1068 222.587 50.0768L220.184 49.5877C220.081 49.5668 219.976 49.6125 219.921 49.702C219.867 49.7915 219.874 49.9056 219.94 49.9874L221.497 51.9315Z\"\n fill=\"#0A1551\"\n />\n <path\n d=\"M20.6508 16.6518L336.767 16.6518L336.767 16.9024C336.767 23.8898 342.431 29.5541 349.418 29.5541L350.438 29.5541L350.438 225.826L34.3218 225.826L34.3218 225.575C34.3218 218.588 28.6575 212.924 21.6701 212.924L20.6508 212.924L20.6508 16.6518Z\"\n stroke=\"#3562D7\"\n strokeWidth=\"2.10861\"\n />\n <path\n d=\"M344.533 34.3601L344.533 219.922L39.5435 219.922L26.5616 219.922L26.7571 208.124L26.7572 208.124L26.7572 208.117L26.7572 22.5558L331.744 22.5558L331.747 22.5558L344.533 22.7347L344.533 34.3601Z\"\n stroke=\"url(#paint1_linear_5_8)\"\n strokeWidth=\"0.843444\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_dd_5_8\" x=\"0\" y=\"0\"\n width=\"371.09\" height=\"250.478\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\" type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"\n />\n <feOffset />\n <feGaussianBlur stdDeviation=\"1\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.145098 0 0 0 0 0.176471 0 0 0 0 0.356863 0 0 0 0.04 0\"\n />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_5_8\" />\n <feColorMatrix\n in=\"SourceAlpha\" type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"\n />\n <feOffset dy=\"4\" />\n <feGaussianBlur stdDeviation=\"4\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.329412 0 0 0 0 0.372549 0 0 0 0 0.435294 0 0 0 0.16 0\"\n />\n <feBlend mode=\"normal\" in2=\"effect1_dropShadow_5_8\" result=\"effect2_dropShadow_5_8\" />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect2_dropShadow_5_8\"\n result=\"shape\"\n />\n </filter>\n <linearGradient\n id=\"paint0_linear_5_8\"\n x1=\"299.621\"\n y1=\"83.8051\"\n x2=\"66.619\"\n y2=\"83.8051\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop\n stopColor=\"#FF3D00\"\n stopOpacity=\"0\"\n />\n <stop offset=\"0.378583\" stopColor=\"#FF3D00\" />\n <stop offset=\"0.616032\" stopColor=\"#0500FF\" />\n <stop offset=\"1\" stopColor=\"#0500FF\" stopOpacity=\"0\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_5_8\"\n x1=\"48.7848\"\n y1=\"22.1341\"\n x2=\"293.863\"\n y2=\"234.947\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FF6100\" stopOpacity=\"0\" />\n <stop offset=\"0.354167\" stopColor=\"#FF6100\" />\n <stop offset=\"0.703125\" stopColor=\"#FF6100\" />\n <stop offset=\"1\" stopColor=\"#FF6100\" stopOpacity=\"0\" />\n </linearGradient>\n </defs>\n </svg>\n );\n};\n\nexport default CertificateViewer;\n\nCertificateViewer.propTypes = {\n username: string,\n startDate: string,\n zoomRatio: number,\n expireDate: string,\n programName: string\n};\n","import React, { useState } from 'react';\nimport { func } from 'prop-types';\nimport { IconChevronLeft, IconMagnifyingGlassPlus, IconMagnifyingGlassMinus } from '@jotforminc/svg-icons';\n\nimport classNames from 'classnames';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { t } from '@jotforminc/translation';\nimport CertificateViewer from './CertificateViewer';\nimport { COURSE_SELECTORS, USER_SELECTORS } from '../../store/selectors';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\nimport { getCertificateValidityDates } from '../../utils';\n\nconst CreateCertificateWizard = ({\n handleCreateCertificate = f => f\n}) => {\n const dispatch = useDispatch();\n const userFullname = useSelector(USER_SELECTORS.getUserFullname);\n const username = useSelector(USER_SELECTORS.getUsername);\n const { title: programName } = useSelector(COURSE_SELECTORS.getActiveCourse) || {};\n const [zoomRatio, setZoomRatio] = useState(1);\n const [initialStepActive, setInitialStepActive] = useState(true);\n const [updateFullNameConfirmed, setUpdateFullNameConfirmed] = useState(false);\n\n const [currentUsername, setCurrentUsername] = useState(userFullname || username);\n\n const handleUpdateUserFullname = (newFullname, callback) => dispatch(ACTION_CREATORS.updateUserFullname(newFullname, callback));\n\n const enableChangeName = userFullname !== currentUsername && currentUsername.length > 0 && updateFullNameConfirmed;\n\n const handleFullnameChanged = newFullname => {\n setInitialStepActive(true);\n setUpdateFullNameConfirmed(false);\n setCurrentUsername(newFullname || currentUsername);\n };\n\n const { startDate, expireDate } = getCertificateValidityDates();\n\n return (\n <section className='flex justify-center items-center z-2 sm:h-120 md:max-w-896'>\n <div className=\"flex flex-col md:flex-row sm:h-120 w-full\">\n {initialStepActive ? (\n <div className=\"w-full md:w-1/2 flex flex-col justify-center items-center bg-white h-full px-6 md:px-16 py-10 md:py-0\">\n <h3 className='color-navy-700 text-lg font-bold mb-12 text-center'>We’re preparing your certificate</h3>\n <p className='color-navy-700 text-md text-center mb-12 text-center'>Do you want to keep the name currently listed on your certificate?</p>\n <div className='flex gap-6'>\n <button\n type=\"button\"\n onClick={handleCreateCertificate}\n className='bg-green-500 color-white font-medium text-sm py-3 px-5 radius hover:bg-opacity-70 duration-300 min-w-24'\n >\n {t('Get certificate')}\n </button>\n <button\n type=\"button\"\n onClick={() => setInitialStepActive(false)}\n className='border border-navy-100 color-navy-500 font-medium text-sm py-3 px-5 radius hover:bg-opacity-70 duration-300 min-w-24'\n >\n {t('Change name')}\n </button>\n </div>\n </div>\n ) : (\n <div className=\"w-full md:w-1/2 flex flex-col md:justify-start md:items-start bg-white h-full\">\n <div className='flex justify-start items-center w-full p-3'>\n <button\n type='button'\n onClick={() => setInitialStepActive(true)}\n className='flex justify-center items-center color-navy-500 text-sm font-medium'\n >\n <IconChevronLeft className='w-5 h-5 color-navy-500' />\n BACK\n </button>\n </div>\n <div className='flex flex-col justify-center items-center px-16 h-full'>\n <h3 className='color-navy-700 text-lg font-bold mb-4 text-center'>We’re preparing your certificate</h3>\n <p className='color-navy-700 text-md text-center mb-12 text-center'>Enter your name as you would like it to appear on your certificate.</p>\n <label htmlFor=\"changeCertificateName\" className='w-full mb-12'>\n <span className='block color-navy-700 text-sm mb-2'>Full Name</span>\n <input\n value={currentUsername}\n onChange={({ target: { value } }) => setCurrentUsername(value)}\n id=\"changeCertificateName\"\n className='bg-navy-25 border border-navy-100 radius-md h-10 w-full px-4'\n type=\"text\"\n />\n <small className='color-navy-300 text-xxs'>Full Name</small>\n </label>\n\n <div className='mb-12 mb:mv'>\n <label htmlFor=\"check\" className='flex items-start color-navy-500 text-sm'>\n <input\n name=\"\"\n id=\"check\"\n type=\"checkbox\"\n className='mt-0.5'\n defaultChecked={updateFullNameConfirmed}\n onChange={() => setUpdateFullNameConfirmed(!updateFullNameConfirmed)}\n />\n <p className='ml-2'>\n {t('Please note that this change will also update your Full Name of your Jotform Account.')}\n </p>\n </label>\n </div>\n <div className='flex mb-12'>\n <button\n type=\"button\"\n disabled={!enableChangeName}\n onClick={() => handleUpdateUserFullname(currentUsername, handleFullnameChanged)}\n className={classNames(\n {\n 'opacity-50': !enableChangeName,\n 'pointer-events-none': !enableChangeName\n }, 'bg-blue-500 color-white font-medium text-sm py-3 px-5 radius hover:bg-opacity-70 duration-300 min-w-24'\n )}\n >\n {t('Change now')}\n </button>\n </div>\n </div>\n </div>\n )}\n\n <div className='relative w-full md:w-1/2'>\n <div\n className=\"overflow-scroll custom-scrollbar flex flex-col justify-start items-start relative z-5 bg-navy-25 md:pb-0 h-120 shrink-0\"\n >\n <div className='sticky top-0 left-0 right-0 z-5 flex justify-start items-center w-full p-4'>\n <h5 className='color-navy-500 text-sm'>{t('Preview')}</h5>\n </div>\n\n <div className='flex justify-center items-center w-full h-full -mt-10'>\n <CertificateViewer\n zoomRatio={zoomRatio}\n startDate={startDate}\n expireDate={expireDate}\n username={currentUsername}\n programName={`${programName}`}\n />\n </div>\n\n </div>\n <div className='absolute left-0 right-0 bottom-7 z-5 flex justify-center w-full'>\n <button\n type='button'\n onClick={() => setZoomRatio(zoomRatio - 0.1)}\n aria-label='zoom out'\n >\n <IconMagnifyingGlassMinus className='w-4 h-4 color-navy-300' />\n </button>\n <div className=\"w-px h-full bg-navy-100 mx-3.5\" />\n <button\n type='button'\n onClick={() => setZoomRatio(zoomRatio + 0.1)}\n aria-label='zoom in'\n >\n <IconMagnifyingGlassPlus className='w-4 h-4 color-navy-300' />\n </button>\n </div>\n </div>\n </div>\n </section>\n );\n};\n\nexport default CreateCertificateWizard;\n\nCreateCertificateWizard.propTypes = {\n handleCreateCertificate: func\n};\n","import React from 'react';\nimport { IconXmark } from '@jotforminc/svg-icons';\nimport { cx } from 'class-variance-authority';\nimport { Button } from '../Button';\nimport primary from '../../tokens/colors/primary';\nimport { modalHeaderDefaultProps, ModalHeaderProps } from './modal.types';\nimport { modalIconCVA, modalIconWrapperCVA } from './modal.cva';\n\nexport const ModalHeader = (props: ModalHeaderProps): JSX.Element => {\n const {\n title,\n description,\n closeButtonRef,\n onClose,\n icon: Icon,\n logoIcon,\n iconColorStyle,\n customIconColorStyle\n } = props;\n\n const hasIcon = !!Icon;\n const hasDescription = !!description;\n\n const iconWrapperClassName = cx(customIconColorStyle, modalIconWrapperCVA({\n iconColorStyle,\n logoIcon\n }));\n\n const iconClassName = cx(modalIconCVA({\n logoIcon\n }));\n\n return (\n <div className=\"flex items-center w-full px-8 py-6 border-b border-solid border-navy-50\">\n {hasIcon && (\n <div className={iconWrapperClassName}>\n <Icon className={iconClassName} />\n </div>\n )}\n <div className=\"mr-6 min-w-0\">\n <h2 className={cx(primary.text.darkest.base, 'text-lg line-height-xl font-medium m-0')}>{title}</h2>\n {hasDescription && (\n <p className={cx(primary.text.medium.base, 'text-xs xs:text-sm xs:line-height-md m-0')}>{description}</p>\n )}\n </div>\n <Button\n startIcon={IconXmark}\n colorStyle=\"secondary\"\n rounded\n aria-label=\"Close Button\"\n ref={closeButtonRef}\n onClick={onClose}\n className=\"ml-auto\"\n />\n </div>\n );\n};\n\nModalHeader.defaultProps = modalHeaderDefaultProps;\n","import React, {\n cloneElement,\n Children,\n Fragment,\n PropsWithChildren\n} from 'react';\nimport type { ReactElement } from 'react';\nimport { cx } from 'class-variance-authority';\n\nimport { ModalActionsProps } from './modal.types';\n\nexport const ModalActions = (props: PropsWithChildren<ModalActionsProps>): JSX.Element => {\n const {\n className, children, ...rest\n } = props;\n\n const childrenArray = Children.toArray(children).filter(child => !!child);\n\n const childCount: number = childrenArray && childrenArray.length;\n\n /* If actions includes primary action and other action element, primary action should be in first order.\n * For this reason reverse layout's condition applied for only two elements in children array.\n * In other cases, it was decided to continue with the simple layout in the current structure.\n */\n const reverseElement = childCount < 3;\n\n return (\n <div\n {...rest}\n className={cx(className,\n 'flex items-center justify-center xs:justify-between py-4 px-8 w-full gap-4 border-t border-solid border-navy-50',\n { 'flex-col xs:flex-row': !reverseElement },\n { 'flex-col-reverse xs:flex-row': reverseElement })}\n >\n {childrenArray.map((child, index) => {\n const childType = child as ReactElement;\n const key = `modal-actions-${index}`;\n const actionSplit = childCount >= 3 && index === (childCount - 3);\n\n return (\n <Fragment key={key}>\n {childType !== null && cloneElement(childType, {\n ...childType.props,\n className: actionSplit\n ? cx(childType.props.className, 'mr-auto w-full xs:w-auto')\n : cx(childType.props.className, 'w-full xs:w-auto')\n })}\n </Fragment>\n );\n })}\n </div>\n );\n};\n","import React from 'react';\nimport { func, bool, string } from 'prop-types';\nimport {\n Modal, ModalHeader, ModalBody, ModalActions\n} from '@jotforminc/magnet';\nimport { IconListBullet } from '@jotforminc/svg-icons';\n\nconst CommonModal = ({\n header = '', isOpen = false, onClose = f => f, footerRenderer = () => null, bodyRenderer = f => f, ...props\n}) => {\n return (\n <Modal\n open={isOpen}\n onClose={onClose}\n className='color-navy-300 bg-white w-full radius-t-lg xs:radius-b-lg max-h-full flex flex-col relative m-0 max-w-lg m-6'\n {...props}\n >\n <ModalHeader\n title={header}\n icon={IconListBullet}\n iconColorStyle='primary'\n onClose={onClose}\n />\n <ModalBody>\n {bodyRenderer()}\n </ModalBody>\n <ModalActions>\n {footerRenderer()}\n </ModalActions>\n </Modal>\n );\n};\n\nCommonModal.propTypes = {\n isOpen: bool,\n onClose: func,\n header: string,\n bodyRenderer: func,\n footerRenderer: func\n};\n\nexport default CommonModal;\n","/* eslint-disable complexity */\n/* eslint-disable no-nested-ternary */\nimport classNames from 'classnames';\nimport React, { useEffect, useState, useRef } from 'react';\nimport { Button } from '@jotforminc/magnet';\nimport { Hooks } from '@jotforminc/uikit';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useHistory, Link } from 'react-router-dom';\nimport { t } from '@jotforminc/translation';\nimport { Loading } from '@jotforminc/loading';\nimport {\n IconXmark,\n IconCopyFilled,\n IconCheckCircle,\n IconFacebookCircleFilled,\n IconLinkedinFilled,\n IconTwitter,\n IconXmarkCircle,\n IconShareNodesFilled,\n IconChevronLeft,\n IconChevronRight,\n IconExclamationCircle,\n IconInfoCircleFilled\n} from '@jotforminc/svg-icons';\nimport ExitQuizModal from './ExitQuizModal';\nimport { COURSE_SELECTORS, UI_SELECTORS, USER_SELECTORS } from '../../store/selectors';\nimport {\n isDevelopmentEnvironment, getFirstIncompleteSection,\n handleDownloadBadge, handleDownloadCertificate, urlParamsSaver, isChapterBreakPoint,\n handleSocialShare, isNextPreviousEnabled, getFirstIncompleteQuiz, getAllIncompletedQuizzes\n} from '../../utils';\nimport Certificate from '../../assets/certificates-quiz.svg';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\nimport { fetchQuizResults, sendAction } from '../../api';\nimport CooldownCountDown from './CooldownCountDown';\nimport CreateCertificateWizard from './CreateCertificateWizard';\nimport { answerSheetsMap } from '../../constants';\nimport CommonModal from '../CommonModal';\n\nlet tryCount = 0;\nconst QuizViewer = () => {\n const quizRef = useRef();\n const history = useHistory();\n const dispatch = useDispatch();\n const [certificateGenerating, setCertificateGenerating] = useState(false);\n\n const user = useSelector(USER_SELECTORS.getUser);\n const [quiFailCount, setQuizFailCount] = useState(0);\n const setActiveCourseSection = section => dispatch(ACTION_CREATORS.setActiveCourseSection(section));\n\n const quizActive = useSelector(COURSE_SELECTORS.getQuizActive);\n const exitQuizModalVisible = useSelector(UI_SELECTORS.getExitQuizModalVisible);\n const toggleQuizActive = active => dispatch(ACTION_CREATORS.toggleQuizActive(active));\n const regenerateCertificate = (courseID, callback) => dispatch(ACTION_CREATORS.regenerateCertificate(courseID, callback));\n\n const activeCourseSection = useSelector(COURSE_SELECTORS.getActiveCourseSection);\n const { id: activeSectionID, title: quizTitle } = activeCourseSection;\n useEffect(() => {\n return () => {\n toggleQuizActive(false);\n };\n }, []);\n\n Hooks.useEffectIgnoreFirst(() => {\n toggleQuizActive(false);\n }, [activeSectionID]);\n\n const refreshCourses = () => dispatch(ACTION_CREATORS.refreshCourses());\n const handlePassQuiz = payload => dispatch(ACTION_CREATORS.handlePassQuiz(payload));\n const refreshSectionPropertiesNProgresses = courseID => dispatch(ACTION_CREATORS.refreshSectionPropertiesNProgresses(courseID));\n\n const activeCourse = useSelector(COURSE_SELECTORS.getActiveCourse);\n\n const isAppsProgram = activeCourse.slug === 'jotform-apps';\n const {\n progress: activeCourseProgress = {},\n slug: programSlug\n } = activeCourse || {};\n const { complete: activeCourseCompleted } = activeCourseProgress;\n\n const chapters = useSelector(COURSE_SELECTORS.getChapters);\n const allIncompletedQuizzes = getAllIncompletedQuizzes(chapters);\n\n const isLastQuiz = allIncompletedQuizzes.length === 0 || (\n allIncompletedQuizzes.length === 1\n && allIncompletedQuizzes[0]?.id === activeSectionID\n );\n\n const { title: courseTitle, id: activeCourseID } = activeCourse;\n const certificates = useSelector(USER_SELECTORS.getUserCertificatesSelector);\n const username = useSelector(USER_SELECTORS.getUsername);\n\n const toggleExitQuizModal = (courseID, payload) => dispatch(ACTION_CREATORS.toggleExitQuizModal(courseID, payload));\n const handlePrevNextCourseContent = prev => {\n if (quizActive) {\n toggleExitQuizModal(true, { prev });\n return;\n }\n dispatch(ACTION_CREATORS.handlePrevNextCourseContent(prev, history));\n };\n const {\n id: sectionID,\n sectionID: sectionOrderID,\n properties: {\n quiz_form_id: quizFormID\n },\n progress,\n disabled = false,\n cooldown_ms_until: coolDownUntil = '',\n chapter_id: chapterID\n } = activeCourseSection || {};\n\n const { complete = false, quizCurrentScore, start } = progress || {};\n const [frameHeight, setFrameHeight] = useState(300);\n const [showIncorrectAnswerModal, setShowIncorrectAnswerModal] = useState(false);\n const [quizLoaded, setQuizLoaded] = useState(false);\n const [shareResource, setShareResource] = useState();\n const [quizSubmissionData, setQuizSubmissionData] = useState(\n !complete ? { submitted: false } : {\n passed: true, submitted: true, waitingForResult: false, score: parseInt(quizCurrentScore, 10)\n }\n );\n\n Hooks.useEffectIgnoreFirst(() => {\n setQuizSubmissionData(!complete ? { submitted: false }\n : {\n passed: true,\n submitted: true,\n waitingForResult: false\n });\n }, [activeCourseSection?.id]);\n\n const firstIncompleteSection = getFirstIncompleteSection(chapters, activeCourseSection?.chapter_id);\n const firstIncompleteQuiz = getFirstIncompleteQuiz(chapters);\n const courseCompleted = !firstIncompleteSection && !firstIncompleteQuiz;\n const currentChapterID = activeCourseSection?.chapter_id;\n\n const { title: chapterTitle, sections: chapterSections = [] } = chapters.find(chapter => chapter?.id === currentChapterID) || {};\n\n const isNewChapterBreakPoint = isChapterBreakPoint(courseCompleted, sectionID, chapterSections);\n\n const handleGetQuizScore = () => {\n const interval = setInterval(() => {\n fetchQuizResults(sectionID).then(quizResultsRes => {\n if (tryCount > 100) clearInterval(interval);\n\n tryCount++;\n if (Array.isArray(quizResultsRes) && quizResultsRes.length === 0) return;\n\n const { score: scoreValue, answers = [], form_id: formID } = quizResultsRes;\n if (scoreValue === undefined) return;\n\n const score = parseInt(scoreValue, 10);\n\n if (typeof score !== 'number') return;\n\n // pass quiz\n const passed = score >= 80;\n if (passed) {\n handlePassQuiz({\n score,\n sectionID,\n activeCourseID,\n currentChapterID,\n firstIncompleteSection,\n callback: () => {\n refreshSectionPropertiesNProgresses(activeCourseID);\n setQuizSubmissionData({\n ...quizSubmissionData,\n submitted: true,\n waitingForResult: false,\n passed,\n score,\n answers,\n formID\n });\n clearInterval(interval);\n }\n });\n }\n }).catch(() => {\n clearInterval(interval);\n window.location.reload();\n });\n }, 500);\n };\n\n useEffect(() => {\n const handler = event => {\n try {\n const { data: message = '' } = event;\n if (typeof message === 'string' && message.includes('setHeight')) {\n const [, height] = message.split(':');\n setFrameHeight(height);\n } else if (typeof message === 'object' && message?.action === 'submission-completed' && message?.formID) {\n toggleQuizActive(false);\n setQuizSubmissionData({ ...quizSubmissionData, submitted: true, waitingForResult: true });\n handleGetQuizScore();\n }\n } catch (error) {\n console.log('error', error);\n }\n };\n window.addEventListener('message', handler);\n return () => window.removeEventListener('message', handler);\n }, [quizSubmissionData]);\n\n Hooks.useEffectIgnoreFirst(() => {\n if (disabled) {\n setQuizSubmissionData({ submitted: false });\n }\n }, [disabled]);\n\n const {\n passed,\n score,\n formID,\n submitted,\n answers = [],\n waitingForResult = true\n } = quizSubmissionData;\n\n const handleContinueLearning = () => {\n refreshCourses();\n\n const allQuizSections = chapters.map(chapter => chapter?.sections);\n const mergedAllQuizSections = allQuizSections.reduce((result, array) => result.concat(array), []);\n const continueSection = mergedAllQuizSections.find(section => (!section?.progress?.complete && section));\n const chapterContinueSection = mergedAllQuizSections.find(section => !section?.progress?.complete && section?.chapter_id === currentChapterID);\n\n setActiveCourseSection(chapterContinueSection || continueSection);\n };\n\n const chapterBadgeRenderer = () => {\n const currentChapterObj = chapters.find(chapter => chapter?.id === currentChapterID);\n const { properties } = currentChapterObj || {};\n const { badge } = properties || {};\n if (badge) {\n return (\n <img\n loading=\"lazy\"\n alt=\"chapter badge\"\n width={160}\n height={160}\n src={badge}\n />\n );\n }\n return null;\n };\n\n const shareOptions = [\n {\n name: 'Facebook', className: 'facebook-share', Icon: IconFacebookCircleFilled\n },\n { name: 'X', className: 'x-share', Icon: IconTwitter },\n { name: 'LinkedIn', className: 'linkedin-share', Icon: IconLinkedinFilled },\n { name: 'Copy Link', className: 'copy-link-share', Icon: IconCopyFilled }\n ];\n\n const findSelectedCertificate = () => {\n const certificateIndex = Object.values(certificates).findIndex(cert => cert?.course_slug === activeCourse?.slug);\n const certificateData = Object.values(certificates)[certificateIndex];\n return {\n certificateData,\n id: Object.keys(certificates)[certificateIndex]\n };\n };\n\n const quizVisible = quizLoaded && !submitted;\n const devEnvQuizFormID = '232904332283957'; // '232904332283957'\n const LastQuizCertificateRenderer = () => {\n return (\n <Certificate className=\"max-w-68 md:max-w-104 h-44\" />\n );\n };\n\n const handleLoadQuizForm = () => {\n setQuizLoaded(true);\n toggleQuizActive(true);\n if (!start) {\n sendAction({\n value: 1,\n action: 'start',\n context: 'section',\n identifier: sectionID\n });\n }\n };\n\n const handleCreateCertificate = () => {\n setCertificateGenerating(true);\n regenerateCertificate(activeCourseID, () => {\n setCertificateGenerating(false);\n });\n };\n\n const currentNextSection = isNextPreviousEnabled({ buttonType: 'next', chapters, sectionID: sectionOrderID });\n const currentPreviousSection = isNextPreviousEnabled({ buttonType: 'previous', chapters, sectionID: sectionOrderID });\n const { id: certificateID, certificateData } = findSelectedCertificate();\n\n const generatedCourseCertificate = Object.values(certificates).find(certificate => certificate?.course_id === activeCourseID);\n const createCertificateWizardActive = !generatedCourseCertificate && activeCourseCompleted && !certificateGenerating;\n const quizSuccessSubmitScreenAvailable = (submitted && !waitingForResult && (generatedCourseCertificate || !isLastQuiz));\n\n const numberToOptionMark = (index, reverse = false) => {\n const mapper = {\n 0: 'A', 1: 'B', 2: 'C', 3: 'D'\n };\n const reverseMapper = {\n A: 0, B: 1, C: 2, D: 3\n };\n if (reverse) return reverseMapper[index];\n return mapper[index];\n };\n\n const formatedAnswers = answers.map((answerObject, qid) => {\n const incorrectAnswerIndex = (answerObject?.options || []).findIndex(option => option === answerObject?.answer);\n const correctAnswer = answerSheetsMap[formID][qid];\n\n const correctAnswerIndex = numberToOptionMark(correctAnswer, true);\n return ({\n ...answerObject,\n qid: qid + 1,\n correctAnswerIndex,\n incorrectAnswerIndex,\n correct: numberToOptionMark(incorrectAnswerIndex) === correctAnswer\n });\n });\n const incorrectAnswers = formatedAnswers.filter(answer => !answer?.correct);\n\n const getFirstRequiredIncompletedSection = () => {\n if (!disabled) return;\n\n const currentChapter = chapters.find(chapter => chapter?.id === activeCourseSection?.chapter_id);\n const { sections = [] } = currentChapter || {};\n const activeQuizIndex = sections.findIndex(section => section?.id === activeCourseSection?.id);\n const requiredSections = sections.slice(0, activeQuizIndex);\n\n let startIndex = requiredSections.findIndex(section => section?.properties?.type === 'quiz');\n startIndex = startIndex !== -1 ? startIndex + 1 : 0;\n\n const [firstIncompletedSection] = requiredSections.slice(startIndex).filter(section => section?.properties?.type === 'section' && !section?.progress?.complete);\n if (firstIncompletedSection) return firstIncompletedSection;\n\n const chapterIncompletedQuiz = sections\n .filter(section => section?.properties?.type === 'quiz')\n .find(section => !section?.progress?.complete);\n\n return chapterIncompletedQuiz;\n };\n\n const isCertificateView = courseCompleted && isLastQuiz;\n const firstIncompletedSection = getFirstRequiredIncompletedSection();\n const currentChapter = chapters.find(chapter => chapter?.id === currentChapterID);\n const disableRedirection = exitQuizModalVisible;\n\n const numberToString = number => {\n switch (number) {\n case 1:\n return 'one';\n case 2:\n return 'two';\n case 3:\n return 'three';\n case 4:\n return 'four';\n default:\n break;\n }\n };\n\n return (\n <>\n <div className='relative mb-8 custom-shadow md:radius overflow-hidden shrink-0 sm:min-h-120'>\n {exitQuizModalVisible && <ExitQuizModal /> }\n {\n (disabled) && (\n `${coolDownUntil}`.length > 0 ? <CooldownCountDown coolDownUntil={coolDownUntil} /> : (\n <div className='flex flex-col justify-center items-center bg-navy-25 radius py-16 min-h-56 md:min-h-120'>\n <div className='relative flex justify-center items-center md:w-32 md:h-32 w-20 h-20 mb-2 bg-white radius-xl mb-8 bg-yellow-500 bg-opacity-30'>\n <IconExclamationCircle className=\"relative z-2 w-10 h-10 md:w-16 md:h-16 color-yellow-500\" />\n </div>\n <h6 className='text-lg color-navy-700 mb-3 text-center px-10 lg:px-56 mb-8'>You need to complete all previous courses in order to access this quiz.</h6>\n {\n firstIncompletedSection && (\n <Link\n key='incompleted-course'\n to={urlParamsSaver(`/${programSlug}/${currentChapter?.slug}/${firstIncompletedSection?.slug}`)}\n >\n <button\n type='button'\n onKeyDown={() => setActiveCourseSection(firstIncompletedSection)}\n onClick={() => setActiveCourseSection(firstIncompletedSection)}\n className='flex justify-center items-center font-medium color-white text-lg py-3 px-4 bg-green-500 radius'\n >\n {t('Resume where you left off')}\n <IconChevronRight className='w-6 h-6 ml-3' />\n </button>\n </Link>\n )\n }\n </div>\n )\n )\n }\n {\n (certificateGenerating || (quizFormID && !disabled && !complete && (!quizLoaded || (submitted && waitingForResult)))) && (\n <div className='reletive min-h-108'>\n <Loading\n className=\"transform top-1/2 -translate-y-1/2 left-1/2 -translate-x-1/2 -mt-20\"\n size=\"64px\"\n strokeWidth=\"6\"\n strokeColor=\"#0075E3\"\n />\n </div>\n )\n }\n\n {\n (createCertificateWizardActive)\n ? (\n <CreateCertificateWizard\n activeCourseID={activeCourseID}\n handleCreateCertificate={handleCreateCertificate}\n setCertificateGenerating={setCertificateGenerating}\n />\n )\n : (\n quizSuccessSubmitScreenAvailable && (\n <section\n className={\n `relative radius min-h-120 flex justify-center items-center bg-navy-25 ${\n showIncorrectAnswerModal ? 'flex-col md:flex-row items-stretch w-full flex' : 'flex-col py-11'\n }`\n }\n >\n <div className='flex flex-col justify-center items-center w-full'>\n {\n !shareResource && (\n passed ? (\n <div className='relative mb-2'>\n {\n isNewChapterBreakPoint ? (\n isLastQuiz ? (\n <LastQuizCertificateRenderer />\n ) : chapterBadgeRenderer()\n ) : (\n <>\n <div className=\"flex justify-center items-center w-32 h-32 bg-success radius-xl mb-8\">\n <IconCheckCircle className=\"w-14 h-14 color-green-500\" />\n </div>\n </>\n )\n }\n </div>\n ) : (\n <div className='flex justify-center items-center w-32 h-32 bg-error radius-xl mb-8'>\n <IconXmarkCircle className=\"w-14 h-14 color-red-400\" />\n </div>\n )\n )\n }\n {\n shareResource ? (\n <div\n className='justify-center items-center w-full h-full'\n style={{ display: 'contents' }}\n >\n <div className='w-76 xs:w-104 bg-white radius mb-6'>\n\n <div className='flex justify-between items-center w-full p-4 xs:p-6 border-b border-navy-100'>\n <h6 className='text-md xs:text-xl color-navy-700 font-bold'>Share your achievement</h6>\n <button type='button' onClick={() => setShareResource()} className='bg-navy-100 color-white radius-full w-8 h-8'>\n <IconXmark />\n </button>\n </div>\n <div\n onKeyDown={f => f}\n className='relative flex flex-col p-6'\n >\n <h6 className='text-sm xs:text-lg color-navy-700 mb-6'>\n {`Share the ${shareResource?.type === 'badge' ? 'badge' : 'certificate'} via`}\n </h6>\n <div className='flex gap-5'>\n {\n shareOptions.filter(shareOption => {\n if (shareResource?.type === 'badge' && shareOption?.name === 'Copy Link') return false;\n\n return !shareOption?.disabled;\n }).map(({ name, Icon, className }) => (\n <button\n onClick={() => handleSocialShare(name, shareResource, f => f, activeCourseID)}\n type='button'\n className={`${className} flex justify-center items-center w-12 h-12 radius-full`}\n style={{ backgroundColor: '#2664B8' }}\n >\n <Icon className='w-6 h-6 shrink-0 color-white' />\n </button>\n ))\n }\n </div>\n\n </div>\n </div>\n <p className='w-full line-height-xl font-normal text-sm color-navy-500 text-center mx-auto my-0' style={{ maxWidth: '502px', letterSpacing: '-0.084px' }}>\n Remember, you may not use the fact that you obtained the certificate to imply that Jotform has endorsed you or declared you to be a Jotform expert\n (but we are still proud of you for obtaining it!)\n </p>\n </div>\n ) : (\n <>\n <div className='flex flex-col justify-center items-center w-full mb-4'>\n <h6\n className={`text-2xl font-bold color-navy-700 sm:text-4xl text-center ${passed ? 'mb-4' : 'mb-4 xs:mb-0'}`}\n >\n { passed ? 'Congratulations' : 'Good try! You almost had it.' }\n </h6>\n <span className={`text-lg color-navy-700 block text-center block px-4 sm:px-20 line-height-2xl${passed ? ' mb-4' : ''}`}>\n {\n passed && (\n (isNewChapterBreakPoint)\n ? (\n isLastQuiz\n // eslint-disable-next-line max-len\n ? (`You’ve successfully completed this “${chapterTitle}”. Since you’ve finished ${chapters.length > 1 ? `all ${numberToString(chapters.length)} courses` : 'course'} under the ${courseTitle} program, you’ve earned the ${courseTitle} certificate of completion. `)\n : (\n <>\n <p>You’ve successfully completed this section.</p>\n <p>Please don`t forget to share your achievement with others!</p>\n </>\n )\n )\n : (\n <>\n <p className='mt-2 mb-5 text-center'>\n {`You scored calculation ${score} / 100`}\n </p>\n <p className='text-center m-2 text-center'>\n {t('You\\'ve successfully completed this quiz.')}\n </p>\n <p className='text-center'>\n {t('You can proceed with other videos and quizzes of this course.')}\n </p>\n </>\n )\n )\n }\n {\n !passed && (\n <p className='mt-2 mb-5'>\n {`You scored calculation ${score} / 100`}\n </p>\n )\n }\n </span>\n </div>\n <div className='flex flex-col xs:flex-row gap-6 mb-6'>\n <>\n {\n (!passed) ? (\n <div className='flex flex-col gap-8 items-center'>\n {\n showIncorrectAnswerModal ? (\n <div className='color-red-400 flex flex-col items-center text-lg font-medium'>\n <span>\n {t('Incorrect Answers')}\n </span>\n <span>\n { incorrectAnswers.map(answer => `${answer?.qid}. `) }\n </span>\n </div>\n ) : (\n <button\n type='button'\n onClick={() => setShowIncorrectAnswerModal(true)}\n className='flex underline color-blue-500 text-lg'\n >\n See Answers\n </button>\n )\n }\n <button\n type=\"button\"\n onClick={() => {\n setQuizSubmissionData({ submitted: false });\n setQuizFailCount(quiFailCount + 1);\n setQuizLoaded(false);\n }}\n className='flex justify-center items-center color-white bg-green-500 radius text-md px-6 py-3.5 h-12 w-full xs:w-auto min-w-56'\n >\n {t('Retake quiz')}\n </button>\n </div>\n ) : (\n isNewChapterBreakPoint ? (\n <>\n <div className={`flex justify-center items-center${isCertificateView ? ' xs:flex-row flex-col xs:gap-2 gap-4' : ' flex-col'}`}>\n {\n ((!isCertificateView || !isLastQuiz) && !isAppsProgram) && (\n <div\n className='flex flex-col xs:flex-row gap-2 mb-2 xs:mb-4 w-full'\n >\n {\n !isCertificateView && (\n <button\n type=\"button\"\n onClick={() => setShareResource({ type: 'badge', chapterID })}\n className='flex justify-center items-center border border-navy-700 color-navy-700 radius text-md px-6 py-3.5 h-12 w-full xs:w-auto min-w-56'\n >\n <IconShareNodesFilled className='w-6 h-6 mr-5' />\n Share the badge\n </button>\n )\n }\n {\n !isLastQuiz && (\n <button\n type=\"button\"\n onClick={() => handleDownloadBadge(chapterID, username, (chapters || []).find(chapter => chapter?.id === chapterID)?.title)}\n className='flex justify-center items-center border border-navy-700 color-navy-700 radius text-md px-6 py-3.5 h-12 w-full xs:w-auto min-w-56'\n >\n Download the badge\n </button>\n )\n }\n </div>\n )\n }\n\n {\n isCertificateView ? (\n <button\n type=\"button\"\n onClick={() => handleDownloadCertificate(certificateID, username, courseTitle, activeCourseID)}\n className='flex justify-center items-center color-white bg-blue-500 radius text-md px-6 py-3.5 h-12 w-full xs:w-auto min-w-56'\n >\n {t('Download Your Certificate')}\n </button>\n ) : (\n <button\n type=\"button\"\n onClick={handleContinueLearning}\n className='flex justify-center items-center color-white bg-green-500 radius text-md px-6 py-3.5 h-12 w-full xs:w-auto min-w-56'\n >\n Continue learning\n </button>\n )\n }\n {isCertificateView && (\n <button\n type=\"button\"\n onClick={() => setShareResource({ type: 'certificate', certificateID, certificateData })}\n className='flex justify-center items-center gap-2 color-navy-700 border border-navy-00 radius text-md px-6 py-3.5 h-12 w-full xs:w-auto min-w-56'\n >\n <IconShareNodesFilled className='w-6 h-6 mr-5' />\n Share Your Certificate\n </button>\n )}\n </div>\n </>\n ) : (\n <button\n type=\"button\"\n onClick={handleContinueLearning}\n className='flex justify-center items-center color-white bg-green-500 radius text-md px-6 py-3.5 h-12 w-full xs:w-auto min-w-56'\n >\n Continue learning\n </button>\n )\n )\n }\n\n </>\n </div>\n </>\n )\n }\n </div>\n <CommonModal\n header={`See Correct Answers for ${quizTitle}`}\n size='xlarge'\n zIndex={10000}\n onClose={() => setShowIncorrectAnswerModal(false)}\n ariaLabel={`See Correct Answers for ${quizTitle}`}\n bodyRenderer={() => (\n <div\n className='flex items-stretch w-full'\n >\n <ul className='flex flex-col h-full p-5 justify-center text-lg'>\n {\n incorrectAnswers.map(question => {\n const {\n title, options, correctAnswerIndex, incorrectAnswerIndex\n } = question;\n const [questionNumber, ...rest] = title.split(' ');\n const prettyQuestionTitle = rest.join(' ');\n return (\n <li key={question?.qid} className='flex align-center gap-3 color-navy-700 mb-8'>\n <span className='text-lg m-0 line-height-md font-bold min-w-6'>{questionNumber}</span>\n <div className='flex flex-col gap-2'>\n <p className='text-lg m-0 line-height-md font-bold'>{prettyQuestionTitle}</p>\n {\n options.map((option, index) => {\n // eslint-disable-next-line no-unused-vars\n const [answerLetter, ...prettyAnswer] = option.split(' ');\n return (\n <p\n className={classNames('text-lg m-0 line-height-md', {\n 'color-red-400 line-through': index === incorrectAnswerIndex,\n 'color-green-500 font-bold': index === correctAnswerIndex\n })}\n >\n {prettyAnswer.join(' ')}\n </p>\n );\n })\n }\n </div>\n </li>\n );\n })\n }\n </ul>\n </div>\n )}\n footerRenderer={() => (\n <>\n <div className='flex items-center gap-2 color-navy-300'>\n <IconInfoCircleFilled className=\"w-4 h-4\" />\n <span className='text-sm'>\n Want to try again? Retake the quiz to earn a passing grade and move on to the next lesson.\n </span>\n </div>\n <Button\n colorStyle='success'\n variant='filled'\n onClick={() => {\n setQuizSubmissionData({ submitted: false });\n setQuizFailCount(quiFailCount + 1);\n setQuizLoaded(false);\n setShowIncorrectAnswerModal(false);\n }}\n >\n {t('Retake Quiz')}\n </Button>\n </>\n )}\n isOpen={showIncorrectAnswerModal}\n />\n </section>\n )\n )\n }\n {\n (quizFormID && !complete) && (\n <iframe\n ref={quizRef}\n title=\"Academy Quiz\"\n onLoad={handleLoadQuizForm}\n src={isDevelopmentEnvironment()\n ? `${window.location.origin}/${devEnvQuizFormID}?username=${user?.credentials?.username}&quizFailCount=${quiFailCount}`\n : `https://www.jotform.com/${quizFormID}?username=${user?.credentials?.username}&quizFailCount=${quiFailCount}`}\n style={{\n display: quizVisible ? 'block' : 'none',\n width: quizVisible ? '100%' : '0px',\n border: 'none',\n minHeight: quizVisible ? `${parseInt(frameHeight, 10) + 10}px` : '0px'\n }}\n />\n )\n }\n {\n (!createCertificateWizardActive && (!submitted || quizSuccessSubmitScreenAvailable)) && (\n <section className=\"relative p-4 bg-white\">\n <div\n className={`flex justify-between items-center w-full${disableRedirection ? ' pointer-events-none' : ''}`}\n >\n <button\n type=\"button\"\n disabled={!currentPreviousSection}\n style={!currentPreviousSection ? { pointerEvents: 'none', opacity: 0 } : {}}\n onClick={() => handlePrevNextCourseContent(true)}\n className={\n `flex justify-center items-center text-sm md:text-lg px-3 sm:px-6 py-1.5 radius-full color-navy-400 bg-navy-50 duration-300 ${\n !currentPreviousSection ? 'pointer-events-none' : 'hover:bg-navy-500 hover:color-white'\n }`\n }\n >\n <IconChevronLeft className=\"w-5 h-5 mr-0.5\" />\n Previous lesson\n </button>\n <button\n type=\"button\"\n disabled={!currentNextSection}\n style={!currentNextSection ? { opacity: 0, pointerEvents: 'none' } : {}}\n onClick={() => handlePrevNextCourseContent(false)}\n className={\n `flex justify-center items-center text-sm md:text-lg px-3 sm:px-6 py-1.5 radius-full color-navy-400 bg-navy-50 duration-300 ${\n !currentNextSection ? 'pointer-events-none' : 'hover:bg-navy-500 hover:color-white'\n }`\n }\n >\n Next lesson\n <IconChevronRight className=\"w-5 h-5 ml-0.5\" />\n </button>\n </div>\n </section>\n )\n }\n </div>\n <section className='px-3 lg:px-0'>\n <ul className=\"flex justify-start w-full overflow-x-scroll xl:overflow-hidden pb-2 mt-8\">\n <li className=\"text-md xl:text-xl w-full whitespace-nowrap color-navy-700 font-medium\">\n Overview\n </li>\n </ul>\n <div className='w-full bg-navy-300 h-0.5 mb-10 ' />\n <div className='color-navy-500 text-md'>\n Test yourself on this unit. You must score at least 80% to continue to the following quizzes. If you don’t pass the first time, you can retake the quiz after 4 hours have passed.\n </div>\n </section>\n </>\n );\n};\n\nexport default QuizViewer;\n","import React, { useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport VideoPlayerWrapper from '../VideoPlayerWrapper';\nimport Tabmenu from '../Tabmenu';\nimport QuizViewer from '../QuizViewer';\nimport { COURSE_SELECTORS } from '../../store/selectors';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\nimport { findSectionObjectBySlugs, getAppInfoFromURL, urlParamsSaver } from '../../utils';\n\nconst CourseContentViewer = () => {\n const history = useHistory();\n const dispatch = useDispatch();\n\n const chapters = useSelector(COURSE_SELECTORS.getChapters);\n const activeCourse = useSelector(COURSE_SELECTORS.getActiveCourse);\n const setCurrentStage = currentStage => dispatch(ACTION_CREATORS.setCurrentStage(currentStage));\n const setActiveCourseSection = section => dispatch(ACTION_CREATORS.setActiveCourseSection(section));\n const restartVideoState = () => dispatch(ACTION_CREATORS.restartVideoState());\n\n const { title: activeCourseTitle } = activeCourse || {};\n\n const {\n title, properties, id, chapter_id: chapterID, slug: currentSectionSlug, description\n } = useSelector(COURSE_SELECTORS.getActiveCourseSection) || {};\n const { type = 'section' } = properties || {};\n\n useEffect(() => {\n setCurrentStage('course');\n return () => {\n restartVideoState();\n setActiveCourseSection();\n };\n }, []);\n\n useEffect(() => {\n if (!id || !activeCourse) return;\n const { progress: courseProgress, slug: courseSlug } = chapters.find(chapter => chapter?.id === chapterID) || {};\n if (!courseProgress?.enroll) {\n const { slug: programSlug } = activeCourse;\n history.push(urlParamsSaver(`/courses/${programSlug}/${courseSlug}`));\n }\n }, [id]);\n\n useEffect(() => {\n const { title: chapterTitle } = chapters.find(chapter => chapter?.id === chapterID) || {};\n if (title && chapterTitle && activeCourseTitle) {\n document.title = `${title} - ${chapterTitle} - ${activeCourseTitle} | Jotform Academy`;\n }\n\n const currentPageURL = window?.location.href;\n const canonicalLinkEl = document?.querySelector('link[rel=\"canonical\"]');\n const metaDescriptionEl = document?.querySelector('meta[name=\"description\"]');\n\n if (canonicalLinkEl && currentPageURL !== canonicalLinkEl.href) {\n canonicalLinkEl.href = currentPageURL;\n }\n\n if (metaDescriptionEl && description) {\n metaDescriptionEl.content = description;\n }\n\n window.scrollTo({ top: 0, behavior: 'smooth' });\n }, [id]);\n\n useEffect(() => {\n const handlePopState = () => {\n const {\n stage, programSlug, courseSlug, sectionSlug\n } = getAppInfoFromURL();\n if (stage !== 'video') return;\n const { section } = findSectionObjectBySlugs(chapters, courseSlug, sectionSlug);\n if (!section) {\n setActiveCourseSection('1.1');\n history.push(urlParamsSaver(`/${programSlug}/${courseSlug}/${sectionSlug}`));\n } else if (currentSectionSlug !== sectionSlug) {\n setActiveCourseSection(section?.sectionID);\n }\n };\n window.addEventListener('popstate', handlePopState);\n return () => window.removeEventListener('popstate', handlePopState);\n }, [chapters]);\n\n const isQuizSection = type === 'quiz';\n const loading = id === undefined;\n return (\n <>\n {\n loading ? (\n <div className='c-skeleton-line w-88 h-8 mb-8 mx-5 md:mx-0' />\n ) : (\n <h1 className=\"text-lg sm:text-4xl color-navy-700 font-bold mb-8 mt-0 mx-5 md:mx-0\">\n {title}\n </h1>\n )\n }\n\n {\n isQuizSection\n ? <QuizViewer />\n : (\n <>\n <VideoPlayerWrapper loading={loading} />\n <Tabmenu loading={loading} />\n </>\n )\n }\n </>\n );\n};\n\nexport default CourseContentViewer;\n","import { useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { COURSE_SELECTORS, USER_SELECTORS } from '../../store/selectors';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\nimport { getAppInfoFromURL, urlParamsSaver } from '../../utils';\n\nconst CourseNotFoundHandler = () => {\n const history = useHistory();\n const dispatch = useDispatch();\n\n const setCourseNotFoundError = course => dispatch(ACTION_CREATORS.setCourseNotFoundError(course));\n const setSectionNotFoundError = section => dispatch(ACTION_CREATORS.setSectionNotFoundError(section));\n\n const userType = useSelector(USER_SELECTORS.getUserType);\n const courseNotFound = useSelector(COURSE_SELECTORS.getCourseNotFoundError);\n const sectionNotFound = useSelector(COURSE_SELECTORS.getSectionNotFoundError);\n\n useEffect(() => {\n if (courseNotFound) {\n history.push(urlParamsSaver('/courses'));\n setCourseNotFoundError(false);\n }\n if (sectionNotFound) {\n const { programSlug, courseSlug } = getAppInfoFromURL();\n history.push(urlParamsSaver(`/courses/${programSlug}/${courseSlug}`));\n setSectionNotFoundError(false);\n }\n }, [courseNotFound, sectionNotFound, userType]);\n\n return null;\n};\n\nexport default CourseNotFoundHandler;\n","import { createBrowserHistory } from 'history';\nimport { getAppPathWrapper } from './utils';\n\nexport default createBrowserHistory({\n basename: getAppPathWrapper()\n});\n","/* eslint-disable max-len */\nimport React from 'react';\nimport { string, bool } from 'prop-types';\n\nconst Infocard = ({\n title = '', desc = '', Icon = false, IconClassName = '', className = ''\n}) => {\n return (\n <article\n className={`${className} flex flex-col justify-center sm:justify-start items-center w-full h-auto shink-0`}\n >\n {Icon && (\n <div className='icons' style={{ aspectRatio: '4/3' }}>\n <Icon className={`${IconClassName} shrink-0 mb-1.5`} />\n </div>\n )}\n <h6 className=\"color-navy-700 font-medium text-lg xs:text-2xl text-center mb-4 -mt-3\">\n {title}\n </h6>\n <p className=\"color-navy-300 text-sm xs:text-md xl:text-lg line-height-2xl text-center wrap-balance\">\n {desc}\n </p>\n </article>\n );\n};\nexport default Infocard;\n\nInfocard.propTypes = {\n title: string,\n desc: string,\n IconClassName: string,\n className: string,\n Icon: bool\n};\n","/* eslint-disable max-len */\nimport React from 'react';\nimport Qnote from '../../../assets/landing/qnote.svg';\n\nconst Testimonials = () => {\n return (\n <>\n <section className='flex justify-between items-start w-full'>\n <Qnote className=\"hidden sm:block w-18 w-14 mt-4\" />\n <div className='flex flex-col justift-center items-center w-full text-center px-0 sm:px-20'>\n <div className='text-sm xs:text-xl color-white line-height-3xl mb-6 xs:mb-18'>\n I came looking to get some information but without any real expectations so I was pleasantly surprised by the breadth and presentation of the material.\n </div>\n <strong className='text-md xs:text-xl font-bold color-white'>Retail Manager</strong>\n </div>\n <Qnote className=\"hidden sm:block w-18 w-14 mt-4 transform rotate-180\" />\n </section>\n </>\n );\n};\nexport default Testimonials;\n","/* eslint-disable max-len */\nimport React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport {\n IconCheckCircleFilled,\n IconTriangleCircleFilled,\n IconQuestionCircleFilled\n} from '@jotforminc/svg-icons';\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport { Pagination, Navigation } from 'swiper/modules';\nimport HeroLeftSideImage from '../../assets/landing/hero-left-side.png';\nimport HeroRightSideImage from '../../assets/landing/hero-right-side.png';\nimport HeroBottomSideImage from '../../assets/landing/hero-bottom-side-v2.png';\nimport HeroBottomSideImageMobile from '../../assets/landing/hero-bottom-mobile-v2.png';\nimport HeroTopBannerMobile from '../../assets/landing/hero-top-banner.png';\nimport Infocard from '../Landing/Infocard';\nimport EnrollImage from '../../assets/landing/enroll-image.png';\nimport Icon1 from '../../assets/landing/icons/enroll.svg';\nimport Icon2 from '../../assets/landing/icons/take-a-course.svg';\nimport Icon3 from '../../assets/landing/icons/certificate.svg';\nimport Icon4 from '../../assets/landing/icons/get-a-course-badge.svg';\nimport '../../styles/landing-page.scss';\nimport CourseCardItem from '../CourseCardItem';\nimport { Title, Subtitle } from '../Heading';\nimport Infobox from '../Landing/infobox';\nimport CenterVideoSection from '../CenterVideoSection';\nimport CheckIcon from '../../assets/landing/check.svg';\nimport { ACTION_CREATORS } from '../../store/actionCreators';\nimport Testimonials from '../Landing/Testimonials';\nimport { tickAcademyAction, urlParamsSaver } from '../../utils';\nimport 'swiper/css';\nimport LogoMarkFilled from '../../assets/landing/icons/logo-mark-filled.svg';\nimport MessageFilled from '../../assets/landing/icons/message-filled.svg';\nimport MingcuteCertificateFill from '../../assets/landing/icons/mingcute_certificate-fill.svg';\nimport { USER_SELECTORS } from '../../store/selectors';\nimport CertificateDisclaimer from '../CertificateDisclaimer';\n\nconst unusedImportRule = {\n CourseCardItem,\n Infobox,\n Infocard,\n Icon1,\n Icon2,\n Icon3\n};\nif (window.location.href.includes('unusedImports=1')) console.log('Unused Imports :: ', unusedImportRule);\n\nconst Landing = () => {\n const dispatch = useDispatch();\n const userneme = useSelector(USER_SELECTORS.getUsername);\n const setCurrentStage = currentStage => dispatch(ACTION_CREATORS.setCurrentStage(currentStage));\n\n useEffect(() => {\n setCurrentStage('landing');\n }, []);\n\n return (\n <>\n <section className=\"relative pt-20 xs:pt-20 mb-0 md:mb-28 overflow-hidden hero-mobile-bg\">\n <div className=\"flex xs:hidden justify-start item-center w-full -mt-6 -ml-4\">\n <img\n loading=\"lazy\"\n src={HeroLeftSideImage}\n className=\"hidden xs:block w-14\"\n width={56}\n height={88}\n alt=\"Academy Hero Left Mobile\"\n />\n </div>\n <div className=\"relative max-w-md xxl:max-w-lg mx-auto px-5 lg:px-0\">\n <img\n loading=\"lazy\" width={490}\n height={164} src={HeroTopBannerMobile} className='block xs:hidden mb-10'\n alt=\"Academy Hero Banner Mobile\"\n />\n <img\n loading=\"lazy\"\n src={HeroLeftSideImage}\n width={176}\n height={278}\n alt=\"Academy Hero Left\"\n className=\"absolute hidden xs:block top-4 -left-4 xs:-left-10 md:-left-14 lg:-left-32 xl:-left-48 xxl:-left-48 top-10 w-20 xs:w-36 sm:w-36 xxl:w-44 h-auto select-none pointer-events-none\"\n />\n <h4 className=\"color-navy-500 xs:color-navy-700 text-sm xs:text-sm lg:text-lg xl:text-2xl font-normal xs:font-bold text-center mt-0 mb-2 sm:mb-5 px-10 xs:px-0\">\n 🎓 BECOME A JOTFORM MASTER THROUGH FREE TRAINING COURSES\n </h4>\n <h1 className=\"text-gradient font-bold text-center text-6xl xs:text-4xl sm:text-6xl md:text-7xl lg:text-8xl mb-6 xs:mb-2 mt-0 lg:mb-6\">\n Jotform Academy\n </h1>\n <p className=\"relative color-navy-700 xs:color-navy-300 text-md xs:text-md lg:text-xl xl:line-height-2xl text-center mb-4 sm:mb-10 px-0 xs:px-28 sm:px-32 lg:px-20 xl:px-10 wrap-balance\">\n Want to become a Jotform master?\n <strong className='font-bold xs:font-normal'> Enroll in Jotform Academy now </strong>\n to access comprehensive courses about every aspect of our products. Make the most of Jotform with our\n <strong className='font-bold xs:font-normal'> free lessons today!</strong>\n <img\n loading=\"lazy\"\n src={HeroBottomSideImageMobile}\n className=\"absolute -left-2 -bottom-20 hidden w-14\"\n width={56}\n height={80}\n alt=\"Academy Hero Bottom Mobile\"\n />\n </p>\n <div className='flex flex-col'>\n <div className=\"inline-flex flex-col items-center sm:flex-row justify-center gap-4 w-full mb-8 xs:mb-14 sm:mb-10 order-last xs:order-first\">\n <Link\n to={urlParamsSaver('/courses')}\n onClick={() => {\n tickAcademyAction({\n action: 'click',\n target: 'landing-hero-cta',\n actor: userneme\n });\n }}\n className=\"cta inline-flex shrink-0 items-center justify-center whitespace-nowrap focus:outline-2 focus:outline-navy-100 hover:bg-green-600\n focus:outline-opacity-30 radius py-3 px-7 sm:px-14 text-md lg:text-lg font-medium bg-green-500 color-white text-center duration-300 w-auto\"\n >\n Get Started\n <i className='block xs:hidden'>\n <span className='mx-1'>-</span>\n It’s Free\n </i>\n </Link>\n </div>\n <div className=\"flex flex-col items-center xs:flex-row flex-wrap justify-start xs:justify-center gap-0 xs:gap-3 sm:gap-6 w-full mb-4 xs:mb-0 pt-5 xs:pt-0 order-first xs:order-last mb-9 xs:mb-0\">\n <div className=\"flex justify-start xs:justify-start items-center gap-0.5 xs:gap-2 color-navy-700 text-md xs:text-md whitespace-nowrap w-32 xs:w-auto mb-4 xs:mb-0\">\n <IconCheckCircleFilled className=\"w-5 sm:w-5 h-5 sm:h-5 shrink-0 mr-2 xs:mr-0 color-yellow-400 xs:color-navy-700\" />\n Free & Online\n </div>\n <div className=\"flex justify-start xs:justify-start items-center gap-0.5 xs:gap-2 color-navy-700 text-md xs:text-md whitespace-nowrap w-32 xs:w-auto mb-4 xs:mb-0\">\n <CheckIcon className=\"w-6 sm:w-6 h-6 sm:h-6 shrink-0 mr-2 xs:mr-0 color-approvals-light xs:color-navy-700\" />\n Certificates\n </div>\n <div className=\"flex justify-start xs:justify-start items-center gap-0.5 xs:gap-2 color-navy-700 text-md xs:text-md whitespace-nowrap w-32 xs:w-auto mb-4 xs:mb-0\">\n <IconTriangleCircleFilled className=\"w-5 sm:w-5 h-5 sm:h-5 shrink-0 mr-2 xs:mr-0 color-blue-400 xs:color-navy-700\" />\n Videos\n </div>\n <div className=\"flex justify-start xs:justify-start items-center gap-0.5 xs:gap-2 color-navy-700 text-md xs:text-md whitespace-nowrap w-32 xs:w-auto\">\n <IconQuestionCircleFilled className=\"w-5 sm:w-5 h-5 sm:h-5 shrink-0 mr-2 xs:mr-0 color-purple-500 xs:color-navy-700\" />\n Quizzes\n </div>\n </div>\n </div>\n <div className=\"flex justify-center w-full\">\n <img\n loading=\"lazy\"\n src={HeroBottomSideImage}\n className=\"hidden xs:block max-w-full sm:max-w-sm h-auto select-none pointer-events-none\"\n width={620}\n height={234}\n alt=\"Academy Hero Bottom\"\n />\n </div>\n <img\n loading=\"lazy\"\n src={HeroRightSideImage}\n className=\"hidden xs:block absolute top-20 -right-18 xs:-right-32 sm:-right-28 md:-right-32 lg:-right-48 xxl:-right-64 xl:top-1/2 transform sm:-translate-y-1/2 w-32 xs:w-64 sm:w-64 xxl:w-88 h-auto select-none pointer-events-none\"\n width={352}\n height={278}\n alt=\"Academy Hero Right\"\n />\n </div>\n </section>\n <section\n className=\"pt-4 pb-4 xs:py-10 xl:pb-32\"\n style={{\n background:\n 'linear-gradient(357deg, #F9F9FF 41.89%, rgba(249, 249, 255, 0.00) 96.97%)'\n }}\n >\n <div className=\"max-w-xl mx-auto px-5 lg:px-0\">\n <div className=\"mb-6 xs:mb-12\">\n <Title\n dark\n title=\"Why should you enroll?\"\n className=\"text-lg xs:text-4xl sm:text-6xl md:text-6xl mb-2\"\n />\n </div>\n <section className=\"grid cols-1 sm:cols-1 md:cols-1 lg:cols-3 gap-6 px-2 xl:px-0 mb-9\">\n <Infobox\n Icon={LogoMarkFilled}\n title=\"Become a Jotform master\"\n desc=\"Jotform is a powerful tool with many versatile features. After taking our courses, you’ll be able to take advantage of everything Jotform has to offer.\"\n />\n <Infobox\n Icon={MingcuteCertificateFill}\n title=\"Prove your proficiency\"\n desc=\"Demonstrate your Jotform proficiency with your own Jotform Academy certificate. Show your clients or employer that you know a thing or two about Jotform and its tools.\"\n />\n <Infobox\n Icon={MessageFilled}\n title=\"Help us with your feedback\"\n desc=\"Jotform cares about your opinion. We encourage you to provide feedback after finishing a course. You can even suggest a new course if we haven’t covered what you’re looking for.\"\n />\n </section>\n <CertificateDisclaimer />\n <div className=\"custom-pagination-enroll mt-5\" />\n </div>\n </section>\n <section className=\"bg-white py-10 xl:py-20\">\n <div className=\"max-w-xl mx-auto px-5 lg:px-0\">\n <Title\n dark\n title=\"Who can enroll?\"\n className=\"text-lg xs:text-4xl sm:text-6xl md:text-6xl mb-2\"\n />\n <Subtitle\n dark\n className=\"mb-6 xs:mb-18\"\n title=\"Anybody can enroll in Jotform Academy, no matter their experience level with Jotform.\"\n />\n <div>\n <div className=\"relative flex flex-col justify-center items-center sm:flex-row gap-16\">\n <div className=\"absolute -left-10 -top-10 bg-yellow-400 radius-full w-11 h-11\" />\n <div className=\"absolute -left-32 bottom-0 bg-navy-300 radius-full w-6 h-6\" />\n <div className=\"w-full sm:w-1/2\">\n <img\n loading=\"lazy\"\n src={EnrollImage}\n alt=\"Who can enroll?\"\n width={608}\n height={448}\n />\n </div>\n <div className=\"w-full sm:w-1/2\">\n <div className=\"mb-8\">\n <strong className=\"text-lg xs:text-2xl font-bold color-navy-700 block mb-4\">\n Go back to basics\n </strong>\n <p className=\"text-sm xs:text-md xs:text-lg color-navy-300 line-height-2xl\">\n If you’re a new user, the Jotform Academy curriculum offers\n a great opportunity for you to learn about our product. We\n dive into the basics so you can feel confident navigating\n our platform.\n </p>\n </div>\n <div className=\"mb-8\">\n <strong className=\"text-lg xs:text-2xl font-bold color-navy-700 block mb-4\">\n Discover our productivity suite\n </strong>\n <p className=\"text-sm xs:text-md xs:text-lg color-navy-300 line-height-2xl\">\n More seasoned users already know that Jotform is much more\n than a form builder. We’ll explore our extensive suite of\n productivity tools, including Jotform Apps, Jotform Sign,\n Store Builder, and others.\n </p>\n </div>\n <div className=\"mb-0\">\n <strong className=\"text-lg xs:text-2xl font-bold color-navy-700 block mb-4\">\n Earn a Jotform certificate\n </strong>\n <p className=\"text-sm xs:text-md xs:text-lg color-navy-300 line-height-2xl\">\n Even if you consider yourself an expert on all things Jotform, don’t write off Jotform Academy just yet!\n We bet you’ll learn a few new tricks once you complete the courses.\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n <section className=\"py-10 xl:pt-0 xl:py-32\">\n <div className=\"max-w-xl mx-auto px-5 lg:px-0\">\n <div className=\"mb-6 xs:mb-12\">\n <Title\n dark\n title=\"How does it work ?\"\n className=\"text-lg xs:text-4xl sm:text-6xl md:text-6xl mb-2\"\n />\n <Subtitle\n dark\n title=\"Follow a few easy steps to get certified through Jotform Academy.\"\n />\n </div>\n <section className=\"\">\n <Swiper\n slidesPerView={4}\n spaceBetween={30}\n loop={false}\n pagination={{\n el: '.custom-pagination',\n clickable: true,\n renderBullet: (index, className) => {\n return `<span class=\"${className}\"></span>`;\n }\n }}\n breakpoints={{\n 0: {\n slidesPerView: 1,\n spaceBetween: 50\n },\n\n 1140: {\n slidesPerView: 4,\n spaceBetween: 30\n }\n }}\n navigation={false}\n modules={[Pagination, Navigation]}\n >\n <SwiperSlide className=\"flex w-full shrink-0\">\n <Infocard\n title=\"Enroll\"\n Icon={Icon1}\n IconClassName=\"w-60\"\n desc=\"Select the Jotform training course you want to take and review the curriculum. Make sure you’re logged into Jotform.\"\n />\n </SwiperSlide>\n <SwiperSlide className=\"flex w-full shrink-0\">\n <Infocard\n title=\"Take a course\"\n Icon={Icon2}\n IconClassName=\"w-60\"\n desc=\"Start your training by watching course videos anytime, anywhere. You can review them as many times as you need and complete quizzes in each section to assess your knowledge.\"\n />\n </SwiperSlide>\n <SwiperSlide className=\"flex w-full shrink-0\">\n <Infocard\n title=\"Get a course badge\"\n Icon={Icon4}\n IconClassName=\"w-60\"\n desc=\"After watching all the videos and passing the quizzes for each course, you’re eligible for a course completion badge.  \"\n />\n </SwiperSlide>\n <SwiperSlide className=\"flex w-full shrink-0\">\n <Infocard\n title=\"Receive your certificate\"\n Icon={Icon3}\n IconClassName=\"w-60\"\n desc=\"Finish all three courses to receive a certificate of completion. Simply download the certificate and add it to your CV or resume, or share it on your social media accounts.\"\n />\n </SwiperSlide>\n </Swiper>\n </section>\n <div className=\"custom-pagination mt-5\" />\n </div>\n </section>\n <section className=\"bg-navy-700 py-10 xl:py-36\">\n <div className=\"max-w-xl mx-auto px-5 lg:px-0\">\n <Title\n className=\"mb-6 xs:mb-11 text-lg xs:text-4xl sm:text-6xl md:text-6xl px-0 xs:px-20 mb-2\"\n light\n title=\"Here’s what our alumni have to say about </br> Jotform Academy.\"\n />\n <Testimonials />\n </div>\n </section>\n <CenterVideoSection />\n </>\n );\n};\n\nexport default Landing;\n","export const getThemeClassNames = theme => {\n if (theme === 'light') {\n return 'bg-white color-navy-600';\n }\n return 'bg-navy-600 color-white';\n};\n\nexport const getEndIconClassNames = theme => {\n if (theme === 'light') {\n return {\n selected: 'color-navy-600',\n notSelected: 'color-navy-25 group-hover:color-navy-50 duration-300'\n };\n }\n return {\n selected: 'color-white',\n notSelected: 'color-navy-500 group-hover:color-navy-300 duration-300'\n };\n};\n","import React from 'react';\nimport { string, oneOf, bool } from 'prop-types';\nimport classNames from 'classnames';\nimport { getThemeClassNames } from '../../utils';\n\nexport const MenuItemSubheader = ({\n subheader,\n className,\n theme,\n isTitle\n}) => {\n const subheaderClassNames = classNames('list-item list-none px-2 py-3 text-sm font-medium',\n className,\n !isTitle ? getThemeClassNames(theme) : 'color-navy-300');\n\n return (\n <li className={subheaderClassNames}>\n {subheader}\n </li>\n );\n};\n\nMenuItemSubheader.propTypes = {\n className: string,\n subheader: string,\n theme: oneOf(['dark', 'light']),\n isTitle: bool\n};\n\nMenuItemSubheader.defaultProps = {\n className: '',\n subheader: '',\n theme: 'dark',\n isTitle: false\n};\n","import React from 'react';\nimport {\n string, func, bool, oneOf, node\n} from 'prop-types';\nimport classNames from 'classnames';\n\nexport const MenuItemButton = ({\n id,\n onClick,\n isDisabled,\n className,\n theme,\n colorStyle,\n children\n}) => {\n const buttonClassNames = classNames(\n 'flex items-center w-full text-left p-2 duration-300 radius group',\n isDisabled && 'pointer-events-none opacity-30',\n className,\n {\n 'bg-navy-600 hover:bg-navy-400': theme === 'dark',\n 'bg-white hover:bg-navy-25': theme === 'light',\n 'color-white': theme === 'dark' && colorStyle === null,\n 'color-navy-600': theme === 'light' && colorStyle === null,\n 'color-red-400': colorStyle === 'red',\n 'color-orange-400': colorStyle === 'orange'\n }\n );\n\n return (\n <button\n type=\"button\"\n className={buttonClassNames}\n onClick={onClick}\n data-id={id}\n disabled={isDisabled}\n >\n {children}\n </button>\n );\n};\n\nMenuItemButton.propTypes = {\n onClick: func,\n id: string.isRequired,\n isDisabled: bool,\n theme: oneOf(['dark', 'light']),\n colorStyle: oneOf([null, 'red', 'orange']),\n className: string,\n children: node.isRequired\n};\n\nMenuItemButton.defaultProps = {\n onClick: () => {},\n isDisabled: false,\n className: '',\n theme: 'dark',\n colorStyle: null\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n string, oneOf, elementType\n} from 'prop-types';\nimport { getEndIconClassNames } from '../../utils';\n\nexport const MenuItemIcon = ({\n className,\n icon: Icon,\n hoverIcon: HoverIcon,\n position,\n isActive,\n theme\n}) => {\n const commonIconClassNames = classNames(\n 'w-4 h-4 shrink-0',\n className,\n {\n 'ml-2': position === 'end',\n 'mr-2': position === 'start'\n },\n typeof isActive === 'boolean' && getEndIconClassNames(theme)[isActive ? 'selected' : 'notSelected']\n );\n\n const hoverIconClassNames = classNames(commonIconClassNames, { 'group-hover:block hiddenjf': !!HoverIcon });\n const iconClassNames = classNames(commonIconClassNames, { 'group-hover:hiddenjf block': !!HoverIcon });\n\n return (\n <>\n {HoverIcon && <HoverIcon className={hoverIconClassNames} /> }\n <Icon className={iconClassNames} />\n </>\n );\n};\n\nMenuItemIcon.propTypes = {\n className: string,\n icon: elementType.isRequired,\n hoverIcon: elementType,\n position: oneOf(['start', 'end']),\n theme: oneOf(['dark', 'light']),\n isActive: oneOf([true, false, null])\n};\n\nMenuItemIcon.defaultProps = {\n className: null,\n position: 'start',\n theme: 'dark',\n isActive: null,\n hoverIcon: null\n};\n","import React from 'react';\nimport { string, node, bool } from 'prop-types';\nimport classNames from 'classnames';\n\nexport const MenuItemTitle = ({\n children,\n className,\n isContext\n}) => {\n const titleClassNames = classNames(\n isContext ? 'text-15' : 'text-md',\n 'grow-1 truncate font-medium',\n className\n );\n\n return (\n <span className={titleClassNames}>\n {children}\n </span>\n );\n};\n\nMenuItemTitle.propTypes = {\n children: node.isRequired,\n className: string,\n isContext: bool\n};\n\nMenuItemTitle.defaultProps = {\n className: '',\n isContext: false\n};\n","import React from 'react';\nimport { string, oneOf } from 'prop-types';\nimport classNames from 'classnames';\n\nexport const MenuItemBadge = ({\n colorStyle,\n text,\n className\n}) => {\n const badgeClassNames = classNames('px-1.5 py-0.5 ml-1 text-xxs radius text-uppercase font-bold',\n className,\n {\n 'bg-navy-300 color-white': colorStyle === 'gray',\n 'bg-blue-500 color-white': colorStyle === 'blue',\n 'bg-green-500 color white': colorStyle === 'green'\n });\n\n return (\n <span className={badgeClassNames}>\n {text}\n </span>\n );\n};\n\nMenuItemBadge.propTypes = {\n text: string,\n colorStyle: oneOf(['gray', 'blue', 'green']),\n className: string\n};\n\nMenuItemBadge.defaultProps = {\n colorStyle: 'gray',\n text: '',\n className: ''\n};\n","import React from 'react';\nimport { string } from 'prop-types';\nimport classNames from 'classnames';\n\nexport const MenuItemShortcut = ({\n text,\n className\n}) => {\n const shortCutClassNames = classNames(\n 'ml-1 text-xxs color-navy-300',\n className\n );\n\n return (\n <span className={shortCutClassNames}>\n {text}\n </span>\n );\n};\n\nMenuItemShortcut.propTypes = {\n text: string,\n className: string\n};\n\nMenuItemShortcut.defaultProps = {\n text: '',\n className: ''\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n string, node, oneOf, func, bool\n} from 'prop-types';\nimport { getThemeClassNames } from '../../utils';\n\nexport const MenuItem = ({\n className,\n children,\n theme,\n handleOnMouseEnter,\n id,\n isContext\n}) => {\n const menuItemClassNames = classNames(\n isContext ? 'px-2 py-0.5' : 'px-4 py-1',\n 'list-item list-none',\n getThemeClassNames(theme),\n className\n );\n\n return (\n <li\n className={menuItemClassNames}\n onMouseEnter={handleOnMouseEnter}\n id={id}\n >\n {children}\n </li>\n );\n};\n\nMenuItem.propTypes = {\n className: string,\n children: node.isRequired,\n theme: oneOf(['dark', 'light']),\n handleOnMouseEnter: func,\n id: string.isRequired,\n isContext: bool\n};\n\nMenuItem.defaultProps = {\n className: null,\n theme: 'dark',\n handleOnMouseEnter: () => {},\n isContext: false\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n string, node, oneOf, bool\n} from 'prop-types';\nimport { getThemeClassNames } from '../../utils';\n\nexport const MenuList = ({\n className,\n children,\n theme,\n isContext\n}) => {\n const menuListClassNames = classNames(\n isContext ? 'py-2 radius max-h-70vh' : 'pb-3 max-h-80vh',\n 'list overflow-auto',\n getThemeClassNames(theme),\n className\n );\n\n return (\n <ul className={menuListClassNames}>\n {children}\n </ul>\n );\n};\n\nMenuList.propTypes = {\n className: string,\n children: node.isRequired,\n theme: oneOf(['dark', 'light']),\n isContext: bool\n\n};\n\nMenuList.defaultProps = {\n className: null,\n theme: 'dark',\n isContext: false\n};\n","import React from 'react';\nimport { oneOf, bool } from 'prop-types';\nimport classNames from 'classnames';\n\nexport const MenuDivider = ({ theme, isContext }) => {\n const dividerClass = classNames('h-px', {\n 'bg-navy-500': theme === 'dark',\n 'bg-gray-25': theme === 'light'\n });\n return (\n <li className={isContext ? 'px-2 my-0.5' : 'px-4 my-1'}>\n <div className={dividerClass} />\n </li>\n );\n};\n\nMenuDivider.propTypes = {\n theme: oneOf(['dark', 'light']),\n isContext: bool\n};\n\nMenuDivider.defaultProps = {\n theme: 'dark',\n isContext: false\n};\n","import React, {\n useMemo, useRef, useState, useEffect\n} from 'react';\nimport '@jotforminc/jotform.css';\n// eslint-disable-next-line no-restricted-imports\nimport '@jotforminc/jotform.css/animation.css';\nimport { usePopper } from 'react-popper';\nimport {\n func, shape, string, elementType, arrayOf, oneOf, bool\n} from 'prop-types';\nimport { IconChevronRight } from '@jotforminc/svg-icons';\nimport {\n MenuItemButton, MenuItemIcon, MenuItemTitle,\n MenuItemBadge, MenuDivider, MenuItem,\n MenuList, MenuItemSubheader, MenuItemShortcut\n} from '@jotforminc/drawer';\n\nexport const ContextMenu = React.forwardRef(({\n schema,\n strategy,\n placement,\n id,\n onMouseEnter,\n onOutsideClick,\n className,\n theme\n}, ref) => {\n const contextMenuRef = useRef();\n const timerRef = useRef(null);\n\n const [arrowElement, setArrowElement] = useState(null);\n const [subElement, setSubElement] = useState(null);\n const [selectedItemID, setSelectedItemID] = useState(null);\n\n const { styles, attributes } = usePopper(ref.current, contextMenuRef.current, {\n placement,\n strategy,\n modifiers: [{ name: 'arrow', options: { element: arrowElement } }]\n });\n\n const selectedItem = useMemo(() => {\n if (selectedItemID) return schema.children?.find(child => child.id === selectedItemID);\n }, [selectedItemID]);\n\n useEffect(() => {\n if (onOutsideClick) {\n const handleOutsideClick = event => {\n const isClickOutsideMenu = contextMenuRef.current && !contextMenuRef.current.contains(event.target);\n const isClickOutsideButton = ref.current && !ref.current.contains(event.target);\n if (isClickOutsideMenu && isClickOutsideButton) onOutsideClick();\n };\n document.addEventListener('click', handleOutsideClick, true);\n return () => {\n document.removeEventListener('click', handleOutsideClick, true);\n };\n }\n return () => {};\n }, []);\n\n const handleOnMouseEnter = e => {\n const _element = e.currentTarget;\n clearTimeout(timerRef.current);\n timerRef.current = setTimeout(() => {\n setSubElement({\n current: _element\n });\n setSelectedItemID(_element.getAttribute('id'));\n }, 200);\n };\n\n const renderItem = item => {\n if (item.customComponent) {\n return item.customComponent;\n }\n\n switch (item.type ?? 'item') {\n case 'subheader':\n return <MenuItemSubheader subheader={item.title} theme={theme} isTitle={item?.isTitle} />;\n case 'item':\n const startIcon = item.icon;\n const endIcon = item.endIcon ?? (item.children?.length > 0 ? IconChevronRight : null);\n return (\n <MenuItemButton\n id={item.id}\n onClick={item.onClick}\n isDisabled={item.isDisabled}\n theme={theme}\n colorStyle={item.colorStyle}\n >\n {!!startIcon && (\n <MenuItemIcon icon={startIcon} />\n )}\n <MenuItemTitle isContext={true}>{item.title}</MenuItemTitle>\n {!!item.badge && (\n <MenuItemBadge\n text={item.badge.text}\n className={item.badge.className}\n colorStyle={item.badge.colorStyle}\n />\n )}\n {!!item.shortCut && (\n <MenuItemShortcut\n text={item.shortCut}\n />\n )}\n {!!endIcon && (\n <MenuItemIcon\n icon={endIcon}\n position='end'\n isActive={item.isActive}\n hoverIcon={item.hoverIcon}\n theme={theme}\n />\n )}\n </MenuItemButton>\n );\n case 'element':\n return (\n <MenuItem id={item.id} className={item.className} />\n );\n default:\n throw new Error('Unsupported type');\n }\n };\n\n return (\n <>\n <div\n ref={contextMenuRef}\n style={{\n ...styles.popper,\n padding: schema.id === 'root' ? '10px 4px' : '0 4px',\n zIndex: 9999\n }}\n className={className}\n id={id}\n onMouseEnter={onMouseEnter}\n {...attributes.popper}\n >\n <MenuList theme={theme} isContext={true}>\n {schema.children?.map(item => {\n if (!item.isVisible && typeof item.isVisible !== 'undefined') {\n return null;\n }\n\n // Sub-context-menu or element render node within container key\n // If you can use exclude custom node & component, component must be assign to container in children object\n if (item.type === 'element' && item.children) {\n return item.children?.map(child => {\n return child.container ? child.container : null;\n });\n }\n\n return (\n <React.Fragment key={item.id}>\n <MenuItem\n handleOnMouseEnter={handleOnMouseEnter}\n theme={theme}\n id={item.id}\n isContext={true}\n >\n {item.customComponent ? item.customComponent : renderItem(item)}\n </MenuItem>\n {item.hasDivider && <MenuDivider theme={theme} isContext={true} />}\n </React.Fragment>\n );\n })}\n </MenuList>\n <div ref={setArrowElement} style={styles.arrow} />\n </div>\n\n {selectedItem && selectedItem.children && subElement && (\n <ContextMenu\n schema={selectedItem}\n ref={subElement}\n placement=\"right-start\"\n id={selectedItemID}\n className={className}\n onMouseEnter={() => {\n clearTimeout(timerRef.current);\n }}\n strategy={strategy}\n theme={theme}\n />\n )}\n </>\n );\n});\n\nconst schemaProps = {\n id: string.isRequired,\n title: string,\n icon: elementType,\n type: oneOf(['subheader', 'item', 'divider', 'element']),\n onClick: func,\n endIcon: elementType,\n badge: shape({\n text: string,\n colorStyle: string\n }),\n shortCut: string\n};\n\nContextMenu.propTypes = {\n zIndex: string,\n className: string,\n overlay: bool,\n theme: oneOf(['dark', 'light']),\n strategy: string,\n placement: string,\n schema: shape({\n ...schemaProps,\n children: arrayOf(shape(schemaProps))\n }).isRequired,\n id: string,\n onMouseEnter: func,\n onOutsideClick: func\n};\n\nContextMenu.defaultProps = {\n zIndex: null,\n overlay: true,\n className: '',\n theme: 'dark',\n strategy: 'fixed',\n placement: 'bottom',\n id: null,\n onMouseEnter: () => { },\n onOutsideClick: null\n};\n","/* eslint-disable max-len */\nimport React, { useEffect, useState, useRef } from 'react';\nimport { Link } from 'react-router-dom';\nimport { createPortal } from 'react-dom';\nimport { t } from '@jotforminc/translation';\nimport { useSelector, useDispatch } from 'react-redux';\n\nimport { Loading } from '@jotforminc/loading';\nimport {\n IconEllipsisVertical, IconArrowDownToLine, IconChevronRight, IconLinkedinFilled, IconFacebookCircleFilled, IconTwitter, IconLinkDiagonal\n} from '@jotforminc/svg-icons';\nimport { ContextMenu as Context } from '@jotforminc/context-menu';\nimport Certificates from '../../../assets/certificates.svg';\nimport { getUserBadges } from '../../../api';\nimport { COURSE_SELECTORS, USER_SELECTORS } from '../../../store/selectors';\nimport {\n handleDownloadBadge, handleDownloadCertificate, handleSocialShare, urlParamsSaver\n} from '../../../utils';\nimport { ACTION_CREATORS } from '../../../store/actionCreators';\nimport PlaceHolderLogo from '../../../assets/my-courses/placeholder/logo.svg';\nimport PlaceHolderBadge from '../../../assets/my-courses/placeholder/badge.svg';\nimport EmptyCertificates from '../../../assets/my-courses/my-certificates/empty-certificates.svg';\nimport EmptyBadge from '../../../assets/my-courses/my-certificates/empty-badge.svg';\n\nconst MyCertificates = () => {\n const refs = useRef([]);\n\n const dispatch = useDispatch();\n const setCurrentStage = currentStage => dispatch(ACTION_CREATORS.setCurrentStage(currentStage));\n\n const [selectedBadge, setSelectedBadge] = useState();\n const [selectedCertificate, setSelectedCertificate] = useState();\n\n const [badges, setBadges] = useState();\n const [certificates, setCertificates] = useState([]);\n\n useEffect(() => {\n setCurrentStage('certificates');\n }, []);\n\n useEffect(() => {\n refs.current = refs.current.slice(0, ([...(certificates || []), ...(badges || [])] || []).length);\n }, [certificates, badges]);\n\n const courses = useSelector(COURSE_SELECTORS.getCourses);\n\n const getCourseNameByChapterID = chapterID => {\n return (\n courses.find(course => {\n return Object.values(course.chapters).find(chapter => chapter.id === chapterID);\n })?.title\n );\n };\n\n const certificatesData = useSelector(USER_SELECTORS.getUserCertificatesSelector);\n const username = useSelector(USER_SELECTORS.getUsername);\n\n const getSelectedCertificateObj = () => {\n if (!certificatesData) return {};\n\n const certificateIndex = Object.values(certificatesData).findIndex(cert => cert?.course_slug === selectedCertificate?.course_slug);\n if (certificateIndex === -1) return {};\n\n const certificateID = Object.keys(certificatesData)[certificateIndex];\n return {\n certificateID,\n ...Object.values(certificatesData)[certificateIndex]\n };\n };\n\n useEffect(() => {\n function handleClickOutside(event) {\n if (!selectedBadge && !selectedCertificate) return;\n\n const shareContext = document.querySelectorAll('.shareBadgeContext');\n const shareOptionsBtn = document.querySelectorAll('.badgeOptionsBtn');\n\n let isOutClick = true;\n shareContext.forEach(context => {\n if (context.contains(event.target)) isOutClick = false;\n });\n\n shareOptionsBtn.forEach(context => {\n if (context.contains(event.target)) isOutClick = false;\n });\n\n if (shareContext && isOutClick) {\n setSelectedBadge();\n setSelectedCertificate();\n }\n }\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, [selectedBadge, selectedCertificate]);\n\n const handleFetchBadges = () => {\n getUserBadges().then(badgesData => {\n setBadges(\n badgesData.map(badge => {\n let chaptersData = [];\n for (let i = 0; i < courses.length; i++) {\n const { chapters = [] } = courses[i];\n chaptersData = [...chaptersData, ...chapters];\n }\n\n const targetChapter = chaptersData.find(chapter => chapter?.id === badge?.chapterID);\n const { properties, title: chapterTitle } = targetChapter || {};\n const { order: chapterOrder } = properties || {};\n\n return {\n ...badge,\n chapterTitle,\n chapterOrder\n };\n })\n );\n });\n };\n\n const handleFetchCertificates = () => {\n setCertificates(Object.values(certificatesData));\n };\n\n useEffect(() => {\n if (!certificatesData) return;\n\n handleFetchBadges();\n handleFetchCertificates();\n }, [certificatesData]);\n\n const certificateData = getSelectedCertificateObj();\n const { certificateID, course_name: certificateCourseName, course_id: certificateCourseID } = certificateData;\n\n const shareItemClickHandler = socialPlatform => {\n if (selectedCertificate) {\n handleSocialShare(\n socialPlatform,\n { type: 'certificate', certificateID, certificateData },\n () => setSelectedCertificate()\n );\n } else if (selectedBadge) {\n const { chapterID } = selectedBadge;\n handleSocialShare(\n socialPlatform,\n {\n chapterID,\n type: 'badge'\n },\n () => setSelectedBadge()\n );\n setSelectedBadge();\n }\n };\n\n const options = [\n {\n id: 'download',\n title: 'Download',\n hidden: false,\n onClick: () => {\n const downloadFunction = selectedBadge\n ? () => handleDownloadBadge(selectedBadge?.chapterID, username, '')\n : () => handleDownloadCertificate(certificateID, username, certificateCourseName, certificateCourseID);\n\n downloadFunction();\n (selectedBadge ? setSelectedBadge : setSelectedCertificate)();\n }\n },\n {\n id: 'share',\n title: 'Share',\n children: [\n {\n id: 'copy-link',\n onClick: () => {\n handleSocialShare(\n 'CopyLink',\n selectedCertificate\n ? { certificateID, type: 'certificate' }\n : { badgeURL: selectedBadge?.badgeURL, type: 'badge' },\n () => (selectedCertificate\n ? setSelectedCertificate\n : setSelectedBadge)()\n );\n },\n isVisible: true,\n title: 'Copy Link'\n },\n {\n id: 'share-linkedin',\n onClick: () => shareItemClickHandler('LinkedIn'),\n isVisible: true,\n title: 'LinkedIn'\n },\n {\n id: 'share-facebook',\n onClick: () => shareItemClickHandler('Facebook'),\n isVisible: true,\n title: 'Facebook'\n },\n {\n id: 'share-x',\n onClick: () => shareItemClickHandler('X'),\n isVisible: true,\n title: 'X'\n }\n ]\n }\n ];\n\n const defaultSchema = {\n children: options,\n id: 'defaultSchema',\n title: 'Default Schema',\n icon: IconEllipsisVertical\n };\n const enableShare = global?.location?.href?.includes('enableShare=1');\n return (\n <>\n <>\n {enableShare && (\n <div className=\"z-3 relative multilevel-dropdown-menu\">\n <IconEllipsisVertical className=\"w-4 h-4\" />\n <nav className='absolute shadow-center bg-white radius p-2.5 min-w-48'>\n <ul className=\"color-navy-300 text-md font-normal w-full\">\n <li className='relative border-b border-navy-50'>\n <button type=\"button\" className=\"flex justify-between items-center w-full\">\n Download\n <IconArrowDownToLine className=\"w-4 h-4\" />\n </button>\n </li>\n <li className=\"relative\">\n <div className=\"flex justify-between items-center w-full\">\n Share\n <IconChevronRight className=\"w-4 h-4\" />\n </div>\n <div className='dropdown-wrapper absolute bg-transprent px-18 w-full -right-32 -bottom-9 w-full'>\n <ul className=\"shadow-center w-full min-w-48 radius overflow-hidden\">\n <li className='pl-18 bg-white border-b border-navy-50'>\n <button type=\"button\" className='flex justify-start items-center gap-1.5 text-left w-full'>\n <IconLinkDiagonal className='w-4 h-4' />\n Copy Link\n </button>\n </li>\n <li className='pl-18 bg-white'>\n <div className=\"flex gap-2\">\n <button type=\"button\" className='w-6 h-6 bg-navy-500 radius-full'><IconLinkedinFilled className='color-white w-3 h-3' /></button>\n <button type=\"button\" className='w-6 h-6 bg-navy-500 radius-full'><IconFacebookCircleFilled className='color-white w-3 h-3' /></button>\n <button type=\"button\" className='w-6 h-6 bg-navy-500 radius-full'><IconTwitter className='color-white w-3 h-3' /></button>\n </div>\n </li>\n </ul>\n </div>\n </li>\n </ul>\n </nav>\n </div>\n )}\n\n <strong className=\"block color-navy-700 text-lg mb-4\"> Certificates </strong>\n <section className=\"relative mb-16\">\n {!certificatesData ? (\n <div className=\"relative min-h-108\">\n <Loading\n className=\"transform top-1/2 -translate-y-1/2 left-1/2 -translate-x-1/2 -mt-20\" size=\"64px\" strokeWidth=\"6\"\n strokeColor=\"#0075E3\"\n />\n </div>\n ) : (\n <>\n {certificatesData.length <= 0 ? (\n <>\n <div className=\"flex flex-col justify-center items-center\">\n <EmptyCertificates className=\"w-68 h-40 mb-6\" />\n <strong className='text-medium color-navy-500 text-lg\"'>You haven’t received any certificates yet.</strong>\n </div>\n </>\n ) : (\n <div className=\"grid cols-1 sm:cols-2 md:cols-3 gap-10 mb-10 sm:mb-12\">\n {certificates.map((certificate, index) => {\n const {\n course_name: courseName, course_slug: courseSlug, type, screenshot: certificateScreenshotURL\n } = certificate;\n if (type === 'skeleton') {\n return (\n <div className=\"flex flex-col justify-center items-start w-full\">\n <PlaceHolderLogo className=\"w-full h-full\" />\n </div>\n );\n }\n return (\n <>\n <div key={courseSlug} className=\"relative certificates-wrapper\">\n {certificateScreenshotURL ? (\n <img\n loading=\"lazy\"\n src={`${window.location.origin}/academy/certificate/${Object.keys(certificatesData)[index]}/image/?q=75&w=576`}\n alt={`${courseName} Certificate`}\n width={576}\n height={407}\n className=\"shadow-center w-full h-auto radius mb-2\"\n />\n ) : (\n <Certificates className=\"shadow-center w-full h-auto radius mb-2\" />\n )}\n\n <button\n type=\"button\"\n ref={el => {\n refs.current[index] = el;\n }}\n onClick={() => {\n setSelectedBadge();\n setSelectedCertificate(certificate);\n }}\n className=\"badgeOptionsBtn flex justify-center items-center w-7 h-7 radius absolute top-2 right-2 bg-navy-50\"\n aria-label='dropdown menu'\n >\n <IconEllipsisVertical className=\"w-4 h-4\" />\n </button>\n {selectedCertificate?.course_slug === courseSlug\n && createPortal(<Context\n theme=\"dark\" schema={defaultSchema} placement=\"right-start\"\n className=\"shareBadgeContext\" ref={{ current: refs?.current[index] }}\n />, document.body)}\n <strong className=\"font-medium text-sm xs:text-lg color-navy-700\">{courseName}</strong>\n </div>\n </>\n );\n })}\n </div>\n )}\n </>\n )}\n <div className=\"flex justify-center items-center w-full mt-6\">\n <Link to={urlParamsSaver('/courses')}>\n <div className=\"font-medium text-md color-white py-3 px-6 radius bg-green-500 hover:bg-green-600 duration-300\">\n {certificatesData <= 0 ? <>{t('Start a course now')}</> : <>{t('Earn another certificate')}</>}\n </div>\n </Link>\n </div>\n </section>\n </>\n\n <strong className=\"block color-navy-700 text-lg mb-4\"> Badges </strong>\n <section className=\"relative\">\n {!badges ? (\n <div className=\"reletive min-h-108\">\n <Loading\n className=\"transform top-1/2 -translate-y-1/2 left-1/2 -translate-x-1/2 -mt-20\" size=\"64px\" strokeWidth=\"6\"\n strokeColor=\"#0075E3\"\n />\n </div>\n ) : (\n <>\n {badges.length <= 0 ? (\n <>\n <div className=\"flex flex-col justify-center items-center\">\n <EmptyBadge className=\"w-40 h-40 mb-6\" />\n <strong className='text-medium color-navy-500 text-lg\"'>You haven’t received any badges yet.</strong>\n </div>\n </>\n ) : (\n <div className=\"grid cols-2 sm:cols-3 md:cols-4 gap-10 lg:gap-18 mb-10 sm:mb-20\">\n {badges.map((badge, index) => {\n const {\n chapterID, badgeURL, chapterOrder, type\n } = badge;\n if (type === 'skeleton') {\n return (\n <div className=\"flex flex-col justify-start items-center w-full\">\n <PlaceHolderBadge className=\"w-full h-auto\" />\n </div>\n );\n }\n return (\n <div key={chapterID} className=\"relative\">\n <img\n loading=\"lazy\"\n className=\"w-full h-auto radius mb-2\"\n src={badgeURL}\n width={160}\n height={160}\n alt={`badge-${chapterID}`}\n />\n <button\n type=\"button\"\n ref={el => {\n refs.current[index + certificates.length] = el;\n }}\n onClick={() => {\n setSelectedCertificate();\n setSelectedBadge(badge);\n }}\n aria-label='dropdown menu'\n className=\"badgeOptionsBtn flex justify-center items-center w-7 h-7 radius absolute top-2 right-2 bg-navy-50\"\n >\n <IconEllipsisVertical className=\"w-4 h-4\" />\n </button>\n {selectedBadge?.chapterID === chapterID\n && createPortal(\n <Context\n theme=\"dark\" schema={defaultSchema} placement=\"right-start\"\n className=\"shareBadgeContext\" ref={{ current: refs?.current[index + certificates.length] }}\n />,\n document.body\n )}\n <div style={{ display: 'grid' }}>\n <strong className=\"font-medium text-sm xs:text-lg color-navy-700\">{getCourseNameByChapterID(chapterID)}</strong>\n <strong className=\"font-medium text-xs xs:text-md color-navy-700\">{`Section ${chapterOrder || index + 1}`}</strong>\n </div>\n </div>\n );\n })}\n </div>\n )}\n </>\n )}\n <div className=\"flex justify-center items-center w-full mt-6\">\n <Link to={urlParamsSaver('/courses')}>\n <div className=\"font-medium text-md color-white py-3 px-6 radius bg-green-500 hover:bg-green-600 duration-300\">\n {badges <= 0 ? <>{t('Start a course now')}</> : <>{t('Earn another badge')}</>}\n </div>\n </Link>\n </div>\n </section>\n </>\n );\n};\n\nexport default MyCertificates;\n","/* eslint-disable max-len */\nimport React, { useState, useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport Modal from '../../Modal';\nimport EmptyWishlist from '../../../assets/my-courses/wishlist/empty.svg';\nimport CourseCardItem from '../../CourseCardItem';\nimport { COURSE_SELECTORS, USER_SELECTORS } from '../../../store/selectors';\nimport { urlParamsSaver } from '../../../utils';\nimport CourseRequestForm from './CourseRequestForm';\nimport { ACTION_CREATORS } from '../../../store/actionCreators';\n// import { removeCourseWishlist, addCourseWishlist } from '../../../api';\n\nconst Wishlist = () => {\n const dispatch = useDispatch();\n const setCurrentStage = currentStage => dispatch(ACTION_CREATORS.setCurrentStage(currentStage));\n\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [upcomingCourses, setUpcomingCourses] = useState();\n const courses = useSelector(COURSE_SELECTORS.getCourses);\n const wishlist = useSelector(USER_SELECTORS.getUserWishList);\n\n useEffect(() => {\n if (!wishlist) return;\n if (courses.length === 0) return;\n setUpcomingCourses(courses.filter(course => course?.listing === 'LISTED' && course?.status === 'DISABLED' && wishlist.includes(course?.id)));\n }, [wishlist, courses]);\n\n const skeletons = [1, 2];\n useEffect(() => {\n setCurrentStage('wishlist');\n }, []);\n\n const isLoading = !upcomingCourses || !wishlist;\n return (\n <>\n <section>\n <div className='text-center'>\n {\n (!isLoading && upcomingCourses.length === 0) && (\n <div className='flex flex-col justify-center items-center'>\n <EmptyWishlist className=\"w-40 h-48 mb-6\" />\n <strong className='text-medium color-navy-500 text-lg'> You haven’t any wishlist yet.</strong>\n </div>\n )\n }\n </div>\n <div className=\"card-grid-container grid gap-10 w-full justify-center\">\n {\n (isLoading ? skeletons.map(skeleton => ({ type: 'skeleton', id: `skeleton-${skeleton}` })) : upcomingCourses).map(course => (\n <CourseCardItem\n course={course}\n key={course?.slug}\n type={course?.type}\n isWishlistPage={true}\n isAddedToWishlist={(wishlist || []).includes(course?.id)}\n />\n ))\n }\n </div>\n </section>\n <section className='flex flex-col sm:flex-row justify-center items-center w-full gap-5 mt-6'>\n <Link to={urlParamsSaver('/courses')}>\n <div className='font-medium text-md color-white py-3 px-6 radius bg-green-500 hover:bg-green-600 duration-300 min-w-52'>See all future courses</div>\n </Link>\n <button onClick={() => setIsModalOpen(true)} type=\"button\" className='font-medium text-md color-white py-3 px-6 radius bg-white color-navy-700 border border-navy-700 hover:bg-navy-700 hover:color-white duration-300 min-w-52'>Request a course</button>\n </section>\n <Modal\n className=\"p-4\"\n isOpen={isModalOpen}\n height=\"h-full sm:h-95vh\"\n onClose={() => setIsModalOpen(false)}\n >\n <CourseRequestForm />\n </Modal>\n </>\n );\n};\n\nexport default Wishlist;\n","import React from 'react';\nimport { arrayOf, object } from 'prop-types';\nimport { IconCheckCircleFilled } from '@jotforminc/svg-icons';\nimport { smallPosters } from '../../../../constants';\n\nconst MycoursesCompletedCard = ({ completedCourses }) => {\n return (\n <div>\n {\n completedCourses.map(course => {\n const { title, slug } = course;\n return (\n (\n <div className=\"w-full mb-4\">\n <article className=\"flex justify-center items-center flex-row gap-4 shadow-center radius-tl radius-tr max-w-full w-full h-full shrink-0\">\n <div className=\"w-48 h-full p-2 overflow-hidden\">\n <img\n loading=\"lazy\"\n src={smallPosters[slug]}\n className=\"w-full sm:w-48 h-full object-cover radius shrink-0 block\"\n width={162}\n height={96}\n alt=\"\"\n />\n </div>\n <div className=\"relative w-full sm:p-4\">\n <div className='flex justify-between w-full'>\n <div className='flex justify-between items-center w-full'>\n <div className='flex flex-col w-full'>\n <div className=\"flex flex-col justify-center items-start w-full mb-1\">\n <h5 className=\"color-navy-700 text-sm sm:text-lg font-bold m-0\">\n {title}\n </h5>\n </div>\n <div className=\"flex items-center gap-0.5 mb-2\">\n <IconCheckCircleFilled className=\"color-green-500 w-5 h-5\" />\n <span className=\"color-navy-300 text-xs sm:text-md\">\n Completed\n </span>\n </div>\n </div>\n <a\n href=\"/academy/mycourses/certificates/\"\n className='hidden sm:inline-flex font-medium text-md color-white bg-green-500 py-2 px-5 radius whitespace-nowrap'\n >\n See My Certificate\n </a>\n </div>\n </div>\n </div>\n </article>\n <div className=\"relative w-full\">\n <div className=\"h-2 radius-bl-xl radius-br-xl bg-navy-50\" />\n <div\n className=\"absolute top-0 left-0 w-full h-2 radius-bl-xl radius-br-xl radius-tl-none radius-tr-xl bg-navy-300\"\n style={{ width: '100%' }}\n />\n </div>\n </div>\n )\n );\n })\n }\n </div>\n );\n};\nexport default MycoursesCompletedCard;\n\nMycoursesCompletedCard.defaultProps = {\n completedCourses: []\n};\n\nMycoursesCompletedCard.propTypes = {\n completedCourses: arrayOf(object)\n};\n","/* eslint-disable max-len */\nimport React from 'react';\nimport {\n object,\n arrayOf,\n func\n} from 'prop-types';\nimport { IconChevronDown, IconChevronUp } from '@jotforminc/svg-icons';\nimport { calculateCourseTotalProgress } from '../../../../utils';\nimport PlayIcon from '../../../../assets/my-courses/playIcon.svg';\nimport { smallPosters } from '../../../../constants';\n\nconst MycoursesContinueLearningCard = ({ course = {}, coursesToggleList = [], setCoursesToggleList = f => f }) => {\n const {\n duration, id, title: courseTitle, slug\n } = course;\n const { totalProgress, unwatchedSectionCount, remainingTimePrettyText } = calculateCourseTotalProgress(course);\n const progressRatio = (totalProgress * 100) / duration;\n const toggleOpen = coursesToggleList.includes(id);\n\n const handleToggleCard = () => {\n if (toggleOpen) {\n setCoursesToggleList(coursesToggleList.filter(toggleCourse => toggleCourse !== id));\n return;\n }\n setCoursesToggleList([...coursesToggleList, id]);\n };\n\n const ToggleIcon = toggleOpen ? IconChevronUp : IconChevronDown;\n return (\n <>\n <span className='w-full'>\n <article className=\"flex justify-center items-center flex-row gap-4 w-full shadow-center border border-navy-75 radius-tl radius-tr max-w-full w-full h-full shrink-0 p-2 bg-white\">\n <div className='w-48 h-full overflow-hidden'>\n <img\n loading=\"lazy\"\n src={smallPosters[slug]}\n className=\"w-full sm:w-48 h-full object-cover radius shrink-0\"\n alt=\"\"\n />\n </div>\n <div className=\"flex justify-between items-center w-full xs:p-4\">\n <div>\n <div className=\"flex flex-col justify-center items-start w-full mb-1\">\n <h5 className=\"color-navy-700 text-sm xs:text-lg font-bold m-0\">\n {courseTitle}\n </h5>\n </div>\n <div className=\"flex items-center gap-0.5 mb-2 color-navy-300 text-xs sm:text-md\">\n {`${remainingTimePrettyText}, ${unwatchedSectionCount} lesson`}\n </div>\n </div>\n <div\n onClick={handleToggleCard}\n onKeyDown={handleToggleCard}\n className='color-navy-300 cursor-pointer'\n >\n <ToggleIcon className=\"w-6 h-6\" />\n </div>\n </div>\n </article>\n <div className=\"relative\">\n <div className=\"h-2 radius-bl-xl radius-br-xl bg-navy-50\" />\n <div\n className=\"absolute top-0 left-0 w-full h-2 radius-bl-xl radius-br-xl radius-tl-none radius-tr-xl bg-navy-300\"\n style={{ width: `${progressRatio}%` }}\n >\n <PlayIcon className=\"absolute color-navy-300 w-4 h-4 shrink-0 -right-1 -top-1 z-2\" />\n </div>\n </div>\n </span>\n </>\n );\n};\nexport default MycoursesContinueLearningCard;\n\nMycoursesContinueLearningCard.propTypes = {\n course: object,\n setCoursesToggleList: func,\n coursesToggleList: arrayOf(object)\n};\n","/* eslint-disable max-len */\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\nimport { object, string } from 'prop-types';\nimport PlayIcon from '../../../../assets/my-courses/playIcon.svg';\nimport { ACTION_CREATORS } from '../../../../store/actionCreators';\nimport { getRemainingTimePrettyText, stringToSecond, urlParamsSaver } from '../../../../utils';\n\nconst MycoursesContinueLearningSubCard = ({ section = {}, courseSlug = '', programSlug = '' }) => {\n const dispatch = useDispatch();\n\n const {\n title, properties, progress, slug: sectionSlug\n } = section;\n const { duration } = properties;\n const { videoProgress = '1', videoPlayhead } = progress;\n\n let remainingTimePretty;\n let progressRatio;\n if (videoProgress || videoPlayhead) {\n const totalDurationSeconds = stringToSecond(duration);\n const userProgressSeconds = parseInt((videoPlayhead || videoProgress), 10);\n const remainingSeconds = totalDurationSeconds - userProgressSeconds;\n\n progressRatio = (userProgressSeconds * 100) / totalDurationSeconds;\n remainingTimePretty = getRemainingTimePrettyText(remainingSeconds);\n }\n const fetchCourseContent = (programSlugParam, courseSlugParam, sectionSlugParam) => dispatch(ACTION_CREATORS.fetchCourseContent(programSlugParam, courseSlugParam, sectionSlugParam));\n\n return (\n <>\n <span className='w-full'>\n <article className=\"flex justify-between items-center flex-row gap-4 w-full shadow-center border border-navy-75 radius-tl radius-tr max-w-full w-full h-full shrink-0 p-2 bg-navy-10\">\n <div className=\"flex justify-start sm:justify-between items-center w-full\">\n <div className='w-full'>\n <div className=\"flex justify-start items-center gap-3 sm:w-full mb-1\">\n <h5 className=\"color-navy-700 text-sm sm:text-lg font-bold m-0 overflow-hidden sm:w-full\">\n {title}\n </h5>\n </div>\n {\n remainingTimePretty && (\n <div className=\"text-left mb-2 color-navy-300 text-xs sm:text-md\">\n {remainingTimePretty}\n </div>\n )\n }\n </div>\n <div className='flex sm:gap-4'>\n <Link\n to={urlParamsSaver(`/${programSlug}/${courseSlug}/${sectionSlug}`)}\n onClick={() => fetchCourseContent(programSlug, courseSlug, sectionSlug)}\n >\n <button\n type=\"button\"\n className=\"sm:flex shrink-0 items-center justify-center whitespace-nowrap focus:outline-2 focus:outline-navy-100\n focus:outline-opacity-30 radius py-2 px-2 sm:px-6 text-md font-medium bg-green-500 color-white text-center duration-300 w-auto\"\n >\n Continue watching\n </button>\n </Link>\n </div>\n </div>\n </article>\n <div className=\"relative\">\n <div className=\"h-2 radius-bl-xl radius-br-xl bg-navy-50\" />\n <div\n className=\"absolute top-0 left-0 w-full h-2 radius-bl-xl radius-br-xl radius-tl-none radius-tr-xl bg-navy-300\"\n style={{ width: `${progressRatio ? Math.ceil(progressRatio) : 0}%` }}\n >\n {progressRatio && (\n <PlayIcon className=\"absolute color-navy-300 w-4 h-4 shrink-0 -right-1 -top-1 z-2\" />\n )}\n </div>\n </div>\n </span>\n </>\n );\n};\n\nMycoursesContinueLearningSubCard.propTypes = {\n section: object,\n courseSlug: string,\n programSlug: string\n};\n\nexport default MycoursesContinueLearningSubCard;\n","/* eslint-disable no-nested-ternary */\nimport React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { Link } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { IconChevronDown, IconChevronUp } from '@jotforminc/svg-icons';\nimport { urlParamsSaver, getAllContinuingSections } from '../../../utils';\nimport EmptyState from '../../../assets/my-courses/course-progress/empty.svg';\nimport MycoursesCompletedCard from '../../MyCourses/Completed/Card';\nimport MycoursesContinueLearningCard from '../../MyCourses/ContinueLearning/Card';\nimport MycoursesContinueLearningSubCard from '../../MyCourses/ContinueLearning/Card/Subcard';\nimport { ACTION_CREATORS } from '../../../store/actionCreators';\nimport { COURSE_SELECTORS } from '../../../store/selectors';\n\nconst MylearningStatus = () => {\n const dispatch = useDispatch();\n const courses = useSelector(COURSE_SELECTORS.getCourses);\n const setCurrentStage = currentStage => dispatch(ACTION_CREATORS.setCurrentStage(currentStage));\n\n const [continuingCourses, setContinuingCourses] = useState([]);\n const [coursesToggleList, setCoursesToggleList] = useState([]);\n const [chaptersToggledList, setChaptersToggledList] = useState([]);\n const completedCourses = courses.filter(course => (course?.progress?.complete || '').length > 0);\n const completedTabIsDisabled = completedCourses.length === 0;\n\n useEffect(() => {\n if (courses.length > 0) {\n const res = getAllContinuingSections(courses);\n const courseIDs = Object.keys(res);\n if (courseIDs.length > 0) setCoursesToggleList([...courseIDs]);\n setContinuingCourses(res);\n }\n }, [courses]);\n\n useEffect(() => {\n setCurrentStage('mycourses');\n }, []);\n\n const [activeTab, setActiveTab] = useState(0);\n\n const handleTabClick = index => {\n setActiveTab(index);\n };\n\n const filteredCourses = courses.filter(course => Object.keys(continuingCourses).includes(course?.id));\n\n return (\n <>\n <div className=\"flex gap-4 border-b border-navy-100 w-full mb-11\">\n <button\n type=\"button\"\n onClick={() => handleTabClick(0)}\n className={\n classNames({ 'font-medium border-b-2 border-navy-700': activeTab === 0 },\n 'color-navy-700 text-sm sm:text-lg p-2')\n }\n >\n Continue Learning\n </button>\n <button\n type=\"button\"\n disabled={completedTabIsDisabled}\n onClick={() => handleTabClick(1)}\n className={\n classNames({\n 'font-bold border-b-2 border-navy-700': activeTab === 1,\n 'opacity-50 pointer-events-none': completedTabIsDisabled\n }, 'color-navy-700 text-sm sm:text-lg p-2')\n }\n >\n Completed\n </button>\n </div>\n {\n activeTab === 0 ? (\n filteredCourses.length === 0 ? (\n <div className='flex flex-col justify-center items-center w-full'>\n <EmptyState className=\"w-28 h-28 mb-6\" />\n <p className='text-medium color-navy-500 text-lg mb-6'>You haven’t enrolled in any courses yet.</p>\n <Link to={urlParamsSaver('/courses')}>\n <div className='font-medium text-md color-white py-3 px-6 radius bg-green-500 hover:bg-green-600 duration-300'>See all courses</div>\n </Link>\n </div>\n ) : (\n filteredCourses.map(course => {\n const { id, chapters = [], slug: programSlug } = course;\n const continuingChapters = chapters.filter(({ sections = [] }) => sections.length > 0);\n return (\n <div>\n <div className='mb-6'>\n <MycoursesContinueLearningCard\n course={course}\n coursesToggleList={coursesToggleList}\n setCoursesToggleList={setCoursesToggleList}\n />\n </div>\n {\n coursesToggleList.includes(id) && (\n continuingChapters.map(chapter => {\n const {\n id: chapterID, title: chapterTitle, slug: courseSlug, sections = []\n } = chapter;\n const continuingSections = sections.filter(section => {\n const { progress = {}, properties = {} } = section || {};\n const { type = '' } = properties;\n const { start = false, complete = false } = progress;\n if (type === 'section' && (!complete && start)) return true;\n return false;\n });\n if (continuingSections.length === 0) return null;\n const isToggledChapter = chaptersToggledList.includes(chapterID);\n const SectionToggleIcon = isToggledChapter ? IconChevronDown : IconChevronUp;\n const handleToggleChapter = () => {\n if (isToggledChapter) {\n setChaptersToggledList(chaptersToggledList.filter(chapID => chapID !== chapterID));\n return;\n }\n setChaptersToggledList([...chaptersToggledList, chapterID]);\n };\n return (\n <>\n <button\n type='button'\n onClick={handleToggleChapter}\n className='flex justify-between items-center color-navy-700 font-medium text-md mb-2 w-full'\n >\n { chapterTitle }\n <SectionToggleIcon className=\"w-6 h-6 shrink-0 color-navy-300\" />\n </button>\n <section>\n {\n !isToggledChapter && (\n continuingSections.map(section => (\n <div className='mb-2'>\n <MycoursesContinueLearningSubCard\n section={section}\n key={section?.id}\n courseSlug={courseSlug}\n programSlug={programSlug}\n />\n </div>\n ))\n )\n }\n </section>\n </>\n );\n })\n )\n }\n </div>\n );\n })\n )\n ) : (\n <MycoursesCompletedCard completedCourses={completedCourses} />\n )\n }\n\n </>\n );\n};\n\nexport default MylearningStatus;\n","import classNames from 'classnames';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link, Route } from 'react-router-dom';\nimport { IconChevronDown, IconChevronUp } from '@jotforminc/svg-icons';\nimport Hero from '../../Header/Hero';\nimport MyCertificates from './MyCertificates';\nimport Wishlist from './Wishlist';\nimport { UI_SELECTORS } from '../../../store/selectors';\nimport MylearningStatus from './MyLearningStatus';\nimport { ACTION_CREATORS } from '../../../store/actionCreators';\nimport { urlParamsSaver } from '../../../utils';\nimport { myCoursesSidebarElements } from '../../../constants';\n\nconst MyCourses = () => {\n const dispatch = useDispatch();\n const refreshCourses = () => dispatch(ACTION_CREATORS.refreshCourses());\n const currentStage = useSelector(UI_SELECTORS.getCurrentStage);\n\n useEffect(() => {\n refreshCourses();\n }, []);\n\n let headerData = {};\n switch (currentStage) {\n case 'certificates':\n headerData = {\n title: 'Certificates & Badges',\n description: 'Review and share your Jotform Academy course certificates and badges.'\n };\n break;\n case 'wishlist':\n headerData = {\n title: 'Wishlist',\n description: 'View and manage the courses you want to take in the future.'\n };\n break;\n default:\n headerData = {\n title: 'Course Progress',\n description: 'See your Jotform Academy progress. Review your complete and incomplete courses, as well as the certificates you’ve received.'\n };\n }\n const [collapseMenu, setCollapseMenu] = useState(false);\n const toggleCollapseMenu = () => {\n setCollapseMenu(!collapseMenu);\n };\n const activeSidebarElement = myCoursesSidebarElements.find(el => el?.path === currentStage);\n const collapseMenuElements = myCoursesSidebarElements.filter(el => el?.path !== currentStage);\n return (\n <>\n <Hero title={headerData.title} description={headerData.description} />\n <section className=\"my-courses-sidebar w-full\">\n <div className=\"w-full max-w-xl mx-auto\">\n <section className=\"block xl:hidden\">\n {\n activeSidebarElement && (\n <button\n type=\"button\"\n onClick={toggleCollapseMenu}\n className={`flex justify-between items-center bg-navy-25 color-navy-500 text-md py-3 px-6 w-full ${collapseMenu ? 'border-b border-navy-100' : ''}`}\n >\n {activeSidebarElement?.buttonText}\n {collapseMenu ? <IconChevronUp className=\"w-6 h-6\" /> : <IconChevronDown className=\"w-6 h-6\" />}\n </button>\n )\n }\n {\n collapseMenu && (\n <ul>\n {\n collapseMenuElements.map(({ buttonText, path, basePath }, index) => (\n <Link\n key={buttonText}\n onClick={toggleCollapseMenu}\n to={urlParamsSaver(`/mycourses${!basePath ? `/${path}` : ''}`)}\n >\n <button\n type=\"button\"\n className={classNames('flex justify-between items-center bg-navy-25 color-navy-500 text-md py-3 px-6 w-full', {\n 'border-b border-navy-100': collapseMenuElements.length - 1 !== index\n })}\n >\n {buttonText}\n </button>\n </Link>\n ))\n }\n </ul>\n )\n }\n </section>\n <div className=\"flex min-h-md\">\n <section className=\"p-6 xl:pr-0 xl:pl-24 sm:py-16 w-full\">\n <>\n <Route exact path=\"/mycourses\">\n <MylearningStatus />\n </Route>\n <Route exact path=\"/mycourses/certificates\">\n <MyCertificates />\n </Route>\n <Route exact path=\"/mycourses/wishlist\">\n <Wishlist />\n </Route>\n </>\n </section>\n </div>\n </div>\n </section>\n </>\n );\n};\n\nexport default MyCourses;\n","/* eslint-disable max-len */\nimport React, { useState, useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { IconMagnifyingGlass, IconPlus, IconMinus } from '@jotforminc/svg-icons';\nimport Hero from '../../Header/Hero';\nimport { capitalizeFirstLetter, compareIgnoreCase } from '../../../utils';\nimport { ACTION_CREATORS } from '../../../store/actionCreators';\n\nconst FaqList = [\n {\n id: 1,\n title: 'What does Jotform Academy cost? ',\n content: 'Jotform Academy is free! All you need to get started is a Jotform account and some time.'\n },\n {\n id: 2,\n title: 'Do I have to watch all of the videos?',\n content: 'To earn a course badge you’ll need to watch each video in the course, and pass the quiz. However, if you’d just like to watch an individual video you’re welcome to do so!'\n },\n {\n id: 3,\n title: 'How do I earn a certificate?',\n content:\n 'To earn a certificate you’ll need to complete every course in the certificate program. For example, to earn your certificate in Jotform Foundations, you’ll need to complete the Introduction to Jotform, Introduction to Form Building, and Introduction to Data Management courses. '\n },\n {\n id: 4,\n title: 'What can I do with my certificate, and what does it mean?',\n content:\n 'A certificate, once earned, shows that you completed Jotform Academy courses. You should be proud if you obtain one, but you may not use the certificate or the fact that you obtained one or completed the courses to claim to others that you’re a Jotform expert or to imply that Jotform has endorsed or approved of you as an expert. Of course, it’s great when you complete the courses, and that should help you use the platform!'\n },\n {\n id: 5,\n title: 'Where can I access my badges and certificates?',\n content:\n 'You’ll see a button to download your badge or certificate as soon as you pass the final course quiz. You’ll also be able to access and download these any time from <a target=\"_blank\" class=\"color-blue-500\" href=\"/academy/mycourses/\">My Courses</a> page.'\n },\n {\n id: 6,\n title: 'What if I don’t pass one of the course quizzes?',\n content:\n 'You’re able to take a quiz over until you pass! You can try twice every 4 hours. If you don’t pass immediately you may want to use the time between testing to review some of the course material.'\n },\n {\n id: 7,\n title: 'Which name will appear on my certificate?',\n content: 'If there isn’t a full name listed for your account, your username will appear on the certificate. If you want your full name to appear on the certificate, make sure to update your name on your <a target=\"_blank\" class=\"color-blue-500\" href=\"https://www.jotform.com/myaccount/profile\">Account page</a> before you complete the certificate program.'\n },\n {\n id: 8,\n title: 'Where can I go if I have any questions?',\n content: 'Email us at <a class=\"color-blue-500\" href=\"mailto:academy@jotform.com\">academy@jotform.com</a>'\n },\n {\n id: 9,\n title: 'Can I request other courses?',\n content: 'Sure! You’ll see space for that on your Courses landing page, but you can also email us at <a class=\"color-blue-500\" href=\"mailto:academy@jotform.com\">academy@jotform.com</a> with any requests or suggestions.'\n },\n {\n id: 10,\n title: 'Is there anyone at Jotform who can provide live help with my account?',\n content: 'Yes! Get in touch with our 24/7 online support at <a target=\"_blank\" class=\"color-blue-500\" href=\"https://jotform.com/contact\">https://www.jotform.com/contact/</a>'\n }\n];\n\nconst Faq = () => {\n const dispatch = useDispatch();\n const [accordionList, setAccordionList] = useState([1]);\n const [searchKeyword, setSearchKeyword] = useState('');\n const setCurrentStage = currentStage => dispatch(ACTION_CREATORS.setCurrentStage(currentStage));\n\n useEffect(() => {\n setCurrentStage('faq');\n }, []);\n\n const handleToggleAccourdionList = i => {\n if (accordionList.includes(i)) {\n setAccordionList(accordionList.filter(listItem => listItem !== i));\n return;\n }\n setAccordionList([...accordionList, i]);\n };\n\n const filteredFaqList = FaqList.filter(faqListItem => {\n if (searchKeyword.length <= 1) return true;\n const { title, content } = faqListItem;\n return compareIgnoreCase(title, searchKeyword) || compareIgnoreCase(content, searchKeyword);\n });\n\n const isSearchMode = filteredFaqList.length !== FaqList.length;\n\n const searchHighlighter = text => {\n const capitalizedSearchKeyword = capitalizeFirstLetter(searchKeyword);\n const lowerSearchKeyword = searchKeyword.toLowerCase();\n const upperSearchKeyword = searchKeyword.toUpperCase();\n return (\n text\n .replaceAll(searchKeyword, `<mark>${searchKeyword}</mark>`)\n .replaceAll(capitalizedSearchKeyword, `<mark>${capitalizedSearchKeyword}</mark>`)\n .replaceAll(lowerSearchKeyword, `<mark>${lowerSearchKeyword}</mark>`)\n .replaceAll(upperSearchKeyword, `<mark>${upperSearchKeyword}</mark>`)\n );\n };\n\n return (\n <>\n <section style={{ background: '#EAEFFF' }}>\n <Hero\n title=\"Jotform Academy FAQ\"\n description=\"Learn more about Jotform Academy\"\n />\n <div className=\"max-w-xl mx-auto py-0 sm:py-20 px-0 sm:px-7 xl:px-0\">\n <div className=\"shadow-center p-5 sm:p-12 radius-none sm:radius-xl bg-navy-10\">\n <label htmlFor=\"search\" className=\"border-b border-navy-100 text-navy-500 text-sm sm:text-xl w-full md:w-auto md:min-w-100 py-2 px-1 inline-flex items-center mb-11\" aria-label='search'>\n <IconMagnifyingGlass className=\"w-5 h-5 shrink-0 mr-1.5 text-4xl\" />\n <input\n type=\"search\"\n id=\"search\"\n value={searchKeyword}\n placeholder=\"What you’re looking for...\"\n className=\"placeholder-navy-500 w-full bg-transparent\"\n onChange={event => setSearchKeyword(event.target.value)}\n />\n </label>\n <ul>\n {\n (filteredFaqList.length === 0) && (\n <div className='text-center text-2xl xs:text-3xl'>\n Sorry! No result found.\n </div>\n )\n }\n {filteredFaqList.map((faq, i, { length }) => {\n const toggleOpen = accordionList.includes(faq.id) || isSearchMode;\n const { id, title, content } = faq;\n return (\n <li key={id} className={`mb-6 pb-6 ${i + 1 === length ? 'border-0' : 'border-b border-navy-100'}`}>\n <button\n onClick={() => {\n handleToggleAccourdionList(id);\n }}\n type=\"button\"\n className={`flex justify-between text-left w-full text-sm md:text-lg line-height-lg md:line-height-2xl color-navy-700 font-bold ${toggleOpen ? 'mb-2' : 'mb-0'}`}\n >\n <div\n dangerouslySetInnerHTML={{\n __html: isSearchMode ? searchHighlighter(title) : title\n }}\n className={`cursor-pointer hover:color-blue-500 duration-300 ${toggleOpen ? 'color-blue-500' : 'color-navy-700'}`}\n />\n {toggleOpen ? <IconMinus className=\"w-6 h-6 shrink-0\" aria-label='close content' /> : <IconPlus className=\"w-6 h-6 shrink-0\" aria-label='open content' />}\n </button>\n {toggleOpen && (\n <p className=\"text-left text-sm md:text-lg line-height-lg md:line-height-2xl color-navy-700 font-normal\">\n <div\n dangerouslySetInnerHTML={{\n __html: isSearchMode ? searchHighlighter(content) : content\n }}\n />\n </p>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n </section>\n </>\n );\n};\n\nexport default Faq;\n","/* eslint-disable no-nested-ternary */\nimport React, { useEffect, useState } from 'react';\nimport { Loading } from '@jotforminc/loading';\nimport { useParams } from 'react-router-dom';\nimport { IconArrowsRotate } from '@jotforminc/svg-icons';\nimport { t, translationRenderer } from '@jotforminc/translation';\nimport { useDispatch } from 'react-redux';\nimport ExpiredCertificate from '../../../assets/verify/expired-certificate.png';\nimport Certificate404 from '../../../assets/verify/certificate-404.png';\nimport Hero from '../../Header/Hero';\nimport { ACTION_CREATORS } from '../../../store/actionCreators';\nimport { verifyCertificate } from '../../../api';\n\nconst CertificateVerification = () => {\n const dispatch = useDispatch();\n\n const { certificateID } = useParams() || {};\n const [certificateData, setCertificateData] = useState();\n const [certfRegenerationLoading, setCertfRegenerationLoading] = useState(false);\n const [certificateError, setCertificateError] = useState();\n\n const setCurrentStage = currentStage => dispatch(ACTION_CREATORS.setCurrentStage(currentStage));\n const regenerateCertificate = (courseID, callback) => dispatch(ACTION_CREATORS.regenerateCertificate(courseID, callback));\n const expiredParameter = window.location.href.includes('expiredCertificateView=1');\n\n useEffect(() => {\n setCurrentStage('verify');\n verifyCertificate(certificateID).then(responseContent => {\n const formatedData = (\n typeof responseContent === 'string' || (Array.isArray(responseContent) && responseContent.length === 0)\n ) ? {} : responseContent;\n\n const { is_valid: isValid, certificate_id: currentCertificateID } = formatedData;\n if (currentCertificateID === undefined) {\n setCertificateError({\n type: expiredParameter ? 'certificate_expired' : 'certificate_not_found'\n });\n } else if (!isValid) {\n setCertificateError({ type: 'certificate_is_not_valid' });\n } else setCertificateError(false);\n setCertificateData(formatedData);\n });\n }, []);\n const {\n course_id: courseID,\n valid_until: validUntil,\n certificate_owner: certificateOwner\n } = certificateData || {};\n\n const formatExpirationDate = (expirationDate = '') => {\n const [date] = expirationDate.split(' ');\n const [year, month, day] = date.split('-');\n return `${month}-${day}-${year}`;\n };\n\n const { type: errorType = '' } = certificateError || {};\n return (\n <>\n <section style={{ background: '#EAEFFF' }}>\n <Hero\n title=\"Certificate Verification\"\n description=\"Verify the authenticity and validity of a Jotform Academy certificate here.\"\n />\n {\n (certificateData && certificateError !== undefined) && (\n <div className=\"max-w-xl mx-auto py-10 sm:py-20 px-10 sm:px-7 xl:px-0\">\n <div className=\"flex flex-col justify-center items-center w-full\">\n {\n !certificateError ? (\n <>\n <img\n loading=\"lazy\"\n alt={`“${certificateOwner}” - Certificate`}\n width={896}\n height={633}\n src={`${window.location.origin}/academy/certificate/${certificateID}/image/?q=75&w=896`}\n onError={() => {\n setCertificateError({\n type: 'certificate_image_not_found'\n });\n }}\n className='w-64 sm:w-112 h-auto mb-6 sm:mb-14'\n />\n <p className='color-green-500 font-medium text-xl text-center line-height-3xl'>\n {`Certificate has been verified for “${certificateOwner}”.`}\n </p>\n </>\n ) : (\n errorType === 'certificate_not_found' ? (\n <>\n <img\n loading=\"lazy\" src={Certificate404} className=\"w-64 sm:w-112 h-32 sm:h-76 mb-6 sm:mb-14\"\n width={896}\n height={633}\n alt='Certificate Not Found'\n />\n <p className='color-red-400 font-medium text-xl text-center line-height-3xl'>\n {translationRenderer('Sorry, we couldn’t find a matching individual for the information provided. [1[Please make sure that the ID is an exact match]]')({\n renderer1: text => <p>{text}</p>\n })}\n </p>\n </>\n ) : (\n <>\n <img\n loading=\"lazy\" src={ExpiredCertificate} className=\"w-64 sm:w-112 h-32 sm:h-76 mb-6 sm:mb-14\"\n width={896}\n height={633}\n alt='Expired Certificate'\n />\n <p className='color-red-400 font-medium text-xl text-center line-height-3xl'>\n {`This certificate has expired on ${expiredParameter ? '\"mm.dd.yyy\"' : formatExpirationDate(validUntil)}`}\n </p>\n </>\n )\n )\n }\n <p className='color-navy-300 text-xs sm:text-md text-center mt-7 sm:mt-16'>\n If you want to get a certificate for yourselves, enroll\n <a className='color-blue-500 inline-block mx-1 border-b border-blue-500' href=\"/academy\" target='_blank'>Jotform Academy</a>\n now!\n </p>\n {\n window.location.href.includes('regenerateCertificate=1') && (\n <button\n type=\"button\"\n disabled={certfRegenerationLoading}\n onClick={() => {\n setCertfRegenerationLoading(true);\n regenerateCertificate(courseID, () => {\n setCertfRegenerationLoading(false);\n window.location.reload();\n });\n }}\n // eslint-disable-next-line max-len\n className={`relative inline-flex gap-2 mt-10 items-center whitespace-nowrap focus:outline-2 focus:outline-navy-100 focus:outline-opacity-30 radius px-3.5 sm:py-3.5 py-3.5 sm:px-4 text-sm sm:text-lg bg-green-500 hover:bg-green-600 color-white shadow-center${certfRegenerationLoading ? ' opacity-50 pointer-events-none' : ''}`}\n >\n {\n (certfRegenerationLoading) ? (\n <Loading\n className='relative left-2 top-2.5 w-5 h-5'\n strokeColor=\"#fff\"\n />\n ) : <IconArrowsRotate className='w-5 h-5' />\n }\n {t('Regenerate Certificate')}\n </button>\n )\n }\n\n </div>\n </div>\n )\n }\n </section>\n </>\n );\n};\n\nexport default CertificateVerification;\n","import '@jotforminc/router-bridge/init';\nimport '@jotforminc/tracking/init';\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Provider } from 'react-redux';\nimport store from './store/store';\nimport App from './App';\nimport '@jotforminc/jotform.css/reset.css';\nimport '@jotforminc/jotform.css';\nimport './components/Skeleton/skeleton.scss';\n\nconst container = document.getElementById('root');\nconst root = createRoot(container);\n\nroot.render(\n <Provider store={store}>\n <App />\n </Provider>\n);\n","import classNames from 'classnames';\nimport React, { useEffect, useMemo } from 'react';\nimport { Header } from '@jotforminc/header';\nimport { Provider, useSelector } from 'react-redux';\nimport { BrowserRouter as Router, Switch, Route } from 'react-router-dom';\nimport Tracking from '@jotforminc/tracking';\n\nimport AcademyLogoDark from './assets/svg/academy-logo-dark.svg';\nimport AcademyLogoLight from './assets/svg/academy-logo-light.svg';\n\nimport './styles/custom.scss';\nimport store from './store/store';\nimport Sidebar from './components/Sidebar';\nimport Breadcrumbs from './components/Breadcrumbs';\nimport ScrollHandler from './components/ScrollHandler';\nimport CoursesHomepage from './components/pages/CoursesHomepage';\nimport CourseContentViewer from './components/CourseContentViewer';\nimport CourseNotFoundHandler from './components/CourseNotFoundHandler';\n\nimport history from './history';\nimport Landing from './components/pages/Landing';\nimport MyCourses from './components/pages/MyCourses';\nimport Faq from './components/pages/Faq';\nimport CertificateVerification from './components/pages/CertificateVerification';\nimport { UI_SELECTORS, USER_SELECTORS } from './store/selectors';\nimport { getAppPathWrapper, getCurrentHeaderNavigationItems, urlParamsSaver } from './utils';\n\nconst App = () => {\n const appPath = getAppPathWrapper();\n const fullstoryEnabled = false;\n const { credentials: user } = useSelector(USER_SELECTORS.getUser);\n const currentStage = useSelector(UI_SELECTORS.getCurrentStage);\n\n const { account_type: accountType } = user || {};\n const { name = '' } = accountType || {};\n const isUserLoggedIn = name !== '' && name !== 'GUEST';\n const isActivityPanelOpen = false;\n const darkHeaderEnabledPages = ['courses', 'mycourses', 'verify', 'certificates', 'wishlist', 'faq'];\n const darkHeaderEnabled = darkHeaderEnabledPages.includes(currentStage);\n\n const logoDecider = darkHeaderEnabled ? <AcademyLogoLight /> : <AcademyLogoDark />;\n const headerNavigationItems = useMemo(() => getCurrentHeaderNavigationItems(appPath, currentStage, isUserLoggedIn));\n\n useEffect(() => {\n if (window.__jfrouter.JOTFORM_ENV === 'PRODUCTION' && fullstoryEnabled) {\n Tracking.enableFS({ jfAcademyBetaTest: true });\n }\n window.setCustomFunction_signup = true;\n window.setCustomFunction_login = true;\n\n window.customFunction_signup = () => {\n const url = window.location.href;\n // eslint-disable-next-line @jotforminc/no-location-href-assignment\n window.location.href = url;\n };\n window.customFunction_login = window.customFunction_signup;\n }, []);\n\n return (\n <Provider store={store}>\n <Header\n customNavItems={headerNavigationItems}\n theme={darkHeaderEnabled ? 'dark' : 'light'}\n logoProps={{ customLogoAsReactElement: logoDecider, customLogoAsReactElementOnMobileMenuOpen: <AcademyLogoDark />, logoUrl: urlParamsSaver(appPath) }}\n menuStyles={{\n headerBackground: (darkHeaderEnabled ? 'rgba(10, 21, 81, 0)' : 'rgba(255, 255, 255, 0)'),\n headerBackgroundSticky: (darkHeaderEnabled ? 'rgba(10, 21, 81, 0.9)' : 'rgba(255, 255, 255, 0.9)')\n }}\n />\n <Router history={history} basename={appPath}>\n <ScrollHandler stage={currentStage} />\n <Switch>\n <Route exact path=\"/\">\n <Landing />\n </Route>\n <Route path=\"/badge/:courseID\">\n <CoursesHomepage />\n </Route>\n <Route path=\"/courses\">\n <CoursesHomepage />\n </Route>\n <Route path=\"/mycourses\">\n <MyCourses />\n </Route>\n <Route exact path=\"/:programSlug/:courseSlug\">\n <CourseNotFoundHandler />\n </Route>\n <Route exact path=\"/faq\">\n <Faq />\n </Route>\n <Route exact path=\"/:programSlug\">\n <CourseNotFoundHandler />\n </Route>\n <Route exact path=\"/certificate/:certificateID/verify\">\n <CertificateVerification />\n </Route>\n <Route path=\"/:programSlug/:courseSlug/:sectionSlug\">\n <CourseNotFoundHandler />\n <main className='max-w-xl mx-auto pt-10'>\n <Breadcrumbs />\n <div className=\"flex gap-10 xxl:gap-20 w-full\">\n <Sidebar />\n <section className='w-full md:p-7 xl:p-0'>\n <div className=\"academyApp-body w-full\">\n <div\n className={classNames('academyApp-content', {\n rightPanelOpen: isActivityPanelOpen\n })}\n >\n <CourseContentViewer />\n </div>\n </div>\n </section>\n </div>\n </main>\n </Route>\n </Switch>\n </Router>\n </Provider>\n );\n};\n\nexport default App;\n","import layer from './layer';\n\nexport const isJotformer = user => ['ADMIN', 'SUPPORT', 'INTERN'].indexOf(user?.account_type?.name) > -1;\n\nexport const isMobileApp = () => window.navigator.userAgent.indexOf('JotForm Mobile') > -1 || window.navigator.userAgent.indexOf('JFCEMobile') > -1;\n\nexport const isEnvProd = () => window.__jfrouter?.JOTFORM_ENV === 'PRODUCTION' || window.JOTFORM_ENV === 'PRODUCTION';\n\nexport const getTestStartDate = ({ testName }) => layer.get(`abtest/test/${testName}/start-date`);\n","class ABTestVariantCacheClass {}\n\nexport const ABTestVariantCache = new ABTestVariantCacheClass();\n","import { RequestLayer, Interceptors } from '@jotforminc/request-layer';\n\nexport default new RequestLayer('/API', {\n interceptorConfig: {\n teamID: global.teamID,\n customResponseInterceptors: [Interceptors.requestManagerResponseNormalizer]\n }\n});\n","import { isSalesforceEnv } from '@jotforminc/utils';\nimport { StorageHelper } from '@jotforminc/storage-helper';\nimport { isEnvProd, isJotformer, isMobileApp } from './utils';\nimport { ActionManager } from './ActionManager';\nimport { ABTestVariantCache } from './ABTestVariantCache';\nimport layer from './layer';\n\nexport class ABTestManager {\n constructor({\n user,\n testName,\n urlParam,\n debugMode,\n isTestEnabled,\n testVariantCode,\n controlVariantCode,\n cacheVariantCodeAtLocalStorage,\n customUserChecks,\n setUserSetting,\n forceSingleEpTest\n }) {\n this.user = user || {};\n this.testName = testName;\n this.urlParam = urlParam || '';\n this.isTestEnabled = isTestEnabled || false;\n this.customUserChecks = customUserChecks || {};\n this.cacheVariantCodeAtLocalStorage = cacheVariantCodeAtLocalStorage || false;\n this.isSingleTestVariant = (typeof testVariantCode === 'string') && testVariantCode;\n this.isMultipleTestVariant = (typeof testVariantCode === 'object') && Array.isArray(testVariantCode);\n this.setUserSetting = setUserSetting || null;\n this.forceSingleEpTest = forceSingleEpTest || null;\n this.testConfig = {\n testName, controlVariantCode, testVariantCode, urlParam\n };\n\n this.searchParams = new URLSearchParams(document?.location?.search || '');\n this.localStorageVariantKey = `${this.testName}VariantCode`;\n\n // debug mode\n const debugModeDefaults = {\n forceUserEligible: false, forceTestVariant: false, forceControlVariant: false, logTestState: false\n };\n this.debugMode = { ...debugModeDefaults, ...debugMode };\n if (this.isDebugModeOn) {\n this.showDebugModeWarnings();\n }\n\n // jotform actions\n this.actionManager = new ActionManager({\n user: this.user,\n projectName: this.testName,\n ...(this.isDebugModeOn ? { enableDebugMode: true } : {})\n });\n\n // should register actions\n const shouldRegisterActions = (this.isTestEnabled && this.isUserEligible)\n || this.isDebugModeOn\n || this.hasTestVariantUrlParam\n || this.hasControlVariantUrlParam\n || this.hasTestVariantUrlParamAmongMultiple();\n\n // register ab test action\n this.registerABTestAction = shouldRegisterActions ? this.actionManager.registerJotformAction : f => f;\n }\n\n // is variant code singleton cached\n get isVariantCodeSingletonCached() {\n return !!this.getVariantFromSingletonCache() || false;\n }\n\n // is variant code local storage cached\n get isVariantCodeLocalStorageCached() {\n return !!this.getVariantFromLocalStorage() || false;\n }\n\n // are base checks valid\n get areBaseChecksValid() {\n return isEnvProd() && !isJotformer(this.user) && !isMobileApp() && !isSalesforceEnv();\n }\n\n // are custom user checks valid\n get areCustomUserChecksValid() {\n return Object.values(this.customUserChecks).length > 0\n ? Object.values(this.customUserChecks).every(customCheck => customCheck)\n : true;\n }\n\n // is user eligible\n get isUserEligible() {\n const { forceUserEligible } = this.debugMode;\n if (forceUserEligible) return true;\n const isValid = this.areBaseChecksValid && this.areCustomUserChecksValid;\n if (isValid) {\n return true;\n }\n if (!isValid && this.isDebugModeOn) {\n console.warn(`Warning: ${this.testName} A/B test user is not eligible.`);\n }\n return false;\n }\n\n // has test variant url param\n get hasTestVariantUrlParam() {\n return this.searchParams.get(`${this.urlParam}`) === 'true';\n }\n\n // has control variant url param\n get hasControlVariantUrlParam() {\n return this.searchParams.get(`${this.urlParam}`) === 'false';\n }\n\n get cachedVariantCode() {\n return this.getVariantFromSingletonCache() || this.getVariantFromLocalStorage();\n }\n\n // get/set variant cache\n getVariantFromSingletonCache() {\n return ABTestVariantCache[this.testName] || '';\n }\n\n setVariantToSingletonCache(variation) {\n if (!this.getVariantFromSingletonCache()) {\n ABTestVariantCache[this.testName] = variation;\n }\n if (this.isDebugModeOn) {\n console.warn(`Warning: ${this.testName} A/B test singleton cached variation code: ${variation}`);\n }\n }\n\n // get/set variant local storage\n getVariantFromLocalStorage() {\n return StorageHelper.getLocalStorageItem({ key: this.localStorageVariantKey }) || '';\n }\n\n setVariantToLocalStorage(variation) {\n if (this.getVariantFromLocalStorage()) return;\n StorageHelper.setLocalStorageItem({\n key: this.localStorageVariantKey, value: variation\n });\n if (this.isDebugModeOn) {\n console.warn(`Warning: ${this.testName} A/B test localStorage cached variation code: ${variation}`);\n }\n }\n\n // check current variant matches any of the multiple variants\n includesAnyTestVariant(currentVariant, multipleVariants) {\n return multipleVariants.map(variant => variant.code).includes(currentVariant);\n }\n\n // is variant code equal to test variant\n get isVariantCodeEqualTestVariant() {\n const { testVariantCode } = this.testConfig;\n if (this.isSingleTestVariant) {\n return this.cachedVariantCode === testVariantCode;\n }\n if (this.isMultipleTestVariant) {\n return this.includesAnyTestVariant(this.cachedVariantCode, testVariantCode);\n }\n return false;\n }\n\n // variant resolver\n variantResolver(cb) {\n if (typeof cb !== 'function') return;\n if (this.isSingleTestVariant && this.isVariantCodeEqualTestVariant) {\n cb(true);\n } else if (this.isMultipleTestVariant) {\n const isTestVariant = this.isVariantCodeEqualTestVariant;\n cb([isTestVariant, this.cachedVariantCode]);\n } else {\n cb(false);\n }\n }\n\n // get test variant\n getTestVariant() {\n return new Promise((resolve, reject) => {\n const params = { setUserSetting: this.setUserSetting, forceSingleEpTest: this.forceSingleEpTest };\n layer.get(`user/abtest/${this.testName}/variation`, { params }).then(res => {\n let { variation } = res;\n variation = variation ? variation.toString() : variation;\n resolve(variation);\n if (this.isDebugModeOn) {\n console.warn(`Warning: ${this.testName} A/B test variant request success.`);\n }\n }).catch(reject);\n });\n }\n\n hasTestVariantUrlParamAmongMultiple() {\n if (!this.isMultipleTestVariant) return false;\n const { testVariantCode: multipleVariants } = this.testConfig;\n let result = false;\n multipleVariants.forEach(variant => {\n if (this.searchParams.get(`${variant.urlParam}`) === 'true') {\n result = [true, variant.code];\n }\n });\n return result;\n }\n\n // is test variant\n isTestVariant() {\n return new Promise((resolve, reject) => {\n const { forceTestVariant, forceControlVariant } = this.debugMode;\n\n // checks for enabling\n if (this.isSingleTestVariant && (forceTestVariant || this.hasTestVariantUrlParam)) {\n resolve(true);\n return;\n }\n\n // checks for multiple variant enabling\n const multipleEnablerResult = this.hasTestVariantUrlParamAmongMultiple();\n if (this.isMultipleTestVariant && multipleEnablerResult) {\n resolve(multipleEnablerResult);\n return;\n }\n\n // check for settings cache\n // feature: do not allow user settings variant code for multiple variants for now...\n if (!this.isMultipleTestVariant && this.setUserSetting && this.user[this.testName]) {\n const { testVariantCode } = this.testConfig;\n resolve(this.user[this.testName] === testVariantCode);\n return;\n }\n\n // checks for disabling\n if ((!this.isTestEnabled\n || forceControlVariant\n || this.hasControlVariantUrlParam\n || !this.isUserEligible)) {\n const { controlVariantCode } = this.testConfig;\n const result = this.isSingleTestVariant ? false : [false, controlVariantCode];\n resolve(result);\n return;\n }\n\n // is variant code singleton cached or local storage cached\n if (this.isVariantCodeSingletonCached || this.isVariantCodeLocalStorageCached) {\n this.variantResolver(result => resolve(result));\n return;\n }\n\n // get variant code from api\n this.getTestVariant().then(variation => {\n // between component mount and unmount ABTestHelper instance is created from scratch\n // so caching can be useful to prevent repeating network requests\n\n // cache level 1: singleton cache\n this.setVariantToSingletonCache(variation);\n\n // optional cache level 2: local storage cache\n if (variation && this.cacheVariantCodeAtLocalStorage) {\n this.setVariantToLocalStorage(variation);\n }\n\n if (this.isDebugModeOn) {\n this.showDebugModeWarnings();\n }\n\n this.variantResolver(result => resolve(result));\n }).catch(reject);\n });\n }\n\n // is debug mode on\n get isDebugModeOn() {\n return Object.values(this.debugMode).includes(true);\n }\n\n // show debugMode warnings\n showDebugModeWarnings() {\n const {\n forceUserEligible, forceTestVariant, forceControlVariant, logTestState\n } = this.debugMode;\n const forceFlags = [forceUserEligible, forceTestVariant, forceControlVariant, logTestState];\n\n if (forceFlags.includes(true)) {\n console.warn(`Warning: ${this.testName} A/B test is running on debug mode!`);\n\n // log debug mode flags\n Object.keys(this.debugMode).forEach(forceFlagKey => {\n if (!this.debugMode[forceFlagKey]) return;\n console.warn(`${forceFlagKey} property is ${this.debugMode[forceFlagKey]}`);\n });\n\n const warnData = {\n isTestEnabled: this.isTestEnabled,\n testConfig: this.testConfig,\n variantCaches: {\n singletonCachedVariantCode: this.getVariantFromSingletonCache(),\n localStorageCachedVariantCode: this.getVariantFromLocalStorage()\n },\n baseChecks: {\n isJotFormer: isJotformer(this.user),\n isEnvProd: isEnvProd(),\n isMobileApp: isMobileApp()\n },\n customUserChecks: this.customUserChecks\n };\n\n console.warn(`Warning: ${this.testName} test state:`, warnData);\n }\n }\n}\n","export class ActionManager {\n constructor({\n user,\n projectName,\n trackOnce,\n enableDebugMode\n }) {\n this.user = user || {};\n this.projectName = projectName;\n this.trackOnce = trackOnce || false;\n this.JotFormActions = null;\n this.registerJotformAction = this.registerJotformAction.bind(this);\n this.sentEvents = {};\n this.enableDebugMode = enableDebugMode || false;\n }\n\n setupJotFormActions() {\n const { JotFormActions } = global;\n if (typeof JotFormActions !== 'function') return;\n this.JotFormActions = JotFormActions(this.projectName);\n }\n\n tick({\n actor = '', action = '', target = '', trackOnce = false\n } = {}) {\n this.JotFormActions?.tick({ actor, action, target });\n\n if (this.trackOnce || trackOnce) {\n this.sentEvents[`${action}${target}`] = true;\n }\n }\n\n logDebugAction({\n actor, action, target, trackOnce\n }) {\n console.log({\n actor, action, target, trackOnce\n });\n const hasMissingParameter = [actor, action, target].some(param => !param);\n if (hasMissingParameter) {\n console.error(`[missing-actor]: Couldn't tick action. 'actor', 'action', 'target' parameters are needed. project: ${this.projectName} actor: ${actor} action: ${action} target: ${target}`);\n }\n\n if (this.trackOnce || trackOnce) {\n this.sentEvents[`${action}${target}`] = true;\n }\n }\n\n registerJotformAction({ action, target, trackOnce = false }) {\n if (!this.JotFormActions) {\n this.setupJotFormActions();\n }\n\n if ((this.trackOnce || trackOnce) && this.sentEvents[`${action}${target}`]) {\n return;\n }\n\n const { username: actor = null, account_type: accountType } = this.user;\n const isEnterprise = global.JOTFORM_ENV === 'ENTERPRISE';\n const isEnvProd = global.JOTFORM_ENV === 'PRODUCTION' && !isEnterprise;\n const isJotFormer = ['ADMIN', 'SUPPORT', 'INTERN'].indexOf(accountType?.name) > -1 && !isEnterprise;\n\n if (this.enableDebugMode) {\n this.logDebugAction({\n actor, action, target, trackOnce\n });\n return;\n }\n\n if (!actor) {\n // eslint-disable-next-line max-len\n console.warn(`[missing-actor]: Couldn't tick action. 'ActionManager' constructor needs 'user' parameter with 'username' field. Please check 'user' parameter. project: ${this.projectName} actor: ${actor} action: ${action} target: ${target}`);\n }\n\n if (!this.JotFormActions || !actor || !isEnvProd || isJotFormer) return;\n\n this.tick({\n actor, action, target, trackOnce\n });\n }\n}\n","export const MENU_TYPES = {\n TEMPLATES: 'templates',\n INTEGRATIONS: 'integrations',\n PRODUCTS: 'products',\n SUPPORT: 'support',\n SUBMENU: 'submenu',\n SIGN: 'sign',\n PDF_EDITOR: 'pdfEditor'\n};\n","import { LATEST_ACTIVE_SERVERS_LIST, RANDOM_ACTIVE_200_SERVERS_LIST, RANDOM_ACTIVE_300_SERVERS_LIST } from './constants/latestActiveServers';\n\nconst isActive = (testEnvList = [], parameter) => {\n const { host, search } = window.location;\n return host.indexOf('jotform.biz') > -1 || host.indexOf('jotform.pro') > -1 || testEnvList.indexOf(host) > -1 || (parameter && search.indexOf(parameter) > -1);\n};\n\nexport const isEnterprise = () => {\n if (!window) {\n return false;\n }\n\n if (window.JOTFORM_ENV === 'ENTERPRISE') {\n return true;\n }\n\n if (window.JotForm && window.JotForm.enterprise) {\n return true;\n }\n\n return false;\n};\n\nexport const isTestAndDevelopmentEnvironment = () => isActive([\n 'eeproduct2.jotform.com',\n 'enterpriseqa.jotform.com',\n 'enterpriseqahipaa.jotform.com',\n 'demo.jotform.com',\n 'acmetest.jotform.com',\n 'uxlabs.jotform.com',\n 'soc2-test1.jotform.com',\n 'mobile-test.jotform.com',\n 'enterpriseqamanual.jotform.com',\n 'marketing.jotform.com',\n 'passgp.jotform.com',\n 'mcrcbiobank.jotform.com',\n 'aat.jotform.com',\n 'sso-multi-test.jotform.com'\n]);\n\nexport const isOneOfTheMostActiveEnterpriseServers = () => {\n return isActive(LATEST_ACTIVE_SERVERS_LIST) || isActive(RANDOM_ACTIVE_200_SERVERS_LIST) || isActive(RANDOM_ACTIVE_300_SERVERS_LIST) || isTestAndDevelopmentEnvironment();\n};\n\nexport const isNew2FAEnabled = () => window.location.search.indexOf('new2FA') > -1;\n\nexport const isNewSMTPFlow = (user = {}) => {\n const { isNewSMTPFlowEnabled = false } = user;\n return window?.user?.isNewSMTPFlowEnabled || isNewSMTPFlowEnabled;\n};\n","import { RequestLayer, Interceptors } from '@jotforminc/request-layer';\nimport { isEnterprise } from '@jotforminc/enterprise-utils';\nimport { ACTION_PROJECT_NAMES } from '../constants';\nimport { isProd } from '../utils';\n\nconst layer = new RequestLayer('/API', {\n interceptorConfig: {\n teamID: global.teamID,\n customResponseInterceptors: [Interceptors.requestManagerResponseNormalizer]\n }\n});\n\n// set enterprise promotions user settings by key\nexport const setEpUserSettings = (key, value = 1) => {\n return layer.post('ep/user/settings',\n new URLSearchParams({ key, value }));\n};\n\n// get enterprise promotions user settings by key\nexport const getEpUserSettings = key => {\n return layer.get(`ep/user/settings/${key}`);\n};\n\n// get enterprise promotions user settings by key\nexport const getEpUserDetails = () => {\n return layer.get('ep/user-details');\n};\n\n// enterprise promotion assets\nexport const getFirstAvailableEnterprisePromotion = () => {\n const searchParams = new URLSearchParams(window.location.search);\n return layer.get(`ep/user/promotion?${searchParams}`);\n};\n\n// enterprise promotion assets\nexport const getEnterprisePromotionByAssetName = asset => {\n const searchParams = new URLSearchParams(window.location.search);\n return layer.get(`ep/user/promotion/${asset}?${searchParams}`);\n};\n\n// save customer to hubspot as form submission\nexport const saveCustomerAsHubspotFormByUsername = params => {\n if (isEnterprise()) return;\n\n const searchParams = new URLSearchParams();\n\n const { lastProductAssetInteraction } = params;\n\n if (lastProductAssetInteraction) {\n searchParams.append('last_product_asset_interaction', lastProductAssetInteraction);\n }\n\n return layer.post('ep/user/hubspot-contact-form', searchParams);\n};\n\nexport const setEPActions = ({\n asset, target, action, intent\n}) => {\n if (isProd()) {\n const paramsObj = {\n project: ACTION_PROJECT_NAMES.ENTERPRISE_PROMOTIONS,\n asset,\n target,\n action\n };\n\n if (intent) {\n paramsObj.intent = intent;\n }\n\n const params = new URLSearchParams(paramsObj);\n\n return layer.post('ep/user/actions', params);\n }\n};\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M20 2H4a3 3 0 0 0-3 3v11a3 3 0 0 0 3 3h1v1.998a1 1 0 0 0 1.537.843l3.971-2.528A2 2 0 0 1 11.583 19h.056l.37-1.153a3.75 3.75 0 0 1 .919-1.503l3.945-3.946a3.76 3.76 0 0 1 .561-.462A1.502 1.502 0 0 1 15.5 10.5a1.5 1.5 0 1 1 2.489 1.128 3.752 3.752 0 0 1 4.188.77l.707.707c.04.04.078.08.116.122V5a3 3 0 0 0-3-3ZM8.5 10.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm5 0a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z\" clip-rule=\"evenodd\"/>\n <path fill-rule=\"evenodd\" d=\"M13.914 18.46a1.75 1.75 0 0 1 .428-.702l3.946-3.945a1.75 1.75 0 0 1 2.474 0l.707.707a1.75 1.75 0 0 1 0 2.474l-3.945 3.946a1.75 1.75 0 0 1-.701.428l-1.739.56c-1.066.343-2.073-.664-1.73-1.73l.56-1.739Zm1.489.358a.25.25 0 0 0-.061.1l-.485 1.507 1.506-.485a.252.252 0 0 0 .1-.06l2.354-2.355-1.06-1.06-2.354 2.354Zm5.006-2.884-.531.53-1.06-1.06.53-.53a.25.25 0 0 1 .354 0l.707.706a.25.25 0 0 1 0 .354Z\" clip-rule=\"evenodd\"/>\n</svg>\n","import { useEffect, useState } from 'react';\nimport { isProd } from '../utils';\n\n// demo purpose\nconst useHubspotTracker = ({ isEnabled = false, user = null } = {}) => {\n const [isTrackerLoaded, setIsTrackerLoaded] = useState(false);\n\n useEffect(() => {\n if (!isEnabled || !isProd() || !user || isTrackerLoaded) return;\n\n const handleScript = e => {\n if (e.type === 'load') {\n setIsTrackerLoaded(true);\n }\n };\n\n const scriptEl = document.createElement('script');\n scriptEl.id = 'hs-script-loader';\n scriptEl.type = 'application/javascript';\n scriptEl.src = '//js.hs-scripts.com/4773329.js';\n scriptEl.async = true;\n scriptEl.defer = true;\n document.body.appendChild(scriptEl);\n scriptEl.addEventListener('load', handleScript);\n scriptEl.addEventListener('error', handleScript);\n\n return () => {\n scriptEl.removeEventListener('load', handleScript);\n scriptEl.removeEventListener('error', handleScript);\n scriptEl.remove();\n };\n }, [user]);\n\n return [isTrackerLoaded];\n};\n\nexport default useHubspotTracker;\n","import React, {\n useEffect, useMemo, useState\n} from 'react';\nimport { IconMessageEllipsisPencilFilled, IconXmarkSm } from '@jotforminc/svg-icons';\nimport { checkUserType } from '@jotforminc/utils';\nimport cx from 'classnames';\nimport { Loading } from '@jotforminc/loading';\nimport { string } from 'prop-types';\nimport { userPropType } from '../constants';\nimport './feedbackSection.scss';\nimport {\n getUserPrefillValues\n} from '../utils';\n\nconst FeedbackForm = ({ user, formUiModifier }) => {\n const isUserAdmin = checkUserType('ADMIN', user);\n if (!isUserAdmin) return null;\n\n const [isFeedbackFormOpen, setIsFeedbackFormOpen] = useState(false);\n const [iframeSrc, setIframeSrc] = useState('');\n const [isIframeLoaded, setIsIframeLoaded] = useState(false);\n\n const feedbackFormClasses = cx('feedback-form-wrapper', {\n show: isFeedbackFormOpen\n });\n\n const memoizedIframeSrc = useMemo(() => {\n const { email, nameFirst, nameLast } = getUserPrefillValues(user);\n const pathName = window.location.pathname;\n return `https://form.jotform.com/242121390294955?feedbackEmbedButton&pathName=${pathName}&formUiModifier=${formUiModifier}&yourName[0]=${nameFirst}&yourName[1]=${nameLast}&email=${email}`;\n }, [user]);\n\n useEffect(() => {\n if (isFeedbackFormOpen) {\n setIsIframeLoaded(false);\n setIframeSrc(memoizedIframeSrc);\n } else {\n setIframeSrc('');\n }\n }, [isFeedbackFormOpen, memoizedIframeSrc]);\n\n return (\n <div className='prefill-asset-wrapper'>\n <div className='feedback-cta-wrapper'>\n <span className='explanation'>Admin Actions</span>\n <button\n id=\"feedback-form-open\"\n className=\"feedback-cta\"\n type=\"button\"\n onClick={() => setIsFeedbackFormOpen(o => !o)}\n hover-tooltip=\"Give feedback to the enterprise asset\"\n >\n <IconMessageEllipsisPencilFilled />\n </button>\n </div>\n\n <div\n id=\"feedback-form-container\"\n className={feedbackFormClasses}\n >\n <Loading\n strokeColor=\"#6C73A8\" style={{\n pointerEvents: 'none', zIndex: '1', width: '48px', height: '48px', transition: '.2s all', opacity: isIframeLoaded ? '0' : '1'\n }}\n />\n <button\n id=\"feedback-form-close\"\n type='button'\n className=\"feedback-form-close\"\n onClick={() => setIsFeedbackFormOpen(false)}\n >\n <IconXmarkSm />\n </button>\n <iframe\n id=\"feedback-form\"\n title=\"Feedback Form\"\n className=\"feedback-form\"\n src={iframeSrc}\n onLoad={() => setIsIframeLoaded(true)}\n />\n </div>\n </div>\n );\n};\n\nFeedbackForm.propTypes = {\n user: userPropType.isRequired,\n formUiModifier: string.isRequired\n};\n\nexport default FeedbackForm;\n","import React, {\n useEffect, useMemo, useRef, useState\n} from 'react';\nimport { bool, func, string } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { getDomainURL } from '@jotforminc/request-layer';\nimport { Loading } from '@jotforminc/loading';\nimport {\n ALL_TEXTS, SHORT_LEAD_FORM_IFRAME_ID,\n gaAttributesPropType, gaFormTrackingItemsPropType, userPropType, LEAD_FORM_MAP, SHOULD_SHOW_AD_FORM\n} from '../constants';\nimport {\n getMandatoryPrefillValues,\n getUserPrefillValues, isDevelopment, prepareFormParams\n} from '../utils';\nimport { useHubspotTracker } from '../hooks';\nimport FeedbackForm from './FeedbackForm';\n\nconst PrefilledLeadFormAside = ({\n user,\n title,\n formID: formIdProp,\n devFormID,\n classNames,\n formUiModifier,\n isIframeEmbed,\n gaAttributes,\n gaFormTrackingItems,\n customFormParamsPreparer,\n onFormSubmit,\n pageUrl,\n automatedNurturingSource,\n fullFormPath,\n isPrefillEnabled,\n isAdForm,\n isDynamicHeightEnabled,\n ...props\n}) => {\n const [isFrameLoaded, setIsIframeLoaded] = useState(false);\n const isSubmissionLoggedRef = useRef(false);\n const isFormFillingLoggedRef = useRef(false);\n const isHubspotLoggedRef = useRef(false);\n const formRef = useRef(null);\n const userMandatoryData = useMemo(() => getMandatoryPrefillValues(user), [user]);\n const userData = useMemo(() => getUserPrefillValues(user), [user]);\n const formParamPreparer = customFormParamsPreparer || prepareFormParams;\n let formParams = '';\n if (isPrefillEnabled) {\n formParams = formParamPreparer({\n ...userData, formUiModifier, isIframeEmbed, pageUrl, automatedNurturingSource, ...props\n });\n } else {\n formParams = formParamPreparer({\n ...userMandatoryData, formUiModifier, isIframeEmbed, pageUrl, automatedNurturingSource, ...props\n });\n }\n\n const inferDevFormIdBasedOnAdwordsMode = () => {\n if (!SHOULD_SHOW_AD_FORM) {\n return devFormID;\n }\n\n return !isAdForm ? devFormID : LEAD_FORM_MAP.COMMON.AD_FORM_DEV;\n };\n\n const inferFormIdBasedOnAdwordsMode = () => {\n if (!SHOULD_SHOW_AD_FORM) {\n return formIdProp;\n }\n\n return !isAdForm ? formIdProp : LEAD_FORM_MAP.COMMON.AD_FORM_LIVE;\n };\n\n const formId = isDevelopment() ? inferDevFormIdBasedOnAdwordsMode() : inferFormIdBasedOnAdwordsMode();\n const iframeSrc = fullFormPath ? `${fullFormPath}${formParams}` : `${getDomainURL()}/${formId}${formParams}`;\n\n // hubspot tracking\n const _hsq = window._hsq || [];\n const [isHubspotTrackerLoaded] = useHubspotTracker({ isEnabled: true, user });\n const [iframeHeight, setIframeHeight] = useState('');\n\n // identify user in hubspot\n useEffect(() => {\n if (!isHubspotTrackerLoaded || isHubspotLoggedRef.current) return;\n _hsq.push(['identify', {\n email: user?.email\n }]);\n _hsq.push(['setPath', window.location.href]);\n _hsq.push(['trackPageView']);\n isHubspotLoggedRef.current = true;\n }, [isHubspotTrackerLoaded]);\n\n // listen submission events\n useEffect(() => {\n const handleMessage = event => {\n if (isDynamicHeightEnabled) {\n const [name, height] = event.data?.split(':');\n if (name.includes('setHeight')) {\n setIframeHeight(`${height}px`);\n }\n }\n if (\n // event.origin !== 'https://submit.jotform.com'\n event.data.action !== 'submission-completed'\n || isSubmissionLoggedRef.current) {\n return;\n }\n\n const jobTitle = formRef.current?.querySelector('input[name*=\"jobTitle\"]')?.value || '';\n const country = formRef.current?.querySelector('select[name*=\"country\"]')?.value || '';\n\n window.dataLayer?.push({\n event: 'form_submit_enterprise',\n 'data-id': gaAttributes['data-id'],\n jobTitle,\n country,\n formId\n });\n onFormSubmit();\n isSubmissionLoggedRef.current = true;\n };\n window.addEventListener('message', handleMessage);\n return () => {\n window.removeEventListener('message', handleMessage);\n };\n }, [isFrameLoaded]);\n\n // listen form interactions\n const handleLoad = ({ target }) => {\n try {\n const iframeWindow = target?.contentWindow;\n const iframeDocument = iframeWindow?.document;\n const formElement = iframeDocument?.querySelector('.jotform-form');\n formRef.current = formElement;\n\n // form input\n formElement?.addEventListener('input', () => {\n if (isFormFillingLoggedRef.current) return;\n window.dataLayer?.push({\n event: 'form_start_filling_enterprise',\n 'data-id': gaAttributes['data-id'],\n formId\n });\n isFormFillingLoggedRef.current = true;\n });\n\n // button clicks\n gaFormTrackingItems?.forEach((trackingItem = {}) => {\n const { selector = '', payload = '' } = trackingItem;\n if (!selector || !payload) return;\n const element = iframeDocument?.querySelector(selector);\n\n element?.addEventListener('click', () => {\n window.dataLayer?.push(payload); // ga log\n if (typeof trackingItem.callback === 'function') {\n trackingItem.callback(); // jotform actions log\n }\n });\n });\n } finally {\n setIsIframeLoaded(true);\n }\n };\n\n return (\n <>\n <Loading\n strokeColor=\"#6C73A8\" style={{\n pointerEvents: 'none', zIndex: '1', width: '48px', height: '48px', transition: '.2s all', opacity: isFrameLoaded ? '0' : '1'\n }}\n />\n <iframe\n title={title}\n src={iframeSrc}\n style={{ height: isDynamicHeightEnabled ? `calc(${iframeHeight} + 37px)` : '', transition: '.2s all', opacity: isFrameLoaded ? '1' : '0' }}\n onLoad={handleLoad}\n className={classNames}\n id={SHORT_LEAD_FORM_IFRAME_ID}\n />\n <FeedbackForm user={user} formUiModifier={formUiModifier} />\n </>\n );\n};\n\nPrefilledLeadFormAside.propTypes = {\n user: userPropType.isRequired,\n customFormParamsPreparer: func,\n formID: string,\n devFormID: string,\n title: string,\n classNames: string,\n formUiModifier: string,\n isIframeEmbed: bool,\n gaAttributes: gaAttributesPropType.isRequired,\n gaFormTrackingItems: gaFormTrackingItemsPropType.isRequired,\n onFormSubmit: func,\n pageUrl: string,\n automatedNurturingSource: string,\n fullFormPath: string,\n isPrefillEnabled: bool,\n isAdForm: bool,\n isDynamicHeightEnabled: bool\n};\n\nPrefilledLeadFormAside.defaultProps = {\n formID: LEAD_FORM_MAP.COMMON.LIVE,\n devFormID: LEAD_FORM_MAP.COMMON.DEV,\n customFormParamsPreparer: undefined,\n title: t(ALL_TEXTS.SHORT_LEAD_FORM_TITLE),\n classNames: 'form',\n formUiModifier: '',\n isIframeEmbed: false,\n onFormSubmit: f => f,\n pageUrl: '',\n automatedNurturingSource: '',\n fullFormPath: '',\n isPrefillEnabled: true,\n isAdForm: false,\n isDynamicHeightEnabled: false\n};\n\nexport default PrefilledLeadFormAside;\n","import { AB_TEST } from './abTest';\nimport { CAMPAIGN } from './campaign';\nimport { PRODUCT } from './product';\nimport { AUTOMATION } from './automation';\nimport { WEBINAR } from './webinar';\n\nexport const ASSET_IDENTIFIER = {\n AB_TEST, CAMPAIGN, PRODUCT, AUTOMATION, WEBINAR\n};\n","export const AB_TEST = {\n // modals\n ADD_COLLABORATOR_MODAL: 'addCollaboratorModal',\n ADD_COLLABORATOR_BANNER: 'addColabBanner',\n ADMIN_CONSOLE_SINGLE_MODAL: 'adminConsoleSingleModal',\n ADMIN_CONSOLE_SLIDER_MODAL: 'adminConsoleSliderModal',\n ADVERTISEMENT_LEAD_FLOW_MODAL: 'adLeadFlowModal',\n AD_BANNER_MODAL: 'adBannerModal',\n AD_FIRST_EXIT_INTENT_MODAL: 'adFirstExitIntentModal',\n AD_SECOND_EXIT_INTENT_MODAL: 'adSecondExitIntentModal',\n APPLY_REAL_TIME_SUPPORT_MODAL: 'applyRealTimeSupportModal',\n ASSIGN_FORM_MODAL: 'assignFormModal',\n BLOG_CONTENT_BANNER_MODAL: 'blogContentBannerModal',\n BSG_EDUCATION_DISCOUNT_MODAL: 'bsgEducationDiscountModal',\n BSG_NONPROFIT_DISCOUNT_MODAL: 'bsgNonprofitDiscountModal',\n CONTACT_SUPPORT_MODAL: 'contactSupportModal',\n DEDICATED_SUPPORT_MODAL: 'dedicatedSupportModal',\n SINGLE_COLUMN_DEDICATED_SUPPORT_MODAL: 'singleColumnDedicatedSupportModal',\n EDUCATION_BDM_FLOW_MODAL: 'educationBdmFlowModal',\n EDUCATION_DISCOUNT_MODAL: 'educationDiscountModal',\n EDUCATION_DISCOUNT_MODAL_FERPA_VIOLATION_EXAMPLES: 'educationDiscountModalFerpaViolationExamples',\n ENHANCE_COLLAB_MODAL: 'enhanceCollaborationModal',\n FASTER_SUPPORT_RESPONSE_MODAL: 'fasterSupportResponseModal',\n FEATURE_SLIDER_MODAL: 'featureSliderModal',\n LOCAL_DATA_RESIDENCY_MODAL: 'localDataResidencyModal',\n PRICING_TABLE_MODAL: 'pricingTableModal',\n PRICING_TABLE_ISOLATED_MODAL: 'pricingTableIsolatedModal',\n SHARE_FOLDER_MODAL: 'shareFolderModal',\n SOC2_COMPLIANCE_MODAL: 'soc2ComplianceModal',\n SSO_PREFILL_MODAL: 'ssoPrefillModal',\n SSO_PREFILL_DETAILED_MODAL: 'ssoPrefillDetailedModal',\n PROFESSIONAL_SERVICES_MODAL: 'professionalServicesModal',\n REQUIRE_SSO_MODAL: 'requireSsoModal',\n SECURITY_PROPERTIES_MODAL: 'securityPropertiesModal',\n SYSTEM_LOGS_MODAL: 'systemLogsModal',\n ZOOM_SUPPORT_MODAL: 'zoomSupportModal',\n APPEXCHANGE_MODAL: 'appExchangeModal',\n TEAMS_WHITE_LABELING_MODAL: 'teamsWhiteLabelingModal',\n SCHEDULE_ZOOM_MODAL: 'scheduleZoomModal',\n // bsge plan discount modals\n BRONZE_PLAN_DISCOUNT_MODAL: 'bronzePlanDiscountModal',\n SILVER_PLAN_DISCOUNT_MODAL: 'silverPlanDiscountModal',\n GOLD_PLAN_DISCOUNT_MODAL: 'goldPlanDiscountModal',\n ENTERPRISE_PLAN_DISCOUNT_MODAL: 'enterprisePlanDiscountModal',\n // banners\n ACTIVE_SUBMISSON_BANNER: 'activeSubmissionBanner',\n ADMIN_CONSOLE_BANNER: 'adminConsoleBanner',\n ADD_AND_MANAGE_USERS_BANNER_ALT: 'addAndManageUsersBannerAlt',\n ADVERTISEMENT_LEAD_FLOW_BANNER: 'advertisementLeadFlowBanner',\n APPLY_REAL_TIME_SUPPORT_BANNER: 'applyRealTimeSupportBanner',\n ASSIGN_FORM_BANNER: 'assignFormBanner',\n BLOG_CONTENT_BOOST_BANNER: 'blogContentBoostBanner',\n BLOG_CONTENT_SPEED_UP_BANNER: 'blogContentSpeedUpBanner',\n BLOG_EDUCATION_CONTENT_BANNER: 'blogEducationContentBanner',\n BLOG_CONTENT_SIDE_BANNER: 'blogContentSideBanner',\n CUSTOM_DOMAIN_TOOLTIP_BANNER: 'customDomainTooltip',\n EDUCATION_BDM_FLOW_BANNER: 'educationBdmFlowBanner',\n ENTERPRISE_BILLING_BANNER: 'enterpriseBillingBanner',\n ENTERPRISE_SECURITY_ITEMS_SECTION: 'enterpriseSecurityItemsSection',\n ENTERPRISE_WHITE_LABELING_BANNER: 'enterpriseWhiteLabelingBanner',\n ENTERPRISE_EDUCATION_DISCOUNT_MODAL: 'enterpriseEducationDiscountModal',\n ENTERPRISE_NONPROFIT_DISCOUNT_MODAL: 'enterpriseNonprofitDiscountModal',\n FASTER_SUPPORT_RESPONSE_BANNER: 'fasterSupportResponseBanner',\n FASTER_SUPPORT_RESPONSE_TOGGLE_BANNER: 'fasterSupportResponseToggleBanner',\n FULLY_CUSTOMIZE_BANNER: 'fullyCustomizeBanner',\n IP_RESTRICTION_BANNER: 'ipRestrictionBanner',\n LOCAL_DATA_RESIDENCY_ALT_BANNER: 'localDataResidencyAltBanner',\n MYFORMS_WHITE_LABELING_TOOLTIP_BANNER: 'whiteLabelingTooltipBanner',\n MY_ACCOUNT_STORE_DATA_IN_AU_BANNER: 'storeDataInAuBanner',\n MOBILE_FOOTER_CONTACT_BANNER: 'mobileFooterContactBanner',\n PUSH_DAY_BANNER: 'profSolutionsBanner',\n PROFESSIONAL_SERVICES_TOOLTIP: 'professionalServicesTooltip',\n PROFESSIONAL_SERVICES_CONTACT_BANNER: 'professionalServicesContactBanner',\n SHARE_PANEL_COLLAB_BANNER: 'sharePanelCollabBanner',\n SSO_ACCESS_BANNER: 'ssoAccessBanner',\n SSO_PREFILL_BANNER: 'ssoPrefillBanner', // live\n SYSTEM_LOGS_BANNER: 'systemLogsBanner',\n SYSTEM_LOGS_TINY_BANNER: 'systemLogsTinyBanner',\n DEDICATED_SUPPORT_BANNER_V2: 'dedicatedSupportBannerV2',\n SCHEDULE_ZOOM_BANNER: 'scheduleZoomBanner',\n SOC2_COMPLIANCE_BANNER: 'soc2ComplianceBanner',\n // sections\n ACCESS_CONTROL_SECTION: 'accessControlSection',\n ASSIGN_TO_EVERYONE_PROMOTION: 'assignToEveryonePromotionSection',\n ASSIGN_TO_EVERYONE_PROMOTION_ALT: 'assignToEveryonePromotionSectionAlt',\n ENTERPRISE_CHECKOUT_LIKE_SECTION: 'enterpriseCheckoutLikeSection', // live\n USERS_SECTION: 'usersSection',\n USERS_SECTION_ALT: 'usersSectionAlt',\n WHITE_LABELING_SECTION: 'whiteLabelingSection',\n // buttons\n EXPANDABLE_ADMIN_CONSOLE_BUTTON: 'expandableAdminConsoleButton',\n FASTER_SUPPORT_RESPONSE_TOGGLE_BUTTON: 'fasterSupportResponseToggleButton',\n ZOOM_MEETING_BUTTON: 'zoomMeetingButton',\n ASSIGN_TO_ORGANIZATION_BUTTON: 'assignToOrganizationButton',\n // badges\n ENTERPRISE_FEATURE_BADGE: 'enterpriseFeatureBadge'\n};\n","export const CAMPAIGN = {\n EARNED_BADGES_MODAL: 'earnedBadgesModal',\n ETT_EDUCATION_GATED_CONTENT_MODAL: 'ettEducationGatedCotentModal',\n ETT_EDUCATION_EXIT_INTENT_MODAL: 'ettEducationExitIntentModal',\n FOMO_MODAL: 'fomoModal',\n FQHC_MODAL: 'fqhcModal',\n HEALTHCARE_REPORT_BANNER: 'healthcareReportBanner',\n HEALTHCARE_REPORT_MODAL: 'healthcareReportModal',\n NHS_MODAL: 'nhsModal'\n};\n","export const PRODUCT = {\n // modals\n ADMIN_CONSOLE_DARK_MODAL: 'adminConsoleDarkModal',\n ASSIGN_TO_ORGANIZATON_MODAL: 'assignToOrganizationModal',\n CONTACT_DEDICATED_SUPPORT_MODAL: 'contactDedicatedSupportModal',\n ENTERPRISE_PROPERTY_MODAL: 'enterprisePropertyModal',\n ENTERPRISE_TEAMS_MODAL: 'enterpriseTeamsModal',\n TEAMS_MODAL: 'teamsModal',\n FOLDER_LIMIT_MODAL: 'folderLimitModal',\n HELP_DEDICATED_SUPPORT_MODAL: 'helpDedicatedSupportModal',\n TEAM_CREATION_LIMIT_MODAL: 'teamCreationLimitModal',\n WHITE_LABELING_MODAL: 'whiteLabelingModal',\n APPEXCHANGE_MODAL: 'appexchangeModal',\n ENTERPRISE_BEGINNERS_BOOK_MODAL: 'enterpriseBeginnersBookModal',\n ENTERPRISE_CASE_STUDY_MODAL: 'enterpriseCaseStudyModal',\n ENTERPRISE_DATA_CENTERS_MODAL: 'enterpriseDataCentersModal',\n PDF_DOWNLOAD_MODAL: 'pdfDownloadModal',\n // banners\n ADD_AND_MANAGE_USERS_BANNER: 'addAndManageUsersBanner',\n CUSTOM_DOMAIN_API_BANNER: 'customDomainApiBanner',\n FORM_CUSTOM_DOMAIN_TOOLTIP: 'formCustomDomainTooltip',\n CUSTOM_DOMAIN_TOOLTIP_LEGACY: 'customDomainTooltipLegacy',\n TEAMS_CUSTOM_DOMAIN_LEGACY_TOOLTIP: 'teamsCustomDomainLegacyTooltip',\n DEDICATED_SUPPORT_BANNER: 'dedicatedSupportBanner',\n GENERAL_FAQ_PROF_SERVICES_BANNER: 'generalFaqProfessionalServicesBanner',\n LIMIT_BANNER: 'limitBanner',\n LOCAL_DATA_RESIDENCY_BANNER: 'localDataResidencyBanner',\n SESSIONS_ACCOUNT_SHARING_BANNER: 'sessionsAccountSharingBanner',\n SSO_ACCESS_LEGACY_BANNER: 'ssoAccessLegacyBanner',\n SSO_LEGACY_TOOLTIP: 'ssoLegacyTooltip',\n SSO_PREFILL_LEGACY_BANNER: 'ssoPrefillLegacyBanner',\n USER_GUIDE_PROF_SERVICES_BANNER: 'userGuideProfessionalServicesBanner',\n WHITE_LABELING_BANNER: 'whiteLabelingBanner',\n APPROVAL_WHITE_LABELING_BANNER: 'approvalWhiteLabelingBanner',\n WORKFLOW_GROUP_APPROVAL_BANNER: 'workflowGroupApprovalBanner',\n BLOG_EDUCATION_SIDE_BANNER: 'blogEducationSideBanner',\n PDF_DOWNLOAD_BANNER: 'pdfDownloadBanner',\n // sections\n MY_ACCOUNT_USERS_SECTION_WITH_FORM: 'myAccountUsersSection', // old: myAccountUsersSectionWithForm\n ENTERPRISE_DATA_CENTERS_SECTION: 'enterpriseDataCentersSection',\n DEDICATED_SUPPORT_SECTION: 'dedicatedSupportSection',\n // buttons\n ADMIN_CONSOLE_PROMOTION_BUTTON: 'adminConsolePromotionButton'\n};\n","export const AUTOMATION = {\n // segmented modals\n EDUCATION_MODAL: 'segmentedEducationModal', // old: educationModal\n EDUCATION_MODAL_ALT: 'segmentedEducationModalAlt', // old: educationModalAlt\n FIELD_SERVICE_MANAGEMENT_MODAL: 'segmentedFieldServiceManagementModal', // old: fieldServiceManagementModal\n GOVERNMENT_MODAL: 'segmentedGovernmentModal', // old: governmentModal\n HEALTHCARE_MODAL: 'segmentedHealthcareModal', // old: healthcareModal\n NONPROFIT_MODAL: 'segmentedNonprofitModal', // old: nonprofitModal\n // other modals\n AU_DATA_RESIDENCY_MODAL: 'australianDataResidencyModal',\n HK_DATA_RESIDENCY_MODAL: 'hongKongDataResidencyModal',\n SG_DATA_RESIDENCY_MODAL: 'singaporeDataResidencyModal',\n ENTERPRISE_DISCOUNT_MODAL: 'enterpriseDiscountModal',\n HUBSPOT_MODAL: 'milestoneHubspotModal',\n BLOG_GATED_CONTENT_MODAL: 'blogGatedContentModal'\n};\n","export const WEBINAR = {\n COST_CUTTING_WEBINAR_BANNER: 'costCuttingWebinarBanner',\n COST_CUTTING_WEBINAR_MODAL: 'costCuttingWebinarModal',\n ED_TECH_WEBINAR_MODAL: 'edTechWebinarModal',\n FIELD_SERVICE_WEBINAR_MODAL: 'fieldServiceWebinarModal',\n HR_WEBINAR_MODAL: 'hrWebinarModal',\n HEALTHCARE_TECHNOLOGY_MODAL: 'healthcareTechnologyModal',\n HEALTHCARE_AUTOMATION_STRATEGIES_WEBINAR_MODAL: 'hasWebinarModal',\n LUNCH_AND_LEARN_MODAL: 'lunchAndLearnModal',\n LUNCH_AND_LEARN_BANNER: 'lunchAndLearnBanner',\n NONPROFIT_WEBINAR_BANNER: 'nonProfitWebinarBanner',\n MAXIMUM_IMPACT_WEBINAR_MODAL: 'maximumImpactWebinarModal',\n HEALTHCARE_FUTURE_WEBINAR_MODAL: 'healthcareFutureWebinarModal',\n NONPROFIT_WEBINAR_MODAL: 'nonProfitWebinarModal',\n PRIVACY_CONCERN_WEBINAR_MODAL: 'privacyConcernWebinarModal'\n};\n","import { ALL_TEXTS } from './texts';\n\nexport const ENTERPRSE_PROMOTIONS_ROOT_EL_ID = 'enterprise-promotions-root';\n\nexport const ACTION_PROJECT_NAMES = {\n TEAMS: 'teams',\n AU_DATA_RESIDENCY_MODAL: 'auDataResidencyModalCampaign',\n ENTERPRISE_PROMOTIONS: 'enterprisePromotions' // always use this\n // dont use new project name for enterprise promotions assets\n};\n\nexport const SHORT_LEAD_FORM_IFRAME_ID = 'enterprise-short-lead-form';\n\nexport const VARIANTS = {\n CONTROL_CODE: '8521',\n TEST_CODE: '8531'\n};\n\nexport const govModalSeenAtUserSettingsKey = 'enterpriseGovernmentModalSeenAt';\nexport const nonProfitModalSeenAtUserSettingsKey = 'enterpriseNonProfitWebinarModalSeenAt';\nexport const nonProfitBannerSeenAtUserSettingsKey = 'enterpriseNonProfitWebinarBannerSeenAt';\nexport const healthcareReportModalSeenAtUserSettingsKey = 'enterprise2024HealthcareReportModalSeenAt';\nexport const healthcareReportBannerSeenAtUserSettingsKey = 'enterprise2024HealthcareReportBannerSeenAt';\nexport const professionalSolutionsBannerSeenAtKey = 'professionalSolutionsBannerSeenAt';\nexport const costCuttingWebinarModalSeenAtKey = 'costCuttingWebinarModalSeenAt';\nexport const costCuttingWebinarBannerSeenAtKey = 'costCuttingWebinarBannerSeenAt';\nexport const australianDataResidencyModalSeenAtKey = 'australianDataResidencyModalSeenAt';\nexport const fieldServiceWebinarModalSeenAtKey = 'fieldServiceWebinarModalSeenAt';\nexport const privacyConcernWebinarModalSeenAtKey = 'privacyConcernWebinarModalSeenAt';\nexport const milestoneHubspotModalKey = 'milestoneHubspotModalSeenAt';\nexport const earnedBadgesModalSeenAtKey = 'earnedBadgesModalSeenAt';\nexport const hasWebinarModalSeenAtKey = 'hasWebinarModalSeenAt';\nexport const ettEducationReportModalSeenAtKey = 'ettEducationReportModalSeenAt';\nexport const maximumImpactWebinarModalSeenAtKey = 'maximumImpactWebinarModalSeenAt';\nexport const healthcareFutureWebinarModalSeenAtKey = 'healthcareFutureWebinarModalSeenAt';\n\nexport const lunchAndLearnNotificationSeenAtKey = 'lunchAndLearnNotificationSession2SeenAt';\nexport const enterprisePriceAdjustmentNotificationSeenAtKey = 'fomoNotificationSeenAt';\nexport const enterprisePriceAdjustmentNotificationA1FirstSeenAtKey = 'fomoA1ThirdNotificationSeenAt';\nexport const fomoB1FirstModalSeenAtKey = 'fomoB1FirstModalSeenAt';\nexport const adTechWebinarModalSeenAtKey = 'edtechWebinarSept2023SeenAt';\n\nexport const COUNTDOWN_UNIT = {\n DAYS: 'DAYS',\n HOURS: 'HOURS',\n MINUTES: 'MINUTES',\n LIVE: 'LIVE'\n};\n\n// lunch and learn banner\n// update these constants for the next session\nexport const lalbSession = 5;\nexport const lalbSessionName = `session${lalbSession}`;\nexport const lalbNeverShowKey = 'lunchAndLearnBannerSeenAt';\nexport const lalbSessionKey = `lunchAndLearnBannerSession${lalbSession}SeenAt`;\n\nexport const TEST_EVENT_DATE = {\n ANNOUNCEMENT_DATE_TIME: '2023-03-09T10:00:00.000+03:00',\n EVENT_DATE_TIME: '2023-03-10T14:00:00.000-05:00',\n EVENT_DURATION: '03:00'\n};\n\nexport const LUNCH_AND_LEARN_SESSIONS = [{\n ANNOUNCEMENT_DATE_TIME: '2023-02-28T10:00:00.000+03:00', // UTC+3\n EVENT_DATE_TIME: '2023-03-02T12:00:00.000-05:00', // UTC-5\n EVENT_DURATION: '00:30',\n CONTENT: ALL_TEXTS.LUNCH_LEARN_CONTENT_SESSION_1\n}, {\n ANNOUNCEMENT_DATE_TIME: '2023-03-13T10:00:00.000+03:00', // UTC+3\n EVENT_DATE_TIME: '2023-03-16T12:00:00.000-05:00', // UTC-5\n EVENT_DURATION: '00:30',\n CONTENT: ALL_TEXTS.LUNCH_LEARN_CONTENT_SESSION_2\n}, {\n ANNOUNCEMENT_DATE_TIME: '2023-03-27T10:00:00.000+03:00', // UTC+3\n EVENT_DATE_TIME: '2023-03-30T12:00:00.000-05:00', // UTC-5\n EVENT_DURATION: '00:30',\n CONTENT: ALL_TEXTS.LUNCH_LEARN_CONTENT_SESSION_3\n},\n{\n ANNOUNCEMENT_DATE_TIME: '2023-04-10T10:00:00.000+03:00', // UTC+3\n EVENT_DATE_TIME: '2023-04-13T12:00:00.000-05:00', // UTC-5\n EVENT_DURATION: '00:30',\n CONTENT: ALL_TEXTS.LUNCH_LEARN_CONTENT_SESSION_4\n},\n{\n ANNOUNCEMENT_DATE_TIME: '2023-04-24T10:00:00.000+03:00', // UTC+3\n EVENT_DATE_TIME: '2023-04-27T12:00:00.000-05:00', // UTC-5\n EVENT_DURATION: '00:30',\n CONTENT: ALL_TEXTS.LUNCH_LEARN_CONTENT_SESSION_5\n},\n{\n ANNOUNCEMENT_DATE_TIME: '2023-05-08T10:00:00.000+03:00', // UTC+3\n EVENT_DATE_TIME: '2023-05-11T12:00:00.000-05:00', // UTC-5\n EVENT_DURATION: '00:30',\n CONTENT: ALL_TEXTS.LUNCH_LEARN_CONTENT_SESSION_6\n}];\n\nexport const COST_CUTTING_WEBINAR_ASSET_TYPE = {\n MODAL: 'modal',\n BANNER: 'banner'\n};\n\nexport const SEGMENTED_MODAL_TYPES = {\n GOVERNMENT: 'government',\n HEALTHCARE: 'healthcare',\n EDUCATION: 'education',\n FIELD_SERVICES_MANAGEMENT: 'fieldServicesManagement',\n NONPROFIT: 'nonprofit'\n};\n\nexport const PRICING_TABLE_AB_TEST_VARIANTS = {\n CONTROL_A: '8701',\n TEST_B: '8711',\n TEST_C: '8721'\n};\n\nexport const PRICING_TABLE_SOURCE_PAGES = {\n EDUCATION: 'education',\n NONPROFIT: 'nonprofit'\n};\n\nconst { EDUCATION, NONPROFIT } = PRICING_TABLE_SOURCE_PAGES;\n\nexport const BRONZE_DM_DESCRIPTION = {\n [EDUCATION]: ALL_TEXTS.APPLY_BRONZE_EDUCATION_DISCOUNT,\n [NONPROFIT]: ALL_TEXTS.APPLY_BRONZE_NONPROFIT_DISCOUNT\n};\n\nexport const SILVER_DM_DESCRIPTION = {\n [EDUCATION]: ALL_TEXTS.APPLY_SILVER_EDUCATION_DISCOUNT,\n [NONPROFIT]: ALL_TEXTS.APPLY_SILVER_NONPROFIT_DISCOUNT\n};\n\nexport const GOLD_DM_DESCRIPTION = {\n [EDUCATION]: ALL_TEXTS.APPLY_GOLD_EDUCATION_DISCOUNT,\n [NONPROFIT]: ALL_TEXTS.APPLY_GOLD_NONPROFIT_DISCOUNT\n};\n\nexport const ENTERPRISE_DM_DESCRIPTION = {\n [EDUCATION]: ALL_TEXTS.ENTERPRISE_DISCOUNT_EDUCATION_DESCRIPTION,\n [NONPROFIT]: ALL_TEXTS.ENTERPRISE_DISCOUNT_NONPROFIT_DESCRIPTION\n};\n\nexport const leadFlowBannerUrlParam = 'epalf';\nexport const leadFlowBannerAutoVisibleLcStKey = 'leadFlowBannerAutoVisible';\n\nexport const eduBdmFlowInterctedLcStKey = 'eduBdmFlowBannerInteracted';\nexport const eduBdmFlowVisitCountLcStKey = 'eduBdmFlowBannerVisitCount';\nexport const eduBdmFlowAutoVisibleLcStKey = 'eduBdmFlowBannerAutoVisible';\n\nexport const CHECKOUT_LIKE_SECTION_STEPS = {\n FORM_STEP: 'FORM_STEP',\n THANK_YOU_STEP: 'THANK_YOU_STEP'\n};\n\nexport const SHOULD_SHOW_AD_FORM = false;\n","import { ASSET_IDENTIFIER } from './assetIdentifier';\n\nconst {\n FOLDER_LIMIT_MODAL, HELP_DEDICATED_SUPPORT_MODAL, WHITE_LABELING_MODAL, ASSIGN_TO_ORGANIZATON_MODAL, TEAMS_MODAL, TEAM_CREATION_LIMIT_MODAL, ADMIN_CONSOLE_DARK_MODAL, ENTERPRISE_DATA_CENTERS_MODAL,\n MY_ACCOUNT_USERS_SECTION_WITH_FORM, CONTACT_DEDICATED_SUPPORT_MODAL\n} = ASSET_IDENTIFIER.PRODUCT;\n\n// For webinars\n\n// For campaigns\n\n// For AB tests\nconst {\n EDUCATION_DISCOUNT_MODAL, EDUCATION_DISCOUNT_MODAL_FERPA_VIOLATION_EXAMPLES, SYSTEM_LOGS_MODAL,\n ADD_COLLABORATOR_MODAL, ENTERPRISE_CHECKOUT_LIKE_SECTION, SINGLE_COLUMN_DEDICATED_SUPPORT_MODAL, SCHEDULE_ZOOM_MODAL\n} = ASSET_IDENTIFIER.AB_TEST;\n\n// For automation\nconst { GOVERNMENT_MODAL } = ASSET_IDENTIFIER.AUTOMATION;\n\nexport const GA_AD_FORM_TRACKING_ITEMS = {\n // segmented modals\n // todo: update segmented modals selectors\n [GOVERNMENT_MODAL]: [\n { selector: '#input_129', payload: { event: 'contact-sales-click' } },\n { selector: '#text_130 a', payload: { event: 'learn-more-click' } }\n ],\n [EDUCATION_DISCOUNT_MODAL]: [\n { selector: '#input_104', payload: { event: 'contact-sales-click' } }\n ],\n [EDUCATION_DISCOUNT_MODAL_FERPA_VIOLATION_EXAMPLES]: [\n { seletor: '#input_106', payload: { event: 'contact-sales-click' } }\n ],\n [SYSTEM_LOGS_MODAL]: [\n { selector: '#input_107', payload: { event: 'contact-now-click' } }\n ],\n [FOLDER_LIMIT_MODAL]: [\n { selector: '#input_108', payload: { event: 'contact-sales-click' } }, // It has been updated. The old one was \"contact-sales-click\"\n { selector: '#text_109 a', payload: { event: 'learn-more-click' } }\n ],\n [HELP_DEDICATED_SUPPORT_MODAL]: [\n { selector: '#input_110', payload: { event: 'contact-now-click' } }\n ],\n [WHITE_LABELING_MODAL]: [\n { selector: '#input_111', payload: { event: 'contact-sales-click' } }\n ],\n [ADD_COLLABORATOR_MODAL]: [\n { selector: '#input_112', payload: { event: 'contact-sales-click' } }\n ],\n [ASSIGN_TO_ORGANIZATON_MODAL]: [\n { selector: '#input_113', payload: { event: 'contact-sales-click' } },\n { selector: '#text_114 a', payload: { event: 'learn-more-click' } }\n ],\n [TEAMS_MODAL]: [\n { selector: '#input_115', payload: { event: 'contact-sales-click' } }\n ],\n [TEAM_CREATION_LIMIT_MODAL]: [\n { selector: '#input_116', payload: { event: 'contact-sales-click' } }, // It has been updated. The old one was \"contact-sales-click\"\n { selector: '#text_117 a', payload: { event: 'learn-more-click' } }\n ],\n [ADMIN_CONSOLE_DARK_MODAL]: [\n { selector: '#input_118', payload: { event: 'contact-sales-click' } },\n { selector: '#text_119 a', payload: { event: 'learn-more-click' } }\n ],\n [ENTERPRISE_DATA_CENTERS_MODAL]: [\n { selector: '#input_121', payload: { event: 'contact-sales-click' } },\n { selector: '#text_120 a', payload: { event: 'learn-more-click' } }\n ],\n [MY_ACCOUNT_USERS_SECTION_WITH_FORM]: [\n { selector: '#input_122', payload: { event: 'contact-sales-click' } }\n ],\n [ENTERPRISE_CHECKOUT_LIKE_SECTION]: [\n { selector: '#input_131', payload: { event: 'send-request-click' } }\n ],\n [CONTACT_DEDICATED_SUPPORT_MODAL]: [\n { selector: '#input_133', payload: { event: 'contact-now-click' } }\n ],\n [SINGLE_COLUMN_DEDICATED_SUPPORT_MODAL]: [\n { selector: '#input_73', payload: { event: 'send-request-click' } }\n ],\n [SCHEDULE_ZOOM_MODAL]: [\n { selector: '#input_196', payload: { event: 'contact-sales-click' } }\n ]\n};\n","import { ASSET_IDENTIFIER } from './assetIdentifier';\n\nconst {\n ADMIN_CONSOLE_DARK_MODAL, ASSIGN_TO_ORGANIZATON_MODAL,\n CONTACT_DEDICATED_SUPPORT_MODAL, WHITE_LABELING_MODAL,\n ENTERPRISE_TEAMS_MODAL, TEAMS_MODAL, TEAM_CREATION_LIMIT_MODAL, HELP_DEDICATED_SUPPORT_MODAL,\n MY_ACCOUNT_USERS_SECTION_WITH_FORM, FOLDER_LIMIT_MODAL, APPEXCHANGE_MODAL, ENTERPRISE_DATA_CENTERS_MODAL, ENTERPRISE_BEGINNERS_BOOK_MODAL, PDF_DOWNLOAD_MODAL, ENTERPRISE_CASE_STUDY_MODAL\n} = ASSET_IDENTIFIER.PRODUCT;\n\n// For webinars\nconst {\n ED_TECH_WEBINAR_MODAL, HEALTHCARE_AUTOMATION_STRATEGIES_WEBINAR_MODAL,\n LUNCH_AND_LEARN_MODAL, MAXIMUM_IMPACT_WEBINAR_MODAL, HEALTHCARE_TECHNOLOGY_MODAL,\n HEALTHCARE_FUTURE_WEBINAR_MODAL\n} = ASSET_IDENTIFIER.WEBINAR;\n\n// For campaigns\nconst {\n ETT_EDUCATION_GATED_CONTENT_MODAL, ETT_EDUCATION_EXIT_INTENT_MODAL,\n FOMO_MODAL, FQHC_MODAL, HEALTHCARE_REPORT_MODAL\n} = ASSET_IDENTIFIER.CAMPAIGN;\n\n// For AB tests\nconst {\n ADD_COLLABORATOR_MODAL, AD_BANNER_MODAL, AD_FIRST_EXIT_INTENT_MODAL, AD_SECOND_EXIT_INTENT_MODAL,\n BLOG_BANNER_MODAL, DEDICATED_SUPPORT_MODAL, FASTER_SUPPORT_RESPONSE_MODAL, PRICING_TABLE_MODAL,\n PRICING_TABLE_ISOLATED_MODAL, SHARE_FOLDER_MODAL, SSO_PREFILL_MODAL, PROFESSIONAL_SERVICES_MODAL,\n ZOOM_SUPPORT_MODAL, ASSIGN_FORM_MODAL, BRONZE_PLAN_DISCOUNT_MODAL, SILVER_PLAN_DISCOUNT_MODAL,\n GOLD_PLAN_DISCOUNT_MODAL, ENTERPRISE_PLAN_DISCOUNT_MODAL, BLOG_CONTENT_SIDE_BANNER,\n ENTERPRISE_CHECKOUT_LIKE_SECTION, LOCAL_DATA_RESIDENCY_MODAL, MOBILE_FOOTER_CONTACT_BANNER,\n APPLY_REAL_TIME_SUPPORT_MODAL, EDUCATION_DISCOUNT_MODAL, TEAMS_WHITE_LABELING_MODAL,\n REQUIRE_SSO_MODAL, SYSTEM_LOGS_MODAL, SSO_PREFILL_DETAILED_MODAL, EDUCATION_DISCOUNT_MODAL_FERPA_VIOLATION_EXAMPLES,\n SINGLE_COLUMN_DEDICATED_SUPPORT_MODAL, SCHEDULE_ZOOM_MODAL, SOC2_COMPLIANCE_MODAL\n} = ASSET_IDENTIFIER.AB_TEST;\n\n// For automation\nconst {\n EDUCATION_MODAL, EDUCATION_MODAL_ALT, FIELD_SERVICE_MANAGEMENT_MODAL, GOVERNMENT_MODAL,\n HEALTHCARE_MODAL, NONPROFIT_MODAL, ENTERPRISE_DISCOUNT_MODAL, AU_DATA_RESIDENCY_MODAL,\n HK_DATA_RESIDENCY_MODAL, SG_DATA_RESIDENCY_MODAL, BLOG_GATED_CONTENT_MODAL\n} = ASSET_IDENTIFIER.AUTOMATION;\n\nexport const GA_FORM_TRACKING_ITEMS = {\n // segmented modals\n // todo: update segmented modals selectors\n [GOVERNMENT_MODAL]: [\n { selector: '#input_99', payload: { event: 'contact-sales-click' } },\n { selector: '#id_100 a', payload: { event: 'learn-more-click' } }\n ],\n [HEALTHCARE_MODAL]: [\n { selector: '#input_99', payload: { event: 'apply-now-click' } },\n { selector: '#id_100 a', payload: { event: 'learn-more-click' } }\n ],\n [EDUCATION_MODAL]: [\n { selector: '#input_99', payload: { event: 'apply-now-click' } },\n { selector: '#id_100 a', payload: { event: 'learn-more-click' } }\n ],\n [FIELD_SERVICE_MANAGEMENT_MODAL]: [\n { selector: '#input_99', payload: { event: 'apply-now-click' } },\n { selector: '#id_100 a', payload: { event: 'learn-more-click' } }\n ],\n [NONPROFIT_MODAL]: [\n { selector: '#input_99', payload: { event: 'apply-now-click' } },\n { selector: '#id_100 a', payload: { event: 'learn-more-click' } }\n ],\n // segmented modals end\n [ADMIN_CONSOLE_DARK_MODAL]: [\n { selector: '#input_74', payload: { event: 'contact-sales-click' } },\n { selector: '#text_76 a', payload: { event: 'learn-more-click' } }\n ],\n [AU_DATA_RESIDENCY_MODAL]: [\n { selector: '#input_81', payload: { event: 'send-request-click' } },\n { selector: '#text_80 a', payload: { event: 'learn-more-click' } }\n ],\n [HK_DATA_RESIDENCY_MODAL]: [\n { selector: '#input_201', payload: { event: 'send-request-click' } },\n { selector: '#text_200 a', payload: { event: 'explore-more-click' } }\n ],\n [SG_DATA_RESIDENCY_MODAL]: [\n { selector: '#input_203', payload: { event: 'send-request-click' } },\n { selector: '#text_202 a', payload: { event: 'explore-more-click' } }\n ],\n [ASSIGN_TO_ORGANIZATON_MODAL]: [\n { selector: '#input_99', payload: { event: 'contact-sales-click' } },\n { selector: '#text_111 a', payload: { event: 'learn-more-click' } }\n ],\n [ENTERPRISE_TEAMS_MODAL]: [\n { selector: '#input_151', payload: { event: 'join-now-click' } },\n { selector: '#text_173 a', payload: { event: 'learn-more-click' } }\n ],\n [TEAM_CREATION_LIMIT_MODAL]: [\n { selector: '#input_173', payload: { event: 'contact-sales-click' } }, // It has been updated. The old one was \"contact-sales-click\"\n { selector: '#text_108 a', payload: { event: 'learn-more-click' } }\n ],\n [FOLDER_LIMIT_MODAL]: [\n { selector: '#input_174', payload: { event: 'contact-sales-click' } }, // It has been updated. The old one was \"contact-sales-click\"\n { selector: '#text_175 a', payload: { event: 'learn-more-click' } }\n ],\n [EDUCATION_MODAL_ALT]: [\n { selector: '#input_145', payload: { event: 'apply-now-click' } }\n ],\n [ENTERPRISE_DISCOUNT_MODAL]: [\n { selector: '#input_77', payload: { event: 'apply-now-click' } }\n ],\n [HEALTHCARE_REPORT_MODAL]: [\n { selector: '#input_33', payload: { event: 'get-insights-now-click' } }\n ],\n [PRICING_TABLE_ISOLATED_MODAL]: [\n { selector: '#input_115', payload: { event: 'contact-now-click' } }\n ],\n [PRICING_TABLE_MODAL]: [\n { selector: '#input_117', payload: { event: 'contact-now-click' } }\n ],\n [MY_ACCOUNT_USERS_SECTION_WITH_FORM]: [\n { selector: '#input_83', payload: { event: 'contact-sales-click' } }\n ],\n [BRONZE_PLAN_DISCOUNT_MODAL]: [\n { selector: '#input_77', payload: { event: 'apply-now-click' } }\n ],\n [SILVER_PLAN_DISCOUNT_MODAL]: [\n { selector: '#input_77', payload: { event: 'apply-now-click' } }\n ],\n [GOLD_PLAN_DISCOUNT_MODAL]: [\n { selector: '#input_77', payload: { event: 'apply-now-click' } }\n ],\n [ENTERPRISE_PLAN_DISCOUNT_MODAL]: [\n { selector: '#input_77', payload: { event: 'apply-now-click' } }\n ],\n [ADD_COLLABORATOR_MODAL]: [\n { selector: '#input_122', payload: { event: 'contact-sales-click' } },\n { selector: '#text_225 a', payload: { event: 'learn-more-click' } }\n ],\n [HEALTHCARE_AUTOMATION_STRATEGIES_WEBINAR_MODAL]: [\n { selector: '#input_2', payload: { event: 'submit-click' } }\n ],\n [LUNCH_AND_LEARN_MODAL]: [\n { selector: '#input_2', payload: { event: 'submit-click' } }\n ],\n [MAXIMUM_IMPACT_WEBINAR_MODAL]: [\n { selector: '#input_2', payload: { event: 'submit-click' } }\n ],\n [HEALTHCARE_FUTURE_WEBINAR_MODAL]: [\n { selector: '#input_15', payload: { event: 'register-click' } },\n { selector: '#text_16', payload: { event: 'learn-more-click' } }\n ],\n [AD_FIRST_EXIT_INTENT_MODAL]: [\n { selector: '#input_129', payload: { event: 'send-request-click' } }\n ],\n [AD_SECOND_EXIT_INTENT_MODAL]: [\n { selector: '#input_129', payload: { event: 'send-request-click' } }\n ],\n [AD_BANNER_MODAL]: [\n { selector: '#input_129', payload: { event: 'send-request-click' } }\n ],\n [DEDICATED_SUPPORT_MODAL]: [\n { selector: '#input_122', payload: { event: 'contact-sales-click' } }\n ],\n [FOMO_MODAL]: [\n { selector: '#input_127', payload: { event: 'send-request-click' } }\n ],\n [BLOG_CONTENT_SIDE_BANNER]: [\n { selector: '#input_128', payload: { event: 'contact-now-click' } }\n ],\n [FASTER_SUPPORT_RESPONSE_MODAL]: [\n { selector: '#input_122', payload: { event: 'contact-sales-click' } }\n ],\n [ED_TECH_WEBINAR_MODAL]: [\n { selector: '#input_41', payload: { event: 'register-click' } },\n { selector: '#id_42 a', payload: { event: 'learn-more-click' } }\n ],\n [SSO_PREFILL_MODAL]: [\n { selector: '#input_99', payload: { event: 'contact-sales-click' } },\n { selector: '#text_144 a', payload: { event: 'learn-more-click' } }\n ],\n [ENTERPRISE_CHECKOUT_LIKE_SECTION]: [\n { selector: '#input_138', payload: { event: 'send-request-click' } }\n ],\n [BLOG_BANNER_MODAL]: [\n { selector: '#input_141', payload: { event: 'contact-now-click' } }\n ],\n [SHARE_FOLDER_MODAL]: [\n { selector: '#input_122', payload: { event: 'contact-sales-click' } }\n ],\n [CONTACT_DEDICATED_SUPPORT_MODAL]: [\n { selector: '#input_115', payload: { event: 'contact-now-click' } }\n ],\n [ETT_EDUCATION_GATED_CONTENT_MODAL]: [\n { selector: '#input_2', payload: { event: 'get-insights-now-click' } }\n ],\n [ETT_EDUCATION_EXIT_INTENT_MODAL]: [\n { selector: '#input_2', payload: { event: 'get-insights-now-click' } }\n ],\n [HELP_DEDICATED_SUPPORT_MODAL]: [\n { selector: '#input_115', payload: { event: 'contact-now-click' } }\n ],\n [WHITE_LABELING_MODAL]: [\n { selector: '#input_122', payload: { event: 'contact-sales-click' } }\n ],\n [TEAMS_WHITE_LABELING_MODAL]: [\n { selector: '#input_122', payload: { event: 'contact-sales-click' } }\n ],\n [PROFESSIONAL_SERVICES_MODAL]: [\n { selector: '#input_154', payload: { event: 'apply-now-click' } },\n { selector: '#id_155 a', payload: { event: 'learn-more-click' } }\n ],\n [ZOOM_SUPPORT_MODAL]: [\n { selector: '#input_145', payload: { event: 'apply-now-click' } }\n ],\n [ASSIGN_FORM_MODAL]: [\n { selector: '#input_172', payload: { event: 'apply-now-click' } }\n ],\n [LOCAL_DATA_RESIDENCY_MODAL]: [\n { selector: '#input_176', payload: { event: 'apply-now-click' } }\n ],\n [MOBILE_FOOTER_CONTACT_BANNER]: [\n { selector: '#input_151', payload: { event: 'send-request-click' } }\n ],\n [APPLY_REAL_TIME_SUPPORT_MODAL]: [\n { selector: '#input_177', payload: { event: 'contact-now-click' } }\n ],\n [FQHC_MODAL]: [\n { selector: '#input_2', payload: { event: 'request-now-click' } }\n ],\n [EDUCATION_DISCOUNT_MODAL]: [\n { selector: '#input_122', payload: { event: 'contact-sales-click' } }\n ],\n [EDUCATION_DISCOUNT_MODAL_FERPA_VIOLATION_EXAMPLES]: [\n { seletor: '#input_206', payload: { event: 'contact-sales-click' } }\n ],\n [ENTERPRISE_DATA_CENTERS_MODAL]: [\n { selector: '#input_181', payload: { event: 'contact-sales-click' } },\n { selector: '#text_182', payload: { event: 'learn-more-click' } }\n ],\n [REQUIRE_SSO_MODAL]: [\n { selector: '#input_189', payload: { event: 'apply-now-click' } },\n { selector: '#input_190', payload: { event: 'learn-more-click' } }\n ],\n [SYSTEM_LOGS_MODAL]: [\n { selector: '#input_191', payload: { event: 'contact-now-click' } }\n ],\n [SSO_PREFILL_DETAILED_MODAL]: [\n { selector: '#input_192', payload: { event: 'contact-sales-click' } },\n { selector: '#text_193 a', payload: { event: 'learn-more-click' } }\n ],\n [APPEXCHANGE_MODAL]: [\n { selector: '#input_194', payload: { event: 'contact-now-click' } }\n ],\n [TEAMS_MODAL]: [\n { selector: '#input_196', payload: { event: 'contact-sales-click' } }\n ],\n [HEALTHCARE_TECHNOLOGY_MODAL]: [\n { selector: '#text_16', payload: { event: 'learn-more-click' } },\n { selector: '#input_15', payload: { event: 'register-click' } },\n { selector: '#input_196', payload: { event: 'submit-application-click' } }\n ],\n [BLOG_GATED_CONTENT_MODAL]: [\n { selector: '#input_2', payload: { event: 'submit-click' } }\n ],\n [ENTERPRISE_BEGINNERS_BOOK_MODAL]: [\n { selector: '#input_33', payload: { event: 'download-now-click' } }\n ],\n [ENTERPRISE_CASE_STUDY_MODAL]: [\n { selector: '#input_2', payload: { event: 'get-the-guide-click' } }\n ],\n [SINGLE_COLUMN_DEDICATED_SUPPORT_MODAL]: [\n { selector: '#text_215 a', payload: { event: 'learn-more-click' } },\n { selector: '#input_216', payload: { event: 'apply-now-click' } }\n ],\n [SCHEDULE_ZOOM_MODAL]: [\n { selector: '#input_230', payload: { event: 'contact-now-click' } }\n ],\n [SCHEDULE_ZOOM_MODAL]: [\n { selector: '#input_230', payload: { event: 'contact-now-click' } }\n ],\n [PDF_DOWNLOAD_MODAL]: [\n { selector: '#input_98', payload: { event: 'get-pdf-now-click' } }\n ],\n [SOC2_COMPLIANCE_MODAL]: [\n { selector: '#text_239 a', payload: { event: 'learn-more-click' } },\n { selector: '#input_238', payload: { event: 'contact-sales-click' } }\n ]\n};\n","import { ASSET_IDENTIFIER } from './assetIdentifier';\n\nconst { ADMIN_CONSOLE_DARK_MODAL, ENTERPRISE_TEAMS_MODAL } = ASSET_IDENTIFIER.PRODUCT;\n\nexport const LEAD_FORM_MAP = {\n COMMON: { // with labels and the rest of it will have no label\n LIVE: '230813613795964',\n DEV: '242061587960966',\n AD_FORM_LIVE: '203132649531955',\n AD_FORM_DEV: '242062244074953'\n },\n [ENTERPRISE_TEAMS_MODAL]: {\n LIVE: '233313413335950',\n DEV: '240032774763961'\n },\n [ADMIN_CONSOLE_DARK_MODAL]: {\n LIVE: '240023409519955',\n DEV: '240032556858964'\n }\n};\n","import { ASSET_IDENTIFIER } from './assetIdentifier';\n\nexport const LEAD_FORM_SOURCE_MODIFIERS = {\n ADWORDS: 'adwords'\n};\n\nexport const AUTOMATED_NURTURING_SOURCES = {\n EDUCATION_REPORT_MODAL: 'Education Toolkit Gated Content',\n EDUCATION_BDM_FLOW_MODAL: 'Education BDM Flow Modal'\n};\n\nconst { PRODUCT: { ENTERPRISE_TEAMS_MODAL } } = ASSET_IDENTIFIER;\n\nexport const AB_TEST_MODIFIER = {\n [ENTERPRISE_TEAMS_MODAL]: 'epTeamsModalWording'\n};\n","import {\n arrayOf, number, object, oneOf, shape, string\n} from 'prop-types';\nimport { PRICING_TABLE_SOURCE_PAGES, SEGMENTED_MODAL_TYPES } from './constants';\n\nconst accountType = shape({\n name: oneOf(['GUEST', 'FREE', 'STORAGE', 'PREMIUM', 'BRONZE', 'ECONOMY', 'SILVER', 'OLDPREMIUM', 'PROFESSIONAL', 'GOLD', 'DIAMOND',\n 'PARTNER', 'ENTERPRISE', 'PLATINUM', 'ADMIN', 'SUPPORT', 'INTERN', 'HELPDESK'])\n});\n\nexport const userPropType = shape({\n username: string.isRequired,\n name: string,\n email: string,\n jobTitle: string,\n industry: string,\n company: string,\n account_type: accountType.isRequired,\n language: string\n});\n\nexport const segmentedModalPropType = oneOf([\n SEGMENTED_MODAL_TYPES.GOVERNMENT,\n SEGMENTED_MODAL_TYPES.HEALTHCARE,\n SEGMENTED_MODAL_TYPES.EDUCATION,\n SEGMENTED_MODAL_TYPES.FIELD_SERVICES_MANAGEMENT,\n SEGMENTED_MODAL_TYPES.NONPROFIT\n]);\n\nexport const gaAttributesPropType = shape({\n 'data-ga': string,\n 'data-id': string\n});\n\nconst gaFormTrackingItem = shape({\n selector: string,\n payload: object\n});\n\nexport const planDetailsProps = shape({\n currency: string.isRequired,\n prices: shape({ monthly: number.isRequired }).isRequired,\n onSale: shape({ nonProfit: shape({ monthly: number.isRequired }) }).isRequired\n});\n\nexport const planListPropType = shape({\n BRONZE: planDetailsProps.isRequired,\n SILVER: planDetailsProps.isRequired,\n GOLD: planDetailsProps.isRequired\n});\n\nconst { EDUCATION, NONPROFIT } = PRICING_TABLE_SOURCE_PAGES;\n\nexport const sourcePagePropType = oneOf([EDUCATION, NONPROFIT]);\nexport const sourcePageDefaultProp = EDUCATION;\n\nexport const gaFormTrackingItemsPropType = arrayOf(gaFormTrackingItem);\n","// What is SDR? Sales Development Representative\n// Information of the users that show intent to Jotform Enterprise Product are being added to Hubspot.\n// Our agents (SDR) get in touch with the users that have record on Hubspot.\nexport const SDR_SOURCES = {\n ACCOUNT_BOX_ADMIN_CONSOLE_BUTTON: 'AdminConsole',\n ACCOUNT_BOX_ENTERPRISE_PROMO: 'AccountBoxEnterprisePromotion',\n CONTACT_PAGE_DEDICATED_SUPPORT: 'ContactPageDedicatedSupport',\n ENTERPRISE_GOVERNMENT_MODAL: 'EnterpriseGovernmentModal',\n ENTERPRISE_HEALTHCARE_REPORT_BANNER: 'EnterpriseHealthcareReportBanner',\n FORM_BUILDER_ADD_COLLABORATORS_BANNER: 'AddCollaborators',\n FORM_BUILDER_HELP_MENU: 'FormBuilderHelpMenu',\n FORM_BUILDER_SSO_PREFILL: 'SsoPrefill',\n FORM_PROPERTIES_EDITOR_SSO: 'SsoToggle',\n GENERAL_FAQ_PROF_SERVICES_BANNER: 'GeneralFaqProfessionalServicesBanner',\n INBOX_PROFESSIONAL_SOLUTIONS_BANNER: 'InboxProfessionalSolutionsBanner',\n MILESTONE_HUBSPOT_MODAL: 'MilestoneHubspotModal',\n MY_ACCOUNT_CUSTOM_DOMAIN_API_BANNER: 'MyAccountCustomDomainApiBanner',\n MY_ACCOUNT_DEDICATED_SERVER: 'DedicatedServer',\n MY_ACCOUNT_TEAMS_SETTINGS_CUSTOM_URL: 'TeamCustomURL',\n MY_ACCOUNT_SESSIONS_ACCOUNT_SHARING_BANNER: 'SessionsAccountSharingBanner',\n MY_ACCOUNT_SESSIONS_ACCOUNT_SHARING_BANNER_CS_CLICK: 'SessionsAccountSharingBannerCsClick',\n MY_ACCOUNT_WHITE_LABEL: 'WhiteLabel',\n APPROVAL_WHITE_LABEL: 'ApprovalWhiteLabel',\n MY_FORMS_AU_DATA_RESIDENCY_MODAL: 'MyFormsAuDataResidencyModal',\n MY_FORMS_HK_DATA_RESIDENCY_MODAL: 'MyFormsHkDataResidencyModal',\n MY_FORMS_SG_DATA_RESIDENCY_MODAL: 'MyFormsSgDataResidencyModal',\n MY_FORMS_SHARE_FOLDER: 'ShareFolder',\n PROFESSIONAL_SERVICES_CONTACT_BANNER: 'ProfessionalServicesContactBanner',\n SHARE_PANEL_ASSIGN_TO_EVERYONE: 'AssignToggle',\n SHARE_PANEL_SETTINGS_SSO_BANNER: 'SsoBanner',\n SHARE_PANEL_SHARE_LINK: 'CustomDomain',\n TEAMS_ADD_NEW_USER: 'TeamInvite',\n USER_GUIDE_PROF_SERVICES_BANNER: 'UserGuideProfessionalServicesBanner',\n WORKFLOW_GROUP_APPROVAL_BANNER: 'WorkflowGroupApprovalBanner',\n ENTERPRISE_BEGINNERS_BOOK_MODAL: 'EnterpriseBookDownload',\n SUPPORT_MENU: 'HeaderSupportMenu',\n PAGE_VIEW_PRICING_ENTERPRISE: 'pageview_pricing/enterprise',\n ENTERPRISE_CASE_STUDY_DOWNLOAD: 'EnterpriseCaseStudyDownload'\n};\n","/* eslint-disable max-len */\nexport const ALL_TEXTS = {\n DASHBOARD: 'DASHBOARD',\n ADD_AND_MANAGE_USERS: 'ADD & MANAGE USERS',\n ADMIN_CONSOLE_CAPITALIZED: 'ADMIN CONSOLE',\n ENTERPRISE_ADMIN_CONSOLE: 'Enterprise Admin Console',\n ENTERPRISE_ADMIN_DASHBOARD: 'Jotform Enterprise Admin Dashboard',\n ENHANCE_COLLABORATION: 'Enhance Collaboration',\n CLOSE_MODAL: 'Close modal',\n CLOSE: 'Close',\n ENTERPRISE: 'ENTERPRISE',\n COLLABORATOR_AVATARS: 'Collaborator avatars',\n ENTERPRISE_CAPITALIZED: 'Enterprise',\n CREATE_USER_WITH_CUSTOM_PERMISSONS: 'Create User or Admin accounts with custom permission settings to use Jotform with your whole team.',\n CREATE_USER_WITH_CUSTOM_PERMISSONS_ALT: '[1[Upgrade to Jotform Enterprise]] and create User or Admin accounts with custom permission settings to use Jotform with your whole team.',\n MANAGE_YOUR_COMPANY_FROM_ONE_LOC: 'Manage your company from one central location',\n UPGRADE_TO_ENTERPRISE_TO_USE_JOTFORM_WITH_YOUR_TEAM: 'Upgrade to Enterprise to use Jotform with your team',\n CONTROL_WHO_CAN_ACCESS_YOUR_FORMS: 'Control who can access your forms and submissions with Jotform Enterprise’s customizable permission settings. Add members of your team as Users or Admins to work together while you stay in full control of your data.',\n CONTACT_SALES: 'Contact Sales',\n UPGRADE: 'Upgrade',\n LEARN_MORE: 'Learn More',\n APPLY_NOW: 'Apply Now',\n DISMISS: 'Dismiss',\n LOADING: 'Loading...',\n USE_JOTFORM_FOR_YOUR_ENTIRE_ORG: 'Use Jotform for your entire organization',\n ASSIGN_AT_ONCE: 'Upgrade to Jotform Enterprise today to assign forms to your entire organization at once and',\n COLLABORATE_WITH_COWORKERS: 'Collaborate with your coworkers',\n CONTROL_ACCESS_TO: 'Control access to forms and submissions',\n MANAGE_ALL_OF_YOUR_FORMS: 'Manage all of your forms and data from the Admin Console',\n UPGRADE_TO_JOTFORM_ENTERPRISE_TO_MANAGE_USER_DATA: 'Upgrade to Jotform Enterprise to manage user data across your organization',\n QUICKLY_ACCESS_USER_HISTORY_AND_PROFILE: 'Quickly access user history and profile configurations to manage forms and form data overall.',\n MANAGE_USERS_AND_THEIR_ACCESS: 'Manage Users and Their Access',\n REVIEW_ACTIVITY_LOG: 'Review Activity Log',\n KEEP_TRACK_OF_USER_ACTIONS: 'Keep track of user actions with the activity log. See who has logged in and when, as well as who has created an app, form, and more.',\n TAKE_YOUR_BUSINESS_COLLAB_TO_NEXT_STEP: 'Take your business’s collaboration to the next level. Upgrade to Jotform Enterprise today to securely manage data and users from one place. Users can give each other access to forms and form data, while admins manage all forms, data, and responses.',\n NEXT: 'Next',\n PREVIOUS: 'Previous',\n ENTERPRISE_ROCKET: 'Jotform Enterprise rocket',\n // slider items\n VIEW_ALL_FORM_STATS: 'View all form stats from your dashboard. Jotform Enterprise administrators can seamlessly review stats for submissions, forms, and views. You can even filter your data by time range — daily, weekly, and monthly — or choose a specific time frame to pinpoint the exact data you’re searching for.',\n SECURELY_MANAGE_DATA: 'Securely manage data and users from one central account. All your Enterprise users are listed, ensuring quick access to user history and profile configuration. Users can give each other access to their forms and form data, while admins will always have access to shared forms and data.',\n MANAGE_ALL_AVAILABLE_FORMS: 'Manage all available forms on your Enterprise server from a single page. Select individuals or multiple forms to change form ownership or delete forms. You can also easily export a list of your forms into an Excel or CSV file in just one click.',\n KEEP_TRACK_OF_USER: 'Keep track of and search for a specific user’s form responses across your entire organization with Jotform Enterprise. Easily create reports of an individual’s submissions with options to review every submission or delete them all at once.',\n USE_ACTIVITY_LOG: 'Use the Activity Log to track new forms, form modifications and deletions, data purges, logins, and submission edits and deletions. You can also create a consolidated service activity log and export it as an Excel or CSV file.',\n GET_A_PROFFESSIONAL_CUSTOM_APP: 'Get a professional, custom branded app for your team. Submit your request from the Admin Console, and we’ll build an app just for you. From the Mobile App tab, you can also track users and devices logged, as well as invite your users to download your app.',\n NO_MATTER_DEDICATED_SUPPORT: 'No matter what you’re using Jotform Enterprise for, we’ve got your back. Our support team works tirelessly to respond to your concerns quickly. From this tab, you can create support tickets and track all support tickets sent from your account.',\n CUSTOMIZE_LOOK_AND_FEEL: 'Customize the look and feel of your Admin Console and forms without any coding or design knowledge. Upload your company logo, create custom themes, choose a favicon, and add your company’s name and domain address. Additionally, you can integrate your Jotform Enterprise account with an identity provider platform to enable SSO and IP address restrictions.',\n // enterprise billing banner\n ARE_YOU_LOOKING_FOR_ENTERPRISE_FEATURES: 'Are you looking for [1[enterprise level]] features?',\n GET_UNLIMITED_ACCESS_TO_THE_TOOLS_YOU_NEED: 'Get unlimited access to the tools you need to improve your online forms and data collection.',\n CHECKOUT_JOTFORM_ENTERPRISE: 'Check out Jotform Enterprise',\n // enterprise white labeling banner\n FULLY_CUSTOMIZE: 'Fully Customize with Enterprise',\n FULLY_INCORPORATE: 'Fully incorporate your brand into Jotform. Enjoy a personalized look without having to build your own product from scratch.',\n CUSTOMIZE_SSO: 'Customize our platform to match with your brand. Get custom domains and form URLs as well as single sign-on (SSO).',\n // enterprise goverment modal\n GOVERNMENT_SOLUTION_TITLE: 'Government Enterprise Solutions',\n GOVERNMENT_SOLUTION_SUB_TITLE: 'MORE POWER MORE SUPPORT',\n GOVERNMENT_SOC: 'SOC2, FERPA, HIPAA, PCI',\n GOVERNMENT_MULTIUSER: 'Multiuser Environment',\n GOVERNMENT_SSO: 'Single Sign On (SSO)',\n GOVERNMENT_ADMIN_DASHBOARD: 'Admin Dashboard',\n GOVERNMENT_UNLIMITED: 'Unlimited everything',\n // account box enterprise property modal\n GET_RID_OF_LIMITS: 'Get rid off all your limits!',\n CONGRATULATIONS: 'Congratulations!',\n EXCLUSIVE_ENTERPRISE_FEATURES: 'Start using all exclusive Enterprise features with your team.',\n YOU_MAY_CONSIDER_UPGRADING: 'You have received more than [1[{usagePhrase}]] so far! You may consider upgrading to [2[Jotform Enterprise]] and get rid of all your limits.',\n DEDICATED_SUPPORT_SUB_TITLE: 'Jotform Enterprise',\n DEDICATED_SUPPORT: 'Need Dedicated Support?',\n DEDICATED_SUPPORT_CONTENT: 'Get a dedicated support team with Jotform Enterprise.',\n\n JOTFORM_ENTERPRISE: 'Jotform Enterprise',\n JOTFORM_ENTERPRISE_CAPITALIZED: 'JOTFORM ENTERPRISE',\n COMPLETE_CUSTOMIZATION: 'Complete Customization with Enterprise',\n COMPLETE_CUSTOMIZATION_CONTENT: 'Create a seamless customer experience by white labeling your forms to showcase your company. Without coding, you can fully customize forms to match your branding, create custom form URLs, and even use your custom domain via Jotform Enterprise.',\n COMPLETE_CUSTOMIZATION_COMPANY_SETTINGS: 'Jotform Enterprise company settings',\n\n ACCESS_CONTROL: 'Stay in Full Control of Your Data',\n ACCESS_CONTROL_CONTENT: 'With a multiuser Jotform Enterprise plan, you can grant form access to multiple users. You’ll have full control over permission settings — add or delete users, filter your user list, send notifications, and review user activity for easy user management.',\n ACCESS_CONTROL_USERS_DASHBOARD: 'Jotform Enterprise user management dashboard',\n\n // webhook integration\n WEBHOOK_TITLE: 'White label your Jotform experience',\n WEBHOOK_CONTENT: 'Add your branding to all aspects of Jotform with Enterprise',\n\n // non profit lightbox\n FREE_WEBINAR_NONPROFIT_TITLE: 'Free Webinar for Nonprofits',\n FREE_WEBINAR_NONPROFIT_DATE: 'Thursday, February 9, 2023/11am PST',\n FREE_WEBINAR_NONPROFIT_DESCRIPTION: 'Increase Your Nonprofit’s Impact with the Right Technology',\n\n WEBINAR_NONPROFIT_DETAIL_TITLE: 'You’ll find out how to:',\n WEBINAR_NONPROFIT_DETAIL_IMPACT: 'Demonstrate impact',\n WEBINAR_NONPROFIT_DETAIL_COST: 'Control costs',\n WEBINAR_NONPROFIT_DETAIL_TRANSPARENCY: 'Improve transparency',\n WEBINAR_NONPROFIT_DETAIL_EXPLANATION: 'Join us to learn more and get additional valuable resources.',\n WEBINAR_NONPROFIT_FORM_TITLE: 'Please fill the related fields and get registered.',\n\n WEBINAR_NONPROFIT_SAVE_CTA: 'Save your seat!',\n WEBINAR_NONPROFIT_NOT_INTERESTED_CTA: 'Not interested',\n\n GET_CUSTOM_DOMAIN: '[1[Get custom domain with]] [2[Jotform Enterprise]]',\n\n ENTERPRISE_DO_YOU_WANT_DOMAIN_NAME: 'Do you want to use your own domain name?',\n WANT_TO_USE_YOUR_OWN_DOMAIN: 'Want to use your own domain name?',\n ENTERPRISE_TRY_JOTFORM: 'Try Jotform Enterprise!',\n APPLY_FOR_ENTERPRISE: 'Apply for Jotform Enterprise',\n CONTACT_SALES_REPRESENTATIVE: 'Contact an Enterprise sales representative',\n\n APPLY_FOR_DEDICATED_ZOOM_SUPPORT: 'Apply for Jotform Enterprise to schedule Zoom calls with a dedicated support team.',\n LEARN_MORE_ABOUT_JOTFORM_ENTERPRISE: 'Learn more about Jotform Enterprise',\n CONTACT_ENTERPRISE_SALES_REPRESENTATIVE: 'Contact an Enterprise sales representative',\n\n BOOST_COLLABORATION_WITH_ENTERPRISE: 'Boost collaboration with Enterprise',\n ADD_MULTIPLE_USERS: 'Add multiple users to work together with your team',\n\n HEALTHCARE_REPORT_TITLE: 'Get the latest insights on 2024 healthcare trends',\n HEALTHCARE_REPORT_GET_INSIGHTS: 'Get insights now!',\n HEALTHCARE_REPORT_DISMISS: 'Dismiss this banner',\n\n HEALTHCARE_REPORT_MODAL_MOBILE_TITLE: 'Get the latest insights on [1[2023]] healthcare trends.',\n HEALTHCARE_REPORT_MODAL_TITLE: 'Get the latest insights.',\n HEALTHCARE_REPORT_MODAL_CONTENT: 'Fill the form and get 2024 Healthcare Industry Trends report via email.',\n\n NEED_PROFESSIONAL_SOLUTIONS: 'Need enterprise level solutions?',\n NEED_PROFESSIONAL_SOLUTIONS_CONTENT: 'Try Jotform Enterprise with your team!',\n\n UPGRADE_TO_JOTFORM_ENTERPRISE_AND_START_MANAGING: 'Upgrade to [1[Jotform Enterprise]] and start managing your company from one central location.',\n\n CUSTOM_DOMAIN_API: 'Make your API url [1[your-domain.com/API]] or [2[subdomain.jotform.com/API]] instead of api.jotform.com with [3[Jotform Enterprise]].',\n\n ENTERPRISE_LEVEL_ANALYTICS_TITLE: 'Manage your company from one central location',\n ENTERPRISE_LEVEL_ANALYTICS_CONTENT: 'Manage user access, forms, and audit logs from a powerful Admin Console. Analyze data to reveal important insights.',\n ENTERPRISE_LEVEL_ANALYTICS_GRAPH: 'Jotform Enterprise line graph',\n\n WHITE_LABEL_TITLE: 'Want more customization?',\n WHITE_LABEL_CONTENT: 'White label your experience with Jotform Enterprise. Add your branding, create custom URLs, and use your own domain.',\n WHITE_LABEL_LOGO_PLACEMENT_ANIMATION: 'Logo placement animation',\n\n JOTFORM_GOVERNMENT_TITLE: 'JOTFORM GOVERNMENT',\n JOTFORM_ENTERPRISE_TITLE: 'JOTFORM ENTERPRISE',\n AUSTRALIAN_DATA_RESIDENCY_MODAL_TITLE: 'Need to store data in [1[Australia]]? Contact our [1[Enterprise]] team to start complying with regulations.',\n HONG_KONG_DATA_RESIDENCY_MODAL_TITLE: 'Unlock advanced data security in Hong Kong',\n HONG_KONG_DATA_RESIDENCY_MODAL_DESCRIPTION: 'Explore enterprise solutions with enhanced security and compliance features tailored for Hong Kong-based organizations.',\n SINGAPORE_DATA_RESIDENCY_MODAL_TITLE: 'Unlock advanced data security in Singapore',\n SINGAPORE_DATA_RESIDENCY_MODAL_DESCRIPTION: 'Explore enterprise solutions with enhanced security and compliance features tailored for Singapore-based organizations.',\n\n LUNCH_LEARN_TITLE: 'LUNCH & LEARN SERIES',\n\n LUNCH_LEARN_CONTENT_SESSION_1: '[1[Next Session:]] How to white label',\n LUNCH_LEARN_CONTENT_SESSION_2: '[1[Next Session:]] How to manage your server as a server admin',\n LUNCH_LEARN_CONTENT_SESSION_3: '[1[Next Session:]] How to manage Teams',\n LUNCH_LEARN_CONTENT_SESSION_4: '[1[Next Session:]] How to use Jotform Sign',\n LUNCH_LEARN_CONTENT_SESSION_5: '[1[Next Session:]] How to configure single sign-on (SSO) and Prefill',\n LUNCH_LEARN_CONTENT_SESSION_6: '[1[Next Session:]] Intro to app building',\n\n LUNCH_LEARN_CLOSE: 'Close Lunch and Learn Banner',\n LUNCH_LEARN_SAVE_YOUR_SEAT: 'Save your seat!',\n\n STORE_DATA_IN_AUSTRALIA_CONTENT: 'Store your data only in Australia (Sydney) with [1[Jotform Enterprise]].',\n\n LUNCH_LEARN_MODAL_SUP_TITLE: 'COMING SOON',\n LUNCH_LEARN_MODAL_TITLE: 'Join Enterprise Lunch & Learn sessions',\n LUNCH_LEARN_MODAL_CONTENT: 'Join our customer success team to learn about forms, tables, approvals, and report basics; get guidance for server management and SSO configuration; or level up with conditional logic, prefill, payments, and more.',\n LUNCH_LEARN_MODAL_SAVE_SPOT: 'Save Your Spot!',\n LUNCH_LEARN_MODAL_LEARN_DETAILS: 'See details',\n LIVE: 'LIVE',\n JOIN_NOW: 'Join now!',\n NEVER_SHOW_THIS_CONTENT: 'Never show this content again.',\n\n IP_RESTRICTION_TITLE: 'Go pro with Jotform Enterprise',\n IP_RESTRICTION_CONTENT: 'Need to limit access? Switch to Jotform Enterprise for an extra layer of security.',\n IP_RESTRICTION_DISCOVER: 'Discover More',\n IP_WORLD: 'World map with IP pointer',\n\n COST_CUTTING_WEBINAR_BADGE: 'FREE',\n COST_CUTTING_WEBINAR_TITLE: 'Join our webinar',\n COST_CUTTING_WEBINAR_DATE: 'Tuesday, March 21, at 11 a.m. PT',\n COST_CUTTING_WEBINAR_DATE_SHORT: 'March 21, at 11 a.m. PT',\n COST_CUTTING_WEBINAR_EXPLANATION: '3 ways to cut costs from business processes',\n FREE_WEBINAR_BADGE: 'FREE WEBINAR',\n SAVE_SPOT_CTA: 'Save your spot!',\n COST_CUTTING_WEBINAR_FILL_MESSAGE: 'Please fill the related fields and get registered.',\n\n ADMIN_CONSOLE_DARK_MODAL_DESCRIPTION: 'Contact an [1[Enterprise]] sales representative to start managing your organization\\'s data from one central location',\n ADMIN_CONSOLE_DARK_MODAL_DESCRIPTION_V2: 'Get a free consultation for [1[Jotform Enterprise]] and start managing your company from one [2[central location]]',\n SHORT_LEAD_FORM_TITLE: 'JotForm Enterprise Sales Contact Request- Content Team - Short version',\n\n SAVE: 'save',\n DISCOUNT_PERCENTAGE: '[1[30]] [2[%]]',\n APPLY_ENTERPRISE_DISCOUNT: 'Apply for your Enterprise {discount_type} discount',\n\n GROUP_APPROVAL_BANNER_CONTENT: 'Upgrade to Jotform Enterprise to add more approvers',\n\n FIELD_SERVICE_WEBINAR_BADGE: 'FREE WEBINAR',\n FIELD_SERVICE_WEBINAR_EXPLANATION: '3 steps to safer, more sustainable field service operations',\n FIELD_SERVICE_WEBINAR_DATE: 'Tuesday, April 25, at 11 a.m. PT',\n\n HR_WEBINAR_BADGE: 'FREE HR WEBINAR',\n HR_WEBINAR_EXPLANATION: 'Less paperwork. More empowerment. HR automation that works.',\n HR_WEBINAR_DATE: 'Thursday, February 8, at 11 a.m. PT',\n\n HEALTHCARE_TECHNOLOGY_BADGE: 'FREE NON-PROFIT WEBINAR',\n HEALTHCARE_TECHNOLOGY_EXPLANATION: 'Surprising ways to delight donors with forms',\n HEALTHCARE_TECHNOLOGY_DATE: 'Thursday, March 21 at 11 a.m. PT',\n\n BOOK_CONSULTATION: 'Book Consultation',\n YOUR_INFO: 'YOUR INFO',\n CHOOSE_TIME: 'CHOOSE TIME',\n\n USERS_SECTION_TITLE: 'Contact an [1[Enterprise]] sales representative to add multiple users and manage user access and activity across your entire organization with powerful administrative features.',\n USERS_HEADER_ALT: 'Jotform Enterprise User Preview',\n USERS_FOOTER_ALT: 'Jotform Enterprise Admin and Regular User Preview',\n ADMIN: 'Admin',\n USER: 'User',\n\n PRIVACY_CONCERN_WEBINAR_BADGE: 'FREE WEBINAR',\n PRIVACY_CONCERN_WEBINAR_EXPLANATION: 'How to manage customer data in an era of privacy concerns',\n PRIVACY_CONCERN_WEBINAR_DATE: 'Thursday, May 18, at 11 a.m. PT',\n\n GOVERNMENT_SOLUTION_TAILORED_TITLE: 'Get tailored solutions for your government agency',\n GOVERNMENT_LIST1: 'SOC 2, FERPA, HIPAA, PCI',\n GOVERNMENT_LIST1_WITHOUT_SOC2: 'FERPA, HIPAA, PCI',\n GOVERNMENT_LIST2: 'Multiuser environment',\n GOVERNMENT_LIST3: 'Single Sign-On (SSO)',\n GOVERNMENT_LIST4: 'Admin dashboard',\n GOVERNMENT_LIST5: 'Unlimited everything',\n\n GET_30_PERCENT_ED_TECH: 'Get [1[30% off]] powerful EdTech features with Jotform Enterprise',\n MULTIPLE_USERS: 'Multiple users',\n\n EARNED_BADGES_TITLE: 'Jotform received [1[500+]] software review awards',\n READ_THE_REPORT: 'Read the Report',\n\n EXPANDABLE_ADMIN_CONSOLE_CONTENT: 'Apply to [1[Jotform Enterprise]] to start managing your company from one central location',\n\n JOTFORM_TEAMS_MODAL_CONTENT: 'Contact an Enterprise sales representative to start using Jotform Enterprise with your whole team',\n JOTFORM_TEAMS_MODAL_CONTENT_ALT: 'Get your whole team on board with Jotform Enterprise',\n ENTERPRISE_ONLY: 'ENTERPRISE ONLY',\n JOTFORM_TEAMS_MODAL_CONTENT_ALT_CLEAR: 'Upgrade to Enterprise to get your team on board',\n\n TEAM_LIMITATION_MODAL_PRE_CONTENT: 'You have reached your Team creation limits.',\n TEAM_LIMITATION_MODAL_CONTENT: 'Contact an Enterprise sales representative to create unlimited Teams for your organization.',\n\n APPLY_FOR_ENTERPRISE_ORGANIZATION: 'Contact an Enterprise sales representative to start using Jotform with your whole organization',\n CONTACT_FOR_TEAM_ON_BOARD: 'Contact an Enterprise sales representative to bring your team on board',\n\n PRICING_TABLE_MODAL_CONTENT: 'Send request to contact with Jotform representative',\n\n UNLIMITED_USAGE: 'Unlimited Usage',\n MULTIUSER_ENVIRONMENT: 'Multiuser Environment',\n SLA: 'Service Level Agreements (SLA)',\n HIPAA_COMPLIANCE_AVAILABLE: 'HIPAA Compliance Features Available',\n CUSTOM_DOMAIN: 'Custom Domain',\n PRIORITY_REAL_TIME_SUPPORT: 'Priority Real-Time Support',\n LOCAL_DATA_RESIDENCY_OPTION: 'Local Data Residency Option',\n SSO_INTEGRATIONS: 'Single Sign-On (SSO) Integrations',\n\n DISCOUNT: 'DISCOUNT',\n GET_DISCOUNT: 'GET DISCOUNT',\n\n APPLY_BRONZE_EDUCATION_DISCOUNT: 'Apply for Bronze plan education discount and save 50%',\n APPLY_SILVER_EDUCATION_DISCOUNT: 'Apply for Silver plan education discount and save 50%',\n APPLY_GOLD_EDUCATION_DISCOUNT: 'Apply for Gold plan education discount and save 50%',\n ENTERPRISE_DISCOUNT_EDUCATION_DESCRIPTION: 'Apply for Jotform Enterprise and get a 30% education discount',\n\n APPLY_BRONZE_NONPROFIT_DISCOUNT: 'Apply for Bronze plan nonprofit discount and save 50%',\n APPLY_SILVER_NONPROFIT_DISCOUNT: 'Apply for Silver plan nonprofit discount and save 50%',\n APPLY_GOLD_NONPROFIT_DISCOUNT: 'Apply for Gold plan nonprofit discount and save 50%',\n ENTERPRISE_DISCOUNT_NONPROFIT_DESCRIPTION: 'Apply for Jotform Enterprise and get a 30% nonprofit discount',\n\n BRONZE_PLAN: 'Bronze',\n SILVER_PLAN: 'Silver',\n GOLD_PLAN: 'Gold',\n\n WEBINAR_BADGE: 'FREE WEBINAR',\n\n AUTOMATE_ORGANIZATION_PROCESS: 'Automate your organization’s processes',\n APPLY_FOR_POWERFUL_AUTOMATION: 'Apply for Jotform Enterprise to get access to powerful automation features and a multiuser environment.',\n GET_YOUR_TEAM_ONBOARD: 'GET YOUR TEAM ON BOARD',\n GET_YOUR_TEAM_EXPLANATION: 'Apply to Jotform Enterprise and maximize your teamwork potential with Enterprise’s multiuser capabilities.',\n GET_YOUR_TEAM_EXPLANATION_V2: 'Maximize your teamwork with multiuser features from Jotform Enterprise.',\n\n HEALTHCARE_WEBINAR_PROMOTION_MODAL_DESCRIPTION: 'Healthcare automation strategies for streamlined operations',\n HEALTHCARE_WEBINAR_PROMOTION_DATE: 'Thursday, July 20, at 11 a.m. PT',\n\n EDUCATION_REPORT_DOWNLOAD_TITLE: 'Fill out the form and get the educator’s technology toolkit via email',\n EDUCATION_REPORT_TITLE: 'Get the latest insights.',\n EDUCATION_REPORT_EXPLANATION: 'Fill out the form and get the educator’s technology toolkit via email.',\n\n LUNCH_LEARN: 'LUNCH & LEARN',\n LUNCH_LEARN_DESCRIPTION: 'Save your seat for upcoming Lunch & Learn sessions',\n\n ENTERPRISE_SECURITY_ITEM_SSO: 'Enable Single Sign-On.',\n ENTERPRISE_SECURITY_ITEM_SPECIFIED_IP: 'Allow access only to a specified IP.',\n ENTERPRISE_SECURITY_ITEM_AUTOMATIC_LOGOUT: 'Activate automatic logout.',\n\n SEGMENTED_MODAL_VIRGIN_ISLAND_ALT: 'Virgin Island Logo',\n SEGMENTED_MODAL_STAFFORDSHIRE_POLICE_ALT: 'Staffordshire Police Logo',\n SEGMENTED_MODAL_COUNTY_OF_MARIN_ALT: 'County of Marin Logo',\n SEGMENTED_MODAL_SAN_ANTONIO_ALT: 'San Antonio Logo',\n SEGMENTED_MODAL_BRUSSELS_ALT: 'Brussels Logo',\n SEGMENTED_MODAL_BERKELEY_ALT: 'Berkeley Logo',\n\n MAXIMUM_IMPACT_WEBINAR_DESCRIPTION: 'Maximum Impact: 5 ways to automate year-end giving',\n MAXIMUM_IMPACT_WEBINAR_DATE: 'Thursday, August 24, at 11 a.m. PT',\n\n HEALTHCARE_FUTURE_WEBINAR_DESCRIPTION: 'Powering healthcare’s future with form automation',\n HEALTHCARE_FUTURE_WEBINAR_DATE: 'Thursday, April 25, at 11 a.m. PT',\n\n BEFORE_YOU_GO: 'BEFORE YOU GO',\n ADV_TITLE_1: 'Request a free demo to learn more about the advanced features of Jotform Enterprise',\n\n ADV_BANNER_TITLE: 'Don\\'t miss your chance to improve your business operations with Jotform Enterprise!',\n ADV_BANNER_DESCRIPTION: 'Get a free demo in which you will be told the Enterprise solutions that will benefit your business.',\n REQUEST_A_DEMO: 'Request a Demo',\n NOT_NOW: 'Not Now',\n\n FOMO_MODAL_BADGE: 'ACT FAST & SAVE',\n FOMO_TITLE: 'Jotform Enterprise Price Adjustment',\n FOMO_DATE: 'Act before October 1',\n FOMO_GREETING: 'On October 1st, Jotform Enterprise will have a price adjustment.Don’t miss your chance to save and lock in our current pricing.',\n FOMO_CONTENT: 'Contact the Enterprise Sales team today to sign up before October 1.',\n FOMO_THANK_YOU: 'Thank You',\n FOMO_THANK_YOU_SUB_TITLE: 'Our sales representative will get in touch with you shortly.',\n\n FORMS: 'Forms',\n MONTHLY_SUBMISSION: 'Monthly Submissions',\n SIGNED_DOCUMENTS: 'Signed Documents',\n SUBMISSION_STORAGE: 'Submission Storage',\n PAYMENT_SUBMISSIONS: 'Payment Submissions',\n API_AND_MORE: 'API [1[and more...]] ',\n MULTIUSER_PLATFORM: 'Multiuser Platform',\n MULTIPLE_TEAMS_AND_USERS: 'Multiple Teams and Users',\n DEDICATED_SUPPORT_LIST: 'Dedicated Support',\n USER_MANAGEMENT: 'User Management',\n USER_ACCESS_CONTROL: 'User Access Control',\n SINGLE_SIGN_ON: 'Single Sign-On',\n SINGLE_SIGN_ON_EXAMPLE: 'Microsoft, Google, Okta & more...',\n SLA_SHORT: 'SLA',\n SLA_EXPLANATION: 'Service Level Agreements',\n DATA_RESIDENCY: 'Data Residency',\n LOCAL_RESIDENCY: 'Local Residency & Dedicated Server',\n PROFESSIONAL_SERVICES: 'Professional Services',\n FORM_AND_WORKFLOW_SERVICES: 'Form & Workflow Building Services',\n HIPAA_COMPLIANCE_AVAILABLE_SHORT: 'HIPAA Compliance Features Available',\n CUSTOM_BRANDING_DOMAIN: 'Custom Branding & Domain',\n SHOW_ALL: 'Show all',\n\n BLOG_CONTENT_SPEED_UP_BANNER_TITLE: 'Speed up your workflows and improve efficiency with Jotform Enterprise',\n BLOG_CONTENT_SPEED_UP_BANNER_DIVIDER: 'OR FOR ADVANCED SOLUTIONS',\n BLOG_CONTENT_BOOST_BANNER_TITLE: 'Ready to boost your company’s productivity?',\n BLOG_CONTENT_SIDE_BANNER_TITLE: 'Need Jotform for your organization?',\n BLOG_CONTENT_SIDE_BANNER_DESCRIPTION: 'Contact us to book a demo and learn more about Enterprise-level features.',\n\n BLOG_CONTENT_BANNER_SIGN_UP_CTA: 'Sign Up',\n BLOG_CONTENT_BANNER_CUSTOM_QUOTE_CTA: 'Get Custom Quote',\n\n DEDICATED_SUPPORT_DESC: 'Apply to Jotform Enterprise to get access to a dedicated support team',\n DEDICATED_SUPPORT_DESC_ALT: 'Jotform Enterprise offers [1[dedicated support, Zoom calls,]] professional services, and more',\n\n FASTER_SUPPORT_RESP_BANNER_DESC: 'Get faster responses from a dedicated support team with Jotform Enterprise',\n PRIORITIZE_QUESTION: 'Turn On Faster Responses',\n\n FASTER_SUPPORT_RESP_MODAL_DESC: 'Apply for Enterprise to get faster responses from a dedicated support team',\n\n CONTACT_FOR_DEDICATED_SUPPORT_TEAM: 'Contact an Enterprise sales [1[representative to get access to a]] dedicated support team',\n\n CONTACT_ENTERPRISE: 'Contact Enterprise',\n SEE_PLAN_DETAILS: 'See plan details',\n CUSTOM_PRICING: 'Custom Pricing',\n USER_MANAGEMENT_AND_ACCESS_CONTROL: 'User Management & Access Control',\n LOCAL_DATA_RESIDENCY: 'Local Data Residency',\n CUSTOM_BRANDING: 'Custom Branding',\n ENTERPRISE_CONTACT_FORM: 'Enterprise Contact Form',\n EDUCATION_AND_NONPROFIT_DISCOUNT: '30% Off for Educators & Nonprofits',\n EDUCATION_AND_NONPROFIT_DISCOUNT_EXPLANATION: 'Request a quote to apply for a discount',\n TRUSTED_PLUS_TEXT: 'Trusted by 100+',\n LEADING_COMPANIES: 'Leading Companies',\n\n ED_TECH_WEBINAR_DESCRIPTION: 'EdTech tips to speed up administration and slash costs',\n ED_TECH_WEBINAR_DATE: 'Thursday, September 28, at 11 a.m. PT',\n\n SURE_TO_GO_BACK: 'Are you sure you want to go back to the pricing page?',\n GO_TO_PRICING: 'Go to Pricing',\n STAY: 'Stay',\n REQUEST_RECEIVED: 'Request received',\n THANKS_FOR_GETTING_TOUCH: 'Thanks for getting in touch. Our sales team will respond to you shortly.',\n\n BLOG_BANNER_MODAL_TITLE: 'Contact us to book a demo & learn more about Enterprise-level features',\n\n GET_HANDS_ON_PROFESSIONAL_SERVICES: 'Get hands-on help from Jotform Enterprise Professional Services',\n GET_HANDS_ON_PROFESSIONAL_SERVICES_DESCRIPTION: 'Fast-track onboarding, implementation, and more with a team committed to your success.',\n GET_A_QUOTE: 'Get a Quote',\n SESSIONS_BANNER_TEXT: '[1[Add multiple users to your account with Jotform Enterprise!]] You can add or delete users, review user activity.',\n\n SSO_ACCESS_TITLE: 'Access forms using Single Sign-On (SSO)',\n SSO_ACCESS_DESCRIPTION: 'Use a single set of login credentials to access and manage your forms with Jotform Enterprise.',\n\n SSO_PREFILL_TITLE: 'Single Sign-On Prefill',\n SSO_PREFILL_DESCRIPTION: 'Jotform Enterprise offers single sign-on configuration. With this configuration you can pre-populate your form fields with data from SSO provider.',\n\n APPLY_ENTERPRISE_FOR_SSO_PREFILL: 'Apply for Enterprise to start using Single Sign-On (SSO) prefill',\n CONTACT_ENTERPRISE_SALES_SSO_PREFILL: 'Contact an Enterprise sales representative to enable Single Sign-On (SSO) Prefill',\n\n WITHOUT_CODING_FULLY_CUSTOMIZE_JOTFORM: 'Fully customize Jotform to match your branding without any coding. Enjoy custom domains and form URLs as well as single sign-on (SSO).',\n WANT_TO_CUSTOMIZE_WORKFLOW: 'Want to customize workflow pages with your company colors and logo?',\n\n NHS_TITLE: 'Elevate Data Security, Elevate Trust',\n NHS_DESCRIPTION: 'Unlock tailored enterprise solutions for your trust, backed by top-tier security compliance, all within UK borders.',\n SCHEDULE_MEETING: 'Schedule a Meeting',\n\n SCHEDULE: 'Schedule',\n HEY_THERE: 'Hi there,',\n EXCLUSIVE_OFFER_FOR_YOU: 'Exclusive offer for you!',\n CHOOSE_MEETING_TIME_EDUCATION: 'Choose a 10-minute time slot to chat with me. I\\'d love to help you get the most out of Jotform Enterprise\\'s EdTech features and share my experience.',\n CONTACT_WITH_ME_UNLOCK_EDUCATION: 'Contact me to unlock a 30% discount on our Enterprise plan tailored for the education industry. Let’s discuss how our EdTech features can supercharge your organization.',\n BEST: 'Best,',\n AUSTIN_FOLEY: 'Austin Foley',\n EDUCATION_VERTICAL_SPECIALIST: 'Education Vertical Specialist',\n CONTACT_NOW: 'Contact Now',\n\n APPLY_FULLY_BRANDED_EXPERIENCE: 'Apply for Jotform Enterprise to build a fully branded experience',\n CONTACT_SALES_REPRESENTATIVE_BRANDED_EXPERIENCE: 'Contact an Enterprise sales representative to use your own domain name',\n\n JOIN_ENTERPRISE_SOC2: 'Join [1[Jotform Enterprise]] to secure your data with [2[SOC 2 compliance]] solutions',\n\n APPLY_ENTERPRISE_TO_GET_DISCOUNT_ED_TECH: 'Contact an Enterprise sales representative to get 30% off powerful EdTech features',\n APPLY_ENTERPRISE_TO_GET_DISCOUNT_ED_TECH_LINED: 'Contact an Enterprise sales representative to get 30% off powerful EdTech features',\n FERPA_COMPLIANCE: 'FERPA Compliance Badge',\n HIPAA_COMPLIANCE: 'HIPAA Compliance Badge',\n SOC2_COMPLIANCE: 'SOC2 Compliance Badge',\n GDPR_COMPLIANCE: 'GDPR Compliance Badge',\n PCI_COMPLIANCE: 'PCI Compliance Badge',\n BIT_256_SSL: '256 Bit SSL Encryption Badge',\n\n SOC2_COMP: 'SOC 2 Compliance',\n SOC2_COMP_EXPLANATION: 'Uphold all five SOC 2 Trust Service Principles: security, confidentiality, availability, privacy, and processing integrity.',\n SOC2_COMP_ENABLE: 'Enable SOC 2 Compliance',\n\n EDUCATION_DISCOUNT_PERCENT: '30% Education Discount',\n\n GET_HANDS_ON_HELP: 'Get hands-on help with setup, training, and more',\n TAKE_ADVANTAGE_OF_EXPERT_LED_BUILD: 'Take advantage of expert-led builds and training to optimize your workflow and empower your team. Apply for Jotform Enterprise Professional Services today.',\n\n APPLY_ENTERPRISE_TO_GET_PROFESSIONAL_SERVICES: 'Apply for Enterprise to get [1[professional services]]',\n\n PERCENT_30: '30%',\n PERCENT_30_OFF: '30% off',\n JOIN_AND_GET_30_PERCENT_EDU_DISCOUNT: 'Join and get 30% Education Discount',\n\n APPLY_ENTERPRISE_TO_GET_LIVE_ZOOM_SUPPORT: '[1[Apply for Enterprise to get]] live Zoom support',\n ZOOM_MEETING_VISUAL_DESCRIPTION: 'Enterprise user and Jotform Enterprise Representative Zoom Meeting',\n SCHEDULE_ZOOM_MEETING: 'Schedule Zoom Meeting',\n\n MORE_POWER_MORE_SUPPORT: 'More power. More support.',\n JOTFORM_ENTERPRISE_SSO_FEATURE: 'Would you like to use the Require SSO feature? Learn how with Jotform Enterprise.',\n EXPLORE_JOTFORM_ENTERPRISE: 'Explore Jotform Enterprise',\n\n JOTFORM_ENTERPRISE_OFFERS_SSO: 'Jotform Enterprise offers single sign-on configuration. With this configuration you can pre-populate your form fields with data from SSO provider.',\n FULL_NAME: 'Full Name',\n PHONE_NUMBER: 'Phone Number',\n JOB_TITLE: 'Job Title',\n UPGRADE_TO_ENTERPRISE: 'Upgrade to Enterprise',\n UPGRADE_TO_JOTFORM_ENTERPRISE: 'Upgrade to Jotform Enterprise',\n\n TOP_NOTCH_SECURITY: 'Top-Notch Security',\n HOST_YOUR_DATA_IN_ANY_PART_OF_THE_WORLD: 'Host your data anywhere in the world with local data residency. Your data is protected by 256-bit SSL, PCI DSS Level 1 certification, and the option to enable HIPAA compliance features.',\n LOCAL_DATA_RESIDENCY_BANNER: 'Local data residency banner',\n\n SSO_PREFILL: 'SSO PREFILL',\n SSO_PREFILL_APPLY_TITLE: 'Apply for Jotform Enterprise to enable single sign-on prefill',\n SSO_PREFILL_PROVIDER_DESCRIPTION: 'Jotform Enterprise offers single sign-on configuration which you can pre-populate your form fields with data from SSO provider.',\n\n APPLY_ENTERPRISE_TO_HOST_ANYWHERE: 'Apply for Enterprise to host your data anywhere in the world',\n DATA_PROTECTION_SSL_PCI_DSS: 'Protect your data with 256-bit SSL, PCI DSS Level 1 certification, and the option to enable HIPAA compliance features.',\n\n REACHED_FOLDER_LIMIT: 'You have reached your [1[folder limit]]',\n APPLY_FOR_ENTERPRISE_FOLDER: 'Contact an Enterprise sales representative to create unlimited folders and easily find your forms [1[and data.]]',\n\n PLEASE_SUBMIT_EMAIL: 'To get access to this content, please submit your email.',\n\n GET_REAL_TIME_SUPPORT: 'Apply for Enterprise to get real-time support',\n APPLY_ENTERPRISE_TO_GET_REAL_TIME_SUPPORT: 'Apply for Enterprise to get real-time support',\n\n FQHC_TITLE: 'Request a meeting with an Enterprise expert with insights into how Jotform Enterprise helps FQHC',\n\n DEDICATED_VIDEO_CHAT: 'Get dedicated video chat support',\n DEDICATED_VIDEO_CHAT_MODAL_DESC: 'Apply for Enterprise to get dedicated video chat support',\n\n APPLY_ENTERPRISE_FOR_SPECIFIC_LOCATION: '[1[Contact an Enterprise sales]] representative to store your data in a specific location',\n\n ENTERPRISE_DATA_CENTERS: 'Enterprise Data Centers',\n STORE_DATA_IN_SPECIFIC_LOCATION: 'Store my data in a specific location',\n SELECT_DATA_CENTER: 'Select data center',\n SEARCH: 'Search',\n\n THIS_FEATURE_AVAILABLE_FOR_ENTERPRISE: 'This feature is available only with [1[Jotform Enterprise]]',\n\n ENTERPRISE_FEATURE: 'Enterprise feature',\n\n APPLY_ENTERPRISE_TO_ENABLE_SSO: 'Apply for Enterprise to enable Single Sign-On (SSO)',\n SSO_MODAL_VISUAL_DESCRIPTION: 'SSO Login Preview',\n\n GET_ACCESS_TO_SYSTEM_LOGS: 'Get access to system logs for powerful Enterprise reporting',\n TRACK_ALL_OUTGOING_MESSAGES: 'Track all outgoing emails and integration actions for your Jotform Enterprise team.',\n TRACK_ALL_OUTGOING_EMAILS: '[1[Contact an Enterprise sales representative]] to track all outgoing emails with system logs',\n APPLY_ENTERPRISE_TO_TRACK_ALL_OUTGOING_EMAILS: 'Apply for Enterprise to track all outgoing emails and integration actions',\n\n APPLY_ENTERPRISE_TO_ENABLE_SSO_PREFILL: 'Apply for Enterprise to enable Single Sign-On (SSO) Prefill',\n APPLY_ENTERPRISE_TO_ENABLE_SSO_PREFILL_DESCRIPTION: 'Jotform Enterprise lets you pre-populate fields using data from your SSO provider. You’ll also get unlimited forms, submissions, and more!',\n SSO_PREFILL_VISUAL_EXPLANATION: 'Single Sign-On (SSO) Prefill Preview',\n\n YOUR_DOMAIN: 'https://www.[1[yourdomain]].ext/login',\n YOUR_LOGO: 'Your Logo',\n\n GET_THE_APP: 'Get the App',\n ITS_FREE: 'It\\'s Free!',\n JOTFORM_IS_ON_APP_EXCHANGE: 'Jotform is now on Salesforce AppExchange!',\n USE_JOTFORM_WITHOUT_LEAVING_SALESFORCE: 'Use Jotform without leaving Salesforce',\n CONTACT_SALES_TO_USE_JOTFORM_WITHOUT_LEAVING_SALESFORCE: 'Start using Jotform right from your [1[Salesforce dashboard]]',\n CONTACT_OUR_SALES_TEAM_TO_USE_JOTFORM_IN_SALESFORCE: 'Contact our sales team to use Jotform in Salesforce',\n APPEXCHANGE_MODAL_VISUAL_DESCRIPTION: 'Jotform and Salesforce Icons',\n\n THANK_YOU_FOR_DOWNLOADING: 'Thank you for downloading',\n THANK_YOU_FOR_DOWNLOADING_EXPLANATION: 'Request a free demo to learn more about the advanced features of Jotform Enterprise',\n\n DOWNLOAD_JOTFORM_ENTERPRISE_FOR_BEGINNERS: 'Download Jotform Enterprise for Beginners',\n DOWNLOAD_JOTFORM_ENTERPRISE_FOR_BEGINNERS_EXPLANATION: 'Please fill out the form below to download the book ',\n\n NEED_PROFESSIONAL_SERVICE: 'Need professional services? Upgrade to Jotform Enterprise',\n DISCOVER_NOW: 'Discover Now',\n\n DEDICATED_SUPPORT_SECTION_DESCRIPTION: 'Get a dedicated support team with Jotform Enterprise.',\n DEDICATED_SUPPORT_BANNER_DESCRIPTION: 'Want real-time support? Jotform Enterprise customers get a dedicated support team.',\n GET_NOW: 'Get Now',\n APPLY_TO_JOTFORM_ENTERPRISE_PLAN: 'Apply to Jotform Enterprise Plan',\n\n CONTACT_SALES_REPRESENTATIVE_DEDICATED_SUPPORT: 'Contact an Enterprise Sales representative to get access to a dedicated support team',\n\n SCHEDULE_ZOOM_CALL: 'Schedule a Zoom Call',\n\n GET_PDF: 'GET PDF'\n\n};\n","/* eslint-disable max-len */\nexport const CTA_URLS = {\n ADD_AND_MANAGE_USERS: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=jotform.com&utm_content=collaboration_enterprise_accountbox_admin_console_link&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/multiple-users/?utm_medium=referral&utm_source=jotform.com&utm_content=collaboration_enterprise_accountbox_admin_console_link&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n ADMIN_CONSOLE_PROMOTION: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=jotform.com&utm_content=enterprise_accountbox_admin_console_link&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/multiple-users/?utm_medium=referral&utm_source=jotform.com&utm_content=enterprise_accountbox_admin_console_link&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n UPGRADE_TO_ENTERPRISE_FULL_PAGE: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=myaccount_users&utm_content=contact_sales_button&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/multiple-users/?utm_medium=referral&utm_source=myaccount_users&utm_content=learn_more_button&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n ASSIGN_TO_EVERYONE_PROMOTION: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=form_builder&utm_content=assign_everyone_toggle&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/multiple-users/?utm_medium=referral&utm_source=form_builder&utm_content=assign_everyone_toggle&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n ASSIGN_TO_EVERYONE_BUTTON: {\n URL: '/enterprise/multiple-users/?utm_medium=referral&utm_source=assign_everyone_button&utm_content=assign_everyone_button_link&utm_campaign=enterprise_cta'\n },\n ASSIGN_FORM_BANNER: {\n LEARN_MORE_URL: '/teams/?utm_medium=referral&utm_source=form_builder&utm_content=assign_form_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n ENTERPRISE_WHITE_LABELING_BANNER: { // a/b test\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=form_builder&utm_content=mini_designer_white_labeling&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/white-label/?utm_medium=referral&utm_source=form_builder&utm_content=mini_designer_white_labeling&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n WHITE_LABELING_BANNER: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=myaccount_settings&utm_content=white_labeling_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/white-label/?utm_medium=referral&utm_source=myaccount_settings&utm_content=white_labeling_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n APPROVAL_WHITE_LABELING_BANNER: {\n UPGRADE_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=approval&utm_content=white_labeling_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=upgrade_link',\n LEARN_MORE_URL: '/enterprise/white-label/?utm_medium=referral&utm_source=approval&utm_content=white_labeling_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n ENTERPRISE_GOVERNMENT_MODAL: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=my_forms&utm_content=enterprise_government_modal&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/government-solution/?utm_medium=referral&utm_source=my_forms&utm_content=enterprise_government_modal&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n ENTERPRISE_ACCOUNTBOX_PROMOTION: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=account_box&utm_content=inline_alert&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/?utm_medium=referral&utm_source=account_box&utm_content=inline_alert&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n ENTERPRISE_PROMO_IN_BILLING_URL: '/enterprise/?utm_medium=referral&utm_source=myaccount_upgrade&utm_content=check_out_jotform_enterprise&utm_campaign=enterprise_cta&utm_enterprise_actions_target=check_out_jotform_enterprise',\n FULLY_CUSTOMIZE_BANNER: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=form_builder&utm_content=webhook_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/?utm_medium=referral&utm_source=form_builder&utm_content=webhook_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n IP_RESTRICTION_BANNER: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source={{app_name}}&utm_content=ip_restriction_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n DISCOVER_MORE_URL: '/enterprise/?utm_medium=referral&utm_source={{app_name}}&utm_content=ip_restriction_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=discover_now_link'\n },\n CUSTOM_DOMAIN_API_BANNER: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=myaccount_api&utm_content=myaccount_api_custom_domain_contact_sales&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n ENTERPRISE_URL: '/enterprise/?utm_medium=referral&utm_source=myaccount_api&utm_content=myaccount_api_custom_domain_enterprise&utm_campaign=enterprise_cta&utm_enterprise_actions_target=enterprise_link'\n },\n MY_ACCOUNT_STORE_DATA_IN_AU_BANNER: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=myaccount_data&utm_content=store_data_in_au_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n ENTERPRISE_URL: '/enterprise/?utm_medium=referral&utm_source=myaccount_data&utm_content=store_data_in_au_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=enterprise_link'\n },\n DEDICATED_SUPPORT_BANNER: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=form_builder_help_menu&utm_content=dedicated_support&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link'\n },\n DEDICATED_SUPPORT_SECTION: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=jotform.com&utm_content=dedicated_support_contact_sales_cta&utm_campaign=enterprise_common_header'\n },\n WHITE_LABEL_SECTION: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=form_builder&utm_content=white-label-section&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/?utm_medium=referral&utm_source=form_builder&utm_content=white-label-section&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n ACCESS_CONTROL_SECTION: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=form_builder&utm_content=access-control-section&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/?utm_medium=referral&utm_source=form_builder&utm_content=access-control-section&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n CUSTOM_DOMAIN_TOOLTIP: {\n WHITE_LABEL_URL_FORM_BUILDER: '/enterprise/white-label/?utm_medium=referral&utm_source=form_builder&utm_content=publish_quick_share_enterprise_cta&utm_campaign=enterprise_cta&utm_enterprise_actions_target=white_label_link',\n WHITE_LABEL_URL_PORTAL: '/enterprise/white-label/?utm_medium=referral&utm_source=portal&utm_content=publish_quick_share_enterprise_cta&utm_campaign=enterprise_cta&utm_enterprise_actions_target=white_label_link'\n },\n SHARE_PANEL_BOTTOM_BANNER: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=share_panel&utm_content=collab_bottom_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/?utm_medium=referral&utm_source=share_panel&utm_content=collab_bottom_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n PUSH_DAY_BANNER: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=my_forms&utm_content=push_day_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link'\n },\n PROFESSIONAL_SOLUTIONS_BANNER: {\n CONTACT_SALES_URL_INBOX: '/enterprise/contact-sales/?utm_medium=referral&utm_source=inbox&utm_content=professional_solutions_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n CONTACT_SALES_URL_TABLES: '/enterprise/contact-sales/?utm_medium=referral&utm_source=tables&utm_content=professional_solutions_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link'\n },\n ADMIN_CONSOLE_SLIDER_MODAL: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=my_forms_more_menu&utm_content=admin_console_slider_modal&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/?utm_medium=referral&utm_source=my_forms_more_menu&utm_content=admin_console_slider_modal&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n MYACCOUNT_USAGE_INLINE_LIMIT_ALERT: {\n CONTACT_SALES_URL: '?utm_medium=referral&utm_source=myaccount_usage&utm_content=inline_limit_alert_upgrade_button&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link'\n },\n FORM_ANALYTICS_ADMIN_CONSOLE_BANNER: {\n LEARN_MORE_URL: '/enterprise/?utm_medium=referral&utm_source=form_analytics&utm_content=admin_console_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n MYFORMS_WHITE_LABELING_TOOLTIP_BANNER: {\n LEARN_MORE_URL: '/enterprise/white-label/?utm_medium=referral&utm_source=my_forms&utm_content=white_labeling_tooltip&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n MY_FORMS_AU_DATA_RESIDENCY_MODAL: {\n DISCOVER_URL: '/enterprise/local-data-residency/?utm_medium=referral&utm_source=my_forms?&utm_content=australian_data_residency_modal&utm_campaign=enterprise_cta&utm_enterprise_actions_target=discover_link'\n },\n MY_FORMS_LUNCH_AND_LEARN_BANNER: {\n SEE_DETAILS: 'https://jotform.com/enterprise/lunch-and-learn-sessions/?utm_medium=referral&utm_source=my_forms&utm_content=lunch_and_learn_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=see_details_link#sessions',\n SAVE_YOUR_SEAT: 'https://jotform.com/enterprise/lunch-and-learn-sessions/?utm_medium=referral&utm_source=my_forms&utm_content=lunch_and_learn_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=save_your_seat_link',\n JOIN_NOW: 'https://us06web.zoom.us/w/82258346077'\n },\n COST_CUTTING_WEBINAR_MODAL: {\n LEARN_MORE_URL: '/blog/webinar-cutting-costs-from-business-processes/?utm_medium=referral&utm_source=my_forms&utm_content=cost_cutting_webinar_modal&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n COST_CUTTING_WEBINAR_BANNER: {\n LEARN_MORE_URL: '/blog/webinar-cutting-costs-from-business-processes/?utm_medium=referral&utm_source=my_forms&utm_content=cost_cutting_webinar_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n WORKFLOW_GROUP_APPROVAL_BANNER: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=workflow&utm_content=group_approval_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/teams/?utm_medium=referral&utm_source=workflow&utm_content=group_approval_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n EXPANDABLE_ADMIN_CONSOLE_BUTTON: {\n LEARN_MORE_URL: '/enterprise/admin-console/?utm_medium=referral&utm_source=my_forms&utm_content=expandable_admin_console_button&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n ADD_COLLABORATOR_BANNER: {\n CONTACT_SALES_URL: '/enterprise/multiple-users/?utm_medium=referral&utm_source=form_builder&utm_content=add_collaborator_contact_sales_link&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/multiple-users/?utm_medium=referral&utm_source=form_builder&utm_content=add_collaborator_learn_more_link&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n ENTERPRISE_SECURITY_ITEMS_SECTION: {\n LEARN_MORE_URL: '/enterprise/security/?utm_medium=referral&utm_source=my_account&utm_content=enterprise-security-items&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n BLOG_CONTENT_BOOST_BANNER: {\n GET_CUSTOM_QUOTE_URL: utmSource => `/enterprise/contact-sales/?utm_medium=referral&utm_source=${utmSource}&utm_content=boost_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=get_custom_quote_link`\n },\n BLOG_CONTENT_SPEED_UP_BANNER: {\n GET_CUSTOM_QUOTE_URL: utmSource => `/enterprise/contact-sales/?utm_medium=referral&utm_source=${utmSource}&utm_content=speed_up_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=get_custom_quote_link`\n },\n USER_GUIDE_PROFESSIONAL_SERVICES: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=user_guide_home&utm_content=prof_services_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/professional-services/?utm_medium=referral&utm_source=user_guide_home&utm_content=prof_services_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n GENERAL_FAQ_PROFESSIONAL_SERVICES: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=faq_home&utm_content=prof_services_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/professional-services/?utm_medium=referral&utm_source=faq_home&utm_content=prof_services_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n SESSIONS_ACCOUNT_SHARING_BANNER: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=my_account_security&utm_content=sessions_account_sharing&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link'\n },\n SSO_ACCESS_BANNER: {\n CONTACT_SALES_URL: '/enterprise/contact-sales/?utm_medium=referral&utm_source=form_builder&utm_content=publish_sso_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE_URL: '/enterprise/single-sign-on/?utm_medium=referral&utm_source=form_builder&utm_content=publish_sso_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n SSO_ACCESS_LEGACY_BANNER: {\n JOTFORM_ENTERPRISE: '/enterprise/single-sign-on/?utm_medium=referral&utm_source=form_builder&utm_content=publish_sso_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=jotform_enterprise_link'\n },\n CUSTOM_DOMAIN_TOOLTIP_LEAGACY: {\n TRY_JOTFORM_ENTERPRISE_URL: '/enterprise/white-label/?utm_medium=referral&utm_source=form_builder&utm_content=publish_edit_custom_domain&utm_campaign=enterprise_cta&utm_enterprise_actions_target=try_jotform_enterprise_link'\n },\n SSO_PREFILL_LEGACY_BANNER: {\n UPGRADE_TO_ENTERPRISE: '/enterprise/single-sign-on/?utm_medium=referral&utm_source=form_builder&utm_content=enable_sso_prefill&utm_campaign=enterprise_cta&utm_enterprise_actions_target=upgrade_to_enterprise_link'\n },\n LOCAL_DATA_RESIDENCY_BANNER: {\n UPGRADE_TO_ENTERPRISE: '/enterprise/local-data-residency/?utm_medium=referral&utm_source=myaccount_data_section&utm_content=local_data_residency_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=upgrade_to_enterprise_link'\n },\n LOCAL_DATA_RESIDENCY_ALT_BANNER: {\n CONTACT_SALES: '/enterprise/contact-sales/?utm_medium=referral&utm_source=myaccount_data_section&utm_content=local_data_residency_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=contact_sales_link',\n LEARN_MORE: '/enterprise/local-data-residency/?utm_medium=referral&utm_source=myaccount_data_section&utm_content=local_data_residency_banner&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n TEAMS_CUSTOM_DOMAIN_LEGACY_TOOLTIP: {\n TRY_JOTFORM_ENTERPRISE_URL: '/enterprise/white-label/?utm_medium=referral&utm_source=team_url_section&utm_content=edit_custom_domain&utm_campaign=teams&utm_enterprise_actions_target=try_jotform_enterprise_link'\n },\n SSO_LEGACY_TOOLTIP: {\n JOTFORM_ENTERPRISE_URL: '/enterprise/single-sign-on/?utm_medium=referral&utm_source=form_builder&utm_content=require_sso_toggle&utm_campaign=enterprise_cta&utm_enterprise_actions_target=jotform_enterprise_link'\n },\n TEAMS_MODAL: {\n LEARN_MORE_URL: '/enterprise/teams/?utm_medium=referral&utm_source=teams_modal&utm_content=teams_modal_learn_more_link&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n PROFESSIONAL_SERVICES_CONTACT_BANNER: {\n DISCOVER_NOW_URL: '/enterprise/professional-services/?utm_medium=referral&utm_source=professional_services_contact_banner&utm_content=pscb_discover_more_link&utm_campaign=enterprise_cta&utm_enterprise_actions_target=discover_now_link'\n },\n SCHEDULE_ZOOM_MODAL: {\n LEARN_MORE_URL: '/enterprise/?utm_medium=referral&utm_source=schedule_zoom_modal&utm_content=schedule_zoom_modal_learn_more_link&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n },\n SOC2_COMPLIANCE_BANNER: {\n LEARN_MORE_URL: '/enterprise/soc-2-compliance/?utm_medium=referral&utm_source=soc2_compliance_banner&utm_content=soc2_compliance_banner_learn_more_link&utm_campaign=enterprise_cta&utm_enterprise_actions_target=learn_more_link'\n }\n};\n","const GA_PROJECT = 'enterprise-promotions';\n\nconst ASSET_TYPES = {\n MODAL: 'modal',\n BANNER: 'banner',\n SECTION: 'section',\n BUTTON: 'button',\n TOOLTIP: 'tooltip'\n};\n\nconst kebabizeReplacer = (match, offset) => (offset ? '-' : '') + match.toLowerCase();\n\nconst kebabize = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, kebabizeReplacer);\n\nconst findAssetType = assetName => Object.values(ASSET_TYPES).find(type => assetName.toLowerCase().includes(type));\n\nexport const createGaAttributes = (assetName = '', suffix = '') => {\n const assetType = findAssetType(assetName);\n return {\n 'data-ga': `${GA_PROJECT}-${assetType}`,\n 'data-id': suffix ? `${kebabize(assetName)}-${kebabize(suffix)}` : `${kebabize(assetName)}`\n };\n};\n\nexport const mapCallbacksToGaTrackingItems = (trackingItems, callbacks = []) => {\n const trackingItemsWithCb = trackingItems.map((item, i) => {\n const isFunc = typeof callbacks[i] === 'function';\n if (!isFunc) return { ...item };\n return { ...item, callback: callbacks[i] };\n });\n return trackingItemsWithCb;\n};\n\nexport const gaDataLayerPushClose = (gaAttributes = {}) => {\n const dataId = gaAttributes['data-id'];\n const assetType = findAssetType(dataId);\n window.dataLayer?.push({\n event: `${assetType}_close`,\n 'data-id': dataId\n });\n};\n\nexport const GA_SUFFIXES = {\n APPLY_NOW: 'applyNow',\n CHECK_OUT_JOTFORM_ENTERPRISE: 'checkOutJotformEnterprise',\n CLOSE: 'close',\n CONTACT_SALES: 'contactSales',\n UPGRADE: 'upgrade',\n DISCOVER_MORE: 'discoverMore',\n DISMISS: 'dismiss',\n ENTERPRISE_LANDING: 'enterpriseLanding',\n ENTERPRISE_WHITE_LABELING: 'enterpriseWhiteLabeling',\n GET_CUSTOM_QUOTE: 'getCustomQuote',\n GET_INSIGHT_NOW: 'getInsightNow',\n GET_A_QUOTE: 'getAQuote',\n JOIN_NOW: 'joinNow',\n LEARN_MORE: 'learnMore',\n LEARN_DETAILS: 'learnDetails',\n NOT_INTERESTED: 'notInterested',\n NOT_NOW: 'notNow',\n READ_THE_REPORT: 'readTheReport',\n REQUEST_A_DEMO: 'requestADemo',\n SAVE_YOUR_SEAT: 'saveYourSeat',\n SAVE_YOUR_SPOT: 'saveYourSpot',\n SEE_DETAILS: 'seeDetails',\n SIGN_UP: 'signUp',\n UPGRADE_TO_JOTFORM_ENTERPRISE: 'upgradeToJotformEnterprise',\n SCHEDULE: 'schedule',\n JOTFORM_ENTERPRISE: 'jotformEnterprise',\n TRY_JOTFORM_ENTERPRISE: 'tryJotformEnterprise',\n UPGRADE_TO_ENTERPRISE: 'upgradeToEnterprise',\n GET_NOW: 'getNow',\n SCHEDULE_ZOOM_CALL: 'scheduleZoomCall',\n GET_PDF: 'getPdf'\n};\n","import { readCookie, isSalesforceEnv } from '@jotforminc/utils';\nimport { LEAD_FORM_SOURCE_MODIFIERS, SHOULD_SHOW_AD_FORM } from '../constants';\nimport { isGenericEmail } from './utils';\n\nexport const getAdwordsUtmsFromCookie = () => {\n let decodedAdwordsUtms = '';\n let parsedAdwordsUtms = {};\n const adwordsUtms = readCookie('adwords_utms');\n if (!adwordsUtms) return parsedAdwordsUtms;\n try {\n decodedAdwordsUtms = decodeURIComponent(adwordsUtms);\n parsedAdwordsUtms = JSON.parse(decodedAdwordsUtms);\n } catch (e) {\n console.warn(e);\n }\n\n return { ...parsedAdwordsUtms, urlParam: adwordsUtms };\n};\n\nconst createParam = (key = '', value = '') => ((key && ![null, undefined, ''].includes(value)) ? `${key}=${value}` : '');\n\nconst mergeParams = (...params) => params.filter(param => param).join('&');\n\nconst createAdwordsUtmParams = () => {\n const {\n utm_source: utmSource = '',\n utm_campaign: utmCampaign = '',\n utm_medium: utmMedium = '',\n utm_term: utmTerm = '',\n utm_content: utmContent = '',\n utm_scp: utmScope = '',\n urlParam = ''\n } = getAdwordsUtmsFromCookie();\n\n const { ADWORDS } = LEAD_FORM_SOURCE_MODIFIERS;\n\n const urlParams = createParam('url_params', urlParam);\n const utmSourceParam = createParam('utm_source', utmSource);\n const utmCampaignParam = createParam('utm_campaign', utmCampaign);\n const utmMediumParam = createParam('utm_medium', utmMedium);\n const utmTermParam = createParam('utm_term', utmTerm);\n const utmContentParam = createParam('utm_content', utmContent);\n const utmScopeParam = createParam('utm_scp', utmScope);\n const adwordsGclidParam = createParam('gclid', readCookie('adwords_gclid'));\n const formLeadSourceModifierParam = createParam('formLeadSourceModifier', readCookie('adwords_mode') === 'on' ? ADWORDS : '');\n\n return mergeParams(urlParams, utmSourceParam, utmCampaignParam, utmMediumParam, utmTermParam, utmContentParam, utmScopeParam, adwordsGclidParam, formLeadSourceModifierParam);\n};\n\nconst createUserInformationParams = ({\n username, nameFirst, nameLast, email, jobTitle, company, country\n}) => {\n const usernameParam = createParam('userFullName', username);\n const nameParam = createParam('fullName[first]', nameFirst);\n const lastNameParam = createParam('fullName[last]', nameLast);\n const emailParam = createParam('userEmail', email);\n const jobTitleParam = createParam('jobTitle', jobTitle);\n const companyParam = createParam('organizationName', company);\n const countryParam = createParam('country', country);\n\n return mergeParams(usernameParam, nameParam, lastNameParam, emailParam, jobTitleParam, companyParam, countryParam);\n};\n\n// regular params\nexport const prepareFormParams = ({\n username, nameFirst, nameLast, email, bsgEmail, jobTitle, company, country,\n variantCode, formUiModifier, isIframeEmbed, pageUrl, automatedNurturingSource\n}) => {\n const userInforParams = createUserInformationParams({\n username, nameFirst, nameLast, email, jobTitle, company, country\n });\n const adwordsUtmParams = createAdwordsUtmParams();\n const pageUrlParam = createParam('pageUrl', pageUrl);\n const abTestParam = createParam('wordingtestvariantcode', variantCode);\n const iframeEmbedParam = createParam('isIframeEmbed[0]', isIframeEmbed);\n const salesForceParam = createParam('isSalesforce[0]', isSalesforceEnv());\n const professionalServicesParam = createParam('professionalServicesNote', readCookie('professionalServicesIntent') === 'yes' ? 'professionalServices' : '');\n const jotformAiAgentNoteParam = createParam('jotformAiAgentNote', readCookie('jotformAiAgentNote'));\n const jotformGovernmentIntentParam = createParam('jotformGovernmentIntent', readCookie('jotformGovernmentIntent'));\n const formUiModifierParam = createParam('formUiModifier', formUiModifier);\n const automatedNurturingSourceParam = createParam('automated_email_nurturing_source', automatedNurturingSource);\n const abNoteParam = createParam('abNote', readCookie('abNote'));\n const isGenericEmailParam = createParam('isGenericEmail', isGenericEmail(bsgEmail));\n const bsgEmailParam = createParam('bsgEmail', bsgEmail);\n\n const allParams = mergeParams(\n userInforParams, adwordsUtmParams,\n formUiModifierParam, pageUrlParam, iframeEmbedParam,\n salesForceParam, professionalServicesParam, jotformAiAgentNoteParam,\n jotformGovernmentIntentParam, abTestParam, abNoteParam, isGenericEmailParam, bsgEmailParam,\n automatedNurturingSourceParam, 'nojump', 'noToolBar'\n );\n\n return `?${allParams}`;\n};\n\n// non-profit params\nexport const prepareNonprofitFormParams = ({\n username, email\n}) => {\n const userNameParam = createParam('jotformUsername', username);\n const emailParam = createParam('emailAddress15', email);\n return `?${userNameParam}&${emailParam}&nojump&noToolBar`;\n};\n\nexport const hasAdwordsModeOn = () => {\n if (!SHOULD_SHOW_AD_FORM) return false;\n return readCookie('adwords_mode') === 'on';\n};\n","import { ABTestManager } from '@jotforminc/abtest-manager';\n/* global HTMLElement */\n\nimport Moment from 'moment';\nimport utf8 from 'utf8';\nimport {\n COUNTDOWN_UNIT, lalbSession, LEAD_FORM_MAP, LUNCH_AND_LEARN_SESSIONS, PRICING_TABLE_SOURCE_PAGES\n} from '../constants';\n\nexport const decodeUTF8 = text => {\n if (!text) return '';\n\n try {\n return utf8.decode(text);\n } catch (error) {\n console.log(error);\n return text;\n }\n};\n\nexport const getCurrentDateWithoutTimeZone = () => {\n const currentDate = new Date();\n const offset = currentDate.getTimezoneOffset();\n const currentDateWithoutOffset = new Date(currentDate.getTime() - (offset * 60 * 1000));\n const formattedDate = currentDateWithoutOffset.toISOString().split('T')[0];\n return formattedDate;\n};\n\nexport const getRootElement = id => {\n if (document.getElementById(id)) {\n return document.getElementById(id);\n }\n const rootEl = document.createElement('div');\n rootEl.id = id;\n document.body.appendChild(rootEl);\n return rootEl;\n};\n\nexport const isHTMLElement = el => el instanceof HTMLElement;\n\n// decimal seperator 7 70 700 7.000 70.000 etc.\nexport const formatNumber = num => num.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1.');\n\nexport const getCountdownInfo = () => {\n const EVENT_DATE = LUNCH_AND_LEARN_SESSIONS[lalbSession - 1];\n const { ANNOUNCEMENT_DATE_TIME, EVENT_DATE_TIME, EVENT_DURATION } = EVENT_DATE;\n\n const eventDateTime = new Date(EVENT_DATE_TIME).getTime();\n const announcementDateTime = new Date(ANNOUNCEMENT_DATE_TIME).getTime();\n\n const campaignTimespan = eventDateTime - announcementDateTime;\n\n const currentDate = new Date();\n const currentDateTimeWithoutOffset = currentDate.getTime();\n\n const eventDurHours = EVENT_DURATION.split(':')[0] * 60 * 60 * 1000;\n const eventDurMinutes = EVENT_DURATION.split(':')[1] * 60 * 1000;\n const eventDuration = eventDurHours + eventDurMinutes;\n\n const eventEndsAt = eventDateTime + eventDuration;\n const isEventCompleted = currentDateTimeWithoutOffset > eventEndsAt;\n const remainingTimespan = eventDateTime - currentDateTimeWithoutOffset;\n const remainingPercentage = Math.floor((remainingTimespan / campaignTimespan) * 100);\n\n let unit;\n let remainingTime;\n\n const remainingTimeDays = Math.floor(Moment.duration(remainingTimespan, 'milliseconds').asDays());\n const remainingTimeHours = Math.floor(Moment.duration(remainingTimespan, 'milliseconds').asHours());\n const remainingTimeMinutes = Math.floor(Moment.duration(remainingTimespan, 'milliseconds').asMinutes());\n\n if (remainingTimeDays >= 1) {\n unit = COUNTDOWN_UNIT.DAYS;\n remainingTime = remainingTimeDays;\n } else if (remainingTimeHours >= 1) {\n unit = COUNTDOWN_UNIT.HOURS;\n remainingTime = remainingTimeHours;\n } else if (remainingTimeMinutes >= 1) {\n unit = COUNTDOWN_UNIT.MINUTES;\n remainingTime = remainingTimeMinutes;\n } else {\n unit = COUNTDOWN_UNIT.LIVE;\n remainingTime = 0;\n }\n\n return {\n unit,\n remainingTime,\n isEventCompleted,\n remainingPercentage\n };\n};\n\nexport const getAppName = () => window.__jfrouter?.ACTIVE_APP?.replace('-', '_') || '';\n\nexport const getMandatoryPrefillValues = user => {\n const username = user?.username || '';\n const bsgEmail = user?.email || '';\n\n return {\n username: decodeUTF8(username),\n bsgEmail: decodeUTF8(bsgEmail)\n };\n};\n\nexport const getUserPrefillValues = user => {\n const fullNameItems = user?.name?.split(' ') || [];\n const lastNameIndex = fullNameItems.length - 1;\n const nameFirst = fullNameItems.length === 1 ? fullNameItems[0] : fullNameItems.slice(0, -1).join(' ').trim();\n const nameLast = fullNameItems.length === 1 ? '' : (fullNameItems[lastNameIndex] || '');\n const email = user?.email || '';\n const jobTitle = '';\n const company = user?.company || '';\n const country = user?.location?.country_name || '';\n const username = user?.username || '';\n\n return {\n username: decodeUTF8(username),\n nameFirst: decodeUTF8(nameFirst),\n nameLast: decodeUTF8(nameLast),\n email: decodeUTF8(email),\n bsgEmail: decodeUTF8(email),\n jobTitle: decodeUTF8(jobTitle),\n company: decodeUTF8(company),\n country: decodeUTF8(country)\n };\n};\n\nexport const shouldShowStepInfo = user => {\n const name = user?.name;\n const uemail = user?.email;\n const countryName = user?.location?.country_name;\n const requiredFields = [name, uemail, countryName];\n return requiredFields.some(field => !field);\n};\n\nexport const isProd = () => window.JOTFORM_ENV === 'PRODUCTION';\nexport const isDevelopment = () => window.JOTFORM_ENV === 'DEVELOPMENT';\n\nexport const readMilestoneJotformFieldValues = iframeDocument => ({\n firstName: iframeDocument?.querySelector('#first_4')?.value || '',\n lastName: iframeDocument?.querySelector('#last_4')?.value || '',\n email: iframeDocument?.querySelector('#input_5')?.value || '',\n country: iframeDocument?.querySelector('#input_7')?.value || '',\n state: iframeDocument?.querySelector('#input_8')?.value || iframeDocument?.querySelector('#input_12')?.value || iframeDocument.querySelector('#input_13')?.value || ''\n});\n\nexport const getSourceLandingPage = () => {\n const { EDUCATION, NONPROFIT } = PRICING_TABLE_SOURCE_PAGES;\n if (window.location.pathname.includes(EDUCATION)) return EDUCATION;\n if (window.location.pathname.includes(NONPROFIT)) return NONPROFIT;\n return '';\n};\nexport const snakeizePathname = () => window.location.pathname.replaceAll('/', '_').replaceAll('-', '_').slice(1, -1);\n\nexport const isGuest = user => (user?.accountType || user?.account_type?.name) === 'GUEST';\n\nexport const isScrollCloseToElement = (targetEl, offset = 250) => {\n if (!targetEl) return false;\n return (targetEl.getBoundingClientRect().top + targetEl.offsetHeight) - window.innerHeight - offset <= 0;\n};\n\nexport const getLiveFormID = (isTestVariant, target) => {\n return (isTestVariant\n ? LEAD_FORM_MAP[target].LIVE\n : LEAD_FORM_MAP.COMMON.LIVE);\n};\n\nexport const getDevFormID = (isTestVariant, target) => {\n return isTestVariant\n ? LEAD_FORM_MAP[target].DEV\n : LEAD_FORM_MAP.COMMON.DEV;\n};\n\nexport async function getIsEnterpriseAIAgentChatActive(user) {\n if (user.enterpriseAIAgentMyAccount === '27521') {\n return true;\n }\n\n if (window.JOTFORM_ENV === 'ENTERPRISE' || user.enterpriseAIAgentMyAccount) {\n return false;\n }\n\n const abTestManager = new ABTestManager({\n user: user,\n isTestEnabled: true,\n testName: 'enterpriseAIAgentMyAccount',\n testVariantCode: '27521',\n controlVariantCode: '27511'\n });\n\n return abTestManager.isTestVariant();\n}\n\nexport const isGenericEmail = email => {\n if (!email) return '';\n // eslint-disable-next-line max-len\n const freeDomains = ['aol', 'bellsouth', 'bigpond', 'bright', 'cfl', 'citlink', 'comcast', 'cox', 'earthlink', 'email', 'emailboxi', 'embarqmail', 'free', 'frontiernet', 'gmail', 'googlemail', 'hotmail', 'icloud', 'iinet', 'libero', 'live', 'mac', 'mail', 'me', 'mindspring', 'msn', 'myyahoo', 'naver', 'netscape', 'online', 'optonline', 'orange', 'outlook', 'privaterelay', 'proton', 'protonmail', 'sbcglobal', 'shaw', 'skynet', 'telenet', 'tiscali', 'verizon', 'virginmedia', 'windowslive', 'yahoo', 'yandex', 'ymail'];\n\n return freeDomains.some(domain => email.includes(`@${domain}.`));\n};\n","import React, { Fragment } from 'react';\nimport {\n oneOfType, shape, string, node, elementType, bool\n} from 'prop-types';\n\nimport GrowthAssetRenderer from './GrowthAssetRenderer';\n\nconst GrowthAssetManager = ({\n campaignInfo = global.window?.campaignInfo,\n assetProps,\n assetType,\n Fallback\n}) => {\n return (\n <GrowthAssetRenderer\n campaignInfo={campaignInfo}\n assetProps={assetProps}\n assetType={assetType}\n Fallback={Fallback}\n />\n );\n};\n\nGrowthAssetManager.propTypes = {\n assetType: string.isRequired,\n assetProps: shape({}),\n campaignInfo: shape({\n status: bool,\n type: string,\n assetsVersion: string,\n assetsAvailable: bool,\n assetYear: string\n }),\n Fallback: oneOfType([\n node,\n elementType\n ])\n};\n\nGrowthAssetManager.defaultProps = {\n campaignInfo: global.window?.campaignInfo,\n assetProps: {},\n Fallback: Fragment\n};\n\nexport default GrowthAssetManager;\n","import React, { Suspense, Fragment } from 'react';\nimport {\n string, shape, bool, node, oneOfType, elementType\n} from 'prop-types';\n\nimport { checkIsAssetDismissed, getAssetComponent } from '../utils/campaign';\n\nimport { AssetManagerProvider } from '../context/AssetManagerContext';\n\nconst GrowthAssetRenderer = ({\n assetType,\n assetProps,\n campaignInfo,\n Fallback\n}) => {\n const orderedCampaignInfos = Object.keys(campaignInfo).includes('type')\n ? [campaignInfo]\n : [\n campaignInfo.launch,\n campaignInfo.promotion,\n campaignInfo.campaign,\n campaignInfo.announcement\n ].filter(f => !!f);\n\n const [AssetComponent, assetInfo] = orderedCampaignInfos\n .map(info => {\n const {\n status = true,\n type: campaignType,\n assetsVersion,\n assetsAvailable = true,\n assetYear = '2024'\n } = info;\n\n const Component = getAssetComponent(\n {\n assetInfo: {\n campaignType,\n assetsVersion,\n assetYear\n },\n assetType\n }\n );\n\n const isAssetDismissed = checkIsAssetDismissed({\n assetType,\n assetsVersion,\n campaignType\n });\n\n return !Component || !assetsAvailable || !status || isAssetDismissed ? [] : [Component, info];\n })\n .filter(f => !!f.length)[0] || [];\n\n if (!AssetComponent) {\n return <Fallback {...assetProps} />;\n }\n\n return (\n <Suspense>\n <AssetManagerProvider\n campaignInfo={campaignInfo}\n assetInfo={assetInfo}\n assetType={assetType}\n user={assetProps?.user}\n >\n <AssetComponent {...assetProps} />\n </AssetManagerProvider>\n </Suspense>\n );\n};\n\nGrowthAssetRenderer.propTypes = {\n assetType: string,\n assetProps: shape({}),\n campaignInfo: shape({\n status: bool,\n type: string,\n assetsVersion: string,\n assetsAvailable: bool,\n assetYear: string\n }),\n Fallback: oneOfType([\n node,\n elementType\n ])\n};\n\nGrowthAssetRenderer.defaultProps = {\n assetType: '',\n assetProps: {},\n campaignInfo: {},\n Fallback: Fragment\n};\n\nexport default GrowthAssetRenderer;\n","import React, {\n useState, useContext, createContext, useMemo\n} from 'react';\nimport { node, object, string } from 'prop-types';\nimport { ActionManager } from '@jotforminc/abtest-manager';\n\nconst AssetManagerContext = createContext({});\n\nexport const AssetManagerProvider = ({\n children,\n campaignInfo,\n assetInfo,\n assetType,\n user\n}) => {\n const isDevelopment = window.JOTFORM_ENV === 'DEVELOPMENT';\n const actionManager = useMemo(() => new ActionManager({ user, projectName: 'growthAssetManager', enableDebugMode: isDevelopment }), [user, isDevelopment]);\n\n const [state] = useState({\n campaignInfo,\n assetInfo,\n assetType\n });\n\n return (\n <AssetManagerContext.Provider\n value={{\n state,\n actionManager\n }}\n >\n { children }\n </AssetManagerContext.Provider>\n );\n};\n\nAssetManagerProvider.propTypes = {\n children: node.isRequired,\n campaignInfo: object.isRequired,\n assetInfo: object.isRequired,\n assetType: string.isRequired,\n user: object.isRequired\n};\n\nexport const useAssetManagerContext = () => {\n const { state, actionManager } = useContext(AssetManagerContext);\n\n return {\n ...state,\n actionManager\n };\n};\n","import startCase from 'lodash/startCase';\n\nexport const getComponentName = ({\n assetType,\n campaignType,\n assetsVersion,\n assetYear\n}) => {\n if (!campaignType || !assetType) {\n return;\n }\n\n const sanitizedAssetsVersion = assetsVersion || 'v1';\n return [`y${assetYear}`, campaignType, assetType, sanitizedAssetsVersion].map(name => startCase(name.toLowerCase()).replace(/\\s+/g, '')).join('');\n};\n","import { lazy } from 'react'\nexport const Y2023EoyMyaccountMyplanBannerV1 = lazy(() => import('../../assets/campaigns/2023/eoy/myaccount-myplan-banner/index.js'));\nexport const Y2023SummerBannerV1 = lazy(() => import('../../assets/campaigns/2023/summer/banner/index.js'));\nexport const Y2023SummerLightboxV1 = lazy(() => import('../../assets/campaigns/2023/summer/lightbox/index.js'));\nexport const Y2023SummerMyaccountMyplanBannerV1 = lazy(() => import('../../assets/campaigns/2023/summer/myaccount-myplan-banner/index.js'));\nexport const Y2024BacktopaidFlyinV1 = lazy(() => import('../../assets/campaigns/2024/backtopaid/flyin/v1.js'));\nexport const Y2024BacktopaidMyaccountBadgeV1 = lazy(() => import('../../assets/campaigns/2024/backtopaid/myaccount-badge/index.js'));\nexport const Y2024BacktopaidMyaccountMyplanBannerV1 = lazy(() => import('../../assets/campaigns/2024/backtopaid/myaccount-myplan-banner/index.js'));\nexport const Y2024BacktopaidPricingBadgeV1 = lazy(() => import('../../assets/campaigns/2024/backtopaid/pricing-badge/v1.js'));\nexport const Y2024BlackfridayBannerV2 = lazy(() => import('../../assets/campaigns/2024/blackfriday/banner/v2.js'));\nexport const Y2024BlackfridayBillingPricingTableV1 = lazy(() => import('../../assets/campaigns/2024/blackfriday/billing-pricing-table/v1.js'));\nexport const Y2024BlackfridayBillingPricingTableV2 = lazy(() => import('../../assets/campaigns/2024/blackfriday/billing-pricing-table/v2.js'));\nexport const Y2024BlackfridayExitModalV2 = lazy(() => import('../../assets/campaigns/2024/blackfriday/exit-modal/v2.js'));\nexport const Y2024BlackfridayLightboxV2 = lazy(() => import('../../assets/campaigns/2024/blackfriday/lightbox/v2.js'));\nexport const Y2024BlackfridayMyaccountBadgeV1 = lazy(() => import('../../assets/campaigns/2024/blackfriday/myaccount-badge/v1.js'));\nexport const Y2024BlackfridayMyaccountBadgeV2 = lazy(() => import('../../assets/campaigns/2024/blackfriday/myaccount-badge/v2.js'));\nexport const Y2024BlackfridayMyaccountMyplanBannerV1 = lazy(() => import('../../assets/campaigns/2024/blackfriday/myaccount-myplan-banner/index.js'));\nexport const Y2024BlackfridayMyaccountMyplanBannerV2 = lazy(() => import('../../assets/campaigns/2024/blackfriday/myaccount-myplan-banner/v2.js'));\nexport const Y2024BlackfridayPricingBadgeV1 = lazy(() => import('../../assets/campaigns/2024/blackfriday/pricing-badge/v1.js'));\nexport const Y2024BlackfridayPricingBadgeV2 = lazy(() => import('../../assets/campaigns/2024/blackfriday/pricing-badge/v2.js'));\nexport const Y2024BlackfridayPricingBadgeV3 = lazy(() => import('../../assets/campaigns/2024/blackfriday/pricing-badge/v3.js'));\nexport const Y2024BlackfridayPricingBadgeV4 = lazy(() => import('../../assets/campaigns/2024/blackfriday/pricing-badge/v4.js'));\nexport const Y2024BlackfridayPricingGuestBadgeV1 = lazy(() => import('../../assets/campaigns/2024/blackfriday/pricing-guest-badge/v1.js'));\nexport const Y2024BlackfridayPricingGuestBadgeV2 = lazy(() => import('../../assets/campaigns/2024/blackfriday/pricing-guest-badge/v2.js'));\nexport const Y2024BlackfridayPricingGuestBadgeV3 = lazy(() => import('../../assets/campaigns/2024/blackfriday/pricing-guest-badge/v3.js'));\nexport const Y2024BlackfridayPricingGuestBadgeV4 = lazy(() => import('../../assets/campaigns/2024/blackfriday/pricing-guest-badge/v4.js'));\nexport const Y2024BlackfridayRefundRequestBannerV1 = lazy(() => import('../../assets/campaigns/2024/blackfriday/refund-request-banner/v1.js'));\nexport const Y2024BlackfridayRefundRequestBannerV2 = lazy(() => import('../../assets/campaigns/2024/blackfriday/refund-request-banner/v2.js'));\nexport const Y2024BlackfridaycheckoutBannerV3 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/banner/v3.js'));\nexport const Y2024BlackfridaycheckoutBannerV4 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/banner/v4.js'));\nexport const Y2024BlackfridaycheckoutBillingPricingTableV1 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/billing-pricing-table/v1.js'));\nexport const Y2024BlackfridaycheckoutBillingPricingTableV2 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/billing-pricing-table/v2.js'));\nexport const Y2024BlackfridaycheckoutBillingPricingTableV3 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/billing-pricing-table/v3.js'));\nexport const Y2024BlackfridaycheckoutBillingPricingTableV4 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/billing-pricing-table/v4.js'));\nexport const Y2024BlackfridaycheckoutExitModalV3 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/exit-modal/v3.js'));\nexport const Y2024BlackfridaycheckoutExitModalV4 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/exit-modal/v4.js'));\nexport const Y2024BlackfridaycheckoutMyaccountBadgeV1 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/myaccount-badge/v1.js'));\nexport const Y2024BlackfridaycheckoutMyaccountBadgeV2 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/myaccount-badge/v2.js'));\nexport const Y2024BlackfridaycheckoutMyaccountBadgeV3 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/myaccount-badge/v3.js'));\nexport const Y2024BlackfridaycheckoutMyaccountBadgeV4 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/myaccount-badge/v4.js'));\nexport const Y2024BlackfridaycheckoutMyaccountMyplanBannerV1 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/myaccount-myplan-banner/v1.js'));\nexport const Y2024BlackfridaycheckoutMyaccountMyplanBannerV2 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/myaccount-myplan-banner/v2.js'));\nexport const Y2024BlackfridaycheckoutMyaccountMyplanBannerV3 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/myaccount-myplan-banner/v3.js'));\nexport const Y2024BlackfridaycheckoutMyaccountMyplanBannerV4 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/myaccount-myplan-banner/v4.js'));\nexport const Y2024BlackfridaycheckoutPricingBadgeV1 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/pricing-badge/v1.js'));\nexport const Y2024BlackfridaycheckoutPricingBadgeV2 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/pricing-badge/v2.js'));\nexport const Y2024BlackfridaycheckoutPricingBadgeV3 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/pricing-badge/v3.js'));\nexport const Y2024BlackfridaycheckoutPricingBadgeV4 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/pricing-badge/v4.js'));\nexport const Y2024BlackfridaycheckoutPricingGuestBadgeV1 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/pricing-guest-badge/v1.js'));\nexport const Y2024BlackfridaycheckoutPricingGuestBadgeV2 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/pricing-guest-badge/v2.js'));\nexport const Y2024BlackfridaycheckoutPricingGuestBadgeV3 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/pricing-guest-badge/v3.js'));\nexport const Y2024BlackfridaycheckoutPricingGuestBadgeV4 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/pricing-guest-badge/v4.js'));\nexport const Y2024BlackfridaycheckoutRefundRequestBannerV1 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/refund-request-banner/v1.js'));\nexport const Y2024BlackfridaycheckoutRefundRequestBannerV2 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/refund-request-banner/v2.js'));\nexport const Y2024BlackfridaycheckoutRefundRequestBannerV3 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/refund-request-banner/v3.js'));\nexport const Y2024BlackfridaycheckoutRefundRequestBannerV4 = lazy(() => import('../../assets/campaigns/2024/blackfridaycheckout/refund-request-banner/v4.js'));\nexport const Y2024NewuserBannerV2 = lazy(() => import('../../assets/campaigns/2024/newuser/banner/v2.js'));\nexport const Y2024NewuserDummyExitModalV2 = lazy(() => import('../../assets/campaigns/2024/newuser/dummy-exit-modal/v2.js'));\nexport const Y2024NewuserLimitDialogV2 = lazy(() => import('../../assets/campaigns/2024/newuser/limit-dialog/v2.js'));\nexport const Y2024NewuserMyaccountBadgeV2 = lazy(() => import('../../assets/campaigns/2024/newuser/myaccount-badge/v2.js'));\nexport const Y2024NewuserMyaccountMyplanBannerV2 = lazy(() => import('../../assets/campaigns/2024/newuser/myaccount-myplan-banner/v2.js'));\nexport const Y2024NewuserPricingBadgeV2 = lazy(() => import('../../assets/campaigns/2024/newuser/pricing-badge/v2.js'));\nexport const Y2024OnedollarsilverBannerV1 = lazy(() => import('../../assets/campaigns/2024/onedollarsilver/banner/v1.js'));\nexport const Y2024OnedollarsilverExitModalV1 = lazy(() => import('../../assets/campaigns/2024/onedollarsilver/exit-modal/v1.js'));\nexport const Y2024OnedollarsilverFlyinV1 = lazy(() => import('../../assets/campaigns/2024/onedollarsilver/flyin/v1.js'));\nexport const Y2024OnedollarsilverLightboxV1 = lazy(() => import('../../assets/campaigns/2024/onedollarsilver/lightbox/v1.js'));\nexport const Y2024OnedollarsilverLightboxPricingV1 = lazy(() => import('../../assets/campaigns/2024/onedollarsilver/lightbox-pricing/v1.js'));\nexport const Y2024OnedollarsilverMyaccountMyplanBannerV1 = lazy(() => import('../../assets/campaigns/2024/onedollarsilver/myaccount-myplan-banner/index.js'));\nexport const Y2024OverquotauserBannerV1 = lazy(() => import('../../assets/campaigns/2024/overquotauser/banner/v1.js'));\nexport const Y2024OverquotauserMyaccountBadgeV1 = lazy(() => import('../../assets/campaigns/2024/overquotauser/myaccount-badge/index.js'));\nexport const Y2024OverquotauserMyaccountMyplanBannerV1 = lazy(() => import('../../assets/campaigns/2024/overquotauser/myaccount-myplan-banner/index.js'));\nexport const Y2024OverquotauserPricingBadgeV1 = lazy(() => import('../../assets/campaigns/2024/overquotauser/pricing-badge/v1.js'));\nexport const Y2024RegularfiftydiscountAccountBoxV2 = lazy(() => import('../../assets/campaigns/2024/regularfiftydiscount/account-box/v2.js'));\nexport const Y2024RegularfiftydiscountExitModalV2 = lazy(() => import('../../assets/campaigns/2024/regularfiftydiscount/exit-modal/v2.js'));\nexport const Y2024RegularfiftydiscountFlyinV2 = lazy(() => import('../../assets/campaigns/2024/regularfiftydiscount/flyin/v2.js'));\nexport const Y2024RegularfiftydiscountMyaccountMyplanBannerV2 = lazy(() => import('../../assets/campaigns/2024/regularfiftydiscount/myaccount-myplan-banner/v2.js'));\nexport const Y2024RegularfiftydiscountPricingBadgeV2 = lazy(() => import('../../assets/campaigns/2024/regularfiftydiscount/pricing-badge/v2.js'));\nexport const Y2024TestcampaignBannerV1 = lazy(() => import('../../assets/campaigns/2024/testcampaign/banner/index.js'));\nexport const Y2024TestcampaignBannerV2 = lazy(() => import('../../assets/campaigns/2024/testcampaign/banner/v2.js'));","import { lazy } from 'react'\nexport const Y2024GtwopromotionFlyinV1 = lazy(() => import('../../assets/promotions/2024/gtwopromotion/flyin/v1.js'));\nexport const Y2024GtwopromotionFlyinV2 = lazy(() => import('../../assets/promotions/2024/gtwopromotion/flyin/v2.js'));","import { lazy } from 'react'\nexport const Y2024AcademyBannerV1 = lazy(() => import('../../assets/launches/2024/academy/banner/v1.js'));\nexport const Y2024AcademyExitModalV1 = lazy(() => import('../../assets/launches/2024/academy/exit-modal/v1.js'));\nexport const Y2024GovernmentlaunchFlyinV1 = lazy(() => import('../../assets/launches/2024/governmentlaunch/flyin/v1.js'));\nexport const Y2024MicrosoftteamsFlyinV1 = lazy(() => import('../../assets/launches/2024/microsoftteams/flyin/v1.js'));\nexport const Y2024SalesforceFlyinV1 = lazy(() => import('../../assets/launches/2024/salesforce/flyin/v1.js'));\nexport const Y2024WorkflowsBannerV1 = lazy(() => import('../../assets/launches/2024/workflows/banner/v1.js'));\nexport const Y2024WorkflowsBannerV2 = lazy(() => import('../../assets/launches/2024/workflows/banner/v2.js'));\nexport const Y2024WorkflowsFlyinV1 = lazy(() => import('../../assets/launches/2024/workflows/flyin/v1.js'));\nexport const Y2024WorkflowsFlyinV2 = lazy(() => import('../../assets/launches/2024/workflows/flyin/v2.js'));","import { lazy } from 'react'\nexport const Y2024AnimalShelterMyaccountBadgeV2 = lazy(() => import('../../assets/announcements/2024/animal-shelter/myaccount-badge/v2.js'));\nexport const Y2024AnimalShelterMyaccountMyplanBannerV2 = lazy(() => import('../../assets/announcements/2024/animal-shelter/myaccount-myplan-banner/v2.js'));\nexport const Y2024AnimalShelterPricingBadgeV2 = lazy(() => import('../../assets/announcements/2024/animal-shelter/pricing-badge/v2.js'));\nexport const Y2024ChurchMyaccountBadgeV2 = lazy(() => import('../../assets/announcements/2024/church/myaccount-badge/v2.js'));\nexport const Y2024ChurchMyaccountMyplanBannerV2 = lazy(() => import('../../assets/announcements/2024/church/myaccount-myplan-banner/v2.js'));\nexport const Y2024ChurchPricingBadgeV2 = lazy(() => import('../../assets/announcements/2024/church/pricing-badge/v2.js'));\nexport const Y2024EducationMyaccountBadgeV2 = lazy(() => import('../../assets/announcements/2024/education/myaccount-badge/v2.js'));\nexport const Y2024EducationMyaccountMyplanBannerV2 = lazy(() => import('../../assets/announcements/2024/education/myaccount-myplan-banner/v2.js'));\nexport const Y2024EducationPricingBadgeV2 = lazy(() => import('../../assets/announcements/2024/education/pricing-badge/v2.js'));","import { StorageHelper } from '@jotforminc/storage-helper';\n\nimport { getComponentName } from './namings';\n\nimport CampaignAssetList from '../components/assets/assetList/CampaignAssetList';\nimport PromotionAssetList from '../components/assets/assetList/PromotionAssetList';\nimport LaunchAssetList from '../components/assets/assetList/LaunchAssetList';\nimport AnnouncementAssetList from '../components/assets/assetList/AnnouncementAssetList';\n\nconst AssetList = {\n ...CampaignAssetList,\n ...PromotionAssetList,\n ...LaunchAssetList,\n ...AnnouncementAssetList\n};\n\nexport const getAssetComponent = ({ assetInfo, assetType }) => {\n const componentName = getComponentName({ ...assetInfo, assetType });\n return componentName ? AssetList[componentName] : null;\n};\n\nexport const getDismissStorageItemKey = ({\n assetType,\n assetsVersion,\n campaignType\n}) => {\n return `GAM:${assetType}:${campaignType.toLowerCase()}:${assetsVersion}:dismiss`;\n};\n\nexport const checkIsAssetDismissed = ({\n assetType,\n assetsVersion,\n campaignType\n}) => {\n if (!assetType || !assetsVersion || !campaignType) {\n return false;\n }\n\n const key = getDismissStorageItemKey({\n assetType,\n assetsVersion,\n campaignType\n });\n\n return StorageHelper.getLocalStorageItem({ key }) === '1';\n};\n","import React from 'react';\nimport { string, func } from 'prop-types';\n\nimport { t } from '@jotforminc/translation';\n\nconst defaultAvatar = 'https://cdn.jotfor.ms/assets/img/v4/avatar/Podo-Guest.png';\n\nconst AccountBoxAvatar = ({\n avatarUrl, onAccountBoxToggle, username\n}) => {\n return (\n <div className=\"jfRHeader--nav-account-box\">\n <div className=\"jfRHeader--nav-account-box-avatar\">\n <button\n type=\"button\"\n aria-label={t('Account Box')}\n onClick={onAccountBoxToggle}\n >\n <img\n src={avatarUrl}\n alt={username ? `User Profile: ${username}` : 'User Profile'}\n className={avatarUrl === defaultAvatar ? 'dummy' : ''}\n />\n </button>\n </div>\n </div>\n );\n};\n\nAccountBoxAvatar.propTypes = {\n avatarUrl: string,\n onAccountBoxToggle: func,\n username: string\n};\n\nAccountBoxAvatar.defaultProps = {\n avatarUrl: defaultAvatar,\n onAccountBoxToggle: f => f,\n username: undefined\n};\n\nexport default AccountBoxAvatar;\n","export const THEME_MAP = {\n LIGHT: 'light',\n DARK: 'dark',\n GRAY: 'gray'\n};\n\nexport const THEME_CLASSNAME_MAP = {\n [THEME_MAP.DARK]: 'isDark',\n [THEME_MAP.LIGHT]: 'isLight',\n [THEME_MAP.GRAY]: 'isGray'\n};\n\nexport const USER_TYPES = {\n USER: 'USER',\n FORM_USER: 'FORM_USER'\n};\n\n// A/B Test: contactSalesButtonOnHeader\nexport const CONTACT_SALES_AB_TEST_VARIATIONS = {\n CONTROL_VARIANT: '28922',\n CONTACT_SALES_AS_CTA: '28932',\n CONTACT_SALES_AS_ITEM: '28941',\n NO_INTEGRATIONS_MENU: '28942'\n};\n\nexport const BADGE_TYPES = {\n GOVERNMENT: 'government',\n HIPAA: 'hipaa'\n};\n\nexport const RENDER_AS_TYPES = {\n LINK: 'link',\n BUTTON: 'button'\n};\n","import {\n arrayOf, bool, element, oneOf, shape, string\n} from 'prop-types';\nimport { MENU_TYPES } from '@jotforminc/constants';\nimport { RENDER_AS_TYPES, THEME_MAP, USER_TYPES } from '../constants';\n\nexport const themePropType = oneOf(Object.values(THEME_MAP));\nexport const stickyModeThemePropType = oneOf([...Object.values(THEME_MAP), '']);\n\nconst accountType = shape({\n name: oneOf(['GUEST', 'FREE', 'STORAGE', 'PREMIUM', 'BRONZE', 'ECONOMY', 'SILVER', 'OLDPREMIUM', 'PROFESSIONAL', 'GOLD', 'DIAMOND',\n 'PARTNER', 'ENTERPRISE', 'PLATINUM', 'ADMIN', 'SUPPORT', 'INTERN', 'HELPDESK'])\n});\n\nexport const userPropType = shape({\n username: string.isRequired,\n email: string,\n account_type: accountType.isRequired\n});\n\nexport const userTypePropType = oneOf([USER_TYPES.USER, USER_TYPES.FORM_USER]);\n\nexport const logoPropType = shape({\n logoUrl: string,\n logoFullLight: bool,\n enterpriseLogoSrc: string,\n customLogoAsReactElement: element,\n customLogoAsReactElementOnMobileMenuOpen: element,\n customLogoAsHtmlString: string,\n customLogoAsHtmlStringOnMobileMenuOpen: string\n});\n\nexport const logoDefaultProps = {\n logoUrl: '/',\n logoFullLight: false,\n enterpriseLogoSrc: '',\n customLogoAsReactElement: null,\n customLogoAsHtmlString: '',\n customLogoAsReactElementOnMobileMenuOpen: null,\n customLogoAsHtmlStringOnMobileMenuOpen: ''\n};\n\nexport const logoSideLinkPropType = shape({\n sideLinkUrl: string,\n sideLinkText: string,\n sideLinkTextColor: string,\n sideLinkClassName: string,\n dividerColor: string,\n sideLinkLogoAsHtmlString: string\n});\n\nexport const logoSideLinkDefaultProps = {\n sideLinkUrl: '#',\n sideLinkText: '',\n sideLinkTextColor: '',\n sideLinkClassName: '',\n dividerColor: '',\n sideLinkLogoAsHtmlString: ''\n};\n\nconst badgePropType = shape({ text: string });\n\nconst menuItemSubLinkPropType = shape({\n name: string,\n title: string,\n url: string,\n icon: string\n});\n\nconst menuItemPropType = shape({\n name: string,\n title: string,\n subTitle: string,\n url: string,\n icon: string,\n target: string,\n badge: badgePropType,\n seeMore: shape({\n title: string,\n url: string\n }),\n subLinks: arrayOf(menuItemSubLinkPropType),\n loginRequired: bool\n});\n\nexport const linkPropType = shape({\n title: string,\n url: string,\n icon: string,\n className: string,\n target: string,\n menuType: oneOf(Object.values(MENU_TYPES)),\n renderAs: oneOf(Object.values(RENDER_AS_TYPES)),\n badge: badgePropType,\n selected: bool\n});\n\nexport const menuPropType = shape({\n name: string,\n menuTitle: string,\n menuItems: arrayOf(menuItemPropType).isRequired,\n sideMenuTitle: string,\n sideMenuItems: arrayOf(menuItemPropType),\n sideMenuSeeMoreTitle: string,\n sideMenuSeeMoreUrl: string,\n seeAll: shape({\n title: string,\n url: string\n })\n});\n\nexport const navItemPropType = shape({\n name: string,\n linkProps: linkPropType,\n menuProps: menuPropType\n});\n\nexport const navItemsPropType = arrayOf(navItemPropType);\n\nexport const menuStylesPropType = shape({\n headerBackground: string,\n headerBackgroundSticky: string,\n headerHeight: string,\n logoTextColor: string,\n navMenuColor: string,\n navMenuActiveColor: string,\n hamburgerMenuColor: string,\n appPickerBorderColor: string,\n navMenuHoverColor: string\n});\n","import { CONTACT_SALES_AB_TEST_VARIATIONS, THEME_MAP } from '../constants';\n\nexport const isDevelopment = global?.JOTFORM_ENV === 'DEVELOPMENT';\nexport const isTesting = global?.JOTFORM_ENV === 'TESTING';\n\nconst ACTION_KEYS = {\n ENTER: 'Enter',\n SPACE: ' '\n};\n\nconst isActionKeyPressed = e => Object.values(ACTION_KEYS).indexOf(e.key) > -1;\n\nexport const a11yClickHandler = (event, handler = false) => {\n try {\n if (!isActionKeyPressed(event)) {\n return;\n }\n\n if (handler) {\n handler(event);\n }\n } catch (e) {\n console.error(e);\n }\n};\n\nexport const splitArray = arr => {\n const len = arr.length;\n const mid = len % 2 === 0 ? len / 2 : Math.floor(len / 2) + 1;\n return [arr.slice(0, mid), arr.slice(mid)];\n};\n\nexport const isDarkTheme = theme => THEME_MAP.DARK === theme;\n\nexport const isLightTheme = theme => THEME_MAP.LIGHT === theme;\n\nexport const isGrayTheme = theme => THEME_MAP.GRAY === theme;\n\n// TODO: we should add URL polyfill to SSR side and remove this function.\nconst removeHost = url => {\n const url_ = url.split('://');\n return url_[1] ? `/${url_[1].split('/').slice(1).join('/')}` : url;\n};\n\nexport const ensureTrailingSlash = url => {\n return url.endsWith('/') ? url : `${url}/`;\n};\n\nexport const isSamePath = (url, currentPath, selected = false, hasAnyItemMatchingWithCurrentPath = false) => {\n if (!url || !currentPath) return false;\n\n const urlWithoutSearch = url.split('?')[0];\n const pathname = removeHost(urlWithoutSearch);\n const isMatching = ensureTrailingSlash(pathname) === ensureTrailingSlash(currentPath);\n\n if (isMatching) return true;\n if (!hasAnyItemMatchingWithCurrentPath && selected) return true;\n return false;\n};\n\n// A/B Test: contactSalesButtonOnHeader\nexport const shouldRenderSignupButton = ({ hideSignupButton, contactSalesAbTestVariation }) => {\n const { CONTACT_SALES_AS_CTA } = CONTACT_SALES_AB_TEST_VARIATIONS;\n if (hideSignupButton) {\n return false;\n }\n if (CONTACT_SALES_AS_CTA === contactSalesAbTestVariation) {\n return false;\n }\n return true;\n};\n","import React, {\n createContext, useContext,\n useMemo\n} from 'react';\nimport { node } from 'prop-types';\nimport { ActionManager } from '../../utils';\nimport {\n ACTIONS_PROJECT_NAME, LOGIN_FLOW_ACTIONS_PROJECT_NAME\n} from '../../constants';\nimport { UserContext } from './UserProvider';\n\nexport const JotformActionsContext = createContext({\n logHeaderAction: f => f,\n logLoginFlowAction: f => f\n});\n\nconst JotformActionsProvider = ({ children }) => {\n const { user } = useContext(UserContext);\n\n const { registerJotformAction: logHeaderAction = f => f } = useMemo(() => new ActionManager({ user, projectName: ACTIONS_PROJECT_NAME }), [user]);\n const { registerJotformAction: logLoginFlowAction = f => f } = useMemo(() => new ActionManager({ user, projectName: LOGIN_FLOW_ACTIONS_PROJECT_NAME }), [user]);\n\n return (\n <JotformActionsContext.Provider value={{\n logHeaderAction,\n logLoginFlowAction\n }}\n >\n {children}\n </JotformActionsContext.Provider>\n );\n};\n\nJotformActionsProvider.propTypes = {\n children: node\n};\n\nJotformActionsProvider.defaultProps = {\n children: null\n};\n\nexport default JotformActionsProvider;\n","import React, { createContext, useEffect, useState } from 'react';\nimport { node } from 'prop-types';\nimport { useIsMobileScreen } from '../../hooks';\nimport { useLockBodyScroll, yieldToMain } from '../../utils';\n\nexport const MobileMenuContext = createContext();\n\nconst MobileMenuProvider = ({ children }) => {\n const [isMobileScreen] = useIsMobileScreen();\n const { lockScroll, unlockScroll } = useLockBodyScroll();\n const [isMobileMenuActive, setIsMobileMenuActive] = useState(false);\n\n useEffect(() => {\n if (!isMobileScreen) {\n setIsMobileMenuActive(false);\n return;\n }\n setIsMobileMenuActive(false);\n }, [isMobileScreen]);\n\n useEffect(() => {\n if (isMobileMenuActive) {\n lockScroll();\n } else {\n unlockScroll();\n }\n }, [isMobileMenuActive]);\n\n const onMobileMenuButtonClick = async () => {\n await yieldToMain();\n setIsMobileMenuActive(active => !active);\n };\n\n return (\n <MobileMenuContext.Provider value={{\n isMobileScreen,\n isMobileMenuActive,\n onMobileMenuButtonClick\n }}\n >\n {children}\n </MobileMenuContext.Provider>\n );\n};\n\nMobileMenuProvider.propTypes = {\n children: node\n};\n\nMobileMenuProvider.defaultProps = {\n children: null\n};\n\nexport default MobileMenuProvider;\n","import React, { createContext } from 'react';\nimport { userTypePropType } from '@jotforminc/header-body';\nimport {\n bool, node, shape\n} from 'prop-types';\nimport { useUser } from '../../hooks';\n\nexport const UserContext = createContext();\n\nconst UserProvider = ({\n user: userAsProp,\n userType: userTypeAsProp,\n isLoggedIn: isLoggedinAsProp,\n children\n}) => {\n const [user, isLoggedIn, userType] = useUser(userAsProp, userTypeAsProp, isLoggedinAsProp);\n\n return (\n <UserContext.Provider value={{ user, isLoggedIn, userType }}>\n {children}\n </UserContext.Provider>\n );\n};\n\nUserProvider.propTypes = {\n user: shape({}),\n userType: userTypePropType,\n children: node,\n isLoggedIn: bool\n};\n\nUserProvider.defaultProps = {\n user: undefined,\n userType: undefined,\n isLoggedIn: undefined,\n children: null\n};\n\nexport default UserProvider;\n","export const LOGIN_FLOW_APP_NAME = 'jfHeaderReact';\n\nexport const ACTIONS_PROJECT_NAME = 'megaMenuHeaderReact';\n\nexport const LOGIN_FLOW_ACTIONS_PROJECT_NAME = 'LoginFlowCommonHeader';\n\nexport const CUSTOMER_SUPPORT_ACTIONS_PROJECT_NAME = 'CustomerSupport';\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgCloseRevised = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.7559 6.42259C15.0814 6.09715 15.0814 5.56951 14.7559 5.24408C14.4305 4.91864 13.9028 4.91864 13.5774 5.24408L10 8.82149L6.42259 5.24408C6.09715 4.91864 5.56951 4.91864 5.24408 5.24408C4.91864 5.56951 4.91864 6.09715 5.24408 6.42259L8.82149 10L5.24408 13.5774C4.91864 13.9028 4.91864 14.4305 5.24408 14.7559C5.56951 15.0814 6.09715 15.0814 6.42259 14.7559L10 11.1785L13.5774 14.7559C13.9028 15.0814 14.4305 15.0814 14.7559 14.7559C15.0814 14.4305 15.0814 13.9028 14.7559 13.5774L11.1785 10L14.7559 6.42259Z\",\n fill: \"#343C6A\"\n})));\nexport default SvgCloseRevised;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgRocket = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.90929 6.10205C5.907 2.11118 13.4431 0.667786 14.3876 1.61232C15.3321 2.55686 13.8887 10.0929 9.89787 11.0906C10.441 11.9054 10.1929 13.0088 9.35325 13.5126L7.49438 14.6279C7.33102 14.726 7.12024 14.6286 7.08892 14.4407L6.65529 11.8389L4.161 9.34463L1.55922 8.911C1.3713 8.87968 1.27397 8.66891 1.37199 8.50554L2.48731 6.64667C2.99111 5.80699 4.09452 5.55888 4.90929 6.10205ZM10.2727 7.14023C9.8821 7.53086 9.24876 7.53086 8.85814 7.14023C8.46751 6.7496 8.46751 6.11627 8.85814 5.72564C9.24876 5.33501 9.8821 5.33501 10.2727 5.72564C10.6634 6.11627 10.6634 6.7496 10.2727 7.14023ZM2.08438 14.1809C1.92692 14.2364 1.76407 14.0735 1.81953 13.9161L2.61138 11.6679C2.91238 10.8133 4.01904 10.6184 4.70054 11.2999C5.38204 11.9814 5.18711 13.0881 4.33255 13.3891L2.08438 14.1809Z\",\n fill: \"#0066C3\"\n})));\nexport default SvgRocket;","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgRocket = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"#596ED7\",\n viewBox: \"0 0 24 24\",\n className: \"w-32 h-32\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.414 10.627a1 1 0 1 0 1.414-1.414 1 1 0 0 0-1.414 1.414Z\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M2 5a3 3 0 0 1 3-3h14a3 3 0 0 1 3 3v14a3 3 0 0 1-3 3H4.99h2.667c-1.877-.421-2.19-2.964-.47-3.827l1.53-.77-2.12-2.12-.731 1.497C5.014 18.526 2.44 18.235 2 16.343V5Zm11.04 10.203c4.263-.728 7.113-9.193 6.031-10.274C17.99 3.847 9.525 6.697 8.797 10.96l-1.592.016a1 1 0 0 0-.804.419L5.1 13.217a.2.2 0 0 0 .114.31l2.543.636 2.122 2.121.636 2.544a.2.2 0 0 0 .31.114l1.812-1.294a1 1 0 0 0 .419-.824l-.016-1.621Z\",\n clipRule: \"evenodd\"\n})));\nexport default SvgRocket;","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M14.828 10.627a1 1 0 1 1-1.414-1.414 1 1 0 0 1 1.414 1.414Z\"/>\n <path fill-rule=\"evenodd\" d=\"M5 2a3 3 0 0 0-3 3v14a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3V5a3 3 0 0 0-3-3H5Zm-.284 17.067a.2.2 0 0 0 .259.259l2.31-.889a1.3 1.3 0 1 0-1.68-1.68l-.889 2.31ZM19.071 4.93c1.081 1.081-1.768 9.546-6.031 10.274l.016 1.621a1 1 0 0 1-.42.824l-1.811 1.294a.2.2 0 0 1-.31-.114l-.636-2.544-2.122-2.121-2.543-.636a.2.2 0 0 1-.114-.31l1.3-1.823a1 1 0 0 1 .804-.42l1.592-.015c.728-4.263 9.193-7.113 10.274-6.031Z\" clip-rule=\"evenodd\"/>\n</svg>\n","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgEnterpriseRocketMini = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.4142 10.6274C13.8048 11.0179 14.4379 11.0179 14.8284 10.6274C15.219 10.2369 15.219 9.60373 14.8284 9.21321C14.4379 8.82269 13.8048 8.82269 13.4142 9.21321C13.0237 9.60373 13.0237 10.2369 13.4142 10.6274Z\",\n fill: \"#596ED7\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2 5C2 3.34315 3.34315 2 5 2H19C20.6569 2 22 3.34315 22 5V19C22 20.6569 20.6569 22 19 22H5L4.99095 22H7.65685C5.77994 21.5789 5.46721 19.0362 7.18615 18.1729L8.71751 17.4038L6.59619 15.2825L5.86581 16.7796C5.0139 18.5258 2.44117 18.2353 2 16.3431V5ZM13.0399 15.2028C17.3033 14.4749 20.1526 6.01043 19.0711 4.92894C17.9896 3.84745 9.52514 6.69671 8.79722 10.9602L7.20504 10.9759C6.8856 10.9791 6.5869 11.1347 6.40122 11.3947L5.09968 13.2168C5.0177 13.3316 5.07708 13.4929 5.21392 13.5271L7.75737 14.163L9.87869 16.2843L10.5146 18.8277C10.5488 18.9646 10.7101 19.024 10.8248 18.942L12.6369 17.6476C12.9025 17.4579 13.0588 17.1506 13.0556 16.8242L13.0399 15.2028Z\",\n fill: \"#596ED7\"\n})));\nexport default SvgEnterpriseRocketMini;","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"148\" height=\"28\" fill=\"none\" viewBox=\"0 0 148 28\">\n <g id=\"jotform-logomark\">\n <path id=\"jotform-logomark-first\" fill=\"#FF6100\" d=\"M19.294 3.934a3.341 3.341 0 0 1 4.727 0 3.344 3.344 0 0 1 0 4.728l-11.817 11.82a3.341 3.341 0 0 1-4.726 0 3.344 3.344 0 0 1 0-4.727l11.816-11.82Z\"/>\n <path id=\"jotform-logomark-second\" fill=\"#0099FF\" d=\"M9.25.98a3.344 3.344 0 0 1 4.727 4.728l-8.271 8.274a3.342 3.342 0 0 1-4.727 0 3.344 3.344 0 0 1 0-4.729L9.25.98Z\"/>\n <path id=\"jotform-logomark-third\" fill=\"#FFB629\" d=\"M18.704 17.527a3.344 3.344 0 0 1 4.726 4.728l-4.726 4.729a3.342 3.342 0 1 1-4.727-4.728l4.727-4.729Z\"/>\n <path id=\"jotform-logomark-fourth\" fill=\"#0A1551\" d=\"M1.671 28h4.667c.745 0 1.118-.9.591-1.427L1.426 21.07C.9 20.542 0 20.915 0 21.659v4.67C0 27.251.748 28 1.671 28Z\"/>\n </g>\n <g id=\"jotform-wordmark\">\n <path id=\"jotform-wordmark-j\" fill=\"#0A1551\" d=\"m91.25 6.02.257.076V2.37l-.118-.055c-.18-.086-.471-.164-.807-.22A7.085 7.085 0 0 0 89.432 2c-1.592 0-3.382.549-4.309 1.538-.926.989-1.437 2.398-1.437 4.083v.787h-2.327v4.277h2.327v13h4.67v-13h3.151V8.408h-3.15v-.727c0-.758.254-1.194.58-1.448.335-.262.775-.354 1.177-.354.604 0 .954.086 1.137.14Z\"/>\n <path id=\"jotform-wordmark-0\" fill=\"#0A1551\" d=\"M37.847 17.628H33l.003.186c.038 2.363.896 4.309 2.332 5.672 1.47 1.395 3.567 2.199 6.068 2.199 5.005 0 8.511-3.708 8.511-8.142V3.692h-5.24V17.4c0 .99-.3 1.862-.873 2.492-.577.633-1.413.997-2.435.997-.837 0-1.64-.239-2.261-.753-.625-.515-1.042-1.29-1.136-2.317a.222.222 0 0 0-.067-.14l-.055-.052Z\"/>\n <path id=\"jotform-wordmark-t\" fill=\"#0A1551\" d=\"M128.34 25.685h-4.865V9.16h4.674v1.329c1.077-1.137 2.787-1.722 4.264-1.722 2.026 0 3.74.806 4.679 2.33.579-.771 1.244-1.33 1.994-1.706.882-.442 1.865-.624 2.934-.624 1.509 0 3.007.457 4.132 1.487C147.281 11.29 148 12.871 148 15.05v10.635h-4.738v-9.773c0-.8-.196-1.459-.581-1.914-.378-.446-.974-.737-1.87-.737-.818 0-1.454.314-1.889.806-.439.497-.688 1.193-.688 1.973v9.645H133.4v-9.773c0-.796-.202-1.457-.592-1.913-.383-.447-.98-.738-1.858-.738-.839 0-1.482.309-1.919.796-.441.491-.691 1.186-.691 1.982v9.646Z\"/>\n <path id=\"jotform-wordmark-f\" fill=\"#0A1551\" fill-rule=\"evenodd\" d=\"M100.934 8.767c-4.812 0-8.457 3.542-8.457 8.459 0 4.885 3.644 8.459 8.457 8.459 4.813 0 8.457-3.574 8.457-8.459 0-4.917-3.645-8.459-8.457-8.459Zm0 12.512c-.948 0-1.85-.346-2.515-1.014-.664-.667-1.112-1.675-1.112-3.039 0-1.38.449-2.388 1.111-3.05.664-.664 1.567-1.003 2.516-1.003.949 0 1.852.339 2.516 1.003.662.662 1.111 1.67 1.111 3.05s-.449 2.388-1.111 3.05c-.664.664-1.567 1.003-2.516 1.003Z\" clip-rule=\"evenodd\"/>\n <path id=\"jotform-wordmark-o\" fill=\"#0A1551\" fill-rule=\"evenodd\" d=\"M60.242 8.767c-4.813 0-8.457 3.542-8.457 8.459 0 4.885 3.644 8.459 8.457 8.459 4.813 0 8.457-3.574 8.457-8.459 0-4.917-3.645-8.459-8.457-8.459Zm0 12.512c-.948 0-1.85-.346-2.516-1.014-.663-.667-1.11-1.675-1.11-3.039 0-1.38.447-2.388 1.11-3.05.664-.664 1.566-1.003 2.516-1.003s1.851.339 2.516 1.003c.662.662 1.11 1.67 1.11 3.05s-.448 2.388-1.11 3.05c-.665.664-1.567 1.003-2.516 1.003Z\" clip-rule=\"evenodd\"/>\n <path id=\"jotform-wordmark-r\" fill=\"#0A1551\" d=\"M121.601 8.863v5.043l-.379-.078a5.9 5.9 0 0 0-1.206-.124c-1.032 0-1.949.257-2.607.88-.653.62-1.104 1.652-1.104 3.317v7.784h-4.852V8.849h4.725v1.625c1.169-1.43 2.984-1.707 4.123-1.707.365 0 .695.034 1.009.066l.291.03Z\"/>\n <path id=\"jotform-wordmark-m\" fill=\"#0A1551\" d=\"m79.956 21.587-.257.076c-.182.054-.533.14-1.138.14-.402 0-.843-.092-1.178-.354-.326-.254-.58-.69-.58-1.448v-7.464h3.153V8.295h-3.153V3.692h-4.666v4.603h-2.33v4.242h2.33v7.523c0 1.687.511 3.097 1.439 4.086.928.99 2.71 1.539 4.304 1.539a7.1 7.1 0 0 0 1.15-.095c.336-.057.627-.134.808-.22l.118-.056v-3.727Z\"/>\n </g>\n</svg>\n","var _path, _g, _path2, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgVisual = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 404 529\"\n}, props), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask0_3_44\",\n style: {\n maskType: \"alpha\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: 8,\n y: 8,\n width: 401,\n height: 521\n}, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.76401 8.67554L306.976 8.67559L408.707 194.488L408.706 528.16L82.5688 528.16L8.76394 391.143L8.76401 8.67554Z\",\n fill: \"black\"\n}))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask0_3_44)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_f_3_44)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.4959 14.8997C16.4959 13.0961 17.958 11.634 19.7615 11.634L342.634 11.6341L342.633 430.573L19.7615 430.573C17.9579 430.573 16.4958 429.111 16.4958 427.308L16.4959 14.8997Z\",\n fill: \"black\",\n fillOpacity: 0.33\n})))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.08,\n d: \"M301.837 397.352L301.837 410.026L20.8598 410.026L12.9069 400.454C11.8825 399.22 12.7594 397.352 14.3625 397.352L301.837 397.352Z\",\n fill: \"url(#paint0_linear_3_44)\"\n})), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_f_3_44\",\n x: -32.7911,\n y: -37.653,\n width: 424.712,\n height: 517.513,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"BackgroundImageFix\",\n result: \"shape\"\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 24.6435,\n result: \"effect1_foregroundBlur_3_44\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter1_d_3_44\",\n x: 231.317,\n y: 332.22,\n width: 90.9652,\n height: 90.9652,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", {\n dy: 7.41311\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 9.26639\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.140347 0 0 0 0 0.167595 0 0 0 0 0.358333 0 0 0 0.35 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_3_44\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_3_44\",\n result: \"shape\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter2_d_3_44\",\n x: 231.317,\n y: 332.22,\n width: 90.9652,\n height: 90.9652,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", {\n dy: 7.41311\n}), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 9.26639\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.140347 0 0 0 0 0.167595 0 0 0 0 0.358333 0 0 0 1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_3_44\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_3_44\",\n result: \"shape\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_3_44\",\n x1: 163.077,\n y1: 398.54,\n x2: 163.077,\n y2: 410.026,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", null), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint1_radial_3_44\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(306.734 332.883) rotate(-133.12) scale(439.819 394.624)\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#EDF0FF\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\"\n})), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint2_radial_3_44\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(299.256 8.67564) rotate(127.884) scale(497.211 341.601)\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#5369AB\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#050C34\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint3_linear_3_44\",\n x1: 58.152,\n y1: 185.394,\n x2: 6.1062,\n y2: 185.394,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.085,\n stopColor: \"white\",\n stopOpacity: 0.42\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.8,\n stopColor: \"white\",\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint4_radial_3_44\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(245.88 347.663) rotate(48.651) scale(67.918 56.3871)\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#DDDEED\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.769399,\n stopColor: \"#EBEBEB\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint5_linear_3_44\",\n x1: 288.642,\n y1: 368.26,\n x2: 278.112,\n y2: 356.087,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#CDD1EC\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\",\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint6_linear_3_44\",\n x1: 288.642,\n y1: 368.26,\n x2: 278.112,\n y2: 356.087,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#CDD1EC\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\",\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_3_44\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.10623 11.9412C6.10623 10.1376 7.5683 8.67554 9.37185 8.67554L301.947 8.67559C304.591 8.67559 306.735 10.8192 306.735 13.4635L306.734 392.936C306.734 395.58 304.591 397.724 301.947 397.724L9.3718 397.724C7.56825 397.724 6.10616 396.262 6.10616 394.458L6.10623 11.9412Z\",\n fill: \"white\"\n})))));\nexport default SvgVisual;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgClose = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.8047 5.13807C12.0651 4.87772 12.0651 4.45561 11.8047 4.19526C11.5444 3.93491 11.1223 3.93491 10.8619 4.19526L8 7.05719L5.13807 4.19526C4.87772 3.93491 4.45561 3.93491 4.19526 4.19526C3.93491 4.45561 3.93491 4.87772 4.19526 5.13807L7.05719 8L4.19526 10.8619C3.93491 11.1223 3.93491 11.5444 4.19526 11.8047C4.45561 12.0651 4.87772 12.0651 5.13807 11.8047L8 8.94281L10.8619 11.8047C11.1223 12.0651 11.5444 12.0651 11.8047 11.8047C12.0651 11.5444 12.0651 11.1223 11.8047 10.8619L8.94281 8L11.8047 5.13807Z\",\n fill: \"#343C6A\"\n})));\nexport default SvgClose;","var _g, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgVisual = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 368 235\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_0_918)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_d_0_918)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M318.878 39.9045C318.76 39.8522 318.665 39.7574 318.613 39.6387L317.188 36.4005C317.006 35.9876 316.42 35.9876 316.238 36.4005L314.814 39.6387C314.761 39.7574 314.667 39.8522 314.548 39.9045L311.31 41.3293C310.897 41.511 310.897 42.0969 311.31 42.2786L314.548 43.7034C314.667 43.7556 314.761 43.8504 314.814 43.9692L316.238 47.2073C316.42 47.6203 317.006 47.6203 317.188 47.2073L318.613 43.9692C318.665 43.8504 318.76 43.7556 318.878 43.7034L322.116 42.2786C322.529 42.0969 322.529 41.511 322.116 41.3293L318.878 39.9045Z\",\n fill: \"#D1D0FF\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter1_d_0_918)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M229.065 14.5425C228.988 14.5089 228.927 14.4479 228.894 14.3716L227.978 12.2899C227.861 12.0245 227.484 12.0245 227.368 12.2899L226.452 14.3716C226.418 14.4479 226.357 14.5089 226.281 14.5425L224.199 15.4584C223.934 15.5752 223.934 15.9519 224.199 16.0687L226.281 16.9846C226.357 17.0182 226.418 17.0791 226.452 17.1555L227.368 19.2371C227.484 19.5026 227.861 19.5026 227.978 19.2371L228.894 17.1555C228.927 17.0791 228.988 17.0182 229.065 16.9846L231.146 16.0687C231.412 15.9519 231.412 15.5752 231.146 15.4584L229.065 14.5425Z\",\n fill: \"#D1D0FF\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter2_d_0_918)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M274.065 111.542C273.988 111.509 273.927 111.448 273.894 111.372L272.978 109.29C272.861 109.024 272.484 109.024 272.368 109.29L271.452 111.372C271.418 111.448 271.357 111.509 271.281 111.542L269.199 112.458C268.934 112.575 268.934 112.952 269.199 113.069L271.281 113.985C271.357 114.018 271.418 114.079 271.452 114.155L272.368 116.237C272.484 116.503 272.861 116.503 272.978 116.237L273.894 114.155C273.927 114.079 273.988 114.018 274.065 113.985L276.146 113.069C276.412 112.952 276.412 112.575 276.146 112.458L274.065 111.542Z\",\n fill: \"#D1D0FF\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter3_d_0_918)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.5821 118.309C40.5131 118.279 40.4579 118.223 40.4275 118.154L39.5989 116.271C39.4932 116.031 39.1524 116.031 39.0467 116.271L38.2181 118.154C38.1877 118.223 38.1325 118.279 38.0635 118.309L36.1801 119.138C35.94 119.243 35.94 119.584 36.1801 119.69L38.0635 120.518C38.1325 120.549 38.1877 120.604 38.2181 120.673L39.0467 122.556C39.1524 122.796 39.4932 122.796 39.5989 122.556L40.4275 120.673C40.4579 120.604 40.5131 120.549 40.5821 120.518L42.4655 119.69C42.7056 119.584 42.7056 119.243 42.4655 119.138L40.5821 118.309Z\",\n fill: \"#D1D0FF\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M277.312 156.651C393.709 151.068 387.331 31.5 387.331 31.5L446.71 245.407C156.467 428.823 1.58816 158.357 175.975 65.8911C178.36 64.6266 181.543 65.9355 182.346 68.5593C182.582 69.3304 182.584 70.1482 182.38 70.9034C170.023 116.614 217.646 159.513 277.312 156.651Z\",\n fill: \"url(#paint0_linear_0_918)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M252.879 176.529C383.619 195.388 386.579 77.831 386.646 72.1617L384.994 300.208C50.9348 411.853 -18.5497 114.826 177.004 64.9861C179.638 64.315 182.275 66.3039 182.275 69.0211C182.275 69.8306 182.033 70.6315 181.612 71.3225C156.29 112.805 194.019 168.039 252.879 176.529Z\",\n fill: \"url(#paint1_linear_0_918)\",\n fillOpacity: 0.6\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M252.879 176.529C383.619 195.388 386.579 77.831 386.646 72.1617L384.994 300.208C50.9348 411.853 -18.5497 114.826 177.004 64.9861C179.638 64.315 182.275 66.3039 182.275 69.0211C182.275 69.8306 182.033 70.6315 181.612 71.3225C156.29 112.805 194.019 168.039 252.879 176.529Z\",\n fill: \"url(#paint2_radial_0_918)\",\n fillOpacity: 0.8\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M184.954 53.2073C186.777 46.2453 200.549 43.7274 202.276 45.3751C204.002 47.0228 201.364 60.1692 194.071 61.9097C195.063 63.3311 194.61 65.2559 193.075 66.1348L189.678 68.0804C189.379 68.2514 188.994 68.0816 188.937 67.7538L188.145 63.2151L183.586 58.8639L178.831 58.1074C178.488 58.0528 178.31 57.6851 178.489 57.4001L180.527 54.1574C181.448 52.6926 183.465 52.2597 184.954 53.2073ZM194.756 55.0184C194.042 55.6998 192.884 55.6998 192.17 55.0184C191.456 54.3369 191.456 53.2321 192.17 52.5506C192.884 51.8692 194.042 51.8692 194.756 52.5506C195.469 53.2321 195.469 54.3369 194.756 55.0184Z\",\n fill: \"#A3A0F8\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter4_d_0_918)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M157.316 175.632C157.205 175.584 157.117 175.496 157.069 175.385L155.746 172.378C155.577 171.995 155.033 171.995 154.864 172.378L153.541 175.385C153.493 175.496 153.405 175.584 153.294 175.632L150.288 176.955C149.904 177.124 149.904 177.668 150.288 177.837L153.294 179.16C153.405 179.208 153.493 179.296 153.541 179.406L154.864 182.413C155.033 182.797 155.577 182.797 155.746 182.413L157.069 179.406C157.117 179.296 157.205 179.208 157.316 179.16L160.322 177.837C160.706 177.668 160.706 177.124 160.322 176.955L157.316 175.632Z\",\n fill: \"#D1D0FF\",\n fillOpacity: 0.5,\n shapeRendering: \"crispEdges\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter5_d_0_918)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.3156 28.6321C90.2054 28.5836 90.1173 28.4955 90.0688 28.3853L88.7458 25.3784C88.5771 24.995 88.033 24.995 87.8643 25.3784L86.5413 28.3853C86.4928 28.4955 86.4047 28.5836 86.2944 28.6321L83.2876 29.9551C82.9041 30.1238 82.9041 30.6679 83.2876 30.8366L86.2944 32.1596C86.4047 32.2081 86.4928 32.2962 86.5413 32.4064L87.8643 35.4133C88.033 35.7967 88.5771 35.7967 88.7458 35.4133L90.0688 32.4064C90.1173 32.2962 90.2054 32.2081 90.3156 32.1596L93.3225 30.8366C93.7059 30.6679 93.7059 30.1238 93.3225 29.9551L90.3156 28.6321Z\",\n fill: \"#D1D0FF\"\n})))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_d_0_918\",\n x: 298.595,\n y: 23.6857,\n width: 36.2365,\n height: 36.2365,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 6.20256\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.564516 0 0 0 0 0.4375 0 0 0 0 1 0 0 0 1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_0_918\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_0_918\",\n result: \"shape\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter1_d_0_918\",\n x: 216,\n y: 4.09082,\n width: 23.3454,\n height: 23.3454,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 4\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.564516 0 0 0 0 0.4375 0 0 0 0 1 0 0 0 1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_0_918\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_0_918\",\n result: \"shape\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter2_d_0_918\",\n x: 261,\n y: 101.091,\n width: 23.3454,\n height: 23.3454,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 4\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.564516 0 0 0 0 0.4375 0 0 0 0 1 0 0 0 1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_0_918\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_0_918\",\n result: \"shape\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter3_d_0_918\",\n x: 27.1392,\n y: 107.23,\n width: 24.3672,\n height: 24.3672,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 4.4304\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.564516 0 0 0 0 0.4375 0 0 0 0 1 0 0 0 1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_0_918\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_0_918\",\n result: \"shape\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter4_d_0_918\",\n x: 136.709,\n y: 158.8,\n width: 37.1925,\n height: 37.1925,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 6.6456\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.564516 0 0 0 0 0.4375 0 0 0 0 1 0 0 0 1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_0_918\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_0_918\",\n result: \"shape\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter5_d_0_918\",\n x: 74.1392,\n y: 16.23,\n width: 28.3316,\n height: 28.3317,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 4.4304\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_0_918\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_0_918\",\n result: \"shape\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_0_918\",\n x1: 191.117,\n y1: 47.8732,\n x2: 382.537,\n y2: 49.2776,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#5322FB\",\n stopOpacity: 0.85\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#5322FB\",\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_0_918\",\n x1: 227.707,\n y1: 63.7176,\n x2: 279.863,\n y2: 287.973,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#2E3EC6\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#5322FB\",\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint2_radial_0_918\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(180.08 68.148) rotate(31.4443) scale(101.913 101.913)\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.62\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\",\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_0_918\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 368,\n height: 235,\n fill: \"white\"\n})))));\nexport default SvgVisual;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgRocket = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.36405 9.15307C8.86063 3.16677 20.1647 1.00167 21.5815 2.41848C22.9983 3.83529 20.8332 15.1394 14.8469 16.6359C15.6617 17.8581 15.2895 19.5132 14.03 20.2689L11.2417 21.9419C10.9966 22.0889 10.6805 21.9429 10.6335 21.661L9.98306 17.7584L6.24162 14.0169L2.33896 13.3665C2.05707 13.3195 1.91107 13.0034 2.0581 12.7583L3.73108 9.97C4.48679 8.71048 6.14191 8.33831 7.36405 9.15307ZM15.4092 10.7103C14.8233 11.2963 13.8733 11.2963 13.2873 10.7103C12.7014 10.1244 12.7014 9.1744 13.2873 8.58845C13.8733 8.00251 14.8233 8.00251 15.4092 8.58845C15.9952 9.1744 15.9952 10.1244 15.4092 10.7103ZM3.12669 21.2714C2.89051 21.3546 2.64623 21.1103 2.72942 20.8741L3.9172 17.5019C4.36869 16.22 6.02868 15.9276 7.05093 16.9499C8.07319 17.9721 7.78079 19.6321 6.49894 20.0836L3.12669 21.2714Z\",\n fill: \"white\"\n})));\nexport default SvgRocket;","var _g, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgVisual = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 344 156\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_0_3)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 344,\n height: 156,\n fill: \"#FFB629\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 344,\n height: 156,\n fill: \"url(#paint0_radial_0_3)\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 344,\n height: 156,\n fill: \"url(#paint1_radial_0_3)\",\n fillOpacity: 0.3\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M344 -32.9082H0V219.74H74.6175C45.5021 201.081 26.2064 168.44 26.2064 131.292C26.2064 73.3151 73.2056 26.3159 131.182 26.3159C189.159 26.3159 236.158 73.3151 236.158 131.292C236.158 168.44 216.862 201.081 187.747 219.74H344V-32.9082Z\",\n fill: \"url(#paint2_linear_0_3)\",\n fillOpacity: 0.6\n}), /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_d_0_3)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M56.601 163.023C56.7026 163.034 56.8046 163.007 56.887 162.947L59.1342 161.299C59.4208 161.089 59.8204 161.319 59.7817 161.673L59.4784 164.443C59.4672 164.544 59.4946 164.646 59.555 164.729L61.2027 166.976C61.4129 167.262 61.1821 167.662 60.8289 167.623L58.0589 167.32C57.9573 167.309 57.8553 167.336 57.7729 167.397L55.5257 169.044C55.2391 169.254 54.8395 169.024 54.8781 168.67L55.1815 165.901C55.1927 165.799 55.1653 165.697 55.1049 165.615L53.4572 163.367C53.247 163.081 53.4778 162.681 53.831 162.72L56.601 163.023Z\",\n fill: \"#D1D0FF\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter1_d_0_3)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M280.263 88.7594C280.156 88.7122 280.07 88.6266 280.023 88.5194L278.736 85.5959C278.572 85.223 278.043 85.223 277.879 85.5959L276.593 88.5194C276.546 88.6266 276.46 88.7122 276.353 88.7594L273.429 90.0458C273.056 90.2098 273.056 90.7388 273.429 90.9029L276.353 92.1892C276.46 92.2364 276.546 92.322 276.593 92.4292L277.879 95.3528C278.043 95.7256 278.572 95.7256 278.736 95.3528L280.023 92.4292C280.07 92.322 280.156 92.2364 280.263 92.1892L283.186 90.9029C283.559 90.7388 283.559 90.2098 283.186 90.0458L280.263 88.7594Z\",\n fill: \"#D1D0FF\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter2_d_0_3)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M231.419 29.6872C231.35 29.6568 231.295 29.6018 231.265 29.5329L230.438 27.6535C230.332 27.4138 229.992 27.4138 229.887 27.6535L229.06 29.5329C229.03 29.6018 228.975 29.6568 228.906 29.6872L227.026 30.5141C226.786 30.6196 226.786 30.9596 227.026 31.0651L228.906 31.8921C228.975 31.9224 229.03 31.9774 229.06 32.0463L229.887 33.9258C229.992 34.1655 230.332 34.1655 230.438 33.9258L231.265 32.0463C231.295 31.9774 231.35 31.9224 231.419 31.8921L233.298 31.0651C233.538 30.9596 233.538 30.6196 233.298 30.5141L231.419 29.6872Z\",\n fill: \"#D1D0FF\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter3_d_0_3)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M303.015 33.0031C302.946 32.9728 302.891 32.9177 302.861 32.8488L302.034 30.9694C301.928 30.7297 301.588 30.7297 301.483 30.9694L300.656 32.8488C300.626 32.9177 300.571 32.9728 300.502 33.0031L298.622 33.83C298.382 33.9355 298.382 34.2756 298.622 34.381L300.502 35.208C300.571 35.2383 300.626 35.2933 300.656 35.3623L301.483 37.2417C301.588 37.4814 301.928 37.4814 302.034 37.2417L302.861 35.3623C302.891 35.2933 302.946 35.2383 303.015 35.208L304.894 34.381C305.134 34.2756 305.134 33.9355 304.894 33.83L303.015 33.0031Z\",\n fill: \"#D1D0FF\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter4_d_0_3)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.0392 84.3188C29.9768 84.2914 29.927 84.2416 29.8996 84.1792L29.1514 82.4789C29.056 82.262 28.7483 82.262 28.6529 82.4789L27.9048 84.1792C27.8773 84.2416 27.8275 84.2914 27.7652 84.3188L26.0648 85.067C25.848 85.1624 25.848 85.4701 26.0648 85.5655L27.7652 86.3136C27.8275 86.3411 27.8773 86.3909 27.9048 86.4532L28.6529 88.1536C28.7483 88.3704 29.056 88.3704 29.1514 88.1536L29.8996 86.4532C29.927 86.3909 29.9768 86.3411 30.0392 86.3136L31.7395 85.5655C31.9564 85.4701 31.9564 85.1624 31.7395 85.067L30.0392 84.3188Z\",\n fill: \"#D1D0FF\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M248.286 126.905C353.375 121.865 347.617 13.9123 347.617 13.9123L401.227 207.039C139.181 372.637 -0.652297 128.445 156.794 44.9624C158.947 43.8207 161.82 45.0024 162.546 47.3714C162.759 48.0676 162.761 48.806 162.576 49.4878C151.419 90.7575 194.416 129.489 248.286 126.905Z\",\n fill: \"url(#paint3_linear_0_3)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M226.226 144.852C344.266 161.879 346.938 55.7423 346.998 50.6238L345.507 256.516C43.9004 357.315 -18.8339 89.1434 157.723 44.1453C160.1 43.5394 162.482 45.335 162.482 47.7883C162.482 48.5191 162.263 49.2423 161.882 49.8661C139.02 87.3191 173.084 137.187 226.226 144.852Z\",\n fill: \"url(#paint4_linear_0_3)\",\n fillOpacity: 0.6\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M226.226 144.852C344.266 161.879 346.938 55.7423 346.998 50.6238L345.507 256.516C43.9004 357.315 -18.8339 89.1434 157.723 44.1453C160.1 43.5394 162.482 45.335 162.482 47.7883C162.482 48.5191 162.263 49.2423 161.882 49.8661C139.02 87.3191 173.084 137.187 226.226 144.852Z\",\n fill: \"url(#paint5_radial_0_3)\",\n fillOpacity: 0.8\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M164.9 33.5107C166.546 27.2251 178.98 24.9518 180.539 26.4394C182.097 27.927 179.716 39.7963 173.131 41.3677C174.027 42.651 173.618 44.3889 172.232 45.1824L169.165 46.939C168.896 47.0934 168.548 46.9401 168.496 46.6441L167.781 42.5463L163.665 38.6178L159.372 37.9348C159.062 37.8855 158.901 37.5535 159.063 37.2962L160.903 34.3685C161.735 33.046 163.555 32.6552 164.9 33.5107ZM173.749 35.1459C173.105 35.7611 172.06 35.7611 171.415 35.1459C170.771 34.5306 170.771 33.5331 171.415 32.9179C172.06 32.3026 173.105 32.3026 173.749 32.9179C174.394 33.5331 174.394 34.5306 173.749 35.1459Z\",\n fill: \"#A3A0F8\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter5_d_0_3)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.322 112.292C119.222 112.248 119.143 112.169 119.099 112.069L117.905 109.354C117.752 109.008 117.261 109.008 117.109 109.354L115.914 112.069C115.87 112.169 115.791 112.248 115.691 112.292L112.977 113.486C112.63 113.639 112.63 114.13 112.977 114.282L115.691 115.477C115.791 115.521 115.87 115.6 115.914 115.7L117.109 118.414C117.261 118.761 117.752 118.761 117.905 118.414L119.099 115.7C119.143 115.6 119.222 115.521 119.322 115.477L122.037 114.282C122.383 114.13 122.383 113.639 122.037 113.486L119.322 112.292Z\",\n fill: \"#D1D0FF\",\n fillOpacity: 0.5,\n shapeRendering: \"crispEdges\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter6_d_0_3)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.7879 25.8813C57.6883 25.8375 57.6088 25.758 57.565 25.6584L56.3705 22.9437C56.2182 22.5975 55.727 22.5975 55.5747 22.9437L54.3802 25.6584C54.3364 25.758 54.2569 25.8375 54.1573 25.8813L51.4426 27.0758C51.0964 27.2281 51.0964 27.7193 51.4426 27.8716L54.1573 29.0661C54.2569 29.1099 54.3364 29.1894 54.3802 29.289L55.5747 32.0037C55.727 32.3499 56.2182 32.3499 56.3705 32.0037L57.565 29.289C57.6088 29.1894 57.6883 29.1099 57.7879 29.0661L60.5026 27.8716C60.8488 27.7193 60.8488 27.2281 60.5026 27.0758L57.7879 25.8813Z\",\n fill: \"#D1D0FF\"\n})))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_d_0_3\",\n x: 37.3771,\n y: 145.219,\n width: 39.9058,\n height: 39.9058,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 8\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.564516 0 0 0 0 0.4375 0 0 0 0 1 0 0 0 1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_0_3\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_0_3\",\n result: \"shape\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter1_d_0_3\",\n x: 261.95,\n y: 74.1162,\n width: 32.7162,\n height: 32.7162,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 5.6\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.564516 0 0 0 0 0.4375 0 0 0 0 1 0 0 0 1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_0_3\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_0_3\",\n result: \"shape\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter2_d_0_3\",\n x: 210.846,\n y: 11.4737,\n width: 38.6318,\n height: 38.6318,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 8\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.564516 0 0 0 0 0.4375 0 0 0 0 1 0 0 0 1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_0_3\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_0_3\",\n result: \"shape\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter3_d_0_3\",\n x: 282.442,\n y: 14.7896,\n width: 38.6318,\n height: 38.6318,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 8\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.564516 0 0 0 0 0.4375 0 0 0 0 1 0 0 0 1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_0_3\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_0_3\",\n result: \"shape\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter4_d_0_3\",\n x: 17.9022,\n y: 74.3162,\n width: 22,\n height: 22,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 4\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.564516 0 0 0 0 0.4375 0 0 0 0 1 0 0 0 1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_0_3\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_0_3\",\n result: \"shape\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter5_d_0_3\",\n x: 100.717,\n y: 97.0947,\n width: 33.5793,\n height: 33.5793,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 6\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.564516 0 0 0 0 0.4375 0 0 0 0 1 0 0 0 1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_0_3\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_0_3\",\n result: \"shape\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter6_d_0_3\",\n x: 43.1829,\n y: 14.684,\n width: 25.5793,\n height: 25.5793,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /*#__PURE__*/React.createElement(\"feOffset\", null), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 4\n}), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_0_3\"\n}), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_0_3\",\n result: \"shape\"\n})), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint0_radial_0_3\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(344 5.61774e-06) rotate(163.179) scale(325.686 120.29)\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#2F4EAD\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#050C34\"\n})), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint1_radial_0_3\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(338.391 -8.09829e-06) rotate(144.789) scale(203.653 265.049)\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#7957FF\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#7957FF\",\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_0_3\",\n x1: -13.2527,\n y1: 10.6272,\n x2: 252.905,\n y2: 163.408,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#000318\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#000318\",\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint3_linear_0_3\",\n x1: 170.464,\n y1: 28.6949,\n x2: 343.289,\n y2: 29.9628,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#5322FB\",\n stopOpacity: 0.85\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#5322FB\",\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint4_linear_0_3\",\n x1: 203.5,\n y1: 43,\n x2: 250.589,\n y2: 245.469,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#2E3EC6\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#5322FB\",\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint5_radial_0_3\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(160.5 47) rotate(31.4443) scale(92.0122 92.0122)\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.62\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\",\n stopOpacity: 0\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_0_3\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 344,\n height: 156,\n fill: \"white\"\n})))));\nexport default SvgVisual;","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgJfLogo = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 467 532\"\n}, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.02\n}, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M-215.009 412.939C-248.325 379.84 -248.325 326.176 -215.009 293.077L-12.6618 91.9077C20.6543 58.8088 74.6702 58.8087 107.986 91.9077C141.302 125.007 141.302 178.671 107.986 211.77L-94.3607 412.939C-127.677 446.038 -181.693 446.038 -215.009 412.939ZM102.654 593.225C69.3383 626.324 69.3383 679.988 102.654 713.087C135.97 746.186 189.986 746.186 223.302 713.087L343.54 593.634C376.856 560.535 376.856 506.871 343.54 473.772C310.224 440.673 256.208 440.673 222.892 473.772L102.654 593.225ZM-87.5602 737.92C-69.5753 737.92 -60.6251 716.884 -73.2905 704.606L-206.024 575.931C-218.689 563.653 -240.389 572.33 -240.389 589.765V698.876C-240.389 720.404 -222.32 737.92 -200.113 737.92H-87.5602ZM-49.5934 436.456C-82.9094 469.555 -82.9094 523.219 -49.5934 556.318C-16.2773 589.416 37.7387 589.416 71.0547 556.317L344.462 284.692C377.778 251.593 377.778 197.929 344.462 164.83C311.146 131.731 257.13 131.731 223.814 164.83L-49.5934 436.456Z\"\n}))));\nexport default SvgJfLogo;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgLineV2 = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 513 320\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.05,\n d: \"M84.6172 319.5C32.6172 162.5 252.617 205 320.117 231C387.617 257 490.117 336.5 300.617 274C111.117 211.5 56.6172 162.5 16.1173 114C-24.3827 65.5 17.6171 -14 128.617 51.5C239.617 117 476.617 227.5 458.117 33C439.617 -161.5 242.617 -28.5 404.117 69.5C533.317 147.9 755.617 187.5 656.117 76C556.617 -35.5 638.117 -120 638.117 -120\",\n stroke: \"#5369AB\",\n strokeWidth: 2\n})));\nexport default SvgLineV2;","var _rect, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgUser = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 60 60\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 60,\n height: 60,\n rx: 30,\n fill: \"#F3F3FE\"\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M29.9997 16.6274C26.3071 16.6274 23.3137 19.6209 23.3137 23.3135C23.3137 27.0061 26.3071 29.9995 29.9997 29.9995C33.6923 29.9995 36.6858 27.0061 36.6858 23.3135C36.6858 19.6209 33.6923 16.6274 29.9997 16.6274ZM29.9997 31.3367C23.5264 31.3367 17.9648 35.9641 17.9648 42.0344C17.9648 42.7729 18.5635 43.3716 19.3021 43.3716H40.6974C41.4359 43.3716 42.0346 42.7729 42.0346 42.0344C42.0346 35.9641 36.4731 31.3367 29.9997 31.3367Z\",\n fill: \"#DADEF3\"\n})));\nexport default SvgUser;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgEmail = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.666016 5.01377V12C0.666016 13.1046 1.56145 14 2.66602 14H13.3327C14.4373 14 15.3327 13.1046 15.3327 12V5.01377L9.14627 9.34426C8.45763 9.8263 7.54106 9.8263 6.85242 9.34426L0.666016 5.01377ZM15.2537 3.44154C15.012 2.60874 14.2434 2 13.3327 2H2.66602C1.75528 2 0.986717 2.60874 0.745027 3.44154L7.61704 8.25195C7.84659 8.41263 8.15211 8.41263 8.38166 8.25195L15.2537 3.44154Z\",\n fill: \"#DADEF3\"\n})));\nexport default SvgEmail;","var _rect, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgOrganization = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 60 60\"\n}, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 60,\n height: 60,\n rx: 30,\n fill: \"#3E35BA\"\n})), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M27.9945 16.6274C27.256 16.6274 26.6573 17.2261 26.6573 17.9647H25.3201C23.1045 17.9647 21.3085 19.7607 21.3085 21.9763V27.3251H20.6399C18.4243 27.3251 16.6282 29.1212 16.6282 31.3367V40.6972C15.8897 40.6972 15.291 41.2959 15.291 42.0344C15.291 42.7729 15.8897 43.3716 16.6282 43.3716H17.9654H21.3085H22.6457H37.355H38.6922H42.0352H43.3724C44.1109 43.3716 44.7096 42.7729 44.7096 42.0344C44.7096 41.2959 44.1109 40.6972 43.3724 40.6972V31.3367C43.3724 29.1212 41.5763 27.3251 39.3608 27.3251H38.6922V21.9763C38.6922 19.7607 36.8961 17.9647 34.6805 17.9647H33.3433C33.3433 17.2261 32.7446 16.6274 32.0061 16.6274H27.9945ZM38.6922 29.9995H39.3608C40.0993 29.9995 40.698 30.5982 40.698 31.3367V40.6972H38.6922V29.9995ZM36.0178 21.9763V28.6623V40.6972H32.6747V36.6856C32.6747 35.9471 32.076 35.3484 31.3375 35.3484H28.6631C27.9246 35.3484 27.3259 35.9471 27.3259 36.6856V40.6972H23.9829V28.6623V21.9763C23.9829 21.2378 24.5816 20.6391 25.3201 20.6391H34.6805C35.4191 20.6391 36.0178 21.2378 36.0178 21.9763ZM21.3085 29.9995V40.6972H19.3026V31.3367C19.3026 30.5982 19.9013 29.9995 20.6399 29.9995H21.3085ZM25.9887 25.9879C25.9887 26.7264 26.5874 27.3251 27.3259 27.3251C28.0644 27.3251 28.6631 26.7264 28.6631 25.9879V24.6507C28.6631 23.9122 28.0644 23.3135 27.3259 23.3135C26.5874 23.3135 25.9887 23.9122 25.9887 24.6507V25.9879ZM32.6747 27.3251C31.9362 27.3251 31.3375 26.7264 31.3375 25.9879V24.6507C31.3375 23.9122 31.9362 23.3135 32.6747 23.3135C33.4133 23.3135 34.0119 23.9122 34.0119 24.6507V25.9879C34.0119 26.7264 33.4133 27.3251 32.6747 27.3251ZM31.3375 31.3367C31.3375 32.0753 31.9362 32.674 32.6747 32.674C33.4133 32.674 34.0119 32.0753 34.0119 31.3367V29.9995C34.0119 29.261 33.4133 28.6623 32.6747 28.6623C31.9362 28.6623 31.3375 29.261 31.3375 29.9995V31.3367ZM27.3259 32.674C26.5874 32.674 25.9887 32.0753 25.9887 31.3367V29.9995C25.9887 29.261 26.5874 28.6623 27.3259 28.6623C28.0644 28.6623 28.6631 29.261 28.6631 29.9995V31.3367C28.6631 32.0753 28.0644 32.674 27.3259 32.674Z\",\n fill: \"#7777FF\"\n})));\nexport default SvgOrganization;","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M13.707 7.293a1 1 0 0 1 0 1.414L10.414 12l3.293 3.293a1 1 0 0 1-1.414 1.414l-4-4a1 1 0 0 1 0-1.414l4-4a1 1 0 0 1 1.414 0Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M10.293 7.293a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1 0 1.414l-4 4a1 1 0 0 1-1.414-1.414L13.586 12l-3.293-3.293a1 1 0 0 1 0-1.414Z\" clip-rule=\"evenodd\"/>\n</svg>\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nconst SvgLogo = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 127 24\"\n}, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.538 3.37218C17.6568 2.25306 19.4706 2.25306 20.5894 3.37218C21.7082 4.49129 21.7082 6.30574 20.5894 7.42486L10.461 17.5566C9.34223 18.6757 7.52838 18.6757 6.40962 17.5566C5.29087 16.4375 5.29087 14.623 6.40962 13.5039L16.538 3.37218Z\",\n fill: \"#FF6100\"\n})), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.92896 0.839338C9.04771 -0.279779 10.8616 -0.279779 11.9803 0.839338C13.0991 1.95846 13.0991 3.7729 11.9803 4.89202L4.89043 11.9842C3.77168 13.1033 1.95782 13.1033 0.839065 11.9842C-0.279688 10.8651 -0.279688 9.05065 0.839065 7.93153L7.92896 0.839338Z\",\n fill: \"#0099FF\"\n})), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.0315 15.0236C17.1503 13.9045 18.9642 13.9045 20.0829 15.0236C21.2017 16.1427 21.2017 17.9572 20.0829 19.0763L16.0315 23.129C14.9128 24.2481 13.0989 24.2481 11.9802 23.129C10.8614 22.0099 10.8614 20.1954 11.9802 19.0763L16.0315 15.0236Z\",\n fill: \"#FFB629\"\n})), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.43237 24H5.43284C6.0709 24 6.39044 23.2283 5.93926 22.777L1.22261 18.0588C0.771435 17.6075 0 17.9271 0 18.5654V22.5672C0 23.3585 0.641296 24 1.43237 24Z\",\n fill: \"#0A1551\"\n})), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.2147 5.15934L78.4346 5.22481V2.03179L78.3335 1.98389C78.1786 1.91053 77.9295 1.84414 77.6419 1.7958C77.3505 1.74683 77.0068 1.71429 76.6565 1.71429C75.2917 1.71429 73.7572 2.18489 72.9627 3.03268C72.1687 3.88003 71.7308 5.08774 71.7308 6.53269V7.20729H69.736V10.8727H71.7308V22.0156H75.7344V10.8727H78.4346V7.20729H75.7344V6.58339C75.7344 5.93409 75.9523 5.56031 76.231 5.34259C76.5183 5.11801 76.8959 5.03952 77.2404 5.03952C77.7583 5.03952 78.0586 5.11287 78.2147 5.15934Z\",\n fill: \"#0A1551\"\n})), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.44 15.1093L28.2856 15.1093L28.2882 15.2688C28.3208 17.2949 29.0561 18.9623 30.2873 20.1305C31.5477 21.3264 33.3449 22.0156 35.4882 22.0156C39.7785 22.0156 42.7834 18.8371 42.7834 15.0365V3.16439H38.2918V14.9149C38.2918 15.7631 38.0355 16.5114 37.5436 17.0509C37.0488 17.5936 36.3326 17.9057 35.4568 17.9057C34.7391 17.9057 34.0503 17.7009 33.5181 17.2607C32.9831 16.8184 32.6257 16.1545 32.5451 15.2741C32.5408 15.2265 32.5189 15.1839 32.4872 15.1539L32.44 15.1093Z\",\n fill: \"#0A1551\"\n})), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.006 22.0155H105.835V7.85163H109.842V8.99044C110.765 8.0158 112.231 7.51455 113.497 7.51455C115.233 7.51455 116.702 8.20544 117.507 9.51199C118.004 8.85083 118.573 8.37213 119.217 8.04941C119.973 7.67025 120.815 7.51455 121.732 7.51455C123.025 7.51455 124.309 7.90662 125.273 8.78937C126.241 9.67634 126.857 11.0324 126.857 12.9003V22.0155H122.796V13.6388C122.796 12.9539 122.628 12.3886 122.298 11.9986C121.974 11.6163 121.463 11.3666 120.695 11.3666C119.994 11.3666 119.449 11.6357 119.076 12.0577C118.7 12.4833 118.486 13.0798 118.486 13.7482V22.0155H114.343V13.6388C114.343 12.9561 114.169 12.3904 113.835 11.9995C113.507 11.6155 112.995 11.3666 112.242 11.3666C111.524 11.3666 110.972 11.6314 110.598 12.0489C110.22 12.47 110.006 13.0653 110.006 13.7482V22.0155Z\",\n fill: \"#0A1551\"\n})), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M86.5148 7.51466C82.39 7.51466 79.266 10.5501 79.266 14.7651C79.266 18.9526 82.3893 22.0156 86.5148 22.0156C90.6403 22.0156 93.7637 18.9526 93.7637 14.7651C93.7637 10.5501 90.6396 7.51466 86.5148 7.51466ZM86.5148 18.2391C85.7026 18.2391 84.929 17.943 84.3587 17.3699C83.7902 16.7985 83.4063 15.934 83.4063 14.7651C83.4063 13.5822 83.7906 12.7182 84.3582 12.1508C84.9277 11.5816 85.701 11.2911 86.5148 11.2911C87.3286 11.2911 88.1019 11.5816 88.6714 12.1508C89.239 12.7182 89.6233 13.5822 89.6233 14.7651C89.6233 15.948 89.239 16.812 88.6714 17.3794C88.1019 17.9486 87.3286 18.2391 86.5148 18.2391Z\",\n fill: \"#0A1551\"\n})), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M51.6357 7.51467C47.5109 7.51467 44.3868 10.5502 44.3868 14.7651C44.3868 18.9526 47.5102 22.0156 51.6357 22.0156C55.7612 22.0156 58.8845 18.9526 58.8845 14.7651C58.8845 10.5502 55.7605 7.51467 51.6357 7.51467ZM51.6357 18.2391C50.8235 18.2391 50.0499 17.943 49.4796 17.3699C48.9111 16.7985 48.5272 15.934 48.5272 14.7651C48.5272 13.5822 48.9115 12.7182 49.4791 12.1508C50.0485 11.5816 50.8219 11.2911 51.6357 11.2911C52.4495 11.2911 53.2228 11.5816 53.7923 12.1508C54.3599 12.7182 54.7442 13.5822 54.7442 14.7651C54.7442 15.948 54.3599 16.812 53.7923 17.3794C53.2228 17.9486 52.4495 18.2391 51.6357 18.2391Z\",\n fill: \"#0A1551\"\n})), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M104.23 7.59687V11.9193L103.904 11.8525C103.516 11.7729 103.18 11.7465 102.87 11.7465C101.986 11.7465 101.201 11.9666 100.637 12.5014C100.076 13.0326 99.6901 13.917 99.6901 15.344V22.0156H95.531V7.58453H99.5813V8.97736C100.583 7.75259 102.139 7.51466 103.115 7.51466C103.428 7.51466 103.711 7.5437 103.98 7.57128L104.23 7.59687Z\",\n fill: \"#0A1551\"\n})), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.5337 18.5029L68.3136 18.5684C68.1574 18.6149 67.8568 18.6883 67.3383 18.6883C66.9935 18.6883 66.6156 18.6097 66.3279 18.385C66.0491 18.1671 65.8309 17.7931 65.8309 17.1434V10.7463L68.5337 10.7463V7.10998H65.8309V3.16439H61.8318V7.10998L59.8351 7.10998L59.8351 10.7463H61.8318V17.1942C61.8318 18.64 62.2701 19.8485 63.0649 20.6963C63.8602 21.5447 65.3878 22.0156 66.7539 22.0156C67.1045 22.0156 67.4486 21.983 67.7402 21.934C68.0281 21.8856 68.2775 21.8192 68.4325 21.7458L68.5337 21.6979V18.5029Z\",\n fill: \"#0A1551\"\n})));\nexport default SvgLogo;","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M5.357 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6ZM12 6a4 4 0 1 0 0 8 4 4 0 0 0 0-8Zm0 9c-3.688 0-7 2.523-7 6a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1c0-3.477-3.313-6-7-6Zm6.357-13a3 3 0 1 0 0 6 3 3 0 0 0 0-6ZM6.003 10.195a1 1 0 0 0-1.298-.923C2.615 9.927 1 11.744 1 14a1 1 0 0 0 1 1h4.255a1 1 0 0 0 .82-1.572 5.964 5.964 0 0 1-1.072-3.233Zm13.292-.923a1 1 0 0 0-1.298.923 5.965 5.965 0 0 1-1.072 3.233 1 1 0 0 0 .82 1.572H22a1 1 0 0 0 1-1c0-2.256-1.615-4.073-3.705-4.728Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M10.5 2a1 1 0 0 0-1 1h-1a3 3 0 0 0-3 3v4H5a3 3 0 0 0-3 3v7a1 1 0 1 0 0 2h20a1 1 0 1 0 0-2v-7a3 3 0 0 0-3-3h-.5V6a3 3 0 0 0-3-3h-1a1 1 0 0 0-1-1h-3Zm8 10h.5a1 1 0 0 1 1 1v7h-1.5v-8Zm-2-6v14H14v-3a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3H7.5V6a1 1 0 0 1 1-1h7a1 1 0 0 1 1 1Zm-11 6v8H4v-7a1 1 0 0 1 1-1h.5ZM9 9a1 1 0 0 0 2 0V8a1 1 0 1 0-2 0v1Zm5 1a1 1 0 0 1-1-1V8a1 1 0 1 1 2 0v1a1 1 0 0 1-1 1Zm-1 3a1 1 0 1 0 2 0v-1a1 1 0 1 0-2 0v1Zm-3 1a1 1 0 0 1-1-1v-1a1 1 0 1 1 2 0v1a1 1 0 0 1-1 1Z\" clip-rule=\"evenodd\"/>\n</svg>\n","import { useEffect, useRef, useState } from 'react';\nimport { fetchUser } from '../utils';\n\nconst checkIsUserLoggedIn = user => {\n if (!user) return false;\n if (user?.username === 'guest_apiDemo') return false;\n if (user?.account_type?.name !== 'GUEST') {\n return true;\n }\n return false;\n};\n\nconst setUserToWindow = user => {\n if (!global.window.user) {\n global.window.user = user;\n }\n const event = new Event('jfheader-user-ready');\n global.window.dispatchEvent(event);\n};\n\nconst exceptionallyOverwriteUserDataForFormUser = (user, isFormUser) => {\n if (!isFormUser) return;\n const usr = user;\n usr.username = user.email; // Form users don't have a username\n usr.usage = {};\n usr.account_type = { limits: {}, name: 'FORM_USER' };\n};\n\nconst isFormUser = userType => userType === 'FORM_USER';\n\nconst useUser = (userAsProp, userTypeAsProp, isLoggedInAsProp) => {\n const userTypeRef = useRef('USER');\n const [user, setUser] = useState(userAsProp);\n const [userType, setUserType] = useState(userTypeAsProp);\n const [isLoggedIn, setIsLoggedIn] = useState(isLoggedInAsProp || checkIsUserLoggedIn(userAsProp));\n\n useEffect(() => {\n const initUser = async () => {\n if (userAsProp) {\n setUserToWindow(user);\n exceptionallyOverwriteUserDataForFormUser(user, isFormUser(userTypeAsProp));\n return;\n }\n\n try {\n const { type, credentials } = await fetchUser() || {};\n userTypeRef.current = type;\n setUserToWindow(credentials);\n exceptionallyOverwriteUserDataForFormUser(credentials, isFormUser(type));\n setUser(credentials);\n } catch (e) {\n console.log('combinedInfo error', e);\n }\n };\n\n initUser();\n }, []);\n\n useEffect(() => {\n setUserType(userTypeAsProp || userTypeRef.current);\n }, [user]);\n\n useEffect(() => {\n if (!user) return;\n setIsLoggedIn(checkIsUserLoggedIn(user));\n }, [user]);\n\n return [user, isLoggedIn, userType];\n};\n\nexport default useUser;\n","import { useEffect, useState } from 'react';\nimport { Hooks } from '@jotforminc/uikit';\n\nconst useStickyHeader = (\n activateBehaviour = false,\n scrollTreshold = 0,\n themeProp,\n stickyModeThemeProp\n) => {\n const [isSticky, setIsSticky] = useState(false);\n const [theme, setTheme] = useState(themeProp);\n\n useEffect(() => {\n if (theme !== themeProp) {\n setTheme(themeProp);\n }\n }, [themeProp]);\n\n Hooks.useEffectIgnoreFirst(() => {\n if (!stickyModeThemeProp) return;\n if (isSticky) {\n setTheme(stickyModeThemeProp);\n } else {\n setTheme(themeProp);\n }\n }, [isSticky]);\n\n useEffect(() => {\n const rootEl = document.querySelector('html');\n const CLASS_NAME = 'jfHeader-sticky-on'; // use this className for backwards compatibility\n\n const handleScroll = () => {\n if (!activateBehaviour) return;\n const isTresholdExceeded = rootEl?.scrollTop > scrollTreshold;\n setIsSticky(isTresholdExceeded);\n\n if (isTresholdExceeded) {\n rootEl?.classList.add(CLASS_NAME);\n } else {\n rootEl?.classList.remove(CLASS_NAME);\n }\n };\n\n document.addEventListener('scroll', handleScroll);\n return () => {\n document.removeEventListener('scroll', handleScroll);\n };\n }, []);\n\n return [isSticky, theme];\n};\n\nexport default useStickyHeader;\n","import { useEffect, useState } from 'react';\n\nconst useLazyLoginGroup = () => {\n const [event, setEvent] = useState(null);\n const [load, setLoad] = useState(false);\n\n useEffect(() => {\n const handleEvent = e => {\n if (!event) {\n setEvent(e);\n setLoad(true);\n }\n\n global.window.removeEventListener('touchstart', handleEvent);\n global.window.removeEventListener('pointermove', handleEvent);\n };\n\n global.window.addEventListener('touchstart', handleEvent);\n global.window.addEventListener('pointermove', handleEvent);\n\n return () => {\n global.window.removeEventListener('touchstart', handleEvent);\n global.window.removeEventListener('pointermove', handleEvent);\n };\n }, []);\n\n return [load, event];\n};\n\nexport default useLazyLoginGroup;\n","import { useEffect, useState } from 'react';\n\nconst MOBILE_BREAKPOINT = 1024;\n\nconst useIsMobileScreen = () => {\n const isMobileScreen = () => window?.innerWidth <= MOBILE_BREAKPOINT;\n const [isMobile, setIsMobile] = useState(isMobileScreen());\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(isMobileScreen());\n };\n handleResize();\n global.window.addEventListener('resize', handleResize);\n return () => {\n global.window.removeEventListener('resize', handleResize);\n };\n }, []);\n\n return [isMobile];\n};\n\nexport default useIsMobileScreen;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { getRootElement } from './utils';\nimport { ENTERPRSE_PROMOTIONS_ROOT_EL_ID } from '../constants';\n\nconst renderModal = ({ Modal = null, onClose = f => f, ...props }) => {\n if (!Modal) return null;\n const rootEl = getRootElement(ENTERPRSE_PROMOTIONS_ROOT_EL_ID);\n\n const handleClose = () => {\n ReactDOM.unmountComponentAtNode(rootEl);\n onClose();\n };\n\n ReactDOM.render(\n <Modal onClose={handleClose} {...props} />,\n rootEl\n );\n};\n\nexport default renderModal;\n","import React from 'react';\nimport { func, node } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { ALL_TEXTS } from '@jotforminc/ep-utils';\nimport CloseIcon from '../../../../assets/svg/close_revised.svg';\n\nexport const DialogRenderer = ({ children }) => (<div className=\"jfBasicModal educationReportModal\">{children}</div>);\n\nDialogRenderer.propTypes = { children: node };\nDialogRenderer.defaultProps = { children: null };\n\nexport const ContentRenderer = ({ children, ...props }) => (\n <div {...props} className=\"jfBasicModal-content-wrapper\">\n <div className=\"jfBasicModal-content esw-content\">\n {children}\n </div>\n </div>\n);\n\nContentRenderer.propTypes = { children: node };\nContentRenderer.defaultProps = { children: null };\n\nexport const HeaderRenderer = ({ onCloseClick, ...props }) => (\n <button\n {...props}\n type=\"button\"\n className=\"close-button\"\n aria-label={t(ALL_TEXTS.CLOSE_MODAL)}\n onClick={onCloseClick}\n >\n <CloseIcon />\n </button>\n);\n\nHeaderRenderer.propTypes = { onCloseClick: func };\nHeaderRenderer.defaultProps = { onCloseClick: f => f };\n","import React, { useRef } from 'react';\nimport { Modal } from '@jotforminc/uikit';\nimport { func, string } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport {\n PrefilledLeadFormAside, ALL_TEXTS, AUTOMATED_NURTURING_SOURCES, gaAttributesPropType, gaFormTrackingItemsPropType, userPropType\n} from '@jotforminc/ep-utils';\nimport { ContentRenderer, DialogRenderer, HeaderRenderer } from './Renderers';\nimport '../../../../styles/educationToolkitModal.scss';\n\nconst EducationReportModal = (({\n user,\n title,\n middleTitle,\n gaAttributes,\n gaAttributesClose,\n gaFormTrackingItems,\n descriptionText,\n onClose,\n onCloseClick,\n onFormSubmit,\n ...props\n}) => {\n const { EDUCATION_REPORT_MODAL: EDUCATION_REPORT_MODAL_NUR } = AUTOMATED_NURTURING_SOURCES;\n\n const uikitModalRef = useRef(null);\n\n const handleCloseClick = () => {\n uikitModalRef.current?.hide();\n };\n\n return (\n <Modal\n ref={uikitModalRef}\n defaultVisible={true}\n closeOnEscPress={true}\n closeOnOutsideClick={false}\n DialogRenderer={DialogRenderer}\n ContentRenderer={prps => <ContentRenderer {...gaAttributes} {...prps} />}\n HeaderRenderer={() => <HeaderRenderer {...gaAttributesClose} onCloseClick={handleCloseClick} />}\n onModalClose={onClose}\n >\n <div className=\"content-wrapper\">\n {/* left col */}\n <div className=\"left-col\">\n <div className='title-section'>\n {title && <h4 className='title'>{t(title)}</h4>}\n {middleTitle && <h4 className='middleTitle'>{t(middleTitle)}</h4>}\n {descriptionText && <p className='description'>{t(descriptionText)}</p>}\n </div>\n <PrefilledLeadFormAside\n user={user}\n formID='230313713253949'\n devFormID='241862485601963'\n gaAttributes={gaAttributes}\n gaFormTrackingItems={gaFormTrackingItems}\n title={t(title)}\n automatedNurturingSource={EDUCATION_REPORT_MODAL_NUR}\n classNames=\"form-iframe\"\n onFormSubmit={onFormSubmit}\n {...props}\n />\n </div>\n {/* right col */}\n <div className=\"right-col\">\n <img\n alt={t(ALL_TEXTS.EDUCATION_REPORT_TITLE)}\n src=\"//cdn.jotfor.ms/assets/img/enterprise/education-report-modal/cover.png\"\n className=\"visual\"\n />\n </div>\n\n </div>\n </Modal>\n );\n});\n\nEducationReportModal.propTypes = {\n title: string,\n middleTitle: string,\n descriptionText: string,\n explanationText: string,\n user: userPropType.isRequired,\n gaAttributes: gaAttributesPropType.isRequired,\n gaAttributesClose: gaAttributesPropType.isRequired,\n gaFormTrackingItems: gaFormTrackingItemsPropType.isRequired,\n formUiModifier: string,\n onClose: func,\n onCloseClick: func,\n onFormSubmit: func\n};\n\nEducationReportModal.defaultProps = {\n title: '',\n middleTitle: '',\n descriptionText: '',\n explanationText: '',\n formUiModifier: '',\n onClose: f => f,\n onCloseClick: f => f,\n onFormSubmit: f => f\n};\n\nexport default EducationReportModal;\n","import React, { useEffect } from 'react';\nimport { func } from 'prop-types';\nimport {\n ASSET_IDENTIFIER, ALL_TEXTS, GA_FORM_TRACKING_ITEMS, userPropType,\n GA_SUFFIXES, createGaAttributes, gaDataLayerPushClose, mapCallbacksToGaTrackingItems, setEPActions\n} from '@jotforminc/ep-utils';\nimport EducationReportModal from './EducationReportModal';\n\n// Educator's Technology Toolkit Report Modal\nconst EttEducationGatedContentModal = (({\n user,\n onClose\n}) => {\n const { CAMPAIGN: { ETT_EDUCATION_GATED_CONTENT_MODAL: target } } = ASSET_IDENTIFIER;\n let { [target]: gaFormTrackingItems } = GA_FORM_TRACKING_ITEMS;\n\n const gaAttributes = createGaAttributes(target);\n const gaAttributesClose = createGaAttributes(target, GA_SUFFIXES.CLOSE);\n\n useEffect(() => {\n setEPActions({ asset: target, target, action: 'seen' });\n }, []);\n\n const handleClose = () => {\n gaDataLayerPushClose(gaAttributes);\n setEPActions({ asset: target, target, action: 'close' });\n onClose();\n };\n\n const handleCloseClick = () => {\n setEPActions({ asset: target, target: 'closeButton', action: 'click' });\n };\n\n const handleGetInsightsNowClick = () => {\n setEPActions({ asset: target, target: 'getInsightsNowButton', action: 'click' });\n };\n\n const handleFormSubmit = () => {\n setEPActions({ asset: target, target, action: 'formSubmit' });\n };\n\n gaFormTrackingItems = mapCallbacksToGaTrackingItems(gaFormTrackingItems, [handleGetInsightsNowClick]);\n\n return (\n <EducationReportModal\n user={user}\n middleTitle={ALL_TEXTS.EDUCATION_REPORT_DOWNLOAD_TITLE}\n gaAttributes={gaAttributes}\n gaAttributesClose={gaAttributesClose}\n gaFormTrackingItems={gaFormTrackingItems}\n onClose={handleClose}\n onCloseClick={handleCloseClick}\n onFormSubmit={handleFormSubmit}\n />\n );\n});\n\nEttEducationGatedContentModal.propTypes = {\n user: userPropType.isRequired,\n onClose: func\n};\n\nEttEducationGatedContentModal.defaultProps = {\n onClose: f => f\n};\n\nexport default EttEducationGatedContentModal;\n","import { renderModal } from '@jotforminc/ep-utils';\nimport { EttEducationGatedContentModal } from '../components';\n\nconst renderEttEducationGatedContentModal = async props => {\n renderModal({\n Modal: EttEducationGatedContentModal,\n ...props\n });\n};\n\nexport default renderEttEducationGatedContentModal;\n","import { renderEttEducationGatedContentModal } from '@jotforminc/enterprise-promotions';\n\n// Educator's Technology Toolkit Report Modal\nexport const initEpEttGatedContentModal = user => {\n const isEnabled = true;\n const urlParam = 'ettgcm';\n const urlParams = new URLSearchParams(global.window.location.search);\n const hasUrlParam = urlParams.has(urlParam);\n const shouldChangeButtonBehaviour = isEnabled || hasUrlParam;\n const downloadButtonEl = document.querySelector('.education-download[data-jfa=\"pdf-download-navigator-button\"]');\n\n if (!shouldChangeButtonBehaviour || !downloadButtonEl) return;\n\n downloadButtonEl?.setAttribute('href', '#');\n\n downloadButtonEl?.addEventListener('click', e => {\n e.preventDefault();\n renderEttEducationGatedContentModal({ user });\n });\n};\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { getRootElement } from './utils';\n\nconst renderAsset = ({ Asset, rootElementId, ...props }) => {\n const rootEl = getRootElement(rootElementId);\n\n const handleClose = () => {\n ReactDOM.unmountComponentAtNode(rootEl);\n };\n\n ReactDOM.render(\n <Asset onClose={handleClose} {...props} />,\n rootEl\n );\n};\n\nexport default renderAsset;\n","import React from 'react';\nimport { func, node } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { IconXmark } from '@jotforminc/svg-icons';\nimport { ALL_TEXTS } from '@jotforminc/ep-utils';\n\nexport const DialogRenderer = ({ children }) => (<div className=\"jfBasicModal healthcare-report-modal\">{children}</div>);\n\nDialogRenderer.propTypes = { children: node };\nDialogRenderer.defaultProps = { children: null };\n\nexport const ContentRenderer = ({ children, ...props }) => (\n <div {...props} className=\"healthcare-report-modal-content\">\n {children}\n </div>\n);\n\nContentRenderer.propTypes = { children: node };\nContentRenderer.defaultProps = { children: null };\n\nexport const HeaderRenderer = ({ onCloseClick, ...props }) => (\n <>\n <button\n {...props}\n type=\"button\"\n aria-label={t(ALL_TEXTS.CLOSE_MODAL)}\n className=\"healthcare-report-modal-close size-32\"\n onClick={onCloseClick}\n >\n <IconXmark />\n </button>\n </>\n);\n\nHeaderRenderer.propTypes = { onCloseClick: func };\nHeaderRenderer.defaultProps = { onCloseClick: f => f };\n","import React, { useEffect, useRef } from 'react';\nimport { Modal } from '@jotforminc/uikit';\nimport { func, object } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport {\n ALL_TEXTS, healthcareReportModalSeenAtUserSettingsKey, ASSET_IDENTIFIER, userPropType, GA_FORM_TRACKING_ITEMS,\n setEpUserSettings, createGaAttributes, GA_SUFFIXES, gaDataLayerPushClose, setEPActions, mapCallbacksToGaTrackingItems,\n PrefilledLeadFormAside\n} from '@jotforminc/ep-utils';\nimport { ContentRenderer, DialogRenderer, HeaderRenderer } from './Renderers';\nimport '../../../../styles/healthcareReportModal.scss';\nimport '../../../../styles/dialogShared.scss';\n\nconst HealthcareReportModal = ({\n user,\n modalProps,\n onClose\n}) => {\n const uikitModalRef = useRef(null);\n const { CAMPAIGN: { HEALTHCARE_REPORT_MODAL: target } } = ASSET_IDENTIFIER;\n let { [target]: gaFormTrackingItems } = GA_FORM_TRACKING_ITEMS;\n\n const gaAttributes = createGaAttributes(target);\n const gaAttributesClose = createGaAttributes(target, GA_SUFFIXES.CLOSE);\n\n useEffect(() => {\n setEpUserSettings(healthcareReportModalSeenAtUserSettingsKey);\n setEPActions({ asset: target, target, action: 'seen' });\n }, []);\n\n const handleCloseModalClick = () => {\n uikitModalRef.current?.hide();\n setEPActions({ asset: target, target: 'closeButton', action: 'click' });\n };\n\n const handleClose = () => {\n gaDataLayerPushClose(gaAttributes);\n setEPActions({ asset: target, target: 'onClose', action: 'click' });\n onClose();\n };\n\n const handleGetInsightsNowClick = () => {\n setEPActions({ asset: target, target: 'getInsightsNowButton', action: 'click' });\n };\n\n const handleFormSubmit = () => {\n setEPActions({ asset: target, target, action: 'formSubmit' });\n // saveCustomerAsHubspotFormByUsername ({ lastProductAssetInteraction: sdrSource });\n };\n\n gaFormTrackingItems = mapCallbacksToGaTrackingItems(gaFormTrackingItems, [handleGetInsightsNowClick]);\n\n return (\n <Modal\n ref={uikitModalRef}\n defaultVisible={true}\n closeOnEscPress={false}\n closeOnOutsideClick={false}\n DialogRenderer={DialogRenderer}\n ContentRenderer={props => <ContentRenderer {...gaAttributes} {...props} />}\n HeaderRenderer={() => <HeaderRenderer {...gaAttributesClose} onCloseClick={handleCloseModalClick} />}\n onModalClose={handleClose}\n {...modalProps}\n >\n <div className='left-col'>\n <div className='left-col-header'>\n <img src=\"//cdn.jotfor.ms/assets/img/enterprise/healthcare-report/healthcare-icon.png\" alt={t(ALL_TEXTS.HEALTHCARE_REPORT_MODAL_TITLE)} className=\"icon\" />\n <div className='title-wrapper'>\n <h3 className=\"healthcare-report-modal-main-title\">{t(ALL_TEXTS.HEALTHCARE_REPORT_MODAL_TITLE)}</h3>\n <p className=\"healthcare-report-modal-message\">{t(ALL_TEXTS.HEALTHCARE_REPORT_MODAL_CONTENT)}</p>\n </div>\n </div>\n <PrefilledLeadFormAside\n user={user}\n formID='240733421066954'\n formUiModifier='downloadModal'\n gaAttributes={gaAttributes}\n gaFormTrackingItems={gaFormTrackingItems}\n title={t(ALL_TEXTS.HEALTHCARE_REPORT_MODAL_TITLE)}\n onFormSubmit={handleFormSubmit}\n />\n </div>\n <div className='right-col'>\n <div className='visual-wrapper'>\n <img src=\"//cdn.jotfor.ms/assets/img/enterprise/healthcare-report/report-cover-2024.png?v=0.0.2\" alt={t(ALL_TEXTS.HEALTHCARE_REPORT_MODAL_TITLE)} className=\"cover\" />\n </div>\n </div>\n </Modal>\n );\n};\n\nHealthcareReportModal.propTypes = {\n user: userPropType.isRequired,\n modalProps: object,\n onClose: func\n};\n\nHealthcareReportModal.defaultProps = {\n modalProps: {},\n onClose: f => f\n};\n\nexport default HealthcareReportModal;\n","import { renderAsset } from '@jotforminc/ep-utils';\nimport { HealthcareReportModal } from '../components';\n\nconst renderHealthcareReportModal = ({\n targetSelector,\n ...props\n}) => {\n renderAsset({\n Asset: HealthcareReportModal,\n rootElementId: targetSelector,\n ...props\n });\n};\n\nexport default renderHealthcareReportModal;\n","export const enabledPages = [\n '/blog/healthcare/',\n '/pdf-templates/e-sign/healthcare',\n '/pdf-templates/healthcare',\n '/table-templates/category/healthcare',\n '/hipaa/templates/',\n '/hipaa/webinar/hipaa-webinar-for-healthcare-providers/',\n '/app-templates/category/healthcare-app-templates',\n '/hipaa/webinar/remote-healthcare-webinar/',\n '/hipaa/webinar/hipaa-compliance-mistakes-webinar/',\n '/what-is-hipaa-compliance/',\n '/form-templates/category/health',\n '/blog/how-to-organize-your-vaccine-distribution-with-jotform/',\n '/approval-templates/category/healthcare',\n '/blog/hipaa-violations/',\n '/hipaa/webinar/managing-vaccine-distribution/',\n '/blog/contactless-screening-for-covid-19/',\n '/blog/shared-decision-making-in-healthcare/',\n '/blog/what-is-a-baa/',\n '/blog/announcing-jotform-health-app/',\n '/form-templates/category/health-coach-forms',\n '/products/approvals/healthcare/',\n '/blog/hippa-compliant/',\n '/form-templates/category/physician-forms',\n '/electronic-signature-for-healthcare/',\n '/form-templates/category/psychologist-forms',\n '/blog/hipaa-compliant-survey-tools/',\n '/form-templates/category/dentist-forms',\n '/form-templates/category/nurse-forms',\n '/form-templates/category/dietitian-forms',\n '/form-templates/category/therapist-forms',\n '/blog/employee-health-screening/',\n '/form-templates/category/esthetician-forms',\n '/form-templates/category/pharmacist-forms',\n '/blog/patients-right-to-access-under-hipaa-webinar/',\n '/home-health-care-forms/',\n '/hipaa/',\n '/hipaa/best-hipaa-compliant-cloud-storage-solutions/',\n '/blog/best-hipaa-compliant-software-products/',\n '/hipaa/features/',\n '/newsletters/announcing-our-new-touchless-mobile-kiosk-and-jotform-health-app/',\n '/blog/best-hipaa-compliant-email-providers/',\n '/blog/when-do-you-need-to-use-hipaa-medical-records-release-form/',\n '/blog/case-study-body-brave/',\n '/blog/jotform-enterprise-one-to-one-health-spotlight/',\n '/enterprise/whitepapers/mastering-your-digital-healthcare-toolkit/',\n '/blog/healthcare-automation/',\n '/blog/healthcare-automation-strategies-webinar/',\n '/blog/case-study-orthoillinois/',\n '/blog/case-study-one-to-one-health/'\n];\n","import { renderHealthcareReportModal } from '@jotforminc/enterprise-promotions';\nimport { readCookie } from '@jotforminc/utils';\nimport { isEnterprise } from '@jotforminc/enterprise-utils';\nimport { StorageHelper } from '@jotforminc/storage-helper';\n\nimport { userSeenCampaign, getCurrentDateWithoutTimeZone, isGuest } from '../../utils';\nimport { enabledPages } from './enabledPages';\n\nexport const initEpHealthcareReportModal = async user => {\n const isAvailableInPage = enabledPages.includes(global.window.location.pathname);\n if (!isAvailableInPage) return;\n\n const isEnabled = true;\n const urlParam = 'hcrm';\n const seenAtKey = 'enterprise2024HealthcareReportModalSeenAt';\n const urlParams = new URLSearchParams(global.window.location.search);\n const hasUrlParam = urlParams.has(urlParam);\n const isUserHasAdCookie = readCookie('adwords_mode') === 'on';\n const isGuestUser = isGuest(user);\n const shouldRenderForGuest = isGuestUser && isEnabled && !isEnterprise() && !StorageHelper.getLocalStorageItem({ key: seenAtKey }) && !isUserHasAdCookie;\n\n try {\n const regularUserNotSeenYet = !(await userSeenCampaign(seenAtKey));\n const shouldRenderForRegularUser = !isGuestUser && isEnabled && !isEnterprise && !isUserHasAdCookie && regularUserNotSeenYet;\n const shouldRender = shouldRenderForGuest || shouldRenderForRegularUser || hasUrlParam;\n\n if (!shouldRender) return;\n\n // hotfix for guest users, user settings data return undefined from backend\n if (isGuestUser) {\n StorageHelper.setLocalStorageItem({ key: seenAtKey, value: getCurrentDateWithoutTimeZone() });\n }\n\n let isInitiated = false;\n document.documentElement?.addEventListener('mouseleave', () => {\n if (isInitiated) return;\n isInitiated = true;\n renderHealthcareReportModal({\n user,\n targetSelector: '#healthcare-report-modal-root'\n });\n });\n } catch (error) {\n console.log(`Error on initializing epHealthcareReportModal: ${error}`);\n }\n};\n","import { t } from '@jotforminc/translation';\nimport React, { useEffect } from 'react';\nimport {\n GA_SUFFIXES, createGaAttributes, saveCustomerAsHubspotFormByUsername, setEPActions,\n ASSET_IDENTIFIER, ALL_TEXTS, CTA_URLS, SDR_SOURCES\n} from '@jotforminc/ep-utils';\nimport IconEnterprise from '../../../assets/svg/generalFaqProfessionalServicesBanner/rocket.svg';\nimport '../../../styles/generalFaqProfessionalServicesBanner.scss';\n\nconst GeneralFaqProfessionalServicesBanner = () => {\n const { PRODUCT: { GENERAL_FAQ_PROF_SERVICES_BANNER: target } } = ASSET_IDENTIFIER;\n const {\n GENERAL_FAQ_PROFESSIONAL_SERVICES: {\n CONTACT_SALES_URL,\n LEARN_MORE_URL\n }\n } = CTA_URLS;\n\n const gaAttributes = createGaAttributes(target);\n const gaAttributesGaq = createGaAttributes(target, GA_SUFFIXES.GET_A_QUOTE);\n const gaAttributesLm = createGaAttributes(target, GA_SUFFIXES.LEARN_MORE);\n\n useEffect(() => {\n setEPActions({ asset: target, target, action: 'seen' });\n }, []);\n\n const handleGetAQuoteClick = () => {\n setEPActions({ asset: target, target: 'getAQuoteButton', action: 'click' });\n saveCustomerAsHubspotFormByUsername({ lastProductAssetInteraction: SDR_SOURCES.GENERAL_FAQ_PROF_SERVICES_BANNER });\n };\n\n const handleLearnMoreClick = () => {\n setEPActions({ asset: target, target: 'learnMoreButton', action: 'click' });\n saveCustomerAsHubspotFormByUsername({ lastProductAssetInteraction: SDR_SOURCES.GENERAL_FAQ_PROF_SERVICES_BANNER });\n };\n\n return (\n <div\n {...gaAttributes}\n className='general-faq-professional-services'\n role=\"banner\"\n >\n <div className='badge'>\n <IconEnterprise className=\"icon\" />\n {t(ALL_TEXTS.PROFESSIONAL_SERVICES)}\n </div>\n <div className='content-wrapper'>\n <h5 className=\"title\">\n {t(ALL_TEXTS.GET_HANDS_ON_PROFESSIONAL_SERVICES)}\n </h5>\n <p className=\"description\">{t(ALL_TEXTS.GET_HANDS_ON_PROFESSIONAL_SERVICES_DESCRIPTION)}</p>\n </div>\n <div className=\"button-wrapper\">\n {/* get a quote */}\n <a\n {...gaAttributesGaq}\n target=\"_blank\"\n className=\"get-a-quote\"\n href={CONTACT_SALES_URL}\n onClick={handleGetAQuoteClick}\n >\n {t(ALL_TEXTS.GET_A_QUOTE)}\n </a>\n {/* learn more */}\n <a\n {...gaAttributesLm}\n target=\"_blank\"\n className=\"learn-more\"\n href={LEARN_MORE_URL}\n onClick={handleLearnMoreClick}\n >\n {t(ALL_TEXTS.LEARN_MORE)}\n </a>\n </div>\n </div>\n );\n};\n\nexport default GeneralFaqProfessionalServicesBanner;\n","import { t } from '@jotforminc/translation';\nimport React, { useEffect } from 'react';\nimport {\n GA_SUFFIXES, createGaAttributes, saveCustomerAsHubspotFormByUsername, setEPActions,\n ASSET_IDENTIFIER, ALL_TEXTS, CTA_URLS, SDR_SOURCES\n} from '@jotforminc/ep-utils';\nimport IconEnterprise from '../../../assets/svg/userGuideProfessionalServices/rocket.svg';\nimport '../../../styles/userGuideProfessionalServicesBanner.scss';\n\nconst UserGuideProfessionalServicesBanner = () => {\n const { PRODUCT: { USER_GUIDE_PROF_SERVICES_BANNER: target } } = ASSET_IDENTIFIER;\n const {\n USER_GUIDE_PROFESSIONAL_SERVICES: {\n CONTACT_SALES_URL,\n LEARN_MORE_URL\n }\n } = CTA_URLS;\n\n const gaAttributes = createGaAttributes(target);\n const gaAttributesGaq = createGaAttributes(target, GA_SUFFIXES.GET_A_QUOTE);\n const gaAttributesLm = createGaAttributes(target, GA_SUFFIXES.LEARN_MORE);\n\n useEffect(() => {\n setEPActions({ asset: target, target, action: 'seen' });\n }, []);\n\n const handleGetAQuoteClick = () => {\n setEPActions({ asset: target, target: 'getAQuoteButton', action: 'click' });\n saveCustomerAsHubspotFormByUsername({ lastProductAssetInteraction: SDR_SOURCES.USER_GUIDE_PROF_SERVICES_BANNER });\n };\n\n const handleLearnMoreClick = () => {\n setEPActions({ asset: target, target: 'learnMoreButton', action: 'click' });\n saveCustomerAsHubspotFormByUsername({ lastProductAssetInteraction: SDR_SOURCES.USER_GUIDE_PROF_SERVICES_BANNER });\n };\n\n return (\n <div\n {...gaAttributes}\n className='user-guide-professional-services'\n role=\"banner\"\n >\n <div className='content-wrapper'>\n <h5 className=\"title\">\n <IconEnterprise className=\"icon\" />\n {t(ALL_TEXTS.GET_HANDS_ON_PROFESSIONAL_SERVICES)}\n </h5>\n <p className=\"description\">{t(ALL_TEXTS.GET_HANDS_ON_PROFESSIONAL_SERVICES_DESCRIPTION)}</p>\n </div>\n <div className=\"button-wrapper\">\n {/* get a quote */}\n <a\n {...gaAttributesGaq}\n target=\"_blank\"\n className=\"contact\"\n href={CONTACT_SALES_URL}\n onClick={handleGetAQuoteClick}\n >\n {t(ALL_TEXTS.GET_A_QUOTE)}\n </a>\n {/* learn more */}\n <a\n {...gaAttributesLm}\n target=\"_blank\"\n className=\"learn-more\"\n href={LEARN_MORE_URL}\n onClick={handleLearnMoreClick}\n >\n {t(ALL_TEXTS.LEARN_MORE)}\n </a>\n </div>\n </div>\n );\n};\n\nexport default UserGuideProfessionalServicesBanner;\n","/* global HTMLElement */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { getRootElement } from '@jotforminc/ep-utils';\nimport { UserGuideProfessionalServicesBanner, GeneralFaqProfessionalServicesBanner } from '../components';\n\nconst renderProfServicesAsset = ({ assetName, rootElementId, ...props }) => {\n const rootEl = getRootElement(rootElementId);\n\n if (!(rootEl instanceof HTMLElement)) return;\n\n const assetMap = {\n GeneralFaqProfessionalServicesBanner,\n UserGuideProfessionalServicesBanner\n };\n\n const SelectedAsset = assetMap[assetName];\n\n ReactDOM.render(\n <SelectedAsset {...props} />,\n rootEl\n );\n};\n\nexport default renderProfServicesAsset;\n","import { renderProfServicesAsset } from '@jotforminc/enterprise-promotions';\n\nconst renderUserGuideBanner = (helpRoot, helpRootId) => {\n if (!helpRoot) return;\n\n renderProfServicesAsset({\n assetName: 'UserGuideProfessionalServicesBanner',\n rootElementId: helpRootId\n });\n};\n\nconst renderFaqBanner = (faqRoot, faqRootId) => {\n if (!faqRoot) return;\n\n renderProfServicesAsset({\n assetName: 'GeneralFaqProfessionalServicesBanner',\n rootElementId: faqRootId\n });\n};\n\nexport const initEpProfessionalServices = () => {\n const helpRootId = 'help-prof-services-banner'; // https://github.com/jotform/backend/blob/95dc3f04351536a5147c04e7c898fa39ce0ed878/projects/wp-blog/twig_templates/help/help-sidebar.twig.html#L18\n const faqRootId = 'faq-footer-prof-services-banner'; // https://github.com/jotform/backend/blob/95dc3f04351536a5147c04e7c898fa39ce0ed878/projects/wp-blog/twig_templates/faq/faq.twig.html#L19\n\n const helpRoot = document.querySelector(`#${helpRootId}`);\n const faqRoot = document.querySelector(`#${faqRootId}`);\n\n const isEnabled = true;\n const bannerIsAvailable = (helpRoot || faqRoot) && isEnabled;\n\n if (!bannerIsAvailable) return;\n\n renderUserGuideBanner(helpRoot, helpRootId);\n renderFaqBanner(faqRoot, faqRootId);\n};\n","import React from 'react';\nimport { func, node } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { ALL_TEXTS } from '@jotforminc/ep-utils';\nimport CloseIcon from '../../../../assets/svg/close_revised.svg';\n\nexport const DialogRenderer = ({ children }) => (<div className=\"jfBasicModal dem-wrapper\">{children}</div>);\n\nDialogRenderer.propTypes = { children: node };\nDialogRenderer.defaultProps = { children: null };\n\nexport const ContentRenderer = ({ children, ...props }) => (\n <div {...props} className=\"jfBasicModal-content-wrapper\">\n <div className=\"jfBasicModal-content dem-content\">\n {children}\n </div>\n </div>\n);\n\nContentRenderer.propTypes = { children: node };\nContentRenderer.defaultProps = { children: null };\n\nexport const HeaderRenderer = ({ onCloseClick, ...props }) => (\n <button\n {...props}\n type=\"button\"\n className=\"modal-close\"\n aria-label={t(ALL_TEXTS.CLOSE_MODAL)}\n onClick={onCloseClick}\n >\n <CloseIcon />\n </button>\n);\n\nHeaderRenderer.propTypes = { onCloseClick: func };\nHeaderRenderer.defaultProps = { onCloseClick: f => f };\n","import React, { useEffect, useRef } from 'react';\nimport { Modal } from '@jotforminc/uikit';\nimport { bool, func, string } from 'prop-types';\nimport { t, translationRenderer } from '@jotforminc/translation';\nimport {\n ALL_TEXTS, ASSET_IDENTIFIER, GA_FORM_TRACKING_ITEMS, gaFormTrackingItemsPropType, userPropType, GA_AD_FORM_TRACKING_ITEMS,\n PrefilledLeadFormAside,\n GA_SUFFIXES, createGaAttributes, gaDataLayerPushClose, mapCallbacksToGaTrackingItems, hasAdwordsModeOn\n} from '@jotforminc/ep-utils';\nimport { ContentRenderer, DialogRenderer, HeaderRenderer } from './Renderers';\nimport EnterpriseIcon from '../../../../assets/svg/enterpriseRocketMini.svg';\nimport '../../../../styles/educationDiscountModal.scss';\n\nconst EducationDiscountModal = (({\n user,\n onClose,\n logAbTestAction,\n from,\n isTestVariant,\n ...props\n}) => {\n const uikitModalRef = useRef(null);\n const { AB_TEST: { EDUCATION_DISCOUNT_MODAL, EDUCATION_DISCOUNT_MODAL_FERPA_VIOLATION_EXAMPLES } } = ASSET_IDENTIFIER;\n const target = isTestVariant ? EDUCATION_DISCOUNT_MODAL_FERPA_VIOLATION_EXAMPLES : EDUCATION_DISCOUNT_MODAL;\n\n const isAdForm = hasAdwordsModeOn();\n let { [target]: gaFormTrackingItems } = isAdForm ? GA_AD_FORM_TRACKING_ITEMS : GA_FORM_TRACKING_ITEMS;\n\n const gaAttributes = createGaAttributes(target);\n const gaAttributesClose = createGaAttributes(target, GA_SUFFIXES.CLOSE);\n\n useEffect(() => {\n const actionData = { action: 'seen', target: `${from ? `${from}-` : ''}${target}` };\n logAbTestAction(actionData);\n }, []);\n\n const handleCloseClick = () => {\n const actionData = { action: 'click', target: `closeButton-${target}` };\n uikitModalRef.current?.hide();\n logAbTestAction(actionData);\n };\n\n const handleClose = () => {\n const actionData = { action: 'close', target };\n gaDataLayerPushClose(gaAttributes);\n logAbTestAction(actionData);\n onClose();\n };\n\n const handleContactSalesClick = () => {\n const actionData = { action: 'click', target: `contactSalesButton-${target}` };\n logAbTestAction(actionData);\n };\n\n const handleFormSubmit = () => {\n const actionData = { action: 'formSubmit', target };\n logAbTestAction(actionData);\n };\n\n gaFormTrackingItems = mapCallbacksToGaTrackingItems(gaFormTrackingItems, [handleContactSalesClick]);\n\n return (\n <Modal\n ref={uikitModalRef}\n defaultVisible={true}\n closeOnEscPress={true}\n closeOnOutsideClick={false}\n DialogRenderer={DialogRenderer}\n ContentRenderer={prps => <ContentRenderer {...gaAttributes} {...prps} />}\n HeaderRenderer={() => <HeaderRenderer {...gaAttributesClose} onCloseClick={handleCloseClick} />}\n onModalClose={handleClose}\n >\n <div className=\"row\">\n <div className=\"left-col direct-visible\">\n <span className='badge'>\n <EnterpriseIcon className=\"icon\" />\n {t(ALL_TEXTS.JOTFORM_ENTERPRISE_CAPITALIZED)}\n </span>\n <p className='description'>\n {translationRenderer(ALL_TEXTS.APPLY_ENTERPRISE_TO_GET_DISCOUNT_ED_TECH_LINED)({\n renderer1: nowrapText => (\n <span className='new-line-on-desktop'>\n {nowrapText}\n </span>\n )\n })}\n </p>\n <img src='//cdn.jotfor.ms/assets/img/enterprise/education-discount-modal/bg.png' alt={t(ALL_TEXTS.DEDICATED_SUPPORT_DESC)} className=\"graph-preview\" />\n </div>\n {/* aside */}\n <div className=\"right-col\">\n <PrefilledLeadFormAside\n user={user}\n gaAttributes={gaAttributes}\n gaFormTrackingItems={gaFormTrackingItems}\n title={t(ALL_TEXTS.SHORT_LEAD_FORM_TITLE)}\n formUiModifier={target}\n onFormSubmit={handleFormSubmit}\n isAdForm={isAdForm}\n {...props}\n />\n </div>\n </div>\n </Modal>\n );\n});\n\nEducationDiscountModal.propTypes = {\n user: userPropType.isRequired,\n gaFormTrackingItems: gaFormTrackingItemsPropType.isRequired,\n onClose: func,\n logAbTestAction: func,\n from: string,\n isTestVariant: bool.isRequired\n};\n\nEducationDiscountModal.defaultProps = {\n onClose: f => f,\n logAbTestAction: f => f,\n from: ''\n};\n\nexport default EducationDiscountModal;\n","import React, { useEffect, useRef } from 'react';\nimport { t } from '@jotforminc/translation';\nimport { bool, func } from 'prop-types';\nimport { IconRocketSquareFilled } from '@jotforminc/svg-icons';\nimport Tracking from '@jotforminc/tracking';\nimport {\n ALL_TEXTS, ASSET_IDENTIFIER, GA_FORM_TRACKING_ITEMS, userPropType,\n createGaAttributes, GA_SUFFIXES, renderModal,\n PrefilledLeadFormAside\n} from '@jotforminc/ep-utils';\nimport '../../../styles/blogEducationSideBanner.scss';\nimport { EducationDiscountModal } from '../../Modals';\n\nconst BlogEducationSideBanner = ({\n user, logAbTestAction, isFormVisible, isTestVariant\n}) => {\n const sectionRef = useRef();\n const { PRODUCT: { BLOG_EDUCATION_SIDE_BANNER } } = ASSET_IDENTIFIER;\n const target = BLOG_EDUCATION_SIDE_BANNER;\n const { [target]: gaFormTrackingItems } = GA_FORM_TRACKING_ITEMS;\n\n const gaAttributes = createGaAttributes(target);\n const gaAttributesAn = createGaAttributes(target, GA_SUFFIXES.APPLY_NOW);\n const pageUrl = window.location.pathname;\n\n useEffect(() => {\n logAbTestAction({ action: 'seen', target });\n Tracking.enableFS({ epBlogBannerSetII_bool: true });\n }, []);\n\n const handleApplyNowClick = () => {\n renderModal({\n user,\n Modal: EducationDiscountModal,\n logAbTestAction,\n from: target,\n isTestVariant\n });\n logAbTestAction({ action: 'click', target: `contactSales-${target}` });\n };\n\n return (\n <div {...gaAttributes} ref={sectionRef} className='blog-education-side-banner'>\n <div className='banner-header'>\n <div className='banner-title'>\n <IconRocketSquareFilled className=\"title-icon\" />\n {t(ALL_TEXTS.JOTFORM_ENTERPRISE_TITLE)}\n </div>\n <h5 className='banner-main-title'>{t(ALL_TEXTS.APPLY_ENTERPRISE_TO_GET_DISCOUNT_ED_TECH)}</h5>\n <div className='badge-wrapper'>\n <div className='badge'>\n <img\n src='https://cdn.jotfor.ms/assets/img/enterprise/blog-education-side-banner/ferpa.svg'\n alt={t(ALL_TEXTS.FERPA_COMPLIANCE)}\n />\n </div>\n <div className='badge'>\n <img\n src='https://cdn.jotfor.ms/assets/img/enterprise/blog-education-side-banner/hipaa.svg'\n alt={t(ALL_TEXTS.HIPAA_COMPLIANCE)}\n />\n </div>\n <div className='badge'>\n <img\n src='https://cdn.jotfor.ms/assets/img/enterprise/blog-education-side-banner/soc.svg'\n alt={t(ALL_TEXTS.SOC2_COMPLIANCE)}\n />\n </div>\n <div className='badge'>\n <img\n src='https://cdn.jotfor.ms/assets/img/enterprise/blog-education-side-banner/gdpr.svg'\n alt={t(ALL_TEXTS.GDPR_COMPLIANCE)}\n />\n </div>\n <div className='badge'>\n <img\n src='https://cdn.jotfor.ms/assets/img/enterprise/blog-education-side-banner/pci.svg'\n alt={t(ALL_TEXTS.PCI_COMPLIANCE)}\n />\n </div>\n <div className='badge'>\n <img\n src='https://cdn.jotfor.ms/assets/img/enterprise/blog-education-side-banner/ssl.svg'\n alt={t(ALL_TEXTS.BIT_256_SSL)}\n />\n </div>\n </div>\n\n {!isFormVisible && (\n <button\n {...gaAttributesAn}\n type='button'\n className='cta primary-cta'\n onClick={handleApplyNowClick}\n >\n {t(ALL_TEXTS.CONTACT_SALES)}\n </button>\n )}\n\n </div>\n {isFormVisible && (\n <div className='form-wrapper'>\n <PrefilledLeadFormAside\n user={user}\n gaAttributes={gaAttributes}\n gaFormTrackingItems={gaFormTrackingItems}\n title={t(ALL_TEXTS.SHORT_LEAD_FORM_TITLE)}\n formUiModifier={BLOG_EDUCATION_SIDE_BANNER}\n pageUrl={pageUrl}\n classNames='form-content'\n />\n </div>\n )}\n </div>\n );\n};\n\nBlogEducationSideBanner.propTypes = {\n user: userPropType.isRequired,\n logAbTestAction: func,\n isFormVisible: bool,\n isTestVariant: bool.isRequired\n};\n\nBlogEducationSideBanner.defaultProps = {\n logAbTestAction: f => f,\n isFormVisible: true\n};\n\nexport default BlogEducationSideBanner;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BlogEducationSideBanner } from '../components';\n\nconst renderFerpaBanner = ({\n rootEl = null,\n user = null,\n logAbTestAction = f => f,\n isTestVariant = false\n}) => {\n if (!rootEl) return;\n\n ReactDOM.render(\n <BlogEducationSideBanner\n user={user}\n isFormVisible={false}\n logAbTestAction={logAbTestAction}\n isTestVariant={isTestVariant}\n />,\n rootEl\n );\n};\n\nexport default renderFerpaBanner;\n","import { renderFerpaBanner } from '@jotforminc/enterprise-promotions';\nimport { insertAfter } from '../../utils';\n\n// render BlogEducationSideBanner at /what-is-ferpa?epfp=true\nexport const initEpFerpaBanner = user => {\n if (global.window.location.pathname !== '/what-is-ferpa/') return;\n\n const createFormButtonEl = document.querySelector('.js-sidefixedmenu .external-link');\n if (!createFormButtonEl) return;\n\n const bannerRootEl = document.createElement('div');\n bannerRootEl.setAttribute('id', 'ferpa-banner-root');\n insertAfter(createFormButtonEl, bannerRootEl);\n\n renderFerpaBanner({\n user,\n rootEl: bannerRootEl\n });\n};\n","import React from 'react';\nimport { func, node } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { ALL_TEXTS } from '@jotforminc/ep-utils';\nimport CloseIcon from '../../../../assets/svg/close_revised.svg';\n\nexport const DialogRenderer = ({ children }) => (<div className=\"jfBasicModal pdm-wrapper\">{children}</div>);\n\nDialogRenderer.propTypes = { children: node };\nDialogRenderer.defaultProps = { children: null };\n\nexport const ContentRenderer = ({ children, ...props }) => (\n <div {...props} className=\"jfBasicModal-content-wrapper\">\n <div className=\"jfBasicModal-content pdm-content\">\n {children}\n </div>\n </div>\n);\n\nContentRenderer.propTypes = { children: node };\nContentRenderer.defaultProps = { children: null };\n\nexport const HeaderRenderer = ({ onCloseClick, ...props }) => (\n <button\n {...props}\n type=\"button\"\n className=\"modal-close\"\n aria-label={t(ALL_TEXTS.CLOSE_MODAL)}\n onClick={onCloseClick}\n >\n <CloseIcon />\n </button>\n);\n\nHeaderRenderer.propTypes = { onCloseClick: func };\nHeaderRenderer.defaultProps = { onCloseClick: f => f };\n","import React, { useEffect, useRef } from 'react';\nimport { Modal } from '@jotforminc/uikit';\nimport {\n func, bool, object, string\n} from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { handleCustomNavigation } from '@jotforminc/utils';\nimport {\n PrefilledLeadFormAside, ASSET_IDENTIFIER, ALL_TEXTS, userPropType, GA_FORM_TRACKING_ITEMS, GA_AD_FORM_TRACKING_ITEMS,\n GA_SUFFIXES, createGaAttributes, gaDataLayerPushClose, setEPActions, mapCallbacksToGaTrackingItems, hasAdwordsModeOn\n} from '@jotforminc/ep-utils';\nimport { ContentRenderer, DialogRenderer, HeaderRenderer } from './Renderers';\nimport '../../../../styles/pdfDownloadModal.scss';\n\nconst PdfDownloadModal = ({\n user,\n onClose,\n pdfUrl,\n modalProps: {\n iconUrl,\n title,\n description\n }\n}) => {\n const uikitModalRef = useRef(null);\n\n const { PRODUCT: { PDF_DOWNLOAD_MODAL: target } } = ASSET_IDENTIFIER;\n\n const gaAttributes = createGaAttributes(target);\n const gaAttributesClose = createGaAttributes(target, GA_SUFFIXES.CLOSE);\n\n const isAdForm = hasAdwordsModeOn();\n let { [target]: gaFormTrackingItems } = isAdForm ? GA_AD_FORM_TRACKING_ITEMS : GA_FORM_TRACKING_ITEMS;\n\n useEffect(() => {\n setEPActions({ asset: target, target, action: 'seen' });\n }, []);\n\n const handleCloseClick = () => {\n uikitModalRef.current?.hide();\n\n setEPActions({ asset: target, target: 'closeButton', action: 'click' });\n };\n\n const handleClose = () => {\n gaDataLayerPushClose(gaAttributes);\n setEPActions({ asset: target, target, action: 'close' });\n\n onClose();\n };\n\n const handleGetPdfNowClick = () => {\n setEPActions({ asset: target, target: 'getPdfNowButton', action: 'click' });\n };\n\n const handleFormSubmit = () => {\n setEPActions({ asset: target, target, action: 'formSubmit' });\n handleCustomNavigation(pdfUrl);\n };\n\n gaFormTrackingItems = mapCallbacksToGaTrackingItems(gaFormTrackingItems, [handleGetPdfNowClick]);\n\n return (\n <div className='form-visible'>\n <Modal\n ref={uikitModalRef}\n defaultVisible={true}\n closeOnEscPress={true}\n closeOnOutsideClick={true}\n DialogRenderer={DialogRenderer}\n ContentRenderer={props => <ContentRenderer {...gaAttributes} {...props} />}\n HeaderRenderer={() => <HeaderRenderer {...gaAttributesClose} onCloseClick={handleCloseClick} />}\n onModalClose={handleClose}\n >\n <div className=\"row\">\n <div className='form-wrapper'>\n <div className='header'>\n <img src={iconUrl} alt={title} className=\"visual\" />\n <div>\n <span className='form-title'>{title}</span>\n <span className='form-description'>{description}</span>\n </div>\n </div>\n <div className='modal-content'>\n <PrefilledLeadFormAside\n user={user}\n formID={242663181689972}\n devFormID={242742102875960}\n gaAttributes={gaAttributes}\n formUiModifier={target}\n gaFormTrackingItems={gaFormTrackingItems}\n title={t(ALL_TEXTS.JOTFORM_ENTERPRISE_TITLE)}\n classNames=\"w-full border-0 md:min-h-120 md:px-5\"\n onFormSubmit={handleFormSubmit}\n isAdForm={isAdForm}\n />\n </div>\n </div>\n </div>\n </Modal>\n </div>\n );\n};\n\nPdfDownloadModal.propTypes = {\n user: userPropType.isRequired,\n modalProps: object,\n defaultVisible: bool,\n onClose: func,\n logAbTestAction: func,\n iconUrl: string.isRequired,\n title: string.isRequired,\n description: string.isRequired,\n pdfUrl: string.isRequired\n};\n\nPdfDownloadModal.defaultProps = {\n modalProps: {},\n defaultVisible: true,\n onClose: f => f,\n logAbTestAction: f => f\n};\n\nexport default PdfDownloadModal;\n","import React, { useEffect } from 'react';\nimport { t } from '@jotforminc/translation';\nimport { arrayOf, object, string } from 'prop-types';\nimport '../../../styles/blogDownloadBanner.scss';\nimport {\n ASSET_IDENTIFIER, ALL_TEXTS, userPropType, renderModal, setEPActions, createGaAttributes, GA_SUFFIXES\n} from '@jotforminc/ep-utils';\nimport { IconCheck, LogoJotformColor } from '@jotforminc/svg-icons';\nimport { PdfDownloadModal } from '../../Modals';\nimport ReportVisual from '../../../assets/svg/blogDownloadBanner/visual.svg';\n\nconst BlogDownloadBanner = ({\n user, badgeText, bannerTitle, bannerDescription, bannerVisualUrl, bannerItems, modalProps, pdfUrl\n}) => {\n const { PRODUCT: { PDF_DOWNLOAD_BANNER: target } } = ASSET_IDENTIFIER;\n\n const gaAttributes = createGaAttributes(target);\n const gaAttributesGetPdf = createGaAttributes(target, GA_SUFFIXES.GET_PDF);\n\n useEffect(() => {\n setEPActions({ asset: target, target, action: 'seen' });\n }, []);\n\n const handleClick = () => {\n setEPActions({ asset: target, target: 'getPdfButton', action: 'click' });\n\n renderModal({\n user,\n modalProps,\n pdfUrl,\n Modal: PdfDownloadModal\n });\n };\n\n return (\n <div\n {...gaAttributes} className='blog-download-banner' onClick={handleClick}\n role='button'\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n handleClick();\n }\n }}\n >\n <div className='left-col'>\n <span className='badge'>{badgeText}</span>\n <span className='title-wrapper'>\n <span className='title'>\n {bannerTitle}\n :\n {' '}\n </span>\n\n <span className='description'>\n {bannerDescription}\n </span>\n </span>\n <ul className='list-items'>\n {bannerItems.map(item => (\n <li>\n <IconCheck className='icon' />\n <span>{item}</span>\n </li>\n )\n )}\n <li>\n <IconCheck className='icon' />\n <span>And more</span>\n </li>\n </ul>\n </div>\n <div className='right-col'>\n <div className='logo-wrapper'>\n <LogoJotformColor className='logo' />\n <span className='enterprise'>{t(ALL_TEXTS.ENTERPRISE_CAPITALIZED)}</span>\n </div>\n\n <div className='visual-area'>\n <img\n className='visual'\n src={bannerVisualUrl}\n alt={bannerTitle}\n />\n <ReportVisual className='background-visual' />\n </div>\n\n <button\n {...gaAttributesGetPdf}\n type='button'\n className='main-cta'\n >\n {t(ALL_TEXTS.GET_PDF)}\n </button>\n </div>\n </div>\n\n );\n};\n\nBlogDownloadBanner.propTypes = {\n user: userPropType,\n badgeText: string.isRequired,\n bannerTitle: string.isRequired,\n bannerDescription: string.isRequired,\n bannerVisualUrl: string.isRequired,\n pdfUrl: string.isRequired,\n bannerItems: arrayOf(string).isRequired,\n modalProps: object.isRequired\n};\n\nBlogDownloadBanner.defaultProps = {\n user: {}\n};\n\nexport default BlogDownloadBanner;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BlogDownloadBanner } from '../components';\n\nconst renderBlogCaseStudies = (props, rootEl) => {\n if (!rootEl) return;\n\n ReactDOM.render(\n <BlogDownloadBanner\n {...props}\n />,\n rootEl\n );\n};\n\nexport default renderBlogCaseStudies;\n","export const CASE_STUDIES = {\n '/blog/case-study-electrical-testing-ltd/': {\n param: 'csetl',\n badgeText: 'FREE GUIDE',\n bannerTitle: 'Mastering your digital healthcare toolkit',\n bannerDescription: 'How to integrate solutions for a better operation',\n bannerVisualUrl: 'https://cdn.jotfor.ms/assets/img/enterprise/blog-download-banner/healthcare.png',\n bannerItems: ['Streamline workflows', 'Improve service delivery', 'Ensure data security'],\n pdfUrl: 'https://cdn.jotfor.ms/assets/pdf/whitepapers/How_field_service_management_solutions_create_safe_sustainable_operations_UTM.pdf',\n modalProps: {\n iconUrl: 'https://cdn.jotfor.ms/assets/img/enterprise/blog-download-banner/healthcare-icon.png',\n title: 'Transform your digital healthcare toolkit with this free guide',\n description: 'Fill the form and get “Mastering your digital healthcare toolkit” via email.'\n }\n },\n '/blog/case-study-university-of-michigan-jotform-enterprise/': {\n param: 'csumje',\n badgeText: 'FREE GUIDE',\n bannerTitle: 'The educator’s technology toolkit',\n bannerDescription: 'Tuning up for efficiency and savings',\n bannerVisualUrl: 'https://cdn.jotfor.ms/assets/img/enterprise/blog-download-banner/education.png',\n bannerItems: ['Streamline workflows', 'Eliminate paper dependency', 'Improve student experience'],\n pdfUrl: 'https://cdn.jotfor.ms/assets/pdf/whitepapers/The_Educators_Technology_Toolkit_Cover.pdf',\n modalProps: {\n iconUrl: 'https://cdn.jotfor.ms/assets/img/enterprise/blog-download-banner/healthcare-icon.png',\n title: \"Build an efficient Educator's Technology Toolkit for your school with this free guide\",\n description: 'Fill the form and get “The educator’s technology toolkit: Tuning up for efficiency and savings” via email'\n }\n },\n '/blog/case-study-honor-health-network/': {\n param: 'cshhn',\n badgeText: 'FREE GUIDE',\n bannerTitle: 'Mastering your digital healthcare toolkit',\n bannerDescription: 'How to integrate solutions for a better operation',\n bannerVisualUrl: 'https://cdn.jotfor.ms/assets/img/enterprise/blog-download-banner/fsm.png',\n bannerItems: ['Automate scheduling ', 'Meet safety standards', 'Improve service delivery '],\n pdfUrl: 'https://cdn.jotfor.ms/assets/pdf/whitepapers/Mastering_Your_Digital_Healthcare_Toolkit.pdf',\n modalProps: {\n iconUrl: 'https://cdn.jotfor.ms/assets/img/enterprise/blog-download-banner/healthcare-icon.png',\n title: 'Transform your digital healthcare toolkit with this free guide',\n description: 'Fill the form and get “Mastering your digital healthcare toolkit” via email'\n }\n }\n};\n","import { renderBlogCaseStudies } from '@jotforminc/enterprise-promotions';\nimport { CASE_STUDIES } from './caseStudies';\n\nexport const initEpCaseStudyAssets = user => {\n const currentPage = global.window.location.pathname;\n const caseStudy = CASE_STUDIES[currentPage];\n if (!caseStudy) return;\n\n const params = new URLSearchParams(document.location.search);\n const hasParam = params.has(caseStudy.param);\n if (!hasParam) return;\n\n const enterprisePromotionsBannerRoot = document.getElementById('leadCaptureBanner');\n if (!enterprisePromotionsBannerRoot) return;\n\n renderBlogCaseStudies({\n user,\n ...caseStudy\n }, enterprisePromotionsBannerRoot);\n};\n","import React from 'react';\nimport { func, node } from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport { ALL_TEXTS } from '@jotforminc/ep-utils';\nimport CloseIcon from '../../../../assets/svg/advertisementLeadFlowModal/close.svg';\n\nexport const DialogRenderer = ({ children }) => (<div className=\"jfBasicModal advm-wrapper\">{children}</div>);\n\nDialogRenderer.propTypes = { children: node };\nDialogRenderer.defaultProps = { children: null };\n\nexport const ContentRenderer = ({ children, ...props }) => (\n <div {...props} className=\"jfBasicModal-content-wrapper\">\n <div className=\"jfBasicModal-content advm-content\">\n {children}\n </div>\n </div>\n);\n\nContentRenderer.propTypes = { children: node };\nContentRenderer.defaultProps = { children: null };\n\nexport const HeaderRenderer = ({ onCloseClick, ...props }) => (\n <button\n {...props}\n type=\"button\"\n className=\"modal-close\"\n aria-label={t(ALL_TEXTS.CLOSE_MODAL)}\n onClick={onCloseClick}\n >\n <CloseIcon />\n </button>\n);\n\nHeaderRenderer.propTypes = { onCloseClick: func };\nHeaderRenderer.defaultProps = { onCloseClick: f => f };\n","import React, { useEffect, useRef } from 'react';\nimport { Modal } from '@jotforminc/uikit';\nimport {\n func, object, string\n} from 'prop-types';\nimport { t } from '@jotforminc/translation';\nimport {\n PrefilledLeadFormAside, ALL_TEXTS, ASSET_IDENTIFIER, gaAttributesPropType, gaFormTrackingItemsPropType, userPropType,\n gaDataLayerPushClose\n} from '@jotforminc/ep-utils';\nimport { ContentRenderer, DialogRenderer, HeaderRenderer } from './Renderers';\nimport '../../../../styles/advertisementLeadFlowModal.scss';\nimport Stars from '../../../../assets/svg/advertisementLeadFlowModal/visual.svg';\n\nconst AdvertisementLeadFlowModal = ({\n user,\n badgeText,\n modalProps,\n gaAttributes,\n gaAttributesClose,\n gaFormTrackingItems,\n onSeen,\n onClose,\n onCloseClick,\n onFormSubmit\n}) => {\n const uikitModalRef = useRef(null);\n const { AB_TEST: { ADVERTISEMENT_LEAD_FLOW_MODAL } } = ASSET_IDENTIFIER;\n\n useEffect(() => {\n onSeen();\n }, []);\n\n const handleClose = () => {\n gaDataLayerPushClose(gaAttributes);\n onClose();\n };\n\n const handleCloseClick = () => {\n uikitModalRef.current?.hide();\n onCloseClick();\n };\n\n return (\n <Modal\n ref={uikitModalRef}\n defaultVisible={true}\n closeOnEscPress={true}\n closeOnOutsideClick={false}\n DialogRenderer={DialogRenderer}\n ContentRenderer={props => <ContentRenderer {...gaAttributes} {...props} />}\n HeaderRenderer={() => <HeaderRenderer {...gaAttributesClose} onCloseClick={handleCloseClick} />}\n onModalClose={handleClose}\n {...modalProps}\n >\n <div className=\"row\">\n <div className=\"left-col direct-visible\">\n <span className='badge'>\n {t(badgeText)}\n </span>\n <h2 className='title'>\n {t(ALL_TEXTS.ADV_TITLE_1)}\n </h2>\n <Stars className=\"graph-preview\" />\n </div>\n {/* aside */}\n <div className=\"right-col\">\n <PrefilledLeadFormAside\n user={user}\n gaAttributes={gaAttributes}\n gaFormTrackingItems={gaFormTrackingItems}\n title={t(ALL_TEXTS.SHORT_LEAD_FORM_TITLE)}\n formUiModifier={ADVERTISEMENT_LEAD_FLOW_MODAL}\n onFormSubmit={onFormSubmit}\n />\n </div>\n </div>\n </Modal>\n );\n};\n\nAdvertisementLeadFlowModal.propTypes = {\n badgeText: string,\n user: userPropType.isRequired,\n modalProps: object,\n onClose: func,\n onCloseClick: func,\n gaAttributes: gaAttributesPropType.isRequired,\n gaAttributesClose: gaAttributesPropType.isRequired,\n gaFormTrackingItems: gaFormTrackingItemsPropType.isRequired,\n onSeen: func,\n onFormSubmit: func\n};\n\nAdvertisementLeadFlowModal.defaultProps = {\n badgeText: ALL_TEXTS.BEFORE_YOU_GO,\n modalProps: {},\n onClose: f => f,\n onCloseClick: f => f,\n onSeen: f => f,\n onFormSubmit: f => f\n};\n\nexport default AdvertisementLeadFlowModal;\n","import React, { useEffect } from 'react';\nimport { func, string } from 'prop-types';\nimport {\n ASSET_IDENTIFIER, GA_FORM_TRACKING_ITEMS, userPropType,\n GA_SUFFIXES, createGaAttributes, gaDataLayerPushClose, mapCallbacksToGaTrackingItems, setEPActions, setEpUserSettings\n} from '@jotforminc/ep-utils';\nimport AdvertisementLeadFlowModal from './AdvertisementLeadFlowModal';\n\nconst AdSecondExitIntentModal = ({\n logAbTestAction, seenAtKey, onClose, ...props\n}) => {\n const { AB_TEST: { AD_SECOND_EXIT_INTENT_MODAL: target } } = ASSET_IDENTIFIER;\n let { [target]: gaFormTrackingItems } = GA_FORM_TRACKING_ITEMS;\n\n const gaAttributes = createGaAttributes(target);\n const gaAttributesClose = createGaAttributes(target, GA_SUFFIXES.CLOSE);\n\n useEffect(() => {\n setEpUserSettings(seenAtKey);\n }, []);\n\n const handleSeen = () => {\n const actionData = { action: 'seen', target };\n\n logAbTestAction(actionData);\n setEPActions({ asset: target, ...actionData });\n };\n\n const handleCloseClick = () => {\n logAbTestAction({ action: 'click', target: `closeButton-${target}` });\n setEPActions({ asset: target, target: 'closeButton', action: 'click' });\n };\n\n const handleClose = () => {\n gaDataLayerPushClose(gaAttributes);\n\n const actionData = { action: 'close', target };\n\n logAbTestAction(actionData);\n setEPActions({ asset: target, ...actionData });\n\n onClose();\n };\n\n const handleSendRequest = () => {\n logAbTestAction({ action: 'click', target: `sendRequestButton-${target}` });\n setEPActions({ asset: target, target: 'sendRequestButton', action: 'click' });\n };\n\n const handleFormSubmit = () => {\n const actionData = { action: 'formSubmit', target };\n\n logAbTestAction(actionData);\n setEPActions({ asset: target, ...actionData });\n };\n\n gaFormTrackingItems = mapCallbacksToGaTrackingItems(gaFormTrackingItems, [handleSendRequest]);\n\n return (\n <AdvertisementLeadFlowModal\n {...props}\n gaAttributes={gaAttributes}\n gaAttributesClose={gaAttributesClose}\n gaFormTrackingItems={gaFormTrackingItems}\n onSeen={handleSeen}\n onClose={handleClose}\n onCloseClick={handleCloseClick}\n onFormSubmit={handleFormSubmit}\n />\n );\n};\n\nAdSecondExitIntentModal.propTypes = {\n user: userPropType.isRequired,\n onSeen: func,\n onClose: func,\n logAbTestAction: func,\n seenAtKey: string.isRequired\n};\n\nAdSecondExitIntentModal.defaultProps = {\n onSeen: f => f,\n onClose: f => f,\n logAbTestAction: f => f\n};\n\nexport default AdSecondExitIntentModal;\n","import React, { useEffect } from 'react';\nimport { func, string } from 'prop-types';\nimport {\n ASSET_IDENTIFIER, GA_FORM_TRACKING_ITEMS, userPropType,\n GA_SUFFIXES, createGaAttributes, gaDataLayerPushClose, mapCallbacksToGaTrackingItems, setEPActions, setEpUserSettings\n} from '@jotforminc/ep-utils';\nimport AdvertisementLeadFlowModal from './AdvertisementLeadFlowModal';\n\nconst AdFirstExitIntentModal = ({\n logAbTestAction, onClose, user, seenAtKey, ...props\n}) => {\n const { AB_TEST: { AD_FIRST_EXIT_INTENT_MODAL: target } } = ASSET_IDENTIFIER;\n let { [target]: gaFormTrackingItems } = GA_FORM_TRACKING_ITEMS;\n\n const gaAttributes = createGaAttributes(target);\n const gaAttributesClose = createGaAttributes(target, GA_SUFFIXES.CLOSE);\n\n useEffect(() => {\n setEpUserSettings(seenAtKey);\n }, []);\n\n const handleSeen = () => {\n const actionData = { action: 'seen', target };\n\n logAbTestAction(actionData);\n setEPActions({ asset: target, ...actionData });\n };\n\n const handleCloseClick = () => {\n logAbTestAction({ action: 'click', target: `closeButton-${target}` });\n setEPActions({ asset: target, target: 'closeButton', action: 'click' });\n };\n\n const handleClose = () => {\n gaDataLayerPushClose(gaAttributes);\n\n const actionData = { action: 'close', target };\n\n logAbTestAction(actionData);\n setEPActions({ asset: target, ...actionData });\n\n onClose();\n };\n\n const handleSendRequest = () => {\n logAbTestAction({ action: 'click', target: `sendRequestButton-${target}` });\n setEPActions({ asset: target, target: 'sendRequestButton', action: 'click' });\n };\n\n const handleFormSubmit = () => {\n const actionData = { action: 'formSubmit', target };\n logAbTestAction(actionData);\n setEPActions({ asset: target, ...actionData });\n };\n\n gaFormTrackingItems = mapCallbacksToGaTrackingItems(gaFormTrackingItems, [handleSendRequest]);\n\n return (\n <AdvertisementLeadFlowModal\n {...props}\n user={user}\n gaAttributes={gaAttributes}\n gaAttributesClose={gaAttributesClose}\n gaFormTrackingItems={gaFormTrackingItems}\n onSeen={handleSeen}\n onClose={handleClose}\n onCloseClick={handleCloseClick}\n onFormSubmit={handleFormSubmit}\n />\n );\n};\n\nAdFirstExitIntentModal.propTypes = {\n user: userPropType.isRequired,\n logAbTestAction: func,\n onClose: func,\n seenAtKey: string.isRequired\n};\n\nAdFirstExitIntentModal.defaultProps = {\n onClose: f => f,\n logAbTestAction: f => f\n};\n\nexport default AdFirstExitIntentModal;\n","import React from 'react';\nimport { func } from 'prop-types';\nimport {\n ASSET_IDENTIFIER, ALL_TEXTS, GA_FORM_TRACKING_ITEMS, userPropType,\n GA_SUFFIXES, createGaAttributes, gaDataLayerPushClose, mapCallbacksToGaTrackingItems, setEPActions\n} from '@jotforminc/ep-utils';\nimport AdvertisementLeadFlowModal from './AdvertisementLeadFlowModal';\n\nconst AdBannerModal = ({\n logAbTestAction,\n onClose,\n ...props\n}) => {\n const { AB_TEST: { AD_BANNER_MODAL: target } } = ASSET_IDENTIFIER;\n let { [target]: gaFormTrackingItems } = GA_FORM_TRACKING_ITEMS;\n\n const gaAttributes = createGaAttributes(target);\n const gaAttributesClose = createGaAttributes(target, GA_SUFFIXES.CLOSE);\n\n const handleSeen = () => {\n const actionData = { action: 'seen', target };\n\n logAbTestAction(actionData);\n setEPActions({ asset: target, ...actionData });\n };\n\n const handleCloseClick = () => {\n logAbTestAction({ action: 'click', target: `closeButton-${target}` });\n setEPActions({ asset: target, target: 'closeButton', action: 'click' });\n };\n\n const handleClose = () => {\n gaDataLayerPushClose(gaAttributes);\n\n const actionData = { action: 'close', target };\n logAbTestAction(actionData);\n setEPActions({ asset: target, ...actionData });\n\n onClose();\n };\n\n const handleSendRequest = () => {\n logAbTestAction({ action: 'click', target: `sendRequestButton-${target}` });\n setEPActions({ asset: target, target: 'sendRequestButton', action: 'click' });\n };\n\n const handleFormSubmit = () => {\n const actionData = { action: 'formSubmit', target };\n\n logAbTestAction(actionData);\n setEPActions({ asset: target, ...actionData });\n };\n\n gaFormTrackingItems = mapCallbacksToGaTrackingItems(gaFormTrackingItems, [handleSendRequest]);\n\n return (\n <AdvertisementLeadFlowModal\n {...props}\n badgeText={ALL_TEXTS.ENTERPRISE}\n gaAttributes={gaAttributes}\n gaAttributesClose={gaAttributesClose}\n gaFormTrackingItems={gaFormTrackingItems}\n onSeen={handleSeen}\n onClose={handleClose}\n onCloseClick={handleCloseClick}\n onFormSubmit={handleFormSubmit}\n />\n );\n};\n\nAdBannerModal.propTypes = {\n onClose: func,\n logAbTestAction: func,\n user: userPropType.isRequired\n};\n\nAdBannerModal.defaultProps = {\n onClose: f => f,\n logAbTestAction: f => f\n};\n\nexport default AdBannerModal;\n","import { t } from '@jotforminc/translation';\nimport cx from 'classnames';\nimport { bool, func, string } from 'prop-types';\nimport React, { useEffect, useRef } from 'react';\nimport { Hooks } from '@jotforminc/uikit';\nimport { StorageHelper } from '@jotforminc/storage-helper';\nimport {\n ALL_TEXTS, ASSET_IDENTIFIER, leadFlowBannerAutoVisibleLcStKey, leadFlowBannerUrlParam, userPropType,\n GA_SUFFIXES, createGaAttributes, renderModal\n} from '@jotforminc/ep-utils';\nimport { AdBannerModal, AdFirstExitIntentModal, AdSecondExitIntentModal } from '../../Modals';\nimport '../../../styles/advertisementLeadFlowBanner.scss';\nimport RocketIcon from '../../../assets/svg/advertisementLeadFlowBanner/rocket.svg';\nimport MainVisual from '../../../assets/svg/advertisementLeadFlowBanner/visual.svg';\n\nconst AdvertisementLeadFlowBanner = ({\n user, logAbTestAction, isExitIntentModalAvailable, seenAtKey\n}) => {\n const toggleRef = useRef();\n const bannerRef = useRef();\n const TIME_TO_BANNER_VISIBLE = 15_000;\n\n const [isVisible, setIsVisible] = Hooks.useClickOutsideState(false, [toggleRef, bannerRef]);\n\n const onceAutoVisibled = useRef(false);\n const onceBannerOpened = useRef(false);\n const onceModalShown = useRef(false);\n\n const { AB_TEST: { ADVERTISEMENT_LEAD_FLOW_BANNER: target } } = ASSET_IDENTIFIER;\n\n const gaAttributes = createGaAttributes(target);\n const gaAttributesRad = createGaAttributes(target, GA_SUFFIXES.REQUEST_A_DEMO);\n const gaAttributesNn = createGaAttributes(target, GA_SUFFIXES.NOT_NOW);\n\n useEffect(() => {\n logAbTestAction({ action: 'seen', target });\n\n const className = 'ad-lead-flow-banner-visible';\n const bodyEl = document.querySelector('body');\n if (!bodyEl.classList.contains(className)) {\n bodyEl.classList.add(className);\n }\n return () => {\n bodyEl.classList.remove(className);\n };\n }, []);\n\n useEffect(() => {\n const isAutoVisibleSeen = StorageHelper.getLocalStorageItem({ key: leadFlowBannerAutoVisibleLcStKey });\n\n const timer = setTimeout(() => {\n if (isVisible || onceBannerOpened.current || onceModalShown.current || isAutoVisibleSeen) return;\n setIsVisible(true);\n onceAutoVisibled.current = true;\n onceBannerOpened.current = true;\n\n const urlParams = new URLSearchParams(window.location.search);\n if (!urlParams.get(leadFlowBannerUrlParam)) {\n StorageHelper.setLocalStorageItem({\n key: leadFlowBannerAutoVisibleLcStKey, value: '1'\n });\n }\n }, TIME_TO_BANNER_VISIBLE);\n\n return () => {\n clearTimeout(timer);\n };\n }, [isVisible]);\n\n // listen exit intent events\n useEffect(() => {\n const handleMouseLeave = () => {\n if (onceModalShown.current || !isExitIntentModalAvailable) return;\n if (onceAutoVisibled.current) {\n renderModal({\n Modal: AdSecondExitIntentModal, logAbTestAction, user, seenAtKey\n });\n } else {\n renderModal({\n Modal: AdFirstExitIntentModal, logAbTestAction, user, seenAtKey\n });\n }\n onceModalShown.current = true;\n };\n document.body.addEventListener('mouseleave', handleMouseLeave);\n }, []);\n\n const handleToggleClick = () => {\n setIsVisible(visible => !visible);\n onceBannerOpened.current = true;\n logAbTestAction({ action: 'click', target: `toggleButton-${target}` });\n };\n\n const handleRequestADemo = () => {\n renderModal({ Modal: AdBannerModal, logAbTestAction, user });\n onceModalShown.current = true;\n logAbTestAction({ action: 'click', target: `getADemoButton-${target}` });\n };\n\n const handleNotNowClick = () => {\n setIsVisible(false);\n logAbTestAction({ action: 'click', target: `notNowButton-${target}` });\n };\n\n const bannerClasses = cx({\n 'banner-wrapper': true,\n show: isVisible\n });\n\n return (\n <div className='advertisement-visitor-banner' {...gaAttributes}>\n {/* toggle */}\n <button\n type=\"button\"\n ref={toggleRef}\n onClick={handleToggleClick}\n className=\"initial-cta\"\n aria-label={t(ALL_TEXTS.ADV_BANNER_TITLE)}\n >\n <RocketIcon />\n </button>\n\n {/* banner */}\n <div className={bannerClasses} ref={bannerRef}>\n <MainVisual className='visual' />\n <div className='content-wrapper'>\n <h2 className='title'>{t(ALL_TEXTS.ADV_BANNER_TITLE)}</h2>\n </div>\n <div className='button-wrapper'>\n {/* request a demo */}\n <button\n type='button'\n onClick={handleRequestADemo}\n className='cta primary-cta'\n aria-label={t(ALL_TEXTS.REQUEST_A_DEMO)}\n {...gaAttributesRad}\n >\n {t(ALL_TEXTS.REQUEST_A_DEMO)}\n </button>\n {/* not now */}\n <button\n type='button'\n onClick={handleNotNowClick}\n className='cta secondary-cta'\n aria-label={t(ALL_TEXTS.NOT_NOW)}\n {...gaAttributesNn}\n >\n {t(ALL_TEXTS.NOT_NOW)}\n </button>\n </div>\n </div>\n </div>\n );\n};\n\nAdvertisementLeadFlowBanner.propTypes = {\n isExitIntentModalAvailable: bool,\n user: userPropType.isRequired,\n logAbTestAction: func,\n seenAtKey: string.isRequired\n};\n\nAdvertisementLeadFlowBanner.defaultProps = {\n isExitIntentModalAvailable: false,\n logAbTestAction: f => f\n};\n\nexport default AdvertisementLeadFlowBanner;\n","import { ActionManager } from '@jotforminc/abtest-manager';\nimport { useEffect, useRef, useState } from 'react';\nimport { ACTION_PROJECT_NAMES } from '@jotforminc/ep-utils';\n\nconst useActionManager = (user, projectName = ACTION_PROJECT_NAMES.ENTERPRISE_PROMOTIONS, trackOnce = false) => {\n const [actionsLoaded, setActionsLoaded] = useState(false);\n const actionManagerRef = useRef(f => f);\n\n useEffect(() => {\n const actionManager = new ActionManager({\n user,\n trackOnce,\n projectName\n });\n actionManagerRef.current = actionManager.registerJotformAction;\n setActionsLoaded(loaded => !loaded);\n }, [user]);\n\n return [actionsLoaded, actionManagerRef.current];\n};\n\nexport default useActionManager;\n","import { bool } from 'prop-types';\nimport React, { useEffect, useRef } from 'react';\nimport Tracking from '@jotforminc/tracking';\n\nimport { userPropType } from '@jotforminc/ep-utils';\nimport { AdvertisementLeadFlowBanner } from '../../../Banners';\nimport { useActionManager } from '../../../../hooks';\n\n// A/B Test: epAdLeadFlow\nconst AdvertisementLeadFlow = ({\n user,\n isExitIntentModalAvailable,\n ...props\n}) => {\n const [actionsLoaded, registerJotformAction] = useActionManager(user, 'epAdLeadFlow');\n const logAbTestActionRef = useRef(f => f);\n\n useEffect(() => {\n logAbTestActionRef.current = registerJotformAction;\n Tracking.enableFS({ advertisementLeadFlow_bool: true });\n }, [actionsLoaded]);\n\n return (\n <AdvertisementLeadFlowBanner\n {...props}\n user={user}\n logAbTestAction={logAbTestActionRef.current}\n isExitIntentModalAvailable={isExitIntentModalAvailable}\n />\n );\n};\n\nAdvertisementLeadFlow.propTypes = {\n isExitIntentModalAvailable: bool,\n user: userPropType.isRequired\n};\n\nAdvertisementLeadFlow.defaultProps = {\n isExitIntentModalAvailable: false\n};\n\nexport default AdvertisementLeadFlow;\n","import { renderAsset } from '@jotforminc/ep-utils';\nimport { AdvertisementLeadFlow } from '../components';\n\n// A/B Test: epAdLeadFlow\nconst renderAdvertisementLeadFlow = props => {\n renderAsset({\n Asset: AdvertisementLeadFlow,\n rootElementId: 'advertisement-lead-flow-root',\n ...props\n });\n};\n\nexport default renderAdvertisementLeadFlow;\n","export const BLOG_POSTS = {\n '/blog/case-study-excel-london/': {\n param: 'csel'\n }\n};\n","import { renderAdvertisementLeadFlow } from '@jotforminc/enterprise-promotions';\nimport { getEnterprisePromotionByAssetName } from '@jotforminc/ep-utils';\nimport { BLOG_POSTS } from './blogPosts';\n\nexport const initEpAdLeadFlowBlogPosts = async user => {\n const currentPage = global.window.location.pathname;\n const blogPost = BLOG_POSTS[currentPage];\n if (!blogPost) return;\n\n const params = new URLSearchParams(document.location.search);\n const hasParam = params.has(blogPost.param);\n if (!hasParam) return;\n\n try {\n const asset = await getEnterprisePromotionByAssetName('advertisementLeadFlow');\n if (!asset.show) return;\n\n renderAdvertisementLeadFlow({\n user,\n isExitIntentModalAvailable: asset.details?.isAdLeadFlowExitIntentModalAvailable,\n seenAtKey: asset.seenAtKey\n });\n } catch (error) {\n console.log(`Error on initializing epAdLeadFlow for blog posts: ${error}`);\n }\n};\n","export const getRootElement = selector => {\n if (document.querySelector(selector)) {\n return document.querySelector(selector);\n }\n const rootEl = document.createElement('div');\n if (selector.startsWith('#')) {\n rootEl.id = selector;\n }\n if (selector.startsWith('.')) {\n rootEl.classList.add(selector);\n }\n document.body.appendChild(rootEl);\n return rootEl;\n};\n\nexport const getQueryParam = key => {\n const params = new URLSearchParams(window.location.search);\n return params.get(key);\n};\n\nexport const isValidWebsite = url => {\n if (!url) return true;\n\n // eslint-disable-next-line max-len\n const regex = /(https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9]+\\.[^\\s]{2,}|www\\.[a-zA-Z0-9]+\\.[^\\s]{2,})/;\n return regex.test(url);\n};\n","export const ONBOARDING_ROOT_EL = '#onboarding-root';\n\nexport const STEP_TYPES = {\n LOGINFLOW: 'LOGINFLOW',\n INDUSTRY: 'INDUSTRY'\n};\n\nexport const LOGIN_FLOW_SCREEN_TYPES = {\n SIGNUP: 'signupWithSocialOpts',\n LOGIN: 'loginOptions'\n};\n\n// TODO: fetch languages from api\nexport const availableLangs = [\n { value: 'en-US', label: 'English' },\n { value: 'es-ES', label: 'Español' },\n { value: 'fr-FR', label: 'Français' },\n { value: 'it-IT', label: 'Italiano' },\n { value: 'pt-PT', label: 'Português' },\n { value: 'de-DE', label: 'Deutsch' },\n { value: 'tr-TR', label: 'Türkçe' },\n { value: 'nl-NL', label: 'Nederlands' },\n { value: 'fi-FI', label: 'Suomi' },\n { value: 'pl-PL', label: 'Polski' },\n { value: 'ru-RU', label: 'Pусский - Beta' },\n { value: 'ja-JP', label: '日本語' },\n { value: 'bg-BG', label: 'български' },\n { value: 'sr-BA', label: 'Српски' },\n { value: 'ka-GE', label: 'ქართველი' },\n { value: 'id-ID', label: 'Indonesia' },\n { value: 'ar-AR', label: 'العربية' },\n { value: 'ko-KR', label: '한국어' },\n { value: 'zh-HK', label: '繁體中文 - Beta' },\n { value: 'af-ZA', label: 'Afrikaan - Beta' },\n { value: 'he-IL', label: 'Hebrew - Beta' }\n];\n\nexport const DEFAULT_LANG = { value: 'en-US', label: 'English' };\n\n// A/B Test: epSignupPageOnboarding\nexport const EP_ONBOARDING_TEST = 'epSignupPageOnboarding';\n","import { RequestLayer, Interceptors } from '@jotforminc/request-layer';\n\nconst layer = new RequestLayer('/API', {\n interceptorConfig: {\n teamID: global.teamID,\n customResponseInterceptors: [Interceptors.requestManagerResponseNormalizer]\n }\n});\n\nexport const setUserSettings = (username, data) => {\n const formData = new FormData();\n\n Object.entries(data).forEach(([key, value]) => {\n formData.append(key, value);\n });\n\n return layer.post(`user/${username}/settings`, formData);\n};\n\nexport const deleteUserSetting = key => {\n return layer.delete(`user/settings/${key}`);\n};\n","export const TEXTS = {\n ALREADY_HAVE_AN_ACCOUNT: 'Already have an account?',\n DONT_HAVE_AN_ACCOUNT: 'Don’t have an account?',\n LOGIN: 'Login',\n SIGNUP: 'Signup',\n TRUSTED_BY_OVER_25_MILLION_USERS_AROUND_THE_WORLD: 'Trusted by over 25 million users around the world.',\n JOTFORM_FOOTER_TEXT: '© [1[2024]] Jotform Inc.',\n CREATE_YOUR_ACCOUNT: 'Create Your Account',\n HELP_US_UNDERSTAND_YOUR_NEEDS: 'Help Us Understand Your Needs',\n SKIP: 'Skip',\n FINISH: 'Finish',\n NEXT: 'Next',\n BACK: 'Back',\n TEAM: 'Team',\n INDIVIDUAL: 'Individual Contributor',\n INDUSTRY: 'Industry',\n ORG_NAME: 'Organization Name',\n ORG_SIZE: 'Organization Size',\n JOB_ROLE: 'Job role',\n MANAGEMENT_LEVEL: 'Management Level',\n SIZE_OF_ORGANIZATION: 'Size of Organization',\n ORGANIZATION_WEBSITE: 'Organization Website',\n SIZE_JUST_ME: 'Just Me',\n SIZE_LEVEL1: '2 - 99',\n SIZE_LEVEL2: '100 - 999',\n SIZE_LEVEL3: '1000+',\n MY_TEAM: 'My Team',\n MY_ORGANIZATION: 'My Organization',\n\n WHO_WILL_BE_USING: 'Who will be using Jotform?',\n WHO_WILL_BE_USING_DESCRIPTION: 'Your answer helps us recommend the best options for you.',\n\n TELL_US_ABOUT_YOUR_ROLE: 'Tell us about your job role',\n TELL_US_ABOUT_YOUR_ROLE_DESCRIPTION: 'Your answer helps us personalize your experience.',\n\n TELL_US_ABOUT_YOUR_ORGANIZATION: 'Tell us about your organization',\n TELL_US_ABOUT_YOUR_ORGANIZATION_DESCRIPTION: 'Your answer helps us recommend the right plan for your team.',\n TELL_US_ABOUT_YOUR_ORGANIZATION_PLACEHOLDER: 'Enter your organization’s name',\n\n ORGANIZATION_WEBSITE_PLACEHOLDER: 'Enter your organization’s website URL',\n ORGANIZATION_WEBSITE_VALIDATION: 'Enter a valid website address',\n\n SEE_OTHER_INDUSTRIES: 'See other industries',\n\n WHICH_INDUSTRY_YOU_WORK: 'Which industry do you work in?',\n WHICH_INDUSTRY_YOU_WORK_DESCRIPTION: 'Your answer helps us customize your journey.',\n WHICH_INDUSTRY_YOU_WORK_PLACEHOLDER: 'Enter the industry you work in',\n\n INDUSTRY_NONPROFIT: 'Nonprofit',\n INDUSTRY_HEALTHCARE: 'Healthcare',\n INDUSTRY_EDUCATION: 'Education',\n INDUSTRY_FINANCE: 'Finance',\n INDUSTRY_HUMAN_RESOURCES: 'Human Resources',\n INDUSTRY_IT_TECHNOLOGY: 'IT & Technology',\n INDUSTRY_RETAIL_ECOMMERCE: 'Retail & E-commerce',\n INDUSTRY_MARKETING: 'Marketing & Research',\n INDUSTRY_INSURANCE: 'Insurance',\n INDUSTRY_REAL_ESTATE: 'Real Estate & Leasing',\n INDUSTRY_SPORTS_ACTIVITIES: 'Sports & Activities',\n INDUSTRY_CONSTRUCTION: 'Construction',\n INDUSTRY_BEAUTY_PERSONAL_CARE: 'Beauty & Personal Care',\n INDUSTRY_TRANSPORTATION_TRAVEL: 'Transportation & Travel',\n INDUSTRY_ANIMAL_CARE: 'Animal Care',\n INDUSTRY_RESTAURANTS_FOOD: 'Restaurants & Food',\n INDUSTRY_EVENT_ORGANIZATION: 'Event Organization',\n INDUSTRY_VIDEO_PHOTOGRAPHY: 'Video & Photography',\n INDUSTRY_ART_DESIGN: 'Arts & Design',\n INDUSTRY_PUBLIC_ADMINISTRATION: 'Public Administration',\n INDUSTRY_OTHER: 'Other',\n\n MARKETING_OPS: 'Marketing Ops',\n ENGINEERING: 'Engineering',\n CUSTOMER_SUPPORT_OPS: 'Customer Support Ops',\n HR_RECRUITING_OPS: 'HR & Recruiting Ops',\n PROJECT_MANAGEMENT: 'Project Management',\n BUSINESS_OWNER: 'Business Owner',\n SALES_OPS: 'Sales Ops',\n OTHER: 'Other',\n\n INDIVIDUAL_CONTRIBUTOR: 'Individual Contributor',\n TEAM_LEAD: 'Team Lead',\n MANAGER: 'Manager',\n DIRECTOR: 'Director',\n CEO_FOUNDER: 'CEO / Founder'\n};\n\n// A/B Test: epSignupPageOnboarding\nexport const INDUSTRIES = [\n TEXTS.INDUSTRY_PUBLIC_ADMINISTRATION,\n TEXTS.INDUSTRY_NONPROFIT,\n TEXTS.INDUSTRY_HEALTHCARE,\n TEXTS.INDUSTRY_EDUCATION,\n TEXTS.INDUSTRY_FINANCE,\n TEXTS.INDUSTRY_HUMAN_RESOURCES,\n TEXTS.INDUSTRY_IT_TECHNOLOGY,\n TEXTS.INDUSTRY_RETAIL_ECOMMERCE,\n TEXTS.INDUSTRY_MARKETING,\n TEXTS.INDUSTRY_INSURANCE,\n TEXTS.INDUSTRY_REAL_ESTATE,\n TEXTS.INDUSTRY_SPORTS_ACTIVITIES,\n TEXTS.INDUSTRY_CONSTRUCTION,\n TEXTS.INDUSTRY_BEAUTY_PERSONAL_CARE,\n TEXTS.INDUSTRY_TRANSPORTATION_TRAVEL,\n TEXTS.INDUSTRY_ANIMAL_CARE,\n TEXTS.INDUSTRY_RESTAURANTS_FOOD,\n TEXTS.INDUSTRY_EVENT_ORGANIZATION,\n TEXTS.INDUSTRY_VIDEO_PHOTOGRAPHY,\n TEXTS.INDUSTRY_ART_DESIGN,\n TEXTS.INDUSTRY_OTHER\n];\n","import Tracking from '@jotforminc/tracking';\n\n// A/B Test: signupOnboardingIV\nexport const PROJECT_NAME = 'signupOnboardingIV';\n\n// const isInOnePercent = () => Math.floor(Math.random() * 100) + 1 === 1;\n\nexport const identifyUserForFullstory = ({\n user,\n projectName,\n isEnabled = false,\n callback = f => f\n}) => {\n if (!projectName || !isEnabled || !user?.username) return;\n if (!Tracking.FSisInitialized()) {\n Tracking.enableFS();\n }\n Tracking.identify(user?.username, {\n displayName: user?.username,\n [`${projectName}_bool`]: true\n });\n if (typeof callback === 'function') {\n callback();\n }\n};\n","import { useMemo } from 'react';\nimport { ActionManager } from '@jotforminc/abtest-manager';\nimport { PROJECT_NAME } from '../utils';\n\nconst useLogAbTestAction = (user, isIncludedInAbTest = false, isDebugMode = false, projectName = PROJECT_NAME) => {\n const logAbTestAction = useMemo(() => {\n if ((!isDebugMode && !isIncludedInAbTest) || !user) return f => f;\n return new ActionManager({\n user,\n projectName,\n enableDebugMode: isDebugMode\n })?.registerJotformAction;\n }, [user, isIncludedInAbTest]);\n\n return [logAbTestAction];\n};\n\nexport default useLogAbTestAction;\n","import { useEffect } from 'react';\nimport { identifyUserForFullstory } from '../utils';\n\nconst useFullstory = ({ user, ...props }) => {\n useEffect(() => {\n identifyUserForFullstory({ user, ...props });\n }, [user]);\n};\n\nexport default useFullstory;\n","import React, {\n createContext, useContext, useEffect, useState\n} from 'react';\nimport {\n element, shape\n} from 'prop-types';\nimport { handleCustomNavigation } from '@jotforminc/utils';\nimport { deleteUserSetting, isValidWebsite, setUserSettings } from '../utils';\nimport { EP_ONBOARDING_TEST, INDUSTRIES, TEXTS } from '../constants';\nimport { useLogAbTestAction, useFullstory } from '../hooks';\n\nconst EpOnboardingContext = createContext();\n\n// TODO(@ilkeradiguzel): refactor (especially the switch case part), introduce reducer\nconst EpOnboardingProvider = ({\n user,\n children,\n onboardingData\n}) => {\n const shouldShowOtherIndustryFromPreviousAttempt = () => {\n if (!onboardingData.industry) return false;\n\n const industryBelongsToDisplayedOnes = INDUSTRIES.slice(0, 8).includes(onboardingData.industry);\n return !industryBelongsToDisplayedOnes;\n };\n\n const [state, setState] = useState(() => ({\n user,\n maxStep: Number(onboardingData.progress),\n currentStep: Number(onboardingData.progress),\n onboardData: {\n usageTier: onboardingData.usageTier,\n industry: onboardingData.industry?.replace('&', '&') || null,\n organizationName: onboardingData.company,\n organizationWebsite: user.website || 'www.',\n organizationSize: onboardingData.company_size,\n jobRole: onboardingData.jobRole,\n managementLevel: onboardingData.managementLevel\n },\n ui: {\n showOtherIndustries: shouldShowOtherIndustryFromPreviousAttempt(),\n isLoading: false\n }\n }));\n\n const {\n currentStep,\n maxStep,\n onboardData: {\n usageTier, industry, organizationName, organizationSize, organizationWebsite, jobRole, managementLevel\n }\n } = state;\n\n const [logAbTestAction] = useLogAbTestAction(user, true, !!new URLSearchParams(window.location.search).get('debug'), EP_ONBOARDING_TEST);\n useFullstory({ user, projectName: EP_ONBOARDING_TEST, isEnabled: true });\n\n const isSkippableStep = () => currentStep > 1 && usageTier === TEXTS.SIZE_JUST_ME;\n\n const canProceedNextStep = () => {\n let proceed = true;\n switch (currentStep) {\n case 0:\n if (!usageTier) proceed = false;\n break;\n\n case 1:\n if (!industry) proceed = false;\n break;\n\n case 2:\n if (isSkippableStep() && (organizationWebsite === 'www.' || isValidWebsite(organizationWebsite))) break;\n if (!organizationName || !organizationWebsite || !isValidWebsite(organizationWebsite) || !organizationSize) proceed = false;\n break;\n\n case 3:\n if (isSkippableStep()) break;\n if (!jobRole || !managementLevel) proceed = false;\n break;\n\n default:\n break;\n }\n\n return proceed;\n };\n\n const saveCurrentProgress = async () => {\n const currentOnboardingData = {};\n switch (currentStep) {\n case 0:\n currentOnboardingData.usageTier = usageTier;\n break;\n\n case 1:\n currentOnboardingData.industry = industry;\n break;\n\n case 2:\n if (organizationName) currentOnboardingData.company = organizationName;\n if (organizationWebsite && organizationWebsite !== 'www.') currentOnboardingData.website = organizationWebsite;\n if (organizationSize) currentOnboardingData.company_size = organizationSize;\n break;\n\n case 3:\n if (jobRole) currentOnboardingData.jobRole = jobRole;\n if (managementLevel) currentOnboardingData.managementLevel = managementLevel;\n break;\n\n default:\n break;\n }\n\n if (currentStep + 1 > maxStep) {\n currentOnboardingData.onboardingProgress = currentStep + 1;\n }\n\n await setUserSettings(user.username, currentOnboardingData);\n };\n\n useEffect(() => {\n if (currentStep > 0) return;\n\n setUserSettings(user.username, { onboardingProgress: currentStep });\n }, []);\n\n useEffect(() => {\n logAbTestAction({ action: 'seen', target: `onboarding-step${currentStep + 1}` });\n }, [currentStep]);\n\n const handleNextClick = async () => {\n try {\n setState(currentState => ({ ...currentState, ui: { ...currentState.ui, isLoading: true } }));\n await saveCurrentProgress();\n // TODO(@ilkeradiguzel): meaning end of the step, refactor below to bind it to the step dynamically, currently it resolves the circular dependency issue..\n if (currentStep < 3) {\n setState(currentState => ({ ...currentState, currentStep: currentState.currentStep + 1, maxStep: Math.max(currentState.currentStep + 1, currentState.maxStep) }));\n } else {\n await deleteUserSetting('onboardingProgress');\n handleCustomNavigation('/myforms', '_self', true);\n }\n } catch (error) {\n console.error(error);\n } finally {\n setState(currentState => ({ ...currentState, ui: { ...currentState.ui, isLoading: false } }));\n }\n };\n\n const handleBackClick = () => {\n if (currentStep < 1) return;\n\n setState(currentState => ({ ...currentState, currentStep: currentState.currentStep - 1 }));\n };\n\n const handleProgressBarClick = step => {\n if (step > maxStep) return;\n\n setState(currentState => ({ ...currentState, currentStep: step }));\n };\n\n const setOnboardData = data => {\n setState(currentState => ({ ...currentState, onboardData: { ...currentState.onboardData, ...data } }));\n };\n\n const showOtherIndustries = () => {\n setState(currentState => ({ ...currentState, ui: { ...currentState.ui, showOtherIndustries: true } }));\n };\n\n const api = {\n handleNextClick,\n handleBackClick,\n setOnboardData,\n canProceedNextStep,\n isSkippableStep,\n showOtherIndustries,\n handleProgressBarClick,\n logAbTestAction\n };\n\n return (\n <EpOnboardingContext.Provider\n value={{ state, api }}\n >\n {children}\n </EpOnboardingContext.Provider>\n );\n};\n\nEpOnboardingProvider.propTypes = {\n user: shape({}).isRequired,\n children: element,\n onboardingData: shape({})\n};\n\nEpOnboardingProvider.defaultProps = {\n children: null,\n onboardingData: {\n usageTier: null,\n industry: null,\n company: null,\n company_size: null,\n jobRole: null,\n managementLevel: null,\n progress: 0\n }\n};\n\nexport default EpOnboardingProvider;\nexport const useEpOnboarding = () => useContext(EpOnboardingContext);\n","export const CONTENTS = [\n {\n name: 'Form Builder',\n title: 'Powerful forms get it done',\n image: 'https://cdn.jotfor.ms/assets/img/signup_onboarding/form_builder.png',\n color: '255, 97, 0'\n },\n {\n name: 'Jotform Apps',\n title: 'Create Apps with No-Code App Builder',\n image: 'https://cdn.jotfor.ms/assets/img/signup_onboarding/jotform_apps.png',\n color: '156, 77, 211'\n },\n {\n name: 'Jotform Approvals',\n title: 'Automate your approval process with ease',\n image: 'https://cdn.jotfor.ms/assets/img/signup_onboarding/jotform_approvals.png',\n color: '0, 120, 98'\n },\n {\n name: 'Jotform Sign',\n title: 'E-signatures meet automation',\n image: 'https://cdn.jotfor.ms/assets/img/signup_onboarding/jotform_sign.png',\n color: '123, 182, 15'\n },\n {\n name: 'Jotform PDF Editor',\n title: 'Automatically create polished, designed documents',\n image: 'https://cdn.jotfor.ms/assets/img/signup_onboarding/jotform_pdf_editor.png',\n color: '62, 98, 200'\n },\n {\n name: 'Jotform Tables',\n title: 'When a spreadsheet isn’t enough for your team',\n image: 'https://cdn.jotfor.ms/assets/img/signup_onboarding/jotform_tables.png',\n color: '4, 158, 56'\n }\n];\n\n// A/B Test: epSignupPageOnboarding\nexport const CONTENTS_V2 = [\n {\n key: 'firstStep',\n name: 'Hi',\n username: '{fullName}',\n title: 'Tell us a bit about yourself.',\n bg_image: 'https://cdn.jotfor.ms/assets/img/signup_onboarding_2/step1.svg',\n isHalfVisible: true,\n color: '62, 98, 200'\n },\n {\n key: 'secondStep',\n bg_image: 'https://cdn.jotfor.ms/assets/img/signup_onboarding_2/step2.png'\n },\n {\n key: 'thirdStep',\n bg_image: 'https://cdn.jotfor.ms/assets/img/signup_onboarding_2/step3.png',\n isOrganizationStep: true\n },\n {\n key: 'fourthStep',\n name: 'Thank you,',\n username: '{fullName}',\n title: 'Your account is almost ready!',\n shadow_image: 'https://cdn.jotfor.ms/assets/img/signup_onboarding_2/step4-shadow.svg',\n isTeam: true,\n isIndividual: true,\n\n color: '62, 98, 200'\n }\n];\n","import React from 'react';\nimport { bool, string } from 'prop-types';\nimport cx from 'classnames';\nimport { t } from '@jotforminc/translation';\nimport User from '../assets/svg/user.svg';\nimport Email from '../assets/svg/email.svg';\nimport Organization from '../assets/svg/organization.svg';\nimport { TEXTS } from '../constants';\nimport { useEpOnboarding } from '../contexts';\n\nconst InfoCard = ({\n name, isTeam, isIndividual, isHalfVisible, isOrganizationStep, shadowImage\n}) => {\n const { state: { onboardData: { usageTier, managementLevel, organizationName } } } = useEpOnboarding();\n\n return (\n <div style={{ position: 'relative' }}>\n\n {shadowImage && (\n <div className='jfOnboarding--info-card-shadow'>\n <img src={shadowImage} alt=\"shadow\" />\n </div>\n )}\n\n <div className={cx('jfOnboarding--info-card', isHalfVisible && 'half', isOrganizationStep && 'half')}>\n {isOrganizationStep\n ? (\n <div className='jfOnboarding--info-card-organization'>\n <Organization className='icon' />\n <span className='name'>{organizationName || t('Your Organization')}</span>\n </div>\n )\n : (\n <div className='jfOnboarding--info-card-bar' />\n )}\n <div className='jfOnboarding--info-card-wrapper'>\n\n {!isOrganizationStep && (\n <div className='jfOnboarding--info-card-header'>\n <User className='icon' />\n <div className='content'>\n <span className='name'>{name || <span className='placeholder' /> }</span>\n <span className='email'>\n <Email />\n <span className='placeholder' />\n </span>\n </div>\n </div>\n )}\n\n {isHalfVisible || isOrganizationStep ? (\n <div className='jfOnboarding--placeholder-wrapper'>\n <div className='first-line'>\n <div className='item-1' />\n <div className='item-2' />\n <div className='item-3' />\n </div>\n <div className='second-line' />\n <div className='second-line' />\n <div className='second-line' />\n </div>\n ) : (\n <>\n <div className='jfOnboarding--info-tag-wrapper'>\n {isTeam && (\n <span className='tag team'>\n {usageTier}\n </span>\n )}\n {isIndividual && managementLevel && (\n <span className='tag individual min-w-14'>\n {managementLevel}\n </span>\n )}\n </div>\n <div className='jfOnboarding--info-details-wrapper'>\n <div className='line'>\n <span className='text'>{TEXTS.INDUSTRY}</span>\n <span className='placeholder' />\n </div>\n <div className='line'>\n <span className='text'>{TEXTS.ORG_NAME}</span>\n <span className='placeholder' />\n </div>\n <div className='line'>\n <span className='text'>{TEXTS.ORG_SIZE}</span>\n <span className='placeholder' />\n </div>\n <div className='line'>\n <span className='text'>{TEXTS.JOB_ROLE}</span>\n <span className='placeholder' />\n </div>\n </div>\n </>\n )}\n\n </div>\n </div>\n </div>\n );\n};\n\nInfoCard.propTypes = {\n name: string,\n isTeam: bool,\n isIndividual: bool,\n isHalfVisible: bool,\n isOrganizationStep: bool,\n shadowImage: string\n};\n\nInfoCard.defaultProps = {\n name: null,\n isTeam: false,\n isIndividual: false,\n isHalfVisible: false,\n isOrganizationStep: false,\n shadowImage: null\n};\n\nexport default InfoCard;\n","import React, { useEffect, useRef } from 'react';\nimport { t } from '@jotforminc/translation';\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport { Autoplay, EffectFade } from 'swiper/modules';\nimport cx from 'classnames';\nimport JFLogo from '../assets/svg/jfLogo.svg';\nimport Line from '../assets/svg/lineV2.svg';\nimport { CONTENTS_V2 } from '../constants';\nimport 'swiper/css';\nimport 'swiper/css/effect-fade';\nimport 'swiper/css/autoplay';\nimport InfoCard from './InfoCard';\nimport { useEpOnboarding } from '../contexts';\n\nconst ContentV2 = () => {\n const { state: { user, currentStep } } = useEpOnboarding();\n const swiperRef = useRef(null);\n\n useEffect(() => {\n swiperRef.current.swiper.slideTo(currentStep);\n }, [currentStep]);\n\n const renderHeaderMessage = (data, userName) => {\n if (data.name === 'Hi') {\n return `Hi${userName ? ` ${userName}` : ''}!`;\n }\n return `${data.name}${userName ? ` ${userName}` : ''}`;\n };\n\n return (\n <Swiper\n className=\"allSteps--content-swiper\"\n effect=\"fade\"\n simulateTouch={false}\n autoplay={false}\n initialSlide={currentStep}\n breakpoints={{\n 1024: {\n loop: true\n }\n }}\n modules={[EffectFade, Autoplay]}\n onSlideChange={swiper => {\n document.documentElement.setAttribute('style', `--jf-onboarding-color: ${CONTENTS_V2[swiper.realIndex]?.color}`);\n }}\n ref={swiperRef}\n >\n {CONTENTS_V2.map(data => (\n <SwiperSlide key={data.key}>\n <div\n className={cx('jfOnboarding--content-v2', data.wrapperClassName && `${data.wrapperClassName}`)}\n >\n {data?.title && (\n <h2 className=\"jfOnboarding--content-title v2\">\n <span>\n {renderHeaderMessage(data, user?.name)}\n </span>\n <strong>{t(data.title)}</strong>\n </h2>\n )}\n {data?.image && (\n <div className=\"jfOnboarding--content-image\">\n <img src={data.image} alt={data.name} />\n </div>\n )}\n {data?.bg_image && (\n <div className=\"jfOnboarding--content-bg-image\">\n <img src={data.bg_image} alt={t(data.name)} />\n </div>\n )}\n {(data?.isOrganizationStep || data?.username) && (\n <InfoCard\n name={user?.name}\n isTeam={data?.isTeam}\n isIndividual={data?.isIndividual}\n isHalfVisible={data?.isHalfVisible}\n isOrganizationStep={data?.isOrganizationStep}\n shadowImage={data?.shadow_image}\n />\n )}\n\n <div className=\"jfOnboarding--content-line\" aria-hidden=\"true\">\n <Line />\n </div>\n <div className=\"jfOnboarding--content-jflogo\" aria-hidden=\"true\">\n <JFLogo />\n </div>\n </div>\n </SwiperSlide>\n ))}\n </Swiper>\n );\n};\n\nexport default ContentV2;\n","export const ACTION_DATA = {\n // login flow\n LOGIN_FLOW_SIGNUP_EMAIL_SEEN: { action: 'seen', target: 'loginFlowStep-signup-email' },\n LOGIN_FLOW_LOGIN_SEEN: { action: 'seen', target: 'loginFlowStep-login' },\n LOGIN_FLOW_SWITCH_LOGIN_CLICK: { action: 'click', target: 'loginFlowSwitchButton-login' },\n LOGIN_FLOW_SWITCH_SIGNUP_CLICK: { action: 'click', target: 'loginFlowSwitchButton-signup' },\n // social buttons\n LOGIN_FLOW_GOOGLE_CLICK: { action: 'click', target: 'loginFlowStep-signup-google' },\n LOGIN_FLOW_MICROSOFT_CLICK: { action: 'click', target: 'loginFlowStep-signup-microsoft' },\n LOGIN_FLOW_FACEBOOK_CLICK: { action: 'click', target: 'loginFlowStep-signup-facebook' },\n LOGIN_FLOW_APPLE_CLICK: { action: 'click', target: 'loginFlowStep-signup-apple' },\n LOGIN_FLOW_SALESFORCE_CLICK: { action: 'click', target: 'loginFlowStep-signup-salesforce' },\n // others\n INDUSTRY_STEP_SEEN: { action: 'seen', target: 'industryStep' },\n INDUSTRY_STEP_SKIP_CLICK: { action: 'click', target: 'industryStep-skipButton' },\n INDUSTRY_STEP_FINISH_CLICK: { action: 'click', target: 'industryStep-finishButton' },\n LOGO_CLICK: { action: 'click', target: 'logo' },\n LANGUAGE_CHANGE: { action: 'change', target: 'languageSelect' }\n};\n\nexport const SOCIAL_ACTION_DATA = {\n google: ACTION_DATA.LOGIN_FLOW_GOOGLE_CLICK,\n microsoft: ACTION_DATA.LOGIN_FLOW_MICROSOFT_CLICK,\n facebook: ACTION_DATA.LOGIN_FLOW_FACEBOOK_CLICK,\n apple: ACTION_DATA.LOGIN_FLOW_APPLE_CLICK,\n salesforce: ACTION_DATA.LOGIN_FLOW_SALESFORCE_CLICK\n};\n","import { cva } from 'class-variance-authority';\nimport { primary, secondary } from '../../tokens/colors';\nimport { CVAType, RadioProps } from '../../types';\n\n// Common classes\nconst radioSizes = {\n small: 'w-4 h-4',\n medium: 'w-5 h-5',\n large: 'w-6 h-6'\n};\n\n// CVA Types\ntype RadioCVAType = CVAType<Pick<RadioProps, 'theme' | 'size' | 'disabled' | 'checked' | 'error'>>\ntype RadioCircleCVAType = CVAType<Pick<RadioProps, 'size' | 'theme' | 'disabled'>>\ntype RadioWrapper = CVAType<Pick<RadioProps, 'size'>>\n\n// Variance values\nexport const radioCVA = cva<RadioCVAType>(\n ['appearance-none border-2 radius-full inline-flex shrink-0 focus:outline-2 outline-offset-0 m-0'], {\n variants: {\n theme: {\n dark: 'outline-blue-600 outline-opacity-50',\n light: 'outline-blue-200'\n },\n size: radioSizes,\n disabled: {\n true: 'cursor-not-allowed'\n },\n checked: {},\n error: {}\n },\n compoundVariants: [\n {\n theme: ['dark', 'light'],\n checked: false,\n disabled: false,\n error: true,\n className: [\n primary.error.default.border.base,\n primary.error.dark.border.hover\n ]\n },\n // Dark\n {\n theme: 'dark',\n checked: false,\n disabled: false,\n error: false,\n className: [\n secondary.background.dark.base,\n secondary.border.medium.base,\n primary.accent.default.border.hover\n ]\n },\n {\n theme: ['dark', 'light'],\n checked: true,\n disabled: false,\n className: [\n primary.accent.default.bg.base,\n primary.accent.default.border.base,\n primary.accent.dark.bg.hover,\n primary.accent.dark.border.hover,\n primary.accent.default.bg.focus\n ]\n },\n {\n theme: 'dark',\n checked: true,\n disabled: true,\n className: [secondary.background.light.base, secondary.border.medium.base]\n },\n {\n theme: 'dark',\n checked: false,\n disabled: true,\n className: [secondary.background.medium.base, secondary.border.medium.base]\n },\n {\n theme: 'dark',\n checked: false,\n disabled: false,\n error: true,\n className: ['focus:outline-red-400 focus:outline-opacity-50']\n },\n // Light\n {\n theme: 'light',\n checked: false,\n disabled: false,\n error: false,\n className: [primary.border.medium.base, primary.accent.default.border.hover, primary.accent.default.border.focus, 'bg-white']\n },\n {\n theme: 'light',\n checked: true,\n disabled: true,\n className: 'bg-navy-50 border-navy-50'\n },\n {\n theme: 'light',\n checked: false,\n disabled: true,\n className: 'border-navy-50'\n },\n {\n theme: 'light',\n checked: false,\n disabled: false,\n error: true,\n className: ['focus:outline-red-200 focus:outline-opacity-50']\n }\n ]\n }\n);\n\nexport const radioWrapper = cva<RadioWrapper>('inline-flex shrink-0 relative', {\n variants: {\n size: radioSizes\n }\n});\n\nexport const radioCircle = cva<RadioCircleCVAType>('absolute radius-full pointer-events-none', {\n variants: {\n size: {\n small: 'inset-1',\n medium: 'inset-1.5',\n large: 'inset-2'\n },\n theme: {},\n disabled: {}\n },\n compoundVariants: [\n {\n theme: 'dark',\n disabled: true,\n className: 'bg-gray-300'\n },\n {\n theme: 'dark',\n disabled: false,\n className: 'bg-white'\n },\n {\n theme: 'light',\n disabled: [false, true],\n className: 'bg-white'\n }\n ]\n});\n","import { ChoiceTruncate, Size, Theme } from '../../constants/common.types';\nimport { commonInputDefaults } from '../../contexts';\nimport { NativePropsWithoutRef } from '../../types/system.types';\n\ntype RadioBaseProps = {\n label?: string,\n description?: string\n htmlSize?: number,\n id: string,\n truncate?: ChoiceTruncate,\n theme?: Theme,\n size?: Size,\n error?: boolean,\n name: string,\n value: string\n};\n\nexport type RadioProps = NativePropsWithoutRef<'input', RadioBaseProps> & RadioBaseProps;\n\nexport const radioDefaultProps:Partial<RadioProps> = {\n size: commonInputDefaults.size,\n theme: commonInputDefaults.theme\n};\n","import React, { ComponentPropsWithRef, forwardRef } from 'react';\nimport { cx } from 'class-variance-authority';\n\nimport '@jotforminc/jotform.css';\n\nimport { radioCVA, radioCircle, radioWrapper } from './radio.cva';\nimport { RadioProps, radioDefaultProps } from './radio.types';\n\nimport { ChoiceLabel } from '../../shared/ChoiceLabel/ChoiceLabel';\nimport { useFormControl } from '../../contexts';\n\nexport const Radio = forwardRef((\n props: RadioProps,\n ref?: ComponentPropsWithRef<'input'>['ref']\n): JSX.Element => {\n const {\n description,\n label,\n htmlSize,\n theme,\n disabled,\n checked,\n size,\n error,\n className,\n id,\n truncate,\n value,\n ...rest\n } = useFormControl<RadioProps>(props, ['theme', 'size', 'disabled']);\n\n const hasLabel = label && label.length > 0;\n const hasDescription = description && description.length > 0;\n const wrapperClass = cx(!hasLabel && !hasDescription ? className : null, radioWrapper({ size }));\n\n const radioIcon = (\n <span className={wrapperClass}>\n <input\n type=\"radio\"\n id={id}\n checked={!!checked}\n value={value}\n className={radioCVA({\n size,\n theme,\n disabled: !!disabled,\n checked: !!checked,\n error: !!error\n })}\n disabled={!!disabled}\n ref={ref}\n size={htmlSize}\n {...rest}\n />\n {!!checked && <span className={radioCircle({ size, theme, disabled: !!disabled })} />}\n </span>\n );\n\n return (\n (hasLabel || hasDescription) ? (\n <ChoiceLabel\n id={id}\n input={radioIcon}\n description={description}\n label={label}\n className={className}\n size={size}\n disabled={!!disabled}\n theme={theme}\n truncate={truncate}\n />\n ) : radioIcon\n );\n});\n\nRadio.defaultProps = radioDefaultProps;\n","import React from 'react';\nimport { string } from 'prop-types';\nimport { t } from '@jotforminc/translation';\n\nexport const Questions = ({ title, description }) => (\n <div className='question-wrapper'>\n <h2 className='question-title'>{t(title)}</h2>\n <p className='question-description'>{t(description)}</p>\n </div>\n);\n\nQuestions.propTypes = {\n title: string.isRequired,\n description: string.isRequired\n};\n","import { IndustryStep } from './IndustryStep';\nimport { UsageTierStep } from './UsageTierStep';\nimport { OrganizationInfoStep } from './OrganizationInfoStep';\nimport { JobRoleStep } from './JobRoleStep';\n\nexport const EP_ONBOARDING_STEPS = [UsageTierStep, IndustryStep, OrganizationInfoStep, JobRoleStep];\n","import React from 'react';\nimport { t } from '@jotforminc/translation';\nimport {\n IconUserFilled, IconBuilding, IconUsersMoreFilled\n} from '@jotforminc/svg-icons';\nimport { Button } from '@jotforminc/magnet';\nimport cx from 'classnames';\nimport { TEXTS } from '../../constants';\nimport { useEpOnboarding } from '../../contexts';\nimport { Questions } from './Questions';\n\nexport const UsageTierStep = () => {\n const {\n state: { onboardData }, api: { setOnboardData, logAbTestAction }\n } = useEpOnboarding();\n\n const USAGE_TIER_MAP = [\n {\n usageTier: TEXTS.SIZE_JUST_ME,\n icon: IconUserFilled\n }, {\n usageTier: TEXTS.MY_TEAM,\n icon: IconUsersMoreFilled\n },\n {\n usageTier: TEXTS.MY_ORGANIZATION,\n icon: IconBuilding\n }\n ];\n\n const handleTierSelect = usageTier => {\n logAbTestAction({ action: 'select', target: `usageTier-${usageTier}` });\n setOnboardData({ usageTier });\n };\n\n return (\n <section>\n <Questions title={TEXTS.WHO_WILL_BE_USING} description={TEXTS.WHO_WILL_BE_USING_DESCRIPTION} />\n <div className='formItem'>\n <div className='options-wrapper size'>\n {USAGE_TIER_MAP.map(({ usageTier, icon }) => (\n <Button\n key={usageTier}\n size='large'\n variant=\"outline\"\n startIcon={icon}\n className={cx('big-button', {\n selected: onboardData.usageTier === usageTier\n })}\n colorStyle='secondary'\n onClick={() => handleTierSelect(usageTier)}\n >\n {t(usageTier)}\n </Button>\n ))}\n </div>\n </div>\n </section>\n );\n};\n","import React from 'react';\nimport { t } from '@jotforminc/translation';\nimport {\n IconAngleDown\n} from '@jotforminc/svg-icons';\nimport { Button, Radio } from '@jotforminc/magnet';\nimport cx from 'classnames';\n\nimport { Questions } from './Questions';\nimport { INDUSTRIES, TEXTS } from '../../constants';\nimport { useEpOnboarding } from '../../contexts';\n\nexport const IndustryStep = () => {\n const {\n state: { onboardData, ui }, api: { setOnboardData, showOtherIndustries, logAbTestAction }\n } = useEpOnboarding();\n\n const handleIndustrySelect = selectedIndustry => {\n logAbTestAction({ action: 'select', target: `industry-${selectedIndustry}` });\n setOnboardData({ industry: selectedIndustry });\n };\n\n return (\n <section>\n <Questions title={TEXTS.WHICH_INDUSTRY_YOU_WORK} description={TEXTS.WHICH_INDUSTRY_YOU_WORK_DESCRIPTION} />\n <div className='formItem'>\n <div className='options-wrapper'>\n <div className='radio-wrapper'>\n {(ui.showOtherIndustries ? INDUSTRIES : INDUSTRIES.slice(0, 8)).map(item => (\n <Radio\n key={item}\n id={item}\n label={t(item)}\n value={item}\n size='small'\n checked={onboardData.industry === item}\n className={cx('radio-item', {\n selected: onboardData.industry === item\n })}\n onChange={() => handleIndustrySelect(item)}\n />\n ))}\n </div>\n </div>\n </div>\n\n {!ui.showOtherIndustries ? (\n <Button\n variant=\"ghost\"\n endIcon={IconAngleDown}\n onClick={showOtherIndustries}\n >\n {t(TEXTS.SEE_OTHER_INDUSTRIES)}\n </Button>\n ) : null}\n </section>\n );\n};\n","import React, { useState } from 'react';\nimport { t } from '@jotforminc/translation';\nimport { InputText, Radio } from '@jotforminc/magnet';\nimport cx from 'classnames';\nimport { useEpOnboarding } from '../../contexts';\nimport { TEXTS } from '../../constants';\nimport { Questions } from './Questions';\nimport { isValidWebsite } from '../../utils';\n\nexport const OrganizationInfoStep = () => {\n const [websiteValidationError, setWebsiteValidationError] = useState('');\n const {\n state: { onboardData },\n api: { setOnboardData, logAbTestAction }\n } = useEpOnboarding();\n\n const ORGANIZATION_SIZES = [\n TEXTS.SIZE_JUST_ME,\n TEXTS.SIZE_LEVEL1,\n TEXTS.SIZE_LEVEL2,\n TEXTS.SIZE_LEVEL3\n ];\n\n const handleOrganizationInfoFill = e => {\n const { name, value } = e.target;\n\n if (name === 'organizationSize') {\n logAbTestAction({\n action: 'select',\n target: `organizationSize-${value}`\n });\n }\n\n setOnboardData({ [name]: value });\n };\n\n const validateWebsite = () => {\n if (!isValidWebsite(onboardData.organizationWebsite)) {\n setWebsiteValidationError(t(TEXTS.ORGANIZATION_WEBSITE_VALIDATION));\n } else {\n setWebsiteValidationError('');\n }\n };\n\n return (\n <section>\n <Questions\n title={TEXTS.TELL_US_ABOUT_YOUR_ORGANIZATION}\n description={TEXTS.TELL_US_ABOUT_YOUR_ORGANIZATION_DESCRIPTION}\n />\n <div className=\"formItem\">\n <label className=\"label\">{t(TEXTS.ORG_NAME)}</label>\n <InputText\n id=\"organization-name\"\n className={cx('max-w-96 mt-2', {})}\n placeholder={t(TEXTS.TELL_US_ABOUT_YOUR_ORGANIZATION_PLACEHOLDER)}\n value={onboardData.organizationName}\n onChange={handleOrganizationInfoFill}\n name=\"organizationName\"\n />\n </div>\n\n <div className=\"formItem\">\n <label className=\"label\">{t(TEXTS.ORGANIZATION_WEBSITE)}</label>\n <InputText\n className={cx('max-w-96 mt-2', {})}\n placeholder={t(TEXTS.ORGANIZATION_WEBSITE_PLACEHOLDER)}\n value={onboardData.organizationWebsite}\n onChange={handleOrganizationInfoFill}\n name=\"organizationWebsite\"\n onBlur={validateWebsite}\n />\n {websiteValidationError ? (\n <p className=\"inline-flex w-max px-2 py-1 bg-red-400 color-white text-xs m-0 radius\">\n {websiteValidationError}\n </p>\n ) : null}\n </div>\n\n <div className=\"formItem\">\n <label className=\"label\">{t(TEXTS.SIZE_OF_ORGANIZATION)}</label>\n <div className=\"options-wrapper\">\n <div className=\"narrow-radio-wrapper\">\n {ORGANIZATION_SIZES.map(size => (\n <Radio\n key={size}\n size=\"small\"\n label={t(size)}\n value={size}\n name=\"organizationSize\"\n checked={onboardData.organizationSize === size}\n onChange={handleOrganizationInfoFill}\n className={cx('radio-item', {\n selected: onboardData.organizationSize === size\n })}\n />\n ))}\n </div>\n </div>\n </div>\n </section>\n );\n};\n","import React from 'react';\nimport { t } from '@jotforminc/translation';\nimport { Radio } from '@jotforminc/magnet';\nimport cx from 'classnames';\nimport { TEXTS } from '../../constants';\nimport { Questions } from './Questions';\nimport { useEpOnboarding } from '../../contexts';\n\nexport const JobRoleStep = () => {\n const {\n state: { onboardData }, api: { setOnboardData, logAbTestAction }\n } = useEpOnboarding();\n\n const JOB_ROLES = [\n TEXTS.MARKETING_OPS,\n TEXTS.ENGINEERING,\n TEXTS.CUSTOMER_SUPPORT_OPS,\n TEXTS.HR_RECRUITING_OPS,\n TEXTS.PROJECT_MANAGEMENT,\n TEXTS.BUSINESS_OWNER,\n TEXTS.SALES_OPS,\n TEXTS.OTHER\n ];\n\n const MANAGEMENT_LEVELS = [\n TEXTS.INDIVIDUAL_CONTRIBUTOR,\n TEXTS.TEAM_LEAD,\n TEXTS.MANAGER,\n TEXTS.DIRECTOR,\n TEXTS.CEO_FOUNDER\n ];\n\n const handlePositionSelecet = e => {\n const { name, value } = e.target;\n\n logAbTestAction({ action: 'select', target: `${name}-${value}` });\n setOnboardData({ [name]: value });\n };\n\n return (\n <section>\n <Questions title={TEXTS.TELL_US_ABOUT_YOUR_ROLE} description={TEXTS.TELL_US_ABOUT_YOUR_ROLE_DESCRIPTION} />\n <div className='formItem'>\n <label className='label'>{t(TEXTS.JOB_ROLE)}</label>\n <div className='options-wrapper'>\n <div className='radio-wrapper'>\n {JOB_ROLES.map(role => (\n <Radio\n key={role}\n size='small'\n name='jobRole'\n label={t(role)}\n value={role}\n checked={onboardData.jobRole === role}\n className={cx('radio-item', {\n selected: onboardData.jobRole === role\n })}\n onChange={handlePositionSelecet}\n />\n ))}\n </div>\n </div>\n </div>\n\n <div className='formItem'>\n <label className='label'>{t(TEXTS.MANAGEMENT_LEVEL)}</label>\n <div className='options-wrapper'>\n <div className='radio-wrapper'>\n {MANAGEMENT_LEVELS.map(managementLevel => (\n <Radio\n key={managementLevel}\n size='small'\n name='managementLevel'\n label={t(managementLevel)}\n value={managementLevel}\n checked={onboardData.managementLevel === managementLevel}\n className={cx('radio-item', {\n selected: onboardData.managementLevel === managementLevel\n })}\n onChange={handlePositionSelecet}\n />\n )\n )}\n </div>\n </div>\n </div>\n </section>\n );\n};\n","import { Loading } from '@jotforminc/loading';\nimport React from 'react';\nimport { t } from '@jotforminc/translation';\nimport {\n IconAngleLeft, IconAngleRight\n} from '@jotforminc/svg-icons';\nimport { Button } from '@jotforminc/magnet';\nimport JotformLogo from '../assets/svg/logo.svg';\nimport { ACTION_DATA, TEXTS } from '../constants';\nimport '../styles/allSteps.scss';\nimport { useEpOnboarding } from '../contexts';\nimport { EP_ONBOARDING_STEPS } from './EpOnboardingSteps';\n\nconst AllSteps = () => {\n const {\n state: { currentStep, ui: { isLoading } }, api: {\n handleNextClick, handleBackClick, handleProgressBarClick, canProceedNextStep, isSkippableStep, logAbTestAction\n }\n } = useEpOnboarding();\n const { LOGO_CLICK } = ACTION_DATA;\n\n const handleLogoClick = e => {\n e.preventDefault();\n logAbTestAction(LOGO_CLICK);\n };\n const handleSkipClick = () => {\n logAbTestAction({ action: 'click', target: 'skipButton' });\n handleNextClick();\n };\n\n const renderNextButtonState = () => {\n if (isLoading) {\n return (\n <Loading\n strokeColor=\"#FFF\"\n strokeWidth=\"4\"\n size=\"32px\"\n />\n );\n }\n\n return currentStep < EP_ONBOARDING_STEPS.length - 1 ? t(TEXTS.NEXT) : t(TEXTS.FINISH);\n };\n\n const CurrentStep = EP_ONBOARDING_STEPS[currentStep];\n const progressSteps = Array.from({ length: 4 }, (_, i) => i).map((val, i) => (\n <li\n key={val}\n >\n <button\n type='button'\n onClick={() => handleProgressBarClick(i)}\n className={currentStep >= i ? 'active' : ''}\n />\n </li>\n ));\n\n return (\n <div className='allSteps--wrapper'>\n <div className='allSteps--header-wrapper'>\n <a\n href=\"/\"\n className=\"jfOnboarding--header-logo\"\n onClick={handleLogoClick}\n >\n <JotformLogo />\n </a>\n <ul className='allSteps--pagination'>\n {progressSteps}\n </ul>\n </div>\n\n <div className='allSteps--question'>\n {currentStep > 0 ? (\n <Button\n variant=\"ghost\"\n startIcon={IconAngleLeft}\n onClick={handleBackClick}\n className=\"mr-auto mb-2\"\n >\n {t(TEXTS.BACK)}\n </Button>\n ) : null}\n <CurrentStep />\n </div>\n\n <div className='allSteps--proceed-btns'>\n {isSkippableStep()\n ? (\n <Button\n className='allSteps--proceed-btns-skip'\n variant='outline'\n colorStyle='secondary'\n onClick={handleSkipClick}\n disabled={!canProceedNextStep()}\n >\n { t(TEXTS.SKIP)}\n </Button>\n ) : null}\n\n <Button\n className='allSteps--proceed-btns-next'\n variant='filled'\n colorStyle='primary'\n endIcon={!isLoading ? IconAngleRight : undefined}\n onClick={handleNextClick}\n disabled={!canProceedNextStep()}\n >\n {renderNextButtonState()}\n </Button>\n </div>\n </div>\n );\n};\n\nexport default AllSteps;\n","import React from 'react';\nimport './styles/onboarding.scss';\nimport { EpOnboardingProvider } from './contexts';\nimport ContentV2 from './components/Content-V2';\nimport { AllSteps } from './components';\n\nconst OnboardingV2 = props => {\n document.body.classList.add('onboarding-loaded');\n\n return (\n <EpOnboardingProvider {...props}>\n <div className=\"allSteps\">\n <AllSteps />\n <ContentV2 />\n </div>\n </EpOnboardingProvider>\n\n );\n};\n\nexport default OnboardingV2;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { getRootElement } from './utils/utils';\nimport { ONBOARDING_ROOT_EL } from './constants';\nimport OnboardingV2 from './OnboardingV2';\n\n// A/B Test: epSignupPageOnboarding\nexport const initEpOnboarding = ({ selector = ONBOARDING_ROOT_EL, ...props } = {}) => {\n const rootEl = getRootElement(selector);\n const root = createRoot(rootEl);\n\n root.render(\n <OnboardingV2 {...props} />\n );\n};\n\nexport default initEpOnboarding;\n","import { initEpOnboarding } from '@jotforminc/onboarding';\n\nexport const initEpOnboardingProgress = user => {\n const { onboardingData } = user;\n if (!onboardingData) return;\n\n initEpOnboarding({ user, onboardingData });\n};\n","import { useEffect } from 'react';\nimport {\n initEpEttGatedContentModal, initEpHealthcareReportModal, initEpProfessionalServices, initEpFerpaBanner, initEpCaseStudyAssets, initEpAdLeadFlowBlogPosts, initEpOnboardingProgress\n} from '../enterprisePromotions';\nimport { initEnterpriseJobs } from '../utils';\n\nconst useEnterprisePromotions = user => {\n useEffect(() => {\n if (!user) return;\n\n initEpOnboardingProgress(user);\n initEpEttGatedContentModal(user);\n initEpHealthcareReportModal(user);\n initEpProfessionalServices();\n\n initEpFerpaBanner(user);\n initEpCaseStudyAssets(user);\n initEpAdLeadFlowBlogPosts(user);\n }, [user]);\n\n useEffect(() => {\n (async () => {\n try {\n await initEnterpriseJobs();\n } catch (error) {\n console.log(`Error on initializing epJobs: ${error}`);\n }\n })();\n }, []);\n};\n\nexport default useEnterprisePromotions;\n","import { useEffect, useState } from 'react';\n\nconst useLazyIntegrationImages = () => {\n const selector = '.jfRHeader .jfIntegrations img';\n const [isLoaded, setIsLoaded] = useState(false);\n\n useEffect(() => {\n const loadImage = el => el?.setAttribute('src', el?.dataset?.src);\n const loadImages = () => document.querySelectorAll(selector).forEach(loadImage);\n\n const handleLazyLoad = () => {\n if (isLoaded) return;\n setIsLoaded(true);\n loadImages();\n };\n\n document.addEventListener('mousemove', handleLazyLoad);\n document.addEventListener('touchstart', handleLazyLoad);\n\n return () => {\n document.removeEventListener('mousemove', handleLazyLoad);\n document.removeEventListener('touchstart', handleLazyLoad);\n };\n }, [isLoaded, selector]);\n};\n\nexport default useLazyIntegrationImages;\n","export const getBodyEl = () => document.querySelector('body');\n\n// Disable scroll when mobile menu is activated\nexport const toggleDocumentOverflowProperty = isHidden => {\n const overflow = isHidden ? 'hidden' : 'auto';\n if (isHidden) {\n document.documentElement.style.setProperty('overflow', overflow);\n document.documentElement.style.setProperty('height', '100%');\n document.documentElement.style.setProperty('width', '100%');\n }\n};\n\nexport const getHeaderRootEl = () => {\n const headerHostEl = global.window.document.getElementById('jf-common-header-host');\n return headerHostEl?.shadowRoot || global.window.document;\n};\n\nexport const addEventListenerOnce = (node, type, listener) => {\n const listenerWrapper = event => {\n node.removeEventListener(type, listenerWrapper);\n listener(event);\n };\n node.addEventListener(type, listenerWrapper);\n};\n\nexport const createScriptElement = (url, callback, attr) => {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n if (callback) script.onload = callback;\n if (attr) script.setAttribute(attr, attr);\n script.src = url;\n document.head.appendChild(script);\n console.log('Loaded JS:', url);\n};\n\nexport const createLinkElement = (url, attr) => {\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = url;\n if (attr) link.setAttribute(attr, attr);\n document.head.appendChild(link);\n console.log('Loaded CSS:', url);\n};\n\nexport const addRootElement = (rootId = '', classNames = '') => {\n let rootEl = global.window.document.querySelector(`#${rootId}`);\n if (!rootEl) {\n rootEl = global.window.document.createElement('div');\n rootEl.setAttribute('id', rootId);\n if (classNames) {\n rootEl.setAttribute('class', classNames);\n }\n global.window.document.querySelector('body').appendChild(rootEl);\n }\n return rootEl;\n};\n\nexport const useLockBodyScroll = () => {\n const unlockScroll = () => {\n const bodyEl = global.window.document.body;\n const htmlEl = global.window.document.querySelector('html');\n\n if (bodyEl) {\n bodyEl.style.overflow = '';\n }\n\n if (htmlEl) {\n htmlEl.style.overflow = '';\n htmlEl.style.paddingInlineEnd = '';\n }\n };\n\n const lockScroll = () => {\n const bodyEl = global.window.document.body;\n const htmlEl = global.window.document.querySelector('html');\n\n if (bodyEl) {\n bodyEl.style.overflow = 'hidden';\n }\n\n if (htmlEl) {\n htmlEl.style.overflow = 'hidden';\n htmlEl.style.paddingInlineEnd = '14px';\n }\n };\n\n return {\n lockScroll,\n unlockScroll\n };\n};\n\nexport const insertAfter = (referenceNode, newNode) => {\n referenceNode?.parentNode.insertBefore(newNode, referenceNode.nextSibling);\n};\n","import { RequestLayer, Interceptors } from '@jotforminc/request-layer';\nimport { isEnterprise } from '@jotforminc/enterprise-utils';\nimport { dummyGuestUser, dummyFreeUser } from '../constants';\n\nlet isLoggedInBackend = false;\n\nconst requestLayer = new RequestLayer('/API', {\n interceptorConfig: {\n customResponseInterceptors: [Interceptors.requestManagerResponseNormalizer],\n shouldCache: true,\n logCachePayload: {\n projectName: 'header'\n }\n }\n});\n\nexport const dummyCombinedInfo = () => {\n return new Promise(resolve => {\n setTimeout(() => {\n const user = !isLoggedInBackend ? dummyGuestUser : dummyFreeUser;\n resolve({ data: { content: { type: 'USER', credentials: user } } });\n }, 50);\n });\n};\n\nexport const dummyLogin = () => {\n return new Promise(resolve => {\n setTimeout(() => {\n isLoggedInBackend = true;\n resolve(dummyFreeUser);\n }, 50);\n });\n};\n\nconst createCombinedInfoUrl = () => {\n let combinedInfoUrl = 'user/combinedinfo?loc=1&campaign=1';\n\n const { pathname } = global.window.location;\n const isMyForms = pathname.includes('/myforms/');\n\n if (isEnterprise()) {\n return combinedInfoUrl;\n }\n\n if (isMyForms) {\n const navLang = global.window.navigator.userLanguage || global.window.navigator.language;\n combinedInfoUrl += `&navLang=${navLang}`; // for lang offer notification\n }\n\n return combinedInfoUrl;\n};\n\nexport const fetchUser = async () => requestLayer.get(createCombinedInfoUrl());\n\nexport const getUnpaidInvoices = async () => {\n const { mostOverdueInvoice = {} } = requestLayer.get('enterprise/invoice/getUnpaidInvoices');\n return Array.isArray(mostOverdueInvoice) ? mostOverdueInvoice[0] || {} : mostOverdueInvoice || {};\n};\n\nexport const getEpUserSettings = async key => requestLayer.get(`ep/user/settings/${key}`);\n\n// @ilkeradiguzel\n// In order to check if user has already seen the campaign or not, returns either:\n// => { enterprise2024HealthcareReportModalSeenAt: \"1\" } which indicates the campaign with the related key has been seen, thus \"1\",\n// => { content: false, ...props } which indicated the campaign with the related key has NOT been seen, thus content: false.\n// => we can rely on { content } for this specific purpose.\nexport const userSeenCampaign = async key => {\n const { content } = await getEpUserSettings(key);\n return content !== false;\n};\n\nexport const initEnterpriseJobs = async () => requestLayer.get('ep/init-jobs');\n","export const getCurrentDateWithoutTimeZone = () => {\n const currentDate = new Date();\n const offset = currentDate.getTimezoneOffset() * 60000; // offset in milliseconds\n const currentDateWithoutOffset = new Date(currentDate - offset);\n return currentDateWithoutOffset.toISOString().split('T')[0];\n};\n","const isIE = () => {\n const ua = global.window.navigator.userAgent;\n const msie = ua.indexOf('MSIE '); // Detects IE 10 or older\n const trident = ua.indexOf('Trident/'); // Detects IE 11\n const edge = ua.indexOf('Edge/'); // Detects old Edge\n\n return msie > -1 || trident > -1 || edge > -1;\n};\n\nconst isWindows = () => global.window.navigator.userAgent.includes('Windows');\n\nexport const isYandex = () => {\n const ua = global.window.navigator.userAgent;\n const yandexIndex = ua.search(/YaBrowser/);\n return yandexIndex > 0 ? yandexIndex.toString() : '';\n};\n\nexport const addBrowserClassNames = () => {\n const htmlEl = document.querySelector('html');\n const jfHeader = document.querySelector('.jfHeader');\n const ieClassName = `header-browser-ie-${isIE()}`;\n const yandexClassName = `header-browser-yandex-${isYandex()}`;\n\n if (isIE()) {\n htmlEl.classList.add('header-browser-ie');\n htmlEl.classList.add(ieClassName);\n }\n\n if (isYandex()) {\n htmlEl.classList.add('header-browser-yandex');\n htmlEl.classList.add(yandexClassName);\n }\n\n if (isWindows()) {\n jfHeader?.classList.add('windows');\n }\n};\n","const getJotFormEnv = () => global.window.__jfrouter?.JOTFORM_ENV || global.window.JOTFORM_ENV;\nexport const getUserAccountType = user => user?.account_type?.name || user?.accountType?.name || user?.account_type || user?.accountType;\n\nexport const isGuest = user => getUserAccountType(user) === 'GUEST';\nexport const isAdmin = user => getUserAccountType(user) === 'ADMIN';\nexport const isSupport = user => getUserAccountType(user) === 'SUPPORT';\nexport const isBSG = user => ['BRONZE', 'SILVER', 'GOLD'].includes(getUserAccountType(user));\n\nexport const isTesting = () => getJotFormEnv() === 'TESTING';\nexport const isEnterprise = () => getJotFormEnv() === 'ENTERPRISE';\nexport const isProduction = () => getJotFormEnv() === 'PRODUCTION';\nexport const isDevelopment = () => getJotFormEnv() === 'DEVELOPMENT';\n\n// modify footer addres, kvkk, ccpa, terms based on user location\nexport const runFooterCustomFunction = user => {\n if (!user) return;\n if (global.window.footerFunction && typeof global.window.footerCustomFunction === 'function') {\n global.window.footerCustomFunction(user);\n }\n};\n\n// keep this for now for backwards compatibility\nexport const exceptionallyOverwriteUserDataForFormUser = (user, isFormUser) => {\n if (!isFormUser) return;\n const usr = user;\n usr.username = user.email; // Form users don't have a username\n usr.usage = {};\n usr.account_type = { limits: {}, name: 'FORM_USER' };\n};\n\nexport const isAiAgentBannerAvailable = user => {\n const isEnabled = true;\n const urlParam = new URLSearchParams(global.window.location.search).get('aiab') === '1';\n if (urlParam) return true;\n if (!isEnabled || isEnterprise()) return false;\n if (isAdmin(user) || isSupport(user)) return true;\n const isAiAgentExistingUserAB = user?.aiAgentExistingUserAB === '26421';\n const isAiAgentNewUserAB = user?.aiAgentNewUserAB === '26441';\n const isAiAgentBetaUser = user?.aiAgentBetaUser === '1';\n return isAiAgentExistingUserAB || isAiAgentNewUserAB || isAiAgentBetaUser;\n};\n","export const customRedirectionOnSignUp = () => {\n if (global.window.setCustomFunction_signup) {\n global.window.customFunction_signup();\n return true;\n }\n return false;\n};\n\nexport const customRedirectionOnLogIn = () => {\n if (global.window.setCustomFunction_login) {\n global.window.customFunction_login();\n return true;\n }\n return false;\n};\n","export const loadByApplyingLazyIgnoredElements = ({ target }, loadFunction) => {\n const lazyLoadDelayedElements = [\n { selector: 'CookieBanner', type: 'id' },\n { selector: 'close-wp', type: 'class' },\n { selector: 'jfRHeader--hamburger', type: 'class' },\n { selector: 'jfRHeader--logo-link', type: 'class' },\n { selector: 'jfRHeader--mobile-nav-signup-btn', type: 'class' },\n { selector: 'logo-page', type: 'class' }\n ]\n .map(({ type, selector }) => ({\n type,\n selector,\n elements: Array.from(document.querySelectorAll(`${type === 'id' ? '#' : '.'}${selector}`))\n }))\n .filter(({ elements }) => elements.length > 0);\n\n const isTargetDelayed = (elements, selector, type) => {\n const { id, classList } = target;\n return elements.some(currentEl => currentEl === target\n || currentEl.contains(target)\n || (type === 'id' ? id === selector : classList?.contains(selector)));\n };\n\n const shouldDelayLazyLoad = lazyLoadDelayedElements.some(({ elements, selector, type }) => {\n return isTargetDelayed(elements, selector, type);\n });\n\n setTimeout(loadFunction, shouldDelayLazyLoad ? 1000 : 0);\n};\n","import { createLinkElement, createScriptElement } from '../dom';\nimport { loadByApplyingLazyIgnoredElements } from './loadByApplyingLazyIgnoredElements';\n\nexport const loadAfter = (params, forceLoad = false) => {\n if (!Array.isArray(params)) {\n console.error('LoadAfter :: please give array to window.loadAfter function');\n return;\n }\n\n const defaultOptions = {\n type: '',\n url: '',\n callback: '',\n el: '',\n attr: '',\n force: false\n };\n\n params.forEach((param, index) => {\n const options = { ...defaultOptions, ...param };\n\n if (!options.url) {\n console.error('LoadAfter :: url not found');\n return;\n }\n\n const uniqueName = `${options.url.split('/').pop().split('.')[0]}${options.force ? index : ''}`;\n\n const elGeneralFunc = () => {\n if (document.body.classList.contains(uniqueName)) return;\n document.body.classList.add(uniqueName);\n\n if (options.type === 'JS') createScriptElement(options.url, options.callback, options.attr);\n if (options.type === 'CSS') createLinkElement(options.url, options.attr);\n };\n\n if (options.el) {\n const element = document.querySelector(options.el);\n if (!element) return;\n\n const handleEvent = event => {\n if (document.body.classList.contains(uniqueName)) return;\n loadByApplyingLazyIgnoredElements(event, elGeneralFunc);\n };\n\n if ('ontouchstart' in global.window || global.window.navigator.maxTouchPoints > 0 || global.window.navigator.msMaxTouchPoints > 0) {\n element.addEventListener('touchstart', handleEvent);\n }\n element.addEventListener('mousemove', handleEvent);\n global.window.addEventListener('scroll', elGeneralFunc);\n\n if (forceLoad) elGeneralFunc();\n return;\n }\n\n elGeneralFunc();\n });\n};\n\nglobal.window.loadAfter = loadAfter;\nglobal.window.dispatchEvent(new global.window.CustomEvent('jfheader-utils-ready'));\n","export const loadAndInsertAsFirstScript = (id, src, onload) => {\n if (document.getElementById(id)) {\n onload();\n return false;\n }\n\n const js = document.createElement('script');\n\n js.id = id;\n js.onload = onload;\n js.src = src;\n const fjs = document.getElementsByTagName('script')[0];\n if (fjs) {\n fjs.parentNode.insertBefore(js, fjs);\n } else {\n document.getElementsByTagName('head')[0].appendChild(js);\n }\n};\n","import { getBodyEl } from '../dom';\nimport { loadAndInsertAsFirstScript } from '../scriptLoaders';\n\nexport const loadLoginFlow = async onLoad => {\n if (global.window.loginFlowHelper) {\n if (onLoad) onLoad(global.window.loginFlowHelper);\n return Promise.resolve(global.window.loginFlowHelper);\n }\n\n return import(/* webpackChunkName: \"LoginFlowHelper\" */ './LazyLoginFlowHelper')\n .then(module => {\n const loginFlowHelper = new module.LoginFlowHelper();\n global.window.loginFlowHelper = loginFlowHelper;\n return loginFlowHelper;\n })\n .then(loginFlowHelper => {\n if (onLoad) onLoad(loginFlowHelper);\n return loginFlowHelper;\n });\n};\n\nconst getSocialMediaScriptInfo = socialMedia => {\n switch (socialMedia) {\n case 'facebook':\n return { id: 'facebook-jssdk', src: 'https://connect.facebook.net/en_US/sdk.js' };\n case 'google':\n return { id: 'google-jssdk-new', src: 'https://accounts.google.com/gsi/client' };\n case 'microsoft':\n return { id: 'microsoft-jssdk', src: 'https://cdn.jotfor.ms/js/msal/msal-browser.js' };\n default:\n throw new Error(`Unknown social media: ${socialMedia}`);\n }\n};\n\nexport const loadSocialMediaClient = socialMedia => {\n return new Promise((resolve, reject) => {\n try {\n const bodyEl = document.querySelector('body');\n\n if (bodyEl.classList.contains(`isloaded-${socialMedia}js`)) {\n return resolve();\n }\n\n const { id, src } = getSocialMediaScriptInfo(socialMedia);\n\n loadAndInsertAsFirstScript(id, src, () => {\n bodyEl.classList.add(`isloaded-${socialMedia}js`);\n resolve();\n });\n } catch (err) {\n reject(err);\n }\n });\n};\n\nexport const loadGoogleJS = () => {\n return getBodyEl().classList.contains('isloaded-googlejs') ? Promise.resolve() : loadSocialMediaClient('google');\n};\n\nexport const loadFacebookJS = () => {\n return getBodyEl().classList.contains('isloaded-facebookjs') ? Promise.resolve() : loadSocialMediaClient('facebook');\n};\n\nexport const loadMicrosotfJS = () => {\n return getBodyEl().classList.contains('isloaded-microsoftjs') ? Promise.resolve() : loadSocialMediaClient('microsoft');\n};\n","import { isDevelopment } from './jotform';\n\nexport class ActionManager {\n constructor({\n user,\n projectName,\n trackOnce\n }) {\n this.user = user || {};\n this.projectName = projectName;\n this.trackOnce = trackOnce || false;\n this.JotFormActions = null;\n this.registerJotformAction = this.registerJotformAction.bind(this);\n this.sentEvents = {};\n this.loadScript();\n }\n\n loadScript() {\n return new Promise((resolve, reject) => {\n if (document.querySelector('#jotform-actions-script')) return;\n\n const headEl = global.window.document.querySelector('head');\n const scriptEl = global.window.document.createElement('script');\n scriptEl.setAttribute('id', 'jotform-actions-script');\n scriptEl.src = 'https://js.jotform.com/actions.js';\n scriptEl.onload = resolve;\n scriptEl.onerror = reject;\n headEl.appendChild(scriptEl);\n });\n }\n\n setupJotFormActions() {\n const { JotFormActions } = global;\n if (typeof JotFormActions !== 'function') return;\n this.JotFormActions = JotFormActions(this.projectName);\n }\n\n registerJotformAction({ action, target } = {}) {\n if (!this.JotFormActions) {\n this.setupJotFormActions();\n }\n\n if (this.trackOnce && this.sentEvents[`${action}${target}`]) {\n return;\n }\n\n const { username: actor = null } = this.user;\n\n if (!this.JotFormActions || !actor) return;\n\n if (isDevelopment()) {\n console.log({ action, target });\n }\n\n this.JotFormActions.tick({ actor, action, target });\n\n if (this.trackOnce) {\n this.sentEvents[`${action}${target}`] = true;\n }\n }\n}\n\nexport default ActionManager;\n","import { customRedirectionOnLogIn, customRedirectionOnSignUp } from './customRedirects';\nimport { loadLoginFlow } from './loadLoginFlow';\nimport { ActionManager } from '../ActionManager';\nimport { LOGIN_FLOW_ACTIONS_PROJECT_NAME } from '../../constants';\n\nexport const openLoginFlow = async ({\n page,\n tracking,\n greetingMessage,\n greetingDescription,\n extraModalProps = {}\n}) => {\n let screen;\n let prevRoute;\n\n const trackLoginFlow = new ActionManager({ user: global.window.user, projectName: LOGIN_FLOW_ACTIONS_PROJECT_NAME }).registerJotformAction;\n\n const loginFlowProps = {\n mode: 'modal',\n greetingDescription,\n greetingMessage,\n user: global.window.user,\n showLogoOnSignupOptions: false,\n includeConfirm: true,\n forceUser: true,\n noDefaultWrapper: true,\n appleSigninEnabled: true,\n appName: 'jfHeader',\n shrinkConfirmOnMobile: true,\n isReact17: true,\n onUserLogin: (user, { newUser }) => {\n const action = newUser ? 'signup' : 'login';\n trackLoginFlow(action, tracking ?? screen);\n return newUser ? customRedirectionOnSignUp() : customRedirectionOnLogIn();\n },\n onNavigationChange: nextRoute => {\n if (!prevRoute || ['signupOptions', 'loginOptions', 'signupWithEmail'].includes(prevRoute)) {\n if (nextRoute === 'signupOptions') {\n screen = 'login-modal-signup-link';\n trackLoginFlow('open', tracking ?? screen);\n } else if (nextRoute === 'loginOptions') {\n screen = 'signup-modal-login-link';\n trackLoginFlow('open', tracking ?? screen);\n }\n }\n\n if (nextRoute === 'signupWithEmail') {\n screen = 'signupWithEmail';\n trackLoginFlow('open', tracking ?? screen);\n }\n\n prevRoute = nextRoute;\n },\n onGoogleLoginClick: () => trackLoginFlow('open', 'google'),\n onFBLoginClick: () => trackLoginFlow('open', 'facebook'),\n onAppleLoginClick: () => trackLoginFlow('open', 'apple'),\n ...extraModalProps\n };\n\n const setButtonNames = type => ({\n microsoft: `modal-microsoft-${type}-jfheader`,\n google: `modal-google-${type}-jfheader`,\n facebook: `modal-facebook-${type}-jfheader`,\n apple: `modal-apple-${type}-jfheader`,\n emailLogin: 'modal-standart-login-button',\n emailSignup: 'modal-header-createmyaccount'\n });\n\n switch (page) {\n case 's1':\n screen = 'signup';\n loginFlowProps.initialScreen = 'signupWithSocialOpts';\n loginFlowProps.buttonNames = setButtonNames('signup');\n break;\n case 's2':\n screen = 'login';\n loginFlowProps.forceLogin = 'true';\n loginFlowProps.buttonNames = setButtonNames('login');\n break;\n case 's3':\n screen = 'signupWithEmail';\n loginFlowProps.initialScreen = 'signupWithEmail';\n loginFlowProps.buttonNames = setButtonNames('signup');\n break;\n case 's3b':\n screen = 'signupWithSocialOpts';\n loginFlowProps.showFormOnSignupOptions = true;\n loginFlowProps.initialScreen = screen;\n loginFlowProps.buttonNames = setButtonNames('signup');\n break;\n default:\n loginFlowProps.initialScreen = page;\n }\n\n loginFlowProps.swsoTestVariant = true;\n\n const loginFlowHelper = await loadLoginFlow();\n loginFlowHelper.init(loginFlowProps);\n setTimeout(() => trackLoginFlow({ action: 'open', target: tracking ?? screen }), 0);\n};\n","import { openLoginFlow } from './openLoginFlow';\n\nexport const showLoginFlowModal = (\n page = 's1',\n tracking,\n // eslint-disable-next-line no-unused-vars\n hideClose = false,\n greetingMessage,\n greetingDescription,\n // eslint-disable-next-line no-unused-vars\n callbacks = {},\n extraModalProps = {}\n) => {\n openLoginFlow({\n page,\n tracking,\n greetingDescription,\n greetingMessage,\n extraModalProps\n });\n};\n\nglobal.window.showModal = showLoginFlowModal;\n","export const toggleSignupLoaders = (act = 'hide') => {\n document.querySelectorAll('.signup-loading').forEach(el => {\n const elRef = el;\n if (act === 'hide') {\n elRef.style.display = 'none';\n elRef.parentElement.classList.remove('socialbtn-loading-wrapper');\n } else if (act === 'show') {\n elRef.style.display = 'block';\n elRef.parentElement.classList.add('socialbtn-loading-wrapper');\n }\n });\n};\n","import { toggleSignupLoaders } from './toggleSignupLoaders';\n\nexport const createSocialTermsFlow = user => {\n const { pathname } = global.window.location;\n const preveventFlow = ['/login/', '/signup/'].includes(pathname);\n\n // If the pathname indicates that we're on the login or signup page, exit early.\n if (preveventFlow) return {};\n\n const socialTermsSecretManager = global.window.loginFlowHelper.createSocialTermsSecretManager();\n\n return {\n // When the Google/Facebook token arrives and Jotform API request triggers.\n onSocialLoginStart: ({ socialSignupThunk }) => {\n socialTermsSecretManager.set('socialSignupThunk', socialSignupThunk);\n },\n // When Jotform API returns a hash because it requires the user to accept terms and conditions.\n onSocialTermsRequired: ({\n socialLoginHash,\n socialUserProfile,\n idToken\n } = {}) => {\n socialTermsSecretManager.set('socialLoginHash', socialLoginHash);\n\n // Render terms and conditions modal.\n global.window.loginFlowHelper.renderStandaloneSocialTermsModal({\n user,\n socialUserProfile,\n onSocialTermsContinue: isTermsChecked => {\n if (isTermsChecked) {\n const hash = socialTermsSecretManager.get('socialLoginHash');\n const continueSocialSignup = socialTermsSecretManager.get('socialSignupThunk');\n if (typeof continueSocialSignup === 'function' && hash) {\n continueSocialSignup(hash, idToken);\n }\n }\n },\n onSocialTermsClose: () => {\n socialTermsSecretManager.removeAll();\n toggleSignupLoaders('hide');\n }\n });\n }\n };\n};\n","import { isGuest, isProduction } from '../jotform';\nimport { loadByApplyingLazyIgnoredElements } from '../scriptLoaders/loadByApplyingLazyIgnoredElements';\nimport { createSocialTermsFlow } from './createSocialTermsFlow';\nimport { customRedirectionOnLogIn, customRedirectionOnSignUp } from './customRedirects';\nimport { loadLoginFlow } from './loadLoginFlow';\n\nconst isOneTapAvailable = user => {\n const isGoogleOneTapPrevented = global.window.preventHeaderGoogleOneTap;\n const hasCustomCta = document.querySelector('.jfRHeader--custom-cta');\n return !isGoogleOneTapPrevented && global.window.GOOGLE_SIGNON && !hasCustomCta && isGuest(user) && isProduction();\n};\n\nexport const initGoogleOneTap = (event, user) => {\n const logLoginFlowAction = f => f;\n\n if (!isOneTapAvailable(user)) return;\n\n loadByApplyingLazyIgnoredElements(event, () => {\n loadLoginFlow(() => {\n global.window.loginFlowHelper.initGoogleOneTap(\n {\n showLogoOnSignupOptions: false,\n renderValidationStepsAsModal: true,\n includeConfirm: true,\n forceUser: true,\n buttonNames: {\n googleOneTap: 'GoogleOnetap'\n },\n bypassDefault2faSocialInit: true,\n ...createSocialTermsFlow(user),\n onUserLogin: (loggedInUser, { newUser }) => {\n setTimeout(() => logLoginFlowAction?.({ action: newUser ? 'signup' : 'login', target: 'google-one-tap' }), 0);\n return newUser ? customRedirectionOnSignUp() : customRedirectionOnLogIn();\n },\n onGoogleOneTapPromptOpened: () => {\n setTimeout(() => logLoginFlowAction?.({ action: 'open', target: 'google-one-tap' }), 0);\n }\n },\n // 2fa callback\n f => f,\n // email auth response callback\n f => f\n );\n });\n });\n};\n","import { toggleSignupLoaders } from './toggleSignupLoaders';\n\nexport const listenAppSignInOnFailure = () => {\n document.addEventListener('AppleIDSignInOnFailure', error => {\n toggleSignupLoaders();\n console.log(error);\n });\n};\n","import { LOGIN_FLOW_ACTIONS_PROJECT_NAME } from '../../constants';\nimport { ActionManager } from '../ActionManager';\nimport { createSocialTermsFlow } from './createSocialTermsFlow';\nimport { customRedirectionOnLogIn, customRedirectionOnSignUp } from './customRedirects';\nimport { toggleSignupLoaders } from './toggleSignupLoaders';\n\nexport const openSocialLoginFlow = type => {\n const handlerMap = {\n google: 'handleGoogleClick',\n facebook: 'handleFBClick',\n microsoft: 'handleMSClick'\n };\n\n const trackLoginFlow = new ActionManager({ user: global.window.user, projectName: LOGIN_FLOW_ACTIONS_PROJECT_NAME }).registerJotformAction;\n\n const activeMethod = handlerMap[type];\n\n if (!activeMethod) {\n console.error(`Unsupported social login type: ${type}`);\n return;\n }\n\n trackLoginFlow({ action: 'open', target: type });\n\n global.window.loginFlowHelper[activeMethod](\n {\n showLogoOnSignupOptions: false,\n includeConfirm: true,\n forceUser: true,\n renderValidationStepsAsModal: true,\n buttonNames: {\n google: 'google-homepage-hero',\n facebook: 'facebook-homepage-hero'\n },\n onUserLogin: (user, { newUser }) => {\n trackLoginFlow(newUser ? 'signup' : 'login', type);\n toggleSignupLoaders('hide');\n return newUser ? customRedirectionOnSignUp() : customRedirectionOnLogIn();\n },\n ...createSocialTermsFlow(global.window.user)\n },\n // 2fa response callback\n f => f,\n // error callback\n error => {\n console.error(error);\n toggleSignupLoaders('hide');\n },\n // email auth callback\n f => f\n );\n};\n","import {\n loadFacebookJS, loadGoogleJS, loadLoginFlow, loadMicrosotfJS\n} from './loadLoginFlow';\nimport { openSocialLoginFlow } from './openSocialLoginFlow';\nimport { toggleSignupLoaders } from './toggleSignupLoaders';\n\nexport const attachLoginFlowToTrioButtons = () => {\n const socialButtons = document.querySelectorAll('button.google, button.facebook, button.microsoft');\n\n socialButtons.forEach(button => {\n button.addEventListener('click', async event => {\n let socialMedia = '';\n const classNames = event.currentTarget.className;\n\n if (classNames.includes('google')) socialMedia = 'google';\n if (classNames.includes('facebook')) socialMedia = 'facebook';\n if (classNames.includes('microsoft')) socialMedia = 'microsoft';\n\n if (!global.window.loginFlowHelper) {\n await Promise.all([\n loadLoginFlow(),\n loadFacebookJS(),\n loadGoogleJS(),\n loadMicrosotfJS()\n ]);\n\n if (socialMedia !== 'google') toggleSignupLoaders('show');\n openSocialLoginFlow(socialMedia);\n return;\n }\n\n if (socialMedia !== 'google') toggleSignupLoaders('show');\n openSocialLoginFlow(socialMedia);\n });\n });\n};\n","import { attachLoginFlowToTrioButtons } from './attachLoginFlowToTrioButtons';\nimport {\n loadFacebookJS, loadGoogleJS, loadLoginFlow, loadMicrosotfJS\n} from './loadLoginFlow';\n\nexport const initLoginFlowTrioButtons = async () => {\n const isHomepage = document.querySelector('body.homepage');\n const hasTrioButtons = document.querySelector('.introSection-buttons');\n const hasAnySocialSignupButton = document.querySelector('button.google, button.facebook, button.microsoft');\n\n if (isHomepage || hasTrioButtons || hasAnySocialSignupButton) {\n await loadLoginFlow();\n loadFacebookJS();\n loadGoogleJS();\n loadMicrosotfJS();\n attachLoginFlowToTrioButtons();\n }\n};\n","export const attachObsoleteSignupLoadingFunctionToWindow = () => {\n const bannerSignupLoading = document.querySelector('.auth-section .signup-loading');\n const signupModalSignupLoading = document.querySelector('.modalpage.s1 .signup-loading');\n const loginModalLoading = document.querySelector('.modalpage.s2 .signup-loading');\n\n global.window.signupLoaderTimeout = null;\n\n global.window.handleSignupLoading = eventTarget => {\n if (!eventTarget) return;\n\n clearTimeout(global.window.signupLoaderTimeout);\n\n const parentClasses = eventTarget.parentNode?.className || '';\n const grandParentClasses = eventTarget.parentNode?.parentNode?.parentNode?.classList;\n\n if (parentClasses.includes('auth-section')) {\n bannerSignupLoading.style.display = 'block';\n } else if (grandParentClasses?.contains('s1')) {\n signupModalSignupLoading.style.display = 'block';\n } else if (grandParentClasses?.contains('s2')) {\n loginModalLoading.style.display = 'block';\n } else if (eventTarget.classList.contains('js-naked-social-signup')) {\n document.querySelectorAll('.signup-loading').forEach(el => {\n const elRef = el;\n elRef.style.display = 'block';\n });\n }\n };\n};\n","/* eslint-disable no-undef */\nfunction yieldToMain(callback = () => {}) {\n if ('scheduler' in global.window && 'yield' in scheduler) {\n return scheduler.yield().then(callback);\n }\n\n return new Promise(resolve => {\n setTimeout(() => {\n resolve();\n callback();\n }, 0);\n });\n}\n\nglobal.window.yieldToMain = yieldToMain;\n\nexport default yieldToMain;\n","const hasCookieConsent = consentName => {\n const cookiebot = global.window.Cookiebot;\n const consent = cookiebot?.consent?.[consentName];\n if (!consentName || !cookiebot) return true;\n if (cookiebot?.consent?.stamp === '0') return true;\n if (consent) return true;\n return false;\n};\n\nexport const setCookie = (name, value, ttl, consentName) => {\n let expires = '';\n if (global.window.jotCookie.hasCookieConsent(consentName)) {\n if (ttl) {\n const date = new Date();\n date.setTime(date.getTime() + (ttl * 24 * 60 * 60 * 1000));\n expires = `expires=${date.toUTCString()};`;\n }\n document.cookie = `${name}=${value};${expires} path=/`;\n }\n document.cookie = `${name}=${value};${expires} path=/`;\n};\n\nexport const readCookie = name => {\n const nameEQ = `${name}=`;\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].trim();\n if (cookie.indexOf(nameEQ) === 0) {\n return cookie.substring(nameEQ.length, cookie.length);\n }\n }\n\n return null;\n};\n\nglobal.window.jotCookie = { hasCookieConsent, setCookie, readCookie };\n","import React from 'react';\nimport { string } from 'prop-types';\nimport classNames from 'classnames';\nimport Styled from 'styled-components';\n\nconst StyledSVG = Styled.svg`\n position: absolute;\n top: 50%;\n left: 50%;\n width: ${({ size = '70px' }) => size};\n height: ${({ size = '70px' }) => size};\n transform: translate(-50%, -50%);\n animation: jfLoading-svgRotate 2s linear 0s infinite normal none running;\n transform-origin: center center 0;\n\n .jfLoading-svgPath {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n animation: jfLoading-svgPath 1.5s ease-in-out 0s infinite normal none running;\n stroke-linecap: round;\n }\n\n @keyframes jfLoading-svgPath {\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35px;\n }\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124px;\n }\n }\n\n @keyframes jfLoading-svgRotate {\n 100% {\n transform: rotate(360deg) translate(-50%, -50%);\n }\n }\n`;\n\nexport const Loading = ({\n className = null,\n strokeWidth = '2',\n strokeColor = 'rgba(0,0,0,0.5)',\n ...props\n}) => (\n <StyledSVG viewBox=\"25 25 50 50\" className={classNames('jfLoading-loader', className)} {...props}>\n <circle\n className=\"jfLoading-svgPath\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n strokeWidth={strokeWidth}\n stroke={strokeColor}\n />\n </StyledSVG>\n);\n\nLoading.propTypes = {\n className: string,\n strokeColor: string,\n strokeWidth: string\n};\n","// import path from 'path';\n\nimport get from 'lodash/get';\n\nexport const getRouterValue = (key, defaultValue) => {\n return get(window.__jfrouter, key, defaultValue);\n};\n\nexport const getEnv = () => {\n return getRouterValue('JOTFORM_ENV', 'development');\n};\n\nexport const getAppPath = () => {\n return getRouterValue('APP_PATH', '/');\n};\n\nexport const getBaseURL = () => {\n return getRouterValue('BASE_URL', 'http://localhost');\n};\n\nexport const getAssetPath = () => {\n return getRouterValue('ASSET_PATH', '/');\n};\n\nexport const getRevision = () => {\n return getRouterValue('REVISION_HASH', '/');\n};\n\nexport const getPublicURL = () => {\n return `${getBaseURL()}${getAssetPath()}`;\n};\n\nexport const getCDNURL = () => {\n return getRouterValue('CDN_URL', getPublicURL());\n};\n\n// export const getAssetURL = assetPath => {\n// return `${getBaseURL()}${path.join(getAssetPath(), assetPath)}`;\n// };\n\nexport const getAppURL = () => {\n return `${getBaseURL()}${getAppPath()}`;\n};\n\nexport const getRoutePath = () => {\n return window.location.pathname.replace(getAppPath(), '');\n};\n\nexport const getActiveAlias = () => {\n return getRouterValue('ACTIVE_ALIAS', '');\n};\n\nexport const getActiveApp = () => {\n return getRouterValue('ACTIVE_APP', '');\n};\n\nexport const getInitialRoutePath = () => {\n return getRouterValue('INITIAL_ROUTE_PATH', '');\n};\n\nexport const getFullPath = () => {\n return getRouterValue('FULL_PATH', '');\n};\n\nexport const isHIPAA = () => {\n return getRouterValue('IS_HIPAA', '0') === '1';\n};\n\nexport const isEU = () => {\n return getRouterValue('IS_EU', '0') === '1';\n};\n\nexport const isSSO = () => {\n return getRouterValue('IS_SSO', '0') === '1';\n};\n\nexport const getRootPath = () => {\n return getRouterValue('ROOT_PATH', '');\n};\n","export const persistentKeyList = [\n /^.*?VariantCode$/,\n 'gocardlessPayload',\n 'stripeCode',\n 'DIGEST_ACTION_LSK',\n 'leadFlowBannerAutoVisible',\n 'messageHistory',\n /^AUTO_DELETE_INFO_POPUP_KEY_.*?$/,\n 'firstVisitDone',\n 'formCopilotModalSeen',\n /^limitWarningSeen_.*?$/,\n 'notification-lal-autovisible',\n 'notification-up-to-fifty-percent-discount-autovisible',\n 'notification-hubspot-milestone',\n 'notification-trysign',\n 'notification-fomo-a1-third-autovisible',\n /^uxrSurvey-.*?$/,\n 'notification-hipaa-enforcement',\n 'ncseen',\n 'notification-cent-store-recommendation',\n 'notification-cent-app-recommendation',\n 'stripeCode',\n /contentOfQuestion_.*?$/,\n 'actionKanbanCount',\n 'actionReportCount',\n 'lastShownTimeDraftWarning',\n /^AUTO_DELETE_INFO_POPUP_KEY_.*?$/,\n 'subscriptionsColumnList',\n 'invoiceColumnList',\n 'ttmLanguage',\n 'boxnet_auth_token',\n 'discardSalesforceEarlyAccessModal',\n 'discardSalesforceRatingModal',\n 'AIChat',\n 'FormCopilotProps',\n /^whats_new_.*?$/,\n /^dismiss\\w+CampaignLightbox-\\d{4}$/ // Listings campaign ligtbox dismiss keys\n];\n","import isEqual from 'lodash/isEqual';\n\nimport { persistentKeyList } from './constants';\n\nclass StorageHelper {\n static instance = null;\n\n static testStorage = type => {\n const testItem = 'test';\n const testKey = 'jfStorageHelper_test';\n const storage = StorageHelper.getStorage(type);\n\n try {\n if (!storage) {\n return false;\n }\n storage.setItem(testKey, testItem);\n const result = storage.getItem(testKey) === testItem;\n storage.removeItem(testKey);\n return result;\n } catch (e) {\n console.error(`Error in ${type} storage helper initialization`, e);\n return false;\n }\n };\n\n static get isSupported() {\n return StorageHelper.testStorage('local') && StorageHelper.testStorage('session');\n }\n\n static getStorage = type => {\n const storageBase = typeof window !== 'undefined' ? window : global;\n return type === 'session' ? storageBase.sessionStorage : storageBase.localStorage;\n };\n\n static getLocalStorageItem = ({ key, defaultValue }) => {\n return StorageHelper.getItem({ key, defaultValue, type: 'local' });\n };\n\n static getSessionStorageItem = ({ key, defaultValue }) => {\n return StorageHelper.getItem({ key, defaultValue, type: 'session' });\n };\n\n static getItem = ({ key, type = 'local', defaultValue = null }) => {\n const storage = StorageHelper.getStorage(type);\n if (!StorageHelper.isSupported || !storage) {\n return defaultValue;\n }\n\n const itemString = storage.getItem(key);\n try {\n if (!itemString) {\n return defaultValue;\n }\n\n const { value, expiry } = JSON.parse(itemString) || {};\n if (expiry && (new Date()).getTime() > expiry) {\n StorageHelper.removeItem({ key, type });\n return defaultValue;\n }\n\n return value;\n } catch (e) {\n console.error('Error in getting item from storage', e);\n return itemString || defaultValue;\n }\n };\n\n static setLocalStorageItem = ({ key, value, ttl }) => {\n return StorageHelper.setItem({\n key,\n ttl,\n value,\n type: 'local'\n });\n };\n\n static setSessionStorageItem = ({ key, value, ttl }) => {\n return StorageHelper.setItem({\n key,\n ttl,\n value,\n type: 'session'\n });\n };\n\n static setItem = ({\n key, value, type = 'local', ttl\n }) => {\n const storage = StorageHelper.getStorage(type);\n if (!StorageHelper.isSupported || !storage) return false;\n try {\n const itemString = JSON.stringify({ value, expiry: ttl ? (new Date()).getTime() + ttl : undefined });\n storage.setItem(key, itemString);\n return true;\n } catch (e) {\n console.error('Error in setting item in storage', e);\n return false;\n }\n };\n\n static removeLocalStorageItem = ({ key }) => {\n return StorageHelper.removeItem({ key, type: 'local' });\n };\n\n static removeSessionStorageItem = ({ key }) => {\n return StorageHelper.removeItem({ key, type: 'session' });\n };\n\n static removeItem = ({ key, type = 'local' }) => {\n const storage = StorageHelper.getStorage(type);\n if (!StorageHelper.isSupported || !storage) return false;\n try {\n storage.removeItem(key);\n return true;\n } catch (e) {\n console.error('Error in removing item from storage', e);\n return false;\n }\n };\n\n static clearLocalStorage = ({ force = false } = {}) => {\n return StorageHelper.clear({ type: 'local', force });\n };\n\n static clear = ({ type = 'local', force } = {}) => {\n const storage = StorageHelper.getStorage(type);\n if (!StorageHelper.isSupported || !storage) {\n return false;\n }\n\n for (let i = storage.length - 1; i >= 0; i--) {\n const key = storage.key(i);\n if (!key) {\n continue;\n }\n\n if (!force && StorageHelper.isPersistantKey(key)) {\n continue;\n }\n\n storage.removeItem(key);\n }\n };\n\n static incrementCounter = ({ key, maxCount, type = 'local' }) => {\n const counter = StorageHelper.getItem({ key, type });\n if (counter) {\n const numericVal = parseInt(counter, 10);\n if (numericVal >= maxCount) {\n return;\n }\n\n StorageHelper.setItem({ key, type, value: numericVal + 1 });\n return;\n }\n\n StorageHelper.setItem({ key, type, value: 1 });\n };\n\n static hasKeyValuePair = ({ key, value, type = 'local' }) => {\n const val = StorageHelper.getItem({ key, type });\n return isEqual(val, value);\n };\n\n static isPersistantKey = key => {\n return persistentKeyList.some(keyOrPattern => {\n switch (true) {\n case keyOrPattern instanceof RegExp:\n return keyOrPattern.test(key);\n case typeof keyOrPattern === 'string':\n return keyOrPattern === key;\n default:\n return false;\n }\n });\n };\n}\n\nexport { StorageHelper };\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M7.293 10.293a1 1 0 0 1 1.414 0L12 13.586l3.293-3.293a1 1 0 1 1 1.414 1.414l-4 4a1 1 0 0 1-1.414 0l-4-4a1 1 0 0 1 0-1.414Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M13 3a1 1 0 1 0-2 0v11.586l-4.293-4.293a1 1 0 1 0-1.414 1.414l6 6a1 1 0 0 0 1.414 0l6-6a1 1 0 0 0-1.414-1.414L13 14.586V3ZM2 21a1 1 0 0 1 1-1h18a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M14.707 6.293a1 1 0 1 0-1.414 1.414L16.586 11H5a1 1 0 1 0 0 2h11.586l-3.293 3.293a1 1 0 0 0 1.414 1.414l5-5a1 1 0 0 0 0-1.414l-5-5Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M4.293 8.293a1 1 0 0 1 1.414 0L12 14.586l6.293-6.293a1 1 0 1 1 1.414 1.414l-7 7a1 1 0 0 1-1.414 0l-7-7a1 1 0 0 1 0-1.414Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M15.707 4.293a1 1 0 0 1 0 1.414L9.414 12l6.293 6.293a1 1 0 0 1-1.414 1.414l-7-7a1 1 0 0 1 0-1.414l7-7a1 1 0 0 1 1.414 0Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M8.293 4.293a1 1 0 0 1 1.414 0l7 7a1 1 0 0 1 0 1.414l-7 7a1 1 0 0 1-1.414-1.414L14.586 12 8.293 5.707a1 1 0 0 1 0-1.414Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M12 23c6.075 0 11-4.925 11-11S18.075 1 12 1 1 5.925 1 12s4.925 11 11 11Zm5.707-13.293a1 1 0 0 0-1.414-1.414L11 13.586l-2.293-2.293a1 1 0 0 0-1.414 1.414l3 3a1 1 0 0 0 1.414 0l6-6Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M3 12a9 9 0 1 1 18 0 9 9 0 0 1-18 0Zm9-11C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11S18.075 1 12 1Zm5.707 8.707a1 1 0 0 0-1.414-1.414L11 13.586l-2.293-2.293a1 1 0 0 0-1.414 1.414l3 3a1 1 0 0 0 1.414 0l6-6Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M18.707 7.293a1 1 0 0 1 0 1.414l-8 8a1 1 0 0 1-1.414 0l-4-4a1 1 0 1 1 1.414-1.414L10 14.586l7.293-7.293a1 1 0 0 1 1.414 0Z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18ZM1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12Zm11 3a1 1 0 0 1-1-1V7a1 1 0 1 1 2 0v7a1 1 0 0 1-1 1Zm0 1a1 1 0 1 0 0 2 1 1 0 0 0 0-2Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M12 23c6.075 0 11-4.925 11-11S18.075 1 12 1 1 5.925 1 12s4.925 11 11 11Zm0-15a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm1 2.5a1 1 0 0 0-1-1h-1.5a1 1 0 1 0 0 2h.5V17a1 1 0 1 0 2 0v-6.5Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M15.763 17.175a8.5 8.5 0 1 1 1.413-1.413l.031.03 4.5 4.5a1 1 0 0 1-1.414 1.415l-4.5-4.5a.903.903 0 0 1-.03-.032ZM17 10.5a6.5 6.5 0 1 1-13 0 6.5 6.5 0 0 1 13 0Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M4 12a1 1 0 0 1 1-1h14a1 1 0 1 1 0 2H5a1 1 0 0 1-1-1Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M16.707 8.707a1 1 0 0 0-1.414-1.414L12 10.586 8.707 7.293a1 1 0 0 0-1.414 1.414L10.586 12l-3.293 3.293a1 1 0 1 0 1.414 1.414L12 13.414l3.293 3.293a1 1 0 0 0 1.414-1.414L13.414 12l3.293-3.293Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M17.707 7.707a1 1 0 0 0-1.414-1.414L12 10.586 7.707 6.293a1 1 0 0 0-1.414 1.414L10.586 12l-4.293 4.293a1 1 0 1 0 1.414 1.414L12 13.414l4.293 4.293a1 1 0 0 0 1.414-1.414L13.414 12l4.293-4.293Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M9.5 7.5a2.5 2.5 0 0 1 5 0V10h-5V7.5Zm-3 2.5V7.5a5.5 5.5 0 1 1 11 0V10h.5a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h.5Z\" clip-rule=\"evenodd\"/>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M12 2a5 5 0 1 0 0 10 5 5 0 0 0 0-10Zm0 11c-4.841 0-9 3.46-9 8a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1c0-4.54-4.159-8-9-8Z\" clip-rule=\"evenodd\"/>\n</svg>\n","export const langCodes = {\n tr: 'tr-TR',\n en: 'en-US',\n es: 'es-ES',\n pt: 'pt-PT',\n fr: 'fr-FR',\n de: 'de-DE',\n it: 'it-IT',\n bg: 'bg-BG',\n sr: 'sr-BA',\n hu: 'hu-HU',\n fi: 'fi-FI',\n ka: 'ka-GE',\n nl: 'nl-NL',\n uk: 'uk-UA',\n ua: 'uk-UA',\n id: 'id-ID',\n ko: 'ko-KR',\n ar: 'ar-AR',\n ja: 'ja-JP',\n pl: 'pl-PL',\n ca: 'ca-ES',\n sv: 'sv-SE',\n no: 'no-NO',\n da: 'da-DA',\n ro: 'ro-RO',\n ru: 'ru-RU',\n zh: 'zh-CN',\n 'zh-CN': 'zh-CN',\n 'zh-HK': 'zh-HK',\n af: 'af-ZA',\n he: 'he-IL'\n};\n\nexport const partialTranslations = {\n 'animal-shelter': path => /(jotform.com|jform.co.kr|jotform.pro)(\\/){1}(animal-shelter){1}/g.test(path)\n};\n\n/**\n * Returns Jotform translation files suffix (locale/locale_SUFFIX.js)\n * @param {string} localeCode - lang-[country] (en-US, pt-BR, en)\n * @return {string} A value from langCodes object.\n */\nexport const getLangFileSuffix = localeCode => {\n const lang = localeCode.split('-')[0];\n return langCodes[localeCode] || langCodes[lang];\n};\n\nexport const DEFAULT_LANGUAGE = 'en-US';\n","import axios from 'axios';\nimport isNil from 'lodash/isNil';\n\nimport { encodeUsedTranslations, unlocalizeOriginHref } from './utils';\nimport { partialTranslations, DEFAULT_LANGUAGE } from './constants';\n\nexport const prepareT = translation => function t(str, params = {}) {\n if (!str) {\n return str;\n }\n if (typeof str !== 'string') {\n return str;\n }\n\n if ((global?.window?.location?.href || '')?.includes('rawTranslationTextMode=true')) {\n return str;\n }\n\n let translated = str;\n try {\n if (typeof translation.translate === 'function') {\n translated = translation.translate(str, params);\n } else if (typeof translation.t === 'function') {\n translated = translation.t(str, params);\n }\n if (typeof global?.window?.useTranslationScreenshots !== 'undefined') {\n return str;\n }\n if (translation.currentLocale !== DEFAULT_LANGUAGE && str !== translated && translation.controlMode) {\n return '1';\n }\n } catch (e) {\n console.error('Error on common/translate falling back with original str', e);\n }\n\n const resp = (params.branding21) ? translated.replace(/JotForm/g, 'Jotform') : translated;\n\n return resp;\n};\n\nexport const preapreTtime = translation => function ttime(str, options = {}) {\n const { hour = 'numeric', minute = 'numeric' } = options;\n const formatOptions = { hour, minute };\n let [hourVal, minuteVal] = str.replace('/am|pm/', '').split(':').map(i1 => parseInt(i1, 10)); //eslint-disable-line\n\n if (str.indexOf('pm') > 0) {\n hourVal = hourVal !== 12 ? hourVal + 12 : hourVal;\n } else if (str.indexOf('am') > 0) {\n hourVal = hourVal === 12 ? 0 : hourVal;\n }\n\n const tempDate = new Date();\n tempDate.setHours(hourVal, minuteVal);\n // eslint-disable-next-line no-restricted-globals\n if (isNaN(tempDate.getTime())) {\n return str;\n }\n return tempDate.toLocaleTimeString(translation.currentLocale, formatOptions);\n};\n\nexport const prepareTDate = translation => function tdate(str, options = {}) {\n try {\n const ttime = preapreTtime(translation);\n if (options.timeOnly) {\n return ttime(str, options);\n }\n const dateObj = new Date(str);\n // eslint-disable-next-line no-restricted-globals\n if (isNaN(dateObj.getTime())) {\n return str;\n }\n // Add undesired fields with null values to options object. Ex:{weekday : null}\n const formatOptions = {\n weekday: 'short', year: 'numeric', month: 'short', day: 'numeric'\n };\n if (options && typeof options === 'object') {\n Object.keys(options).forEach(optionName => {\n if (options[optionName] == null) {\n delete formatOptions[optionName];\n } else {\n formatOptions[optionName] = options[optionName];\n }\n });\n }\n return dateObj.toLocaleDateString(translation.currentLocale, formatOptions);\n } catch (err) {\n return str;\n }\n};\n\n// Example usage:\n/*\n translationRenderer('This is an [1[example]] string [2[for]] translation')({\n renderer1: (str) => <b>{str}</b>; // str is \"example\"\n fallback: (str) => <AwesomeComponent>{str}</AwesomeComponent>;\n })\n - Since there is no render function given for second match, fallback function will be used as renderer.\n - Renderer functions can only have 1 parameter, which is sanitized version of delimeter.\n */\nexport const prepareTranslationRenderer = t => function translationRenderer(str, params = {}) {\n if ((global?.window?.location?.href || '')?.includes('rawTranslationTextMode=true')) {\n return () => str;\n }\n const translatedString = t(str, params);\n const getRendererIndex = delimiterStr => {\n const matches = delimiterStr.match(/\\[(\\d+)\\[/);\n if (matches && matches[1]) {\n return matches[1];\n }\n throw new Error(`Delimeter string (${delimiterStr}) format is inappropriate! Correct format is [RENDERER_NUMBER[TEXT]]`);\n };\n\n return renderFunctions => {\n try {\n const matchTemplate = /\\[\\d+\\[.*?\\]{2}/g;\n const replaceTemplate = /\\[(\\d+)\\[|\\]{2}/g;\n const matches = (translatedString && translatedString.match) ? translatedString.match(matchTemplate) : null;\n if (matches && matches.length > 0) {\n const renderers = renderFunctions || {};\n // Set a fallback renderer if it is not given in renderFunctions\n if (typeof renderers.fallback !== 'function') {\n renderers.fallback = i1 => i1;\n }\n // Create an array which includes all render functions\n const matchedStrings = matches.map(matchItem => {\n const currentKey = `renderer${getRendererIndex(matchItem)}`;\n const sanitizedValue = matchItem.replace(replaceTemplate, '');\n if (typeof renderers[currentKey] === 'function') {\n return renderers[currentKey](sanitizedValue);\n }\n return renderers.fallback(sanitizedValue);\n });\n\n return translatedString.split(matchTemplate).map((normStr, index) => (\n typeof matchedStrings[index] !== 'undefined'\n ? [normStr, matchedStrings[index]]\n : [normStr]\n ));\n }\n } catch (err) {\n console.error(err); // eslint-disable-line\n }\n return translatedString;\n };\n};\n\nexport const prepareControlModeChange = translation => function controlModeChange(controlMode) {\n return new Promise((resolve, reject) => {\n try {\n // eslint-disable-next-line no-param-reassign\n translation.controlMode = controlMode;\n resolve({ loaded: true, controlMode });\n } catch (err) {\n reject(new Error(err));\n }\n });\n};\n\nexport const prepareAddTranslationToDictionary = translation => function addTranslationToDictionary(code, translationData) {\n const dictionary = translationData;\n // remove untranslated keys\n const clearedDic = Object.keys(dictionary).reduce((dic, key) => {\n const entry = dictionary[key];\n if (!entry) {\n return dic;\n }\n return Object.assign(dic, { [key]: entry });\n }, {});\n\n if (dictionary) {\n translation.add(code, clearedDic);\n }\n return ({ loaded: true, code });\n};\n\nexport const generateDictionaryURL = ({ path, code = DEFAULT_LANGUAGE }) => {\n const sanitizedCode = code?.length !== 5 ? DEFAULT_LANGUAGE : code;\n return `/js/${path}/locale_${sanitizedCode}.js?${Math.floor((Math.random() * (9999 - 1001)) + 1000)}`;\n};\n\nexport const loadDictionaryViaTag = ({ code, path }) => new Promise((resolve, reject) => {\n try {\n const tmpScriptTag = global.document.createElement('script');\n tmpScriptTag.src = generateDictionaryURL({ code, path });\n tmpScriptTag.onload = () => resolve(global.Locale.language);\n tmpScriptTag.onerror = () => reject(new Error('Language dictionary load failed.'));\n\n if (!global.Locale) {\n global.Locale = {};\n }\n\n global.document.body.appendChild(tmpScriptTag);\n } catch (e) {\n reject(e);\n }\n});\n\nexport const loadDictionaryViaFetch = ({ code, path }) => fetch(generateDictionaryURL({ code, path }), {\n headers: { 'Content-Type': 'text/plain' }\n}).then(r => r.text()).then(r => r.replace('Locale.language=', '')).then(r => JSON.parse(r));\n\nexport const prepareAddDictionary = translation => function addDictionary(code, partialDictionaryName) {\n const addTranslationToDictionary = prepareAddTranslationToDictionary(translation);\n const url = unlocalizeOriginHref(global?.window?.location?.href);\n const partialDictionaryPath = partialDictionaryName || Object.keys(partialTranslations).find(q => partialTranslations[q](url));\n const loadMethod = global?.document ? loadDictionaryViaTag : loadDictionaryViaFetch;\n const path = partialDictionaryPath ? `locale/partial-translations/${partialDictionaryPath}` : 'locale';\n return new Promise((resolve, reject) => {\n loadMethod({ path, code: code?.length !== 5 ? DEFAULT_LANGUAGE : code })\n .then(translationData => resolve(addTranslationToDictionary(code, translationData)))\n .catch(err => reject(new Error(err)));\n });\n};\n\nexport const sendUsedTranslationsInterval = () => {\n if (isNil(global.Translations.processUsedTranslationsInterval) && !global.Translations.forceStopCollecting) {\n console.log('[Translations] :: Collecting used translation strings.');\n\n global.Translations.processUsedTranslationsInterval = setInterval(() => {\n const finishInterval = global.Translations.encodedAndProcessedStrings?.length >= global.Translations.usedTranslations?.length;\n\n if (global.Translations.forceStopCollecting) {\n return;\n }\n\n if (finishInterval) {\n clearInterval(global.Translations.processUsedTranslationsInterval);\n global.Translations.processUsedTranslationsInterval = null;\n global.Translations.forceStopCollecting = true;\n\n return axios.post('/API/translation/track-translated-strings', {\n url: global.location?.href,\n hashes: global.Translations.encodedAndProcessedStrings\n }).then(res => {\n if (res?.data?.responseCode === 200) {\n console.log(`[Translations] :: ${global.Translations.encodedAndProcessedStrings?.length} used translations collected.`);\n }\n }).catch(() => {\n console.log('[Translations] :: Error while collect used translations.');\n });\n }\n\n encodeUsedTranslations(global.Translations.usedTranslations);\n }, 1500);\n }\n};\n","// Clear translation visibility classes\nexport const clearTranslationMarkup = () => {\n // Get elements with the class\n const elements = global.document.body.querySelectorAll('.js-translationBlocker');\n\n // Get direct parents of translation texts\n const textParents = global.document.body.querySelectorAll('.js-translationText');\n\n // Get select parents of translation texts\n const selectParents = global.document.body.querySelectorAll('.js-translationSelect');\n\n // Convert node list to array and remove class from each element\n Object.values(elements).forEach(el => el && el.classList && el.classList.remove('js-translationBlocker'));\n // Object.values(textParents).forEach(el => el && el.classList && el.classList.remove('js-translationText'));\n Object.values(textParents).forEach(el => {\n // eslint-disable-next-line no-unused-expressions\n if (el && el.classList) {\n const elc = el;\n elc.style.outline = 'none';\n elc.style.position = 'initial';\n elc.style.zIndex = 'initial';\n el.classList.remove('js-translationText');\n }\n });\n Object.values(selectParents).forEach(el => {\n // Return if not a valid dom element\n if (!el || !el.classList) {\n return false;\n }\n\n // Get original size and multiple values of element if there were exist\n const originalSize = el.getAttribute('data-tempsize');\n const originalMultiple = el.getAttribute('data-tempmultiple');\n\n // Remove temporary attributes\n el.removeAttribute('data-tempsize');\n el.removeAttribute('data-tempmultiple');\n\n // If any one of them was setted then add them again; otherwise remove them\n if (originalSize !== 'null') {\n el.setAttribute('size', originalSize);\n } else {\n el.removeAttribute('size');\n }\n\n if (originalMultiple !== 'null') {\n el.setAttribute('multiple', originalMultiple);\n } else {\n el.removeAttribute('multiple');\n }\n\n // Lastly remove translation class\n el.classList.remove('js-translationSelect');\n });\n};\n\nexport const addTranslationMarkup = (el, initial = true) => {\n // If element is body or global then no need to process further\n if (el === global || el === global.document || el === global.document.body) return true;\n\n // If element or style belongs to it is undefined then terminate the process\n if (!el) return false;\n\n // Put text class at initial call\n if (initial) {\n el.parentElement.classList.add('js-translationText');\n\n const parent = el.parentElement;\n parent.style.outline = '3px solid #F00';\n parent.style.position = 'relative';\n parent.style.zIndex = '1000';\n }\n\n // Process if style is defined\n if (el.style) {\n // Get current style values of the element\n const currentStyle = global.getComputedStyle(el);\n\n // Check if one of the invisibility requirements it satisfied\n if (currentStyle.display === 'none' || currentStyle.opacity === '0' || currentStyle.visibility === 'hidden' || currentStyle.maxHeight === '0px') {\n // Add visibility class of translation\n el.classList.add('js-translationBlocker');\n }\n }\n\n if (el.tagName === 'SELECT') { // Handle select to show all options\n // Keep size and multiple attributes temporarily\n el.setAttribute('data-tempsize', el.getAttribute('size'));\n el.setAttribute('data-tempmultiple', el.getAttribute('multiple'));\n\n // Add size attribute temporarly to show all options\n el.setAttribute('size', el.length);\n el.setAttribute('multiple', 'multiple');\n\n // Add translation class to set height and mark select as dirty to clear later\n el.classList.add('js-translationSelect');\n }\n\n return addTranslationMarkup(el.parentElement, false);\n};\n\n// Finds elements that contains one of the texts passed\nexport const searchTextInDOM = (el, texts) => {\n // No need to parse the dom if it belongs to one of the given tags\n if (['SCRIPT', 'SVG', 'IMG', 'STYLE', 'INPUT', 'PATH'].indexOf(el.tagName) !== -1) {\n return null;\n }\n\n // If classList is defined for given element\n if (el.classList && el.classList.value) {\n // Define classes that we do not want to search\n // const classesToBeFiltered = [/hideOnDesktop/, /hide-on-builder/, /tabMenu/, /toggleText-mobile/, /hide-on-crawler/];\n const classesToBeFiltered = [/hideOnDesktop/, /toggleText-mobile/, /hide-on-crawler/];\n\n // Check if classList contains one of the unwanted classes\n if (classesToBeFiltered.some(rgx => rgx.test(el.classList.value))) {\n return null;\n }\n }\n\n // If still a child exist then parse tree deeper\n if (el.childNodes && el.childNodes.length !== 0) {\n return Object.values(el.childNodes) // Convert nodeList to array\n .filter(child => typeof child === 'object') // Remove numbers and functions to take only nodes(objects)\n .map(child => searchTextInDOM(child, texts)) // Call every node element with parseTree (recursive)\n .reduce((prev, curr) => (curr !== null ? prev.concat(curr) : prev), []); // Reduce results to one array\n }\n\n // Check if text content is one of the strings we are searching\n if (el.textContent && texts.indexOf(el.textContent.trim()) > -1) {\n return el;\n }\n\n return null;\n};\n\n// Checks if element is in viewport\nexport const isInViewport = el => {\n if (el === null) {\n return false;\n }\n if (typeof el.offsetTop === 'undefined') {\n return isInViewport(el.parentNode);\n }\n\n // Get recteangle information of element\n const elementRect = el.getBoundingClientRect();\n\n // Get window height and width\n const windowHeight = global.window.innerHeight;\n const windowWidth = global.window.innerWidth;\n\n // Get scrolling x and y\n const scrollX = global.window.pageXOffset;\n const scrollY = global.window.pageYOffset;\n\n // eslint-disable-next-line max-len\n if (elementRect.top + elementRect.height < windowHeight + scrollY && elementRect.left + elementRect.width < windowWidth + scrollX && elementRect.top + elementRect.height > 0 && elementRect.left + elementRect.width > 0) {\n return true;\n // eslint-disable-next-line no-else-return\n } else {\n // eslint-disable-next-line no-lonely-if\n if (global.window.casperJsTest) {\n el.scrollIntoView({ behavior: 'auto', block: 'center' });\n return true;\n // eslint-disable-next-line no-else-return\n } else {\n return false;\n }\n }\n};\n\n// Get text contents of dom elements\nexport const getTextContents = elements => elements.map(el => el.textContent.trim());\n","import qs from 'qs';\nimport Axios from 'axios';\nimport Polyglot from 'node-polyglot';\nimport domtoimage from 'dom-to-image-more';\nimport isUndefined from 'lodash/isUndefined';\n\nimport {\n isInViewport,\n getTextContents,\n searchTextInDOM,\n addTranslationMarkup,\n clearTranslationMarkup\n} from './domHelper';\n\nclass Translation {\n constructor() {\n // Default value settings\n this.defaultLang = 'en-US';\n this.processedStrings = {};\n this.usedTranslations = [];\n this.untranslatedStrings = {};\n this.currentLocale = this.defaultLang;\n this.filterClasses = [\n 'ace_editor',\n 'ace-solarized-dark',\n 'ace_dark',\n 'input-group',\n 'isAvatar',\n 'jfHeader-userAvatar',\n 'themesListItem-img',\n 'themesListItem-imgAspect',\n 'prevUploads-list',\n 'card-leftSide',\n 'jfQuestion-fields-contentVisible',\n 'appBox-image'\n ];\n this.filterTags = [\n 'IFRAME',\n 'IMG'\n ];\n this.dictionaries = {\n [this.defaultLang]: new Polyglot({\n phrases: {},\n locale: this.defaultLang.split('-')[0],\n allowMissing: true\n })\n };\n\n this.interpolation = { templateSyntax: /\\{.\\}*\\w+\\}/g, eraseTemplate: /\\{|\\}/g };\n // Variables related to delayed submitNotTranslated function\n this.callTimer = null;\n\n // Number of elements to be processed and send to server at once\n this.processLimit = 1;\n\n // Debounce time for process function\n this.debounceTime = 1000;\n\n // Function binds\n this.setLocale = this.setLocale.bind(this);\n this.resetProcess = this.resetProcess.bind(this);\n this.limitElements = this.limitElements.bind(this);\n this.orderElements = this.orderElements.bind(this);\n this.takeScreenShot = this.takeScreenShot.bind(this);\n this.debounceProcess = this.debounceProcess.bind(this);\n this.handleMissingKey = this.handleMissingKey.bind(this);\n this.submitNotTranslated = this.submitNotTranslated.bind(this);\n this.processNotTranslated = this.processNotTranslated.bind(this);\n this.updateProcessedStrings = this.updateProcessedStrings.bind(this);\n this.rotateUntranslatedStrings = this.rotateUntranslatedStrings.bind(this);\n this.filterUntranslatedStrings = this.filterUntranslatedStrings.bind(this);\n this.translate = this.translate.bind(this);\n this.initServerSideDictionary = this.initServerSideDictionary.bind(this);\n }\n\n // Getter for getting untranslated string list of current language\n get currentLocaleUntranslated() {\n return Array.isArray(this.untranslatedStrings[this.currentLocale]) ? this.untranslatedStrings[this.currentLocale] : [];\n }\n\n // Get processed elements in this session\n get currentProcessed() {\n return Array.isArray(this.processedStrings[this.currentLocale]) ? this.processedStrings[this.currentLocale] : [];\n }\n\n // Get single array that contains all untranslated strings\n get allUntranslatedStrings() {\n return Object.keys(this.untranslatedStrings).reduce(\n (prev, curr) => prev.concat(this.untranslatedStrings[curr]),\n []\n );\n }\n\n initServerSideDictionary(langCode, dictionary) {\n this.add(langCode, dictionary);\n }\n\n // Sets current locale and fetch untranslated list if it still does not exist\n setLocale(code) {\n // Set locale of objectcurrentLocale\n this.currentLocale = code;\n }\n\n // Update untranslatedStrings array by removing sended strings\n filterUntranslatedStrings(langCode, strings) {\n this.untranslatedStrings = {\n\n ...this.untranslatedStrings,\n [langCode]: this.untranslatedStrings[langCode].filter(str => strings.indexOf(str) === -1)\n };\n }\n\n // Update unprocessedStrings by adding sended strings\n updateProcessedStrings(langCode, strings) {\n // Add processed words to processed list\n this.processedStrings = {\n\n ...this.processedStrings,\n [langCode]: this.processedStrings[langCode] ? this.processedStrings[langCode].concat(strings) : strings\n };\n }\n\n // Add sended str to the untranslatedStrIngs array of current locale\n addUntranslatedString(str) {\n this.untranslatedStrings = {\n\n ...this.untranslatedStrings,\n [this.currentLocale]: this.currentLocaleUntranslated.concat([str])\n };\n }\n\n // Move given strings to the end of their respective array\n rotateUntranslatedStrings(strings) {\n // For each key filter given strings and append found ones to the end\n this.untranslatedStrings = Object.keys(this.untranslatedStrings).reduce((prev, curr) => {\n // Get matched strings array of given locale\n const foundStrings = this.untranslatedStrings[curr].filter(str => strings.indexOf(str) > -1);\n\n // First filter given strings and then append them afterward\n return {\n\n ...prev,\n [curr]: this.untranslatedStrings[curr].filter(str => foundStrings.indexOf(str) < 0).concat(foundStrings)\n };\n }, {});\n }\n\n // Order given dom elements respect to their position as strings in untranslated array\n orderElements(elements) {\n // No need to order if only one is found\n if (elements.length <= 1) {\n return elements;\n }\n\n // Get strings of elements\n const textContents = getTextContents(elements);\n\n // Order elements by looking their string positions\n return this.allUntranslatedStrings.filter(str => textContents.indexOf(str) > -1).map(str => elements[textContents.indexOf(str)]);\n }\n\n // Initializes locale and the dictionary belongs to it\n add(code = '', dictionary = {}) {\n // Initialize locale\n this.setLocale(code);\n\n if (isUndefined(this.dictionaries[code])) {\n // Add sended dictionary to the current list\n this.dictionaries = {\n\n ...this.dictionaries,\n [code]: new Polyglot({\n phrases: dictionary,\n locale: code.split('-')[0],\n onMissingKey: this.handleMissingKey // This function will be triggered if the text does not exist in translation list\n })\n };\n }\n }\n\n // Translate string using Polyglot api\n translate(str, params) {\n let translated = str;\n if (typeof params === 'object' && Object.keys(params).length) {\n const variables = str.match(this.interpolation.templateSyntax);\n variables?.forEach(strVar => {\n // Remove template string characters and get variable name.\n const variableName = strVar.replace(this.interpolation.eraseTemplate, '');\n // If there is a value for given key, replace the key with given value\n if (params[variableName]) {\n translated = translated.replace(strVar, params[variableName]);\n }\n });\n }\n\n if (!this.usedTranslations.includes(str)) {\n this.usedTranslations.push(str);\n }\n\n return this.dictionaries[this.currentLocale].t(translated, params);\n }\n\n // Handler for texts that does not have translation\n handleMissingKey(str, options) {\n // Further process is limited to certain users\n if (!(global.window.useTranslationScreenshots === true)) {\n return Polyglot.transformPhrase(str, options);\n }\n\n // If it is already in processed list then skip processing it\n if (this.currentProcessed.indexOf(str) > -1) {\n return Polyglot.transformPhrase(str, options);\n }\n\n // Do not try to process if string is empty or only contains space\n if (/^\\s+$/.test(str)) {\n return '';\n }\n\n // Add founded word to untranslated texts if it does not exist\n if (this.currentLocaleUntranslated.indexOf(str) === -1) {\n this.addUntranslatedString(str);\n }\n\n // Call debounced process (works every n seconds where n is this.processLimit)\n this.debounceProcess();\n }\n\n // Delays the call of submitNotTranslated\n debounceProcess() {\n // If a timer is already started\n if (this.callTimer !== null) {\n // Do not process any further\n return;\n }\n\n // Restart timer\n this.callTimer = setTimeout(this.processNotTranslated, this.debounceTime);\n }\n\n // Limits sended dom elements according to the constants set in class\n limitElements(elements) {\n // Limit the elements based on the processLimit variable\n return elements.slice(0, this.processLimit);\n }\n\n // Filters false positive translations by looking their screenshot values\n filterFalseTranslations(strings, screenshots) {\n // Indexes of false screenshots\n const emptyIndexes = screenshots.reduce((prev, curr, index) => { return curr === false ? prev.concat([index]) : prev; }, []);\n\n // Filter strings that matched with false screenshot results\n const filteredStrings = {\n\n ...strings,\n [this.currentLocale]: strings[this.currentLocale].filter((str, index) => emptyIndexes.indexOf(index) < 0)\n };\n\n // Filter false screenshots\n const filteredScreenshots = screenshots.filter((ss, index) => emptyIndexes.indexOf(index) < 0);\n\n // Return filtered strings and screenshots\n return {\n filteredStrings,\n filteredScreenshots\n };\n }\n\n // Prepares object for next translation process\n resetProcess(strings = []) {\n // Clear timer as the submit promises are resolved\n clearTimeout(this.callTimer);\n this.callTimer = null;\n\n // If there is still an untranslated string in the list\n if (this.currentLocaleUntranslated.length !== 0) {\n if (strings.length !== 0) {\n // Rotate strings that tried to be translated before if they still exist\n this.rotateUntranslatedStrings(strings);\n }\n\n // Try to call process again\n this.debounceProcess();\n }\n }\n\n // Filter and screenshot process\n processNotTranslated() {\n // Get body for dom earch\n let node = '';\n if (global.window.casperjsTestDomParam) {\n node = global.document.querySelector(decodeURI(global.window.casperjsTestDomParam));\n /* eslint-disable no-console */\n console.log('global.window.casperjsTestDomParam', global.window.casperjsTestDomParam);\n /* eslint-enable no-console */\n } else {\n node = global.document.body;\n }\n\n // Search all texts accross dom elements to find their containers\n const foundElements = searchTextInDOM(node, this.allUntranslatedStrings);\n\n /* eslint-disable no-console */\n console.log('this.allUntranslatedStrings', this.allUntranslatedStrings);\n console.log('foundElements', foundElements);\n /* eslint-enable no-console */\n\n // If could not found any element then reset the process\n if (!foundElements || foundElements.length === 0) {\n if (global.window.casperJsTest) {\n global.window.captureInProcess = false;\n /* eslint-disable no-console */\n console.log('capture process finished!');\n /* eslint-enable no-console */\n }\n // Clear timer\n return this.resetProcess();\n }\n\n // Order these elements to match with their respected string positions in untranslated strings array\n const orderedFoundElements = this.orderElements(foundElements);\n\n // Limit the number of elements to be processed\n const elementsToProcess = this.limitElements(orderedFoundElements);\n\n // Get strings of found elements\n const foundStrings = getTextContents(elementsToProcess);\n\n // Get only matched strings from unstranslated list\n const untranslatedToPost = Object.keys(this.untranslatedStrings).reduce((prev, curr) => ({\n\n ...prev,\n [curr]: this.untranslatedStrings[curr].filter(str => foundStrings.indexOf(str) > -1)\n }), {});\n\n // Create promise for each screenshot\n const ssPromises = Object.values(elementsToProcess).reduce((prev, curr) => { return typeof curr === 'object' ? prev.concat([this.takeScreenShot(node, curr)]) : prev; }, []);\n\n Promise.all(ssPromises) // After all screenshots taken\n .then(ssDataAll => this.filterFalseTranslations(untranslatedToPost, ssDataAll)) // Filter false positive translations\n // After resolving all of the promises just pass them to the not transalted submission\n .then(({ filteredStrings, filteredScreenshots }) => this.submitNotTranslated(filteredStrings, filteredScreenshots))\n // Reset required variables and do post process jobs to prepare object for next translation after submissions\n .then(submitPromises => Promise.all(submitPromises).then(() => this.resetProcess(foundStrings)));\n }\n\n // Submit not translated strings\n submitNotTranslated(untranslatedToPost, ssDataAll) {\n // Send translation request for each key separately\n return Object.keys(untranslatedToPost).map(langCode => {\n // Get strings to send\n const strings = untranslatedToPost[langCode];\n\n let depthCount = 0;\n let depthLabel = '';\n if (global.window.casperJsTest) {\n if (global.window.depthCount) {\n depthCount = global.window.depthCount;\n }\n if (global.window.depthLabel) {\n depthLabel = global.window.depthLabel;\n }\n }\n\n // No need to send data if one of them is empty or their lengths are not equal to each other\n if (strings.length === 0 || ssDataAll.length === 0 || strings.length !== ssDataAll.length) {\n if (global.window.casperJsTest) {\n global.window.captureInProcess = false;\n /* eslint-disable no-console */\n console.log('capture process finished!');\n /* eslint-enable no-console */\n }\n return false;\n }\n\n Axios.post('/server.php', qs.stringify({\n action: 'submitNotTranslated',\n lang_code: langCode,\n raw: untranslatedToPost[langCode].join('__NOT_TRANSLATED__'),\n autoSuggestion: false,\n depthCount,\n depthLabel,\n screenshot: ssDataAll.join('|||')\n }), {\n 'Content-Type': 'application/x-www-form-urlencoded'\n })\n .then(() => {\n // Move processed strings to processed list\n this.updateProcessedStrings(langCode, untranslatedToPost[langCode]);\n\n // Filter them from untranslated list\n this.filterUntranslatedStrings(langCode, untranslatedToPost[langCode]);\n });\n\n return true;\n });\n }\n\n // Take screenshot of given node if foundElement is visible in that dom\n takeScreenShot(node, foundElement) {\n // Try to make every element visible on found elements\n const visibilityResult = addTranslationMarkup(foundElement);\n if (global.window.casperJsTest) {\n /* eslint-disable no-console */\n console.log('foundElement', foundElement.wholeText);\n /* eslint-enable no-console */\n }\n // Do not need to take ss if element is invisible or not in viewport\n if (!visibilityResult || !isInViewport(foundElement)) {\n /* eslint-disable no-console */\n console.log('the element is invisible or not in viewport');\n /* eslint-enable no-console */\n // Clear visibility\n clearTranslationMarkup();\n\n // Return false due to it does not exist on screen\n return false;\n }\n\n // If the page is loaded by casperjs\n if (global.window.casperJsTest) {\n // Send capture command to casperjs as error\n /* eslint-disable no-console */\n console.log('capture');\n /* eslint-enable no-console */\n\n // Resolve with base64 encoded ss data\n return new Promise(resolve => {\n setTimeout(() => {\n // Take ss data\n const capturedData = global.window.tempCaptureData;\n\n // Clear temporary data\n global.window.tempCaptureData = null;\n\n // Clear visibility classes\n clearTranslationMarkup();\n\n // Return screenshot\n resolve(capturedData);\n }, 2000);\n });\n }\n\n // Take screenshot and return base64 encoded form using visibility css\n return new Promise(resolve => domtoimage.toPng(\n node,\n {\n filter: el => {\n // Return if element is not valid to check\n if (!el || !el.className || !el.tagName || typeof el.className !== 'string') {\n return true;\n }\n\n // If element is one of the tags to be filtered from screenshot\n if (this.filterTags.indexOf(el.tagName) > -1) {\n return false;\n }\n\n const filteredNodeClass = el.className.split(' ').filter(classStr => this.filterClasses.indexOf(classStr) !== -1);\n\n return filteredNodeClass.length === 0;\n }\n }\n )\n .then(dataUrl => {\n // Clear visibility classes\n clearTranslationMarkup();\n\n // Return screenshot\n resolve(dataUrl);\n }));\n }\n}\n\nexport const translation = global.Translations || new Translation();\n\nexport default Translation;\n","import { langCodes } from './constants';\n\nexport const getApp = () => global.window.__jfrouter?.ACTIVE_ALIAS || global.window.location.pathname?.replace(/\\//g, '');\nexport const isProduction = () => global.window?.__jfrouter?.JOTFORM_ENV === 'PRODUCTION' || global.window?.JOTFORM_ENV === 'PRODUCTION';\n\nconst encodedAndProcessedStrings = [];\n\nconst processTranslation = async string => {\n const transformPhrase = string?.replace(/JotForm|Jform/gm, 'Jotform')?.trim();\n const buffer = new TextEncoder('utf-8').encode(transformPhrase);\n const digest = await global.crypto.subtle.digest('SHA-1', buffer);\n return {\n raw: transformPhrase,\n encoded: Array.from(new Uint8Array(digest)).map(x => x.toString(16).padStart(2, '0')).join('')\n };\n};\n\nexport const encodeUsedTranslations = translations => {\n translations.forEach(translation => {\n processTranslation(translation)\n .then(({ encoded, raw }) => {\n if (!global.Translations.encodedAndProcessedStrings.some(q => Object.keys(q).includes(encoded))) {\n global.Translations.encodedAndProcessedStrings.push({\n [encoded]: raw\n });\n }\n })\n .catch(error => console.error(error));\n });\n\n return encodedAndProcessedStrings;\n};\n\nexport const collectionTimer = () => {\n const year = new Date().getFullYear();\n const month = new Date().getMonth();\n const day = new Date().getDate();\n const hours = new Date().getHours();\n const minutes = new Date().getMinutes();\n const now = Date.UTC(year, month, day, hours, minutes, 0);\n const startDate = Date.UTC(year, month, day, hours, 0, 0);\n const endDate = Date.UTC(year, month, day, hours, 15, 0);\n\n // Between HH:00 and HH:15\n return startDate < now && endDate > now;\n};\n\nexport const unlocalizeOriginHref = url => {\n const shortLangCodes = Object.keys(langCodes)?.join('|');\n const exp = RegExp(`(\\\\/)(${shortLangCodes})(\\\\/)`, 'g');\n\n return url?.replace(exp, '/');\n};\n","import { translation } from './Translation';\nimport { initializeTranslationFromGlobal } from './global';\nimport { prepareT, prepareTranslationRenderer, prepareTDate } from './hof';\nimport { langCodes, getLangFileSuffix } from './constants';\nimport { TranslateProvider } from './components/TranslateProvider';\nimport { setDatepickerLocale } from './setDatepickerLocale';\n\nconst t = prepareT(translation);\nconst tdate = prepareTDate(translation);\nconst translationRenderer = prepareTranslationRenderer(t);\n\ninitializeTranslationFromGlobal(translation, t);\n\nexport {\n t,\n tdate,\n translation,\n translationRenderer,\n langCodes,\n getLangFileSuffix,\n TranslateProvider,\n setDatepickerLocale\n};\n\nexport default translation;\n","import {\n prepareAddDictionary,\n prepareControlModeChange,\n prepareAddTranslationToDictionary,\n sendUsedTranslationsInterval\n} from './hof';\n\nimport { isProduction, collectionTimer } from './utils';\n\n/* eslint-disable no-param-reassign, no-extend-native */\nexport function initializeTranslationFromGlobal(translation, t) {\n const addDictionary = prepareAddDictionary(translation);\n const controlModeChange = prepareControlModeChange(translation);\n const addTranslationToDictionary = prepareAddTranslationToDictionary(translation);\n\n // Overriding all strings and adding locale method\n String.prototype.locale = function locale() {\n return t(this);\n };\n\n if (!global.Translations) {\n global.__t = t;\n global.Translations = translation;\n global.Translations.t = t;\n global.Translations.addDictionary = addDictionary;\n global.Translations.addTranslationToDictionary = addTranslationToDictionary;\n global.Translations.controlModeChange = controlModeChange;\n global.Translations.processUsedTranslationsInterval = null;\n global.Translations.encodedAndProcessedStrings = [];\n global.Translations.startCollectUsedTranslationsInterval = sendUsedTranslationsInterval;\n global.Translations.forceStopCollecting = false;\n }\n\n if (global.window && global.window.useLocaleDictionary && global.window?.Locale?.language) {\n addTranslationToDictionary(global.window.currentLocale, global.window.Locale.language);\n }\n\n if (isProduction() && collectionTimer() && global.Translations.currentLocale !== 'en-US') {\n sendUsedTranslationsInterval();\n }\n}\n","import React, {\n forwardRef, useImperativeHandle, useRef, useState, useEffect\n} from 'react';\nimport {\n bool, node, elementType, string, shape, func, arrayOf, oneOfType, any\n} from 'prop-types';\nimport KeyboardJS from 'keyboardjs';\nimport { nodeContains } from '@jotforminc/utils';\n\nimport Portal from '../Portal';\n\nimport { useContinueFocus, useEffectIgnoreFirst } from '../../utils/hooks';\nimport { generateShortID } from '../../utils';\n\nconst Modal = forwardRef(({\n children,\n defaultVisible,\n usePortal,\n portalContainerSelector,\n initialPortalSelector,\n closeOnOutsideClick,\n DialogRenderer,\n HeaderRenderer,\n ContentRenderer,\n FooterRenderer,\n reffedDivProps,\n onModalClose,\n closeOnEscPress,\n exceptionalSelectorList,\n autoFocus,\n currentActiveElementRef,\n t,\n ariaLabel\n}, ref) => {\n // Refs\n const portalRef = useRef();\n\n let selector = \"[data-uikit-modal-container='true'],[data-uikitgeneratedportalcontainer='true']\";\n\n if (closeOnOutsideClick && exceptionalSelectorList.length > 0) {\n const additionalSelector = exceptionalSelectorList.join(',');\n selector = `${selector},${additionalSelector}`;\n }\n // States\n const [isVisible, setVisibility] = useState(defaultVisible);\n const hideMenu = event => {\n const containerList = global.document.querySelectorAll(selector);\n const isContained = [...containerList].find(container => nodeContains(container, event.target));\n if (!isContained) {\n setVisibility(false);\n }\n };\n const contentRef = autoFocus ? useContinueFocus(isVisible, currentActiveElementRef) : useRef();\n const hide = () => setVisibility(false);\n const show = () => setVisibility(true);\n const toggleVisibility = () => setVisibility(!isVisible);\n useImperativeHandle(ref, () => ({\n ...portalRef.current,\n hide,\n show,\n toggleVisibility,\n isVisible,\n contentRef\n }));\n\n useEffect(() => {\n if (closeOnOutsideClick) {\n global.window.addEventListener('mouseup', hideMenu);\n return () => global.window.removeEventListener('mouseup', hideMenu);\n }\n }, [selector]);\n\n useEffect(() => {\n if (closeOnEscPress) {\n if (isVisible) {\n KeyboardJS.bind('esc', hide);\n } else {\n KeyboardJS.unbind('esc', hide);\n }\n }\n return () => KeyboardJS.unbind('esc', hide);\n }, [closeOnEscPress, isVisible]);\n\n useEffectIgnoreFirst(() => {\n if (!isVisible) {\n onModalClose();\n }\n }, [isVisible]);\n\n const headerTitleId = useRef(generateShortID()).current;\n const headerSubTitleId = useRef(generateShortID()).current;\n\n return (\n <Portal\n ref={portalRef}\n usePortal={usePortal}\n portalAttribute=\"data-uikit-modal-wrapper\"\n containerSelector={portalContainerSelector}\n initialPortalSelector={initialPortalSelector}\n >\n {isVisible && (\n <DialogRenderer>\n <div\n ref={contentRef}\n {...reffedDivProps}\n role=\"dialog\"\n aria-modal=\"true\"\n data-uikit-modal-container\n {...(!ariaLabel ? {\n 'aria-labelledby': headerTitleId,\n 'aria-describedby': headerSubTitleId\n } : {\n 'aria-label': ariaLabel\n })}\n tabIndex=\"-1\"\n >\n <ContentRenderer>\n <HeaderRenderer\n headerTitleId={headerTitleId}\n headerSubTitleId={headerSubTitleId}\n t={t}\n />\n {children}\n <FooterRenderer />\n </ContentRenderer>\n </div>\n </DialogRenderer>\n )}\n </Portal>\n );\n});\n\nModal.propTypes = {\n usePortal: bool,\n defaultVisible: bool,\n children: node.isRequired,\n closeOnOutsideClick: bool,\n DialogRenderer: elementType,\n HeaderRenderer: elementType,\n ContentRenderer: elementType,\n FooterRenderer: elementType,\n portalContainerSelector: string,\n reffedDivProps: shape({}),\n onModalClose: func,\n closeOnEscPress: bool,\n exceptionalSelectorList: arrayOf(string),\n autoFocus: bool,\n currentActiveElementRef: oneOfType([\n func,\n shape({ current: any })\n ]),\n initialPortalSelector: string,\n ariaLabel: string\n};\n\n/* eslint react/prop-types: \"off\" */\nModal.defaultProps = {\n usePortal: false,\n defaultVisible: false,\n closeOnOutsideClick: true,\n portalContainerSelector: 'body',\n DialogRenderer: ({ children }) => (\n <div style={{\n position: 'fixed',\n zIndex: 1,\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n overflow: 'auto',\n backgroundColor: 'rgb(0, 0, 0, 0.4)'\n }}\n >\n {children}\n </div>\n ),\n ContentRenderer: ({ children }) => (\n <div\n style={{\n backgroundColor: '#fefefe',\n margin: '15% auto',\n padding: '20px',\n border: '1px solud #888',\n width: '80%'\n }}\n >\n {children}\n </div>\n ),\n HeaderRenderer: ({ children }) => <div>{children}</div>,\n FooterRenderer: ({ children }) => <div>{children}</div>,\n reffedDivProps: {},\n onModalClose: () => {},\n closeOnEscPress: true,\n exceptionalSelectorList: [],\n autoFocus: true,\n currentActiveElementRef: null,\n initialPortalSelector: '',\n ariaLabel: ''\n};\n\nexport default Modal;\n","import { createPortal } from 'react-dom';\nimport { bool, string, node } from 'prop-types';\nimport { forwardRef, useImperativeHandle } from 'react';\n\nimport { usePortalRef } from '../../utils/hooks';\n\nconst Portal = forwardRef(({\n children,\n usePortal,\n portalAttribute,\n containerSelector,\n initialPortalSelector\n}, ref) => {\n const portalRef = usePortalRef(containerSelector, usePortal, portalAttribute, initialPortalSelector);\n\n useImperativeHandle(ref, () => ({\n portalID: portalRef.current ? portalRef.current.id : ''\n }));\n\n return usePortal && portalRef.current ? createPortal(\n children,\n portalRef.current\n ) : children;\n});\n\nPortal.propTypes = {\n children: node.isRequired,\n usePortal: bool,\n containerSelector: string,\n portalAttribute: string,\n initialPortalSelector: string\n};\n\nPortal.defaultProps = {\n usePortal: true,\n containerSelector: 'body',\n portalAttribute: undefined,\n initialPortalSelector: ''\n};\n\nexport default Portal;\n","export const KEY_KEYCODE_LIST = {\n Enter: 13,\n Backspace: 8,\n Comma: 188,\n Tab: 9,\n Space: 32,\n Escape: 27\n};\n\nexport const SERVER_ERROR = 'Server error';\nexport const FILE_TYPE_ERROR = 'Unsupported file type';\n","import {\n useCallback, useEffect, useState, useRef, useMemo, useLayoutEffect\n} from 'react';\nimport Fuse from 'fuse.js';\nimport { nodeContains } from '@jotforminc/utils';\n\nimport { generateShortID } from '.';\n\nexport const useClickOutsideState = (initialState, refs = [], eventTypes = ['mouseup']) => {\n const [isVisible, setVisibility] = useState(initialState);\n\n useEffect(() => {\n const hideMenu = ({ target }) => !refs.find(ref => nodeContains(ref.current, target)) && setVisibility(false);\n\n eventTypes.forEach(eventType => {\n global.addEventListener(eventType, hideMenu);\n });\n\n return () => eventTypes.forEach(eventType => global.removeEventListener(eventType, hideMenu));\n }, [refs]);\n\n return [isVisible, setVisibility];\n};\n\nexport const useClickOutsideStateWithCallback = ({ refs = [], callback = null, eventType = 'mouseup' }) => {\n const _callback = typeof callback === 'function' ? callback : f => f;\n useEffect(() => {\n const hideMenu = ({ target }) => !refs.find(ref => nodeContains(ref.current, target)) && _callback(target);\n\n global.addEventListener(eventType, hideMenu);\n return () => global.removeEventListener(eventType, hideMenu);\n }, [refs]);\n};\n\nexport const useClickOutsideStateMouseDown = (initialState, refs = []) => {\n const [isVisible, setVisibility] = useState(initialState);\n\n useEffect(() => {\n const hideMenu = ({ target }) => !refs.find(ref => nodeContains(ref.current, target)) && setVisibility(false);\n\n global.addEventListener('mousedown', hideMenu);\n return () => global.removeEventListener('mousedown', hideMenu);\n }, [refs]);\n\n return [isVisible, setVisibility];\n};\n\nexport const useClickOutsideStateWithSelector = (initialState, selector) => {\n const [isVisible, setVisibility] = useState(initialState);\n const hideMenu = event => {\n const containerList = global.document.querySelectorAll(selector);\n const isContained = [...containerList].find(container => nodeContains(container, event.target));\n if (!isContained) {\n setVisibility(false);\n }\n };\n\n useEffect(() => {\n global.addEventListener('mouseup', hideMenu);\n return () => global.removeEventListener('mouseup', hideMenu);\n }, [selector]);\n\n return [isVisible, setVisibility];\n};\n\nexport const useSelectionState = (initialState, isMultiSelect = false) => {\n // Instance methods\n const sanitizeInitialState = !Array.isArray(initialState) ? [initialState] : initialState;\n\n // States\n const [selectedOptions, setSelectedOptions] = useState(sanitizeInitialState);\n\n // State methods\n const toggleOptionSelection = selectedValue => {\n const isOptionExist = selectedOptions.indexOf(selectedValue) > -1;\n const newSelectionArray = isOptionExist ? selectedOptions.filter(value => selectedValue !== value) : [...selectedOptions, selectedValue];\n setSelectedOptions(newSelectionArray);\n };\n\n const singleToggleOptionSelection = selectedValue => {\n const isOptionExist = selectedOptions.indexOf(selectedValue) > -1;\n if (isOptionExist) {\n return;\n }\n\n setSelectedOptions([selectedValue]);\n };\n\n if (isMultiSelect) {\n return [selectedOptions, toggleOptionSelection, setSelectedOptions];\n }\n\n return [selectedOptions, singleToggleOptionSelection, setSelectedOptions];\n};\n\nexport const useEffectIgnoreFirst = (effectHandler, effectDependedValues) => {\n const isFirstRun = useRef(true);\n\n useEffect(() => {\n if (isFirstRun.current) {\n isFirstRun.current = false;\n return;\n }\n\n return effectHandler();\n }, effectDependedValues);\n};\n\nexport const useCombinedRefs = (...refs) => {\n const targetRef = useRef();\n\n useEffect(() => {\n refs.forEach(ref => {\n if (!ref) {\n return;\n }\n\n if (typeof ref === 'function') {\n ref(targetRef.current);\n } else {\n // eslint-disable-next-line no-param-reassign\n ref.current = targetRef.current;\n }\n });\n }, [refs]);\n\n return targetRef;\n};\n\nexport const usePortalRef = (\n containerSelector = 'body',\n usePortal = false,\n portalAttribute = 'data-uikitGeneratedPortalContainer',\n initialPortalSelector = ''\n) => {\n // Returns a ref to pass to React.createPortal, either a reference to an existing element or it creates a new element.\n const getPortalRefElement = useCallback(() => {\n if (!usePortal) return;\n\n const portalContainer = global.document.querySelector(containerSelector);\n if (portalContainer) {\n // Portal Container element already exists -> return that element\n const currentPortalDiv = portalAttribute ? portalContainer.querySelector(`[${portalAttribute}=true]`) : false;\n if (currentPortalDiv) return currentPortalDiv;\n\n // Otherwise create a new Portal Container element\n const id = generateShortID();\n const div = global.document.createElement('div');\n div.setAttribute(portalAttribute, 'true');\n div.setAttribute('id', id);\n portalContainer.appendChild(div);\n return div;\n }\n }, [containerSelector, usePortal, portalAttribute]);\n\n // if the parent component won't rerender, it won't be able to detect the ref.current change so initial selector may be needed for components like those\n const portalRef = useRef(initialPortalSelector ? document.querySelector(initialPortalSelector) : getPortalRefElement());\n\n useEffect(() => {\n portalRef.current = getPortalRefElement() || portalRef.current;\n }, [getPortalRefElement]);\n\n return portalRef;\n};\n\nexport const useDragState = (initialState, {\n onDrop: onDropCallBack,\n onDragOver: onDragOverCallBack,\n onDragEnter: onDragEnterCallBack,\n onDragLeave: onDragLeaveCallBack\n} = {}) => {\n const [isDragging, setDragState] = useState(initialState);\n\n const generateDragEventHandler = (state, callback) => event => {\n setDragState(state);\n event.stopPropagation();\n event.preventDefault();\n\n if (typeof callback === 'function') {\n callback(event);\n }\n\n return false;\n };\n\n const onDragEnter = generateDragEventHandler(true, onDragEnterCallBack);\n const onDragOver = generateDragEventHandler(true, onDragOverCallBack);\n const onDragLeave = generateDragEventHandler(false, onDragLeaveCallBack);\n const onDrop = generateDragEventHandler(false, onDropCallBack);\n\n return [isDragging, {\n onDragEnter, onDragOver, onDragLeave, onDrop\n }];\n};\n\nconst cachedScripts = [];\nexport const useScript = src => {\n const [scriptState, setLoadState] = useState({ loaded: false, error: false });\n\n useEffect(() => {\n if (cachedScripts.indexOf(src) > -1) {\n setLoadState({ loaded: true, error: false });\n return f => f;\n }\n\n cachedScripts.push(src);\n\n const scriptTag = document.createElement('script');\n scriptTag.src = src;\n scriptTag.async = true;\n\n const onScriptLoad = () => setLoadState({ loaded: true, error: false });\n const onScriptError = () => {\n setLoadState({ loaded: true, error: true });\n scriptTag.remove();\n };\n\n scriptTag.addEventListener('load', onScriptLoad);\n scriptTag.addEventListener('error', onScriptError);\n document.body.appendChild(scriptTag);\n\n return () => {\n scriptTag.removeEventListener('load', onScriptLoad);\n scriptTag.removeEventListener('error', onScriptError);\n };\n }, [src]);\n\n return scriptState;\n};\n\nexport const useFuse = (list, searchTerm, keys = ['text'], fuseOptions = {\n shouldSort: true,\n threshold: 0.4,\n location: 0,\n distance: 100,\n maxPatternLength: 32,\n minMatchCharLength: 1\n}) => {\n const fuse = useMemo(() => new Fuse(list, { ...fuseOptions, keys }), [list, fuseOptions, keys]);\n const results = useMemo(() => (!searchTerm ? list : fuse.search(searchTerm)), [fuse, searchTerm]);\n return results;\n};\n\nexport const usePrev = value => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n\nexport const useInView = onInView => {\n const ref = useRef();\n\n useEffect(() => {\n let observer;\n\n global.requestAnimationFrame(() => {\n if (!ref.current) return;\n\n if (global.IntersectionObserver) {\n observer = new global.IntersectionObserver(([entry]) => {\n if (entry.intersectionRatio === 0) {\n return;\n }\n\n onInView(true);\n\n observer.unobserve(ref.current);\n }, { threshold: 1 });\n\n observer.observe(ref.current);\n } else {\n onInView(true);\n }\n });\n\n return () => {\n if (observer) {\n observer.disconnect();\n }\n };\n }, [ref.current]);\n\n return [ref];\n};\n\nexport const useContinueFocus = (isOpen, currentActiveElementRef) => {\n const panelRef = useRef();\n const activeElementRef = currentActiveElementRef || useRef();\n const isFirstRun = useRef(true);\n\n useLayoutEffect(() => {\n if (isFirstRun.current && !isOpen) {\n isFirstRun.current = false;\n return;\n }\n panelRef.current?.setAttribute('tabindex', isOpen ? 0 : -1);\n if (isOpen) {\n if (!currentActiveElementRef) { // if current element ref is not given, focus last active element\n activeElementRef.current = document.activeElement;\n }\n panelRef.current?.focus();\n } else {\n activeElementRef.current?.focus();\n }\n return () => activeElementRef.current?.focus();\n }, [isOpen]);\n\n return panelRef;\n};\n","import React from 'react';\nimport { nanoid } from 'nanoid';\n\nimport { KEY_KEYCODE_LIST } from './constants';\n\nexport const wrapWithComp = (child, type, Comp = 'span') => {\n if (typeof child === 'string') {\n return <Comp data-type={type}>{child}</Comp>;\n }\n return child;\n};\n\n// Expects event as parameter\nexport const prepareKeyList = keyList => Object.keys(KEY_KEYCODE_LIST).filter(key => keyList.indexOf(key) > -1).map(key => ({ key, keyCode: KEY_KEYCODE_LIST[key] }));\nexport const isPressedKeyFN = keyList => {\n const preparedKeyList = prepareKeyList(keyList);\n return ({ key, keyCode }) => preparedKeyList.filter(({ key: expectedKey, keyCode: expectedKeyCode }) => (expectedKey === key || expectedKeyCode === keyCode)).length > 0;\n};\nexport const isPressedKeyEnter = isPressedKeyFN(['Enter']);\nexport const isPressedKeyBackspace = isPressedKeyFN(['Backspace']);\nexport const isPressedKeyTab = isPressedKeyFN(['Tab']);\nexport const isPressedKeyPillboxAddKey = isPressedKeyFN(['Enter', 'Comma', 'Space', 'Tab']);\nexport const isPressedKeyEnterOrSpace = isPressedKeyFN(['Enter', 'Space']);\nexport const isPressedKeyEscape = isPressedKeyFN(['Escape']);\nexport const isPressedKeyOneOf = keyList => isPressedKeyFN(keyList);\n\nexport const flattenOptions = options => options.reduce((flattenedOptions, option) => flattenedOptions.concat(option.type === 'group' ? flattenOptions(option.options) : [option]), []);\nexport const findOptionByValue = (value, options, allowEmpty = false) => {\n if (options.length === 0) {\n return;\n }\n\n const flattenedOptions = flattenOptions(options);\n const optionsHaveSomeDisabledOptions = flattenedOptions.some(option => option.disabled);\n const dropdownMayBeEmpty = allowEmpty || optionsHaveSomeDisabledOptions; // if options contain any disabled option treat like allowEmpty is true\n const sanitizedOptions = dropdownMayBeEmpty ? flattenedOptions.filter(option => !option.disabled) : flattenedOptions;\n\n if (!value) {\n return dropdownMayBeEmpty ? undefined : sanitizedOptions[0];\n }\n return sanitizedOptions.find(({ value: optionValue }) => optionValue === value);\n};\n\nexport const createFileMetadata = ({ name, type, size }, url) => {\n return {\n name, type, size, url\n };\n};\n\nexport const generateShortID = () => nanoid().split(/^\\d/).join('_');\n","export const setCookie = (cname, cvalue, exdays) => {\n const d = new Date();\n d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\n const expires = `expires=${d.toUTCString()}`;\n document.cookie = `${cname}=${cvalue}; ${expires}; domain=.${global.location.host.split('.').splice(1).join('.')}; path=/; Secure; SameSite=None`;\n};\n\nexport const readCookie = key => {\n const values = document.cookie.match(`(^|;)\\\\s*${key}\\\\s*=\\\\s*([^;]+)`);\n return values ? values.pop() : undefined;\n};\n","export const safeJSONParse = (str, defVal = {}, allowObj = false) => {\n if (str) {\n if (typeof str === typeof {} && allowObj) {\n return str;\n }\n try {\n return JSON.parse(str);\n } catch (ex) {\n return defVal;\n }\n } else {\n return defVal;\n }\n};\n\nexport const getUrlParameter = name => {\n const _name = name.replace(/[[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\n const regex = new RegExp(`[\\\\?&]${_name}=([^&#]*)`);\n const results = regex.exec(global.location?.search || global.window?.location?.search);\n return results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\n};\n\nexport const getUrlByCurrentLocale = url => {\n const { currentLocale, languageCodeURLPaths, JOTFORM_ENV } = global;\n if (currentLocale?.length === 5 && currentLocale?.include('-')) {\n const [languageCode] = currentLocale.split('-');\n if (typeof languageCodeURLPaths !== 'object' || Object.values(languageCodeURLPaths).includes(languageCode)) {\n return JOTFORM_ENV === 'PRODUCTION' ? `/${languageCode}${url}` : `https://www.jotform.com/${languageCode}${url}`;\n }\n }\n return JOTFORM_ENV === 'PRODUCTION' ? `${url}` : `https://www.jotform.com${url}`;\n};\n\nconst arrayMoveMutate = (array, from, to) => {\n const startIndex = to < 0 ? array.length + to : to;\n const item = array.splice(from, 1)[0];\n array.splice(startIndex, 0, item);\n};\n\nexport const arrayMove = (array, from, to) => {\n const newArray = array.slice();\n arrayMoveMutate(newArray, from, to);\n return newArray;\n};\n\nexport const serialize = (obj, prefix) => {\n /* eslint-disable */\n const str = [];\n let p;\n for (p in obj) {\n if (obj.hasOwnProperty(p)) {\n const k = prefix ? `${prefix}[${p}]` : p;\n const v = obj[p];\n str.push((v !== null && typeof v === \"object\") ?\n serialize(v, k) :\n v !== null ? `${encodeURIComponent(k)}=${encodeURIComponent(v)}`: null) ;\n }\n }\n return str.filter(a => a).join(\"&\");\n /* eslint-enable */\n};\n\nexport const objectEntries = obj => {\n const ownProps = Object.keys(obj);\n let i = ownProps.length;\n const resArray = new Array(i);\n while (i--) {\n resArray[i] = [ownProps[i], obj[ownProps[i]]];\n }\n return resArray;\n};\n\nexport const hasUrlParamOf = (key, value) => {\n return new URLSearchParams(document?.location?.search).get(key) === value;\n};\n","import isElement from 'lodash/isElement';\n\nexport const createFormData = data => {\n return Object.keys(data)\n .map(key => `${key}=${window.encodeURIComponent(data[key])}`)\n .join('&');\n};\n\nexport const listenEnter = (e, callbackFN = () => undefined, stopPropagation = true) => {\n const { key = '', keyCode } = e;\n if ((key && key === 'Enter') || keyCode === 13) {\n if (stopPropagation) {\n e.stopPropagation(); // to prevent cardform selectNextQuestion\n }\n callbackFN();\n }\n};\n\nexport const loadJS = (id, src, onload) => {\n if (document.getElementById(id)) {\n return false;\n }\n\n const js = document.createElement('script');\n\n js.id = id;\n js.onload = onload;\n js.src = src;\n const fjs = document.getElementsByTagName('script')[0];\n if (fjs) {\n fjs.parentNode.insertBefore(js, fjs);\n } else {\n document.getElementsByTagName('head')[0].appendChild(js);\n }\n};\n\n/**\n * Select nearest parent matches with selector (unless it encounters stopSelector) according to _element.\n * @param _element\n * @param selector\n * @param stopSelector\n * @returns {*}\n */\nexport const closest = (_element, selector, stopSelector) => {\n let element = _element;\n let retval = null;\n while (element) {\n if (element.matches(selector)) {\n retval = element;\n break;\n } else if (stopSelector && element.matches(stopSelector)) {\n break;\n }\n element = element.parentElement;\n }\n return retval;\n};\n\n// Check if node2 contains node1\nexport const nodeContains = (node2, node1) => isElement(node2) && isElement(node1) && ((node2 === node1) || nodeContains(node2, node1.parentNode));\n\nexport const getClassAttributes = values => {\n if (!values?.class) return '';\n const classAttributes = values.class;\n const classResult = Object.values(classAttributes).join(' ').trim();\n return classResult;\n};\n\n/**\n * Select the text content and collapse if you want to move the caret to end of input\n * @param target\n * @param shouldCollapse\n */\nexport const selectAllText = ({ target, shouldCollapse = false, focusBefore = false }) => {\n let selection;\n let range;\n if (focusBefore) target.focus();\n\n if (document.body.createTextRange) {\n range = document.body.createTextRange();\n range.moveToElementText(target);\n if (shouldCollapse) range.collapse(false);\n range.select();\n } else if (window.getSelection) {\n selection = window.getSelection();\n range = document.createRange();\n range.selectNodeContents(target);\n selection.removeAllRanges();\n if (shouldCollapse) range.collapse(false);\n selection.addRange(range);\n }\n\n if (!focusBefore) target.focus();\n};\n\nexport const classNameGenerator = classess => {\n let className = '';\n const classKeys = Object.keys(classess);\n classKeys.forEach(classKey => {\n if (classess[classKey]) className += ` ${classKey}`;\n });\n return className.trim();\n};\n\nexport const resizeWindow = () => {\n const scrollHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight;\n const scrollWidth = document.documentElement.scrollWidth - document.documentElement.clientWidth;\n window.resizeBy(scrollWidth > 0 ? scrollWidth : 0, scrollHeight > 0 ? scrollHeight : 0);\n};\n","export const PlatformTypes = {\n SALESFORCE: 'salesforce',\n WEEBLY: 'weebly',\n ANYWHERE: 'anywhere',\n DOCUSIGN: 'docusign',\n CANVA: 'canva'\n};\n\nexport const AllowedPlatforms = [\n PlatformTypes.SALESFORCE,\n PlatformTypes.WEEBLY,\n PlatformTypes.ANYWHERE,\n PlatformTypes.DOCUSIGN,\n PlatformTypes.CANVA\n];\n","import { createStore, compose } from 'redux';\n\nconst makeFeatureReducer = initialState => {\n return (state = initialState, action) => {\n if (!action.type) return state;\n if (action.type === 'ADD_NEW_FEATURE') {\n return {\n ...state,\n [action.payload.featureName]: {\n name: action.payload.featureName,\n value: action.payload.featureValue\n }\n };\n }\n if (action.type === 'ADD_FEATURE_FLAG_LIST') {\n return {\n ...state,\n ...action.payload.featureFlagList\n };\n }\n if (action.type === 'RENEW_FEATURE_FLAG') {\n return {\n ...action.payload.featureFlagList\n };\n }\n if (action.type === 'RESET_FEATURE_FLAG') {\n return {};\n }\n if (!state[action.type]) return state;\n return {\n ...state,\n [action.type]: {\n ...state[action.type],\n value: !state[action.type].value\n }\n };\n };\n};\n\nconst composeEnhancers = (typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({ name: 'JF Feature Flag Reducer' })) || compose;\nclass FeatureFlag {\n store = createStore(makeFeatureReducer({}), composeEnhancers());\n\n constructor() {\n if (global.FeatureFlag) return global.FeatureFlag;\n global.FeatureFlag = this;\n }\n\n init = featureList => {\n this.store.dispatch({ type: 'ADD_FEATURE_FLAG_LIST', payload: { featureFlagList: featureList } });\n };\n\n getStore = () => {\n // TODO: return singleton store;\n return this.store;\n };\n\n addNewFeature = (featureName, featureValue) => {\n this.store.dispatch({ type: 'ADD_NEW_FEATURE', payload: { featureName, featureValue } });\n };\n\n getList = () => {\n return this.store.getState();\n };\n\n getFeature = feature => {\n const featureName = this.getFeatureName(feature);\n const featureValue = this.store.getState()[featureName]?.value;\n if (typeof featureValue === 'undefined') {\n console.log(JSON.stringify(feature), ': feature is not defined.');\n return false;\n }\n return featureValue;\n };\n\n toggleFeature = feature => {\n const featureName = this.getFeatureName(feature);\n this.store.dispatch({ type: featureName });\n };\n\n getFeatureName = feature => {\n if (typeof feature === 'undefined') return null;\n if (typeof feature === 'string') return feature;\n return feature.name;\n };\n}\n\nexport default new FeatureFlag();\n","import { AllowedPlatforms, PlatformTypes } from '@jotforminc/constants';\nimport { getRootPath, getBaseURL } from '@jotforminc/router-bridge';\nimport { featureFlag } from '@jotforminc/feature-flag';\n\nconst cache = {};\n\nexport const isPlatformEnv = () => {\n if (typeof cache.isPlatform !== 'undefined') return cache.isPlatform;\n let platformEnv = null;\n if (typeof window !== 'undefined') {\n platformEnv = window.__jfrouter ? window.__jfrouter.PLATFORM_ENV : window.PLATFORM_ENV;\n }\n const isAllowedPlatform = AllowedPlatforms.includes(platformEnv);\n cache.isPlatform = isAllowedPlatform;\n cache.platformEnv = isAllowedPlatform ? platformEnv : null;\n return cache.isPlatform;\n};\n\nexport const isSalesforceEnv = () => {\n if (isPlatformEnv()) {\n return cache.platformEnv === PlatformTypes.SALESFORCE;\n }\n return false;\n};\n\nexport const isAnywhereEnv = () => {\n return cache.platformEnv === PlatformTypes.ANYWHERE;\n};\n\nexport const getPlatformEnv = () => {\n if (isPlatformEnv()) {\n return cache.platformEnv;\n }\n return null;\n};\n\nconst getValidURL = (url, baseURL) => {\n try {\n return new URL(url, baseURL);\n } catch (e) {\n return false;\n }\n};\n\nconst appendRootPath = pathname => {\n const rootPath = getRootPath();\n if (!pathname.startsWith(rootPath)) {\n return `${pathname.startsWith('/') ? rootPath.slice(0, -1) : rootPath}${pathname}`;\n }\n return pathname;\n};\n\n// THIS IS A TEMPORARY FUNCTION WILL BE DELETED AFTER RELEASE. THANKS AND SORRY :)\nconst interceptURLForWorkflowRelease = (url = '') => {\n const pathnames = url?.split('/').filter(Boolean) || [];\n const shouldChangeParameter = window?.isWorkflowReleased && pathnames[0] === 'myapprovals';\n if (!shouldChangeParameter) return url;\n return ['/myworkflows', ...pathnames.slice(1)].join('/');\n};\n\nconst prepareURLWithRoot = urlString => {\n const baseURL = getBaseURL();\n let url = urlString;\n const urlObject = getValidURL(url);\n\n if (urlObject) {\n if (urlObject.origin === baseURL) {\n urlObject.pathname = appendRootPath(urlObject.pathname);\n url = urlObject.toString();\n }\n } else {\n url = appendRootPath(url);\n }\n url = interceptURLForWorkflowRelease(url);\n return url;\n};\n\nconst shouldRedirectToSessionExpired = redirectURL => {\n if (isPlatformEnv()) {\n if (\n redirectURL.pathname === '/login'\n && (redirectURL.searchParams.has('rp') || redirectURL.searchParams.size === 0)\n ) {\n return true;\n }\n }\n return false;\n};\n\nexport const handleCustomNavigation = (url, target = '_blank', dontOverwrite = false, windowFeatures = '') => {\n const isMobileApp = global.navigator.userAgent.indexOf('JotForm Mobile') > -1 || global.navigator.userAgent.indexOf('JFCEMobile') > -1;\n const redirectURL = getValidURL(url, getBaseURL());\n\n if (redirectURL && shouldRedirectToSessionExpired(redirectURL)) {\n return window.open(`/platform/${getPlatformEnv()}/platform-pages/session-expired${redirectURL.search}`, '_self', windowFeatures);\n }\n\n if (dontOverwrite) {\n return window.open(url, target, windowFeatures);\n }\n\n if (isMobileApp) {\n window.location.href = url;\n return;\n }\n if (isPlatformEnv()) {\n if (featureFlag.getFeature(featureFlag.getList().NAVIGATE_TO_THE_NEW_TAB)) {\n return window.open(url, '_blank', `noopener,noreferrer,${windowFeatures}`);\n }\n\n if (url.startsWith('https://')) {\n // TODO: handle this properly\n return window.open(url, target, windowFeatures);\n }\n return window.open(`/platform/${getPlatformEnv()}${url}`, '_self', windowFeatures);\n }\n\n return window.open(prepareURLWithRoot(url), target, windowFeatures);\n};\n\nexport const getPlatformSafeUrl = url => {\n let safeUrl = getValidURL(url);\n if (!safeUrl || (safeUrl && window.__jfrouter.BASE_URL !== (new URL(safeUrl)).origin)) {\n const platformEnv = getPlatformEnv();\n const platformPrefix = platformEnv ? `/platform/${platformEnv}` : '';\n safeUrl = `${window.__jfrouter.BASE_URL}${platformPrefix}/myforms`;\n }\n return safeUrl;\n};\n","import isNumber from 'lodash/isNumber';\nimport { EMAIL_PATTERN } from '@jotforminc/constants';\nimport { t } from '@jotforminc/translation';\n\nimport { safeJSONParse } from './data';\n\nexport const isFilled = value => {\n if (typeof value === 'string') {\n const val = value && value.replace(/^\\s+|\\s+$/g, '');\n return !!val;\n } if (Array.isArray(value)) {\n return value.length > 0;\n }\n return !!value;\n};\n\nexport const isEmpty = value => {\n return !isFilled(value);\n};\n\nexport const isValidUrl = value => {\n const URLPattern = /(http|ftp|https){0,1}:{0,1}[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?^=%&:/~\\+#]*[\\w\\-\\@?^=%&/~\\+#])?/; // eslint-disable-line no-useless-escape\n const validUrlRegex = global?.JotForm?.validationRegexes?.url || URLPattern;\n return isFilled(value) && validUrlRegex.test(value);\n};\n\nexport const isEmail = value => {\n return isFilled(value) && EMAIL_PATTERN.test(value);\n};\n\nexport const isTeamEmail = value => {\n const teamRegex = /team:[0-9].{13,14}$/;\n return teamRegex.test(value);\n};\n\n/**\n * Hostname validation\n * @function\n * @param {String} hostname to validate\n */\nexport const validateHostname = hostname => /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]).)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$/\n .test(String(hostname).toLowerCase());\n\nexport const isSafari = () => /^((?!chrome|android).)*safari/i.test(global.navigator.userAgent);\n\n/**\n * E-mail validation\n * @function\n * @param {String} email to validate\n */\nexport const validateEmail = email => /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n .test(String(email).toLowerCase());\n\nconst validationMessages = {\n required: t('This field is required'),\n invalidEmail: t('Invalid email address')\n};\n\nconst validationsMap = {\n required: value => (!isFilled(value) ? validationMessages.required : false),\n required_withnone: value => (!isFilled(value) || value === 'none' ? validationMessages.required : false),\n email: value => {\n const questionPlaceholderRegex = /^\\{(.*?)\\}$/;\n if (typeof value === 'string' && questionPlaceholderRegex.test(value)) {\n return false;\n }\n\n if (typeof value === 'string') {\n const [, tagifyValue] = value.match(/^\\[\\[(.*?)\\]\\]$/) || [];\n if (tagifyValue) {\n const parsedTagifyValue = safeJSONParse(tagifyValue);\n if (parsedTagifyValue && parsedTagifyValue.name && questionPlaceholderRegex.test(parsedTagifyValue.name)) {\n return false;\n }\n }\n }\n\n if (Array.isArray(value) && value.length === 1 && questionPlaceholderRegex.test(value[0].value)) {\n return false;\n }\n\n const strEmail = (Array.isArray(value) && value.length === 1) ? value[0].value : value;\n return !isEmail(strEmail) ? validationMessages.invalidEmail : false;\n },\n numeric: val => (!isNumber(val) ? 'please write numeric' : false),\n content: val => {\n if (!isFilled(val)) {\n return validationMessages.required;\n }\n\n // Create dummy dom to check if the email content is empty or not\n const emailContent = new window.DOMParser().parseFromString(val, 'text/html').body.textContent.trim();\n return !emailContent ? validationMessages.required : false;\n }\n};\n\n// TODO: memoize this fn\nexport const generateIsErroredFromValidations = validations => {\n const fns = [];\n validations.forEach(name => {\n const validator = validationsMap[name];\n if (validator) {\n fns.push(validator);\n }\n });\n return value => {\n let errorMsg;\n fns.find(fn => {\n errorMsg = fn(value);\n return errorMsg;\n });\n return errorMsg || false;\n };\n};\n\nexport const checkUserType = (userType, credentials) => {\n const { account_type: { name } } = credentials;\n return name === userType;\n};\n","/* eslint-disable max-lines */\nimport { cva } from 'class-variance-authority';\nimport { primary, secondary } from '../../tokens/colors';\nimport { CVAType } from '../../types/system.types';\nimport {\n ButtonIconProps, ButtonIndicatorProps, ButtonProps, ButtonTextProps\n} from './button.types';\n\n// CVA Types\ntype ButtonHelperTypes = {\n hasLoaderText?: boolean,\n hasDoubleIcon?: boolean,\n hasOneIcon?: boolean,\n hasChildren?: boolean\n}\n\ntype ButtonCVAType = (\n CVAType<Pick<ButtonProps, 'size' | 'rounded' | 'fullWidth' | 'variant' | 'showTextOnHover' | 'loader' | 'disabled' | 'colorStyle' | 'showTextOnly' | 'theme' | 'invert'> & ButtonHelperTypes>\n)\n\ntype ButtonTextCVAType = CVAType<ButtonTextProps>\ntype ButtonIconCVAType = CVAType<Omit<ButtonIconProps, 'icon'>>\ntype ButtonIndicatorCVAType = CVAType<Pick<ButtonIndicatorProps, 'loader' | 'colorStyle'>>;\n\nconst buttonDefaultClassName = 'magnet-button inline-flex shrink-0 justify-center items-center font-medium duration-300 outline-2 outline-transparent outline-offset-0 focus:outline-opacity-50';\n\n// Classes\nexport const buttonCVA = cva<ButtonCVAType>(buttonDefaultClassName, {\n variants: {\n size: {\n small: 'h-8 px-2',\n medium: 'h-10 px-2.5',\n large: 'h-12 px-3'\n },\n rounded: {\n true: 'radius-full',\n false: 'radius'\n },\n fullWidth: {\n true: 'w-full'\n },\n variant: {\n ghost: 'border-0',\n filled: 'border-0',\n outline: 'border'\n },\n showTextOnHover: {\n true: 'group'\n },\n loader: {\n true: 'pointer-events-none'\n },\n disabled: {\n true: 'cursor-not-allowed opacity-40',\n false: 'cursor-pointer'\n },\n colorStyle: {},\n hasChildren: {},\n hasDoubleIcon: {},\n hasLoaderText: {},\n hasOneIcon: {},\n invert: {},\n showTextOnly: {},\n theme: {}\n },\n compoundVariants: [\n /*\n Added `width` class for only outlined icon buttons depending by size because of border width\n */\n {\n variant: 'outline',\n hasChildren: false,\n hasOneIcon: true,\n size: 'small',\n className: 'w-8'\n },\n {\n variant: 'outline',\n hasChildren: false,\n hasOneIcon: true,\n size: 'medium',\n className: 'w-10'\n },\n {\n variant: 'outline',\n hasChildren: false,\n hasOneIcon: true,\n size: 'large',\n className: 'w-12'\n },\n /*\n Added `width` class for only outlined icon buttons depending by size and showTextOnly breakpoints because of border width\n */\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xs',\n size: 'small',\n className: 'w-8 xs:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'sm',\n size: 'small',\n className: 'w-8 sm:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'md',\n size: 'small',\n className: 'w-8 md:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'lg',\n size: 'small',\n className: 'w-8 lg:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xl',\n size: 'small',\n className: 'w-8 xl:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xxl',\n size: 'small',\n className: 'w-8 xxl:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xs',\n size: 'medium',\n className: 'w-10 xs:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'sm',\n size: 'medium',\n className: 'w-10 sm:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'md',\n size: 'medium',\n className: 'w-10 md:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'lg',\n size: 'medium',\n className: 'w-10 lg:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xl',\n size: 'medium',\n className: 'w-10 xl:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xxl',\n size: 'medium',\n className: 'w-10 xxl:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xs',\n size: 'large',\n className: 'w-12 xs:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'sm',\n size: 'large',\n className: 'w-12 sm:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'md',\n size: 'large',\n className: 'w-12 md:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'lg',\n size: 'large',\n className: 'w-12 lg:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xl',\n size: 'large',\n className: 'w-12 xl:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnly: 'xxl',\n size: 'large',\n className: 'w-12 xxl:w-auto'\n },\n /*\n Added `width` class for only outlined icon buttons depending by size and showTextOnHover because of border width\n */\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnHover: true,\n size: 'small',\n className: 'w-8 hover:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnHover: true,\n size: 'medium',\n className: 'w-10 hover:w-auto'\n },\n {\n variant: 'outline',\n hasOneIcon: true,\n showTextOnHover: true,\n size: 'large',\n className: 'w-12 hover:w-auto'\n },\n /*\n Added `relative` class to wrapping the loader overlay element\n */\n {\n loader: true,\n hasLoaderText: false,\n className: 'relative'\n },\n /*\n Added `bg-transparent` class for `ghost` and `outline` variants\n because they don't have a background in the static state\n */\n {\n variant: ['ghost', 'outline'],\n className: 'bg-transparent'\n },\n /*\n Added `bg-white` for those with\n `filled` variant\n \"darker\" colorStyle\n */\n {\n variant: 'filled',\n colorStyle: [\n 'primary', 'success', 'error', 'neutral',\n 'analytics', 'pages', 'teams', 'sign', 'pdf', 'apps',\n 'reports', 'forms', 'sign', 'tables', 'inbox', 'approvals'\n ],\n invert: false,\n className: 'color-white'\n },\n {\n variant: 'filled',\n colorStyle: [\n 'primary', 'success', 'error', 'neutral',\n 'analytics', 'pages', 'teams', 'sign', 'pdf', 'apps',\n 'reports', 'forms', 'sign', 'tables', 'inbox', 'approvals'\n ],\n invert: true,\n className: 'bg-white'\n },\n {\n variant: 'filled',\n colorStyle: [\n 'neutral', 'analytics', 'pages', 'teams', 'sign', 'pdf', 'apps',\n 'reports', 'forms', 'sign', 'tables', 'inbox', 'approvals'\n ],\n disabled: false,\n invert: true,\n className: 'hover:bg-gray-25'\n },\n /*\n Added core classes for those with\n `filled` variant\n `primary` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'primary',\n invert: false,\n className: primary.accent.default.bg.base\n },\n {\n variant: 'filled',\n colorStyle: 'primary',\n disabled: false,\n invert: false,\n className: primary.accent.dark.bg.hover\n },\n {\n variant: 'filled',\n colorStyle: 'primary',\n invert: true,\n className: primary.accent.default.color.base\n },\n {\n variant: 'filled',\n colorStyle: 'primary',\n disabled: false,\n invert: false,\n className: primary.accent.dark.bg.hover\n },\n {\n variant: 'filled',\n colorStyle: 'primary',\n disabled: false,\n invert: true,\n className: 'hover:bg-blue-100'\n },\n /*\n Added core classes for those with\n `filled` variant\n `secondary` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'secondary',\n invert: false,\n className: [\n primary.background.light.base,\n primary.text.dark.base\n ]\n },\n {\n variant: 'filled',\n colorStyle: 'secondary',\n invert: true,\n className: ['bg-navy-600', primary.text.light.base]\n },\n {\n variant: 'filled',\n colorStyle: 'secondary',\n disabled: false,\n className: primary.background.medium.hover\n },\n {\n variant: 'filled',\n colorStyle: 'secondary',\n disabled: false,\n invert: true,\n className: 'hover:bg-navy-700'\n },\n /*\n Added core classes for those with\n `filled` variant\n `success` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'success',\n invert: false,\n className: primary.success.default.bg.base\n },\n {\n variant: 'filled',\n colorStyle: 'success',\n invert: true,\n className: 'color-green-600'\n },\n {\n variant: 'filled',\n colorStyle: 'success',\n disabled: false,\n invert: false,\n className: primary.success.dark.bg.hover\n },\n {\n variant: 'filled',\n colorStyle: 'success',\n disabled: false,\n invert: true,\n className: 'hover:bg-green-100'\n },\n /*\n Added core classes for those with\n `filled` variant\n `error` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'error',\n invert: false,\n className: primary.error.default.bg.base\n },\n {\n variant: 'filled',\n colorStyle: 'error',\n invert: true,\n className: primary.error.default.color.base\n },\n {\n variant: 'filled',\n colorStyle: 'error',\n disabled: false,\n invert: false,\n className: primary.error.dark.bg.hover\n },\n {\n variant: 'filled',\n colorStyle: 'error',\n disabled: false,\n invert: true,\n className: primary.error.lightest.bg.hover\n },\n /*\n Added core classes for those with\n `filled` variant\n `neutral` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'neutral',\n invert: false,\n className: secondary.background.medium.base\n },\n {\n variant: 'filled',\n colorStyle: 'neutral',\n invert: true,\n className: 'color-gray-600'\n },\n {\n variant: 'filled',\n colorStyle: 'neutral',\n disabled: false,\n invert: false,\n className: secondary.background.dark.hover\n },\n /*\n Added core classes for those with\n `filled` variant\n `analytics` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'analytics',\n invert: false,\n className: 'bg-analytics-default'\n },\n {\n variant: 'filled',\n colorStyle: 'analytics',\n invert: true,\n className: 'color-analytics-default'\n },\n {\n variant: 'filled',\n colorStyle: 'analytics',\n disabled: false,\n invert: false,\n className: 'hover:bg-analytics-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `pages` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'pages',\n invert: false,\n className: 'bg-pages-default'\n },\n {\n variant: 'filled',\n colorStyle: 'pages',\n invert: true,\n className: 'color-pages-default'\n },\n {\n variant: 'filled',\n colorStyle: 'pages',\n disabled: false,\n invert: false,\n className: 'hover:bg-pages-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `teams` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'teams',\n invert: false,\n className: 'bg-teams-default'\n },\n {\n variant: 'filled',\n colorStyle: 'teams',\n invert: true,\n className: 'color-teams-default'\n },\n {\n variant: 'filled',\n colorStyle: 'teams',\n disabled: false,\n invert: false,\n className: 'hover:bg-teams-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `sign` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'sign',\n invert: false,\n className: 'bg-sign-default'\n },\n {\n variant: 'filled',\n colorStyle: 'sign',\n invert: true,\n className: 'color-sign-default'\n },\n {\n variant: 'filled',\n colorStyle: 'sign',\n disabled: false,\n invert: false,\n className: 'hover:bg-sign-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `pdf` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'pdf',\n invert: false,\n className: 'bg-pdf-default'\n },\n {\n variant: 'filled',\n colorStyle: 'pdf',\n invert: true,\n className: 'color-pdf-default'\n },\n {\n variant: 'filled',\n colorStyle: 'pdf',\n disabled: false,\n invert: false,\n className: 'hover:bg-pdf-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `apps` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'apps',\n invert: false,\n className: 'bg-apps-default'\n },\n {\n variant: 'filled',\n colorStyle: 'apps',\n invert: true,\n className: 'color-apps-default'\n },\n {\n variant: 'filled',\n colorStyle: 'apps',\n disabled: false,\n invert: false,\n className: 'bg-apps-default hover:bg-apps-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `reports` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'reports',\n invert: false,\n className: 'bg-reports-default'\n },\n {\n variant: 'filled',\n colorStyle: 'reports',\n invert: true,\n className: 'color-reports-default'\n },\n {\n variant: 'filled',\n colorStyle: 'reports',\n disabled: false,\n invert: false,\n className: 'hover:bg-reports-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `forms` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'forms',\n invert: false,\n className: 'bg-forms-default'\n },\n {\n variant: 'filled',\n colorStyle: 'forms',\n invert: true,\n className: 'color-forms-default'\n },\n {\n variant: 'filled',\n colorStyle: 'forms',\n disabled: false,\n invert: false,\n className: 'hover:bg-forms-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `tables` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'tables',\n invert: false,\n className: 'bg-tables-default'\n },\n {\n variant: 'filled',\n colorStyle: 'tables',\n invert: true,\n className: 'color-tables-default'\n },\n {\n variant: 'filled',\n colorStyle: 'tables',\n disabled: false,\n invert: false,\n className: 'hover:bg-tables-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `approvals` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'approvals',\n invert: false,\n className: 'bg-approvals-default'\n },\n {\n variant: 'filled',\n colorStyle: 'approvals',\n invert: true,\n className: 'color-approvals-default'\n },\n {\n variant: 'filled',\n colorStyle: 'approvals',\n disabled: false,\n invert: false,\n className: 'hover:bg-approvals-dark'\n },\n /*\n Added core classes for those with\n `filled` variant\n `inbox` colorStyle\n */\n {\n variant: 'filled',\n colorStyle: 'inbox',\n invert: false,\n className: 'bg-inbox-default'\n },\n {\n variant: 'filled',\n colorStyle: 'inbox',\n invert: true,\n className: 'color-inbox-default'\n },\n {\n variant: 'filled',\n colorStyle: 'inbox',\n disabled: false,\n invert: false,\n className: 'hover:bg-inbox-dark'\n },\n /*\n Added border-color class for those with\n `outline` variant\n `primary` colorStyle\n */\n {\n variant: 'outline',\n colorStyle: 'primary',\n theme: 'light',\n className: primary.accent.default.border.base\n },\n {\n variant: 'outline',\n colorStyle: 'primary',\n theme: 'dark',\n className: 'border-blue-300'\n },\n /*\n Added border-color class for those with\n `outline` variant\n `secondary` colorStyle\n */\n {\n variant: 'outline',\n colorStyle: 'secondary',\n theme: 'light',\n className: primary.border.medium.base\n },\n {\n variant: 'outline',\n colorStyle: 'secondary',\n theme: 'dark',\n className: 'border-gray-300'\n },\n /*\n Added border-color class for those with\n `outline` variant\n `neutral` colorStyle\n */\n {\n variant: 'outline',\n colorStyle: 'neutral',\n theme: 'light',\n className: 'border-gray-600'\n },\n {\n variant: 'outline',\n colorStyle: 'neutral',\n theme: 'dark',\n className: 'border-white'\n },\n /*\n Added border-color class for those with\n `outline` variant\n `success` colorStyle\n */\n {\n variant: 'outline',\n colorStyle: 'success',\n theme: 'light',\n className: primary.success.default.border.base\n },\n {\n variant: 'outline',\n colorStyle: 'success',\n theme: 'dark',\n className: 'border-green-300'\n },\n /*\n Added border-color class for those with\n `outline` variant\n `error` colorStyle\n */\n {\n variant: 'outline',\n colorStyle: 'error',\n theme: 'light',\n className: primary.error.default.border.base\n },\n {\n variant: 'outline',\n colorStyle: 'error',\n theme: 'dark',\n className: 'border-red-300'\n },\n /*\n Added color and background-hover classes for those with\n `ghost` or `outline` variant\n `primary` colorStyle\n */\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'primary',\n theme: 'light',\n className: primary.accent.default.color.base\n },\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'primary',\n theme: 'dark',\n className: 'color-blue-300'\n },\n /*\n Added color and background-hover classes for those with\n `ghost` or `outline` variant\n `primary` colorStyle\n `disabled` false\n */\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'primary',\n disabled: false,\n theme: 'light',\n className: primary.accent.lightest.bg.hover\n },\n {\n variant: ['ghost', 'outline'],\n colorStyle: ['primary', 'secondary', 'success', 'error', 'neutral'],\n disabled: false,\n theme: 'dark',\n className: 'hover:bg-gray-700'\n },\n /*\n Added color and background-hover classes for those with\n `ghost` or `outline` variant\n `secondary` or `neutral` colorStyle\n */\n {\n variant: ['ghost', 'outline'],\n colorStyle: ['secondary', 'neutral'],\n theme: 'light',\n class: primary.text.dark.base\n },\n {\n variant: ['ghost', 'outline'],\n colorStyle: ['secondary', 'neutral'],\n theme: 'dark',\n class: 'color-white'\n },\n /*\n Added color and background-hover classes for those with\n `ghost` or `outline` variant\n `secondary` or `neutral` colorStyle\n `disabled` false\n */\n {\n variant: ['ghost', 'outline'],\n colorStyle: ['secondary', 'neutral'],\n disabled: false,\n theme: 'light',\n className: primary.background.lightest.hover\n },\n /*\n Added color and background-hover classes for those with\n `ghost` or `outline` variant\n `success` colorStyle\n `disabled` false\n */\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'success',\n disabled: false,\n theme: 'light',\n className: [primary.success.dark.color.base, primary.success.lightest.bg.hover]\n },\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'success',\n disabled: false,\n theme: 'dark',\n className: 'color-green-300'\n },\n /*\n Added color and background-hover classes for those with\n `ghost` or `outline` variant\n `error` colorStyle\n */\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'error',\n theme: 'light',\n className: primary.error.default.color.base\n },\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'error',\n theme: 'dark',\n className: 'color-red-300'\n },\n /*\n Added color and background-hover classes for those with\n `ghost` or `outline` variant\n `error` colorStyle\n `disabled` false\n */\n {\n variant: ['ghost', 'outline'],\n colorStyle: 'error',\n disabled: false,\n theme: 'light',\n className: primary.error.lightest.bg.hover\n },\n /*\n Added `focus:outline` classes for those with\n `primary` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'primary',\n disabled: false,\n className: 'focus:outline-blue-200'\n },\n /*\n Added `focus:outline` classes for those with\n `secondary` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'secondary',\n disabled: false,\n className: 'focus:outline-navy-50'\n },\n /*\n Added `focus:outline` classes for those with\n `success` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'success',\n disabled: false,\n className: 'focus:outline-green-300'\n },\n /*\n Added `focus:outline` classes for those with\n `error` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'error',\n disabled: false,\n className: 'focus:outline-red-300'\n },\n /*\n Added `focus:outline` classes for those with\n `neutral` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'neutral',\n disabled: false,\n className: 'focus:outline-gray-300'\n },\n /*\n Added `focus:outline` classes for those with\n `analytics` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'analytics',\n disabled: false,\n className: 'focus:outline-analytics-light'\n },\n /*\n Added `focus:outline` classes for those with\n `pages` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'pages',\n disabled: false,\n className: 'focus:outline-pages-light'\n },\n /*\n Added `focus:outline` classes for those with\n `teams` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'teams',\n disabled: false,\n className: 'focus:outline-teams-light'\n },\n /*\n Added `focus:outline` classes for those with\n `sign` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'sign',\n disabled: false,\n className: 'focus:outline-sign-light'\n },\n /*\n Added `focus:outline` classes for those with\n `pdf` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'pdf',\n disabled: false,\n className: 'focus:outline-pdf-light'\n },\n /*\n Added `focus:outline` classes for those with\n `apps` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'apps',\n disabled: false,\n className: 'focus:outline-apps-light'\n },\n /*\n Added `focus:outline` classes for those with\n `reports` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'reports',\n disabled: false,\n className: 'focus:outline-reports-light'\n },\n /*\n Added `focus:outline` classes for those with\n `forms` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'forms',\n disabled: false,\n className: 'focus:outline-forms-light'\n },\n /*\n Added `focus:outline` classes for those with\n `tables` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'tables',\n disabled: false,\n className: 'focus:outline-tables-light'\n },\n /*\n Added `focus:outline` classes for those with\n `inbox` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'inbox',\n disabled: false,\n className: 'focus:outline-inbox-light'\n },\n /*\n Added `focus:outline` classes for those with\n `approvals` colorStyle\n `disabled` false\n */\n {\n colorStyle: 'approvals',\n disabled: false,\n className: 'focus:outline-approvals-light'\n },\n // Icon gaps\n // XS\n {\n showTextOnly: 'xs',\n hasDoubleIcon: true,\n size: 'small',\n hasChildren: true,\n className: 'gap-1 xs:gap-0'\n },\n {\n showTextOnly: 'xs',\n hasDoubleIcon: true,\n size: 'medium',\n hasChildren: true,\n className: 'gap-2 xs:gap-0'\n },\n {\n showTextOnly: 'xs',\n hasDoubleIcon: true,\n size: 'large',\n hasChildren: true,\n className: 'gap-3 xs:gap-0'\n },\n // SM\n {\n showTextOnly: 'sm',\n hasDoubleIcon: true,\n size: 'small',\n hasChildren: true,\n className: 'gap-1 sm:gap-0'\n },\n {\n showTextOnly: 'sm',\n hasDoubleIcon: true,\n size: 'medium',\n hasChildren: true,\n className: 'gap-2 sm:gap-0'\n },\n {\n showTextOnly: 'sm',\n hasDoubleIcon: true,\n size: 'large',\n hasChildren: true,\n className: 'gap-3 sm:gap-0'\n },\n // MD\n {\n showTextOnly: 'md',\n hasDoubleIcon: true,\n size: 'small',\n className: 'gap-1 md:gap-0'\n },\n {\n showTextOnly: 'md',\n hasDoubleIcon: true,\n size: 'medium',\n className: 'gap-2 md:gap-0'\n },\n {\n showTextOnly: 'md',\n hasDoubleIcon: true,\n size: 'large',\n className: 'gap-3 md:gap-0'\n },\n // LG\n {\n showTextOnly: 'lg',\n hasDoubleIcon: true,\n size: 'small',\n className: 'gap-1 lg:gap-0'\n },\n {\n showTextOnly: 'lg',\n hasDoubleIcon: true,\n size: 'medium',\n className: 'gap-2 lg:gap-0'\n },\n {\n showTextOnly: 'lg',\n hasDoubleIcon: true,\n size: 'large',\n className: 'gap-3 lg:gap-0'\n },\n // XL\n {\n showTextOnly: 'xl',\n hasDoubleIcon: true,\n size: 'small',\n className: 'gap-1 xl:gap-0'\n },\n {\n showTextOnly: 'xl',\n hasDoubleIcon: true,\n size: 'medium',\n className: 'gap-2 xl:gap-0'\n },\n {\n showTextOnly: 'xl',\n hasDoubleIcon: true,\n size: 'large',\n className: 'gap-3 xl:gap-0'\n },\n // XXL\n {\n showTextOnly: 'xxl',\n hasDoubleIcon: true,\n size: 'small',\n className: 'gap-1 xxl:gap-0'\n },\n {\n showTextOnly: 'xxl',\n hasDoubleIcon: true,\n size: 'medium',\n className: 'gap-2 xxl:gap-0'\n },\n {\n showTextOnly: 'xxl',\n hasDoubleIcon: true,\n size: 'large',\n className: 'gap-3 xxl:gap-0'\n },\n {\n size: 'small',\n hasOneIcon: false,\n hasDoubleIcon: true,\n hasChildren: false,\n className: 'gap-1'\n },\n {\n size: 'medium',\n hasOneIcon: false,\n hasDoubleIcon: true,\n hasChildren: false,\n className: 'gap-2'\n },\n {\n size: 'large',\n hasOneIcon: false,\n hasDoubleIcon: true,\n hasChildren: false,\n className: 'gap-3'\n }\n ]\n});\n\nexport const buttonTextCVA = cva<ButtonTextCVAType>('', {\n variants: {\n size: {\n small: 'px-1 text-sm',\n medium: 'px-2 text-sm',\n large: 'px-3 text-lg'\n },\n showTextOnHover: {\n true: 'hiddenjf group-hover:block whitespace-nowrap'\n },\n showTextOnly: {\n xs: 'xs:inline',\n sm: 'sm:inline',\n md: 'md:inline',\n lg: 'lg:inline',\n xl: 'xl:inline',\n xxl: 'xxl:inline'\n },\n loader: {},\n hasLoaderText: {},\n hasChildren: {}\n },\n compoundVariants: [\n {\n showTextOnly: ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'],\n className: 'hiddenjf'\n },\n {\n loader: true,\n hasLoaderText: false,\n hasChildren: true,\n className: 'opacity-0'\n }\n ]\n});\n\nexport const buttonIconCVA = cva<ButtonIconCVAType>('magnet-button-icon shrink-0', {\n variants: {\n size: {\n small: 'w-4 h-4',\n medium: 'w-5 h-5',\n large: 'w-6 h-6'\n },\n loader: {},\n hasLoaderText: {}\n },\n compoundVariants: [\n {\n loader: true,\n hasLoaderText: false,\n className: 'opacity-0'\n },\n {\n loader: true,\n hasLoaderText: true,\n className: 'hiddenjf'\n }\n ]\n});\n\nexport const buttonIndicatorCVA = cva<ButtonIndicatorCVAType>('shrink-0', {\n variants: {\n loader: {},\n colorStyle: {}\n },\n compoundVariants: [\n {\n colorStyle: undefined,\n className: 'color-navy-300'\n },\n {\n loader: true,\n className: 'opacity-0'\n }\n ]\n});\n","import { ComponentPropsWithoutRef, ElementType, ReactElement } from 'react';\nimport { PolymorphicProps } from '../../types/system.types';\nimport {\n Breakpoint, ColorStyle, Icon, ProductName, Size\n} from '../../constants/common.types';\n\nexport type AcceptableButtonTypes = 'button' | 'a';\n\nexport const defaultButtonType:AcceptableButtonTypes = 'button';\n\nexport type ButtonProps = {\n colorStyle?: ColorStyle | ProductName | 'secondary' | 'neutral',\n disabled?: boolean,\n endIcon?: Icon,\n fullWidth?: boolean,\n href?: string,\n indicatorText?: string,\n invert?: boolean,\n loader?: boolean,\n loaderText?: string,\n rounded?: boolean,\n showTextOnHover?: boolean,\n showTextOnly?: Breakpoint | null,\n size?: Size,\n startIcon?: Icon,\n theme?: 'dark' | 'light',\n type?: 'submit' | 'button' | 'reset',\n variant?: 'filled' | 'outline' | 'ghost'\n}\n\nexport type ButtonTextProps = Pick<ButtonProps, 'size' | 'loader' | 'showTextOnHover' | 'showTextOnly'> & {\n hasLoaderText?: boolean,\n hasChildren?: boolean\n}\n\nexport type ButtonIconProps = Pick<ButtonProps, 'size' | 'loader'> & {\n icon: ElementType,\n hasLoaderText?: boolean\n}\n\nexport type ButtonIndicatorProps = Pick<ButtonProps, 'indicatorText' | 'variant' | 'size' | 'loader' | 'colorStyle'>\n\nexport type ButtonComponentType = <Element extends ElementType>(\n props: PolymorphicProps<Element extends AcceptableButtonTypes ? Element : typeof defaultButtonType, ButtonProps> & { ref?: ComponentPropsWithoutRef<Element>['ref'] }\n) => ReactElement | null\n\nexport const buttonDefaultProps:Partial<ButtonProps> = {\n colorStyle: 'primary',\n disabled: false,\n fullWidth: false,\n invert: false,\n loader: false,\n rounded: false,\n showTextOnHover: false,\n showTextOnly: null,\n size: 'medium',\n theme: 'light',\n type: 'button',\n variant: 'filled'\n};\n","import React, { PropsWithChildren } from 'react';\nimport { cx } from 'class-variance-authority';\nimport { Indicator } from '../Indicator';\nimport { ButtonTextProps, ButtonIconProps, ButtonIndicatorProps } from './button.types';\nimport { buttonTextCVA, buttonIconCVA, buttonIndicatorCVA } from './button.cva';\n\nexport const ButtonText = (props: PropsWithChildren<ButtonTextProps>): JSX.Element => {\n const {\n size, showTextOnHover, showTextOnly, loader, hasLoaderText, hasChildren, children\n } = props;\n\n return (\n <span className={cx(buttonTextCVA({\n size, showTextOnHover, showTextOnly, loader, hasLoaderText, hasChildren\n }))}\n >\n {children}\n </span>\n );\n};\n\nexport const ButtonIcon = (props: ButtonIconProps): JSX.Element => {\n const {\n size, hasLoaderText, loader, icon: Icon\n } = props;\n\n return <Icon className={cx(buttonIconCVA({ size, hasLoaderText, loader }))} />;\n};\n\nexport const ButtonIndicator = (props: ButtonIndicatorProps): JSX.Element => {\n const {\n size, loader, indicatorText, colorStyle, variant\n } = props;\n\n // If color style is not `primary`, `success`, `error`, pill's color always should be `null`\n const indicatorColorStyle = (colorStyle === 'primary' || colorStyle === 'success' || colorStyle === 'error' || colorStyle === 'secondary') ? colorStyle : undefined;\n\n const indicatorVariant = variant === 'filled';\n\n return (\n <Indicator\n colorStyle={indicatorColorStyle}\n invert={indicatorVariant}\n className={cx(buttonIndicatorCVA({\n colorStyle,\n loader\n }))}\n size={size}\n >\n {indicatorText}\n </Indicator>\n );\n};\n","import { cva } from 'class-variance-authority';\nimport { primary } from '../../tokens/colors';\nimport { CVAType } from '../../types/system.types';\nimport { LoaderProps } from './loader.types';\n\n// CVA Types\ntype LoaderCVAType = CVAType<Pick<LoaderProps, 'size' | 'theme'>>;\ntype LoaderElementsCVAType = CVAType<Pick<LoaderProps, 'theme'>>;\n\n// Classes\nexport const loaderCVA = cva<LoaderCVAType>(\n 'magnet-loader relative', {\n variants: {\n size: {\n small: 'w-4 h-4',\n medium: 'w-5 h-5',\n large: 'w-6 h-6'\n },\n theme: {}\n }\n }\n);\n\nexport const loaderTrackCVA = cva<LoaderElementsCVAType>('opacity-20 absolute inset-px radius-full border-2', {\n variants: {\n theme: {\n current: 'border-current',\n dark: primary.border.darkest.base,\n light: 'border-white'\n }\n }\n});\n\nexport const loaderSpinnerCVA = cva<LoaderElementsCVAType>(\n 'absolute inset-px radius-full border-2 border-t-transparent border-b-transparent border-l-transparent anim anim-700 spin-loader timing-linear', {\n variants: {\n theme: {\n current: 'border-r-current',\n dark: 'border-r-navy-700',\n light: 'border-r-white'\n }\n }\n }\n);\n","import { ComponentPropsWithoutRef } from 'react';\nimport { Size, Theme } from '../../constants/common.types';\n\nexport type LoaderProps = ComponentPropsWithoutRef<'div'> & {\n size?: Size,\n theme?: Theme | 'current'\n}\n\nexport const loaderDefaultProps:Partial<LoaderProps> = {\n size: 'medium',\n theme: 'current'\n};\n","import React from 'react';\nimport { cx } from 'class-variance-authority';\n\nimport '@jotforminc/jotform.css';\n// eslint-disable-next-line no-restricted-imports\nimport '@jotforminc/jotform.css/animation.css';\n\nimport { loaderCVA, loaderSpinnerCVA, loaderTrackCVA } from './loader.cva';\nimport { LoaderProps, loaderDefaultProps } from './loader.types';\n\nexport const Loader = (props: LoaderProps):JSX.Element => {\n const {\n className, size, theme, ...rest\n } = { ...loaderDefaultProps, ...props };\n\n const loaderClassName = cx(className, loaderCVA({\n size,\n theme\n }));\n\n return (\n <div className={loaderClassName} {...rest}>\n <span className={loaderSpinnerCVA({ theme })} />\n <div className={loaderTrackCVA({ theme })} />\n </div>\n );\n};\n","import React, { ComponentPropsWithRef, ElementType, forwardRef } from 'react';\nimport { cx } from 'class-variance-authority';\n\nimport '@jotforminc/jotform.css';\nimport { buttonCVA } from './button.cva';\nimport {\n ButtonComponentType, ButtonProps, buttonDefaultProps\n} from './button.types';\n\nimport { ButtonIcon, ButtonIndicator, ButtonText } from './ButtonContent';\nimport { Loader } from '../Loader/Loader';\n\nimport { PolymorphicProps } from '../../types/system.types';\nimport { PRODUCT_NAME_VALUES } from '../../constants/common.values';\n\nexport const Button:ButtonComponentType = forwardRef(\n // eslint-disable-next-line complexity\n <Element extends ElementType>(\n props: PolymorphicProps<Element, ButtonProps>,\n ref?: ComponentPropsWithRef<Element>['ref']\n ): JSX.Element => {\n const {\n children,\n className,\n colorStyle = buttonDefaultProps.colorStyle,\n disabled = buttonDefaultProps.disabled,\n endIcon: EndIcon,\n fullWidth = buttonDefaultProps.fullWidth,\n href,\n loader = buttonDefaultProps.loader,\n loaderText,\n indicatorText,\n invert = buttonDefaultProps.invert,\n rounded = buttonDefaultProps.rounded,\n showTextOnHover = buttonDefaultProps.showTextOnHover,\n size = buttonDefaultProps.size,\n startIcon: StartIcon,\n showTextOnly = buttonDefaultProps.showTextOnly,\n theme = buttonDefaultProps.theme,\n type = buttonDefaultProps.type,\n variant = buttonDefaultProps.variant,\n as: Component = href ? 'a' : 'button',\n ...rest\n } = props;\n\n const hasOneIcon = !!((StartIcon && !EndIcon) || (!StartIcon && EndIcon));\n const hasDoubleIcon = !!(StartIcon && EndIcon);\n const hasIndicator = !!indicatorText;\n\n const hasChildren = !!children;\n const hasLoaderText = !!loaderText;\n const isProductButton = colorStyle ? (PRODUCT_NAME_VALUES as ReadonlyArray<string>).includes(colorStyle) : false;\n\n // If color style is a product color, its variant always should be `filled`\n const buttonVariant = isProductButton ? 'filled' : variant;\n\n // The `loader` state should work only if it is not `disabled`.\n const buttonLoader = !disabled ? loader : false;\n\n // Update button text according the loader state\n const buttonText = hasLoaderText && buttonLoader ? loaderText : children;\n\n // Check button text\n const hasText = hasChildren || (hasLoaderText && buttonLoader);\n\n // Button class list\n const buttonClassName = cx(className, buttonCVA({\n colorStyle,\n disabled,\n fullWidth,\n hasDoubleIcon,\n hasLoaderText,\n hasOneIcon,\n hasChildren,\n invert,\n loader: buttonLoader,\n rounded,\n showTextOnHover,\n showTextOnly,\n size,\n theme,\n variant: buttonVariant\n }));\n\n // Loader content\n const loaderComponent = <Loader className='shrink-0' size={size} />;\n const loaderContent = hasLoaderText ? loaderComponent : <span className=\"absolute inset-0 flex justify-center items-center p-1 z-1\">{loaderComponent}</span>;\n\n // Button content\n const buttonContent = (\n <>\n {StartIcon && (\n <ButtonIcon\n icon={StartIcon}\n size={size}\n hasLoaderText={hasLoaderText}\n loader={buttonLoader}\n />\n )}\n {buttonLoader && loaderContent}\n {hasText && (\n <ButtonText\n showTextOnHover={showTextOnHover}\n size={size}\n loader={buttonLoader}\n showTextOnly={showTextOnly}\n hasLoaderText={hasLoaderText}\n hasChildren={hasChildren}\n >\n {buttonText}\n </ButtonText>\n )}\n {hasIndicator && !hasLoaderText && (\n <ButtonIndicator\n colorStyle={colorStyle}\n size={size}\n loader={buttonLoader}\n indicatorText={indicatorText}\n variant={buttonVariant}\n />\n )}\n {EndIcon && !hasIndicator && (\n <ButtonIcon\n icon={EndIcon}\n size={size}\n hasLoaderText={hasLoaderText}\n loader={buttonLoader}\n />\n )}\n </>\n );\n\n return (\n <Component\n {...rest}\n href={href || undefined}\n type={!href && type ? type : undefined}\n disabled={disabled}\n className={buttonClassName}\n ref={ref}\n >\n {buttonContent}\n </Component>\n );\n }\n);\n","import { cva } from 'class-variance-authority';\nimport { primary, secondary } from '../../tokens/colors';\nimport { CVAType } from '../../types/system.types';\nimport { CheckboxProps } from './checkbox.types';\n\n// CVA Types\ntype CheckboxCVAType = CVAType<Pick<CheckboxProps, 'size' | 'disabled' | 'checked' | 'indeterminate' | 'theme' | 'error'>>\ntype CheckboxWrapperCVAType = CVAType<Pick<CheckboxProps, 'size'>>\ntype CheckboxIconCVAType = CVAType<Pick<CheckboxProps, 'disabled' | 'theme'>>\n\n// Common classes\nconst checkboxSizes = {\n small: 'w-4 h-4',\n medium: 'w-5 h-5',\n large: 'w-6 h-6'\n};\n\n// Classes\nexport const checkboxCVA = cva<CheckboxCVAType>(\n 'appearance-none border-2 radius inline-flex shrink-0 focus:outline-2 outline-offset-0 m-0', {\n variants: {\n size: checkboxSizes,\n disabled: {\n true: 'cursor-not-allowed',\n false: 'cursor-pointer'\n },\n checked: {},\n indeterminate: {},\n theme: {},\n error: {\n false: primary.accent.default.border.focus\n }\n },\n compoundVariants: [\n // Dark\n {\n theme: 'dark',\n error: false,\n className: 'outline-blue-600 outline-opacity-50'\n },\n {\n theme: 'dark',\n error: true,\n checked: true,\n className: 'outline-blue-600 outline-opacity-50'\n },\n {\n theme: 'dark',\n checked: false,\n disabled: false,\n error: false,\n indeterminate: false,\n className: [\n secondary.background.dark.base,\n secondary.border.medium.base,\n primary.accent.default.border.hover\n ]\n },\n {\n theme: 'dark',\n checked: true,\n disabled: true,\n indeterminate: false,\n className: [secondary.background.light.base, secondary.border.medium.base]\n },\n {\n theme: 'dark',\n indeterminate: true,\n checked: false,\n disabled: true,\n className: [secondary.background.light.base, secondary.border.medium.base]\n },\n {\n theme: 'dark',\n checked: false,\n disabled: true,\n indeterminate: false,\n className: [secondary.background.medium.base, secondary.border.medium.base]\n },\n // Light\n {\n theme: 'light',\n error: false,\n className: 'focus:outline-blue-200'\n },\n {\n theme: 'light',\n error: true,\n checked: true,\n className: 'focus:outline-blue-200'\n },\n {\n theme: 'light',\n checked: false,\n disabled: false,\n indeterminate: false,\n error: false,\n className: [primary.border.medium.base, primary.accent.default.border.hover, 'bg-white']\n },\n {\n theme: 'light',\n checked: true,\n disabled: true,\n className: 'bg-navy-50 border-navy-50'\n },\n {\n theme: 'light',\n indeterminate: true,\n checked: false,\n disabled: true,\n className: 'bg-navy-50 border-navy-50'\n },\n {\n theme: 'light',\n checked: false,\n disabled: true,\n className: 'border-navy-50'\n },\n // Dark & Light\n {\n theme: ['dark', 'light'],\n checked: false,\n error: false,\n className: [primary.accent.default.border.focus]\n },\n {\n theme: ['dark', 'light'],\n checked: true,\n disabled: false,\n indeterminate: false,\n className: [\n primary.accent.default.bg.base,\n primary.accent.default.border.base,\n primary.accent.dark.bg.hover,\n primary.accent.dark.border.hover\n ]\n },\n {\n theme: ['dark', 'light'],\n checked: false,\n indeterminate: true,\n disabled: false,\n className: [\n primary.accent.default.bg.base,\n primary.accent.default.border.base,\n primary.accent.dark.bg.hover,\n primary.accent.dark.border.hover\n ]\n },\n {\n theme: ['dark', 'light'],\n checked: false,\n indeterminate: false,\n disabled: false,\n error: true,\n className: [\n primary.error.default.border.base,\n primary.error.dark.border.hover\n ]\n },\n {\n theme: 'light',\n checked: false,\n indeterminate: false,\n disabled: false,\n error: true,\n className: 'focus:outline-red-200 focus:outline-opacity-50'\n },\n {\n theme: 'dark',\n checked: false,\n indeterminate: false,\n error: true,\n disabled: false,\n className: [secondary.background.dark.base, 'focus:outline-red-400 focus:outline-opacity-50']\n }\n ]\n }\n);\n\nexport const checkboxWrapperCVA = cva<CheckboxWrapperCVAType>('inline-flex shrink-0 relative', {\n variants: {\n size: checkboxSizes\n }\n});\n\nexport const checkboxIconCVA = cva<CheckboxIconCVAType>('absolute inset-0 w-full h-full pointer-events-none', {\n variants: {\n disabled: {\n false: 'color-white'\n },\n theme: {}\n },\n compoundVariants: [\n {\n theme: 'dark',\n disabled: true,\n className: 'color-gray-600'\n },\n {\n theme: 'light',\n disabled: true,\n className: primary.text.light.base\n }\n ]\n});\n","import { ChoiceTruncate, Size, Theme } from '../../constants/common.types';\nimport { commonInputDefaults } from '../../contexts';\nimport { NativePropsWithoutRef } from '../../types/system.types';\n\nexport type CheckboxBaseProps = {\n label?: string,\n description?: string\n htmlSize?: number,\n truncate?: ChoiceTruncate,\n size?: Size,\n indeterminate?: boolean,\n theme?: Theme,\n error?: boolean,\n in?: 'dropdown'\n}\n\nexport type CheckboxProps = NativePropsWithoutRef<'input', CheckboxBaseProps> & CheckboxBaseProps;\n\nexport const checkboxDefaultProps:Partial<CheckboxProps> = {\n size: commonInputDefaults.size,\n theme: commonInputDefaults.theme\n};\n","import React, { ComponentPropsWithRef, forwardRef } from 'react';\nimport { cx } from 'class-variance-authority';\nimport { IconCheck, IconMinus } from '@jotforminc/svg-icons';\n\nimport '@jotforminc/jotform.css';\n\nimport { checkboxCVA, checkboxIconCVA, checkboxWrapperCVA } from './checkbox.cva';\nimport { CheckboxProps, checkboxDefaultProps } from './checkbox.types';\n\nimport { ChoiceLabel } from '../../shared/ChoiceLabel/ChoiceLabel';\nimport { useFormControl } from '../../contexts';\n\nexport const Checkbox = forwardRef((\n props: CheckboxProps,\n ref?: ComponentPropsWithRef<'input'>['ref']\n): JSX.Element => {\n const {\n description,\n label,\n htmlSize,\n theme,\n disabled,\n indeterminate,\n checked,\n size,\n error,\n className,\n id,\n truncate,\n ...rest\n } = useFormControl<CheckboxProps>(props, ['theme', 'size']);\n\n const hasLabel = label && label.length > 0;\n const hasDescription = description && description.length > 0;\n const wrapperClass = cx(!hasLabel && !hasDescription ? className : null, checkboxWrapperCVA({ size }));\n\n const checkIcon = (\n <span className={wrapperClass}>\n <input\n type=\"checkbox\"\n id={id}\n checked={checked}\n className={checkboxCVA({\n size,\n theme,\n disabled: !!disabled,\n checked: !!checked,\n indeterminate: !!indeterminate,\n error: !!error\n })}\n disabled={disabled}\n ref={ref}\n size={htmlSize}\n {...rest}\n />\n {checked && <IconCheck className={checkboxIconCVA({ theme, disabled: !!disabled })} />}\n {indeterminate && <IconMinus className={checkboxIconCVA({ theme, disabled: !!disabled })} />}\n </span>\n );\n\n return (\n (hasLabel || hasDescription) ? (\n <ChoiceLabel\n id={id}\n input={checkIcon}\n description={description}\n label={label}\n className={className}\n size={size}\n disabled={!!disabled}\n theme={theme}\n truncate={truncate}\n />\n ) : checkIcon\n );\n});\n\nCheckbox.defaultProps = checkboxDefaultProps;\n","import { cva } from 'class-variance-authority';\nimport { primary } from '../../tokens/colors';\nimport { CVAType } from '../../types/system.types';\nimport { IndicatorProps } from './indicator.types';\n\n// // CVA Types\ntype IndicatorCVAType = CVAType<Pick<IndicatorProps, 'size' | 'colorStyle' | 'invert'> & { hasChildren?: boolean }>\n\n// Classes\nexport const indicatorCVA = cva<IndicatorCVAType>(\n 'magnet-pill inline-flex radius-full', {\n variants: {\n size: {},\n colorStyle: {},\n hasChildren: {\n true: 'justify-center items-center font-bold'\n },\n invert: {\n true: 'bg-white'\n }\n },\n compoundVariants: [\n /*\n Added width & height classes for sizes if component has children\n */\n {\n hasChildren: false,\n size: 'small',\n class: 'w-2 h-2'\n },\n {\n hasChildren: false,\n size: 'medium',\n class: 'w-2.5 h-2.5'\n },\n {\n hasChildren: false,\n size: 'large',\n class: 'w-3 h-3'\n },\n /*\n Added width, height, padding, text classes for sizes if component has no children\n */\n {\n hasChildren: true,\n size: 'small',\n class: 'min-w-4 h-4 px-1 text-xxs'\n },\n {\n hasChildren: true,\n size: 'medium',\n class: 'min-w-5 h-5 px-1.5 text-xs'\n },\n {\n hasChildren: true,\n size: 'large',\n class: 'min-w-6 h-6 px-2 text-sm'\n },\n /*\n Added color classes for all colorStyles for those with\n `invert` false & `hasChildren` true\n */\n {\n colorStyle: ['primary', 'success', 'error'],\n invert: false,\n hasChildren: true,\n class: 'color-white'\n },\n {\n colorStyle: 'secondary',\n hasChildren: true,\n class: primary.text.darkest.base\n },\n /*\n Added bg classes for each colorStyles for those with\n `current` false\n */\n {\n colorStyle: 'primary',\n invert: false,\n class: primary.accent.default.bg.base\n },\n {\n colorStyle: 'secondary',\n invert: false,\n class: primary.background.light.base\n },\n {\n colorStyle: 'success',\n invert: false,\n class: primary.success.default.bg.base\n },\n {\n colorStyle: 'error',\n invert: false,\n class: primary.error.default.bg.base\n },\n /*\n Added color classes for each colorStyles for those with\n `invert` true (mostly for usage with button)\n */\n {\n colorStyle: 'primary',\n invert: true,\n class: primary.accent.default.color.base\n },\n {\n colorStyle: 'secondary',\n invert: true,\n class: primary.text.dark.base\n },\n {\n colorStyle: 'success',\n invert: true,\n class: primary.success.default.color.base\n },\n {\n colorStyle: 'error',\n invert: true,\n class: primary.error.default.color.base\n }\n ]\n }\n);\n","import React from 'react';\nimport { cx } from 'class-variance-authority';\n\nimport '@jotforminc/jotform.css';\n// eslint-disable-next-line no-restricted-imports\nimport '@jotforminc/jotform.css/animation.css';\n\nimport { indicatorCVA } from './indicator.cva';\nimport { IndicatorProps, indicatorDefaultProps } from './indicator.types';\n\nexport const Indicator = (props: IndicatorProps):JSX.Element => {\n const {\n className, children, colorStyle, invert, size, ...rest\n } = props;\n\n const hasChildren = !!children;\n\n const indicatorClassName = cx(className, indicatorCVA({\n colorStyle,\n hasChildren,\n invert,\n size\n }));\n\n return (\n <span className={indicatorClassName} {...rest}>\n {children}\n </span>\n );\n};\n\nIndicator.defaultProps = indicatorDefaultProps;\n","import { ComponentPropsWithoutRef } from 'react';\nimport { ColorStyle, Size } from '../../constants/common.types';\n\nexport type IndicatorProps = ComponentPropsWithoutRef<'span'> & {\n size?: Size,\n colorStyle?: ColorStyle | 'secondary',\n invert?: boolean\n}\n\nexport const indicatorDefaultProps:Partial<IndicatorProps> = {\n invert: false,\n size: 'medium',\n colorStyle: 'primary'\n};\n","import { cva } from 'class-variance-authority';\nimport { CVAType } from '../../types/system.types';\nimport { primary, secondary } from '../../tokens/colors';\nimport { BaseInputAddonProps, BaseInputProps } from './input.types';\n\ntype BaseInputHelperTypes = {\n hasPlaceholder: boolean,\n hasChildren: boolean\n}\n\n// CVA Types\ntype BaseInputCVAType = CVAType<Pick<BaseInputProps, 'as' | 'theme' | 'size'> & BaseInputHelperTypes>\ntype BaseInputContainerCVAType = CVAType<Pick<BaseInputProps, 'as' | 'size' | 'expand' | 'disabled' | 'readOnly'>>\ntype BaseInputAddonTextCVAType = CVAType<Pick<BaseInputAddonProps, 'size' | 'theme' | 'readOnly' | 'disabled' | 'direction' | 'variant' | 'useInputColor'>>\ntype BaseInputAddonIconCVAType = CVAType<Pick<BaseInputAddonProps, 'size'>>\ntype InputSpinButtonCVAType = CVAType<Pick<BaseInputProps, 'theme' | 'disabled' | 'readOnly'>>\n\n// Classes\nexport const baseInputContainerCVA = cva<BaseInputContainerCVAType>('', {\n variants: {\n size: {},\n expand: {},\n disabled: {},\n readOnly: {},\n as: {\n input: 'magnet-input-container',\n dropdown: 'magnet-dropdown items-center'\n }\n },\n compoundVariants: [\n {\n expand: false,\n size: 'small',\n className: 'h-8'\n },\n {\n expand: false,\n size: 'medium',\n className: 'h-10'\n },\n {\n expand: false,\n size: 'large',\n className: 'h-12'\n },\n {\n expand: true,\n size: 'small',\n className: 'min-h-8 py-1'\n },\n {\n expand: true,\n size: 'medium',\n className: 'min-h-10 py-1'\n },\n {\n expand: true,\n size: 'large',\n className: 'min-h-12 py-1.5'\n },\n {\n disabled: true,\n as: 'dropdown',\n className: 'cursor-not-allowed'\n },\n {\n disabled: false,\n readOnly: false,\n as: 'dropdown',\n className: 'cursor-pointer'\n }\n ]\n});\n\nexport const baseInputCVA = cva<BaseInputCVAType>('', {\n variants: {\n size: {\n small: 'px-2',\n medium: 'px-3',\n large: 'px-3'\n },\n as: {\n input: 'magnet-input h-full color-current',\n dropdown: 'truncate'\n },\n hasPlaceholder: {},\n hasChildren: {},\n theme: {}\n },\n compoundVariants: [\n {\n hasPlaceholder: true,\n hasChildren: false,\n as: 'dropdown',\n theme: 'light',\n className: 'color-navy-200'\n },\n {\n hasPlaceholder: true,\n hasChildren: false,\n as: 'dropdown',\n theme: 'dark',\n className: secondary.text.light.base\n }\n ]\n});\n\nexport const baseInputAddon = {\n textCVA: cva<BaseInputAddonTextCVAType>('flex shrink-0 items-center', {\n variants: {\n size: {\n small: 'gap-2 text-sm',\n medium: 'gap-3 text-sm',\n large: 'gap-3 text-md'\n },\n theme: {},\n readOnly: {},\n disabled: {},\n direction: {},\n variant: {},\n useInputColor: {}\n },\n compoundVariants: [\n {\n direction: 'start',\n className: 'radius-l'\n },\n {\n direction: 'end',\n className: 'radius-r'\n },\n {\n useInputColor: false,\n theme: 'light',\n className: primary.text.medium.base\n },\n {\n useInputColor: false,\n theme: 'dark',\n className: 'color-gray-200'\n },\n {\n direction: 'start',\n variant: 'ghost',\n size: 'small',\n className: 'pl-2'\n },\n {\n direction: 'start',\n variant: 'ghost',\n size: ['medium', 'large'],\n className: 'pl-3'\n },\n {\n direction: 'end',\n variant: 'ghost',\n size: 'small',\n className: 'pr-2'\n },\n {\n direction: 'end',\n variant: 'ghost',\n size: ['medium', 'large'],\n className: 'pr-3'\n },\n {\n variant: 'filled',\n size: 'small',\n className: 'px-2'\n },\n {\n variant: 'filled',\n size: ['medium', 'large'],\n className: 'px-3'\n },\n {\n variant: 'filled',\n readOnly: false,\n disabled: false,\n theme: 'light',\n className: 'bg-navy-25'\n },\n {\n variant: 'filled',\n readOnly: true,\n disabled: false,\n theme: 'light',\n className: 'bg-navy-50'\n },\n {\n variant: 'filled',\n readOnly: false,\n disabled: true,\n theme: 'light',\n className: 'bg-navy-100'\n },\n {\n variant: 'filled',\n theme: 'dark',\n className: 'bg-gray-400 bg-opacity-50'\n }\n ]\n }),\n iconCVA: cva<BaseInputAddonIconCVAType>('shrink-0', {\n variants: {\n size: {\n small: 'w-4',\n medium: 'w-5',\n large: 'w-6'\n }\n }\n })\n};\n\nexport const numberSpinButtonCVA = cva<InputSpinButtonCVAType>('flex shrink-0 grow-1 justify-center items-center', {\n variants: {\n theme: {},\n readOnly: {},\n disabled: {}\n },\n compoundVariants: [\n {\n theme: 'light',\n disabled: false,\n readOnly: false,\n className: [primary.text.dark.base, 'bg-navy-10']\n },\n {\n theme: 'light',\n readOnly: true,\n disabled: false,\n className: 'color-navy-200 bg-navy-75'\n },\n {\n theme: 'light',\n readOnly: false,\n disabled: true,\n className: 'color-navy-200 bg-navy-75'\n },\n {\n theme: 'dark',\n className: 'bg-gray-400'\n },\n {\n theme: 'dark',\n readOnly: true,\n className: 'color-gray-300'\n },\n {\n theme: 'dark',\n disabled: true,\n className: 'color-gray-300'\n }\n ]\n});\n","import React, { ComponentPropsWithRef, ElementType, forwardRef } from 'react';\nimport { cx } from 'class-variance-authority';\nimport {\n BaseInputAddonComponentType,\n BaseInputAddonProps, BaseInputProps, baseInputDefaultProps, inputAddonDefaultProps\n} from './input.types';\nimport { baseInputAddon, baseInputContainerCVA, baseInputCVA } from './input.cva';\nimport { PolymorphicProps } from '../../types';\n\nimport '@jotforminc/jotform.css';\nimport { commonFormControlCVA } from '../../constants/common.cva';\n\nexport const BaseInput = forwardRef((\n props: BaseInputProps,\n ref?: ComponentPropsWithRef<'input'>['ref']\n):JSX.Element => {\n const {\n colorStyle,\n size,\n disabled,\n theme,\n readOnly,\n htmlSize,\n id,\n className,\n addonStart,\n addonEnd,\n required,\n ghost,\n as = 'input',\n expand = false,\n value,\n children,\n placeholder,\n useDefaultStyleInReadOnly,\n ...rest\n } = props;\n\n const handleFocus = (e: React.MouseEvent<HTMLDivElement>) => {\n const element = e.target as HTMLElement;\n if (element.tagName === 'BUTTON' || element.tagName === 'LABEL' || element.tagName === 'INPUT') return;\n\n const input = e?.currentTarget?.getElementsByTagName('input')[0];\n input?.focus();\n };\n\n const readOnlyVariant = (readOnly && !disabled) && !useDefaultStyleInReadOnly;\n\n const baseInputContainerClassName = cx(\n className,\n commonFormControlCVA.container({\n colorStyle,\n readOnly: readOnlyVariant,\n disabled: !!disabled,\n theme,\n ghost: !!ghost\n }),\n baseInputContainerCVA({\n size, as, expand, disabled: !!disabled, readOnly: !!readOnly\n })\n );\n\n const baseInputClassName = cx(\n commonFormControlCVA.input({\n disabled,\n theme,\n size,\n ghost: !!ghost\n }),\n baseInputCVA({\n size,\n as,\n hasPlaceholder: !!placeholder,\n hasChildren: !!children,\n theme\n })\n );\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <div\n className={baseInputContainerClassName}\n onClick={handleFocus}\n ref={as === 'dropdown' ? ref : null}\n {... as === 'dropdown' ? rest : {}}\n >\n {addonStart}\n {as === 'input'\n && (\n <input\n className={baseInputClassName}\n disabled={disabled}\n size={htmlSize}\n readOnly={readOnly}\n ref={ref}\n id={id}\n value={value}\n required={required}\n placeholder={placeholder}\n {...rest}\n />\n )}\n {as === 'dropdown' && <span className={baseInputClassName}>{children ?? placeholder}</span>}\n {addonEnd}\n </div>\n );\n});\n\nBaseInput.defaultProps = baseInputDefaultProps;\n\nexport const BaseInputAddon:BaseInputAddonComponentType = forwardRef(\n <Element extends ElementType>(\n props: PolymorphicProps<Element, BaseInputAddonProps>,\n ref?: ComponentPropsWithRef<Element>['ref']\n ):JSX.Element => {\n const {\n size = inputAddonDefaultProps.size,\n theme = inputAddonDefaultProps.theme,\n direction = inputAddonDefaultProps.direction,\n variant = inputAddonDefaultProps.variant,\n disabled = inputAddonDefaultProps.disabled,\n readOnly = inputAddonDefaultProps.readOnly,\n as = 'span',\n useInputColor,\n id,\n icon: Icon,\n text,\n htmlFor,\n ...rest\n } = props;\n\n if (!Icon && !text) return <></>;\n\n const addonContainerClassName = cx(baseInputAddon.textCVA({\n size,\n theme,\n direction,\n variant,\n readOnly: !!readOnly,\n disabled: !!disabled,\n useInputColor: !!useInputColor\n }));\n\n const addonIconClassName = baseInputAddon.iconCVA({ size });\n const Component = as;\n\n return (\n <Component\n className={addonContainerClassName}\n htmlFor={htmlFor}\n id={id}\n ref={ref}\n {...rest}\n >\n {direction === 'start'\n && (\n <>\n {Icon && <Icon className={addonIconClassName} />}\n {text && text}\n </>\n )}\n {direction === 'end'\n && (\n <>\n {text && text}\n {Icon && <Icon className={addonIconClassName} />}\n </>\n )}\n </Component>\n );\n }\n);\n","import React, { ComponentPropsWithRef, forwardRef } from 'react';\nimport { IconLockFilled } from '@jotforminc/svg-icons';\nimport { BaseInput, BaseInputAddon } from './BaseInput';\nimport { InputTextProps, inputTextDefaultProps } from './input.types';\nimport { useFormControl } from '../../contexts';\n\nexport const InputText = forwardRef((\n props: InputTextProps,\n ref?: ComponentPropsWithRef<'input'>['ref']\n):JSX.Element => {\n const {\n id,\n readOnly,\n size,\n disabled,\n theme,\n prefix,\n suffix,\n showLockIconInReadOnly,\n useDefaultStyleInReadOnly,\n required,\n ...rest\n } = useFormControl(props);\n\n const addonStart = (\n <BaseInputAddon\n {...prefix}\n size={size}\n theme={theme}\n disabled={!!disabled}\n readOnly={!!readOnly}\n direction=\"start\"\n />\n );\n\n const addonEnd = (\n <BaseInputAddon\n {...suffix}\n size={size}\n icon={readOnly && showLockIconInReadOnly ? IconLockFilled : suffix?.icon}\n theme={theme}\n disabled={!!disabled}\n readOnly={!!readOnly}\n direction=\"end\"\n />\n );\n\n return (\n <BaseInput\n id={id}\n ref={ref}\n readOnly={!!readOnly}\n useDefaultStyleInReadOnly={!!useDefaultStyleInReadOnly}\n size={size}\n theme={theme}\n disabled={!!disabled}\n addonStart={addonStart}\n addonEnd={addonEnd}\n required={required}\n {...rest}\n />\n );\n});\n\nInputText.defaultProps = inputTextDefaultProps;\n","import {\n ComponentPropsWithoutRef, ElementType, ReactNode\n} from 'react';\nimport { ForwardedComponentType } from '../../types/system.types';\nimport { FormControlContextType, commonInputDefaults } from '../../contexts';\nimport { BaseInputAddonDirection, BaseInputAddonVariant, Icon } from '../../constants/common.types';\nimport { ColorPickerProps, colorPickerDefaultProps } from '../ColorPicker/color-picker.types';\n\n// BaseInput & BaseInputAddon\nexport type NativeInputTypes = Omit<ComponentPropsWithoutRef<'input'>, keyof FormControlContextType | 'prefix'>\nexport type CommonInputProps = FormControlContextType & NativeInputTypes & {\n ghost?: boolean\n};\n\ntype BaseInputOwnProps = {\n htmlSize?: number,\n addonStart?: ReactNode,\n addonEnd?: ReactNode,\n as?: 'input' | 'dropdown',\n expand?: boolean,\n useDefaultStyleInReadOnly?: boolean\n}\n\nexport type BaseInputProps = BaseInputOwnProps & CommonInputProps;\n\nexport type BaseInputAddonProps = Partial<FormControlContextType> & {\n icon?: Icon,\n text?: string,\n direction?: BaseInputAddonDirection\n variant?: BaseInputAddonVariant,\n useInputColor?: boolean\n}\n\nexport type BaseInputAddonComponentType = ForwardedComponentType<BaseInputAddonProps, 'span'>\n\nexport type AppendixType = {\n as?: ElementType\n icon?: Icon,\n text?: string,\n variant?: BaseInputAddonVariant,\n useInputColor?: boolean\n [otherProps: string]: unknown\n}\n\n// InputText\nexport type InputTextProps = CommonInputProps & {\n showLockIconInReadOnly?: boolean\n useDefaultStyleInReadOnly?: boolean\n prefix?: AppendixType\n suffix?: AppendixType\n}\n\n// InputNumber\nexport type InputNumberProps = Omit<CommonInputProps, 'step'> & {\n step?: number\n}\n\n// InputColor\nexport type InputColorProps = CommonInputProps & {\n pickerOptions?: Pick<ColorPickerProps, 'disableAlpha' | 'offset' | 'onSwatchHover' | 'placement' | 'presetColors' | 'buttonAttrs' | 'pickerAttrs'>\n}\n\n// Defaults\nexport const baseInputDefaultProps:Partial<BaseInputProps> = { ...commonInputDefaults, as: 'input' };\n\nconst appendixDefaults:AppendixType = {\n as: 'span',\n icon: undefined,\n text: undefined,\n variant: 'ghost'\n};\n\nexport const inputAddonDefaultProps:Partial<BaseInputAddonProps> = {\n ...commonInputDefaults,\n direction: 'start',\n variant: 'ghost'\n};\n\nexport const inputTextDefaultProps:Partial<InputTextProps> = {\n ...commonInputDefaults,\n showLockIconInReadOnly: true,\n prefix: appendixDefaults,\n suffix: appendixDefaults\n};\n\nexport const inputNumberDefaultProps:InputNumberProps = {\n ...commonInputDefaults,\n step: 1\n};\n\nconst {\n disableAlpha, presetColors, offset, placement, onSwatchHover\n}:InputColorProps['pickerOptions'] = colorPickerDefaultProps;\n\nexport const inputColorDefaultProps:InputColorProps = {\n ...commonInputDefaults,\n pickerOptions: {\n disableAlpha,\n presetColors,\n offset,\n placement,\n onSwatchHover\n }\n};\n","import { AriaAttributes, MouseEvent } from 'react';\nimport { OffsetOptions, Placement } from '@floating-ui/react';\nimport { SketchPickerProps } from 'react-color';\nimport { Size, Theme } from '../../constants/common.types';\nimport { DataAttrs } from '../../types/system.types';\n\nexport type ColorPickerProps = {\n disabled?: boolean,\n size?: Size,\n rounded?: boolean,\n placement?: Placement,\n offset?: OffsetOptions,\n theme?: Theme,\n onChange?: (color: string) => void,\n color?: string,\n custom?: boolean,\n className?: string\n zIndex?: number,\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void,\n buttonAttrs?: DataAttrs & AriaAttributes & {\n id: string\n },\n pickerAttrs?: DataAttrs & AriaAttributes & {\n id?: string\n }\n} & Pick<SketchPickerProps, 'presetColors' | 'onSwatchHover' | 'disableAlpha'>\n\nexport const colorPickerDefaultProps:Partial<ColorPickerProps> = {\n size: 'medium',\n placement: 'bottom-end',\n offset: 6,\n rounded: false,\n disableAlpha: false,\n theme: 'light',\n custom: false,\n zIndex: 1005\n};\n","import React, { forwardRef } from 'react';\nimport type { ComponentPropsWithRef, ElementType, PropsWithChildren } from 'react';\nimport { Dialog as HeadlessModal } from '@headlessui/react';\n\nimport '@jotforminc/jotform.css';\n// eslint-disable-next-line no-restricted-imports\nimport '@jotforminc/jotform.css/animation.css';\n\nimport { ModalProps, modalDefaultProps } from './modal.types';\nimport { PolymorphicProps } from '../../types';\nimport { modalCVA, modalContainerCVA } from './modal.cva';\n\nexport { Portal } from '@headlessui/react';\n\nexport const Modal = forwardRef(\n <Element extends ElementType>(\n props: PropsWithChildren<PolymorphicProps<Element, ModalProps>>,\n ref: ComponentPropsWithRef<'div'>['ref']\n ): JSX.Element => {\n const {\n open,\n onClose,\n initialFocus,\n zIndex,\n children,\n ariaLabel,\n size,\n noFade,\n as: _as = 'div',\n fitOnMobile,\n ...rest\n } = props;\n\n const InnerComponent = _as as ElementType;\n\n return (\n <HeadlessModal\n onClose={onClose}\n open={open}\n initialFocus={initialFocus}\n style={{ zIndex }}\n className={modalContainerCVA({ fitOnMobile: !!fitOnMobile, noFade })}\n aria-modal={true}\n ref={ref}\n data-magnet-modal\n >\n <InnerComponent\n aria-label={ariaLabel}\n className={modalCVA({ size })}\n {...rest}\n tabIndex={0}\n >\n {children}\n </InnerComponent>\n </HeadlessModal>\n );\n });\n\nModal.defaultProps = modalDefaultProps;\n","import React from 'react';\nimport type { PropsWithChildren } from 'react';\nimport { cx } from 'class-variance-authority';\n\nimport { modalBodyDefaultProps, ModalBodyProps } from './modal.types';\nimport { modalBodyCVA } from './modal.cva';\n\nexport const ModalBody = (props: PropsWithChildren<ModalBodyProps>): JSX.Element => {\n const {\n children, className, noPadding, ...rest\n } = props;\n return (\n <div {...rest} className={cx(className, modalBodyCVA({ noPadding }))}>{children}</div>\n );\n};\n\nModalBody.defaultProps = modalBodyDefaultProps;\n","import { cva } from 'class-variance-authority';\nimport { CVAType } from '../../types/system.types';\nimport { ModalProps, ModalHeaderProps, ModalBodyProps } from './modal.types';\nimport { primary } from '../../tokens/colors';\n\ntype ModalIconWrapperCVAType = CVAType<Pick<ModalHeaderProps, 'iconColorStyle' | 'logoIcon'>>;\ntype ModalIconCVAType = CVAType<Pick<ModalHeaderProps, 'logoIcon'>>;\ntype ModalCVAType = CVAType<Pick<ModalProps, 'size'>>;\ntype ModalBodyCVAType = CVAType<Pick<ModalBodyProps, 'noPadding'>>;\ntype ModalContainerCVAType = CVAType<Pick<ModalProps, 'fitOnMobile' | 'noFade'>>;\n\nexport const modalContainerCVA = cva<ModalContainerCVAType>('bg-gray-900 bg-opacity-60 fixed inset-0 flex xs:items-center justify-center pt-12 xs:pt-10 pb-0 xs:pb-10', {\n variants: {\n fitOnMobile: {\n true: 'items-stretch',\n false: 'items-end'\n },\n noFade: {\n false: 'anim-150 fade-in'\n }\n }\n});\n\nexport const modalCVA = cva<ModalCVAType>('color-navy-300 bg-white w-full radius-t-lg xs:radius-b-lg max-h-full flex flex-col relative m-0', {\n variants: {\n size: {\n small: 'max-w-120',\n medium: 'max-w-sm',\n large: 'max-w-md',\n xlarge: 'max-w-lg',\n xxlarge: 'max-w-xl'\n }\n }\n});\n\nexport const modalBodyCVA = cva<ModalBodyCVAType>('overflow-auto mb-0 text-md grow-1 xs:grow-0', {\n variants: {\n noPadding: {\n true: 'p-0',\n false: 'p-8'\n }\n }\n});\n\nexport const modalIconWrapperCVA = cva<ModalIconWrapperCVAType>('flex items-center justify-center w-10 h-10 radius shrink-0 mr-4', {\n variants: {\n iconColorStyle: {\n primary: primary.accent.default.bg.base,\n success: primary.success.default.bg.base,\n error: primary.error.default.bg.base,\n secondary: primary.background.light.base,\n analytics: 'bg-analytics-default',\n pages: 'bg-pages-default',\n teams: 'bg-teams-default',\n sign: 'bg-sign-default',\n pdf: 'bg-pdf-default',\n apps: 'bg-apps-default',\n reports: 'bg-reports-default',\n forms: 'bg-forms-default',\n tables: 'bg-tables-default',\n inbox: 'bg-inbox-default',\n approvals: 'bg-approvals-default'\n },\n logoIcon: {\n false: 'color-white'\n }\n }\n});\n\nexport const modalIconCVA = cva<ModalIconCVAType>('', {\n variants: {\n logoIcon: {\n true: 'w-full',\n false: 'w-6'\n }\n }\n});\n","import {\n ComponentPropsWithoutRef, MutableRefObject, ReactNode\n} from 'react';\nimport {\n Icon,\n Size,\n ColorStyle,\n ProductName\n} from '../../constants/common.types';\n\nexport type ModalProps = {\n open: boolean,\n onClose: () => void,\n initialFocus?: MutableRefObject<HTMLElement>,\n zIndex?: number,\n ariaLabel: string,\n size?: Size | 'xlarge' | 'xxlarge',\n fitOnMobile?: boolean,\n noFade?: boolean,\n};\n\nexport type ModalHeaderProps = {\n title: ReactNode,\n description?: ReactNode,\n closeButtonRef?: MutableRefObject<HTMLElement>,\n onClose: () => void,\n icon?: Icon,\n logoIcon?: boolean,\n iconColorStyle?: ColorStyle | ProductName | 'secondary',\n customIconColorStyle?: string\n};\n\nexport type ModalBodyProps = ComponentPropsWithoutRef<'div'> & {\n noPadding?: boolean\n}\n\nexport type ModalActionsProps = ComponentPropsWithoutRef<'div'>;\n\nexport const modalBodyDefaultProps:Partial<ModalBodyProps> = {\n noPadding: false\n} as const;\n\nexport const modalDefaultProps:Partial<ModalProps> = {\n open: false,\n zIndex: 1004,\n size: 'medium',\n noFade: false\n} as const;\n\nexport const modalHeaderDefaultProps:Partial<ModalHeaderProps> = {\n logoIcon: false\n} as const;\n","import { cva } from 'class-variance-authority';\nimport { FormControlContextType } from '../contexts';\nimport { BaseInputProps, CVAType } from '../types';\nimport { primary } from '../tokens/colors';\nimport { ResponsiveClasses } from '../utils';\nimport { JUSTIFY_CONTENT_VALUES } from './common.values';\n\ntype FormControlInputCVAType = CVAType<Pick<FormControlContextType, 'theme' | 'disabled' | 'size'> & Pick<BaseInputProps, 'ghost'>>;\ntype FormControlContainerCVAType = CVAType<Omit<FormControlContextType, 'id' | 'size'> & Pick<BaseInputProps, 'ghost'>>;\n\nexport const commonFormControlCVA = {\n container: cva<FormControlContainerCVAType>('flex', {\n variants: {\n colorStyle: {},\n disabled: {\n true: 'opacity-40'\n },\n readOnly: {},\n theme: {},\n required: {},\n ghost: {\n true: 'border-0 bg-transparent',\n false: 'border radius outline-2 outline-offset-0 hover:duration-300 focus:duration-300 duration-all-colors'\n }\n },\n compoundVariants: [\n {\n theme: 'light',\n className: primary.text.darkest.base\n },\n {\n theme: 'light',\n disabled: false,\n readOnly: false,\n ghost: false,\n className: 'bg-white'\n },\n {\n theme: 'light',\n disabled: true,\n readOnly: false,\n ghost: false,\n className: 'border-navy-50 bg-navy-50 outline-transparent'\n },\n // shadow\n {\n colorStyle: ['error', 'success', 'warning'],\n readOnly: false,\n ghost: false,\n className: 'shadow-xs'\n },\n {\n disabled: false,\n ghost: false,\n className: 'hover:shadow-xs'\n },\n // readonly - light\n {\n theme: 'light',\n disabled: false,\n readOnly: true,\n ghost: false,\n className: [\n primary.border.medium.base,\n primary.accent.default.border.focusWithin,\n 'bg-navy-25 outline-transparent hover:border-navy-300 focus-within:outline-blue-200 focus-within:outline-opacity-50'\n ]\n },\n // default - light\n {\n theme: 'light',\n disabled: false,\n readOnly: false,\n colorStyle: 'default',\n ghost: false,\n className: [\n primary.border.medium.base,\n primary.accent.default.border.focusWithin,\n 'outline-transparent hover:border-navy-300 focus-within:outline-blue-200 focus-within:outline-opacity-50'\n ]\n },\n // primary - light\n {\n theme: 'light',\n disabled: false,\n readOnly: false,\n colorStyle: 'primary',\n ghost: false,\n className: [\n primary.accent.default.border.base,\n 'outline-blue-200 outline-opacity-0 hover:outline-opacity-30 focus-within:outline-opacity-50'\n ]\n },\n // success - light\n {\n theme: 'light',\n disabled: false,\n readOnly: false,\n colorStyle: 'success',\n ghost: false,\n className: [\n primary.success.default.border.base,\n 'outline-green-200 outline-opacity-0 hover:outline-opacity-50 focus-within:outline-opacity-100'\n ]\n },\n // error - light\n {\n theme: 'light',\n disabled: false,\n readOnly: false,\n colorStyle: 'error',\n ghost: false,\n className: [\n primary.error.default.border.base,\n 'outline-red-200 outline-opacity-0 hover:outline-opacity-50 focus-within:outline-opacity-100'\n ]\n },\n // warning - light\n {\n theme: 'light',\n disabled: false,\n readOnly: false,\n ghost: false,\n colorStyle: 'warning',\n className: 'border-yellow-500 outline-yellow-200 outline-opacity-0 hover:outline-opacity-50 focus-within:outline-opacity-100'\n },\n {\n theme: 'dark',\n className: 'color-white'\n },\n {\n theme: 'dark',\n ghost: false,\n className: 'bg-gray-500'\n },\n // default - dark\n {\n theme: 'dark',\n disabled: false,\n readOnly: false,\n ghost: false,\n colorStyle: 'default',\n className: [\n primary.accent.default.border.focusWithin,\n 'border-gray-500 outline-transparent hover:border-gray-300 focus-within:outline-blue-500 focus-within:outline-opacity-30'\n ]\n },\n // primary - dark\n {\n theme: 'dark',\n disabled: false,\n readOnly: false,\n ghost: false,\n colorStyle: 'primary',\n className: [\n primary.accent.default.border.base,\n 'outline-blue-500 outline-opacity-0 hover:outline-opacity-20 focus-within:outline-opacity-30'\n ]\n },\n // success - dark\n {\n theme: 'dark',\n disabled: false,\n readOnly: false,\n ghost: false,\n colorStyle: 'success',\n className: [\n primary.success.default.border.base,\n 'outline-green-600 outline-opacity-0 hover:outline-opacity-30 focus-within:outline-opacity-50'\n ]\n },\n // error - dark\n {\n theme: 'dark',\n disabled: false,\n readOnly: false,\n ghost: false,\n colorStyle: 'error',\n className: 'border-red-400 outline-red-400 outline-opacity-0 hover:outline-opacity-30 focus-within:outline-opacity-50'\n },\n // warning - dark\n {\n theme: 'dark',\n disabled: false,\n readOnly: false,\n ghost: false,\n colorStyle: 'warning',\n className: 'border-yellow-500 outline-yellow-500 outline-opacity-0 hover:outline-opacity-30 focus-within:outline-opacity-50'\n },\n // readonly - dark\n {\n theme: 'dark',\n disabled: false,\n readOnly: true,\n ghost: false,\n className: [\n primary.accent.default.border.focusWithin,\n 'border-gray-500 outline-transparent hover:border-gray-300 focus-within:outline-blue-500 focus-within:outline-opacity-30'\n ]\n },\n {\n theme: 'dark',\n disabled: true,\n readOnly: false,\n ghost: false,\n className: 'outline-transparent border-gray-500'\n }\n ]\n }),\n input: cva<FormControlInputCVAType>('appearance-none bg-transparent grow-1 outline-0 w-full focus-visible-none border-0', {\n variants: {\n size: {\n small: 'text-sm',\n medium: 'text-sm',\n large: 'text-md'\n },\n theme: {},\n disabled: {},\n ghost: {\n true: '',\n false: 'radius'\n }\n },\n compoundVariants: [\n {\n theme: 'light',\n disabled: false,\n className: 'placeholder-navy-200'\n },\n {\n theme: 'light',\n disabled: true,\n className: 'placeholder-navy-300'\n }\n ]\n })\n};\n\nexport const justifyContentClasses:ResponsiveClasses<typeof JUSTIFY_CONTENT_VALUES> = {\n around: {\n base: 'justify-around',\n xs: 'xs:justify-around',\n sm: 'sm:justify-around',\n md: 'md:justify-around',\n lg: 'lg:justify-around',\n xl: 'xl:justify-around',\n xxl: 'xxl:justify-around'\n },\n between: {\n base: 'justify-between',\n xs: 'xs:justify-between',\n sm: 'sm:justify-between',\n md: 'md:justify-between',\n lg: 'lg:justify-between',\n xl: 'xl:justify-between',\n xxl: 'xxl:justify-between'\n },\n center: {\n base: 'justify-center',\n xs: 'xs:justify-center',\n sm: 'sm:justify-center',\n md: 'md:justify-center',\n lg: 'lg:justify-center',\n xl: 'xl:justify-center',\n xxl: 'xxl:justify-center'\n },\n end: {\n base: 'justify-end',\n xs: 'xs:justify-end',\n sm: 'sm:justify-end',\n md: 'md:justify-end',\n lg: 'lg:justify-end',\n xl: 'xl:justify-end',\n xxl: 'xxl:justify-end'\n },\n evenly: {\n base: 'justify-evenly',\n xs: 'xs:justify-evenly',\n sm: 'sm:justify-evenly',\n md: 'md:justify-evenly',\n lg: 'lg:justify-evenly',\n xl: 'xl:justify-evenly',\n xxl: 'xxl:justify-evenly'\n },\n start: {\n base: 'justify-start',\n xs: 'xs:justify-start',\n sm: 'sm:justify-start',\n md: 'md:justify-start',\n lg: 'lg:justify-start',\n xl: 'xl:justify-start',\n xxl: 'xxl:justify-start'\n }\n};\n","// Radio & Checkbox & ChoiceLabel\nexport const CHOICE_TRUNCATE_VALUES = ['both', 'description', 'label'] as const;\n\nexport const THEME_VALUES = ['dark', 'light'] as const;\nexport const SIZE_VALUES = ['small', 'medium', 'large'] as const;\nexport const BREAKPOINT_VALUES = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'] as const;\nexport const PRODUCT_NAME_VALUES = ['teams', 'pdf', 'apps', 'reports', 'forms', 'sign', 'tables', 'inbox', 'approvals', 'analytics', 'pages'] as const;\nexport const RESPONSIVE_BREAKPOINT_VALUES = ['base', ...BREAKPOINT_VALUES] as const;\nexport const COLOR_STYLE_VALUES = ['primary', 'success', 'error'] as const;\n\n// Form Controls\nexport const FORM_CONTROL_COLOR_STYLE_VALUES = ['default', 'primary', 'success', 'warning', 'error'] as const;\nexport const BASE_INPUT_ADDON_DIRECTION_VALUES = ['start', 'end'] as const;\nexport const BASE_INPUT_ADDON_VARIANT_VALUES = ['filled', 'ghost'] as const;\n\n// Flex & Grid\nexport const JUSTIFY_CONTENT_VALUES = ['start', 'end', 'center', 'between', 'around', 'evenly'] as const;\nexport const ALIGN_ITEMS_VALUES = ['start', 'end', 'center', 'stretch', 'baseline'] as const;\nexport const FLEX_DIRECTION_VALUES = ['row', 'column', 'row-reverse', 'column-reverse'] as const;\nexport const FLEX_WRAP_VALUES = ['wrap', 'nowrap'] as const;\nexport const FLEX_GROW_VALUES = ['0', '1'] as const;\nexport const FLEX_SHRINK_VALUES = ['0', '1'] as const;\nexport const ORDER_VALUES = ['none', 'first', 'last'] as const;\nexport const ALIGN_SELF_VALUES = ['auto', 'center', 'start', 'end', 'stretch', 'baseline'] as const;\nexport const JUSTIFY_SELF_VALUES = ['auto', 'center', 'start', 'end', 'stretch'] as const;\n\nexport const GRID_TRACK_VALUES = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] as const;\nexport const GRID_TEMPLATE_COLUMNS_VALUES = ['none', ...GRID_TRACK_VALUES] as const;\nexport const GRID_ITEM_START_END_VALUES = ['auto', ...GRID_TRACK_VALUES] as const;\n","import {\n createContext, CSSProperties, ReactNode, useContext\n} from 'react';\nimport { useInteractions } from '@floating-ui/react';\nimport {\n FormControlColorStyle, Icon, Size, Theme\n} from '../constants/common.types';\nimport { pick } from '../utils';\nimport { TagProps } from '../components/Tag/tag.types';\n\nconst useSelectValue = <ContextTypes extends object | null, PropTypes extends object>(\n ownContext: ContextTypes,\n props: PropTypes,\n pickedContextValues: string[]\n): PropTypes => {\n if (!ownContext) {\n return props;\n }\n\n const pickedContext = pick<any, any>(ownContext, pickedContextValues);\n return { ...props, ...pickedContext };\n};\n\nexport type FormControlContextType = {\n id?: string\n colorStyle?: FormControlColorStyle,\n size?: Size,\n disabled?: boolean,\n required?: boolean,\n readOnly?: boolean,\n theme?: Theme\n}\n\nexport const commonInputDefaults:Partial<FormControlContextType> = {\n size: 'medium',\n theme: 'light',\n colorStyle: 'default'\n} as const;\n\nexport const FormControlContext = createContext<FormControlContextType | null>(null);\n\ntype FormControlContextArrayKeys = (keyof FormControlContextType)[];\nconst contextValuesArray:FormControlContextArrayKeys = ['colorStyle', 'disabled', 'readOnly', 'required', 'size', 'theme', 'id'];\n\nexport const useFormControl = <T extends object>(\n props:T,\n pickContextValues:FormControlContextArrayKeys = contextValuesArray\n):T & FormControlContextType => {\n const formContext = useContext(FormControlContext);\n return useSelectValue(formContext, props, pickContextValues);\n};\n\nexport type HandleSelectParams = {\n index: number,\n} & DropdownOptionType\n\nexport type HandleGroupSelectParams = {\n checked: boolean,\n allOptions: DropdownOptionType[],\n childrenArray: DropdownOptionType[]\n}\n\nexport type HandleMultiSelect = {\n checked: boolean\n} & DropdownOptionType;\n\nexport type DropdownOptionType = {\n index?: number,\n icon?: Icon\n value: string | number,\n disabled?: boolean,\n tagStyles?: CSSProperties,\n tagColorStyle?: TagProps['colorStyle'],\n children?: string | ReactNode\n}\n\nexport type DropdownContextType = {\n activeIndex: number | null,\n selectedIndex: number | null,\n getItemProps: ReturnType<typeof useInteractions>['getItemProps'],\n handleSelect: (args: HandleSelectParams) => void,\n handleGroupSelect: (args: HandleGroupSelectParams) => void,\n handleMultiSelect: (args: HandleMultiSelect) => void,\n multiple?: boolean,\n selectedOptionArray: DropdownOptionType[] | null,\n setSelectedOptionArray: (array: DropdownOptionType[]) => void\n} & FormControlContextType;\n\nexport type DropdownGroupContextType = {\n indent?: boolean,\n}\n\nexport const DropdownContext = createContext<DropdownContextType | null>(null);\n\nexport const DropdownGroupContext = createContext<DropdownGroupContextType | null>(null);\n\nexport const useDropdownContext = ():DropdownContextType => {\n const context = useContext(DropdownContext);\n if (!context) {\n throw new Error('DropdownOption/DropdownGroup should wrap within a Dropdown');\n }\n return context;\n};\n\nexport const useDropdownGroupContext = ():DropdownGroupContextType => {\n const context = useContext(DropdownGroupContext);\n if (!context) {\n return {};\n }\n return context;\n};\n","import { VariantProps, cva } from 'class-variance-authority';\nimport { primary, secondary } from '../../tokens/colors';\nimport { CVAType } from '../../types';\nimport { ChoiceLabelProps } from './choice-label.types';\n\nexport type ChoiceLabelVariantProps = VariantProps<typeof choiceLabelCVA>\n\ntype ChoiceLabelCVAType = CVAType<Pick<ChoiceLabelProps, 'size' | 'disabled' | 'theme' | 'truncate'>>\ntype ChoiceLabelContainerCVAType = CVAType<Pick<ChoiceLabelProps, 'size' | 'truncate'>>\ntype ChoiceLabelTextCVAType = CVAType<Pick<ChoiceLabelProps, 'size' | 'disabled' | 'theme' | 'truncate'> & { hasDescription?: boolean }>\ntype ChoiceLabelDescCVAType = CVAType<Pick<ChoiceLabelProps, 'size' | 'disabled' | 'theme' | 'truncate'>>\n\n// Variance values\nexport const choiceLabelCVA = cva<ChoiceLabelCVAType>('flex', {\n variants: {\n size: {\n small: 'gap-2',\n medium: 'gap-3',\n large: 'gap-3'\n },\n disabled: {},\n theme: {},\n truncate: {}\n },\n compoundVariants: [\n {\n truncate: ['both', 'description', 'label'],\n className: 'max-w-full'\n }\n ]\n});\n\nexport const choiceLabelContainerCVA = cva<ChoiceLabelContainerCVAType>('', {\n variants: {\n size: {\n small: '-mt-px',\n large: 'mt-0.5'\n },\n truncate: {}\n },\n compoundVariants: [\n {\n truncate: ['both', 'description', 'label'],\n className: 'overflow-hidden'\n }\n ]\n});\n\nexport const choiceLabelTextCVA = cva<ChoiceLabelTextCVAType>('', {\n variants: {\n size: {\n small: 'text-sm',\n medium: 'text-md',\n large: 'text-md'\n },\n hasDescription: {\n true: 'font-bold'\n },\n theme: {},\n disabled: {},\n truncate: {}\n },\n compoundVariants: [\n {\n size: ['small', 'medium', 'large'],\n className: 'block'\n },\n {\n theme: 'light',\n disabled: false,\n className: primary.text.darkest.base\n },\n {\n theme: 'light',\n disabled: true,\n className: 'color-navy-100'\n },\n {\n theme: 'dark',\n disabled: false,\n className: 'color-white'\n },\n {\n theme: 'dark',\n disabled: true,\n className: 'color-gray-400'\n },\n {\n truncate: ['both', 'label'],\n className: 'truncate'\n }\n ]\n});\n\nexport const choiceLabelDescriptionCVA = cva<ChoiceLabelDescCVAType>('block', {\n variants: {\n size: {\n small: 'text-xs',\n medium: 'text-sm',\n large: 'text-sm'\n },\n theme: {},\n disabled: {},\n truncate: {}\n },\n compoundVariants: [\n {\n theme: 'light',\n disabled: false,\n className: primary.text.medium.base\n },\n {\n theme: 'light',\n disabled: true,\n className: 'color-navy-100'\n },\n {\n theme: 'dark',\n disabled: false,\n className: secondary.text.light.base\n },\n {\n theme: 'dark',\n disabled: true,\n className: 'color-gray-400'\n },\n {\n truncate: ['both', 'description'],\n className: 'truncate'\n }\n ]\n});\n","import React from 'react';\n\nimport { cx } from 'class-variance-authority';\n\nimport { ChoiceLabelProps, choiceLabelDefaultProps } from './choice-label.types';\nimport {\n choiceLabelCVA, choiceLabelContainerCVA, choiceLabelDescriptionCVA, choiceLabelTextCVA\n} from './choice-label.cva';\n\nexport const ChoiceLabel = (props: ChoiceLabelProps):JSX.Element => {\n const {\n className, description, disabled, id, input, label, size, theme, truncate\n } = props;\n const hasDescription = description.length > 0;\n const hasLabel = label.length > 0;\n\n return (\n <label className={cx(className, choiceLabelCVA({ size, truncate }))} htmlFor={id}>\n {input}\n <span className={choiceLabelContainerCVA({ size, truncate })}>\n {hasLabel && (\n <span\n className={choiceLabelTextCVA({\n size, theme, disabled, hasDescription, truncate\n })}\n >\n {label}\n </span>\n )}\n {hasDescription && (\n <span className={choiceLabelDescriptionCVA({\n size, theme, disabled, truncate\n })}\n >\n {description}\n </span>\n )}\n </span>\n </label>\n );\n};\n\nChoiceLabel.defaultProps = choiceLabelDefaultProps;\n","import { ComponentPropsWithoutRef } from 'react';\nimport { ChoiceTruncate, Size, Theme } from '../../constants/common.types';\n\nexport type ChoiceLabelBaseProps = {\n className?: string,\n description: string,\n id: string,\n input: ComponentPropsWithoutRef<'input'>,\n label: string,\n truncate?: ChoiceTruncate,\n disabled?: boolean,\n theme?: Theme,\n size?: Size\n}\n\nexport type ChoiceLabelProps = ChoiceLabelBaseProps;\n\nexport const choiceLabelDefaultProps:Partial<ChoiceLabelProps> = {\n description: '',\n label: '',\n disabled: false,\n size: 'medium',\n theme: 'light'\n};\n","const brand = {\n yellow: {\n bg: {\n base: 'bg-yellow-400',\n hover: 'hover:bg-yellow-400'\n },\n border: {\n base: 'border-yellow-400',\n hover: 'hover:border-yellow-400'\n },\n color: {\n base: 'color-yellow-400',\n hover: 'hover:color-yellow-400'\n }\n },\n orange: {\n bg: {\n base: 'bg-orange-500',\n hover: 'hover:bg-orange-500'\n },\n border: {\n base: 'border-orange-500',\n hover: 'hover:border-orange-500'\n },\n color: {\n base: 'color-orange-500',\n hover: 'hover:color-orange-500'\n }\n },\n blue: {\n bg: {\n base: 'bg-blue-400',\n hover: 'hover:bg-blue-400'\n },\n border: {\n base: 'border-blue-400',\n hover: 'hover:border-blue-400'\n },\n color: {\n base: 'color-blue-400',\n hover: 'hover:color-blue-400'\n }\n },\n dark: {\n bg: {\n base: 'bg-navy-700',\n hover: 'hover:bg-navy-700'\n },\n border: {\n base: 'border-navy-700',\n hover: 'hover:border-navy-700'\n },\n color: {\n base: 'color-navy-700',\n hover: 'hover:color-navy-700'\n }\n }\n} as const;\n\nconst text = {\n lightest: {\n base: 'color-navy-50',\n hover: 'hover:color-navy-50'\n },\n light: {\n base: 'color-navy-100',\n hover: 'hover:color-navy-100'\n },\n medium: {\n base: 'color-navy-300',\n hover: 'hover:color-navy-300'\n },\n dark: {\n base: 'color-navy-500',\n hover: 'hover:color-navy-500'\n },\n darkest: {\n base: 'color-navy-700',\n hover: 'hover:color-navy-700'\n }\n} as const;\n\nconst background = {\n lightest: {\n base: 'bg-navy-25',\n focus: 'focus:bg-navy-25',\n focusWithin: 'focus-within:bg-navy-25',\n hover: 'hover:bg-navy-25'\n },\n light: {\n base: 'bg-navy-75',\n focus: 'focus:bg-navy-75',\n focusWithin: 'focus-within:bg-navy-75',\n hover: 'hover:bg-navy-75'\n },\n medium: {\n base: 'bg-navy-100',\n focus: 'focus:bg-navy-100',\n focusWithin: 'focus-within:bg-navy-100',\n hover: 'hover:bg-navy-100'\n },\n dark: {\n base: 'bg-navy-300',\n focus: 'focus:bg-navy-300',\n focusWithin: 'focus-within:bg-navy-300',\n hover: 'hover:bg-navy-300'\n },\n darkest: {\n base: 'bg-navy-700',\n focus: 'focus:bg-navy-700',\n focusWithin: 'focus-within:bg-navy-700',\n hover: 'hover:bg-navy-700'\n }\n} as const;\n\nconst border = {\n light: {\n base: 'border-navy-50',\n hover: 'hover:border-navy-50'\n },\n medium: {\n base: 'border-navy-100',\n hover: 'hover:border-navy-100'\n },\n dark: {\n base: 'border-navy-500',\n hover: 'hover:border-navy-500'\n },\n darkest: {\n base: 'border-navy-700',\n hover: 'hover:border-navy-700'\n }\n} as const;\n\nconst accent = {\n lightest: {\n bg: {\n base: 'bg-blue-100',\n focus: 'focus:bg-blue-100',\n focusWithin: 'focus-within:bg-blue-100',\n hover: 'hover:bg-blue-100'\n },\n border: {\n base: 'border-blue-100',\n focus: 'focus:border-blue-100',\n focusWithin: 'focus-within:border-blue-100',\n hover: 'hover:border-blue-100'\n },\n color: {\n base: 'color-blue-100',\n focus: 'focus:color-blue-100',\n focusWithin: 'focus-within:color-blue-100',\n hover: 'hover:color-blue-100'\n }\n },\n light: {\n bg: {\n base: 'bg-blue-300',\n focus: 'focus:bg-blue-300',\n focusWithin: 'focus-within:bg-blue-300',\n hover: 'hover:bg-blue-300'\n },\n border: {\n base: 'border-blue-300',\n focus: 'focus:border-blue-300',\n focusWithin: 'focus-within:border-blue-300',\n hover: 'hover:border-blue-300'\n },\n color: {\n base: 'color-blue-300',\n focus: 'focus:color-blue-300',\n focusWithin: 'focus-within:color-blue-300',\n hover: 'hover:color-blue-300'\n }\n },\n default: {\n bg: {\n base: 'bg-blue-500',\n focus: 'focus:bg-blue-500',\n focusWithin: 'focus-within:bg-blue-500',\n hover: 'hover:bg-blue-500'\n },\n border: {\n base: 'border-blue-500',\n focus: 'focus:border-blue-500',\n focusWithin: 'focus-within:border-blue-500',\n hover: 'hover:border-blue-500'\n },\n color: {\n base: 'color-blue-500',\n focus: 'focus:color-blue-500',\n focusWithin: 'focus-within:color-blue-500',\n hover: 'hover:color-blue-500'\n }\n },\n dark: {\n bg: {\n base: 'bg-blue-600',\n focus: 'focus:bg-blue-600',\n focusWithin: 'focus-within:bg-blue-600',\n hover: 'hover:bg-blue-600'\n },\n border: {\n base: 'border-blue-600',\n focus: 'focus:border-blue-600',\n focusWithin: 'focus-within:border-blue-600',\n hover: 'hover:border-blue-600'\n },\n color: {\n base: 'color-blue-600',\n focus: 'focus:color-blue-600',\n focusWithin: 'focus-within:color-blue-600',\n hover: 'hover:color-blue-600'\n }\n }\n} as const;\n\nconst success = {\n lightest: {\n bg: {\n base: 'bg-green-100',\n hover: 'hover:bg-green-100'\n },\n border: {\n base: 'border-green-100',\n hover: 'hover:border-green-100'\n },\n color: {\n base: 'color-green-100',\n hover: 'hover:color-green-100'\n }\n },\n light: {\n bg: {\n base: 'bg-green-200',\n hover: 'hover:bg-green-200'\n },\n border: {\n base: 'border-green-200',\n hover: 'hover:border-green-200'\n },\n color: {\n base: 'color-green-200',\n hover: 'hover:color-green-200'\n }\n },\n default: {\n bg: {\n base: 'bg-green-500',\n hover: 'hover:bg-green-500'\n },\n border: {\n base: 'border-green-500',\n hover: 'hover:border-green-500'\n },\n color: {\n base: 'color-green-500',\n hover: 'hover:color-green-500'\n }\n },\n dark: {\n bg: {\n base: 'bg-green-600',\n hover: 'hover:bg-green-600'\n },\n border: {\n base: 'border-green-600',\n hover: 'hover:border-green-600'\n },\n color: {\n base: 'color-green-600',\n hover: 'hover:color-green-600'\n }\n }\n} as const;\n\nconst error = {\n lightest: {\n bg: {\n base: 'bg-red-100',\n focus: 'focus:bg-red-100',\n focusWithin: 'focus-within:bg-red-100',\n hover: 'hover:bg-red-100'\n },\n border: {\n base: 'border-red-100',\n focus: 'focus:border-red-100',\n focusWithin: 'focus-within:border-red-100',\n hover: 'hover:border-red-100'\n },\n color: {\n base: 'color-red-100',\n focus: 'focus:color-red-100',\n focusWithin: 'focus-within:color-red-100',\n hover: 'hover:color-red-100'\n }\n },\n light: {\n bg: {\n base: 'bg-red-200',\n focus: 'focus:bg-red-200',\n focusWithin: 'focus-within:bg-red-200',\n hover: 'hover:bg-red-200'\n },\n border: {\n base: 'border-red-200',\n focus: 'focus:border-red-200',\n focusWithin: 'focus-within:border-red-200',\n hover: 'hover:border-red-200'\n },\n color: {\n base: 'color-red-200',\n focus: 'focus:color-red-200',\n focusWithin: 'focus-within:color-red-200',\n hover: 'hover:color-red-200'\n }\n },\n default: {\n bg: {\n base: 'bg-red-400',\n focus: 'focus:bg-red-400',\n focusWithin: 'focus-within:bg-red-400',\n hover: 'hover:bg-red-400'\n },\n border: {\n base: 'border-red-400',\n focus: 'focus:border-red-400',\n focusWithin: 'focus-within:border-red-400',\n hover: 'hover:border-red-400'\n },\n color: {\n base: 'color-red-400',\n focus: 'focus:color-red-400',\n focusWithin: 'focus-within:color-red-400',\n hover: 'hover:color-red-400'\n }\n },\n dark: {\n bg: {\n base: 'bg-red-600',\n focus: 'focus:bg-red-600',\n focusWithin: 'focus-within:bg-red-600',\n hover: 'hover:bg-red-600'\n },\n border: {\n base: 'border-red-600',\n focus: 'focus:border-red-600',\n focusWithin: 'focus-within:border-red-600',\n hover: 'hover:border-red-600'\n },\n color: {\n base: 'color-red-600',\n focus: 'focus:color-red-600',\n focusWithin: 'focus-within:color-red-600',\n hover: 'hover:color-red-600'\n }\n }\n} as const;\n\nexport default {\n brand,\n text,\n background,\n border,\n accent,\n success,\n error\n};\n","const text = {\n lightest: {\n base: 'color-gray-100',\n hover: 'hover:color-gray-100'\n },\n light: {\n base: 'color-gray-200',\n hover: 'hover:color-gray-200'\n },\n medium: {\n base: 'color-gray-300',\n hover: 'hover:color-gray-300'\n },\n dark: {\n base: 'color-gray-500',\n hover: 'hover:color-gray-500'\n },\n darkest: {\n base: 'color-gray-700',\n hover: 'hover:color-gray-700'\n }\n} as const;\n\nconst background = {\n lightest: {\n base: 'bg-gray-400',\n hover: 'hover:bg-gray-400'\n },\n light: {\n base: 'bg-gray-500',\n hover: 'hover:bg-gray-500'\n },\n medium: {\n base: 'bg-gray-600',\n hover: 'hover:bg-gray-600'\n },\n dark: {\n base: 'bg-gray-700',\n hover: 'hover:bg-gray-700'\n },\n darkest: {\n base: 'bg-gray-800',\n hover: 'hover:bg-gray-800'\n }\n} as const;\n\nconst border = {\n light: {\n base: 'border-gray-200',\n hover: 'hover:border-gray-200'\n },\n medium: {\n base: 'border-gray-500',\n hover: 'hover:border-gray-500'\n },\n dark: {\n base: 'border-gray-700',\n hover: 'hover:border-gray-700'\n }\n} as const;\n\nexport default {\n text,\n background,\n border\n};\n","import {\n Children, cloneElement, Fragment, isValidElement, ReactChild, ReactNode\n} from 'react';\nimport { Responsive } from '../constants/common.types';\n\nexport type ResponsiveClasses<T extends readonly string[]> = Record<T[number], Record<Responsive, string>>;\n\nexport const convertResponsiveClass = <T extends readonly string[]>(\n propValue: Partial<Record<Responsive, T[number]>> | string | undefined, classList: ResponsiveClasses<T>\n): string[] => {\n if (propValue === undefined) {\n return [];\n }\n\n const valueObject = typeof propValue === 'string' ? { base: propValue } : propValue;\n\n const classArr = Object.entries(valueObject).map(values => {\n const _key:T[number] = values[1];\n const _val = values[0] as Responsive;\n\n return classList[_key][_val];\n });\n\n return classArr;\n};\n\nexport function pick<T, K extends keyof T>(\n object: T,\n keys: K[]\n): Pick<T, K> {\n return Object.assign(\n {},\n ...keys.map((key: K) => {\n return { [key]: object[key] };\n })\n );\n}\n\ntype FlattenChildrenArgs = {\n children: ReactNode,\n depth: number,\n keys?: (string | number)[]\n filter: string,\n group:string\n}\n\nexport function flattenChildren({\n children, depth = 0, keys = [], filter, group\n}: FlattenChildrenArgs): ReactChild[] {\n return Children.toArray(children).reduce(\n (acc: ReactChild[] | any, node: any, nodeIndex) => {\n if (node?.type?.displayName === group || node?.type === Fragment) {\n acc.push(\n acc,\n ...flattenChildren({\n children: node.props.children,\n depth: depth + 1,\n keys: keys.concat(node.key || nodeIndex),\n group,\n filter\n })\n );\n } else if (isValidElement(node)) {\n acc.push(\n cloneElement(node, {\n key: keys.concat(String(node.key)).join('.')\n })\n );\n } else if (typeof node === 'string' || typeof node === 'number') {\n acc.push(node);\n }\n return acc;\n },\n []\n ).filter((child: any) => child?.type?.displayName === filter);\n}\n\nexport const arraysEqualsCheck = (a:any[] = [], b:any[] = []):boolean => a.length === b.length && a.every((v, i) => v === b[i]);\n","import { NormalizeMap } from './types';\n\n// normalizing request fields to prevent unnecessary hit misses\nexport const normalizedKeyMap: Record<string, NormalizeMap> = {\n teamID: { contains: [''], to: undefined }\n};\n","/* eslint-disable no-param-reassign */\nimport { normalizedKeyMap } from './constants';\nimport { CacheValue } from './types';\n\ntype RetryFunction = () => Promise<CacheValue<unknown> | undefined>;\nconst delay = (fn: RetryFunction, ms: number): ReturnType<RetryFunction> => new Promise(resolve => setTimeout(() => resolve(fn()), ms));\n\nexport const retry = async (fn: RetryFunction, maxAttempts = 3, delayMs = 10): ReturnType<RetryFunction> => {\n const execute = async (attempt: number): ReturnType<RetryFunction> => {\n try {\n return await fn();\n } catch {\n if (attempt <= maxAttempts) {\n const nextAttempt = attempt + 1;\n return delay(() => execute(nextAttempt), delayMs);\n }\n return undefined;\n }\n };\n return execute(1);\n};\n\nexport const mapRequest = (obj: Record<string, unknown>): void => {\n Object.keys(obj).forEach(key => {\n if (normalizedKeyMap[key]) {\n const shouldMap = normalizedKeyMap[key].contains.includes(obj[key]);\n if (shouldMap) obj[key] = normalizedKeyMap[key].to;\n }\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n mapRequest(obj[key] as Record<string, unknown>);\n }\n });\n};\n","import { RequestContext, ResponseResult } from '../layer/types';\nimport { CacheValue, LatestHitAttempt } from './types';\nimport { retry, mapRequest } from './utils';\n\nexport default class TTLCache {\n private cache: Map<string, CacheValue>;\n\n private readonly ttl: number;\n\n // it's used as a lookup table to check consecutive requests\n private readonly latestAttempts: LatestHitAttempt[];\n\n private readonly MAX_LATEST_ATTEMPTS = 5;\n\n private readonly attemptTTL: number;\n\n private readonly MAX_CACHE_SIZE = 25;\n\n constructor(ttl = 900) {\n this.cache = new Map();\n this.ttl = ttl;\n this.attemptTTL = ttl - 50;\n this.latestAttempts = [];\n }\n\n private pushLatestHitAttemps(key: string): void {\n if (this.latestAttempts.length === this.MAX_LATEST_ATTEMPTS) {\n this.latestAttempts.pop();\n }\n this.latestAttempts.unshift({ key: key, ttl: Date.now() + this.attemptTTL });\n }\n\n private shouldAttempt(key: string): boolean {\n return !!this.latestAttempts.find(attempt => attempt.key === key && Date.now() < attempt.ttl);\n }\n\n private generateCacheKey(request: RequestContext): string {\n mapRequest(request as unknown as Record<string, unknown>);\n const { url, ...rest } = request;\n return `${url}-${JSON.stringify(rest)}`;\n }\n\n public add(request: RequestContext, response: ResponseResult<unknown>): void {\n if (this.size() >= this.MAX_CACHE_SIZE) {\n this.clear();\n }\n\n this.cache.set(\n this.generateCacheKey(request),\n {\n response,\n expirationTime: Date.now() + this.ttl\n }\n );\n }\n\n public async get(request: RequestContext): Promise<ResponseResult<unknown> | null> {\n const key = this.generateCacheKey(request);\n\n const shouldAttempt = this.shouldAttempt(key);\n this.pushLatestHitAttemps(key);\n\n let cacheItem: CacheValue<unknown> | undefined = this.cache.get(key);\n\n // it's a retry mechanism to handle consecutive hit attempts\n // to decrase the posiblity of worst case scenarios, a lookup table is used\n // and early exists are implemented\n if (!cacheItem && shouldAttempt) {\n cacheItem = await retry(() => new Promise((resolve, reject) => {\n const item = this.cache.get(key);\n\n if (item) {\n if (this.isValueValid(item)) resolve(item);\n else {\n this.cache.delete(key);\n resolve(undefined);\n }\n }\n\n reject();\n }), 40, 50);\n }\n\n if (cacheItem && this.isValueValid(cacheItem)) {\n return cacheItem.response;\n }\n\n this.cache.delete(key);\n return null;\n }\n\n public remove(request: RequestContext): void {\n this.cache.delete(this.generateCacheKey(request));\n }\n\n public clear(): void {\n this.cache.clear();\n }\n\n public size(): number {\n return this.cache.size;\n }\n\n private isValueValid(cacheItem: CacheValue<unknown> | undefined): boolean {\n if (!cacheItem) return false;\n return Date.now() < cacheItem.expirationTime;\n }\n}\n","import {\n Config, Methods, RequestArgs, RequestParameters\n} from '../layer/types';\n\nexport const argumentParser = (method: Methods, args: RequestArgs): RequestParameters => {\n switch (true) {\n case args.length === 1: {\n const [url] = args;\n return { url, config: {} };\n }\n case args.length === 2 && ['get', 'delete'].includes(method): {\n const [url, config] = args;\n return { url, config: config as Config };\n }\n\n case args.length === 2 && ['put', 'post'].includes(method): {\n const [url, data] = args;\n return { url, data, config: {} };\n }\n\n case args.length === 3: {\n const [url, data, config] = args;\n if (config) return { url, data, config };\n return { url, data, config: {} };\n }\n\n default:\n return { url: '' };\n }\n};\n","// type InterceptorKeys = keyof DefaultInterceptorsConfig;\n// type InterceptorValues = DefaultInterceptorsConfig[InterceptorKeys];\n\nimport { CustomConfig, DefaultInterceptorsConfig } from '../layer/types';\n\nexport const constructInterceptorConfig = (\n config: CustomConfig,\n interceptorConfig: DefaultInterceptorsConfig | undefined\n): DefaultInterceptorsConfig => {\n return { ...interceptorConfig, ...config };\n\n // later if we want to strict the usage of configs\n // we can only override the settings which are defined on request-layer\n // it can be used instead\n\n // return (Object.entries(interceptorConfig) as [InterceptorKeys, InterceptorValues][])\n // .reduce((newConfig, props) => {\n // const [key, value] = props;\n // return { ...newConfig, [key]: config[key] ?? value };\n // }, {} as DefaultInterceptorsConfig);\n};\n","import { Interceptor } from '../types';\n\nexport class InterceptorHandler<T> {\n interceptors: Interceptor<T>[];\n\n constructor(interceptors: InterceptorHandler<T>['interceptors']) {\n this.interceptors = interceptors;\n }\n\n run(ctx: T): void {\n this.interceptors.forEach(interceptor => {\n interceptor(ctx);\n });\n }\n}\n","import { InterceptorHandler } from '..';\nimport {\n RequestContext,\n RequestInterceptor, ResponseContext, ResponseInterceptor\n} from '../../types';\n\nconst createDefaultInterceptors = (\n reqInterceptors: RequestInterceptor[],\n resInterceptors: ResponseInterceptor[],\n resFailedInterceptors: ResponseInterceptor[]\n): {preRequest: InterceptorHandler<RequestContext>, postRequest: InterceptorHandler<ResponseContext>, postFailedRequest: InterceptorHandler<ResponseContext>} => ({\n preRequest: new InterceptorHandler(reqInterceptors),\n postRequest: new InterceptorHandler(resInterceptors),\n postFailedRequest: new InterceptorHandler(resFailedInterceptors)\n});\n\nexport { createDefaultInterceptors };\n","// If the value is not a string or a Blob, append() will convert it to a string automatically\n// Therefore using \"any\" as type, should be safe\n\nimport { BaseResponse, ResponseContext } from '../../types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function objToFormData(obj: Record<string, any>, prefix?: string, formData?: FormData): FormData {\n // eslint-disable-next-line no-param-reassign\n formData = formData ?? new FormData();\n\n if (obj) {\n Object.keys(obj).forEach(key => {\n const keyName = prefix ? `${prefix}[${key}]` : key;\n\n if (typeof obj[key] !== 'object') {\n formData?.append(keyName, obj[key]);\n } else {\n objToFormData(obj[key], keyName, formData);\n }\n });\n }\n\n return formData;\n}\n\nexport const isCrossOrigin = (url?: string): boolean => {\n const { location: { origin } } = window || {};\n if (url?.startsWith('http') && !url.includes(origin)) {\n return true;\n }\n return false;\n};\n\nexport const axiosNormalizer = (ctx: ResponseContext): void => {\n if (ctx.interceptorConfig?.disableResponseNormalizer) {\n return;\n }\n if ('data' in ctx.resp) {\n ctx.result = ctx.resp.data;\n }\n\n const resp = ctx.result as BaseResponse;\n\n if (resp && typeof resp.responseCode === 'number'\n && (resp.responseCode < 200 || resp.responseCode > 299)) {\n ctx.result = Promise.reject(resp);\n return;\n }\n\n if (resp && resp.content) {\n ctx.result = resp.content;\n }\n};\n\nexport const engineResponseNormalizer = (ctx: ResponseContext): void => {\n switch (ctx.engineName) {\n default:\n axiosNormalizer(ctx);\n }\n};\n","import { isSalesforceEnv, handleCustomNavigation } from '@jotforminc/utils';\nimport { RequestInterceptor, ResponseInterceptor } from '../../../types';\n\nexport const salesforceAuthFailed: ResponseInterceptor = ctx => {\n if (`${ctx?.resp?.config?.baseURL}/${ctx?.resp?.config?.url}`.startsWith('/API/salesforce/')) {\n if (ctx?.resp?.data?.responseCode === 400 && ctx?.resp?.data?.message === 'Please reauthenticate your account.') {\n handleCustomNavigation(`/platform/salesforce/platform-pages/reauth?rp=${window.location}`, '_self', true);\n }\n }\n};\n\nconst salesforceRequestInterceptors: RequestInterceptor[] = [];\nconst salesforceResponseSuccessInterceptors: ResponseInterceptor[] = [];\nconst salesforceResponseFailedInterceptors: ResponseInterceptor[] = [];\n\nlet isSalesforcePlatform = false;\ntry {\n isSalesforcePlatform = isSalesforceEnv();\n} catch (e) {\n console.log('Error :: salesforceInterceptors -> ', e);\n isSalesforcePlatform = false;\n}\nif (isSalesforcePlatform) {\n salesforceResponseFailedInterceptors.push(salesforceAuthFailed);\n}\n\nexport {\n salesforceRequestInterceptors,\n salesforceResponseSuccessInterceptors,\n salesforceResponseFailedInterceptors\n};\n","import {\n RequestInterceptor, ResponseInterceptor\n} from '../../types';\nimport { engineResponseNormalizer, isCrossOrigin, objToFormData } from './utils';\nimport { salesforceResponseFailedInterceptors } from './platform/salesforceInterceptors';\n\nexport const requestUrlInterceptor: RequestInterceptor = ctx => {\n const { url, config } = ctx;\n\n // ignore base url if req starts with different origin\n // or it starts with a protocol\n if (url.startsWith('/') || url.startsWith('https://') || url.startsWith('http://')) {\n config.baseURL = '';\n }\n // attach apiKey header if it exists\n const apiKey = ctx.interceptorConfig?.apiKey;\n if (apiKey) {\n ctx.config.headers = {\n apiKey,\n ...ctx.config.headers\n };\n }\n\n if (config.method === 'get' && ctx.data) {\n ctx.config.params = { ...(ctx.config.params as Record<string, unknown>), ...(ctx.data as Record<string, unknown>) };\n ctx.data = null;\n }\n};\n\n// xml requests are heavily used in form-builder\n// this interceptor does the job of reqwest library\nexport const requestXMLInterceptor: RequestInterceptor = ctx => {\n if (ctx.interceptorConfig?.isFormData) {\n ctx.config.headers = {\n Accept: '*/*',\n ...ctx.config.headers\n };\n\n if (ctx.data) {\n ctx.data = objToFormData(ctx.data as Record<string, Record<string, unknown>>);\n }\n }\n};\n\nexport const requestNormalizer: RequestInterceptor = ctx => {\n const { config } = ctx;\n if (ctx.interceptorConfig?.teamID) {\n if (isCrossOrigin(ctx.url) || config.disableTeamIDHeader) {\n return;\n }\n\n config.headers = { 'jf-team-id': ctx.interceptorConfig.teamID, ...config.headers };\n }\n};\n\nexport const responseNormalizer: ResponseInterceptor = ctx => {\n engineResponseNormalizer(ctx);\n};\n\nexport const requestInterceptors = [requestUrlInterceptor, requestXMLInterceptor, requestNormalizer];\nexport const responseInterceptors = [responseNormalizer];\n\nexport const defaultRequestInterceptors = [];\nexport const defaultResponseSuccessInterceptors = [];\nexport const defaultResponseFailedInterceptors = [...salesforceResponseFailedInterceptors];\n","import { createDefaultInterceptors } from '../layer/interceptors/defaultInterceptors';\nimport {\n requestInterceptors,\n responseInterceptors,\n defaultRequestInterceptors,\n defaultResponseSuccessInterceptors,\n defaultResponseFailedInterceptors\n} from '../layer/interceptors/defaultInterceptors/defaultInterceptors';\nimport { Interceptors } from '../layer/interceptors/types';\nimport {\n DefaultInterceptorsConfig\n} from '../layer/types';\n\nexport const setInterceptors = (config: DefaultInterceptorsConfig | undefined)\n: Interceptors | undefined => {\n if (config?.disableInterceptors) return undefined;\n\n let preRequestInterceptors = config?.customRequestInterceptors ?? requestInterceptors;\n let postRequestInterceptors = config?.customResponseInterceptors ?? responseInterceptors;\n const postRequestFailedInterceptors = [];\n\n if (config?.disableRequestInterceptors) {\n preRequestInterceptors = [];\n }\n\n if (config?.disableResponseInterceptors) {\n postRequestInterceptors = [];\n }\n\n if (!config?.disableDefaultInterceptors) {\n preRequestInterceptors.push(...defaultRequestInterceptors);\n postRequestInterceptors.push(...defaultResponseSuccessInterceptors);\n postRequestFailedInterceptors.push(...defaultResponseFailedInterceptors);\n }\n\n return createDefaultInterceptors(preRequestInterceptors, postRequestInterceptors, postRequestFailedInterceptors);\n};\n","export const defaultValidation = (status: number): boolean => {\n return status >= 200 && status < 300;\n};\n","import { AxiosEngine } from './AxiosEngine';\n\n// add ${newEngine} class\nexport const ENGINES = {\n AXIOS: AxiosEngine\n};\n\nexport type EngineNames = keyof typeof ENGINES\n","import axios, {\n AxiosInstance, AxiosRequestConfig, AxiosResponse, Method\n} from 'axios';\nimport { CustomConfig, Engine, RequestFunction } from '../types';\nimport { defaultValidation } from './utils';\n\nexport class AxiosEngine implements Engine {\n instance: AxiosInstance;\n\n public get: RequestFunction;\n\n public post: RequestFunction;\n\n public put: RequestFunction;\n\n public delete: RequestFunction;\n\n constructor(baseURL: string, config?: CustomConfig) {\n this.instance = axios.create({\n baseURL,\n validateStatus: config?.disableEngineThrowOnError ? () => true : defaultValidation,\n ...config\n });\n\n this.get = this.createRequestMethod('get');\n\n this.post = this.createRequestMethod('post');\n\n this.put = this.createRequestMethod('put');\n\n this.delete = this.createRequestMethod('delete');\n }\n\n public createRequestMethod(method: Method): RequestFunction {\n return <T, D = void>(url: string, config?: AxiosRequestConfig, data?: D) => {\n return this.instance.request<T, AxiosResponse<T>, D>({\n url,\n method,\n data,\n ...config\n });\n };\n }\n}\n","import { isAxiosError } from 'axios';\nimport { RequestFunction, Responses } from './types';\n\nexport type AwaitedEngineResponse = Awaited<ReturnType<RequestFunction>>\n\nexport const mapAxiosResponse = (awaitedEngineResp: AwaitedEngineResponse): Responses<unknown> => {\n if (isAxiosError(awaitedEngineResp) && awaitedEngineResp.response) {\n return awaitedEngineResp.response;\n }\n\n return awaitedEngineResp as Responses<unknown>;\n};\n","import TTLCache from '../request-cache';\nimport { argumentParser } from '../utils/argumentParser';\nimport { constructInterceptorConfig } from '../utils/constructInterceptorConfig';\nimport { setInterceptors } from '../utils/setInterceptors';\nimport { EngineNames, ENGINES } from './engines/constants';\nimport { Interceptors } from './interceptors/types';\nimport {\n CustomConfig,\n DefaultInterceptorsConfig,\n Engine,\n Methods,\n RequestArgs,\n RequestContext,\n RequestFunction,\n ResponseContext,\n ResponseResult,\n Responses\n} from './types';\nimport { mapAxiosResponse } from './utils';\n\nexport class RequestLayer {\n engineInstance: Engine;\n\n engineName: EngineNames;\n\n interceptors?: Interceptors;\n\n configs?: {engineConfig?: CustomConfig, interceptorConfig?: DefaultInterceptorsConfig};\n\n ttlCache?: TTLCache;\n\n baseURL?: string;\n\n get: <T>(...args: RequestArgs) => Promise<ResponseResult<T> | T>;\n\n post: <T>(...args: RequestArgs) => Promise<ResponseResult<T> | T>;\n\n delete: <T>(...args: RequestArgs) => Promise<ResponseResult<T> | T>;\n\n put: <T>(...args: RequestArgs) => Promise<ResponseResult<T> | T>;\n\n constructor(\n baseURL?: string,\n configs?: {engineConfig?: CustomConfig, interceptorConfig?: DefaultInterceptorsConfig},\n engineName: EngineNames = 'AXIOS'\n\n ) {\n this.configs = configs;\n this.engineInstance = new ENGINES[engineName](baseURL || '', { withCredentials: true, ...configs?.engineConfig });\n this.interceptors = setInterceptors(configs?.interceptorConfig);\n this.engineName = engineName;\n this.baseURL = baseURL;\n\n if (configs?.interceptorConfig?.shouldCache) {\n this.ttlCache = new TTLCache(configs?.interceptorConfig?.cacheTTL);\n }\n\n this.get = this.createMethod('get');\n\n this.post = this.createMethod('post');\n\n this.delete = this.createMethod('delete');\n\n this.put = this.createMethod('put');\n }\n\n createMethod(method: Methods): <T>(...args: RequestArgs) => Promise<ResponseResult<T> | T> {\n return async <T>(...args: RequestArgs): Promise<ResponseResult<T> | T> => {\n const { url, config, data } = argumentParser(method, args);\n\n // it enables to override request layer's interceptor configs\n // so configs are prioritized for endpoints, not for layer configs\n const modifiedInterceptorConfig = config\n ? constructInterceptorConfig(config, this.configs?.interceptorConfig)\n : this.configs?.interceptorConfig;\n\n const req: RequestContext<T> = {\n url,\n config: { method, ...config },\n data: (data as T),\n interceptorConfig: modifiedInterceptorConfig,\n engineName: this.engineName\n };\n\n const shouldCacheRun = this.ttlCache && !config?.disableCache && modifiedInterceptorConfig?.shouldCache;\n\n if (!modifiedInterceptorConfig?.disableRequestInterceptors) {\n this.interceptors?.preRequest?.run(req);\n }\n\n const cacheRequest: RequestContext = {\n ...req,\n data: req.data instanceof FormData ? Object.fromEntries(req.data as unknown as Iterable<readonly [PropertyKey, unknown]>) : req.data,\n interceptorConfig: {\n ...req.interceptorConfig,\n customRequestInterceptors: [],\n customResponseInterceptors: []\n }\n };\n\n if (shouldCacheRun) {\n const cachedResponse = await this.ttlCache?.get(cacheRequest);\n if (cachedResponse) {\n return cachedResponse as ResponseResult<T>;\n }\n }\n\n let resp: Responses<T>;\n let ctx: ResponseContext<T>;\n\n switch (method) {\n case 'get':\n case 'delete':\n case 'post':\n case 'put': {\n let engineResponse;\n try {\n engineResponse = await this.engineInstance[method]<T>(req.url, req.config, req.data);\n } catch (e) {\n resp = this.mapEngineResponse<T>(e as Awaited<ReturnType<RequestFunction>>);\n ctx = {\n resp, config: req.config, interceptorConfig: modifiedInterceptorConfig, engineName: this.engineName, result: resp\n };\n this.interceptors?.postFailedRequest?.run(ctx);\n\n throw e;\n }\n\n resp = this.mapEngineResponse<T>(engineResponse);\n\n ctx = {\n resp,\n config: req.config,\n interceptorConfig: modifiedInterceptorConfig,\n engineName: this.engineName,\n result: resp\n };\n break;\n }\n\n default: {\n const customMethod = this.engineInstance.createRequestMethod(method);\n resp = await customMethod<T>(url, config, data as T) as Responses<T>;\n ctx = {\n resp, config: req.config, interceptorConfig: modifiedInterceptorConfig, engineName: this.engineName, result: resp\n };\n }\n }\n\n if (!modifiedInterceptorConfig?.disableResponseInterceptors) {\n this.interceptors?.postRequest?.run(ctx);\n }\n\n if (shouldCacheRun) {\n this.ttlCache?.add(cacheRequest, ctx.result);\n }\n\n return ctx.result;\n };\n }\n\n setTeamID(teamID: number): void {\n this.configs = {\n ...this.configs,\n interceptorConfig: {\n ...this.configs?.interceptorConfig,\n teamID\n }\n };\n }\n\n getTeamID(): DefaultInterceptorsConfig['teamID'] {\n return this.configs?.interceptorConfig?.teamID;\n }\n\n private mapEngineResponse = <T>(\n awaitedEngineResp: Awaited<ReturnType<RequestFunction>>\n ): Responses<T> => {\n switch (this.engineName) {\n default:\n return mapAxiosResponse(awaitedEngineResp) as Responses<T>;\n }\n };\n}\n","import { ResponseInterceptor } from '../../types';\n\n// if rejected it returns AxiosResponse instead AxiosResponse.data\n// it is implemented to refactor projects that use RequestManager\nconst requestManagerResponseNormalizer: ResponseInterceptor = ctx => {\n if (ctx.interceptorConfig?.disableResponseNormalizer) {\n return;\n }\n\n const { resp } = ctx;\n\n if (resp && resp.data && typeof resp.data.responseCode === 'number'\n && (resp.data.responseCode < 200 || resp.data.responseCode > 299)) {\n ctx.result = Promise.reject(ctx.resp);\n return;\n }\n\n if (resp && resp.data) {\n ctx.result = resp.data?.content || resp.data;\n }\n};\n\nconst returnAxiosData: ResponseInterceptor = ctx => {\n // it is implemented for reqwest only\n if (ctx.engineName === 'AXIOS') {\n ctx.result = (new Promise(resolve => {\n if ('data' in ctx.resp) {\n resolve(ctx.resp.data);\n }\n }));\n }\n};\n\nexport const Interceptors = {\n requestManagerResponseNormalizer,\n returnAxiosData\n};\n","import trimEnd from 'lodash/trimEnd';\nimport { isEnterprise } from '@jotforminc/enterprise-utils';\n\nexport const getEnterpriseUrl = (): string => {\n if (window.JotForm && window.JotForm.enterprise) {\n return `https://${window.JotForm.enterprise}`;\n }\n\n if (window.JOTFORM_ENV === 'ENTERPRISE') {\n return `https://${window.location.host}`;\n }\n\n return '/';\n};\n\nexport const getEnterpriseLogo = (): string => {\n const url = getEnterpriseUrl();\n return `${trimEnd(url, '/')}/enterprise/logo.png`;\n};\n\nexport const getPublicApiURL = (): string => {\n const isEUDomain = /(?:eu\\.jotform)|(jotformeu\\.com)/.test(window.location.host);\n const isHipaaDomain = /(?:hipaa\\.jotform)/.test(window.location.host);\n switch (true) {\n case /jotform.pro/.test(window.location.host):\n return '/API';\n case isEUDomain:\n return 'https://eu-api.jotform.com';\n case isHipaaDomain:\n return 'https://hipaa-api.jotform.com';\n case Boolean(window.JotFormAPIEndpoint):\n return window.JotFormAPIEndpoint;\n default:\n return 'https://api.jotform.com';\n }\n};\n\nexport const getAPIURL = (): string => {\n // !add temporarily production test check\n if (window.location.host === 'hipaa.jotformers.com') {\n return '/API';\n }\n\n if (isEnterprise()) {\n return '/API';\n }\n\n if (/(?:jotform\\.ooo)/.test(window.location.host)) {\n return '/API';\n }\n\n if (/(?:alt\\.jotfor\\.ms)/.test(window.location.host)) {\n return '/API';\n }\n\n return getPublicApiURL();\n};\n\nexport const getDomainFromAPI = (apiURL: string): string => {\n const liteURL = apiURL.replace(/^http:\\/\\/|^https:\\/\\/|^\\//, '');\n const apiServerMap = {\n 'api.jotform.com': 'https://www.jotform.com',\n 'eu-api.jotform.com': 'https://eu.jotform.com',\n 'hipaa-api.jotform.com': 'https://hipaa.jotform.com',\n API: window.location.origin\n };\n return apiServerMap[liteURL as keyof typeof apiServerMap] || 'https://www.jotform.com';\n};\n\nexport const getDomainURL = (): string => {\n const isInternRDS = window.location.href.includes('.jotform.dev');\n if (isInternRDS) {\n return '';\n }\n\n if (!window.JotForm) {\n return getDomainFromAPI(getAPIURL());\n }\n\n const enterpriseEnv = isEnterprise();\n /* eslint-disable no-undef */\n switch (true) {\n case enterpriseEnv:\n return getEnterpriseUrl();\n case /jotform\\.pro/.test(window.location.origin):\n case window.JotForm.hipaa:\n return window.location.origin;\n default:\n return `https://${window.location.hostname.replace(/^form./, '')}`; // TODO: better way.\n }\n /* eslint-enable no-undef */\n};\n\nexport const getURLDomain = (url: string): string | boolean => {\n if (url && url.length > 0) {\n try {\n const urlObj = new URL(url);\n return urlObj.hostname;\n } catch (e) {\n return false;\n }\n }\n return false;\n};\n\nexport const replaceURLDomain = (url: string, newDomain: string): string => {\n if (newDomain && newDomain.length > 0) {\n try {\n const urlObj = new URL(url);\n urlObj.hostname = newDomain;\n return urlObj.toString();\n } catch (e) {\n return url;\n }\n }\n return url;\n};\n\nexport const getCombinedInfoURLByProduct = (resourceID: string, productType: string): string => {\n const apiURL = getAPIURL();\n let loginURL;\n switch (productType) {\n case 'form':\n loginURL = `${apiURL}/formuser/${resourceID}/combinedinfo?master=1`;\n break;\n default:\n loginURL = `${apiURL}/formuser/combinedinfo?master=1`;\n break;\n }\n return window?.JFAppsManager?.isOpenedInPortal() ? `${loginURL}&jotform_pwa=1` : loginURL;\n};\n","import * as FullStory from '@fullstory/browser';\n\nclass FullStoryManager {\n constructor(\n fullStoryConfigs: FullStory.SnippetOptions\n ) {\n FullStory.init(fullStoryConfigs);\n }\n\n activeTrackings = new Set();\n\n setUserVars = (customVars: FullStory.UserVars): void => {\n const { displayName, email, ...projectVars } = customVars;\n Object.keys(projectVars).forEach(key => this.activeTrackings.add(key));\n\n FullStory.setUserVars({\n ...projectVars,\n email,\n displayName,\n activeTrackings: Array.from(this.activeTrackings.values())\n });\n };\n\n isInitialized = FullStory.isInitialized;\n\n event = FullStory.event;\n\n identify = (uid: string, customVars?: FullStory.UserVars): void => {\n const { displayName, email, ...projectVars } = customVars || {};\n Object.keys(projectVars).forEach(key => this.activeTrackings.add(key));\n FullStory.identify(uid, {\n ...projectVars,\n email,\n displayName,\n activeTrackings: Array.from(this.activeTrackings.values())\n });\n };\n\n shutdown = FullStory.shutdown;\n\n restart = FullStory.restart;\n\n getCurrentSessionURL = FullStory.getCurrentSessionURL;\n}\n\nexport default FullStoryManager;\n","import {\n BrowserOptions, browserTracingIntegration, captureConsoleIntegration, contextLinesIntegration, ErrorEvent,\n extraErrorDataIntegration\n} from '@sentry/react';\n\nconst IGNORED_ERRORS = [\n // Random plugins/extensions\n 'top.GLOBALS',\n // See: http://blog.errorception.com/2012/03/tale-of-unfindable-js-error. html\n 'originalCreateNotification',\n 'canvas.contentDocument',\n 'MyApp_RemoveAllHighlights',\n 'http://tt.epicplay.com',\n 'Can\\'t find variable: ZiteReader',\n 'jigsaw is not defined',\n 'ComboSearch is not defined',\n 'http://loading.retry.widdit.com/',\n 'atomicFindClose',\n // Facebook borked\n 'fb_xd_fragment',\n // ISP \"optimizing\" proxy - `Cache-Control: no-transform` seems to\n // reduce this. (thanks @acdha)\n // See http://stackoverflow.com/questions/4113268\n 'bmi_SafeAddOnload',\n 'EBCallBackMessageReceived',\n // See http://toolbar.conduit.com/Developer/HtmlAndGadget/Methods/JSInjection.aspx\n 'conduitPage',\n 'tinymce',\n /tinymce/,\n 'for=',\n // tinymce related errors\n /tinymce-4\\.5\\.2/,\n // Error generated by a bug in auto-fill library from browser\n // https://github.com/getsentry/sentry/issues/5267\n /Blocked a frame with origin/,\n // Below error is basically the browser complaining that\n // ResizeObserver wasn't able to complete its work within an animation frame.\n // See: https://stackoverflow.com/questions/49384120\n 'ResizeObserver loop limit exceeded',\n // This error comes from the EDGE and IE users that uses Visual basic\n // to connect to jotform, when the connection fails, we receive below error on sentry\n 'The remote server machine does not exist or is unavailable',\n // Some firefox versions on windows devices throws below error\n // possibly thrown from an firefox add-on\n 'can\\'t redefine non-configurable property \"userAgent\"',\n 'SVGAnimatedString',\n 'You have entered your current password wrong.',\n 'New password should have minimum 8 characters.',\n 'Username is not available.',\n 'Link is already taken.',\n 'URL Slug may only contain letters or combination of letters, numbers, dash and underscores (\"_-”).',\n /^.*(email address is already registered!).*$/gim,\n /^.*(You're not authorized to use).*$/gim,\n /^.*(hooks).*$/gim,\n /^.*(username).*$/gim,\n /^.*(password).*$/gim,\n /^.*(byte).*$/gim,\n 'zoid destroyed all components',\n '[GSI_LOGGER]:', // Google Auth Errors\n '[olark]', // olark chatbot errors\n '[Meta Pixel]' // pixel initialization errors\n];\n\nfunction findValue(event: ErrorEvent, search: RegExp) {\n if (!event.exception || !event.exception.values) {\n return false;\n }\n\n let found = false;\n event.exception.values.forEach(value => {\n if (!value.value) {\n return false;\n }\n found = search.test(value.value);\n return !found;\n });\n return found;\n}\n\n/**\n * Determines if a string or regex is included in another string\n * @param {string} str string to search\n * @param {string | RegExp} search string or regex to search for\n * @returns {boolean} true if search is found in str\n */\nfunction includes(str: string, search: string | RegExp): boolean {\n if (typeof search === 'string') {\n return str.includes(search);\n }\n return search.test(str);\n}\n\nexport const defaultSentryConfigs: BrowserOptions = {\n integrations: [\n browserTracingIntegration({\n traceFetch: false,\n traceXHR: false\n }),\n captureConsoleIntegration({ levels: ['error'] }),\n extraErrorDataIntegration(),\n contextLinesIntegration()\n ],\n attachStacktrace: true,\n sampleRate: 0.1,\n tracesSampler: ({ attributes }) => {\n // send pageload traces with 0.1% probability\n if (attributes?.['sentry.op'] === 'pageload') {\n return 0.001;\n }\n // default trace rate\n return 0.1;\n },\n debug: false,\n environment: 'production',\n allowUrls: [\n /https?:\\/\\/.*jotform\\.com/,\n /https?:\\/\\/cdn([0-9]*)\\.jotfor\\.ms/,\n /https?:\\/\\/.*jotform\\.pro/\n ],\n normalizeDepth: 50,\n denyUrls: [\n // Facebook flakiness\n /graph\\.facebook\\.com/i,\n // Facebook blocked\n /connect\\.facebook\\.net\\/en_US\\/all\\.js/i,\n // Woopra flakiness\n /eatdifferent\\.com\\.woopra-ns\\.com/i,\n /static\\.woopra\\.com\\/js\\/woopra\\.js/i,\n // Chrome extensions\n /extensions\\//i,\n /^chrome:\\/\\//i,\n // Other plugins\n /127\\.0\\.0\\.1:4001\\/isrunning/i, // Cacaoweb\n /webappstoolbarba\\.texthelp\\.com\\//i,\n /metrics\\.itunes\\.apple\\.com\\.edgesuite\\.net\\//i,\n /tinymce/i,\n /^.*(https:\\/\\/api.jotform.com\\/translationList).*$/gim,\n /^.*(pagead\\/viewthroughconversion).*$/gim\n ],\n ignoreErrors: IGNORED_ERRORS,\n // eslint-disable-next-line complexity, max-statements\n beforeSend: (event, hint) => {\n if (/Android 4\\.4\\.[2,4]/.test(window.navigator.userAgent)) {\n return null;\n }\n\n // Non error promise rejection events\n if (/Non-Error promise rejection/i.test(event?.message || '')) {\n return null;\n }\n\n // tinymce errors\n if (/cloneNode/i.test(event?.message || '')) {\n return null;\n }\n\n if (/t is null/i.test(event?.message || '')) {\n return null;\n }\n\n if ((event.message && /\"Invariant Violation\"/.test(event.message)) || findValue(event, /\"Invariant Violation\"/)) {\n return null;\n }\n\n // Ignore FS errors\n if (findValue(event, /\"Timeout \\(h\\)\"/)) {\n return null;\n }\n\n if (findValue(event, /\"Timeout\"/)) {\n return null;\n }\n\n if (findValue(event, /\"Unable to find node on an unmounted component.\"/)) {\n return null;\n }\n\n const error = hint?.originalException as {message: string};\n if (error?.message) {\n const { message } = error;\n const exactErrors = [\n 'chrome is not defined', // Firefox extension tries to use chrome object\n 'tm_x is not defined', // Chrome Mobile WebView 99, Android 9;\n 'twttr is not defined', // Twitter GTM tag errors\n \"Can't find variable: $\",\n \"Can't find variable: al_onPoststitialDismiss\", // 3rd party, Mobile Safari UI/WKWebView, iOS 15.3.1\n \"Can't find variable: article\",\n \"Can't find variable: twttr\", // Twitter GTM tag errors\n \"Can't find variable: WeixinJSBridge\", // 3rd party, Mobile Safari UI/WKWebView, iOS 13.6\n \"Identifier 'boundExec' has already been declared\", // 3rd party, Windows 10\n \"Identifier 'kImgMinWidth' has already been declared\", // Chrome Mobile WebView 87, Android 11\n \"Unexpected token 'var'\"\n ];\n\n const partialErrors = [\n '__firefox__', // Firefox internal errors\n '__show__deepen', // noise likely coming from browsers/extensions\n 'ats.js', // ATS tracker script (probably coming from GTM)\n 'BetterJsPop', // adblocker\n 'C3 is not defined', // coming from C3 maps script\n 'checkDomStatus', // likely coming from ads/campaigns\n 'chrome-extension',\n 'Could not find googletag', // Another possible GTM issue\n 'Could not find Nativo', // Nativo third-party script\n 'crazyegg',\n 'crypto.getRandomValues', // third-party app\n 'customDispatchEvent is not defined', // Issue coming from crazyegg third-party script\n 'DomNode has not been set for this SimpleScriptable', // HTMLUnit issue coming from very old browsers\n 'DOMNodeInsertedByJs', // Coming from an Android browser called Crosswalk\n 'fb.js', // Issues coming from Facebook pixel/third-party script on GTM\n 'First argument to Readability constructor should be a document object', // Readability app on Mobile devices\n 'fixedTimeID is not defined', // Likely coming from a browser extension\n 'getHiAnalysticsParam', // Coming from Huawei mobile devices\n 'grecaptcha is not defined', // Coming from recaptcha\n 'instantSearchSDKJSBridgeClearHighlight', // Bing Instant Search issue with Edge on iOS\n 'Java exception was raised', // Android internal issues\n 'keydownt', // Coming from a chrome extension\n 'langDetector is not defined', // Translation third-party script\n 'localStorage', // mobile device settings\n 'MoatMAK', // Issues coming from Mobile ads (MRAID SDK)\n 'mobincube', // third-party app\n 'moz-extension', // Firefox\n 'mraid', // Issues coming from Mobile ads (MRAID SDK)\n 'NetworkError: Load failed', // Fetch issue on user browser\n 'NotAllowedError: Read permission denied', // User browser issue originated from third-party scripts\n 'notifyCurrentVideoState is not defined', // Coming from Mobile devices\n 'NS_ERROR_', // Firefox internal errors\n 'Object Not Found Matching Id:', // Microsoft Outlook SafeLink crawlers\n 'onAPWebViewPause', // Issue coming from Webviews on Mobile devices\n 'onTabScrolled is not defined', // Might be coming from browser extensions or third-party apps\n 'perfectbrowsr_nodecheck', // browser extension\n 'pktAnnotationHighlighter', // Issues coming from Pocket on iOS\n 'prebidjs', // Coming from a bidding external script (Prebid.js)\n 'privateSpecialRepair', // likely coming from ads/campaigns\n 'QK_middlewareReadModePage', // noise from ads/campaigns\n 'Quora Pixel Error',\n 'redefine property: googletag', // GTM\n 'safari-extension',\n 'safari-web-extension',\n 'safari.self.tab.setContext', // Safari browser error\n 'SecurityError: Blocked a frame with origin', // CORS issues from users or third-party scripts/apps\n 'sendBeacon', // Issues coming from Cloudflare beacon.min.js script\n 'setIOSParameters', // Mobile Safari browser issue on iOS\n 'Taboola', // Taboola third-party script\n 'tgetT is not defined', // 3rd party\n 'TypeError: WebKit', // Safari (WebKit) internal issues\n 'ucapi is not defined', // Might be coming from browser extensions or third-party apps\n 'UCShellJava', // noise coming from UC Browser\n 'UXCam', // third-party app\n 'vid_mate_check', // third-party app\n 'VUE_DEVTOOLS_IFRAME', // Issue coming from Vue Devtools extension\n 'webkitExitFullScreen', // Mobile Safari browser issue on iOS\n 'window.appHotStart', // Might be coming from browser extensions or third-party apps\n 'window.bannerNight', // Might be coming from browser extensions or third-party apps\n 'window.getPlayer is not a function', // Third-party scripts\n 'window.huawei', // Coming from Huawei mobile devices\n 'window.onunload is not a function', // Third-party scripts\n 'window.performance.getEntries is not a function', // Trying to access from console in unsupported browser\n 'window.regainData is not a function', // Third-party scripts\n 'window.showAngularStats', // Might be coming from browser extensions or third-party apps\n 'zaloJSV2', // Zalo API\n 'Zotero', // third-party app\n \"Can't find variable: al_\", // Appears only on Apple devices, related to tracking\n \"Failed to read the 'cookie' property from 'Document'\", // User browser issue to fetch cookies\n \"getElementsByTagName('video')\", // Mobile Safari browser issue on iOS\n \"Identifier 'VIDEO_PLAYING'\", // noise likely coming from browsers/extensions\n 'GSI_LOGGER', // Google auth noise\n 'ReferenceError: UET is not defined', // happens when bing is blocked by adblockers\n '[olark]', // olark chatbot errors\n '[Meta Pixel]' // pixel initialization errors\n ];\n\n const patterns = [\n /window.cb\\d+ is not a function/ // 3rd party, Windows 10, Edge 98.0.1108\n ];\n\n if (\n exactErrors.includes(message)\n || partialErrors.some(partialError => message.includes(partialError))\n || patterns.some(pattern => pattern.test(message))\n ) {\n return null;\n }\n\n const parsedEvent = JSON.stringify(event);\n\n const match = [\n '/Users/', // MacOS localhost\n 'adblocker', // Ad blockers\n 'addons/pops/license', // Coming from random addons\n 'ads/pixel.js', // Reddit Pixel\n 'ats.js', // ATS tracker script (probably coming from GTM)\n 'bad-network-popup', // third-party script\n 'beacon.min.js', // Cloudflare script\n 'beforeLoad_SafariV2.js', // Coming from Safari extensions\n 'BVProxy.min.js', // BVProxy external script\n 'C:\\\\Users\\\\', // Windows localhost\n 'card-injection.js', // coming from a netfree.link website, might be an extension or app\n 'chrome-extension',\n 'clarity.js', // Microsoft Clarity analytics tool\n 'common-scripts', // Third-party scripts such as CrazyEgg\n 'crypto.getRandomValues', // third-party app\n 'fb.js', // Issues coming from Facebook pixel/third-party script on GTM\n 'Grammarly.js', // Grammarly extension\n 'gtm.js', // GTM main script\n 'hstc.tracking', // Hubspot tracking script\n 'localStorage', // Mobile device settings (usually coming from Android)\n 'MathJax.js', // MathJax.js script\n 'moz-extension', // Firefox\n 'nrWrapper', // NewRelic\n 'processRandomSelector', // noise from ads/campaigns\n 'r.beacon', // NewRelic\n 'recaptcha/releases',\n 'RILLONGPRESS', // third-party script\n 'safari-extension',\n 'safari-web-extension',\n 'setupPops', // Chrome issue coming from adblockers\n 'setupPops', // Chrome issue coming from adblockers\n 'SnapTube', // External app to download videos\n 'srcIsLegacy', // Drift third-party script\n 'translate_http', // Issues coming from Google Translate API\n 'uwt.js', // Twitter Universal Tag\n 'zteEnd' // Coming from an external script related to ZTE phones\n ].some(predicate => parsedEvent.includes(predicate));\n\n if (match) {\n return null;\n }\n }\n\n const values = event?.exception?.values;\n if (values?.length) {\n const [{\n type, value, stacktrace\n }] = values;\n\n if (type === 'UnhandledRejection') {\n // Google reCAPTCHA timeout exceptions\n const recaptchaPattern = /^Non-Error promise rejection captured with value: Timeout( \\(\\w\\))?$/;\n if (recaptchaPattern.test(value || '')) {\n return null;\n }\n if (!stacktrace && value === 'Non-Error promise rejection captured with keys: errors, message, name') {\n const extra = event?.extra;\n if (extra) {\n const message = (extra.__serialized__ as {message: string})?.message;\n\n // 3rd party code RxJS error, supposedly Grammarly extension\n if (message === '1 errors occurred during unsubscription:\\n1) RangeError: Maximum call stack size exceeded.') {\n return null;\n }\n }\n }\n // Do not send errors like \"Non-Error promise rejection captured with value: content, keys, name\"\n // as these are handled in some other/hacky way in the code\n if (value && (value.includes('Object captured as promise rejection with keys:') || value.includes('Non-Error promise rejection captured with keys:'))) {\n if (value.includes(',')) {\n return null;\n }\n }\n }\n }\n\n if (event?.extra?.arguments) {\n const parsedArguments = JSON.stringify(event.extra.arguments);\n if (IGNORED_ERRORS.some(ignored => includes(parsedArguments, ignored))) {\n return null;\n }\n }\n\n if (event?.breadcrumbs instanceof Array && event?.breadcrumbs.length > 0) {\n const fullStoryBreadcrumbs = event.breadcrumbs.filter(breadcrumb => breadcrumb.category === 'xhr' && breadcrumb.data?.url?.includes('https://rs.fullstory.com/rec/bundle/v2?OrgId=K1ZZ'));\n if (fullStoryBreadcrumbs.length > 0) {\n if (event?.tags) {\n // eslint-disable-next-line no-param-reassign\n event.tags.withFullStory = true;\n }\n } else if (event?.tags) {\n // eslint-disable-next-line no-param-reassign\n event.tags.withFullStory = false;\n }\n\n if (event.exception?.values?.map(e => e.value).includes('Event `CustomEvent` (type=unhandledrejection) captured as promise rejection')) {\n // Events with <unknown> title generally happens after a XHR call to the following sites.\n // If one of these is the last call made, ignore the error.\n const XHRS_TO_IGNORE = [\n /ads\\.linkedin/,\n /clarity/,\n /events\\.jotform/,\n /google-analytics/\n ];\n const lastFailedNetworkCall = event.breadcrumbs.slice().reverse().find(crumb => ((crumb.type === 'http') && crumb?.data?.status_code !== 200));\n if (lastFailedNetworkCall) {\n if (XHRS_TO_IGNORE.some(ignored => (ignored.test(lastFailedNetworkCall?.data?.url)))) {\n return null;\n }\n }\n }\n }\n\n return event;\n }\n};\n\nexport const SENTRY_ORG_SLUG = 'jotform';\n","import * as Sentry from '@sentry/react';\nimport { fullStoryIntegration } from '@sentry/fullstory';\nimport { ExclusiveEventHintOrCaptureContext } from '@sentry/core/build/types/utils/prepareEvent';\nimport { Options } from '@sentry/types';\nimport { defaultSentryConfigs, SENTRY_ORG_SLUG } from '../constants';\nimport FullStoryManager from './FullStoryManager';\n\nclass SentryManager {\n constructor(sentryOptions: Options) {\n if (sentryOptions.dsn) {\n window.errorTracking = true; // FIXME: this is needed for some breadcrumbs, we should refactor code that uses this window variable\n Sentry.init({ ...defaultSentryConfigs, ...sentryOptions });\n }\n }\n\n captureException = (exception: unknown, hint?: ExclusiveEventHintOrCaptureContext): string => {\n if (exception instanceof Error) {\n return Sentry.captureException(exception, hint);\n }\n // we do not care about exceptions type at this point, just throwing an error is enough\n const exceptionAsString = exception as string;\n return Sentry.captureException(new Error(exceptionAsString), hint);\n };\n\n captureMessage = Sentry.captureMessage;\n\n configureScope = (fn: (scope: Sentry.Scope) => void): void => {\n const scope = Sentry.getCurrentScope();\n fn(scope);\n };\n\n configureGlobalScope = (fn: (scope: Sentry.Scope) => void): void => {\n const scope = Sentry.getGlobalScope();\n fn(scope);\n };\n\n captureEvent = Sentry.captureEvent;\n\n createReduxEnhancer = Sentry.createReduxEnhancer;\n\n addIntegration = Sentry.addIntegration;\n\n enableFSPlugin = (fsInstance: FullStoryManager | undefined): void => {\n if (!fsInstance) {\n return;\n }\n this.addIntegration(fullStoryIntegration(SENTRY_ORG_SLUG, { client: fsInstance }));\n };\n}\nexport default SentryManager;\n","import { TrackingManager as TManager } from './utils';\n\nconst TrackingManager = new TManager();\n\nexport default TrackingManager;\n","import {\n getEnv, isHIPAA, isEU, getActiveApp, getRevision\n} from '@jotforminc/router-bridge';\nimport trackingList, { SentryConfig, Trackers } from '@jotforminc/tracking-config';\nimport {\n CaptureContext, EventHint, Event, Scope,\n Options\n} from '@sentry/types';\nimport { SentryEnhancerOptions } from '@sentry/react/build/types/redux';\nimport { SnippetOptions, UserVars } from '@fullstory/browser';\nimport FullStoryManager from './FullStoryManager';\nimport SentryManager from './SentryManager';\n\nclass TrackingManager {\n sentry: SentryManager | undefined;\n\n sentryOptions: Options | undefined;\n\n FS: FullStoryManager | undefined;\n\n fullstoryOptions: SnippetOptions | undefined;\n\n enableSentry(config: SentryConfig, forceEnable = false): void {\n if (forceEnable || (getEnv() === 'PRODUCTION' && !isHIPAA() && !isEU())) {\n try {\n const activeApp = getActiveApp();\n const doesSentryNameExist = trackingList[activeApp]?.sentry?.name;\n const appName = activeApp === 'listings' ? 'js-listings' : activeApp;\n this.sentry = new SentryManager({ ...config, ...(doesSentryNameExist && { release: `${appName}@${getRevision()}`, dist: `master${getRevision()}` }) });\n\n if (this.FS) {\n this.sentry.enableFSPlugin(this.FS);\n }\n } catch (error) {\n console.log('Failed to initialize Sentry !');\n }\n }\n }\n\n enableFS(userVars: UserVars | null = null): void {\n if (getEnv() === 'PRODUCTION' && !isHIPAA() && !isEU()) {\n try {\n if (!this.FSisInitialized()) {\n this.FS = new FullStoryManager({ orgId: 'K1ZZ', debug: false });\n }\n\n if (userVars) {\n this.setUserVars(userVars);\n }\n if (this.sentry) {\n this.sentry.enableFSPlugin(this.FS);\n }\n } catch (error) {\n console.log('Failed to initialize Fullstory !');\n }\n }\n }\n\n initTypes = {\n sentry: (config: object, forceEnable: boolean): void => this.enableSentry({ ...config }, forceEnable),\n fullStory: (): void => this.enableFS()\n };\n\n enableErrorTracking(appName: string, forceEnable = false, extraConfigs: Trackers = {}): void {\n const configs = {\n sentry: {\n ...trackingList?.[appName]?.sentry,\n ...extraConfigs?.sentry\n },\n fullStory: {\n ...trackingList?.[appName]?.fullStory,\n ...extraConfigs?.fullStory\n }\n };\n Object.entries(configs).forEach(([_trackingType, config]) => {\n const trackingType = _trackingType as keyof typeof configs;\n const { enable, ...rest } = config;\n if (enable) {\n if (!this.initTypes[trackingType]) {\n console.error(`Tracking type ${trackingType} couldn't found`);\n return;\n }\n this.initTypes[trackingType]({ ...rest }, forceEnable);\n }\n });\n }\n\n captureException(error: unknown, extras?: CaptureContext): void {\n if (this.sentry) {\n this.sentry?.captureException(error, extras);\n } else if (error instanceof Error) {\n console.log(`Sentry not initialized! \\nIf it's initialized, it would capture exception for ${error}\\nStack:${error.stack}`);\n } else {\n console.log(`Sentry not initialized! \\nIf it's initialized, it would capture exception for ${error}`);\n }\n }\n\n captureMessage(message: string, extras?: CaptureContext): void {\n if (this.sentry) {\n this.sentry?.captureMessage(message, extras);\n } else {\n console.log(`Sentry not initialized! \\nIf it's initialized, it would capture message for ${message}`);\n }\n }\n\n configureScope(callback: (scope: Scope) => void): void {\n this.sentry?.configureScope(callback);\n }\n\n configureGlobalScope(callback: (scope: Scope) => void): void {\n this.sentry?.configureGlobalScope(callback);\n }\n\n captureEvent(event: Event, hint?: EventHint): void {\n this.sentry?.captureEvent(event, hint);\n }\n\n createReduxEnhancer(enhanceOptions?: Partial<SentryEnhancerOptions>): void {\n return this.sentry?.createReduxEnhancer(enhanceOptions);\n }\n\n setUserVars(userVars: UserVars): void {\n this.FS?.setUserVars(userVars);\n }\n\n FSisInitialized(): boolean | undefined {\n return this.FS?.isInitialized();\n }\n\n event(eventName: string, eventProperties: { [key: string]: unknown }): void {\n this.FS?.event(eventName, eventProperties);\n }\n\n getCurrentSessionURL(): string | undefined | null {\n return this.FS?.getCurrentSessionURL();\n }\n\n identify(uid: string, customVars?: UserVars): void {\n this.FS?.identify(uid, customVars);\n }\n\n shutdown(): void {\n this.FS?.shutdown();\n }\n\n restart(): void {\n this.FS?.restart();\n }\n}\n\nexport default TrackingManager;\n"],"names":["window","module","getFSEnabledForSignFiller","e","_g","_path2","_path3","_path4","_path5","_path6","_path7","_path8","_path9","_path10","_path11","_global_window___jfCommonHeaderProps","_global_window1","_global_window2","_global_window___jfCommonHeaderProps1","_global_window___jfCommonHeaderProps2","_global_window___jfCommonHeaderProps3","_global_window___jfCommonHeaderProps4","_global_window___jfCommonHeaderProps5","_this","_global_window___jfCommonHeaderProps6","_this1","_global_window___jfCommonHeaderProps7","_global_window___jfCommonHeaderProps8","_global_window___jfCommonHeaderProps9","_global_window___jfCommonHeaderProps10","_global_window___jfCommonHeaderProps11","_global_window___jfCommonHeaderProps12","_global_window___jfCommonHeaderProps13","_global_window___jfCommonHeaderProps14","_global_window___jfCommonHeaderProps15","_global_window___jfCommonHeaderProps16","_global_window___jfCommonHeaderProps17","_global_window___jfCommonHeaderProps18","_global_window___jfCommonHeaderProps19","_global_window___jfCommonHeaderProps20","_global_window___jfCommonHeaderProps21","_global_window___jfCommonHeaderProps22","_global_window___jfCommonHeaderProps23","_global_window___jfCommonHeaderProps24","_global_window___jfCommonHeaderProps25","_global_window___jfCommonHeaderProps26","_rect","_defs","_rect2","_circle","_circle2","_circle3","_circle4","_rect3","_rect4","_rect5","_rect6","_g2","_path12","_mask","_mask2","_rect7","_rect8","_rect9","__webpack_public_path__","getAssetPath","activeApp","getActiveApp","TrackingManager","generatePromiseActionType","baseName","ACTION_TYPES","initialState","uiReducer","state","action","currentStage","coursesPanaelVisible","expandedCourseSections","actionKey","courseID","newSections","section","exitQuizModalVisible","exitQuizActionPayload","userReducer","pushDataLayer","event","rest","dataLayer","JOTFORM_ENV","Array","r","RequestLayer","Interceptors","formDataCreator","dataArr","formData","data","undefined","withPrefetchedData","prefetchedKey","handler","params","prefetchedData","Promise","getUserSettings","requestLayer","fetchCourses","gtmActionWrapper","actionData","context","sectionType","dataPayload","video_percent","chapter_name","certificate_program_name","sendAction","_param","identifier","value","getCourseByID","getUserWishlist","addCourseWishlist","removeCourseWishlist","registerCourseCertification","getUserBadges","getUserCertificates","fetchQuizResults","quizSectionID","verifyCertificate","certificateID","logSearchTerms","term","updateUserFullname","newFullname","answerSheetsMap","announcementVideoConstants","smallPosters","coverImages","appImage","signImage","tablesImage","enterpriseImage","jotformFoundation","programObjectives","chapterConstants","CoursesCard1","CoursesCard2","CoursesCard3","courseConstants","sectionConstants","seekVideo","f","stringToSecond","transcriptSkeleton","videoTranscriptRenderer","programID","sectionID","loading","_sectionConstants_programID_sectionID","t","myCoursesSidebarElements","redirectToLogoutPage","handleCustomNavigation","getLocalStorageWithExpiry","key","_global","_global1","itemStr","item","JSON","now","Date","convertStoMs","seconds","minutes","Math","extraSeconds","handleToggleCaptions","player","captionLanguage","getInternalPlayer","textTracks","i","language","getAppInfoFromURL","href","urlPaths","baseURLIndex","path","firstPath","secondPath","thirdPath","getLocalizedOutLink","url","appPath","splitedAppPath","rootIndex","getResourcesMenu","urlParamsSaver","queryString","getMyCoursesMenu","getCurrentHeaderNavigationItems","isUserLoggedIn","findSectionObjectBySectionID","chapters","index","sections","sectionObj","sectionObjIndex","findSectionObjectBySlugs","courseSlug","sectionSlug","slug","notFoundNRedirected","getPrevNextCourseContent","prev","_chapters_chapterIndex","_chapters_prevNextChapterIndex","_chapters_prevNextChapterIndex1","chapterIndex","newActiveCourseSection","prevNextChapterIndex","secondToMinutes","durationSecond","str","splitter","minute","second","parseInt","calculateChapterDurations","course","totalDuration","properties","remainingTimePrettifier","duration","totalMinutes","hour","calculateCourseDetails","totalSeconds","Object","sum","contentObj","_contentObj_properties","calculateCourseDurations","courses","chaptersToTotalVideoCount","_section_properties","getNumberOfTotalVideos","videosTotal","chaptersToTotalQuizCount","id","type","order","getLastInteractedCourseByAction","requestedCourse","lastViewedChapter","formattedChapters","chapterA","chapterB","_chapterA_progess","_chapterB_progess","chapterOrder","lastViewedSection","formattedSections","sectionA","sectionB","_sectionA_progess","_sectionB_progess","sectionProperty","sectionOrder","parentSection","subSection","isDevelopmentEnvironment","_window_location_href","getFirstIncompleteSectionOfProgram","programCourses","firstIncompleteCourse","_course_progress","_section_progress","getFirstIncompleteQuiz","mergedAllQuizSections","allQuizSections","chapter","result","array","quiz","_quiz_progress","getAllIncompletedQuizzes","isChapterBreakPoint","courseCompleted","currentSectionID","chapterSections","_incompletedChapterItems_","incompletedChapterItems","getFirstIncompleteSection","currentChapterID","orderedChapters","lastSection","sectionProgress","complete","getRemainingTimePrettyText","unwatchedSeconds","useMinimalText","remainingTime","minutesText","secondsText","calculateCourseDuration","calculateCourseTotalProgress","totalProgress","unwatchedSectionCount","progress","sectionDuration","start","videoPlayhead","videoProgress","remainingTimePrettyText","getAllContinuingSections","continuingSectionsMap","continuingChapters","continuingSections","tickAcademyAction","payload","academyTracker","props","console","_window_JotFormActions","handleDownloadBadge","chapterID","username","chapterTitle","downloadCertificate","certificateCourseName","handleDownloadCertificate","certificateCourseID","certificates","certificateIndex","certificate","handleGuestEnroll","enrollFunction","redirectionURL","fetchCourseContent","programSlug","setLoginFlowVisible","handleCloseLoginFlow","closeBtn","document","getActionButtonProperties","handleOpenCoursePreviewModal","onlyEnroll","upcoming","isAddedToWishlist","program","previewedChapter","customEnrollFunction","user","tickAction","previewModal","isEnrolled","isStarted","_previewedChapter_progress","_previewedChapter_progress1","firstIncompleteSection","_chapter_progress","accountType","name","introVideoActions","events","actionEvent","error","capitalizeFirstLetter","text","getUserPrepopulatedURLParam","credentials","email","account_type","accountTypeName","firstName","lastName","isGuest","shareAchievement","platformName","callback","badgeURL","certificateData","isCertificateShare","linkedInShareURL","creationDate","courseName","creationDateObj","expireDate","certificateCredentialURL","facebookShareURL","xShareURL","navigator","handleSocialShare","achievement","isNextPreviousEnabled","buttonType","enrolledChapters","courseOrder","_chapter_properties","prevNextSection","getLiveStreamURL","getVideoOutroDuration","_sectionConstants_sectionID","getVideoPoster","isMobileDevice","isHLSActive","IS_SAFARI","HAS_NAVIGATOR","compareIgnoreCase","textCompare","formatDateForCertificate","date","todayDay","todayYear","todayMonth","getCertificateValidityDates","today","getAppPathWrapper","getAppPath","academyIndex","getInitialVideoState","autoPlayPreference","StorageHelper","captions","volume","playbackRate","parseFloat","playerReducer","timeSecond","jfPlayer","seekTo","nextSectionOpenerActive","courseReducer","_findSectionObjectBySectionID","notFound","history","activeCourseSection","activeCourse","activeSlug","chapterSlug","currentChapter","quizActive","handleToggleCoursesPanel","ACTION_CREATORS","time","wishList","activeCourseID","visible","changes","initializeSentryIdentifier","Tracking","scope","setUserCertificates","requestedCertificate","waitUntilCertificateRegistration","allCertificates","call","API","put","limit","delay","waitUntilUserLoad","handleUpdateUserFullname","updatedUser","initializeUser","reactivationWarning","userSettings","newSheets","wishlist","navLang","setCookie","getUI","getUser","getPlayer","getCourse","getUserWishList","createSelector","getUsername","_user_credentials","getUserFullname","getUserType","_user_credentials_account_type","getUserCertificatesSelector","getNextSectionOpenerActive","getSkeletonList","isUpcoming","skeletonList","skeletonID","getChapters","getCourses","getActiveCourseSection","getCourseNotFoundError","getActiveCourse","getQuizActive","COURSE_SELECTORS","getProgramsByStatus","status","upcomingRequested","upcomingCourses","courseStatus","upCourse","getSectionNotFoundError","getExpandedCourseSections","ui","getExitQuizModalVisible","getExitQuizModalPayload","initializeCourseContent","select","initialActiveSection","normalizeCourses","resources","initializeCourses","activeCourseId","updatedActiveCourse","refreshSectionPropertiesNProgresses","newCourseSectionData","refreshedChaptersData","currentChapters","updatedChapters","_refreshedChaptersData_chapterIndex","_refreshedChaptersData_chapterIndex1","sectionIndex","_refreshedChapters_sectionIndex","_refreshedChapters_sectionIndex1","_refreshedChapters_sectionIndex2","_refreshedChapters_sectionIndex3","refreshedChapters","_updatedChapters_i","updatedActiveCourseSection","handleGenerateCertificate","callbackFunction","err","handlePassQuiz","_incompletedQuizzes_","score","incompletedQuizzes","incompletedChapterSections","setTimeout","handleEndQuizCountdown","cooldownUntil","disabled","updatedCourseSection","handleCompleteSection","actionPayload","dispatchedFrom","postActionMap","handleEnrollChapter","success","handleSectionAction","flowList","takeLatest","_getAppInfoFromURL","stage","flow","rootSagaFlow","flowSpawnList","spawn","all","createRootReducer","combineReducers","featureReducer","defaultStore","createStoreWithSagas","rootReducer","sagaMiddleware","createSagaMiddleware","sagaStack","sagaName","middlewares","applyMiddleware","composeEnhancers","compose","store","createStore","LoginGroupPreLoader","hideLoginButton","hideSignupButton","contactSalesAbTestVariation","contactSalesAbTestVariationURL","CONTACT_SALES_AS_CTA","CONTACT_SALES_AS_ITEM","CONTACT_SALES_AB_TEST_VARIATIONS","shouldRenderSignupButton","bool","string","PreLoaders","isLoggedIn","avatarUrl","AccountBoxAvatar","HamburgerButton","onClick","isActive","cx","IconXmark","IconBars","func","ScHeaderNavigation","styled","Navigation","LoginGroupRenderer","children","isMobileScreen","isMobile","disableLoginFlow","replaceAuthButtons","showLoginGroup","elementType","node","templatesNavItem","MENU_TYPES","integrationsNavItem","productsNavItem","supportNavItem","DEFAULT_NAV_ITEMS","NavItemBadge","SignMenuType","menuItems","isOpen","SignMenuTypeClasses","title","badge","IconChevronRight","DedicatedSupportSection","logAbTestAction","target","ASSET_IDENTIFIER","CONTACT_SALES_URL","CTA_URLS","gaAttributes","createGaAttributes","gaAttributesCs","GA_SUFFIXES","useEffect","setEPActions","handleContactSalesClick","saveCustomerAsHubspotFormByUsername","SDR_SOURCES","translationRenderer","ALL_TEXTS","IconArrowRight","SupportMenuType","sideMenuItems","menuTitle","sideMenuTitle","unreadSupportAnswerCount","isEnterprise","isAcademyAppsCourseReleased","SupportMenuTypeClasses","filteredMenuItems","loginRequired","shouldShowSupportAnswersCount","count","icon","ProfessionalServicesBanner","number","DefaultMenuType","currentPath","defaultMenuTypeClasses","isSamePath","ProductsMenuType","sideMenuSeeMoreTitle","sideMenuSeeMoreUrl","ProductsMenuTypeClasses","urlGuest","PdfEditorMenuType","PdfEditorMenuTypeClasses","splitArray","items","TemplatesMenuType","showAiAgentBanner","TemplatesMenuTypeClasses","IntegrationsMenuType","IntegrationsMenuTypeClasses","subTitle","seeMore","subLinks","TEXTS","n","arguments","NavLink","renderAs","classNames","menuType","showRedDot","a11yClickHandler","RENDER_AS_TYPES","ArrowIcon","oneOf","menuTypes","NavItem","isPricing","openedMenu","setOpenedMenu","logHeaderAction","isMobileMenuActive","linkProps","menuProps","onMobileMenuClose","hasAnyItemMatchingWithCurrentPath","className","selected","MenuComponent","combinedClassname","linkClassname","getUrlWithUtms","_user_campaign","utmCampaign","utmSource","utmContent","targetUrl","URL","GrowthAssetManager","userPropType","linkPropType","menuPropType","NavItems","navItems","useState","NO_INTEGRATIONS_MENU","activePageMenuItem","itemUrl","_activePageMenuItem_linkProps","ensureTrailingSlash","navItemsPropType","SignupButtonMobile","LogoBadge","BADGE_TYPES","GovernmentSvg","HipaaSvg","SideLink","logoSideLinkProps","sideLinkText","dividerColor","sideLinkUrl","sideLinkClassName","sideLinkTextColor","sideLinkLogoAsHtmlString","linkClasses","sideLinkClasses","showGovernmentBadge","isHIPAA","showHipaaBadge","getBadgeType","isBadgeAvailable","_currentPath_replace","pathname","isOnPage","page","logoSideLinkPropType","logoSideLinkDefaultProps","LogoVisual","theme","isKorean","logoFullLight","SelectedLogo","LogoJotformKoreanDark","LogoJotformDark","LogoJotformKoreanFullLight","LogoJotformFullLight","isDarkTheme","LogoJotformKoreanLight","LogoJotformLight","isLightTheme","isGrayTheme","themePropType","logoPropType","logoDefaultProps","Logo","isSticky","logoUrl","customLogoAsReactElement","customLogoAsReactElementOnMobileMenuOpen","customLogoAsHtmlString","customLogoAsHtmlStringOnMobileMenuOpen","enterpriseLogoSrc","isCustomLogo","logoSvgClasses","selectedCustomLogoAsReactElement","selectedCustomLogoAsHtmlString","handleClick","THEME_MAP","LogoGroup","logoProps","ScHeaderWrapper","ScHeaderContainer","ScHeader","ScLogoWrapper","ContactSalesMobile","HeaderBody","AppPickerRenderer","customNavItems","bgColor","fullWidth","onMobileMenuButtonClick","onMobileSignupButtonClick","replaceAuthButtonsLocalized","menuStyles","_global_window_document_querySelector","bgStyles","setBgStyles","outlineWrapper","THEME_CLASSNAME_MAP","outlineClasses","StyleSheetManager","menuStylesPropType","Fragment","initLanguageSwitcherTest","languageSwitcher","setLanguageSwitcherVisible","_global_window","readCookie","languageList","link","lang","browserLanguage","domainLanguage","isSwitchLanguageAvailable","abTestManager","ABTestManager","logAbTestActionLangSwitcher","global","ModeContext","createContext","ModeProvider","stickyMode","dropdownDefaultProps","commonInputDefaults","dropdownOptionCVA","cva","primary","dropdownOptionIconCVA","dropdownListCVA","dropdownSearchInputCVA","dropdownResultNotFoundCVA","tagCVA","tagTextCVA","tagIconCVA","Tag","colorStyle","size","BadgeIcon","tagClassName","tagButtonClassName","hasIcon","hasChildren","allowedKeys","Dropdown","_useFormControl","readOnly","required","placeholder","noResultFoundText","searchable","placeholderIcon","ghost","defaultValue","onChange","multiple","expand","showCountOnly","style","setIsOpen","activeIndex","setActiveIndex","selectedIndex","setSelectedIndex","selectedOptionArray","setSelectedOptionArray","selectedOption","setSelectedOption","searchTerm","setSearchTerm","resultNotFound","setResultNotFound","defaultValueArr","childrenArray","flattenChildren","defaultValueIndex","child","_child_props","arraysEqualsCheck","o","updatedOptions","defValue","component","_component_props","defaultValues","refs","floatingStyles","useFloating","autoUpdate","flip","offset","floatingSize","rects","elements","availableHeight","elementsRef","useRef","labelsRef","searchInputRef","handleSelect","useCallback","singleChildren","singleIcon","handleMultiSelect","checked","tagStyles","tagColorStyle","tagText","OptionIcon","newSelectedOptionArray","option","handleGroupSelect","allOptions","group","obj","self","opt","val","ch","g","listNav","useListNavigation","click","useClick","dismiss","useDismiss","role","useRole","getReferenceProps","getFloatingProps","getItemProps","useInteractions","dropdownContext","useMemo","hideGroup","element","_searchIn_textContent","searchIn","isDisabled","selectedOptionForMultiple","startIcon","handleTagClick","_refs_reference","_refs_reference1","filteredOptionArray","filteredOption","countMarkup","countText","BaseInput","BaseInputAddon","IconLockFilled","IconAngleDown","DropdownContext","FloatingFocusManager","InputText","IconMagnifyingGlass","IconXmarkSm","_e_target","FloatingList","DropdownOption","useDropdownContext","indent","useDropdownGroupContext","ref","useListItem","isSelected","isChecked","iconMargin","dropdownOptionClassName","Checkbox","chValue","LanguageSwitcher","_languages_find","setVisible","switchText","languageCodeURLPaths","languagesAvailable","languages","langCode","longLangKey","langPrettyName","a","b","selectedLang","prettyBrowserLang","splitedSwithText","IconLocationPinFilled","newLang","hreflang","Button","DeletedFormNotification","defaultVisible","onClose","isVisible","setIsVisible","isAnimationVisible","setIsAnimationVisible","useContext","JotformActionsContext","deletedFormClass","deletedFormInnerClass","deletedFormContentClass","CloseSvg","AppPickerBox","lazy","LoginGroup","Header","appPickerProps","themeProp","stickyModeThemeProp","hideAccountBox","hostname","loadLoginGroup","lazyLoadEvent","useLazyLoginGroup","useStickyHeader","languageSwitcherVisible","userType","UserContext","MobileMenuContext","disableAccountBox","isAppPickerEnabled","appPickerItems","customCampaignInfo","attachObsoleteSignupLoadingFunctionToWindow","useEnterprisePromotions","useLazyIntegrationImages","addBrowserClassNames","toggleDocumentOverflowProperty","initLoginFlowTrioButtons","listenAppSignInOnFailure","initGoogleOneTap","runFooterCustomFunction","exceptionallyOverwriteUserDataForFormUser","USER_TYPES","isEmpty","Suspense","handleSignupButtonMobileClick","yieldToMain","showLoginFlowModal","preLoaders","updateFavicon","dark","mediaQuery","handleChange","showDeletedFormNotificationVisible","getUrlParameter","isAiAgentBannerAvailable","getUserAccountType","object","stickyModeThemePropType","HeaderProvider","stickyModeTheme","UserProvider","JotformActionsProvider","MobileMenuProvider","userTypePropType","dispatch","useDispatch","useSelector","toggleExitQuizModal","setActiveCourseSection","courseURL","addRemoveExpandedCourseSections","showSidebar","setShowSidebar","videoEnded","toggleSidebar","renderCourseContent","activeSectionID","SectionIcon","WatchIcon","CheckWatchIcon","HalfWatchIcon","Link","IconTriangleCircleFilled","renderSection","chapterContent","sidebarColor","numberOfVideos","sectionCourses","content","_content_properties","handleToggleCollapseChapter","IconChevronDown","hidden","activeCourseSlug","breadcrumbs","disableRedirection","breadcrumb","to","withRouter","unlisten","autoScrollDisabledStages","CourseCardItem","setPreviewCourse","isWishlistPage","_chapterConstants_courseID_order","_chapterConstants_courseID_order1","userWishList","description","isNew","programSlugParam","courseSlugParam","sectionSlugParam","setUserWishList","updatedList","handleAddOrRemoveWishList","addedToTheWishlist","updatedWishList","isWishlistCard","whistlistBgColor","CoursesCardLogo","IconTrashFilled","IconClockFilled","IconCheckCircleFilled","isLink","linkSrc","WishlistController","arrayOf","searchKeyword","setSearchkeyword","debouncedRunner","useDebouncedCallback","searchValue","Hero","IconLeft","Search","IconRight","Countdown","setNextSectionCounterTime","handleCompleteNextCourseCounter","CountdownCircleTimer","Play","ContainerDiv","Styled","Container","PropTypes","LoaderSvg","PlaybackRateInput","playbackRateDropdownOpen","handlePlaybackRateChange","handlePlaybackRateDropdownMenu","setPlaybackRateDropdownOpen","playbackrateInputRef","handleClickOutside","playbackRateOptions","speedValue","PlaybackRateIcon","VideoPlayer","forwardRef","playerRef","played","videoSrc","videoState","setPlaying","handleReady","videoPoster","handleEnded","subtitleFile","playedSeconds","onChangeVolume","handlePipMode","customVideoSrc","introSectionID","videoLocalState","handleClickMute","handleOnProgress","handleSeekChange","customVideoPoster","forCourseOverview","handleSeekMouseUp","handleSeekMouseDown","fullscreenModeToggle","handleMouseLeaveVideo","setFullscreenModeToggle","handleClickPlayPauseRestart","useHistory","videoLoading","setVideoLoading","setVideoState","setCaptions","pip","playing","controls","light","muted","ended","loop","Hooks","useHLS","trackID","ReactPlayer","CircleLoader","Pause","loadedSeconds","Mute","Volume","Subtitle","Pip","Fullscreen","initialVideoLocalState","VideoPlayerWrapper","overviewChapterOrder","_activeCourseChapters_","_sectionConstants_programID_","_currentNextSection_properties","setIntroVideoActions","setNextSectionOpenerActive","setVideoLocalState","nextSectionCounterTime","activeCourseChapters","introSection","handlePrevNextCourseContent","seeking","autoplay","outroDuration","remainingSeconds","isNaN","volumeValue","handleVideoControlShortKeys","keyCode","anyActionDispatched","playedSecondsValue","handleToggleFullscreenMode","chapterProgress","handleRememberVideoProgress","isPlayhead","safeInterval","currentPlayedSeconds","Number","videoActionBreakpointInterval","beforeUnloadAux","restartVideo","play","currentNextSection","nextSectionProperties","nextSectionID","nextSectionTitle","currentPreviousSection","splitedSrc","code","sectionCode","recoveredSectionID","disablePrevNext","current","wrapper","videoElement","IconArrowRotateRight","getDuration","progressState","updatedPlaybackRate","playingValue","IconChevronLeft","IconCircleLgFilled","CoursePreviewModal","setPreviewedChapter","programTitle","courseTitle","courseProgress","isAppsProgram","previewedChapterID","previewedChapterTitle","chapterProperties","previewChapterProgress","isEnrolledPreviewedChapter","filteredChapters","previewedChapterRef","coverImage","badges","setBadges","restartVideoState","enrollChapter","handleCloseModal","certificateDownloadable","badgesData","handleEscPress","courseActionButtonRenderer","customChapterID","customProgress","isCompletedBtn","courseCoverImage","introVideoSrcMp4","courseOveview","liveStreamURL","Certificate","objective","CourseIcon","CheckCertificationIcon","IconAlarmClockCheckFilled","isSelectedChapterTab","chapterSectionsCount","filteredChapterSections","enrolledChapter","isEnrolledChapter","sectionTitle","SectionItemIcon","Maintitle","Modal","height","closeModal","handleKeydownOnModal","userneme","isModalOpen","setIsModalOpen","poster","Title","prepopulatedURLParam","Infobox","desc","Icon","LogoMarkFilled","MingcuteCertificateFill","MessageFilled","CertificateDisclaimer","getInitialPreviewCourseChapter","splittedURL","coursesPathIndex","refreshCourses","setActiveCourse","setCurrentStage","releasedPrograms","upcomingPrograms","allChapters","previewCourse","loginFlowVisible","sliderRef","handleOpenClosePreviewModal","selectedProgram","firstCourse","selectedCourse","_window","_document","_document1","_window1","academyCoursesURL","canonicalLinkEl","metaDescriptionEl","initialPreviewCourseChapter","currentPageURL","canonical","selectedChapter","each","initialPreviewCourse","foundCourse","requestCourseModalOpen","setRequestCourseModalOpen","requestCourseFormTarget","continuingSectionsData","coursePoster","chapterSection","filteredContinuingSections","_section_progress1","firstWishlistItem","filteredPrograms","programA","programB","CourseRequestForm","Swiper","Pagination","chapterName","sectionName","_chapterConstants_courseID","progressRatio","unwatched","backgroundColor","textColor","SwiperSlide","PlayCircleFill","PlayIcon","IconUserFilled","IconArrowPointerClickFilled","upcomingCourseID","isSkeleton","InfoBoxSection","CenterVideoSection","Route","Tabmenu","activeTab","setActiveTab","handleTabClick","isExternalLink","resourceURL","tabs","videos","resource","helpGuidesNBlogs","videoURL","videoDescription","videoTitle","resourceDescription","resourceTitle","contentRenderer","tabName","exitQuizModalPayload","IconExclamationCircle","pageURL","useInterval","savedCallback","setInterval","clearInterval","CooldownCountDown","coolDownUntil","handleEndQuizCooldown","getRemainingTime","expires","countdown","setCountdown","setDelay","distance","hours","digitsRenderer","digits","splitedDigits","hourDigit","splitedCountdown","IconAlarmClockFilled","countdownElement","isLastCountdownElement","countdownTitles","CertificateViewer","programName","zoomRatio","startDate","CreateCertificateWizard","handleCreateCertificate","userFullname","setZoomRatio","initialStepActive","setInitialStepActive","updateFullNameConfirmed","setUpdateFullNameConfirmed","currentUsername","setCurrentUsername","enableChangeName","handleFullnameChanged","IconMagnifyingGlassMinus","IconMagnifyingGlassPlus","ModalHeader","closeButtonRef","logoIcon","iconColorStyle","customIconColorStyle","iconWrapperClassName","modalIconWrapperCVA","iconClassName","modalIconCVA","hasDescription","modalHeaderDefaultProps","ModalActions","Children","childCount","reverseElement","actionSplit","childType","cloneElement","CommonModal","header","footerRenderer","bodyRenderer","IconListBullet","ModalBody","tryCount","_allIncompletedQuizzes_","_user_credentials1","quizRef","certificateGenerating","setCertificateGenerating","quiFailCount","setQuizFailCount","toggleQuizActive","active","regenerateCertificate","quizTitle","activeCourseProgress","activeCourseCompleted","allIncompletedQuizzes","isLastQuiz","sectionOrderID","quizFormID","quizCurrentScore","frameHeight","setFrameHeight","showIncorrectAnswerModal","setShowIncorrectAnswerModal","quizLoaded","setQuizLoaded","shareResource","setShareResource","quizSubmissionData","setQuizSubmissionData","firstIncompleteQuiz","isNewChapterBreakPoint","handleGetQuizScore","interval","quizResultsRes","scoreValue","answers","formID","passed","message","submitted","waitingForResult","handleContinueLearning","continueSection","chapterContinueSection","shareOptions","IconFacebookCircleFilled","IconTwitter","IconLinkedinFilled","IconCopyFilled","quizVisible","findSelectedCertificate","cert","generatedCourseCertificate","createCertificateWizardActive","quizSuccessSubmitScreenAvailable","numberToOptionMark","reverse","reverseMapper","mapper","incorrectAnswers","formatedAnswers","answerObject","qid","incorrectAnswerIndex","correctAnswer","correctAnswerIndex","answer","isCertificateView","firstIncompletedSection","getFirstRequiredIncompletedSection","activeQuizIndex","requiredSections","startIndex","ExitQuizModal","Loading","LastQuizCertificateRenderer","chapterBadgeRenderer","currentChapterObj","IconCheckCircle","IconXmarkCircle","shareOption","numberToString","IconShareNodesFilled","_find","question","options","questionNumber","prettyQuestionTitle","answerLetter","prettyAnswer","IconInfoCircleFilled","activeCourseTitle","currentSectionSlug","handlePopState","isQuizSection","QuizViewer","setCourseNotFoundError","setSectionNotFoundError","courseNotFound","sectionNotFound","createBrowserHistory","Infocard","IconClassName","Qnote","Icon1","Icon2","Icon3","HeroLeftSideImage","HeroTopBannerMobile","CheckIcon","IconQuestionCircleFilled","HeroBottomSideImage","HeroRightSideImage","EnrollImage","Icon4","Testimonials","getThemeClassNames","getEndIconClassNames","MenuItemSubheader","subheader","isTitle","subheaderClassNames","MenuItemButton","buttonClassNames","MenuItemIcon","HoverIcon","position","commonIconClassNames","hoverIconClassNames","iconClassNames","MenuItemTitle","isContext","titleClassNames","MenuItemBadge","badgeClassNames","MenuItemShortcut","shortCutClassNames","MenuItem","handleOnMouseEnter","menuItemClassNames","MenuList","menuListClassNames","MenuDivider","dividerClass","ContextMenu","React","schema","strategy","placement","onMouseEnter","onOutsideClick","_schema_children","contextMenuRef","timerRef","arrowElement","setArrowElement","subElement","setSubElement","selectedItemID","setSelectedItemID","styles","attributes","usePopper","selectedItem","handleOutsideClick","isClickOutsideMenu","isClickOutsideButton","_element","clearTimeout","renderItem","_item_type","_item_children","_item_endIcon","endIcon","Error","schemaProps","shape","_global_location_href","selectedBadge","setSelectedBadge","selectedCertificate","setSelectedCertificate","setCertificates","getCourseNameByChapterID","_courses_find","certificatesData","shareContext","shareOptionsBtn","isOutClick","handleFetchBadges","chaptersData","targetChapter","handleFetchCertificates","getSelectedCertificateObj","shareItemClickHandler","socialPlatform","defaultSchema","downloadFunction","IconEllipsisVertical","enableShare","IconArrowDownToLine","IconLinkDiagonal","EmptyCertificates","certificateScreenshotURL","PlaceHolderLogo","Certificates","el","createPortal","Context","EmptyBadge","PlaceHolderBadge","setUpcomingCourses","isLoading","EmptyWishlist","skeletons","skeleton","MycoursesCompletedCard","completedCourses","MycoursesContinueLearningCard","coursesToggleList","setCoursesToggleList","toggleOpen","handleToggleCard","toggleCourse","ToggleIcon","IconChevronUp","MycoursesContinueLearningSubCard","remainingTimePretty","totalDurationSeconds","userProgressSeconds","continuingCourses","setContinuingCourses","chaptersToggledList","setChaptersToggledList","completedTabIsDisabled","res","courseIDs","filteredCourses","EmptyState","isToggledChapter","SectionToggleIcon","chapID","headerData","collapseMenu","setCollapseMenu","toggleCollapseMenu","activeSidebarElement","collapseMenuElements","buttonText","basePath","MylearningStatus","MyCertificates","Wishlist","FaqList","accordionList","setAccordionList","setSearchKeyword","handleToggleAccourdionList","listItem","filteredFaqList","faqListItem","isSearchMode","searchHighlighter","capitalizedSearchKeyword","lowerSearchKeyword","upperSearchKeyword","faq","length","IconMinus","IconPlus","useParams","setCertificateData","certfRegenerationLoading","setCertfRegenerationLoading","certificateError","setCertificateError","expiredParameter","responseContent","formatedData","isValid","currentCertificateID","validUntil","certificateOwner","errorType","Certificate404","ExpiredCertificate","formatExpirationDate","expirationDate","year","month","day","IconArrowsRotate","container","root","createRoot","Provider","darkHeaderEnabled","darkHeaderEnabledPages","logoDecider","AcademyLogoLight","AcademyLogoDark","headerNavigationItems","Router","ScrollHandler","Switch","Landing","CoursesHomepage","MyCourses","CourseNotFoundHandler","Faq","CertificateVerification","Breadcrumbs","Sidebar","CourseContentViewer","App","isJotformer","_user_account_type","isMobileApp","isEnvProd","_window___jfrouter","ABTestVariantCache","ABTestVariantCacheClass","isSalesforceEnv","customCheck","forceUserEligible","variation","currentVariant","multipleVariants","variant","testVariantCode","cb","resolve","reject","layer","forceTestVariant","forceControlVariant","multipleEnablerResult","controlVariantCode","logTestState","forceFlags","forceFlagKey","warnData","testName","urlParam","debugMode","isTestEnabled","cacheVariantCodeAtLocalStorage","customUserChecks","setUserSetting","forceSingleEpTest","_document_location","URLSearchParams","ActionManager","shouldRegisterActions","JotFormActions","actor","trackOnce","_this_JotFormActions","param","isJotFormer","projectName","enableDebugMode","setEpUserSettings","getEnterprisePromotionByAssetName","asset","searchParams","lastProductAssetInteraction","intent","isProd","paramsObj","ACTION_PROJECT_NAMES","isEnabled","isTrackerLoaded","setIsTrackerLoaded","handleScript","scriptEl","FeedbackForm","formUiModifier","checkUserType","isFeedbackFormOpen","setIsFeedbackFormOpen","iframeSrc","setIframeSrc","isIframeLoaded","setIsIframeLoaded","feedbackFormClasses","memoizedIframeSrc","nameFirst","nameLast","getUserPrefillValues","pathName","IconMessageEllipsisPencilFilled","PrefilledLeadFormAside","formIdProp","devFormID","isIframeEmbed","gaFormTrackingItems","customFormParamsPreparer","onFormSubmit","pageUrl","automatedNurturingSource","fullFormPath","isPrefillEnabled","isAdForm","isDynamicHeightEnabled","isFrameLoaded","isSubmissionLoggedRef","isFormFillingLoggedRef","isHubspotLoggedRef","formRef","userMandatoryData","getMandatoryPrefillValues","userData","formParamPreparer","prepareFormParams","formParams","formId","isDevelopment","SHOULD_SHOW_AD_FORM","LEAD_FORM_MAP","getDomainURL","_hsq","isHubspotTrackerLoaded","useHubspotTracker","iframeHeight","setIframeHeight","handleMessage","_formRef_current_querySelector","_formRef_current_querySelector1","_window_dataLayer","_event_data","jobTitle","country","iframeWindow","iframeDocument","formElement","trackingItem","selector","SHORT_LEAD_FORM_IFRAME_ID","gaAttributesPropType","gaFormTrackingItemsPropType","AB_TEST","CAMPAIGN","PRODUCT","AUTOMATION","WEBINAR","ENTERPRSE_PROMOTIONS_ROOT_EL_ID","healthcareReportModalSeenAtUserSettingsKey","SEGMENTED_MODAL_TYPES","PRICING_TABLE_SOURCE_PAGES","EDUCATION","NONPROFIT","leadFlowBannerUrlParam","leadFlowBannerAutoVisibleLcStKey","FOLDER_LIMIT_MODAL","HELP_DEDICATED_SUPPORT_MODAL","WHITE_LABELING_MODAL","ASSIGN_TO_ORGANIZATON_MODAL","TEAMS_MODAL","TEAM_CREATION_LIMIT_MODAL","ADMIN_CONSOLE_DARK_MODAL","ENTERPRISE_DATA_CENTERS_MODAL","MY_ACCOUNT_USERS_SECTION_WITH_FORM","CONTACT_DEDICATED_SUPPORT_MODAL","EDUCATION_DISCOUNT_MODAL","EDUCATION_DISCOUNT_MODAL_FERPA_VIOLATION_EXAMPLES","SYSTEM_LOGS_MODAL","ADD_COLLABORATOR_MODAL","ENTERPRISE_CHECKOUT_LIKE_SECTION","SINGLE_COLUMN_DEDICATED_SUPPORT_MODAL","SCHEDULE_ZOOM_MODAL","GOVERNMENT_MODAL","GA_AD_FORM_TRACKING_ITEMS","ENTERPRISE_TEAMS_MODAL","APPEXCHANGE_MODAL","ENTERPRISE_BEGINNERS_BOOK_MODAL","PDF_DOWNLOAD_MODAL","ENTERPRISE_CASE_STUDY_MODAL","ED_TECH_WEBINAR_MODAL","HEALTHCARE_AUTOMATION_STRATEGIES_WEBINAR_MODAL","LUNCH_AND_LEARN_MODAL","MAXIMUM_IMPACT_WEBINAR_MODAL","HEALTHCARE_TECHNOLOGY_MODAL","HEALTHCARE_FUTURE_WEBINAR_MODAL","ETT_EDUCATION_GATED_CONTENT_MODAL","ETT_EDUCATION_EXIT_INTENT_MODAL","FOMO_MODAL","FQHC_MODAL","HEALTHCARE_REPORT_MODAL","AD_BANNER_MODAL","AD_FIRST_EXIT_INTENT_MODAL","AD_SECOND_EXIT_INTENT_MODAL","BLOG_BANNER_MODAL","DEDICATED_SUPPORT_MODAL","FASTER_SUPPORT_RESPONSE_MODAL","PRICING_TABLE_MODAL","PRICING_TABLE_ISOLATED_MODAL","SHARE_FOLDER_MODAL","SSO_PREFILL_MODAL","PROFESSIONAL_SERVICES_MODAL","ZOOM_SUPPORT_MODAL","ASSIGN_FORM_MODAL","BRONZE_PLAN_DISCOUNT_MODAL","SILVER_PLAN_DISCOUNT_MODAL","GOLD_PLAN_DISCOUNT_MODAL","ENTERPRISE_PLAN_DISCOUNT_MODAL","BLOG_CONTENT_SIDE_BANNER","LOCAL_DATA_RESIDENCY_MODAL","MOBILE_FOOTER_CONTACT_BANNER","APPLY_REAL_TIME_SUPPORT_MODAL","TEAMS_WHITE_LABELING_MODAL","REQUIRE_SSO_MODAL","SSO_PREFILL_DETAILED_MODAL","SOC2_COMPLIANCE_MODAL","EDUCATION_MODAL","EDUCATION_MODAL_ALT","FIELD_SERVICE_MANAGEMENT_MODAL","HEALTHCARE_MODAL","NONPROFIT_MODAL","ENTERPRISE_DISCOUNT_MODAL","AU_DATA_RESIDENCY_MODAL","HK_DATA_RESIDENCY_MODAL","SG_DATA_RESIDENCY_MODAL","BLOG_GATED_CONTENT_MODAL","GA_FORM_TRACKING_ITEMS","LEAD_FORM_SOURCE_MODIFIERS","AUTOMATED_NURTURING_SOURCES","gaFormTrackingItem","planDetailsProps","ASSET_TYPES","kebabizeReplacer","match","kebabize","findAssetType","assetName","suffix","assetType","mapCallbacksToGaTrackingItems","trackingItems","callbacks","gaDataLayerPushClose","dataId","getAdwordsUtmsFromCookie","decodedAdwordsUtms","parsedAdwordsUtms","adwordsUtms","decodeURIComponent","createParam","mergeParams","createAdwordsUtmParams","utmMedium","utmTerm","utmScope","ADWORDS","urlParams","utmSourceParam","utmCampaignParam","utmMediumParam","utmTermParam","utmContentParam","utmScopeParam","adwordsGclidParam","createUserInformationParams","company","usernameParam","nameParam","lastNameParam","emailParam","jobTitleParam","companyParam","bsgEmail","variantCode","userInforParams","adwordsUtmParams","pageUrlParam","abTestParam","iframeEmbedParam","salesForceParam","professionalServicesParam","jotformAiAgentNoteParam","jotformGovernmentIntentParam","formUiModifierParam","automatedNurturingSourceParam","abNoteParam","isGenericEmailParam","isGenericEmail","allParams","hasAdwordsModeOn","decodeUTF8","utf8","getRootElement","rootEl","formatNumber","num","_user_name","_user_location","fullNameItems","lastNameIndex","getLiveFormID","isTestVariant","getDevFormID","freeDomains","domain","GrowthAssetRenderer","assetProps","campaignInfo","Fallback","AssetComponent","assetInfo","orderedCampaignInfos","keys","includes","launch","promotion","campaign","announcement","filter","map","info","campaignType","assetsVersion","assetsAvailable","assetYear","Component","getAssetComponent","isAssetDismissed","checkIsAssetDismissed","_jsx","AssetManagerProvider","propTypes","oneOfType","defaultProps","AssetManagerContext","actionManager","useAssetManagerContext","_object_spread_props","getComponentName","startCase","toLowerCase","replace","join","Y2023EoyMyaccountMyplanBannerV1","Y2023SummerBannerV1","Y2023SummerLightboxV1","Y2023SummerMyaccountMyplanBannerV1","Y2024BacktopaidFlyinV1","Y2024BacktopaidMyaccountBadgeV1","Y2024BacktopaidMyaccountMyplanBannerV1","Y2024BacktopaidPricingBadgeV1","Y2024BlackfridayBannerV2","Y2024BlackfridayBillingPricingTableV1","Y2024BlackfridayBillingPricingTableV2","Y2024BlackfridayExitModalV2","Y2024BlackfridayLightboxV2","Y2024BlackfridayMyaccountBadgeV1","Y2024BlackfridayMyaccountBadgeV2","Y2024BlackfridayMyaccountMyplanBannerV1","Y2024BlackfridayMyaccountMyplanBannerV2","Y2024BlackfridayPricingBadgeV1","Y2024BlackfridayPricingBadgeV2","Y2024BlackfridayPricingBadgeV3","Y2024BlackfridayPricingBadgeV4","Y2024BlackfridayPricingGuestBadgeV1","Y2024BlackfridayPricingGuestBadgeV2","Y2024BlackfridayPricingGuestBadgeV3","Y2024BlackfridayPricingGuestBadgeV4","Y2024BlackfridayRefundRequestBannerV1","Y2024BlackfridayRefundRequestBannerV2","Y2024BlackfridaycheckoutBannerV3","Y2024BlackfridaycheckoutBannerV4","Y2024BlackfridaycheckoutBillingPricingTableV1","Y2024BlackfridaycheckoutBillingPricingTableV2","Y2024BlackfridaycheckoutBillingPricingTableV3","Y2024BlackfridaycheckoutBillingPricingTableV4","Y2024BlackfridaycheckoutExitModalV3","Y2024BlackfridaycheckoutExitModalV4","Y2024BlackfridaycheckoutMyaccountBadgeV1","Y2024BlackfridaycheckoutMyaccountBadgeV2","Y2024BlackfridaycheckoutMyaccountBadgeV3","Y2024BlackfridaycheckoutMyaccountBadgeV4","Y2024BlackfridaycheckoutMyaccountMyplanBannerV1","Y2024BlackfridaycheckoutMyaccountMyplanBannerV2","Y2024BlackfridaycheckoutMyaccountMyplanBannerV3","Y2024BlackfridaycheckoutMyaccountMyplanBannerV4","Y2024BlackfridaycheckoutPricingBadgeV1","Y2024BlackfridaycheckoutPricingBadgeV2","Y2024BlackfridaycheckoutPricingBadgeV3","Y2024BlackfridaycheckoutPricingBadgeV4","Y2024BlackfridaycheckoutPricingGuestBadgeV1","Y2024BlackfridaycheckoutPricingGuestBadgeV2","Y2024BlackfridaycheckoutPricingGuestBadgeV3","Y2024BlackfridaycheckoutPricingGuestBadgeV4","Y2024BlackfridaycheckoutRefundRequestBannerV1","Y2024BlackfridaycheckoutRefundRequestBannerV2","Y2024BlackfridaycheckoutRefundRequestBannerV3","Y2024BlackfridaycheckoutRefundRequestBannerV4","Y2024NewuserBannerV2","Y2024NewuserDummyExitModalV2","Y2024NewuserLimitDialogV2","Y2024NewuserMyaccountBadgeV2","Y2024NewuserMyaccountMyplanBannerV2","Y2024NewuserPricingBadgeV2","Y2024OnedollarsilverBannerV1","Y2024OnedollarsilverExitModalV1","Y2024OnedollarsilverFlyinV1","Y2024OnedollarsilverLightboxV1","Y2024OnedollarsilverLightboxPricingV1","Y2024OnedollarsilverMyaccountMyplanBannerV1","Y2024OverquotauserBannerV1","Y2024OverquotauserMyaccountBadgeV1","Y2024OverquotauserMyaccountMyplanBannerV1","Y2024OverquotauserPricingBadgeV1","Y2024RegularfiftydiscountAccountBoxV2","Y2024RegularfiftydiscountExitModalV2","Y2024RegularfiftydiscountFlyinV2","Y2024RegularfiftydiscountMyaccountMyplanBannerV2","Y2024RegularfiftydiscountPricingBadgeV2","Y2024TestcampaignBannerV1","Y2024TestcampaignBannerV2","Y2024GtwopromotionFlyinV1","Y2024GtwopromotionFlyinV2","Y2024AcademyBannerV1","Y2024AcademyExitModalV1","Y2024GovernmentlaunchFlyinV1","Y2024MicrosoftteamsFlyinV1","Y2024SalesforceFlyinV1","Y2024WorkflowsBannerV1","Y2024WorkflowsBannerV2","Y2024WorkflowsFlyinV1","Y2024WorkflowsFlyinV2","Y2024AnimalShelterMyaccountBadgeV2","Y2024AnimalShelterMyaccountMyplanBannerV2","Y2024AnimalShelterPricingBadgeV2","Y2024ChurchMyaccountBadgeV2","Y2024ChurchMyaccountMyplanBannerV2","Y2024ChurchPricingBadgeV2","Y2024EducationMyaccountBadgeV2","Y2024EducationMyaccountMyplanBannerV2","Y2024EducationPricingBadgeV2","AssetList","_object_spread","CampaignAssetList","PromotionAssetList","LaunchAssetList","AnnouncementAssetList","componentName","getDismissStorageItemKey","defaultAvatar","onAccountBoxToggle","badgePropType","menuItemSubLinkPropType","menuItemPropType","navItemPropType","ACTION_KEYS","isActionKeyPressed","arr","len","mid","removeHost","url_","ACTIONS_PROJECT_NAME","logLoginFlowAction","LOGIN_FLOW_ACTIONS_PROJECT_NAME","useIsMobileScreen","lockScroll","unlockScroll","useLockBodyScroll","setIsMobileMenuActive","userAsProp","userTypeAsProp","isLoggedinAsProp","useUser","_path","checkIsUserLoggedIn","setUserToWindow","Event","isFormUser","usr","isLoggedInAsProp","userTypeRef","setUser","setUserType","setIsLoggedIn","initUser","fetchUser","activateBehaviour","scrollTreshold","setIsSticky","setTheme","CLASS_NAME","handleScroll","isTresholdExceeded","setEvent","load","setLoad","handleEvent","setIsMobile","handleResize","ReactDOM","_extends","DialogRenderer","ContentRenderer","HeaderRenderer","onCloseClick","CloseIcon","EducationReportModal","middleTitle","gaAttributesClose","descriptionText","EDUCATION_REPORT_MODAL_NUR","uikitModalRef","handleCloseClick","_uikitModalRef_current","prps","EttEducationGatedContentModal","renderEttEducationGatedContentModal","renderModal","initEpEttGatedContentModal","hasUrlParam","downloadButtonEl","Asset","rootElementId","HealthcareReportModal","modalProps","handleCloseModalClick","targetSelector","renderAsset","enabledPages","initEpHealthcareReportModal","seenAtKey","isUserHasAdCookie","isGuestUser","shouldRenderForGuest","_document_documentElement","regularUserNotSeenYet","userSeenCampaign","shouldRenderForRegularUser","getCurrentDateWithoutTimeZone","isInitiated","renderHealthcareReportModal","LEARN_MORE_URL","gaAttributesGaq","gaAttributesLm","IconEnterprise","HTMLElement","assetMap","GeneralFaqProfessionalServicesBanner","UserGuideProfessionalServicesBanner","SelectedAsset","renderUserGuideBanner","helpRoot","helpRootId","renderProfServicesAsset","renderFaqBanner","faqRoot","faqRootId","initEpProfessionalServices","EducationDiscountModal","from","EnterpriseIcon","nowrapText","BlogEducationSideBanner","isFormVisible","sectionRef","BLOG_EDUCATION_SIDE_BANNER","gaAttributesAn","IconRocketSquareFilled","initEpFerpaBanner","createFormButtonEl","bannerRootEl","insertAfter","renderFerpaBanner","PdfDownloadModal","pdfUrl","iconUrl","BlogDownloadBanner","badgeText","bannerTitle","bannerDescription","bannerVisualUrl","bannerItems","gaAttributesGetPdf","IconCheck","LogoJotformColor","ReportVisual","CASE_STUDIES","initEpCaseStudyAssets","caseStudy","enterprisePromotionsBannerRoot","renderBlogCaseStudies","AdvertisementLeadFlowModal","onSeen","ADVERTISEMENT_LEAD_FLOW_MODAL","Stars","AdSecondExitIntentModal","AdFirstExitIntentModal","AdBannerModal","AdvertisementLeadFlowBanner","isExitIntentModalAvailable","toggleRef","bannerRef","onceAutoVisibled","onceBannerOpened","onceModalShown","gaAttributesRad","gaAttributesNn","bodyEl","isAutoVisibleSeen","timer","bannerClasses","RocketIcon","MainVisual","actionsLoaded","setActionsLoaded","actionManagerRef","loaded","AdvertisementLeadFlow","registerJotformAction","useActionManager","logAbTestActionRef","BLOG_POSTS","initEpAdLeadFlowBlogPosts","blogPost","_asset_details","renderAdvertisementLeadFlow","isValidWebsite","regex","EP_ONBOARDING_TEST","setUserSettings","FormData","deleteUserSetting","INDUSTRIES","PROJECT_NAME","identifyUserForFullstory","isIncludedInAbTest","isDebugMode","EpOnboardingContext","EpOnboardingProvider","onboardingData","shouldShowOtherIndustryFromPreviousAttempt","setState","_onboardingData_industry","currentStep","maxStep","usageTier","industry","organizationName","organizationSize","organizationWebsite","jobRole","managementLevel","useLogAbTestAction","useFullstory","isSkippableStep","saveCurrentProgress","currentOnboardingData","handleNextClick","currentState","api","handleBackClick","setOnboardData","canProceedNextStep","proceed","showOtherIndustries","handleProgressBarClick","step","useEpOnboarding","CONTENTS_V2","InfoCard","isTeam","isIndividual","isHalfVisible","isOrganizationStep","shadowImage","Organization","User","Email","swiperRef","renderHeaderMessage","userName","EffectFade","Autoplay","swiper","_CONTENTS_V2_swiper_realIndex","Line","JFLogo","ACTION_DATA","radioSizes","radioCVA","secondary","radioWrapper","radioCircle","radioDefaultProps","Radio","label","htmlSize","truncate","hasLabel","wrapperClass","radioIcon","ChoiceLabel","Questions","EP_ONBOARDING_STEPS","onboardData","USAGE_TIER_MAP","IconUsersMoreFilled","IconBuilding","handleTierSelect","handleIndustrySelect","selectedIndustry","websiteValidationError","setWebsiteValidationError","ORGANIZATION_SIZES","handleOrganizationInfoFill","JOB_ROLES","MANAGEMENT_LEVELS","handlePositionSelecet","LOGO_CLICK","CurrentStep","progressSteps","_","JotformLogo","IconAngleLeft","IconAngleRight","AllSteps","ContentV2","OnboardingV2","initEpOnboardingProgress","initEpOnboarding","initEnterpriseJobs","isLoaded","setIsLoaded","loadImage","_el_dataset","loadImages","handleLazyLoad","getBodyEl","isHidden","createScriptElement","attr","script","createLinkElement","htmlEl","referenceNode","newNode","createCombinedInfoUrl","combinedInfoUrl","isMyForms","getUnpaidInvoices","mostOverdueInvoice","getEpUserSettings","currentDate","currentDateWithoutOffset","isIE","ua","msie","trident","edge","isWindows","isYandex","yandexIndex","jfHeader","ieClassName","yandexClassName","getJotFormEnv","_global_window___jfrouter","_user_accountType","isAdmin","isSupport","isProduction","isAiAgentExistingUserAB","isAiAgentNewUserAB","isAiAgentBetaUser","customRedirectionOnSignUp","customRedirectionOnLogIn","loadByApplyingLazyIgnoredElements","loadFunction","lazyLoadDelayedElements","isTargetDelayed","classList","currentEl","shouldDelayLazyLoad","forceLoad","defaultOptions","uniqueName","elGeneralFunc","loadAndInsertAsFirstScript","src","onload","js","fjs","loadLoginFlow","onLoad","loginFlowHelper","getSocialMediaScriptInfo","socialMedia","loadSocialMediaClient","loadGoogleJS","loadFacebookJS","loadMicrosotfJS","headEl","openLoginFlow","tracking","greetingMessage","greetingDescription","extraModalProps","screen","prevRoute","trackLoginFlow","loginFlowProps","newUser","nextRoute","setButtonNames","hideClose","toggleSignupLoaders","act","elRef","createSocialTermsFlow","socialTermsSecretManager","socialSignupThunk","socialLoginHash","socialUserProfile","idToken","isTermsChecked","hash","continueSocialSignup","isOneTapAvailable","isGoogleOneTapPrevented","hasCustomCta","loggedInUser","openSocialLoginFlow","activeMethod","handlerMap","attachLoginFlowToTrioButtons","socialButtons","button","isHomepage","hasTrioButtons","hasAnySocialSignupButton","bannerSignupLoading","signupModalSignupLoading","loginModalLoading","eventTarget","_eventTarget_parentNode","_eventTarget_parentNode_parentNode_parentNode","parentClasses","grandParentClasses","scheduler","nameEQ","cookies","cookie","hasCookieConsent","consentName","_cookiebot_consent","_cookiebot_consent1","cookiebot","consent","ttl","StyledSVG","strokeWidth","strokeColor","getRouterValue","get","getEnv","getBaseURL","getRevision","isEU","getRootPath","persistentKeyList","testItem","testKey","storage","storageBase","itemString","expiry","force","maxCount","counter","numericVal","isEqual","keyOrPattern","RegExp","langCodes","partialTranslations","DEFAULT_LANGUAGE","translation","clearTranslationMarkup","textParents","selectParents","elc","originalSize","originalMultiple","addTranslationMarkup","initial","parent","currentStyle","searchTextInDOM","texts","classesToBeFiltered","rgx","curr","isInViewport","elementRect","windowHeight","windowWidth","scrollX","scrollY","getTextContents","Translation","dictionary","strings","foundStrings","textContents","isUndefined","Polyglot","translated","variables","strVar","variableName","screenshots","emptyIndexes","filteredStrings","filteredScreenshots","ss","decodeURI","foundElements","orderedFoundElements","elementsToProcess","untranslatedToPost","ssDataAll","submitPromises","depthCount","depthLabel","Axios","qs","foundElement","visibilityResult","capturedData","domtoimage","filteredNodeClass","classStr","dataUrl","encodedAndProcessedStrings","processTranslation","_string_replace","transformPhrase","buffer","TextEncoder","Uint8Array","x","encodeUsedTranslations","translations","encoded","raw","q","collectionTimer","endDate","unlocalizeOriginHref","_Object_keys","shortLangCodes","exp","preapreTtime","hourVal","minuteVal","i1","tempDate","prepareControlModeChange","controlMode","prepareAddTranslationToDictionary","translationData","clearedDic","dic","entry","generateDictionaryURL","sanitizedCode","loadDictionaryViaTag","tmpScriptTag","loadDictionaryViaFetch","fetch","prepareAddDictionary","partialDictionaryName","_global_window_location","addTranslationToDictionary","partialDictionaryPath","loadMethod","sendUsedTranslationsInterval","isNil","_global_Translations_encodedAndProcessedStrings","_global_Translations_usedTranslations","_global_location","finishInterval","axios","_res_data","translatedString","getRendererIndex","delimiterStr","matches","renderFunctions","matchTemplate","replaceTemplate","renderers","matchedStrings","matchItem","currentKey","sanitizedValue","normStr","initializeTranslationFromGlobal","_global_window_Locale","addDictionary","controlModeChange","String","usePortal","portalContainerSelector","initialPortalSelector","closeOnOutsideClick","FooterRenderer","reffedDivProps","onModalClose","closeOnEscPress","exceptionalSelectorList","autoFocus","currentActiveElementRef","ariaLabel","portalRef","additionalSelector","setVisibility","hideMenu","nodeContains","contentRef","useContinueFocus","hide","show","toggleVisibility","useImperativeHandle","KeyboardJS","useEffectIgnoreFirst","headerTitleId","generateShortID","headerSubTitleId","Portal","any","portalAttribute","containerSelector","usePortalRef","KEY_KEYCODE_LIST","SERVER_ERROR","FILE_TYPE_ERROR","useClickOutsideState","eventTypes","eventType","useClickOutsideStateWithCallback","_callback","useClickOutsideStateMouseDown","useClickOutsideStateWithSelector","useSelectionState","isMultiSelect","sanitizeInitialState","selectedOptions","setSelectedOptions","selectedValue","isOptionExist","effectHandler","effectDependedValues","isFirstRun","useCombinedRefs","targetRef","getPortalRefElement","portalContainer","currentPortalDiv","div","useDragState","onDropCallBack","onDragOverCallBack","onDragEnterCallBack","onDragLeaveCallBack","isDragging","setDragState","generateDragEventHandler","onDragEnter","onDragOver","onDragLeave","onDrop","cachedScripts","useScript","scriptState","setLoadState","scriptTag","onScriptLoad","onScriptError","useFuse","list","fuseOptions","fuse","Fuse","usePrev","useInView","onInView","observer","panelRef","activeElementRef","useLayoutEffect","_panelRef_current","_panelRef_current1","_activeElementRef_current","wrapWithComp","Comp","prepareKeyList","keyList","isPressedKeyFN","preparedKeyList","expectedKey","expectedKeyCode","isPressedKeyEnter","isPressedKeyEnterOrSpace","flattenOptions","flattenedOptions","findOptionByValue","allowEmpty","optionsHaveSomeDisabledOptions","dropdownMayBeEmpty","sanitizedOptions","optionValue","createFileMetadata","nanoid","cname","cvalue","exdays","d","values","_name","results","arrayMoveMutate","arrayMove","newArray","createFormData","listenEnter","callbackFN","stopPropagation","loadJS","node2","node1","isElement","resizeWindow","scrollHeight","scrollWidth","PlatformTypes","AllowedPlatforms","makeFeatureReducer","FeatureFlag","featureList","featureName","featureValue","feature","_this_store_getState_featureName","cache","isPlatformEnv","platformEnv","isAllowedPlatform","getPlatformEnv","getValidURL","baseURL","appendRootPath","rootPath","interceptURLForWorkflowRelease","pathnames","Boolean","prepareURLWithRoot","urlString","urlObject","shouldRedirectToSessionExpired","redirectURL","dontOverwrite","windowFeatures","featureFlag","validateEmail","buttonCVA","buttonTextCVA","buttonIconCVA","buttonIndicatorCVA","ButtonText","showTextOnHover","showTextOnly","loader","hasLoaderText","ButtonIcon","ButtonIndicator","indicatorText","indicatorColorStyle","Indicator","loaderCVA","loaderTrackCVA","loaderSpinnerCVA","loaderDefaultProps","Loader","_ref","loaderClassName","EndIcon","loaderText","invert","rounded","StartIcon","hasOneIcon","hasDoubleIcon","hasIndicator","buttonVariant","isProductButton","PRODUCT_NAME_VALUES","buttonLoader","hasText","buttonClassName","loaderComponent","loaderContent","buttonContent","checkboxSizes","checkboxCVA","checkboxWrapperCVA","checkboxIconCVA","checkboxDefaultProps","indeterminate","checkIcon","indicatorCVA","indicatorClassName","baseInputContainerCVA","baseInputCVA","baseInputAddon","addonStart","addonEnd","as","useDefaultStyleInReadOnly","readOnlyVariant","baseInputContainerClassName","commonFormControlCVA","baseInputClassName","_e_currentTarget","input","baseInputDefaultProps","inputAddonDefaultProps","direction","useInputColor","htmlFor","addonContainerClassName","addonIconClassName","prefix","showLockIconInReadOnly","inputTextDefaultProps","appendixDefaults","disableAlpha","presetColors","onSwatchHover","open","initialFocus","zIndex","noFade","_as","fitOnMobile","HeadlessModal","modalContainerCVA","InnerComponent","modalCVA","modalDefaultProps","noPadding","modalBodyCVA","modalBodyDefaultProps","justifyContentClasses","COLOR_STYLE_VALUES","GRID_TRACK_VALUES","useSelectValue","ownContext","pickedContextValues","pick","FormControlContext","contextValuesArray","useFormControl","pickContextValues","DropdownGroupContext","choiceLabelCVA","choiceLabelContainerCVA","choiceLabelTextCVA","choiceLabelDescriptionCVA","brand","background","border","accent","depth","acc","nodeIndex","_node_type","isValidElement","_child_type","convertResponsiveClass","propValue","_key","_val","v","normalizedKeyMap","fn","ms","retry","maxAttempts","delayMs","execute","attempt","nextAttempt","mapRequest","TTLCache","request","response","shouldAttempt","cacheItem","Map","argumentParser","method","args","config","constructInterceptorConfig","interceptorConfig","InterceptorHandler","ctx","interceptor","interceptors","createDefaultInterceptors","reqInterceptors","resInterceptors","resFailedInterceptors","isCrossOrigin","origin","axiosNormalizer","_ctx_interceptorConfig","resp","engineResponseNormalizer","salesforceResponseFailedInterceptors","isSalesforcePlatform","_ctx_resp_config","_ctx_resp_config1","_ctx_resp_data","_ctx_resp_data1","requestInterceptors","apiKey","objToFormData","keyName","responseInterceptors","defaultRequestInterceptors","defaultResponseSuccessInterceptors","defaultResponseFailedInterceptors","setInterceptors","_config_customRequestInterceptors","_config_customResponseInterceptors","preRequestInterceptors","postRequestInterceptors","postRequestFailedInterceptors","defaultValidation","ENGINES","AxiosEngine","mapAxiosResponse","awaitedEngineResp","isAxiosError","_this_configs","_this_configs1","_this_interceptors_preRequest","_this_ttlCache","_this_interceptors_postFailedRequest","_this_interceptors_postRequest","_this_ttlCache1","modifiedInterceptorConfig","req","shouldCacheRun","cacheRequest","cachedResponse","engineResponse","customMethod","teamID","_this_configs_interceptorConfig","configs","engineName","_configs_interceptorConfig","_configs_interceptorConfig1","requestManagerResponseNormalizer","_resp_data","returnAxiosData","getEnterpriseUrl","getEnterpriseLogo","trimEnd","getPublicApiURL","isEUDomain","isHipaaDomain","getAPIURL","getDomainFromAPI","apiURL","liteURL","apiServerMap","enterpriseEnv","FullStoryManager","fullStoryConfigs","Set","customVars","displayName","projectVars","FullStory","uid","IGNORED_ERRORS","findValue","search","found","defaultSentryConfigs","browserTracingIntegration","captureConsoleIntegration","extraErrorDataIntegration","contextLinesIntegration","hint","_event_exception","_event_extra","_extra___serialized__","_event_exception_values","exactErrors","partialErrors","partialError","patterns","pattern","parsedEvent","predicate","stacktrace","recaptchaPattern","extra","parsedArguments","ignored","fullStoryBreadcrumbs","_breadcrumb_data_url","lastFailedNetworkCall","crumb","_crumb_data","XHRS_TO_IGNORE","_lastFailedNetworkCall_data","SentryManager","sentryOptions","exception","Sentry","fsInstance","fullStoryIntegration","forceEnable","_trackingList_activeApp_sentry","doesSentryNameExist","userVars","appName","extraConfigs","_trackingList_appName","_trackingList_appName1","_trackingType","enable","extras","_this_sentry","enhanceOptions","_this_FS","eventName","eventProperties"],"mappings":"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ACN,MAAO,qBACP,KAAM,wEACN,IAAK,uBACL,MAAO,CACL,KAAM,KACR,CACF,EACA,CACE,KAAM,eACN,MAAO,gBACP,KAAM,mEACN,IAAK,iBACP,EACA,CACE,KAAM,gBACN,MAAO,iBACP,KAAM,oEACN,IAAK,wBACP,EACD,AACH,EAKE,UAAW,CACT,SAAU,SACV,MAAO,YACP,SAAUC,GAAAA,CAAAA,CAAAA,SAAoB,AAChC,CACF,KCjEyB,0BAClB,SACI,aACA,aACF,QAkVIC,GAAsB,CACjC,KAAM,eACN,UApEuB,CACvB,KAAM,eACN,UAAW,eACX,OAAQ,CACN,MAAO,uBACP,IAAK,gBACP,EACA,UAAW,CAET,CACE,IAAI,IACJ,MAAO,eACP,SAAU,wBACV,QAAS,CACP,MAAO,WACP,IAAK,gBACP,EACA,SA9R4B,CAChC,CACE,KAAM,yBACN,MAAO,kBACP,IAAK,gCACL,KAAM,iFACR,EACA,CACE,KAAM,iBACN,MAAO,SACP,IAAK,gCACL,KAAM,wEACR,EACA,CACE,KAAM,gBACN,MAAO,QACP,IAAK,sBACL,KAAM,uEACR,EACA,CACE,KAAM,uBACN,MAAO,gBACP,IAAK,8BACL,KAAM,+EACR,EACA,CACE,KAAM,oBACN,MAAO,YACP,IAAK,0BACL,KAAM,2EACR,EACA,CACE,KAAM,eACN,MAAO,OACP,IAAK,qBACL,KAAM,sEACR,EACA,CACE,KAAM,kBACN,MAAO,UACP,IAAK,wBACL,KAAM,yEACR,EACA,CACE,KAAM,yBACN,MAAO,kBACP,IAAK,gCACL,KAAM,iFACR,EACA,CACE,KAAM,qBACN,MAAO,aACP,IAAK,2BACL,KAAM,4EACR,EACD,AAwOG,EAEA,CACE,IAAI,IACJ,MAAO,MACP,SAAU,MACV,QAAS,CACP,MAAO,WACP,IAAK,4BACP,EACA,SAhPW,CACf,CACE,KAAM,aACN,MAAO,aACP,IAAK,2BACL,KAAM,4EACR,EACA,CACE,KAAM,UACN,MAAO,UACP,IAAK,wBACL,KAAM,yEACR,EACA,CACE,KAAM,UACN,MAAO,WACP,IAAK,yBACL,KAAM,sEACR,EACA,CACE,KAAM,iBACN,MAAO,kBACP,IAAK,+BACL,KAAM,iFACR,EACA,CACE,KAAM,YACN,MAAO,YACP,IAAK,0BACL,KAAM,2EACR,EACA,CACE,KAAM,SACN,MAAO,UACP,IAAK,wBACL,KAAM,yEACR,EACA,CACE,KAAM,YACN,MAAO,YACP,IAAK,0BACL,KAAM,2EACR,EACA,CACE,KAAM,OACN,MAAO,OACP,IAAK,qBACL,KAAM,sEACR,EACA,CACE,KAAM,YACN,MAAO,YACP,IAAK,0BACL,KAAM,2EACR,EACD,AA0LG,EAEA,CACE,IAAI,IACJ,MAAO,UACP,SAAU,UACV,QAAS,CACP,MAAO,WACP,IAAK,iDACP,EACA,SAlMe,CACnB,CACE,KAAM,cACN,MAAO,eACP,IAAK,6BACL,KAAM,8EACR,EACA,CACE,KAAM,UACN,MAAO,UACP,IAAK,wBACL,KAAM,yEACR,EACA,CACE,KAAM,WACN,MAAO,WACP,IAAK,yBACL,KAAM,0EACR,EACA,CACE,KAAM,MACN,MAAO,MACP,IAAK,oBACL,KAAM,qEACR,EACA,CACE,KAAM,SACN,MAAO,SACP,IAAK,uBACL,KAAM,wEACR,EACA,CACE,KAAM,MACN,MAAO,MACP,IAAK,oBACL,KAAM,qEACR,EACA,CACE,KAAM,WACN,MAAO,WACP,IAAK,yBACL,KAAM,0EACR,EACD,AAwJG,EAEA,CACE,IAAI,IACJ,MAAO,UACP,SAAU,UACV,QAAS,CACP,MAAO,WACP,IAAK,2CACP,EACA,SAhKe,CACnB,CACE,KAAM,iBACN,MAAO,kBACP,IAAK,gCACL,KAAM,wEACR,EACA,CACE,KAAM,SACN,MAAO,SACP,IAAK,uBACL,KAAM,wEACR,EACA,CACE,KAAM,iBACN,MAAO,kBACP,IAAK,gCACL,KAAM,wEACR,EACA,CACE,KAAM,SACN,MAAO,SACP,IAAK,uBACL,KAAM,wEACR,EACA,CACE,KAAM,eACN,MAAO,gBACP,IAAK,8BACL,KAAM,kFACR,EACA,CACE,KAAM,uBACN,MAAO,yBACP,IAAK,qCACL,KAAM,sFACR,EACA,CACE,KAAM,UACN,MAAO,UACP,IAAK,wBACL,KAAM,yEACR,EACA,CACE,KAAM,SACN,MAAO,SACP,IAAK,uBACL,KAAM,wEACR,EACA,CACE,KAAM,QACN,MAAO,QACP,IAAK,sBACL,KAAM,uEACR,EACD,AA0GG,EAEA,CACE,IAAI,IACJ,MAAO,QACP,SAAU,QACV,QAAS,CACP,MAAO,WACP,IAAK,iCACP,EACA,SAlHa,CACjB,CACE,KAAM,kBACN,MAAO,mBACP,IAAK,iCACL,KAAM,kFACR,EACA,CACE,KAAM,YACN,MAAO,YACP,IAAK,0BACL,KAAM,2EACR,EACA,CACE,KAAM,iBACN,MAAO,iBACP,IAAK,+BACL,KAAM,iFACR,EACA,CACE,KAAM,SACN,IAAK,8BACL,MAAO,SACP,IAAK,uBACL,KAAM,wEACR,EACA,CACE,KAAM,kBACN,MAAO,mBACP,IAAK,iCACL,KAAM,kFACR,EACA,CACE,KAAM,cACN,MAAO,cACP,IAAK,4BACL,KAAM,8EACR,EACA,CACE,KAAM,iBACN,MAAO,kBACP,IAAK,gCACL,KAAM,iFACR,EACA,CACE,KAAM,WACN,IAAK,oCACL,MAAO,WACP,IAAK,yBACL,KAAM,0EACR,EACD,AAgEG,EACD,AACH,EAKE,UAAW,CACT,SAAU,SACV,MAAO,eACP,SAAUD,GAAAA,CAAAA,CAAAA,YAAuB,AACnC,CACF,ECnNaE,GAAkB,CAC7B,KAAM,WACN,UA3ImB,CACnB,KAAM,WACN,UAAW,WACX,cAAe,WACf,oBAAoB,IACpB,mBAAoB,aACpB,UAAW,CACT,CACE,KAAM,cACN,MAAO,eACP,SAAU,IACV,IAAK,SACL,KAAM,0EACR,EACA,CACE,KAAM,oBACN,MAAO,qBACP,IAAK,eACL,KAAM,wEACR,EACA,CACE,KAAM,cACN,MAAO,eACP,IAAK,kBACL,KAAM,kEACR,EACA,CACE,KAAM,eACN,MAAO,gBACP,IAAK,2BACL,KAAM,iFACR,EACA,CACE,KAAM,gBACN,MAAO,iBACP,IAAK,oBACL,KAAM,oEACR,EACA,CACE,KAAM,eACN,MAAO,gBACP,IAAK,mBACL,KAAM,mEACR,EACA,CACE,KAAM,mBACN,MAAO,qBACP,IAAK,0BACL,KAAM,wEACR,EACA,CACE,KAAM,gBACN,MAAO,iBACP,IAAK,4BACL,KAAM,4EACR,EACA,CACE,KAAM,gBACN,MAAO,kBACP,IAAK,6BACL,KAAM,6EACR,EACA,CACE,KAAM,YACN,MAAO,aACP,IAAK,wBACL,KAAM,wEACR,EACA,CACE,KAAM,cACN,MAAO,eACP,IAAK,kBACL,KAAM,kEACR,EACA,CACE,KAAM,oBACN,MAAO,yBACP,IAAK,kMACL,KAAM,wEACR,EACA,CACE,KAAM,mBACN,MAAO,oBACP,IAAK,uBACL,KAAM,wEACN,MAAO,CACL,KAAM,KACR,CACF,EACD,CACD,cAAe,CACb,CACE,KAAM,eACN,MAAO,gBACP,IAAK,SACP,EACA,CACE,KAAM,mBACN,MAAO,oBACP,IAAK,0BACL,MAAO,CACL,KAAM,KACR,CACF,EACA,CACE,KAAM,eACN,MAAO,gBACP,IAAK,2BACP,EACA,CACE,KAAM,aACN,MAAO,cACP,IAAK,SACP,EACA,CACE,KAAM,cACN,MAAO,eACP,IAAK,YACP,EACA,CACE,KAAM,aACN,MAAO,eACP,IAAK,yBACP,EACA,CACE,KAAM,iBACN,MAAO,kBACP,IAAK,mBACP,EACA,CACE,KAAM,UACN,MAAO,UACP,IAAK,WACP,EACD,AACH,EAKE,UAAW,CACT,SAAU,SACV,MAAO,WACP,SAAUF,GAAAA,CAAAA,CAAAA,QAAmB,AAC/B,CACF,EC5FaG,GAAiB,CAC5B,KAAM,UACN,UA1DkB,CAClB,KAAM,UACN,UAAW,WACX,YAAa,EACb,UAAW,CACT,CACE,KAAM,iBACN,MAAO,kBACP,IAAK,WACP,EACA,CACE,KAAM,oBACN,MAAO,sBACP,IAAK,kBACL,cAAe,EACjB,EACA,CACE,KAAM,aACN,MAAO,cACP,IAAK,WACP,EACA,CACE,KAAM,MACN,MAAO,MACP,IAAK,OACP,EACD,CACD,cAAe,QACf,cAAe,CACb,CACE,KAAM,YACN,MAAO,aACP,IAAK,QACP,EACA,CACE,KAAM,eACN,MAAO,gBACP,IAAK,SACP,EACA,CACE,KAAM,OACN,MAAO,OACP,IAAK,QACP,EACA,CACE,KAAM,SACN,MAAO,SACP,IAAK,yCACP,EAAG,CACD,KAAM,UACN,MAAO,kBACP,IAAK,WACP,EACD,AACH,EAKE,UAAW,CACT,SAAU,SACV,MAAO,UACP,SAAUH,GAAAA,CAAAA,CAAAA,OAAkB,AAC9B,CACF,ECrDaI,GAAoB,CCXH,CAC5B,KAAM,UACN,UAAW,CACT,IAAK,YACL,KAAK,GACP,CACF,EDOEL,GACAE,GACAC,GACAC,GEhB+B,CAC/B,KAAM,aACN,UAAW,CACT,IAAK,sIACL,KAAK,GACP,CACF,ECN+B,CAC7B,KAAM,UACN,UAAW,CACT,IAAK,YACL,KAAK,IACL,cAAe,EACjB,CACF,EHYC,C,gCIjBD,IAAME,GAAe,CAAC,CAAEtP,KAAAA,CAAI,CAAE,GAE1B,WAAC,UAAO,UAAU,iC,SACfnN,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEmN,E,EAKTsP,CAAAA,GAAa,SAAS,CAAG,CACvB,KAAM9B,GAAAA,MAAAA,CAAAA,UAAiB,AACzB,ECPA,IAAM+B,GAAe,CAAC,CAAEC,UAAAA,CAAS,CAAEC,OAAAA,CAAM,CAAE,IACzC,IAAMC,EAAsB1B,KAAG,iCAAkC,CAC/DyB,OAAAA,CACF,GAEA,MACE,wB,SACGD,EAAU,MAAM,CAAG,GAClB,YAAC,MAAG,UAAWE,E,UACb,WAAC,MAAG,UAAU,sC,SACZ,YAAC,KAAE,KAAK,kB,UACN,WAAC,OAAI,UAAU,gBAAgB,IAAI,4EAA4E,IAAI,mB,GACnH,WAAC,KAAE,MAAM,S,SACN7c,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,qE,GAEL,WAAC,OACC,IAAI,uEACJ,UAAU,mCACV,IAAI,qB,QAIT2c,EAAU,GAAG,CAAClc,AAAAA,GACb,YAAC,MAAmB,UAAU,+B,UAC5B,WAAC,QAAK,UAAW,CAAC,oCAAoC,EAAEA,AAAe,KAAfA,EAAK,KAAK,CAAU,YAAc,GAAG,CAAC,C,SAAGT,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAES,EAAK,KAAK,C,GAC5GA,EAAK,YAAY,EAChB,YAAC,M,UACEA,EAAK,YAAY,CAAC,GAAG,CAAC,CAAC,CACtBoM,KAAAA,CAAI,CAAEiQ,MAAAA,CAAK,CAAE5a,IAAAA,CAAG,CAAE6a,MAAAA,CAAK,CACxB,GACC,WAAC,MAAc,UAAU,+B,SACvB,YAAC,KAAE,KAAM7a,EAAK,UAAU,S,UACrBlC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,GACFC,GAAS,WDxBnBN,GCwBgCA,CAAC,KAAMM,EAAM,IAAI,A,OAHnClQ,IAOVpM,EAAK,OAAO,EACX,WAAC,MAAG,UAAU,+B,SACZ,YAAC,KAAE,KAAMA,EAAK,OAAO,CAAC,GAAG,CAAE,UAAU,6C,UACnC,WAAC,QAAK,UAAU,S,SAAUT,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAES,EAAK,OAAO,CAAC,KAAK,C,GAC9C,WAACuc,GAAAA,CAAgBA,CAAAA,CAAAA,G,UAlBpBvc,EAAK,IAAI,G,IA8B9B,CAEAic,CAAAA,GAAa,SAAS,CAAG,CACvB,UAAW7U,GAAAA,KAAAA,CAAAA,UAAgB,CAC3B,OAAQ6S,GAAAA,IAAAA,CAAAA,UAAe,AACzB,E,wFCvDA,IAAMuC,GAA0B,CAAC,CAAEC,gBAAAA,CAAe,CAAE,IAClD,GAAM,CAAE,QAAS,CAAE,0BAA2BC,CAAM,CAAE,CAAE,CAAGC,GAAAA,CAAgBA,CACrE,CACJ,0BAA2B,CAAEC,kBAAAA,CAAiB,CAAE,CACjD,CAAGC,GAAAA,CAAQA,CAENC,EAAeC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,GAClCM,EAAiBD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,EAAQO,GAAAA,EAAAA,CAAAA,aAAyB,EAE3EC,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACRC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQA,OAAAA,EAAQ,OAAQ,MAAO,EACvD,EAAG,CAACD,EAAgB,EAEpB,IAAMW,EAA0B,MAAM3nB,IACpCA,EAAE,cAAc,GAEhB,GAAI,CACF,MAAM0nB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,qBAAsB,OAAQ,OAAQ,GAClF,MAAMW,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAoC,CAAE,4BAA6BC,GAAAA,CAAAA,CAAAA,YAAwB,AAAC,EACpG,CAAE,MAAO9Q,EAAO,CACd5C,QAAQ,GAAG,CAAC,qEACd,QAAU,CACRlK,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAuBkd,EAAmB,QAAS,GACrD,CACF,EAEA,MACE,YAAC,2BACKE,GAAAA,CACJ,UAAU,4B,UAEV,WAAC,OAAI,UAAU,2B,SACb,WAAC,QAAK,UAAU,a,SACbS,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAoB,0BAA0B,CAC7C,UAAW7Q,AAAAA,GAAQ,WAAC,QAAK,UAAU,Y,SAAaA,C,EAClD,E,KAGJ,YAAC,OAAI,UAAU,4B,UACb,WAAC,KAAE,UAAU,yB,SAA0BnN,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,qCAA+C,C,GACxF,WAAC,yBACKR,GAAAA,CACJ,UAAU,wBACV,KAAMJ,EACN,QAASQ,E,SAER7d,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,aAAuB,C,UAKpC,CAEAhB,CAAAA,GAAwB,SAAS,CAAG,CAClC,gBAAiB3B,GAAAA,IAAIA,AACvB,EAEA2B,GAAwB,YAAY,CAAG,CACrC,gBAAiBzd,AAAAA,GAAKA,CACxB,E,kBClDA,GAdmC,IAE/B,YAAC,KACC,UAAU,mCAAmC,KAAK,qCAAqC,SAAS,I,UAEhG,WAAC,QAAK,UAAU,oD,SAAqDQ,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,wB,GACvE,YAAC,OAAI,UAAU,wD,UACb,WAAC,QAAK,UAAU,gD,SAAiDA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,U,GACnE,WAACke,GAAAA,CAAcA,CAAAA,CAAC,UAAU,Y,SCJlC,IAAMC,GAAkB,CAAC,CACvBxB,UAAAA,CAAS,CAAEyB,cAAAA,CAAa,CAAEvD,WAAAA,CAAU,CAAEwD,UAAAA,CAAS,CAC/CC,cAAAA,CAAa,CAAE1B,OAAAA,CAAM,CAAE2B,yBAAAA,CAAwB,CAAEC,aAAAA,CAAY,CAAEC,4BAAAA,CAA2B,CAC3F,IACC,IAAMC,EAAyBvD,KAAG,oCAAqC,CACrEyB,OAAAA,CACF,GACM+B,EAAoBhC,EAAU,MAAM,CAAC,CAAC,CAAEiC,cAAAA,CAAa,CAAE,GAAMA,CAAAA,GAAgB/D,GAE7EgE,EAAgC,CAAC,CAAEhS,KAAAA,CAAI,CAAEiS,MAAAA,CAAK,CAAE,GAAKjS,AAAS,sBAATA,GAAgCiS,EAAQ,GAAK,CAACN,EAEzG,MACE,YAAC,MAAG,UAAWE,E,UACZC,EAAkB,MAAM,CAAG,GAC1B,WAAC,MAAG,UAAU,a,SACZ,YAAC,M,UACC,WAAC,MAAG,UAAU,+B,SAAgC3e,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEqe,E,GAC/CM,EAAkB,GAAG,CAAC,CAAC,CACtB9R,KAAAA,CAAI,CAAEiQ,MAAAA,CAAK,CAAE5a,IAAAA,CAAG,CAAE6c,KAAAA,CAAI,CAAEhC,MAAAA,CAAK,CAC9B,GACC,WAAC,MAAc,UAAU,+B,SACvB,YAAC,KAAE,KAAM7a,EAAK,UAAW2c,EAA8B,CAAEhS,KAAAA,EAAM,MAAO0R,CAAyB,GAAK,0CAA4C,G,UAC7IQ,EACA/e,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,GACFC,GAAS,WJjBbN,GIiB0BA,CAAC,KAAMM,EAAM,IAAI,A,GACvC8B,EAA8B,CAAEhS,KAAAA,EAAM,MAAO0R,CAAyB,IAAM,WAAC,QAAK,UAAU,qC,SAAsCA,C,OAL9H1R,I,KAYhBuR,EAAc,MAAM,CAAG,GACtB,WAAC,MAAG,UAAU,4B,SACZ,YAAC,M,UACC,WAAC,MAAG,UAAU,+B,SAAgCE,C,GAC7CF,EAAc,GAAG,CAAC,CAAC,CAClBvR,KAAAA,CAAI,CAAEiQ,MAAAA,CAAK,CAAE5a,IAAAA,CAAG,CAAE6c,KAAAA,CAAI,CAAEhC,MAAAA,CAAK,CAC9B,IACc,YAATlQ,GAAsB4R,AAAgC,MAAhCA,GAExB1B,CAAAA,EAAQ,CACN,KAAM,KACR,GAGA,WAAC,MAAc,UAAU,+B,SACvB,YAAC,KAAE,KAAM7a,E,UACN6c,EACA/e,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,GACFC,GAAS,WJ3CfN,GI2C4BA,CAAC,KAAMM,EAAM,IAAI,A,OAJnClQ,K,KAYnB,WAAC,MAAG,UAAU,oB,SACZ,WFGOoQ,GEHiBA,CAAAA,E,GAE1B,WAAC,MAAG,UAAU,gC,SACZ,WAAC+B,GAA0BA,CAAAA,E,KAInC,CAEAb,CAAAA,GAAgB,YAAY,CAAG,CAC7B,4BAA6B,EAC/B,EAEAA,GAAgB,SAAS,CAAG,CAC1B,UAAWtW,GAAAA,KAAAA,CAAAA,UAAgB,CAC3B,cAAeA,GAAAA,KAAAA,CAAAA,UAAgB,CAC/B,WAAY6S,GAAAA,IAAAA,CAAAA,UAAe,CAC3B,UAAWC,GAAAA,MAAAA,CAAAA,UAAiB,CAC5B,cAAeA,GAAAA,MAAAA,CAAAA,UAAiB,CAChC,OAAQD,GAAAA,IAAAA,CAAAA,UAAe,CACvB,yBAA0BuE,GAAAA,MAAAA,CAAAA,UAAiB,CAC3C,aAAcvE,GAAAA,IAAAA,CAAAA,UAAe,CAC7B,4BAA6BC,GAAAA,MAAMA,AACrC,ECnFA,IAAMuE,GAAkB,CAAC,CACvBvC,UAAAA,CAAS,CACTC,OAAAA,CAAM,CACNuC,YAAAA,CAAW,CACZ,IACC,IAAMC,EAAyBjE,KAAG,oCAAqC,CACrE,OAAQyB,CACV,GAEA,MACE,wB,SACGD,EAAU,MAAM,CAAG,GAClB,WAAC,MAAG,UAAWyC,E,SACZzC,EAAU,GAAG,CAAC,CAAC,CACd9P,KAAAA,CAAI,CAAEiQ,MAAAA,CAAK,CAAE5a,IAAAA,CAAG,CAAEib,OAAAA,CAAM,CAAEJ,MAAAA,CAAK,CAChC,GACC,WAAC,MAAc,UAAU,+B,SACvB,YAAC,KAAE,KAAM7a,EAAK,OAAQib,EAAQ,UAAWhC,KAAG,SAAU,CAAE,UAAWkE,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAWnd,EAAKid,EAAa,G,UAC7Fnf,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,GACFC,GAAS,WLXXN,GKWwBA,CAAC,KAAMM,EAAM,IAAI,A,OAHnClQ,G,IAWrB,CAEAqS,CAAAA,GAAgB,SAAS,CAAG,CAC1B,UAAWrX,GAAAA,KAAAA,CAAAA,UAAgB,CAC3B,OAAQ6S,GAAAA,IAAAA,CAAAA,UAAe,CACvB,YAAaC,GAAAA,MAAAA,CAAAA,UAAiB,AAChC,EClCA,IAAM2E,GAAmB,CAAC,CACxB3C,UAAAA,CAAS,CAAEyB,cAAAA,CAAa,CAAEC,UAAAA,CAAS,CAAEC,cAAAA,CAAa,CAAEiB,qBAAAA,CAAoB,CAAEC,mBAAAA,CAAkB,CAAE5C,OAAAA,CAAM,CAAE/B,WAAAA,CAAU,CACjH,IACC,IAAM4E,EAA0BtE,KAAG,qCAAsC,CACvEyB,OAAAA,CACF,GACA,MACE,YAAC,MAAG,UAAW6C,E,UACZ9C,EAAU,MAAM,CAAG,GAClB,WAAC,MAAG,UAAU,a,SACZ,YAAC,M,UACC,WAAC,MAAG,UAAU,+B,SAAgC3c,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEqe,E,GAC/C1B,EAAU,GAAG,CAAC,CAAC,CACd9P,KAAAA,CAAI,CAAEiQ,MAAAA,CAAK,CAAE5a,IAAAA,CAAG,CAAEwd,SAAAA,CAAQ,CAAEX,KAAAA,CAAI,CAAEhC,MAAAA,CAAK,CACxC,GAGG,WAAC,MAAc,UAAW,CAAC,4BAA4B,EAAElQ,AAAS,qBAATA,EAA8B,0CAA4C,GAAG,CAAC,C,SACrI,YAAC,KAAE,KAHM,CAACgO,GAAc6E,EAAWA,EAAWxd,EAG/B,UAAU,oC,UACtB6c,GAAQ,WAAC,OAAI,IAAKA,EAAM,IAAK/e,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,GAAQ,UAAU,mC,GACjD9c,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,GACFC,GAAS,WNZfN,GMY4BA,CAAC,KAAMM,EAAM,IAAI,A,GACvClQ,AAAS,qBAATA,GAA+B,WAAC,QAAK,UAAU,e,SAAgB7M,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,e,OAL7D6M,I,KAalBuR,EAAc,MAAM,CAAG,GACtB,WAAC,MAAG,UAAU,wB,SACZ,YAAC,M,UACC,WAAC,MAAG,UAAU,+B,SAAgCpe,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEse,E,GAC/CF,EAAc,GAAG,CAAC,CAAC,CAClBvR,KAAAA,CAAI,CAAEiQ,MAAAA,CAAK,CAAE5a,IAAAA,CAAG,CAAE6c,KAAAA,CAAI,CACvB,GACC,WAAC,MAAc,UAAU,+B,SACvB,YAAC,KAAE,KAAM7c,E,UACN6c,GAAQ,WAAC,OAAI,IAAKA,EAAM,IAAK/e,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,GAAQ,UAAU,mC,GACjD9c,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,G,IAHEjQ,IAOX,WAAC,MAAG,UAAU,+B,SACZ,YAAC,KAAE,KAAM2S,EAAoB,UAAU,6C,UACrC,WAAC,QAAK,UAAU,S,SAAUxf,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEuf,E,GAC5B,WAACvC,GAAAA,CAAgBA,CAAAA,CAAAA,G,YAQjC,CAEAsC,CAAAA,GAAiB,SAAS,CAAG,CAC3B,UAAWzX,GAAAA,KAAAA,CAAAA,UAAgB,CAC3B,cAAeA,GAAAA,KAAAA,CAAAA,UAAgB,CAC/B,UAAW8S,GAAAA,MAAAA,CAAAA,UAAiB,CAC5B,cAAeA,GAAAA,MAAAA,CAAAA,UAAiB,CAChC,qBAAsBA,GAAAA,MAAAA,CAAAA,UAAiB,CACvC,mBAAoBA,GAAAA,MAAAA,CAAAA,UAAiB,CACrC,OAAQD,GAAAA,IAAAA,CAAAA,UAAe,CACvB,WAAYA,GAAAA,IAAAA,CAAAA,UAAe,AAC7B,EClEA,IAAMiF,GAAoB,CAAC,CAAEhD,UAAAA,CAAS,CAAEC,OAAAA,CAAM,CAAE,IAC9C,IAAMgD,EAA2BzE,KAAG,sCAAuC,CACzEyB,OAAAA,CACF,GAEA,MACE,wB,SACGD,EAAU,MAAM,CAAG,GAClB,YAAC,MAAG,UAAWiD,E,UACb,WAAC,MAAG,UAAU,sC,SACZ,YAAC,KAAE,KAAK,wB,UACN,WAAC,OACC,IAAI,2EACJ,MAAM,eACN,IAAI,yB,GAEN,WAAC,KAAE,MAAM,S,SAAU5f,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,oD,GACrB,WAAC,OACC,IAAI,sEACJ,MAAM,iBACN,IAAI,2B,QAIT6f,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAWlD,GAAW,GAAG,CAACmD,AAAAA,GACzB,WAAC,M,SACEA,EAAM,GAAG,CAAC,CAAC,CACVjT,KAAAA,CAAI,CAAEiQ,MAAAA,CAAK,CAAE5a,IAAAA,CAAG,CAAE6a,MAAAA,CAAK,CACxB,GACC,WAAC,MAAc,UAAU,+B,SACvB,YAAC,KAAE,KAAM7a,EAAK,UAAU,S,UACrBlC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,GACFC,GAAS,WPvBfN,GOuB4BA,CAAC,KAAMM,EAAM,IAAI,A,OAHnClQ,G,QAazB,CAEA8S,CAAAA,GAAkB,SAAS,CAAG,CAC5B,UAAW9X,GAAAA,KAAAA,CAAAA,UAAgB,CAC3B,OAAQ6S,GAAAA,IAAAA,CAAAA,UAAe,AACzB,EC/CA,IAAMqF,GAAoB,CAAC,CACzBpD,UAAAA,CAAS,CACTC,OAAAA,CAAM,CACNyB,UAAAA,CAAS,CACT2B,kBAAAA,CAAiB,CAClB,IACC,IAAMC,EAA2B9E,KAAG,sCAAuC,CACzEyB,OAAAA,CACF,GAEA,MACE,wB,SACGD,EAAU,MAAM,CAAG,GAClB,YAAC,MAAG,UAAWsD,E,UACb,WAAC,MAAG,UAAU,+B,SAAgCjgB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEqe,E,GAC/C1B,EAAU,GAAG,CAAC,CAAC,CACd9P,KAAAA,CAAI,CAAEiQ,MAAAA,CAAK,CAAE5a,IAAAA,CAAG,CAAE6c,KAAAA,CAAI,CAAEhC,MAAAA,CAAK,CAC9B,GACC,WAAC,MAAc,UAAU,+B,SACvB,YAAC,KAAE,KAAM7a,EAAK,UAAU,oC,UACrB6c,GAAQ,WAAC,OAAI,IAAKA,EAAM,IAAK/e,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,GAAQ,UAAU,mC,GAClD,WAAC,Q,SAAM9c,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,E,GACRC,GAAS,WRbXN,GQawBA,CAAC,KAAMM,EAAM,IAAI,A,OAJnClQ,IAQVmT,GACC,WAAC,MAAG,UAAU,uD,SACZ,YAAC,KACC,OAAO,SACP,iBAAe,iBACf,KAAK,wLACL,UAAU,oC,UAEV,WAAC,OACC,OAAO,KACP,MAAM,MACN,IAAI,iBACJ,IAAI,oFACJ,UAAU,uB,GAEZ,WAAC,QAAK,UAAU,yB,SAA0BhgB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,sB,GAC5C,WAAC,QAAK,UAAU,wB,SAAyBA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,e,YAQ3D,CAEA+f,CAAAA,GAAkB,SAAS,CAAG,CAC5B,UAAWlY,GAAAA,KAAAA,CAAAA,UAAgB,CAC3B,OAAQ6S,GAAAA,IAAAA,CAAAA,UAAe,CACvB,UAAWC,GAAAA,MAAAA,CAAAA,UAAiB,CAC5B,kBAAmBD,GAAAA,IAAAA,CAAAA,UAAe,AACpC,E,8FCvDA,IAAMwF,GAAuB,CAAC,CAAEvD,UAAAA,CAAS,CAAEC,OAAAA,CAAM,CAAE,IACjD,IAAMuD,EAA8BhF,KAAG,yCAA0C,CAC/EyB,OAAAA,CACF,GAEA,MACE,wB,SACGD,EAAU,MAAM,CAAG,GACpB,WAAC,OAAI,UAAWwD,E,SACd,YAAC,MAAG,UAAU,a,UACXxD,EAAU,GAAG,CAAC,CAAC,CACd9P,KAAAA,CAAI,CAAEiQ,MAAAA,CAAK,CAAEsD,SAAAA,CAAQ,CAAEC,QAAAA,CAAO,CAAEC,SAAAA,CAAQ,CACzC,GACC,YAAC,MAAc,UAAU,+B,UACvB,WAAC,UACC,KAAK,SACL,UAAW,CAAC,OAAO,EAAEzT,EAAK,CAAC,C,SAE1B7M,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,E,GAEL,YAAC,M,UACC,WAAC,MAAG,UAAU,+B,SACX9c,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEogB,E,GAEJE,EAAS,GAAG,CAAC7f,AAAAA,GAEV,WAAC,MAAG,UAAU,+B,SACZ,YAAC,KAAE,KAAMA,EAAK,GAAG,CAAE,UAAU,oC,UAC3B,WAAC,OACC,IAAKT,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAES,EAAK,GAAG,CAAGA,EAAK,GAAG,CAAGA,EAAK,KAAK,EACvC,WAAUA,EAAK,IAAI,CACnB,UAAU,oCACV,IAAI,gF,GAEN,WAAC,QAAK,UAAU,S,SAAUT,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAES,EAAK,KAAK,C,GACrCA,EAAK,KAAK,EAAI,WT5BxBgc,GS4BqCA,CAAC,KAAMhc,EAAK,KAAK,CAAC,IAAI,A,OATJA,EAAK,IAAI,GAc/D,WAAC,MAAG,UAAU,+B,SACZ,YAAC,KAAE,KAAM4f,EAAQ,GAAG,CAAE,UAAU,6C,UAC9B,WAAC,QAAK,UAAU,S,SAAUrgB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEqgB,EAAQ,KAAK,C,GACzC,WAACrD,GAAAA,CAAgBA,CAAAA,CAAAA,G,IAH6BqD,EAAQ,KAAK,E,KA3B1DxT,IAoCX,WAAC,MAAG,UAAU,+B,SACZ,YAAC,KAAE,KAAK,iBAAiB,UAAU,6C,UACjC,WAAC,QAAK,UAAU,S,SAAU7M,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAAA,EAA0B,C,GACtD,WAACvD,GAAAA,CAAgBA,CAAAA,CAAAA,G,WAS/B,CAEAkD,CAAAA,GAAqB,SAAS,CAAG,CAC/B,UAAWrY,GAAAA,KAAAA,CAAAA,UAAgB,CAC3B,OAAQ6S,GAAAA,IAAAA,CAAAA,UAAe,AACzB,EpH1EA,SAAS,KAAa,MAAO,IAAW1V,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAYnR,OAViBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACzE,KAAM,OACN,MAAO,6BACP,QAAS,SACX,EAAGA,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,SAAU,UACV,EAAG,uVACH,KAAM,cACR,EAAC,GqHHD,IAAMsW,GAAU,CAAC,CACfxe,IAAAA,CAAG,CACHib,OAAAA,CAAM,CACNwD,SAAAA,CAAQ,CACRC,WAAAA,CAAU,CACVC,SAAAA,CAAQ,CACRC,WAAAA,CAAU,CACVnF,SAAAA,CAAQ,CACRV,QAAAA,CAAO,CACR,GACC,YAAC,uBACC,SAAU,EACV,UAAW2F,EACX,QAAS3F,EACT,UAAW3f,AAAAA,GAASylB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAiBzlB,EAAO2f,E,EACvC4F,GAAY,CAAE,gBAAiB,UAAW,KAAM,QAAS,EACzDF,IAAaK,GAAAA,EAAAA,CAAAA,IAAoB,EAAI,CAAE,KAAM9e,EAAK,OAAQib,CAAO,I,UAErExB,EACAmF,GAAc,WAAC,QAAK,UAAU,8B,GAC9BD,GAAY,WAACI,GAASA,CAAAA,G,GAI3BP,CAAAA,GAAQ,SAAS,CAAG,CAClB,SAAUxE,GAAAA,IAAAA,CAAAA,UAAe,CACzB,IAAKvB,GAAAA,MAAAA,CAAAA,UAAiB,CACtB,OAAQA,GAAAA,MAAAA,CAAAA,UAAiB,CACzB,MAAOA,GAAAA,MAAAA,CAAAA,UAAiB,CACxB,WAAYA,GAAAA,MAAAA,CAAAA,UAAiB,CAC7B,SAAUuG,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,IAAIlc,OAAO,MAAM,CAACoX,GAAAA,CAAUA,EAAE,EAC9C,SAAU8E,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,IAAIlc,OAAO,MAAM,CAACgc,GAAAA,EAAeA,EAAE,EACnD,QAAS1F,GAAAA,IAAAA,CAAAA,UAAe,CACxB,WAAYZ,GAAAA,IAAAA,CAAAA,UAAe,AAC7B,EAEAgG,GAAQ,YAAY,CAAG,CACrB,SAAUM,GAAAA,EAAAA,CAAAA,IAAoB,AAChC,ECzBA,IAAMG,GAAY,CAChB,QNoBajC,GMnBb,UH0Caa,GGzCb,aFoDaG,GEnDb,SLiDaZ,GKhDb,QPkEanB,GOjEb,KVuCazB,GUtCb,UJ2BaiD,EI1Bf,EAEMyB,GAAU,CAAC,CACfjV,KAAAA,CAAI,CACJkV,UAAAA,CAAS,CACTxG,WAAAA,CAAU,CACVyG,WAAAA,CAAU,CACVnC,YAAAA,CAAW,CACXX,aAAAA,CAAY,CACZ+C,cAAAA,CAAa,CACbC,gBAAAA,CAAe,CACfxB,kBAAAA,CAAiB,CACjByB,mBAAAA,CAAkB,CAClBlD,yBAAAA,CAAwB,CACxBmD,UAAAA,CAAS,CACTC,UAAAA,CAAS,CACTC,kBAAAA,CAAiB,CACjBC,kCAAAA,CAAiC,CACjCpD,4BAAAA,CAA2B,CAC5B,IACC,GAAM,CACJ3B,MAAAA,CAAK,CAAE5a,IAAAA,CAAG,CAAE4f,UAAAA,CAAS,CAAE3E,OAAAA,CAAM,CAAE0D,SAAAA,CAAQ,CAAEF,SAAAA,CAAQ,CAAE5B,KAAAA,CAAI,CAAEhC,MAAAA,CAAK,CAAEgF,SAAAA,CAAQ,CACzE,CAAGL,EAEEM,EAAgBb,EAAS,CAACN,EAAS,CAEnCC,EAAajG,GAAc0D,EAA2B,GAAKsC,IAAazE,GAAAA,CAAAA,CAAAA,OAAkB,EAAI,CAACoC,EAC/F5B,EAAS0E,IAAexE,EAGxBmF,EAAoB9G,KADD,2BACsB,CAC7C,WAAY0F,EACZ,QAAS,CAAC,CAAC9D,EACXsE,UAAAA,CACF,GACMa,EAAgB/G,KAAG,CACvByB,OAAAA,EACA,UAAWyC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAWnd,EAAKid,EAAa4C,EAAUF,GAClD,CAACC,EAAU,CAAEA,CACf,GAwCA,MACE,YAAC,MACC,UAAWG,EACX,aApBoB,KAClB,CAACR,GACHF,EAAc,GAElB,E,UAkBI,YDjESb,GCiEDA,CACN,IAAKyB,AAjBY,M,IACJC,EAAjB,GAAIf,GAAae,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAc,OAAdA,CAAAA,EAAAA,EAAM,QAAQ,AAAD,GAAbA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgB,YAAY,AAAD,GAAKjW,AAA+B,SAA/BA,EAAK,QAAQ,CAAC,YAAY,CAAa,CACtF,IAAMkW,EAAclW,EAAK,QAAQ,CAAC,YAAY,CACxCmW,EAAY,CAAC,EAAEnW,EAAK,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAEvDoW,EAAapD,AAAgB,MAAhBA,EAAsBA,EAAY,OAAO,CAAC,MAAO,IAAM,WAC1E,MAAO,GAAGjd,gBAAkBogB,oCAAiDC,kBAA2BF,GAAa,AACvH,CACA,OAAOngB,CACT,KASM,OAAQib,EACR,SAAUwD,EACV,SAAUE,EACV,WAAYC,EACZ,WAAYoB,EACZ,QAlDc,KAIlB,GAHAtK,WAAW,IAAM4J,EAAgB,CAAE,OAAQ,mBAAoB,OAAQ1E,EAAO,QAAS,aAAc,GAAI,GACzGyE,EAAc/d,AAAAA,GAASA,IAASsZ,EAAQ,GAAKA,GAEzC5a,EACF,GAAI,CACF,IAAMsgB,EAAY,IAAIC,IAAIvgB,GAEtBuf,GAAwBe,EAAU,IAAI,EAAIrD,IAAgBqD,EAAU,QAAQ,GAC9EZ,IACAhK,WAAW,KAET7hB,OAAO,QAAQ,CAAC,IAAI,CAAGysB,EAAU,IAAI,AACvC,EAAG,IAEP,CAAE,MAAOvV,EAAO,CACd5C,QAAQ,KAAK,CAAC,mBAAoB4C,EACpC,CAEJ,E,UAiCOoU,GAAa,WAACqB,GAAAA,CAAkBA,CAAAA,CAAC,UAAU,e,GAC3C3D,GAAQ,WAAC,OAAI,UAAU,gCAAgC,IAAKA,EAAM,IAAKjC,C,GACxE,WAAC,QAAK,UAAU,S,SAAU9c,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,E,GAC3BC,GAAS,WX9GHN,GW8GgBA,CAAC,KAAMM,EAAM,IAAI,A,MAEzC8D,GACD,WAACmB,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EACKL,GAAAA,CACJ,OAAQ/E,EACR,WAAY/B,EACZ,YAAasE,EACb,aAAcX,EACd,kBAAmBwB,EACnB,mBAAoByB,EACpB,yBAA0BlD,EAC1B,4BAA6BE,C,MAKrC,CAEA2C,CAAAA,GAAQ,SAAS,CAAG,CAClB,KAAMuB,GAAAA,EAAYA,CAClB,UAAWjI,GAAAA,IAAIA,CACf,WAAYA,GAAAA,IAAIA,CAChB,WAAYC,GAAAA,MAAAA,CAAAA,UAAiB,CAC7B,YAAaA,GAAAA,MAAAA,CAAAA,UAAiB,CAC9B,aAAcD,GAAAA,IAAAA,CAAAA,UAAe,CAC7B,cAAeY,GAAAA,IAAAA,CAAAA,UAAe,CAC9B,gBAAiBA,GAAAA,IAAIA,CACrB,kBAAmBZ,GAAAA,IAAAA,CAAAA,UAAe,CAClC,mBAAoBA,GAAAA,IAAIA,CACxB,yBAA0BuE,GAAAA,MAAMA,CAChC,UAAW2D,GAAAA,EAAAA,CAAAA,UAAuB,CAClC,UAAWC,GAAAA,EAAYA,CACvB,kBAAmBvH,GAAAA,IAAAA,CAAAA,UAAe,CAClC,kCAAmCZ,GAAAA,IAAAA,CAAAA,UAAe,CAClD,4BAA6BC,GAAAA,MAAMA,AACrC,EAEAyG,GAAQ,YAAY,CAAG,CACrB,KAAMllB,KAAAA,EACN,UAAW,GACX,WAAYA,KAAAA,EACZ,gBAAiBsD,AAAAA,GAAKA,EACtB,mBAAoB,GACpB,yBAA0B,EAC1B,4BAA6B,EAC/B,ECjKA,IAAMsjB,GAAW,CAAC,CAChB3W,KAAAA,CAAI,CACJ4W,SAAAA,CAAQ,CACRvB,gBAAAA,CAAe,CACfrC,YAAAA,CAAW,CACXtE,WAAAA,CAAU,CACV4G,mBAAAA,CAAkB,CAClBlD,yBAAAA,CAAwB,CACxByB,kBAAAA,CAAiB,CACjB5F,4BAAAA,CAA2B,CAC3BwH,kBAAAA,CAAiB,CACjBpD,aAAAA,CAAY,CACZC,4BAAAA,CAA2B,CAC5B,IACC,GAAM,CAAC6C,EAAYC,EAAc,CAAGyB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IACvC,CAAEzI,sBAAAA,CAAqB,CAAE0I,qBAAAA,CAAoB,CAAE,CAAGzI,GAAAA,EAAgCA,CAQpFsF,EAAQ,IALV,AAAIiD,AAAa,KAAbA,EAA2B,EAAE,CAC7B,AAAoB,SAAbA,GAA4BA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAU,MAAM,AAAD,IAAM,EAAUvG,GAC/DuG,EAGwB,CAG7B,CAACxI,EAAuB0I,EAAqB,CAAC,QAAQ,CAAC7I,IACzD0F,CAAAA,EAAQA,EAAM,MAAM,CAACrf,AAAAA,GAAQA,AAAc,iBAAdA,EAAK,IAAI,CAAmB,EAE3D,IAAMyiB,EAAqBpD,EAAM,IAAI,CAAC,CAAC,CAAE6B,UAAAA,CAAS,CAAE,GAAKA,MAAAA,EAAAA,KAAAA,EAAAA,EAAW,SAAS,CAAC,IAAI,CAAC,CAAC,CAAE,IAAKwB,CAAO,CAAE,GAAK9D,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAW8D,EAAShE,KAE7HxB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,K,IACJyF,EAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAA6B,OAA7BA,CAAAA,EAAAA,EAAoB,SAAS,AAAD,GAA5BA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA+B,KAAK,AAAD,GAAK3B,GAC1CF,EAAc2B,EAAmB,SAAS,CAAC,KAAK,CAEpD,EAAG,CAACzB,EAAoByB,EAAmB,EAE3C,IAAMrB,EAAoC/B,EAAM,IAAI,CAAC,CAAC,CAAE,UAAW,CAAE5d,IAAAA,EAAM,EAAE,CAAE,CAAE,CAAG,CAAC,CAAC,GAC7EmhB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAoBnhB,KAASmhB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAoBlE,IAG1D,MACE,wB,SACGW,EAAM,GAAG,CAAC,CAAC,CAAEjT,KAAAA,CAAI,CAAE6U,UAAAA,CAAS,CAAEC,UAAAA,CAAS,CAAE,GACxC,WDuHOP,GCvHCA,CAEN,KAAMjV,EACN,UAAWuV,EACX,UAAWC,EACX,aAAcnD,EACd,WAAY3D,EACZ,WAAYyG,EACZ,cAAeC,EACf,YAAapC,EACb,UAAWtS,AAAS,YAATA,EACX,gBAAiB2U,EACjB,kBAAmBxB,EACnB,mBAAoByB,EACpB,yBAA0BlD,EAC1B,kCAAmCsD,EACnC,kBAAmBD,EACnB,4BAA6BnD,C,EAhBxB5R,G,EAqBf,CAEAiW,CAAAA,GAAS,SAAS,CAAG,CACnB,KAAMH,GAAAA,EAAYA,CAClB,SAAUW,GAAAA,EAAgBA,CAC1B,gBAAiBhI,GAAAA,IAAIA,CACrB,YAAaX,GAAAA,MAAAA,CAAAA,UAAiB,CAC9B,WAAYD,GAAAA,IAAIA,CAChB,mBAAoBA,GAAAA,IAAIA,CACxB,yBAA0BuE,GAAAA,MAAMA,CAChC,kBAAmBvE,GAAAA,IAAAA,CAAAA,UAAe,CAClC,4BAA6BC,GAAAA,MAAAA,CAAAA,UAAiB,CAC9C,aAAcD,GAAAA,IAAAA,CAAAA,UAAe,CAC7B,kBAAmBY,GAAAA,IAAAA,CAAAA,UAAe,CAClC,4BAA6BX,GAAAA,MAAMA,AACrC,EAEAmI,GAAS,YAAY,CAAG,CACtB,KAAM5mB,KAAAA,EACN,SAAUsgB,GACV,gBAAiB,KAAO,EACxB,WAAYtgB,KAAAA,EACZ,mBAAoB,GACpB,yBAA0B,EAC1B,4BAA6B,EAC/B,ECjGA,IAAMqnB,GAAqB,CAAC,CAAEtI,QAAAA,CAAO,CAAE,GACrC,WAAC,UACC,KAAK,SACL,UAAU,0CACV,QAASA,E,SAERjb,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,U,EAIPujB,CAAAA,GAAmB,SAAS,CAAG,CAC7B,QAASjI,GAAAA,IAAIA,AACf,EAEAiI,GAAmB,YAAY,CAAG,CAChC,QAAS/jB,AAAAA,GAAKA,CAChB,EvHpBA,SAAS,KAAa,MAAO,IAAWwF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAenR,OAbiBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACzE,MAAO,6BACP,QAAS,aACX,EAAGA,GAAQjU,GAAOA,CAAAA,EAAkB,gBAAmB,CAAC,IAAK,CAC3D,KAAM,OACN,SAAU,SACZ,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,UACN,EAAG,uOACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,OACN,EAAG,u5CACL,GAAE,GCdF,SAAS,KAAa,MAAO,IAAW6O,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAWnR,OATsBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC9E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAGA,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,gnBACH,SAAU,SACZ,EAAC,GuHJD,IAAMoZ,GAAY,CAAC,CAAE5d,KAAAA,CAAI,CAAE,GAEvB,YAAC,OAAI,UAAU,mB,UACZA,IAAS6d,GAAAA,EAAAA,CAAAA,UAAsB,CAAG,WAACC,GAAaA,CAAC,UAAU,uB,GAA6B,WAACC,GAAQA,CAAC,UAAU,uB,GAC7G,WAAC,QAAK,UAAU,+B,SACb/d,IAAS6d,GAAAA,EAAAA,CAAAA,UAAsB,CAAGzjB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAAA,EAAgB,EAAIvgB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAAA,EAAsB,C,KAMzFiD,CAAAA,GAAU,SAAS,CAAG,CACpB,KAAMtC,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,IAAIlc,OAAO,MAAM,CAACye,GAAAA,EAAWA,EAAE,EAAE,UAAU,AACzD,ECXA,IAAMG,GAAW,CAAC,CAChBzX,KAAAA,CAAI,CACJ0X,kBAAAA,CAAiB,CACjB1E,YAAAA,CAAW,CACXX,aAAAA,CAAY,CACb,IACC,GAAM,CACJsF,aAAAA,CAAY,CAAEC,aAAAA,CAAY,CAAEC,YAAAA,CAAW,CAAEC,kBAAAA,CAAiB,CAC1DC,kBAAAA,CAAiB,CAAEC,yBAAAA,CAAwB,CAC5C,CAAGN,EAEEO,EAAcjJ,KAAG,8BAA+B8I,GAChDI,EAAkBlJ,KAAG,yBAA0B8I,GAE/C,CAAE,aAAcK,CAAmB,CAAEC,QAAAA,CAAO,CAAE,CAAGpY,GAAQ,CAAC,EAC1DqY,EAAiBD,AAAY,MAAZA,EAQjBE,EAAe,IACnB,AAAIjG,GAAgB8F,EACXb,GAAAA,EAAAA,CAAAA,UAAsB,GAE3Be,GACKf,GAAAA,EAAAA,CAAAA,KAAiB,CAK5B,MACE,yB,UACGK,GACC,yB,UACE,WAAC,OAAI,UAAU,0BAA0B,MAAO,CAAE,gBAAiBC,CAAa,C,GAChF,WAAC,KACC,KAAMC,EACN,UAAWI,EACX,MAAO,CAAE,MAAOF,CAAkB,EAClC,SAAU,E,SAETlkB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8jB,E,MAIRK,GACC,yB,UACE,WAAC,OAAI,UAAU,0BAA0B,MAAO,CAAE,gBAAiBJ,CAAa,C,GAChF,WAAC,KACC,KAAMC,EACN,UAAWK,EACX,aAAW,eACX,wBAAyB,CAAE,OAAQF,CAAyB,EAC5D,SAAU,C,MAKdO,AA5CmB,M,IACNC,EAAjB,IAAMC,EAAWD,MAAAA,EAAAA,KAAAA,EAAAA,AAA4C,OAA5CA,CAAAA,EAAAA,EAAa,OAAO,CAAC,sBAAuB,IAAG,GAA/CA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAkD,OAAO,CAAC,MAAO,IAElF,MAAOE,AADU,CAAC,WAAY,aAAc,WAAY,YAAa,aAAc,eAAgB,UAAW,mBAAoB,eAAe,CAAC,IAAI,CAACC,AAAAA,GAAQF,MAAAA,EAAAA,KAAAA,EAAAA,EAAU,QAAQ,CAACE,KAC/J,CAAChB,GAAgB,CAACK,CACvC,MAwC4BM,KACtB,WDjDOjB,GCiDGA,CAAC,KAAMiB,G,KAIzB,CAEAb,CAAAA,GAAS,SAAS,CAAG,CACnB,KAAMjB,GAAAA,EAAYA,CAClB,kBAAmBoC,GAAAA,EAAoBA,CACvC,YAAapK,GAAAA,MAAAA,CAAAA,UAAiB,CAC9B,aAAcD,GAAAA,IAAAA,CAAAA,UAAe,AAC/B,EAEAkJ,GAAS,YAAY,CAAG,CACtB,kBAAmBoB,GAAAA,EAAwBA,AAC7C,EvHrFA,SAAS,KAAa,MAAO,IAAWhgB,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CA+CnR,OA7C2BrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACnF,MAAO,CACL,UAAW,kBACb,EACA,KAAM,OACN,MAAO,6BACP,QAAS,YACX,EAAGA,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,EAAG,2dACH,KAAM,SACR,EAAC,EAAIhU,GAAWA,CAAAA,EAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,sdACH,KAAM,SACR,EAAC,EAAIC,GAAWA,CAAAA,EAAsB,gBAAmB,CAAC,OAAQ,CAChE,SAAU,UACV,SAAU,UACV,EAAG,wlBACH,KAAM,SACR,EAAC,EAAIC,GAAWA,CAAAA,EAAsB,gBAAmB,CAAC,OAAQ,CAChE,SAAU,UACV,SAAU,UACV,EAAG,8lBACH,KAAM,SACR,EAAC,EAAIC,GAAWA,CAAAA,EAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,owBACH,KAAM,SACR,EAAC,EAAIC,GAAWA,CAAAA,EAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,iVACH,KAAM,SACR,EAAC,EAAIC,GAAWA,CAAAA,EAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,sgBACH,KAAM,SACR,EAAC,EAAIC,GAAWA,CAAAA,EAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,mLACH,KAAM,SACR,EAAC,EAAIC,GAAWA,CAAAA,EAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,iPACH,KAAM,SACR,EAAC,EAAIC,GAAYA,CAAAA,EAAuB,gBAAmB,CAAC,OAAQ,CAClE,EAAG,kPACH,KAAM,SACR,EAAC,EAAIC,GAAYA,CAAAA,EAAuB,gBAAmB,CAAC,OAAQ,CAClE,EAAG,4OACH,KAAM,SACR,EAAC,GC9CD,SAAS,KAAa,MAAO,IAAWmO,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CA+CnR,OA7C4BrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACpF,MAAO,CACL,UAAW,kBACb,EACA,KAAM,OACN,MAAO,6BACP,QAAS,YACX,EAAGA,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,EAAG,2dACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,sdACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,SAAU,UACV,SAAU,UACV,EAAG,wlBACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,SAAU,UACV,SAAU,UACV,EAAG,8lBACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,owBACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,iVACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,sgBACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,mLACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,iPACH,KAAM,SACR,EAAC,EAAI,GAAY,GAAuB,gBAAmB,CAAC,OAAQ,CAClE,EAAG,kPACH,KAAM,SACR,EAAC,EAAI,GAAY,GAAuB,gBAAmB,CAAC,OAAQ,CAClE,EAAG,4OACH,KAAM,SACR,EAAC,GC9CD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CA+CnR,OA7CgCrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACxF,MAAO,CACL,UAAW,kBACb,EACA,KAAM,OACN,MAAO,6BACP,QAAS,YACX,EAAGA,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,EAAG,2dACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,sdACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,SAAU,UACV,SAAU,UACV,EAAG,wlBACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,SAAU,UACV,SAAU,UACV,EAAG,8lBACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,owBACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,iVACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,sgBACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,mLACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,iPACH,KAAM,SACR,EAAC,EAAI,GAAY,GAAuB,gBAAmB,CAAC,OAAQ,CAClE,EAAG,kPACH,KAAM,SACR,EAAC,EAAI,GAAY,GAAuB,gBAAmB,CAAC,OAAQ,CAClE,EAAG,4OACH,KAAM,SACR,EAAC,GC9CD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAiCnR,OA/BiCrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACzF,MAAO,CACL,UAAW,kBACb,EACA,QAAS,aACT,KAAM,OACN,MAAO,6BACP,UAAW,sBACb,EAAGA,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,SAAU,UACV,EAAG,+wFACH,UAAW,8CACX,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,qNACH,UAAW,gBACX,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,8lBACH,UAAW,gBACX,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,wlBACH,UAAW,aACX,KAAM,MACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,6lBACH,UAAW,gBACX,KAAM,SACR,EAAC,GChCD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAiCnR,OA/BkCrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC1F,MAAO,CACL,UAAW,kBACb,EACA,QAAS,aACT,KAAM,OACN,MAAO,6BACP,UAAW,sBACb,EAAGA,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,SAAU,UACV,EAAG,+wFACH,UAAW,8CACX,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,qNACH,UAAW,gBACX,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,8lBACH,UAAW,gBACX,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,wlBACH,UAAW,aACX,KAAM,MACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,6lBACH,UAAW,gBACX,KAAM,SACR,EAAC,GChCD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAiCnR,OA/BsCrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC9F,MAAO,CACL,UAAW,kBACb,EACA,QAAS,aACT,KAAM,OACN,MAAO,6BACP,UAAW,sBACb,EAAGA,GAAQ,GAAU,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,SAAU,UACV,EAAG,+wFACH,UAAW,8CACX,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,qNACH,UAAW,gBACX,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,8lBACH,UAAW,gBACX,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,wlBACH,UAAW,aACX,KAAM,SACR,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,EAAG,6lBACH,UAAW,gBACX,KAAM,SACR,EAAC,GmHlBD,IAAM6a,GAAa,CAAC,CAClBC,MAAAA,CAAK,CACLC,SAAAA,CAAQ,CACRrD,UAAAA,CAAS,CACT,UAAW,CAAEsD,cAAAA,CAAa,CAAE,CAC5B3D,mBAAAA,CAAkB,CACnB,IAqBC,IAAM4D,EAnBJ,AAAI5D,EACK0D,EAAWG,GAAwBC,GAGxCH,EACKD,EAAWK,GAA6BC,GAG7CC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYR,GACPC,EAAWQ,GAAyBC,GAGzCC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAaX,IAAUY,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYZ,GAC9BC,EAAWG,GAAwBC,GAGrC,KAKT,MAAO,WAACF,EAAAA,CAAa,UAAWvD,C,EAClC,CAEAmD,CAAAA,GAAW,SAAS,CAAG,CACrB,MAAOc,GAAAA,EAAAA,CAAAA,UAAwB,CAC/B,UAAWpL,GAAAA,MAAMA,CACjB,SAAUD,GAAAA,IAAIA,CACd,UAAWsL,GAAAA,EAAYA,CACvB,mBAAoBtL,GAAAA,IAAIA,AAC1B,EAEAuK,GAAW,YAAY,CAAG,CACxB,UAAW,GACX,SAAU,GACV,UAAWgB,GAAAA,EAAgBA,CAC3B,mBAAoB,EACtB,ECnDA,IAAMC,GAAO,CAAC,CACZhB,MAAAA,CAAK,CACLiB,SAAAA,CAAQ,CACR3kB,SAAAA,CAAQ,CACRggB,gBAAAA,CAAe,CACfC,mBAAAA,CAAkB,CAClBjD,aAAAA,CAAY,CACZ,UAAW,CACT4H,QAAAA,CAAO,CACPhB,cAAAA,CAAa,CACbiB,yBAAAA,CAAwB,CACxBC,yCAAAA,CAAwC,CACxCC,uBAAAA,CAAsB,CACtBC,uCAAAA,CAAsC,CACtCC,kBAAAA,CAAiB,CAClB,CACF,IACC,IAAMC,EAAeL,GAA4BE,EAC3CpB,EAAW3jB,AAAa,UAAbA,EACXmlB,EAAiBxL,KAAG,CAAEgL,SAAAA,CAAS,GAC/BjkB,EAAMkkB,GAAW,IAEjBQ,EAAmCnF,GAAsB6E,EAA2CA,EAA2CD,EAC/IQ,EAAiCpF,GAAsB+E,EAAyCA,EAAyCD,EAEzIO,EAAc5wB,AAAAA,IAClBA,EAAE,cAAc,GAEZsoB,GACFgD,EAAgB,CAAE,OAAQ,QAAS,OAAQ,iBAAkB,GAG/DrhB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAuB+B,EAAK,QAAS,GACvC,QAEA,AAAI,CAACwkB,GAAiBA,GAAgBvB,EAElC,YAAC,KACC,KAAMjjB,EACN,SAAU,EACV,GAAG,gBACH,aAAW,eACX,UAAU,uBACV,QAAS4kB,E,UAER,CAACtI,GACA,WDOKyG,GCPMA,CACT,MAAOxD,EAAqBsF,GAAAA,CAAAA,CAAAA,KAAe,CAAG7B,EAC9C,SAAUC,EACV,UAAWwB,EACX,UAAW,CAAEvB,cAAAA,CAAc,EAC3B,mBAAoB3D,C,GAGvBjD,GAAgBiI,GAAqB,WAAC,OAAI,IAAKA,EAAmB,IAAI,c,MAM3E,yB,UACGG,GACC,WAAC,KACC,KAAM1kB,EACN,SAAU,EACV,UAAU,uBACV,aAAW,eACX,QAAS4kB,E,SAERF,C,GAGJC,GACC,WAAC,KACC,SAAU,EACV,KAAM3kB,EACN,aAAW,eACX,UAAU,uBACV,wBAAyB,CAAE,OAAQ2kB,CAA+B,EAClE,QAASC,C,KAKnB,CAEAZ,CAAAA,GAAK,SAAS,CAAG,CACf,MAAOH,GAAAA,EAAAA,CAAAA,UAAwB,CAC/B,SAAUrL,GAAAA,IAAIA,CACd,SAAUC,GAAAA,MAAMA,CAChB,UAAWqL,GAAAA,EAAYA,CACvB,gBAAiB1K,GAAAA,IAAIA,CACrB,mBAAoBZ,GAAAA,IAAIA,CACxB,aAAcA,GAAAA,IAAAA,CAAAA,UAAe,AAC/B,EAEAwL,GAAK,YAAY,CAAG,CAClB,SAAU,GACV,SAAUhqB,KAAAA,EACV,UAAW+pB,GAAAA,EAAgBA,CAC3B,gBAAiBzmB,AAAAA,GAAKA,EACtB,mBAAoB,EACtB,ECnGA,IAAMwnB,GAAY,CAAC,CACjB7a,KAAAA,CAAI,CACJ+Y,MAAAA,CAAK,CACLiB,SAAAA,CAAQ,CACR3kB,SAAAA,CAAQ,CACRylB,UAAAA,CAAS,CACTpD,kBAAAA,CAAiB,CACjBpC,mBAAAA,CAAkB,CAClBD,gBAAAA,CAAe,CACfhD,aAAAA,CAAY,CACZW,YAAAA,CAAW,CACZ,GAEG,yB,UACE,WDuFS+G,GCvFJA,CACH,MAAOhB,EACP,SAAUiB,EACV,SAAU3kB,EACV,UAAWylB,EACX,mBAAoBxF,EACpB,gBAAiBD,EACjB,aAAchD,C,GAEhB,WHqDSoF,GGrDAA,CACP,KAAMzX,EACN,MAAO+Y,EACP,aAAc1G,EACd,kBAAmBqF,EACnB,mBAAoBpC,EACpB,YAAatC,C,KAMrB6H,CAAAA,GAAU,SAAS,CAAG,CACpB,mBAAoBtM,GAAAA,IAAIA,CACxB,SAAUA,GAAAA,IAAIA,CACd,KAAMiI,GAAAA,EAAYA,CAClB,MAAOoD,GAAAA,EAAAA,CAAAA,UAAwB,CAC/B,SAAUpL,GAAAA,MAAMA,CAChB,UAAWqL,GAAAA,EAAYA,CACvB,kBAAmBjB,GAAAA,EAAoBA,CACvC,gBAAiBzJ,GAAAA,IAAIA,CACrB,aAAcZ,GAAAA,IAAAA,CAAAA,UAAe,CAC7B,YAAaC,GAAAA,MAAAA,CAAAA,UAAiB,AAChC,EAEAqM,GAAU,YAAY,CAAG,CACvB,mBAAoB,GACpB,SAAU,GACV,SAAU9qB,KAAAA,EACV,UAAW+pB,GAAAA,EAAgBA,CAC3B,kBAAmBjB,GAAAA,EAAwBA,CAC3C,gBAAiBxlB,AAAAA,GAAKA,CACxB,ECjEO,IAAM0nB,GAAkB1L,GAAAA,EAAAA,CAAAA,GAAU,CAAC;kBACxB,EAAEpR,AAAAA,GAASA,EAAM,UAAU,CAAC,gBAAgB,EAAI,cAAc;yBACvD,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,sBAAsB,EAAI,2BAA2B;yBACjF,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,aAAa,EAAI,UAAU;wBACxD,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,YAAY,EAAI,UAAU;+BAC/C,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,kBAAkB,EAAI,UAAU;8BAC7D,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,iBAAiB,EAAI,UAAU;uBAClE,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,kBAAkB,EAAI,UAAU;0BACzD,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,oBAAoB,EAAI,UAAU;oBACpE,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,YAAY,EAAI,OAAO;;;;;;AAMvE,CAAC,CCfK+c,GAAoB3L,GAAAA,EAAAA,CAAAA,GAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCrC,CAAC,CCxCK4L,GAAW5L,GAAAA,EAAAA,CAAAA,GAAU,CAAC;;YAEhB,EAAEpR,AAAAA,GAASA,EAAM,UAAU,CAAC,cAAc,EAAI,WAAW;;;;;;;oBAOjD,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,gBAAgB,EAAI,UAAU;2BACnD,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,sBAAsB,EAAI,wBAAwB;2BAC9E,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,aAAa,EAAI,OAAO;0BACrD,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,YAAY,EAAI,OAAO;iCAC5C,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,kBAAkB,EAAI,UAAU;gCAC7D,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,iBAAiB,EAAI,UAAU;yBAClE,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,kBAAkB,EAAI,OAAO;4BACtD,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,oBAAoB,EAAI,UAAU;sBACpE,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,YAAY,EAAI,OAAO;;;;IAIrE,EDqBW+c,GCrBS;;;;;;;;;;oBAUJ,EAAE/c,AAAAA,GAASA,EAAM,UAAU,CAAC,gBAAgB,EAAI,UAAU;2BACnD,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,sBAAsB,EAAI,2BAA2B;2BACjF,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,aAAa,EAAI,UAAU;0BACxD,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,YAAY,EAAI,UAAU;iCAC/C,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,kBAAkB,EAAI,UAAU;gCAC7D,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,iBAAiB,EAAI,UAAU;yBAClE,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,kBAAkB,EAAI,OAAO;4BACtD,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,oBAAoB,EAAI,UAAU;sBACpE,EAAEA,AAAAA,GAASA,EAAM,UAAU,CAAC,YAAY,EAAI,OAAO;;;;IAIrE,EDDW+c,GCCS;;;;;;;;;;;;;;;;;;;IAmBpB,EDpBWA,GCoBS;;;;;;AAMxB,CAAC,CCrEKE,GAAgB7L,GAAAA,EAAAA,CAAAA,GAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgKjC,CAAC,CC5JK8L,GAAqB,CAAC,CAAEjN,+BAAAA,CAA8B,CAAE,GAE1D,WAAC,KACC,KAAK,SACL,KAAMA,EACN,UAAU,0C,SAETra,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,gB,EAKTsnB,CAAAA,GAAmB,SAAS,CAAG,CAC7B,+BAAgC3M,GAAAA,MAAAA,CAAAA,UAAiB,AACnD,ECKA,IAAM4M,GAAa,CAAC,CAClBC,kBAAAA,CAAiB,CACjB9L,mBAAAA,CAAkB,CAClBC,SAAAA,CAAQ,CACR8L,eAAAA,CAAc,CACdR,UAAAA,CAAS,CACTpD,kBAAAA,CAAiB,CACjB/H,iBAAAA,CAAgB,CAChB5B,gBAAAA,CAAe,CACfC,iBAAAA,CAAgB,CAChBuN,QAAAA,CAAO,CACPC,UAAAA,CAAS,CACT/L,eAAAA,CAAc,CACd6F,mBAAAA,CAAkB,CAClB0E,SAAAA,CAAQ,CACRyB,wBAAAA,CAAuB,CACvBC,0BAAAA,CAAyB,CACzB1b,KAAAA,CAAI,CACJ+Y,MAAAA,CAAK,CACL1D,gBAAAA,CAAe,CACfrC,YAAAA,CAAW,CACXtE,WAAAA,CAAU,CACVkB,mBAAAA,CAAkB,CAClB+L,4BAAAA,CAA2B,CAC3BtmB,SAAAA,CAAQ,CACRumB,WAAAA,CAAU,CACVvJ,aAAAA,CAAY,CACZwB,kBAAAA,CAAiB,CACjB5F,4BAAAA,CAA2B,CAC3BC,+BAAAA,CAA8B,CAC9BoE,4BAAAA,CAA2B,CAC5B,I,IAkC8BuJ,EAAAA,EAAAA,EAjC7B,GAAM,CAACC,EAAUC,EAAY,CAAGlF,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,CAAC,GACpCmF,EAAiBhN,KAAG,YAAa,CACrC,uBAAyBuK,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYR,IAAU,CAACtJ,GAAoB8J,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYR,IAAUtJ,GAAkB,CAAC6F,EAC7G,uBAAyBqE,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYZ,IAAU,CAACtJ,GAAoBkK,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYZ,IAAUtJ,GAAkB,CAAC6F,EAC7G,SAAU0E,GAAY,CAAC1E,EACvB,wBAAyBkG,EACzB,CAACS,GAAAA,EAAmB,CAAClD,EAAM,CAAC,CAAE,CAAC,CAACkD,GAAAA,EAAmB,CAAClD,EAAM,CAC1DzD,mBAAAA,CACF,GAEM,CAAEnH,qBAAAA,CAAoB,CAAE,CAAGE,GAAAA,EAAgCA,CAE3D6N,EAAiBlN,KAAG,uBAAwB,CAChDwM,UAAAA,EACA,aAAc/L,GAAkB6F,EAChCA,mBAAAA,EACAjD,aAAAA,CACF,GAGAb,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACJ,CAAEoK,CAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAY,gBAAgB,AAAD,GAAKA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAY,sBAAsB,AAAD,CAAC,IAClEL,GAAWvB,EACb+B,EAAY,CAAE,wBAAyBR,CAAQ,GACtCA,GACTQ,EAAY,CAAE,iBAAkBR,CAAQ,GAG9C,EAAG,CAACA,EAASvB,EAAU4B,EAAW,EAElC,IAAMxJ,EAA2Bla,SAAS8H,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,wBAAwB,AAAD,GAAK,EAAG,IAE/E,MACE,WAACmc,GAAAA,EAAiBA,CAAAA,CAAC,OAAM,AAAe,OAAbN,CAAAA,EAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAuB,OAAvBA,CAAAA,EAAAA,EAAe,QAAQ,AAAD,GAAtBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAuC,OAAvCA,CAAAA,EAAAA,EAAyB,aAAa,CAAC,yBAAwB,GAA/DA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAkE,UAAU,C,SACrG,YLxESd,GKwEOA,CAAC,WAAYa,E,UAC1BpM,EACD,WHpBOyL,GGoBEA,CACP,UAAWe,EACX,WAAYJ,EACZ,MAAOE,E,SAEP,YJrDKd,GIqDaA,CAAC,UAAWkB,EAAgB,GAAG,gB,UAC/C,YFiEGhB,GEjEWA,C,UAEZ,WNhCCL,GMgCSA,CACR,KAAM7a,EACN,MAAO+Y,EACP,SAAUiB,EACV,SAAU3kB,EACV,mBAAoBigB,EACpB,UAAWwF,EACX,kBAAmBpD,EACnB,gBAAiBrC,EACjB,aAAchD,EACd,YAAaW,C,GAGf,WAACqI,EAAAA,CAAAA,GAED,YAAC,OAAI,UAAU,wB,UACX,CAAC1L,GAAoB,CAAC3B,GAAoB,CAACU,GAAc,CAACkB,GAAsB3B,IAAgCE,GAChH,WX/FHiJ,GW+FsBA,CACjB,QAASsE,C,GAIX,CAAC/L,GAAoB,CAAC3B,GAAoB,CAACU,GAAc,CAACkB,GAAsB3B,IAAgCE,GAChH,WDtGHgN,GCsGsBA,CACjB,+BAAgCjN,C,GAGlCoN,AAAAA,CAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAgB,MAAM,AAAD,EAAI,GAAK,CAAC3L,CAAe,GAC9C,WpClGHd,GoCkGmBA,CACd,SAAUyG,EACV,QAASmG,C,SAKjB,YlC5DGnM,GkC4DQA,CACT,WAAYZ,EACZ,SAAU1O,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,QAAQ,CACxB,UAAWA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,SAAS,CAC1B,SAAUsV,EACV,iBAAkB3F,EAClB,gBAAiB5B,EACjB,iBAAkBC,EAClB,mBAAoBuB,EACpB,mBAAoBK,EACpB,4BAA6B3B,EAC7B,+BAAgCC,E,UAEhC,WZ7CCyI,GY6CQA,CACP,KAAM3W,EACN,WAAY0O,EACZ,YAAasE,EACb,SAAUsI,EACV,aAAcjJ,EACd,gBAAiBgD,EACjB,kBAAmBxB,EACnB,mBAAoByB,EACpB,yBAA0BlD,EAC1B,4BAA6BnE,EAC7B,kBAAmBwN,EACnB,4BAA6BnJ,C,GAE7B1C,GAAsB,CAACD,GACzB,WAAC,MACC,UAAU,kCACV,wBAAyB,CAAE,OAAQgM,GAA+B/L,CAAmB,C,eASrG,CAEAwL,CAAAA,GAAW,SAAS,CAAG,CACrB,kBAAmBtL,GAAAA,WAAWA,CAC9B,mBAAoBA,GAAAA,WAAWA,CAC/B,UAAW+J,GAAAA,EAAYA,CACvB,kBAAmBjB,GAAAA,EAAoBA,CACvC,eAAgBzB,GAAAA,EAAAA,CAAAA,UAA2B,CAC3C,iBAAkB5I,GAAAA,IAAIA,CACtB,gBAAiBA,GAAAA,IAAIA,CACrB,iBAAkBA,GAAAA,IAAIA,CACtB,SAAUwB,GAAAA,IAAIA,CACd,QAASvB,GAAAA,MAAMA,CACf,UAAWD,GAAAA,IAAIA,CACf,eAAgBA,GAAAA,IAAIA,CACpB,mBAAoBA,GAAAA,IAAIA,CACxB,SAAUA,GAAAA,IAAIA,CACd,wBAAyBY,GAAAA,IAAIA,CAC7B,0BAA2BA,GAAAA,IAAIA,CAC/B,KAAMqH,GAAAA,EAAYA,CAClB,MAAOoD,GAAAA,EAAAA,CAAAA,UAAwB,CAC/B,gBAAiBzK,GAAAA,IAAIA,CACrB,YAAaX,GAAAA,MAAAA,CAAAA,UAAiB,CAC9B,WAAYD,GAAAA,IAAAA,CAAAA,UAAe,CAC3B,mBAAoBC,GAAAA,MAAMA,CAC1B,4BAA6BA,GAAAA,MAAMA,CACnC,SAAUA,GAAAA,MAAAA,CAAAA,UAAiB,CAC3B,WAAY4N,GAAAA,EAAkBA,CAC9B,aAAc7N,GAAAA,IAAAA,CAAAA,UAAe,CAC7B,kBAAmBA,GAAAA,IAAAA,CAAAA,UAAe,CAClC,4BAA6BC,GAAAA,MAAAA,CAAAA,UAAiB,CAC9C,+BAAgCA,GAAAA,MAAAA,CAAAA,UAAiB,CACjD,4BAA6BA,GAAAA,MAAMA,AACrC,EAEA4M,GAAW,YAAY,CAAG,CACxB,KAAMrrB,KAAAA,EACN,kBAAmBssB,GAAAA,QAAQA,CAC3B,mBAAoBtsB,KAAAA,EACpB,UAAW+pB,GAAAA,EAAgBA,CAC3B,kBAAmBjB,GAAAA,EAAwBA,CAC3C,iBAAkB,GAClB,gBAAiB,GACjB,iBAAkB,GAClB,SAAU,KACV,QAAS,GACT,UAAW,GACX,eAAgB,GAChB,mBAAoB,GACpB,SAAU,GACV,wBAAyB,KAAO,EAChC,0BAA2B,KAAO,EAClC,gBAAiB,KAAO,EACxB,mBAAoB,GACpB,4BAA6B,GAC7B,WAAY,CAAC,EACb,4BAA6B,EAC/B,E,8CCrOO,IAAMyD,GAA2B,MAAOtc,EAAMuc,EAAkBC,K,IAG3CC,EAAAA,EAF1B,GAAI,CAACF,GAAoB,CAACA,EAAiB,eAAe,EAAI,CAACA,EAAiB,cAAc,CAAE,OAEhG,GAAM,CAAE9D,SAAAA,EAAW,EAAE,CAAE,CAAGgE,AAAAA,CAAAA,AAAMA,OAANA,CAAAA,EAAAA,EAAAA,CAAMA,AAANA,GAAAA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAc,OAAdA,CAAAA,EAAAA,EAAQ,MAAM,AAAD,GAAbA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgB,QAAQ,AAAD,GAAK,CAAC,EACvD,GAAI,CAAChE,EAAS,QAAQ,CAAC,oBACnB,CAAClZ,UAE8Bmd,AAA0C,SAA1CA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAW,2BAHH,OAM3C,IAAMC,EAAeptB,MAAM,IAAI,CAACgQ,SAAS,gBAAgB,CAAC,SACvD,MAAM,CAACqd,AAAAA,GAAQA,EAAK,YAAY,CAAC,aAAeA,AAAkC,cAAlCA,EAAK,YAAY,CAAC,aAClE,GAAG,CAACC,AAAAA,GAAQA,EAAK,YAAY,CAAC,aAE3B,CACJC,gBAAAA,CAAe,CAAEC,eAAAA,CAAc,CAChC,CAAGR,EAEES,EAA4BL,EAAa,IAAI,CAACE,AAAAA,GAAQA,IAASC,EAAgB,KAAK,CAAC,IAAI,CAAC,EAAE,EAClG,GAAIA,IAAoBC,GAAkBC,EAA2B,CACnE,IAAMC,EAAgB,IAAIC,GAAAA,CAAaA,CAAC,CACtCld,KAAAA,EACA,cAAe,GACf,gBAAiB,QACjB,mBAAoB,QACpB,SAAU,qBACV,SAAU,+BACZ,GACA,GAAI,CAEF,GAD6B,MAAMid,EAAc,aAAa,GACpC,CACxB,IAAME,EAA8BF,EAAc,oBAAoB,AACtEG,CAAAA,EAAAA,CAAMA,CAAC,MAAM,CAAC,2BAA2B,CAAGD,EAC5CX,EAA2B,GAC7B,CACF,CAAE,MAAO1b,EAAO,CAEhB,CACF,CACF,E,gCCvCO,IAAMuc,GAAcC,AAAAA,CAAAA,EAAAA,GAAAA,aAAAA,AAAAA,IAErBC,GAAe,CAAC,CAAEC,WAAAA,CAAU,CAAEhO,SAAAA,CAAQ,CAAE,GAE1C,WAAC6N,GAAY,QAAQ,EAAC,MAAOG,E,SAC1BhO,C,EAKP+N,CAAAA,GAAa,SAAS,CAAG,CACvB,WAAYhP,GAAAA,IAAIA,CAChB,SAAUwB,GAAAA,IAAIA,AAChB,EAEAwN,GAAa,YAAY,CAAG,CAC1B,WAAY,GACZ,SAAU,IACZ,E,0KCiBO,IAAME,GAA8CC,GAAAA,EAAmBA,C,gCCtBvE,IAAMC,GAAoBC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAA2B,2BAA4B,CACtF,SAAU,CACR,KAAM,CACJ,MAAO,MACP,OAAQ,OACR,MAAO,MACT,EACA,WAAY,CAAC,EACb,SAAU,CAAC,EACX,SAAU,CAAC,EACX,MAAO,CAAC,EACR,GAAI,CACF,MAAO,WACT,EACA,OAAQ,CAAC,CACX,EACA,iBAAkB,CAChB,CACE,OAAQ,GACR,KAAM,QACN,UAAW,MACb,EACA,CACE,OAAQ,GACR,KAAM,CAAC,SAAU,QAAQ,CACzB,UAAW,MACb,EACA,CACE,OAAQ,GACR,GAAI,SACJ,KAAM,QACN,UAAW,WACb,EACA,CACE,OAAQ,GACR,GAAI,SACJ,KAAM,SACN,UAAW,WACb,EACA,CACE,OAAQ,GACR,GAAI,SACJ,KAAM,QACN,UAAW,YACb,EACA,CACE,MAAO,QACP,GAAI,SACJ,UAAW,gBACb,EACA,CACE,MAAO,OACP,GAAI,SACJ,UAAW,aACb,EACA,CACE,KAAM,CAAC,QAAS,SAAS,CACzB,UAAW,SACb,EACA,CACE,KAAM,QACN,UAAW,SACb,EACA,CACE,SAAU,GACV,UAAW,+BACb,EACA,CACE,SAAU,GACV,WAAY,GACZ,SAAU,GACV,MAAO,QACP,UAAW,YACb,EACA,CACE,SAAU,GACV,WAAY,GACZ,MAAO,QACP,UAAW,aACb,EACA,CACE,SAAU,GACV,WAAY,GACZ,SAAU,GACV,MAAO,OACP,UAAW,aACb,EACA,CACE,SAAU,GACV,WAAY,GACZ,MAAO,OACP,UAAW,aACb,EACA,CACE,GAAI,QACJ,MAAO,QACP,UAAWC,GAAAA,CAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,IAAwB,AACrC,EACA,CACE,GAAI,QACJ,MAAO,OACP,UAAW,gBACb,EACD,AACH,GAEaC,GAAwBF,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAyB,WAAY,CACxE,SAAU,CACR,KAAM,CACJ,MAAO,eACP,OAAQ,eACR,MAAO,cACT,CACF,CACF,GAEaG,GAAkBH,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAA0B,uBAAwB,CAC/E,SAAU,CACR,MAAO,CACL,MAAO,2CACP,KAAM,4BACR,CACF,CACF,GAEaI,GAAyBJ,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAA0B,oBAAqB,CACnF,SAAU,CACR,MAAO,CACL,MAAO,mBACP,KAAM,mBACR,CACF,CACF,GAEaK,GAA4BL,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAgD,cACvF,CACE,SAAU,CACR,KAAM,CACJ,MAAO,cACP,OAAQ,cACR,MAAO,eACT,EACA,MAAO,CACL,MAAO,CAACC,GAAAA,CAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,IAAwB,CAAEA,GAAAA,CAAAA,CAAAA,UAAAA,CAAAA,QAAAA,CAAAA,IAAgC,CAAC,CACnE,KAAM,aACR,CACF,CACF,G,2CC1JK,IAAMK,GAASN,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EACpB,uFAAwF,CACtF,SAAU,CACR,KAAM,CACJ,MAAO,mBACP,OAAQ,qBACR,MAAO,kBACT,EACA,WAAY,CACV,KAAM,cACN,KAAM,aACN,MAAO,eACP,OAAQ,gBACR,OAAQ,gBACR,IAAK,aACL,OAAQ,eACV,EACA,SAAU,CACR,KAAM,aACN,MAAO,EACT,CACF,CACF,GAGWO,GAAaP,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAoB,WAAY,CACxD,SAAU,CACR,KAAM,CACJ,MAAO,OACP,OAAQ,SACR,MAAO,MACT,CACF,CACF,GAEaQ,GAAaR,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAoB,yBAA0B,CACtE,SAAU,CACR,KAAM,CACJ,MAAO,UACP,OAAQ,UACR,MAAO,SACT,CACF,CACF,MCzCc,YACN,SCHKS,GAAM,AAACpgB,Q,IAClB,GAAM,CACJ0X,UAAAA,CAAS,CACTnG,SAAAA,CAAQ,CACR8O,WAAAA,IAAuC,CACvCC,KAAAA,IAA2B,CAC3B,KAAMC,CAAS,CACf1P,QAAAA,CAAO,CACPlD,SAAAA,CAAQ,CAET,CAAG3N,EADC7O,EAAAA,A,6XACD6O,EAAAA,CARF0X,YACAnG,WACA8O,aACAC,OACA,OACAzP,UACAlD,W,EAOI6S,EAAezP,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAG2G,EAAWuI,GAAO,CACxCI,WAAAA,EACAC,KAAAA,EACA,SAAU,CAAC,CAAC3S,CACd,IAEM8S,EAAqB1P,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAG,8DAA+D,CAC3F,qBAAsB,CAAC,CAACpD,CAC1B,GAEA,MACE,YAAC,Q,EAAA,A,6aAAA,CAAK,UAAW6S,C,EAAkBrvB,G,KAAAA,C,UAChCuvB,AAdW,CAAC,CAACH,GAcF,WAACA,EAAAA,CAAU,UAAWJ,GAAW,CAAEG,KAAAA,CAAK,E,GACnDK,AAhBe,CAAC,CAACpP,GAgBF,WAAC,QAAK,UAAW2O,GAAW,CAAEI,KAAAA,CAAK,G,SAAK/O,C,GACxD,WAAC,UACC,SAAU,CAAC,CAAC5D,EACZ,KAAK,SACL,QAASkD,EACT,UAAW4P,E,SAEX,WAACzP,GAAAA,CAASA,CAAAA,CAAC,UAAWmP,GAAW,CAAEG,KAAAA,CAAK,E,sVAIhD,E,iyBCMA,IAAMM,GAAc,CAAC,YAAa,UAAW,QAAQ,CAExCC,GAAW,AAAC7gB,IACvB,IAsBI8gB,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAA8B9gB,GAtB5B,CACJqgB,WAAAA,CAAU,CACV1S,SAAAA,CAAQ,CACRoT,SAAAA,CAAQ,CACRjG,MAAAA,CAAK,CACLwF,KAAAA,CAAI,CACJU,SAAAA,CAAQ,CACRC,YAAAA,EAAc,kBAAkB,CAChCC,kBAAAA,EAAoB,mBAAmB,CACvCC,WAAAA,CAAU,CACVC,gBAAAA,CAAe,CACfC,MAAAA,CAAK,CACL,MAAOC,CAAY,CACnBC,SAAAA,CAAQ,CACRhmB,GAAAA,CAAE,CACFgW,SAAAA,CAAQ,CACRmG,UAAAA,CAAS,CACT8J,SAAAA,EAAW,EAAK,CAChBC,OAAAA,EAAS,EAAK,CACdC,cAAAA,CAAa,CACbC,MAAAA,CAAK,CAEN,CAAGb,EADC3vB,EAAAA,A,6XACD2vB,EAAAA,CArBFT,aACA1S,WACAoT,WACAjG,QACAwF,OACAU,WACAC,cACAC,oBACAC,aACAC,kBACAC,QACA,QACAE,WACAhmB,KACAgW,WACAmG,YACA8J,WACAC,SACAC,gBACAC,Q,EAII,CAACnP,EAAQoP,EAAU,CAAGhJ,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAkB,IACxC,CAACiJ,EAAaC,EAAe,CAAGlJ,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAwB,MACxD,CAACmJ,EAAeC,EAAiB,CAAGpJ,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAwB,MAC5D,CAACqJ,EAAqBC,EAAuB,CAAGtJ,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAsC,MACtF,CAACuJ,EAAgBC,EAAkB,CAAGxJ,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,IACtC,CAACyJ,EAAYC,EAAc,CAAG1J,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IACvC,CAAC2J,EAAgBC,EAAkB,CAAG5J,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IAErDrF,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,IAAMkP,EAAmB,AAAC,CAAwB,UAAxB,OAAOnB,GAA6B,AAAwB,UAAxB,OAAOA,EAA6B,CAACA,EAAa,CAAGA,CAAW,GAAM,EAAE,CAClIoB,EAA6B,EAAE,CAEnC,GAAInR,GAQE,CAPJmR,CAAAA,EAAgBC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAgB,CAC9BpR,SAAAA,EACA,MAAO,EACP,OAAQ,iBACR,MAAO,eACT,EAAC,GAOC,CAACkR,EAJD,OAMJ,IAAMG,EAAoBF,EAAc,SAAS,CAACG,AAAAA,I,IAASC,E,MAAAA,AAACD,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAA6B,OAA9BC,CAAAA,EAACD,EAAwB,KAAK,AAAD,GAA7BC,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgC,KAAK,AAAD,IAAML,CAAe,CAAC,EAAE,A,GAGvH,GAFI,CAACjB,GAAYoB,GAAqB,GAAKZ,EAAiBY,GAExDG,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAkBN,EAAiBR,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,GAAG,CAACe,AAAAA,GAAKA,EAAE,KAAK,IAAMD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAkBN,EAAiBN,EAAiB,CAACA,MAAAA,EAAAA,KAAAA,EAAAA,EAAgB,KAAK,CAAC,CAAG,EAAE,EAAG,CACnK,IAAMc,EAAiBR,MAAAA,EAAAA,KAAAA,EAAAA,EAAiB,GAAG,CAACS,AAAAA,IAC1C,IAAML,EAAQH,EAAc,IAAI,CAACS,AAAAA,I,IAAaC,E,MAAAA,AAACD,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAiC,OAAlCC,CAAAA,EAACD,EAA4B,KAAK,AAAD,GAAjCC,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoC,KAAK,AAAD,IAAMF,C,GAC5F,OAAOL,MAAAA,EAAAA,KAAAA,EAAAA,EAAO,KAAK,AACrB,GAEAT,EAAkBa,CAAc,CAAC,EAAE,EACnCf,EAAuBe,EACzB,KAAO,CACL,IAAMI,EAAgBX,MAAAA,EAAAA,KAAAA,EAAAA,EAAe,MAAM,CAACS,AAAAA,I,IAAwCC,E,OAA1BX,MAAAA,EAAAA,KAAAA,EAAAA,EAAiB,QAAQ,CAAEU,MAAAA,EAAAA,KAAAA,EAAAA,AAAiC,OAAlCC,CAAAA,EAACD,EAA4B,KAAK,AAAD,GAAjCC,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoC,KAAK,C,GAAI,GAAG,CAACD,AAAAA,GAAcA,EAA2B,KAAK,EACnLjB,EAAuBmB,GACvBjB,EAAkBiB,CAAa,CAAC,EAAE,CACpC,CAEF,EAAG,CAAC9R,EAAU+P,EAAa,EAE3B,GAAM,CAAEgC,KAAAA,CAAI,CAAEC,eAAAA,CAAc,CAAE7wB,QAAAA,CAAO,CAAE,CAAG8wB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAY,CACpD,UAAW,eACX,KAAMhR,EACN,aAAcoP,EACd,qBAAsB6B,GAAAA,EAAUA,CAChC,SAAU,QACV,WAAY,CACVC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACAC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAO,GACPC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CACX,MAAM,CAAEC,MAAAA,CAAK,CAAEC,SAAAA,CAAQ,CAAEC,gBAAAA,CAAe,CAAE,EACxCnpB,OAAO,MAAM,CAACkpB,EAAS,QAAQ,CAAC,KAAK,CAAE,CACrC,UAAW,CAAC,EAAEC,EAAkB,GAAG,EAAE,CAAC,CACtC,SAAU,CAAC,EAAEF,EAAM,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CACtC,UAAW,CACb,EACF,CACF,GACD,AACH,GAEMG,EAAcC,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,EAAkC,EAAE,EAClDC,EAAYD,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,EAA6B,EAAE,EAC3CE,EAAiBF,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,EAAO,MAExBG,EAAeC,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY,CAAC,CAChC3rB,MAAAA,CAAK,CAAE,SAAU4rB,CAAc,CAAE,KAAMC,CAAU,CAAEpxB,MAAAA,CAAK,CACrC,IACnB6uB,EAAiBtpB,GACjBkpB,EAAU,IACI,OAAVlpB,IACF0pB,EAAkB,CAAE,SAAUkC,EAAgB,KAAMC,EAAYpxB,MAAAA,CAAM,GAClEouB,GAAUA,EAASpuB,GAE3B,EAAG,CAACouB,EAAUK,EAAU,EAElB4C,EAAoBH,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY,CAAC,CACrCI,QAAAA,CAAO,CAAEtxB,MAAAA,CAAK,CAAEuxB,UAAAA,CAAS,CAAEC,cAAAA,CAAa,CAAE,SAAUC,CAAO,CAAE,KAAMC,CAAU,CAC9E,IACC,IAAMC,EAAyBL,EAAU,IAAIxC,GAAuB,EAAE,CAAE,CACtE9uB,MAAAA,EACAuxB,UAAAA,EACAC,cAAAA,EACA,SAAUC,EACV,KAAMC,CACR,EAAE,CAAI5C,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,MAAM,CAAC8C,AAAAA,GAAUA,EAAO,KAAK,GAAK5xB,EAAK,GAAK,EAAE,CAEzE+uB,EAAuB4C,GACnBvD,GAAUA,EAASuD,EAAuB,GAAG,CAAC9B,AAAAA,GAAKA,EAAE,KAAK,EAChE,EAAG,CAACzB,EAAUU,EAAoB,EAE5B+C,EAAoBX,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY,CAAC,CACrCI,QAAAA,CAAO,CAAEQ,WAAAA,CAAU,CAAEvC,cAAAA,CAAa,CACV,IACxB,IAAMwC,EAA8BT,AAAAA,CAAAA,EAAUQ,MAAAA,EAAAA,KAAAA,EAAAA,EAAY,MAAM,CAC9D,CAACE,EAAyBzsB,EAAe0sB,IAA+B1sB,IAAU0sB,EAAK,SAAS,CAAC,AAACC,GAA6BA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAK,KAAK,AAAD,IAAMF,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAK,KAAK,AAAD,IACrJlD,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,MAAM,CAACqD,AAAAA,GAAO,CAAC5C,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAe,IAAI,CAAC,AAAC6C,GAA2BA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAI,KAAK,AAAD,IAAMD,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAK,KAAK,AAAD,EAAE,EAAE,GAAI,EAAE,CAEzHpD,EAAuBgD,GACnB3D,GAAUA,EAAS2D,EAAM,GAAG,CAACM,AAAAA,GAAKA,EAAE,KAAK,EAC/C,EAAG,CAACjE,EAAUU,EAAoB,EAE5BwD,EAAUC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAkBhzB,EAAS,CACzC,QAASsxB,EACTnC,YAAAA,EACAE,cAAAA,EACA,WAAYD,CACd,GAEM6D,EAAQC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAASlzB,GACjBmzB,EAAUC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAWpzB,GACrBqzB,EAAOC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAQtzB,EAAS,CAAE,KAAM,SAAU,GAE1C,CACJuzB,kBAAAA,CAAiB,CACjBC,iBAAAA,CAAgB,CAChBC,aAAAA,CAAY,CACb,CAAGC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAgB,CAACX,EAASE,EAAOE,EAASE,EAAK,EAE7CM,EAAkBC,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EACtB,IAAO,EACLzE,YAAAA,EACAE,cAAAA,EACAoE,aAAAA,EACA/B,aAAAA,EACA9D,KAAAA,EACAxF,MAAAA,EACA0G,SAAAA,EACAS,oBAAAA,EACAC,uBAAAA,EACAsC,kBAAAA,EACAQ,kBAAAA,CACF,GACA,CAACnD,EAAaE,EAAeoE,EAAc/B,EAAc9D,EAAMxF,EAAO0G,EAAUS,EAAqBC,EAAwBsC,EAAmBQ,EAAkB,EAa9JuB,GAAY,AAACz6B,IACjB,GAAI,CAACA,EAAG,OACR,IAAMo5B,EAAQp5B,MAAAA,EAAAA,KAAAA,EAAAA,EAAG,OAAO,CAAC,0BAErBo5B,IACqBA,EAAM,aAAa,CAAC,mCAKzCA,EAAM,KAAK,CAAC,cAAc,CAAC,WAF3BA,EAAM,KAAK,CAAC,WAAW,CAAC,UAAW,QAKzC,EAEA3R,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACJ,CAACf,GACH8P,EAAc,IAGhB0B,EAAY,OAAO,CAAC,OAAO,CAACwC,AAAAA,I,IAIrBC,EAFL,IAAMC,EAAWlF,EAAWgF,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,OAAO,CAAC,SAAWA,EACnDE,IACAD,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAqB,OAArBA,CAAAA,EAAAA,EAAU,WAAW,AAAD,GAApBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAuB,WAAW,GAAG,QAAQ,CAACpE,EAAW,WAAW,GAAE,GAIzEqE,MAAAA,GAAAA,EAAU,KAAK,CAAC,cAAc,CAAC,WAC/BF,MAAAA,GAAAA,EAAS,eAAe,CAAC,cAJzBE,MAAAA,GAAAA,EAAU,KAAK,CAAC,WAAW,CAAC,UAAW,QACvCF,MAAAA,GAAAA,EAAS,YAAY,CAAC,WAAY,SAKpCD,GAAUG,GACZ,GAEIrE,EAAW,MAAM,CAAG,EACtBG,EAAkB,CAACwB,EAAY,OAAO,CAAC,IAAI,CAACwC,AAAAA,GAAW,CAACA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,YAAY,CAAC,WAAU,GAAK,CAACA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,YAAY,CAAC,+BAA8B,IAElJhE,EAAkB,GAEtB,EAAG,CAACH,EAAY7P,EAAQgP,EAAS,EAOjC,IAAMmF,GAAa5F,GAAYpT,EACzBiZ,GAA4BpF,EAAAA,KAAYS,GAAsBA,EAAoB,MAAM,CAAG,EAC3F4E,GAAY1E,GAAkB,CAACX,EAAWW,MAAAA,EAAAA,KAAAA,EAAAA,EAAgB,IAAI,CAAGf,EAEjE0F,GAAiB,CAACh7B,EAA4Bi5B,SAO9CgC,EACDC,EANH,GADAl7B,EAAE,eAAe,GACbm2B,EAAqB,CACvB,IAAMgF,EAAsBhF,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,MAAM,CAACiF,AAAAA,GAAkBA,EAAe,KAAK,GAAKnC,EAAO,KAAK,EAC3GxD,GAAUA,EAAS0F,EAAoB,GAAG,CAAC7xB,AAAAA,GAAKA,EAAE,KAAK,GAC3D8sB,EAAuB+E,EACzB,CACIF,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAe,OAAfA,CAAAA,EAAAA,EAAM,SAAS,AAAD,GAAdA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAiB,OAAO,AAAD,GACzB,AAACC,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAe,OAAfA,CAAAA,EAAAA,EAAM,SAAS,AAAD,GAAdA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAiB,OAAO,AAAD,EAAkB,KAAK,EAEnD,EAEMG,GAAc,KAClB,IAAMC,EAAY,CAAC,EAAEnF,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,MAAM,CAAC,OAAO,EAAEA,GAAuBA,EAAoB,MAAM,CAAG,EAAI,IAAM,GAAG,SAAS,CAAC,CACrI,MAAQ,AAAyB,YAAzB,OAAOP,EAA+BA,EAAcO,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,MAAM,AAAD,GAAK,GAAKmF,CAClG,EAkCA,MACE,yB,UACE,WAACC,GAAAA,CAASA,CAAAA,GAAAA,GAAAA,CACR,GAAG,WACH,WAAYhH,EACZ,MAAOvF,EACP,KAAMwF,EACN,SAAU,CAAC,CAACS,EACZ,IAAKuC,EAAK,YAAY,CACtB,SAAU3V,EACV,SAAU,EACV,SAAUqT,EACV,MAAOK,EACP,GAAI9lB,EACJ,UAAWmc,EACX,YAAauJ,EACb,OAAQQ,EACR,WACE,WAAC6F,GAAAA,CAAcA,CAAAA,CACb,UAAU,QACV,KAAMhH,EACN,MAAOxF,EACP,SAAUnN,EACV,KAAMkZ,GACN,cAAerF,EAAWoF,GAA4B,CAAC,CAACzE,C,GAG5D,SACE,WAACmF,GAAAA,CAAcA,CAAAA,CACb,KAAMhH,EACN,UAAU,MACV,KAAMS,EAAWwG,GAAAA,CAAcA,CAAGC,GAAAA,CAAaA,CAC/C,MAAO1M,C,IAGN,AAAC6L,GAAmC,CAAC,EAAvBV,IACf90B,GAAAA,C,SAnER,AAAKqwB,EAGDA,GAAYoF,GACP,AAAClF,EAsBJyF,KArBF,WAAC,QACC,UAAWpW,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAG,4CAA6C,CAAE,YAAa0Q,CAAO,EAAG,CAClF,QAASnB,AAAS,UAATA,EACT,UAAWA,AAAS,UAATA,CACb,G,SAEC2B,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,GAAG,CAAC8C,AAAAA,GACxB,WAAC3E,GAAGA,CACF,KAAME,EACN,KAAMyE,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,IAAI,CAClB,WAAYA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,aAAa,CAEjC,UAAU,WACV,QAASj5B,AAAAA,GAAKg7B,GAAeh7B,EAAGi5B,GAChC,MAAOA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,SAAS,CACxB,SAAU4B,G,SAET5B,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,QAAQ,A,EANZ,CAAC,IAAI,EAAEA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,KAAK,CAAC,CAAC,E,UAf5B5C,MAAAA,EAAAA,KAAAA,EAAAA,EAAgB,QAAQ,A,IAsE/B,WAACsF,GAAAA,EAAAA,CAAAA,QAAwB,EAAC,MAAOpB,E,SAC9B7T,GAAU,CAACmU,IACV,WAACe,GAAAA,EAAoBA,CAAAA,CAAC,QAASh1B,EAAS,MAAO,G,SAC7C,YAAC,aACC,IAAK4wB,EAAK,WAAW,CACrB,MAAO,MAAKC,EAAmB5B,GAC/B,UAAW7B,GAAgB,CAAEhF,MAAAA,CAAM,E,EAC/BoL,KAAAA,C,UAEH,CAAC,CAAC/E,GAEC,WAACwG,GAAAA,CAASA,CAAAA,CACR,UAAW5H,GAAuB,CAAEjF,MAAAA,CAAM,GAC1C,OAAQ,CACN,KAAM8M,GAAAA,CAAmBA,CACzB,cAAe,CAAC,CAACvF,CACnB,EACA,MAAO,GACP,KAAM/B,EACN,YAAa,AAAsB,UAAtB,OAAOa,EAA0BA,EAAarvB,KAAAA,EAC3D,OACEuwB,EAAW,MAAM,CAAG,EAAI,CACtB,GAAI,SACJ,KAAMwF,GAAAA,CAAWA,CACjB,QA1HF,KAClBvF,EAAc,IACV6B,EAAe,OAAO,EAAGA,EAAe,OAAO,CAAsB,KAAK,EAChF,CAwHoB,EAAIryB,KAAAA,EAEN,MAAOuwB,EACP,MAAOvH,EACP,SAlLG,AAAChvB,I,IAKNg8B,EAJd,GAAIlH,GAAY,QAAQ,CAAE90B,EAAoB,GAAG,EAC/C,OAGF,IAAMkI,EAAQ8zB,MAAAA,EAAAA,KAAAA,EAAAA,AAAS,OAATA,CAAAA,EAAAA,EAAG,MAAM,AAAD,GAARA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgC,KAAK,CACnDh8B,EAAE,eAAe,GACjBw2B,EAActuB,EAChB,EA2KkB,IAAKmwB,C,GAGX,WAAC,OAAI,UAAWpT,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAG,qCAAsC,CAAE,SAAUwR,CAAe,G,SAClF,WAACwF,GAAAA,EAAYA,CAAAA,CAAC,YAAa/D,EAAa,UAAWE,E,SAChD3S,C,KAGL,WAAC,OAAI,UAAWR,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAGiP,GAA0B,CAAEM,KAAAA,EAAMxF,MAAAA,CAAM,GAAI,CAAE,SAAU,CAACyH,CAAe,G,SAAKrB,C,aAO9G,CAEAL,CAAAA,GAAS,YAAY,CAAGrB,G,gcC3ZjB,IAAMwI,GAAiB,AAAChoB,Q,IAC7B,GAAM,CACJ7M,MAAAA,CAAK,CACLoe,SAAAA,CAAQ,CACR,KAAMsT,CAAU,CAChBlX,SAAAA,CAAQ,CACR+W,UAAAA,CAAS,CACTC,cAAAA,CAAa,CACb9T,QAAAA,CAAO,CACP0Q,SAAAA,CAAQ,CACR7J,UAAAA,CAAS,CACTnc,GAAAA,CAAE,CAEH,CAAGyE,EADC7O,EAAAA,A,6XACD6O,EAAAA,CAXF7M,QACAoe,WACA,OACA5D,WACA+W,YACAC,gBACA9T,UACA0Q,WACA7J,YACAnc,K,EAII,CACJsmB,YAAAA,CAAW,CACXE,cAAAA,CAAa,CACboE,aAAAA,CAAY,CACZ/B,aAAAA,CAAY,CACZI,kBAAAA,CAAiB,CACjBlE,KAAAA,CAAI,CACJxF,MAAAA,CAAK,CACL0G,SAAAA,CAAQ,CACRS,oBAAAA,CAAmB,CACpB,CAAGgG,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IAEE,CACJC,OAAAA,CAAM,CACP,CAAGC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IAEE,CAAEC,IAAAA,CAAG,CAAE1vB,MAAAA,CAAK,CAAE,CAAG2vB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAY,CAAE,MAAOl1B,CAAgB,GACtD2d,EAAW+Q,IAAgBnpB,EAC3B4vB,EAAavG,IAAkBrpB,EAC/B6vB,EAAY,CAAC,CAACtG,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,IAAI,CAAC8C,AAAAA,GAAUA,EAAO,KAAK,GAAK5xB,EAAK,EAmBxEq1B,EAAazX,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAG,CACpB,OAAQuP,AAAS,UAATA,EACR,OAAQA,AAAS,UAATA,CACV,GAEMmI,EAA0B1X,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAC9B2O,GAAkB,CAChBY,KAAAA,EACA,WAAYkB,EAAW+G,EAAYD,EACnCxX,SAAAA,EACAgK,MAAAA,EACA,SAAU,CAAC,CAACnN,EACZ,GAAI,SACJ,OAAQ,CAAC,CAACua,CACZ,GACAxQ,GAGF,GAAI8J,EACF,MACE,YAAC,SACC,UAAWiH,EACX,QAASltB,E,UAET,WAACmtB,GAAAA,CAAQA,CAAAA,GAAAA,CACP,IAAKN,EACL,KAAK,SACL,MAAOj1B,EACP,SAAUwa,EACV,SAAUmD,EAAW,EAAI,GACzB,QAASyX,EACT,KAAMjI,EACN,UAAWkI,EACX,MAAO1N,C,EACHqL,EAAa,CACf,SApDmB,AAACr6B,IAC5B,GAAM,CAAE24B,QAAAA,CAAO,CAAE,MAAOkE,CAAO,CAAE,CAAG78B,EAAE,MAAM,CAE5C04B,EAAkB,CAChBC,QAAAA,EAAS,MAAOkE,EAASjE,UAAAA,EAAWC,cAAAA,EAAepT,SAAAA,EAAU,KAAMsT,CACrE,GAEItD,GAAUA,EAASz1B,EACzB,CA6CQ,GACIqF,IAELogB,E,GAKP,MACE,YAAC,U,EAAA,IACC,IAAK6W,EACL,KAAK,SACL,gBAAetX,GAAYwX,EAC3B,SAAUxX,EAAW,EAAI,GACzB,KAAK,SACL,MAAO3d,EACP,SAAUwa,EACV,UAAW8a,C,EACPtC,EAAa,CACf,QA9Dc,AAACr6B,IACnBs4B,EAAa,CACX1rB,MAAAA,EAAO6Y,SAAAA,EAAU,KAAMsT,EAAY1xB,MAAAA,CACrC,GACI0d,GAASA,EAAQ/kB,EACvB,CA0DI,GACIqF,G,KAAAA,C,UAEH0zB,GAAc,WAACA,EAAAA,CAAW,UAAW9T,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAG8O,GAAsB,CAAES,KAAAA,CAAK,G,GACrE/O,E,iVAGP,CAEAyW,CAAAA,GAAe,WAAW,CAAG,iB,kBnI7H7B,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAoB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACrF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,2RACH,SAAU,SACZ,KoIGMY,GAAmB,CAAC,CACxB7M,SAAAA,CAAQ,CAAEuC,iBAAAA,CAAgB,CAAEC,2BAAAA,CAA0B,CACvD,I,IA2B2BsK,EA1B1B,IAAM9V,EAAS,mBACT,CAACjL,EAASghB,EAAW,CAAGlQ,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IACjC,CACJiG,gBAAAA,CAAe,CAAEkK,WAAAA,CAAU,CAAEC,qBAAAA,CAAoB,CAAEC,mBAAAA,CAAkB,CACtE,CAAG3K,EAEEI,EAAeptB,MAAM,IAAI,CAACgQ,SAAS,gBAAgB,CAAC,SACvD,MAAM,CAACqd,AAAAA,GAAQA,EAAK,YAAY,CAAC,aAAeA,AAAkC,cAAlCA,EAAK,YAAY,CAAC,aAClE,GAAG,CAACC,AAAAA,GAAQA,EAAK,YAAY,CAAC,aAE3BsK,EAAYxK,EAAa,GAAG,CAACyK,AAAAA,IAEjCA,EAAWA,AAAa,UAAbA,EAAuB,KAAOA,EACzC,GAAI,CAACC,EAAY,CAAGxuB,OAAO,OAAO,CAACouB,GAAsB,IAAI,CAACvxB,AAAAA,GAAQA,CAAI,CAAC,EAAE,GAAK0xB,GAElFC,EAAcA,AAAgB,UAAhBA,EAA0B,QAAUA,EAClD,GAAM,CAACC,EAAe,CAAGzuB,OAAO,OAAO,CAACquB,GAAoB,IAAI,CAACrK,AAAAA,GAAQA,CAAI,CAAC,EAAE,GAAKwK,GAErF,MAAO,CAAE,MAAOC,EAAgB,MAAOD,EAAa,MAAOxuB,OAAO,IAAI,CAACquB,GAAoB,SAAS,CAACrK,AAAAA,GAAQA,IAASyK,EAAgB,CACxI,GAAG,IAAI,CAAC,CAACC,EAAGC,IACV,AAAID,EAAE,KAAK,CAAGC,EAAE,KAAK,CAAS,GAC1BD,EAAE,KAAK,CAAGC,EAAE,KAAK,CAAS,EACvB,GAGH,CAACC,EAAa,CAAG5Q,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAASiG,GAC1B4K,EAAoBZ,AAAAA,CAAAA,AAAsCW,OAAtCX,CAAAA,EAAAA,EAAU,IAAI,CAACjK,AAAAA,GAAQA,EAAK,KAAK,GAAK4K,EAAY,GAAlDX,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqD,KAAK,AAAD,GAAK,GA+BxF,GAtBAtV,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR4L,EAAAA,CAAMA,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAE,OAAQ,OAAQpM,OAAAA,CAAO,EACrE,EAAG,EAAE,EAELQ,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACHwI,GAIHza,SAAS,aAAa,CAAC,QAAQ,SAAS,CAAC,MAAM,CAAC,iCAChDwnB,EAAW,MAJXxnB,SAAS,aAAa,CAAC,QAAQ,SAAS,CAAC,GAAG,CAAC,iCAC7CwnB,EAAW,IAKf,EAAG,CAAC/M,EAAS,EAEbxI,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACJzL,EACFxG,SAAS,aAAa,CAAC,QAAQ,SAAS,CAAC,GAAG,CAAC,uBAE7CA,SAAS,aAAa,CAAC,QAAQ,SAAS,CAAC,MAAM,CAAC,sBAEpD,EAAG,CAACwG,EAAQ,EAER,CAACA,EACH,OAAO,KAGT,IAAM4hB,EAAmBX,EAAW,KAAK,CAAC,sBAC1C,MACE,WAAC,WACC,UAAU,+B,SAEV,YAAC,OAAI,UAAU,uC,UACb,YAAC,OAAI,UAAU,6C,UACb,WAACY,GAAqBA,CAAC,UAAU,uC,GACjC,WAAC,Q,SAEGD,EAAiB,GAAG,CAAC,CAAC3mB,EAAMrK,IAC1B,AAAIA,AAAU,IAAVA,EAEA,YAAC,OAAI,UAAU,uC,UACb,WAACmoB,GAAQA,CACP,UAAU,+BACV,KAAK,QACL,WAAY,GACZ,MAAO2I,EACP,SAAUI,AAAAA,IACR,GAAI,AAAwC,YAAxC,OAAOzK,EAAAA,CAAMA,CAAC,MAAM,CAAC,cAAc,CAAiB,CACtD,IAAM0K,EAAWnL,EAAa,IAAI,CAACE,AAAAA,GAAQA,EAAK,QAAQ,CAACgL,EAAQ,KAAK,CAAC,IAAI,CAAC,EAAE,GAC9EzK,EAAAA,CAAMA,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAE,OAAQ,cAAe,OAAQyK,CAAQ,GACnFzK,EAAAA,CAAMA,CAAC,MAAM,CAAC,cAAc,CAACyK,EAASC,EACxC,CACF,E,SAGEX,EAAU,GAAG,CAAC9xB,AAAAA,GACZ,WAAC4wB,GAAcA,CACb,MAAO5wB,EAAS,KAAK,C,SAEpBA,EAAS,KAAK,A,MAKvB,WAAC,Q,SAAK,G,MAIL2L,E,MAKf,YAAC+mB,GAAAA,CAAMA,CAAAA,CACL,KAAK,QACL,QAAS,KACP,GAAI,AAAwC,YAAxC,OAAO3K,EAAAA,CAAMA,CAAC,MAAM,CAAC,cAAc,CAAiB,CACtD,IAAM0K,EAAWnL,EAAa,IAAI,CAACE,AAAAA,GAAQA,EAAK,QAAQ,CAAC4K,EAAa,KAAK,CAAC,IAAI,CAAC,EAAE,GACnFrK,EAAAA,CAAMA,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAE,OAAQ,cAAe,OAAQqK,CAAa,GACxFrK,EAAAA,CAAMA,CAAC,MAAM,CAAC,cAAc,CAACqK,EAAcK,EAC7C,CACF,E,UAEA,WAAC,QAAK,UAAU,kB,SAAmBj0B,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,uBAAuB,OAAO,CAAC,aAAc6zB,G,GAClF,WAAC,QAAK,UAAU,kB,SAAmB7zB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,S,MAEvC,WAACk0B,GAAAA,CAAMA,CAAAA,CACL,WAAW,UACX,QAAO,GACP,gBAAe,GACf,UAAU,qCACV,UAAW9Y,GAAAA,CAASA,CACpB,QAAQ,QACR,QAnGY,KAClB3H,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAU,0BAA2B,OAAQ,KAC7C8V,EAAAA,CAAMA,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAE,OAAQ,QAASpM,OAAAA,CAAO,GACpEzR,SAAS,aAAa,CAAC,QAAQ,SAAS,CAAC,MAAM,CAAC,uBAChDid,EAA2B,GAC7B,C,OAmGF,CAEAqK,CAAAA,GAAiB,SAAS,CAAG,CAC3B,SAAUtY,GAAAA,IAAIA,CACd,iBAAkBC,GAAAA,MAAMA,CACxB,2BAA4BW,GAAAA,IAAIA,AAClC,EAEA0X,GAAiB,YAAY,CAAG,CAC9B,SAAU,GACV,iBAAkB,CAAE,KAAM,EAAM,EAChC,2BAA4BxzB,AAAAA,GAAKA,CACnC,ECjKA,SAAS,KAAa,MAAO,IAAWwF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAmBnR,OAjBiBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACzE,MAAO,6BACP,WAAY,+BACZ,EAAG,MACH,EAAG,MACH,QAAS,YACT,MAAO,CACL,iBAAkB,gBAClB,cAAe,MACjB,EACA,SAAU,UACZ,EAAGA,GAAqB,gBAAmB,CAAC,OAAQ,CAClD,MAAO,CACL,KAAM,SACR,EACA,EAAG,6QACL,ICVA,IAAM+pB,GAA0B,CAAC,CAC/BC,eAAAA,CAAc,CAAEC,QAAAA,CAAO,CAAElO,SAAAA,CAAQ,CAClC,IACC,GAAM,CAACmO,EAAWC,EAAa,CAAGvR,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAASoR,GACrC,CAACI,EAAoBC,EAAsB,CAAGzR,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IACvD,CAAExB,gBAAAA,CAAe,CAAE,CAAGkT,AAAAA,CAAAA,EAAAA,GAAAA,UAAAA,AAAAA,EAAWC,GAAAA,CAAqBA,EAE5DhX,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACJ2W,IACF9S,MAAAA,GAAAA,EAAkB,CAAE,OAAQ,OAAQ,OAAQ,cAAe,GAC3D+S,EAAa,IACb3c,WAAW,KACTlM,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gCAC5B+oB,EAAsB,GACxB,EAAG,KAEP,EAAG,CAACH,EAAU,EAqBd,IAAMM,EAAmBzZ,KAAG,sCAAuC,CACjEgL,SAAAA,CACF,GAEM0O,EAAwB1Z,KAAG,4CAA6C,CAC5EqZ,mBAAAA,CACF,GAEMM,EAA0B3Z,KAAG,8CAA+C,CAChF,GAAIqZ,CACN,UAEA,AAAKF,EAGH,WAAC,OAAI,UAAWM,E,SACd,YAAC,OAAI,UAAWC,E,UACd,YAAC,OAAI,UAAWC,E,UACd,WAAC,K,SAAG90B,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,iF,GACN,WAAC,UACC,KAAK,SACL,QA9BU,KAElB,GADAwhB,MAAAA,GAAAA,EAAkB,CAAE,OAAQ,QAAS,OAAQ,uBAAwB,GACjEhD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IAAgB,CAClB+K,EAAAA,CAAMA,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAiC,UAAU,KAAK,GACnE,MACF,CACAA,EAAAA,CAAMA,CAAC,MAAM,CAAC,IAAI,CAAC,WAAY,UAAU,KAAK,EAChD,EAwBU,UAAU,6C,SAETvpB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,oB,MAGP,WAAC,UACC,KAAK,SACL,QAhDiB,KACvBwhB,MAAAA,GAAAA,EAAkB,CAAE,OAAQ,QAAS,OAAQ,oBAAqB,GAClEiT,EAAsB,IACtB/oB,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gCAC/BkM,WAAW,KACT2c,EAAa,GACf,EAAG,KACHF,GACF,EAyCQ,UAAU,mD,SAEV,WAACU,GAAQA,CAAAA,E,QApBM,IAyBzB,CAEAZ,CAAAA,GAAwB,SAAS,CAAG,CAClC,eAAgBzZ,GAAAA,IAAIA,CACpB,QAASY,GAAAA,IAAIA,CACb,SAAUZ,GAAAA,IAAIA,AAChB,EAEAyZ,GAAwB,YAAY,CAAG,CACrC,eAAgB,GAChB,QAAS30B,AAAAA,GAAKA,EACd,SAAU,EACZ,ECnDA,IAAMw1B,GAAeC,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAK,IAAM,sFAC1BC,GAAaD,AAAAA,CAAAA,EAAAA,GAAAA,IAAAA,AAAAA,EAAK,IAAM,mCAExBE,GAAS,AAAC,I,IAsCcvM,EAAAA,EAtCd,CACdjB,UAAAA,CAAS,CACTV,UAAAA,CAAS,CACTpD,kBAAAA,CAAiB,CACjB4D,eAAAA,CAAc,CACd2N,eAAAA,CAAc,CACdtZ,iBAAAA,CAAgB,CAChB5B,gBAAAA,CAAe,CACfC,iBAAAA,CAAgB,CAChB,MAAOkb,CAAS,CAChB,gBAAiBC,CAAmB,CACpC5N,QAAAA,CAAO,CACP6N,eAAAA,CAAc,CACdxZ,mBAAAA,CAAkB,CAClB+L,4BAAAA,CAA2B,CAC3BtmB,SAAAA,CAAQ,CACR2d,YAAAA,CAAW,CACX4I,WAAAA,CAAU,CACVvJ,aAAAA,CAAY,CACZkK,iBAAAA,CAAgB,CAChBtO,4BAAAA,CAA2B,CAC3BC,+BAAAA,CAA8B,CAC9Bmb,SAAAA,CAAQ,CACR/W,4BAAAA,CAA2B,CAE5B,GADIrU,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAvBHud,YACAV,YACApD,oBACA4D,iBACA2N,iBACAtZ,mBACA5B,kBACAC,mBACA,QACA,kBACAuN,UACA6N,iBACAxZ,qBACA+L,8BACAtmB,WACA2d,cACA4I,aACAvJ,eACAkK,mBACAtO,8BACAC,iCACAmb,WACA/W,8B,EAGA,GAAM,CAACgX,EAAgBC,EAAc,CAAGC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IAClC,CAACxP,EAAUjB,EAAM,CAAG0Q,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAgBlB,AAAAA,CAAAA,EAAAA,GAAAA,UAAAA,AAAAA,EAAWlL,IAAc,EAAG6L,EAAWC,GAC3E,CAACO,EAAyBlN,EAA2B,CAAG3F,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IAEjE,CAAExB,gBAAAA,CAAe,CAAE,CAAGkT,AAAAA,CAAAA,EAAAA,GAAAA,UAAAA,AAAAA,EAAWC,GAAAA,CAAqBA,EACtD,CAAExoB,KAAAA,CAAI,CAAE2pB,SAAAA,CAAQ,CAAEjb,WAAAA,CAAU,CAAE,CAAG6Z,AAAAA,CAAAA,EAAAA,GAAAA,UAAAA,AAAAA,EAAWqB,GAAAA,CAAWA,EACvD,CAAEtU,mBAAAA,CAAkB,CAAE7F,eAAAA,CAAc,CAAEgM,wBAAAA,CAAuB,CAAE,CAAG8M,AAAAA,CAAAA,EAAAA,GAAAA,UAAAA,AAAAA,EAAWsB,GAAAA,CAAiBA,EAE9FC,EAAoBV,GAAkB,CAAC1a,EACvC,CAAEqb,mBAAAA,EAAqB,EAAK,CAAEC,eAAAA,EAAiB,EAAE,CAAE,CAAGf,EAGtDgB,EAAqB,CAAOxN,OAANA,CAAAA,EAAAA,EAAAA,CAAMA,AAANA,GAAAA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAc,OAAdA,CAAAA,EAAAA,EAAQ,MAAM,AAAD,GAAbA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgB,YAAY,AAAD,IAAKpK,EAWxDtiB,KAAAA,EAVA,CACA,OAAQ,CACN,OAAQ,GACR,KAAM,YACN,cAAe,KACf,gBAAiB,GACjB,UAAW,OACX,QAAS,EAAE,AACb,CACF,EAGFm6B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACAC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAwBnqB,GACxBoqB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACA5Y,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR6Y,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,GACF,EAAG,EAAE,EAEL7Y,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR8Y,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAA+BhV,EACjC,EAAG,CAACA,EAAmB,EAEvB9D,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACHxR,GAASspB,IACdiB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACAC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACI,CAAC7a,GACH8a,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAiBlB,EAAevpB,GAEpC,EAAG,CAACA,EAAMspB,EAAgBC,EAAe5Z,EAAiB,EAE1D6B,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACHxR,IACL0qB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAwB1qB,GACxB2qB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAA0C3qB,EAAM2pB,IAAaiB,GAAAA,EAAAA,CAAAA,SAAoB,EACjFtO,GAAyBtc,EAAMuc,EAAkBC,GACnD,EAAG,CAACxc,EAAK,EAET,IAAMqb,EAAoBiH,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY,IACpC,AAAIyH,GAAsB,CAACc,KAAQ7qB,IAASgqB,EAAe,MAAM,CAAG,EAEhE,WAACc,GAAAA,QAAQA,CAAAA,CAAC,SAAS,G,SACjB,WAACjC,GAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAa,KAAM7oB,C,EAAUipB,G,GAI7B,2BACN,CAACjpB,EAAK,EAEH+qB,EAAgC,UACpC,MAAMC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACN3V,MAAAA,GAAAA,EAAkB,CAAE,OAAQ,QAAS,OAAQ,eAAgB,GAC7D4V,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmB,KACrB,EAEMC,EAAa3G,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAEvB,WlDvGS9V,GkDuGEA,CACT,WAAYC,EACZ,SAAU1O,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,QAAQ,CACxB,UAAWA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,SAAS,CAC1B,gBAAiB+N,EACjB,iBAAkBC,EAClB,4BAA6BC,EAC7B,+BAAgCC,C,GAGnC,CAACQ,EAAY1O,EAAK,EAEfuP,EAAqB+S,AAAAA,CAAAA,EAAAA,GAAAA,WAAAA,AAAAA,EAAY,IACrC,AAAI3S,GAAoBC,EAA2B,2BAC9C0Z,EAEH,WAACwB,GAAAA,QAAQA,CAAAA,CAAC,SAAUI,E,SAClB,WAACnC,GAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EACK9qB,GAAAA,CACJ,SAAUorB,EACV,YAAarW,EACb,cAAeuW,EACf,gBAAiBxb,EACjB,iBAAkBC,EAClB,eAAgB8b,EAChB,4BAA6B7b,EAC7B,+BAAgCC,C,MAZVgd,EAgB3B,CAAC5B,EAAgB4B,EAAW,EAEzBC,EAAgBC,AAAAA,IACpB,IAAMxY,EAAO,CAAC,aAAa,EAAEwY,EAAO,OAAS,QAAQ,IAAI,CAAC,CACpDxO,EAAOrd,SAAS,aAAa,CAAC,yBAChCqd,GAAMA,CAAAA,EAAK,IAAI,CAAG,CAAC,0CAA0C,EAAEhK,EAAK,CAAC,AAAD,CAC1E,EAEApB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,GAAIa,EAAc,OAClB,IAAMgZ,EAAajO,EAAAA,CAAMA,CAAC,MAAM,CAAC,UAAU,CAAC,gCACtCkO,EAAevhC,AAAAA,GAAKohC,EAAcphC,EAAE,OAAO,EAOjD,OALIshC,IACFF,EAAcE,EAAW,OAAO,EAChCA,EAAW,WAAW,CAACC,IAGlB,IAAMD,EAAW,WAAW,CAACC,EACtC,EAAG,EAAE,EAEL,IAAMC,EAAqCC,AAAoC,iBAApCA,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAgB,gBAE3D,MACE,WbqCWpQ,GarCAA,CACT,KAAMpb,EACN,MAAO+Y,EACP,QAASwC,EACT,SAAUlmB,EACV,SAAU2kB,EACV,UAAWc,EACX,UAAWU,EACX,WAAY9M,EACZ,YAAasE,EACb,eAAgBvD,EAChB,eAAgB6L,EAChB,iBAAkB3L,EAClB,gBAAiB5B,EACjB,iBAAkBC,EAClB,kBAAmB0J,EACnB,mBAAoBpC,EACpB,mBAAoB1F,EACpB,4BAA6B+L,EAC7B,wBAAyBF,EACzB,0BAA2BsP,EAC3B,kBAAmB1P,EACnB,mBAAoB9L,EACpB,gBAAiB8F,EACjB,WAAYuG,EACZ,aAAcvJ,EACd,kBAAmBoZ,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAyBzrB,GAC5C,4BAA6BiO,EAC7B,+BAAgCC,EAChC,SAAUmb,EACV,4BAA6B/W,E,SAE7B,yB,UACG,CAACiZ,GAAsC,CAACjW,GACvC,yB,UACGoU,EACC,WHtEC7C,GGsEgBA,CACf,SAAU7M,EACV,iBAAkBuC,EAClB,2BAA4BC,C,GAG9B,WAACjG,GAAAA,CAAkBA,CAAAA,CACjB,UAAU,QACV,WAAY,CAAEyD,SAAAA,EAAUha,KAAAA,CAAK,EAC7B,aAAciqB,C,GAGlB,WAAC1T,GAAAA,CAAkBA,CAAAA,CAAC,UAAU,aAAa,WAAY,CAAE,gBAAiBmV,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmB1rB,GAAOA,KAAAA,CAAK,C,MAG5G,CAACsV,GAAsBiW,GACtB,WDzJKvD,GCyJmBA,CAAC,SAAUhO,EAAU,eAAgB,E,OAKvE,CAEAgP,CAAAA,GAAO,YAAY,CAAG,CACpB,4BAA6B,EAC/B,EAEAA,GAAO,SAAS,CAAG,CACjB,UAAWnP,GAAAA,EAAAA,CAAAA,UAAuB,CAClC,kBAAmBjB,GAAAA,EAAAA,CAAAA,UAA+B,CAClD,eAAgBzB,GAAAA,EAAAA,CAAAA,UAA2B,CAC3C,UAAW5I,GAAAA,IAAAA,CAAAA,UAAe,CAC1B,eAAgBod,GAAAA,MAAAA,CAAAA,UAAiB,CACjC,iBAAkBpd,GAAAA,IAAAA,CAAAA,UAAe,CACjC,gBAAiBA,GAAAA,IAAAA,CAAAA,UAAe,CAChC,iBAAkBA,GAAAA,IAAAA,CAAAA,UAAe,CACjC,MAAOqL,GAAAA,EAAAA,CAAAA,UAAwB,CAC/B,QAASpL,GAAAA,MAAAA,CAAAA,UAAiB,CAC1B,eAAgBD,GAAAA,IAAAA,CAAAA,UAAe,CAC/B,mBAAoBC,GAAAA,MAAAA,CAAAA,UAAiB,CACrC,4BAA6BA,GAAAA,MAAAA,CAAAA,UAAiB,CAC9C,SAAUA,GAAAA,MAAAA,CAAAA,UAAiB,CAC3B,YAAaA,GAAAA,MAAAA,CAAAA,UAAiB,CAC9B,WAAY4N,GAAAA,EAAAA,CAAAA,UAA6B,CACzC,aAAc7N,GAAAA,IAAAA,CAAAA,UAAe,CAC7B,iBAAkBod,GAAAA,MAAAA,CAAAA,UAAiB,CACnC,4BAA6Bnd,GAAAA,MAAAA,CAAAA,UAAiB,CAC9C,+BAAgCA,GAAAA,MAAAA,CAAAA,UAAiB,CACjD,SAAUA,GAAAA,MAAAA,CAAAA,UAAiB,CAC3B,gBAAiBod,GAAAA,EAAAA,CAAAA,UAAkC,CACnD,4BAA6Bpd,GAAAA,MAAMA,AACrC,EtI7QA,IAAMqd,GAAiB,CAAC,CACtB7rB,KAAAA,CAAI,CACJ2pB,SAAAA,CAAQ,CACRjb,WAAAA,CAAU,CACVrZ,SAAAA,CAAQ,CACRgd,aAAAA,CAAY,CACZgX,SAAAA,CAAQ,CACRrW,YAAAA,CAAW,CACXsI,eAAAA,CAAc,CACdR,UAAAA,CAAS,CACTpD,kBAAAA,CAAiB,CACjB6D,QAAAA,CAAO,CACPC,UAAAA,CAAS,CACTgC,WAAAA,CAAU,CACV5B,WAAAA,CAAU,CACV7C,MAAAA,CAAK,CACL+S,gBAAAA,CAAe,CACf1C,eAAAA,CAAc,CACdrb,gBAAAA,CAAe,CACfC,iBAAAA,CAAgB,CAChB2B,iBAAAA,CAAgB,CAChBC,mBAAAA,CAAkB,CAClB+L,4BAAAA,CAA2B,CAC3BsN,eAAAA,CAAc,CACd1M,iBAAAA,CAAgB,CAChBjK,4BAAAA,CAA2B,CAC3BrE,4BAAAA,CAA2B,CAC3BC,+BAAAA,CAA8B,CAC/B,GAEG,WAAC6d,GAAAA,CAAYA,CAAAA,CACX,KAAM/rB,EACN,SAAU2pB,EACV,WAAYjb,E,SAEZ,WAACsd,GAAAA,CAAsBA,CAAAA,C,SACrB,WAACC,GAAAA,CAAkBA,CAAAA,C,SACjB,W2H7BK1O,G3H6BQA,CAAC,WAAYC,E,SACxB,WsIyOGwL,GtIzOIA,CACL,MAAOjQ,EACP,QAASwC,EACT,SAAUlmB,EACV,SAAUg0B,EACV,UAAWvO,EACX,UAAWU,EACX,WAAYI,EACZ,YAAa5I,EACb,aAAcX,EACd,eAAgBiJ,EAChB,eAAgB8N,EAChB,eAAgBH,EAChB,gBAAiB6C,EACjB,gBAAiB/d,EACjB,iBAAkBwO,EAClB,iBAAkB5M,EAClB,iBAAkB3B,EAClB,kBAAmB0J,EACnB,mBAAoB9H,EACpB,4BAA6B0C,EAC7B,4BAA6BqJ,EAC7B,4BAA6B1N,EAC7B,+BAAgCC,C,UAS9C2d,CAAAA,GAAe,SAAS,CAAG,CAEzB,KAAMrV,GAAAA,EAAYA,CAClB,SAAU0V,GAAAA,EAAgBA,CAC1B,WAAY3d,GAAAA,IAAIA,CAChB,SAAUC,GAAAA,MAAMA,CAChB,aAAcD,GAAAA,IAAIA,CAClB,SAAUC,GAAAA,MAAMA,CAChB,YAAaA,GAAAA,MAAMA,CAEnB,eAAgB2I,GAAAA,EAAgBA,CAChC,UAAW0C,GAAAA,EAAYA,CACvB,kBAAmBjB,GAAAA,EAAoBA,CAEvC,QAASpK,GAAAA,MAAMA,CACf,UAAWD,GAAAA,IAAIA,CACf,WAAYA,GAAAA,IAAIA,CAChB,WAAY6N,GAAAA,EAAkBA,CAC9B,MAAOxC,GAAAA,EAAaA,CACpB,gBAAiBgS,GAAAA,EAAuBA,CAExC,eAAgBrd,GAAAA,IAAIA,CACpB,gBAAiBA,GAAAA,IAAIA,CACrB,iBAAkBA,GAAAA,IAAIA,CACtB,iBAAkBA,GAAAA,IAAIA,CACtB,mBAAoBC,GAAAA,MAAMA,CAC1B,4BAA6BA,GAAAA,MAAMA,CAEnC,eAAgBmd,GAAAA,MAAMA,CACtB,iBAAkBA,GAAAA,MAAMA,CACxB,4BAA6Bnd,GAAAA,MAAMA,CACnC,+BAAgCA,GAAAA,MAAMA,CACtC,4BAA6BA,GAAAA,MAAMA,AACrC,EAEAqd,GAAe,YAAY,CAAG,CAE5B,KAAMlhC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,IAAI,AAAD,GAAC,CAAiB,OAAbC,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAe,IAAI,AAAD,EACtE,SAAUC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAe,QAAQ,AAAD,GAAC,CAAiB,OAAbC,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,QAAQ,AAAD,EAClF,WAAY,AAAa,OAAbC,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,UAAU,CAC5D,SAAUC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,QAAQ,AAAD,GAAK,QAC5D,aAAcC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,YAAY,AAAD,GAAK,GACpE,SAAUC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,QAAQ,AAAD,GAAC,CAA+C,OAA1CC,CAAAA,GAAAA,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAe,QAAQ,AAAD,GAAKiyB,EAAAA,CAAMA,CAAC,QAAQ,AAAD,GAAzCjyB,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA6C,QAAQ,AAAD,EACjH,YAAaC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,WAAW,AAAD,GAAC,CAA+C,OAA1CC,CAAAA,GAAAA,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAe,QAAQ,AAAD,GAAK+xB,EAAAA,CAAMA,CAAC,QAAQ,AAAD,GAAzC/xB,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAA6C,QAAQ,AAAD,EAEvH,eAAgB,AAAa,OAAbC,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,cAAc,CACpE,UAAWC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,SAAS,AAAD,GAAKuuB,GAAAA,EAAgBA,CAC9E,kBAAmBtuB,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,iBAAiB,AAAD,GAAKqtB,GAAAA,EAAwBA,CAEtG,QAASptB,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,OAAO,AAAD,GAAK,GAC1D,UAAWC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,SAAS,AAAD,GAAK,GAC9D,WAAYC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,UAAU,AAAD,GAAK,GAChE,WAAYC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,UAAU,AAAD,GAAK,CAAC,EACjE,MAAOC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,KAAK,AAAD,GAAK+uB,GAAAA,CAAAA,CAAAA,IAAc,CACpE,gBAAiB9uB,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,eAAe,AAAD,GAAK,GAE1E,eAAgBC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,cAAc,AAAD,GAAK,GACxE,gBAAiBC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,eAAe,AAAD,GAAK,GAC1E,iBAAkBC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,gBAAgB,AAAD,GAAK,GAC5E,iBAAkBC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,gBAAgB,AAAD,GAAK,GAC5E,mBAAoBC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,kBAAkB,AAAD,GAAK,GAChF,4BAA6BC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,2BAA2B,AAAD,GAAK,GAElG,eAAgBC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,cAAc,AAAD,GAAK,CAAC,EACzE,iBAAkBC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,gBAAgB,AAAD,GAAK,CAAC,EAC7E,4BAA6BC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,2BAA2B,AAAD,GAAK,GAClG,+BAAgCC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,8BAA8B,AAAD,GAAK,GACxG,4BAA6BC,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,GAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,AAAoC,OAApCA,CAAAA,GAAAA,GAAe,qBAAqB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,GAAAA,KAAAA,EAAAA,GAAsC,2BAA2B,AAAD,GAAK,EACpG,E,gCCxJA,SAAS,KAAa,MAAO,IAAWoM,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CA6BnR,OA3B2BrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACnF,MAAO,6BACP,KAAM,OACN,QAAS,YACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,UACN,SAAU,UACV,EAAG,mxEACH,SAAU,SACZ,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,+GACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,sIACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,OACN,EAAG,qIACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,8qNACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,SAAU,UACV,EAAG,qtBACH,SAAU,SACZ,EAAC,GC5BD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CA6BnR,OA3B4BrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACpF,MAAO,6BACP,KAAM,OACN,QAAS,YACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,OACN,SAAU,UACV,EAAG,kwEACH,SAAU,SACZ,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,OACN,EAAG,+GACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,uIACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,OACN,EAAG,oIACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,8iNACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,OACN,SAAU,UACV,EAAG,8uBACH,SAAU,SACZ,EAAC,GC5BD,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAuB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACxF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,8KACH,SAAU,SACZ,K,kBCVA,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAenR,OAbmBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC3E,MAAO,6BACP,KAAM,OACN,QAAS,WACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,UACN,SAAU,UACV,OAAQ,UACR,cAAe,QACf,eAAgB,QAChB,EAAG,oCACH,SAAU,SACZ,EAAC,GCdD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAkBnR,OAhBuBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC/E,MAAO,6BACP,KAAM,OACN,QAAS,WACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,UACN,SAAU,UACV,OAAQ,UACR,cAAe,QACf,eAAgB,QAChB,EAAG,oCACH,SAAU,SACZ,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,uBACL,EAAC,GCjBD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAYnR,OAViBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACzE,MAAO,6BACP,KAAM,OACN,QAAS,WACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,UACN,SAAU,UACV,EAAG,2JACH,SAAU,SACZ,EAAC,GiIwOD,GAjOgB,KACd,IAAMkuB,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IAEX3mB,EAAa4mB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,aAAa,EACvD/Z,EAAuBs9B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACvBC,EAAsB,CAAC19B,EAAUmP,IAAYouB,EAASxmB,GAAgB,mBAAmB,CAAC/W,EAAUmP,IAEpGwuB,EAAyB,CAACn0B,EAAQo0B,KACtC,GAAI/mB,EAAY,CACd6mB,EAAoB,GAAM,CAAEl0B,OAAAA,EAAQo0B,UAAAA,CAAU,GAC9C,MACF,CACAL,EAASxmB,GAAgB,sBAAsB,CAACvN,GAClD,EACMq0B,EAAkC,CAAC79B,EAAUD,IAAcw9B,EAASxmB,GAAgB,+BAA+B,CAAC/W,EAAUD,IAE9H,CAAC+9B,EAAaC,EAAe,CAAG9V,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IACzCngB,EAAW21B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,WAAW,EAEnD,CAAE,KAAM3J,CAAW,CAAE,CAAGktB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,eAAe,GAAK,CAAC,EAC1E/D,EAA0BsnB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MAC1B,CAAE,MAAOO,CAAU,CAAE,CAAGP,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MAExBjnB,EAAsBinB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,sBAAsB,EACzEpa,EAAyB29B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MAE/B7a,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,GAAIpM,GAAuBvM,OAAO,IAAI,CAACuM,GAAqB,MAAM,CAAG,EAAG,CACtE,GAAM,CAAE,WAAY/G,CAAS,CAAE,CAAG+G,EAClCqnB,EAAgCpuB,EAClC,CACF,EAAG,CAAC+G,EAAoB,EAExB,IAAMynB,EAAgB,KACpBF,EAAe,CAACD,EAClB,EACAlb,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACJkb,EACFntB,SAAS,aAAa,CAAC,QAAQ,KAAK,CAAG,4BAEvCA,SAAS,aAAa,CAAC,QAAQ,KAAK,CAAG,4BAE3C,EAAG,CAACmtB,EAAY,EAChB,IAAMI,EAAsB10B,AAAAA,IAC1B,GAAM,CACJuY,MAAAA,CAAK,CACL,GAAI/hB,CAAQ,CACZ8E,UAAAA,CAAS,CACT,KAAMuD,CAAW,CACjB,WAAYoH,CAAS,CACrB,WAAY,CAAE5E,KAAAA,CAAI,CAAEjB,SAAAA,CAAQ,CAAE,CAC9B4E,SAAAA,CAAQ,CACT,CAAGhF,EAEE,CAAE,KAAMpB,CAAU,CAAE,CADHN,EAAS,IAAI,CAAC8E,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAAM6C,GAE1D,CAAE5B,SAAAA,EAAW,EAAK,CAAEa,MAAAA,EAAQ,EAAK,CAAE,CAAGF,GAAY,CAAC,EACnD,CAAE,GAAI2vB,CAAe,CAAE,CAAG3nB,EAE5B4nB,EAAcC,GAKlB,OAJIxwB,EACFuwB,EAAcE,GACL5vB,GAAO0vB,CAAAA,EAAcG,EAAAA,EAG9B,WAACC,GAAAA,EAAIA,CAAAA,CAEH,QAAS,IAAMT,EAAe,IAC9B,GAAI,AAAClnB,EAA8E,IAAjErP,GAAe,CAAC,CAAC,EAAE+I,EAAY,CAAC,EAAEnI,EAAW,CAAC,EAAEC,EAAY,CAAC,E,SAE/E,YAAC,OAEC,kBAAiBvD,EACjB,UAAW,IAAM64B,EAAuBn0B,GACxC,QAAS,IAAMm0B,EAAuBn0B,EAAQhC,GAAe,CAAC,CAAC,EAAE+I,EAAY,CAAC,EAAEnI,EAAW,CAAC,EAAEC,EAAY,CAAC,GAC3G,UAAWwd,KACT,CAAE,aAAcsY,IAAoBn+B,CAAS,EAC7C,yE,UAGF,WAAC,OAAI,UAAW6lB,KAAW,CAAE,OAAQsY,IAAoBn+B,CAAS,G,SAChE,WAACo+B,EAAAA,CAAY,UAAU,kB,KAEzB,YAAC,OAAI,UAAU,gB,UACb,WAAC,MAAG,UAAU,yD,SACXrc,C,GAEDlX,AAAS,YAATA,GAAsBjB,GACtB,YAAC,OAAI,UAAU,oB,UACb,WAAC60B,GAAwBA,CAAC,UAAU,wC,GACpC,YAAC,UAAO,UAAU,yB,UACf70B,EAAS,UAAU,CAAC,IAAK,KAAK,I,WApBlC9E,E,EALF,CAAC,EAAEyL,EAAY,CAAC,EAAEvQ,EAAS,CAAC,CAkCvC,EAEM0+B,EAAgBC,AAAAA,IACpB,GAAM,CACJ32B,SAAAA,CAAQ,CAAE+Z,MAAAA,CAAK,CAAEnX,GAAAA,CAAE,CAAElB,WAAAA,CAAU,CAAE,UAAW1J,CAAQ,CACrD,CAAG2+B,EACE,CAAE,MAAOpzB,CAAY,CAAE,CAAG7B,EAC1B,CAAEk1B,aAAAA,EAAe,EAAE,CAAE,CAAG16B,EAAgB,CAAClE,EAAS,CAACuL,EAAa,CAEhE7G,EAAiBwE,AAAAA,IACrB,IAAMC,EAAWD,EAAI,QAAQ,CAAC,KAAO,IAAM,IACrC,CAACE,EAAQC,EAAO,CAAGH,EAAI,KAAK,CAACC,GACnC,OAAOG,AAAuB,GAAvBA,SAASF,EAAQ,IAAWE,SAASD,EAAQ,GACtD,EAcM,CAAEw1B,eAAAA,CAAc,CAAEh1B,aAAAA,CAAY,CAAE,CAAGE,AAZV,MAC7B,IAAM+0B,EAAiB92B,EAAS,MAAM,CAAC+2B,AAAAA,I,IAAWC,E,MAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAmB,OAAnBA,CAAAA,EAAAA,EAAS,UAAU,AAAD,GAAlBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB,IAAI,AAAD,IAAM,S,GAC1Eh1B,EAAe80B,EAAe,MAAM,CAAC,CAAC50B,EAAKC,KAC/C,GAAM,CAAE,WAAY,CAAEP,SAAAA,CAAQ,CAAE,CAAE,CAAGO,EACrC,OAAOD,EAAON,CAAAA,EAAWlF,EAAekF,GAAY,EACtD,EAAG,GACH,MAAO,CACL,eAAgBk1B,EAAe,MAAM,CACrC,aAAc74B,KAAK,KAAK,CAAC+D,EAAe,GAC1C,CACF,KAIMi1B,EAA8B,KAClC,IAAMt/B,EAASG,EAAuB,QAAQ,CAAC8K,GAAM,SAAW,MAChEizB,EAAgCjzB,EAAIjL,EACtC,EAEA,MACE,yB,UACE,WAAC,OACC,QAASs/B,EACT,UAAWA,EACX,UAAW,CAAC,wGAAwG,EAAEL,EAAa,CAAC,CACpI,MAAO,CAAE,eAAgB,KAAM,E,SAE/B,YAAC,OAAI,UAAU,qC,UACb,YAAC,OAAI,UAAU,gB,UACb,WAAC,MAAG,UAAU,+B,SAAgC7c,C,GAC9C,WAAC,MAAG,UAAU,0B,SAA2B,CAAC,EAAE8c,EAAe,UAAU,EAAEh1B,EAAa,QAAQ,CAAC,A,MAE/F,WAAC,UACC,KAAK,SACL,aAAW,W,SAEX,WAACq1B,GAAAA,CAAeA,CAAAA,CAAC,UAAWrZ,KAAW,CAAE,uBAAwB/lB,EAAuB,QAAQ,CAAC8K,EAAI,EAAG,mB,UAI7G9K,EAAuB,QAAQ,CAAC8K,GAC/B5C,EAAS,GAAG,CAAC+2B,AAAAA,GAAWb,EAAoBa,IACzC,G,EAIX,EAIA,MACE,yB,UACE,WAAC,SACC,MAAO,CAAE,OAAQ,GAAK,EACtB,UAAWlZ,KACT,CACE,gBAAiBiY,EACjB,kBAAmB,CAACA,EACpB,sBAVkB3nB,GAA2B6nB,GAAe79B,CAW9D,EACA,gI,SAGF,WAAC,OAAI,UAAU,2B,SAEX2H,AAAoB,IAApBA,EAAS,MAAM,CACb,yB,UACE,WAAC,OAAI,UAAU,6B,GACf,WAAC,OAAI,UAAU,6B,GACf,WAAC,OAAI,UAAU,6B,GACf,WAAC,OAAI,UAAU,6B,GACf,WAAC,OAAI,UAAU,6B,GACf,WAAC,OAAI,UAAU,6B,GACf,WAAC,OAAI,UAAU,6B,MAGjBA,EAAS,MAAM,CAAC8E,AAAAA,I,IAAYgF,E,MAAAA,AAAAA,CAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAiB,OAAjBA,CAAAA,EAAAA,EAAS,QAAQ,AAAD,GAAhBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmB,MAAM,AAAD,GAAK,EAAC,EAAG,MAAM,CAAG,GAAKhF,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,QAAQ,CAAC,MAAM,AAAD,EAAI,C,GAAG,GAAG,CAAC+xB,AAAAA,IAC3G,GAAM,CAAEQ,OAAAA,EAAS,EAAK,CAAE,WAAY,CAAEr0B,MAAAA,CAAK,CAAE,CAAE,CAAG6zB,EAClD,MACE,YAAC,OAA+C,UAAU,e,UACvDQ,GAAU,WAAC,OAAI,UAAU,iB,GACzBT,EAAcC,G,EAFP,CAAC,QAAQ,EAAEr1B,SAASwB,EAAO,IAAM,EAAE,CAAC,CAKlD,E,KAKR,WAAC,UACC,MAAO,CAAE,OAAQ,GAAI,EACrB,KAAK,SACL,UAAW+a,KAAW,CAAE,cAAeiY,EAAa,sBAAuB,CAACA,CAAY,EAAG,2HAC3F,QAASG,E,SAERH,EAAe,WAACzd,GAAAA,CAASA,CAAAA,CAAC,UAAU,kB,GAA0B,WAACC,GAAQA,CAAC,UAAU,kB,KAGrF,WAAC,OACC,MAAO,CAAE,OAAQ,GAAI,EACrB,UAAWuF,KACT,CAAE,MAAOiY,EAAa,OAAQ,CAACA,CAAY,EAC3C,sDAEF,UAAWG,EACX,QAASA,C,KAIjB,ECjLA,GAzDgB,KACd,IAAMV,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACX3mB,EAAa4mB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,aAAa,EACvD/Z,EAAuBs9B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACvBnzB,EAAUmzB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,UAAU,EACjD,CAAE,KAAMklB,CAAgB,CAAE,CAAG3B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,eAAe,GAAK,CAAC,EAC/EwjB,EAAsB,CAAC19B,EAAUmP,IAAYouB,EAASxmB,GAAgB,mBAAmB,CAAC/W,EAAUmP,IACpGkwB,EAAc,CAClB,CAAE,MAAO,OAAQ,GAAI,GAAI,EACzB,CAAE,MAAO,UAAW,GAAI,UAAW,EACpC,CACD,GAAID,GAAoB90B,EAAQ,MAAM,CAAG,EAAG,CAC1C,IAAMmM,EAAenM,EAAQ,IAAI,CAACd,AAAAA,GAAU41B,IAAqB51B,EAAO,IAAI,EAC5E61B,EAAY,IAAI,CAAC,CAAE,MAAO5oB,MAAAA,EAAAA,KAAAA,EAAAA,EAAc,KAAK,CAAE,SAAU,GAAM,GAAI,EAAM,EAC3E,CAEA,MACE,WAAC,W,SACC,WAAC,OACC,UAAW,CAAC,+FAA+F,EAAE6oB,AAJxFn/B,EAI6G,sBAAwB,GAAG,CAAC,C,SAG5Jk/B,EAAY,MAAM,CAAG,EACnB,yB,UACE,WAAC,QAAK,UAAU,4B,GAChB,WAAC,QAAK,UAAU,4B,GAChB,WAAC,QAAK,UAAU,2B,MAGlBA,EAAY,GAAG,CAAC,CAACE,EAAYx3B,KAC3B,GAAM,CAAEoY,SAAAA,EAAW,EAAK,CAAE4B,MAAAA,CAAK,CAAEyd,GAAAA,CAAE,CAAE,CAAGD,EACxC,MACE,YAACf,GAAAA,EAAIA,CAAAA,CACH,GAAI3nB,EAAa,IAAMrP,GAAeg4B,GACtC,QAAS,KACF3oB,GACL6mB,EAAoB,GAAM,CAAE,QAASl2B,GAAeg4B,EAAI,EAC1D,EAEA,UAAW3Z,KAAW,CACpB,sBAAuB,CAAC2Z,EACxB,iBAAkB,CAACrf,EACnB,mBAAoBA,CACtB,EAAG,W,UAEF4B,EACCsd,EAAY,MAAM,CAAG,IAAMt3B,GAAU,K,EARlCga,EAWX,E,IAMZ,EC5CA,GAAe0d,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAfO,CAAC,CAAElpB,QAAAA,CAAO,CAAEqH,MAAAA,CAAK,CAAE,IACvCgF,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,IAAM8c,EAAWnpB,EAAQ,MAAM,CAAC,KAE1B,CAACopB,AAD4B,CAAC,SAAU,UAAU,CACxB,QAAQ,CAAC/hB,IACrC5iB,OAAO,QAAQ,CAAC,EAAG,EAEvB,GACA,MAAO,KACL0kC,GACF,CACF,EAAG,CAAC9hB,EAAM,EACH,O,clIfT,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAA0B,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC3F,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,8gBACH,SAAU,SACZ,K,8CCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,C,WAE7Q,IAAC,GAAc,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC/E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,6WACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAc,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC/E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,gJACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW3T,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CA8BnR,OA5BgBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACxE,MAAO,6BACP,KAAM,OACN,QAAS,WACX,EAAGA,GAAqB,gBAAmB,CAAC,IAAK,CAC/C,MAAO,CACL,aAAc,SAChB,CACF,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,GAAI,cACJ,MAAO,GACP,OAAQ,GACR,EAAG,EACH,EAAG,EACH,UAAW,iBACX,MAAO,CACL,SAAU,OACZ,CACF,EAAG,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC5D,KAAM,UACN,EAAG,+WACL,EAAC,GAAK,IAAO,IAAkB,gBAAmB,CAAC,IAAK,CACtD,KAAM,mBACR,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,OACN,YAAa,GACb,EAAG,mBACL,GAAE,IgIDF,IAAMuwB,GAAiB,CAAC,CACtB,OAAQ3uB,EAAU,CAAC,CAAC,CAAE4uB,iBAAAA,EAAmBp7B,AAAAA,GAAKA,CAAC,CAAEoG,KAAAA,EAAO,QAAQ,CAAEP,QAAAA,EAAU,EAAE,CAC9Ew1B,eAAAA,EAAiB,EAAK,CACvB,I,IAiLsEC,EASGC,EAzLxE,GAAM,CAAE,YAAa5uB,CAAI,CAAE,CAAGqsB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACxB/tB,EAAW+tB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACXwC,EAAexC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MAEf,CACJ7yB,GAAAA,CAAE,CACFtC,KAAAA,CAAI,CACJyZ,MAAAA,CAAK,CACL3H,OAAAA,CAAM,CACN5L,SAAAA,CAAQ,CACR0xB,YAAAA,EAAc,EAAE,CAChB,UAAWlgC,CAAQ,CACnB0J,WAAAA,CAAU,CACV,IAAKy2B,CAAK,CACVr4B,SAAAA,CAAQ,CACT,CAAGmJ,EACEF,EAAWqJ,AAAW,aAAXA,EAEX,CAAEtP,MAAAA,CAAK,CAAE,CAAGpB,GAAc,CAAC,EAE3BmH,EAA+B,MAC/BE,IACJ7B,GAAkB,CAAE,MAAOQ,EAAU,OAAQuB,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,IAAI,CAAE,OAAQ,2BAA4B,GAChG4uB,EAAiB5uB,GACnB,EAEMssB,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACXltB,EAAqB,CAAC8vB,EAAkBC,EAAiBC,IAAqB/C,EAASxmB,GAAgB,kBAAkB,CAACqpB,EAAkBC,EAAiBC,IAC7JC,EAAkBC,AAAAA,GAAejD,EAASxmB,GAAgB,WAAW,CAACypB,IAEtEC,EAA4BC,AAAAA,IAEhCp/B,AADgBo/B,CAAAA,EAAqB99B,GAAuBD,EAAgB,EACpEiI,GAAI,IAAI,CAAC,KACflI,KAAkB,IAAI,CAACi+B,AAAAA,IACrBJ,EAAgBI,EAClB,EACF,EACF,EAmFA,GAAI91B,AAAS,aAATA,EACF,MACE,YAAC,OAAI,UAAU,kF,UACb,WAAC,OAAI,UAAU,qC,SACb,WAAC,OACC,QAAQ,eACR,UAAU,e,KAGd,YAAC,OAAI,UAAU,2B,UACb,WAAC,OAAI,UAAU,2C,GACf,WAAC,OAAI,UAAU,2C,GACf,WAAC,OAAI,UAAU,6C,GACf,WAAC,OAAI,UAAU,6C,GACf,WAAC,OAAI,UAAU,4C,GACf,WAAC,OAAI,UAAU,8C,SAKvB,IAAM+1B,EAAiB/1B,AAAS,YAATA,EACnBg2B,EAAmB,GACvB,OAAQ5vB,EAAQ,IAAI,EAClB,IAAK,eACH4vB,EAAmB,UACnB,KACF,KAAK,eACHA,EAAmB,UACnB,KACF,KAAK,iBACHA,EAAmB,UACnB,KACF,KAAK,sBACHA,EAAmB,UACnB,KACF,KAAK,qBACHA,EAAmB,SAGvB,CACA,MACE,YAAC,OAAI,UAAU,kB,UAEXV,GACE,WAAC,OAAI,UAAU,+K,SAA+K,K,GAGlM,WAAC,OACC,QAAStvB,EACT,UAAWA,EACX,UAAW,CAAC,2FAA2F,EAAE,AAACE,EAAqC,GAA1B,wBAA6B,CAAC,C,SAEnJ,YAAC,OAAI,UAAU,8C,UACb,YAAC,OAAI,UAAU,kB,UACb,YAAC,OACC,UAAU,uFACV,MAAO,CAAE,WAAY6vB,EAAiBC,EAAmB,AAAiC,OAAjCd,CAAAA,EAAAA,EAAgB,CAAC//B,EAAS,CAAC8K,EAAM,AAAD,GAAhCi1B,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmC,KAAK,AAAC,E,UAGlG,YAAC,OAAI,UAAU,sE,UACb,WAAC,OAAI,UAAU,+B,SACb,WAACe,GAAeA,CAAC,UAAU,oB,KAG3B,CAACF,GACC,WAAC,MAAG,UAAW,CAAC,oCAAoC,EAAE,AAAiC,OAAjCZ,CAAAA,EAAAA,EAAgB,CAAChgC,EAAS,CAAC8K,EAAM,AAAD,GAAhCk1B,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmC,KAAK,CAAC,CAAC,C,SAAG,CAAC,OAAO,EAAEl1B,EAAM,CAAC,A,GAGxH,WAAC,MAAG,UAAU,uE,SAAwEiX,C,MAGxF,WAAC,UAAO,UAAU,8B,SAChB,WAAC,OACC,MAAO,CAAE,OAAQ,mGAAoG,EACrH,IAAKA,EACL,QAAQ,OACR,IAAKpe,EAAW,CAAC2E,EAAK,CACtB,UAAU,yJACV,MAAO,IACP,OAAQ,G,QAKbw3B,GACC,WAAC,UACC,KAAK,SACL,QAASW,EACT,UAAU,+L,SAEV,WAACM,GAAeA,CAAC,UAAU,S,KAG/B,YAAC,OAAI,UAAU,Y,UACb,WAAC,OAAI,UAAU,iC,SAEXhwB,EACE,WAAC,OAAI,UAAU,sG,SAAsG,U,GAErH,wB,SACE,YAAC,OAAI,UAAU,a,UACb,YAAC,OAAI,UAAU,4B,UACb,WAAC0tB,GAAwBA,CAAC,UAAU,kCAAkC,aAAW,W,GACjF,WAAC,QAAK,UAAU,iD,SAAkD,CAAC,EAAEh0B,GAAuBwG,GAAS,OAAO,CAAC,A,MAE/G,YAAC,OAAI,UAAU,4B,UACb,WAAC+vB,GAAeA,CAAC,UAAU,kCAAkC,aAAW,W,GACxE,WAAC,QAAK,UAAU,iD,SAAkDr3B,GAAwBJ,GAA0B0H,G,aAQ9H,CAACF,GACC,YAAC,KAAE,UAAU,4C,UACVjJ,EAAS,MAAM,CACf,IAECA,AAAoB,IAApBA,EAAS,MAAM,CAAS,SAAW,U,GAK3C,WAAC,OAAI,UAAU,wD,SACZia,C,GAEH,WAAC,OAAI,UAAU,6B,SAGnB,WAAC,OAAI,UAAU,mB,SACb,YAAC,KAAE,UAAW8D,KAAW,CAAE,yBAA0Bia,EAAgB,UAAW,CAACA,CAAe,EAAG,8B,UAC/FI,AAAAA,CAAAA,GAAe,EAAC,EAAG,MAAM,CAAC,EAAG,KAAK,M,KAIxC,WAAC,OAAI,UAAU,Y,SACb,WA3NiB,KACzB,GAAInvB,GAAY,CAAC+uB,EAAgB,CAC/B,IAAMY,EAAqBT,EAAa,QAAQ,CAACr1B,GAC3C,CAAE,aAAciH,CAAW,CAAE,CAAGT,GAAQ,CAAC,EACzC,CAAEU,KAAAA,EAAO,EAAE,CAAE,CAAGD,GAAe,CAAC,EAChCjK,EAAiBkK,AAAS,KAATA,GAAeA,AAAS,UAATA,EACtC,MACE,YAAC,UACC,KAAK,SACL,QAAS,KACP,GAAI,CAAClK,EAAgB,CACnBuI,KACA,MACF,CACAjB,GAAkB,CAChB,MAAOQ,EACP,OAAQuB,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,IAAI,CACrB,OAAQ,CAAC,EAAE,AAACyvB,EAA6B,SAAR,MAAiB,QAAQ,CAAC,AAC7D,GACAD,EAA0BC,EAC5B,EACA,UAAW7a,KAAW,CACpB,MAAO6a,EACP,4EAA6EA,EAC7E,2FAA4F,CAACA,CAC/F,EAAG,qN,UAEH,YAAC,QAAK,UAAU,sD,UACbA,GACC,WAACO,GAAAA,CAAqBA,CAAAA,CAAC,UAAU,c,GAElC,CAAC,GAAG,EAAEP,EAAqB,KAAO,GAAG,YAAY,CAAC,C,GAGrD,WAAC,QAAK,UAAU,2B,SAA2B,sB,KAGjD,CAAE,GAAIZ,EACJ,OAAO,KAGT,GAAM,CACJ1tB,KAAAA,CAAI,CAAE8N,QAAAA,CAAO,CAAEghB,OAAAA,EAAS,EAAK,CAAEC,QAAAA,CAAO,CACvC,CAAGvwB,GAA0B,CAC5BtI,KAAAA,EACA8I,KAAAA,EACA9G,QAAAA,EACAyG,SAAAA,EACArB,SAAAA,EACAlB,SAAAA,EACAxO,SAAAA,EACA,UAAW4K,EACX0F,mBAAAA,EACAO,6BAAAA,EACAI,QAAAA,CACF,IAAM,CAAC,SACP,AAAIiwB,EAEA,WAAC1C,GAAAA,EAAIA,CAAAA,CACH,GAAIh3B,GAAe25B,GACnB,QAASjhB,E,SAET,WAAC,UACC,KAAK,SACL,UAAU,wS,SAET9N,C,KAMP,WAAC,UACC,KAAK,SACL,QAAS8N,EACT,UAAU,wS,SAET9N,C,EAGP,EA2IWgvB,CAAAA,E,UAMb,CAGAxB,CAAAA,GAAe,SAAS,CAAG,CACzB,KAAMhgB,GAAAA,MAAMA,CACZ,OAAQmd,GAAAA,MAAMA,CACd,eAAgBpd,GAAAA,IAAIA,CACpB,iBAAkBY,GAAAA,IAAIA,CACtB,QAAS8gB,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQtE,GAAAA,MAAMA,CACzB,E,kBCjRA,GA1Be,CAAC,CAAEuE,cAAAA,CAAa,CAAEC,iBAAAA,CAAgB,CAAE,IACjD,IAAMC,EAAkBC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAqB9hC,AAAAA,GAAUA,IAAU,KAAK,QAAQ,CAC9E,MACE,wB,SACE,YAAC,OAAI,UAAU,uE,UACb,WAAC,SACC,MAAO2hC,EACP,KAAK,SAAS,KAAK,GAAG,GAAG,GACzB,YAAY,qBACZ,SAAU/gC,AAAAA,IACR,GAAM,CAAE,OAAQ,CAAE,MAAOmhC,EAAc,EAAE,CAAE,CAAE,CAAGnhC,CAC5CmhC,CAAAA,EAAY,MAAM,EAAI,GACxBF,EAAgB,IAAMp+B,GAAes+B,IAEvCH,EAAiBG,EACnB,EACA,UAAU,iH,GAEZ,WAAC,UAAO,UAAU,8MAA8M,KAAK,SAAS,aAAW,c,SACvP,WAACzK,GAAAA,CAAmBA,CAAAA,CAAC,UAAU,kB,SAMzC,EhI/BA,SAAS,KAAa,MAAO,IAAWhtB,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CA2InR,OAzIgBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACxE,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQvR,IAAUA,CAAAA,GAAqB,gBAAmB,CAAC,OAAQ,CACpE,MAAO,QACP,OAAQ,QACR,EAAG,KACH,EAAG,QACH,OAAQ,oBACR,YAAa,KACb,GAAI,MACN,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC9D,KAAM,oBACN,SAAU,UACV,OAAQ,oBACR,YAAa,KACb,EAAG,i9CACH,SAAU,SACZ,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,OAAQ,oBACR,YAAa,KACb,EAAG,yLACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,oBACN,EAAG,gNACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,oBACN,SAAU,UACV,EAAG,+aACH,SAAU,SACZ,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,OAAQ,oBACR,YAAa,KACb,EAAG,kLACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,oBACN,SAAU,UACV,EAAG,kaACH,SAAU,SACZ,EAAC,EAAIC,IAAUA,CAAAA,GAAqB,gBAAmB,CAAC,OAAQ,KAAmB,gBAAmB,CAAC,iBAAkB,CACvH,GAAI,cACJ,GAAI,OACJ,GAAI,OACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAkB,gBAAmB,CAAC,iBAAkB,CACtD,GAAI,cACJ,GAAI,OACJ,GAAI,OACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAkB,gBAAmB,CAAC,iBAAkB,CACtD,GAAI,cACJ,GAAI,OACJ,GAAI,OACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAkB,gBAAmB,CAAC,iBAAkB,CACtD,GAAI,cACJ,GAAI,QACJ,GAAI,QACJ,GAAI,MACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAkB,gBAAmB,CAAC,iBAAkB,CACtD,GAAI,cACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAkB,gBAAmB,CAAC,iBAAkB,CACtD,GAAI,cACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAkB,gBAAmB,CAAC,iBAAkB,CACtD,GAAI,cACJ,GAAI,OACJ,GAAI,OACJ,GAAI,MACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAkB,gBAAmB,CAAC,iBAAkB,CACtD,GAAI,cACJ,GAAI,OACJ,GAAI,OACJ,GAAI,OACJ,GAAI,OACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAG,GC1IH,SAAS,KAAa,MAAO,IAAWkM,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CA4HnR,OA1HiBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACzE,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,MAAO,OACP,OAAQ,OACR,EAAG,QACH,EAAG,OACH,OAAQ,qBACR,YAAa,KACb,GAAI,MACN,EAAC,EAAI,IAAO,IAAkB,gBAAmB,CAAC,IAAK,CACrD,SAAU,oBACZ,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,qBACN,SAAU,UACV,EAAG,mhDACH,SAAU,SACZ,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,uNACL,GAAE,EAAIrR,IAAWA,CAAAA,GAAsB,gBAAmB,CAAC,OAAQ,CACjE,MAAO,OACP,OAAQ,OACR,EAAG,QACH,EAAG,KACH,OAAQ,qBACR,YAAa,KACb,GAAI,MACN,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC9D,KAAM,qBACN,SAAU,UACV,EAAG,iaACH,SAAU,SACZ,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,OAAQ,qBACR,YAAa,KACb,EAAG,wLACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,qBACN,SAAU,UACV,EAAG,mwBACH,SAAU,SACZ,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,KAAmB,gBAAmB,CAAC,iBAAkB,CACvH,GAAI,eACJ,GAAI,OACJ,GAAI,OACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAkB,gBAAmB,CAAC,iBAAkB,CACtD,GAAI,eACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAkB,gBAAmB,CAAC,iBAAkB,CACtD,GAAI,eACJ,GAAI,OACJ,GAAI,OACJ,GAAI,EACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAkB,gBAAmB,CAAC,iBAAkB,CACtD,GAAI,eACJ,GAAI,QACJ,GAAI,QACJ,GAAI,MACJ,GAAI,OACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAkB,gBAAmB,CAAC,iBAAkB,CACtD,GAAI,eACJ,GAAI,QACJ,GAAI,QACJ,GAAI,MACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAkB,gBAAmB,CAAC,iBAAkB,CACtD,GAAI,eACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAkB,gBAAmB,CAAC,WAAY,CAChD,GAAI,cACN,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,OACN,EAAG,yCACL,IAAG,GgIpHH,IAAM2jC,GAAO,CAAC,CACZ5f,MAAAA,EAAQ,EAAE,CAAEme,YAAAA,EAAc,EAAE,CAAEoB,cAAAA,EAAgB,EAAE,CAAEC,iBAAAA,EAAmB,IAAI,CAC1E,GAEG,wB,SACE,YAAC,UAAO,UAAU,0D,UAChB,WAAC,OAAI,UAAU,0C,GACf,WAAC,OACC,UAAW1b,KACT,CAAE,kDAAmD0b,CAAiB,EACtE,CAAE,qCAAsC,CAACA,CAAiB,EAC1D,uG,SAGF,WAACK,GAAQA,CAAC,UAAU,gC,KAEtB,YAAC,OAAI,UAAU,+E,UACb,WAAC,MAAG,UAAU,sD,SAAuD7f,C,GACrE,WAAC,KACC,UAAW8D,KACT,CAAE,WAAY,CAAC0b,CAAiB,EAChC,6F,SAGDrB,C,GAGDqB,GAAoB,WAACM,GAAMA,CAAC,cAAeP,EAAe,iBAAkBC,C,MAGhF,WAAC,OACC,UAAW1b,KACT,CAAE,kDAAmD0b,CAAiB,EACtE,CAAE,qCAAsC,CAACA,CAAiB,EAC1D,uG,SAGF,WAACO,GAASA,CAAC,UAAU,gC,KAEvB,WAAC,OAAI,UAAU,4C,Q/H9CvB,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,C+HqDlRH,GAAK,SAAS,CAAG,CACf,MAAO/hB,GAAAA,MAAMA,CACb,YAAaA,GAAAA,MAAMA,CACnB,cAAeA,GAAAA,MAAMA,CACrB,iBAAkBW,GAAAA,IAAIA,AACxB,E/HxDK,IAAC,GAA2B,GAAsB,GAAM,aAAa,CAAC,MAAO,GAAS,CACzF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,EAAG,oLACL,IAAK,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,SAAU,UACV,EAAG,0LACH,SAAU,SACZ,KCZA,SAAS,KAAa,MAAO,IAAWtW,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAkBnR,OAhBiBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACzE,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAGA,GAAQ,IAAO,IAAkB,gBAAmB,CAAC,IAAK,CAC3D,SAAU,oBACZ,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,SAAU,UACV,EAAG,geACH,SAAU,SACZ,GAAE,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,KAAmB,gBAAmB,CAAC,WAAY,CAClH,GAAI,cACN,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,OACN,EAAG,oBACL,IAAG,GCjBH,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAenR,OAbiBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACzE,MAAO,6BACP,KAAM,OACN,QAAS,WACX,EAAGA,GAAQpR,IAAYA,CAAAA,GAAuB,gBAAmB,CAAC,SAAU,CAC1E,GAAI,GACJ,GAAI,GACJ,EAAG,GACH,KAAM,SACR,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC9D,KAAM,OACN,EAAG,iFACL,EAAC,GCdD,SAAS,KAAa,MAAO,IAAWgM,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAenR,OAbkBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC1E,MAAO,6BACP,KAAM,OACN,QAAS,WACX,EAAGA,GAAQ,IAAY,IAAuB,gBAAmB,CAAC,SAAU,CAC1E,GAAI,GACJ,GAAI,GACJ,EAAG,GACH,KAAM,SACR,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC9D,KAAM,OACN,EAAG,iLACL,EAAC,GCdD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAuMnR,OArMerW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACvE,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQ,IAAO,IAAkB,gBAAmB,CAAC,IAAK,CAC3D,OAAQ,kBACV,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,OACN,EAAG,qBACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,wmBACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,g5hCACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,OAAQ,OACR,YAAa,KACb,EAAG,0VACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,OACN,OAAQ,UACR,YAAa,IACb,EAAG,iNACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,yGACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,OAAQ,UACR,YAAa,KACb,EAAG,oWACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,gzIACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,GAAI,aACJ,KAAM,MACR,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,SAAU,UACV,EAAG,mgBACH,SAAU,SACZ,IAAkB,gBAAmB,CAAC,OAAQ,CAC5C,KAAM,UACN,SAAU,UACV,EAAG,mgBACH,SAAU,SACZ,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,SAAU,UACV,EAAG,mgBACH,SAAU,SACZ,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,OACN,EAAG,wjEACH,KAAM,kBACR,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,MAAO,OACP,OAAQ,IACR,EAAG,QACH,EAAG,QACH,KAAM,UACN,OAAQ,OACR,YAAa,KACb,GAAI,IACN,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,OACN,SAAU,UACV,EAAG,u1DACH,SAAU,SACZ,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,OACN,EAAG,wGACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,yHACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,OACN,EAAG,uHACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,k+KACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,OACN,SAAU,UACV,EAAG,qrBACH,SAAU,SACZ,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,mBACR,YAAa,KACb,EAAG,oBACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,ovKACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,SAAU,UACV,EAAG,s+DACH,SAAU,SACZ,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,8FACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,6IACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,OACN,EAAG,+IACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,sgMACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,SAAU,UACV,EAAG,0pBACH,SAAU,SACZ,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,UACR,YAAa,KACb,EAAG,sHACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,mBACR,YAAa,KACb,EAAG,oEACL,GAAE,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,KAAmB,gBAAmB,CAAC,iBAAkB,CACxH,GAAI,aACJ,GAAI,QACJ,GAAI,GACJ,GAAI,OACJ,GAAI,OACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,UACX,YAAa,CACf,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,KACR,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,KACR,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,UACX,YAAa,CACf,IAAkB,gBAAmB,CAAC,iBAAkB,CACtD,GAAI,aACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,UACX,YAAa,CACf,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,KACR,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,KACR,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,UACX,YAAa,CACf,IAAkB,gBAAmB,CAAC,SAAU,CAC9C,GAAI,aACJ,MAAO,QACP,OAAQ,QACR,EAAG,KACH,EAAG,IACH,0BAA2B,OAC3B,YAAa,gBACf,EAAgB,gBAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,gBAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,OAAQ,YACR,OAAQ,2CACV,GAAiB,gBAAmB,CAAC,WAAY,CAC/C,GAAI,KACN,GAAiB,gBAAmB,CAAC,iBAAkB,CACrD,aAAc,KAChB,GAAiB,gBAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,gBAAmB,CAAC,gBAAiB,CACpD,OAAQ,2CACV,GAAiB,gBAAmB,CAAC,UAAW,CAC9C,IAAK,qBACL,OAAQ,8BACV,GAAiB,gBAAmB,CAAC,UAAW,CAC9C,GAAI,gBACJ,IAAK,+BACL,OAAQ,OACV,IAAG,GCtMH,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAmB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACpF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,+LACH,SAAU,SACZ,K,kBCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAiB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAClF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,0EACH,SAAU,SACZ,K,kBCVA,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAYnR,OAVgBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACxE,MAAO,6BACP,KAAM,OACN,QAAS,WACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,OACN,SAAU,UACV,EAAG,2HACH,SAAU,SACZ,EAAC,GyHPD,IAAM0yB,GAAY,CAAC,CAAEhb,UAAAA,EAAY,EAAE,CAAEib,0BAAAA,EAA4Bv9B,AAAAA,GAAKA,CAAC,CAAEw9B,gCAAAA,EAAkCx9B,AAAAA,GAAKA,CAAC,CAAE,GAE/G,wB,SACE,WAAC,OACC,UAAW,CAAC,iBAAiB,EAAEsiB,EAAU,CAAC,CAC1C,MAAO,CAAE,QAAS,OAAQ,cAAe,MAAO,E,SAEhD,WAACmb,GAAAA,CAAoBA,CAAAA,CACnB,UAAS,GACT,KAAK,KACL,SAAU,GACV,YAAY,IACZ,OAAQ,CAAC,OAAO,CAChB,iBAAiB,IACjB,WAAW,UACX,WAAYD,EACZ,SAAUh0B,AAAAA,GAAiB+zB,EAA0B/zB,G,SAEpD,IAAM,WAACk0B,GAAIA,CAAC,UAAU,iCAAiC,aAAW,M,QAS7EJ,CAAAA,GAAU,SAAS,CAAG,CACpB,UAAWniB,GAAAA,MAAMA,CACjB,0BAA2BW,GAAAA,IAAIA,CAC/B,gCAAiCA,GAAAA,IAAIA,AACvC,E,kBChCA,IAAM6hB,GAAeC,GAAAA,EAAAA,CAAAA,GAAU,CAAC;;;SAGvB,EAAEhzB,AAAAA,GAASA,EAAM,IAAI,CAAC;UACrB,EAAEA,AAAAA,GAASA,EAAM,IAAI,CAAC;;;;;AAKhC,CAAC,CACKizB,GAAY,CAAC,CAAE3S,KAAAA,EAAO,wBAAwB,CAAE/O,SAAAA,EAAW,IAAI,CAAEmG,UAAAA,EAAY,EAAE,CAAE,GAEnF,WAACqb,GAAAA,CAAa,UAAWrb,EAAW,KAAM4I,E,SACvC/O,C,EAOP0hB,CAAAA,GAAU,SAAS,CAAG,CACpB,KAAMC,AAAAA,KAAAA,MAAgB,CACtB,SAAUA,AAAAA,KAAAA,IAAc,CACxB,UAAWA,AAAAA,KAAAA,MAAgB,AAC7B,ECvBO,IAAMC,GAAYH,GAAAA,EAAAA,CAAAA,GAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDpC,CAAC,CAuBD,OArBe,CAAC,CAAE1S,KAAAA,CAAI,CAAE5I,UAAAA,CAAS,CAAE,GAE/B,WDxCWub,GCwCDA,CAAC,KAAM3S,EAAM,UAAW5I,E,SAChC,WAACyb,GAAAA,CACC,MAAO,CAAE,SAAU,SAAU,EAC7B,MAAM,KACN,OAAO,KACP,QAAQ,Y,SAER,WAAC,UACC,UAAU,YACV,GAAG,KACH,GAAG,KACH,EAAE,QACF,OAAO,S,qB1HzEjB,SAAS,KAAa,MAAO,IAAWv4B,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAYnR,OAVerW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACvE,MAAO,6BACP,QAAS,WACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,OACN,EAAG,eACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,OACN,EAAG,yJACL,EAAC,GCXD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAYnR,OAVgBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACxE,MAAO,6BACP,KAAM,OACN,QAAS,WACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,OACN,SAAU,UACV,EAAG,o4BACH,SAAU,SACZ,EAAC,GCXD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAYnR,OAViBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACzE,MAAO,6BACP,KAAM,OACN,QAAS,WACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,OACN,SAAU,UACV,EAAG,2IACH,SAAU,SACZ,EAAC,GCXD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAYnR,OAVkBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC1E,MAAO,6BACP,KAAM,OACN,QAAS,WACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,OACN,SAAU,UACV,EAAG,kiCACH,SAAU,SACZ,EAAC,GCXD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAUnR,OARoBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC5E,MAAO,6BACP,KAAM,OACN,QAAS,WACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,OACN,EAAG,wHACL,EAAC,GCTD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAYnR,OAVsBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC9E,MAAO,6BACP,KAAM,OACN,QAAS,WACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,OACN,SAAU,UACV,EAAG,iSACH,SAAU,SACZ,EAAC,GCXD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAQnR,OANwBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAChF,QAAS,WACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,OACN,EAAG,gqBACL,EAAC,GqHJD,IAAMozB,GAAoB,CAAC,CACzB5sB,aAAAA,EAAe,CAAG,CAAE6sB,yBAAAA,EAA2B,EAAK,CAAEC,yBAAAA,EAA2Bl+B,AAAAA,GAAKA,CAAC,CACvFm+B,+BAAAA,EAAiCn+B,AAAAA,GAAKA,CAAC,CAAEo+B,4BAAAA,EAA8Bp+B,AAAAA,GAAKA,CAAC,CAC9E,IACC,IAAMq+B,EAAuBxP,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,IACvByP,EAAqBxiC,AAAAA,IACzB,IAAI,CAACuiC,EAAqB,OAAO,CAG7B,CADkBA,EAAqB,OAAO,CAAC,QAAQ,CAACviC,EAAM,MAAM,GACpDsiC,EAA4B,GAClD,QAEAjgB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR5nB,OAAO,gBAAgB,CAAC,QAAS+nC,GAC1B,KACL/nC,OAAO,mBAAmB,CAAC,QAAS+nC,EACtC,GACC,CAACD,EAAqB,EAKvB,YAAC,OACC,UAAWr+B,AAAAA,GAAKA,EAChB,UAAU,SACV,IAAKq+B,EACL,QAAS,IAAMD,EAA4B,CAACH,G,UAE3CA,GACC,YAAC,OAAI,UAAU,yK,UACb,WAAC,UAAO,KAAK,S,SAETM,AAbgB,CAAC,GAAK,IAAM,EAAK,KAAM,IAAK,KAAM,EAAI,CAalC,GAAG,CAACC,AAAAA,GAEpB,WAAC,UACC,KAAK,SACL,UAAU,oDACV,QAAS,IAAMN,EAAyBM,GACxC,MAAO,CAAE,QAASA,IAAeptB,EAAe,EAAI,EAAI,E,SAEvDotB,AAAe,IAAfA,EAAqB,SAAWA,C,MAM3C,WAAC,OAAI,UAAU,sF,MAGnB,WAAC,UACC,QAASL,EACT,KAAK,SACL,UAAU,+BACV,aAAW,4B,SAEX,WAACM,GAAgBA,CAAC,UAAU,gC,OAIpC,CAIAT,CAAAA,GAAkB,SAAS,CAAG,CAC5B,aAAcve,GAAAA,MAAMA,CACpB,yBAA0B3D,GAAAA,IAAIA,CAC9B,yBAA0BZ,GAAAA,IAAIA,CAC9B,4BAA6BY,GAAAA,IAAIA,CACjC,+BAAgCA,GAAAA,IAAIA,AACtC,EC9CA,IAAM4iB,GAAcC,AAAAA,CAAAA,EAAAA,GAAAA,UAAAA,AAAAA,EAAW,CAAC,EAgC9BC,K,GA/BA,CACEC,OAAAA,CAAM,CACNv+B,QAAAA,CAAO,CACPw+B,SAAAA,CAAQ,CACR1+B,UAAAA,CAAS,CACTC,UAAAA,CAAS,CACT0+B,WAAAA,CAAU,CACVC,WAAAA,CAAU,CACVC,YAAAA,CAAW,CACXC,YAAAA,CAAW,CACXC,YAAAA,CAAW,CACXC,aAAAA,CAAY,CACZC,cAAAA,CAAa,CACbC,eAAAA,CAAc,CACdC,cAAAA,CAAa,CACbC,eAAAA,CAAc,CACdC,eAAAA,CAAc,CACdC,gBAAAA,CAAe,CACfC,gBAAAA,CAAe,CACfC,iBAAAA,CAAgB,CAChBC,iBAAAA,CAAgB,CAChBC,kBAAAA,CAAiB,CACjBC,kBAAAA,CAAiB,CACjBC,kBAAAA,CAAiB,CACjBC,oBAAAA,CAAmB,CACnBC,qBAAAA,CAAoB,CACpBC,sBAAAA,CAAqB,CACrBC,wBAAAA,CAAuB,CACvBC,4BAAAA,CAA2B,CAE5B,GADIz1B,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CA5BHi0B,SACAv+B,UACAw+B,WACA1+B,YACAC,YACA0+B,aACAC,aACAC,cACAC,cACAC,cACAC,eACAC,gBACAC,iBACAC,gBACAC,iBACAC,iBACAC,kBACAC,kBACAC,mBACAC,mBACAC,oBACAC,oBACAC,oBACAC,sBACAC,uBACAC,wBACAC,0BACAC,8B,EAKF,IAAMvuB,EAAUwuB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACVxH,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACX,CAACwH,EAAcC,EAAgB,CAAGhd,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IAC3Cid,EAAgB/1B,AAAAA,GAAWouB,EAASxmB,GAAgB,QAAQ,CAAC5H,IAC7Dg2B,EAAc9+B,AAAAA,GAAmBk3B,EAASxmB,GAAgB,WAAW,CAAC1Q,IAEtE,CACJ++B,IAAAA,CAAG,CACHC,QAAAA,CAAO,CACPC,SAAAA,CAAQ,CACRC,MAAAA,CAAK,CACL3vB,OAAAA,CAAM,CACN4vB,MAAAA,CAAK,CACL57B,SAAAA,CAAQ,CACR67B,MAAAA,CAAK,CACLC,KAAAA,CAAI,CACJ7vB,aAAAA,CAAY,CACZF,SAAAA,CAAQ,CACT,CAAG6tB,EAEJ5gB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACJ5nB,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAChCkqC,EAAc,CAAE,QAAS,GAAM,MAAO,EAAK,GAC3C3uB,EAAQ,IAAI,CAACvb,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAY,KAE9D,EAAG,EAAE,EAEL2qC,GAAAA,oBAA0B,CAAC,KACrBN,GAASJ,EAAgB,GAC/B,EAAG,CAAC1B,EAAS,EAUb,GAAIx+B,EACF,MACE,yB,UACE,WAAC,OAAI,UAAU,gC,SACb,WAAC,OACC,QAAQ,eACR,UAAU,e,KAGd,YAAC,OAAI,UAAU,wD,UACb,WAAC,QAAK,UAAU,oC,GAChB,WAAC,QAAK,UAAU,oC,GAChB,WAAC,QAAK,UAAU,oC,SAKxB,IAAM6gC,EAASnxB,KACToxB,EAAU/gC,GAAao/B,EAC7B,MACE,wB,SACE,YAAC,OACC,aAAcU,EACd,MAAOD,EAAuB,CAAE,OAAQ,IAAK,EAAI,CAAC,EAClD,UAAW9e,KAAW,4CAA6C,CACjE,SAAU,CAAC8e,EACX,4BAA6BA,CAC/B,G,UAEA,WAACmB,GAAAA,OAAWA,CAAAA,CACV,OAAQ,CACN,KAAM,CACJ,WAAY,CACV,OAAQvB,GAAqBZ,EAC7B,YAAa,WACf,EACA,SAAUiC,EACV,eAAgBA,EAChB,OAAQ/B,EACJ,CACA,CACE,GAAIgC,EACJ,IAAKA,EACL,QAAS,KACT,QAAS,GACT,IAAKhC,EACL,KAAM,WACR,EACD,CACC,EAAE,AACR,CACF,EACA,IAAKR,EACL,IAAK+B,EACL,KAAMM,EACN,MAAM,OACN,OAAO,OACP,MAAOH,EACP,MAAOC,EACP,OAAQ5vB,EACR,QAASyvB,EACT,YAAa,GACb,SAAUC,EACV,QAAS5B,EACT,QAASE,EACT,aAAc/tB,EACd,WAAYwuB,EACZ,OAAQ,IAAMZ,EAAW,IACzB,UAAU,4BACV,UAAW,CAAC,CAAErhB,OAAAA,CAAM,CAAE,IAChBwjB,GAAUxjB,GACZ8iB,EAAc,CAAE,SAAU9iB,EAAO,QAAQ,AAAC,GAE5C6iB,EAAgB,GAClB,EACA,QAAS9pC,AAAAA,GAAKmU,QAAQ,GAAG,CAAC,UAAWnU,GACrC,IAAKyqC,EAAS3B,GAAkB7vB,GAAiBvP,EAAWC,GAAay+B,EACzE,YAAa,IAAM2B,EAAc,CAAE,IAAK,EAAK,GAC7C,aAAc,IAAMA,EAAc,CAAE,IAAK,EAAM,E,GAG/CF,GACE,WAAC,OACC,UAAU,2E,SAEV,WAAC,OACC,UAAU,gF,SAEV,WAACe,GAAYA,CAAC,UAAWlgB,KAAW,CAAE,OAAQ,CAACmf,CAAa,EAAG,oB,OAKvE,WAAC,OACC,UAAWF,EACX,QAASA,EACT,UAAWjf,KAAW,uIAAwI,CAC5J,WAAY,CAACwf,EACb,UAAWA,CACb,G,SAGE,CAACL,GACC,WAAC,UACC,KAAK,SACL,UAAU,gF,SAETS,EACC,WAACtD,GAAIA,CACH,UAAU,iCACV,aAAW,M,GAEXkD,EACF,WAACW,GAAKA,CACJ,UAAU,iCACV,aAAW,O,GAGb,WAAC7D,GAAIA,CACH,UAAU,iCACV,aAAW,M,OAOvB,WAAC,OAAI,UAAU,2H,SACb,YAAC,OAAI,UAAU,U,UACb,YAAC,OAAI,UAAU,gD,UACb,WAAC,OAAI,UAAU,kC,SACZr8B,GACCG,KAAK,KAAK,CACR69B,AAAkB3iC,KAAAA,IAAlB2iC,EAA8BA,EAAgB,G,GAIpD,WAAC,OAAI,UAAU,kC,SACZh+B,GAAaG,KAAK,KAAK,CAAC2D,G,MAG7B,WAAC,OAAI,UAAU,c,SACb,WAAC,OAAI,UAAU,Q,SACb,WAAC,SACC,GAAG,WACH,kBAAgB,WAChB,IAAK,EACL,KAAK,MACL,KAAK,QACL,IAAK,QACL,MAAO05B,EACP,KAAK,WACL,aAAW,WACX,SAjKe/iC,AAAAA,IAC7B,GAAM,CAAE0lC,cAAAA,CAAa,CAAE,CAAG9B,EACtB8B,EAAgBr8B,GAAY,CAAE4K,CAAAA,MAAoBE,EAAQ,GAC5DuwB,EAAgB,IAElBX,EAAiB/jC,EACnB,EA4JgB,UAAWkkC,EACX,WAAYA,EACZ,YAAaC,EACb,aAAcA,EACd,UAAU,4B,OAIhB,YAAC,OAAI,UAAU,2C,UACb,YAAC,OAAI,UAAU,e,UACb,WAAC,UACC,UAAU,+BACV,KAAK,SACL,aAAW,yBACX,QAASI,E,SAERW,EACC,WAACtD,GAAIA,CACH,UAAU,+BACV,aAAW,M,GAEXkD,EACF,WAACW,GAAKA,CACJ,UAAU,+BACV,aAAW,O,GAGb,WAAC7D,GAAIA,CACH,UAAU,+BACV,aAAW,M,KAIjB,YAAC,OAAI,UAAU,4B,UACb,WAAC,UACC,UAAU,+BACV,aAAW,yBACX,KAAK,SACL,QAASiC,E,SAERoB,GAAS5vB,GAAU,IAClB,WAACswB,GAAIA,CACH,UAAU,+BACV,aAAW,M,GAGb,WAACC,GAAMA,CACL,UAAU,+BACV,aAAW,S,KAIjB,WAAC,OAAI,UAAU,e,SACb,WAAC,SACC,aAAW,SACX,IAAK,EACL,IAAK,QACL,KAAK,MACL,KAAK,QACL,UAAU,MACV,MAAOX,EAAQ,EAAI5vB,EACnB,SAAUmuB,C,WAKlB,YAAC,OAAI,UAAU,+C,UACb,YAAC,OAAI,UAAU,+C,UACb,WDjQHtB,GCiQqBA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAChB,aAAc5sB,C,EACVxG,IAELw0B,GACC,WAAC,UACC,KAAK,SACL,aAAW,WACX,UAAWhe,KACT,CAAE,cAAelQ,AAAa,OAAbA,CAAkB,EACnC,gCAEF,QAAS,KACPwvB,EAAYxvB,AAAa,OAAbA,GAAoB,MAChCD,GAAAA,CAAAA,CAAAA,mBAAiC,CAAC,CAChC,IAAK,sBACL,MAAOC,AAAa,OAAbA,GAAoB,IAC7B,EACF,E,SAEA,WAACywB,GAAQA,CAAC,UAAU,8B,QAI1B,WAAC,UACC,UAAWvgB,KACT,CAAE,cAAeuf,CAAI,EACrB,gCAEF,KAAK,SACL,QAASpB,EACT,aAAW,qB,SAEX,WAACqC,GAAGA,CAAC,UAAU,8B,KAEjB,WAAC,UACC,KAAK,SACL,aAAW,aACX,QAAS,KACPxB,EAAwB,CAACF,GACrB,CAACA,GAAsBO,EAAc,CAAE,IAAK,EAAM,EACxD,EACA,UAAWrf,KAAW,CACpB,aAAc,CAAC8e,EACf,cAAeA,CACjB,EAAG,qB,SAEH,WAAC2B,GAAUA,CAAC,UAAU,8B,gBAO9B3B,GACE,WAAC,UACC,KAAK,SACL,QAAS,IAAME,EAAwB,IACvC,UAAU,qC,SAEV,WAACxkB,GAAAA,CAASA,CAAAA,CAAC,UAAU,W,KAI3B,WAAC,OACC,UACEwF,KAAW,mFAAoF,CAC7F,YAAa,CAAC8e,EACd,cAAeA,CACjB,E,OAMZ,GC/WM4B,GAAyB,CAC7B,OAAQ,EACR,OAAQ,EACR,cAAe,CACjB,EAEMC,GAAqB,CAAC,CAC1BzhC,QAAAA,EAAU,EAAK,CAAEy/B,kBAAAA,EAAoB,EAAK,CAC1CP,eAAAA,EAAiB,IAAI,CAAEM,kBAAAA,EAAoB,IAAI,CAAEkC,qBAAAA,EAAuB,IAAI,CAAEl1B,WAAAA,EAAa,EAAI,CAChG,I,IAkByBm1B,EAmTQC,EA+GLC,EAnb3B,IAAMrJ,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACXjnB,EAAUwuB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACVtuB,EAAegnB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,eAAe,EAC3D,CAACnI,EAAmB80B,EAAqB,CAAG5e,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,EAAE,EACvD,CAAC0c,EAAsBE,EAAwB,CAAG5c,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IAC3D9R,EAA0BsnB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MAC1BqJ,EAA6B33B,AAAAA,GAAWouB,EAASxmB,GAAgB,0BAA0B,CAAC5H,IAC5F3K,EAAYwS,AAAAA,GAAQumB,EAASxmB,GAAgB,eAAe,CAACC,IAE7D,CAACmtB,EAAiB4C,EAAmB,CAAG9e,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAC5Cse,IAEI,CAACS,EAAwBhF,EAA0B,CAAG/Z,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IAE/D,CAAEqb,OAAAA,CAAM,CAAEQ,cAAAA,CAAa,CAAE,CAAGK,EAE5B,CAAE,SAAU8C,EAAuB,EAAE,CAAE,GAAIpiC,CAAS,CAAE,KAAM0L,CAAW,CAAE,CAAGkG,GAAgB,CAAC,EAC7F,CAACywB,EAAa,CAAIR,AAAAA,CAAAA,AAA8C,OAA9CA,CAAAA,EAAAA,CAAoB,CAACD,EAAuB,EAAE,AAAD,GAA7CC,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgD,QAAQ,AAAD,GAAK,EAAE,CAChF,CAAE,GAAIxC,CAAc,CAAE,CAAGgD,GAAgB,CAAC,EAE1ChC,EAAgB/1B,AAAAA,GAAWouB,EAASxmB,GAAgB,QAAQ,CAAC5H,IAC7Dg4B,EAA8B1+B,AAAAA,GAAQ80B,EAASxmB,GAAgB,2BAA2B,CAACtO,EAAM8N,IAEjGiH,EAAsB,CAACxd,EAAUL,KACrC,GAAI6kC,EAAmB,CACrB,GAAIjzB,EAAY,OAEhBs1B,EAAqB,IAAI90B,EAAmB,CAC1C,WAAYmyB,EAAgBvkC,OAAAA,EAAQ,QAAS,UAAW,MAAO,CACjE,EAAE,EACF,MACF,CACA49B,EAASxmB,GAAgB,mBAAmB,CAAC/W,EAAUL,GACzD,EAEM0R,EAAa,CAAC9O,EAAY5C,EAAQoC,EAASS,EAAOP,KACtD,GAAIuiC,EAAmB,CACrB,GAAIjzB,EAAY,OAEhBs1B,EAAqB,IAAI90B,EAAmB,CAC1C,WAAYmyB,EAAgBvkC,OAAAA,EAAQoC,QAAAA,EAASS,MAAAA,CAC/C,EAAE,EACF,MACF,CACA+6B,EACExmB,GAAgB,UAAU,CAAC,UACzBxU,WAAAA,EACA5C,OAAAA,EACAoC,QAAAA,C,EACIS,GAAS,CAAEA,MAAAA,CAAM,EACjBP,GAAe,CAAEA,YAAAA,CAAY,IAGvC,EAEA2gB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KAcV,EAAG,CAAC7Q,EAAkB,EAEtB,IAAMyxB,EAAa/F,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACb31B,EAAW21B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,WAAW,EAEnD,CACJkrB,IAAAA,CAAG,CACHC,QAAAA,CAAO,CACPzvB,OAAAA,CAAM,CACN4vB,MAAAA,CAAK,CACL57B,SAAAA,CAAQ,CACR67B,MAAAA,CAAK,CACL2B,QAAAA,CAAO,CACPC,SAAAA,CAAQ,CACR1xB,SAAAA,CAAQ,CACT,CAAG6tB,EAEE,CACJ1xB,KAAAA,CAAI,CACJhN,UAAAA,CAAS,CACT4E,WAAAA,CAAU,CACV,GAAI1J,CAAQ,CACZwO,SAAAA,CAAQ,CACR,WAAYiB,CAAS,CACtB,CAAGguB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,sBAAsB,EAEvD0I,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,GAAIpU,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAU,QAAQ,AAAD,GAAKg2B,GAAqB56B,AAAa,IAAbA,EAAgB,OAC/D,IAAM09B,EAAgBjzB,GAAsBvP,GAEtCyiC,EAAmB39B,EAAWk6B,CAEhC,EAAC0D,MAAMD,IAAqBA,EAAmBD,GACjDj2B,EAAWrR,EAAU,WAAY,UAAW,EAEhD,EAAG,CAAC8jC,EAAc,EAElB,IAAMT,EAAY/P,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,IAEZyQ,EAAiB,CAAC,CAAE,OAAQ,CAAE,MAAO0D,CAAW,CAAE,CAAE,KACpDA,CAAAA,EAAc,KAAKA,CAAAA,EAAc,KACrCvC,EAAc,CACZ,MAAO,GACP,OAAQpvB,WAAW2xB,GAAa,OAAO,CAAC,EAC1C,GACA/xB,GAAAA,CAAAA,CAAAA,mBAAiC,CAAC,CAChC,IAAK,oBACL,MAAOI,WAAW2xB,GAAa,OAAO,CAAC,EACzC,GACF,EAEMC,EAA8BnnC,AAAAA,IAClC,GAAM,CAAE+E,IAAAA,CAAG,CAAEqiC,QAAAA,CAAO,CAAE,CAAGpnC,EACrBqnC,EAAsB,GAC1B,GAAItiC,AAAQ,UAARA,GAAmBqiC,AAAY,KAAZA,EACrBzC,EAAc,CAAE,QAAS,CAACG,CAAQ,GAClCuC,EAAsB,QACjB,GAAI,CAAC,YAAa,UAAU,CAAC,QAAQ,CAACtiC,GAC3Cy+B,EAAe,CACb,OAAQ,CACN,MAAOz+B,AAAQ,cAARA,EAAsBwQ,WAAWF,GAAU,GAAME,WAAWF,GAAU,EAC/E,CACF,GACAgyB,EAAsB,QACjB,GAAI,CAAC,aAAc,YAAY,CAAC,QAAQ,CAACtiC,GAAM,CACpD,GAAM,CAAE4Q,OAAAA,EAASzR,AAAAA,GAAKA,CAAC,CAAE,CAAG4+B,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAW,OAAO,AAAD,GAAK,CAAC,EAC7CwE,EAAqBv+B,SAASw6B,EAAe,IAEnD5tB,EADoB5Q,AAAQ,eAARA,EAAuBuiC,EAAqB,EAAIA,EAAqB,EACrE,WACpBD,EAAsB,EACxB,CACIA,GAAqBrnC,EAAM,cAAc,EAC/C,EAEMunC,GAA6B,KACjCjD,EAAwB,GAC1B,EAEAjiB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACRjS,SAAS,gBAAgB,CAAC,UAAW+2B,GACrC/2B,SAAS,gBAAgB,CAAC,mBAAoBm3B,IAEvC,KACLn3B,SAAS,mBAAmB,CAAC,UAAW+2B,GACxC/2B,SAAS,mBAAmB,CAAC,mBAAoBm3B,GACnD,GACC,CAACnD,EAAsBU,EAASzvB,EAAQkuB,EAAc,EAEzDlhB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,GAAI4hB,GAAqBz/B,EAAS,OAClC,GAAM,CAAE,SAAUgjC,CAAe,CAAE,CAAGjgC,EAAS,IAAI,CAAC8E,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAAM6C,IAAc,CAAC,EAC1F,EAACs4B,GAAmB,CAACA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAiB,MAAM,AAAD,CAAC,GAC9CxxB,EAAQ,IAAI,CAAC/O,GAAe,YAEhC,EAAG,EAAE,EAELob,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,GAAI,CAACyiB,GACD,CAACrlC,EADS,OAId,GAAM,CAAE,SAAU+nC,CAAe,CAAE,CADhBjgC,EAAS,IAAI,CAAC8E,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAAM6C,EAExD,EAACs4B,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAiB,KAAK,AAAD,GACxB12B,EAAW5B,EAAW,QAAS,UAAW,GAG5C,GAAM,CAAEf,MAAAA,EAAQ,EAAK,CAAE,CAAGF,GAAY,CAAC,CACnC,EAACE,GACH8O,EAAoBxd,EAAU,QAElC,EAAG,CAACA,EAAUqlC,EAAQ,EAEtB,IAAM2C,GAA8B,CAAC,CAAE3+B,OAAAA,CAAM,CAAE4+B,WAAAA,EAAa,EAAK,CAAE,QAK7DC,EAJJ,IAAMC,EAAuBC,OAAO,KAAK,CAACniC,KAAK,KAAK,CAACoD,IACjD,EACApD,KAAK,KAAK,CAACoD,GAGf,GAAI,CAAC4+B,EAAY,CACf,IAAMI,EAAgCpiC,KAAK,KAAK,CAAC2D,EAAW,IAC5Ds+B,EAAeG,EAAgC,GAAK,GAAKA,CAC3D,CAGEF,EAAuB,GACnBF,CAAAA,GAAcE,EAAuBD,GAAiB,IAE1D72B,EACErR,EACAioC,EAAa,gBAAkB,gBAC/B,UACAE,EACA,CAAE,cAAeliC,KAAK,KAAK,CAAEkiC,AAAuB,IAAvBA,EAA8Bv+B,EAAU,EAG3E,EAEM0+B,GAAkB,IAAMN,GAA4B,CAAE,OAAQlE,EAAe,WAAY,EAAK,GAEpGlhB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR5nB,OAAO,gBAAgB,CAAC,eAAgBstC,IACjC,IAAMttC,OAAO,mBAAmB,CAAC,eAAgBstC,KACvD,CAAC1+B,EAAU5J,EAAUsjC,EAAO,EAE/B,IAAMiF,GAAe,IAAMhL,EAASxmB,GAAgB,YAAY,IAC1D,CAAEwsB,SAAAA,EAAQ,CAAE,CAAGiB,EAAoB,CAAE,SAAUP,CAAe,EAAKv6B,GAAc,CAAC,EAExFkZ,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KAGR,GAFAmkB,EAAmBR,IACnBrB,EAAc,CAAE,MAAO,EAAM,GACzB12B,EAAU,CACZ,GAAM,CACJI,cAAAA,EAAgB,EAAK,CACrBD,cAAAA,EAAgB,EAAK,CACrBd,SAAAA,EAAW,EAAK,CACjB,CAAGW,EACJ,GAAIX,EAAU,OACd,GAAM,CAAEqI,OAAAA,EAASzR,AAAAA,GAAKA,CAAC,CAAE,CAAG4+B,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAW,OAAO,AAAD,GAAK,CAAC,EACnD,GAAI,CAAC10B,GAAiB,CAACC,EAAe,OACtCsH,EAAO5M,SAASqF,GAAiBC,EAAe,IAAK,UACvD,CACA,GAAIy2B,EAAS,CACX,GAAM,CAAE32B,MAAAA,EAAQ,EAAK,CAAE,CAAGF,GAAY,CAAC,CACnC,EAACE,GACH8O,EAAoBxd,EAAU,QAElC,CACF,EAAG,CAACujC,GAAUiB,EAAkB,EA2DhC,IAAMvC,GAAkC,CAACuG,EAAO,EAAI,IAClD1B,EAA2B,IAC3B9E,EAA0B,IACtBwG,GAAMrB,EAA4B,GACxC,EAEMsB,GAAqB30B,GAAsB,CAAE,WAAY,OAAQhM,SAAAA,EAAUhD,UAAAA,CAAU,GACrF,CACJ,WAAY4jC,EAAqB,CACjC,UAAWC,EAAa,CACxB,MAAOC,EAAgB,CACxB,CAAGH,IAAsB,CAAC,EAErBI,GAAyB/0B,GAAsB,CAAE,WAAY,WAAYhM,SAAAA,EAAUhD,UAAAA,CAAU,GAO7F,CAAC49B,GAA0BG,GAA4B,CAAG5a,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IAEnE6gB,GAAcvF,AAAAA,CAAAA,IAAY,EAAC,EAAG,KAAK,CAAC,KAEpCqC,GAASnxB,KAGT,EAAGs0B,GAAO,EAAE,CAAC,CAAIC,AAAAA,CAAAA,AAFHF,EAAU,CAACA,GAAW,MAAM,CAAIlD,CAAAA,GAAS,EAAI,GAAG,EAE9B,EAAC,EAAG,KAAK,CAAC,KAC1CqD,GAAqB,CAAC,EAAEF,GAAK,OAAO,CAAC,IAAK,IAAI,EAAE,CAAC,CACjDlF,GAAeN,GAAW,AAA4D,OAA5DoD,CAAAA,EAAAA,EAAgB,CAAC9hC,EAAU,CAACC,GAAamkC,GAAmB,AAAD,GAA3DtC,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA8D,YAAY,CAAGxlC,KAAAA,EACvGwiC,GAAcpvB,GAAehE,EAAazL,GA2B1CokC,GAAkB/yB,GAA2BsvB,EACnD,MACE,yB,UACE,WAAC,MAAG,UAAU,+E,SACX3zB,C,GAEH,YAAC,WAAQ,UAAW+T,KAAW,CAAE,kBAAmB,CAAC2e,CAAkB,EAAG,0C,UACxE,YAAC,OAAI,UAAU,4C,UACb,WAAC,OACC,UAAW3e,KACT,CACE,MAAO1P,GAA2BsvB,EAClC,OAAQ,CAACtvB,GAA2B,CAACsvB,CACvC,EACA,iF,SAGF,YAAC,OAAI,UAAU,2E,UACb,WAAC,OACC,QAAQ,OACR,I,64UACA,UAAU,2CAA2C,MAAO,CAAE,OAAQ,4BAA6B,EACnG,IAAI,oBACJ,MAAO,KACP,OAAQ,I,GAEV,YAAC,OAAI,UAAU,yG,UACb,WAAC,OAAI,UAAU,0F,SACX4B,GAAY,CAAC7C,GACb,yB,UAAE,aAEA,WAAC,UAAO,UAAU,c,SACfwC,C,QAKP7wB,GAA2BsvB,GAAS,CAACjB,GACrC,WAAC,OACC,QAAS,IAAMvC,KACf,UAAW,IAAMA,KACjB,UAAU,W,SAEV,WLrZLF,GKqZeA,CACR,UAAU,kCACV,0BAA2BC,EAC3B,gCACEC,E,KAMR,YAAC,OAAI,UAAU,0D,UACb,YAAC,QAAK,UAAU,qE,UACd,WAAC,MAAG,UAAU,6C,SACXyG,AAAAA,CAAAA,MAAAA,GAAAA,KAAAA,EAAAA,GAAuB,IAAI,AAAD,IAAM,WAC5B,CAAC,OAAO,EAAEC,GAAc,CAAC,A,GAEhC,WAAC,MAAG,UAAU,uD,SACXC,E,MAGL,YAAC,OAAI,UAAU,S,UACb,WAAC,UAAO,UAAU,oD,SACfH,MAAAA,GAAAA,KAAAA,EAAAA,GAAoB,IAAI,A,GAE3B,YAAC,OAAI,UAAU,kD,UACb,YAAC,UACC,KAAK,SACL,QAnFF,KAClB,GAAM,CAAEU,QAAAA,EAAU,CAAC,CAAC,CAAE,CAAG9F,GAAa,CAAC,EACjC,CAAE+F,QAAAA,EAAU,CAAC,CAAC,CAAE,CAAGD,EACzB,GAAIC,EAAS,CACX5kC,EAAU,GACV0gC,EAAc,CAAE,MAAO,GAAO,QAAS,EAAK,GAC5C4B,EAA2B,IAE3B,IAAMuC,EAAeD,EAAQ,aAAa,CAAC,SACvCC,GAAcA,EAAa,IAAI,EACrC,CACF,EAyEsB,UAAU,sJ,UAEV,WAACC,GAAoBA,CAAC,UAAU,c,GAAiB,S,GAIjD,CAAC9E,GACC,WAAC,UACC,KAAK,SACL,QAASvC,GACT,UAAU,8G,SAET2E,AAAAA,CAAAA,MAAAA,GAAAA,KAAAA,EAAAA,AAA8B,OAA9BA,CAAAA,EAAAA,GAAoB,UAAU,AAAD,GAA7BA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgC,IAAI,AAAD,IAAM,UACtC,kBACA,e,oBAUtB,WDxFKzD,GCwFOA,CACV,IAAKE,EACL,OAAQC,EACR,QAASv+B,EACT,UAAWD,EACX,UAAWD,EACX,WAAY2+B,EACZ,YAAaG,GACb,YAzNUv9B,AAAAA,IAClB,GAAM,CAAEmjC,YAAAA,CAAW,CAAE,CAAGnjC,CACxBpL,CAAAA,OAAO,QAAQ,CAAGoL,EAClBD,GAAqBC,EAAQuP,GAGzB,CAAC6xB,MAFiB+B,MAEKrE,EAAc,CAAE,SAAUqE,GAAc,EACrE,EAmNU,YA1LU,KAClBl4B,EAAWrR,EAAU,WAAY,UAAW,GAC5CklC,EAAc,CAAE,MAAO,GAAM,IAAK,EAAM,IACpCV,GACA6C,GACFP,EAA2B,GAE/B,EAoLU,aAAcjD,GACd,cAAeC,EACf,eAAgBI,EAChB,eAAgBD,EAChB,eAAgBF,EAChB,gBAAiBI,EACjB,gBApIc,KACtBe,EAAc,CAAE,MAAO,CAACM,CAAM,GAC9B9vB,GAAAA,CAAAA,CAAAA,mBAAiC,CAAC,CAChC,IAAK,oBACL,MAAO,AAAC8vB,EAAiB5vB,EAAT,MAClB,EACF,EA+HU,iBAhLe4zB,AAAAA,IACnB,CAACpC,IACHY,GAA4B,CAAE,OAAQwB,MAAAA,EAAAA,KAAAA,EAAAA,EAAe,aAAa,AAAC,GACnEzC,EAAmByC,GAEvB,EA4KU,iBAtNeruC,AAAAA,IACvB4rC,EAAmB,qBACd5C,GAAAA,CACH,OAAQruB,WAAW3a,EAAE,MAAM,CAAC,KAAK,C,GAErC,EAkNU,kBAAmBopC,EACnB,kBAAmBC,EACnB,kBAlNgBrpC,AAAAA,IAExB,GADA+pC,EAAc,CAAE,QAAS,EAAM,GAC3B7B,MAAAA,EAAAA,KAAAA,EAAAA,EAAW,OAAO,CAAE,CACtB,GAAM,CAAEntB,OAAAA,EAASzR,AAAAA,GAAKA,CAAC,CAAE,CAAG4+B,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAW,OAAO,AAAD,GAAK,CAAC,EACnD2E,GAA4B,CAC1B,OAAQlyB,WAAW3a,EAAE,MAAM,CAAC,KAAK,EAAIyO,EACrC,WAAY,EACd,GACAsM,EAAOJ,WAAW3a,EAAE,MAAM,CAAC,KAAK,EAClC,CACF,EAyMU,oBA9NkB,KAC1B+pC,EAAc,CAAE,QAAS,EAAK,EAChC,EA6NU,qBAAsBP,EACtB,wBAAyBE,EACzB,sBAjJoB,KAC5BhC,GAA4B,GAC9B,EAgJU,yBAA0BH,GAC1B,yBApKuB+G,AAAAA,IAC/BvE,EAAc,CAAE,aAAcuE,CAAoB,GAClD/zB,GAAAA,CAAAA,CAAAA,mBAAiC,CAAC,CAAE,IAAK,yBAA0B,MAAO+zB,CAAoB,EAChG,EAkKU,4BApM0B,KAClC,GAAIhE,EAAO,CACT8C,KACA,MACF,CAEArD,EAAc,CAAE,QAAS,CAACG,CAAQ,EACpC,EA8LU,4BAA6BxC,GAC7B,WAAY6G,AAAAA,GAAgBxE,EAAc,CAAE,QAASwE,CAAa,GAClE,cAAe,KACbxE,EAAc,CAAE,IAAK,CAACE,CAAI,GACtB,CAACA,GAAKP,EAAwB,GACpC,EACA,SAAUtB,E,MAIX,CAACx+B,GAAW,CAACy/B,GACZ,WAAC,WAAQ,UAAU,e,SACjB,YAAC,OAAI,UAAU,2C,UACb,YAAC,UACC,KAAK,SACL,SAAU0E,GACV,MAAO,AAACL,GAAiE,CAAC,EAAzC,CAAE,cAAe,OAAQ,QAAS,CAAE,EACrE,QAAS,IAAM1B,EAA4B,IAC3C,UACE,CAAC,sIAAsI,EACrI+B,GAAkB,sBAAwB,uCAC1C,C,UAGJ,WAACS,GAAAA,CAAeA,CAAAA,CAAC,UAAU,gB,GAAmB,kB,GAGhD,WAAC,OAAI,UAAU,c,SAEX,CAACnF,GACC,YAAC,SACC,QAAQ,WACR,UAAU,0BACV,aAAW,Y,UAEX,WAAC,QAAK,UAAU,4D,SAA4D,W,GAG5E,WAAC,SACC,SAAQ,GACR,aAAW,WACX,GAAG,WACH,KAAK,WACL,UAAU,SACV,QAAS6C,EACT,QAAS,KACHlxB,CAAAA,CAAAA,IAA2BsvB,CAAI,IACnCP,EAAc,CAAE,SAAU,CAACmC,CAAS,GACpC3xB,GAAAA,CAAAA,CAAAA,mBAAiC,CAAC,CAChC,IAAK,sBACL,MAAO,AAAC2xB,EAAiB,IAAN,GACrB,GACF,C,GAEF,WAAC,OAAI,UAAU,4F,SACb,WAACuC,GAAkBA,CAAC,UAAU,8F,UAMtCnB,IACA,YAAC,UACC,KAAK,SACL,SAAUS,GACV,MAAOzD,EAAQ,CAAE,QAAS,EAAG,cAAe,MAAO,EAAI,CAAC,EACxD,QAAS,IAAM0B,EAA4B,IAC3C,UACE,CAAC,sIAAsI,EACrI+B,GAAkB,sBAAwB,uCAC1C,C,UAEL,cAEC,WAACjnB,GAAAA,CAAgBA,CAAAA,CAAC,UAAU,gB,gBAUhD,CAEAukB,CAAAA,GAAmB,SAAS,CAAG,CAC7B,QAAS7mB,GAAAA,IAAIA,CACb,WAAYA,GAAAA,IAAIA,CAChB,kBAAmBA,GAAAA,IAAIA,CACvB,eAAgBC,GAAAA,MAAMA,CACtB,kBAAmBA,GAAAA,MAAMA,CACzB,qBAAsBsE,GAAAA,MAAMA,AAC9B,ECvjBA,IAAM2lB,GAAqB,CAAC,CAC1BrgC,OAAAA,EAAS,CAAC,CAAC,CAAEq2B,iBAAAA,EAAmBp7B,AAAAA,GAAKA,CAAC,CAAEyM,iBAAAA,EAAmB,CAAC,CAAC,CAAE5G,QAAAA,EAAU,EAAE,CAAEkG,oBAAAA,EAAsB/L,AAAAA,GAAKA,CAAC,CAAEqlC,oBAAAA,EAAsBrlC,AAAAA,GAAKA,CAAC,CACxI,IACC,GAAM,CACJ,MAAOslC,CAAY,CACnB,GAAI/pC,CAAQ,CACZ0J,WAAAA,CAAU,CACVE,SAAAA,CAAQ,CACR9B,SAAAA,EAAW,EAAE,CACb,GAAIjD,CAAS,CACb,KAAM0L,CAAW,CACjB,MAAOy5B,CAAW,CAClB,SAAUC,CAAc,CACzB,CAAGzgC,EACE0gC,EAAgB35B,AAAgB,iBAAhBA,EAChB,CACJ,GAAI45B,CAAkB,CACtB,MAAOC,CAAqB,CAC5B,WAAYC,CAAiB,CAC7B,SAAUC,EAAyB,CAAC,CAAC,CACtC,CAAGp5B,EAEE,CAAE,OAAQq5B,CAA0B,CAAE,CAAGD,EACzC,CAAE,MAAO/+B,CAAY,CAAE,CAAG8+B,EAE1B,CAAE,YAAaj5B,CAAI,CAAE,CAAGqsB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACxB/tB,EAAW+tB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACXztB,EAAeytB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MAEfxtB,EAAmBhG,OAAO,MAAM,CAAC+F,GAAc,SAAS,CAACE,AAAAA,GAAeA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAa,WAAW,AAAD,IAAMK,GACrGpN,EAAgB8G,OAAO,IAAI,CAAC+F,EAAa,CAACC,EAAiB,CAE3D,CAAEzB,SAAAA,CAAQ,CAAE,CAAG0C,GAAoB,CAAC,EACpCs5B,EAAmB1iC,EAAS,MAAM,CAAC8E,AAAAA,GAC/BA,AAAAA,CAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,QAAQ,AAAD,GAAK,EAAC,EAAG,MAAM,CAAG,GAEtC69B,EAAsBnX,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,IACtB,CAAE,UAAWoX,CAAU,CAAE,CAAGhhC,EAC5B,CAACihC,EAAQC,EAAU,CAAG3iB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,EAAE,EAEjCsV,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACXqN,EAAoB,IAAMtN,EAASxmB,GAAgB,iBAAiB,IACpEzG,EAAqB,CAAC8vB,EAAkBC,EAAiBC,IAAqB/C,EAASxmB,GAAgB,kBAAkB,CAACqpB,EAAkBC,EAAiBC,IAC7JwK,EAAgB,CAACr7B,EAAWsD,IAAawqB,EAASxmB,GAAgB,aAAa,CAACtH,EAAWsD,IAC3Fg4B,EAAmB,IAAMlL,IACzBxuB,EAAa,CAAC9O,EAAY5C,EAAQoC,EAASS,EAAOP,EAAamb,IAAmBmgB,EACtFxmB,GAAgB,UAAU,CAAC,UACzBxU,WAAAA,EACA5C,OAAAA,EACAoC,QAAAA,EACAqb,eAAAA,C,EACI5a,GAAS,CAAEA,MAAAA,CAAM,EACjBP,GAAe,CAAEA,YAAAA,CAAY,KAI/B+oC,EAA2Bf,AAAAA,CAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAgB,QAAQ,AAAD,GAAK,EAAC,EAAG,MAAM,CAAG,EAE1ErnB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,GAAI,CACF9f,KAAgB,IAAI,CAACmoC,AAAAA,IACnBL,EAAUK,EACZ,EACF,CAAE,QAAM,CACNL,EAAU,EAAE,CACd,CACA,MAAO,IAAMC,CACf,EAAG,EAAE,EAEL,IAAMK,EAAiB3qC,AAAAA,IACrB,GAAM,CAAE+E,IAAAA,CAAG,CAAE,CAAG/E,CACJ,YAAR+E,GACJu6B,GACF,EAEAjd,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACJmnB,GAAgBK,GAClBz5B,CAAAA,SAAS,KAAK,CAAG,CAAC,EAAEy5B,EAAsB,GAAG,EAAEL,EAAa,kBAAkB,CAAC,AAAD,EAEhFp5B,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAG,SAC/BA,SAAS,gBAAgB,CAAC,UAAWu6B,GAC9B,KACLv6B,SAAS,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,YACnCA,SAAS,mBAAmB,CAAC,UAAWu6B,EAC1C,GACC,EAAE,EAEL,IAAMC,EAA6B,CAACh8B,EAAU,CAAC,CAAC,IAC9C,GAAM,CAAE2B,WAAAA,EAAa,EAAK,CAAEs6B,gBAAAA,CAAe,CAAEC,eAAAA,CAAc,CAAE,CAAGl8B,EAC1D1B,EAAmB29B,GAAmBl6B,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAkB,EAAE,AAAD,EACzD,CACJkB,KAAAA,CAAI,CAAE8N,QAAAA,CAAO,CAAEghB,OAAAA,EAAS,EAAK,CAAEC,QAAAA,CAAO,CACvC,CAAGvwB,GAA0B,CAC5BQ,KAAAA,EACA9G,QAAAA,EACAtK,SAAAA,EACA8Q,WAAAA,EACA,KAAMP,EACNC,oBAAAA,EACA,YAAa1I,EACbwI,mBAAAA,EACA,aAAc,GACd,UAAW7C,EACX,qBAAsBq9B,EACtB,SAAUO,GAAkB78B,EAC5B,6BAA8B/J,AAAAA,GAAKA,EACnC4M,WAAAA,EACA,QAAS7H,EACT0H,iBAAAA,CACF,IAAM,CAAC,EAEP,GAAI,CAACkB,EAAM,OAAO,KAClB,GAAI8uB,EACF,MACE,WAAC1C,GAAAA,EAAIA,CAAAA,CACH,GAAIh3B,GAAe25B,GACnB,QAASjhB,E,SAET,WAAC,UACC,KAAK,SACL,UAAU,0D,SAETjb,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEmN,E,KAKX,IAAMk5B,EAAiBl5B,AAAS,cAATA,EACjB,CAAEY,SAAAA,EAAW,EAAE,CAAE,CAAK23B,AAAAA,CAAAA,GAAU,EAAC,EAAG,IAAI,CAAC3oB,AAAAA,GAASA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAO,SAAS,AAAD,IAAMvU,IAAqB,CAAC,EACnG,MACE,WAAC,UACC,KAAK,SACL,QAASyS,EACT,UAAW2F,KACT,CAAE,gHAAiHylB,CAAe,EAClI,CAAE,wCAAyC,CAACA,CAAe,EAC3D,qB,SAGF,YAAC,OAAI,UAAU,4B,UACb,YAAC,OAAI,UAAU,2B,UAEdA,GAAkB,WAACrK,GAAAA,CAAqBA,CAAAA,CAAC,UAAU,kB,GAEjDh8B,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEmN,G,GAGJk5B,GAAkBt4B,GAAY,CAACk3B,GAC9B,WAAC,OACC,QAAQ,OACR,UAAU,4BACV,IAAKl3B,EACL,MAAO,IACP,OAAQ,IACR,IAAK,CAAC,MAAM,EAAEvF,EAAiB,CAAC,A,OAO5C,EACM,CACJ89B,iBAAAA,CAAgB,CAAE,cAAeC,CAAgB,CAAEC,cAAAA,EAAgB,EAAE,CACtE,CAAGnnC,EAAe,CAACtE,EAAS,CAACuL,EAAa,EAAI,CAAC,EAC1Cq6B,EAASnxB,KACT,CAAEi3B,cAAAA,CAAa,CAAE,CAAGnnC,EAAgB,CAACM,EAAU,CAAC,CAAC,EAAE0G,EAAa,EAAE,CAAC,CAAC,CAE1E,MACE,wB,SACE,WAAC,OAAI,MAAO,CAAE,OAAQ,GAAK,EAAG,UAAU,iH,SACtC,YAAC,OAAI,UAAU,S,UACb,WAAC,OAAI,UAAU,iH,SACb,YAAC,UACC,KAAK,SACL,QAASw/B,EACT,UAAU,+D,UAEV,WAAC1qB,GAAAA,CAASA,CAAAA,CAAC,UAAU,gD,GACrB,WAAC,QAAK,UAAU,uD,SAAuD,K,QAK3E,WAAC,WAAQ,UAAU,oH,SACjB,YAAC,OAAI,UAAU,yB,UACb,WAAC,OAAI,UAAU,qD,SACb,WD8XDmmB,GC9XoBA,CACjB,kBAAmB,GACnB,eAtBMZ,EAAS8F,EAAgBF,EAuB/B,qBAAsBjgC,EACtB,WAAYg/B,AAA+B,MAA/BA,EACZ,kBAAmBgB,GAAoBb,C,KAG3C,YAAC,OAAI,UAAU,4C,UACb,YAAC,OAAI,UAAU,wC,UACb,WAAC,MAAG,UAAU,sD,SAAuDX,C,GACpEiB,GACC,YAAC,OAAI,UAAU,mE,UACb,WAAC,OAAI,UAAU,U,SACb,WAACW,GAAWA,CAAC,UAAU,M,KAEzB,YAAC,O,UACE1B,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAgB,QAAQ,AAAD,GACtB,YAAC,UACC,KAAK,SACL,QAASxlC,AAAAA,GAAKA,EACd,UAAU,oI,UAEV,WAACw8B,GAAAA,CAAqBA,CAAAA,CAAC,UAAU,kB,GAChCh8B,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,a,GAGP,WAAC,UACC,KAAK,SACL,QAAS,IAAM6K,GAA0B3M,EAAeuM,EAAUs6B,EAAahqC,GAE/E,UAAU,iO,SACX,2B,SAMP,YAAC,OAAI,UAAU,yD,UACb,WAAC,OAAI,UAAU,uB,SACb,YAAC,OACC,UAAU,gC,UAEV,WAAC,MAAG,UAAU,yD,SAAyD,oB,GAGvE,WAAC,QAAK,UAAU,2D,SAA2D,wD,GAG3E,WAAC,MAAG,UAAU,qF,SAEViE,EAAiB,CAACY,EAAU,CAAC,GAAG,CAAC+mC,AAAAA,GAAa,WAAC,MAAG,UAAU,O,SAAQA,C,WAK5E,YAAC,OAAI,UAAU,iG,UACb,YAAC,OAAI,UAAU,2G,UACb,WAACC,GAAUA,CAAC,UAAU,kB,GACrB,CAAC,EAAErB,EAAiB,MAAM,CAAC,OAAO,EAAEA,EAAiB,MAAM,CAAG,EAAI,IAAM,GAAG,CAAC,C,GAE/E,YAAC,OAAI,UAAU,2G,UACb,WAAC/L,GAAwBA,CAAC,UAAU,kB,GACnC,CAAC,EAAEl0B,GAA0BigC,GAAkB,MAAM,EAAEA,EAAiB,MAAM,CAAG,EAAI,IAAM,GAAG,CAAC,C,GAG/F7/B,GAAyB6/B,GAAoB,GAAK,CAACN,GAClD,YAAC,OAAI,UAAU,2G,UACb,WAACta,GAASA,CAAC,UAAU,kB,GACpB,CAAC,EAAEjlB,GAAyB6/B,GAAkB,MAAM,EAAEA,EAAiB,MAAM,CAAG,EAAI,IAAM,GAAG,CAAC,C,GAIrG,YAAC,OAAI,UAAU,2G,UACb,WAACsB,GAAsBA,CAAC,UAAU,kB,GAAqB,kB,GAIzD,YAAC,OAAI,UAAU,2G,UACb,WAACC,GAAyBA,CAAC,UAAU,kB,GAAqB,kBAEzD,IACA,CAAC,EAAEpiC,GAAwBC,GAAU,CAAC,C,SAI7C,WAAC,OAAI,UAAU,2E,SACb,WAAC,OAAI,UAAU,O,SAEX4gC,EAAiB,GAAG,CAAC,CAAC59B,EAAS7E,KAC7B,IAAMikC,EAAuBp/B,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAAMu9B,EAC7C,MACE,WAAC3L,GAAAA,EAAIA,CAAAA,CACH,KAAK,SAEL,GAAIh3B,GAAe,CAAC,SAAS,EAAE+I,EAAY,CAAC,EAAE3D,EAAQ,IAAI,CAAC,CAAC,EAC5D,QAAS,KACPk9B,EAAoBl9B,EACtB,EACA,UAAWiZ,KAAW,CACpB,6BAA8B,CAACmmB,EAC/B,6CAA8CA,CAEhD,EAAG,yFACH,MAAOA,EAAuB,CAAE,kBAAmB,KAAM,EAAI,CAAC,E,SAE7D/mC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,CAAC,OAAO,EAAE8C,EAAQ,EAAE,CAAC,C,EAZnB6E,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,CAetB,E,QAMN49B,EAAiB,MAAM,CAAC59B,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAAMu9B,GAAqB,GAAG,CAACv9B,AAAAA,IAC5E,GAAM,CACJ,MAAO+C,CAAY,CACnB,SAAUtC,CAAe,CACzB,GAAIoC,CAAS,CACb,KAAMrH,CAAU,CAEhB,SAAU2/B,EAAkB,CAAC,CAAC,CAC/B,CAAGn7B,EAEEq/B,EAAuBC,AADG7+B,EAAgB,MAAM,CAACnN,AAAAA,I,IAAWsK,E,MAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAmB,OAAnBA,CAAAA,EAAAA,EAAS,UAAU,AAAD,GAAlBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB,IAAI,AAAD,IAAM,S,GAC3C,MAAM,CACrD,CAAE,OAAQ2hC,EAAkB,EAAE,CAAE,CAAGpE,EACnCqE,EAAoBD,EAAgB,MAAM,CAAG,EAC7CxU,EAAazmB,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAkB,EAAE,AAAD,IAAMzB,EAC5C,MACE,WAAC,WAEC,IAAKkoB,EAAa8S,EAAsB,KACxC,UAAU,Q,SAGV,YAAC,OAAI,UAAU,sB,UACb,WAAC,OAAI,UAAU,gE,SACb,YAAC,OAAI,UAAU,0F,UACb,WAAC,KAAE,UAAU,kF,SAAmF96B,C,GAE9F,CAACu6B,GACC,YAAC,OAAI,UAAU,+C,UACb,YAAC,OAAI,UAAU,2G,UACb,WAAC6B,GAAyBA,CAAC,UAAU,kB,GAAqB,kBAEzD,CAAC,EAAEpiC,GAAwByE,GAAwB8C,IAAmB,CAAC,C,GAE1E,YAAC,OAAI,UAAU,2G,UACb,WAAC26B,GAAUA,CAAC,UAAU,kB,GACrB,CAAC,EAAEI,EAAqB,OAAO,EAAEA,EAAuB,EAAI,IAAM,GAAG,CAAC,C,WAOnF,WAAC,OAAI,UAAU,wC,SACZd,EAA2B,CAC1B,gBAAiB17B,EACjB,eAAgBs4B,CAClB,E,GAIA0D,EAAc,MAAM,CAAG,GACrB,YAAC,OAAI,UAAU,uB,UACb,WAAC,MAAG,UAAU,yD,SAAyD,iB,GAGvE,WAAC,QAAK,UAAU,2D,SAA2D,wD,GAG3E,WAAC,MAAG,UAAU,qF,SACVA,EAAc,GAAG,CAAC,CAAC1M,EAASh3B,IAAU,WAAC,MAAe,UAAU,O,SAAQg3B,C,EAAzBh3B,G,MAKzD,YAAC,OACC,UAAW8d,KAAW,CACpB,6CAA+C,CAACumB,CAClD,EAAG,mD,UAEH,WAAC,MAAG,UAAU,qC,SAAqC,S,GACnD,YAAC,MAAG,UAAU,wC,UACX/+B,EAAgB,GAAG,CAClB,CAAC,CACCzC,GAAAA,EAAK,EAAE,CACP,MAAOyhC,CAAY,CACnB,SAAUz+B,CAAe,CACzB,KAAMvF,CAAW,CACjB,WAAY,CAAE,SAAUoG,EAAkB,EAAE,CAAE,CAC/C,IACC,GAAM,CAAEZ,SAAAA,EAAW,EAAK,CAAEa,MAAAA,EAAQ,EAAK,CAAE,CAAGd,GAAmB,CAAC,EAC5D0+B,EAAkBjO,GAItB,OAHIxwB,EACFy+B,EAAkBhO,GACT5vB,GAAS49B,CAAAA,EAAkB/N,EAAAA,EAEpC,WAACC,GAAAA,EAAIA,CAAAA,CACH,GAAIh3B,GAAe,CAAC,CAAC,EAAE+I,EAAY,CAAC,EAAEnI,EAAW,CAAC,EAAEC,EAAY,CAAC,EACjE,QAAS,IAAMiI,EAAmBC,EAAanI,EAAYC,GAC3D,MAAOgkC,E,SAGP,YAAC,OACC,UAAU,4G,UAEV,YAAC,OAAI,UAAU,mC,UACb,WAACC,EAAAA,CACC,UAAW,CAAC,qDAAqD,EAAEz+B,EAC/D,kBACA,kBACF,A,GAEJ,WAAC,QAAK,UAAU,6B,SAA8Bw+B,C,MAE9CA,EAAa,MAAM,CAAG,GAAM59B,AAAAA,CAAAA,GAAmB,EAAC,EAAG,MAAM,CAAG,GAC9D,WAAC,QAAK,UAAU,mC,SACb,CAAC,EAAEA,EAAgB,UAAU,CAAC,IAAK,KAAK,CAAC,A,OAhBzC,CAAC,KAAK,EAAE7D,EAAG,CAAC,CAsBvB,GAGEm9B,AAAAA,CAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAiB,QAAQ,AAAD,GAAK,EAAC,EAAG,MAAM,CAAG,GAAK,CAACmC,GAChD,WAAC,UACC,KAAK,SACL,QAAS,IAAM16B,GAAoBC,EAAWC,EAAUC,GAExD,UAAU,iO,SACX,oB,aAxGN,CAAC,QAAQ,EAAEvH,EAAW,CAAC,CAkHlC,G,QAIN,WAAC,WACC,QAAS2iC,EACT,UAAU,oD,SAMtB,CAIAlB,CAAAA,GAAmB,SAAS,CAAG,CAC7B,OAAQ9M,GAAAA,MAAMA,CACd,iBAAkBxc,GAAAA,IAAIA,CACtB,QAAS8gB,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQtE,GAAAA,MAAMA,EACvB,iBAAkBA,GAAAA,MAAMA,CACxB,oBAAqBxc,GAAAA,IAAIA,CACzB,oBAAqBA,GAAAA,IAAIA,AAC3B,EC5eA,IAAMgsB,GAAY,CAAC,CACjBxqB,MAAAA,EAAQ,EAAE,CAAEwjB,MAAAA,EAAQ,EAAK,CAAE/I,KAAAA,EAAO,EAAK,CAAEzV,UAAAA,EAAY,EAAE,CACxD,GAEG,WAAC,MAAG,UAAWlB,KAAW,CAAE,cAAe0f,EAAO,iBAAkB/I,CAAK,EAAG,2DAA4DzV,GAAa,U,SACnJ,WAAC,OAAI,wBAAyB,CAAE,OAAQhF,CAAM,C,IAMpDwqB,CAAAA,GAAU,SAAS,CAAG,CACpB,MAAO3sB,GAAAA,MAAMA,CACb,MAAOD,GAAAA,IAAIA,CACX,KAAMA,GAAAA,IAAIA,CACV,UAAWC,GAAAA,MAAMA,AACnB,EChBA,IAAMwmB,GAAW,CAAC,CAChBrkB,MAAAA,EAAQ,EAAE,CAAEwjB,MAAAA,EAAQ,EAAK,CAAE/I,KAAAA,EAAO,EAAK,CAAEzV,UAAAA,EAAY,EAAE,CACxD,GAEG,WAAC,MACC,UAAWlB,KACT,CAAE,cAAe0f,EAAO,iBAAkB/I,CAAK,EAC/C,sGACAzV,GAEF,wBAAyB,CAAE,OAAQhF,CAAM,C,EAM/CqkB,CAAAA,GAAS,SAAS,CAAG,CACnB,MAAOxmB,GAAAA,MAAMA,CACb,MAAOD,GAAAA,IAAIA,CACX,KAAMA,GAAAA,IAAIA,CACV,UAAWC,GAAAA,MAAMA,AACnB,ECpBA,IAAM4sB,GAAQ,CAAC,CACb3qB,OAAAA,EAAS,EAAK,CAAEyX,QAAAA,EAAU70B,AAAAA,GAAKA,CAAC,CAAEmc,SAAAA,EAAW,IAAI,CAAEmG,UAAAA,EAAY,EAAE,CAAE0lB,OAAAA,EAAS,EAAE,CAC/E,IACC,IAAMC,EAAa,KACjBpT,EAAQ,GACV,EAEMqT,EAAuB,CAAC,CAAErnC,IAAAA,CAAG,CAAE,IACvB,WAARA,GAAkBonC,GACxB,QAqBA,CAnBA9pB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACRjS,SAAS,gBAAgB,CAAC,UAAWg8B,GAC9B,KACLh8B,SAAS,mBAAmB,CAAC,UAAWg8B,EAC1C,IAGF/pB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACJf,EACFlR,SAAS,aAAa,CAAC,QAAQ,KAAK,CAAG,4BAEvCA,SAAS,aAAa,CAAC,QAAQ,KAAK,CAAG,6BAGlC,KACLA,SAAS,aAAa,CAAC,QAAQ,KAAK,CAAG,4BACzC,GACC,CAACkR,EAAO,EAENA,GAMH,wB,SACE,YAAC,WAAQ,UAAU,0E,UACjB,WAAC,OACC,UAAU,iH,SAEV,YAAC,UACC,KAAK,SACL,QAXY,KACpB6qB,GACF,EAUU,UAAU,+D,UAEV,WAACrsB,GAAAA,CAASA,CAAAA,CAAC,UAAU,gD,GACrB,WAAC,QAAK,UAAU,uD,SAAuD,K,QAK3E,WAAC,OAAI,MAAO,CAAE,OAAQ,GAAI,EAAG,UAAW,CAAC,mHAAmH,EAAEosB,GAAU,YAAY,CAAC,C,SACnL,WAAC,OAAI,UAAW1lB,E,SACd,WAAC,OAAI,UAAU,yB,SAA0BnG,C,OAG7C,WAAC,OACC,QAAS0Y,EACT,UAAWA,EACX,UAAU,qD,QA9BE,IAmCtB,CAGAkT,CAAAA,GAAM,SAAS,CAAG,CAChB,OAAQ7sB,GAAAA,IAAIA,CACZ,QAASY,GAAAA,IAAIA,CACb,OAAQX,GAAAA,MAAMA,CACd,SAAUmd,GAAAA,MAAMA,CAChB,UAAWnd,GAAAA,MAAMA,AACnB,ECWA,OAnFsB,KACpB,IAAMwC,EAAS,gBAETwqB,EAAWnP,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACX,CAACoP,EAAaC,EAAe,CAAG7kB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IAYzC,CAAE8kB,OAAAA,CAAM,CAAExJ,SAAAA,CAAQ,CAAE,CAAG9/B,GAC7B,MACE,yB,UACE,WD6CS+oC,GC7CHA,CACJ,OAAQK,EAAa,QARR,KACjB39B,GAAkB,CAAE,OAAQ,QAASkT,OAAAA,EAAQ,MAAOwqB,CAAS,GAC7DE,EAAe,GACjB,EAKgD,KAAM,GAChD,UAAU,M,SAEV,WAAC,SACC,MAAK,GACL,SAAQ,GACR,SAAQ,GACR,QAAQ,OACR,IAAKvJ,EACL,OAAQwJ,EACR,KAAK,WACL,UAAU,yB,KAGd,WAAC,WAAQ,UAAU,0CAA0C,MAAO,CAAE,gBAAiB,qDAAsD,E,SAC3I,YAAC,OAAI,UAAU,yC,UACb,WAAC,OAAI,UAAU,kF,GACf,WAAC,OAAI,UAAU,sF,GACf,WAAC,OAAI,UAAU,wF,GACf,WAAC,OAAI,UAAU,sF,GACf,YAAC,OAAI,UAAU,Q,UACb,WHnCGR,GGmCGS,CAAC,KAAI,GAAC,MAAM,gCAAgC,UAAU,yD,GAC5D,WF/BG5G,GE+BMA,CAAC,UAAU,gBAAgB,KAAI,GAAC,MAAM,2E,MAEjD,WAAC,OAAI,UAAU,0C,SACb,WAAC,OAAI,UAAU,uC,SACb,YAAC,OAAI,UAAU,W,UACb,WAAC,OACC,QAAQ,OACR,IA5CE,oEA6CF,UAAU,qDACV,MAAO,KACP,OAAQ,KACR,IAAI,2B,GAEN,WAAC,OAAI,UAAU,4FAA4F,QAhDvG,KAChBl3B,GAAkB,CAAE,OAAQ,OAAQkT,OAAAA,EAAQ,MAAOwqB,CAAS,GAC5DE,EAAe,GACjB,E,SA8CgB,WAAC,UAAO,KAAK,SAAS,aAAW,a,SAC/B,YAAC,OACC,UAAU,2EACV,QAAQ,YAAY,KAAK,OAAO,MAAM,6B,UAEtC,WAAC,QACC,EAAE,IAAI,EAAE,IAAI,MAAM,IAClB,OAAO,IAAI,KAAK,S,GAElB,WAAC,QAEC,EAAE,yoBACF,KAAK,S,UAMb,WAAC,OAAI,UAAU,0H,SAA0H,M,iBAQzJ,EChEA,GArB0B,KAExB,IAAMG,EAAuB56B,GADhBorB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,OAEb,MACE,wB,SACE,WAAC,W,SACC,WAAC,UACC,GAAG,gCACH,MAAM,sBACN,UAAU,oCACV,kBAAkB,OAClB,gBAAiB,GACjB,MAAM,kCACN,IAAK,CAAC,yCAAyC,EAAEwP,EAAqB,CAAC,CACvE,YAAY,G,MAKtB,E5HvBA,SAAS,KAAa,MAAO,IAAWhjC,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAsBnR,OApBoBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC5E,MAAO,6BACP,KAAM,OACN,QAAS,WACX,EAAGA,GAAQ,IAAO,IAAkB,gBAAmB,CAAC,IAAK,CAC3D,SAAU,uBACZ,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,UACN,EAAG,kEACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,OACN,SAAU,UACV,EAAG,2GACH,SAAU,SACZ,GAAE,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,KAAmB,gBAAmB,CAAC,WAAY,CAClH,GAAI,iBACN,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,OACN,EAAG,eACL,IAAG,GCrBH,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAsBnR,OApB6BrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACrF,MAAO,6BACP,KAAM,OACN,QAAS,WACX,EAAGA,GAAQ,IAAY,IAAuB,gBAAmB,CAAC,SAAU,CAC1E,GAAI,MACJ,GAAI,MACJ,EAAG,MACH,KAAM,UACN,YAAa,EACf,EAAC,EAAInR,IAAaA,CAAAA,GAAwB,gBAAmB,CAAC,SAAU,CACtE,GAAI,MACJ,GAAI,MACJ,EAAG,MACH,OAAQ,OACR,cAAe,EACjB,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC9D,KAAM,OACN,EAAG,6FACL,EAAC,G4HlBD,IAAMgvC,GAAU,CAAC,CAAEnrB,MAAAA,EAAQ,EAAE,CAAEorB,KAAAA,EAAO,EAAE,CAAEC,KAAAA,EAAO,IAAM,IAAI,CAAE,GAEzD,WAAC,OAAI,UAAU,+D,SACb,YAAC,OAAI,UAAU,qH,UACb,YAAC,OAAI,UAAU,2D,UACb,WAAC,MAAG,UAAU,iG,SAAkGrrB,C,GAChH,WAAC,KAAE,UAAU,8F,SAA+ForB,C,MAE9G,WAAC,OAAI,UAAU,4F,SACb,WAACC,EAAAA,CAAK,UAAU,W,U3HZ1B,SAAS,KAAa,MAAO,IAAWnjC,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,C2HoBnRwnB,GAAQ,SAAS,CAAG,CAClB,MAAOttB,GAAAA,MAAMA,CACb,KAAMA,GAAAA,MAAMA,CACZ,KAAMW,GAAAA,IAAIA,AACZ,E3HGA,OAzB0BlR,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAClF,MAAO,6BACP,MAAO,GACP,OAAQ,IACR,KAAM,MACR,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,gCACN,YAAa,GACb,SAAU,UACV,EAAG,+kBACH,SAAU,SACZ,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,KAAmB,gBAAmB,CAAC,iBAAkB,CACvH,GAAI,0BACJ,GAAI,OACJ,GAAI,IACJ,GAAI,GACJ,GAAI,GACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,UACX,YAAa,CACf,IAAG,GC1BH,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CA2BnR,OAzByBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACjF,MAAO,6BACP,MAAO,GACP,OAAQ,IACR,KAAM,MACR,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,8BACN,YAAa,GACb,SAAU,UACV,EAAG,6cACH,SAAU,SACZ,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,KAAmB,gBAAmB,CAAC,iBAAkB,CACvH,GAAI,wBACJ,GAAI,OACJ,GAAI,OACJ,GAAI,MACJ,GAAI,MACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,UACX,YAAa,CACf,IAAG,GC1BH,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAkCnR,OAhCmCrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC3F,MAAO,6BACP,MAAO,GACP,OAAQ,IACR,KAAM,MACR,EAAGA,GAAQ,IAAO,IAAkB,gBAAmB,CAAC,IAAK,CAC3D,SAAU,wCACZ,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,yCACN,YAAa,GACb,SAAU,UACV,EAAG,yoBACH,SAAU,SACZ,GAAE,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,KAAmB,gBAAmB,CAAC,iBAAkB,CACxH,GAAI,mCACJ,GAAI,OACJ,GAAI,MACJ,GAAI,OACJ,GAAI,OACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,UACX,YAAa,CACf,IAAkB,gBAAmB,CAAC,WAAY,CAChD,GAAI,kCACN,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,OACN,EAAG,iBACL,IAAG,G0HdH,GAjB8B,KAC5B,IAAMjI,EAAUiO,KAChB,MACE,YAAC,QAAK,UAAU,4C,UAA4C,0LAEzD,IACD,WAAC,KAAE,OAAO,SAAS,UAAU,2BAA2B,KAAMnO,GAAoB,YAAaE,G,SAAU,yB,GACxG,IAAI,gBAEJ,IACD,WAAC,KAAE,OAAO,SAAS,UAAU,2BAA2B,KAAMF,GAAoB,YAAaE,G,SAAU,sB,GACxG,IAAI,oE,EAIX,ECmBA,GA7BuB,IAEnB,WAAC,W,SACC,YAAC,OAAI,UAAU,+C,UACb,WPEOmlC,GOFDS,CAAC,KAAI,GAAC,MAAM,sBAAsB,UAAU,4D,GAClD,YAAC,OAAI,UAAU,oE,UACb,WFKKE,GELGA,CACN,KAAMG,GACN,MAAM,0BACN,KAAK,yJ,GAEP,WFAKH,GEAGA,CACN,KAAMI,GACN,MAAM,yBACN,KAAK,yK,GAEP,WFLKJ,GEKGA,CACN,KAAMK,GACN,MAAM,6BAEN,KAAK,mL,MAGT,WAACC,GAAqBA,CAAAA,G,KCQ9B,IAAMC,GAAiC,KACrC,GAAM,CAACtmC,EAAI,CAAGnM,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KACnC0yC,EAAevmC,AAAAA,CAAAA,GAAO,EAAC,EAAG,KAAK,CAAC,KAItC,OAAOumC,CAAW,CAACC,AAHOxmC,AAAAA,CAAAA,GAAO,EAAC,EAC/B,KAAK,CAAC,KACN,SAAS,CAACL,AAAAA,GAAQA,AAAS,YAATA,GACiB,EAAE,AAC1C,EAghBA,OA9gBwB,KACtB,IAAMyP,EAAUwuB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACV,CAACzD,EAAeC,EAAiB,CAAGtZ,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IAC7CsV,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACXoQ,EAAiB,IAAMrQ,EAASxmB,GAAgB,cAAc,IAC9D82B,EAAkBrkC,AAAAA,GAAU+zB,EAASxmB,GAAgB,eAAe,CAACvN,IACrEskC,EAAkBluC,AAAAA,GAAgB29B,EAASxmB,GAAgB,eAAe,CAACnX,IAC3E0Q,EAAqB,CAAC8vB,EAAkBC,EAAiBC,IAAqB/C,EAASxmB,GAAgB,kBAAkB,CAACqpB,EAAkBC,EAAiBC,IAC7J5wB,EAAW+tB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MAEXnzB,EAAUmzB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,UAAU,EACjD6zB,EAAmBtQ,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,mBAAmB,CAAC,WACpE8zB,EAAmBvQ,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,mBAAmB,CAAC,aAEtE+zB,EAAc,EAAE,CACpB3jC,EAAQ,OAAO,CAACd,AAAAA,IACd,GAAM,CAAE1B,SAAAA,EAAW,EAAE,CAAE,CAAG0B,EAC1BykC,EAAc,IACTA,KACAnmC,EAAS,MAAM,CAAC8E,AAAAA,GAAYA,AAAAA,CAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,QAAQ,AAAD,GAAK,EAAC,EAAG,MAAM,CAAG,GAClE,AACH,GACA,GAAM,CAACshC,EAAerO,EAAiB,CAAG5X,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,IACpC,CAACkmB,EAAkB39B,EAAoB,CAAGyX,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IACnDmmB,EAAY9a,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,EAAO,MAEnB,CAACpiB,EAAkB44B,EAAoB,CAAG7hB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,IAChDrF,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACRgrB,IACA,GAAM,CAAEr9B,YAAAA,CAAW,CAAEnI,WAAAA,CAAU,CAAE,CAAG1B,KAChC6J,GAAe,CAACnI,GAClBmO,EAAQ,IAAI,CAAC/O,GAAe,aAE9BsmC,EAAgB,UAClB,EAAG,EAAE,EAEL,IAAMO,EAA8BC,AAAAA,IAClC,GAAM,CAAExmC,SAAAA,EAAW,EAAE,CAAE,CAAGwmC,GAAmB,CAAC,EACxC,CAACC,EAAY,CAAGzmC,EAChB,CAAE,KAAM6O,CAAW,CAAE,UAAW3W,CAAQ,CAAE,CAAGuuC,GAAe,CAAC,EAC7DC,EAAiBlkC,EAAQ,IAAI,CAACd,AAAAA,GAAUA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,EAAE,AAAD,IAAMxJ,GAC7D6/B,EAAiB2O,GACjBj4B,EAAQ,IAAI,CACV/O,GACEgnC,EACI,CAAC,SAAS,EAAEA,MAAAA,EAAAA,KAAAA,EAAAA,EAAgB,IAAI,CAAC,CAAC,EAAE73B,EAAY,CAAC,CACjD,YAGV,EAEAiM,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,GAAIqrB,GAAeA,AAAuB,IAAvBA,EAAY,MAAM,CAAQ,OAE7C,GAAM,CAAE19B,YAAAA,CAAW,CAAEnI,WAAAA,CAAU,CAAE,CAAG1B,KACpC,GAAI6J,AAAgB,UAAhBA,EAGJ89B,EADwBJ,EAAY,IAAI,CAACrhC,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAAMxE,GAEtE,EAAG,CAAC6lC,EAAY,EAEhBrrB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACHsrB,EAMHpE,EAHwBoE,AAAAA,CAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAe,QAAQ,AAAD,GAAK,EAAC,EAAG,IAAI,CACzDthC,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,IAAI,AAAD,IAAM6gC,OAH/B3D,GAOJ,EAAG,CAACoE,EAAc,EAElBtrB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,K,IACqB6rB,EACLC,EACEC,EAEHC,EAJvB,IAAMC,EAAoB,CAAC,EAAE,AAAAJ,OAAAA,CAAAA,EAAAA,MAAK,GAALA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAQ,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CACjEK,EAAkB,AAAAJ,OAAAA,CAAAA,EAAAA,QAAO,GAAPA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAU,aAAa,CAAC,yBAC1CK,EAAoB,AAAAJ,OAAAA,CAAAA,EAAAA,QAAO,GAAPA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAU,aAAa,CAAC,4BAC5CK,EAA8BvB,KAC9BwB,EAAiB,AAAAL,OAAAA,CAAAA,EAAAA,MAAK,GAALA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAQ,QAAQ,CAAC,IAAI,CAE5C,GAAKV,EAME,IAAIY,GAAmBG,IAAmBH,EAAgB,IAAI,CAAE,CACrE,IAAMI,EAAY,CAAC,EAAEL,EAAkB,EAAEX,EAAc,IAAI,CAAC,CAAC,EAAEc,EAA4B,CAAC,CAAC,AAC7FF,CAAAA,EAAgB,IAAI,CAAGI,CACzB,OAREv+B,SAAS,KAAK,CC/HE,0BDgIhBo+B,EAAkB,OAAO,CCjIL,4JDkIhBD,GAAmBG,IAAmBH,EAAgB,IAAI,EAC5DA,CAAAA,EAAgB,IAAI,CAAGD,CAAgB,EAO3C,GAAIE,GAAqBb,EAAe,CACtC,IAAMiB,EAAkBjB,MAAAA,EAAAA,KAAAA,EAAAA,EAAe,QAAQ,CAAC,IAAI,CAACkB,AAAAA,GAAQA,EAAK,IAAI,GAAKJ,GACvEG,GAAmBA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAiB,WAAW,AAAD,GAChDJ,CAAAA,EAAkB,OAAO,CAAGI,EAAgB,WAAW,AAAD,CAE1D,CAEAtB,EAAgBK,EAClB,EAAG,CAACA,EAAc,EAGlBtrB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,GAAItY,EAAQ,MAAM,CAAG,EAAG,CACtB,IAAM+kC,EAAuB5B,KAC7B,GAAI4B,EAAsB,CACxB,IAAMC,EAAchlC,EAAQ,IAAI,CAACd,AAAAA,GAAWA,AAAAA,CAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,QAAQ,AAAD,GAAK,EAAC,EAAG,IAAI,CACtEoD,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,IAAI,AAAD,IAAMyiC,IAE3BC,GAAazP,EAAiByP,EACpC,CACF,CACF,EAAG,CAAChlC,EAAQ,EAEZ,GAAM,CAACilC,EAAwBC,EAA0B,CAAGvnB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAASjtB,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAC7Fy0C,EAA0B,sBAU1BC,EAAyB5gC,GAAyBxE,GACpD2E,EAAqB,EAAE,CAE3BhF,OAAO,IAAI,CAACylC,GAAwB,OAAO,CAAC1vC,AAAAA,IAC1CiP,EAAqB,IAChBA,KACCygC,AAAAA,CAAAA,CAAsB,CAAC1vC,EAAS,EAAI,EAAC,EAAG,GAAG,CAACE,AAAAA,IAC9C,GAAM,CACJ,MAAOmT,CAAU,CACjB/K,KAAAA,CAAI,CACJR,SAAAA,CAAQ,CACR,WAAY,CAAE,UAAW6nC,CAAY,CAAE,CACxC,CAAGrlC,EAAQ,IAAI,CAACd,AAAAA,GAAUA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,EAAE,AAAD,IAAMxJ,GACpC,CAAE,GAAIyP,CAAS,CAAE,WAAY46B,EAAoB,CAAC,CAAC,CAAE,CAAGviC,EAAS,IAAI,CAAC8E,AAAAA,GAAWA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,QAAQ,CAAC,IAAI,CAC3GgjC,AAAAA,GAAkBA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAgB,EAAE,AAAD,IAAM1vC,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAE/C,CAAE,MAAOqL,CAAY,CAAE,CAAG8+B,EAChC,MAAO,qBACFnqC,GAAAA,CACHF,SAAAA,EACAyP,UAAAA,EACA4D,WAAAA,EACAs8B,aAAAA,EACApkC,aAAAA,EACA,WAAYjD,EACZ,YACER,AAAAA,CAAAA,EAAS,IAAI,CAAC8E,AAAAA,GAAWA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,QAAQ,CAAC,IAAI,CAC7CgjC,AAAAA,GAAkBA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAgB,EAAE,AAAD,IAAM1vC,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,KAC/C,CAAE,MAAO,EAAG,GAClB,KAAK,CACP,YACE4H,AAAAA,CAAAA,EAAS,IAAI,CAAC8E,AAAAA,GAAWA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,QAAQ,CAAC,IAAI,CAC7CgjC,AAAAA,GAAkBA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAgB,EAAE,AAAD,IAAM1vC,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,KAC/C,CAAE,MAAO,EAAG,GAClB,IAAI,A,EAEV,GACD,AACH,GAEA,IAAM2vC,EAA6B5gC,EAAmB,MAAM,CAC1D/O,AAAAA,I,IAAWsM,EAAoCsjC,E,MAApCtjC,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAiB,OAAjBA,CAAAA,EAAAA,EAAS,QAAQ,AAAD,GAAhBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmB,aAAa,AAAD,GAAKsjC,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAiB,OAAjBA,CAAAA,EAAAA,EAAS,QAAQ,AAAD,GAAhBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmB,aAAa,AAAD,C,GAG1E,CAACC,EAAkB,CAAG/B,EAGxBgC,EAAmB1O,EAAc,MAAM,EAAI,EAAIyM,EAAiB,MAAM,CAAC98B,AAAAA,GAAW2D,GAAkB3D,EAAQ,KAAK,CAAEqwB,IAAkByM,EAQzI,OAFAiC,EAAmBA,AALnBA,CAAAA,EAAmBA,EAAiB,IAAI,CAAC,CAACC,EAAUC,IAClD,AAAID,AAAkB,iBAAlBA,EAAS,IAAI,CAA4B,GACzCC,AAAkB,iBAAlBA,EAAS,IAAI,CAA4B,EACtC,EACR,EACmC,GAAG,CAACj/B,AAAAA,GAAYA,AAAiB,iBAAjBA,EAAQ,IAAI,CAAsB,qBAAKA,GAAAA,CAAS,IAAK,E,GAASA,GAGhH,yB,UACE,WN7JSu7B,GM6JHA,CAAC,OAAQ+C,EAAwB,QA7DxB,KACjBrgC,GAAkB,CAAE,OAAQ,QAAS,OAAQugC,EAAyB,MAAO//B,CAAS,GACtF8/B,EAA0B,GAC5B,EA0DgE,OAAO,oB,SACjE,WAACW,GAAiBA,CAAAA,E,GAEpB,WhBpLSxO,GgBoLJA,CACH,cAAeL,EACf,iBAAkBC,EAClB,MAAM,0BACN,YAAY,0D,GAEbsO,EAA2B,MAAM,CAAG,GACnC,WAAC,WAAQ,UAAU,+B,SACjB,WAAC,OAAI,UAAU,sE,SACb,YAAC,OAAI,UAAU,S,UACb,WAAC,MACC,UAAWhqB,KACT,CAAE,UAAWgqB,EAA2B,MAAM,EAAI,CAAE,EACpD,4D,SAEH,mB,GAGD,WAAC,WAAQ,UAAU,2B,SACjB,WAACO,GAAAA,EAAMA,CAAAA,CACL,UAAWvqB,KAAW,CAAE,kBAAmB,GAAO,SAAU,EAAK,GACjE,IAAKuoB,EACL,cAAe,EACf,aAAc,GACd,KAAM,GACN,WAAY,CACV,GAAI,qBACJ,UAAW,GACX,aAAc,CAACrmC,EAAOgf,IACb,CAAC,aAAa,EAAEA,EAAU,SAAS,CAAC,AAE/C,EACA,YAAa,CACX,EAAG,CAAE,cAAe,EAAG,KAAM,EAAM,EACnC,KAAM,CAAE,cAAe,EAAG,KAAM,EAAM,CACxC,EACA,WAAY,GACZ,QAAS,CAACspB,GAAAA,EAAUA,CAAE3vB,GAAAA,EAAUA,CAAC,C,SAEhCmvB,EAA2B,GAAG,CAC7B,CACE,CACE,KAAMxnC,CAAW,CACjBmG,SAAAA,CAAQ,CACR1J,UAAAA,CAAS,CACTyG,aAAAA,CAAY,CACZvL,SAAAA,CAAQ,CACRoI,WAAAA,CAAU,CACVkoC,YAAAA,CAAW,CACX35B,YAAAA,CAAW,CACX,MAAO45B,CAAW,CAClBl9B,WAAAA,CAAU,CACV,WAAY,CAAEzJ,SAAAA,CAAQ,CAAE,CACzB,I,IASG4mC,EAPJ,IAAM/mC,EAAgB/E,GAAekF,GAC/B,CAAEgF,cAAAA,CAAa,CAAED,cAAAA,CAAa,CAAE,CAAGH,EACnC+4B,EAAmB99B,EAAgBH,SAASsF,GAAiBD,EAAe,IAC5E8hC,EAAgBxqC,KAAK,IAAI,CAAGwD,AAAAA,CAAAA,EAAgB89B,CAAe,EAAK,IAAO99B,GACvEinC,EAAY5iC,GAA2By5B,EAAkB,IACzD,CACJoJ,gBAAAA,EAAkB,iBAAiB,CAAEC,UAAAA,EAAY,kBAAkB,CAAE9lC,MAAAA,CAAK,CAC3E,CAAG0lC,AAAAA,CAAAA,AAA0B,OAA1BA,CAAAA,EAAAA,EAAgB,CAACxwC,EAAS,AAAD,GAAzBwwC,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,CAA4B,CAACjlC,EAAa,AAAD,GAAK,CAAC,EACnD,MACE,WAACslC,GAAAA,EAAWA,CAAAA,C,SAGV,YAACrS,GAAAA,EAAIA,CAAAA,CACH,GAAIh3B,GACF,CAAC,CAAC,EAAEY,EAAW,CAAC,EAAEuO,EAAY,CAAC,EAAEtO,EAAY,CAAC,EAEhD,QAAS,IAAMiI,EAAmBlI,EAAYuO,EAAatO,G,UAE3D,YAAC,WAEC,UAAU,gI,UAEV,YAAC,UAAO,UAAU,uB,UAChB,YAAC,OAAI,UAAW,CAAC,qHAAqH,EAAEsoC,EAAgB,CAAC,C,UACvJ,WAAC,MAAG,UAAW,CAAC,0BAA0B,EAAEC,EAAU,CAAC,C,SACpD,CAAC,OAAO,EAAE9lC,EAAM,CAAC,A,GAEpB,WAAC,MAAG,UAAU,gC,SAAiCylC,C,MAEjD,WAAC,OAAI,UAAU,uE,SACb,WAACO,GAAcA,CAAC,UAAU,W,QAG9B,YAAC,OAAI,UAAU,a,UACb,YAAC,OAAI,UAAU,kD,UACb,WAAC,MAAG,UAAU,4E,SACXz9B,C,GAEH,YAAC,OAAI,UAAU,2E,UACb,WAAC,KAAE,UAAU,0C,SACVi9B,C,GAGH,WAAC,KAAE,UAAU,yB,SACV,CAAC,EAAExrC,EAAU,CAAC,EAAEyrC,EAAY,CAAC,A,SAKpC,YAAC,OAAI,UAAU,oC,UACb,WAAC9R,GAAwBA,CAAC,UAAU,iC,GACpC,WAAC,QAAK,UAAU,oC,SACbiS,C,WAjCFroC,GAsCP,YAAC,OAAI,UAAU,W,UACb,WAAC,OAAI,UAAU,0C,GACf,WAAC,OACC,UAAU,qGACV,MAAO,CAAE,MAAO,CAAC,EAAEooC,EAAc,CAAC,CAAC,AAAC,E,SAEpC,WAACM,GAAQA,CAAC,UAAU,8D,YArDrB1oC,EA4DX,E,KAIN,WAAC,OAAI,UAAU,wB,UAKvB,WAAC,W,SACC,YAAC,OACC,UAAWwd,KACT,CAAE,QAASvb,EAAQ,MAAM,EAAI,CAAE,EAC/B,gD,UAKA0lC,AAA4B,IAA5BA,EAAiB,MAAM,CACrB,YAAC,OAAI,UAAU,wD,UACb,WAAC,MAAG,UAAU,4D,SAA4D,yB,GAC1E,WAAC,KAAE,UAAU,+C,SAA+C,mD,MAQ5D,WRpXDzD,GQoXOS,CACJ,KAAI,GACJ,MAAM,2BACN,UAAU,2D,GAKlB,WAAC,OAAI,UAAU,wDAAwD,MAAO,CAAE,oBAAqB,yCAA0C,E,SAC5IgD,EAAiB,GAAG,CAACxmC,AAAAA,GAElB,WlBnGDo2B,GkBmGgBA,CACb,OAAQp2B,EAER,KAAMA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,IAAI,AAAD,IAAM,WAAa,WAAarI,KAAAA,EACjD,iBAAkBqtC,AAAAA,GAAkBH,EAA4BG,E,EAF3DhlC,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,IAAI,E,QAS7B,WAAC,WACC,UAAU,4CACV,MAAO,CACL,gBACE,2EACJ,E,SAEA,YAAC,OAAI,UAAU,gC,UACb,WRlZK+iC,GQkZCS,CACJ,MAAK,GACL,MAAM,qDACN,UAAU,2D,GAEZ,YAACoD,GAAAA,EAAMA,CAAAA,CACL,cAAe,EACf,aAAc,GACd,KAAM,GACN,WAAY,CACV,GAAI,4BACJ,UAAW,GACX,aAAc,CAACroC,EAAOgf,IACb,CAAC,aAAa,EAAEA,EAAU,SAAS,CAAC,AAE/C,EACA,YAAa,CACX,EAAG,CACD,cAAe,EACf,aAAc,EAChB,EACA,IAAK,CACH,cAAe,EACf,aAAc,EAChB,EACA,KAAM,CACJ,cAAe,EACf,aAAc,EAChB,CACF,EACA,WAAY,GACZ,QAAS,CAACspB,GAAAA,EAAUA,CAAE3vB,GAAAA,EAAUA,CAAC,C,UAEjC,WAACmwB,GAAAA,EAAWA,CAAAA,CAAC,UAAU,kB,SACrB,YAAC,OAAI,UAAU,0C,UACb,YAAC,MAAG,UAAU,6M,UACZ,WAAC,OAAI,UAAU,sF,SACb,WAACG,GAAAA,CAAcA,CAAAA,CAAC,UAAU,wB,KAE5B,YAAC,OAAI,UAAU,mC,UACb,WAAC,MAAG,UAAU,kD,SAAkD,iC,GAChE,WAAC,KAAE,UAAU,4C,SAA4C,oH,SAG7D,YAAC,MAAG,UAAU,wL,UACZ,WAAC,OAAI,UAAU,e,SACb,WAACvS,GAAwBA,CAAC,UAAU,+B,KAEtC,YAAC,OAAI,UAAU,mC,UACb,WAAC,MAAG,UAAU,kD,SAAkD,2B,GAChE,WAAC,KAAE,UAAU,4C,SAA4C,wG,cAKjE,WAACoS,GAAAA,EAAWA,CAAAA,CAAC,UAAU,kB,SACrB,YAAC,OAAI,UAAU,0C,UACb,YAAC,MAAG,UAAU,+M,UACZ,WAAC,OAAI,UAAU,sF,SACb,WAACI,GAA2BA,CAAC,UAAU,yB,KAEzC,YAAC,OAAI,UAAU,mC,UACb,WAAC,MAAG,UAAU,kD,SAAkD,0B,GAChE,WAAC,KAAE,UAAU,4C,SAA4C,2F,SAG7D,YAAC,MAAG,UAAU,wF,UACZ,WAAC,OAAI,UAAU,e,SACb,WAAChQ,GAAAA,CAAqBA,CAAAA,CAAC,UAAU,+B,KAEnC,YAAC,OAAI,UAAU,mC,UACb,WAAC,MAAG,UAAU,kD,SAAkD,6B,GAChE,WAAC,KAAE,UAAU,4C,SAA4C,0H,iBAMnE,WAAC,OAAI,UAAU,+B,QAGnB,WAAC,W,SACC,YAAC,OACC,UAAWpb,KACT,CAAE,QAASvb,EAAQ,MAAM,EAAI,CAAE,EAC/B,yE,UAIAylC,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAmB,IAAI,AAAD,IAAM,WAC1B,WAAC,QAAK,UAAU,oC,GAEhB,WAAC,MAAG,UAAU,2D,SAA2D,kB,GAK5E/B,EAAiB,MAAM,CAAG,GACzB,WAAC,OAAI,UAAU,wDAAwD,MAAO,CAAE,oBAAqB,yCAA0C,E,SAC5IA,EAAiB,GAAG,CAACxkC,AAAAA,IACpB,GAAM,CAAEqB,KAAAA,CAAI,CAAE,GAAIqmC,CAAgB,CAAE,CAAG1nC,EAEvC,MACE,WlB7NHo2B,GkB6NkBA,CACb,OAAQp2B,EACR,eAAgB,GAEhB,KAAMA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,IAAI,AAAD,IAAM,WAAa,WAAarI,KAAAA,EACjD,iBAAkBqtC,AAAAA,GAAkBH,EAA4BG,E,EAF3D2C,AALUtmC,AAAS,aAATA,EAKGqmC,EAAmB1nC,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,IAAI,CAKvD,E,QAKR,WAAC,WACC,UAAU,uCACV,MAAO,CACL,gBACE,2EACJ,E,SAEA,WAAC,OAAI,UAAU,+C,SACb,YAAC,OAAI,UAAU,c,UACb,WR/gBG+iC,GQ+gBGS,CAAC,MAAK,GAAC,MAAM,iCAAiC,UAAU,8D,GAC9D,WP3gBG5G,GO2gBMA,CACP,UAAU,gBACV,MAAK,GACL,MAAM,gI,GAER,WAAC,UACC,KAAK,SACL,QAlYM,KAChBl3B,GAAkB,CAAE,OAAQ,OAAQ,OAAQugC,EAAyB,MAAO//B,CAAS,GACrF8/B,EAA0B,CAACD,EAC7B,EAgYY,UAAU,2E,SACX,kB,UAMP,WAAC6B,GAAcA,CAAAA,GACf,WAACC,GAAkBA,CAAAA,GACnB,WAACC,GAAAA,EAAKA,CAAAA,CAAC,MAAK,GAAC,KAAK,oC,SACdpD,GAAiB,CAACC,GAAoBj9B,GACtC,WTzEK24B,GSyEcA,CACjB,QAASv/B,EACT,OAAQ4jC,EACR,oBAAqBpE,EACrB,oBAAqBt5B,EACrB,iBAAkBhH,AAAAA,GAAU6kC,EAA4B7kC,GACxD,iBAAkB0H,C,OAM9B,EEpjBA,IAAMqgC,GAAU,CAAC,CAAExsC,QAAAA,EAAU,EAAK,CAAE,IAClC,GAAM,CAAED,UAAAA,CAAS,CAAEo7B,YAAAA,EAAc,EAAE,CAAEhlB,UAAAA,EAAY,EAAE,CAAE,CAAGuiB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,sBAAsB,GAAK,CAAC,EAC3G,CAAE,GAAIrV,CAAS,CAAE,CAAG44B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,eAAe,GAAK,CAAC,EAEtE,CAACs3B,EAAWC,EAAa,CAAGxpB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,GACrCsV,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IAEXh5B,EAAYwS,AAAAA,GAAQumB,EAASxmB,GAAgB,eAAe,CAACC,IAE7D06B,EAAiB3pC,AAAAA,IACrB0pC,EAAa1pC,EACf,EAEM4pC,EAAiB,CAACC,EAAc,EAAE,GAAK,CAACA,EAAY,QAAQ,CAAC,mBAE7DC,EAAO,CACX,CACE,QAAS,mBACT,gBAAiB,IACf,WAAC,WAAQ,UAAU,8C,SAChB3R,C,EAGP,EACA,CACE,QAAS,aACT,gBAAiB,IAAMt7B,GAAwBC,EAAWC,EAAWN,EAAWO,EAClF,EACA,CACE,QAAS,YACT,gBAAiB,KACf,IAAM+sC,EAAS52B,EAAU,MAAM,CAAC62B,AAAAA,GAAYA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAU,IAAI,AAAD,IAAM,SACzDC,EAAmB92B,EAAU,MAAM,CAAC62B,AAAAA,GAAYA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAU,IAAI,AAAD,IAAM,SACzE,MAEI,YAAC,WAAQ,UAAU,8C,UAEfpxC,MAAM,OAAO,CAACua,IAAcA,AAAqB,IAArBA,EAAU,MAAM,EAC1CjW,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,+DAIJ6sC,EAAO,MAAM,CAAG,GACd,YAAC,OAAI,UAAU,O,UACb,WAAC,MAAG,UAAU,wC,SAAwC,Q,GACtD,WAAC,MAAG,UAAU,gB,SAEVA,EAAO,GAAG,CAAC,CAAC,CAAE,IAAKG,CAAQ,CAAE,YAAaC,CAAgB,CAAE,MAAOC,CAAU,CAAE,GAC7E,YAAC,MAA0B,UAAU,O,UACnC,WAAC,KACC,UAAU,iBACV,KAAMR,EAAeM,GAAY,CAAC,oCAAoC,EAAEA,EAAS,CAAC,CAAGA,EACrF,OAAO,S,SAENE,C,GAEF,MACAD,E,EATMA,G,MAkBnBF,EAAiB,MAAM,CAAG,GACxB,YAAC,OAAI,UAAU,O,UACb,WAAC,MAAG,UAAU,wC,SAAwC,oB,GACtD,WAAC,MAAG,UAAU,gB,SAEVA,EAAiB,GAAG,CAAC,CAAC,CAAE,IAAKJ,CAAW,CAAE,YAAaQ,CAAmB,CAAE,MAAOC,CAAa,CAAE,GAChG,YAAC,MAA6B,UAAU,O,UACtC,WAAC,KACC,UAAU,iBACV,KAAMT,EACN,OAAO,S,SAENS,C,GAEF,MACAD,E,EATMA,G,QAoB7B,CACF,EACD,CAEK,CAAEE,gBAAAA,EAAkB,IAAM,IAAI,CAAE,CAAGT,CAAI,CAACL,EAAU,CACxD,MACE,YAAC,W,UAEGzsC,EACE,YAAC,MAAG,UAAU,mD,UACZ,WAAC,MAAG,UAAU,qB,SACZ,WAAC,QAAK,UAAU,2B,KAElB,WAAC,MAAG,UAAU,sB,SACZ,WAAC,QAAK,UAAU,2B,KAElB,WAAC,MAAG,UAAU,qB,SACZ,WAAC,QAAK,UAAU,2B,QAIpB,WAAC,MAAG,UAAU,mD,SAEV8sC,EAAK,GAAG,CAAC,CAAC,CAAEU,QAAAA,CAAO,CAAEv1B,SAAAA,EAAW,EAAK,CAAE,CAAEjV,IACvC,WAAC,MAAiB,UAAW8d,KAAW,SAAU,CAAE,qBAAsB7I,CAAS,G,SACjF,WAAC,UACC,KAAK,SACL,MAAOA,EAAW,CAAE,cAAe,OAAQ,QAAS,KAAM,EAAI,CAAC,EAC/D,QAAS,IAAM00B,EAAe3pC,GAC9B,UAAW8d,KAAW,CACpB,0BAA2B2rB,IAAczpC,EACzC,wCAAyCypC,IAAczpC,CACzD,EAAG,yD,SAEFwqC,C,IAVIA,G,GAkBnB,WAAC,OAAI,UAAU,2B,SACb,WAAC,O,SACED,G,OAKX,CAIAf,CAAAA,GAAQ,SAAS,CAAG,CAClB,QAAS5xB,GAAAA,IAAIA,AACf,E,kB7H3JA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAuB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACxF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,kRACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAU,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC3E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,EAAG,0KACL,KCRA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAiB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAClF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,EAAG,iUACL,KCRA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAa,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC9E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,6LACH,SAAU,SACZ,K,gCCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAc,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC/E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,2TACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAmB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACpF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,wKACH,SAAU,SACZ,K,kByHmDA,GAvDsB,KACpB,IAAMpJ,EAAUwuB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACVxH,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IAEXgV,EAAuB/U,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MAEvBE,EAAyBn0B,AAAAA,GAAU+zB,EAASxmB,GAAgB,sBAAsB,CAACvN,IACnF29B,EAA8B1+B,AAAAA,GAAQ80B,EAASxmB,GAAgB,2BAA2B,CAACtO,EAAM8N,IACjGmnB,EAAsB,CAAC19B,EAAUmP,IAAYouB,EAASxmB,GAAgB,mBAAmB,CAAC/W,EAAUmP,IAiB1G,MACE,WAAC,OAAI,UAAU,4G,SACb,YAAC,OAAI,UAAU,uF,UACb,WAAC,OAAI,UAAU,wF,SACb,WAACsjC,GAAAA,CAAqBA,CAAAA,CAAC,UAAU,4B,KAEnC,WAAC,MAAG,UAAU,sD,SAAsD,gB,GACpE,WAAC,KAAE,UAAU,0C,SAA0C,mH,GAEvD,YAAC,OAAI,UAAU,8D,UACb,WAAC,UACC,KAAK,SACL,QAAS,IAAM/U,EAAoB,IACnC,UAAU,gG,SACX,wB,GAGD,WAAC,UACC,KAAK,SACL,QAlCc,KACtB,GAAM,CACJl0B,OAAAA,CAAM,CAAEo0B,UAAAA,CAAS,CAAEn1B,KAAAA,CAAI,CAAEiqC,QAAAA,CAAO,CACjC,CAAGF,EACAhpC,GACFm0B,EAAuBn0B,GACvB+M,EAAQ,IAAI,CAACqnB,IACJ8U,EACTn8B,EAAQ,IAAI,CAACm8B,GAEbvL,EAA4B1+B,GAE9Bi1B,EAAoB,GACtB,EAsBU,UAAU,8G,SACX,qB,UAOX,ExH3DA,SAAS,KAAa,MAAO,IAAWzzB,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAiInR,OA/H4BrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACpF,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,KAAM,UACN,EAAG,6YACL,EAAC,EAAI,IAAO,IAAkB,gBAAmB,CAAC,IAAK,CACrD,OAAQ,gCACV,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,MAAO,QACP,OAAQ,IACR,EAAG,OACH,EAAG,GACH,KAAM,OACN,GAAI,KACN,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,0lBACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,ogLACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,SAAU,UACV,EAAG,glEACH,SAAU,SACZ,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,qGACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,8IACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,OACN,EAAG,iJACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,0qMACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,SAAU,UACV,EAAG,2rBACH,SAAU,SACZ,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,UACR,YAAa,MACb,EAAG,uHACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,iCACR,YAAa,KACb,EAAG,oEACL,GAAE,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CACjE,KAAM,UACN,EAAG,2jCACL,EAAC,EAAI,IAAY,IAAuB,gBAAmB,CAAC,SAAU,CACpE,GAAI,OACJ,GAAI,GACJ,EAAG,EACH,KAAM,SACR,EAAC,EAAI,IAAa,IAAwB,gBAAmB,CAAC,SAAU,CACtE,GAAI,QACJ,GAAI,GACJ,EAAG,EACH,KAAM,SACR,EAAC,EAAIlR,IAAaA,CAAAA,GAAwB,gBAAmB,CAAC,SAAU,CACtE,GAAI,QACJ,GAAI,GACJ,EAAG,EACH,KAAM,SACR,EAAC,EAAIC,IAAaA,CAAAA,GAAwB,gBAAmB,CAAC,SAAU,CACtE,GAAI,OACJ,GAAI,MACJ,EAAG,IACH,KAAM,SACR,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,KAAmB,gBAAmB,CAAC,iBAAkB,CACvH,GAAI,2BACJ,GAAI,QACJ,GAAI,QACJ,GAAI,MACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,UAAW,UACX,YAAa,CACf,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,KACR,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,KACR,UAAW,SACb,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,UACX,YAAa,CACf,IAAkB,gBAAmB,CAAC,SAAU,CAC9C,GAAI,2BACJ,MAAO,QACP,OAAQ,OACR,EAAG,OACH,EAAG,OACH,0BAA2B,OAC3B,YAAa,gBACf,EAAgB,gBAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,gBAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,OAAQ,YACR,OAAQ,2CACV,GAAiB,gBAAmB,CAAC,WAAY,CAC/C,GAAI,KACN,GAAiB,gBAAmB,CAAC,iBAAkB,CACrD,aAAc,KAChB,GAAiB,gBAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,gBAAmB,CAAC,gBAAiB,CACpD,OAAQ,kEACV,GAAiB,gBAAmB,CAAC,UAAW,CAC9C,IAAK,qBACL,OAAQ,8BACV,GAAiB,gBAAmB,CAAC,UAAW,CAC9C,GAAI,gBACJ,IAAK,+BACL,OAAQ,OACV,IAAG,GChIH,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAmB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACpF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,qTACH,SAAU,SACZ,KwHTau0C,GAAc,CAAC5/B,EAAUiF,EAAQ,IAAI,IAChD,IAAM46B,EAAgBtf,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,EAAOvgB,GAE7B6P,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACRgwB,EAAc,OAAO,CAAG7/B,CAC1B,EAAG,CAACA,EAAS,EAEb6P,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,GAAI5K,AAAU,OAAVA,EACF,OAGF,IAAMpN,EAAKioC,YAAY,IAAMD,EAAc,OAAO,GAAI56B,GAEtD,MAAO,IAAM86B,cAAcloC,EAC7B,EAAG,CAACoN,EAAM,CACZ,ECRM+6B,GAAoB,CAAC,CAAEC,cAAAA,EAAgB,IAAI,CAAE,IACjD,IAAMzV,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IAEXyV,EAAwB,IAAM1V,EAASxmB,GAAgB,qBAAqB,IAE5Em8B,EAAmB,KACvB,IAAMttC,EAAM,IAAIC,OAAO,OAAO,GACxBstC,EAAU,IAAIttC,KAAKmtC,GAAe,OAAO,GAE/C,OADiBG,EAAUvtC,CAE7B,EAEM,CAACwtC,EAAWC,EAAa,CAAGprB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAASirB,AAAqB,EAArBA,IAAyB,WAAa,YAC3E,CAACl7B,EAAOs7B,EAAS,CAAGrrB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAASirB,AAAqB,EAArBA,IAAyB,KAAO,KAEnEP,GAAY,KACV,IAAMY,EAAWL,IACbK,EAAW,IACbF,EAAa,YACbC,EAAS,OAGX,IAAIE,EAAQvtC,KAAK,KAAK,CAAEstC,EAAY,MAAyB,MACzDvtC,EAAUC,KAAK,KAAK,CAAEstC,EAAY,KAAoB,KACtDxtC,EAAUE,KAAK,KAAK,CAAEstC,EAAY,IAAc,KAEhDC,EAAQ,IAAIA,CAAAA,EAAQ,CAAC,CAAC,EAAEA,EAAM,CAAC,AAAD,EAC9BxtC,EAAU,IAAIA,CAAAA,EAAU,CAAC,CAAC,EAAEA,EAAQ,CAAC,AAAD,EACpCD,EAAU,IAAIA,CAAAA,EAAU,CAAC,CAAC,EAAEA,EAAQ,CAAC,AAAD,EAEpCA,GAAW,GAAGstC,EAAa,CAAC,EAAEG,EAAM,CAAC,EAAExtC,EAAQ,CAAC,EAAED,EAAQ,CAAC,CACjE,EAAGiS,GAEH,IAAMy7B,EAAiBC,AAAAA,IACrB,IAAMC,EAAgBD,EAAO,KAAK,CAAC,IACnC,MACE,WAAC,OAAI,UAAU,mC,SACZC,EAAc,GAAG,CAAC,CAACC,EAAW7rC,IAC7B,WAAC,QAAK,UAAW,CAAC,+FAA+F,EAAEA,AAAU,IAAVA,EAAc,gBAAkB,GAAG,CAAC,CAAC,C,SAAG6rC,C,KAInK,EAEMC,EAAmBT,EAAU,KAAK,CAAC,KAQzC,MANAxwB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACU,aAAdwwB,GAEJH,GACF,EAAG,CAACG,EAAU,EAGZ,YAAC,OAAI,UAAU,8E,UACb,WAAC,OAAI,UAAU,uE,SACb,WAACU,GAAoBA,CAAC,UAAU,0B,KAElC,WAAC,MAAG,UAAU,wD,SAAyD7uC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,8D,GACzE,WAAC,WAAQ,UAAU,O,SAEf4uC,EAAiB,GAAG,CAAC,CAACE,EAAkBhsC,KAEtC,IAAMisC,EAAyBjsC,IAAU8rC,EAAiB,MAAM,CAAG,EACnE,MACE,YAAC,OAAI,UAAU,mC,UACb,YAAC,OAAI,UAAU,4C,UACXJ,EAAeM,GACjB,WAAC,KAAE,UAAU,yB,SAA0BE,AANrB,CAAC,QAAS,UAAW,UAAU,AAMK,CAAClsC,EAAM,A,MAE7D,CAACisC,GAA0B,WAAC,OAAI,UAAU,qC,SAAqC,G,KAGvF,E,KAKV,CAEAjB,CAAAA,GAAkB,SAAS,CAAG,CAC5B,cAAe7uB,GAAAA,MAAMA,AACvB,ExH1FA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAuB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACxF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,yNACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAsB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACvF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,0RACH,SAAU,SACZ,KwHPMgwB,GAAoB,CAAC,CACzBxkC,SAAAA,EAAW,EAAE,CAAEykC,YAAAA,EAAc,EAAE,CAAEC,UAAAA,EAAY,CAAC,CAAEC,UAAAA,EAAY,EAAE,CAAE9gC,WAAAA,EAAa,EAAE,CAChF,GAEG,YAAC,OACC,UAAU,OACV,MAAO,CACL,UAAW,CAAC,MAAM,EAAE6gC,EAAU,CAAC,CAAC,CAChC,gBAAiB,UAEnB,EACA,QAAQ,cACR,KAAK,OACL,MAAM,6B,UAEN,YAAC,KAAE,OAAO,uB,UACR,WAAC,QACC,MAAM,SACN,OAAO,UACP,UAAU,iBACV,KAAK,O,GAEP,WAAC,QACC,EAAE,mNACF,KAAK,S,GAEP,WAAC,QACC,EAAE,mPACF,KAAK,S,GAEP,WAAC,QACC,EAAE,gPACF,KAAK,S,GAEP,WAAC,QACC,EAAE,iPACF,KAAK,S,GAEP,WAAC,QACC,EAAE,0GACF,KAAK,S,GAEP,WAAC,QACC,EAAE,maACF,KAAK,S,GAEP,WAAC,QACC,EAAE,oWACF,KAAK,S,GAEP,WAAC,QACC,EAAE,kRACF,KAAK,S,GAEP,WAAC,QACC,EAAE,+hBACF,KAAK,S,GAEP,WAAC,QACC,EAAE,ifACF,KAAK,S,GAEP,WAAC,QACC,EAAE,kQACF,KAAK,S,GAEP,WAAC,QACC,EAAE,06BACF,KAAK,S,GAEP,WAAC,QACC,EAAE,0aACF,KAAK,S,GAEP,WAAC,QACC,EAAE,mHACF,KAAK,S,GAEP,WAAC,QACC,EAAE,qaACF,KAAK,S,GAEP,WAAC,QACC,EAAE,2KACF,KAAK,S,GAEP,WAAC,QACC,EAAE,0HACF,KAAK,S,GAEP,WAAC,QACC,EAAE,gWACF,KAAK,S,GAEP,WAAC,QACC,EAAE,8eACF,KAAK,S,GAEP,WAAC,QACC,EAAE,4JACF,KAAK,S,GAEP,WAAC,QACC,EAAE,qQACF,KAAK,S,GAEP,WAAC,QACC,EAAE,0QACF,KAAK,S,GAEP,WAAC,QACC,EAAE,oFACF,KAAK,S,GAEP,WAAC,QACC,EAAE,otBACF,KAAK,S,GAEP,WAAC,QACC,EAAE,2QACF,KAAK,S,GAEP,WAAC,QACC,EAAE,wJACF,KAAK,S,GAEP,WAAC,QACC,EAAE,s8PACF,KAAK,S,GAEP,WAAC,QACC,UAAU,6BACV,KAAK,UACL,SAAS,WACT,MAAO,CAAE,WAAY,KAAM,EAC3B,WAAW,WACX,SAAS,UACT,cAAc,M,SAEd,WAAC,SACC,EAAE,WACF,EAAE,U,SAED,CAAC,WAAW,EAAEC,EAAU,SAAS,EAAE9gC,EAAW,CAAC,A,KAGpD,WAAC,QACC,UAAU,6BACV,KAAK,UACL,SAAS,WACT,MAAO,CAAE,WAAY,KAAM,EAC3B,WAAW,WACX,SAAS,UACT,cAAc,M,SAEd,WAAC,SACC,EAAE,WACF,EAAE,U,SACH,iC,KAKH,YAAC,QACC,EAAE,SACF,EAAE,MACF,KAAK,UACL,SAAS,UACT,MAAM,MACN,MAAO,CAAE,WAAY,KAAM,EAC3B,WAAW,WACX,SAAS,UACT,cAAc,M,UAEd,WAAC,SACC,cAAY,O,SAEX4gC,C,GAEH,YAAC,S,UACE,IAAI,W,MAIT,WAAC,QACC,EAAE,MACF,UAAU,iBACV,KAAK,UACL,SAAS,UACT,MAAM,OACN,WAAW,SACX,MAAO,CAAE,WAAY,KAAM,EAC3B,WAAW,UACX,SAAS,UACT,cAAc,M,SAEd,WAAC,SACC,EAAE,IACF,WAAW,S,SAEVzkC,C,KAGL,WAAC,QACC,EAAE,8FACF,KAAK,S,GAEP,WAAC,QACC,EAAE,gRACF,KAAK,S,GAEP,WAAC,QACC,EAAE,iQACF,KAAK,S,GAEP,WAAC,QACC,EAAE,qoBACF,KAAK,S,GAEP,WAAC,QACC,EAAE,gbACF,KAAK,S,GAEP,WAAC,QACC,EAAE,gfACF,KAAK,S,GAEP,WAAC,QACC,EAAE,8PACF,KAAK,S,GAEP,WAAC,QACC,EAAE,6VACF,KAAK,S,GAEP,WAAC,QACC,EAAE,iQACF,KAAK,S,GAEP,WAAC,QACC,EAAE,wgBACF,KAAK,S,GAEP,WAAC,QACC,EAAE,+aACF,KAAK,S,GAEP,WAAC,QACC,EAAE,qtBACF,KAAK,S,GAEP,WAAC,QACC,EAAE,8VACF,KAAK,S,GAEP,WAAC,QACC,EAAE,gfACF,KAAK,S,GAEP,WAAC,QACC,EAAE,4PACF,KAAK,S,GAEP,WAAC,QACC,EAAE,4oBACF,KAAK,S,GAEP,WAAC,QACC,EAAE,6cACF,KAAK,S,GAEP,WAAC,QACC,EAAE,+PACF,KAAK,S,GAEP,WAAC,QACC,EAAE,maACF,KAAK,S,GAEP,WAAC,QACC,EAAE,uWACF,KAAK,S,GAEP,WAAC,QACC,EAAE,siBACF,KAAK,S,GAEP,WAAC,QAAK,EAAE,kDAAkD,KAAK,S,GAC/D,WAAC,QACC,EAAE,0HACF,KAAK,S,GAEP,WAAC,QACC,EAAE,ycACF,KAAK,S,GAEP,WAAC,QACC,EAAE,+PACF,KAAK,S,GAEP,WAAC,QACC,EAAE,kfACF,KAAK,S,GAEP,WAAC,QACC,EAAE,2oBACF,KAAK,S,GAEP,WAAC,QACC,EAAE,gfACF,KAAK,S,GAEP,WAAC,QACC,EAAE,kRACF,KAAK,S,GAEP,WAAC,QACC,EAAE,+VACF,KAAK,S,GAEP,WAAC,QACC,EAAE,ifACF,KAAK,S,GAEP,WAAC,QACC,EAAE,0iBACF,KAAK,S,GAEP,WAAC,QACC,EAAE,iWACF,KAAK,S,GAEP,WAAC,QACC,EAAE,gaACF,KAAK,S,GAEP,WAAC,QACC,EAAE,iCACF,OAAO,0BACP,YAAY,U,GAEd,WAAC,QACC,EAAE,4aACF,KAAK,S,GAEP,WAAC,QACC,EAAE,6eACF,KAAK,S,GAEP,WAAC,QACC,EAAE,0PACF,KAAK,S,GAEP,WAAC,QACC,EAAE,kWACF,KAAK,S,GAEP,WAAC,QACC,EAAE,mQACF,KAAK,S,GAEP,WAAC,QACC,EAAE,ihBACF,KAAK,S,GAEP,WAAC,QACC,EAAE,6aACF,KAAK,S,GAEP,WAAC,QACC,EAAE,ktBACF,KAAK,S,GAEP,WAAC,QACC,EAAE,iWACF,KAAK,S,GAEP,WAAC,QACC,EAAE,weACF,KAAK,S,GAEP,WAAC,QACC,EAAE,qaACF,KAAK,S,GAEP,WAAC,QACC,EAAE,+SACF,KAAK,S,GAEP,WAAC,QACC,EAAE,yKACF,KAAK,S,GAEP,WAAC,QACC,EAAE,gbACF,KAAK,S,GAEP,WAAC,QACC,EAAE,gRACF,KAAK,S,GAEP,WAAC,QACC,EAAE,6PACF,KAAK,S,GAEP,WAAC,QACC,EAAE,4eACF,KAAK,S,GAEP,WAAC,QACC,EAAE,2GACF,KAAK,S,GAEP,WAAC,QACC,EAAE,0eACF,KAAK,S,GAEP,WAAC,QACC,EAAE,ieACF,KAAK,S,GAEP,WAAC,QACC,EAAE,0eACF,KAAK,S,GAEP,WAAC,QACC,EAAE,iRACF,KAAK,S,GAEP,WAAC,QACC,EAAE,gWACF,KAAK,S,GAEP,WAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,omBACF,KAAK,S,GAEP,WAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,+lBACF,KAAK,S,GAEP,WAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,2vBACF,KAAK,S,GAEP,WAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,mVACF,KAAK,S,GAEP,WAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,+cACF,KAAK,S,GAEP,WAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,ieACF,KAAK,S,GAEP,WAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,geACF,KAAK,S,GAEP,WAAC,QACC,EAAE,oMACF,KAAK,S,GAEP,WAAC,QACC,EAAE,mPACF,KAAK,S,GAEP,WAAC,QACC,EAAE,4OACF,KAAK,S,GAEP,WAAC,QACC,EAAE,mPACF,KAAK,S,GAEP,WAAC,QACC,EAAE,+jEACF,KAAK,S,GAEP,WAAC,QACC,EAAE,svEACF,KAAK,S,GAEP,WAAC,QACC,EAAE,s3EACF,KAAK,S,GAEP,WAAC,QACC,EAAE,w0EACF,KAAK,S,GAEP,WAAC,QACC,EAAE,qmFACF,KAAK,S,GAEP,WAAC,QACC,EAAE,q/GACF,KAAK,S,GAEP,WAAC,QACC,EAAE,m0CACF,KAAK,S,GAEP,WAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,m+CACF,KAAK,S,GAEP,WAAC,QACC,EAAE,oPACF,OAAO,UACP,YAAY,S,GAEd,WAAC,QACC,EAAE,oMACF,OAAO,0BACP,YAAY,U,MAGhB,YAAC,Q,UACC,YAAC,UACC,GAAG,iBAAiB,EAAE,IAAI,EAAE,IAC5B,MAAM,SAAS,OAAO,UACtB,YAAY,iBACZ,0BAA0B,O,UAE1B,WAAC,WAAQ,aAAa,IAAI,OAAO,oB,GACjC,WAAC,iBACC,GAAG,cAAc,KAAK,SACtB,OAAO,4CAA4C,OAAO,W,GAE5D,WAAC,eACD,WAAC,kBAAe,aAAa,G,GAC7B,WAAC,iBACC,KAAK,SACL,OAAO,iE,GAET,WAAC,WAAQ,KAAK,SAAS,IAAI,qBAAqB,OAAO,wB,GACvD,WAAC,iBACC,GAAG,cAAc,KAAK,SACtB,OAAO,4CAA4C,OAAO,W,GAE5D,WAAC,YAAS,GAAG,G,GACb,WAAC,kBAAe,aAAa,G,GAC7B,WAAC,iBACC,KAAK,SACL,OAAO,iE,GAET,WAAC,WAAQ,KAAK,SAAS,IAAI,yBAAyB,OAAO,wB,GAC3D,WAAC,WACC,KAAK,SACL,GAAG,gBACH,IAAI,yBACJ,OAAO,O,MAGX,YAAC,kBACC,GAAG,oBACH,GAAG,UACH,GAAG,UACH,GAAG,SACH,GAAG,UACH,cAAc,iB,UAEd,WAAC,QACC,UAAU,UACV,YAAY,G,GAEd,WAAC,QAAK,OAAO,WAAW,UAAU,S,GAClC,WAAC,QAAK,OAAO,WAAW,UAAU,S,GAClC,WAAC,QAAK,OAAO,IAAI,UAAU,UAAU,YAAY,G,MAEnD,YAAC,kBACC,GAAG,oBACH,GAAG,UACH,GAAG,UACH,GAAG,UACH,GAAG,UACH,cAAc,iB,UAEd,WAAC,QAAK,UAAU,UAAU,YAAY,G,GACtC,WAAC,QAAK,OAAO,WAAW,UAAU,S,GAClC,WAAC,QAAK,OAAO,WAAW,UAAU,S,GAClC,WAAC,QAAK,OAAO,IAAI,UAAU,UAAU,YAAY,G,WAS3DwkC,CAAAA,GAAkB,SAAS,CAAG,CAC5B,SAAUt0B,GAAAA,MAAMA,CAChB,UAAWA,GAAAA,MAAMA,CACjB,UAAWsE,GAAAA,MAAMA,CACjB,WAAYtE,GAAAA,MAAMA,CAClB,YAAaA,GAAAA,MAAMA,AACrB,EC/lBA,IAAM00B,GAA0B,CAAC,CAC/BC,wBAAAA,EAA0B9vC,AAAAA,GAAKA,CAAC,CACjC,IACC,IAAM84B,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACXgX,EAAe/W,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACf/tB,EAAW+tB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACX,CAAE,MAAO0W,CAAW,CAAE,CAAG1W,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,eAAe,GAAK,CAAC,EAC3E,CAACk6B,EAAWK,EAAa,CAAGxsB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,GACrC,CAACysB,EAAmBC,EAAqB,CAAG1sB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IACrD,CAAC2sB,EAAyBC,EAA2B,CAAG5sB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IAEjE,CAAC6sB,EAAiBC,EAAmB,CAAG9sB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAASusB,GAAgB9kC,GAEjEwI,EAA2B,CAAC3U,EAAawP,IAAawqB,EAASxmB,GAAgB,kBAAkB,CAACxT,EAAawP,IAE/GiiC,EAAmBR,IAAiBM,GAAmBA,EAAgB,MAAM,CAAG,GAAKF,EAErFK,EAAwB1xC,AAAAA,IAC5BoxC,EAAqB,IACrBE,EAA2B,IAC3BE,EAAmBxxC,GAAeuxC,EACpC,EAEM,CAAET,UAAAA,CAAS,CAAE9gC,WAAAA,CAAU,CAAE,CAAG4B,KAElC,MACE,WAAC,WAAQ,UAAU,6D,SACjB,YAAC,OAAI,UAAU,4C,UACZu/B,EACC,YAAC,OAAI,UAAU,wG,UACb,WAAC,MAAG,UAAU,qD,SAAqD,kC,GACnE,WAAC,KAAE,UAAU,uD,SAAuD,oE,GACpE,YAAC,OAAI,UAAU,a,UACb,WAAC,UACC,KAAK,SACL,QAASH,EACT,UAAU,0G,SAETtvC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,kB,GAEL,WAAC,UACC,KAAK,SACL,QAAS,IAAM0vC,EAAqB,IACpC,UAAU,uH,SAET1vC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,c,SAKT,YAAC,OAAI,UAAU,gF,UACb,WAAC,OAAI,UAAU,6C,SACb,YAAC,UACC,KAAK,SACL,QAAS,IAAM0vC,EAAqB,IACpC,UAAU,sE,UAEV,WAAChL,GAAAA,CAAeA,CAAAA,CAAC,UAAU,wB,GAA2B,O,KAI1D,YAAC,OAAI,UAAU,yD,UACb,WAAC,MAAG,UAAU,oD,SAAoD,kC,GAClE,WAAC,KAAE,UAAU,uD,SAAuD,qE,GACpE,YAAC,SAAM,QAAQ,wBAAwB,UAAU,e,UAC/C,WAAC,QAAK,UAAU,oC,SAAoC,W,GACpD,WAAC,SACC,MAAOmL,EACP,SAAU,CAAC,CAAE,OAAQ,CAAEtyC,MAAAA,CAAK,CAAE,CAAE,GAAKuyC,EAAmBvyC,GACxD,GAAG,wBACH,UAAU,+DACV,KAAK,M,GAEP,WAAC,SAAM,UAAU,0B,SAA0B,W,MAG7C,WAAC,OAAI,UAAU,c,SACb,YAAC,SAAM,QAAQ,QAAQ,UAAU,0C,UAC/B,WAAC,SACC,KAAK,GACL,GAAG,QACH,KAAK,WACL,UAAU,SACV,eAAgBoyC,EAChB,SAAU,IAAMC,EAA2B,CAACD,E,GAE9C,WAAC,KAAE,UAAU,O,SACV3vC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,wF,QAIT,WAAC,OAAI,UAAU,a,SACb,WAAC,UACC,KAAK,SACL,SAAU,CAAC+vC,EACX,QAAS,IAAM98B,EAAyB48B,EAAiBG,GACzD,UAAWpvB,KACT,CACE,aAAc,CAACmvB,EACf,sBAAuB,CAACA,CAC1B,EAAG,0G,SAGJ/vC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,a,WAOb,YAAC,OAAI,UAAU,2B,UACb,YAAC,OACC,UAAU,0H,UAEV,WAAC,OAAI,UAAU,6E,SACb,WAAC,MAAG,UAAU,yB,SAA0BA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,U,KAG5C,WAAC,OAAI,UAAU,wD,SACb,WDgeCivC,GCheiBA,CAChB,UAAWE,EACX,UAAWC,EACX,WAAY9gC,EACZ,SAAUuhC,EACV,YAAa,CAAC,EAAEX,EAAY,CAAC,A,QAKnC,YAAC,OAAI,UAAU,kE,UACb,WAAC,UACC,KAAK,SACL,QAAS,IAAMM,EAAaL,EAAY,IACxC,aAAW,W,SAEX,WAACc,GAAwBA,CAAC,UAAU,wB,KAEtC,WAAC,OAAI,UAAU,gC,GACf,WAAC,UACC,KAAK,SACL,QAAS,IAAMT,EAAaL,EAAY,IACxC,aAAW,U,SAEX,WAACe,GAAuBA,CAAC,UAAU,wB,eAOjD,CAIAb,CAAAA,GAAwB,SAAS,CAAG,CAClC,wBAAyB/zB,GAAAA,IAAIA,AAC/B,E,8CChKO,IAAM60B,GAAc,AAAC/lC,IAC1B,GAAM,CACJ0S,MAAAA,CAAK,CACLme,YAAAA,CAAW,CACXmV,eAAAA,CAAc,CACd/b,QAAAA,CAAO,CACP,KAAM8T,CAAI,CACVkI,SAAAA,CAAQ,CACRC,eAAAA,CAAc,CACdC,qBAAAA,CAAoB,CACrB,CAAGnmC,EAKEomC,EAAuBr1B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAGo1B,EAAsBE,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAoB,CACxEH,eAAAA,EACAD,SAAAA,CACF,IAEMK,EAAgBv1B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAGw1B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CACpCN,SAAAA,CACF,IAEA,MACE,YAAC,OAAI,UAAU,0E,UACZvlB,AAdW,CAAC,CAACqd,GAeZ,WAAC,OAAI,UAAWqI,E,SACd,WAACrI,EAAAA,CAAK,UAAWuI,C,KAGrB,YAAC,OAAI,UAAU,e,UACb,WAAC,MAAG,UAAWv1B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAG6O,GAAAA,CAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAAA,IAAyB,CAAE,0C,SAA4ClN,C,GACxF8zB,AApBgB,CAAC,CAAC3V,GAqBjB,WAAC,KAAE,UAAW9f,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAG6O,GAAAA,CAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,IAAwB,CAAE,4C,SAA8CiR,C,MAG7F,WAAC/G,GAAAA,CAAMA,CAAAA,CACL,UAAW9Y,GAAAA,CAASA,CACpB,WAAW,YACX,QAAO,GACP,aAAW,eACX,IAAKg1B,EACL,QAAS/b,EACT,UAAU,S,KAIlB,CAEA8b,CAAAA,GAAY,YAAY,CAAGU,GAAAA,EAAuBA,C,mzBC/C3C,IAAMC,GAAe,AAAC1mC,IAC3B,GAAM,CACJ0X,UAAAA,CAAS,CAAEnG,SAAAA,CAAQ,CACpB,CAAGvR,EADsB7O,EAAAA,A,6XACtB6O,EAAAA,CADF0X,YAAWnG,W,EAGPmR,EAAgBikB,GAAAA,QAAAA,CAAAA,OAAgB,CAACp1B,GAAU,MAAM,CAACsR,AAAAA,GAAS,CAAC,CAACA,GAE7D+jB,EAAqBlkB,GAAiBA,EAAc,MAAM,CAM1DmkB,EAAiBD,EAAa,EAEpC,MACE,WAAC,eACKz1C,GAAAA,CACJ,UAAW4f,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAG2G,EACZ,kHACA,CAAE,uBAAwB,CAACmvB,CAAe,EAC1C,CAAE,+BAAgCA,CAAe,G,SAElDnkB,EAAc,GAAG,CAAC,CAACG,EAAOnqB,KAEzB,IAAMzC,EAAM,CAAC,cAAc,EAAEyC,EAAM,CAAC,CAC9BouC,EAAcF,GAAc,GAAKluC,IAAWkuC,EAAa,EAE/D,MACE,WAACxoB,GAAAA,QAAQA,CAAAA,C,SACN2oB,AAAc,OANDlkB,GAMSmkB,AAAAA,CAAAA,EAAAA,GAAAA,YAAAA,AAAAA,EANTnkB,EAMiC,SAC1CkkB,AAPSlkB,EAOC,KAAK,GAClB,UAAWikB,EACP/1B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAGg2B,AATKlkB,EASK,KAAK,CAAC,SAAS,CAAE,4BAC9B9R,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAGg2B,AAVKlkB,EAUK,KAAK,CAAC,SAAS,CAAE,mB,KALvB5sB,EASnB,E,GAGN,E1HnDA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAa,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC9E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,yPACH,SAAU,SACZ,K2HJMgxC,GAAc,AAAC,I,GAAA,CACnBC,OAAAA,EAAS,EAAE,CAAE10B,OAAAA,EAAS,EAAK,CAAEyX,QAAAA,EAAU70B,AAAAA,GAAKA,CAAC,CAAE+xC,eAAAA,EAAiB,IAAM,IAAI,CAAEC,aAAAA,EAAehyC,AAAAA,GAAKA,CAAC,CAClG,GADuG4K,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAtGknC,SAAa10B,SAAgByX,UAAkBkd,iBAA6BC,e,EAE5E,MACE,YAACjK,GAAAA,CAAKA,CAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACJ,KAAM3qB,EACN,QAASyX,EACT,UAAU,8G,EACNjqB,GAAAA,C,UAEJ,WAAC+lC,GAAWA,CACV,MAAOmB,EACP,KAAMG,GACN,eAAe,UACf,QAASpd,C,GAEX,WAACqd,GAAAA,CAASA,CAAAA,C,SACPF,G,GAEH,WAACV,GAAYA,C,SACVS,G,MAIT,CAEAF,CAAAA,GAAY,SAAS,CAAG,CACtB,OAAQ32B,GAAAA,IAAIA,CACZ,QAASY,GAAAA,IAAIA,CACb,OAAQX,GAAAA,MAAMA,CACd,aAAcW,GAAAA,IAAIA,CAClB,eAAgBA,GAAAA,IAAIA,AACtB,ECAA,IAAIq2B,GAAW,EAmxBf,OAlxBmB,K,IA6CZC,EAoqBqE39B,EACR49B,EAjtBlE,IAAMC,EAAUzjB,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,IACV/c,EAAUwuB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACVxH,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACX,CAACwZ,EAAuBC,EAAyB,CAAGhvB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IAE7D7W,EAAOqsB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACP,CAACyZ,EAAcC,EAAiB,CAAGlvB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,GAC5C0V,EAAyBz9B,AAAAA,GAAWq9B,EAASxmB,GAAgB,sBAAsB,CAAC7W,IAEpF2W,EAAa4mB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,aAAa,EACvD/Z,EAAuBs9B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACvB2Z,EAAmBC,AAAAA,GAAU9Z,EAASxmB,GAAgB,gBAAgB,CAACsgC,IACvEC,EAAwB,CAACt3C,EAAU+S,IAAawqB,EAASxmB,GAAgB,qBAAqB,CAAC/W,EAAU+S,IAEzGyD,EAAsBinB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,sBAAsB,EACzE,CAAE,GAAIikB,CAAe,CAAE,MAAOoZ,CAAS,CAAE,CAAG/gC,EAClDoM,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,IACD,KACLw0B,EAAiB,GACnB,EACC,EAAE,EAELzR,GAAAA,oBAA0B,CAAC,KACzByR,EAAiB,GACnB,EAAG,CAACjZ,EAAgB,EAEpB,IAAMyP,EAAiB,IAAMrQ,EAASxmB,GAAgB,cAAc,IAC9DyF,EAAiBrN,AAAAA,GAAWouB,EAASxmB,GAAgB,cAAc,CAAC5H,IACpEmM,EAAsCtb,AAAAA,GAAYu9B,EAASxmB,GAAgB,mCAAmC,CAAC/W,IAE/GyW,EAAegnB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,eAAe,EAE3DgwB,EAAgBzzB,AAAsB,iBAAtBA,EAAa,IAAI,CACjC,CACJ,SAAU+gC,EAAuB,CAAC,CAAC,CACnC,KAAMjnC,CAAW,CAClB,CAAGkG,GAAgB,CAAC,EACf,CAAE,SAAUghC,CAAqB,CAAE,CAAGD,EAEtC1vC,EAAW21B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,WAAW,EACnDw9B,EAAwBzqC,GAAyBnF,GAEjD6vC,EAAaD,AAAiC,IAAjCA,EAAsB,MAAM,EAC7CA,AAAiC,IAAjCA,EAAsB,MAAM,EACzBb,AAAAA,CAAAA,AAAwB,OAAxBA,CAAAA,EAAAA,CAAqB,CAAC,EAAE,AAAD,GAAvBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0B,EAAE,AAAD,IAAM1Y,EAGhC,CAAE,MAAO6L,CAAW,CAAE,GAAI9yB,CAAc,CAAE,CAAGT,EAC7CzG,EAAeytB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACf/tB,EAAW+tB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MAEXC,EAAsB,CAAC19B,EAAUmP,IAAYouB,EAASxmB,GAAgB,mBAAmB,CAAC/W,EAAUmP,IACpGg4B,EAA8B1+B,AAAAA,IAClC,GAAIoO,EAAY,CACd6mB,EAAoB,GAAM,CAAEj1B,KAAAA,CAAK,GACjC,MACF,CACA80B,EAASxmB,GAAgB,2BAA2B,CAACtO,EAAM8N,GAC7D,EACM,CACJ,GAAIzR,CAAS,CACb,UAAW8yC,CAAc,CACzB,WAAY,CACV,aAAcC,CAAU,CACzB,CACDrpC,SAAAA,CAAQ,CACRwO,SAAAA,EAAW,EAAK,CAChB,kBAAmBg2B,EAAgB,EAAE,CACrC,WAAYvjC,CAAS,CACtB,CAAG+G,GAAuB,CAAC,EAEtB,CAAE3I,SAAAA,EAAW,EAAK,CAAEiqC,iBAAAA,CAAgB,CAAEppC,MAAAA,CAAK,CAAE,CAAGF,GAAY,CAAC,EAC7D,CAACupC,EAAaC,EAAe,CAAG/vB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,KACzC,CAACgwB,EAA0BC,EAA4B,CAAGjwB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IACnE,CAACkwB,EAAYC,EAAc,CAAGnwB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IACvC,CAACowB,EAAeC,EAAiB,CAAGrwB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,IACpC,CAACswB,GAAoBC,GAAsB,CAAGvwB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAClD,AAACpa,EAAkC,CACjC,OAAQ,GAAM,UAAW,GAAM,iBAAkB,GAAO,MAAOvE,SAASwuC,EAAkB,GAC5F,EAFY,CAAE,UAAW,EAAM,GAKjCnS,GAAAA,oBAA0B,CAAC,KACzB6S,GAAsB,AAAC3qC,EACnB,CACA,OAAQ,GACR,UAAW,GACX,iBAAkB,EACpB,EALgC,CAAE,UAAW,EAAM,EAMvD,EAAG,CAAC2I,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,EAAE,CAAC,EAE5B,IAAM7E,GAAyBnE,GAA0B1F,EAAU0O,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,UAAU,EAC5FiiC,GAAsBhsC,GAAuB3E,GAC7CqF,GAAkB,CAACwE,IAA0B,CAAC8mC,GAC9ChrC,GAAmB+I,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,UAAU,CAElD,CAAE,MAAO7G,EAAY,CAAE,SAAUtC,GAAkB,EAAE,CAAE,CAAGvF,EAAS,IAAI,CAAC8E,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAAMa,KAAqB,CAAC,EAEzHirC,GAAyBxrC,GAAoBC,GAAiBrI,EAAWuI,IAEzEsrC,GAAqB,KACzB,IAAMC,EAAW/F,YAAY,KAC3B7vC,GAAiB8B,GAAW,IAAI,CAAC+zC,AAAAA,IAI/B,GAHIjC,GAAW,KAAK9D,cAAc8F,GAElChC,KACIj2C,MAAM,OAAO,CAACk4C,IAAmBA,AAA0B,IAA1BA,EAAe,MAAM,CAAQ,OAElE,GAAM,CAAE,MAAOC,CAAU,CAAEC,QAAAA,EAAU,EAAE,CAAE,QAASC,CAAM,CAAE,CAAGH,EAC7D,GAAIC,AAAe33C,KAAAA,IAAf23C,EAA0B,OAE9B,IAAMp8B,EAAQpT,SAASwvC,EAAY,IAEnC,GAAI,AAAiB,UAAjB,OAAOp8B,EAAoB,OAG/B,IAAMu8B,EAASv8B,GAAS,GACpBu8B,GACFz8B,EAAe,CACbE,MAAAA,EACA5X,UAAAA,EACAoS,eAAAA,EACAzJ,iBAAAA,GACAkE,uBAAAA,GACA,SAAU,KACR2J,EAAoCpE,GACpCshC,GAAsB,qBACjBD,IAAAA,CACH,UAAW,GACX,iBAAkB,GAClBU,OAAAA,EACAv8B,MAAAA,EACAq8B,QAAAA,EACAC,OAAAA,C,IAEFlG,cAAc8F,EAChB,CACF,EAEJ,GAAG,KAAK,CAAC,KACP9F,cAAc8F,GACd59C,OAAO,QAAQ,CAAC,MAAM,EACxB,EACF,EAAG,IACL,EAEA4nB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,IAAMthB,EAAUf,AAAAA,IACd,GAAI,CACF,GAAM,CAAE,KAAM24C,EAAU,EAAE,CAAE,CAAG34C,EAC/B,GAAI,AAAmB,UAAnB,OAAO24C,GAAwBA,EAAQ,QAAQ,CAAC,aAAc,CAChE,GAAM,EAAGzM,EAAO,CAAGyM,EAAQ,KAAK,CAAC,KACjClB,EAAevL,EACjB,KAA8B,UAAnB,OAAOyM,GAAwBA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,MAAM,AAAD,IAAM,wBAA0BA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,MAAM,AAAD,IACpG9B,EAAiB,IACjBoB,GAAsB,qBAAKD,IAAAA,CAAoB,UAAW,GAAM,iBAAkB,E,IAClFI,KAEJ,CAAE,MAAOzmC,EAAO,CACd5C,QAAQ,GAAG,CAAC,QAAS4C,EACvB,CACF,EAEA,OADAlX,OAAO,gBAAgB,CAAC,UAAWsG,GAC5B,IAAMtG,OAAO,mBAAmB,CAAC,UAAWsG,EACrD,EAAG,CAACi3C,GAAmB,EAEvB5S,GAAAA,oBAA0B,CAAC,KACrB3oB,GACFw7B,GAAsB,CAAE,UAAW,EAAM,EAE7C,EAAG,CAACx7B,EAAS,EAEb,GAAM,CACJi8B,OAAAA,EAAM,CACNv8B,MAAAA,EAAK,CACLs8B,OAAAA,EAAM,CACNG,UAAAA,EAAS,CACTJ,QAAAA,GAAU,EAAE,CACZK,iBAAAA,GAAmB,EAAI,CACxB,CAAGb,GAEEc,GAAyB,KAC7BzL,IAGA,IAAMlhC,EAAwBC,AADN7E,EAAS,GAAG,CAAC8E,AAAAA,GAAWA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,QAAQ,EACnB,MAAM,CAAC,CAACC,EAAQC,IAAUD,EAAO,MAAM,CAACC,GAAQ,EAAE,EAC1FwsC,EAAkB5sC,EAAsB,IAAI,CAACxM,AAAAA,I,IAAasM,E,MAAD,CAACA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAiB,OAAjBA,CAAAA,EAAAA,EAAS,QAAQ,AAAD,GAAhBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmB,QAAQ,AAAD,GAAKtM,C,GAG/Fy9B,EAAuB4b,AAFQ7sC,EAAsB,IAAI,CAACxM,AAAAA,I,IAAYsM,E,MAAD,CAACA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAiB,OAAjBA,CAAAA,EAAAA,EAAS,QAAQ,AAAD,GAAhBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmB,QAAQ,AAAD,GAAKtM,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,UAAU,AAAD,IAAMuN,E,IAE5E6rC,EACnD,EAoBME,GAAe,CACnB,CACE,KAAM,WAAY,UAAW,iBAAkB,KAAMC,EACvD,EACA,CAAE,KAAM,IAAK,UAAW,UAAW,KAAMC,EAAY,EACrD,CAAE,KAAM,WAAY,UAAW,iBAAkB,KAAMC,EAAmB,EAC1E,CAAE,KAAM,YAAa,UAAW,kBAAmB,KAAMC,EAAe,EACzE,CAWKC,GAAc1B,GAAc,CAACgB,GA4B7B1Q,GAAqB30B,GAAsB,CAAE,WAAY,OAAQhM,SAAAA,EAAU,UAAW8vC,CAAe,GACrG/O,GAAyB/0B,GAAsB,CAAE,WAAY,WAAYhM,SAAAA,EAAU,UAAW8vC,CAAe,GAC7G,CAAE,GAAIz0C,EAAa,CAAE8P,gBAAAA,EAAe,CAAE,CAAG6mC,AAvCf,MAC9B,IAAM7pC,EAAmBhG,OAAO,MAAM,CAAC+F,GAAc,SAAS,CAAC+pC,AAAAA,GAAQA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,WAAW,AAAD,IAAMtjC,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAc,IAAI,AAAD,GAE9G,MAAO,CACLxD,gBAFsBhJ,OAAO,MAAM,CAAC+F,EAAa,CAACC,EAAiB,CAGnE,GAAIhG,OAAO,IAAI,CAAC+F,EAAa,CAACC,EAAiB,AACjD,CACF,KAkCM+pC,GAA6B/vC,OAAO,MAAM,CAAC+F,GAAc,IAAI,CAACE,AAAAA,GAAeA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAa,SAAS,AAAD,IAAMgH,GACxG+iC,GAAgC,CAACD,IAA8BvC,GAAyB,CAACT,EACzFkD,GAAoCf,IAAa,CAACC,IAAqBY,CAAAA,IAA8B,CAACrC,CAAS,EAE/GwC,GAAqB,CAACpyC,EAAOqyC,EAAU,EAAK,GAOhD,AAAIA,EAAgBC,AAHE,EACpB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACvB,EACiC,CAACtyC,EAAM,CACjCuyC,AAPQ,EACb,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,GAC7B,EAKa,CAACvyC,EAAM,CAgBhBwyC,GAAmBC,AAbDzB,GAAQ,GAAG,CAAC,CAAC0B,EAAcC,KACjD,IAAMC,EAAwBF,AAAAA,CAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAc,OAAO,AAAD,GAAK,EAAC,EAAG,SAAS,CAACrmB,AAAAA,GAAUA,IAAWqmB,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAc,MAAM,AAAD,GACvGG,EAAgBp3C,EAAe,CAACw1C,GAAO,CAAC0B,EAAI,CAE5CG,EAAqBV,GAAmBS,EAAe,IAC7D,MAAQ,qBACHH,GAAAA,CACH,IAAKC,EAAM,EACXG,mBAAAA,EACAF,qBAAAA,EACA,QAASR,GAAmBQ,KAA0BC,C,EAE1D,GACyC,MAAM,CAACE,AAAAA,GAAU,CAACA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,OAAO,AAAD,GAuBnEC,GAAoB5tC,IAAmBwqC,EACvCqD,GAA0BC,AAtBW,MACzC,GAAI,CAACj+B,EAAU,OAGf,GAAM,CAAEhV,SAAAA,EAAW,EAAE,CAAE,CAAG4O,AADH9O,EAAS,IAAI,CAAC8E,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAAM4J,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,UAAU,AAAD,IAClD,CAAC,EACvC0kC,EAAkBlzC,EAAS,SAAS,CAAC9H,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAAMsW,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,EAAE,AAAD,GACtF2kC,EAAmBnzC,EAAS,KAAK,CAAC,EAAGkzC,GAEvCE,EAAaD,EAAiB,SAAS,CAACj7C,AAAAA,I,IAAWsK,E,MAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAmB,OAAnBA,CAAAA,EAAAA,EAAS,UAAU,AAAD,GAAlBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB,IAAI,AAAD,IAAM,M,GACrF4wC,EAAaA,AAAe,KAAfA,EAAoBA,EAAa,EAAI,EAElD,GAAM,CAACJ,EAAwB,CAAGG,EAAiB,KAAK,CAACC,GAAY,MAAM,CAACl7C,AAAAA,I,IAAWsK,EAA4CgC,E,MAA5ChC,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAmB,OAAnBA,CAAAA,EAAAA,EAAS,UAAU,AAAD,GAAlBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB,IAAI,AAAD,IAAM,WAAa,CAACgC,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAiB,OAAjBA,CAAAA,EAAAA,EAAS,QAAQ,AAAD,GAAhBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmB,QAAQ,AAAD,C,UAC7J,AAAIwuC,EAAgCA,EAELhzC,EAC5B,MAAM,CAAC9H,AAAAA,I,IAAWsK,E,MAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAmB,OAAnBA,CAAAA,EAAAA,EAAS,UAAU,AAAD,GAAlBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAqB,IAAI,AAAD,IAAM,M,GAChD,IAAI,CAACtK,AAAAA,I,IAAYsM,E,MAAD,CAACA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAiB,OAAjBA,CAAAA,EAAAA,EAAS,QAAQ,AAAD,GAAhBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmB,QAAQ,AAAD,C,EAGhD,KAIMoK,GAAiB9O,EAAS,IAAI,CAAC8E,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAAMa,IAkBhE,MACE,yB,UACE,YAAC,OAAI,UAAU,8E,UACZtN,GAAwB,WAACk7C,GAAaA,CAAAA,GAEpCr+B,GACC,IAAGg2B,EAAc,CAAC,CAAC,MAAM,CAAG,EAAI,WN7R7BD,GM6R+CA,CAAC,cAAeC,C,GAChE,YAAC,OAAI,UAAU,0F,UACb,WAAC,OAAI,UAAU,+H,SACb,WAACP,GAAAA,CAAqBA,CAAAA,CAAC,UAAU,yD,KAEnC,WAAC,MAAG,UAAU,8D,SAA8D,yE,GAE1EuI,IACE,WAACxc,GAAAA,EAAIA,CAAAA,CAEH,GAAIh3B,GAAe,CAAC,CAAC,EAAE+I,EAAY,CAAC,EAAEqG,MAAAA,GAAAA,KAAAA,EAAAA,GAAgB,IAAI,CAAC,CAAC,EAAEokC,MAAAA,GAAAA,KAAAA,EAAAA,GAAyB,IAAI,CAAC,CAAC,E,SAE7F,YAAC,UACC,KAAK,SACL,UAAW,IAAMrd,EAAuBqd,IACxC,QAAS,IAAMrd,EAAuBqd,IACtC,UAAU,iG,UAET/1C,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,6BACH,WAACgd,GAAAA,CAAgBA,CAAAA,CAAC,UAAU,c,OAV1B,sB,IAoBf+0B,AAAAA,CAAAA,GAA0Ba,GAAc,CAAC76B,GAAY,CAACnP,GAAa,EAACsqC,GAAegB,IAAaC,EAAe,CAAC,GAC/G,WAAC,OAAI,UAAU,qB,SACb,WAACkC,GAAAA,CAAOA,CAAAA,CACN,UAAU,sEACV,KAAK,OACL,YAAY,IACZ,YAAY,S,KAOjBrB,GAEG,WJlQC3F,GIkQuBA,CACtB,eAAgBp9B,EAChB,wBAtIkB,KAC9B+/B,EAAyB,IACzBK,EAAsBpgC,EAAgB,KACpC+/B,EAAyB,GAC3B,EACF,EAkIc,yBAA0BA,C,GAI5BiD,IACE,YAAC,WACC,UACE,CAAC,sEAAsE,EACrEjC,EAA2B,iDAAmD,kBAC9E,C,UAGJ,YAAC,OAAI,UAAU,mD,UAET,CAACI,GACCY,CAAAA,GACE,WAAC,OAAI,UAAU,gB,SAEXP,GACEf,EACE,WA9KE,IAEhC,WAAChM,GAAWA,CAAC,UAAU,4B,GA4KQ4P,CAAAA,GACCC,AArNP,MAE3B,GAAM,CAAE9xC,WAAAA,CAAU,CAAE,CAAG+xC,AADG3zC,EAAS,IAAI,CAAC8E,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAAMa,KACvB,CAAC,EACvC,CAAEuU,MAAAA,CAAK,CAAE,CAAGtY,GAAc,CAAC,SACjC,AAAIsY,EAEA,WAAC,OACC,QAAQ,OACR,IAAI,gBACJ,MAAO,IACP,OAAQ,IACR,IAAKA,C,GAIJ,IACT,KAuMgC,wB,SACE,WAAC,OAAI,UAAU,uE,SACb,WAAC05B,GAAAA,CAAeA,CAAAA,CAAC,UAAU,2B,SAOrC,WAAC,OAAI,UAAU,qE,SACb,WAACC,GAAeA,CAAC,UAAU,yB,MAMjCtD,EACE,YAAC,OACC,UAAU,4CACV,MAAO,CAAE,QAAS,UAAW,E,UAE7B,YAAC,OAAI,UAAU,qC,UAEb,YAAC,OAAI,UAAU,+E,UACb,WAAC,MAAG,UAAU,8C,SAA8C,wB,GAC5D,WAAC,UAAO,KAAK,SAAS,QAAS,IAAMC,IAAoB,UAAU,8C,SACjE,WAACj4B,GAAAA,CAASA,CAAAA,CAAAA,E,MAGd,YAAC,OACC,UAAW5b,AAAAA,GAAKA,EAChB,UAAU,6B,UAEV,WAAC,MAAG,UAAU,yC,SACX,CAAC,UAAU,EAAE4zC,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAe,IAAI,AAAD,IAAM,QAAU,QAAU,cAAc,IAAI,CAAC,A,GAE/E,WAAC,OAAI,UAAU,a,SAEXmB,GAAa,MAAM,CAACoC,AAAAA,GAClB,AAAIvD,CAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAe,IAAI,AAAD,IAAM,SAAWuD,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAa,IAAI,AAAD,IAAM,WAAU,GAEhE,CAACA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAa,QAAQ,AAAD,GAC3B,GAAG,CAAC,CAAC,CAAE9pC,KAAAA,CAAI,CAAEs7B,KAAAA,CAAI,CAAErmB,UAAAA,CAAS,CAAE,GAC/B,WAAC,UACC,QAAS,IAAMnT,GAAkB9B,EAAMumC,EAAe5zC,AAAAA,GAAKA,EAAGyS,GAC9D,KAAK,SACL,UAAW,CAAC,EAAE6P,EAAU,uDAAuD,CAAC,CAChF,MAAO,CAAE,gBAAiB,SAAU,E,SAEpC,WAACqmB,EAAAA,CAAK,UAAU,8B,cAQ5B,WAAC,KAAE,UAAU,oFAAoF,MAAO,CAAE,SAAU,QAAS,cAAe,UAAW,E,SAAG,sM,MAM5J,yB,UACE,YAAC,OAAI,UAAU,wD,UACb,WAAC,MACC,UAAW,CAAC,0DAA0D,EAAE6L,GAAS,OAAS,eAAe,CAAC,C,SAExGA,GAAS,kBAAoB,8B,GAEjC,YAAC,QAAK,UAAW,CAAC,4EAA4E,EAAEA,GAAS,QAAU,GAAG,CAAC,C,UAEnHA,IACGP,CAAAA,GAEGf,EAEK,CAAC,oCAAoC,EAAEhoC,GAAa,yBAAyB,EAAE7H,EAAS,MAAM,CAAG,EAAI,CAAC,IAAI,EAAE+zC,AAxKhI33B,CAAAA,AAAAA,IACrB,OAAQA,GACN,KAAK,EACH,MAAO,KACT,MAAK,EACH,MAAO,KACT,MAAK,EACH,MAAO,OACT,MAAK,EACH,MAAO,MAGX,CACF,GA2JsKpc,EAAS,MAAM,EAAE,QAAQ,CAAC,CAAG,SAAS,WAAW,EAAEkiC,EAAY,4BAA4B,EAAEA,EAAY,4BAA4B,CAAC,CAElQ,yB,UACE,WAAC,K,SAAE,6C,GACH,WAAC,K,SAAE,4D,MAKT,yB,UACE,WAAC,KAAE,UAAU,wB,SACV,CAAC,uBAAuB,EAAEttB,GAAM,MAAM,CAAC,A,GAE1C,WAAC,KAAE,UAAU,8B,SACVzX,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,2C,GAEL,WAAC,KAAE,UAAU,c,SACVA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,gE,OAOb,CAACg0C,IACC,WAAC,KAAE,UAAU,Y,SACV,CAAC,uBAAuB,EAAEv8B,GAAM,MAAM,CAAC,A,SAMlD,WAAC,OAAI,UAAU,uC,SACb,wB,SAEK,AAACu8B,GAmCAP,GACE,wB,SACE,YAAC,OAAI,UAAW,CAAC,gCAAgC,EAAEqC,GAAoB,uCAAyC,YAAY,CAAC,C,UAEvH,EAACA,IAAqB,CAACpD,CAAS,GAAM,CAACzN,GACvC,YAAC,OACC,UAAU,sD,UAGR,CAAC6Q,IACC,YAAC,UACC,KAAK,SACL,QAAS,IAAMzC,EAAiB,CAAE,KAAM,QAAS7oC,UAAAA,CAAU,GAC3D,UAAU,mI,UAEV,WAACqsC,GAAoBA,CAAC,UAAU,c,GAAiB,kB,GAMrD,CAACnE,GACC,WAAC,UACC,KAAK,SACL,QAAS,K,IAA+CoE,E,OAAzCvsC,GAAoBC,EAAWC,EAAU,AAAiDD,OAAjDssC,CAAAA,EAACj0C,AAAAA,CAAAA,GAAY,EAAC,EAAG,IAAI,CAAC8E,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAAM6C,EAAS,GAA1DssC,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA6D,KAAK,C,EAC1H,UAAU,mI,SACX,oB,MAUXhB,GACE,WAAC,UACC,KAAK,SACL,QAAS,IAAMjrC,GAA0B3M,GAAeuM,EAAUs6B,EAAa9yB,GAC/E,UAAU,qH,SAETjS,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,4B,GAGL,WAAC,UACC,KAAK,SACL,QAASo0C,GACT,UAAU,sH,SACX,mB,GAKF0B,IACC,YAAC,UACC,KAAK,SACL,QAAS,IAAMzC,EAAiB,CAAE,KAAM,cAAen1C,cAAAA,GAAe8P,gBAAAA,EAAgB,GACtF,UAAU,wI,UAEV,WAAC6oC,GAAoBA,CAAC,UAAU,c,GAAiB,yB,QAOzD,WAAC,UACC,KAAK,SACL,QAASzC,GACT,UAAU,sH,SACX,mB,GAzGH,YAAC,OAAI,UAAU,mC,UAEXpB,EACE,YAAC,OAAI,UAAU,+D,UACb,WAAC,Q,SACEhzC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,oB,GAEL,WAAC,Q,SACGs1C,GAAiB,GAAG,CAACO,AAAAA,GAAU,CAAC,EAAEA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,GAAG,CAAC,EAAE,CAAC,C,MAIvD,WAAC,UACC,KAAK,SACL,QAAS,IAAM5C,EAA4B,IAC3C,UAAU,wC,SACX,a,GAKL,WAAC,UACC,KAAK,SACL,QAAS,KACPM,GAAsB,CAAE,UAAW,EAAM,GACzCrB,EAAiBD,EAAe,GAChCkB,EAAc,GAChB,EACA,UAAU,sH,SAETnzC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,c,gBAwFzB,WD9nBHqxC,GC8nBeA,CACV,OAAQ,CAAC,wBAAwB,EAAEiB,EAAU,CAAC,CAC9C,KAAK,SACL,OAAQ,IACR,QAAS,IAAMW,EAA4B,IAC3C,UAAW,CAAC,wBAAwB,EAAEX,EAAU,CAAC,CACjD,aAAc,IACZ,WAAC,OACC,UAAU,4B,SAEV,WAAC,MAAG,UAAU,kD,SAEVgD,GAAiB,GAAG,CAACyB,AAAAA,IACnB,GAAM,CACJj6B,MAAAA,CAAK,CAAEk6B,QAAAA,CAAO,CAAEpB,mBAAAA,CAAkB,CAAEF,qBAAAA,CAAoB,CACzD,CAAGqB,EACE,CAACE,EAAgB,GAAG17C,EAAK,CAAGuhB,EAAM,KAAK,CAAC,KACxCo6B,EAAsB37C,EAAK,IAAI,CAAC,KACtC,MACE,YAAC,MAAuB,UAAU,8C,UAChC,WAAC,QAAK,UAAU,+C,SAAgD07C,C,GAChE,YAAC,OAAI,UAAU,sB,UACb,WAAC,KAAE,UAAU,uC,SAAwCC,C,GAEnDF,EAAQ,GAAG,CAAC,CAAC7nB,EAAQrsB,KAEnB,GAAM,CAACq0C,EAAc,GAAGC,EAAa,CAAGjoB,EAAO,KAAK,CAAC,KACrD,MACE,WAAC,KACC,UAAWvO,KAAW,6BAA8B,CAClD,6BAA8B9d,IAAU4yC,EACxC,4BAA6B5yC,IAAU8yC,CACzC,G,SAECwB,EAAa,IAAI,CAAC,I,EAGzB,G,KAlBGL,MAAAA,EAAAA,KAAAA,EAAAA,EAAU,GAAG,CAuB1B,E,KAKR,eAAgB,IACd,yB,UACE,YAAC,OAAI,UAAU,yC,UACb,WAACM,GAAAA,CAAoBA,CAAAA,CAAC,UAAU,S,GAChC,WAAC,QAAK,UAAU,U,SAAU,4F,MAI5B,WAACnjB,GAAAA,CAAMA,CAAAA,CACL,WAAW,UACX,QAAQ,SACR,QAAS,KACPqf,GAAsB,CAAE,UAAW,EAAM,GACzCrB,EAAiBD,EAAe,GAChCkB,EAAc,IACdF,EAA4B,GAC9B,E,SAECjzC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,c,MAIT,OAAQgzC,C,MAOjBJ,GAAc,CAAChqC,GACd,WAAC,UACC,IAAKkpC,EACL,MAAM,eACN,OAlee,KACzBqB,EAAc,IACdhB,EAAiB,IACb,CAAC1oC,GACHrM,GAAW,CACT,MAAO,EACP,OAAQ,QACR,QAAS,UACT,WAAYyC,CACd,EAEJ,EAwdY,IAAKoH,KACD,GAAGlR,OAAO,QAAQ,CAAC,MAAM,6BAAiCke,MAAAA,EAAAA,KAAAA,EAAAA,AAAiB,OAAjBA,CAAAA,EAAAA,EAAM,WAAW,AAAD,GAAhBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmB,QAAQ,kBAAkBg+B,GAAc,CACrH,CAAC,wBAAwB,EAAEW,EAAW,UAAU,EAAEf,MAAAA,EAAAA,KAAAA,EAAAA,AAAiB,OAAjBA,CAAAA,EAAAA,EAAM,WAAW,AAAD,GAAhBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmB,QAAQ,CAAC,eAAe,EAAEI,EAAa,CAAC,CACjH,MAAO,CACL,QAAS2C,GAAc,QAAU,OACjC,MAAOA,GAAc,OAAS,MAC9B,OAAQ,OACR,UAAWA,GAAc,CAAC,EAAEvwC,SAASyuC,EAAa,IAAM,GAAG,EAAE,CAAC,CAAG,KACnE,C,GAKH,CAACkC,IAAkC,EAACd,IAAae,EAA+B,GAC/E,WAAC,WAAQ,UAAU,wB,SACjB,YAAC,OACC,UAAW,CAAC,wCAAwC,EAAE5a,AArazCn/B,EAqa8D,uBAAyB,GAAG,CAAC,C,UAExG,YAAC,UACC,KAAK,SACL,SAAU,CAAC0oC,GACX,MAAO,AAACA,GAAiE,CAAC,EAAzC,CAAE,cAAe,OAAQ,QAAS,CAAE,EACrE,QAAS,IAAM1B,EAA4B,IAC3C,UACE,CAAC,2HAA2H,EAC1H,AAAC0B,GAAiD,sCAAxB,sBAAwB,CAClD,C,UAGJ,WAACc,GAAAA,CAAeA,CAAAA,CAAC,UAAU,gB,GAAmB,kB,GAGhD,YAAC,UACC,KAAK,SACL,SAAU,CAAClB,GACX,MAAO,AAACA,GAA6D,CAAC,EAAzC,CAAE,QAAS,EAAG,cAAe,MAAO,EACjE,QAAS,IAAMtB,EAA4B,IAC3C,UACE,CAAC,2HAA2H,EAC1H,AAACsB,GAA6C,sCAAxB,sBAAwB,CAC9C,C,UAEL,cAEC,WAACxmB,GAAAA,CAAgBA,CAAAA,CAAC,UAAU,gB,cAOxC,YAAC,WAAQ,UAAU,e,UACjB,WAAC,MAAG,UAAU,2E,SACZ,WAAC,MAAG,UAAU,yE,SAAyE,U,KAIzF,WAAC,OAAI,UAAU,iC,GACf,WAAC,OAAI,UAAU,yB,SAAyB,oL,QAMhD,ECzsBA,GArG4B,KAC1B,IAAM1L,EAAUwuB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACVxH,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IAEX11B,EAAW21B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,WAAW,EACnDzD,EAAegnB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,eAAe,EAC3D4zB,EAAkBluC,AAAAA,GAAgB29B,EAASxmB,GAAgB,eAAe,CAACnX,IAC3E+9B,EAAyBz9B,AAAAA,GAAWq9B,EAASxmB,GAAgB,sBAAsB,CAAC7W,IACpF2qC,EAAoB,IAAMtN,EAASxmB,GAAgB,iBAAiB,IAEpE,CAAE,MAAOwlC,CAAiB,CAAE,CAAG9lC,GAAgB,CAAC,EAEhD,CACJsL,MAAAA,CAAK,CAAErY,WAAAA,CAAU,CAAEkB,GAAAA,CAAE,CAAE,WAAY6E,CAAS,CAAE,KAAM+sC,CAAkB,CAAEtc,YAAAA,CAAW,CACpF,CAAGzC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,sBAAsB,GAAK,CAAC,EACvD,CAAErP,KAAAA,EAAO,SAAS,CAAE,CAAGnB,GAAc,CAAC,EAE5CkZ,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACRkrB,EAAgB,UACT,KACLjD,IACAlN,GACF,GACC,EAAE,EAEL/a,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,GAAI,CAAChY,GAAM,CAAC6L,EAAc,OAC1B,GAAM,CAAE,SAAUwzB,CAAc,CAAE,KAAM7hC,CAAU,CAAE,CAAGN,EAAS,IAAI,CAAC8E,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAAM6C,IAAc,CAAC,EAC/G,GAAI,CAACw6B,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAgB,MAAM,AAAD,EAAG,CAC3B,GAAM,CAAE,KAAM15B,CAAW,CAAE,CAAGkG,EAC9BF,EAAQ,IAAI,CAAC/O,GAAe,CAAC,SAAS,EAAE+I,EAAY,CAAC,EAAEnI,EAAW,CAAC,EACrE,CACF,EAAG,CAACwC,EAAG,EAEPgY,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,K,IAMe6rB,EACCC,EACEC,EAP1B,GAAM,CAAE,MAAOh/B,CAAY,CAAE,CAAG7H,EAAS,IAAI,CAAC8E,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAAM6C,IAAc,CAAC,EACpFsS,GAASpS,GAAgB4sC,GAC3B5rC,CAAAA,SAAS,KAAK,CAAG,CAAC,EAAEoR,EAAM,GAAG,EAAEpS,EAAa,GAAG,EAAE4sC,EAAkB,kBAAkB,CAAC,AAAD,EAGvF,IAAMtN,EAAiB,AAAAR,OAAAA,CAAAA,EAAAA,MAAK,GAALA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAQ,QAAQ,CAAC,IAAI,CACtCK,EAAkB,AAAAJ,OAAAA,CAAAA,EAAAA,QAAO,GAAPA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAU,aAAa,CAAC,yBAC1CK,EAAoB,AAAAJ,OAAAA,CAAAA,EAAAA,QAAO,GAAPA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAU,aAAa,CAAC,4BAE9CG,GAAmBG,IAAmBH,EAAgB,IAAI,EAC5DA,CAAAA,EAAgB,IAAI,CAAGG,CAAa,EAGlCF,GAAqB7O,GACvB6O,CAAAA,EAAkB,OAAO,CAAG7O,CAAU,EAGxCllC,OAAO,QAAQ,CAAC,CAAE,IAAK,EAAG,SAAU,QAAS,EAC/C,EAAG,CAAC4P,EAAG,EAEPgY,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,IAAM65B,EAAiB,KACrB,GAAM,CACJ7+B,MAAAA,CAAK,CAAErN,YAAAA,CAAW,CAAEnI,WAAAA,CAAU,CAAEC,YAAAA,CAAW,CAC5C,CAAG3B,KACJ,GAAIkX,AAAU,UAAVA,EAAmB,OACvB,GAAM,CAAE1d,QAAAA,CAAO,CAAE,CAAGiI,GAAyBL,EAAUM,EAAYC,GAC9DnI,EAGMs8C,IAAuBn0C,GAChCs1B,EAAuBz9B,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,SAAS,GAHzCy9B,EAAuB,OACvBpnB,EAAQ,IAAI,CAAC/O,GAAe,CAAC,CAAC,EAAE+I,EAAY,CAAC,EAAEnI,EAAW,CAAC,EAAEC,EAAY,CAAC,GAI9E,EAEA,OADArN,OAAO,gBAAgB,CAAC,WAAYyhD,GAC7B,IAAMzhD,OAAO,mBAAmB,CAAC,WAAYyhD,EACtD,EAAG,CAAC30C,EAAS,EAGb,IAAM/C,EAAU6F,AAAOzJ,KAAAA,IAAPyJ,EAChB,MACE,yB,UAEI7F,EACE,WAAC,OAAI,UAAU,4C,GAEf,WAAC,MAAG,UAAU,sE,SACXgd,C,GAML26B,AAfgB7xC,AAAS,SAATA,EAgBZ,WAAC8xC,GAAUA,CAAAA,GAEX,yB,UACE,WtB6fCnW,GsB7fkBA,CAAC,QAASzhC,C,GAC7B,WViDCwsC,GUjDOA,CAAC,QAASxsC,C,QAMhC,EC5EA,GA1B8B,KAC5B,IAAMwR,EAAUwuB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACVxH,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IAEXof,EAAyBpzC,AAAAA,GAAU+zB,EAASxmB,GAAgB,sBAAsB,CAACvN,IACnFqzC,EAA0B38C,AAAAA,GAAWq9B,EAASxmB,GAAgB,uBAAuB,CAAC7W,IAEtF66B,EAAW0C,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACXqf,EAAiBrf,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,sBAAsB,EACpE6iC,EAAkBtf,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,uBAAuB,EAc5E,MAZA0I,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KAKR,GAJIk6B,IACFvmC,EAAQ,IAAI,CAAC/O,GAAe,aAC5Bo1C,EAAuB,KAErBG,EAAiB,CACnB,GAAM,CAAExsC,YAAAA,CAAW,CAAEnI,WAAAA,CAAU,CAAE,CAAG1B,KACpC6P,EAAQ,IAAI,CAAC/O,GAAe,CAAC,SAAS,EAAE+I,EAAY,CAAC,EAAEnI,EAAW,CAAC,GACnEy0C,EAAwB,GAC1B,CACF,EAAG,CAACC,EAAgBC,EAAiBhiB,EAAS,EAEvC,IACT,EC5BA,GAAeiiB,AAAAA,CAAAA,EAAAA,A,WAAAA,EAAAA,AAAAA,EAAqB,CAClC,SAAU3nC,IACZ,G9HJA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAuB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACxF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,4fACH,SAAU,SACZ,K,mP+HPA,IAAM4nC,GAAW,CAAC,CAChBl7B,MAAAA,EAAQ,EAAE,CAAEorB,KAAAA,EAAO,EAAE,CAAEC,KAAAA,EAAO,EAAK,CAAE8P,cAAAA,EAAgB,EAAE,CAAEn2B,UAAAA,EAAY,EAAE,CACxE,GAEG,YAAC,WACC,UAAW,CAAC,EAAEA,EAAU,iFAAiF,CAAC,C,UAEzGqmB,GACC,WAAC,OAAI,UAAU,QAAQ,MAAO,CAAE,YAAa,KAAM,E,SACjD,WAACA,EAAAA,CAAK,UAAW,CAAC,EAAE8P,EAAc,gBAAgB,CAAC,A,KAGvD,WAAC,MAAG,UAAU,wE,SACXn7B,C,GAEH,WAAC,KAAE,UAAU,wF,SACVorB,C,KAOT8P,CAAAA,GAAS,SAAS,CAAG,CACnB,MAAOr9B,GAAAA,MAAMA,CACb,KAAMA,GAAAA,MAAMA,CACZ,cAAeA,GAAAA,MAAMA,CACrB,UAAWA,GAAAA,MAAMA,CACjB,KAAMD,GAAAA,IAAIA,AACZ,E,4D9HhCA,SAAS,KAAa,MAAO,IAAW1V,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CA0InR,OAxIkBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC1E,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,MAAO,QACP,OAAQ,OACR,EAAG,OACH,EAAG,OACH,KAAM,OACN,OAAQ,UACR,YAAa,MACb,GAAI,KACN,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,GACP,OAAQ,GACR,EAAG,QACH,EAAG,IACH,KAAM,UACN,GAAI,CACN,EAAC,EAAIhR,IAAWA,CAAAA,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,GACP,OAAQ,GACR,EAAG,QACH,EAAG,IACH,KAAM,UACN,GAAI,CACN,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC9D,KAAM,UACN,EAAG,yCACL,EAAC,EAAIC,IAAWA,CAAAA,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,OACP,OAAQ,OACR,EAAG,QACH,EAAG,QACH,OAAQ,UACR,YAAa,MACb,GAAI,KACN,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,yCACL,EAAC,EAAIC,IAAWA,CAAAA,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,OACP,OAAQ,OACR,EAAG,QACH,EAAG,QACH,OAAQ,UACR,YAAa,MACb,GAAI,KACN,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,SAAU,UACV,EAAG,iSACH,SAAU,SACZ,EAAC,EAAIC,IAAWA,CAAAA,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,OACP,OAAQ,OACR,EAAG,QACH,EAAG,OACH,KAAM,UACN,GAAI,IACN,EAAC,EAAI,IAAO,IAAkB,gBAAmB,CAAC,IAAK,CACrD,SAAU,qBACZ,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,OACN,SAAU,UACV,EAAG,uKACH,SAAU,SACZ,GAAE,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CACjE,KAAM,OACN,EAAG,0tBACL,EAAC,EAAIC,IAAQA,CAAAA,GAAmB,gBAAmB,CAAC,IAAK,CACvD,SAAU,UACV,OAAQ,qBACV,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,UACN,SAAU,UACV,EAAG,qJACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,OACR,cAAe,QACf,eAAgB,QAChB,EAAG,qJACL,GAAE,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CACjE,KAAM,UACN,EAAG,iGACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,4JACL,EAAC,EAAI,IAAY,IAAuB,gBAAmB,CAAC,SAAU,CACpE,GAAI,QACJ,GAAI,OACJ,EAAG,MACH,KAAM,SACR,EAAC,EAAI,IAAa,IAAwB,gBAAmB,CAAC,SAAU,CACtE,GAAI,QACJ,GAAI,OACJ,EAAG,MACH,KAAM,MACR,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,KAAmB,gBAAmB,CAAC,WAAY,CACjH,GAAI,eACN,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,OACN,EAAG,oCACL,IAAkB,gBAAmB,CAAC,SAAU,CAC9C,GAAI,gBACJ,MAAO,GACP,OAAQ,GACR,EAAG,QACH,EAAG,OACH,0BAA2B,OAC3B,YAAa,gBACf,EAAgB,gBAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,gBAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,OAAQ,YACR,OAAQ,2CACV,GAAiB,gBAAmB,CAAC,WAAY,CAC/C,GAAI,CACN,GAAiB,gBAAmB,CAAC,iBAAkB,CACrD,aAAc,CAChB,GAAiB,gBAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,gBAAmB,CAAC,gBAAiB,CACpD,OAAQ,2CACV,GAAiB,gBAAmB,CAAC,UAAW,CAC9C,IAAK,qBACL,OAAQ,8BACV,GAAiB,gBAAmB,CAAC,UAAW,CAC9C,GAAI,gBACJ,IAAK,+BACL,OAAQ,OACV,IAAG,GCzIH,SAAS,KAAa,MAAO,IAAWwL,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAmHnR,OAjHuBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC/E,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,MAAO,QACP,OAAQ,QACR,EAAG,OACH,EAAG,OACH,KAAM,OACN,OAAQ,UACR,YAAa,MACb,GAAI,KACN,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,IACP,OAAQ,EACR,EAAG,GACH,EAAG,IACH,KAAM,UACN,GAAI,KACN,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,QACP,OAAQ,QACR,EAAG,OACH,EAAG,OACH,KAAM,UACN,OAAQ,UACR,YAAa,MACb,GAAI,IACN,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC9D,KAAM,UACN,EAAG,kFACL,EAAC,EAAI,IAAY,IAAuB,gBAAmB,CAAC,SAAU,CACpE,GAAI,OACJ,GAAI,OACJ,EAAG,EACH,KAAM,MACR,EAAC,EAAI,IAAa,IAAwB,gBAAmB,CAAC,SAAU,CACtE,GAAI,OACJ,GAAI,OACJ,EAAG,EACH,KAAM,MACR,EAAC,EAAI,IAAa,IAAwB,gBAAmB,CAAC,SAAU,CACtE,GAAI,OACJ,GAAI,OACJ,EAAG,EACH,KAAM,MACR,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,QACP,OAAQ,OACR,EAAG,GACH,EAAG,GACH,KAAM,UACN,GAAI,MACN,EAAC,EAAI,IAAO,IAAkB,gBAAmB,CAAC,IAAK,CACrD,SAAU,4BACZ,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,OACN,SAAU,UACV,EAAG,0KACH,SAAU,SACZ,GAAE,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CACjE,KAAM,OACN,EAAG,yyKACL,EAAC,EAAI,IAAQ,IAAmB,gBAAmB,CAAC,IAAK,CACvD,SAAU,UACV,OAAQ,4BACV,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,UACN,SAAU,UACV,EAAG,qJACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,OACR,cAAe,QACf,eAAgB,QAChB,EAAG,qJACL,GAAE,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,KAAmB,gBAAmB,CAAC,WAAY,CAClH,GAAI,sBACN,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,OACN,EAAG,wCACL,IAAkB,gBAAmB,CAAC,SAAU,CAC9C,GAAI,uBACJ,MAAO,GACP,OAAQ,GACR,EAAG,MACH,EAAG,MACH,0BAA2B,OAC3B,YAAa,gBACf,EAAgB,gBAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,gBAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,OAAQ,YACR,OAAQ,2CACV,GAAiB,gBAAmB,CAAC,WAAY,CAC/C,GAAI,CACN,GAAiB,gBAAmB,CAAC,iBAAkB,CACrD,aAAc,CAChB,GAAiB,gBAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,gBAAmB,CAAC,gBAAiB,CACpD,OAAQ,2CACV,GAAiB,gBAAmB,CAAC,UAAW,CAC9C,IAAK,qBACL,OAAQ,8BACV,GAAiB,gBAAmB,CAAC,UAAW,CAC9C,GAAI,gBACJ,IAAK,+BACL,OAAQ,OACV,IAAG,GClHH,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAuCnR,OArCuBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC/E,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,MAAO,QACP,OAAQ,QACR,EAAG,OACH,EAAG,OACH,KAAM,UACN,OAAQ,UACR,YAAa,MACb,GAAI,KACN,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC9D,KAAM,OACN,OAAQ,UACR,YAAa,MACb,EAAG,6LACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,OAAQ,UACR,YAAa,MACb,EAAG,svBACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,umEACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,uLACL,EAAC,EAAI,IAAY,IAAuB,gBAAmB,CAAC,SAAU,CACpE,GAAI,OACJ,GAAI,QACJ,EAAG,OACH,KAAM,SACR,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,0KACL,EAAC,GCtCD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAmHnR,OAjH2BrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACnF,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQ,IAAO,IAAkB,gBAAmB,CAAC,IAAK,CAC3D,SAAU,UACV,OAAQ,iCACV,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,UACN,SAAU,UACV,EAAG,qJACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,OACR,cAAe,QACf,eAAgB,QAChB,EAAG,qJACL,GAAE,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC/D,MAAO,IACP,OAAQ,IACR,EAAG,KACH,EAAG,KACH,KAAM,UACN,OAAQ,UACR,GAAI,GACN,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC9D,KAAM,UACN,EAAG,+DACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,iEACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,OAAQ,UACR,YAAa,KACb,EAAG,2sBACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,SAAU,UACV,OAAQ,UACR,cAAe,QACf,eAAgB,QAChB,EAAG,+HACH,SAAU,SACZ,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,oEACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,qEACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,OAAQ,UACR,YAAa,KACb,EAAG,wpBACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,SAAU,UACV,OAAQ,UACR,cAAe,QACf,eAAgB,QAChB,EAAG,sKACH,SAAU,SACZ,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,kEACL,EAAC,EAAI,IAAY,IAAuB,gBAAmB,CAAC,OAAQ,CAClE,KAAM,UACN,EAAG,kEACL,EAAC,EAAI,IAAY,IAAuB,gBAAmB,CAAC,OAAQ,CAClE,KAAM,UACN,OAAQ,UACR,YAAa,KACb,EAAG,+sBACL,EAAC,EAAI3Q,IAAYA,CAAAA,GAAuB,gBAAmB,CAAC,OAAQ,CAClE,KAAM,UACN,SAAU,UACV,OAAQ,UACR,cAAe,QACf,eAAgB,QAChB,EAAG,+HACH,SAAU,SACZ,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,KAAmB,gBAAmB,CAAC,SAAU,CAC/G,GAAI,4BACJ,MAAO,GACP,OAAQ,GACR,EAAG,MACH,EAAG,MACH,0BAA2B,OAC3B,YAAa,gBACf,EAAgB,gBAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,gBAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,OAAQ,YACR,OAAQ,2CACV,GAAiB,gBAAmB,CAAC,WAAY,CAC/C,GAAI,CACN,GAAiB,gBAAmB,CAAC,iBAAkB,CACrD,aAAc,CAChB,GAAiB,gBAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,gBAAmB,CAAC,gBAAiB,CACpD,OAAQ,2CACV,GAAiB,gBAAmB,CAAC,UAAW,CAC9C,IAAK,qBACL,OAAQ,8BACV,GAAiB,gBAAmB,CAAC,UAAW,CAC9C,GAAI,gBACJ,IAAK,+BACL,OAAQ,OACV,IAAG,GClHH,SAAS,KAAa,MAAO,IAAWuL,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CASnR,OAPiBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACzE,MAAO,6BACP,KAAM,UACN,QAAS,WACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,EAAG,sbACL,EAAC,G2HWD,GAhBqB,IAEjB,wB,SACE,YAAC,WAAQ,UAAU,0C,UACjB,WAAC8tC,GAAKA,CAAC,UAAU,gC,GACjB,YAAC,OAAI,UAAU,6E,UACb,WAAC,OAAI,UAAU,+D,SAA+D,yJ,GAG9E,WAAC,UAAO,UAAU,2C,SAA2C,gB,MAE/D,WAACA,GAAKA,CAAC,UAAU,qD,QC+BrBniD,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoBsU,QAAQ,GAAG,CAAC,qBARzC,CACvBswB,enCmQaA,GmClQbsN,QpBrBaA,GoBsBb+P,SFhBaA,GEiBbG,MAAKA,GACLC,MAAKA,GACLC,MAAKA,EACP,GAoTA,OAjTgB,KACd,IAAM/f,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACXoP,EAAWnP,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACXqQ,EAAkBluC,AAAAA,GAAgB29B,EAASxmB,GAAgB,eAAe,CAACnX,IAMjF,MAJAgjB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACRkrB,EAAgB,UAClB,EAAG,EAAE,EAGH,yB,UACE,YAAC,WAAQ,UAAU,uE,UACjB,WAAC,OAAI,UAAU,8D,SACb,WAAC,OACC,QAAQ,OACR,IAAKyP,GACL,UAAU,uBACV,MAAO,GACP,OAAQ,GACR,IAAI,0B,KAGR,YAAC,OAAI,UAAU,sD,UACb,WAAC,OACC,QAAQ,OAAO,MAAO,IACtB,OAAQ,IAAK,IAAKC,GAAqB,UAAU,wBACjD,IAAI,4B,GAEN,WAAC,OACC,QAAQ,OACR,IAAKD,GACL,MAAO,IACP,OAAQ,IACR,IAAI,oBACJ,UAAU,iL,GAEZ,WAAC,MAAG,UAAU,kJ,SAAkJ,oE,GAGhK,WAAC,MAAG,UAAU,yH,SAAyH,iB,GAGvI,YAAC,KAAE,UAAU,6K,UAA6K,mCAExL,WAAC,UAAO,UAAU,2B,SAA2B,iC,GAAwC,wGAErF,WAAC,UAAO,UAAU,2B,SAA2B,sB,GAC7C,WAAC,OACC,QAAQ,OACR,I,6vHACA,UAAU,0CACV,MAAO,GACP,OAAQ,GACR,IAAI,4B,MAGR,YAAC,OAAI,UAAU,gB,UACb,WAAC,OAAI,UAAU,6H,SACb,YAAC/e,GAAAA,EAAIA,CAAAA,CACH,GAAIh3B,GAAe,YACnB,QAAS,KACP0H,GAAkB,CAChB,OAAQ,QACR,OAAQ,mBACR,MAAO09B,CACT,EACF,EACA,UAAU,8Q,UAEX,cAEC,YAAC,KAAE,UAAU,kB,UACX,WAAC,QAAK,UAAU,O,SAAO,G,GAAQ,Y,QAKrC,YAAC,OAAI,UAAU,mL,UACb,YAAC,OAAI,UAAU,oJ,UACb,WAAC3L,GAAAA,CAAqBA,CAAAA,CAAC,UAAU,gF,GAAmF,gB,GAGtH,YAAC,OAAI,UAAU,oJ,UACb,WAACwc,GAASA,CAAC,UAAU,qF,GAAwF,e,GAG/G,YAAC,OAAI,UAAU,oJ,UACb,WAAChf,GAAwBA,CAAC,UAAU,8E,GAAiF,S,GAGvH,YAAC,OAAI,UAAU,uI,UACb,WAACif,GAAwBA,CAAC,UAAU,gF,GAAmF,U,SAK7H,WAAC,OAAI,UAAU,6B,SACb,WAAC,OACC,QAAQ,OACR,IAAKC,GACL,UAAU,gFACV,MAAO,IACP,OAAQ,IACR,IAAI,qB,KAGR,WAAC,OACC,QAAQ,OACR,IAAKC,GACL,UAAU,4NACV,MAAO,IACP,OAAQ,IACR,IAAI,oB,SAIV,WAAC,WACC,UAAU,8BACV,MAAO,CACL,WACE,2EACJ,E,SAEA,YAAC,OAAI,UAAU,gC,UACb,WAAC,OAAI,UAAU,gB,SACb,WzB/JGrR,GyB+JGS,CACJ,KAAI,GACJ,MAAM,yBACN,UAAU,kD,KAGd,YAAC,WAAQ,UAAU,oE,UACjB,WpBjKGE,GoBiKKA,CACN,KAAMG,GACN,MAAM,0BACN,KAAK,yJ,GAEP,WpBtKGH,GoBsKKA,CACN,KAAMI,GACN,MAAM,yBACN,KAAK,yK,GAEP,WpB3KGJ,GoB2KKA,CACN,KAAMK,GACN,MAAM,6BACN,KAAK,mL,MAGT,WAACC,GAAqBA,CAAAA,GACtB,WAAC,OAAI,UAAU,+B,QAGnB,WAAC,WAAQ,UAAU,0B,SACjB,YAAC,OAAI,UAAU,gC,UACb,WzB5LKjB,GyB4LCS,CACJ,KAAI,GACJ,MAAM,kBACN,UAAU,kD,GAEZ,WxB5LK5G,GwB4LIA,CACP,KAAI,GACJ,UAAU,gBACV,MAAM,uF,GAER,WAAC,O,SACC,YAAC,OAAI,UAAU,wE,UACb,WAAC,OAAI,UAAU,+D,GACf,WAAC,OAAI,UAAU,4D,GACf,WAAC,OAAI,UAAU,kB,SACb,WAAC,OACC,QAAQ,OACR,IAAKyX,GACL,IAAI,kBACJ,MAAO,IACP,OAAQ,G,KAGZ,YAAC,OAAI,UAAU,kB,UACb,YAAC,OAAI,UAAU,O,UACb,WAAC,UAAO,UAAU,0D,SAA0D,mB,GAG5E,WAAC,KAAE,UAAU,+D,SAA+D,gM,MAO9E,YAAC,OAAI,UAAU,O,UACb,WAAC,UAAO,UAAU,0D,SAA0D,iC,GAG5E,WAAC,KAAE,UAAU,+D,SAA+D,2M,MAO9E,YAAC,OAAI,UAAU,O,UACb,WAAC,UAAO,UAAU,0D,SAA0D,4B,GAG5E,WAAC,KAAE,UAAU,+D,SAA+D,8K,mBAUxF,WAAC,WAAQ,UAAU,yB,SACjB,YAAC,OAAI,UAAU,gC,UACb,YAAC,OAAI,UAAU,gB,UACb,WzB3PGtR,GyB2PGS,CACJ,KAAI,GACJ,MAAM,qBACN,UAAU,kD,GAEZ,WxB3PG5G,GwB2PMA,CACP,KAAI,GACJ,MAAM,mE,MAGV,WAAC,WAAQ,UAAU,G,SACjB,YAACgK,GAAAA,EAAMA,CAAAA,CACL,cAAe,EACf,aAAc,GACd,KAAM,GACN,WAAY,CACV,GAAI,qBACJ,UAAW,GACX,aAAc,CAACroC,EAAOgf,IACb,CAAC,aAAa,EAAEA,EAAU,SAAS,CAAC,AAE/C,EACA,YAAa,CACX,EAAG,CACD,cAAe,EACf,aAAc,EAChB,EAEA,KAAM,CACJ,cAAe,EACf,aAAc,EAChB,CACF,EACA,WAAY,GACZ,QAAS,CAACspB,GAAAA,EAAUA,CAAE3vB,GAAAA,EAAUA,CAAC,C,UAEjC,WAACmwB,GAAAA,EAAWA,CAAAA,CAAC,UAAU,uB,SACrB,WFrRDoM,GEqRUA,CACP,MAAM,SACN,KAAMG,GACN,cAAc,OACd,KAAK,sH,KAGT,WAACvM,GAAAA,EAAWA,CAAAA,CAAC,UAAU,uB,SACrB,WF7RDoM,GE6RUA,CACP,MAAM,gBACN,KAAMI,GACN,cAAc,OACd,KAAK,+K,KAGT,WAACxM,GAAAA,EAAWA,CAAAA,CAAC,UAAU,uB,SACrB,WFrSDoM,GEqSUA,CACP,MAAM,qBACN,KAAMa,GACN,cAAc,OACd,KAAK,4H,KAGT,WAACjN,GAAAA,EAAWA,CAAAA,CAAC,UAAU,uB,SACrB,WF7SDoM,GE6SUA,CACP,MAAM,2BACN,KAAMK,GACN,cAAc,OACd,KAAK,8K,UAKb,WAAC,OAAI,UAAU,wB,QAGnB,WAAC,WAAQ,UAAU,6B,SACjB,YAAC,OAAI,UAAU,gC,UACb,WzBtUK/Q,GyBsUCS,CACJ,UAAU,+EACV,MAAK,GACL,MAAM,iE,GAER,WAAC+Q,GAAYA,CAAAA,G,KAGjB,WAAC1M,GAAkBA,CAAAA,G,EAGzB,E3H9VA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAY,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC7E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,6GACH,SAAU,SACZ,K,kBCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAmB,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACpF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,oIACH,SAAU,SACZ,K,kBCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAe,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAChF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,2bACH,SAAU,SACZ,K,6B0HXO,IAAM2M,GAAqB7zB,AAAAA,GAChC,AAAIA,AAAU,UAAVA,EACK,0BAEF,0BAGI8zB,GAAuB9zB,AAAAA,GAClC,AAAIA,AAAU,UAAVA,EACK,CACL,SAAU,iBACV,YAAa,sDACf,EAEK,CACL,SAAU,cACV,YAAa,wDACf,ECZW+zB,GAAoB,CAAC,CAChCC,UAAAA,CAAS,CACTp3B,UAAAA,CAAS,CACToD,MAAAA,CAAK,CACLi0B,QAAAA,CAAO,CACR,IACC,IAAMC,EAAsBx4B,KAAW,oDACrCkB,EACA,AAACq3B,EAAsC,iBAA5BJ,GAAmB7zB,IAEhC,MACE,WAAC,MAAG,UAAWk0B,E,SACZF,C,EAGP,CAEAD,CAAAA,GAAkB,SAAS,CAAG,CAC5B,UAAWt+B,GAAAA,MAAMA,CACjB,UAAWA,GAAAA,MAAMA,CACjB,MAAOuG,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,CAAC,OAAQ,QAAQ,EAC9B,QAASxG,GAAAA,IAAIA,AACf,EAEAu+B,GAAkB,YAAY,CAAG,CAC/B,UAAW,GACX,UAAW,GACX,MAAO,OACP,QAAS,EACX,EC5BO,IAAMI,GAAiB,CAAC,CAC7B1zC,GAAAA,CAAE,CACFsV,QAAAA,CAAO,CACP8V,WAAAA,CAAU,CACVjP,UAAAA,CAAS,CACToD,MAAAA,CAAK,CACLuF,WAAAA,CAAU,CACV9O,SAAAA,CAAQ,CACT,IACC,IAAM29B,EAAmB14B,KACvB,mEACAmQ,GAAc,iCACdjP,EACA,CACE,gCAAiCoD,AAAU,SAAVA,EACjC,4BAA6BA,AAAU,UAAVA,EAC7B,cAAeA,AAAU,SAAVA,GAAoBuF,AAAe,OAAfA,EACnC,iBAAkBvF,AAAU,UAAVA,GAAqBuF,AAAe,OAAfA,EACvC,gBAAiBA,AAAe,QAAfA,EACjB,mBAAoBA,AAAe,WAAfA,CACtB,GAGF,MACE,WAAC,UACC,KAAK,SACL,UAAW6uB,EACX,QAASr+B,EACT,UAAStV,EACT,SAAUorB,E,SAETpV,C,EAGP,CAEA09B,CAAAA,GAAe,SAAS,CAAG,CACzB,QAAS/9B,GAAAA,IAAIA,CACb,GAAIX,GAAAA,MAAAA,CAAAA,UAAiB,CACrB,WAAYD,GAAAA,IAAIA,CAChB,MAAOwG,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,CAAC,OAAQ,QAAQ,EAC9B,WAAYA,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,CAAC,KAAM,MAAO,SAAS,EACzC,UAAWvG,GAAAA,MAAMA,CACjB,SAAUuB,GAAAA,IAAAA,CAAAA,UAAe,AAC3B,EAEAm9B,GAAe,YAAY,CAAG,CAC5B,QAAS,KAAO,EAChB,WAAY,GACZ,UAAW,GACX,MAAO,OACP,WAAY,IACd,ECnDO,IAAME,GAAe,CAAC,CAC3Bz3B,UAAAA,CAAS,CACT,KAAMqmB,CAAI,CACV,UAAWqR,CAAS,CACpBC,SAAAA,CAAQ,CACRv+B,SAAAA,CAAQ,CACRgK,MAAAA,CAAK,CACN,IACC,IAAMw0B,EAAuB94B,KAC3B,mBACAkB,EACA,CACE,OAAQ23B,AAAa,QAAbA,EACR,OAAQA,AAAa,UAAbA,CACV,EACA,AAAoB,WAApB,OAAOv+B,GAA0B89B,GAAqB9zB,EAAM,CAAChK,EAAW,WAAa,cAAc,EAG/Fy+B,EAAsB/4B,KAAW84B,EAAsB,CAAE,6BAA8B,CAAC,CAACF,CAAU,GACnGI,EAAiBh5B,KAAW84B,EAAsB,CAAE,6BAA8B,CAAC,CAACF,CAAU,GAEpG,MACE,yB,UACGA,GAAa,WAACA,EAAAA,CAAU,UAAWG,C,GACpC,WAACxR,EAAAA,CAAK,UAAWyR,C,KAGvB,CAEAL,CAAAA,GAAa,SAAS,CAAG,CACvB,UAAW5+B,GAAAA,MAAMA,CACjB,KAAMsB,GAAAA,WAAAA,CAAAA,UAAsB,CAC5B,UAAWA,GAAAA,WAAWA,CACtB,SAAUiF,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,CAAC,QAAS,MAAM,EAChC,MAAOA,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,CAAC,OAAQ,QAAQ,EAC9B,SAAUA,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,CAAC,GAAM,GAAO,KAAK,CACrC,EAEAq4B,GAAa,YAAY,CAAG,CAC1B,UAAW,KACX,SAAU,QACV,MAAO,OACP,SAAU,KACV,UAAW,IACb,EC/CO,IAAMM,GAAgB,CAAC,CAC5Bl+B,SAAAA,CAAQ,CACRmG,UAAAA,CAAS,CACTg4B,UAAAA,CAAS,CACV,IACC,IAAMC,EAAkBn5B,KACtBk5B,EAAY,UAAY,UACxB,8BACAh4B,GAGF,MACE,WAAC,QAAK,UAAWi4B,E,SACdp+B,C,EAGP,CAEAk+B,CAAAA,GAAc,SAAS,CAAG,CACxB,SAAU39B,GAAAA,IAAAA,CAAAA,UAAe,CACzB,UAAWvB,GAAAA,MAAMA,CACjB,UAAWD,GAAAA,IAAIA,AACjB,EAEAm/B,GAAc,YAAY,CAAG,CAC3B,UAAW,GACX,UAAW,EACb,EC3BO,IAAMG,GAAgB,CAAC,CAC5BvvB,WAAAA,CAAU,CACVtd,KAAAA,CAAI,CACJ2U,UAAAA,CAAS,CACV,IACC,IAAMm4B,EAAkBr5B,KAAW,8DACjCkB,EACA,CACE,0BAA2B2I,AAAe,SAAfA,EAC3B,0BAA2BA,AAAe,SAAfA,EAC3B,2BAA4BA,AAAe,UAAfA,CAC9B,GAEF,MACE,WAAC,QAAK,UAAWwvB,E,SACd9sC,C,EAGP,CAEA6sC,CAAAA,GAAc,SAAS,CAAG,CACxB,KAAMr/B,GAAAA,MAAMA,CACZ,WAAYuG,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,CAAC,OAAQ,OAAQ,QAAQ,EAC3C,UAAWvG,GAAAA,MAAMA,AACnB,EAEAq/B,GAAc,YAAY,CAAG,CAC3B,WAAY,OACZ,KAAM,GACN,UAAW,EACb,EC9BO,IAAME,GAAmB,CAAC,CAC/B/sC,KAAAA,CAAI,CACJ2U,UAAAA,CAAS,CACV,IACC,IAAMq4B,EAAqBv5B,KACzB,+BACAkB,GAGF,MACE,WAAC,QAAK,UAAWq4B,E,SACdhtC,C,EAGP,CAEA+sC,CAAAA,GAAiB,SAAS,CAAG,CAC3B,KAAMv/B,GAAAA,MAAMA,CACZ,UAAWA,GAAAA,MAAMA,AACnB,EAEAu/B,GAAiB,YAAY,CAAG,CAC9B,KAAM,GACN,UAAW,EACb,ECrBO,IAAME,GAAW,CAAC,CACvBt4B,UAAAA,CAAS,CACTnG,SAAAA,CAAQ,CACRuJ,MAAAA,CAAK,CACLm1B,mBAAAA,CAAkB,CAClB10C,GAAAA,CAAE,CACFm0C,UAAAA,CAAS,CACV,IACC,IAAMQ,EAAqB15B,KACzBk5B,EAAY,cAAgB,YAC5B,sBACAf,GAAmB7zB,GACnBpD,GAGF,MACE,WAAC,MACC,UAAWw4B,EACX,aAAcD,EACd,GAAI10C,E,SAEHgW,C,EAGP,CAEAy+B,CAAAA,GAAS,SAAS,CAAG,CACnB,UAAWz/B,GAAAA,MAAMA,CACjB,SAAUuB,GAAAA,IAAAA,CAAAA,UAAe,CACzB,MAAOgF,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,CAAC,OAAQ,QAAQ,EAC9B,mBAAoB5F,GAAAA,IAAIA,CACxB,GAAIX,GAAAA,MAAAA,CAAAA,UAAiB,CACrB,UAAWD,GAAAA,IAAIA,AACjB,EAEA0/B,GAAS,YAAY,CAAG,CACtB,UAAW,KACX,MAAO,OACP,mBAAoB,KAAO,EAC3B,UAAW,EACb,ECxCO,IAAMG,GAAW,CAAC,CACvBz4B,UAAAA,CAAS,CACTnG,SAAAA,CAAQ,CACRuJ,MAAAA,CAAK,CACL40B,UAAAA,CAAS,CACV,IACC,IAAMU,EAAqB55B,KACzBk5B,EAAY,yBAA2B,kBACvC,qBACAf,GAAmB7zB,GACnBpD,GAGF,MACE,WAAC,MAAG,UAAW04B,E,SACZ7+B,C,EAGP,CAEA4+B,CAAAA,GAAS,SAAS,CAAG,CACnB,UAAW5/B,GAAAA,MAAMA,CACjB,SAAUuB,GAAAA,IAAAA,CAAAA,UAAe,CACzB,MAAOgF,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,CAAC,OAAQ,QAAQ,EAC9B,UAAWxG,GAAAA,IAAIA,AAEjB,EAEA6/B,GAAS,YAAY,CAAG,CACtB,UAAW,KACX,MAAO,OACP,UAAW,EACb,ECnCO,IAAME,GAAc,CAAC,CAAEv1B,MAAAA,CAAK,CAAE40B,UAAAA,CAAS,CAAE,IAC9C,IAAMY,EAAe95B,KAAW,OAAQ,CACtC,cAAesE,AAAU,SAAVA,EACf,aAAcA,AAAU,UAAVA,CAChB,GACA,MACE,WAAC,MAAG,UAAW40B,EAAY,cAAgB,Y,SACzC,WAAC,OAAI,UAAWY,C,IAGtB,CAEAD,CAAAA,GAAY,SAAS,CAAG,CACtB,MAAOv5B,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,CAAC,OAAQ,QAAQ,EAC9B,UAAWxG,GAAAA,IAAIA,AACjB,EAEA+/B,GAAY,YAAY,CAAG,CACzB,MAAO,OACP,UAAW,EACb,ECPO,IAAME,GAAcC,GAAAA,UAAgB,CAAC,CAAC,CAC3CC,OAAAA,CAAM,CACNC,SAAAA,CAAQ,CACRC,UAAAA,CAAS,CACTp1C,GAAAA,CAAE,CACFq1C,aAAAA,CAAY,CACZC,eAAAA,CAAc,CACdn5B,UAAAA,CAAS,CACToD,MAAAA,CAAK,CACN,CAAEsN,K,IAkHQ0oB,EAjHT,IAAMC,EAAiB9sB,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,IACjB+sB,EAAW/sB,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,EAAO,MAElB,CAACgtB,EAAcC,EAAgB,CAAGt4B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,MAC3C,CAACu4B,EAAYC,EAAc,CAAGx4B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,MACvC,CAACy4B,EAAgBC,EAAkB,CAAG14B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,MAE/C,CAAE24B,OAAAA,CAAM,CAAEC,WAAAA,CAAU,CAAE,CAAGC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAUrpB,EAAI,OAAO,CAAE2oB,EAAe,OAAO,CAAE,CAC5EJ,UAAAA,EACAD,SAAAA,EACA,UAAW,CAAC,CAAE,KAAM,QAAS,QAAS,CAAE,QAASO,CAAa,CAAE,EAAE,AACpE,GAEMS,EAAeprB,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,K,IACAwqB,EAA3B,GAAIO,EAAgB,OAAO,AAAe,OAAfP,CAAAA,EAAAA,EAAO,QAAQ,AAAD,GAAdA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAiB,IAAI,CAACjuB,AAAAA,GAASA,EAAM,EAAE,GAAKwuB,EACzE,EAAG,CAACA,EAAe,EAEnB99B,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,GAAIs9B,EAAgB,CAClB,IAAMc,EAAqBzgD,AAAAA,IACzB,IAAM0gD,EAAqBb,EAAe,OAAO,EAAI,CAACA,EAAe,OAAO,CAAC,QAAQ,CAAC7/C,EAAM,MAAM,EAC5F2gD,EAAuBzpB,EAAI,OAAO,EAAI,CAACA,EAAI,OAAO,CAAC,QAAQ,CAACl3B,EAAM,MAAM,EAC1E0gD,GAAsBC,GAAsBhB,GAClD,EAEA,OADAvvC,SAAS,gBAAgB,CAAC,QAASqwC,EAAoB,IAChD,KACLrwC,SAAS,mBAAmB,CAAC,QAASqwC,EAAoB,GAC5D,CACF,CACA,MAAO,KAAO,CAChB,EAAG,EAAE,EAEL,IAAM1B,EAAqBnkD,AAAAA,IACzB,IAAMgmD,EAAWhmD,EAAE,aAAa,CAChCimD,aAAaf,EAAS,OAAO,EAC7BA,EAAS,OAAO,CAAGxjC,WAAW,KAC5B4jC,EAAc,CACZ,QAASU,CACX,GACAR,EAAkBQ,EAAS,YAAY,CAAC,MAC1C,EAAG,IACL,EAEME,EAAa37C,AAAAA,QAKT47C,EAK6BC,EAAjBC,EATpB,GAAI97C,EAAK,eAAe,CACtB,OAAOA,EAAK,eAAe,CAG7B,OAAQ47C,AAAS,OAATA,CAAAA,EAAAA,EAAK,IAAI,AAAD,GAARA,AAAAA,KAAAA,IAAAA,EAAAA,EAAa,QACnB,IAAK,YACH,MAAO,WAACpD,GAAiBA,CAAC,UAAWx4C,EAAK,KAAK,CAAE,MAAOykB,EAAO,QAASzkB,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,OAAO,A,EACvF,KAAK,OACH,IAAMwwB,EAAYxwB,EAAK,IAAI,CACrB+7C,EAAUD,AAAY,OAAZA,CAAAA,EAAAA,EAAK,OAAO,AAAD,GAAXA,AAAAA,KAAAA,IAAAA,EAAAA,EAAiBD,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,EAAAA,EAAK,QAAQ,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAe,MAAM,AAAD,EAAI,EAAIt/B,GAAAA,CAAgBA,CAAG,KAChF,MACE,YAACq8B,GAAcA,CACb,GAAI54C,EAAK,EAAE,CACX,QAASA,EAAK,OAAO,CACrB,WAAYA,EAAK,UAAU,CAC3B,MAAOykB,EACP,WAAYzkB,EAAK,UAAU,C,UAE1B,CAAC,CAACwwB,GACD,WAACsoB,GAAYA,CAAC,KAAMtoB,C,GAEtB,WAAC4oB,GAAaA,CAAC,UAAW,G,SAAOp5C,EAAK,KAAK,A,GAC1C,CAAC,CAACA,EAAK,KAAK,EACX,WAACu5C,GAAaA,CACZ,KAAMv5C,EAAK,KAAK,CAAC,IAAI,CACrB,UAAWA,EAAK,KAAK,CAAC,SAAS,CAC/B,WAAYA,EAAK,KAAK,CAAC,UAAU,A,GAGpC,CAAC,CAACA,EAAK,QAAQ,EACd,WAACy5C,GAAgBA,CACf,KAAMz5C,EAAK,QAAQ,A,GAGtB,CAAC,CAAC+7C,GACD,WAACjD,GAAYA,CACX,KAAMiD,EACN,SAAS,MACT,SAAU/7C,EAAK,QAAQ,CACvB,UAAWA,EAAK,SAAS,CACzB,MAAOykB,C,KAKjB,KAAK,UACH,MACE,WAACk1B,GAAQA,CAAC,GAAI35C,EAAK,EAAE,CAAE,UAAWA,EAAK,SAAS,A,EAEpD,SACE,MAAM,AAAIg8C,MAAM,mBACpB,CACF,EAEA,MACE,yB,UACE,YAAC,yBACC,IAAKtB,EACL,MAAO,qBACFQ,EAAO,MAAM,GAChB,QAASd,AAAc,SAAdA,EAAO,EAAE,CAAc,WAAa,QAC7C,OAAQ,I,GAEV,UAAW/4B,EACX,GAAInc,EACJ,aAAcq1C,C,EACVY,EAAW,MAAM,G,UAErB,WAACrB,GAAQA,CAAC,MAAOr1B,EAAO,UAAW,G,SACjB,OAAfg2B,CAAAA,EAAAA,EAAO,QAAQ,AAAD,GAAdA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAiB,GAAG,CAACz6C,AAAAA,IACpB,GAAI,CAACA,EAAK,SAAS,EAAI,AAA0B,SAAnBA,EAAK,SAAS,CAC1C,OAAO,KAKT,GAAIA,AAAc,YAAdA,EAAK,IAAI,EAAkBA,EAAK,QAAQ,CAAE,C,IACrC67C,EAAP,OAAO,AAAa,OAAbA,CAAAA,EAAAA,EAAK,QAAQ,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAe,GAAG,CAACrvB,AAAAA,GACjBA,EAAM,SAAS,CAAGA,EAAM,SAAS,CAAG,KAE/C,CAEA,MACE,YAAC2tB,GAAAA,QAAc,E,UACb,WAACR,GAAQA,CACP,mBAAoBC,EACpB,MAAOn1B,EACP,GAAIzkB,EAAK,EAAE,CACX,UAAW,G,SAEVA,EAAK,eAAe,CAAGA,EAAK,eAAe,CAAG27C,EAAW37C,E,GAE3DA,EAAK,UAAU,EAAI,WAACg6C,GAAWA,CAAC,MAAOv1B,EAAO,UAAW,E,KATvCzkB,EAAK,EAAE,CAYhC,E,GAEF,WAAC,OAAI,IAAK66C,EAAiB,MAAOK,EAAO,KAAK,A,OAG/CG,GAAgBA,EAAa,QAAQ,EAAIP,GACxC,WAACZ,GAAAA,CACC,OAAQmB,EACR,IAAKP,EACL,UAAU,cACV,GAAIE,EACJ,UAAW35B,EACX,aAAc,KACZq6B,aAAaf,EAAS,OAAO,CAC/B,EACA,SAAUN,EACV,MAAO51B,C,KAKjB,GAEMw3B,GAAc,CAClB,GAAI/hC,GAAAA,MAAAA,CAAAA,UAAiB,CACrB,MAAOA,GAAAA,MAAMA,CACb,KAAMsB,GAAAA,WAAWA,CACjB,KAAMiF,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,CAAC,YAAa,OAAQ,UAAW,UAAU,EACvD,QAAS5F,GAAAA,IAAIA,CACb,QAASW,GAAAA,WAAWA,CACpB,MAAO0gC,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,CACX,KAAMhiC,GAAAA,MAAMA,CACZ,WAAYA,GAAAA,MAAMA,AACpB,GACA,SAAUA,GAAAA,MAAMA,AAClB,EnIxMA,SAAS,KAAa,MAAO,IAAW3V,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CmI0MnRk6B,GAAY,SAAS,CAAG,CACtB,OAAQhgC,GAAAA,MAAMA,CACd,UAAWA,GAAAA,MAAMA,CACjB,QAASD,GAAAA,IAAIA,CACb,MAAOwG,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,CAAC,OAAQ,QAAQ,EAC9B,SAAUvG,GAAAA,MAAMA,CAChB,UAAWA,GAAAA,MAAMA,CACjB,OAAQgiC,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,qBACTD,IAAAA,CACH,SAAUtgB,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQugB,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAMD,I,IACvB,UAAU,CACb,GAAI/hC,GAAAA,MAAMA,CACV,aAAcW,GAAAA,IAAIA,CAClB,eAAgBA,GAAAA,IAAIA,AACtB,EAEAq/B,GAAY,YAAY,CAAG,CACzB,OAAQ,KACR,QAAS,GACT,UAAW,GACX,MAAO,OACP,SAAU,QACV,UAAW,SACX,GAAI,KACJ,aAAc,KAAQ,EACtB,eAAgB,IAClB,EnI/LA,OAnCwBvwC,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAChF,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,MAAO,IACP,OAAQ,IACR,KAAM,OACN,GAAI,CACN,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC9D,KAAM,UACN,EAAG,k2vDACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,SAAU,UACV,EAAG,0jEACH,SAAU,SACZ,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,sGACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,oIACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,OACN,EAAG,sIACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,qlMACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,SAAU,UACV,EAAG,qsBACH,SAAU,SACZ,EAAC,GCpCD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAmFnR,OAjFgBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACxE,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQ,IAAO,IAAkB,gBAAmB,CAAC,IAAK,CAC3D,OAAQ,mBACV,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,MAAO,IACP,OAAQ,IACR,EAAG,EACH,EAAG,EACH,KAAM,OACN,GAAI,CACN,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,mnBACL,GAAiB,gBAAmB,CAAC,IAAK,CACxC,QAAS,EACX,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,UACN,EAAG,m18BACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,OAAQ,UACR,YAAa,KACb,EAAG,oBACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,2zSACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,SAAU,UACV,EAAG,ukEACH,SAAU,SACZ,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,EAAG,s9MACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,KAAM,UACN,SAAU,UACV,EAAG,2oBACH,SAAU,SACZ,IAAG,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,KAAmB,gBAAmB,CAAC,SAAU,CACjH,GAAI,cACJ,MAAO,IACP,OAAQ,IACR,EAAG,EACH,EAAG,EACH,0BAA2B,OAC3B,YAAa,gBACf,EAAgB,gBAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,gBAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,OAAQ,YACR,OAAQ,2CACV,GAAiB,gBAAmB,CAAC,WAAY,MAAoB,gBAAmB,CAAC,iBAAkB,CACzG,aAAc,CAChB,GAAiB,gBAAmB,CAAC,gBAAiB,CACpD,OAAQ,iEACV,GAAiB,gBAAmB,CAAC,UAAW,CAC9C,IAAK,qBACL,OAAQ,+BACV,GAAiB,gBAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,OAAQ,YACR,OAAQ,2CACV,GAAiB,gBAAmB,CAAC,WAAY,CAC/C,GAAI,CACN,GAAiB,gBAAmB,CAAC,iBAAkB,CACrD,aAAc,CAChB,GAAiB,gBAAmB,CAAC,gBAAiB,CACpD,OAAQ,iEACV,GAAiB,gBAAmB,CAAC,UAAW,CAC9C,IAAK,gCACL,OAAQ,+BACV,GAAiB,gBAAmB,CAAC,UAAW,CAC9C,GAAI,gBACJ,IAAK,gCACL,OAAQ,OACV,IAAG,GClFH,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CA+BnR,OA7BiBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACzE,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,MAAO,QACP,OAAQ,QACR,KAAM,UACN,GAAI,CACN,EAAC,EAAI1Q,IAAUA,CAAAA,GAAqB,gBAAmB,CAAC,OAAQ,CAC9D,GAAI,eACJ,KAAM,MACR,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,SAAU,UACV,EAAG,4aACH,SAAU,SACZ,GAAE,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC/D,KAAM,UACN,SAAU,UACV,EAAG,4aACH,SAAU,SACZ,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,ihDACH,KAAM,oBACR,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,ipDACL,EAAC,GC9BD,SAAS,KAAa,MAAO,IAAWsL,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAqCnR,OAnC6BrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACrF,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,MAAO,QACP,OAAQ,QACR,EAAG,OACH,KAAM,UACN,GAAI,MACJ,UAAW,wBACb,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,QACP,OAAQ,QACR,EAAG,MACH,EAAG,OACH,KAAM,OACN,OAAQ,UACR,YAAa,KACb,GAAI,KACN,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC9D,KAAM,UACN,EAAG,kEACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,mEACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,OAAQ,OACR,YAAa,MACb,EAAG,utCACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,kHACL,EAAC,GCpCD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAoDnR,OAlDsBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAC9E,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,GAAI,qBACJ,KAAM,MACR,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,SAAU,UACV,EAAG,2YACH,SAAU,SACZ,GAAE,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC/D,KAAM,UACN,SAAU,UACV,EAAG,2YACH,SAAU,SACZ,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,ukDACH,KAAM,0BACR,EAAC,EAAIzQ,IAAWA,CAAAA,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,GAAI,qBACJ,MAAO,IACP,OAAQ,IACR,EAAG,OACH,EAAG,MACH,KAAM,OACN,UAAW,gBACb,EAAgB,gBAAmB,CAAC,OAAQ,CAC1C,KAAM,OACN,EAAG,6BACL,GAAiB,gBAAmB,CAAC,OAAQ,CAC3C,SAAU,UACV,EAAG,8ZACH,SAAU,SACZ,GAAE,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CACjE,KAAM,OACN,SAAU,UACV,EAAG,8ZACH,SAAU,SACZ,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,+iDACH,KAAM,0BACR,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,SAAU,UACV,EAAG,uTACH,SAAU,SACZ,EAAC,GgI4XD,GAxZuB,K,IAkMDijD,EAAAA,EAAAA,EAjMpB,IAAMlvB,EAAOW,AAAAA,CAAAA,EAAAA,GAAAA,MAAAA,AAAAA,EAAO,EAAE,EAEhBiK,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACXsQ,EAAkBluC,AAAAA,GAAgB29B,EAASxmB,GAAgB,eAAe,CAACnX,IAE3E,CAACkiD,EAAeC,EAAiB,CAAG95B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,IACpC,CAAC+5B,EAAqBC,EAAuB,CAAGh6B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,IAEhD,CAAC0iB,EAAQC,EAAU,CAAG3iB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,IACtB,CAACjY,EAAckyC,EAAgB,CAAGj6B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,EAAE,EAEnDrF,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACRkrB,EAAgB,eAClB,EAAG,EAAE,EAELlrB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR+P,EAAK,OAAO,CAAGA,EAAK,OAAO,CAAC,KAAK,CAAC,EAAI,IAAK3iB,GAAgB,EAAE,IAAO26B,GAAU,EAAE,CAAE,CAAQ,MAAM,CAClG,EAAG,CAAC36B,EAAc26B,EAAO,EAEzB,IAAMrgC,EAAUmzB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,UAAU,EAEjDioC,EAA2B1yC,AAAAA,I,IAE7B2yC,EADF,OAAO,AAGL,OAFAA,CAAAA,EAAAA,EAAQ,IAAI,CAAC54C,AAAAA,GACJS,OAAO,MAAM,CAACT,EAAO,QAAQ,EAAE,IAAI,CAACoD,AAAAA,GAAWA,EAAQ,EAAE,GAAK6C,GACtE,GAFD2yC,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAEI,KAAK,AAEb,EAEMC,EAAmB5kB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACnB/tB,EAAW+tB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MAejB7a,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,SAASmgB,EAAmBxiC,CAAK,EAC/B,GAAI,CAACuhD,GAAiB,CAACE,EAAqB,OAE5C,IAAMM,EAAe3xC,SAAS,gBAAgB,CAAC,sBACzC4xC,EAAkB5xC,SAAS,gBAAgB,CAAC,oBAE9C6xC,EAAa,GACjBF,EAAa,OAAO,CAACvgD,AAAAA,IACfA,EAAQ,QAAQ,CAACxB,EAAM,MAAM,GAAGiiD,CAAAA,EAAa,EAAI,CACvD,GAEAD,EAAgB,OAAO,CAACxgD,AAAAA,IAClBA,EAAQ,QAAQ,CAACxB,EAAM,MAAM,GAAGiiD,CAAAA,EAAa,EAAI,CACvD,GAEIF,GAAgBE,IAClBT,IACAE,IAEJ,CAEA,OADAtxC,SAAS,gBAAgB,CAAC,QAASoyB,GAC5B,KACLpyB,SAAS,mBAAmB,CAAC,QAASoyB,EACxC,CACF,EAAG,CAAC+e,EAAeE,EAAoB,EAEvC,IAAMS,EAAoB,KACxB3/C,KAAgB,IAAI,CAACmoC,AAAAA,IACnBL,EACEK,EAAW,GAAG,CAACjpB,AAAAA,IACb,IAAI0gC,EAAe,EAAE,CACrB,IAAK,IAAIl8C,EAAI,EAAGA,EAAI8D,EAAQ,MAAM,CAAE9D,IAAK,CACvC,GAAM,CAAEsB,SAAAA,EAAW,EAAE,CAAE,CAAGwC,CAAO,CAAC9D,EAAE,CACpCk8C,EAAe,IAAIA,KAAiB56C,EAAS,AAC/C,CAGA,GAAM,CAAE4B,WAAAA,CAAU,CAAE,MAAOiG,CAAY,CAAE,CAAGgzC,AADtBD,EAAa,IAAI,CAAC91C,AAAAA,GAAWA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,AAAD,IAAMoV,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAO,SAAS,AAAD,IACrB,CAAC,EACxD,CAAE,MAAOzW,CAAY,CAAE,CAAG7B,GAAc,CAAC,EAE/C,MAAO,qBACFsY,GAAAA,CACHrS,aAAAA,EACApE,aAAAA,C,EAEJ,GAEJ,EACF,EAEMq3C,EAA0B,KAC9BV,EAAgBj4C,OAAO,MAAM,CAACo4C,GAChC,EAEAz/B,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACHy/B,IAELI,IACAG,IACF,EAAG,CAACP,EAAiB,EAErB,IAAMpvC,EAAkB4vC,AA3EU,MAChC,GAAI,CAACR,EAAkB,MAAO,CAAC,EAE/B,IAAMpyC,EAAmBhG,OAAO,MAAM,CAACo4C,GAAkB,SAAS,CAACtI,AAAAA,GAAQA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,WAAW,AAAD,IAAMiI,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,WAAW,AAAD,GAChI,GAAI/xC,AAAqB,KAArBA,EAAyB,MAAO,CAAC,EAErC,IAAM9M,EAAgB8G,OAAO,IAAI,CAACo4C,EAAiB,CAACpyC,EAAiB,CACrE,MAAO,UACL9M,cAAAA,C,EACG8G,OAAO,MAAM,CAACo4C,EAAiB,CAACpyC,EAAiB,CAExD,KAiEM,CAAE9M,cAAAA,CAAa,CAAE,YAAa0M,CAAqB,CAAE,UAAWE,CAAmB,CAAE,CAAGkD,EAExF6vC,EAAwBC,AAAAA,IAC5B,GAAIf,EACFpuC,GACEmvC,EACA,CAAE,KAAM,cAAe5/C,cAAAA,EAAe8P,gBAAAA,CAAgB,EACtD,IAAMgvC,UAEH,GAAIH,EAAe,CACxB,GAAM,CAAEryC,UAAAA,CAAS,CAAE,CAAGqyC,EACtBluC,GACEmvC,EACA,CACEtzC,UAAAA,EACA,KAAM,OACR,EACA,IAAMsyC,KAERA,GACF,CACF,EA0DMiB,EAAgB,CACpB,SAzDc,CACd,CACE,GAAI,WACJ,MAAO,WACP,OAAQ,GACR,QAAS,KAKPC,AAJyBnB,CAAAA,EACrB,IAAMtyC,GAAoBsyC,MAAAA,EAAAA,KAAAA,EAAAA,EAAe,SAAS,CAAEpyC,EAAU,IAC9D,IAAMI,GAA0B3M,EAAeuM,EAAUG,EAAuBE,EAAmB,IAGtG+xC,AAAAA,CAAAA,EAAgBC,EAAmBE,CAAqB,GAC3D,CACF,EACA,CACE,GAAI,QACJ,MAAO,QACP,SAAU,CACR,CACE,GAAI,YACJ,QAAS,KACPruC,GACE,WACAouC,EACI,CAAE7+C,cAAAA,EAAe,KAAM,aAAc,EACrC,CAAE,SAAU2+C,MAAAA,EAAAA,KAAAA,EAAAA,EAAe,QAAQ,CAAE,KAAM,OAAQ,EACvD,IAAOE,AAAAA,CAAAA,EACHC,EACAF,CAAe,IAEvB,EACA,UAAW,GACX,MAAO,WACT,EACA,CACE,GAAI,iBACJ,QAAS,IAAMe,EAAsB,YACrC,UAAW,GACX,MAAO,UACT,EACA,CACE,GAAI,iBACJ,QAAS,IAAMA,EAAsB,YACrC,UAAW,GACX,MAAO,UACT,EACA,CACE,GAAI,UACJ,QAAS,IAAMA,EAAsB,KACrC,UAAW,GACX,MAAO,GACT,EACD,AACH,EACD,CAIC,GAAI,gBACJ,MAAO,iBACP,KAAMI,EACR,EACMC,EAAc,AAAMtB,OAANA,CAAAA,EAAAA,EAAAA,CAAMA,AAANA,GAAAA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAgB,OAAhBA,CAAAA,EAAAA,EAAQ,QAAQ,AAAD,GAAfA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAsB,OAAtBA,CAAAA,EAAAA,EAAkB,IAAI,AAAD,GAArBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAwB,QAAQ,CAAC,iBACrD,MACE,yB,UACE,yB,UACGsB,GACD,YAAC,OAAI,UAAU,wC,UACb,WAACD,GAAoBA,CAAC,UAAU,S,GAChC,WAAC,OAAI,UAAU,wD,SACb,YAAC,MAAG,UAAU,4C,UACZ,WAAC,MAAG,UAAU,mC,SACZ,YAAC,UAAO,KAAK,SAAS,UAAU,2C,UAA2C,WAEzE,WAACE,GAAAA,CAAmBA,CAAAA,CAAC,UAAU,S,QAGnC,YAAC,MAAG,UAAU,W,UACZ,YAAC,OAAI,UAAU,2C,UAA2C,QAExD,WAACnhC,GAAAA,CAAgBA,CAAAA,CAAC,UAAU,S,MAE9B,WAAC,OAAI,UAAU,kF,SACb,YAAC,MAAG,UAAU,uD,UACZ,WAAC,MAAG,UAAU,yC,SACZ,YAAC,UAAO,KAAK,SAAS,UAAU,2D,UAC9B,WAACohC,GAAgBA,CAAC,UAAU,S,GAAY,Y,KAI5C,WAAC,MAAG,UAAU,iB,SACZ,YAAC,OAAI,UAAU,a,UACb,WAAC,UAAO,KAAK,SAAS,UAAU,kC,SAAkC,WAAC1J,GAAkBA,CAAC,UAAU,qB,KAChG,WAAC,UAAO,KAAK,SAAS,UAAU,kC,SAAkC,WAACF,GAAwBA,CAAC,UAAU,qB,KACtG,WAAC,UAAO,KAAK,SAAS,UAAU,kC,SAAkC,WAACC,GAAWA,CAAC,UAAU,qB,0BAWzG,WAAC,UAAO,UAAU,oC,SAAoC,gB,GACtD,YAAC,WAAQ,UAAU,iB,UAChB,AAAC2I,EAQA,wB,SACGA,EAAiB,MAAM,EAAI,EAC1B,wB,SACE,YAAC,OAAI,UAAU,4C,UACb,WAACiB,GAAiBA,CAAC,UAAU,gB,GAC7B,WAAC,UAAO,UAAU,sC,SAAsC,4C,QAI5D,WAAC,OAAI,UAAU,wD,SACZtzC,EAAa,GAAG,CAAC,CAACE,EAAanI,KAC9B,GAAM,CACJ,YAAasL,CAAU,CAAE,YAAajL,CAAU,CAAEyC,KAAAA,CAAI,CAAE,WAAY04C,CAAwB,CAC7F,CAAGrzC,QACJ,AAAIrF,AAAS,aAATA,EAEA,WAAC,OAAI,UAAU,kD,SACb,WAAC24C,GAAeA,CAAC,UAAU,e,KAK/B,wB,SACE,YAAC,OAAqB,UAAU,gC,UAC7BD,EACC,WAAC,OACC,QAAQ,OACR,IAAK,CAAC,EAAEvoD,OAAO,QAAQ,CAAC,MAAM,CAAC,qBAAqB,EAAEiP,OAAO,IAAI,CAACo4C,EAAiB,CAACt6C,EAAM,CAAC,kBAAkB,CAAC,CAC9G,IAAK,CAAC,EAAEsL,EAAW,YAAY,CAAC,CAChC,MAAO,IACP,OAAQ,IACR,UAAU,yC,GAGZ,WAACowC,GAAYA,CAAC,UAAU,yC,GAG1B,WAAC,UACC,KAAK,SACL,IAAKC,AAAAA,IACH/wB,EAAK,OAAO,CAAC5qB,EAAM,CAAG27C,CACxB,EACA,QAAS,KACP3B,IACAE,EAAuB/xC,EACzB,EACA,UAAU,oGACV,aAAW,gB,SAEX,WAACgzC,GAAoBA,CAAC,UAAU,S,KAEjClB,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,WAAW,AAAD,IAAM55C,GACjCu7C,AAAAA,CAAAA,EAAAA,GAAAA,YAAAA,AAAAA,EAAa,WAACC,GAAOA,CACtB,MAAM,OAAO,OAAQZ,EAAe,UAAU,cAC9C,UAAU,oBAAoB,IAAK,CAAE,QAASrwB,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,OAAO,CAAC5qB,EAAM,AAAC,C,GACjE4I,SAAS,IAAI,EACnB,WAAC,UAAO,UAAU,gD,SAAiD0C,C,KAjC3DjL,E,EAqChB,E,KAnEN,WAAC,OAAI,UAAU,qB,SACb,WAACkzC,GAAAA,CAAOA,CAAAA,CACN,UAAU,sEAAsE,KAAK,OAAO,YAAY,IACxG,YAAY,S,KAqElB,WAAC,OAAI,UAAU,+C,SACb,WAAC9c,GAAAA,EAAIA,CAAAA,CAAC,GAAIh3B,GAAe,Y,SACvB,WAAC,OAAI,UAAU,gG,SACZ66C,GAAoB,EAAI,wB,SAAGp9C,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,qB,GAA4B,wB,SAAGA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,2B,eAOzE,WAAC,UAAO,UAAU,oC,SAAoC,U,GACtD,YAAC,WAAQ,UAAU,W,UAChB,AAAC0lC,EAQA,wB,SACGA,EAAO,MAAM,EAAI,EAChB,wB,SACE,YAAC,OAAI,UAAU,4C,UACb,WAACkZ,GAAUA,CAAC,UAAU,gB,GACtB,WAAC,UAAO,UAAU,sC,SAAsC,sC,QAI5D,WAAC,OAAI,UAAU,kE,SACZlZ,EAAO,GAAG,CAAC,CAAC3oB,EAAOja,KAClB,GAAM,CACJ0H,UAAAA,CAAS,CAAEuD,SAAAA,CAAQ,CAAEzH,aAAAA,CAAY,CAAEV,KAAAA,CAAI,CACxC,CAAGmX,QACJ,AAAInX,AAAS,aAATA,EAEA,WAAC,OAAI,UAAU,kD,SACb,WAACi5C,GAAgBA,CAAC,UAAU,e,KAKhC,YAAC,OAAoB,UAAU,W,UAC7B,WAAC,OACC,QAAQ,OACR,UAAU,4BACV,IAAK9wC,EACL,MAAO,IACP,OAAQ,IACR,IAAK,CAAC,MAAM,EAAEvD,EAAU,CAAC,A,GAE3B,WAAC,UACC,KAAK,SACL,IAAKi0C,AAAAA,IACH/wB,EAAK,OAAO,CAAC5qB,EAAQiI,EAAa,MAAM,CAAC,CAAG0zC,CAC9C,EACA,QAAS,KACPzB,IACAF,EAAiB//B,EACnB,EACA,aAAW,gBACX,UAAU,qG,SAEV,WAACkhC,GAAoBA,CAAC,UAAU,S,KAEjCpB,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAe,SAAS,AAAD,IAAMryC,GACzBk0C,AAAAA,CAAAA,EAAAA,GAAAA,YAAAA,AAAAA,EACD,WAACC,GAAOA,CACN,MAAM,OAAO,OAAQZ,EAAe,UAAU,cAC9C,UAAU,oBAAoB,IAAK,CAAE,QAASrwB,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,OAAO,CAAC5qB,EAAQiI,EAAa,MAAM,CAAC,AAAC,C,GAE3FW,SAAS,IAAI,EAEjB,YAAC,OAAI,MAAO,CAAE,QAAS,MAAO,E,UAC5B,WAAC,UAAO,UAAU,gD,SAAiDwxC,EAAyB1yC,E,GAC5F,WAAC,UAAO,UAAU,gD,SAAiD,CAAC,QAAQ,EAAElE,GAAgBxD,EAAQ,EAAE,CAAC,A,QAjCnG0H,EAqCd,E,KAlEN,WAAC,OAAI,UAAU,qB,SACb,WAAC6rC,GAAAA,CAAOA,CAAAA,CACN,UAAU,sEAAsE,KAAK,OAAO,YAAY,IACxG,YAAY,S,KAoElB,WAAC,OAAI,UAAU,+C,SACb,WAAC9c,GAAAA,EAAIA,CAAAA,CAAC,GAAIh3B,GAAe,Y,SACvB,WAAC,OAAI,UAAU,gG,SACZmjC,GAAU,EAAI,wB,SAAG1lC,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,qB,GAA4B,wB,SAAGA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,qB,cAOnE,E/H7aA,SAAS,KAAa,MAAO,IAAWgF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAgFnR,OA9EiBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACzE,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,MAAO,QACP,OAAQ,QACR,EAAG,KACH,EAAG,OACH,KAAM,UACN,GAAI,MACJ,UAAW,4BACb,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,QACP,OAAQ,QACR,EAAG,MACH,EAAG,KACH,KAAM,OACN,OAAQ,UACR,GAAI,IACN,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,MACP,OAAQ,MACR,EAAG,OACH,EAAG,MACH,KAAM,OACN,OAAQ,UACR,YAAa,MACb,GAAI,IACN,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC9D,OAAQ,UACR,EAAG,yEACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,sDACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,MACP,OAAQ,MACR,EAAG,OACH,EAAG,QACH,KAAM,UACN,GAAI,KACN,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,MACP,OAAQ,MACR,EAAG,OACH,EAAG,QACH,KAAM,UACN,GAAI,KACN,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,MACP,OAAQ,MACR,EAAG,OACH,EAAG,QACH,KAAM,UACN,GAAI,KACN,EAAC,EAAIxQ,IAAWA,CAAAA,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,OACP,OAAQ,MACR,EAAG,OACH,EAAG,QACH,KAAM,UACN,GAAI,KACN,EAAC,EAAIC,IAAWA,CAAAA,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,OACP,OAAQ,MACR,EAAG,OACH,EAAG,QACH,KAAM,UACN,GAAI,KACN,EAAC,EAAIC,IAAWA,CAAAA,GAAsB,gBAAmB,CAAC,OAAQ,CAChE,MAAO,OACP,OAAQ,MACR,EAAG,OACH,EAAG,QACH,KAAM,UACN,GAAI,KACN,EAAC,GgIDD,GAlEiB,KACf,IAAMw+B,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACXsQ,EAAkBluC,AAAAA,GAAgB29B,EAASxmB,GAAgB,eAAe,CAACnX,IAE3E,CAACitC,EAAaC,EAAe,CAAG7kB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IACzC,CAAC3N,EAAiBypC,EAAmB,CAAG97B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,IACxC3d,EAAUmzB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,UAAU,EACjD1B,EAAWilB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MAEjB7a,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,IAAI,CAACpK,EACkB,IAAnBlO,EAAQ,MAAM,EAClBy5C,EAAmBz5C,EAAQ,MAAM,CAACd,AAAAA,GAAUA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,OAAO,AAAD,IAAM,UAAYA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,MAAM,AAAD,IAAM,YAAcgP,EAAS,QAAQ,CAAChP,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,EAAE,GAC3I,EAAG,CAACgP,EAAUlO,EAAQ,EAGtBsY,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACRkrB,EAAgB,WAClB,EAAG,EAAE,EAEL,IAAMkW,EAAY,CAAC1pC,GAAmB,CAAC9B,EACvC,MACE,yB,UACE,YAAC,W,UACC,WAAC,OAAI,UAAU,c,SAEZ,CAACwrC,GAAa1pC,AAA2B,IAA3BA,EAAgB,MAAM,EACnC,YAAC,OAAI,UAAU,4C,UACb,WAAC2pC,GAAaA,CAAC,UAAU,gB,GACzB,WAAC,UAAO,UAAU,qC,SAAqC,gC,QAK7D,WAAC,OAAI,UAAU,wD,SAEVD,AAAAA,CAAAA,EAAYE,AArBL,CAAC,EAAG,EAAE,CAqBS,GAAG,CAACC,AAAAA,GAAa,EAAE,KAAM,WAAY,GAAI,CAAC,SAAS,EAAEA,EAAS,CAAC,AAAC,IAAM7pC,CAAc,EAAG,GAAG,CAAC9Q,AAAAA,GAChH,WhDwPCo2B,GgDxPcA,CACb,OAAQp2B,EAER,KAAMA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,IAAI,CAClB,eAAgB,GAChB,kBAAoBgP,AAAAA,CAAAA,GAAY,EAAC,EAAG,QAAQ,CAAChP,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,EAAE,C,EAHlDA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,IAAI,E,MAS3B,YAAC,WAAQ,UAAU,0E,UACjB,WAACg1B,GAAAA,EAAIA,CAAAA,CAAC,GAAIh3B,GAAe,Y,SACvB,WAAC,OAAI,UAAU,yG,SAAyG,wB,KAE1H,WAAC,UAAO,QAAS,IAAMslC,EAAe,IAAO,KAAK,SAAS,UAAU,4J,SAA4J,kB,MAEnO,WpCKSN,GoCLHA,CACJ,UAAU,MACV,OAAQK,EACR,OAAO,mBACP,QAAS,IAAMC,EAAe,I,SAE9B,WAACqD,GAAiBA,CAAAA,E,KAI1B,E/H5EA,SAAS,KAAa,MAAO,IAAWlmC,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CA2BnR,OAzBiBrW,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACzE,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQ,IAAY,IAAuB,gBAAmB,CAAC,SAAU,CAC1E,GAAI,GACJ,GAAI,OACJ,EAAG,OACH,KAAM,SACR,EAAC,EAAI,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CAC9D,KAAM,OACN,SAAU,UACV,OAAQ,UACR,YAAa,MACb,EAAG,0HACH,SAAU,SACZ,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,EAAG,sIACL,EAAC,EAAI,IAAW,IAAsB,gBAAmB,CAAC,OAAQ,CAChE,KAAM,UACN,SAAU,UACV,EAAG,uKACH,SAAU,SACZ,EAAC,GgItBD,IAAM+0C,GAAyB,CAAC,CAAEC,iBAAAA,CAAgB,CAAE,GAEhD,WAAC,O,SAEGA,EAAiB,GAAG,CAAC76C,AAAAA,IACnB,GAAM,CAAEuY,MAAAA,CAAK,CAAEzZ,KAAAA,CAAI,CAAE,CAAGkB,EACxB,MAEI,YAAC,OAAI,UAAU,c,UACb,YAAC,WAAQ,UAAU,sH,UACjB,WAAC,OAAI,UAAU,kC,SACb,WAAC,OACC,QAAQ,OACR,IAAK9F,EAAY,CAAC4E,EAAK,CACvB,UAAU,2DACV,MAAO,IACP,OAAQ,GACR,IAAI,E,KAGR,WAAC,OAAI,UAAU,yB,SACb,WAAC,OAAI,UAAU,8B,SACb,YAAC,OAAI,UAAU,2C,UACb,YAAC,OAAI,UAAU,uB,UACb,WAAC,OAAI,UAAU,uD,SACb,WAAC,MAAG,UAAU,kD,SACXyZ,C,KAGL,YAAC,OAAI,UAAU,iC,UACb,WAACkf,GAAAA,CAAqBA,CAAAA,CAAC,UAAU,yB,GACjC,WAAC,QAAK,UAAU,oC,SAAoC,W,SAKxD,WAAC,KACC,KAAK,mCACL,UAAU,wG,SACX,oB,aAOT,YAAC,OAAI,UAAU,kB,UACb,WAAC,OAAI,UAAU,0C,GACf,WAAC,OACC,UAAU,qGACV,MAAO,CAAE,MAAO,MAAO,C,QAMnC,E,EAORmjB,CAAAA,GAAuB,YAAY,CAAG,CACpC,iBAAkB,EAAE,AACtB,EAEAA,GAAuB,SAAS,CAAG,CACjC,iBAAkB/iB,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQtE,GAAAA,MAAMA,CAClC,EC9DA,IAAMunB,GAAgC,CAAC,CAAE96C,OAAAA,EAAS,CAAC,CAAC,CAAE+6C,kBAAAA,EAAoB,EAAE,CAAEC,qBAAAA,EAAuB//C,AAAAA,GAAKA,CAAC,CAAE,IAC3G,GAAM,CACJmF,SAAAA,CAAQ,CAAEgB,GAAAA,CAAE,CAAE,MAAOo/B,CAAW,CAAE1hC,KAAAA,CAAI,CACvC,CAAGkB,EACE,CAAE8E,cAAAA,CAAa,CAAEC,sBAAAA,CAAqB,CAAEM,wBAAAA,CAAuB,CAAE,CAAGR,GAA6B7E,GAEjGi7C,EAAaF,EAAkB,QAAQ,CAAC35C,GAExC85C,EAAmB,KACvB,GAAID,EAAY,CACdD,EAAqBD,EAAkB,MAAM,CAACI,AAAAA,GAAgBA,IAAiB/5C,IAC/E,MACF,CACA45C,EAAqB,IAAID,EAAmB35C,EAAG,CACjD,EAEMg6C,EAAaH,EAAaI,GAAgB3lB,GAAAA,CAAeA,CAC/D,MACE,wB,SACE,YAAC,QAAK,UAAU,S,UACd,YAAC,WAAQ,UAAU,gK,UACjB,WAAC,OAAI,UAAU,8B,SACb,WAAC,OACC,QAAQ,OACR,IAAKx7B,EAAY,CAAC4E,EAAK,CACvB,UAAU,qDACV,IAAI,E,KAGR,YAAC,OAAI,UAAU,kD,UACb,YAAC,O,UACC,WAAC,OAAI,UAAU,uD,SACb,WAAC,MAAG,UAAU,kD,SACX0hC,C,KAGL,WAAC,OAAI,UAAU,mE,SACZ,CAAC,EAAEn7B,EAAwB,EAAE,EAAEN,EAAsB,OAAO,CAAC,A,MAGlE,WAAC,OACC,QAASm2C,EACT,UAAWA,EACX,UAAU,gC,SAEV,WAACE,EAAAA,CAAW,UAAU,S,WAI5B,YAAC,OAAI,UAAU,W,UACb,WAAC,OAAI,UAAU,0C,GACf,WAAC,OACC,UAAU,qGACV,MAAO,CAAE,MAAO,CAAC,EAhDJt2C,AAAgB,IAAhBA,EAAuB1E,EAgDH,CAAC,CAAC,AAAC,E,SAEpC,WAACmnC,GAAQA,CAAC,UAAU,8D,YAMhC,CAGAuT,CAAAA,GAA8B,SAAS,CAAG,CACxC,OAAQvnB,GAAAA,MAAMA,CACd,qBAAsBxc,GAAAA,IAAIA,CAC1B,kBAAmB8gB,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQtE,GAAAA,MAAMA,CACnC,ECvEA,IAAM+nB,GAAmC,CAAC,CAAE5kD,QAAAA,EAAU,CAAC,CAAC,CAAEkI,WAAAA,EAAa,EAAE,CAAEmI,YAAAA,EAAc,EAAE,CAAE,QASvFw0C,EACAtU,EATJ,IAAMlT,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IAEX,CACJzb,MAAAA,CAAK,CAAErY,WAAAA,CAAU,CAAE8E,SAAAA,CAAQ,CAAE,KAAMnG,CAAW,CAC/C,CAAGnI,EACE,CAAE0J,SAAAA,CAAQ,CAAE,CAAGF,EACf,CAAEkF,cAAAA,EAAgB,GAAG,CAAED,cAAAA,CAAa,CAAE,CAAGH,EAI/C,GAAII,GAAiBD,EAAe,CAClC,IAAMq2C,EAAuBtgD,GAAekF,GACtCq7C,EAAsB37C,SAAUqF,GAAiBC,EAAgB,IAGvE6hC,EAAiBwU,AAAsB,IAAtBA,EAA6BD,EAC9CD,EAAsBj3C,GAHGk3C,EAAuBC,EAIlD,CACA,IAAM30C,EAAqB,CAAC8vB,EAAkBC,EAAiBC,IAAqB/C,EAASxmB,GAAgB,kBAAkB,CAACqpB,EAAkBC,EAAiBC,IAEnK,MACE,wB,SACE,YAAC,QAAK,UAAU,S,UACd,WAAC,WAAQ,UAAU,mK,SACjB,YAAC,OAAI,UAAU,4D,UACb,YAAC,OAAI,UAAU,S,UACb,WAAC,OAAI,UAAU,uD,SACb,WAAC,MAAG,UAAU,4E,SACXve,C,KAIHgjC,GACE,WAAC,OAAI,UAAU,mD,SACZA,C,MAKT,WAAC,OAAI,UAAU,gB,SACb,WAACvmB,GAAAA,EAAIA,CAAAA,CACH,GAAIh3B,GAAe,CAAC,CAAC,EAAE+I,EAAY,CAAC,EAAEnI,EAAW,CAAC,EAAEC,EAAY,CAAC,EACjE,QAAS,IAAMiI,EAAmBC,EAAanI,EAAYC,G,SAE3D,WAAC,UACC,KAAK,SACL,UAAU,uO,SAEX,mB,YAOT,YAAC,OAAI,UAAU,W,UACb,WAAC,OAAI,UAAU,0C,GACf,WAAC,OACC,UAAU,qGACV,MAAO,CAAE,MAAO,CAAC,EAAEooC,EAAgBxqC,KAAK,IAAI,CAACwqC,GAAiB,EAAE,CAAC,CAAC,AAAC,E,SAElEA,GACC,WAACM,GAAQA,CAAC,UAAU,8D,YAOlC,CAEA+T,CAAAA,GAAiC,SAAS,CAAG,CAC3C,QAAS/nB,GAAAA,MAAMA,CACf,WAAYnd,GAAAA,MAAMA,CAClB,YAAaA,GAAAA,MAAMA,AACrB,EC8EA,OArJyB,KACvB,IAAM2d,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACXlzB,EAAUmzB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAYvjB,GAAiB,UAAU,EACjD4zB,EAAkBluC,AAAAA,GAAgB29B,EAASxmB,GAAgB,eAAe,CAACnX,IAE3E,CAACslD,EAAmBC,EAAqB,CAAGl9B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,EAAE,EACvD,CAACs8B,EAAmBC,EAAqB,CAAGv8B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,EAAE,EACvD,CAACm9B,EAAqBC,EAAuB,CAAGp9B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,EAAE,EAC3Do8B,EAAmB/5C,EAAQ,MAAM,CAACd,AAAAA,I,IAAW+C,E,MAAAA,AAAAA,CAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAgB,OAAhBA,CAAAA,EAAAA,EAAQ,QAAQ,AAAD,GAAfA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAkB,QAAQ,AAAD,GAAK,EAAC,EAAG,MAAM,CAAG,C,GACxF+4C,EAAyBjB,AAA4B,IAA5BA,EAAiB,MAAM,CAEtDzhC,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACR,GAAItY,EAAQ,MAAM,CAAG,EAAG,CACtB,IAAMi7C,EAAMz2C,GAAyBxE,GAC/Bk7C,EAAYv7C,OAAO,IAAI,CAACs7C,EAC1BC,CAAAA,EAAU,MAAM,CAAG,GAAGhB,EAAqB,IAAIgB,EAAU,EAC7DL,EAAqBI,EACvB,CACF,EAAG,CAACj7C,EAAQ,EAEZsY,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACRkrB,EAAgB,YAClB,EAAG,EAAE,EAEL,GAAM,CAAC0D,EAAWC,EAAa,CAAGxpB,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,GAErCypB,EAAiB3pC,AAAAA,IACrB0pC,EAAa1pC,EACf,EAEM09C,EAAkBn7C,EAAQ,MAAM,CAACd,AAAAA,GAAUS,OAAO,IAAI,CAACi7C,GAAmB,QAAQ,CAAC17C,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,EAAE,GAEnG,MACE,yB,UACE,YAAC,OAAI,UAAU,mD,UACb,WAAC,UACC,KAAK,SACL,QAAS,IAAMkoC,EAAe,GAC9B,UACE7rB,KAAW,CAAE,yCAA0C2rB,AAAc,IAAdA,CAAgB,EACrE,yC,SAEL,mB,GAGD,WAAC,UACC,KAAK,SACL,SAAU8T,EACV,QAAS,IAAM5T,EAAe,GAC9B,UACE7rB,KAAW,CACT,uCAAwC2rB,AAAc,IAAdA,EACxC,iCAAkC8T,CACpC,EAAG,yC,SAEN,W,MAKD9T,AAAc,IAAdA,EACEiU,AAA2B,IAA3BA,EAAgB,MAAM,CACpB,YAAC,OAAI,UAAU,mD,UACb,WAACC,GAAUA,CAAC,UAAU,gB,GACtB,WAAC,KAAE,UAAU,0C,SAA0C,0C,GACvD,WAAClnB,GAAAA,EAAIA,CAAAA,CAAC,GAAIh3B,GAAe,Y,SACvB,WAAC,OAAI,UAAU,gG,SAAgG,iB,QAInHi+C,EAAgB,GAAG,CAACj8C,AAAAA,IAClB,GAAM,CAAEoB,GAAAA,CAAE,CAAE9C,SAAAA,EAAW,EAAE,CAAE,KAAMyI,CAAW,CAAE,CAAG/G,EAC3CwF,EAAqBlH,EAAS,MAAM,CAAC,CAAC,CAAEE,SAAAA,EAAW,EAAE,CAAE,GAAKA,EAAS,MAAM,CAAG,GACpF,MACE,YAAC,O,UACC,WAAC,OAAI,UAAU,O,SACb,WFhBLs8C,GEgBmCA,CAC5B,OAAQ96C,EACR,kBAAmB+6C,EACnB,qBAAsBC,C,KAItBD,EAAkB,QAAQ,CAAC35C,IACzBoE,EAAmB,GAAG,CAACpC,AAAAA,IACrB,GAAM,CACJ,GAAI6C,CAAS,CAAE,MAAOE,CAAY,CAAE,KAAMvH,CAAU,CAAEJ,SAAAA,EAAW,EAAE,CACpE,CAAG4E,EACEqC,EAAqBjH,EAAS,MAAM,CAAC9H,AAAAA,IACzC,GAAM,CAAEsO,SAAAA,EAAW,CAAC,CAAC,CAAE9E,WAAAA,EAAa,CAAC,CAAC,CAAE,CAAGxJ,GAAW,CAAC,EACjD,CAAE2K,KAAAA,EAAO,EAAE,CAAE,CAAGnB,EAChB,CAAEgF,MAAAA,EAAQ,EAAK,CAAEb,SAAAA,EAAW,EAAK,CAAE,CAAGW,QAC5C,AAAa,YAAT3D,GAAuB,CAACgD,KAAYa,GACjC,EACT,GACA,GAAIO,AAA8B,IAA9BA,EAAmB,MAAM,CAAQ,OAAO,KAC5C,IAAM02C,EAAmBP,EAAoB,QAAQ,CAAC31C,GAChDm2C,EAAoBD,EAAmBzmB,GAAAA,CAAeA,CAAG2lB,GAQ/D,MACE,yB,UACE,YAAC,UACC,KAAK,SACL,QAXsB,KAC1B,GAAIc,EAAkB,CACpBN,EAAuBD,EAAoB,MAAM,CAACS,AAAAA,GAAUA,IAAWp2C,IACvE,MACF,CACA41C,EAAuB,IAAID,EAAqB31C,EAAU,CAC5D,EAMM,UAAU,mF,UAERE,EACF,WAACi2C,EAAAA,CAAkB,UAAU,iC,MAE/B,WAAC,W,SAEG,CAACD,GACC12C,EAAmB,GAAG,CAAC/O,AAAAA,GACrB,WAAC,OAAI,UAAU,O,SACb,WD/CzB4kD,GC+C0DA,CAC/B,QAAS5kD,EAET,WAAYkI,EACZ,YAAamI,C,EAFRrQ,MAAAA,EAAAA,KAAAA,EAAAA,EAAS,EAAE,C,QAWlC,G,EAKZ,GAGF,WHzFKkkD,GGyFkBA,CAAC,iBAAkBC,C,KAMpD,EChDA,GAnGkB,KAChB,IAAM9mB,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACXoQ,EAAiB,IAAMrQ,EAASxmB,GAAgB,cAAc,IAC9DnX,EAAe69B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MAErB7a,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACRgrB,GACF,EAAG,EAAE,EAEL,IAAIkY,EAAa,CAAC,EAClB,OAAQlmD,GACN,IAAK,eACHkmD,EAAa,CACX,MAAO,wBACP,YAAa,uEACf,EACA,KACF,KAAK,WACHA,EAAa,CACX,MAAO,WACP,YAAa,6DACf,EACA,KACF,SACEA,EAAa,CACX,MAAO,kBACP,YAAa,8HACf,CACJ,CACA,GAAM,CAACC,EAAcC,EAAgB,CAAG/9B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IAC3Cg+B,EAAqB,KACzBD,EAAgB,CAACD,EACnB,EACMG,EAAuBhhD,GAAyB,IAAI,CAACw+C,AAAAA,GAAMA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAI,IAAI,AAAD,IAAM9jD,GACxEumD,EAAuBjhD,GAAyB,MAAM,CAACw+C,AAAAA,GAAMA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAI,IAAI,AAAD,IAAM9jD,GAChF,MACE,yB,UACE,WnDCS+hC,GmDDJA,CAAC,MAAOmkB,EAAW,KAAK,CAAE,YAAaA,EAAW,WAAW,A,GAClE,WAAC,WAAQ,UAAU,4B,SACjB,YAAC,OAAI,UAAU,0B,UACb,YAAC,WAAQ,UAAU,kB,UAEfI,GACE,YAAC,UACC,KAAK,SACL,QAASD,EACT,UAAW,CAAC,qFAAqF,EAAEF,EAAe,2BAA6B,GAAG,CAAC,C,UAElJG,MAAAA,EAAAA,KAAAA,EAAAA,EAAsB,UAAU,CAChCH,EAAe,WAAClB,GAAaA,CAAC,UAAU,S,GAAe,WAAC3lB,GAAAA,CAAeA,CAAAA,CAAC,UAAU,S,MAKvF6mB,GACE,WAAC,M,SAEGI,EAAqB,GAAG,CAAC,CAAC,CAAEC,WAAAA,CAAU,CAAEt/C,KAAAA,CAAI,CAAEu/C,SAAAA,CAAQ,CAAE,CAAEt+C,IACxD,WAACy2B,GAAAA,EAAIA,CAAAA,CAEH,QAASynB,EACT,GAAIz+C,GAAe,CAAC,UAAU,EAAE,AAAC6+C,EAAwB,GAAb,CAAC,CAAC,EAAEv/C,EAAK,CAAC,CAAM,CAAC,E,SAE7D,WAAC,UACC,KAAK,SACL,UAAW+e,KAAW,uFAAwF,CAC5G,2BAA4BsgC,EAAqB,MAAM,CAAG,IAAMp+C,CAClE,G,SAECq+C,C,IAVEA,G,MAmBnB,WAAC,OAAI,UAAU,gB,SACb,WAAC,WAAQ,UAAU,uC,SACjB,yB,UACE,WAAC9U,GAAAA,EAAKA,CAAAA,CAAC,MAAK,GAAC,KAAK,a,SAChB,WAACgV,GAAgBA,CAAAA,E,GAEnB,WAAChV,GAAAA,EAAKA,CAAAA,CAAC,MAAK,GAAC,KAAK,0B,SAChB,WAACiV,GAAcA,CAAAA,E,GAEjB,WAACjV,GAAAA,EAAKA,CAAAA,CAAC,MAAK,GAAC,KAAK,sB,SAChB,WAACkV,GAAQA,CAAAA,E,iBAS3B,E,cnI9GA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAO,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CACxE,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,mFACH,SAAU,SACZ,KoIHMC,GAAU,CACd,CACE,GAAI,EACJ,MAAO,mCACP,QAAS,0FACX,EACA,CACE,GAAI,EACJ,MAAO,wCACP,QAAS,4KACX,EACA,CACE,GAAI,EACJ,MAAO,+BACP,QACE,wRACJ,EACA,CACE,GAAI,EACJ,MAAO,4DACP,QACE,4aACJ,EACA,CACE,GAAI,EACJ,MAAO,iDACP,QACE,+PACJ,EACA,CACE,GAAI,EACJ,MAAO,kDACP,QACE,oMACJ,EACA,CACE,GAAI,EACJ,MAAO,4CACP,QAAS,2VACX,EACA,CACE,GAAI,EACJ,MAAO,0CACP,QAAS,iGACX,EACA,CACE,GAAI,EACJ,MAAO,+BACP,QAAS,kNACX,EACA,CACE,GAAI,GACJ,MAAO,wEACP,QAAS,qKACX,EACD,CA6GD,OA3GY,KACV,IAAMlpB,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACX,CAACkpB,EAAeC,EAAiB,CAAG1+B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,CAAC,EAAE,EAChD,CAACqZ,EAAeslB,EAAiB,CAAG3+B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IAC7C6lB,EAAkBluC,AAAAA,GAAgB29B,EAASxmB,GAAgB,eAAe,CAACnX,IAEjFgjB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACRkrB,EAAgB,MAClB,EAAG,EAAE,EAEL,IAAM+Y,EAA6BrgD,AAAAA,IACjC,GAAIkgD,EAAc,QAAQ,CAAClgD,GAAI,CAC7BmgD,EAAiBD,EAAc,MAAM,CAACI,AAAAA,GAAYA,IAAatgD,IAC/D,MACF,CACAmgD,EAAiB,IAAID,EAAelgD,EAAE,CACxC,EAEMugD,EAAkBN,GAAQ,MAAM,CAACO,AAAAA,IACrC,GAAI1lB,EAAc,MAAM,EAAI,EAAG,MAAO,GACtC,GAAM,CAAEvf,MAAAA,CAAK,CAAEgd,QAAAA,CAAO,CAAE,CAAGioB,EAC3B,OAAOpyC,GAAkBmN,EAAOuf,IAAkB1sB,GAAkBmqB,EAASuC,EAC/E,GAEM2lB,EAAeF,EAAgB,MAAM,GAAKN,GAAQ,MAAM,CAExDS,EAAoB90C,AAAAA,IACxB,IAAM+0C,EAA2Bh1C,GAAsBmvB,GACjD8lB,EAAqB9lB,EAAc,WAAW,GAC9C+lB,EAAqB/lB,EAAc,WAAW,GACpD,OACElvB,EACG,UAAU,CAACkvB,EAAe,CAAC,MAAM,EAAEA,EAAc,OAAO,CAAC,EACzD,UAAU,CAAC6lB,EAA0B,CAAC,MAAM,EAAEA,EAAyB,OAAO,CAAC,EAC/E,UAAU,CAACC,EAAoB,CAAC,MAAM,EAAEA,EAAmB,OAAO,CAAC,EACnE,UAAU,CAACC,EAAoB,CAAC,MAAM,EAAEA,EAAmB,OAAO,CAAC,CAE1E,EAEA,MACE,wB,SACE,YAAC,WAAQ,MAAO,CAAE,WAAY,SAAU,E,UACtC,WpDvDO1lB,GoDuDFA,CACH,MAAM,sBACN,YAAY,kC,GAEd,WAAC,OAAI,UAAU,sD,SACb,YAAC,OAAI,UAAU,gE,UACb,YAAC,SAAM,QAAQ,SAAS,UAAU,mIAAmI,aAAW,S,UAC9K,WAAC1K,GAAAA,CAAmBA,CAAAA,CAAC,UAAU,kC,GAC/B,WAAC,SACC,KAAK,SACL,GAAG,SACH,MAAOqK,EACP,YAAY,6BACZ,UAAU,6CACV,SAAU/gC,AAAAA,GAASqmD,EAAiBrmD,EAAM,MAAM,CAAC,KAAK,C,MAG1D,YAAC,M,UAEIwmD,AAA2B,IAA3BA,EAAgB,MAAM,EACrB,WAAC,OAAI,UAAU,mC,SAAmC,yB,GAKrDA,EAAgB,GAAG,CAAC,CAACO,EAAK9gD,EAAG,CAAE+gD,OAAAA,CAAM,CAAE,IACtC,IAAM9C,EAAaiC,EAAc,QAAQ,CAACY,EAAI,EAAE,GAAKL,EAC/C,CAAEr8C,GAAAA,CAAE,CAAEmX,MAAAA,CAAK,CAAEgd,QAAAA,CAAO,CAAE,CAAGuoB,EAC/B,MACE,YAAC,MAAY,UAAW,CAAC,UAAU,EAAE9gD,EAAI,IAAM+gD,EAAS,WAAa,2BAA2B,CAAC,C,UAC/F,YAAC,UACC,QAAS,KACPV,EAA2Bj8C,EAC7B,EACA,KAAK,SACL,UAAW,CAAC,oHAAoH,EAAE65C,EAAa,OAAS,OAAO,CAAC,C,UAEhK,WAAC,OACC,wBAAyB,CACvB,OAAQwC,EAAeC,EAAkBnlC,GAASA,CACpD,EACA,UAAW,CAAC,iDAAiD,EAAE0iC,EAAa,iBAAmB,iBAAiB,CAAC,A,GAElHA,EAAa,WAAC+C,GAAAA,CAASA,CAAAA,CAAC,UAAU,mBAAmB,aAAW,e,GAAqB,WAACC,GAAQA,CAAC,UAAU,mBAAmB,aAAW,c,MAEzIhD,GACC,WAAC,KAAE,UAAU,4F,SACX,WAAC,OACC,wBAAyB,CACvB,OAAQwC,EAAeC,EAAkBnoB,GAAWA,CACtD,C,OArBCn0B,EA2Bb,G,YAOd,EnIzKA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAe,AAAG,GAAsB,gBAAmB,CAAC,MAAO,GAAS,CAChF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,IAAU,IAAqB,gBAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,utBACH,SAAU,SACZ,K,8HoIoJA,GAlJgC,KAC9B,IAAM2yB,EAAWC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IAEX,CAAEr6B,cAAAA,CAAa,CAAE,CAAGukD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,KAAe,CAAC,EACpC,CAACz0C,EAAiB00C,EAAmB,CAAG1/B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,IACxC,CAAC2/B,EAA0BC,EAA4B,CAAG5/B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,EAAS,IACnE,CAAC6/B,EAAkBC,EAAoB,CAAG9/B,AAAAA,CAAAA,EAAAA,GAAAA,QAAAA,AAAAA,IAE1C6lB,EAAkBluC,AAAAA,GAAgB29B,EAASxmB,GAAgB,eAAe,CAACnX,IAC3E03C,EAAwB,CAACt3C,EAAU+S,IAAawqB,EAASxmB,GAAgB,qBAAqB,CAAC/W,EAAU+S,IACzGi1C,EAAmBhtD,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,4BAEvD4nB,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACRkrB,EAAgB,UAChB5qC,GAAkBC,GAAe,IAAI,CAAC8kD,AAAAA,IACpC,IAAMC,EACJ,AAA2B,UAA3B,OAAOD,GAAiCtnD,MAAM,OAAO,CAACsnD,IAAoBA,AAA2B,IAA3BA,EAAgB,MAAM,CAC9F,CAAC,EAAIA,EAEH,CAAE,SAAUE,CAAO,CAAE,eAAgBC,CAAoB,CAAE,CAAGF,CAChEE,AAAyBjnD,MAAAA,IAAzBinD,EACFL,EAAoB,CAClB,KAAMC,EAAmB,sBAAwB,uBACnD,GACUG,EAELJ,EAAoB,IADzBA,EAAoB,CAAE,KAAM,0BAA2B,GAEzDJ,EAAmBO,EACrB,EACF,EAAG,EAAE,EACL,GAAM,CACJ,UAAWloD,CAAQ,CACnB,YAAaqoD,CAAU,CACvB,kBAAmBC,CAAgB,CACpC,CAAGr1C,GAAmB,CAAC,EAQlB,CAAE,KAAMs1C,EAAY,EAAE,CAAE,CAAGT,GAAoB,CAAC,EACtD,MACE,wB,SACE,YAAC,WAAQ,MAAO,CAAE,WAAY,SAAU,E,UACtC,WrDPOnmB,GqDOFA,CACH,MAAM,2BACN,YAAY,6E,GAGX1uB,GAAmB60C,AAAqB3mD,KAAAA,IAArB2mD,GAClB,WAAC,OAAI,UAAU,wD,SACb,YAAC,OAAI,UAAU,mD,UAEX,AAACA,EAoBCS,AAAc,0BAAdA,EACE,yB,UACE,WAAC,OACC,QAAQ,OAAO,IAAKC,GAAgB,UAAU,2CAC9C,MAAO,IACP,OAAQ,IACR,IAAI,uB,GAEN,WAAC,KAAE,UAAU,gE,SACVvlC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAoB,mIAAmI,CACtJ,UAAW7Q,AAAAA,GAAQ,WAAC,K,SAAGA,C,EACzB,E,MAIJ,yB,UACE,WAAC,OACC,QAAQ,OAAO,IAAKq2C,GAAoB,UAAU,2CAClD,MAAO,IACP,OAAQ,IACR,IAAI,qB,GAEN,WAAC,KAAE,UAAU,gE,SACV,CAAC,gCAAgC,EAAET,EAAmB,cAAgBU,AA9DlE,EAACC,EAAiB,EAAE,IAC/C,GAAM,CAAC5zC,EAAK,CAAG4zC,EAAe,KAAK,CAAC,KAC9B,CAACC,EAAMC,EAAOC,EAAI,CAAG/zC,EAAK,KAAK,CAAC,KACtC,MAAO,CAAC,EAAE8zC,EAAM,CAAC,EAAEC,EAAI,CAAC,EAAEF,EAAK,CAAC,AAClC,GA0DoHP,GAAY,CAAC,A,MA1C/G,yB,UACE,WAAC,OACC,QAAQ,OACR,IAAK,CAAC,CAAC,EAAEC,EAAiB,eAAe,CAAC,CAC1C,MAAO,IACP,OAAQ,IACR,IAAK,CAAC,EAAEttD,OAAO,QAAQ,CAAC,MAAM,CAAC,qBAAqB,EAAEmI,EAAc,kBAAkB,CAAC,CACvF,QAAS,KACP4kD,EAAoB,CAClB,KAAM,6BACR,EACF,EACA,UAAU,oC,GAEZ,WAAC,KAAE,UAAU,kE,SACV,CAAC,mCAAmC,EAAEO,EAAiB,EAAE,CAAC,A,MAiCnE,YAAC,KAAE,UAAU,8D,UAA8D,0DAEzE,WAAC,KAAE,UAAU,4DAA4D,KAAK,WAAW,OAAO,S,SAAS,iB,GAAmB,O,GAI5HttD,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,4BAC5B,YAAC,UACC,KAAK,SACL,SAAU4sD,EACV,QAAS,KACPC,EAA4B,IAC5BvQ,EAAsBt3C,EAAU,KAC9B6nD,EAA4B,IAC5B7sD,OAAO,QAAQ,CAAC,MAAM,EACxB,EACF,EAEA,UAAW,CAAC,mPAAmP,EAAE4sD,EAA2B,kCAAoC,GAAG,CAAC,C,UAGjUA,EACC,WAACtM,GAAAA,CAAOA,CAAAA,CACN,UAAU,kCACV,YAAY,M,GAEZ,WAACyN,GAAgBA,CAAC,UAAU,S,GAEjC9jD,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,0B,YAYzB,E,WCjJA,IAAM+jD,GAAYr4C,SAAS,cAAc,CAAC,QAG1Cs4C,AAFaC,AAAAA,CAAAA,EAAAA,GAAAA,UAAAA,AAAAA,EAAWF,IAEnB,MAAM,CACT,WAACG,GAAAA,EAAQA,CAAAA,CAAC,MhH4CG9qC,G,SgH3CX,WCUQ,KACV,IAAMjX,EAAUiO,KAEV,CAAE,YAAajE,CAAI,CAAE,CAAGqsB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MACxB79B,EAAe69B,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,MAEf,CAAE,aAAc5rB,CAAW,CAAE,CAAGT,GAAQ,CAAC,EACzC,CAAEU,KAAAA,EAAO,EAAE,CAAE,CAAGD,GAAe,CAAC,EAChCjK,EAAiBkK,AAAS,KAATA,GAAeA,AAAS,UAATA,EAGhCs3C,EAAoBC,AADK,CAAC,UAAW,YAAa,SAAU,eAAgB,WAAY,MAAM,CACnD,QAAQ,CAACzpD,GAEpD0pD,EAAcF,EAAoB,WAACG,GAAgBA,CAAAA,GAAM,WAACC,GAAeA,CAAAA,GACzEC,EAAwB9zB,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQ,IAAMhuB,GAAgCP,EAASxH,EAAcgI,IAiBnG,MAfAgb,AAAAA,CAAAA,EAAAA,GAAAA,SAAAA,AAAAA,EAAU,KACJ5nB,AAAkC,eAAlCA,OAAO,UAAU,CAAC,WAAW,CAGjCA,OAAO,wBAAwB,CAAG,GAClCA,OAAO,uBAAuB,CAAG,GAEjCA,OAAO,qBAAqB,CAAG,KAC7B,IAAMmM,EAAMnM,OAAO,QAAQ,CAAC,IAAI,AAEhCA,CAAAA,OAAO,QAAQ,CAAC,IAAI,CAAGmM,CACzB,EACAnM,OAAO,oBAAoB,CAAGA,OAAO,qBAAqB,AAC5D,EAAG,EAAE,EAGH,YAACmuD,GAAAA,EAAQA,CAAAA,CAAC,MjHCC9qC,G,UiHAT,WnM+FS4e,GmM/FF7C,CACL,eAAgBqvB,EAChB,MAAOL,EAAoB,OAAS,QACpC,UAAW,CAAE,yBAA0BE,EAAa,yCAA0C,WAACE,GAAeA,CAAAA,GAAK,QAAShiD,GAAeJ,EAAS,EACpJ,WAAY,CACV,iBAAmBgiD,EAAoB,sBAAwB,yBAC/D,uBAAyBA,EAAoB,wBAA0B,0BACzE,C,GAEF,YAACM,GAAAA,EAAMA,CAAAA,CAAC,QAASnzC,GAAS,SAAUnP,E,UAClC,WAACuiD,GAAaA,CAAC,MAAO/pD,C,GACtB,YAACgqD,GAAAA,EAAMA,CAAAA,C,UACL,WAACtY,GAAAA,EAAKA,CAAAA,CAAC,MAAK,GAAC,KAAK,I,SAChB,WAACuY,GAAOA,CAAAA,E,GAEV,WAACvY,GAAAA,EAAKA,CAAAA,CAAC,KAAK,mB,SACV,WAACwY,GAAeA,CAAAA,E,GAElB,WAACxY,GAAAA,EAAKA,CAAAA,CAAC,KAAK,W,SACV,WAACwY,GAAeA,CAAAA,E,GAElB,WAACxY,GAAAA,EAAKA,CAAAA,CAAC,KAAK,a,SACV,WAACyY,GAASA,CAAAA,E,GAEZ,WAACzY,GAAAA,EAAKA,CAAAA,CAAC,MAAK,GAAC,KAAK,4B,SAChB,WAAC0Y,GAAqBA,CAAAA,E,GAExB,WAAC1Y,GAAAA,EAAKA,CAAAA,CAAC,MAAK,GAAC,KAAK,O,SAChB,WAAC2Y,GAAGA,CAAAA,E,GAEN,WAAC3Y,GAAAA,EAAKA,CAAAA,CAAC,MAAK,GAAC,KAAK,gB,SAChB,WAAC0Y,GAAqBA,CAAAA,E,GAExB,WAAC1Y,GAAAA,EAAKA,CAAAA,CAAC,MAAK,GAAC,KAAK,qC,SAChB,WAAC4Y,GAAuBA,CAAAA,E,GAE1B,YAAC5Y,GAAAA,EAAKA,CAAAA,CAAC,KAAK,yC,UACV,WAAC0Y,GAAqBA,CAAAA,GACtB,YAAC,QAAK,UAAU,yB,UACd,WAACG,GAAWA,CAAAA,GACZ,YAAC,OAAI,UAAU,gC,UACb,WAACC,GAAOA,CAAAA,GACR,WAAC,WAAQ,UAAU,uB,SACjB,WAAC,OAAI,UAAU,yB,SACb,WAAC,OACC,UAAWvkC,KAAW,qBAAsB,CAC1C,eAtEM,EAuER,G,SAEA,WAACwkC,GAAmBA,CAAAA,E,wBAW1C,EDvGQC,CAAAA,E,sIEfD,IAAMC,EAAcn5C,AAAAA,I,IAA+Co5C,E,MAAvC,CAAC,QAAS,UAAW,SAAS,CAAC,OAAO,CAACA,MAAAA,EAAAA,KAAAA,EAAAA,AAAkB,OAAlBA,CAAAA,EAAAA,EAAM,YAAY,AAAD,GAAjBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoB,IAAI,EAAI,E,EAEzFC,EAAc,IAAMzvD,OAAO,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAoB,IAAMA,OAAO,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,cAAgB,GAEpI0vD,EAAY,K,IAAMC,E,MAAAA,AAAAA,CAAAA,AAAiB,OAAjBA,CAAAA,EAAAA,OAAO,UAAU,AAAD,GAAhBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmB,WAAW,AAAD,IAAM,cAAgB3vD,AAAuB,eAAvBA,OAAO,WAAW,A,mBCJ7F,IAAM4vD,EAAqB,IAFlC,MAAMC,EAAyB,E,8BCE/B,EAAe,IAAIhqD,EAAAA,CAAYA,CAAC,OAAQ,CACtC,kBAAmB,CACjB,OAAQ2tB,EAAAA,CAAMA,CAAC,MAAM,CACrB,2BAA4B,CAAC1tB,EAAAA,CAAAA,CAAAA,gCAA6C,CAAC,AAC7E,CACF,ECAO,OAAMwtB,EA2DX,IAAI,8BAA+B,CACjC,MAAO,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAC5C,CAGA,IAAI,iCAAkC,CACpC,MAAO,CAAC,CAAC,IAAI,CAAC,0BAA0B,EAC1C,CAGA,IAAI,oBAAqB,CACvB,OAAOo8B,KAAe,CAACH,EAAY,IAAI,CAAC,IAAI,GAAK,CAACE,KAAiB,CAACK,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,GACtE,CAGA,IAAI,0BAA2B,CAC7B,MAAO7gD,CAAAA,CAAAA,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAG,IACjDA,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC8gD,AAAAA,GAAeA,EAEhE,CAGA,IAAI,gBAAiB,CACnB,GAAM,CAAEC,kBAAAA,CAAiB,CAAE,CAAG,IAAI,CAAC,SAAS,CAC5C,GAAIA,EAAmB,MAAO,GAC9B,IAAM7C,EAAU,IAAI,CAAC,kBAAkB,EAAI,IAAI,CAAC,wBAAwB,OACxE,EAAIA,IAGA,CAACA,GAAW,IAAI,CAAC,aAAa,EAChC74C,QAAQ,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAElE,GACT,CAGA,IAAI,wBAAyB,CAC3B,MAAO,AAA8C,SAA9C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CACjD,CAGA,IAAI,2BAA4B,CAC9B,MAAO,AAA8C,UAA9C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CACjD,CAEA,IAAI,mBAAoB,CACtB,OAAO,IAAI,CAAC,4BAA4B,IAAM,IAAI,CAAC,0BAA0B,EAC/E,CAGA,8BAA+B,CAC7B,OAAOs7C,CAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAI,EAC9C,CAEA,2BAA2BK,CAAS,CAAE,CAChC,CAAC,IAAI,CAAC,4BAA4B,IACpCL,CAAAA,CAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAGK,CAAQ,EAE1C,IAAI,CAAC,aAAa,EACpB37C,QAAQ,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,2CAA2C,EAAE27C,EAAU,CAAC,CAEnG,CAGA,4BAA6B,CAC3B,OAAOv1C,EAAAA,CAAAA,CAAAA,mBAAiC,CAAC,CAAE,IAAK,IAAI,CAAC,sBAAsB,AAAC,IAAM,EACpF,CAEA,yBAAyBu1C,CAAS,CAAE,EAC9B,IAAI,CAAC,0BAA0B,KACnCv1C,EAAAA,CAAAA,CAAAA,mBAAiC,CAAC,CAChC,IAAK,IAAI,CAAC,sBAAsB,CAAE,MAAOu1C,CAC3C,GACI,IAAI,CAAC,aAAa,EACpB37C,QAAQ,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,8CAA8C,EAAE27C,EAAU,CAAC,EAEtG,CAGA,uBAAuBC,CAAc,CAAEC,CAAgB,CAAE,CACvD,OAAOA,EAAiB,GAAG,CAACC,AAAAA,GAAWA,EAAQ,IAAI,EAAE,QAAQ,CAACF,EAChE,CAGA,IAAI,+BAAgC,CAClC,GAAM,CAAEG,gBAAAA,CAAe,CAAE,CAAG,IAAI,CAAC,UAAU,QAC3C,AAAI,IAAI,CAAC,mBAAmB,CACnB,IAAI,CAAC,iBAAiB,GAAKA,IAEhC,IAAI,CAAC,qBAAqB,EACrB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,CAAEA,EAG/D,CAGA,gBAAgBC,CAAE,CAAE,CACA,YAAd,OAAOA,IACP,IAAI,CAAC,mBAAmB,EAAI,IAAI,CAAC,6BAA6B,CAChEA,EAAG,IACM,IAAI,CAAC,qBAAqB,CAEnCA,EAAG,CADmB,IAAI,CAAC,6BAA6B,CACrC,IAAI,CAAC,iBAAiB,CAAC,EAE1CA,EAAG,IAEP,CAGA,gBAAiB,CACf,OAAO,IAAI7pD,QAAQ,CAAC8pD,EAASC,KAC3B,IAAMjqD,EAAS,CAAE,eAAgB,IAAI,CAAC,cAAc,CAAE,kBAAmB,IAAI,CAAC,iBAAiB,AAAC,EAChGkqD,EAAAA,GAAS,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAE,CAAElqD,OAAAA,CAAO,GAAG,IAAI,CAACgkD,AAAAA,IACnE,GAAI,CAAE0F,UAAAA,CAAS,CAAE,CAAG1F,EAEpBgG,EADAN,EAAYA,EAAYA,EAAU,QAAQ,GAAKA,GAE3C,IAAI,CAAC,aAAa,EACpB37C,QAAQ,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAE9E,GAAG,KAAK,CAACk8C,EACX,EACF,CAEA,qCAAsC,CACpC,GAAI,CAAC,IAAI,CAAC,qBAAqB,CAAE,MAAO,GACxC,GAAM,CAAE,gBAAiBL,CAAgB,CAAE,CAAG,IAAI,CAAC,UAAU,CACzDt+C,EAAS,GAMb,OALAs+C,EAAiB,OAAO,CAACC,AAAAA,IAC8B,SAAjD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAEA,EAAQ,QAAQ,CAAC,CAAC,GAC7Cv+C,CAAAA,EAAS,CAAC,GAAMu+C,EAAQ,IAAI,CAAC,A,CAEjC,GACOv+C,CACT,CAGA,eAAgB,CACd,OAAO,IAAIpL,QAAQ,CAAC8pD,EAASC,KAC3B,GAAM,CAAEE,iBAAAA,CAAgB,CAAEC,oBAAAA,CAAmB,CAAE,CAAG,IAAI,CAAC,SAAS,CAGhE,GAAI,IAAI,CAAC,mBAAmB,EAAKD,CAAAA,GAAoB,IAAI,CAAC,sBAAqB,EAAI,CACjFH,EAAQ,IACR,MACF,CAGA,IAAMK,EAAwB,IAAI,CAAC,mCAAmC,GACtE,GAAI,IAAI,CAAC,qBAAqB,EAAIA,EAAuB,CACvDL,EAAQK,GACR,MACF,CAIA,GAAI,CAAC,IAAI,CAAC,qBAAqB,EAAI,IAAI,CAAC,cAAc,EAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAE,CAClF,GAAM,CAAEP,gBAAAA,CAAe,CAAE,CAAG,IAAI,CAAC,UAAU,CAC3CE,EAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAKF,GACrC,MACF,CAGA,GAAK,CAAC,IAAI,CAAC,aAAa,EACnBM,GACA,IAAI,CAAC,yBAAyB,EAC9B,CAAC,IAAI,CAAC,cAAc,CAAG,CAC1B,GAAM,CAAEE,mBAAAA,CAAkB,CAAE,CAAG,IAAI,CAAC,UAAU,CAE9CN,EADe,KAAI,CAAC,mBAAmB,EAAW,CAAC,GAAOM,EAAmB,EAE7E,MACF,CAGA,GAAI,IAAI,CAAC,4BAA4B,EAAI,IAAI,CAAC,+BAA+B,CAAE,CAC7E,IAAI,CAAC,eAAe,CAACh/C,AAAAA,GAAU0+C,EAAQ1+C,IACvC,MACF,CAGA,IAAI,CAAC,cAAc,GAAG,IAAI,CAACo+C,AAAAA,IAKzB,IAAI,CAAC,0BAA0B,CAACA,GAG5BA,GAAa,IAAI,CAAC,8BAA8B,EAClD,IAAI,CAAC,wBAAwB,CAACA,GAG5B,IAAI,CAAC,aAAa,EACpB,IAAI,CAAC,qBAAqB,GAG5B,IAAI,CAAC,eAAe,CAACp+C,AAAAA,GAAU0+C,EAAQ1+C,GACzC,GAAG,KAAK,CAAC2+C,EACX,EACF,CAGA,IAAI,eAAgB,CAClB,OAAOvhD,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,GAChD,CAGA,uBAAwB,CACtB,GAAM,CACJ+gD,kBAAAA,CAAiB,CAAEU,iBAAAA,CAAgB,CAAEC,oBAAAA,CAAmB,CAAEG,aAAAA,CAAY,CACvE,CAAG,IAAI,CAAC,SAAS,CAGlB,GAAIC,AAFe,CAACf,EAAmBU,EAAkBC,EAAqBG,EAAa,CAE5E,QAAQ,CAAC,IAAO,CAC7Bx8C,QAAQ,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAG3ErF,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC+hD,AAAAA,IAC7B,IAAI,CAAC,SAAS,CAACA,EAAa,EACjC18C,QAAQ,IAAI,CAAC,CAAC,EAAE08C,EAAa,aAAa,EAAE,IAAI,CAAC,SAAS,CAACA,EAAa,CAAC,CAAC,CAC5E,GAEA,IAAMC,EAAW,CACf,cAAe,IAAI,CAAC,aAAa,CACjC,WAAY,IAAI,CAAC,UAAU,CAC3B,cAAe,CACb,2BAA4B,IAAI,CAAC,4BAA4B,GAC7D,8BAA+B,IAAI,CAAC,0BAA0B,EAChE,EACA,WAAY,CACV,YAAa1B,EAAY,IAAI,CAAC,IAAI,EAClC,UAAWG,IACX,YAAaD,GACf,EACA,iBAAkB,IAAI,CAAC,gBAAgB,AACzC,EAEAn7C,QAAQ,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAE28C,EACxD,CACF,CAxSA,YAAY,CACV76C,KAAAA,CAAI,CACJ86C,SAAAA,CAAQ,CACRC,SAAAA,CAAQ,CACRC,UAAAA,CAAS,CACTC,cAAAA,CAAa,CACbhB,gBAAAA,CAAe,CACfQ,mBAAAA,CAAkB,CAClBS,+BAAAA,CAA8B,CAC9BC,iBAAAA,CAAgB,CAChBC,eAAAA,CAAc,CACdC,kBAAAA,CAAiB,CAClB,CAAE,C,IAeuCC,EAAAA,CAdxC,KAAI,CAAC,IAAI,CAAGt7C,GAAQ,CAAC,EACrB,IAAI,CAAC,QAAQ,CAAG86C,EAChB,IAAI,CAAC,QAAQ,CAAGC,GAAY,GAC5B,IAAI,CAAC,aAAa,CAAGE,GAAiB,GACtC,IAAI,CAAC,gBAAgB,CAAGE,GAAoB,CAAC,EAC7C,IAAI,CAAC,8BAA8B,CAAGD,GAAkC,GACxE,IAAI,CAAC,mBAAmB,CAAI,AAA2B,UAA3B,OAAOjB,GAAiCA,EACpE,IAAI,CAAC,qBAAqB,CAAI,AAA2B,UAA3B,OAAOA,GAAiC1qD,MAAM,OAAO,CAAC0qD,GACpF,IAAI,CAAC,cAAc,CAAGmB,GAAkB,KACxC,IAAI,CAAC,iBAAiB,CAAGC,GAAqB,KAC9C,IAAI,CAAC,UAAU,CAAG,CAChBP,SAAAA,EAAUL,mBAAAA,EAAoBR,gBAAAA,EAAiBc,SAAAA,CACjD,EAEA,IAAI,CAAC,YAAY,CAAG,IAAIQ,gBAAgBD,AAAAA,CAAAA,AAAAA,OAAAA,CAAAA,EAAAA,QAAO,GAAPA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAkB,OAAlBA,CAAAA,EAAAA,EAAU,QAAQ,AAAD,GAAjBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoB,MAAM,AAAD,GAAK,IACtE,IAAI,CAAC,sBAAsB,CAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,AAM3D,KAAI,CAAC,SAAS,CAAG,WAHS,CACxB,kBAAmB,GAAO,iBAAkB,GAAO,oBAAqB,GAAO,aAAc,EAC/F,EAC4CN,GACxC,IAAI,CAAC,aAAa,EACpB,IAAI,CAAC,qBAAqB,GAI5B,IAAI,CAAC,aAAa,CAAG,IAAIQ,EAAAA,CAAaA,CAAC,SACrC,KAAM,IAAI,CAAC,IAAI,CACf,YAAa,IAAI,CAAC,QAAQ,A,EACtB,IAAI,CAAC,aAAa,CAAG,CAAE,gBAAiB,EAAK,EAAI,CAAC,IAIxD,IAAMC,EAAyB,IAAI,CAAC,aAAa,EAAI,IAAI,CAAC,cAAc,EACnE,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,yBAAyB,EAC9B,IAAI,CAAC,mCAAmC,EAG7C,KAAI,CAAC,oBAAoB,CAAGA,EAAwB,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAGpoD,AAAAA,GAAKA,CACtG,CAkPF,C,oECjTO,OAAMmoD,EAgBX,qBAAsB,CACpB,GAAM,CAAEE,eAAAA,CAAc,CAAE,CAAGt+B,EAAAA,CAAMA,AACH,aAA1B,OAAOs+B,GACX,KAAI,CAAC,cAAc,CAAGA,EAAe,IAAI,CAAC,WAAW,EACvD,CAEA,KAAK,CACHC,MAAAA,EAAQ,EAAE,CAAEptD,OAAAA,EAAS,EAAE,CAAEyiB,OAAAA,EAAS,EAAE,CAAE4qC,UAAAA,EAAY,EAAK,CACxD,CAAG,CAAC,CAAC,CAAE,C,IACNC,C,AAAmB,QAAnBA,CAAAA,EAAAA,IAAI,CAAC,cAAc,AAAD,GAAlBA,AAAAA,KAAAA,IAAAA,GAAAA,EAAqB,IAAI,CAAC,CAAEF,MAAAA,EAAOptD,OAAAA,EAAQyiB,OAAAA,CAAO,GAE9C,KAAI,CAAC,SAAS,EAAI4qC,CAAQ,GAC5B,KAAI,CAAC,UAAU,CAAC,CAAC,EAAErtD,EAAO,EAAEyiB,EAAO,CAAC,CAAC,CAAG,EAAG,CAE/C,CAEA,eAAe,CACb2qC,MAAAA,CAAK,CAAEptD,OAAAA,CAAM,CAAEyiB,OAAAA,CAAM,CAAE4qC,UAAAA,CAAS,CACjC,CAAE,CACD19C,QAAQ,GAAG,CAAC,CACVy9C,MAAAA,EAAOptD,OAAAA,EAAQyiB,OAAAA,EAAQ4qC,UAAAA,CACzB,GAC4B,CAACD,EAAOptD,EAAQyiB,EAAO,CAAC,IAAI,CAAC8qC,AAAAA,GAAS,CAACA,IAEjE59C,QAAQ,KAAK,CAAC,CAAC,mGAAmG,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAEy9C,EAAM,SAAS,EAAEptD,EAAO,SAAS,EAAEyiB,EAAO,CAAC,EAGxL,KAAI,CAAC,SAAS,EAAI4qC,CAAQ,GAC5B,KAAI,CAAC,UAAU,CAAC,CAAC,EAAErtD,EAAO,EAAEyiB,EAAO,CAAC,CAAC,CAAG,EAAG,CAE/C,CAEA,sBAAsB,CAAEziB,OAAAA,CAAM,CAAEyiB,OAAAA,CAAM,CAAE4qC,UAAAA,EAAY,EAAK,CAAE,CAAE,CAK3D,GAJI,CAAC,IAAI,CAAC,cAAc,EACtB,IAAI,CAAC,mBAAmB,GAGrB,KAAI,CAAC,SAAS,EAAIA,CAAQ,GAAM,IAAI,CAAC,UAAU,CAAC,CAAC,EAAErtD,EAAO,EAAEyiB,EAAO,CAAC,CAAC,CACxE,OAGF,GAAM,CAAE,SAAU2qC,EAAQ,IAAI,CAAE,aAAcl7C,CAAW,CAAE,CAAG,IAAI,CAAC,IAAI,CACjE4R,EAAe+K,AAAuB,eAAvBA,EAAAA,CAAMA,CAAC,WAAW,CACjCk8B,EAAYl8B,AAAuB,eAAvBA,EAAAA,CAAMA,CAAC,WAAW,EAAqB,CAAC/K,EACpD0pC,EAAc,CAAC,QAAS,UAAW,SAAS,CAAC,OAAO,CAACt7C,MAAAA,EAAAA,KAAAA,EAAAA,EAAa,IAAI,EAAI,IAAM,CAAC4R,EAEvF,GAAI,IAAI,CAAC,eAAe,CAAE,CACxB,IAAI,CAAC,cAAc,CAAC,CAClBspC,MAAAA,EAAOptD,OAAAA,EAAQyiB,OAAAA,EAAQ4qC,UAAAA,CACzB,GACA,MACF,CAEI,CAACD,GAEHz9C,QAAQ,IAAI,CAAC,CAAC,yJAAyJ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAEy9C,EAAM,SAAS,EAAEptD,EAAO,SAAS,EAAEyiB,EAAO,CAAC,EAG5O,IAAI,CAAC,cAAc,EAAK2qC,GAAUrC,IAAayC,GAEpD,IAAI,CAAC,IAAI,CAAC,CACRJ,MAAAA,EAAOptD,OAAAA,EAAQyiB,OAAAA,EAAQ4qC,UAAAA,CACzB,EACF,CA9EA,YAAY,CACV57C,KAAAA,CAAI,CACJg8C,YAAAA,CAAW,CACXJ,UAAAA,CAAS,CACTK,gBAAAA,CAAe,CAChB,CAAE,CACD,IAAI,CAAC,IAAI,CAAGj8C,GAAQ,CAAC,EACrB,IAAI,CAAC,WAAW,CAAGg8C,EACnB,IAAI,CAAC,SAAS,CAAGJ,GAAa,GAC9B,IAAI,CAAC,cAAc,CAAG,KACtB,IAAI,CAAC,qBAAqB,CAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EACjE,IAAI,CAAC,UAAU,CAAG,CAAC,EACnB,IAAI,CAAC,eAAe,CAAGK,GAAmB,EAC5C,CAkEF,C,qEChFO,IAAMhsC,EAAa,CACxB,UAAW,YACX,aAAc,eACd,SAAU,WACV,QAAS,UACT,QAAS,UACT,KAAM,OACN,WAAY,WACd,C,sECDO,IAAMoC,EAAe,IAC1B,EAAKzoB,SAIsB,eAAvBA,OAAO,WAAW,EAIlBA,EAAAA,OAAO,OAAO,IAAIA,OAAO,OAAO,CAAC,UAAU,EAIxC,G,wMCfT,IAAMywD,EAAQ,IAAI5qD,EAAAA,CAAYA,CAAC,OAAQ,CACrC,kBAAmB,CACjB,OAAQ2tB,EAAAA,CAAMA,CAAC,MAAM,CACrB,2BAA4B,CAAC1tB,EAAAA,CAAAA,CAAAA,gCAA6C,CAAC,AAC7E,CACF,GAGawsD,EAAoB,CAAChoD,EAAK9C,EAAQ,CAAC,GACvCipD,EAAM,IAAI,CAAC,mBAChB,IAAIkB,gBAAgB,CAAErnD,IAAAA,EAAK9C,MAAAA,CAAM,IAoBxB+qD,EAAoCC,AAAAA,IAC/C,IAAMC,EAAe,IAAId,gBAAgB3xD,OAAO,QAAQ,CAAC,MAAM,EAC/D,OAAOywD,EAAM,GAAG,CAAC,CAAC,kBAAkB,EAAE+B,EAAM,CAAC,EAAEC,EAAa,CAAC,CAC/D,EAGa1qC,EAAsCxhB,AAAAA,IACjD,GAAIkiB,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,IAAgB,OAEpB,IAAMgqC,EAAe,IAAId,gBAEnB,CAAEe,4BAAAA,CAA2B,CAAE,CAAGnsD,EAMxC,OAJImsD,GACFD,EAAa,MAAM,CAAC,iCAAkCC,GAGjDjC,EAAM,IAAI,CAAC,+BAAgCgC,EACpD,EAEa5qC,EAAe,CAAC,CAC3B2qC,MAAAA,CAAK,CAAEprC,OAAAA,CAAM,CAAEziB,OAAAA,CAAM,CAAEguD,OAAAA,CAAM,CAC9B,IACC,GAAIC,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,IAAU,CACZ,IAAMC,EAAY,CAChB,QAASC,EAAAA,EAAAA,CAAAA,qBAA0C,CACnDN,MAAAA,EACAprC,OAAAA,EACAziB,OAAAA,CACF,EAEIguD,GACFE,CAAAA,EAAU,MAAM,CAAGF,CAAK,EAG1B,IAAMpsD,EAAS,IAAIorD,gBAAgBkB,GAEnC,OAAOpC,EAAM,IAAI,CAAC,kBAAmBlqD,EACvC,CACF,C,yEC1EI,EAAO,E,kMCoCX,EAhC0B,CAAC,CAAEwsD,UAAAA,EAAY,EAAK,CAAE38C,KAAAA,EAAO,IAAI,CAAE,CAAG,CAAC,CAAC,IAChE,GAAM,CAAC48C,EAAiBC,EAAmB,CAAGhmC,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,IA4BvD,MA1BArF,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,GAAI,CAACmrC,GAAa,CAACH,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,KAAY,CAACx8C,GAAQ48C,EAAiB,OAEzD,IAAME,EAAe/yD,AAAAA,IACJ,SAAXA,EAAE,IAAI,EACR8yD,EAAmB,GAEvB,EAEME,EAAWx9C,SAAS,aAAa,CAAC,UAUxC,OATAw9C,EAAS,EAAE,CAAG,mBACdA,EAAS,IAAI,CAAG,yBAChBA,EAAS,GAAG,CAAG,iCACfA,EAAS,KAAK,CAAG,GACjBA,EAAS,KAAK,CAAG,GACjBx9C,SAAS,IAAI,CAAC,WAAW,CAACw9C,GAC1BA,EAAS,gBAAgB,CAAC,OAAQD,GAClCC,EAAS,gBAAgB,CAAC,QAASD,GAE5B,KACLC,EAAS,mBAAmB,CAAC,OAAQD,GACrCC,EAAS,mBAAmB,CAAC,QAASD,GACtCC,EAAS,MAAM,EACjB,CACF,EAAG,CAAC/8C,EAAK,EAEF,CAAC48C,EAAgB,AAC1B,EDjCA,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAI,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAiC,AAAC,GAAqB,EAAM,aAAa,CAAC,MAAO,EAAS,CAC/F,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,6YACH,SAAU,SACZ,IAAK,GAAW,GAAsB,eAAmB,CAAC,OAAQ,CAChE,SAAU,UACV,EAAG,+YACH,SAAU,SACZ,K,oDEDA,IAAMI,EAAe,CAAC,CAAEh9C,KAAAA,CAAI,CAAEi9C,eAAAA,CAAc,CAAE,IAE5C,GAAI,CADgBC,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAc,QAASl9C,GACzB,OAAO,KAEzB,GAAM,CAACm9C,EAAoBC,EAAsB,CAAGvmC,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,IACvD,CAACwmC,EAAWC,EAAa,CAAGzmC,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,IACrC,CAAC0mC,EAAgBC,EAAkB,CAAG3mC,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,IAE/C4mC,EAAsBzuC,IAAG,wBAAyB,CACtD,KAAMmuC,CACR,GAEMO,EAAoBn5B,AAAAA,CAAAA,EAAAA,EAAAA,OAAAA,AAAAA,EAAQ,KAChC,GAAM,CAAEpjB,MAAAA,CAAK,CAAEw8C,UAAAA,CAAS,CAAEC,SAAAA,CAAQ,CAAE,CAAGC,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAqB79C,GACtD89C,EAAWl0D,OAAO,QAAQ,CAAC,QAAQ,CACzC,MAAO,CAAC,sEAAsE,EAAEk0D,EAAS,gBAAgB,EAAEb,EAAe,aAAa,EAAEU,EAAU,aAAa,EAAEC,EAAS,OAAO,EAAEz8C,EAAM,CAAC,AAC7L,EAAG,CAACnB,EAAK,EAWT,MATAwR,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACJ2rC,GACFK,EAAkB,IAClBF,EAAaI,IAEbJ,EAAa,GAEjB,EAAG,CAACH,EAAoBO,EAAkB,EAGxC,WAAC,OAAI,UAAU,wB,UACb,WAAC,OAAI,UAAU,uB,UACb,UAAC,QAAK,UAAU,c,SAAc,e,GAC9B,UAAC,UACC,GAAG,qBACH,UAAU,eACV,KAAK,SACL,QAAS,IAAMN,EAAsBn8B,AAAAA,GAAK,CAACA,GAC3C,gBAAc,wC,SAEd,UAAC88B,EAA+BA,CAAAA,E,MAIpC,WAAC,OACC,GAAG,0BACH,UAAWN,E,UAEX,UAACvT,EAAAA,CAAOA,CAAAA,CACN,YAAY,UAAU,MAAO,CAC3B,cAAe,OAAQ,OAAQ,IAAK,MAAO,OAAQ,OAAQ,OAAQ,WAAY,UAAW,QAASqT,EAAiB,IAAM,GAC5H,C,GAEF,UAAC,UACC,GAAG,sBACH,KAAK,SACL,UAAU,sBACV,QAAS,IAAMH,EAAsB,I,SAErC,UAACt3B,EAAAA,CAAWA,CAAAA,CAAAA,E,GAEd,UAAC,UACC,GAAG,gBACH,MAAM,gBACN,UAAU,gBACV,IAAKu3B,EACL,OAAQ,IAAMG,EAAkB,G,QAK1C,CAEAR,CAAAA,EAAa,SAAS,CAAG,CACvB,KAAMxmC,EAAAA,EAAAA,CAAAA,UAAuB,CAC7B,eAAgBhI,EAAAA,MAAAA,CAAAA,UAAiB,AACnC,ECtEA,IAAMwvC,EAAyB,AAAC,I,GAAA,CAC9Bh+C,KAAAA,CAAI,CACJ2Q,MAAAA,CAAK,CACL,OAAQstC,CAAU,CAClBC,UAAAA,CAAS,CACTzpC,WAAAA,CAAU,CACVwoC,eAAAA,CAAc,CACdkB,cAAAA,CAAa,CACb/sC,aAAAA,CAAY,CACZgtC,oBAAAA,CAAmB,CACnBC,yBAAAA,CAAwB,CACxBC,aAAAA,CAAY,CACZC,QAAAA,CAAO,CACPC,yBAAAA,CAAwB,CACxBC,aAAAA,CAAY,CACZC,iBAAAA,CAAgB,CAChBC,SAAAA,CAAQ,CACRC,uBAAAA,CAAsB,CAEvB,GADI3gD,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAjBH+B,OACA2Q,QACA,SACAutC,YACAzpC,aACAwoC,iBACAkB,gBACA/sC,eACAgtC,sBACAC,2BACAC,eACAC,UACAC,2BACAC,eACAC,mBACAC,WACAC,yB,EAGA,GAAM,CAACC,EAAerB,EAAkB,CAAG3mC,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,IAC9CioC,EAAwB58B,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,IAC/B68B,EAAyB78B,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,IAChC88B,EAAqB98B,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,IAC5B+8B,EAAU/8B,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,MACjBg9B,EAAoB36B,AAAAA,CAAAA,EAAAA,EAAAA,OAAAA,AAAAA,EAAQ,IAAM46B,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAA0Bn/C,GAAO,CAACA,EAAK,EACzEo/C,EAAW76B,AAAAA,CAAAA,EAAAA,EAAAA,OAAAA,AAAAA,EAAQ,IAAMs5B,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAqB79C,GAAO,CAACA,EAAK,EAC3Dq/C,EAAoBhB,GAA4BiB,EAAAA,EAAiBA,CACnEC,EAAa,GAEfA,EADEb,EACWW,EAAkB,2BAC1BD,GAAAA,CAAUnC,eAAAA,EAAgBkB,cAAAA,EAAeI,QAAAA,EAASC,yBAAAA,C,GAA6BvgD,IAGvEohD,EAAkB,2BAC1BH,GAAAA,CAAmBjC,eAAAA,EAAgBkB,cAAAA,EAAeI,QAAAA,EAASC,yBAAAA,C,GAA6BvgD,IAoB/F,IAAMuhD,EAASC,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,IAfb,AAAKC,EAAAA,EAAmBA,CAIjB,AAACf,EAAuBgB,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,WAAgC,CAA5CzB,EAHVA,EAOT,AAAKwB,EAAAA,EAAmBA,CAIjB,AAACf,EAAwBgB,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,YAAiC,CAA9C1B,EAHVA,EAOLZ,EAAYoB,EAAe,CAAC,EAAEA,EAAa,EAAEc,EAAW,CAAC,CAAG,CAAC,EAAEK,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,IAAe,CAAC,EAAEJ,EAAO,EAAED,EAAW,CAAC,CAGtGM,EAAOj2D,OAAO,IAAI,EAAI,EAAE,CACxB,CAACk2D,EAAuB,CAAGC,EAAkB,CAAE,UAAW,GAAM//C,KAAAA,CAAK,GACrE,CAACggD,EAAcC,EAAgB,CAAGppC,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,UAGjDrF,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACHsuC,IAA0Bd,EAAmB,OAAO,GACzDa,EAAK,IAAI,CAAC,CAAC,WAAY,CACrB,MAAO7/C,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,KAAK,AACpB,EAAE,EACF6/C,EAAK,IAAI,CAAC,CAAC,UAAWj2D,OAAO,QAAQ,CAAC,IAAI,CAAC,EAC3Ci2D,EAAK,IAAI,CAAC,CAAC,gBAAgB,EAC3Bb,EAAmB,OAAO,CAAG,GAC/B,EAAG,CAACc,EAAuB,EAG3BtuC,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,IAAM0uC,EAAgB/wD,AAAAA,QAcHgxD,EAAAA,EACDC,EAAAA,EAEhBC,EAfyBC,EADzB,GAAI1B,EAAwB,CAC1B,GAAM,CAACl+C,EAAM26B,EAAO,CAAG,AAAU,OAAVilB,CAAAA,EAAAA,EAAM,IAAI,AAAD,GAATA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAY,KAAK,CAAC,KACrC5/C,EAAK,QAAQ,CAAC,cAChBu/C,EAAgB,CAAC,EAAE5kB,EAAO,EAAE,CAAC,CAEjC,CACA,GAEElsC,AAAsB,yBAAtBA,EAAM,IAAI,CAAC,MAAM,EAChB2vD,EAAsB,OAAO,CAC9B,OAGF,IAAMyB,EAAWJ,AAAAA,CAAAA,AAAe,OAAfA,CAAAA,EAAAA,EAAQ,OAAO,AAAD,GAAdA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAA+B,OAA/BA,CAAAA,EAAAA,EAAiB,aAAa,CAAC,0BAAyB,GAAxDA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA2D,KAAK,AAAD,GAAK,GAC/EK,EAAUJ,AAAAA,CAAAA,AAAe,OAAfA,CAAAA,EAAAA,EAAQ,OAAO,AAAD,GAAdA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAA+B,OAA/BA,CAAAA,EAAAA,EAAiB,aAAa,CAAC,0BAAyB,GAAxDA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA2D,KAAK,AAAD,GAAK,E,AAEpE,QAAhBC,CAAAA,EAAAA,OAAO,SAAS,AAAD,GAAfA,AAAAA,KAAAA,IAAAA,GAAAA,EAAkB,IAAI,CAAC,CACrB,MAAO,yBACP,UAAWjvC,CAAY,CAAC,UAAU,CAClCmvC,SAAAA,EACAC,QAAAA,EACAhB,OAAAA,CACF,GACAlB,IACAQ,EAAsB,OAAO,CAAG,EAClC,EAEA,OADAl1D,OAAO,gBAAgB,CAAC,UAAWs2D,GAC5B,KACLt2D,OAAO,mBAAmB,CAAC,UAAWs2D,EACxC,CACF,EAAG,CAACrB,EAAc,EAwChB,uB,UACE,UAAC3U,EAAAA,CAAOA,CAAAA,CACN,YAAY,UAAU,MAAO,CAC3B,cAAe,OAAQ,OAAQ,IAAK,MAAO,OAAQ,OAAQ,OAAQ,WAAY,UAAW,QAAS2U,EAAgB,IAAM,GAC3H,C,GAEF,UAAC,UACC,MAAOluC,EACP,IAAK0sC,EACL,MAAO,CAAE,OAAQuB,EAAyB,CAAC,KAAK,EAAEoB,EAAa,QAAQ,CAAC,CAAG,GAAI,WAAY,UAAW,QAASnB,EAAgB,IAAM,GAAI,EACzI,OA/Ca,CAAC,CAAE7tC,OAAAA,CAAM,CAAE,IAC5B,GAAI,CACF,IAAMyvC,EAAezvC,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,aAAa,CACpC0vC,EAAiBD,MAAAA,EAAAA,KAAAA,EAAAA,EAAc,QAAQ,CACvCE,EAAcD,MAAAA,EAAAA,KAAAA,EAAAA,EAAgB,aAAa,CAAC,gBAClDzB,CAAAA,EAAQ,OAAO,CAAG0B,EAGlBA,MAAAA,GAAAA,EAAa,gBAAgB,CAAC,QAAS,K,IAErCN,GADItB,EAAuB,OAAO,G,AAClB,OAAhBsB,CAAAA,EAAAA,OAAO,SAAS,AAAD,GAAfA,AAAAA,KAAAA,IAAAA,GAAAA,EAAkB,IAAI,CAAC,CACrB,MAAO,gCACP,UAAWjvC,CAAY,CAAC,UAAU,CAClCouC,OAAAA,CACF,GACAT,EAAuB,OAAO,CAAG,GACnC,GAGAX,MAAAA,GAAAA,EAAqB,OAAO,CAAC,CAACwC,EAAe,CAAC,CAAC,IAC7C,GAAM,CAAEC,SAAAA,EAAW,EAAE,CAAE9iD,QAAAA,EAAU,EAAE,CAAE,CAAG6iD,EACxC,GAAI,CAACC,GAAY,CAAC9iD,EAAS,OAC3B,IAAM0mB,EAAUi8B,MAAAA,EAAAA,KAAAA,EAAAA,EAAgB,aAAa,CAACG,EAE9Cp8B,OAAAA,GAAAA,EAAS,gBAAgB,CAAC,QAAS,K,IACjC47B,C,AAAgB,QAAhBA,CAAAA,EAAAA,OAAO,SAAS,AAAD,GAAfA,AAAAA,KAAAA,IAAAA,GAAAA,EAAkB,IAAI,CAACtiD,GACc,YAAjC,OAAO6iD,EAAa,QAAQ,EAC9BA,EAAa,QAAQ,EAEzB,EACF,EACF,QAAU,CACRpD,EAAkB,GACpB,CACF,EAcM,UAAW/oC,EACX,GAAIqsC,EAAAA,EAAyBA,A,GAE/B,UDzFS9D,ECyFIA,CAAC,KAAMh9C,EAAM,eAAgBi9C,C,KAGhD,CAEAe,CAAAA,EAAuB,SAAS,CAAG,CACjC,KAAMxnC,EAAAA,EAAAA,CAAAA,UAAuB,CAC7B,yBAA0BrH,EAAAA,IAAIA,CAC9B,OAAQX,EAAAA,MAAMA,CACd,UAAWA,EAAAA,MAAMA,CACjB,MAAOA,EAAAA,MAAMA,CACb,WAAYA,EAAAA,MAAMA,CAClB,eAAgBA,EAAAA,MAAMA,CACtB,cAAeD,EAAAA,IAAIA,CACnB,aAAcwyC,EAAAA,EAAAA,CAAAA,UAA+B,CAC7C,oBAAqBC,EAAAA,EAAAA,CAAAA,UAAsC,CAC3D,aAAc7xC,EAAAA,IAAIA,CAClB,QAASX,EAAAA,MAAMA,CACf,yBAA0BA,EAAAA,MAAMA,CAChC,aAAcA,EAAAA,MAAMA,CACpB,iBAAkBD,EAAAA,IAAIA,CACtB,SAAUA,EAAAA,IAAIA,CACd,uBAAwBA,EAAAA,IAAIA,AAC9B,EAEAyvC,EAAuB,YAAY,CAAG,CACpC,OAAQ2B,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,IAAyB,CACjC,UAAWA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,GAAwB,CACnC,yBAA0B5vD,KAAAA,EAC1B,MAAO8D,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAEie,EAAAA,CAAAA,CAAAA,qBAA+B,EACxC,WAAY,OACZ,eAAgB,GAChB,cAAe,GACf,aAAcze,AAAAA,GAAKA,EACnB,QAAS,GACT,yBAA0B,GAC1B,aAAc,GACd,iBAAkB,GAClB,SAAU,GACV,uBAAwB,EAC1B,EAEA,MAAe2qD,C,qECvNR,IAAM/sC,EAAmB,CAC9BgwC,QCPqB,CAErB,uBAAwB,uBACxB,wBAAyB,iBACzB,2BAA4B,0BAC5B,2BAA4B,0BAC5B,8BAA+B,kBAC/B,gBAAiB,gBACjB,2BAA4B,yBAC5B,4BAA6B,0BAC7B,8BAA+B,4BAC/B,kBAAmB,kBACnB,0BAA2B,yBAC3B,6BAA8B,4BAC9B,6BAA8B,4BAC9B,sBAAuB,sBACvB,wBAAyB,wBACzB,sCAAuC,oCACvC,yBAA0B,wBAC1B,yBAA0B,yBAC1B,kDAAmD,+CACnD,qBAAsB,4BACtB,8BAA+B,6BAC/B,qBAAsB,qBACtB,2BAA4B,0BAC5B,oBAAqB,oBACrB,6BAA8B,4BAC9B,mBAAoB,mBACpB,sBAAuB,sBACvB,kBAAmB,kBACnB,2BAA4B,0BAC5B,4BAA6B,4BAC7B,kBAAmB,kBACnB,0BAA2B,0BAC3B,kBAAmB,kBACnB,mBAAoB,mBACpB,kBAAmB,mBACnB,2BAA4B,0BAC5B,oBAAqB,oBAErB,2BAA4B,0BAC5B,2BAA4B,0BAC5B,yBAA0B,wBAC1B,+BAAgC,8BAEhC,wBAAyB,yBACzB,qBAAsB,qBACtB,gCAAiC,6BACjC,+BAAgC,8BAChC,+BAAgC,6BAChC,mBAAoB,mBACpB,0BAA2B,yBAC3B,6BAA8B,2BAC9B,8BAA+B,6BAC/B,yBAA0B,wBAC1B,6BAA8B,sBAC9B,0BAA2B,yBAC3B,0BAA2B,0BAC3B,kCAAmC,iCACnC,iCAAkC,gCAClC,oCAAqC,mCACrC,oCAAqC,mCACrC,+BAAgC,8BAChC,sCAAuC,oCACvC,uBAAwB,uBACxB,sBAAuB,sBACvB,gCAAiC,8BACjC,sCAAuC,6BACvC,mCAAoC,sBACpC,6BAA8B,4BAC9B,gBAAiB,sBACjB,8BAA+B,8BAC/B,qCAAsC,oCACtC,0BAA2B,yBAC3B,kBAAmB,kBACnB,mBAAoB,mBACpB,mBAAoB,mBACpB,wBAAyB,uBACzB,4BAA6B,2BAC7B,qBAAsB,qBACtB,uBAAwB,uBAExB,uBAAwB,uBACxB,6BAA8B,mCAC9B,iCAAkC,sCAClC,iCAAkC,gCAClC,cAAe,eACf,kBAAmB,kBACnB,uBAAwB,uBAExB,gCAAiC,+BACjC,sCAAuC,oCACvC,oBAAqB,oBACrB,8BAA+B,6BAE/B,yBAA0B,wBAC5B,EDzFWC,SEPa,CACtB,oBAAqB,oBACrB,kCAAmC,+BACnC,gCAAiC,8BACjC,WAAY,YACZ,WAAY,YACZ,yBAA0B,yBAC1B,wBAAyB,wBACzB,UAAW,UACb,EFFqBC,QGPE,CAErB,yBAA0B,wBAC1B,4BAA6B,4BAC7B,gCAAiC,+BACjC,0BAA2B,0BAC3B,uBAAwB,uBACxB,YAAa,aACb,mBAAoB,mBACpB,6BAA8B,4BAC9B,0BAA2B,yBAC3B,qBAAsB,qBACtB,kBAAmB,mBACnB,gCAAiC,+BACjC,4BAA6B,2BAC7B,8BAA+B,6BAC/B,mBAAoB,mBAEpB,4BAA6B,0BAC7B,yBAA0B,wBAC1B,2BAA4B,0BAC5B,6BAA8B,4BAC9B,mCAAoC,iCACpC,yBAA0B,yBAC1B,iCAAkC,uCAClC,aAAc,cACd,4BAA6B,2BAC7B,gCAAiC,+BACjC,yBAA0B,wBAC1B,mBAAoB,mBACpB,0BAA2B,yBAC3B,gCAAiC,sCACjC,sBAAuB,sBACvB,+BAAgC,8BAChC,+BAAgC,8BAChC,2BAA4B,0BAC5B,oBAAqB,oBAErB,mCAAoC,wBACpC,gCAAiC,+BACjC,0BAA2B,0BAE3B,+BAAgC,6BAClC,EHpC8BC,WIPJ,CAExB,gBAAiB,0BACjB,oBAAqB,6BACrB,+BAAgC,uCAChC,iBAAkB,2BAClB,iBAAkB,2BAClB,gBAAiB,0BAEjB,wBAAyB,+BACzB,wBAAyB,6BACzB,wBAAyB,8BACzB,0BAA2B,0BAC3B,cAAe,wBACf,yBAA0B,uBAC5B,EJR0CC,QKPnB,CACrB,4BAA6B,2BAC7B,2BAA4B,0BAC5B,sBAAuB,qBACvB,4BAA6B,2BAC7B,iBAAkB,iBAClB,4BAA6B,4BAC7B,+CAAgD,kBAChD,sBAAuB,qBACvB,uBAAwB,sBACxB,yBAA0B,yBAC1B,6BAA8B,4BAC9B,gCAAiC,+BACjC,wBAAyB,wBACzB,8BAA+B,4BACjC,CLPA,C,qRMNO,IAAMC,EAAkC,6BAElC5E,EAAuB,CAClC,MAAO,QACP,wBAAyB,+BACzB,sBAAuB,sBAEzB,EAEaoE,EAA4B,6BAU5BS,EAA6C,2CAyCjB,AAI9BzvC,CAAAA,EAAAA,CAAAA,CAAAA,6BACV,CAAE,AAIQA,EAAAA,CAAAA,CAAAA,6BACV,CAAE,AAIQA,EAAAA,CAAAA,CAAAA,6BACV,CACD,AAIWA,EAAAA,CAAAA,CAAAA,6BACV,CACD,AAIWA,EAAAA,CAAAA,CAAAA,6BACV,CACD,AAIWA,EAAAA,CAAAA,CAAAA,6BACV,CAOM,IAAM0vC,EAAwB,CACnC,WAAY,aACZ,WAAY,aACZ,UAAW,YACX,0BAA2B,0BAC3B,UAAW,WACb,EAQaC,EAA6B,CACxC,UAAW,YACX,UAAW,WACb,EAEM,CAAEC,UAAAA,CAAS,CAAEC,UAAAA,CAAS,CAAE,CAAGF,CAGlB3vC,CAAAA,EAAAA,CAAAA,CAAAA,+BAAyC,CACzCA,EAAAA,CAAAA,CAAAA,+BAAyC,CAIzCA,EAAAA,CAAAA,CAAAA,+BAAyC,CACzCA,EAAAA,CAAAA,CAAAA,+BAAyC,CAIzCA,EAAAA,CAAAA,CAAAA,6BAAuC,CACvCA,EAAAA,CAAAA,CAAAA,6BAAuC,CAIvCA,EAAAA,CAAAA,CAAAA,yCAAmD,CACnDA,EAAAA,CAAAA,CAAAA,yCAAmD,CAG3D,IAAM8vC,EAAyB,QACzBC,EAAmC,4BAWnCnC,EAAsB,E,oFCzJnC,GAAM,CACJoC,mBAAAA,CAAkB,CAAEC,6BAAAA,CAA4B,CAAEC,qBAAAA,CAAoB,CAAEC,4BAAAA,CAA2B,CAAEC,YAAAA,CAAW,CAAEC,0BAAAA,CAAyB,CAAEC,yBAAAA,CAAwB,CAAEC,8BAAAA,CAA6B,CACpMC,mCAAAA,CAAkC,CAAEC,gCAAAA,CAA+B,CACpE,CAAGtxC,EAAAA,CAAAA,CAAAA,OAAwB,CAOtB,CACJuxC,yBAAAA,CAAwB,CAAEC,kDAAAA,CAAiD,CAAEC,kBAAAA,CAAiB,CAC9FC,uBAAAA,CAAsB,CAAEC,iCAAAA,CAAgC,CAAEC,sCAAAA,CAAqC,CAAEC,oBAAAA,CAAmB,CACrH,CAAG7xC,EAAAA,CAAAA,CAAAA,OAAwB,CAGtB,CAAE8xC,iBAAAA,CAAgB,CAAE,CAAG9xC,EAAAA,CAAAA,CAAAA,UAA2B,CAE3C+xC,EAA4B,CAGvC,CAACD,EAAiB,CAAE,CAClB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACpE,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACnE,CACD,CAACP,EAAyB,CAAE,CAC1B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACrE,CACD,CAACC,EAAkD,CAAE,CACnD,CAAE,QAAS,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACpE,CACD,CAACC,EAAkB,CAAE,CACnB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,mBAAoB,CAAE,EACnE,CACD,CAACZ,EAAmB,CAAE,CACpB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACpE,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACnE,CACD,CAACC,EAA6B,CAAE,CAC9B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,mBAAoB,CAAE,EACnE,CACD,CAACC,EAAqB,CAAE,CACtB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACrE,CACD,CAACW,EAAuB,CAAE,CACxB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACrE,CACD,CAACV,EAA4B,CAAE,CAC7B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACpE,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACnE,CACD,CAACC,EAAY,CAAE,CACb,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACrE,CACD,CAACC,EAA0B,CAAE,CAC3B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACpE,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACnE,CACD,CAACC,EAAyB,CAAE,CAC1B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACpE,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACnE,CACD,CAACC,EAA8B,CAAE,CAC/B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACpE,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACnE,CACD,CAACC,EAAmC,CAAE,CACpC,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACrE,CACD,CAACM,EAAiC,CAAE,CAClC,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,oBAAqB,CAAE,EACpE,CACD,CAACL,EAAgC,CAAE,CACjC,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,mBAAoB,CAAE,EACnE,CACD,CAACM,EAAsC,CAAE,CACvC,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,oBAAqB,CAAE,EACnE,CACD,CAACC,EAAoB,CAAE,CACrB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACrE,AACH,C,qFCjFA,GAAM,CACJV,yBAAAA,CAAwB,CAAEH,4BAAAA,CAA2B,CACrDM,gCAAAA,CAA+B,CAAEP,qBAAAA,CAAoB,CACrDiB,uBAAAA,CAAsB,CAAEf,YAAAA,CAAW,CAAEC,0BAAAA,CAAyB,CAAEJ,6BAAAA,CAA4B,CAC5FO,mCAAAA,CAAkC,CAAER,mBAAAA,CAAkB,CAAEoB,kBAAAA,CAAiB,CAAEb,8BAAAA,CAA6B,CAAEc,gCAAAA,CAA+B,CAAEC,mBAAAA,CAAkB,CAAEC,4BAAAA,CAA2B,CAC3L,CAAGpyC,EAAAA,CAAAA,CAAAA,OAAwB,CAGtB,CACJqyC,sBAAAA,CAAqB,CAAEC,+CAAAA,CAA8C,CACrEC,sBAAAA,CAAqB,CAAEC,6BAAAA,CAA4B,CAAEC,4BAAAA,CAA2B,CAChFC,gCAAAA,CAA+B,CAChC,CAAG1yC,EAAAA,CAAAA,CAAAA,OAAwB,CAGtB,CACJ2yC,kCAAAA,CAAiC,CAAEC,gCAAAA,CAA+B,CAClEC,WAAAA,CAAU,CAAEC,WAAAA,CAAU,CAAEC,wBAAAA,CAAuB,CAChD,CAAG/yC,EAAAA,CAAAA,CAAAA,QAAyB,CAGvB,CACJ0xC,uBAAAA,CAAsB,CAAEsB,gBAAAA,CAAe,CAAEC,2BAAAA,CAA0B,CAAEC,4BAAAA,CAA2B,CAChGC,kBAAAA,CAAiB,CAAEC,wBAAAA,CAAuB,CAAEC,8BAAAA,CAA6B,CAAEC,oBAAAA,CAAmB,CAC9FC,6BAAAA,CAA4B,CAAEC,mBAAAA,CAAkB,CAAEC,kBAAAA,CAAiB,CAAEC,4BAAAA,CAA2B,CAChGC,mBAAAA,CAAkB,CAAEC,kBAAAA,CAAiB,CAAEC,2BAAAA,CAA0B,CAAEC,2BAAAA,CAA0B,CAC7FC,yBAAAA,CAAwB,CAAEC,+BAAAA,CAA8B,CAAEC,yBAAAA,CAAwB,CAClFtC,iCAAAA,CAAgC,CAAEuC,2BAAAA,CAA0B,CAAEC,6BAAAA,CAA4B,CAC1FC,8BAAAA,CAA6B,CAAE7C,yBAAAA,CAAwB,CAAE8C,2BAAAA,EAA0B,CACnFC,kBAAAA,EAAiB,CAAE7C,kBAAAA,EAAiB,CAAE8C,2BAAAA,EAA0B,CAAE/C,kDAAAA,EAAiD,CACnHI,sCAAAA,EAAqC,CAAEC,oBAAAA,EAAmB,CAAE2C,sBAAAA,EAAqB,CAClF,CAAGx0C,EAAAA,CAAAA,CAAAA,OAAwB,CAGtB,CACJy0C,gBAAAA,EAAe,CAAEC,oBAAAA,EAAmB,CAAEC,+BAAAA,EAA8B,CAAE7C,iBAAAA,EAAgB,CACtF8C,iBAAAA,EAAgB,CAAEC,gBAAAA,EAAe,CAAEC,0BAAAA,EAAyB,CAAEC,wBAAAA,EAAuB,CACrFC,wBAAAA,EAAuB,CAAEC,wBAAAA,EAAuB,CAAEC,yBAAAA,EAAwB,CAC3E,CAAGl1C,EAAAA,CAAAA,CAAAA,UAA2B,CAElBm1C,GAAyB,CAGpC,CAACrD,GAAiB,CAAE,CAClB,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACnE,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACjE,CACD,CAAC8C,GAAiB,CAAE,CAClB,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,iBAAkB,CAAE,EAC/D,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACjE,CACD,CAACH,GAAgB,CAAE,CACjB,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,iBAAkB,CAAE,EAC/D,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACjE,CACD,CAACE,GAA+B,CAAE,CAChC,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,iBAAkB,CAAE,EAC/D,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACjE,CACD,CAACE,GAAgB,CAAE,CACjB,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,iBAAkB,CAAE,EAC/D,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACjE,CAED,CAAC1D,EAAyB,CAAE,CAC1B,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACnE,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,kBAAmB,CAAE,EAClE,CACD,CAAC4D,GAAwB,CAAE,CACzB,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,oBAAqB,CAAE,EAClE,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,kBAAmB,CAAE,EAClE,CACD,CAACC,GAAwB,CAAE,CACzB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,oBAAqB,CAAE,EACnE,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,oBAAqB,CAAE,EACrE,CACD,CAACC,GAAwB,CAAE,CACzB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,oBAAqB,CAAE,EACnE,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,oBAAqB,CAAE,EACrE,CACD,CAACjE,EAA4B,CAAE,CAC7B,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACnE,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACnE,CACD,CAACgB,EAAuB,CAAE,CACxB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,gBAAiB,CAAE,EAC/D,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACnE,CACD,CAACd,EAA0B,CAAE,CAC3B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACpE,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACnE,CACD,CAACL,EAAmB,CAAE,CACpB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACpE,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACnE,CACD,CAAC6D,GAAoB,CAAE,CACrB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,iBAAkB,CAAE,EACjE,CACD,CAACI,GAA0B,CAAE,CAC3B,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,iBAAkB,CAAE,EAChE,CACD,CAAC/B,EAAwB,CAAE,CACzB,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,wBAAyB,CAAE,EACvE,CACD,CAACQ,EAA6B,CAAE,CAC9B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,mBAAoB,CAAE,EACnE,CACD,CAACD,EAAoB,CAAE,CACrB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,mBAAoB,CAAE,EACnE,CACD,CAACjC,EAAmC,CAAE,CACpC,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACpE,CACD,CAACwC,EAA2B,CAAE,CAC5B,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,iBAAkB,CAAE,EAChE,CACD,CAACC,EAA2B,CAAE,CAC5B,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,iBAAkB,CAAE,EAChE,CACD,CAACC,EAAyB,CAAE,CAC1B,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,iBAAkB,CAAE,EAChE,CACD,CAACC,EAA+B,CAAE,CAChC,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,iBAAkB,CAAE,EAChE,CACD,CAACtC,EAAuB,CAAE,CACxB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACpE,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACnE,CACD,CAACY,EAA+C,CAAE,CAChD,CAAE,SAAU,WAAY,QAAS,CAAE,MAAO,cAAe,CAAE,EAC5D,CACD,CAACC,EAAsB,CAAE,CACvB,CAAE,SAAU,WAAY,QAAS,CAAE,MAAO,cAAe,CAAE,EAC5D,CACD,CAACC,EAA6B,CAAE,CAC9B,CAAE,SAAU,WAAY,QAAS,CAAE,MAAO,cAAe,CAAE,EAC5D,CACD,CAACE,EAAgC,CAAE,CACjC,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,gBAAiB,CAAE,EAC9D,CAAE,SAAU,WAAY,QAAS,CAAE,MAAO,kBAAmB,CAAE,EAChE,CACD,CAACO,EAA2B,CAAE,CAC5B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,oBAAqB,CAAE,EACpE,CACD,CAACC,EAA4B,CAAE,CAC7B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,oBAAqB,CAAE,EACpE,CACD,CAACF,EAAgB,CAAE,CACjB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,oBAAqB,CAAE,EACpE,CACD,CAACI,EAAwB,CAAE,CACzB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACrE,CACD,CAACP,EAAW,CAAE,CACZ,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,oBAAqB,CAAE,EACpE,CACD,CAACoB,EAAyB,CAAE,CAC1B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,mBAAoB,CAAE,EACnE,CACD,CAACZ,EAA8B,CAAE,CAC/B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACrE,CACD,CAAChB,EAAsB,CAAE,CACvB,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,gBAAiB,CAAE,EAC9D,CAAE,SAAU,WAAY,QAAS,CAAE,MAAO,kBAAmB,CAAE,EAChE,CACD,CAACoB,EAAkB,CAAE,CACnB,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACnE,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACnE,CACD,CAAC9B,EAAiC,CAAE,CAClC,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,oBAAqB,CAAE,EACpE,CACD,CAACwB,EAAkB,CAAE,CACnB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,mBAAoB,CAAE,EACnE,CACD,CAACK,EAAmB,CAAE,CACpB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACrE,CACD,CAAClC,EAAgC,CAAE,CACjC,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,mBAAoB,CAAE,EACnE,CACD,CAACqB,EAAkC,CAAE,CACnC,CAAE,SAAU,WAAY,QAAS,CAAE,MAAO,wBAAyB,CAAE,EACtE,CACD,CAACC,EAAgC,CAAE,CACjC,CAAE,SAAU,WAAY,QAAS,CAAE,MAAO,wBAAyB,CAAE,EACtE,CACD,CAAC9B,EAA6B,CAAE,CAC9B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,mBAAoB,CAAE,EACnE,CACD,CAACC,EAAqB,CAAE,CACtB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACrE,CACD,CAACsD,GAA2B,CAAE,CAC5B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACrE,CACD,CAACX,EAA4B,CAAE,CAC7B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,iBAAkB,CAAE,EAChE,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACjE,CACD,CAACC,EAAmB,CAAE,CACpB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,iBAAkB,CAAE,EACjE,CACD,CAACC,EAAkB,CAAE,CACnB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,iBAAkB,CAAE,EACjE,CACD,CAACM,EAA2B,CAAE,CAC5B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,iBAAkB,CAAE,EACjE,CACD,CAACC,EAA6B,CAAE,CAC9B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,oBAAqB,CAAE,EACpE,CACD,CAACC,EAA8B,CAAE,CAC/B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,mBAAoB,CAAE,EACnE,CACD,CAACtB,EAAW,CAAE,CACZ,CAAE,SAAU,WAAY,QAAS,CAAE,MAAO,mBAAoB,CAAE,EACjE,CACD,CAACvB,EAAyB,CAAE,CAC1B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACrE,CACD,CAACC,GAAkD,CAAE,CACnD,CAAE,QAAS,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACpE,CACD,CAACJ,EAA8B,CAAE,CAC/B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACpE,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACjE,CACD,CAACkD,GAAkB,CAAE,CACnB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,iBAAkB,CAAE,EAChE,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,kBAAmB,CAAE,EAClE,CACD,CAAC7C,GAAkB,CAAE,CACnB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,mBAAoB,CAAE,EACnE,CACD,CAAC8C,GAA2B,CAAE,CAC5B,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACpE,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,kBAAmB,CAAE,EACnE,CACD,CAACtC,EAAkB,CAAE,CACnB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,mBAAoB,CAAE,EACnE,CACD,CAAChB,EAAY,CAAE,CACb,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACrE,CACD,CAACwB,EAA4B,CAAE,CAC7B,CAAE,SAAU,WAAY,QAAS,CAAE,MAAO,kBAAmB,CAAE,EAC/D,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,gBAAiB,CAAE,EAC9D,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,0BAA2B,CAAE,EAC1E,CACD,CAACyC,GAAyB,CAAE,CAC1B,CAAE,SAAU,WAAY,QAAS,CAAE,MAAO,cAAe,CAAE,EAC5D,CACD,CAAChD,EAAgC,CAAE,CACjC,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,oBAAqB,CAAE,EACnE,CACD,CAACE,EAA4B,CAAE,CAC7B,CAAE,SAAU,WAAY,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACnE,CACD,CAACR,GAAsC,CAAE,CACvC,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,kBAAmB,CAAE,EAClE,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,iBAAkB,CAAE,EACjE,CACD,CAACC,GAAoB,CAAE,CACrB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,mBAAoB,CAAE,EACnE,CACD,CAACA,GAAoB,CAAE,CACrB,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,mBAAoB,CAAE,EACnE,CACD,CAACM,EAAmB,CAAE,CACpB,CAAE,SAAU,YAAa,QAAS,CAAE,MAAO,mBAAoB,CAAE,EAClE,CACD,CAACqC,GAAsB,CAAE,CACvB,CAAE,SAAU,cAAe,QAAS,CAAE,MAAO,kBAAmB,CAAE,EAClE,CAAE,SAAU,aAAc,QAAS,CAAE,MAAO,qBAAsB,CAAE,EACrE,AACH,C,qECvRA,GAAM,CAAErD,yBAAAA,CAAwB,CAAEa,uBAAAA,CAAsB,CAAE,CAAGhyC,A,SAAAA,CAAAA,CAAAA,OAAwB,CAExE0uC,EAAgB,CAC3B,OAAQ,CACN,KAAM,kBACN,IAAK,kBACL,aAAc,kBACd,YAAa,iBACf,EACA,CAACsD,EAAuB,CAAE,CACxB,KAAM,kBACN,IAAK,iBACP,EACA,CAACb,EAAyB,CAAE,CAC1B,KAAM,kBACN,IAAK,iBACP,CACF,C,6GCjBO,IAAMiE,EAA6B,CACxC,QAAS,SACX,EAEaC,EAA8B,CACzC,uBAAwB,kCACxB,yBAA0B,0BAC5B,EAEM,CAAE,QAAS,CAAErD,uBAAAA,CAAsB,CAAE,CAAE,CAAGhyC,EAAAA,CAAgBA,A,gJCNhE,IAAMxQ,EAAc+vC,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CACxB,KAAMz7B,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAAC,QAAS,OAAQ,UAAW,UAAW,SAAU,UAAW,SAAU,aAAc,eAAgB,OAAQ,UACvH,UAAW,aAAc,WAAY,QAAS,UAAW,SAAU,WAAW,CAClF,GAEayB,EAAeg6B,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAChC,SAAUhiC,EAAAA,MAAAA,CAAAA,UAAiB,CAC3B,KAAMA,EAAAA,MAAMA,CACZ,MAAOA,EAAAA,MAAMA,CACb,SAAUA,EAAAA,MAAMA,CAChB,SAAUA,EAAAA,MAAMA,CAChB,QAASA,EAAAA,MAAMA,CACf,aAAc/N,EAAY,UAAU,CACpC,SAAU+N,EAAAA,MAAMA,AAClB,GAEsCuG,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAC1CysC,EAAAA,EAAAA,CAAAA,UAAgC,CAChCA,EAAAA,EAAAA,CAAAA,UAAgC,CAChCA,EAAAA,EAAAA,CAAAA,SAA+B,CAC/BA,EAAAA,EAAAA,CAAAA,yBAA+C,CAC/CA,EAAAA,EAAAA,CAAAA,SAA+B,CAChC,EAEM,IAAMT,EAAuBvQ,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CACxC,UAAWhiC,EAAAA,MAAMA,CACjB,UAAWA,EAAAA,MAAMA,AACnB,GAEM+3C,EAAqB/V,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAC/B,SAAUhiC,EAAAA,MAAMA,CAChB,QAASmd,EAAAA,MAAMA,AACjB,GAEa66B,EAAmBhW,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CACpC,SAAUhiC,EAAAA,MAAAA,CAAAA,UAAiB,CAC3B,OAAQgiC,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAAE,QAAS19B,EAAAA,MAAAA,CAAAA,UAAiB,AAAC,GAAG,UAAU,CACxD,OAAQ09B,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAAE,UAAWA,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAAE,QAAS19B,EAAAA,MAAAA,CAAAA,UAAiB,AAAC,EAAG,GAAG,UAAU,AAChF,GAEgC09B,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CACpC,OAAQgW,EAAiB,UAAU,CACnC,OAAQA,EAAiB,UAAU,CACnC,KAAMA,EAAiB,UAAU,AACnC,GAEA,GAAM,CAAE9E,UAAAA,CAAS,CAAEC,UAAAA,CAAS,CAAE,CAAGF,EAAAA,EAA0BA,CAEzB1sC,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAAC2sC,EAAWC,EAAU,EAGvD,IAAMX,EAA8B/wB,AAAAA,CAAAA,EAAAA,EAAAA,OAAAA,AAAAA,EAAQs2B,E,qECrD5C,IAAM30C,EAAc,CACzB,iCAAkC,eAClC,6BAA8B,gCAC9B,+BAAgC,8BAChC,4BAA6B,4BAC7B,oCAAqC,mCACrC,sCAAuC,mBACvC,uBAAwB,sBACxB,yBAA0B,aAC1B,2BAA4B,YAC5B,iCAAkC,uCAClC,oCAAqC,mCACrC,wBAAyB,wBACzB,oCAAqC,iCACrC,4BAA6B,kBAC7B,qCAAsC,gBACtC,2CAA4C,+BAC5C,oDAAqD,sCACrD,uBAAwB,aACxB,qBAAsB,qBACtB,iCAAkC,8BAClC,iCAAkC,8BAClC,iCAAkC,8BAClC,sBAAuB,cACvB,qCAAsC,oCACtC,+BAAgC,eAChC,gCAAiC,YACjC,uBAAwB,eACxB,mBAAoB,aACpB,gCAAiC,sCACjC,+BAAgC,8BAChC,gCAAiC,yBACjC,aAAc,oBACd,6BAA8B,8BAC9B,+BAAgC,6BAClC,C,qECrCO,IAAME,EAAY,CACvB,UAAW,YACX,qBAAsB,qBACtB,0BAA2B,gBAC3B,yBAA0B,2BAC1B,2BAA4B,qCAC5B,sBAAuB,wBACvB,YAAa,cACb,MAAO,QACP,WAAY,aACZ,qBAAsB,uBACtB,uBAAwB,aACxB,mCAAoC,qGACpC,uCAAwC,4IACxC,iCAAkC,gDAClC,oDAAqD,sDACrD,kCAAmC,0NACnC,cAAe,gBACf,QAAS,UACT,WAAY,aACZ,UAAW,YACX,QAAS,UACT,QAAS,aACT,gCAAiC,2CACjC,eAAgB,8FAChB,2BAA4B,kCAC5B,kBAAmB,0CACnB,yBAA0B,2DAC1B,kDAAmD,6EACnD,wCAAyC,gGACzC,8BAA+B,gCAC/B,oBAAqB,sBACrB,2BAA4B,uIAC5B,uCAAwC,2PACxC,KAAM,OACN,SAAU,WACV,kBAAmB,4BAEnB,oBAAqB,wSACrB,qBAAsB,gSACtB,2BAA4B,uPAC5B,mBAAoB,kPACpB,iBAAkB,qOAClB,+BAAgC,kQAChC,4BAA6B,sPAC7B,wBAAyB,sWAEzB,wCAAyC,sDACzC,2CAA4C,+FAC5C,4BAA6B,+BAE7B,gBAAiB,kCACjB,kBAAmB,8HACnB,cAAe,qHAEf,0BAA2B,kCAC3B,8BAA+B,0BAC/B,eAAgB,0BAChB,qBAAsB,wBACtB,eAAgB,uBAChB,2BAA4B,kBAC5B,qBAAsB,uBAEtB,kBAAmB,+BACnB,gBAAiB,mBACjB,8BAA+B,gEAC/B,2BAA4B,+IAC5B,4BAA6B,qBAC7B,kBAAmB,0BACnB,0BAA2B,wDAE3B,mBAAoB,qBACpB,+BAAgC,qBAChC,uBAAwB,yCACxB,+BAAgC,sPAChC,wCAAyC,sCAEzC,eAAgB,oCAChB,uBAAwB,gQACxB,+BAAgC,+CAGhC,cAAe,sCACf,gBAAiB,8DAGjB,6BAA8B,8BAC9B,4BAA6B,sCAC7B,mCAAoC,6DAEpC,+BAAgC,0BAChC,gCAAiC,qBACjC,8BAA+B,gBAC/B,sCAAuC,uBACvC,qCAAsC,+DACtC,6BAA8B,qDAE9B,2BAA4B,kBAC5B,qCAAsC,iBAEtC,kBAAmB,sDAEnB,mCAAoC,2CACpC,4BAA6B,oCAC7B,uBAAwB,0BACxB,qBAAsB,+BACtB,6BAA8B,6CAE9B,iCAAkC,qFAClC,oCAAqC,sCACrC,wCAAyC,6CAEzC,oCAAqC,sCACrC,mBAAoB,qDAEpB,wBAAyB,oDACzB,+BAAgC,oBAChC,0BAA2B,sBAE3B,qCAAsC,0DACtC,8BAA+B,2BAC/B,gCAAiC,0EAEjC,4BAA6B,mCAC7B,oCAAqC,yCAErC,iDAAkD,gGAElD,kBAAmB,wIAEnB,iCAAkC,gDAClC,mCAAoC,uHACpC,iCAAkC,gCAElC,kBAAmB,2BACnB,oBAAqB,uHACrB,qCAAsC,2BAEtC,yBAA0B,qBAC1B,yBAA0B,qBAC1B,sCAAuC,8GACvC,qCAAsC,6CACtC,2CAA4C,0HAC5C,qCAAsC,6CACtC,2CAA4C,0HAE5C,kBAAmB,uBAEnB,8BAA+B,wCAC/B,8BAA+B,iEAC/B,8BAA+B,yCAC/B,8BAA+B,6CAC/B,8BAA+B,uEAC/B,8BAA+B,2CAE/B,kBAAmB,+BACnB,2BAA4B,kBAE5B,gCAAiC,2EAEjC,4BAA6B,cAC7B,wBAAyB,yCACzB,0BAA2B,wNAC3B,4BAA6B,kBAC7B,gCAAiC,cACjC,KAAM,OACN,SAAU,YACV,wBAAyB,iCAEzB,qBAAsB,iCACtB,uBAAwB,qFACxB,wBAAyB,gBACzB,SAAU,4BAEV,2BAA4B,OAC5B,2BAA4B,mBAC5B,0BAA2B,mCAC3B,gCAAiC,0BACjC,iCAAkC,8CAClC,mBAAoB,eACpB,cAAe,kBACf,kCAAmC,qDAEnC,qCAAsC,uHACtC,wCAAyC,qHACzC,sBAAuB,yEAEvB,KAAM,OACN,oBAAqB,iBACrB,0BAA2B,qDAE3B,8BAA+B,sDAE/B,4BAA6B,eAC7B,kCAAmC,8DACnC,2BAA4B,mCAE5B,iBAAkB,kBAClB,uBAAwB,8DACxB,gBAAiB,sCAEjB,4BAA6B,0BAC7B,kCAAmC,+CACnC,2BAA4B,mCAE5B,kBAAmB,oBACnB,UAAW,YACX,YAAa,cAEb,oBAAqB,mLACrB,iBAAkB,kCAClB,iBAAkB,oDAClB,MAAO,QACP,KAAM,OAEN,8BAA+B,eAC/B,oCAAqC,4DACrC,6BAA8B,kCAE9B,mCAAoC,oDACpC,iBAAkB,2BAClB,8BAA+B,oBAC/B,iBAAkB,wBAClB,iBAAkB,uBAClB,iBAAkB,kBAClB,iBAAkB,uBAElB,uBAAwB,oEACxB,eAAgB,iBAEhB,oBAAqB,oDACrB,gBAAiB,kBAEjB,iCAAkC,4FAElC,4BAA6B,oGAC7B,gCAAiC,uDACjC,gBAAiB,kBACjB,sCAAuC,kDAEvC,kCAAmC,8CACnC,8BAA+B,8FAE/B,kCAAmC,iGACnC,0BAA2B,yEAE3B,4BAA6B,sDAE7B,gBAAiB,kBACjB,sBAAuB,wBACvB,IAAK,iCACL,2BAA4B,sCAC5B,cAAe,gBACf,2BAA4B,6BAC5B,4BAA6B,8BAC7B,iBAAkB,oCAElB,SAAU,WACV,aAAc,eAEd,gCAAiC,wDACjC,gCAAiC,wDACjC,8BAA+B,sDAC/B,0CAA2C,gEAE3C,gCAAiC,wDACjC,gCAAiC,wDACjC,8BAA+B,sDAC/B,0CAA2C,gEAE3C,YAAa,SACb,YAAa,SACb,UAAW,OAEX,cAAe,eAEf,8BAA+B,yCAC/B,8BAA+B,0GAC/B,sBAAuB,yBACvB,0BAA2B,6GAC3B,6BAA8B,0EAE9B,+CAAgD,8DAChD,kCAAmC,mCAEnC,gCAAiC,wEACjC,uBAAwB,2BACxB,6BAA8B,yEAE9B,YAAa,gBACb,wBAAyB,qDAEzB,6BAA8B,yBAC9B,sCAAuC,uCACvC,0CAA2C,6BAE3C,kCAAmC,qBACnC,yCAA0C,4BAC1C,oCAAqC,uBACrC,gCAAiC,mBACjC,6BAA8B,gBAC9B,6BAA8B,gBAE9B,mCAAoC,qDACpC,4BAA6B,qCAE7B,sCAAuC,oDACvC,+BAAgC,oCAEhC,cAAe,gBACf,YAAa,sFAEb,iBAAkB,sFAClB,uBAAwB,sGACxB,eAAgB,iBAChB,QAAS,UAET,iBAAkB,kBAClB,WAAY,sCACZ,UAAW,uBACX,cAAe,kIACf,aAAc,uEACd,eAAgB,YAChB,yBAA0B,+DAE1B,MAAO,QACP,mBAAoB,sBACpB,iBAAkB,mBAClB,mBAAoB,qBACpB,oBAAqB,sBACrB,aAAc,wBACd,mBAAoB,qBACpB,yBAA0B,2BAC1B,uBAAwB,oBACxB,gBAAiB,kBACjB,oBAAqB,sBACrB,eAAgB,iBAChB,uBAAwB,oCACxB,UAAW,MACX,gBAAiB,2BACjB,eAAgB,iBAChB,gBAAiB,qCACjB,sBAAuB,wBACvB,2BAA4B,oCAC5B,iCAAkC,sCAClC,uBAAwB,2BACxB,SAAU,WAEV,mCAAoC,yEACpC,qCAAsC,4BACtC,gCAAiC,8CACjC,+BAAgC,sCAChC,qCAAsC,4EAEtC,gCAAiC,UACjC,qCAAsC,mBAEtC,uBAAwB,wEACxB,2BAA4B,gGAE5B,gCAAiC,6EACjC,oBAAqB,2BAErB,+BAAgC,6EAEhC,mCAAoC,4FAEpC,mBAAoB,qBACpB,iBAAkB,mBAClB,eAAgB,iBAChB,mCAAoC,mCACpC,qBAAsB,uBACtB,gBAAiB,kBACjB,wBAAyB,0BACzB,iCAAkC,qCAClC,6CAA8C,0CAC9C,kBAAmB,kBACnB,kBAAmB,oBAEnB,4BAA6B,yDAC7B,qBAAsB,wCAEtB,gBAAiB,wDACjB,cAAe,gBACf,KAAM,OACN,iBAAkB,mBAClB,yBAA0B,2EAE1B,wBAAyB,yEAEzB,mCAAoC,kEACpC,+CAAgD,yFAChD,YAAa,cACb,qBAAsB,sHAEtB,iBAAkB,0CAClB,uBAAwB,iGAExB,kBAAmB,yBACnB,wBAAyB,qJAEzB,iCAAkC,mEAClC,qCAAsC,oFAEtC,uCAAwC,yIACxC,2BAA4B,sEAE5B,UAAW,uCACX,gBAAiB,sHACjB,iBAAkB,qBAElB,SAAU,WACV,UAAW,YACX,wBAAyB,2BACzB,8BAA+B,uJAC/B,iCAAkC,2KAClC,KAAM,QACN,aAAc,eACd,8BAA+B,gCAC/B,YAAa,cAEb,+BAAgC,mEAChC,gDAAiD,yEAEjD,qBAAsB,wFAEtB,yCAA0C,qFAC1C,+CAAgD,qFAChD,iBAAkB,yBAClB,iBAAkB,yBAClB,gBAAiB,wBACjB,gBAAiB,wBACjB,eAAgB,uBAChB,YAAa,+BAEb,UAAW,mBACX,sBAAuB,8HACvB,iBAAkB,0BAElB,2BAA4B,yBAE5B,kBAAmB,mDACnB,mCAAoC,8JAEpC,8CAA+C,yDAE/C,WAAY,MACZ,eAAgB,UAChB,qCAAsC,sCAEtC,0CAA2C,qDAC3C,gCAAiC,qEACjC,sBAAuB,wBAEvB,wBAAyB,4BACzB,+BAAgC,oFAChC,2BAA4B,6BAE5B,8BAA+B,qJAC/B,UAAW,YACX,aAAc,eACd,UAAW,YACX,sBAAuB,wBACvB,8BAA+B,gCAE/B,mBAAoB,qBACpB,wCAAyC,4LACzC,4BAA6B,8BAE7B,YAAa,cACb,wBAAyB,gEACzB,iCAAkC,kIAElC,kCAAmC,+DACnC,4BAA6B,yHAE7B,qBAAsB,0CACtB,4BAA6B,mHAE7B,oBAAqB,2DAErB,sBAAuB,gDACvB,0CAA2C,gDAE3C,WAAY,mGAEZ,qBAAsB,mCACtB,gCAAiC,2DAEjC,uCAAwC,4FAExC,wBAAyB,0BACzB,gCAAiC,uCACjC,mBAAoB,qBACpB,OAAQ,SAER,sCAAuC,8DAEvC,mBAAoB,qBAEpB,+BAAgC,sDAChC,6BAA8B,oBAE9B,0BAA2B,8DAC3B,4BAA6B,sFAC7B,0BAA2B,gGAC3B,8CAA+C,4EAE/C,uCAAwC,8DACxC,mDAAoD,6IACpD,+BAAgC,uCAEhC,YAAa,wCACb,UAAW,YAEX,YAAa,cACb,SAAU,aACV,2BAA4B,4CAC5B,uCAAwC,yCACxC,wDAAyD,gEACzD,oDAAqD,sDACrD,qCAAsC,+BAEtC,0BAA2B,4BAC3B,sCAAuC,sFAEvC,0CAA2C,4CAC3C,sDAAuD,uDAEvD,0BAA2B,4DAC3B,aAAc,eAEd,sCAAuC,wDACvC,qCAAsC,qFACtC,QAAS,UACT,iCAAkC,mCAElC,+CAAgD,uFAEhD,mBAAoB,uBAEpB,QAAS,SAEX,C,qEC/hBO,IAAMX,EAAW,CACtB,qBAAsB,CACpB,kBAAmB,wNACnB,eAAgB,qNAClB,EACA,wBAAyB,CACvB,kBAAmB,0MACnB,eAAgB,uMAClB,EACA,gCAAiC,CAC/B,kBAAmB,0LACnB,eAAgB,oLAClB,EACA,6BAA8B,CAC5B,kBAAmB,yLACnB,eAAgB,sLAClB,EACA,0BAA2B,CACzB,IAAK,uJACP,EACA,mBAAoB,CAClB,eAAgB,8JAClB,EACA,iCAAkC,CAChC,kBAAmB,+LACnB,eAAgB,yLAClB,EACA,sBAAuB,CACrB,kBAAmB,8LACnB,eAAgB,wLAClB,EACA,+BAAgC,CAC9B,YAAa,8KACb,eAAgB,8KAClB,EACA,4BAA6B,CAC3B,kBAAmB,0LACnB,eAAgB,4LAClB,EACA,gCAAiC,CAC/B,kBAAmB,8KACnB,eAAgB,4JAClB,EACA,gCAAiC,gMACjC,uBAAwB,CACtB,kBAAmB,iLACnB,eAAgB,+JAClB,EACA,sBAAuB,CACrB,kBAAmB,wLACnB,kBAAmB,wKACrB,EACA,yBAA0B,CACxB,kBAAmB,6MACnB,eAAgB,wLAClB,EACA,mCAAoC,CAClC,kBAAmB,4LACnB,eAAgB,0KAClB,EACA,yBAA0B,CACxB,kBAAmB,6LACrB,EACA,0BAA2B,CACzB,kBAAmB,6JACrB,EACA,oBAAqB,CACnB,kBAAmB,sLACnB,eAAgB,oKAClB,EACA,uBAAwB,CACtB,kBAAmB,yLACnB,eAAgB,uKAClB,EACA,sBAAuB,CACrB,6BAA8B,iMAC9B,uBAAwB,0LAC1B,EACA,0BAA2B,CACzB,kBAAmB,sLACnB,eAAgB,oKAClB,EACA,gBAAiB,CACf,kBAAmB,6KACrB,EACA,8BAA+B,CAC7B,wBAAyB,yLACzB,yBAA0B,yLAC5B,EACA,2BAA4B,CAC1B,kBAAmB,mMACnB,eAAgB,iLAClB,EACA,mCAAoC,CAClC,kBAAmB,4KACrB,EACA,oCAAqC,CACnC,eAAgB,uKAClB,EACA,sCAAuC,CACrC,eAAgB,+KAClB,EACA,iCAAkC,CAChC,aAAc,gMAChB,EACA,gCAAiC,CAC/B,YAAa,0NACb,eAAgB,oNAChB,SAAU,uCACZ,EACA,2BAA4B,CAC1B,eAAgB,+MAClB,EACA,4BAA6B,CAC3B,eAAgB,gNAClB,EACA,+BAAgC,CAC9B,kBAAmB,oLACnB,eAAgB,6JAClB,EACA,gCAAiC,CAC/B,eAAgB,0LAClB,EACA,wBAAyB,CACvB,kBAAmB,uMACnB,eAAgB,gMAClB,EACA,kCAAmC,CACjC,eAAgB,iLAClB,EACA,0BAA2B,CACzB,qBAAsBgF,AAAAA,GAAa,CAAC,0DAA0D,EAAEA,EAAU,yGAAyG,CAAC,AACtN,EACA,6BAA8B,CAC5B,qBAAsBA,AAAAA,GAAa,CAAC,0DAA0D,EAAEA,EAAU,4GAA4G,CAAC,AACzN,EACA,iCAAkC,CAChC,kBAAmB,0LACnB,eAAgB,8LAClB,EACA,kCAAmC,CACjC,kBAAmB,mLACnB,eAAgB,uLAClB,EACA,gCAAiC,CAC/B,kBAAmB,iMACrB,EACA,kBAAmB,CACjB,kBAAmB,qLACnB,eAAgB,kLAClB,EACA,yBAA0B,CACxB,mBAAoB,0LACtB,EACA,8BAA+B,CAC7B,2BAA4B,mMAC9B,EACA,0BAA2B,CACzB,sBAAuB,6LACzB,EACA,4BAA6B,CAC3B,sBAAuB,sNACzB,EACA,gCAAiC,CAC/B,cAAe,wMACf,WAAY,2MACd,EACA,mCAAoC,CAClC,2BAA4B,sLAC9B,EACA,mBAAoB,CAClB,uBAAwB,0LAC1B,EACA,YAAa,CACX,eAAgB,iLAClB,EACA,qCAAsC,CACpC,iBAAkB,wNACpB,EACA,oBAAqB,CACnB,eAAgB,2LAClB,EACA,uBAAwB,CACtB,eAAgB,kNAClB,CACF,C,wKCxLA,IAAMswC,EAAc,CAClB,MAAO,QACP,OAAQ,SACR,QAAS,UACT,OAAQ,SACR,QAAS,SACX,EAEMC,EAAmB,CAACC,EAAO/kC,IAAYA,AAAAA,CAAAA,EAAS,IAAM,EAAC,EAAK+kC,EAAM,WAAW,GAE7EC,EAAW9uD,AAAAA,GAAOA,EAAI,OAAO,CAAC,yBAA0B4uD,GAExDG,EAAgBC,AAAAA,GAAajuD,OAAO,MAAM,CAAC4tD,GAAa,IAAI,CAAChtD,AAAAA,GAAQqtD,EAAU,WAAW,GAAG,QAAQ,CAACrtD,IAE/F4X,EAAqB,CAACy1C,EAAY,EAAE,CAAEC,EAAS,EAAE,IAC5D,IAAMC,EAAYH,EAAcC,GAChC,MAAO,CACL,UAAW,yBAAiBE,GAAW,CACvC,UAAWD,EAAS,CAAC,EAAEH,EAASE,GAAW,CAAC,EAAEF,EAASG,GAAQ,CAAC,CAAG,CAAC,EAAEH,EAASE,GAAW,CAAC,AAC7F,CACF,EAEaG,EAAgC,CAACC,EAAeC,EAAY,EAAE,GAC7CD,EAAc,GAAG,CAAC,CAAC5yD,EAAMc,IAEnD,AAAI,AADmC,YAAxB,OAAO+xD,CAAS,CAAC/xD,EAAE,CACd,WAAKd,GAClB,mBAAKA,GAAAA,CAAM,SAAU6yD,CAAS,CAAC/xD,EAAE,A,IAK/BgyD,EAAuB,CAACh2C,EAAe,CAAC,CAAC,I,IAGpDivC,EAFA,IAAMgH,EAASj2C,CAAY,CAAC,UAAU,CAChC41C,EAAYH,EAAcQ,E,AAChB,QAAhBhH,CAAAA,EAAAA,OAAO,SAAS,AAAD,GAAfA,AAAAA,KAAAA,IAAAA,GAAAA,EAAkB,IAAI,CAAC,CACrB,MAAO,CAAC,EAAE2G,EAAU,MAAM,CAAC,CAC3B,UAAWK,CACb,EACF,EAEa91C,EAAc,CACzB,UAAW,WACX,6BAA8B,4BAC9B,MAAO,QACP,cAAe,eACf,QAAS,UACT,cAAe,eACf,QAAS,UACT,mBAAoB,oBACpB,0BAA2B,0BAC3B,iBAAkB,iBAClB,gBAAiB,gBACjB,YAAa,YACb,SAAU,UACV,WAAY,YACZ,cAAe,eACf,eAAgB,gBAChB,QAAS,SACT,gBAAiB,gBACjB,eAAgB,eAChB,eAAgB,eAChB,eAAgB,eAChB,YAAa,aACb,QAAS,SACT,8BAA+B,6BAC/B,SAAU,WACV,mBAAoB,oBACpB,uBAAwB,uBACxB,sBAAuB,sBACvB,QAAS,SACT,mBAAoB,mBACpB,QAAS,QACX,C,8KCtEO,IAAM+1C,EAA2B,KACtC,IAAIC,EAAqB,GACrBC,EAAoB,CAAC,EACnBC,EAAc/qC,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAW,gBAC/B,GAAI,CAAC+qC,EAAa,OAAOD,EACzB,GAAI,CACFD,EAAqBG,mBAAmBD,GACxCD,EAAoBjzD,KAAK,KAAK,CAACgzD,EACjC,CAAE,MAAOx9D,EAAG,CACVmU,QAAQ,IAAI,CAACnU,EACf,CAEA,MAAO,mBAAKy9D,GAAAA,CAAmB,SAAUC,C,EAC3C,EAEME,EAAc,CAACzzD,EAAM,EAAE,CAAE9C,EAAQ,EAAE,GAAO8C,GAAO,CAAC,CAAC,KAAMnE,KAAAA,EAAW,GAAG,CAAC,QAAQ,CAACqB,GAAU,CAAC,EAAE8C,EAAI,CAAC,EAAE9C,EAAM,CAAC,CAAG,GAE/Gw2D,EAAc,CAAC,GAAGz3D,IAAWA,EAAO,MAAM,CAAC2rD,AAAAA,GAASA,GAAO,IAAI,CAAC,KAEhE+L,EAAyB,KAC7B,GAAM,CACJ,WAAY1xC,EAAY,EAAE,CAC1B,aAAcD,EAAc,EAAE,CAC9B,WAAY4xC,EAAY,EAAE,CAC1B,SAAUC,EAAU,EAAE,CACtB,YAAa3xC,EAAa,EAAE,CAC5B,QAAS4xC,EAAW,EAAE,CACtBjN,SAAAA,EAAW,EAAE,CACd,CAAGuM,IAEE,CAAEW,QAAAA,CAAO,CAAE,CAAG5B,EAAAA,EAA0BA,CAExC6B,EAAYP,EAAY,aAAc5M,GACtCoN,EAAiBR,EAAY,aAAcxxC,GAC3CiyC,EAAmBT,EAAY,eAAgBzxC,GAC/CmyC,EAAiBV,EAAY,aAAcG,GAC3CQ,EAAeX,EAAY,WAAYI,GACvCQ,EAAkBZ,EAAY,cAAevxC,GAC7CoyC,EAAgBb,EAAY,UAAWK,GACvCS,EAAoBd,EAAY,QAASjrC,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAW,kBAG1D,OAAOkrC,EAAYM,EAAWC,EAAgBC,EAAkBC,EAAgBC,EAAcC,EAAiBC,EAAeC,EAF1Fd,EAAY,yBAA0BjrC,AAA+B,OAA/BA,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAW,gBAA2BurC,EAAU,IAG5H,EAEMS,EAA8B,CAAC,CACnCpqD,SAAAA,CAAQ,CAAEq/C,UAAAA,CAAS,CAAEC,SAAAA,CAAQ,CAAEz8C,MAAAA,CAAK,CAAEo/C,SAAAA,CAAQ,CAAEoI,QAAAA,CAAO,CAAEnI,QAAAA,CAAO,CACjE,IACC,IAAMoI,EAAgBjB,EAAY,eAAgBrpD,GAC5CuqD,EAAYlB,EAAY,kBAAmBhK,GAC3CmL,EAAgBnB,EAAY,iBAAkB/J,GAC9CmL,EAAapB,EAAY,YAAaxmD,GACtC6nD,EAAgBrB,EAAY,WAAYpH,GACxC0I,EAAetB,EAAY,mBAAoBgB,GAGrD,OAAOf,EAAYgB,EAAeC,EAAWC,EAAeC,EAAYC,EAAeC,EAFlEtB,EAAY,UAAWnH,GAG9C,EAGalB,EAAoB,CAAC,CAChChhD,SAAAA,CAAQ,CAAEq/C,UAAAA,CAAS,CAAEC,SAAAA,CAAQ,CAAEz8C,MAAAA,CAAK,CAAE+nD,SAAAA,CAAQ,CAAE3I,SAAAA,CAAQ,CAAEoI,QAAAA,CAAO,CAAEnI,QAAAA,CAAO,CAC1E2I,YAAAA,CAAW,CAAElM,eAAAA,CAAc,CAAEkB,cAAAA,CAAa,CAAEI,QAAAA,CAAO,CAAEC,yBAAAA,CAAwB,CAC9E,IACC,IAAM4K,EAAkBV,EAA4B,CAClDpqD,SAAAA,EAAUq/C,UAAAA,EAAWC,SAAAA,EAAUz8C,MAAAA,EAAOo/C,SAAAA,EAAUoI,QAAAA,EAASnI,QAAAA,CAC3D,GACM6I,EAAmBxB,IACnByB,EAAe3B,EAAY,UAAWpJ,GACtCgL,EAAc5B,EAAY,yBAA0BwB,GACpDK,EAAmB7B,EAAY,mBAAoBxJ,GACnDsL,EAAkB9B,EAAY,kBAAmBjO,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,KACjDgQ,EAA4B/B,EAAY,2BAA4BjrC,AAA6C,QAA7CA,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAW,8BAA0C,uBAAyB,IAClJitC,EAA0BhC,EAAY,qBAAsBjrC,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAW,uBACvEktC,EAA+BjC,EAAY,0BAA2BjrC,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAW,4BACjFmtC,EAAsBlC,EAAY,iBAAkB1K,GACpD6M,EAAgCnC,EAAY,mCAAoCnJ,GAChFuL,EAAcpC,EAAY,SAAUjrC,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAW,WAC/CstC,EAAsBrC,EAAY,iBAAkBsC,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAef,IAGnEgB,EAAYtC,EAChBwB,EAAiBC,EACjBQ,EAAqBP,EAAcE,EACnCC,EAAiBC,EAA2BC,EAC5CC,EAA8BL,EAAaQ,EAAaC,EANpCrC,EAAY,WAAYuB,GAO5CY,EAA+B,SAAU,aAG3C,MAAO,CAAC,CAAC,EAAEI,EAAU,CAAC,AACxB,EAWaC,EAAmB,IAC9B,EAAKzK,EAAAA,EAAmBA,EACjBhjC,AAA+B,OAA/BA,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAW,e,iTClGb,IAAM0tC,EAAappD,AAAAA,IACxB,GAAI,CAACA,EAAM,MAAO,GAElB,GAAI,CACF,OAAOqpD,IAAAA,MAAW,CAACrpD,EACrB,CAAE,MAAOF,EAAO,CAEd,OADA5C,QAAQ,GAAG,CAAC4C,GACLE,CACT,CACF,EAUaspD,EAAiB9wD,AAAAA,IAC5B,GAAI+F,SAAS,cAAc,CAAC/F,GAC1B,OAAO+F,SAAS,cAAc,CAAC/F,GAEjC,IAAM+wD,EAAShrD,SAAS,aAAa,CAAC,OAGtC,OAFAgrD,EAAO,EAAE,CAAG/wD,EACZ+F,SAAS,IAAI,CAAC,WAAW,CAACgrD,GACnBA,CACT,EAKaC,EAAeC,AAAAA,GAAOA,EAAI,QAAQ,GAAG,OAAO,CAAC,0BAA2B,OAsDxEtL,EAA4Bn/C,AAAAA,IACvC,IAAM1B,EAAW0B,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,QAAQ,AAAD,GAAK,GAC7BkpD,EAAWlpD,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,KAAK,AAAD,GAAK,GAEhC,MAAO,CACL,SAAUoqD,EAAW9rD,GACrB,SAAU8rD,EAAWlB,EACvB,CACF,EAEarL,EAAuB79C,AAAAA,I,IACZ0qD,EAONC,EAPhB,IAAMC,EAAgBF,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAU,OAAVA,CAAAA,EAAAA,EAAM,IAAI,AAAD,GAATA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAY,KAAK,CAAC,IAAG,GAAK,EAAE,CAC5CG,EAAgBD,EAAc,MAAM,CAAG,EACvCjN,EAAYiN,AAAyB,IAAzBA,EAAc,MAAM,CAASA,CAAa,CAAC,EAAE,CAAGA,EAAc,KAAK,CAAC,EAAG,IAAI,IAAI,CAAC,KAAK,IAAI,GACrGhN,EAAWgN,AAAyB,IAAzBA,EAAc,MAAM,CAAS,GAAMA,CAAa,CAACC,EAAc,EAAI,GAC9E1pD,EAAQnB,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,KAAK,AAAD,GAAK,GAEvB2oD,EAAU3oD,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,OAAO,AAAD,GAAK,GAC3BwgD,EAAUmK,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAc,OAAdA,CAAAA,EAAAA,EAAM,QAAQ,AAAD,GAAbA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgB,YAAY,AAAD,GAAK,GAGhD,MAAO,CACL,SAAUP,EAHKpqD,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,QAAQ,AAAD,GAAK,IAIjC,UAAWoqD,EAAWzM,GACtB,SAAUyM,EAAWxM,GACrB,MAAOwM,EAAWjpD,GAClB,SAAUipD,EAAWjpD,GACrB,SAAUipD,EAXK,IAYf,QAASA,EAAWzB,GACpB,QAASyB,EAAW5J,EACtB,CACF,EAUahE,EAAS,IAAM5yD,AAAuB,eAAvBA,OAAO,WAAW,CACjC61D,EAAgB,IAAM71D,AAAuB,gBAAvBA,OAAO,WAAW,CAyBxCkhE,EAAgB,CAACC,EAAe/5C,IACnC+5C,EACJpL,EAAAA,CAAa,CAAC3uC,EAAO,CAAC,IAAI,CAC1B2uC,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,IAAyB,CAGlBqL,EAAe,CAACD,EAAe/5C,IACnC+5C,EACHpL,EAAAA,CAAa,CAAC3uC,EAAO,CAAC,GAAG,CACzB2uC,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,GAAwB,CAuBjBsK,EAAiB9oD,AAAAA,GAC5B,AAAKA,EAIE8pD,AAFa,CAAC,MAAO,YAAa,UAAW,SAAU,MAAO,UAAW,UAAW,MAAO,YAAa,QAAS,YAAa,aAAc,OAAQ,cAAe,QAAS,aAAc,UAAW,SAAU,QAAS,SAAU,OAAQ,MAAO,OAAQ,KAAM,aAAc,MAAO,UAAW,QAAS,WAAY,SAAU,YAAa,SAAU,UAAW,eAAgB,SAAU,aAAc,YAAa,OAAQ,SAAU,UAAW,UAAW,UAAW,cAAe,cAAe,QAAS,SAAU,QAAQ,CAErf,IAAI,CAACC,AAAAA,GAAU/pD,EAAM,QAAQ,CAAC,CAAC,CAAC,EAAE+pD,EAAO,CAAC,CAAC,GAJ3C,E,yEC3LJ9tC,EAgCDA,E,8EC/BV+tC,IAAAA,EAAsB,CAAC,CAC3BnE,UAAAA,CAAS,CACToE,WAAAA,CAAU,CACVC,aAAAA,CAAY,CACZC,SAAAA,CAAQ,CACT,IAUC,GAAM,CAACC,EAAgBC,EAAU,CAAGC,AATP5yD,CAAAA,OAAO6yD,IAAI,CAACL,GAAcM,QAAQ,CAAC,QAC5D,CAACN,EAAa,CACd,CACAA,EAAaO,MAAM,CACnBP,EAAaQ,SAAS,CACtBR,EAAaS,QAAQ,CACrBT,EAAaU,YAAY,CAC1B,CAACC,MAAM,CAAC34D,AAAAA,GAAK,CAAC,CAACA,EAAAA,EAGf44D,GAAG,CAACC,AAAAA,IACH,GAAM,CACJljD,OAAAA,EAAS,EAAI,CACbvP,KAAM0yD,CAAY,CAClBC,cAAAA,CAAa,CACbC,gBAAAA,EAAkB,EAAI,CACtBC,UAAAA,EAAY,MAAM,CACnB,CAAGJ,EAEEK,EAAYC,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAChB,CACEhB,UAAW,CACTW,aAAAA,EACAC,cAAAA,EACAE,UAAAA,CACF,EACAtF,UAAAA,CACF,GAGIyF,EAAmBC,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAsB,CAC7C1F,UAAAA,EACAoF,cAAAA,EACAD,aAAAA,CACF,GAEA,OAAO,AAACI,GAAcF,GAAoBrjD,IAAUyjD,EAAwB,CAACF,EAAWL,EAAK,CAAtB,EAAE,AAC3E,GACCF,MAAM,CAAC34D,AAAAA,GAAK,CAAC,CAACA,EAAE8iD,MAAM,CAAC,CAAC,EAAE,EAAI,EAAE,QAEnC,AAAKoV,EAKHoB,AAAAA,CAAAA,EAAAA,EAAAA,GAAAA,AAAAA,EAAC7hC,EAAAA,QAAAA,CAAAA,CACC,SAAA6hC,AAAAA,CAAAA,EAAAA,EAAAA,GAAAA,AAAAA,EAACC,EAAAA,CAAAA,CAAAA,CACCvB,aAAcA,EACdG,UAAWA,EACXxE,UAAWA,EACXhnD,KAAMorD,MAAAA,EAAAA,KAAAA,EAAAA,EAAYprD,IAAI,CAEtB,SAAA2sD,AAAAA,CAAAA,EAAAA,EAAAA,GAAAA,AAAAA,EAACpB,EAAmBH,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAAA,G,KAXjBuB,AAAAA,CAAAA,EAAAA,EAAAA,GAAAA,AAAAA,EAACrB,EAAaF,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAAA,GAezB,CAEAD,CAAAA,EAAoB0B,SAAS,CAAG,CAC9B7F,UAAWx4C,EAAAA,MAAAA,CACX48C,WAAY5a,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAAC,GACnB6a,aAAc7a,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAClBxnC,OAAQuF,EAAAA,IAAAA,CACR9U,KAAM+U,EAAAA,MAAAA,CACN49C,cAAe59C,EAAAA,MAAAA,CACf69C,gBAAiB99C,EAAAA,IAAAA,CACjB+9C,UAAW99C,EAAAA,MAAAA,AACb,GACA88C,SAAUwB,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,CAClB/8C,EAAAA,IAAAA,CACAD,EAAAA,WAAAA,CACD,CACH,EAEAq7C,EAAoB4B,YAAY,CAAG,CACjC/F,UAAW,GACXoE,WAAY,CAAC,EACbC,aAAc,CAAC,EACfC,SAAUjvC,EAAAA,QAAAA,AACZ,EDvFA,IAAM9F,EAAqB,CAAC,CAC1B80C,aAAAA,EAAejuC,AAAa,OAAbA,CAAAA,EAAAA,EAAAA,CAAMA,CAACxzB,MAAM,AAAD,GAAZwzB,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAeiuC,YAAY,CAC1CD,WAAAA,CAAU,CACVpE,UAAAA,CAAS,CACTsE,SAAAA,CAAQ,CACT,GAEGqB,AAAAA,CAAAA,EAAAA,EAAAA,GAAAA,AAAAA,EAACxB,EAAAA,CACCE,aAAcA,EACdD,WAAYA,EACZpE,UAAWA,EACXsE,SAAUA,C,EAKhB/0C,CAAAA,EAAmBs2C,SAAS,CAAG,CAC7B7F,UAAWx4C,EAAAA,MAAAA,CAAAA,UAAiB,CAC5B48C,WAAY5a,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAAC,GACnB6a,aAAc7a,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAClBxnC,OAAQuF,EAAAA,IAAAA,CACR9U,KAAM+U,EAAAA,MAAAA,CACN49C,cAAe59C,EAAAA,MAAAA,CACf69C,gBAAiB99C,EAAAA,IAAAA,CACjB+9C,UAAW99C,EAAAA,MAAAA,AACb,GACA88C,SAAUwB,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,CAClB/8C,EAAAA,IAAAA,CACAD,EAAAA,WAAAA,CACD,CACH,EAEAyG,EAAmBw2C,YAAY,CAAG,CAChC1B,aAAc,AAAAjuC,OAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAOxzB,MAAM,AAAD,GAAZwzB,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAeiuC,YAAY,CACzCD,WAAY,CAAC,EACbE,SAAUjvC,EAAAA,QAAAA,AACZ,C,kKErCA,IAAM2wC,EAAsB1vC,AAAAA,CAAAA,EAAAA,EAAAA,aAAAA,AAAAA,EAAc,CAAC,GAE9BsvC,EAAuB,CAAC,CACnCp9C,SAAAA,CAAQ,CACR67C,aAAAA,CAAY,CACZG,UAAAA,CAAS,CACTxE,UAAAA,CAAS,CACThnD,KAAAA,CAAI,CACL,IACC,IAAMy/C,EAAgB71D,AAAuB,gBAAvBA,OAAO0F,WAAW,CAClC29D,EAAgB1oC,AAAAA,CAAAA,EAAAA,EAAAA,OAAAA,AAAAA,EAAQ,IAAM,IAAIi3B,EAAAA,CAAc,EAAEx7C,KAAAA,EAAMg8C,YAAa,qBAAsBC,gBAAiBwD,C,GAAkB,CAACz/C,EAAMy/C,EAAc,EAEnJ,CAACnxD,EAAM,CAAGuoB,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,CACvBw0C,aAAAA,EACAG,UAAAA,EACAxE,UAAAA,CACF,GAEA,MACE2F,AAAAA,CAAAA,EAAAA,EAAAA,GAAAA,AAAAA,EAACK,EAAoBjV,QAAQ,EAC3B3mD,MAAO,CACL9C,MAAAA,EACA2+D,cAAAA,CACF,EAEEz9C,SAAAA,C,EAGR,CAEAo9C,CAAAA,EAAqBC,SAAS,CAAG,CAC/Br9C,SAAUO,EAAAA,IAAAA,CAAAA,UAAe,CACzBs7C,aAAc1/B,EAAAA,MAAAA,CAAAA,UAAiB,CAC/B6/B,UAAW7/B,EAAAA,MAAAA,CAAAA,UAAiB,CAC5Bq7B,UAAWx4C,EAAAA,MAAAA,CAAAA,UAAiB,CAC5BxO,KAAM2rB,EAAAA,MAAAA,CAAAA,UAAiB,AACzB,E,IAEauhC,EAAyB,KACpC,GAAM,CAAE5+D,MAAAA,CAAK,CAAE2+D,cAAAA,CAAa,CAAE,CAAG1kC,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAWykC,GAE5C,MAAOG,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EACF7+D,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAAA,GAAAA,CACH2+D,cAAAA,C,EAEJ,C,kqLCjDO,IAAMG,EAAmB,CAAC,CAC/BpG,UAAAA,CAAS,CACTmF,aAAAA,CAAY,CACZC,cAAAA,CAAa,CACbE,UAAAA,CAAS,CACV,IACC,GAAI,EAACH,IAAgB,CAACnF,EAKtB,MAAO,CAAC,CAAC,CAAC,EAAEsF,EAAU,CAAC,CAAEH,EAAcnF,EADRoF,GAAiB,KACyB,CAACH,GAAG,CAACvrD,AAAAA,GAAQ2sD,IAAU3sD,EAAK4sD,WAAW,IAAIC,OAAO,CAAC,OAAQ,KAAKC,IAAI,CAAC,GAChJ,E,iBCbY,IAACC,EAAkC,WAAK,IAAM,mCAC7CC,EAAsB,WAAK,IAAM,kCACjCC,EAAwB,WAAK,IAAM,mCACnCC,EAAqC,WAAK,IAAM,mCAChDC,EAAyB,WAAK,IAAM,mCACpCC,EAAkC,WAAK,IAAM,mCAC7CC,EAAyC,WAAK,IAAM,mCACpDC,EAAgC,WAAK,IAAM,mCAC3CC,EAA2B,WAAK,IAAM,mCACtCC,EAAwC,WAAK,IAAM,kCACnDC,EAAwC,WAAK,IAAM,mCACnDC,EAA8B,WAAK,IAAM,kCACzCC,EAA6B,WAAK,IAAM,8DACxCC,EAAmC,WAAK,IAAM,mCAC9CC,EAAmC,WAAK,IAAM,mCAC9CC,EAA0C,WAAK,IAAM,mCACrDC,EAA0C,WAAK,IAAM,mCACrDC,EAAiC,WAAK,IAAM,mCAC5CC,EAAiC,WAAK,IAAM,mCAC5CC,EAAiC,WAAK,IAAM,kCAC5CC,EAAiC,WAAK,IAAM,mCAC5CC,EAAsC,WAAK,IAAM,mCACjDC,EAAsC,WAAK,IAAM,mCACjDC,EAAsC,WAAK,IAAM,kCACjDC,EAAsC,WAAK,IAAM,mCACjDC,EAAwC,WAAK,IAAM,mCACnDC,EAAwC,WAAK,IAAM,mCACnDC,EAAmC,WAAK,IAAM,mCAC9CC,EAAmC,WAAK,IAAM,mCAC9CC,EAAgD,WAAK,IAAM,mCAC3DC,EAAgD,WAAK,IAAM,kCAC3DC,EAAgD,WAAK,IAAM,mCAC3DC,EAAgD,WAAK,IAAM,mCAC3DC,EAAsC,WAAK,IAAM,8DACjDC,EAAsC,WAAK,IAAM,8DACjDC,EAA2C,WAAK,IAAM,mCACtDC,EAA2C,WAAK,IAAM,iCACtDC,EAA2C,WAAK,IAAM,mCACtDC,EAA2C,WAAK,IAAM,kCACtDC,EAAkD,WAAK,IAAM,mCAC7DC,GAAkD,WAAK,IAAM,kCAC7DC,GAAkD,WAAK,IAAM,iCAC7DC,GAAkD,WAAK,IAAM,kCAC7DC,GAAyC,WAAK,IAAM,mCACpDC,GAAyC,WAAK,IAAM,mCACpDC,GAAyC,WAAK,IAAM,mCACpDC,GAAyC,WAAK,IAAM,kCACpDC,GAA8C,WAAK,IAAM,iCACzDC,GAA8C,WAAK,IAAM,mCACzDC,GAA8C,WAAK,IAAM,mCACzDC,GAA8C,WAAK,IAAM,mCACzDC,GAAgD,WAAK,IAAM,mCAC3DC,GAAgD,WAAK,IAAM,mCAC3DC,GAAgD,WAAK,IAAM,mCAC3DC,GAAgD,WAAK,IAAM,kCAC3DC,GAAuB,WAAK,IAAM,mCAClCC,GAA+B,WAAK,IAAM,mCAC1CC,GAA4B,WAAK,IAAM,kCACvCC,GAA+B,WAAK,IAAM,mCAC1CC,GAAsC,WAAK,IAAM,mCACjDC,GAA6B,WAAK,IAAM,kCACxCC,GAA+B,WAAK,IAAM,mCAC1CC,GAAkC,WAAK,IAAM,mCAC7CC,GAA8B,WAAK,IAAM,mCACzCC,GAAiC,WAAK,IAAM,mCAC5CC,GAAwC,WAAK,IAAM,mCACnDC,GAA8C,WAAK,IAAM,iCACzDC,GAA6B,WAAK,IAAM,mCACxCC,GAAqC,WAAK,IAAM,kCAChDC,GAA4C,WAAK,IAAM,mCACvDC,GAAmC,WAAK,IAAM,kCAC9CC,GAAwC,WAAK,IAAM,mCACnDC,GAAuC,WAAK,IAAM,mCAClDC,GAAmC,WAAK,IAAM,mCAC9CC,GAAmD,WAAK,IAAM,mCAC9DC,GAA0C,WAAK,IAAM,kCACrDC,GAA4B,WAAK,IAAM,mCACvCC,GAA4B,WAAK,IAAM,mCC7EvCC,GAA4B,WAAK,IAAM,mCACvCC,GAA4B,WAAK,IAAM,mCCDvCC,GAAuB,WAAK,IAAM,iCAClCC,GAA0B,WAAK,IAAM,mCACrCC,GAA+B,WAAK,IAAM,mCAC1CC,GAA6B,WAAK,IAAM,kCACxCC,GAAyB,WAAK,IAAM,kCACpCC,GAAyB,WAAK,IAAM,mCACpCC,GAAyB,WAAK,IAAM,mCACpCC,GAAwB,WAAK,IAAM,mCACnCC,GAAwB,WAAK,IAAM,mCCRnCC,GAAqC,WAAK,IAAM,mCAChDC,GAA4C,WAAK,IAAM,iCACvDC,GAAmC,WAAK,IAAM,mCAC9CC,GAA8B,WAAK,IAAM,mCACzCC,GAAqC,WAAK,IAAM,mCAChDC,GAA4B,WAAK,IAAM,kCACvCC,GAAiC,WAAK,IAAM,mCAC5CC,GAAwC,WAAK,IAAM,mCACnDC,GAA+B,WAAK,IAAM,kCCAjDC,GAAYC,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAA,GACbC,EACAC,EACAC,EACAC,GAGQxH,GAAoB,CAAC,CAAEhB,UAAAA,CAAS,CAAExE,UAAAA,CAAS,CAAE,IACxD,IAAMiN,EAAgB7G,EAAiBD,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAK3B,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAAA,GAAAA,CAAWxE,UAAAA,C,IACvD,OAAOiN,EAAgBN,EAAS,CAACM,EAAc,CAAG,IACpD,EAEaC,GAA2B,CAAC,CACvClN,UAAAA,CAAS,CACToF,cAAAA,CAAa,CACbD,aAAAA,CAAY,CACb,GACQ,CAAC,IAAI,EAAEnF,EAAU,CAAC,EAAEmF,EAAamB,WAAW,GAAG,CAAC,EAAElB,EAAc,QAAQ,CAAC,CAGrEM,GAAwB,CAAC,CACpC1F,UAAAA,CAAS,CACToF,cAAAA,CAAa,CACbD,aAAAA,CAAY,CACb,IACC,GAAI,CAACnF,GAAa,CAACoF,GAAiB,CAACD,EACnC,MAAO,GAGT,IAAMj4D,EAAMggE,GAAyB,CACnClN,UAAAA,EACAoF,cAAAA,EACAD,aAAAA,CACF,GAEA,MAAO7nD,AAA+C,MAA/CA,EAAAA,CAAAA,CAAAA,mBAAiC,CAAC,CAAEpQ,IAAAA,C,EAC7C,C,sFCxCA,IAAMigE,EAAgB,4DAEhBvlD,EAAmB,CAAC,CACxBD,UAAAA,CAAS,CAAEylD,mBAAAA,CAAkB,CAAE91D,SAAAA,CAAQ,CACxC,GAEG,UAAC,OAAI,UAAU,6B,SACb,UAAC,OAAI,UAAU,oC,SACb,UAAC,UACC,KAAK,SACL,aAAYzK,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAE,eACd,QAASugE,E,SAET,UAAC,OACC,IAAKzlD,EACL,IAAKrQ,EAAW,CAAC,cAAc,EAAEA,EAAS,CAAC,CAAG,eAC9C,UAAWqQ,IAAcwlD,EAAgB,QAAU,E,QAQ/DvlD,CAAAA,EAAiB,SAAS,CAAG,CAC3B,UAAWJ,EAAAA,MAAMA,CACjB,mBAAoBW,EAAAA,IAAIA,CACxB,SAAUX,EAAAA,MAAMA,AAClB,EAEAI,EAAiB,YAAY,CAAG,CAC9B,UAAWulD,EACX,mBAAoB9gE,AAAAA,GAAKA,EACzB,SAAUtD,KAAAA,CACZ,EAEA,IAAe6e,C,6LCzCR,IAAMgM,EAAY,CACvB,MAAO,QACP,KAAM,OACN,KAAM,MACR,EAEaqB,EAAsB,CACjC,CAACrB,EAAU,IAAI,CAAC,CAAE,SAClB,CAACA,EAAU,KAAK,CAAC,CAAE,UACnB,CAACA,EAAU,IAAI,CAAC,CAAE,QACpB,EAEagQ,EAAa,CACxB,KAAM,OACN,UAAW,WACb,EAGavc,EAAmC,CAC9C,gBAAiB,QACjB,qBAAsB,QACtB,sBAAuB,QACvB,qBAAsB,OACxB,EAEaiJ,EAAc,CACzB,WAAY,aACZ,MAAO,OACT,EAEazC,EAAkB,CAC7B,KAAM,OACN,OAAQ,QACV,C,kXC3BO,IAAM+E,EAAgB7E,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAMlc,OAAO,MAAM,CAAC+hB,EAAAA,CAASA,GAC7CgR,EAA0B7W,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,IAAIlc,OAAO,MAAM,CAAC+hB,EAAAA,CAASA,EAAG,GAAG,EAExEna,EAAc+vC,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CACxB,KAAMz7B,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAAC,QAAS,OAAQ,UAAW,UAAW,SAAU,UAAW,SAAU,aAAc,eAAgB,OAAQ,UACvH,UAAW,aAAc,WAAY,QAAS,UAAW,SAAU,WAAW,CAClF,GAEayB,EAAeg6B,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAChC,SAAUhiC,EAAAA,MAAAA,CAAAA,UAAiB,CAC3B,MAAOA,EAAAA,MAAMA,CACb,aAAc/N,EAAY,UAAU,AACtC,GAEayrB,EAAmBnX,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAAC6V,EAAAA,EAAAA,CAAAA,IAAe,CAAEA,EAAAA,EAAAA,CAAAA,SAAoB,CAAC,EAEhE/Q,EAAe22B,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAChC,QAAShiC,EAAAA,MAAMA,CACf,cAAeD,EAAAA,IAAIA,CACnB,kBAAmBC,EAAAA,MAAMA,CACzB,yBAA0BiW,EAAAA,OAAOA,CACjC,yCAA0CA,EAAAA,OAAOA,CACjD,uBAAwBjW,EAAAA,MAAMA,CAC9B,uCAAwCA,EAAAA,MAAMA,AAChD,GAEasL,EAAmB,CAC9B,QAAS,IACT,cAAe,GACf,kBAAmB,GACnB,yBAA0B,KAC1B,uBAAwB,GACxB,yCAA0C,KAC1C,uCAAwC,EAC1C,EAEalB,EAAuB43B,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CACxC,YAAahiC,EAAAA,MAAMA,CACnB,aAAcA,EAAAA,MAAMA,CACpB,kBAAmBA,EAAAA,MAAMA,CACzB,kBAAmBA,EAAAA,MAAMA,CACzB,aAAcA,EAAAA,MAAMA,CACpB,yBAA0BA,EAAAA,MAAMA,AAClC,GAEaqK,EAA2B,CACtC,YAAa,IACb,aAAc,GACd,kBAAmB,GACnB,kBAAmB,GACnB,aAAc,GACd,yBAA0B,EAC5B,EAEMw7C,EAAgB7jB,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAAE,KAAMhiC,EAAAA,MAAMA,AAAC,GAErC8lD,EAA0B9jB,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CACpC,KAAMhiC,EAAAA,MAAMA,CACZ,MAAOA,EAAAA,MAAMA,CACb,IAAKA,EAAAA,MAAMA,CACX,KAAMA,EAAAA,MAAMA,AACd,GAEM+lD,EAAmB/jB,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAC7B,KAAMhiC,EAAAA,MAAMA,CACZ,MAAOA,EAAAA,MAAMA,CACb,SAAUA,EAAAA,MAAMA,CAChB,IAAKA,EAAAA,MAAMA,CACX,KAAMA,EAAAA,MAAMA,CACZ,OAAQA,EAAAA,MAAMA,CACd,MAAO6lD,EACP,QAAS7jB,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CACb,MAAOhiC,EAAAA,MAAMA,CACb,IAAKA,EAAAA,MAAMA,AACb,GACA,SAAUyhB,AAAAA,CAAAA,EAAAA,EAAAA,OAAAA,AAAAA,EAAQqkC,GAClB,cAAe/lD,EAAAA,IAAIA,AACrB,GAEakI,EAAe+5B,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAChC,MAAOhiC,EAAAA,MAAMA,CACb,IAAKA,EAAAA,MAAMA,CACX,KAAMA,EAAAA,MAAMA,CACZ,UAAWA,EAAAA,MAAMA,CACjB,OAAQA,EAAAA,MAAMA,CACd,SAAUuG,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAMlc,OAAO,MAAM,CAACoX,EAAAA,CAAUA,GACxC,SAAU8E,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAMlc,OAAO,MAAM,CAACgc,EAAAA,EAAeA,GAC7C,MAAOw/C,EACP,SAAU9lD,EAAAA,IAAIA,AAChB,GAEamI,EAAe85B,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAChC,KAAMhiC,EAAAA,MAAMA,CACZ,UAAWA,EAAAA,MAAMA,CACjB,UAAWyhB,AAAAA,CAAAA,EAAAA,EAAAA,OAAAA,AAAAA,EAAQskC,GAAkB,UAAU,CAC/C,cAAe/lD,EAAAA,MAAMA,CACrB,cAAeyhB,AAAAA,CAAAA,EAAAA,EAAAA,OAAAA,AAAAA,EAAQskC,GACvB,qBAAsB/lD,EAAAA,MAAMA,CAC5B,mBAAoBA,EAAAA,MAAMA,CAC1B,OAAQgiC,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CACZ,MAAOhiC,EAAAA,MAAMA,CACb,IAAKA,EAAAA,MAAMA,AACb,EACF,GAEagmD,EAAkBhkB,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CACnC,KAAMhiC,EAAAA,MAAMA,CACZ,UAAWiI,EACX,UAAWC,CACb,GAEaS,EAAmB8Y,AAAAA,CAAAA,EAAAA,EAAAA,OAAAA,AAAAA,EAAQukC,GAE3Bp4C,EAAqBo0B,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CACtC,iBAAkBhiC,EAAAA,MAAMA,CACxB,uBAAwBA,EAAAA,MAAMA,CAC9B,aAAcA,EAAAA,MAAMA,CACpB,cAAeA,EAAAA,MAAMA,CACrB,aAAcA,EAAAA,MAAMA,CACpB,mBAAoBA,EAAAA,MAAMA,CAC1B,mBAAoBA,EAAAA,MAAMA,CAC1B,qBAAsBA,EAAAA,MAAMA,CAC5B,kBAAmBA,EAAAA,MAAMA,AAC3B,E,iPC/H6Bra,EACJC,E,UADID,AAAMA,QAANA,CAAAA,EAAAA,EAAAA,CAAMA,AAANA,GAAAA,AAAAA,KAAAA,IAAAA,GAAAA,EAAQ,WAAW,CACvBC,AAAMA,OAANA,CAAAA,EAAAA,EAAAA,CAAMA,AAANA,GAAAA,AAAAA,KAAAA,IAAAA,GAAAA,EAAQ,WAAW,CAE5C,IAAMqgE,EAAc,CAClB,MAAO,QACP,MAAO,GACT,EAEMC,EAAqB3qE,AAAAA,GAAK8O,OAAO,MAAM,CAAC47D,GAAa,OAAO,CAAC1qE,EAAE,GAAG,EAAI,GAE/D6qB,EAAmB,CAACzlB,EAAOe,EAAU,EAAK,IACrD,GAAI,CACF,GAAI,CAACwkE,EAAmBvlE,GACtB,OAGEe,GACFA,EAAQf,EAEZ,CAAE,MAAOpF,EAAG,CACVmU,QAAQ,KAAK,CAACnU,EAChB,CACF,EAEa2pB,EAAaihD,AAAAA,IACxB,IAAMC,EAAMD,EAAI,MAAM,CAChBE,EAAMD,EAAM,GAAM,EAAIA,EAAM,EAAI//D,KAAK,KAAK,CAAC+/D,EAAM,GAAK,EAC5D,MAAO,CAACD,EAAI,KAAK,CAAC,EAAGE,GAAMF,EAAI,KAAK,CAACE,GAAK,AAC5C,EAEat7C,EAAcR,AAAAA,GAAS6B,EAAAA,CAAAA,CAAAA,IAAc,GAAK7B,EAE1CW,EAAeX,AAAAA,GAAS6B,EAAAA,CAAAA,CAAAA,KAAe,GAAK7B,EAE5CY,EAAcZ,AAAAA,GAAS6B,EAAAA,CAAAA,CAAAA,IAAc,GAAK7B,EAGjD+7C,EAAa/+D,AAAAA,IACjB,IAAMg/D,EAAOh/D,EAAI,KAAK,CAAC,OACvB,OAAOg/D,CAAI,CAAC,EAAE,CAAG,CAAC,CAAC,EAAEA,CAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAGh/D,CACjE,EAEamhB,EAAsBnhB,AAAAA,GAC1BA,EAAI,QAAQ,CAAC,KAAOA,EAAM,CAAC,EAAEA,EAAI,CAAC,CAAC,CAG/Bmd,EAAa,CAACnd,EAAKid,EAAa4C,EAAW,EAAK,CAAEF,EAAoC,EAAK,GACtG,EAAK3f,KAAQid,IAIMkE,EADF49C,EADQ/+D,EAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAEWmhB,EAAoBlE,IAGrE,CAAC0C,KAAqCE,GACnC,IAIItH,EAA2B,CAAC,CAAEN,iBAAAA,CAAgB,CAAEC,4BAAAA,CAA2B,CAAE,IACxF,GAAM,CAAEE,qBAAAA,CAAoB,CAAE,CAAGE,EAAAA,EAAgCA,OACjE,CAAIL,GAGAG,IAAyBF,GAGtB,EACT,C,0IC3DO,IAAMua,EAAwBlL,AAAAA,CAAAA,EAAAA,EAAAA,aAAAA,AAAAA,EAAc,CACjD,gBAAiBjqB,AAAAA,GAAKA,EACtB,mBAAoBA,AAAAA,GAAKA,CAC3B,GAEM24B,EAAyB,CAAC,CAAExc,SAAAA,CAAQ,CAAE,IAC1C,GAAM,CAAExP,KAAAA,CAAI,CAAE,CAAGuoB,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAWqB,EAAAA,CAAWA,EAEjC,CAAE,sBAAuBvU,EAAkBhiB,AAAAA,GAAKA,CAAC,CAAE,CAAGkxB,AAAAA,CAAAA,EAAAA,EAAAA,OAAAA,AAAAA,EAAQ,IAAM,IAAIi3B,EAAAA,EAAaA,CAAC,CAAEx7C,KAAAA,EAAM,YAAag1D,EAAAA,EAAoBA,AAAC,GAAI,CAACh1D,EAAK,EAC1I,CAAE,sBAAuBi1D,EAAqB5hE,AAAAA,GAAKA,CAAC,CAAE,CAAGkxB,AAAAA,CAAAA,EAAAA,EAAAA,OAAAA,AAAAA,EAAQ,IAAM,IAAIi3B,EAAAA,EAAaA,CAAC,CAAEx7C,KAAAA,EAAM,YAAak1D,EAAAA,EAA+BA,AAAC,GAAI,CAACl1D,EAAK,EAE9J,MACE,UAACwoB,EAAsB,QAAQ,EAAC,MAAO,CACrCnT,gBAAAA,EACA4/C,mBAAAA,CACF,E,SAEGzlD,C,EAGP,CAEAwc,CAAAA,EAAuB,SAAS,CAAG,CACjC,SAAUjc,EAAAA,IAAIA,AAChB,EAEAic,EAAuB,YAAY,CAAG,CACpC,SAAU,IACZ,EAEA,IAAeA,C,gICpCR,IAAMnC,EAAoBvM,AAAAA,CAAAA,EAAAA,EAAAA,aAAAA,AAAAA,IAE3B2O,EAAqB,CAAC,CAAEzc,SAAAA,CAAQ,CAAE,IACtC,GAAM,CAACC,EAAe,CAAG0lD,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,IACnB,CAAEC,WAAAA,CAAU,CAAEC,aAAAA,CAAY,CAAE,CAAGC,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,IAC/B,CAAChgD,EAAoBigD,EAAsB,CAAG1+C,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,IAE7DrF,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,GAAI,CAAC/B,EAAgB,CACnB8lD,EAAsB,IACtB,MACF,CACAA,EAAsB,GACxB,EAAG,CAAC9lD,EAAe,EAEnB+B,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACJ8D,EACF8/C,IAEAC,GAEJ,EAAG,CAAC//C,EAAmB,EAEvB,IAAMmG,EAA0B,UAC9B,MAAMuP,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,IACNuqC,EAAsBtvB,AAAAA,GAAU,CAACA,EACnC,EAEA,MACE,UAACpc,EAAkB,QAAQ,EAAC,MAAO,CACjCpa,eAAAA,EACA6F,mBAAAA,EACAmG,wBAAAA,CACF,E,SAEGjM,C,EAGP,CAEAyc,CAAAA,EAAmB,SAAS,CAAG,CAC7B,SAAUlc,EAAAA,IAAIA,AAChB,EAEAkc,EAAmB,YAAY,CAAG,CAChC,SAAU,IACZ,EAEA,IAAeA,C,8HC9CR,IAAMrC,EAActM,AAAAA,CAAAA,EAAAA,EAAAA,aAAAA,AAAAA,IAErByO,EAAe,CAAC,CACpB,KAAMypC,CAAU,CAChB,SAAUC,CAAc,CACxB,WAAYC,CAAgB,CAC5BlmD,SAAAA,CAAQ,CACT,IACC,GAAM,CAACxP,EAAM0O,EAAYib,EAAS,CAAGgsC,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAQH,EAAYC,EAAgBC,GAEzE,MACE,UAAC9rC,EAAY,QAAQ,EAAC,MAAO,CAAE5pB,KAAAA,EAAM0O,WAAAA,EAAYib,SAAAA,CAAS,E,SACvDna,C,EAGP,CAEAuc,CAAAA,EAAa,SAAS,CAAG,CACvB,KAAMykB,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAAC,GACb,SAAUtkB,EAAAA,EAAgBA,CAC1B,SAAUnc,EAAAA,IAAIA,CACd,WAAYxB,EAAAA,IAAIA,AAClB,EAEAwd,EAAa,YAAY,CAAG,CAC1B,KAAMh8B,KAAAA,EACN,SAAUA,KAAAA,EACV,WAAYA,KAAAA,EACZ,SAAU,IACZ,EAEA,IAAeg8B,C,8FCpCR,IAAMipC,EAAuB,sBAEvBE,EAAkC,uB,qMCJ3CU,ECAA,ECAA,EAAO3rE,ECAP,EAAO,ECAP,EAAO,ECAP,EAAI,ECAJ,EAAO,EAAI,EAAQ0C,ECAnB,ECAA,EAAI,ECAJ,ECAA,EAAI,ECAJ,ECAA,ECAAD,EAAO,ECAP,ECAA,EAAO,ECAP,ECAA,ECAA,EAAO,EAAQxC,EAAQC,EAAQC,EAAQC,EAAQC,EAAQC,EAAQC,EAAQC,EAASC,ECAhF,ECAA,E,0BCGJ,IAAMmrE,EAAsB71D,AAAAA,I,IAGtBo5C,QAFJ,EAAKp5C,GACDA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,QAAQ,AAAD,IAAM,kBACnBo5C,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAkB,OAAlBA,CAAAA,EAAAA,EAAM,YAAY,AAAD,GAAjBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoB,IAAI,AAAD,IAAM,SAG1B,GACT,EAEM0c,EAAkB91D,AAAAA,IAClB,CAACod,EAAAA,CAAMA,CAAC,MAAM,CAAC,IAAI,EACrBA,CAAAA,EAAAA,CAAMA,CAAC,MAAM,CAAC,IAAI,CAAGpd,CAAG,EAE1B,IAAM7Q,EAAQ,IAAI4mE,MAAM,uBACxB34C,EAAAA,CAAMA,CAAC,MAAM,CAAC,aAAa,CAACjuB,EAC9B,EAEMw7B,EAA4C,CAAC3qB,EAAMg2D,KACvD,IAAI,CAACA,EAELC,AADYj2D,EACR,QAAQ,CAAGA,EAAK,KAAK,CACzBi2D,AAFYj2D,EAER,KAAK,CAAG,CAAC,EACbi2D,AAHYj2D,EAGR,YAAY,CAAG,CAAE,OAAQ,CAAC,EAAG,KAAM,WAAY,CACrD,EAEMg2D,EAAarsC,AAAAA,GAAYA,AAAa,cAAbA,EA0C/B,MAxCgB,CAAC6rC,EAAYC,EAAgBS,KAC3C,IAAMC,EAAcj0C,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,QACrB,CAACliB,EAAMo2D,EAAQ,CAAGv/C,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS2+C,GAC3B,CAAC7rC,EAAU0sC,EAAY,CAAGx/C,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS4+C,GACnC,CAAC/mD,EAAY4nD,EAAc,CAAGz/C,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAASq/C,GAAoBL,EAAoBL,IAiCrF,MA/BAhkD,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KAmBR+kD,AAlBiB,WACf,GAAIf,EAAY,CACdM,EAAgB91D,GAChB2qB,EAA0C3qB,EAAMg2D,EAAWP,IAC3D,MACF,CAEA,GAAI,CACF,GAAM,CAAEh8D,KAAAA,CAAI,CAAEyH,YAAAA,CAAW,CAAE,CAAG,MAAMs1D,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,KAAe,CAAC,CACpDL,CAAAA,EAAY,OAAO,CAAG18D,EACtBq8D,EAAgB50D,GAChBypB,EAA0CzpB,EAAa80D,EAAWv8D,IAClE28D,EAAQl1D,EACV,CAAE,MAAOnX,EAAG,CACVmU,QAAQ,GAAG,CAAC,qBAAsBnU,EACpC,CACF,IAGF,EAAG,EAAE,EAELynB,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR6kD,EAAYZ,GAAkBU,EAAY,OAAO,CACnD,EAAG,CAACn2D,EAAK,EAETwR,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACHxR,GACLs2D,EAAcT,EAAoB71D,GACpC,EAAG,CAACA,EAAK,EAEF,CAACA,EAAM0O,EAAYib,EAAS,AACrC,E,aChBA,EAjDwB,CACtB8sC,EAAoB,EAAK,CACzBC,EAAiB,CAAC,CAClBxtC,EACAC,KAEA,GAAM,CAACnP,EAAU28C,EAAY,CAAG9/C,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,IACnC,CAACkC,EAAO69C,EAAS,CAAG//C,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAASqS,GAuCnC,MArCA1X,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACJuH,IAAUmQ,GACZ0tC,EAAS1tC,EAEb,EAAG,CAACA,EAAU,EAEdqL,EAAAA,oBAA0B,CAAC,KACpBpL,IACDnP,EACF48C,EAASztC,GAETytC,EAAS1tC,GAEb,EAAG,CAAClP,EAAS,EAEbxI,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,IAAM+4C,EAAShrD,SAAS,aAAa,CAAC,QAChCs3D,EAAa,qBAEbC,EAAe,KACnB,GAAI,CAACL,EAAmB,OACxB,IAAMM,EAAqBxM,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,SAAS,AAAD,EAAImM,EAC/CC,EAAYI,GAERA,EACFxM,MAAAA,GAAAA,EAAQ,SAAS,CAAC,GAAG,CAACsM,GAEtBtM,MAAAA,GAAAA,EAAQ,SAAS,CAAC,MAAM,CAACsM,EAE7B,EAGA,OADAt3D,SAAS,gBAAgB,CAAC,SAAUu3D,GAC7B,KACLv3D,SAAS,mBAAmB,CAAC,SAAUu3D,EACzC,CACF,EAAG,EAAE,EAEE,CAAC98C,EAAUjB,EAAM,AAC1B,ECrBA,GA3B0B,KACxB,GAAM,CAAC5pB,EAAO6nE,EAAS,CAAGngD,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,MAC7B,CAACogD,EAAMC,EAAQ,CAAGrgD,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,IAsBjC,MApBArF,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,IAAM2lD,EAAcptE,AAAAA,IACd,CAACoF,IACH6nE,EAASjtE,GACTmtE,EAAQ,KAGV95C,EAAAA,CAAMA,CAAC,MAAM,CAAC,mBAAmB,CAAC,aAAc+5C,GAChD/5C,EAAAA,CAAMA,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAe+5C,EACnD,EAKA,OAHA/5C,EAAAA,CAAMA,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAc+5C,GAC7C/5C,EAAAA,CAAMA,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAe+5C,GAEvC,KACL/5C,EAAAA,CAAMA,CAAC,MAAM,CAAC,mBAAmB,CAAC,aAAc+5C,GAChD/5C,EAAAA,CAAMA,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAe+5C,EACnD,CACF,EAAG,EAAE,EAEE,CAACF,EAAM9nE,EAAM,AACtB,ECLA,GAlB0B,KACxB,IAAMsgB,EAAiB,K,IAAM4tB,E,MAAAA,AAAAA,CAAAA,AAAAA,OAAAA,CAAAA,EAAAA,MAAK,GAALA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAQ,UAAU,AAAD,GAHtB,I,EAIlB,CAAC3tB,EAAU0nD,EAAY,CAAGvgD,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAASpH,KAazC,MAXA+B,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,IAAM6lD,EAAe,KACnBD,EAAY3nD,IACd,EAGA,OAFA4nD,IACAj6C,EAAAA,CAAMA,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAUi6C,GAClC,KACLj6C,EAAAA,CAAMA,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAUi6C,EAC9C,CACF,EAAG,EAAE,EAEE,CAAC3nD,EAAS,AACnB,E,mFCAA,GAfoB,AAAC,I,GAAA,CAAE0rB,MAAAA,EAAQ,IAAI,CAAElT,QAAAA,EAAU70B,AAAAA,GAAKA,CAAC,CAAY,GAAP4K,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAnCm9B,QAAclT,U,EACnC,GAAI,CAACkT,EAAO,OAAO,KACnB,IAAMmvB,EAASD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAehJ,GAAAA,EAA+BA,EAO7DgW,GAAAA,MAAe,CACb,WAACl8B,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAM,QANW,KAClBk8B,GAAAA,sBAA+B,CAAC/M,GAChCriC,GACF,C,EAGmCjqB,IACjCssD,EAEJ,E,wKzBjBA,SAASgN,KAAa,MAAOA,CAAAA,GAAW1+D,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAYnR,OAVwBrW,GAAsB,eAAmB,CAAC,MAAOs5D,GAAS,CAChF,KAAM,OACN,MAAO,6BACP,QAAS,WACX,EAAGt5D,GAAQ23D,GAAUA,CAAAA,EAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,SAAU,UACV,EAAG,ggBACH,KAAM,SACR,EAAC,G0BNM,IAAM4B,GAAiB,CAAC,CAAEhoD,SAAAA,CAAQ,CAAE,GAAM,WAAC,OAAI,UAAU,oC,SAAqCA,C,EAErGgoD,CAAAA,GAAe,SAAS,CAAG,CAAE,SAAUznD,GAAAA,IAAIA,AAAC,EAC5CynD,GAAe,YAAY,CAAG,CAAE,SAAU,IAAK,EAExC,IAAMC,GAAkB,AAAC,I,GAAA,CAAEjoD,SAAAA,CAAQ,CAAY,GAAPvR,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAbuR,W,QAChC,WAAC,2BAAQvR,GAAAA,CAAO,UAAU,+B,SACxB,WAAC,OAAI,UAAU,mC,SACZuR,C,MAKPioD,CAAAA,GAAgB,SAAS,CAAG,CAAE,SAAU1nD,GAAAA,IAAIA,AAAC,EAC7C0nD,GAAgB,YAAY,CAAG,CAAE,SAAU,IAAK,EAEzC,IAAMC,GAAiB,AAAC,I,GAAA,CAAEC,aAAAA,CAAY,CAAY,GAAP15D,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAjB05D,e,QAC/B,WAAC,8BACK15D,GAAAA,CACJ,KAAK,SACL,UAAU,eACV,aAAYpK,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,WAAqB,EACnC,QAAS6lD,E,SAET,WAACC,GAASA,CAAAA,E,IAIdF,CAAAA,GAAe,SAAS,CAAG,CAAE,aAAcvoD,GAAAA,IAAIA,AAAC,EAChDuoD,GAAe,YAAY,CAAG,CAAE,aAAcrkE,AAAAA,GAAKA,CAAE,ECzBrD,IAAMwkE,GAAwB,AAAC,I,GAAA,CAC7B73D,KAAAA,CAAI,CACJ2Q,MAAAA,CAAK,CACLmnD,YAAAA,CAAW,CACX1mD,aAAAA,CAAY,CACZ2mD,kBAAAA,CAAiB,CACjB3Z,oBAAAA,CAAmB,CACnB4Z,gBAAAA,CAAe,CACf9vC,QAAAA,CAAO,CACPyvC,aAAAA,CAAY,CACZrZ,aAAAA,CAAY,CAEb,GADIrgD,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAVH+B,OACA2Q,QACAmnD,cACA1mD,eACA2mD,oBACA3Z,sBACA4Z,kBACA9vC,UACAyvC,eACArZ,e,EAGA,GAAM,CAAE,uBAAwB2Z,CAA0B,CAAE,CAAG3R,GAAAA,EAA2BA,CAEpF4R,EAAgBh2C,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,MAEvBi2C,EAAmB,K,IACvBC,C,AAAqB,QAArBA,CAAAA,EAAAA,EAAc,OAAO,AAAD,GAApBA,AAAAA,KAAAA,IAAAA,GAAAA,EAAuB,IAAI,EAC7B,EAEA,MACE,WAACh9B,GAAAA,CAAKA,CAAAA,CACJ,IAAK88B,EACL,eAAgB,GAChB,gBAAiB,GACjB,oBAAqB,GACrB,eAAgBV,GAChB,gBAAiBa,AAAAA,GAAQ,WAACZ,GAAeA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKrmD,EAAkBinD,IAChE,eAAgB,IAAM,WAACX,GAAcA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKK,GAAAA,CAAmB,aAAcI,C,IAC3E,aAAcjwC,E,SAEd,YAAC,OAAI,UAAU,kB,UAEb,YAAC,OAAI,UAAU,W,UACb,YAAC,OAAI,UAAU,gB,UACZvX,GAAS,WAAC,MAAG,UAAU,Q,SAAS9c,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,E,GAClCmnD,GAAe,WAAC,MAAG,UAAU,c,SAAejkE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEikE,E,GAC9CE,GAAmB,WAAC,KAAE,UAAU,c,SAAenkE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEmkE,E,MAEpD,WAACha,GAAAA,CAAsBA,CAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACrB,KAAMh+C,EACN,OAAO,kBACP,UAAU,kBACV,aAAcoR,EACd,oBAAqBgtC,EACrB,MAAOvqD,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,GACT,yBAA0BsnD,EAC1B,WAAW,cACX,aAAc3Z,C,EACVrgD,I,GAIR,WAAC,OAAI,UAAU,Y,SACb,WAAC,OACC,IAAKpK,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,sBAAgC,EACvC,IAAI,yEACJ,UAAU,Q,SAOtB,CAEA+lD,CAAAA,GAAqB,SAAS,CAAG,CAC/B,MAAOrpD,GAAAA,MAAMA,CACb,YAAaA,GAAAA,MAAMA,CACnB,gBAAiBA,GAAAA,MAAMA,CACvB,gBAAiBA,GAAAA,MAAMA,CACvB,KAAMgI,GAAAA,EAAAA,CAAAA,UAAuB,CAC7B,aAAcuqC,GAAAA,EAAAA,CAAAA,UAA+B,CAC7C,kBAAmBA,GAAAA,EAAAA,CAAAA,UAA+B,CAClD,oBAAqBC,GAAAA,EAAAA,CAAAA,UAAsC,CAC3D,eAAgBxyC,GAAAA,MAAMA,CACtB,QAASW,GAAAA,IAAIA,CACb,aAAcA,GAAAA,IAAIA,CAClB,aAAcA,GAAAA,IAAIA,AACpB,EAEA0oD,GAAqB,YAAY,CAAG,CAClC,MAAO,GACP,YAAa,GACb,gBAAiB,GACjB,gBAAiB,GACjB,eAAgB,GAChB,QAASxkE,AAAAA,GAAKA,EACd,aAAcA,AAAAA,GAAKA,EACnB,aAAcA,AAAAA,GAAKA,CACrB,EC5FA,IAAMilE,GAAiC,CAAC,CACtCt4D,KAAAA,CAAI,CACJkoB,QAAAA,CAAO,CACR,IACC,GAAM,CAAE,SAAU,CAAE,kCAAmClX,CAAM,CAAE,CAAE,CAAGC,GAAAA,CAAgBA,CAChF,CAAE,CAACD,EAAO,CAAEotC,CAAmB,CAAE,CAAGgI,GAAAA,CAAsBA,CAExDh1C,EAAeC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,GAClC+mD,EAAoB1mD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,EAAQO,GAAAA,EAAAA,CAAAA,KAAiB,QAEtEC,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACRC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQA,OAAAA,EAAQ,OAAQ,MAAO,EACvD,EAAG,EAAE,EAoBLotC,EAAsB6I,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAA8B7I,EAAqB,CARvC,KAChC3sC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,uBAAwB,OAAQ,OAAQ,EAChF,EAMoG,EAGlG,WD2DW6mD,GC3DUA,CACnB,KAAM73D,EACN,YAAa8R,GAAAA,CAAAA,CAAAA,+BAAyC,CACtD,aAAcV,EACd,kBAAmB2mD,EACnB,oBAAqB3Z,EACrB,QA3BgB,KAClBgJ,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAqBh2C,GACrBK,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQA,OAAAA,EAAQ,OAAQ,OAAQ,GACtDkX,GACF,EAwBI,aAtBqB,KACvBzW,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,cAAe,OAAQ,OAAQ,EACvE,EAqBI,aAfqB,KACvBS,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQA,OAAAA,EAAQ,OAAQ,YAAa,EAC7D,C,EAgBF,CAEAsnD,CAAAA,GAA8B,SAAS,CAAG,CACxC,KAAM9hD,GAAAA,EAAAA,CAAAA,UAAuB,CAC7B,QAASrH,GAAAA,IAAIA,AACf,EAEAmpD,GAA8B,YAAY,CAAG,CAC3C,QAASjlE,AAAAA,GAAKA,CAChB,EC7DA,IAAMklE,GAAsC,MAAMt6D,IAChDu6D,GAAY,UACV,MD6DWF,E,EC5DRr6D,GAEP,ECLaw6D,GAA6Bz4D,AAAAA,IAIxC,IAAM04D,EAAcxQ,AADF,IAAI3M,gBAAgBn+B,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EACrC,GAAG,CAFhB,UAIXu7C,EAAmBp5D,SAAS,aAAa,CAAC,iEAEXo5D,IAErCA,MAAAA,GAAAA,EAAkB,YAAY,CAAC,OAAQ,KAEvCA,MAAAA,GAAAA,EAAkB,gBAAgB,CAAC,QAAS5uE,AAAAA,IAC1CA,EAAE,cAAc,GAChBwuE,ADPWA,GCOyB,CAAEv4D,KAAAA,CAAK,EAC7C,GACF,ECFA,OAboB,AAAC,I,GAAA,CAAE44D,MAAAA,CAAK,CAAEC,cAAAA,CAAa,CAAY,GAAP56D,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAzB26D,QAAOC,gB,EAC5B,IAAMtO,EAASD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAeuO,GAM9BvB,GAAAA,MAAe,CACb,WAACsB,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAM,QALW,KAClBtB,GAAAA,sBAA+B,CAAC/M,EAClC,C,EAGmCtsD,IACjCssD,EAEJ,E,cCTO,IAAMiN,GAAiB,CAAC,CAAEhoD,SAAAA,CAAQ,CAAE,GAAM,WAAC,OAAI,UAAU,uC,SAAwCA,C,EAExGgoD,CAAAA,GAAe,SAAS,CAAG,CAAE,SAAUznD,GAAAA,IAAIA,AAAC,EAC5CynD,GAAe,YAAY,CAAG,CAAE,SAAU,IAAK,EAExC,IAAMC,GAAkB,AAAC,I,GAAA,CAAEjoD,SAAAA,CAAQ,CAAY,GAAPvR,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAbuR,W,QAChC,WAAC,2BAAQvR,GAAAA,CAAO,UAAU,kC,SACvBuR,C,IAILioD,CAAAA,GAAgB,SAAS,CAAG,CAAE,SAAU1nD,GAAAA,IAAIA,AAAC,EAC7C0nD,GAAgB,YAAY,CAAG,CAAE,SAAU,IAAK,EAEzC,IAAMC,GAAiB,AAAC,I,GAAA,CAAEC,aAAAA,CAAY,CAAY,GAAP15D,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAjB05D,e,QAC/B,wB,SACE,WAAC,8BACK15D,GAAAA,CACJ,KAAK,SACL,aAAYpK,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,WAAqB,EACnC,UAAU,wCACV,QAAS6lD,E,SAET,WAAC1oD,GAAAA,CAASA,CAAAA,CAAAA,E,MAKhByoD,CAAAA,GAAe,SAAS,CAAG,CAAE,aAAcvoD,GAAAA,IAAIA,AAAC,EAChDuoD,GAAe,YAAY,CAAG,CAAE,aAAcrkE,AAAAA,GAAKA,CAAE,ECtBrD,IAAMylE,GAAwB,CAAC,CAC7B94D,KAAAA,CAAI,CACJ+4D,WAAAA,CAAU,CACV7wC,QAAAA,CAAO,CACR,IACC,IAAMgwC,EAAgBh2C,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,MACvB,CAAE,SAAU,CAAE,wBAAyBlR,CAAM,CAAE,CAAE,CAAGC,GAAAA,CAAgBA,CACtE,CAAE,CAACD,EAAO,CAAEotC,CAAmB,CAAE,CAAGgI,GAAAA,CAAsBA,CAExDh1C,EAAeC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,GAClC+mD,EAAoB1mD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,EAAQO,GAAAA,EAAAA,CAAAA,KAAiB,EAEtEC,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR0qC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAkBqF,GAAAA,EAA0CA,EAC5D9vC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQA,OAAAA,EAAQ,OAAQ,MAAO,EACvD,EAAG,EAAE,EAEL,IAAMgoD,EAAwB,K,IAC5BZ,C,AAAqB,QAArBA,CAAAA,EAAAA,EAAc,OAAO,AAAD,GAApBA,AAAAA,KAAAA,IAAAA,GAAAA,EAAuB,IAAI,GAC3B3mD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,cAAe,OAAQ,OAAQ,EACvE,EAmBA,OAFAotC,EAAsB6I,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAA8B7I,EAAqB,CATvC,KAChC3sC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,uBAAwB,OAAQ,OAAQ,EAChF,EAOoG,EAGlG,YAACoqB,GAAAA,CAAKA,CAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACJ,IAAK88B,EACL,eAAgB,GAChB,gBAAiB,GACjB,oBAAqB,GACrB,eAAgBV,GAChB,gBAAiBv5D,AAAAA,GAAS,WAACw5D,GAAeA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKrmD,EAAkBnT,IACjE,eAAgB,IAAM,WAACy5D,GAAcA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKK,GAAAA,CAAmB,aAAciB,C,IAC3E,aA1BgB,KAClB5R,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAqBh2C,GACrBK,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,UAAW,OAAQ,OAAQ,GACjEkX,GACF,C,EAuBQ6wC,GAAAA,C,UAEJ,YAAC,OAAI,UAAU,W,UACb,YAAC,OAAI,UAAU,kB,UACb,WAAC,OAAI,IAAI,8EAA8E,IAAKllE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,6BAAuC,EAAG,UAAU,M,GAClJ,YAAC,OAAI,UAAU,gB,UACb,WAAC,MAAG,UAAU,qC,SAAsCje,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,6BAAuC,C,GAC7F,WAAC,KAAE,UAAU,kC,SAAmCje,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,+BAAyC,C,SAG/F,WAACksC,GAAAA,CAAsBA,CAAAA,CACrB,KAAMh+C,EACN,OAAO,kBACP,eAAe,gBACf,aAAcoR,EACd,oBAAqBgtC,EACrB,MAAOvqD,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,6BAAuC,EAChD,aAlCiB,KACvBL,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQA,OAAAA,EAAQ,OAAQ,YAAa,EAE7D,C,MAkCI,WAAC,OAAI,UAAU,Y,SACb,WAAC,OAAI,UAAU,iB,SACb,WAAC,OAAI,IAAI,wFAAwF,IAAKnd,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,6BAAuC,EAAG,UAAU,O,UAKtK,CAEAgnD,CAAAA,GAAsB,SAAS,CAAG,CAChC,KAAMtiD,GAAAA,EAAAA,CAAAA,UAAuB,CAC7B,WAAYmV,GAAAA,MAAMA,CAClB,QAASxc,GAAAA,IAAIA,AACf,EAEA2pD,GAAsB,YAAY,CAAG,CACnC,WAAY,CAAC,EACb,QAASzlE,AAAAA,GAAKA,CAChB,ECtFA,OAXoC,AAAC,I,GAAA,CACnC4lE,eAAAA,CAAc,CAEf,GADIh7D,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CADHg7D,iB,EAGAC,GAAY,UACV,MD8FWJ,GC7FX,cAAeG,C,EACZh7D,GAEP,E,0CCZO,IAAMk7D,GAAe,CAC1B,oBACA,mCACA,4BACA,uCACA,oBACA,yDACA,mDACA,4CACA,oDACA,6BACA,kCACA,gEACA,0CACA,0BACA,gDACA,4CACA,8CACA,uBACA,uCACA,8CACA,kCACA,yBACA,2CACA,wCACA,8CACA,sCACA,yCACA,uCACA,2CACA,2CACA,mCACA,6CACA,4CACA,sDACA,2BACA,UACA,uDACA,gDACA,mBACA,iFACA,8CACA,oEACA,+BACA,wDACA,qEACA,+BACA,kDACA,kCACA,sCACD,CC1CYC,GAA8B,MAAMp5D,IAE/C,GAAI,CADsBm5D,GAAa,QAAQ,CAAC/7C,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EACvD,OAIxB,IAAMi8C,EAAY,4CAEZX,EAAcxQ,AADF,IAAI3M,gBAAgBn+B,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EACrC,GAAG,CAHhB,QAIXk8C,EAAoB58C,AAA+B,OAA/BA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAW,gBAC/B68C,EAAc/3D,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAQxB,GACtBw5D,EAAuBD,GAA4B,CAAClnD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,KAAkB,CAAC/N,GAAAA,CAAAA,CAAAA,mBAAiC,CAAC,CAAE,IAAK+0D,CAAU,IAAM,CAACC,EAEvI,GAAI,C,IAaFG,EAZA,IAAMC,EAAwB,CAAE,MAAMC,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAiBN,GACjDO,EAA6B,CAACL,GAA4B,CAAClnD,GAAAA,EAAYA,EAAI,CAACinD,GAAqBI,EAGvG,GAAI,CAFiBF,CAAAA,GAAwBI,GAA8BlB,CAAU,EAElE,OAGfa,GACFj1D,GAAAA,CAAAA,CAAAA,mBAAiC,CAAC,CAAE,IAAK+0D,EAAW,MAAOQ,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,GAAgC,GAG7F,IAAIC,EAAc,E,AACM,QAAxBL,CAAAA,EAAAA,SAAS,eAAe,AAAD,GAAvBA,AAAAA,KAAAA,IAAAA,GAAAA,EAA0B,gBAAgB,CAAC,aAAc,MACnDK,IACJA,EAAc,GACdC,GAA4B,CAC1B/5D,KAAAA,EACA,eAAgB,+BAClB,GACF,EACF,CAAE,MAAOc,EAAO,CACd5C,QAAQ,GAAG,CAAC,CAAC,+CAA+C,EAAE4C,EAAM,CAAC,CACvE,CACF,E,gCnC5CA,SAAS,KAAa,MAAO,IAAWjI,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAYnR,OAVkBrW,GAAsB,eAAmB,CAAC,MAAO,GAAS,CAC1E,KAAM,OACN,MAAO,6BACP,QAAS,WACX,EAAGA,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,SAAU,UACV,EAAG,0wBACH,KAAM,SACR,EAAC,GoCkED,GArE6C,KAC3C,GAAM,CAAE,QAAS,CAAE,iCAAkC+S,CAAM,CAAE,CAAE,CAAGC,GAAAA,CAAgBA,CAC5E,CACJ,kCAAmC,CACjCC,kBAAAA,CAAiB,CACjB8oD,eAAAA,CAAc,CACf,CACF,CAAG7oD,GAAAA,CAAQA,CAENC,EAAeC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,GAClCipD,EAAkB5oD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,EAAQO,GAAAA,EAAAA,CAAAA,WAAuB,EACpE2oD,EAAiB7oD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,EAAQO,GAAAA,EAAAA,CAAAA,UAAsB,QAExEC,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACRC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQA,OAAAA,EAAQ,OAAQ,MAAO,EACvD,EAAG,EAAE,EAaH,YAAC,2BACKI,GAAAA,CACJ,UAAU,oCACV,KAAK,S,UAEL,YAAC,OAAI,UAAU,Q,UACb,WAAC+oD,GAAcA,CAAC,UAAU,M,GACzBtmE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,qBAA+B,E,GAEpC,YAAC,OAAI,UAAU,kB,UACb,WAAC,MAAG,UAAU,Q,SACXje,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,kCAA4C,C,GAEjD,WAAC,KAAE,UAAU,c,SAAeje,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,8CAAwD,C,MAExF,YAAC,OAAI,UAAU,iB,UAEb,WAAC,yBACKmoD,GAAAA,CACJ,OAAO,SACP,UAAU,cACV,KAAM/oD,EACN,QAjCqB,KAC3BO,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,kBAAmB,OAAQ,OAAQ,GACzEW,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAoC,CAAE,4BAA6BC,GAAAA,CAAAA,CAAAA,gCAA4C,AAAC,EAClH,E,SAgCS/d,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,WAAqB,C,IAG1B,WAAC,yBACKooD,GAAAA,CACJ,OAAO,SACP,UAAU,aACV,KAAMF,EACN,QAtCqB,KAC3BvoD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,kBAAmB,OAAQ,OAAQ,GACzEW,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAoC,CAAE,4BAA6BC,GAAAA,CAAAA,CAAAA,gCAA4C,AAAC,EAClH,E,SAqCS/d,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,UAAoB,C,UAKjC,EnC3EA,SAAS,KAAa,MAAO,IAAWjZ,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAcnR,OAZkBrW,GAAsB,eAAmB,CAAC,MAAO,GAAS,CAC1E,MAAO,6BACP,KAAM,UACN,QAAS,YACT,UAAW,WACb,EAAGA,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,EAAG,6DACL,EAAC,EAAIhU,GAAWA,CAAAA,EAAsB,eAAmB,CAAC,OAAQ,CAChE,SAAU,UACV,EAAG,uZACH,SAAU,SACZ,EAAC,GoC6DD,GAlE4C,KAC1C,GAAM,CAAE,QAAS,CAAE,gCAAiC+mB,CAAM,CAAE,CAAE,CAAGC,GAAAA,CAAgBA,CAC3E,CACJ,iCAAkC,CAChCC,kBAAAA,CAAiB,CACjB8oD,eAAAA,CAAc,CACf,CACF,CAAG7oD,GAAAA,CAAQA,CAENC,EAAeC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,GAClCipD,EAAkB5oD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,EAAQO,GAAAA,EAAAA,CAAAA,WAAuB,EACpE2oD,EAAiB7oD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,EAAQO,GAAAA,EAAAA,CAAAA,UAAsB,QAExEC,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACRC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQA,OAAAA,EAAQ,OAAQ,MAAO,EACvD,EAAG,EAAE,EAaH,YAAC,2BACKI,GAAAA,CACJ,UAAU,mCACV,KAAK,S,UAEL,YAAC,OAAI,UAAU,kB,UACb,YAAC,MAAG,UAAU,Q,UACZ,WAAC+oD,GAAcA,CAAC,UAAU,M,GACzBtmE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,kCAA4C,E,GAEjD,WAAC,KAAE,UAAU,c,SAAeje,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,8CAAwD,C,MAExF,YAAC,OAAI,UAAU,iB,UAEb,WAAC,yBACKmoD,GAAAA,CACJ,OAAO,SACP,UAAU,UACV,KAAM/oD,EACN,QA9BqB,KAC3BO,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,kBAAmB,OAAQ,OAAQ,GACzEW,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAoC,CAAE,4BAA6BC,GAAAA,CAAAA,CAAAA,+BAA2C,AAAC,EACjH,E,SA6BS/d,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,WAAqB,C,IAG1B,WAAC,yBACKooD,GAAAA,CACJ,OAAO,SACP,UAAU,aACV,KAAMF,EACN,QAnCqB,KAC3BvoD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,kBAAmB,OAAQ,OAAQ,GACzEW,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAoC,CAAE,4BAA6BC,GAAAA,CAAAA,CAAAA,+BAA2C,AAAC,EACjH,E,SAkCS/d,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,UAAoB,C,UAKjC,ECjDA,GAlBgC,AAAC,I,GAAA,CAAEg1C,UAAAA,CAAS,CAAE+R,cAAAA,CAAa,CAAY,GAAP56D,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAA7B6oD,YAAW+R,gB,EAC5C,IAAMtO,EAASD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAeuO,GAE9B,GAAMtO,aAAkB6P,YASxB9C,GAAAA,MAAe,CACb,WAHoB+C,AALL,CACfC,qCAAoCA,GACpCC,oCAAmCA,EACrC,CAE8B,CAACzT,EAAU,CAGtC0T,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAkBv8D,IACnBssD,EAEJ,ECpBA,IAAMkQ,GAAwB,CAACC,EAAUC,KAClCD,GAELE,GAAwB,CACtB,UAAW,sCACX,cAAeD,CACjB,EACF,EAEME,GAAkB,CAACC,EAASC,KAC3BD,GAELF,GAAwB,CACtB,UAAW,uCACX,cAAeG,CACjB,EACF,EAEaC,GAA6B,KACxC,IAAML,EAAa,4BACbI,EAAY,kCAEZL,EAAWn7D,SAAS,aAAa,CAAC,CAAC,CAAC,EAAEo7D,EAAW,CAAC,EAClDG,EAAUv7D,SAAS,aAAa,CAAC,CAAC,CAAC,EAAEw7D,EAAU,CAAC,EAG3BL,CAAAA,GAAYI,CAAM,IAI7CL,GAAsBC,EAAUC,GAChCE,GAAgBC,EAASC,GAC3B,ErCjCA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAwB,GAAsB,EAAM,aAAa,CAAC,MAAO,GAAS,CACtF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,EAAG,6DACL,IAAK,GAAW,GAAsB,eAAmB,CAAC,OAAQ,CAChE,SAAU,UACV,EAAG,4YACH,SAAU,SACZ,K,8CsCPO,IAAMvD,GAAiB,CAAC,CAAEhoD,SAAAA,CAAQ,CAAE,GAAM,WAAC,OAAI,UAAU,2B,SAA4BA,C,EAE5FgoD,CAAAA,GAAe,SAAS,CAAG,CAAE,SAAUznD,GAAAA,IAAIA,AAAC,EAC5CynD,GAAe,YAAY,CAAG,CAAE,SAAU,IAAK,EAExC,IAAMC,GAAkB,AAAC,I,GAAA,CAAEjoD,SAAAA,CAAQ,CAAY,GAAPvR,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAbuR,W,QAChC,WAAC,2BAAQvR,GAAAA,CAAO,UAAU,+B,SACxB,WAAC,OAAI,UAAU,mC,SACZuR,C,MAKPioD,CAAAA,GAAgB,SAAS,CAAG,CAAE,SAAU1nD,GAAAA,IAAIA,AAAC,EAC7C0nD,GAAgB,YAAY,CAAG,CAAE,SAAU,IAAK,EAEzC,IAAMC,GAAiB,AAAC,I,GAAA,CAAEC,aAAAA,CAAY,CAAY,GAAP15D,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAjB05D,e,QAC/B,WAAC,8BACK15D,GAAAA,CACJ,KAAK,SACL,UAAU,cACV,aAAYpK,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,WAAqB,EACnC,QAAS6lD,E,SAET,WAACC,GAASA,CAAAA,E,KrC7Bd,SAAS,KAAa,MAAO,IAAW/+D,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CqCiCnRojD,GAAe,SAAS,CAAG,CAAE,aAAcvoD,GAAAA,IAAIA,AAAC,EAChDuoD,GAAe,YAAY,CAAG,CAAE,aAAcrkE,AAAAA,GAAKA,CAAE,ErCnBrD,OAbgC4K,GAAsB,eAAmB,CAAC,MAAO,GAAS,CACxF,KAAM,OACN,MAAO,6BACP,QAAS,WACX,EAAGA,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,EAAG,kNACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,eAAmB,CAAC,OAAQ,CAChE,SAAU,UACV,SAAU,UACV,EAAG,upBACH,KAAM,SACR,EAAC,GsCFD,IAAMg9D,GAA0B,AAAC,I,GAAA,CAC/Bj7D,KAAAA,CAAI,CACJkoB,QAAAA,CAAO,CACPnX,gBAAAA,CAAe,CACfmqD,KAAAA,CAAI,CACJnQ,cAAAA,CAAa,CAEd,GADI9sD,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CALH+B,OACAkoB,UACAnX,kBACAmqD,OACAnQ,gB,EAGA,IAAMmN,EAAgBh2C,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,MACvB,CAAE,QAAS,CAAEsgC,yBAAAA,CAAwB,CAAEC,kDAAAA,CAAiD,CAAE,CAAE,CAAGxxC,GAAAA,CAAgBA,CAC/GD,EAAS+5C,EAAgBtI,EAAoDD,EAE7E7D,EAAWwL,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACb,CAAE,CAACn5C,EAAO,CAAEotC,CAAmB,CAAE,CAAGO,EAAWqE,GAAAA,CAAyBA,CAAGoD,GAAAA,CAAsBA,CAE/Fh1C,EAAeC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,GAClC+mD,EAAoB1mD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,EAAQO,GAAAA,EAAAA,CAAAA,KAAiB,EAEtEC,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KAERT,EADmB,CAAE,OAAQ,OAAQ,OAAQ,CAAC,EAAEmqD,EAAO,CAAC,EAAEA,EAAK,CAAC,CAAC,CAAG,GAAG,EAAElqD,EAAO,CAAC,AAAC,EAEpF,EAAG,EAAE,EAEL,IAAMmnD,EAAmB,K,IAEvBC,EADA,IAAM1nE,EAAa,CAAE,OAAQ,QAAS,OAAQ,CAAC,YAAY,EAAEsgB,EAAO,CAAC,AAAC,C,AACjD,QAArBonD,CAAAA,EAAAA,EAAc,OAAO,AAAD,GAApBA,AAAAA,KAAAA,IAAAA,GAAAA,EAAuB,IAAI,GAC3BrnD,EAAgBrgB,EAClB,EAqBA,OAFA0tD,EAAsB6I,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAA8B7I,EAAqB,CAVzC,KAE9BrtC,EADmB,CAAE,OAAQ,QAAS,OAAQ,CAAC,mBAAmB,EAAEC,EAAO,CAAC,AAAC,EAE/E,EAOkG,EAGhG,WAACoqB,GAAAA,CAAKA,CAAAA,CACJ,IAAK88B,EACL,eAAgB,GAChB,gBAAiB,GACjB,oBAAqB,GACrB,eAAgBV,GAChB,gBAAiBa,AAAAA,GAAQ,WAACZ,GAAeA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKrmD,EAAkBinD,IAChE,eAAgB,IAAM,WAACX,GAAcA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKK,GAAAA,CAAmB,aAAcI,C,IAC3E,aA5BgB,KAElB/Q,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAqBh2C,GACrBL,EAFmB,CAAE,OAAQ,QAASC,OAAAA,CAAO,GAG7CkX,GACF,E,SAyBI,YAAC,OAAI,UAAU,M,UACb,YAAC,OAAI,UAAU,0B,UACb,YAAC,QAAK,UAAU,Q,UACd,WAACizC,GAAcA,CAAC,UAAU,M,GACzBtnE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,8BAAwC,E,GAE7C,WAAC,KAAE,UAAU,c,SACVD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAoBC,GAAAA,CAAAA,CAAAA,8CAAwD,EAAE,CAC7E,UAAWspD,AAAAA,GACT,WAAC,QAAK,UAAU,sB,SACbA,C,EAGP,E,GAEF,WAAC,OAAI,IAAI,wEAAwE,IAAKvnE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,sBAAgC,EAAG,UAAU,e,MAGvI,WAAC,OAAI,UAAU,Y,SACb,WAACksC,GAAAA,CAAsBA,CAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACrB,KAAMh+C,EACN,aAAcoR,EACd,oBAAqBgtC,EACrB,MAAOvqD,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,qBAA+B,EACxC,eAAgBd,EAChB,aA3Ce,KAEvBD,EADmB,CAAE,OAAQ,aAAcC,OAAAA,CAAO,EAEpD,EAyCU,SAAU2tC,C,EACN1gD,G,OAMhB,CAEAg9D,CAAAA,GAAuB,SAAS,CAAG,CACjC,KAAMzkD,GAAAA,EAAAA,CAAAA,UAAuB,CAC7B,oBAAqBwqC,GAAAA,EAAAA,CAAAA,UAAsC,CAC3D,QAAS7xC,GAAAA,IAAIA,CACb,gBAAiBA,GAAAA,IAAIA,CACrB,KAAMX,GAAAA,MAAMA,CACZ,cAAeD,GAAAA,IAAAA,CAAAA,UAAe,AAChC,EAEA0sD,GAAuB,YAAY,CAAG,CACpC,QAAS5nE,AAAAA,GAAKA,EACd,gBAAiBA,AAAAA,GAAKA,EACtB,KAAM,EACR,EC3GA,IAAMgoE,GAA0B,CAAC,CAC/Br7D,KAAAA,CAAI,CAAE+Q,gBAAAA,CAAe,CAAEuqD,cAAAA,CAAa,CAAEvQ,cAAAA,CAAa,CACpD,IACC,IAAMwQ,EAAar5C,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,IACb,CAAE,QAAS,CAAEs5C,2BAAAA,CAA0B,CAAE,CAAE,CAAGvqD,GAAAA,CAAgBA,CAE9D,CAAE,CADOuqD,EACC,CAAEpd,CAAmB,CAAE,CAAGgI,GAAAA,CAAsBA,CAE1Dh1C,EAAeC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAHNmqD,GAITC,EAAiBpqD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAJRmqD,EAImCjqD,GAAAA,EAAAA,CAAAA,SAAqB,EACjEgtC,EAAU30D,OAAO,QAAQ,CAAC,QAAQ,OAExC4nB,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACRT,EAAgB,CAAE,OAAQ,OAAQC,OARrBwqD,CAQ4B,GACzCt1D,GAAAA,CAAAA,CAAAA,QAAiB,CAAC,CAAE,uBAAwB,EAAK,EACnD,EAAG,EAAE,EAcH,YAAC,2BAAQkL,GAAAA,CAAc,IAAKmqD,EAAY,UAAU,6B,UAChD,YAAC,OAAI,UAAU,gB,UACb,YAAC,OAAI,UAAU,e,UACb,WAACG,GAAsBA,CAAC,UAAU,Y,GACjC7nE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,wBAAkC,E,GAEvC,WAAC,MAAG,UAAU,oB,SAAqBje,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,wCAAkD,C,GACvF,YAAC,OAAI,UAAU,gB,UACb,WAAC,OAAI,UAAU,Q,SACb,WAAC,OACC,IAAI,mFACJ,IAAKje,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,gBAA0B,C,KAGrC,WAAC,OAAI,UAAU,Q,SACb,WAAC,OACC,IAAI,mFACJ,IAAKje,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,gBAA0B,C,KAGrC,WAAC,OAAI,UAAU,Q,SACb,WAAC,OACC,IAAI,iFACJ,IAAKje,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,eAAyB,C,KAGpC,WAAC,OAAI,UAAU,Q,SACb,WAAC,OACC,IAAI,kFACJ,IAAKje,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,eAAyB,C,KAGpC,WAAC,OAAI,UAAU,Q,SACb,WAAC,OACC,IAAI,iFACJ,IAAKje,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,cAAwB,C,KAGnC,WAAC,OAAI,UAAU,Q,SACb,WAAC,OACC,IAAI,iFACJ,IAAKje,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,WAAqB,C,QAKjC,CAACwpD,GACF,WAAC,8BACKG,GAAAA,CACJ,KAAK,SACL,UAAU,kBACV,QA/DoB,KAC1BjD,GAAY,CACVx4D,KAAAA,EACA,MDyFSi7D,GCxFTlqD,gBAAAA,EACA,KAjBWyqD,EAkBXzQ,cAAAA,CACF,GACAh6C,EAAgB,CAAE,OAAQ,QAAS,OAAQ,CAAC,aAAa,EApB5CyqD,EAoBqD,CAAC,AAAC,EACtE,E,SAwDS3nE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,aAAuB,C,OAK7BwpD,GACC,WAAC,OAAI,UAAU,e,SACb,WAACtd,GAAAA,CAAsBA,CAAAA,CACrB,KAAMh+C,EACN,aAAcoR,EACd,oBAAqBgtC,EACrB,MAAOvqD,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,qBAA+B,EACxC,eAAgB0pD,EAChB,QAASjd,EACT,WAAW,c,QAMvB,CAEA8c,CAAAA,GAAwB,SAAS,CAAG,CAClC,KAAM7kD,GAAAA,EAAAA,CAAAA,UAAuB,CAC7B,gBAAiBrH,GAAAA,IAAIA,CACrB,cAAeZ,GAAAA,IAAIA,CACnB,cAAeA,GAAAA,IAAAA,CAAAA,UAAe,AAChC,EAEA8sD,GAAwB,YAAY,CAAG,CACrC,gBAAiBhoE,AAAAA,GAAKA,EACtB,cAAe,EACjB,ECxGA,OAnB0B,CAAC,CACzBk3D,OAAAA,EAAS,IAAI,CACbvqD,KAAAA,EAAO,IAAI,CACX+Q,gBAAAA,EAAkB1d,AAAAA,GAAKA,CAAC,CACxB03D,cAAAA,EAAgB,EAAK,CACtB,IACMR,GAEL+M,GAAAA,MAAe,CACb,WDoHW+D,GCpHaA,CACtB,KAAMr7D,EACN,cAAe,GACf,gBAAiB+Q,EACjB,cAAeg6C,C,GAEjBR,EAEJ,ECjBO,IAAMoR,GAAoB37D,AAAAA,IAC/B,GAAIod,AAAoC,oBAApCA,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAwB,OAE3D,IAAMw+C,EAAqBr8D,SAAS,aAAa,CAAC,oCAClD,GAAI,CAACq8D,EAAoB,OAEzB,IAAMC,EAAet8D,SAAS,aAAa,CAAC,OAC5Cs8D,EAAa,YAAY,CAAC,KAAM,qBAChCC,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAYF,EAAoBC,GAEhCE,GAAkB,CAChB/7D,KAAAA,EACA,OAAQ67D,CACV,EACF,E,kBxCjBA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAG,IAAQ,GAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAe,AAAG,GAAsB,eAAmB,CAAC,MAAO,GAAS,CAChF,MAAO,6BACP,KAAM,OACN,QAAS,YACX,EAAG,GAAQ,GAAO,GAAkB,EAAM,aAAa,CAAC,IAAK,CAC3D,GAAI,kBACN,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,GAAI,yBACJ,KAAM,UACN,EAAG,mJACL,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,GAAI,0BACJ,KAAM,UACN,EAAG,kHACL,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,GAAI,yBACJ,KAAM,UACN,EAAG,sGACL,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,GAAI,0BACJ,KAAM,UACN,EAAG,kHACL,GAAC,EAAK,GAAQ,GAAmB,eAAmB,CAAC,IAAK,CACxD,GAAI,kBACN,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,GAAI,qBACJ,KAAM,UACN,EAAG,ySACL,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,GAAI,qBACJ,KAAM,UACN,EAAG,ySACL,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,GAAI,qBACJ,KAAM,UACN,EAAG,+fACL,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,GAAI,qBACJ,KAAM,UACN,SAAU,UACV,EAAG,6YACH,SAAU,SACZ,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,GAAI,qBACJ,KAAM,UACN,SAAU,UACV,EAAG,iYACH,SAAU,SACZ,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,GAAI,qBACJ,KAAM,UACN,EAAG,0NACL,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,GAAI,qBACJ,KAAM,UACN,EAAG,iTACL,GAAC,G,kByCrDM,IAAMrE,GAAiB,CAAC,CAAEhoD,SAAAA,CAAQ,CAAE,GAAM,WAAC,OAAI,UAAU,2B,SAA4BA,C,EAE5FgoD,CAAAA,GAAe,SAAS,CAAG,CAAE,SAAUznD,GAAAA,IAAIA,AAAC,EAC5CynD,GAAe,YAAY,CAAG,CAAE,SAAU,IAAK,EAExC,IAAMC,GAAkB,AAAC,I,GAAA,CAAEjoD,SAAAA,CAAQ,CAAY,GAAPvR,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAbuR,W,QAChC,WAAC,2BAAQvR,GAAAA,CAAO,UAAU,+B,SACxB,WAAC,OAAI,UAAU,mC,SACZuR,C,MAKPioD,CAAAA,GAAgB,SAAS,CAAG,CAAE,SAAU1nD,GAAAA,IAAIA,AAAC,EAC7C0nD,GAAgB,YAAY,CAAG,CAAE,SAAU,IAAK,EAEzC,IAAMC,GAAiB,AAAC,I,GAAA,CAAEC,aAAAA,CAAY,CAAY,GAAP15D,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAjB05D,e,QAC/B,WAAC,8BACK15D,GAAAA,CACJ,KAAK,SACL,UAAU,cACV,aAAYpK,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,WAAqB,EACnC,QAAS6lD,E,SAET,WAACC,GAASA,CAAAA,E,IAIdF,CAAAA,GAAe,SAAS,CAAG,CAAE,aAAcvoD,GAAAA,IAAIA,AAAC,EAChDuoD,GAAe,YAAY,CAAG,CAAE,aAAcrkE,AAAAA,GAAKA,CAAE,ECrBrD,IAAM2oE,GAAmB,CAAC,CACxBh8D,KAAAA,CAAI,CACJkoB,QAAAA,CAAO,CACP+zC,OAAAA,CAAM,CACN,WAAY,CACVC,QAAAA,CAAO,CACPvrD,MAAAA,CAAK,CACLme,YAAAA,CAAW,CACZ,CACF,IACC,IAAMopC,EAAgBh2C,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,MAEvB,CAAE,QAAS,CAAE,mBAAoBlR,CAAM,CAAE,CAAE,CAAGC,GAAAA,CAAgBA,CAE9DG,EAAeC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,GAClC+mD,EAAoB1mD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,EAAQO,GAAAA,EAAAA,CAAAA,KAAiB,EAEhEotC,EAAWwL,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,IACb,CAAE,CAACn5C,EAAO,CAAEotC,CAAmB,CAAE,CAAGO,EAAWqE,GAAAA,CAAyBA,CAAGoD,GAAAA,CAAsBA,CAErG50C,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACRC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQA,OAAAA,EAAQ,OAAQ,MAAO,EACvD,EAAG,EAAE,EAEL,IAAMmnD,EAAmB,K,IACvBC,C,AAAqB,QAArBA,CAAAA,EAAAA,EAAc,OAAO,AAAD,GAApBA,AAAAA,KAAAA,IAAAA,GAAAA,EAAuB,IAAI,GAE3B3mD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,cAAe,OAAQ,OAAQ,EACvE,EAoBA,OAFAotC,EAAsB6I,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAA8B7I,EAAqB,CAT5C,KAC3B3sC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,kBAAmB,OAAQ,OAAQ,EAC3E,EAO+F,EAG7F,WAAC,OAAI,UAAU,e,SACb,WAACoqB,GAAAA,CAAKA,CAAAA,CACJ,IAAK88B,EACL,eAAgB,GAChB,gBAAiB,GACjB,oBAAqB,GACrB,eAAgBV,GAChB,gBAAiBv5D,AAAAA,GAAS,WAACw5D,GAAeA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKrmD,EAAkBnT,IACjE,eAAgB,IAAM,WAACy5D,GAAcA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKK,GAAAA,CAAmB,aAAcI,C,IAC3E,aA5Bc,KAClB/Q,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAqBh2C,GACrBK,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQA,OAAAA,EAAQ,OAAQ,OAAQ,GAEtDkX,GACF,E,SAyBM,WAAC,OAAI,UAAU,M,SACb,YAAC,OAAI,UAAU,e,UACb,YAAC,OAAI,UAAU,S,UACb,WAAC,OAAI,IAAKg0C,EAAS,IAAKvrD,EAAO,UAAU,Q,GACzC,YAAC,O,UACC,WAAC,QAAK,UAAU,a,SAAcA,C,GAC9B,WAAC,QAAK,UAAU,mB,SAAoBme,C,SAGxC,WAAC,OAAI,UAAU,gB,SACb,WAACkvB,GAAAA,CAAsBA,CAAAA,CACrB,KAAMh+C,EACN,OAAQ,eACR,UAAW,eACX,aAAcoR,EACd,eAAgBJ,EAChB,oBAAqBotC,EACrB,MAAOvqD,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,wBAAkC,EAC3C,WAAW,uCACX,aAtCW,KACvBL,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQA,OAAAA,EAAQ,OAAQ,YAAa,GAC3Dhd,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAuBioE,EACzB,EAoCc,SAAUtd,C,aAQ1B,CAEAqd,CAAAA,GAAiB,SAAS,CAAG,CAC3B,KAAMxlD,GAAAA,EAAAA,CAAAA,UAAuB,CAC7B,WAAYmV,GAAAA,MAAMA,CAClB,eAAgBpd,GAAAA,IAAIA,CACpB,QAASY,GAAAA,IAAIA,CACb,gBAAiBA,GAAAA,IAAIA,CACrB,QAASX,GAAAA,MAAAA,CAAAA,UAAiB,CAC1B,MAAOA,GAAAA,MAAAA,CAAAA,UAAiB,CACxB,YAAaA,GAAAA,MAAAA,CAAAA,UAAiB,CAC9B,OAAQA,GAAAA,MAAAA,CAAAA,UAAiB,AAC3B,EAEAwtD,GAAiB,YAAY,CAAG,CAC9B,WAAY,CAAC,EACb,eAAgB,GAChB,QAAS3oE,AAAAA,GAAKA,EACd,gBAAiBA,AAAAA,GAAKA,CACxB,EzCxHA,SAAS,KAAa,MAAO,IAAWwF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAqNnR,OAnNkBrW,GAAsB,eAAmB,CAAC,MAAO,GAAS,CAC1E,KAAM,OACN,MAAO,6BACP,QAAS,aACX,EAAGA,GAAqB,eAAmB,CAAC,OAAQ,CAClD,GAAI,aACJ,MAAO,CACL,SAAU,OACZ,EACA,UAAW,iBACX,EAAG,EACH,EAAG,EACH,MAAO,IACP,OAAQ,GACV,EAAG,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CAC5D,EAAG,kHACH,KAAM,OACR,EAAC,GAAK,GAAO,GAAkB,eAAmB,CAAC,IAAK,CACtD,KAAM,kBACR,EAAgB,eAAmB,CAAC,IAAK,CACvC,OAAQ,sBACV,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,EAAG,iLACH,KAAM,QACN,YAAa,GACf,IAAG,EAAI,GAAW,GAAsB,eAAmB,CAAC,OAAQ,CAClE,QAAS,IACT,EAAG,mIACH,KAAM,0BACR,EAAC,EAAItR,GAAUA,CAAAA,EAAqB,eAAmB,CAAC,OAAQ,KAAmB,eAAmB,CAAC,SAAU,CAC/G,GAAI,iBACJ,EAAG,SACH,EAAG,QACH,MAAO,QACP,OAAQ,QACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,qBACL,OAAQ,OACV,GAAiB,eAAmB,CAAC,iBAAkB,CACrD,aAAc,QACd,OAAQ,6BACV,IAAkB,eAAmB,CAAC,SAAU,CAC9C,GAAI,iBACJ,EAAG,QACH,EAAG,OACH,MAAO,QACP,OAAQ,QACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,KAAM,SACN,OAAQ,4CACR,OAAQ,WACV,GAAiB,eAAmB,CAAC,WAAY,CAC/C,GAAI,OACN,GAAiB,eAAmB,CAAC,iBAAkB,CACrD,aAAc,OAChB,GAAiB,eAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,KAAM,SACN,OAAQ,iEACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,IAAK,qBACL,OAAQ,yBACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,0BACL,OAAQ,OACV,IAAkB,eAAmB,CAAC,SAAU,CAC9C,GAAI,iBACJ,EAAG,QACH,EAAG,OACH,MAAO,QACP,OAAQ,QACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,KAAM,SACN,OAAQ,4CACR,OAAQ,WACV,GAAiB,eAAmB,CAAC,WAAY,CAC/C,GAAI,OACN,GAAiB,eAAmB,CAAC,iBAAkB,CACrD,aAAc,OAChB,GAAiB,eAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,KAAM,SACN,OAAQ,8DACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,IAAK,qBACL,OAAQ,yBACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,0BACL,OAAQ,OACV,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,qBACJ,GAAI,QACJ,GAAI,OACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,eAAmB,CAAC,OAAQ,MAAoB,eAAmB,CAAC,OAAQ,CAC1F,OAAQ,EACR,YAAa,CACf,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,qBACJ,GAAI,EACJ,GAAI,EACJ,EAAG,EACH,cAAe,iBACf,kBAAmB,mEACrB,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,OACb,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,qBACJ,GAAI,EACJ,GAAI,EACJ,EAAG,EACH,cAAe,iBACf,kBAAmB,mEACrB,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,qBACJ,GAAI,OACJ,GAAI,QACJ,GAAI,OACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,OAAQ,KACR,UAAW,QACX,YAAa,GACf,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,OAAQ,GACR,UAAW,QACX,YAAa,CACf,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,qBACJ,GAAI,EACJ,GAAI,EACJ,EAAG,EACH,cAAe,iBACf,kBAAmB,gEACrB,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,OAAQ,QACR,UAAW,SACb,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,qBACJ,GAAI,QACJ,GAAI,OACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,QACX,YAAa,CACf,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,qBACJ,GAAI,QACJ,GAAI,OACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,QACX,YAAa,CACf,IAAkB,eAAmB,CAAC,WAAY,CAChD,GAAI,YACN,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,EAAG,iRACH,KAAM,OACR,IAAG,G0C1MH,IAAMwvE,GAAqB,CAAC,CAC1Bn8D,KAAAA,CAAI,CAAEo8D,UAAAA,CAAS,CAAEC,YAAAA,CAAW,CAAEC,kBAAAA,CAAiB,CAAEC,gBAAAA,CAAe,CAAEC,YAAAA,CAAW,CAAEzD,WAAAA,CAAU,CAAEkD,OAAAA,CAAM,CAClG,IACC,GAAM,CAAE,QAAS,CAAE,oBAAqBjrD,CAAM,CAAE,CAAE,CAAGC,GAAAA,CAAgBA,CAE/DG,EAAeC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,GAClCyrD,EAAqBprD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,EAAQO,GAAAA,EAAAA,CAAAA,OAAmB,EAEzEC,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACRC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQA,OAAAA,EAAQ,OAAQ,MAAO,EACvD,EAAG,EAAE,EAEL,IAAM2J,EAAc,KAClBlJ,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,eAAgB,OAAQ,OAAQ,GAEtEwnD,GAAY,CACVx4D,KAAAA,EACA+4D,WAAAA,EACAkD,OAAAA,EACA,MD6FSD,EC5FX,EACF,EAEA,MACE,YAAC,2BACK5qD,GAAAA,CAAc,UAAU,uBAAuB,QAASuJ,EAC5D,KAAK,SACL,SAAU,EACV,UAAW5wB,AAAAA,IACK,UAAVA,EAAE,GAAG,EACP4wB,GAEJ,E,UAEA,YAAC,OAAI,UAAU,W,UACb,WAAC,QAAK,UAAU,Q,SAASyhD,C,GACzB,YAAC,QAAK,UAAU,gB,UACd,YAAC,QAAK,UAAU,Q,UACbC,EAAY,IAEZ,I,GAGH,WAAC,QAAK,UAAU,c,SACbC,C,MAGL,YAAC,MAAG,UAAU,a,UACXE,EAAY,GAAG,CAACloE,AAAAA,GACf,YAAC,M,UACC,WAACooE,GAAAA,CAASA,CAAAA,CAAC,UAAU,M,GACrB,WAAC,Q,SAAMpoE,C,OAIX,YAAC,M,UACC,WAACooE,GAAAA,CAASA,CAAAA,CAAC,UAAU,M,GACrB,WAAC,Q,SAAK,U,YAIZ,YAAC,OAAI,UAAU,Y,UACb,YAAC,OAAI,UAAU,e,UACb,WAACC,GAAgBA,CAAC,UAAU,M,GAC5B,WAAC,QAAK,UAAU,a,SAAc9oE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,sBAAgC,C,MAGlE,YAAC,OAAI,UAAU,c,UACb,WAAC,OACC,UAAU,SACV,IAAKyqD,EACL,IAAKF,C,GAEP,WAACO,GAAYA,CAAC,UAAU,mB,MAG1B,WAAC,8BACKH,GAAAA,CACJ,KAAK,SACL,UAAU,W,SAET5oE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,OAAiB,C,UAM9B,CAEAqqD,CAAAA,GAAmB,SAAS,CAAG,CAC7B,KAAM3lD,GAAAA,EAAYA,CAClB,UAAWhI,GAAAA,MAAAA,CAAAA,UAAiB,CAC5B,YAAaA,GAAAA,MAAAA,CAAAA,UAAiB,CAC9B,kBAAmBA,GAAAA,MAAAA,CAAAA,UAAiB,CACpC,gBAAiBA,GAAAA,MAAAA,CAAAA,UAAiB,CAClC,OAAQA,GAAAA,MAAAA,CAAAA,UAAiB,CACzB,YAAayhB,AAAAA,CAAAA,EAAAA,GAAAA,OAAAA,AAAAA,EAAQzhB,GAAAA,MAAMA,EAAE,UAAU,CACvC,WAAYmd,GAAAA,MAAAA,CAAAA,UAAiB,AAC/B,EAEAwwC,GAAmB,YAAY,CAAG,CAChC,KAAM,CAAC,CACT,EClGA,OAX8B,CAACl+D,EAAOssD,KAC/BA,GAEL+M,GAAAA,MAAe,CACb,WD2GW6E,GC3GQA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EACbl+D,IAENssD,EAEJ,ECbO,IAAMsS,GAAe,CAC1B,2CAA4C,CAC1C,MAAO,QACP,UAAW,aACX,YAAa,4CACb,kBAAmB,oDACnB,gBAAiB,kFACjB,YAAa,CAAC,uBAAwB,2BAA4B,uBAAuB,CACzF,OAAQ,iIACR,WAAY,CACV,QAAS,uFACT,MAAO,iEACP,YAAa,8EACf,CACF,EACA,8DAA+D,CAC7D,MAAO,SACP,UAAW,aACX,YAAa,oCACb,kBAAmB,uCACnB,gBAAiB,iFACjB,YAAa,CAAC,uBAAwB,6BAA8B,6BAA6B,CACjG,OAAQ,0FACR,WAAY,CACV,QAAS,uFACT,MAAO,wFACP,YAAa,2GACf,CACF,EACA,yCAA0C,CACxC,MAAO,QACP,UAAW,aACX,YAAa,4CACb,kBAAmB,oDACnB,gBAAiB,2EACjB,YAAa,CAAC,uBAAwB,wBAAyB,4BAA4B,CAC3F,OAAQ,6FACR,WAAY,CACV,QAAS,uFACT,MAAO,iEACP,YAAa,6EACf,CACF,CACF,ECxCaC,GAAwB98D,AAAAA,IAEnC,IAAM+8D,EAAYF,EAAY,CADVz/C,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CACR,CAC3C,GAAI,CAAC2/C,GAID,CADa5sE,AADF,IAAIorD,gBAAgBh8C,SAAS,QAAQ,CAAC,MAAM,EACnC,GAAG,CAACw9D,EAAU,KAAK,EAH3B,OAMhB,IAAMC,EAAiCz9D,SAAS,cAAc,CAAC,qBAC1Dy9D,GAELC,GAAsB,UACpBj9D,KAAAA,C,EACG+8D,GACFC,EACL,E,6B5ClBA,SAAS,KAAa,MAAO,IAAWnkE,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAYnR,OAViBrW,GAAsB,eAAmB,CAAC,MAAO,GAAS,CACzE,KAAM,OACN,MAAO,6BACP,QAAS,WACX,EAAGA,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,SAAU,UACV,EAAG,4fACH,KAAM,SACR,EAAC,G6CNM,IAAMu5D,GAAiB,CAAC,CAAEhoD,SAAAA,CAAQ,CAAE,GAAM,WAAC,OAAI,UAAU,4B,SAA6BA,C,EAE7FgoD,CAAAA,GAAe,SAAS,CAAG,CAAE,SAAUznD,GAAAA,IAAIA,AAAC,EAC5CynD,GAAe,YAAY,CAAG,CAAE,SAAU,IAAK,EAExC,IAAMC,GAAkB,AAAC,I,GAAA,CAAEjoD,SAAAA,CAAQ,CAAY,GAAPvR,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAbuR,W,QAChC,WAAC,2BAAQvR,GAAAA,CAAO,UAAU,+B,SACxB,WAAC,OAAI,UAAU,oC,SACZuR,C,MAKPioD,CAAAA,GAAgB,SAAS,CAAG,CAAE,SAAU1nD,GAAAA,IAAIA,AAAC,EAC7C0nD,GAAgB,YAAY,CAAG,CAAE,SAAU,IAAK,EAEzC,IAAMC,GAAiB,AAAC,I,GAAA,CAAEC,aAAAA,CAAY,CAAY,GAAP15D,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAjB05D,e,QAC/B,WAAC,8BACK15D,GAAAA,CACJ,KAAK,SACL,UAAU,cACV,aAAYpK,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,WAAqB,EACnC,QAAS6lD,E,SAET,WAACC,GAASA,CAAAA,E,K5C7Bd,SAAS,KAAa,MAAO,IAAW/+D,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,C4CiCnRojD,GAAe,SAAS,CAAG,CAAE,aAAcvoD,GAAAA,IAAIA,AAAC,EAChDuoD,GAAe,YAAY,CAAG,CAAE,aAAcrkE,AAAAA,GAAKA,CAAE,E5C4QrD,OA5SkB4K,GAAsB,eAAmB,CAAC,MAAO,GAAS,CAC1E,KAAM,OACN,MAAO,6BACP,QAAS,aACX,EAAGA,GAAQ,GAAO,GAAkB,eAAmB,CAAC,IAAK,CAC3D,SAAU,mBACZ,EAAgB,eAAmB,CAAC,IAAK,CACvC,OAAQ,uBACV,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,EAAG,4gBACH,KAAM,SACR,IAAkB,eAAmB,CAAC,IAAK,CACzC,OAAQ,uBACV,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,EAAG,ohBACH,KAAM,SACR,IAAkB,eAAmB,CAAC,IAAK,CACzC,OAAQ,uBACV,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,EAAG,khBACH,KAAM,SACR,IAAkB,eAAmB,CAAC,IAAK,CACzC,OAAQ,uBACV,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,EAAG,8gBACH,KAAM,SACR,IAAkB,eAAmB,CAAC,OAAQ,CAC5C,EAAG,2QACH,KAAM,2BACR,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,EAAG,kRACH,KAAM,4BACN,YAAa,EACf,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,EAAG,kRACH,KAAM,4BACN,YAAa,EACf,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,SAAU,UACV,SAAU,UACV,EAAG,ilBACH,KAAM,SACR,GAAiB,eAAmB,CAAC,IAAK,CACxC,OAAQ,uBACV,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,EAAG,khBACH,KAAM,UACN,YAAa,GACb,eAAgB,YAClB,IAAkB,eAAmB,CAAC,IAAK,CACzC,OAAQ,uBACV,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,EAAG,ghBACH,KAAM,SACR,IAAG,EAAI,GAAU,GAAqB,eAAmB,CAAC,OAAQ,KAAmB,eAAmB,CAAC,SAAU,CACjH,GAAI,kBACJ,EAAG,QACH,EAAG,QACH,MAAO,QACP,OAAQ,QACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,KAAM,SACN,OAAQ,4CACR,OAAQ,WACV,GAAiB,eAAmB,CAAC,WAAY,MAAoB,eAAmB,CAAC,iBAAkB,CACzG,aAAc,OAChB,GAAiB,eAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,KAAM,SACN,OAAQ,qDACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,IAAK,qBACL,OAAQ,0BACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,2BACL,OAAQ,OACV,IAAkB,eAAmB,CAAC,SAAU,CAC9C,GAAI,kBACJ,EAAG,IACH,EAAG,QACH,MAAO,QACP,OAAQ,QACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,KAAM,SACN,OAAQ,4CACR,OAAQ,WACV,GAAiB,eAAmB,CAAC,WAAY,MAAoB,eAAmB,CAAC,iBAAkB,CACzG,aAAc,CAChB,GAAiB,eAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,KAAM,SACN,OAAQ,qDACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,IAAK,qBACL,OAAQ,0BACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,2BACL,OAAQ,OACV,IAAkB,eAAmB,CAAC,SAAU,CAC9C,GAAI,kBACJ,EAAG,IACH,EAAG,QACH,MAAO,QACP,OAAQ,QACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,KAAM,SACN,OAAQ,4CACR,OAAQ,WACV,GAAiB,eAAmB,CAAC,WAAY,MAAoB,eAAmB,CAAC,iBAAkB,CACzG,aAAc,CAChB,GAAiB,eAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,KAAM,SACN,OAAQ,qDACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,IAAK,qBACL,OAAQ,0BACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,2BACL,OAAQ,OACV,IAAkB,eAAmB,CAAC,SAAU,CAC9C,GAAI,kBACJ,EAAG,QACH,EAAG,OACH,MAAO,QACP,OAAQ,QACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,KAAM,SACN,OAAQ,4CACR,OAAQ,WACV,GAAiB,eAAmB,CAAC,WAAY,MAAoB,eAAmB,CAAC,iBAAkB,CACzG,aAAc,MAChB,GAAiB,eAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,KAAM,SACN,OAAQ,qDACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,IAAK,qBACL,OAAQ,0BACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,2BACL,OAAQ,OACV,IAAkB,eAAmB,CAAC,SAAU,CAC9C,GAAI,kBACJ,EAAG,QACH,EAAG,MACH,MAAO,QACP,OAAQ,QACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,KAAM,SACN,OAAQ,4CACR,OAAQ,WACV,GAAiB,eAAmB,CAAC,WAAY,MAAoB,eAAmB,CAAC,iBAAkB,CACzG,aAAc,MAChB,GAAiB,eAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,KAAM,SACN,OAAQ,qDACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,IAAK,qBACL,OAAQ,0BACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,2BACL,OAAQ,OACV,IAAkB,eAAmB,CAAC,SAAU,CAC9C,GAAI,kBACJ,EAAG,QACH,EAAG,MACH,MAAO,QACP,OAAQ,QACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,KAAM,SACN,OAAQ,4CACR,OAAQ,WACV,GAAiB,eAAmB,CAAC,WAAY,MAAoB,eAAmB,CAAC,iBAAkB,CACzG,aAAc,MAChB,GAAiB,eAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,KAAM,SACN,OAAQ,yCACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,IAAK,qBACL,OAAQ,0BACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,2BACL,OAAQ,OACV,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,sBACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,UAAW,UACX,YAAa,GACf,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,UACX,YAAa,CACf,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,sBACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,UACX,YAAa,CACf,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,sBACJ,GAAI,EACJ,GAAI,EACJ,EAAG,EACH,cAAe,iBACf,kBAAmB,iEACrB,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,UAAW,QACX,YAAa,GACf,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,QACX,YAAa,CACf,IAAkB,eAAmB,CAAC,WAAY,CAChD,GAAI,aACN,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,MAAO,IACP,OAAQ,IACR,KAAM,OACR,IAAG,G6ChSH,IAAMi/D,GAA6B,CAAC,CAClCl9D,KAAAA,CAAI,CACJo8D,UAAAA,CAAS,CACTrD,WAAAA,CAAU,CACV3nD,aAAAA,CAAY,CACZ2mD,kBAAAA,CAAiB,CACjB3Z,oBAAAA,CAAmB,CACnB+e,OAAAA,CAAM,CACNj1C,QAAAA,CAAO,CACPyvC,aAAAA,CAAY,CACZrZ,aAAAA,CAAY,CACb,IACC,IAAM4Z,EAAgBh2C,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,MACvB,CAAE,QAAS,CAAEk7C,8BAAAA,CAA6B,CAAE,CAAE,CAAGnsD,GAAAA,CAAgBA,CAEvEO,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR2rD,GACF,EAAG,EAAE,EAOL,IAAMhF,EAAmB,K,IACvBC,C,AAAqB,QAArBA,CAAAA,EAAAA,EAAc,OAAO,AAAD,GAApBA,AAAAA,KAAAA,IAAAA,GAAAA,EAAuB,IAAI,GAC3BT,GACF,EAEA,MACE,WAACv8B,GAAAA,CAAKA,CAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CACJ,IAAK88B,EACL,eAAgB,GAChB,gBAAiB,GACjB,oBAAqB,GACrB,eAAgBV,GAChB,gBAAiBv5D,AAAAA,GAAS,WAACw5D,GAAeA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKrmD,EAAkBnT,IACjE,eAAgB,IAAM,WAACy5D,GAAcA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKK,GAAAA,CAAmB,aAAcI,C,IAC3E,aAnBgB,KAClB/Q,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAqBh2C,GACrB8W,GACF,C,EAiBQ6wC,GAAAA,C,SAEJ,YAAC,OAAI,UAAU,M,UACb,YAAC,OAAI,UAAU,0B,UACb,WAAC,QAAK,UAAU,Q,SACbllE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEuoE,E,GAEL,WAAC,MAAG,UAAU,Q,SACXvoE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,WAAqB,C,GAE1B,WAACurD,GAAKA,CAAC,UAAU,e,MAGnB,WAAC,OAAI,UAAU,Y,SACb,WAACrf,GAAAA,CAAsBA,CAAAA,CACrB,KAAMh+C,EACN,aAAcoR,EACd,oBAAqBgtC,EACrB,MAAOvqD,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,qBAA+B,EACxC,eAAgBsrD,EAChB,aAAc9e,C,UAM1B,CAEA4e,CAAAA,GAA2B,SAAS,CAAG,CACrC,UAAW1uD,GAAAA,MAAMA,CACjB,KAAMgI,GAAAA,EAAAA,CAAAA,UAAuB,CAC7B,WAAYmV,GAAAA,MAAMA,CAClB,QAASxc,GAAAA,IAAIA,CACb,aAAcA,GAAAA,IAAIA,CAClB,aAAc4xC,GAAAA,EAAAA,CAAAA,UAA+B,CAC7C,kBAAmBA,GAAAA,EAAAA,CAAAA,UAA+B,CAClD,oBAAqBC,GAAAA,EAAAA,CAAAA,UAAsC,CAC3D,OAAQ7xC,GAAAA,IAAIA,CACZ,aAAcA,GAAAA,IAAIA,AACpB,EAEA+tD,GAA2B,YAAY,CAAG,CACxC,UAAWprD,GAAAA,CAAAA,CAAAA,aAAuB,CAClC,WAAY,CAAC,EACb,QAASze,AAAAA,GAAKA,EACd,aAAcA,AAAAA,GAAKA,EACnB,OAAQA,AAAAA,GAAKA,EACb,aAAcA,AAAAA,GAAKA,CACrB,EC7FA,IAAMiqE,GAA0B,AAAC,I,GAAA,CAC/BvsD,gBAAAA,CAAe,CAAEsoD,UAAAA,CAAS,CAAEnxC,QAAAA,CAAO,CACpC,GADyCjqB,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAxC8S,kBAAiBsoD,YAAWnxC,U,EAE5B,GAAM,CAAE,QAAS,CAAE,4BAA6BlX,CAAM,CAAE,CAAE,CAAGC,GAAAA,CAAgBA,CACzE,CAAE,CAACD,EAAO,CAAEotC,CAAmB,CAAE,CAAGgI,GAAAA,CAAsBA,CAExDh1C,EAAeC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,GAClC+mD,EAAoB1mD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,EAAQO,GAAAA,EAAAA,CAAAA,KAAiB,QAEtEC,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR0qC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAkBmd,EACpB,EAAG,EAAE,EAqCLjb,EAAsB6I,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAA8B7I,EAAqB,CAZ/C,KACxBrtC,EAAgB,CAAE,OAAQ,QAAS,OAAQ,CAAC,kBAAkB,EAAEC,EAAO,CAAC,AAAC,GACzES,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,oBAAqB,OAAQ,OAAQ,EAC7E,EAS4F,EAG1F,WD4CWksD,GC5CgBA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EACrBj/D,GAAAA,CACJ,aAAcmT,EACd,kBAAmB2mD,EACnB,oBAAqB3Z,EACrB,OA3Ce,KACjB,IAAM1tD,EAAa,CAAE,OAAQ,OAAQsgB,OAAAA,CAAO,EAE5CD,EAAgBrgB,GAChB+gB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,UAAE,MAAOT,C,EAAWtgB,GACnC,EAuCI,QAhCgB,KAClB02D,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAqBh2C,GAErB,IAAM1gB,EAAa,CAAE,OAAQ,QAASsgB,OAAAA,CAAO,EAE7CD,EAAgBrgB,GAChB+gB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,UAAE,MAAOT,C,EAAWtgB,IAEjCw3B,GACF,EAwBI,aAtCqB,KACvBnX,EAAgB,CAAE,OAAQ,QAAS,OAAQ,CAAC,YAAY,EAAEC,EAAO,CAAC,AAAC,GACnES,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,cAAe,OAAQ,OAAQ,EACvE,EAoCI,aAlBqB,KACvB,IAAMtgB,EAAa,CAAE,OAAQ,aAAcsgB,OAAAA,CAAO,EAElDD,EAAgBrgB,GAChB+gB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,UAAE,MAAOT,C,EAAWtgB,GACnC,C,GAgBF,CAEA4sE,CAAAA,GAAwB,SAAS,CAAG,CAClC,KAAM9mD,GAAAA,EAAAA,CAAAA,UAAuB,CAC7B,OAAQrH,GAAAA,IAAIA,CACZ,QAASA,GAAAA,IAAIA,CACb,gBAAiBA,GAAAA,IAAIA,CACrB,UAAWX,GAAAA,MAAAA,CAAAA,UAAiB,AAC9B,EAEA8uD,GAAwB,YAAY,CAAG,CACrC,OAAQjqE,AAAAA,GAAKA,EACb,QAASA,AAAAA,GAAKA,EACd,gBAAiBA,AAAAA,GAAKA,CACxB,EC5EA,IAAMkqE,GAAyB,AAAC,I,GAAA,CAC9BxsD,gBAAAA,CAAe,CAAEmX,QAAAA,CAAO,CAAEloB,KAAAA,CAAI,CAAEq5D,UAAAA,CAAS,CAC1C,GAD+Cp7D,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAA9C8S,kBAAiBmX,UAASloB,OAAMq5D,Y,EAEhC,GAAM,CAAE,QAAS,CAAE,2BAA4BroD,CAAM,CAAE,CAAE,CAAGC,GAAAA,CAAgBA,CACxE,CAAE,CAACD,EAAO,CAAEotC,CAAmB,CAAE,CAAGgI,GAAAA,CAAsBA,CAExDh1C,EAAeC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,GAClC+mD,EAAoB1mD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,EAAQO,GAAAA,EAAAA,CAAAA,KAAiB,QAEtEC,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR0qC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAkBmd,EACpB,EAAG,EAAE,EAoCLjb,EAAsB6I,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAA8B7I,EAAqB,CAX/C,KACxBrtC,EAAgB,CAAE,OAAQ,QAAS,OAAQ,CAAC,kBAAkB,EAAEC,EAAO,CAAC,AAAC,GACzES,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,oBAAqB,OAAQ,OAAQ,EAC7E,EAQ4F,EAG1F,WF6CWksD,GE7CgBA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EACrBj/D,GAAAA,CACJ,KAAM+B,EACN,aAAcoR,EACd,kBAAmB2mD,EACnB,oBAAqB3Z,EACrB,OA3Ce,KACjB,IAAM1tD,EAAa,CAAE,OAAQ,OAAQsgB,OAAAA,CAAO,EAE5CD,EAAgBrgB,GAChB+gB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,UAAE,MAAOT,C,EAAWtgB,GACnC,EAuCI,QAhCgB,KAClB02D,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAqBh2C,GAErB,IAAM1gB,EAAa,CAAE,OAAQ,QAASsgB,OAAAA,CAAO,EAE7CD,EAAgBrgB,GAChB+gB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,UAAE,MAAOT,C,EAAWtgB,IAEjCw3B,GACF,EAwBI,aAtCqB,KACvBnX,EAAgB,CAAE,OAAQ,QAAS,OAAQ,CAAC,YAAY,EAAEC,EAAO,CAAC,AAAC,GACnES,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,cAAe,OAAQ,OAAQ,EACvE,EAoCI,aAlBqB,KACvB,IAAMtgB,EAAa,CAAE,OAAQ,aAAcsgB,OAAAA,CAAO,EAClDD,EAAgBrgB,GAChB+gB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,UAAE,MAAOT,C,EAAWtgB,GACnC,C,GAiBF,CAEA6sE,CAAAA,GAAuB,SAAS,CAAG,CACjC,KAAM/mD,GAAAA,EAAAA,CAAAA,UAAuB,CAC7B,gBAAiBrH,GAAAA,IAAIA,CACrB,QAASA,GAAAA,IAAIA,CACb,UAAWX,GAAAA,MAAAA,CAAAA,UAAiB,AAC9B,EAEA+uD,GAAuB,YAAY,CAAG,CACpC,QAASlqE,AAAAA,GAAKA,EACd,gBAAiBA,AAAAA,GAAKA,CACxB,EC1EA,IAAMmqE,GAAgB,AAAC,I,GAAA,CACrBzsD,gBAAAA,CAAe,CACfmX,QAAAA,CAAO,CAER,GADIjqB,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAFH8S,kBACAmX,U,EAGA,GAAM,CAAE,QAAS,CAAE,gBAAiBlX,CAAM,CAAE,CAAE,CAAGC,GAAAA,CAAgBA,CAC7D,CAAE,CAACD,EAAO,CAAEotC,CAAmB,CAAE,CAAGgI,GAAAA,CAAsBA,CAExDh1C,EAAeC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,GAClC+mD,EAAoB1mD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,EAAQO,GAAAA,EAAAA,CAAAA,KAAiB,EAsCtE,OAFA6sC,EAAsB6I,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAA8B7I,EAAqB,CAZ/C,KACxBrtC,EAAgB,CAAE,OAAQ,QAAS,OAAQ,CAAC,kBAAkB,EAAEC,EAAO,CAAC,AAAC,GACzES,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,oBAAqB,OAAQ,OAAQ,EAC7E,EAS4F,EAG1F,WH+CWksD,GG/CgBA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EACrBj/D,GAAAA,CACJ,UAAW6T,GAAAA,CAAAA,CAAAA,UAAoB,CAC/B,aAAcV,EACd,kBAAmB2mD,EACnB,oBAAqB3Z,EACrB,OA3Ce,KACjB,IAAM1tD,EAAa,CAAE,OAAQ,OAAQsgB,OAAAA,CAAO,EAE5CD,EAAgBrgB,GAChB+gB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,UAAE,MAAOT,C,EAAWtgB,GACnC,EAuCI,QAhCgB,KAClB02D,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAqBh2C,GAErB,IAAM1gB,EAAa,CAAE,OAAQ,QAASsgB,OAAAA,CAAO,EAC7CD,EAAgBrgB,GAChB+gB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,UAAE,MAAOT,C,EAAWtgB,IAEjCw3B,GACF,EAyBI,aAtCqB,KACvBnX,EAAgB,CAAE,OAAQ,QAAS,OAAQ,CAAC,YAAY,EAAEC,EAAO,CAAC,AAAC,GACnES,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,CAAE,MAAOT,EAAQ,OAAQ,cAAe,OAAQ,OAAQ,EACvE,EAoCI,aAnBqB,KACvB,IAAMtgB,EAAa,CAAE,OAAQ,aAAcsgB,OAAAA,CAAO,EAElDD,EAAgBrgB,GAChB+gB,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAa,UAAE,MAAOT,C,EAAWtgB,GACnC,C,GAiBF,CAEA8sE,CAAAA,GAAc,SAAS,CAAG,CACxB,QAASruD,GAAAA,IAAIA,CACb,gBAAiBA,GAAAA,IAAIA,CACrB,KAAMqH,GAAAA,EAAAA,CAAAA,UAAuB,AAC/B,EAEAgnD,GAAc,YAAY,CAAG,CAC3B,QAASnqE,AAAAA,GAAKA,EACd,gBAAiBA,AAAAA,GAAKA,CACxB,E/C9EA,SAAS,KAAa,MAAO,IAAWwF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAYnR,OAVkBrW,GAAsB,eAAmB,CAAC,MAAO,GAAS,CAC1E,KAAM,OACN,MAAO,6BACP,QAAS,WACX,EAAGA,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,SAAU,UACV,EAAG,0wBACH,KAAM,OACR,EAAC,GCXD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CA6YnR,OA3YkBrW,GAAsB,eAAmB,CAAC,MAAO,GAAS,CAC1E,KAAM,OACN,MAAO,6BACP,QAAS,aACX,EAAGA,GAAQ,GAAO,GAAkB,eAAmB,CAAC,IAAK,CAC3D,SAAU,iBACZ,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,MAAO,IACP,OAAQ,IACR,KAAM,SACR,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,MAAO,IACP,OAAQ,IACR,KAAM,yBACR,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,MAAO,IACP,OAAQ,IACR,KAAM,0BACN,YAAa,EACf,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,SAAU,UACV,SAAU,UACV,EAAG,4OACH,KAAM,0BACN,YAAa,EACf,GAAiB,eAAmB,CAAC,IAAK,CACxC,OAAQ,qBACV,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,EAAG,2gBACH,KAAM,SACR,IAAkB,eAAmB,CAAC,IAAK,CACzC,OAAQ,qBACV,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,EAAG,4gBACH,KAAM,SACR,IAAkB,eAAmB,CAAC,IAAK,CACzC,OAAQ,qBACV,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,EAAG,8gBACH,KAAM,SACR,IAAkB,eAAmB,CAAC,IAAK,CACzC,OAAQ,qBACV,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,EAAG,4gBACH,KAAM,SACR,IAAkB,eAAmB,CAAC,IAAK,CACzC,OAAQ,qBACV,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,EAAG,0gBACH,KAAM,SACR,IAAkB,eAAmB,CAAC,OAAQ,CAC5C,EAAG,oRACH,KAAM,yBACR,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,EAAG,iRACH,KAAM,0BACN,YAAa,EACf,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,EAAG,iRACH,KAAM,0BACN,YAAa,EACf,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,SAAU,UACV,SAAU,UACV,EAAG,0kBACH,KAAM,SACR,GAAiB,eAAmB,CAAC,IAAK,CACxC,OAAQ,qBACV,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,EAAG,sgBACH,KAAM,UACN,YAAa,GACb,eAAgB,YAClB,IAAkB,eAAmB,CAAC,IAAK,CACzC,OAAQ,qBACV,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,EAAG,4gBACH,KAAM,SACR,IAAG,EAAI,GAAU,GAAqB,eAAmB,CAAC,OAAQ,KAAmB,eAAmB,CAAC,SAAU,CACjH,GAAI,gBACJ,EAAG,QACH,EAAG,QACH,MAAO,QACP,OAAQ,QACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,KAAM,SACN,OAAQ,4CACR,OAAQ,WACV,GAAiB,eAAmB,CAAC,WAAY,MAAoB,eAAmB,CAAC,iBAAkB,CACzG,aAAc,CAChB,GAAiB,eAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,KAAM,SACN,OAAQ,qDACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,IAAK,qBACL,OAAQ,wBACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,yBACL,OAAQ,OACV,IAAkB,eAAmB,CAAC,SAAU,CAC9C,GAAI,gBACJ,EAAG,OACH,EAAG,QACH,MAAO,QACP,OAAQ,QACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,KAAM,SACN,OAAQ,4CACR,OAAQ,WACV,GAAiB,eAAmB,CAAC,WAAY,MAAoB,eAAmB,CAAC,iBAAkB,CACzG,aAAc,GAChB,GAAiB,eAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,KAAM,SACN,OAAQ,qDACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,IAAK,qBACL,OAAQ,wBACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,yBACL,OAAQ,OACV,IAAkB,eAAmB,CAAC,SAAU,CAC9C,GAAI,gBACJ,EAAG,QACH,EAAG,QACH,MAAO,QACP,OAAQ,QACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,KAAM,SACN,OAAQ,4CACR,OAAQ,WACV,GAAiB,eAAmB,CAAC,WAAY,MAAoB,eAAmB,CAAC,iBAAkB,CACzG,aAAc,CAChB,GAAiB,eAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,KAAM,SACN,OAAQ,qDACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,IAAK,qBACL,OAAQ,wBACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,yBACL,OAAQ,OACV,IAAkB,eAAmB,CAAC,SAAU,CAC9C,GAAI,gBACJ,EAAG,QACH,EAAG,QACH,MAAO,QACP,OAAQ,QACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,KAAM,SACN,OAAQ,4CACR,OAAQ,WACV,GAAiB,eAAmB,CAAC,WAAY,MAAoB,eAAmB,CAAC,iBAAkB,CACzG,aAAc,CAChB,GAAiB,eAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,KAAM,SACN,OAAQ,qDACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,IAAK,qBACL,OAAQ,wBACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,yBACL,OAAQ,OACV,IAAkB,eAAmB,CAAC,SAAU,CAC9C,GAAI,gBACJ,EAAG,QACH,EAAG,QACH,MAAO,GACP,OAAQ,GACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,KAAM,SACN,OAAQ,4CACR,OAAQ,WACV,GAAiB,eAAmB,CAAC,WAAY,MAAoB,eAAmB,CAAC,iBAAkB,CACzG,aAAc,CAChB,GAAiB,eAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,KAAM,SACN,OAAQ,qDACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,IAAK,qBACL,OAAQ,wBACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,yBACL,OAAQ,OACV,IAAkB,eAAmB,CAAC,SAAU,CAC9C,GAAI,gBACJ,EAAG,QACH,EAAG,QACH,MAAO,QACP,OAAQ,QACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,KAAM,SACN,OAAQ,4CACR,OAAQ,WACV,GAAiB,eAAmB,CAAC,WAAY,MAAoB,eAAmB,CAAC,iBAAkB,CACzG,aAAc,CAChB,GAAiB,eAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,KAAM,SACN,OAAQ,qDACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,IAAK,qBACL,OAAQ,wBACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,yBACL,OAAQ,OACV,IAAkB,eAAmB,CAAC,SAAU,CAC9C,GAAI,gBACJ,EAAG,QACH,EAAG,OACH,MAAO,QACP,OAAQ,QACR,YAAa,iBACb,0BAA2B,MAC7B,EAAgB,eAAmB,CAAC,UAAW,CAC7C,aAAc,EACd,OAAQ,oBACV,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,GAAI,cACJ,KAAM,SACN,OAAQ,4CACR,OAAQ,WACV,GAAiB,eAAmB,CAAC,WAAY,MAAoB,eAAmB,CAAC,iBAAkB,CACzG,aAAc,CAChB,GAAiB,eAAmB,CAAC,cAAe,CAClD,IAAK,YACL,SAAU,KACZ,GAAiB,eAAmB,CAAC,gBAAiB,CACpD,KAAM,SACN,OAAQ,yCACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,IAAK,qBACL,OAAQ,wBACV,GAAiB,eAAmB,CAAC,UAAW,CAC9C,KAAM,SACN,GAAI,gBACJ,IAAK,yBACL,OAAQ,OACV,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,oBACJ,GAAI,EACJ,GAAI,EACJ,EAAG,EACH,cAAe,iBACf,kBAAmB,kEACrB,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,SACb,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,oBACJ,GAAI,EACJ,GAAI,EACJ,EAAG,EACH,cAAe,iBACf,kBAAmB,wEACrB,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,UACX,YAAa,CACf,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,oBACJ,GAAI,SACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,UACX,YAAa,CACf,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,oBACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,UAAW,UACX,YAAa,GACf,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,UACX,YAAa,CACf,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,oBACJ,GAAI,MACJ,GAAI,GACJ,GAAI,QACJ,GAAI,QACJ,cAAe,gBACjB,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,UAAW,SACb,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,UACX,YAAa,CACf,IAAkB,eAAmB,CAAC,iBAAkB,CACtD,GAAI,oBACJ,GAAI,EACJ,GAAI,EACJ,EAAG,EACH,cAAe,iBACf,kBAAmB,4DACrB,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,UAAW,QACX,YAAa,GACf,GAAiB,eAAmB,CAAC,OAAQ,CAC3C,OAAQ,EACR,UAAW,QACX,YAAa,CACf,IAAkB,eAAmB,CAAC,WAAY,CAChD,GAAI,WACN,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,MAAO,IACP,OAAQ,IACR,KAAM,OACR,IAAG,G+C9XH,IAAMw/D,GAA8B,CAAC,CACnCz9D,KAAAA,CAAI,CAAE+Q,gBAAAA,CAAe,CAAE2sD,2BAAAA,CAA0B,CAAErE,UAAAA,CAAS,CAC7D,IACC,IAAMsE,EAAYz7C,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,IACZ07C,EAAY17C,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,IAGZ,CAACiG,EAAWC,EAAa,CAAGmM,EAAAA,oBAA0B,CAAC,GAAO,CAACopC,EAAWC,EAAU,EAEpFC,EAAmB37C,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,IAC1B47C,EAAmB57C,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,IAC1B67C,EAAiB77C,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,IAExB,CAAE,QAAS,CAAE,+BAAgClR,CAAM,CAAE,CAAE,CAAGC,GAAAA,CAAgBA,CAE1EG,EAAeC,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,GAClCgtD,EAAkB3sD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,EAAQO,GAAAA,EAAAA,CAAAA,cAA0B,EACvE0sD,EAAiB5sD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAmBL,EAAQO,GAAAA,EAAAA,CAAAA,OAAmB,EAErEC,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACRT,EAAgB,CAAE,OAAQ,OAAQC,OAAAA,CAAO,GAEzC,IAAM2E,EAAY,8BACZuoD,EAAS3+D,SAAS,aAAa,CAAC,QAItC,MAHI,CAAC2+D,EAAO,SAAS,CAAC,QAAQ,CAACvoD,IAC7BuoD,EAAO,SAAS,CAAC,GAAG,CAACvoD,GAEhB,KACLuoD,EAAO,SAAS,CAAC,MAAM,CAACvoD,EAC1B,CACF,EAAG,EAAE,EAELnE,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,IAAM2sD,EAAoB75D,GAAAA,CAAAA,CAAAA,mBAAiC,CAAC,CAAE,IAAKu9C,GAAAA,EAAgCA,AAAC,GAE9Fuc,EAAQ3yD,WAAW,KACvB,GAAI0c,CAAAA,IAAa21C,EAAiB,OAAO,GAAIC,EAAe,OAAO,GAAII,EACvE/1C,EAAa,IACby1C,EAAiB,OAAO,CAAG,GAC3BC,EAAiB,OAAO,CAAG,GAGvB,CAAC5V,AADa,IAAI3M,gBAAgB3xD,OAAO,QAAQ,CAAC,MAAM,EAC7C,GAAG,CAACg4D,GAAAA,EAAsBA,GACvCt9C,GAAAA,CAAAA,CAAAA,mBAAiC,CAAC,CAChC,IAAKu9C,GAAAA,EAAgCA,CAAE,MAAO,GAChD,EAEJ,EA1C6B,MA4C7B,MAAO,KACL7R,aAAaouB,EACf,CACF,EAAG,CAACj2C,EAAU,EAGd3W,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KAcRjS,SAAS,IAAI,CAAC,gBAAgB,CAAC,aAbN,MACnBw+D,EAAe,OAAO,EAAKL,IAC3BG,EAAiB,OAAO,CAC1BrF,GAAY,CACV,MHWK8E,GGX2BvsD,gBAAAA,EAAiB/Q,KAAAA,EAAMq5D,UAAAA,CACzD,GAEAb,GAAY,CACV,MFKK+E,GEL0BxsD,gBAAAA,EAAiB/Q,KAAAA,EAAMq5D,UAAAA,CACxD,GAEF0E,EAAe,OAAO,CAAG,GAC3B,EAEF,EAAG,EAAE,EAmBL,IAAMM,EAAgBrvD,KAAG,CACvB,iBAAkB,GAClB,KAAMmZ,CACR,GAEA,MACE,YAAC,yBAAI,UAAU,8B,EAAmC/W,GAAAA,C,UAEhD,WAAC,UACC,KAAK,SACL,IAAKusD,EACL,QA5BoB,KACxBv1C,EAAariB,AAAAA,GAAW,CAACA,GACzB+3D,EAAiB,OAAO,CAAG,GAC3B/sD,EAAgB,CAAE,OAAQ,QAAS,OAAQ,CAAC,aAAa,EAAEC,EAAO,CAAC,AAAC,EACtE,EAyBM,UAAU,cACV,aAAYnd,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,gBAA0B,E,SAExC,WAACwsD,GAAUA,CAAAA,E,GAIb,YAAC,OAAI,UAAWD,EAAe,IAAKT,E,UAClC,WAACW,GAAUA,CAAC,UAAU,Q,GACtB,WAAC,OAAI,UAAU,kB,SACb,WAAC,MAAG,UAAU,Q,SAAS1qE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,gBAA0B,C,KAErD,YAAC,OAAI,UAAU,iB,UAEb,WAAC,4BACC,KAAK,SACL,QAvCiB,KACzB0mD,GAAY,CAAE,MDbHgF,GCayBzsD,gBAAAA,EAAiB/Q,KAAAA,CAAK,GAC1D+9D,EAAe,OAAO,CAAG,GACzBhtD,EAAgB,CAAE,OAAQ,QAAS,OAAQ,CAAC,eAAe,EAAEC,EAAO,CAAC,AAAC,EACxE,EAoCU,UAAU,kBACV,aAAYnd,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,cAAwB,C,EAClCksD,GAAAA,C,SAEHnqE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,cAAwB,C,IAG7B,WAAC,4BACC,KAAK,SACL,QA3CgB,KACxBsW,EAAa,IACbrX,EAAgB,CAAE,OAAQ,QAAS,OAAQ,CAAC,aAAa,EAAEC,EAAO,CAAC,AAAC,EACtE,EAyCU,UAAU,oBACV,aAAYnd,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,OAAiB,C,EAC3BmsD,GAAAA,C,SAEHpqE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEie,GAAAA,CAAAA,CAAAA,OAAiB,C,aAMhC,CAEA2rD,CAAAA,GAA4B,SAAS,CAAG,CACtC,2BAA4BlvD,GAAAA,IAAIA,CAChC,KAAMiI,GAAAA,EAAAA,CAAAA,UAAuB,CAC7B,gBAAiBrH,GAAAA,IAAIA,CACrB,UAAWX,GAAAA,MAAAA,CAAAA,UAAiB,AAC9B,EAEAivD,GAA4B,YAAY,CAAG,CACzC,2BAA4B,GAC5B,gBAAiBpqE,AAAAA,GAAKA,CACxB,E,kBChJA,GAjByB,CAAC2M,EAAMg8C,EAAcU,GAAAA,EAAAA,CAAAA,qBAA0C,CAAEd,EAAY,EAAK,IACzG,GAAM,CAAC4iB,EAAeC,EAAiB,CAAG5nD,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,IAC7C6nD,EAAmBx8C,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO7uB,AAAAA,GAAKA,GAYrC,MAVAme,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,IAAMy7C,EAAgB,IAAIzR,GAAAA,CAAaA,CAAC,CACtCx7C,KAAAA,EACA47C,UAAAA,EACAI,YAAAA,CACF,EACA0iB,CAAAA,EAAiB,OAAO,CAAGzR,EAAc,qBAAqB,CAC9DwR,EAAiBE,AAAAA,GAAU,CAACA,EAC9B,EAAG,CAAC3+D,EAAK,EAEF,CAACw+D,EAAeE,EAAiB,OAAO,CAAC,AAClD,ECVA,IAAME,GAAwB,AAAC,I,GAAA,CAC7B5+D,KAAAA,CAAI,CACJ09D,2BAAAA,CAA0B,CAE3B,GADIz/D,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAFH+B,OACA09D,6B,EAGA,GAAM,CAACc,EAAeK,EAAsB,CAAGC,GAAiB9+D,EAAM,gBAChE++D,EAAqB78C,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO7uB,AAAAA,GAAKA,GAOvC,MALAme,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACRutD,EAAmB,OAAO,CAAGF,EAC7B34D,GAAAA,CAAAA,CAAAA,QAAiB,CAAC,CAAE,2BAA4B,EAAK,EACvD,EAAG,CAACs4D,EAAc,EAGhB,WFgJWf,GEhJiBA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EACtBx/D,GAAAA,CACJ,KAAM+B,EACN,gBAAiB++D,EAAmB,OAAO,CAC3C,2BAA4BrB,C,GAGlC,CAEAkB,CAAAA,GAAsB,SAAS,CAAG,CAChC,2BAA4BrwD,GAAAA,IAAIA,CAChC,KAAMiI,GAAAA,EAAAA,CAAAA,UAAuB,AAC/B,EAEAooD,GAAsB,YAAY,CAAG,CACnC,2BAA4B,EAC9B,EC3BA,OARoC3gE,AAAAA,IAClCi7D,GAAY,UACV,MDmCW0F,GClCX,cAAe,8B,EACZ3gE,GAEP,ECVO,IAAM+gE,GAAa,CACxB,iCAAkC,CAChC,MAAO,MACT,CACF,ECAaC,GAA4B,MAAMj/D,IAE7C,IAAMk/D,EAAWF,EAAU,CADP5hD,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CACX,CACxC,IAAI,CAAC8hD,EAIL,IADiB/uE,AADF,IAAIorD,gBAAgBh8C,SAAS,QAAQ,CAAC,MAAM,EACnC,GAAG,CAAC2/D,EAAS,KAAK,EAG1C,GAAI,C,IAM4BC,EAL9B,IAAM/iB,EAAQ,MAAMD,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAkC,yBACtD,GAAI,CAACC,EAAM,IAAI,CAAE,OAEjBgjB,GAA4B,CAC1Bp/D,KAAAA,EACA,2BAA4B,AAAa,OAAbm/D,CAAAA,EAAAA,EAAM,OAAO,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAe,oCAAoC,CAC/E,UAAW/iB,EAAM,SAAS,AAC5B,EACF,CAAE,MAAOt7C,EAAO,CACd5C,QAAQ,GAAG,CAAC,CAAC,mDAAmD,EAAE4C,EAAM,CAAC,CAC3E,CAbqB,CAcvB,E,kBCzBO,IAAMwpD,GAAiBzJ,AAAAA,IAC5B,GAAIthD,SAAS,aAAa,CAACshD,GACzB,OAAOthD,SAAS,aAAa,CAACshD,GAEhC,IAAM0J,EAAShrD,SAAS,aAAa,CAAC,OAQtC,OAPIshD,EAAS,UAAU,CAAC,MACtB0J,CAAAA,EAAO,EAAE,CAAG1J,CAAO,EAEjBA,EAAS,UAAU,CAAC,MACtB0J,EAAO,SAAS,CAAC,GAAG,CAAC1J,GAEvBthD,SAAS,IAAI,CAAC,WAAW,CAACgrD,GACnBA,CACT,EAOa8U,GAAiBtpE,AAAAA,GAC5B,CAAKA,GAIEupE,AADO,oNACD,IAAI,CAACvpE,GCePwpE,GAAqB,yB,gCCtClC,IAAMllB,GAAQ,IAAI5qD,GAAAA,CAAYA,CAAC,OAAQ,CACrC,kBAAmB,CACjB,OAAQ2tB,EAAAA,CAAMA,CAAC,MAAM,CACrB,2BAA4B,CAAC1tB,GAAAA,CAAAA,CAAAA,gCAA6C,CAAC,AAC7E,CACF,GAEa8vE,GAAkB,CAAClhE,EAAUxO,KACxC,IAAMD,EAAW,IAAI4vE,SAMrB,OAJA5mE,OAAO,OAAO,CAAC/I,GAAM,OAAO,CAAC,CAAC,CAACoE,EAAK9C,EAAM,IACxCvB,EAAS,MAAM,CAACqE,EAAK9C,EACvB,GAEOipD,GAAM,IAAI,CAAC,CAAC,KAAK,EAAE/7C,EAAS,SAAS,CAAC,CAAEzO,EACjD,EAEa6vE,GAAoBxrE,AAAAA,GACxBmmD,GAAM,MAAM,CAAC,CAAC,cAAc,EAAEnmD,EAAI,CAAC,ECpB/BkgB,GAAQ,CASnB,KAAM,OACN,OAAQ,SACR,KAAM,OACN,KAAM,OAGN,SAAU,WACV,SAAU,oBACV,SAAU,oBACV,SAAU,WACV,iBAAkB,mBAClB,qBAAsB,uBACtB,qBAAsB,uBACtB,aAAc,UACd,YAAa,SACb,YAAa,YACb,YAAa,QACb,QAAS,UACT,gBAAiB,kBAEjB,kBAAmB,6BACnB,8BAA+B,2DAE/B,wBAAyB,8BACzB,oCAAqC,oDAErC,gCAAiC,kCACjC,4CAA6C,+DAC7C,4CAA6C,iCAE7C,iCAAkC,wCAClC,gCAAiC,gCAEjC,qBAAsB,uBAEtB,wBAAyB,iCACzB,oCAAqC,+CAGrC,mBAAoB,YACpB,oBAAqB,aACrB,mBAAoB,YACpB,iBAAkB,UAClB,yBAA0B,kBAC1B,uBAAwB,kBACxB,0BAA2B,sBAC3B,mBAAoB,uBACpB,mBAAoB,YACpB,qBAAsB,wBACtB,2BAA4B,sBAC5B,sBAAuB,eACvB,8BAA+B,yBAC/B,+BAAgC,0BAChC,qBAAsB,cACtB,0BAA2B,qBAC3B,4BAA6B,qBAC7B,2BAA4B,sBAC5B,oBAAqB,gBACrB,+BAAgC,wBAChC,eAAgB,QAEhB,cAAe,gBACf,YAAa,cACb,qBAAsB,uBACtB,kBAAmB,sBACnB,mBAAoB,qBACpB,eAAgB,iBAChB,UAAW,YACX,MAAO,QAEP,uBAAwB,yBACxB,UAAW,YACX,QAAS,UACT,SAAU,WACV,YAAa,eACf,EAGaurD,GAAa,CACxBvrD,GAAM,8BAA8B,CACpCA,GAAM,kBAAkB,CACxBA,GAAM,mBAAmB,CACzBA,GAAM,kBAAkB,CACxBA,GAAM,gBAAgB,CACtBA,GAAM,wBAAwB,CAC9BA,GAAM,sBAAsB,CAC5BA,GAAM,yBAAyB,CAC/BA,GAAM,kBAAkB,CACxBA,GAAM,kBAAkB,CACxBA,GAAM,oBAAoB,CAC1BA,GAAM,0BAA0B,CAChCA,GAAM,qBAAqB,CAC3BA,GAAM,6BAA6B,CACnCA,GAAM,8BAA8B,CACpCA,GAAM,oBAAoB,CAC1BA,GAAM,yBAAyB,CAC/BA,GAAM,2BAA2B,CACjCA,GAAM,0BAA0B,CAChCA,GAAM,mBAAmB,CACzBA,GAAM,cAAc,CACrB,CC1GYwrD,GAAe,qBAIfC,GAA2B,CAAC,CACvC7/D,KAAAA,CAAI,CACJg8C,YAAAA,CAAW,CACXW,UAAAA,EAAY,EAAK,CACjBh7C,SAAAA,EAAWtO,AAAAA,GAAKA,CAAC,CAClB,IACM2oD,GAAgBW,GAAc38C,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,QAAQ,AAAD,IAC5C,CAACkG,GAAAA,CAAAA,CAAAA,eAAwB,IAC3BA,GAAAA,CAAAA,CAAAA,QAAiB,GAEnBA,GAAAA,CAAAA,CAAAA,QAAiB,CAAClG,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,QAAQ,CAAE,CAChC,YAAaA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,QAAQ,CAC3B,CAAC,CAAC,EAAEg8C,EAAY,KAAK,CAAC,CAAC,CAAE,EAC3B,GACwB,YAApB,OAAOr6C,GACTA,IAEJ,ECPA,OAb2B,CAAC3B,EAAM8/D,EAAqB,EAAK,CAAEC,EAAc,EAAK,CAAE/jB,EAAc4jB,EAAY,GAUpG,CATiBr7C,AAAAA,CAAAA,EAAAA,EAAAA,OAAAA,AAAAA,EAAQ,K,IAEvBp5B,QADP,AAAK,CAAC40E,GAAgBD,CAAiB,GAAO9/D,EACvC,CAAA7U,EAAAA,IAAIqwD,GAAAA,CAAaA,CAAC,CACvBx7C,KAAAA,EACAg8C,YAAAA,EACA,gBAAiB+jB,CACnB,GAJO50E,EAIH,qBAAqB,AAAD,EALmCkI,AAAAA,GAAKA,CAMlE,EAAG,CAAC2M,EAAM8/D,EAAmB,EAEL,CCL1B,GANqB,AAAC,I,GAAA,CAAE9/D,KAAAA,CAAI,CAAY,GAAP/B,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAT+B,O,EACtBwR,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACRquD,GAAyB,UAAE7/D,KAAAA,C,EAAS/B,GACtC,EAAG,CAAC+B,EAAK,CACX,ECIA,IAAMggE,GAAsB1iD,AAAAA,CAAAA,EAAAA,EAAAA,aAAAA,AAAAA,IAGtB2iD,GAAuB,CAAC,CAC5BjgE,KAAAA,CAAI,CACJwP,SAAAA,CAAQ,CACR0wD,eAAAA,CAAc,CACf,IACC,IAAMC,EAA6C,IACjD,EAAKD,EAAe,QAAQ,EAGrB,CADgCP,GAAW,KAAK,CAAC,EAAG,GAAG,QAAQ,CAACO,EAAe,QAAQ,EAI1F,CAAC5xE,EAAO8xE,EAAS,CAAGvpD,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,K,IAMrBwpD,E,MAN4B,CACxCrgE,KAAAA,EACA,QAASg3B,OAAOkpC,EAAe,QAAQ,EACvC,YAAalpC,OAAOkpC,EAAe,QAAQ,EAC3C,YAAa,CACX,UAAWA,EAAe,SAAS,CACnC,SAAUG,AAAAA,CAAAA,AAAuB,OAAvBA,CAAAA,EAAAA,EAAe,QAAQ,AAAD,GAAtBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyB,OAAO,CAAC,QAAS,IAAG,GAAK,KAC5D,iBAAkBH,EAAe,OAAO,CACxC,oBAAqBlgE,EAAK,OAAO,EAAI,OACrC,iBAAkBkgE,EAAe,YAAY,CAC7C,QAASA,EAAe,OAAO,CAC/B,gBAAiBA,EAAe,eAAe,AACjD,EACA,GAAI,CACF,oBAAqBC,IACrB,UAAW,EACb,CACF,C,GAEM,CACJG,YAAAA,CAAW,CACXC,QAAAA,CAAO,CACP,YAAa,CACXC,UAAAA,CAAS,CAAEC,SAAAA,CAAQ,CAAEC,iBAAAA,CAAgB,CAAEC,iBAAAA,CAAgB,CAAEC,oBAAAA,CAAmB,CAAEC,QAAAA,CAAO,CAAEC,gBAAAA,CAAe,CACvG,CACF,CAAGxyE,EAEE,CAACyiB,EAAgB,CAAGgwD,GAAmB/gE,EAAM,GAAM,CAAC,CAAC,IAAIu7C,gBAAgB3xD,OAAO,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,SAAU21E,IACrHyB,GAAa,CAAEhhE,KAAAA,EAAM,YAAau/D,GAAoB,UAAW,EAAK,GAEtE,IAAM0B,EAAkB,IAAMX,EAAc,GAAKE,IAAcpsD,GAAM,YAAY,CA8B3E8sD,EAAsB,UAC1B,IAAMC,EAAwB,CAAC,EAC/B,OAAQb,GACN,KAAK,EACHa,EAAsB,SAAS,CAAGX,EAClC,KAEF,MAAK,EACHW,EAAsB,QAAQ,CAAGV,EACjC,KAEF,MAAK,EACCC,GAAkBS,CAAAA,EAAsB,OAAO,CAAGT,CAAe,EACjEE,GAAuBA,AAAwB,SAAxBA,GAAgCO,CAAAA,EAAsB,OAAO,CAAGP,CAAkB,EACzGD,GAAkBQ,CAAAA,EAAsB,YAAY,CAAGR,CAAe,EAC1E,KAEF,MAAK,EACCE,GAASM,CAAAA,EAAsB,OAAO,CAAGN,CAAM,EAC/CC,GAAiBK,CAAAA,EAAsB,eAAe,CAAGL,CAAc,CAK/E,CAEIR,EAAc,EAAIC,GACpBY,CAAAA,EAAsB,kBAAkB,CAAGb,EAAc,GAG3D,MAAMd,GAAgBx/D,EAAK,QAAQ,CAAEmhE,EACvC,EAEA3vD,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,MACJ8uD,CAAAA,EAAc,IAElBd,GAAgBx/D,EAAK,QAAQ,CAAE,CAAE,mBAAoBsgE,CAAY,EACnE,EAAG,EAAE,EAEL9uD,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACRT,EAAgB,CAAE,OAAQ,OAAQ,OAAQ,CAAC,eAAe,EAAEuvD,EAAc,EAAE,CAAC,AAAC,EAChF,EAAG,CAACA,EAAY,EAEhB,IAAMc,EAAkB,UACtB,GAAI,CACFhB,EAASiB,AAAAA,GAAiB,qBAAKA,GAAAA,CAAc,GAAI,qBAAKA,EAAa,EAAE,GAAE,UAAW,E,MAClF,MAAMH,IAEFZ,EAAc,EAChBF,EAASiB,AAAAA,GAAiB,qBAAKA,GAAAA,CAAc,YAAaA,EAAa,WAAW,CAAG,EAAG,QAASxsE,KAAK,GAAG,CAACwsE,EAAa,WAAW,CAAG,EAAGA,EAAa,OAAO,C,KAE5J,MAAM3B,GAAkB,sBACxB1rE,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAuB,WAAY,QAAS,IAEhD,CAAE,MAAO8M,EAAO,CACd5C,QAAQ,KAAK,CAAC4C,EAChB,QAAU,CACRs/D,EAASiB,AAAAA,GAAiB,qBAAKA,GAAAA,CAAc,GAAI,qBAAKA,EAAa,EAAE,GAAE,UAAW,E,KACpF,CACF,EAiCA,MACE,WAACrB,GAAoB,QAAQ,EAC3B,MAAO,CAAE1xE,MAAAA,EAAOgzE,IAbR,CACVF,gBAAAA,EACAG,gBAtBsB,MAClBjB,CAAAA,EAAc,IAElBF,EAASiB,AAAAA,GAAiB,qBAAKA,GAAAA,CAAc,YAAaA,EAAa,WAAW,CAAG,C,GACvF,EAmBEG,eAXqB1xE,AAAAA,IACrBswE,EAASiB,AAAAA,GAAiB,qBAAKA,GAAAA,CAAc,YAAa,YAAKA,EAAa,WAAW,CAAKvxE,E,GAC9F,EAUE2xE,mBAjHyB,KACzB,IAAIC,EAAU,GACd,OAAQpB,GACN,KAAK,EACC,CAACE,GAAWkB,CAAAA,EAAU,EAAI,EAC9B,KAEF,MAAK,EACC,CAACjB,GAAUiB,CAAAA,EAAU,EAAI,EAC7B,KAEF,MAAK,EACH,GAAIT,KAAsBL,CAAAA,AAAwB,SAAxBA,GAAkCvB,GAAeuB,EAAmB,EAAI,MAC9F,EAACF,GAAoB,CAACE,GAAuB,CAACvB,GAAeuB,IAAwB,CAACD,CAAe,GAAGe,CAAAA,EAAU,EAAI,EAC1H,KAEF,MAAK,EACH,GAAIT,IAAmB,MACnB,EAACJ,GAAW,CAACC,CAAc,GAAGY,CAAAA,EAAU,EAAI,CAKpD,CAEA,OAAOA,CACT,EAwFET,gBAAAA,EACAU,oBAV0B,KAC1BvB,EAASiB,AAAAA,GAAiB,qBAAKA,GAAAA,CAAc,GAAI,qBAAKA,EAAa,EAAE,GAAE,oBAAqB,E,KAC9F,EASEO,uBArB6BC,AAAAA,KACzBA,CAAAA,EAAOtB,CAAM,GAEjBH,EAASiB,AAAAA,GAAiB,qBAAKA,GAAAA,CAAc,YAAaQ,C,GAC5D,EAkBE9wD,gBAAAA,CACF,CAIwB,E,SAEnBvB,C,EAGP,CAEAywD,CAAAA,GAAqB,SAAS,CAAG,CAC/B,KAAMzvB,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,CAAC,GAAG,UAAU,CAC1B,SAAU/rB,GAAAA,OAAOA,CACjB,eAAgB+rB,AAAAA,CAAAA,EAAAA,GAAAA,KAAAA,AAAAA,EAAM,CAAC,EACzB,EAEAyvB,GAAqB,YAAY,CAAG,CAClC,SAAU,KACV,eAAgB,CACd,UAAW,KACX,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,gBAAiB,KACjB,SAAU,CACZ,CACF,EAGO,IAAM6B,GAAkB,IAAMv5C,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAWy3C,I,gC3D9MhD,SAAS,KAAa,MAAO,IAAWnnE,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAanR,OAXkBrW,GAAsB,eAAmB,CAAC,MAAO,GAAS,CAC1E,KAAM,OACN,MAAO,6BACP,QAAS,aACX,EAAGA,GAAQ,GAAO,GAAkB,eAAmB,CAAC,IAAK,CAC3D,QAAS,GACX,EAAgB,eAAmB,CAAC,OAAQ,CAC1C,SAAU,UACV,SAAU,UACV,EAAG,m6BACL,GAAE,GCZF,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAYnR,OAVkBrW,GAAsB,eAAmB,CAAC,MAAO,GAAS,CAC1E,MAAO,6BACP,KAAM,OACN,QAAS,aACX,EAAGA,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,QAAS,IACT,EAAG,0UACH,OAAQ,UACR,YAAa,CACf,EAAC,G2D4BM,IAAM8jE,GAAc,CACzB,CACE,IAAK,YACL,KAAM,KACN,SAAU,aACV,MAAO,gCACP,SAAU,iEACV,cAAe,GACf,MAAO,aACT,EACA,CACE,IAAK,aACL,SAAU,gEACZ,EACA,CACE,IAAK,YACL,SAAU,iEACV,mBAAoB,EACtB,EACA,CACE,IAAK,aACL,KAAM,aACN,SAAU,aACV,MAAO,gCACP,aAAc,wEACd,OAAQ,GACR,aAAc,GAEd,MAAO,aACT,EACD,C1DrED,SAAS,KAAa,MAAO,IAAWlpE,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,C,iCAiBnR,OAfgBrW,GAAsB,eAAmB,CAAC,MAAO,GAAS,CACxE,KAAM,OACN,MAAO,6BACP,QAAS,WACX,EAAGA,GAAQvR,GAAUA,CAAAA,EAAqB,eAAmB,CAAC,OAAQ,CACpE,MAAO,GACP,OAAQ,GACR,GAAI,GACJ,KAAM,SACR,EAAC,EAAI,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CAC9D,SAAU,UACV,SAAU,UACV,EAAG,6aACH,KAAM,SACR,EAAC,GChBD,SAAS,KAAa,MAAO,IAAWmM,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAYnR,OAViBrW,GAAsB,eAAmB,CAAC,MAAO,GAAS,CACzE,KAAM,OACN,MAAO,6BACP,QAAS,WACX,EAAGA,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,SAAU,UACV,EAAG,4XACH,KAAM,SACR,EAAC,GCXD,SAAS,KAAa,MAAO,IAAWpF,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CAiBnR,OAfwBrW,GAAsB,eAAmB,CAAC,MAAO,GAAS,CAChF,KAAM,OACN,MAAO,6BACP,QAAS,WACX,EAAGA,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,MAAO,GACP,OAAQ,GACR,GAAI,GACJ,KAAM,SACR,EAAC,EAAI,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CAC9D,SAAU,UACV,SAAU,UACV,EAAG,w8DACH,KAAM,SACR,EAAC,GyDPD,IAAM+jE,GAAW,CAAC,CAChBthE,KAAAA,CAAI,CAAEuhE,OAAAA,CAAM,CAAEC,aAAAA,CAAY,CAAEC,cAAAA,CAAa,CAAEC,mBAAAA,CAAkB,CAAEC,YAAAA,CAAW,CAC3E,IACC,GAAM,CAAE,MAAO,CAAE,YAAa,CAAE7B,UAAAA,CAAS,CAAEM,gBAAAA,CAAe,CAAEJ,iBAAAA,CAAgB,CAAE,CAAE,CAAE,CAAGoB,KAErF,MACE,YAAC,OAAI,MAAO,CAAE,SAAU,UAAW,E,UAEhCO,GACC,WAAC,OAAI,UAAU,iC,SACb,WAAC,OAAI,IAAKA,EAAa,IAAI,Q,KAI/B,YAAC,OAAI,UAAWrzD,KAAG,0BAA2BmzD,GAAiB,OAAQC,GAAsB,Q,UAC1FA,EAEG,YAAC,OAAI,UAAU,uC,UACb,WAACE,GAAYA,CAAC,UAAU,M,GACxB,WAAC,QAAK,UAAU,O,SAAQ5B,GAAoB7sE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE,oB,MAIhD,WAAC,OAAI,UAAU,6B,GAEnB,YAAC,OAAI,UAAU,kC,UAEZ,CAACuuE,GACF,YAAC,OAAI,UAAU,iC,UACb,WAACG,GAAIA,CAAC,UAAU,M,GAChB,YAAC,OAAI,UAAU,U,UACb,WAAC,QAAK,UAAU,O,SAAQ7hE,GAAQ,WAAC,QAAK,UAAU,a,KAChD,YAAC,QAAK,UAAU,Q,UACd,WAAC8hE,GAAKA,CAAAA,GACN,WAAC,QAAK,UAAU,a,YAMrBL,GAAiBC,EAChB,YAAC,OAAI,UAAU,oC,UACb,YAAC,OAAI,UAAU,a,UACb,WAAC,OAAI,UAAU,Q,GACf,WAAC,OAAI,UAAU,Q,GACf,WAAC,OAAI,UAAU,Q,MAEjB,WAAC,OAAI,UAAU,a,GACf,WAAC,OAAI,UAAU,a,GACf,WAAC,OAAI,UAAU,a,MAGjB,yB,UACE,YAAC,OAAI,UAAU,iC,UACZH,GACD,WAAC,QAAK,UAAU,W,SACbzB,C,GAGF0B,GAAgBpB,GACjB,WAAC,QAAK,UAAU,0B,SACbA,C,MAIL,YAAC,OAAI,UAAU,qC,UACb,YAAC,OAAI,UAAU,O,UACb,WAAC,QAAK,UAAU,O,SAAQ1sD,GAAM,QAAQ,A,GACtC,WAAC,QAAK,UAAU,a,MAElB,YAAC,OAAI,UAAU,O,UACb,WAAC,QAAK,UAAU,O,SAAQA,GAAM,QAAQ,A,GACtC,WAAC,QAAK,UAAU,a,MAElB,YAAC,OAAI,UAAU,O,UACb,WAAC,QAAK,UAAU,O,SAAQA,GAAM,QAAQ,A,GACtC,WAAC,QAAK,UAAU,a,MAElB,YAAC,OAAI,UAAU,O,UACb,WAAC,QAAK,UAAU,O,SAAQA,GAAM,QAAQ,A,GACtC,WAAC,QAAK,UAAU,a,oBAUlC,CAEA4tD,CAAAA,GAAS,SAAS,CAAG,CACnB,KAAMxzD,GAAAA,MAAMA,CACZ,OAAQD,GAAAA,IAAIA,CACZ,aAAcA,GAAAA,IAAIA,CAClB,cAAeA,GAAAA,IAAIA,CACnB,mBAAoBA,GAAAA,IAAIA,CACxB,YAAaC,GAAAA,MAAMA,AACrB,EAEAwzD,GAAS,YAAY,CAAG,CACtB,KAAM,KACN,OAAQ,GACR,aAAc,GACd,cAAe,GACf,mBAAoB,GACpB,YAAa,IACf,ECxBA,OAhFkB,KAChB,GAAM,CAAE,MAAO,CAAEhiE,KAAAA,CAAI,CAAEsgE,YAAAA,CAAW,CAAE,CAAE,CAAGwB,KACnCW,EAAYvgD,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,MAEzB1Q,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACRixD,EAAU,OAAO,CAAC,MAAM,CAAC,OAAO,CAACnC,EACnC,EAAG,CAACA,EAAY,EAEhB,IAAMoC,EAAsB,CAAC5yE,EAAM6yE,IACjC,AAAI7yE,AAAc,OAAdA,EAAK,IAAI,CACJ,CAAC,EAAE,EAAE6yE,EAAW,CAAC,CAAC,EAAEA,EAAS,CAAC,CAAG,GAAG,CAAC,CAAC,CAExC,CAAC,EAAE7yE,EAAK,IAAI,CAAC,EAAE6yE,EAAW,CAAC,CAAC,EAAEA,EAAS,CAAC,CAAG,GAAG,CAAC,CAGxD,MACE,WAAC3jC,GAAAA,EAAMA,CAAAA,CACL,UAAU,2BACV,OAAO,OACP,cAAe,GACf,SAAU,GACV,aAAcshC,EACd,YAAa,CACX,KAAM,CACJ,KAAM,EACR,CACF,EACA,QAAS,CAACsC,GAAAA,EAAUA,CAAEC,GAAAA,EAAQA,CAAC,CAC/B,cAAeC,AAAAA,I,IAC4DC,EAAzExjE,SAAS,eAAe,CAAC,YAAY,CAAC,QAAS,CAAC,uBAAuB,EAAE,AAA6B,OAA7BwjE,CAAAA,EAAAA,EAAW,CAACD,EAAO,SAAS,CAAC,AAAD,GAA5BC,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA+B,KAAK,CAAC,CAAC,CACjH,EACA,IAAKN,E,SAEJV,GAAY,GAAG,CAACjyE,AAAAA,GACf,WAAC2vC,GAAAA,EAAWA,CAAAA,C,SACV,YAAC,OACC,UAAWzwB,KAAG,2BAA4Blf,EAAK,gBAAgB,EAAI,CAAC,EAAEA,EAAK,gBAAgB,CAAC,CAAC,E,UAE5FA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,KAAK,AAAD,GACT,YAAC,MAAG,UAAU,iC,UACZ,WAAC,Q,SACE4yE,EAAoB5yE,EAAMkQ,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,IAAI,C,GAEvC,WAAC,U,SAAQnM,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE/D,EAAK,KAAK,C,MAGxBA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,KAAK,AAAD,GACT,WAAC,OAAI,UAAU,8B,SACb,WAAC,OAAI,IAAKA,EAAK,KAAK,CAAE,IAAKA,EAAK,IAAI,A,KAGvCA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,QAAQ,AAAD,GACZ,WAAC,OAAI,UAAU,iC,SACb,WAAC,OAAI,IAAKA,EAAK,QAAQ,CAAE,IAAK+D,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE/D,EAAK,IAAI,C,KAG3CA,AAAAA,CAAAA,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,kBAAkB,AAAD,GAAKA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,QAAQ,AAAD,CAAC,GAC1C,WDiDCkyE,GCjDQA,CACP,KAAMhiE,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,IAAI,CAChB,OAAQlQ,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,MAAM,CACpB,aAAcA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,YAAY,CAChC,cAAeA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,aAAa,CAClC,mBAAoBA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,kBAAkB,CAC5C,YAAaA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,YAAY,A,GAInC,WAAC,OAAI,UAAU,6BAA6B,cAAY,O,SACtD,WAACkzE,GAAIA,CAAAA,E,GAEP,WAAC,OAAI,UAAU,+BAA+B,cAAY,O,SACxD,WAACC,GAAMA,CAAAA,E,OArCKnzE,EAAK,GAAG,E,EA4ClC,E,czD3FA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAY,AAAG,GAAsB,eAAmB,CAAC,MAAO,GAAS,CAC7E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,4HACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAa,AAAG,GAAsB,eAAmB,CAAC,MAAO,GAAS,CAC9E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,6HACH,SAAU,SACZ,K,kBCVA,SAAS,KAAa,MAAO,IAAW+I,OAAO,MAAM,CAAGA,OAAO,MAAM,CAAC,IAAI,GAAK,SAAUwb,CAAC,EAAI,IAAK,IAAItqB,EAAI,EAAGA,EAAIuqB,UAAU,MAAM,CAAEvqB,IAAK,CAAE,IAAI8J,EAAIygB,SAAS,CAACvqB,EAAE,CAAE,IAAK,IAAIyF,KAAKqE,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAACA,EAAGrE,IAAO6kB,CAAAA,CAAC,CAAC7kB,EAAE,CAAGqE,CAAC,CAACrE,EAAE,AAAD,CAAI,CAAE,OAAO6kB,CAAG,GAAY,MAAM,KAAMC,UAAY,CA4CnR,OA1CgBrW,GAAsB,eAAmB,CAAC,MAAO,GAAS,CACxE,KAAM,OACN,MAAO,6BACP,QAAS,YACX,EAAGA,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,EAAG,gPACH,KAAM,SACR,EAAC,EAAI,GAAW,GAAsB,eAAmB,CAAC,OAAQ,CAChE,EAAG,gQACH,KAAM,SACR,EAAC,EAAI/T,GAAWA,CAAAA,EAAsB,eAAmB,CAAC,OAAQ,CAChE,EAAG,kPACH,KAAM,SACR,EAAC,EAAIC,GAAWA,CAAAA,EAAsB,eAAmB,CAAC,OAAQ,CAChE,EAAG,8JACH,KAAM,SACR,EAAC,EAAIC,GAAWA,CAAAA,EAAsB,eAAmB,CAAC,OAAQ,CAChE,EAAG,ieACH,KAAM,SACR,EAAC,EAAIC,GAAWA,CAAAA,EAAsB,eAAmB,CAAC,OAAQ,CAChE,EAAG,wdACH,KAAM,SACR,EAAC,EAAIC,GAAWA,CAAAA,EAAsB,eAAmB,CAAC,OAAQ,CAChE,EAAG,swBACH,KAAM,SACR,EAAC,EAAIC,GAAWA,CAAAA,EAAsB,eAAmB,CAAC,OAAQ,CAChE,SAAU,UACV,SAAU,UACV,EAAG,wlBACH,KAAM,SACR,EAAC,EAAIC,GAAWA,CAAAA,EAAsB,eAAmB,CAAC,OAAQ,CAChE,SAAU,UACV,SAAU,UACV,EAAG,imBACH,KAAM,SACR,EAAC,EAAIC,GAAYA,CAAAA,EAAuB,eAAmB,CAAC,OAAQ,CAClE,EAAG,2UACH,KAAM,SACR,EAAC,EAAIC,GAAYA,CAAAA,EAAuB,eAAmB,CAAC,OAAQ,CAClE,EAAG,ufACH,KAAM,SACR,EAAC,GwD5CM,IAAMw4E,GAAc,CAEzB,6BAA8B,CAAE,OAAQ,OAAQ,OAAQ,4BAA6B,EACrF,sBAAuB,CAAE,OAAQ,OAAQ,OAAQ,qBAAsB,EACvE,8BAA+B,CAAE,OAAQ,QAAS,OAAQ,6BAA8B,EACxF,+BAAgC,CAAE,OAAQ,QAAS,OAAQ,8BAA+B,EAE1F,wBAAyB,CAAE,OAAQ,QAAS,OAAQ,6BAA8B,EAClF,2BAA4B,CAAE,OAAQ,QAAS,OAAQ,gCAAiC,EACxF,0BAA2B,CAAE,OAAQ,QAAS,OAAQ,+BAAgC,EACtF,uBAAwB,CAAE,OAAQ,QAAS,OAAQ,4BAA6B,EAChF,4BAA6B,CAAE,OAAQ,QAAS,OAAQ,iCAAkC,EAE1F,mBAAoB,CAAE,OAAQ,OAAQ,OAAQ,cAAe,EAC7D,yBAA0B,CAAE,OAAQ,QAAS,OAAQ,yBAA0B,EAC/E,2BAA4B,CAAE,OAAQ,QAAS,OAAQ,2BAA4B,EACnF,WAAY,CAAE,OAAQ,QAAS,OAAQ,MAAO,EAC9C,gBAAiB,CAAE,OAAQ,SAAU,OAAQ,gBAAiB,CAChE,CAGUA,CAAAA,GAAY,uBAAuB,CAChCA,GAAY,0BAA0B,CACvCA,GAAY,yBAAyB,CACxCA,GAAY,sBAAsB,CAC7BA,GAAY,2BAA2B,C,0ECpBrD,IAAMC,GAAa,CACjB,MAAO,UACP,OAAQ,UACR,MAAO,SACT,EAQaC,GAAWxlD,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EACtB,CAAC,iGAAiG,CAAE,CAClG,SAAU,CACR,MAAO,CACL,KAAM,sCACN,MAAO,kBACT,EACA,KAAMulD,GACN,SAAU,CACR,KAAM,oBACR,EACA,QAAS,CAAC,EACV,MAAO,CAAC,CACV,EACA,iBAAkB,CAChB,CACE,MAAO,CAAC,OAAQ,QAAQ,CACxB,QAAS,GACT,SAAU,GACV,MAAO,GACP,UAAW,CACTtlD,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,IAAiC,CACjCA,GAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,KAA+B,CAChC,AACH,EAEA,CACE,MAAO,OACP,QAAS,GACT,SAAU,GACV,MAAO,GACP,UAAW,CACTwlD,GAAAA,CAAAA,CAAAA,UAAAA,CAAAA,IAAAA,CAAAA,IAA8B,CAC9BA,GAAAA,CAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,IAA4B,CAC5BxlD,GAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,KAAmC,CACpC,AACH,EACA,CACE,MAAO,CAAC,OAAQ,QAAQ,CACxB,QAAS,GACT,SAAU,GACV,UAAW,CACTA,GAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,EAAAA,CAAAA,IAA8B,CAC9BA,GAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,IAAkC,CAClCA,GAAAA,CAAAA,CAAAA,MAAAA,CAAAA,IAAAA,CAAAA,EAAAA,CAAAA,KAA4B,CAC5BA,GAAAA,CAAAA,CAAAA,MAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,KAAgC,CAChCA,GAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,EAAAA,CAAAA,KAA+B,CAChC,AACH,EACA,CACE,MAAO,OACP,QAAS,GACT,SAAU,GACV,UAAW,CAACwlD,GAAAA,CAAAA,CAAAA,UAAAA,CAAAA,KAAAA,CAAAA,IAA+B,CAAEA,GAAAA,CAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,IAA4B,CAAC,AAC5E,EACA,CACE,MAAO,OACP,QAAS,GACT,SAAU,GACV,UAAW,CAACA,GAAAA,CAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,IAAgC,CAAEA,GAAAA,CAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,IAA4B,CAAC,AAC7E,EACA,CACE,MAAO,OACP,QAAS,GACT,SAAU,GACV,MAAO,GACP,UAAW,CAAC,iDAAiD,AAC/D,EAEA,CACE,MAAO,QACP,QAAS,GACT,SAAU,GACV,MAAO,GACP,UAAW,CAACxlD,GAAAA,CAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,IAA0B,CAAEA,GAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,KAAmC,CAAEA,GAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,KAAmC,CAAE,WAAW,AAC/H,EACA,CACE,MAAO,QACP,QAAS,GACT,SAAU,GACV,UAAW,2BACb,EACA,CACE,MAAO,QACP,QAAS,GACT,SAAU,GACV,UAAW,gBACb,EACA,CACE,MAAO,QACP,QAAS,GACT,SAAU,GACV,MAAO,GACP,UAAW,CAAC,iDAAiD,AAC/D,EACD,AACH,GAGWylD,GAAe1lD,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAkB,gCAAiC,CAC7E,SAAU,CACR,KAAMulD,EACR,CACF,GAEaI,GAAc3lD,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAwB,2CAA4C,CAC7F,SAAU,CACR,KAAM,CACJ,MAAO,UACP,OAAQ,YACR,MAAO,SACT,EACA,MAAO,CAAC,EACR,SAAU,CAAC,CACb,EACA,iBAAkB,CAChB,CACE,MAAO,OACP,SAAU,GACV,UAAW,aACb,EACA,CACE,MAAO,OACP,SAAU,GACV,UAAW,UACb,EACA,CACE,MAAO,QACP,SAAU,CAAC,GAAO,GAAK,CACvB,UAAW,UACb,EACD,AACH,G,iBClIO,IAAM4lD,GAAwC,CACnD,KAAM9lD,GAAAA,EAAAA,CAAAA,IAAwB,CAC9B,MAAOA,GAAAA,EAAAA,CAAAA,KAAyB,AAClC,E,kBCXO,IAAM+lD,GAAQzxC,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAW,CAC9B/zB,EACAooB,KAEA,IAcItH,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAA2B9gB,EAAO,CAAC,QAAS,OAAQ,WAAW,EAd7D,CACJ6wB,YAAAA,CAAW,CACX40C,MAAAA,CAAK,CACLC,SAAAA,CAAQ,CACR5qD,MAAAA,CAAK,CACLnN,SAAAA,CAAQ,CACR8W,QAAAA,CAAO,CACPnE,KAAAA,CAAI,CACJzd,MAAAA,CAAK,CACL6U,UAAAA,CAAS,CACTnc,GAAAA,CAAE,CACFoqE,SAAAA,CAAQ,CACRxyE,MAAAA,CAAK,CAEN,CAAG2tB,EADC3vB,EAAAA,A,6XACD2vB,EAAAA,CAbF+P,cACA40C,QACAC,WACA5qD,QACAnN,WACA8W,UACAnE,OACAzd,QACA6U,YACAnc,KACAoqE,WACAxyE,Q,EAIIyyE,EAAWH,GAASA,EAAM,MAAM,CAAG,EACnCj/B,EAAiB3V,GAAeA,EAAY,MAAM,CAAG,EACrDg1C,EAAe90D,AAAAA,CAAAA,EAAAA,GAAAA,EAAAA,AAAAA,EAAG,AAAC60D,GAAap/B,EAA6B,KAAZ9uB,EAAkB2tD,GAAa,CAAE/kD,KAAAA,CAAK,IAEvFwlD,EACJ,YAAC,QAAK,UAAWD,E,UACf,WAAC,Q,6aAAA,CACC,KAAK,QACL,GAAItqE,EACJ,QAAS,CAAC,CAACkpB,EACX,MAAOtxB,EACP,UAAWgyE,GAAS,CAClB7kD,KAAAA,EACAxF,MAAAA,EACA,SAAU,CAAC,CAACnN,EACZ,QAAS,CAAC,CAAC8W,EACX,MAAO,CAAC,CAAC5hB,CACX,GACA,SAAU,CAAC,CAAC8K,EACZ,IAAKya,EACL,KAAMs9C,C,EACFv0E,IAEL,CAAC,CAACszB,GAAW,WAAC,QAAK,UAAW6gD,GAAY,CAAEhlD,KAAAA,EAAMxF,MAAAA,EAAO,SAAU,CAAC,CAACnN,CAAS,E,MAInF,OACGi4D,GAAYp/B,EACX,WAACu/B,GAAAA,CAAWA,CAAAA,CACV,GAAIxqE,EACJ,MAAOuqE,EACP,YAAaj1C,EACb,MAAO40C,EACP,UAAW/tD,EACX,KAAM4I,EACN,SAAU,CAAC,CAAC3S,EACZ,MAAOmN,EACP,SAAU6qD,C,GAEVG,CAER,EAEAN,CAAAA,GAAM,YAAY,CAAGD,GCvEd,IAAMS,GAAY,CAAC,CAAEtzD,MAAAA,CAAK,CAAEme,YAAAA,CAAW,CAAE,GAC9C,YAAC,OAAI,UAAU,mB,UACb,WAAC,MAAG,UAAU,iB,SAAkBj7B,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE8c,E,GAClC,WAAC,KAAE,UAAU,uB,SAAwB9c,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEi7B,E,KAI3Cm1C,CAAAA,GAAU,SAAS,CAAG,CACpB,MAAOz1D,GAAAA,MAAAA,CAAAA,UAAiB,CACxB,YAAaA,GAAAA,MAAAA,CAAAA,UAAiB,AAChC,E,kB3DbA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAkB,AAAG,GAAsB,eAAmB,CAAC,MAAO,GAAS,CACnF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,ocACH,SAAU,SACZ,KCVA,SAAS,KAAa,MAAO,IAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,GAAW,AAAG,GAAsB,eAAmB,CAAC,MAAO,GAAS,CAC5E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,8dACH,SAAU,SACZ,K,kB2DNO,IAAM01D,GAAsB,CCMN,KAC3B,GAAM,CACJ,MAAO,CAAEC,YAAAA,CAAW,CAAE,CAAE,IAAK,CAAE3C,eAAAA,CAAc,CAAEzwD,gBAAAA,CAAe,CAAE,CACjE,CAAG+wD,KAEEsC,EAAiB,CACrB,CACE,UAAWhwD,GAAM,YAAY,CAC7B,KAAMwrB,GAAAA,CAAcA,AACtB,EAAG,CACD,UAAWxrB,GAAM,OAAO,CACxB,KAAMiwD,EACR,EACA,CACE,UAAWjwD,GAAM,eAAe,CAChC,KAAMkwD,EACR,EACD,CAEKC,EAAmB/D,AAAAA,IACvBzvD,EAAgB,CAAE,OAAQ,SAAU,OAAQ,CAAC,UAAU,EAAEyvD,EAAU,CAAC,AAAC,GACrEgB,EAAe,CAAEhB,UAAAA,CAAU,EAC7B,EAEA,MACE,YAAC,W,UACC,WAACyD,GAASA,CAAC,MAAO7vD,GAAM,iBAAiB,CAAE,YAAaA,GAAM,6BAA6B,A,GAC3F,WAAC,OAAI,UAAU,W,SACb,WAAC,OAAI,UAAU,uB,SACZgwD,EAAe,GAAG,CAAC,CAAC,CAAE5D,UAAAA,CAAS,CAAE5tD,KAAAA,CAAI,CAAE,GACtC,WAACmV,GAAAA,CAAMA,CAAAA,CAEL,KAAK,QACL,QAAQ,UACR,UAAWnV,EACX,UAAW5D,KAAG,aAAc,CAC1B,SAAUm1D,EAAY,SAAS,GAAK3D,CACtC,GACA,WAAW,YACX,QAAS,IAAM+D,EAAiB/D,G,SAE/B3sE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE2sE,E,EAVEA,G,OAiBnB,EC/C4B,KAC1B,GAAM,CACJ,MAAO,CAAE2D,YAAAA,CAAW,CAAE56D,GAAAA,CAAE,CAAE,CAAE,IAAK,CAAEi4D,eAAAA,CAAc,CAAEG,oBAAAA,CAAmB,CAAE5wD,gBAAAA,CAAe,CAAE,CAC1F,CAAG+wD,KAEE0C,EAAuBC,AAAAA,IAC3B1zD,EAAgB,CAAE,OAAQ,SAAU,OAAQ,CAAC,SAAS,EAAE0zD,EAAiB,CAAC,AAAC,GAC3EjD,EAAe,CAAE,SAAUiD,CAAiB,EAC9C,EAEA,MACE,YAAC,W,UACC,WAACR,GAASA,CAAC,MAAO7vD,GAAM,uBAAuB,CAAE,YAAaA,GAAM,mCAAmC,A,GACvG,WAAC,OAAI,UAAU,W,SACb,WAAC,OAAI,UAAU,kB,SACb,WAAC,OAAI,UAAU,gB,SACX7K,AAAAA,CAAAA,EAAG,mBAAmB,CAAGo2D,GAAaA,GAAW,KAAK,CAAC,EAAG,EAAC,EAAG,GAAG,CAACrrE,AAAAA,GAClE,WAACmvE,GAAKA,CAEJ,GAAInvE,EACJ,MAAOT,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAES,GACT,MAAOA,EACP,KAAK,QACL,QAAS6vE,EAAY,QAAQ,GAAK7vE,EAClC,UAAW0a,KAAG,aAAc,CAC1B,SAAUm1D,EAAY,QAAQ,GAAK7vE,CACrC,GACA,SAAU,IAAMkwE,EAAqBlwE,E,EAThCA,G,OAgBd,AAACiV,EAAG,mBAAmB,CAQpB,KAPF,WAACwe,GAAAA,CAAMA,CAAAA,CACL,QAAQ,QACR,QAAStC,GAAAA,CAAaA,CACtB,QAASk8C,E,SAER9tE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAM,oBAAoB,C,KAKvC,EChDoC,KAClC,GAAM,CAACswD,EAAwBC,EAA0B,CAAG9tD,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,IAC/D,CACJ,MAAO,CAAEstD,YAAAA,CAAW,CAAE,CACtB,IAAK,CAAE3C,eAAAA,CAAc,CAAEzwD,gBAAAA,CAAe,CAAE,CACzC,CAAG+wD,KAEE8C,EAAqB,CACzBxwD,GAAM,YAAY,CAClBA,GAAM,WAAW,CACjBA,GAAM,WAAW,CACjBA,GAAM,WAAW,CAClB,CAEKywD,EAA6B96E,AAAAA,IACjC,GAAM,CAAE2W,KAAAA,CAAI,CAAEtP,MAAAA,CAAK,CAAE,CAAGrH,EAAE,MAAM,AAEnB,sBAAT2W,GACFqQ,EAAgB,CACd,OAAQ,SACR,OAAQ,CAAC,iBAAiB,EAAE3f,EAAM,CAAC,AACrC,GAGFowE,EAAe,CAAE,CAAC9gE,EAAK,CAAEtP,CAAM,EACjC,EAUA,MACE,YAAC,W,UACC,WAAC6yE,GAASA,CACR,MAAO7vD,GAAM,+BAA+B,CAC5C,YAAaA,GAAM,2CAA2C,A,GAEhE,YAAC,OAAI,UAAU,W,UACb,WAAC,SAAM,UAAU,Q,SAASvgB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAM,QAAQ,C,GAC1C,WAACwR,GAAAA,CAASA,CAAAA,CACR,GAAG,oBACH,UAAW5W,KAAG,gBAAiB,CAAC,GAChC,YAAanb,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAM,2CAA2C,EAChE,MAAO+vD,EAAY,gBAAgB,CACnC,SAAUU,EACV,KAAK,kB,MAIT,YAAC,OAAI,UAAU,W,UACb,WAAC,SAAM,UAAU,Q,SAAShxE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAM,oBAAoB,C,GACtD,WAACwR,GAAAA,CAASA,CAAAA,CACR,UAAW5W,KAAG,gBAAiB,CAAC,GAChC,YAAanb,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAM,gCAAgC,EACrD,MAAO+vD,EAAY,mBAAmB,CACtC,SAAUU,EACV,KAAK,sBACL,OAlCgB,KACjBxF,GAAe8E,EAAY,mBAAmB,EAGjDQ,EAA0B,IAF1BA,EAA0B9wE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAM,+BAA+B,EAIrE,C,GA8BOswD,EACC,WAAC,KAAE,UAAU,wE,SACVA,C,GAED,K,GAGN,YAAC,OAAI,UAAU,W,UACb,WAAC,SAAM,UAAU,Q,SAAS7wE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAM,oBAAoB,C,GACtD,WAAC,OAAI,UAAU,kB,SACb,WAAC,OAAI,UAAU,uB,SACZwwD,EAAmB,GAAG,CAACrmD,AAAAA,GACtB,WAACklD,GAAKA,CAEJ,KAAK,QACL,MAAO5vE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAE0qB,GACT,MAAOA,EACP,KAAK,mBACL,QAAS4lD,EAAY,gBAAgB,GAAK5lD,EAC1C,SAAUsmD,EACV,UAAW71D,KAAG,aAAc,CAC1B,SAAUm1D,EAAY,gBAAgB,GAAK5lD,CAC7C,E,EATKA,G,UAiBrB,EC9F2B,KACzB,GAAM,CACJ,MAAO,CAAE4lD,YAAAA,CAAW,CAAE,CAAE,IAAK,CAAE3C,eAAAA,CAAc,CAAEzwD,gBAAAA,CAAe,CAAE,CACjE,CAAG+wD,KAEEgD,EAAY,CAChB1wD,GAAM,aAAa,CACnBA,GAAM,WAAW,CACjBA,GAAM,oBAAoB,CAC1BA,GAAM,iBAAiB,CACvBA,GAAM,kBAAkB,CACxBA,GAAM,cAAc,CACpBA,GAAM,SAAS,CACfA,GAAM,KAAK,CACZ,CAEK2wD,EAAoB,CACxB3wD,GAAM,sBAAsB,CAC5BA,GAAM,SAAS,CACfA,GAAM,OAAO,CACbA,GAAM,QAAQ,CACdA,GAAM,WAAW,CAClB,CAEK4wD,EAAwBj7E,AAAAA,IAC5B,GAAM,CAAE2W,KAAAA,CAAI,CAAEtP,MAAAA,CAAK,CAAE,CAAGrH,EAAE,MAAM,CAEhCgnB,EAAgB,CAAE,OAAQ,SAAU,OAAQ,CAAC,EAAErQ,EAAK,CAAC,EAAEtP,EAAM,CAAC,AAAC,GAC/DowE,EAAe,CAAE,CAAC9gE,EAAK,CAAEtP,CAAM,EACjC,EAEA,MACE,YAAC,W,UACC,WAAC6yE,GAASA,CAAC,MAAO7vD,GAAM,uBAAuB,CAAE,YAAaA,GAAM,mCAAmC,A,GACvG,YAAC,OAAI,UAAU,W,UACb,WAAC,SAAM,UAAU,Q,SAASvgB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAM,QAAQ,C,GAC1C,WAAC,OAAI,UAAU,kB,SACb,WAAC,OAAI,UAAU,gB,SACZ0wD,EAAU,GAAG,CAAC9gD,AAAAA,GACb,WAACy/C,GAAKA,CAEJ,KAAK,QACL,KAAK,UACL,MAAO5vE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEmwB,GACT,MAAOA,EACP,QAASmgD,EAAY,OAAO,GAAKngD,EACjC,UAAWhV,KAAG,aAAc,CAC1B,SAAUm1D,EAAY,OAAO,GAAKngD,CACpC,GACA,SAAUghD,C,EATLhhD,G,QAgBf,YAAC,OAAI,UAAU,W,UACb,WAAC,SAAM,UAAU,Q,SAASnwB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAM,gBAAgB,C,GAClD,WAAC,OAAI,UAAU,kB,SACb,WAAC,OAAI,UAAU,gB,SACZ2wD,EAAkB,GAAG,CAACjE,AAAAA,GACrB,WAAC2C,GAAKA,CAEJ,KAAK,QACL,KAAK,kBACL,MAAO5vE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEitE,GACT,MAAOA,EACP,QAASqD,EAAY,eAAe,GAAKrD,EACzC,UAAW9xD,KAAG,aAAc,CAC1B,SAAUm1D,EAAY,eAAe,GAAKrD,CAC5C,GACA,SAAUkE,C,EATLlE,G,UAkBrB,EJnFmG,CK8GnG,OAtGiB,KACf,GAAM,CACJ,MAAO,CAAER,YAAAA,CAAW,CAAE,GAAI,CAAE1tB,UAAAA,CAAS,CAAE,CAAE,CAAE,IAAK,CAC9CwuB,gBAAAA,CAAe,CAAEG,gBAAAA,CAAe,CAAEK,uBAAAA,CAAsB,CAAEH,mBAAAA,CAAkB,CAAER,gBAAAA,CAAe,CAAElwD,gBAAAA,CAAe,CAC/G,CACF,CAAG+wD,KACE,CAAEmD,WAAAA,CAAU,CAAE,CAAG/B,GAyBjBgC,EAAchB,EAAmB,CAAC5D,EAAY,CAC9C6E,EAAgB51E,MAAM,IAAI,CAAC,CAAE,OAAQ,CAAE,EAAG,CAAC61E,EAAGhwE,IAAMA,GAAG,GAAG,CAAC,CAACmuB,EAAKnuB,IACrE,WAAC,M,SAGC,WAAC,UACC,KAAK,SACL,QAAS,IAAMwsE,EAAuBxsE,GACtC,UAAWkrE,GAAelrE,EAAI,SAAW,E,IALtCmuB,IAUT,MACE,YAAC,OAAI,UAAU,oB,UACb,YAAC,OAAI,UAAU,2B,UACb,WAAC,KACC,KAAK,IACL,UAAU,4BACV,QA1CgBx5B,AAAAA,IACtBA,EAAE,cAAc,GAChBgnB,EAAgBk0D,EAClB,E,SAyCQ,WAACI,GAAWA,CAAAA,E,GAEd,WAAC,MAAG,UAAU,uB,SACXF,C,MAIL,YAAC,OAAI,UAAU,qB,UACZ7E,EAAc,EACb,WAACv4C,GAAAA,CAAMA,CAAAA,CACL,QAAQ,QACR,UAAWu9C,GACX,QAAS/D,EACT,UAAU,e,SAET1tE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAM,IAAI,C,GAEb,KACJ,WAAC8wD,EAAAA,CAAAA,G,GAGH,YAAC,OAAI,UAAU,yB,UACZjE,IAEG,WAACl5C,GAAAA,CAAMA,CAAAA,CACL,UAAU,8BACV,QAAQ,UACR,WAAW,YACX,QApEY,KACtBhX,EAAgB,CAAE,OAAQ,QAAS,OAAQ,YAAa,GACxDqwD,GACF,EAkEY,SAAU,CAACK,I,SAET5tE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAM,IAAI,C,GAEd,KAEN,WAAC2T,GAAAA,CAAMA,CAAAA,CACL,UAAU,8BACV,QAAQ,SACR,WAAW,UACX,QAAS,AAAC6qB,EAA6B7iD,KAAAA,EAAjBw1E,GACtB,QAASnE,EACT,SAAU,CAACK,I,SA3EjB,AAAI7uB,EAEA,WAAC1I,GAAAA,CAAOA,CAAAA,CACN,YAAY,OACZ,YAAY,IACZ,KAAK,M,GAKJo2B,EAAc4D,GAAoB,MAAM,CAAG,EAAIrwE,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAM,IAAI,EAAIvgB,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAEugB,GAAM,MAAM,C,QAwExF,EC7FA,GAdqBnW,AAAAA,IACnBsB,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAG1B,WfoMW0gE,GepMUA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKhiE,GAAAA,C,SACxB,YAAC,OAAI,UAAU,W,UACb,WAACunE,GAAQA,CAAAA,GACT,WAACC,GAASA,CAAAA,G,OCGlB,GATgC,CAAC,EAA8C,CAAC,CAAC,I,GAAhD,CAAE5kB,SAAAA,EtBPD,kBsBO8B,CAAY,CAAG,EAAV5iD,EAAAA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAAlC4iD,W,EACjC,IAAM0J,EAASD,GAAezJ,GAG9BhJ,AAFaC,AAAAA,CAAAA,EAAAA,GAAAA,UAAAA,AAAAA,EAAWyS,GAEnB,MAAM,CACT,WAACmb,GAAYA,AAAAA,CAAAA,EAAAA,GAAAA,CAAAA,AAAAA,EAAAA,CAAAA,EAAKznE,IAEtB,ECZO,IAAM0nE,GAA2B3lE,AAAAA,IACtC,GAAM,CAAEkgE,eAAAA,CAAc,CAAE,CAAGlgE,EACtBkgE,GAEL0F,GAAiB,CAAE5lE,KAAAA,EAAMkgE,eAAAA,CAAe,EAC1C,ECwBA,OAzBgClgE,AAAAA,IAC9BwR,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACHxR,IAEL2lE,GAAyB3lE,GACzBy4D,GAA2Bz4D,GAC3Bo5D,GAA4Bp5D,GAC5Bg7D,KAEAW,GAAkB37D,GAClB88D,GAAsB98D,GACtBi/D,GAA0Bj/D,GAC5B,EAAG,CAACA,EAAK,EAETwR,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACP,WACC,GAAI,CACF,MAAMq0D,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,GACR,CAAE,MAAO/kE,EAAO,CACd5C,QAAQ,GAAG,CAAC,CAAC,8BAA8B,EAAE4C,EAAM,CAAC,CACtD,CACF,IACF,EAAG,EAAE,CACP,ECHA,GAxBiC,KAC/B,IAAM+/C,EAAW,iCACX,CAACilB,EAAUC,EAAY,CAAGlvD,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,IAEzCrF,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,IAAMw0D,EAAY1zB,AAAAA,I,IAA8B2zB,E,OAAxB3zB,MAAAA,EAAAA,KAAAA,EAAAA,EAAI,YAAY,CAAC,MAAO2zB,MAAAA,EAAAA,KAAAA,EAAAA,AAAW,OAAXA,CAAAA,EAAAA,EAAI,OAAO,AAAD,GAAVA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAa,GAAG,C,EAC1DC,EAAa,IAAM3mE,SAAS,gBAAgB,CAACshD,GAAU,OAAO,CAACmlB,GAE/DG,EAAiB,MACjBL,IACJC,EAAY,IACZG,IACF,EAKA,OAHA3mE,SAAS,gBAAgB,CAAC,YAAa4mE,GACvC5mE,SAAS,gBAAgB,CAAC,aAAc4mE,GAEjC,KACL5mE,SAAS,mBAAmB,CAAC,YAAa4mE,GAC1C5mE,SAAS,mBAAmB,CAAC,aAAc4mE,EAC7C,CACF,EAAG,CAACL,EAAUjlB,EAAS,CACzB,C,2lBCxBO,IAAMulB,EAAY,IAAM7mE,SAAS,aAAa,CAAC,QAGzC+qB,EAAiC+7C,AAAAA,IAExCA,IACF9mE,SAAS,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,WAF5B8mE,EAAW,SAAW,QAGrC9mE,SAAS,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,SAAU,QACrDA,SAAS,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,QAAS,QAExD,EAea+mE,EAAsB,CAACvwE,EAAK4L,EAAU4kE,KACjD,IAAMC,EAASjnE,SAAS,aAAa,CAAC,SACtCinE,CAAAA,EAAO,IAAI,CAAG,kBACV7kE,GAAU6kE,CAAAA,EAAO,MAAM,CAAG7kE,CAAO,EACjC4kE,GAAMC,EAAO,YAAY,CAACD,EAAMA,GACpCC,EAAO,GAAG,CAAGzwE,EACbwJ,SAAS,IAAI,CAAC,WAAW,CAACinE,GAC1BtoE,QAAQ,GAAG,CAAC,aAAcnI,EAC5B,EAEa0wE,EAAoB,CAAC1wE,EAAKwwE,KACrC,IAAM3pD,EAAOrd,SAAS,aAAa,CAAC,OACpCqd,CAAAA,EAAK,GAAG,CAAG,aACXA,EAAK,IAAI,CAAG7mB,EACRwwE,GAAM3pD,EAAK,YAAY,CAAC2pD,EAAMA,GAClChnE,SAAS,IAAI,CAAC,WAAW,CAACqd,GAC1B1e,QAAQ,GAAG,CAAC,cAAenI,EAC7B,EAeau/D,EAAoB,IA6BxB,EACLF,WAfiB,KACjB,IAAM8I,EAAS9gD,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CACpCspD,EAAStpD,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,QAEhD8gD,GACFA,CAAAA,EAAO,KAAK,CAAC,QAAQ,CAAG,QAAO,EAG7BwI,IACFA,EAAO,KAAK,CAAC,QAAQ,CAAG,SACxBA,EAAO,KAAK,CAAC,gBAAgB,CAAG,OAEpC,EAIErR,aA9BmB,KACnB,IAAM6I,EAAS9gD,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CACpCspD,EAAStpD,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,QAEhD8gD,GACFA,CAAAA,EAAO,KAAK,CAAC,QAAQ,CAAG,EAAC,EAGvBwI,IACFA,EAAO,KAAK,CAAC,QAAQ,CAAG,GACxBA,EAAO,KAAK,CAAC,gBAAgB,CAAG,GAEpC,CAmBA,GAGW5K,EAAc,CAAC6K,EAAeC,KACzCD,MAAAA,GAAAA,EAAe,UAAU,CAAC,YAAY,CAACC,EAASD,EAAc,WAAW,CAC3E,E,2CCxFA,IAAMp2E,EAAe,IAAId,EAAAA,CAAYA,CAAC,OAAQ,CAC5C,kBAAmB,CACjB,2BAA4B,CAACC,EAAAA,CAAAA,CAAAA,gCAA6C,CAAC,CAC3E,YAAa,GACb,gBAAiB,CACf,YAAa,QACf,CACF,CACF,GAoBMm3E,EAAwB,KAC5B,IAAIC,EAAkB,qCAEhB,CAAEruD,SAAAA,CAAQ,CAAE,CAAG2E,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,CACrC2pD,EAAYtuD,EAAS,QAAQ,CAAC,aAEpC,GAAIpG,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,IACF,OAAOy0D,EAGT,GAAIC,EAAW,CACb,IAAM1/D,EAAU+V,EAAAA,CAAMA,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAIA,EAAAA,CAAMA,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CACxF0pD,GAAmB,CAAC,SAAS,EAAEz/D,EAAQ,CAAC,AAC1C,CAEA,OAAOy/D,CACT,EAEatQ,EAAY,SAAYjmE,EAAa,GAAG,CAACs2E,KAEzCG,EAAoB,UAC/B,GAAM,CAAEC,mBAAAA,EAAqB,CAAC,CAAC,CAAE,CAAG12E,EAAa,GAAG,CAAC,wCACrD,OAAOhB,MAAM,OAAO,CAAC03E,GAAsBA,CAAkB,CAAC,EAAE,EAAI,CAAC,EAAIA,GAAsB,CAAC,CAClG,EAEaC,EAAoB,MAAMhzE,GAAO3D,EAAa,GAAG,CAAC,CAAC,iBAAiB,EAAE2D,EAAI,CAAC,EAO3EylE,EAAmB,MAAMzlE,IACpC,GAAM,CAAEy5B,QAAAA,CAAO,CAAE,CAAG,MAAMu5C,EAAkBhzE,GAC5C,MAAOy5B,AAAY,KAAZA,CACT,EAEak4C,EAAqB,SAAYt1E,EAAa,GAAG,CAAC,gBCvElDspE,EAAgC,KAC3C,IAAMsN,EAAc,IAAI1yE,KAClBmtB,EAASulD,AAAkC,IAAlCA,EAAY,iBAAiB,GAE5C,OAAOC,AAD0B,IAAI3yE,KAAK0yE,EAAcvlD,GACxB,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,AAC7D,ECLMylD,EAAO,KACX,IAAMC,EAAKlqD,EAAAA,CAAMA,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CACtCmqD,EAAOD,EAAG,OAAO,CAAC,SAClBE,EAAUF,EAAG,OAAO,CAAC,YACrBG,EAAOH,EAAG,OAAO,CAAC,SAExB,OAAOC,EAAO,IAAMC,EAAU,IAAMC,EAAO,EAC7C,EAEMC,EAAY,IAAMtqD,EAAAA,CAAMA,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,WAEtDuqD,EAAW,KAEtB,IAAMC,EAAcN,AADTlqD,EAAAA,CAAMA,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CACrB,MAAM,CAAC,aAC9B,OAAOwqD,EAAc,EAAIA,EAAY,QAAQ,GAAK,EACpD,EAEav9C,EAAuB,KAClC,IAAMq8C,EAASnnE,SAAS,aAAa,CAAC,QAChCsoE,EAAWtoE,SAAS,aAAa,CAAC,aAClCuoE,EAAc,CAAC,kBAAkB,EAAET,IAAO,CAAC,CAC3CU,EAAkB,CAAC,sBAAsB,EAAEJ,IAAW,CAAC,CAEzDN,MACFX,EAAO,SAAS,CAAC,GAAG,CAAC,qBACrBA,EAAO,SAAS,CAAC,GAAG,CAACoB,IAGnBH,MACFjB,EAAO,SAAS,CAAC,GAAG,CAAC,yBACrBA,EAAO,SAAS,CAAC,GAAG,CAACqB,IAGnBL,KACFG,CAAAA,MAAAA,GAAAA,EAAU,SAAS,CAAC,GAAG,CAAC,UAAS,CAErC,ECpCMG,EAAgB,K,IAAMC,E,MAAAA,AAAAA,CAAAA,AAAwB,OAAxBA,CAAAA,EAAAA,EAAAA,CAAMA,CAAC,MAAM,CAAC,UAAU,AAAD,GAAvBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0B,WAAW,AAAD,GAAK7qD,EAAAA,CAAMA,CAAC,MAAM,CAAC,WAAW,A,EACjFsO,EAAqB1rB,AAAAA,I,IAAQo5C,EAA4B8uB,E,MAA5B9uB,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAkB,OAAlBA,CAAAA,EAAAA,EAAM,YAAY,AAAD,GAAjBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoB,IAAI,AAAD,GAAK8uB,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAiB,OAAjBA,CAAAA,EAAAA,EAAM,WAAW,AAAD,GAAhBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmB,IAAI,AAAD,GAAKloE,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,YAAY,AAAD,GAAKA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,WAAW,AAAD,C,EAE1HwB,EAAUxB,AAAAA,GAAQ0rB,AAA6B,UAA7BA,EAAmB1rB,GACrCmoE,EAAUnoE,AAAAA,GAAQ0rB,AAA6B,UAA7BA,EAAmB1rB,GACrCooE,EAAYpoE,AAAAA,GAAQ0rB,AAA6B,YAA7BA,EAAmB1rB,GAIvCqS,EAAe,IAAM21D,AAAoB,eAApBA,IACrBK,EAAe,IAAML,AAAoB,eAApBA,IACrBvoB,EAAgB,IAAMuoB,AAAoB,gBAApBA,IAGtBt9C,EAA0B1qB,AAAAA,IAChCA,GACDod,EAAAA,CAAMA,CAAC,MAAM,CAAC,cAAc,EAAI,AAA8C,YAA9C,OAAOA,EAAAA,CAAMA,CAAC,MAAM,CAAC,oBAAoB,EAC3EA,EAAAA,CAAMA,CAAC,MAAM,CAAC,oBAAoB,CAACpd,EAEvC,EAGa2qB,EAA4C,CAAC3qB,EAAMg2D,KAC9D,IAAI,CAACA,EAELC,AADYj2D,EACR,QAAQ,CAAGA,EAAK,KAAK,CACzBi2D,AAFYj2D,EAER,KAAK,CAAG,CAAC,EACbi2D,AAHYj2D,EAGR,YAAY,CAAG,CAAE,OAAQ,CAAC,EAAG,KAAM,WAAY,CACrD,EAEayrB,EAA2BzrB,AAAAA,IAGtC,GADiB,AAAmE,MAAnE,IAAIu7C,gBAAgBn+B,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,QAC1D,MAAO,GACrB,GAAkB/K,IAAgB,MAAO,GACzC,GAAI81D,EAAQnoE,IAASooE,EAAUpoE,GAAO,MAAO,GAC7C,IAAMsoE,EAA0BtoE,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,qBAAqB,AAAD,IAAM,QAC1DuoE,EAAqBvoE,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,gBAAgB,AAAD,IAAM,QAChDwoE,EAAoBxoE,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,eAAe,AAAD,IAAM,IACpD,OAAOsoE,GAA2BC,GAAsBC,CAC1D,E,4BCxCO,IAAMC,EAA4B,IACvC,EAAIrrD,EAAAA,CAAMA,CAAC,MAAM,CAAC,wBAAwB,GACxCA,EAAAA,CAAMA,CAAC,MAAM,CAAC,qBAAqB,GAC5B,IAKEsrD,EAA2B,IACtC,EAAItrD,EAAAA,CAAMA,CAAC,MAAM,CAAC,uBAAuB,GACvCA,EAAAA,CAAMA,CAAC,MAAM,CAAC,oBAAoB,GAC3B,ICXEurD,EAAoC,CAAC,CAAE33D,OAAAA,CAAM,CAAE,CAAE43D,KAC5D,IAAMC,EAA0B,CAC9B,CAAE,SAAU,eAAgB,KAAM,IAAK,EACvC,CAAE,SAAU,WAAY,KAAM,OAAQ,EACtC,CAAE,SAAU,uBAAwB,KAAM,OAAQ,EAClD,CAAE,SAAU,uBAAwB,KAAM,OAAQ,EAClD,CAAE,SAAU,mCAAoC,KAAM,OAAQ,EAC9D,CAAE,SAAU,YAAa,KAAM,OAAQ,EACxC,CACE,GAAG,CAAC,CAAC,CAAEpvE,KAAAA,CAAI,CAAEonD,SAAAA,CAAQ,CAAE,GAAM,EAC5BpnD,KAAAA,EACAonD,SAAAA,EACA,SAAUtxD,MAAM,IAAI,CAACgQ,SAAS,gBAAgB,CAAC,CAAC,EAAE9F,AAAS,OAATA,EAAgB,IAAM,IAAI,EAAEonD,EAAS,CAAC,EAC1F,IACC,MAAM,CAAC,CAAC,CAAE9+B,SAAAA,CAAQ,CAAE,GAAKA,EAAS,MAAM,CAAG,GAExC+mD,EAAkB,CAAC/mD,EAAU8+B,EAAUpnD,KAC3C,GAAM,CAAED,GAAAA,CAAE,CAAEuvE,UAAAA,CAAS,CAAE,CAAG/3D,EAC1B,OAAO+Q,EAAS,IAAI,CAACinD,AAAAA,GAAaA,IAAch4D,GAC3Cg4D,EAAU,QAAQ,CAACh4D,IAClBvX,CAAAA,AAAS,OAATA,EAAgBD,IAAOqnD,EAAWkoB,MAAAA,EAAAA,KAAAA,EAAAA,EAAW,QAAQ,CAACloB,EAAQ,EACtE,EAMAp1C,WAAWm9D,EAAcK,AAJGJ,EAAwB,IAAI,CAAC,CAAC,CAAE9mD,SAAAA,CAAQ,CAAE8+B,SAAAA,CAAQ,CAAEpnD,KAAAA,CAAI,CAAE,GAC7EqvE,EAAgB/mD,EAAU8+B,EAAUpnD,IAGE,IAAO,EACxD,CC+BA2jB,CAAAA,EAAAA,CAAMA,CAAC,MAAM,CAAC,SAAS,CAxDE,CAACjtB,EAAQ+4E,EAAY,EAAK,IACjD,GAAI,CAAC35E,MAAM,OAAO,CAACY,GAAS,CAC1B+N,QAAQ,KAAK,CAAC,+DACd,MACF,CAEA,IAAMirE,EAAiB,CACrB,KAAM,GACN,IAAK,GACL,SAAU,GACV,GAAI,GACJ,KAAM,GACN,MAAO,EACT,EAEAh5E,EAAO,OAAO,CAAC,CAAC2rD,EAAOnlD,KACrB,IAAMk0C,EAAU,WAAKs+B,EAAmBrtB,GAExC,GAAI,CAACjR,EAAQ,GAAG,CAAE,CAChB3sC,QAAQ,KAAK,CAAC,8BACd,MACF,CAEA,IAAMkrE,EAAa,CAAC,EAAEv+B,EAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAEA,EAAQ,KAAK,CAAGl0C,EAAQ,GAAG,CAAC,CAEzF0yE,EAAgB,MAChB9pE,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC6pE,KACrC7pE,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC6pE,GAEP,OAAjBv+B,EAAQ,IAAI,EAAWy7B,EAAoBz7B,EAAQ,GAAG,CAAEA,EAAQ,QAAQ,CAAEA,EAAQ,IAAI,EACrE,QAAjBA,EAAQ,IAAI,EAAY47B,EAAkB57B,EAAQ,GAAG,CAAEA,EAAQ,IAAI,EACzE,EAEA,GAAIA,EAAQ,EAAE,CAAE,CACd,IAAMpmB,EAAUllB,SAAS,aAAa,CAACsrC,EAAQ,EAAE,EACjD,GAAI,CAACpmB,EAAS,OAEd,IAAM0yC,EAAchoE,AAAAA,KACdoQ,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC6pE,IACrCT,EAAkCx5E,EAAOk6E,EAC3C,EAEI,kBAAkBjsD,EAAAA,CAAMA,CAAC,MAAM,EAAIA,EAAAA,CAAMA,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAG,GAAKA,EAAAA,CAAMA,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAG,IAC9HqH,EAAQ,gBAAgB,CAAC,aAAc0yC,GAEzC1yC,EAAQ,gBAAgB,CAAC,YAAa0yC,GACtC/5C,EAAAA,CAAMA,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAUisD,GAErCH,GAAWG,IACf,MACF,CAEAA,GACF,EACF,EAGAjsD,EAAAA,CAAMA,CAAC,MAAM,CAAC,aAAa,CAAC,IAAIA,EAAAA,CAAMA,CAAC,MAAM,CAAC,WAAW,CAAC,yBC5DnD,IAAMksD,EAA6B,CAAC9vE,EAAI+vE,EAAKC,KAClD,GAAIjqE,SAAS,cAAc,CAAC/F,GAE1B,OADAgwE,IACO,GAGT,IAAMC,EAAKlqE,SAAS,aAAa,CAAC,SAElCkqE,CAAAA,EAAG,EAAE,CAAGjwE,EACRiwE,EAAG,MAAM,CAAGD,EACZC,EAAG,GAAG,CAAGF,EACT,IAAMG,EAAMnqE,SAAS,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAClDmqE,EACFA,EAAI,UAAU,CAAC,YAAY,CAACD,EAAIC,GAEhCnqE,SAAS,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAACkqE,EAEzD,ECdaE,EAAgB,MAAMC,GACjC,AAAIxsD,EAAAA,CAAMA,CAAC,MAAM,CAAC,eAAe,EAC3BwsD,GAAQA,EAAOxsD,EAAAA,CAAMA,CAAC,MAAM,CAAC,eAAe,EACzC/sB,QAAQ,OAAO,CAAC+sB,EAAAA,CAAMA,CAAC,MAAM,CAAC,eAAe,GAG/C,qFACJ,IAAI,CAACvzB,AAAAA,IACJ,IAAMggF,EAAkB,IAAIhgF,EAAO,eAAe,CAElD,OADAuzB,EAAAA,CAAMA,CAAC,MAAM,CAAC,eAAe,CAAGysD,EACzBA,CACT,GACC,IAAI,CAACA,AAAAA,IACAD,GAAQA,EAAOC,GACZA,IAIPC,EAA2BC,AAAAA,IAC/B,OAAQA,GACN,IAAK,WACH,MAAO,CAAE,GAAI,iBAAkB,IAAK,2CAA4C,CAClF,KAAK,SACH,MAAO,CAAE,GAAI,mBAAoB,IAAK,wCAAyC,CACjF,KAAK,YACH,MAAO,CAAE,GAAI,kBAAmB,IAAK,+CAAgD,CACvF,SACE,MAAM,AAAIz5B,MAAM,CAAC,sBAAsB,EAAEy5B,EAAY,CAAC,CAC1D,CACF,EAEaC,EAAwBD,AAAAA,GAC5B,IAAI15E,QAAQ,CAAC8pD,EAASC,KAC3B,GAAI,CACF,IAAM8jB,EAAS3+D,SAAS,aAAa,CAAC,QAEtC,GAAI2+D,EAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE6L,EAAY,EAAE,CAAC,EACvD,OAAO5vB,IAGT,GAAM,CAAE3gD,GAAAA,CAAE,CAAE+vE,IAAAA,CAAG,CAAE,CAAGO,EAAyBC,GAE7CT,EAA2B9vE,EAAI+vE,EAAK,KAClCrL,EAAO,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE6L,EAAY,EAAE,CAAC,EAChD5vB,GACF,EACF,CAAE,MAAOhvC,EAAK,CACZivC,EAAOjvC,EACT,CACF,GAGW8+D,EAAe,IACnB7D,IAAY,SAAS,CAAC,QAAQ,CAAC,qBAAuB/1E,QAAQ,OAAO,GAAK25E,EAAsB,UAG5FE,EAAiB,IACrB9D,IAAY,SAAS,CAAC,QAAQ,CAAC,uBAAyB/1E,QAAQ,OAAO,GAAK25E,EAAsB,YAG9FG,EAAkB,IACtB/D,IAAY,SAAS,CAAC,QAAQ,CAAC,wBAA0B/1E,QAAQ,OAAO,GAAK25E,EAAsB,YC9DrG,OAAMxuB,EAeX,YAAa,CACX,OAAO,IAAInrD,QAAQ,CAAC8pD,EAASC,KAC3B,GAAI76C,SAAS,aAAa,CAAC,2BAA4B,OAEvD,IAAM6qE,EAAShtD,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,QAC9C2/B,EAAW3/B,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,UACtD2/B,EAAS,YAAY,CAAC,KAAM,0BAC5BA,EAAS,GAAG,CAAG,oCACfA,EAAS,MAAM,CAAG5C,EAClB4C,EAAS,OAAO,CAAG3C,EACnBgwB,EAAO,WAAW,CAACrtB,EACrB,EACF,CAEA,qBAAsB,CACpB,GAAM,CAAErB,eAAAA,CAAc,CAAE,CAAGt+B,EAAAA,CAAMA,AACH,aAA1B,OAAOs+B,GACX,KAAI,CAAC,cAAc,CAAGA,EAAe,IAAI,CAAC,WAAW,EACvD,CAEA,sBAAsB,CAAEntD,OAAAA,CAAM,CAAEyiB,OAAAA,CAAM,CAAE,CAAG,CAAC,CAAC,CAAE,CAK7C,GAJI,CAAC,IAAI,CAAC,cAAc,EACtB,IAAI,CAAC,mBAAmB,GAGtB,IAAI,CAAC,SAAS,EAAI,IAAI,CAAC,UAAU,CAAC,CAAC,EAAEziB,EAAO,EAAEyiB,EAAO,CAAC,CAAC,CACzD,OAGF,GAAM,CAAE,SAAU2qC,EAAQ,IAAI,CAAE,CAAG,IAAI,CAAC,IAAI,AAEvC,KAAI,CAAC,cAAc,EAAKA,IAEzB8D,KACFvhD,QAAQ,GAAG,CAAC,CAAE3P,OAAAA,EAAQyiB,OAAAA,CAAO,GAG/B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAE2qC,MAAAA,EAAOptD,OAAAA,EAAQyiB,OAAAA,CAAO,GAE7C,IAAI,CAAC,SAAS,EAChB,KAAI,CAAC,UAAU,CAAC,CAAC,EAAEziB,EAAO,EAAEyiB,EAAO,CAAC,CAAC,CAAG,EAAG,EAE/C,CAxDA,YAAY,CACVhR,KAAAA,CAAI,CACJg8C,YAAAA,CAAW,CACXJ,UAAAA,CAAS,CACV,CAAE,CACD,IAAI,CAAC,IAAI,CAAG57C,GAAQ,CAAC,EACrB,IAAI,CAAC,WAAW,CAAGg8C,EACnB,IAAI,CAAC,SAAS,CAAGJ,GAAa,GAC9B,IAAI,CAAC,cAAc,CAAG,KACtB,IAAI,CAAC,qBAAqB,CAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EACjE,IAAI,CAAC,UAAU,CAAG,CAAC,EACnB,IAAI,CAAC,UAAU,EACjB,CA6CF,CAEA,MAAeJ,E,aCzDR,IAAM6uB,EAAgB,MAAO,CAClC1xD,KAAAA,CAAI,CACJ2xD,SAAAA,CAAQ,CACRC,gBAAAA,CAAe,CACfC,oBAAAA,CAAmB,CACnBC,gBAAAA,EAAkB,CAAC,CAAC,CACrB,QACKC,EACAC,EAEJ,IAAMC,EAAiB,IAAIpvB,EAAc,CAAE,KAAMp+B,EAAAA,CAAMA,CAAC,MAAM,CAAC,IAAI,CAAE,YAAa83C,EAAAA,EAA+BA,AAAC,GAAG,qBAAqB,CAEpI2V,EAAiB,SACrB,KAAM,QACNL,oBAAAA,EACAD,gBAAAA,EACA,KAAMntD,EAAAA,CAAMA,CAAC,MAAM,CAAC,IAAI,CACxB,wBAAyB,GACzB,eAAgB,GAChB,UAAW,GACX,iBAAkB,GAClB,mBAAoB,GACpB,QAAS,WACT,sBAAuB,GACvB,UAAW,GACX,YAAa,CAACpd,EAAM,CAAE8qE,QAAAA,CAAO,CAAE,IAE7BF,EADeE,EAAU,SAAW,QACbR,MAAAA,EAAAA,EAAYI,GAC5BI,EAAUrC,IAA8BC,KAEjD,mBAAoBqC,AAAAA,IACd,EAACJ,GAAa,CAAC,gBAAiB,eAAgB,kBAAkB,CAAC,QAAQ,CAACA,EAAS,IACnFI,AAAc,kBAAdA,GACFL,EAAS,0BACTE,EAAe,OAAQN,MAAAA,EAAAA,EAAYI,IACZ,iBAAdK,IACTL,EAAS,0BACTE,EAAe,OAAQN,MAAAA,EAAAA,EAAYI,KAIrB,oBAAdK,IACFL,EAAS,kBACTE,EAAe,OAAQN,MAAAA,EAAAA,EAAYI,IAGrCC,EAAYI,CACd,EACA,mBAAoB,IAAMH,EAAe,OAAQ,UACjD,eAAgB,IAAMA,EAAe,OAAQ,YAC7C,kBAAmB,IAAMA,EAAe,OAAQ,Q,EAC7CH,GAGCO,EAAiBvxE,AAAAA,GAAS,EAC9B,UAAW,CAAC,gBAAgB,EAAEA,EAAK,SAAS,CAAC,CAC7C,OAAQ,CAAC,aAAa,EAAEA,EAAK,SAAS,CAAC,CACvC,SAAU,CAAC,eAAe,EAAEA,EAAK,SAAS,CAAC,CAC3C,MAAO,CAAC,YAAY,EAAEA,EAAK,SAAS,CAAC,CACrC,WAAY,8BACZ,YAAa,8BACf,GAEA,OAAQkf,GACN,IAAK,KACH+xD,EAAS,SACTG,EAAe,aAAa,CAAG,uBAC/BA,EAAe,WAAW,CAAGG,EAAe,UAC5C,KACF,KAAK,KACHN,EAAS,QACTG,EAAe,UAAU,CAAG,OAC5BA,EAAe,WAAW,CAAGG,EAAe,SAC5C,KACF,KAAK,KACHN,EAAS,kBACTG,EAAe,aAAa,CAAG,kBAC/BA,EAAe,WAAW,CAAGG,EAAe,UAC5C,KACF,KAAK,MACHN,EAAS,uBACTG,EAAe,uBAAuB,CAAG,GACzCA,EAAe,aAAa,CAAGH,EAC/BG,EAAe,WAAW,CAAGG,EAAe,UAC5C,KACF,SACEH,EAAe,aAAa,CAAGlyD,CACnC,CAEAkyD,EAAe,eAAe,CAAG,GAGjChB,AADwB,OAAMF,GAAc,EAC5B,IAAI,CAACkB,GACrBp/D,WAAW,IAAMm/D,EAAe,CAAE,OAAQ,OAAQ,OAAQN,MAAAA,EAAAA,EAAYI,CAAO,GAAI,EACnF,ECjGaz/C,EAAqB,CAChCtS,EAAO,IAAI,CACX2xD,EAEAW,EAAY,EAAK,CACjBV,EACAC,EAEArjB,EAAY,CAAC,CAAC,CACdsjB,EAAkB,CAAC,CAAC,IAEpBJ,EAAc,CACZ1xD,KAAAA,EACA2xD,SAAAA,EACAE,oBAAAA,EACAD,gBAAAA,EACAE,gBAAAA,CACF,EACF,CAEArtD,CAAAA,EAAAA,CAAMA,CAAC,MAAM,CAAC,SAAS,CAAG6N,E,iBCtBnB,IAAMigD,EAAsB,CAACC,EAAM,MAAM,IAC9C5rE,SAAS,gBAAgB,CAAC,mBAAmB,OAAO,CAAC+yC,AAAAA,IAE/C64B,AAAQ,SAARA,GACFC,AAFY94B,EAEN,KAAK,CAAC,OAAO,CAAG,OACtB84B,AAHY94B,EAGN,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,8BACpB,SAAR64B,IACTC,AALY94B,EAKN,KAAK,CAAC,OAAO,CAAG,QACtB84B,AANY94B,EAMN,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,6BAEtC,EACF,ECTa+4B,EAAwBrrE,AAAAA,IACnC,GAAM,CAAEyY,SAAAA,CAAQ,CAAE,CAAG2E,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,CAI3C,GAHsB,CAAC,UAAW,WAAW,CAAC,QAAQ,CAAC3E,GAGpC,MAAO,CAAC,EAE3B,IAAM6yD,EAA2BluD,EAAAA,CAAMA,CAAC,MAAM,CAAC,eAAe,CAAC,8BAA8B,GAE7F,MAAO,CAEL,mBAAoB,CAAC,CAAEmuD,kBAAAA,CAAiB,CAAE,IACxCD,EAAyB,GAAG,CAAC,oBAAqBC,EACpD,EAEA,sBAAuB,CAAC,CACtBC,gBAAAA,CAAe,CACfC,kBAAAA,CAAiB,CACjBC,QAAAA,CAAO,CACR,CAAG,CAAC,CAAC,IACJJ,EAAyB,GAAG,CAAC,kBAAmBE,GAGhDpuD,EAAAA,CAAMA,CAAC,MAAM,CAAC,eAAe,CAAC,gCAAgC,CAAC,CAC7Dpd,KAAAA,EACAyrE,kBAAAA,EACA,sBAAuBE,AAAAA,IACrB,GAAIA,EAAgB,CAClB,IAAMC,EAAON,EAAyB,GAAG,CAAC,mBACpCO,EAAuBP,EAAyB,GAAG,CAAC,oBACtB,aAAhC,OAAOO,GAAuCD,GAChDC,EAAqBD,EAAMF,EAE/B,CACF,EACA,mBAAoB,KAClBJ,EAAyB,SAAS,GAClCJ,EAAoB,OACtB,CACF,EACF,CACF,CACF,ECtCMY,GAAoB9rE,AAAAA,IACxB,IAAM+rE,EAA0B3uD,EAAAA,CAAMA,CAAC,MAAM,CAAC,yBAAyB,CACjE4uD,EAAezsE,SAAS,aAAa,CAAC,0BAC5C,MAAO,CAACwsE,GAA2B3uD,EAAAA,CAAMA,CAAC,MAAM,CAAC,aAAa,EAAI,CAAC4uD,GAAgBxqE,EAAQxB,IAASqoE,GACtG,EAEa59C,GAAmB,CAACt7B,EAAO6Q,KACtC,IAAMi1D,EAAqB5hE,AAAAA,GAAKA,EAE3By4E,GAAkB9rE,IAEvB2oE,EAAkCx5E,EAAO,KACvCw6E,EAAc,KACZvsD,EAAAA,CAAMA,CAAC,MAAM,CAAC,eAAe,CAAC,gBAAgB,CAC5C,iBACE,wBAAyB,GACzB,6BAA8B,GAC9B,eAAgB,GAChB,UAAW,GACX,YAAa,CACX,aAAc,cAChB,EACA,2BAA4B,E,EACzBiuD,EAAsBrrE,IAAAA,CACzB,YAAa,CAACisE,EAAc,CAAEnB,QAAAA,CAAO,CAAE,IACrCr/D,WAAW,IAAMwpD,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,CAAE,OAAQ6V,EAAU,SAAW,QAAS,OAAQ,gBAAiB,GAAI,GACpGA,EAAUrC,IAA8BC,KAEjD,2BAA4B,KAC1Bj9D,WAAW,IAAMwpD,MAAAA,EAAAA,KAAAA,EAAAA,EAAqB,CAAE,OAAQ,OAAQ,OAAQ,gBAAiB,GAAI,EACvF,C,GAGF5hE,AAAAA,GAAKA,EAELA,AAAAA,GAAKA,EAET,EACF,EACF,EC3Cam3B,GAA2B,KACtCjrB,SAAS,gBAAgB,CAAC,yBAA0BuB,AAAAA,IAClDoqE,IACAhtE,QAAQ,GAAG,CAAC4C,EACd,EACF,ECDaorE,GAAsBzyE,AAAAA,IAOjC,IAAMmxE,EAAiB,IAAIpvB,EAAc,CAAE,KAAMp+B,EAAAA,CAAMA,CAAC,MAAM,CAAC,IAAI,CAAE,YAAa83C,EAAAA,EAA+BA,AAAC,GAAG,qBAAqB,CAEpIiX,EAAeC,AARF,CACjB,OAAQ,oBACR,SAAU,gBACV,UAAW,eACb,CAI+B,CAAC3yE,EAAK,CAErC,GAAI,CAAC0yE,EAAc,CACjBjuE,QAAQ,KAAK,CAAC,CAAC,+BAA+B,EAAEzE,EAAK,CAAC,EACtD,MACF,CAEAmxE,EAAe,CAAE,OAAQ,OAAQ,OAAQnxE,CAAK,GAE9C2jB,EAAAA,CAAMA,CAAC,MAAM,CAAC,eAAe,CAAC+uD,EAAa,CACzC,SACE,wBAAyB,GACzB,eAAgB,GAChB,UAAW,GACX,6BAA8B,GAC9B,YAAa,CACX,OAAQ,uBACR,SAAU,wBACZ,EACA,YAAa,CAACnsE,EAAM,CAAE8qE,QAAAA,CAAO,CAAE,IAC7BF,EAAeE,EAAU,SAAW,QAASrxE,GAC7CyxE,EAAoB,QACbJ,EAAUrC,IAA8BC,I,EAE9C2C,EAAsBjuD,EAAAA,CAAMA,CAAC,MAAM,CAAC,IAAI,GAG7C/pB,AAAAA,GAAKA,EAELyN,AAAAA,IACE5C,QAAQ,KAAK,CAAC4C,GACdoqE,EAAoB,OACtB,EAEA73E,AAAAA,GAAKA,EAET,EC7Cag5E,GAA+B,KAG1CC,AAFsB/sE,SAAS,gBAAgB,CAAC,oDAElC,OAAO,CAACgtE,AAAAA,IACpBA,EAAO,gBAAgB,CAAC,QAAS,MAAMp9E,IACrC,IAAI46E,EAAc,GACZt1D,EAAatlB,EAAM,aAAa,CAAC,SAAS,CAMhD,GAJIslB,EAAW,QAAQ,CAAC,WAAWs1D,CAAAA,EAAc,QAAO,EACpDt1D,EAAW,QAAQ,CAAC,aAAas1D,CAAAA,EAAc,UAAS,EACxDt1D,EAAW,QAAQ,CAAC,cAAcs1D,CAAAA,EAAc,WAAU,EAE1D,CAAC3sD,EAAAA,CAAMA,CAAC,MAAM,CAAC,eAAe,CAAE,CAClC,MAAM/sB,QAAQ,GAAG,CAAC,CAChBs5E,IACAO,IACAD,IACAE,IACD,EAEmB,WAAhBJ,GAA0BmB,EAAoB,QAClDgB,GAAoBnC,GACpB,MACF,CAEoB,WAAhBA,GAA0BmB,EAAoB,QAClDgB,GAAoBnC,EACtB,EACF,EACF,EC9Bax/C,GAA2B,UACtC,IAAMiiD,EAAajtE,SAAS,aAAa,CAAC,iBACpCktE,EAAiBltE,SAAS,aAAa,CAAC,yBACxCmtE,EAA2BntE,SAAS,aAAa,CAAC,oDAEpDitE,CAAAA,GAAcC,GAAkBC,CAAuB,IACzD,MAAM/C,IACNO,IACAD,IACAE,IACAkC,KAEJ,ECjBaniD,GAA8C,KACzD,IAAMyiD,EAAsBptE,SAAS,aAAa,CAAC,iCAC7CqtE,EAA2BrtE,SAAS,aAAa,CAAC,iCAClDstE,EAAoBttE,SAAS,aAAa,CAAC,gCAEjD6d,CAAAA,EAAAA,CAAMA,CAAC,MAAM,CAAC,mBAAmB,CAAG,KAEpCA,EAAAA,CAAMA,CAAC,MAAM,CAAC,mBAAmB,CAAG0vD,AAAAA,I,IAKZC,EACKC,EAAAA,EAAAA,EAL3B,GAAI,CAACF,EAAa,OAElB98B,aAAa5yB,EAAAA,CAAMA,CAAC,MAAM,CAAC,mBAAmB,EAE9C,IAAM6vD,EAAgBF,AAAAA,CAAAA,AAAsB,OAAtBA,CAAAA,EAAAA,EAAY,UAAU,AAAD,GAArBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAwB,SAAS,AAAD,GAAK,GACrDG,EAAqB,AAAsB,OAAtBF,CAAAA,EAAAA,EAAY,UAAU,AAAD,GAArBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAkC,OAAlCA,CAAAA,EAAAA,EAAwB,UAAU,AAAD,GAAjCA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAA8C,OAA9CA,CAAAA,EAAAA,EAAoC,UAAU,AAAD,GAA7CA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgD,SAAS,CAEhFC,EAAc,QAAQ,CAAC,gBACzBN,EAAoB,KAAK,CAAC,OAAO,CAAG,QAC3BO,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAoB,QAAQ,CAAC,KAAI,EAC1CN,EAAyB,KAAK,CAAC,OAAO,CAAG,QAChCM,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAoB,QAAQ,CAAC,KAAI,EAC1CL,EAAkB,KAAK,CAAC,OAAO,CAAG,QACzBC,EAAY,SAAS,CAAC,QAAQ,CAAC,2BACxCvtE,SAAS,gBAAgB,CAAC,mBAAmB,OAAO,CAAC+yC,AAAAA,IAEnD84B,AADc94B,EACR,KAAK,CAAC,OAAO,CAAG,OACxB,EAEJ,CACF,EC3BA,SAAStnB,GAAYrpB,EAAW,KAAO,CAAC,QACtC,AAAI,cAAeyb,EAAAA,CAAMA,CAAC,MAAM,EAAI,UAAW+vD,UACtCA,UAAU,KAAK,GAAG,IAAI,CAACxrE,GAGzB,IAAItR,QAAQ8pD,AAAAA,IACjB1uC,WAAW,KACT0uC,IACAx4C,GACF,EAAG,EACL,EACF,C,WAEAyb,EAAAA,CAAMA,CAAC,MAAM,CAAC,WAAW,CAAG4N,GAE5B,OAAeA,E,qECMR,IAAMtO,EAAahc,AAAAA,IACxB,IAAM0sE,EAAS,CAAC,EAAE1sE,EAAK,CAAC,CAAC,CACnB2sE,EAAU9tE,SAAS,MAAM,CAAC,KAAK,CAAC,KACtC,IAAK,IAAInK,EAAI,EAAGA,EAAIi4E,EAAQ,MAAM,CAAEj4E,IAAK,CACvC,IAAMk4E,EAASD,CAAO,CAACj4E,EAAE,CAAC,IAAI,GAC9B,GAAIk4E,AAA2B,IAA3BA,EAAO,OAAO,CAACF,GACjB,OAAOE,EAAO,SAAS,CAACF,EAAO,MAAM,CAAEE,EAAO,MAAM,CAExD,CAEA,OAAO,IACT,CAEAlwD,CAAAA,EAAAA,CAAMA,CAAC,MAAM,CAAC,SAAS,CAAG,CAAEmwD,iBAnCHC,AAAAA,I,IAEPC,EAEZC,EAHJ,IAAMC,EAAYvwD,EAAAA,CAAMA,CAAC,MAAM,CAAC,SAAS,CACnCwwD,EAAUH,MAAAA,EAAAA,KAAAA,EAAAA,AAAkB,OAAlBA,CAAAA,EAAAA,EAAW,OAAO,AAAD,GAAjBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,CAAoB,CAACD,EAAY,OACjD,EAAKA,IAAgBG,GACjBD,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAkB,OAAlBA,CAAAA,EAAAA,EAAW,OAAO,AAAD,GAAjBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoB,KAAK,AAAD,IAAM,OAC9BE,IAFmC,EAIzC,EA4B8CtmE,UA1BrB,CAAC5G,EAAMtP,EAAOy8E,EAAKL,KAC1C,IAAIzrC,EAAU,GACd,GAAI3kB,EAAAA,CAAMA,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAACowD,GAAc,CACzD,GAAIK,EAAK,CACP,IAAMlqE,EAAO,IAAIlP,KACjBkP,EAAK,OAAO,CAACA,EAAK,OAAO,GAAMkqE,MAAAA,GAC/B9rC,EAAU,CAAC,QAAQ,EAAEp+B,EAAK,WAAW,GAAG,CAAC,CAAC,AAC5C,CACApE,SAAS,MAAM,CAAG,CAAC,EAAEmB,EAAK,CAAC,EAAEtP,EAAM,CAAC,EAAE2wC,EAAQ,OAAO,CAAC,AACxD,CACAxiC,SAAS,MAAM,CAAG,CAAC,EAAEmB,EAAK,CAAC,EAAEtP,EAAM,CAAC,EAAE2wC,EAAQ,OAAO,CAAC,AACxD,EAeyDrlB,WAAAA,CAAW,C,4KC9BpE,IAAMoxD,EAAY78C,EAAAA,EAAAA,CAAAA,GAAU,CAAC;;;;SAIpB,EAAE,CAAC,CAAE1S,KAAAA,EAAO,MAAM,CAAE,GAAKA,EAAK;UAC7B,EAAE,CAAC,CAAEA,KAAAA,EAAO,MAAM,CAAE,GAAKA,EAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCxC,CAAC,CAEY2rB,EAAU,AAAC,I,GAAA,CACtBv0B,UAAAA,EAAY,IAAI,CAChBo4D,YAAAA,EAAc,GAAG,CACjBC,YAAAA,EAAc,iBAAiB,CAEhC,GADI/vE,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAAA,EAAAA,CAHH0X,YACAo4D,cACAC,c,QAGA,UAACF,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAAA,CAAU,QAAQ,cAAc,UAAWr5D,IAAW,mBAAoBkB,E,EAAgB1X,GAAAA,C,SACzF,UAAC,UACC,UAAU,oBACV,GAAG,KACH,GAAG,KACH,EAAE,KACF,KAAK,OACL,YAAa8vE,EACb,OAAQC,C,MAKd9jC,CAAAA,EAAQ,SAAS,CAAG,CAClB,UAAW17B,EAAAA,MAAMA,CACjB,YAAaA,EAAAA,MAAMA,CACnB,YAAaA,EAAAA,MAAMA,AACrB,C,gSC/DO,IAAMy/D,EAAiB,CAAC/5E,EAAKqrB,IAC3B2uD,IAAItkF,OAAO,UAAU,CAAEsK,EAAKqrB,GAGxB4uD,EAAS,IACbF,EAAe,cAAe,eAG1B/pE,EAAa,IACjB+pE,EAAe,WAAY,KAGvBG,EAAa,IACjBH,EAAe,WAAY,oBAGvBpgF,EAAe,IACnBogF,EAAe,aAAc,KAGzBI,EAAc,IAClBJ,EAAe,gBAAiB,KA2B5BlgF,EAAe,IACnBkgF,EAAe,aAAc,IAWzB71D,EAAU,IACd61D,AAAoC,MAApCA,EAAe,WAAY,KAGvBK,EAAO,IACXL,AAAiC,MAAjCA,EAAe,QAAS,KAOpBM,EAAc,IAClBN,EAAe,YAAa,G,4GC7E9B,IAAMO,EAAoB,CAC/B,mBACA,oBACA,aACA,oBACA,4BACA,iBACA,mCACA,iBACA,uBACA,yBACA,+BACA,wDACA,iCACA,uBACA,yCACA,kBACA,iCACA,SACA,yCACA,uCACA,aACA,yBACA,oBACA,oBACA,4BACA,mCACA,0BACA,oBACA,cACA,oBACA,oCACA,+BACA,SACA,mBACA,kBACA,qCACD,ACjCD,OAAMlqE,EAsBJ,WAAW,aAAc,CACvB,OAAOA,EAAc,WAAW,CAAC,UAAYA,EAAc,WAAW,CAAC,UACzE,CAqJF,CA5KE,QADIA,EACG,WAAW,MAElB,QAHIA,EAGG,cAAc7K,AAAAA,IACnB,IAAMg1E,EAAW,OACXC,EAAU,uBACVC,EAAUrqE,EAAc,UAAU,CAAC7K,GAEzC,GAAI,CACF,GAAI,CAACk1E,EACH,MAAO,GAETA,EAAQ,OAAO,CAACD,EAASD,GACzB,IAAMhzE,EAASkzE,EAAQ,OAAO,CAACD,KAAaD,EAE5C,OADAE,EAAQ,UAAU,CAACD,GACZjzE,CACT,CAAE,MAAO1R,EAAG,CAEV,OADAmU,QAAQ,KAAK,CAAC,CAAC,SAAS,EAAEzE,EAAK,8BAA8B,CAAC,CAAE1P,GACzD,EACT,CACF,GAMA,QA1BIua,EA0BG,aAAa7K,AAAAA,IAClB,IAAMm1E,EAAc,AAAkB,aAAlB,OAAOhlF,OAAyBA,OAASwzB,EAAAA,CAAMA,CACnE,MAAO3jB,AAAS,YAATA,EAAqBm1E,EAAY,cAAc,CAAGA,EAAY,YAAY,AACnF,GAEA,QA/BItqE,EA+BG,sBAAsB,CAAC,CAAEpQ,IAAAA,CAAG,CAAEqrB,aAAAA,CAAY,CAAE,GAC1Cjb,EAAc,OAAO,CAAC,CAAEpQ,IAAAA,EAAKqrB,aAAAA,EAAc,KAAM,OAAQ,IAGlE,QAnCIjb,EAmCG,wBAAwB,CAAC,CAAEpQ,IAAAA,CAAG,CAAEqrB,aAAAA,CAAY,CAAE,GAC5Cjb,EAAc,OAAO,CAAC,CAAEpQ,IAAAA,EAAKqrB,aAAAA,EAAc,KAAM,SAAU,IAGpE,QAvCIjb,EAuCG,UAAU,CAAC,CAAEpQ,IAAAA,CAAG,CAAEuF,KAAAA,EAAO,OAAO,CAAE8lB,aAAAA,EAAe,IAAI,CAAE,IAC5D,IAAMovD,EAAUrqE,EAAc,UAAU,CAAC7K,GACzC,GAAI,CAAC6K,EAAc,WAAW,EAAI,CAACqqE,EACjC,OAAOpvD,EAGT,IAAMsvD,EAAaF,EAAQ,OAAO,CAACz6E,GACnC,GAAI,CACF,GAAI,CAAC26E,EACH,OAAOtvD,EAGT,GAAM,CAAEnuB,MAAAA,CAAK,CAAE09E,OAAAA,CAAM,CAAE,CAAGv6E,KAAK,KAAK,CAACs6E,IAAe,CAAC,EACrD,GAAIC,GAAW,IAAIr6E,OAAQ,OAAO,GAAKq6E,EAErC,OADAxqE,EAAc,UAAU,CAAC,CAAEpQ,IAAAA,EAAKuF,KAAAA,CAAK,GAC9B8lB,EAGT,OAAOnuB,CACT,CAAE,MAAOrH,EAAG,CAEV,OADAmU,QAAQ,KAAK,CAAC,qCAAsCnU,GAC7C8kF,GAActvD,CACvB,CACF,GAEA,QAhEIjb,EAgEG,sBAAsB,CAAC,CAAEpQ,IAAAA,CAAG,CAAE9C,MAAAA,CAAK,CAAEy8E,IAAAA,CAAG,CAAE,GACxCvpE,EAAc,OAAO,CAAC,CAC3BpQ,IAAAA,EACA25E,IAAAA,EACAz8E,MAAAA,EACA,KAAM,OACR,IAGF,QAzEIkT,EAyEG,wBAAwB,CAAC,CAAEpQ,IAAAA,CAAG,CAAE9C,MAAAA,CAAK,CAAEy8E,IAAAA,CAAG,CAAE,GAC1CvpE,EAAc,OAAO,CAAC,CAC3BpQ,IAAAA,EACA25E,IAAAA,EACAz8E,MAAAA,EACA,KAAM,SACR,IAGF,QAlFIkT,EAkFG,UAAU,CAAC,CAChBpQ,IAAAA,CAAG,CAAE9C,MAAAA,CAAK,CAAEqI,KAAAA,EAAO,OAAO,CAAEo0E,IAAAA,CAAG,CAChC,IACC,IAAMc,EAAUrqE,EAAc,UAAU,CAAC7K,GACzC,GAAI,CAAC6K,EAAc,WAAW,EAAI,CAACqqE,EAAS,MAAO,GACnD,GAAI,CACF,IAAME,EAAat6E,KAAK,SAAS,CAAC,CAAEnD,MAAAA,EAAO,OAAQy8E,EAAO,IAAIp5E,OAAQ,OAAO,GAAKo5E,EAAM99E,KAAAA,CAAU,GAElG,OADA4+E,EAAQ,OAAO,CAACz6E,EAAK26E,GACd,EACT,CAAE,MAAO9kF,EAAG,CAEV,OADAmU,QAAQ,KAAK,CAAC,mCAAoCnU,GAC3C,EACT,CACF,GAEA,QAjGIua,EAiGG,yBAAyB,CAAC,CAAEpQ,IAAAA,CAAG,CAAE,GAC/BoQ,EAAc,UAAU,CAAC,CAAEpQ,IAAAA,EAAK,KAAM,OAAQ,IAGvD,QArGIoQ,EAqGG,2BAA2B,CAAC,CAAEpQ,IAAAA,CAAG,CAAE,GACjCoQ,EAAc,UAAU,CAAC,CAAEpQ,IAAAA,EAAK,KAAM,SAAU,IAGzD,QAzGIoQ,EAyGG,aAAa,CAAC,CAAEpQ,IAAAA,CAAG,CAAEuF,KAAAA,EAAO,OAAO,CAAE,IAC1C,IAAMk1E,EAAUrqE,EAAc,UAAU,CAAC7K,GACzC,GAAI,CAAC6K,EAAc,WAAW,EAAI,CAACqqE,EAAS,MAAO,GACnD,GAAI,CAEF,OADAA,EAAQ,UAAU,CAACz6E,GACZ,EACT,CAAE,MAAOnK,EAAG,CAEV,OADAmU,QAAQ,KAAK,CAAC,sCAAuCnU,GAC9C,EACT,CACF,GAEA,QArHIua,EAqHG,oBAAoB,CAAC,CAAEyqE,MAAAA,EAAQ,EAAK,CAAE,CAAG,CAAC,CAAC,GACzCzqE,EAAc,KAAK,CAAC,CAAE,KAAM,QAASyqE,MAAAA,CAAM,IAGpD,QAzHIzqE,EAyHG,QAAQ,CAAC,CAAE7K,KAAAA,EAAO,OAAO,CAAEs1E,MAAAA,CAAK,CAAE,CAAG,CAAC,CAAC,IAC5C,IAAMJ,EAAUrqE,EAAc,UAAU,CAAC7K,GACzC,GAAI,CAAC6K,EAAc,WAAW,EAAI,CAACqqE,EACjC,MAAO,GAGT,IAAK,IAAIv5E,EAAIu5E,EAAQ,MAAM,CAAG,EAAGv5E,GAAK,EAAGA,IAAK,CAC5C,IAAMlB,EAAMy6E,EAAQ,GAAG,CAACv5E,GACxB,KAAI,CAAClB,GAID,CAAC66E,GAASzqE,EAAc,eAAe,CAACpQ,IAI5Cy6E,EAAQ,UAAU,CAACz6E,EACrB,CACF,GAEA,QA7IIoQ,EA6IG,mBAAmB,CAAC,CAAEpQ,IAAAA,CAAG,CAAE86E,SAAAA,CAAQ,CAAEv1E,KAAAA,EAAO,OAAO,CAAE,IAC1D,IAAMw1E,EAAU3qE,EAAc,OAAO,CAAC,CAAEpQ,IAAAA,EAAKuF,KAAAA,CAAK,GAClD,GAAIw1E,EAAS,CACX,IAAMC,EAAah3E,SAAS+2E,EAAS,IACrC,GAAIC,GAAcF,EAChB,OAGF1qE,EAAc,OAAO,CAAC,CAAEpQ,IAAAA,EAAKuF,KAAAA,EAAM,MAAOy1E,EAAa,CAAE,GACzD,MACF,CAEA5qE,EAAc,OAAO,CAAC,CAAEpQ,IAAAA,EAAKuF,KAAAA,EAAM,MAAO,CAAE,EAC9C,GAEA,QA5JI6K,EA4JG,kBAAkB,CAAC,CAAEpQ,IAAAA,CAAG,CAAE9C,MAAAA,CAAK,CAAEqI,KAAAA,EAAO,OAAO,CAAE,IACtD,IAAM8pB,EAAMjf,EAAc,OAAO,CAAC,CAAEpQ,IAAAA,EAAKuF,KAAAA,CAAK,GAC9C,OAAO01E,IAAQ5rD,EAAKnyB,EACtB,GAEA,QAjKIkT,EAiKG,kBAAkBpQ,AAAAA,GAChBs6E,EAAkB,IAAI,CAACY,AAAAA,IAC5B,OAAQ,IACN,KAAKA,aAAwBC,OAC3B,OAAOD,EAAa,IAAI,CAACl7E,EAC3B,KAAK,AAAwB,UAAxB,OAAOk7E,EACV,OAAOA,IAAiBl7E,CAC1B,SACE,MAAO,EACX,CACF,G,yEC/KA,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAY,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CAC7E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,6HACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAkB,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CACnF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,kLACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAa,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CAC9E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,sIACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAc,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CAC/E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,4HACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAc,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CAC/E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,2HACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAe,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CAChF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,2HACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAoB,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CACrF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,sLACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAc,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CAC/E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,wNACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAQ,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CACzE,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,6HACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAoB,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CACrF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,mMACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAmB,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CACpF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,8KACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAkB,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CACnF,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,kKACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAQ,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CACzE,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,wDACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAU,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CAC3E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,kMACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAQ,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CACzE,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,kMACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAa,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CAC9E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,+IACH,SAAU,SACZ,I,yECXI,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,EAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAD,CAAG,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAa,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CAC9E,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,mHACH,SAAU,SACZ,I,sHCXO,IAAMo7E,EAAY,CACvB,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,QAAS,QACT,QAAS,QACT,GAAI,QACJ,GAAI,OACN,EAEaC,EAAsB,CACjC,iBAAkB75E,AAAAA,GAAQ,mEAAmE,IAAI,CAACA,EACpG,EAYa85E,EAAmB,O,yCC1CRC,EAsDIA,EAuCc57E,E,oMClGnC,IAAM67E,EAAyB,KAEpC,IAAM3tD,EAAW3E,EAAAA,CAAMA,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,0BAGjDuyD,EAAcvyD,EAAAA,CAAMA,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,uBAGpDwyD,EAAgBxyD,EAAAA,CAAMA,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,yBAG5DvkB,OAAO,MAAM,CAACkpB,GAAU,OAAO,CAACuwB,AAAAA,GAAMA,GAAMA,EAAG,SAAS,EAAIA,EAAG,SAAS,CAAC,MAAM,CAAC,0BAEhFz5C,OAAO,MAAM,CAAC82E,GAAa,OAAO,CAACr9B,AAAAA,IAE7BA,GAAMA,EAAG,SAAS,GAEpBu9B,AADYv9B,EACR,KAAK,CAAC,OAAO,CAAG,OACpBu9B,AAFYv9B,EAER,KAAK,CAAC,QAAQ,CAAG,UACrBu9B,AAHYv9B,EAGR,KAAK,CAAC,MAAM,CAAG,UACnBA,EAAG,SAAS,CAAC,MAAM,CAAC,sBAExB,GACAz5C,OAAO,MAAM,CAAC+2E,GAAe,OAAO,CAACt9B,AAAAA,IAEnC,GAAI,CAACA,GAAM,CAACA,EAAG,SAAS,CACtB,MAAO,GAIT,IAAMw9B,EAAex9B,EAAG,YAAY,CAAC,iBAC/By9B,EAAmBz9B,EAAG,YAAY,CAAC,qBAGzCA,EAAG,eAAe,CAAC,iBACnBA,EAAG,eAAe,CAAC,qBAGfw9B,AAAiB,SAAjBA,EACFx9B,EAAG,YAAY,CAAC,OAAQw9B,GAExBx9B,EAAG,eAAe,CAAC,QAGjBy9B,AAAqB,SAArBA,EACFz9B,EAAG,YAAY,CAAC,WAAYy9B,GAE5Bz9B,EAAG,eAAe,CAAC,YAIrBA,EAAG,SAAS,CAAC,MAAM,CAAC,uBACtB,EACF,EAEa09B,EAAuB,CAAC19B,EAAI29B,EAAU,EAAI,IAErD,GAAI39B,IAAOl1B,EAAAA,CAAMA,EAAIk1B,IAAOl1B,EAAAA,CAAMA,CAAC,QAAQ,EAAIk1B,IAAOl1B,EAAAA,CAAMA,CAAC,QAAQ,CAAC,IAAI,CAAE,MAAO,GAGnF,GAAI,CAACk1B,EAAI,MAAO,GAGhB,GAAI29B,EAAS,CACX39B,EAAG,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,sBAE/B,IAAM49B,EAAS59B,EAAG,aAAa,AAC/B49B,CAAAA,EAAO,KAAK,CAAC,OAAO,CAAG,iBACvBA,EAAO,KAAK,CAAC,QAAQ,CAAG,WACxBA,EAAO,KAAK,CAAC,MAAM,CAAG,MACxB,CAGA,GAAI59B,EAAG,KAAK,CAAE,CAEZ,IAAM69B,EAAe/yD,EAAAA,CAAMA,CAAC,gBAAgB,CAACk1B,GAGzC69B,CAAAA,AAAyB,SAAzBA,EAAa,OAAO,EAAeA,AAAyB,MAAzBA,EAAa,OAAO,EAAYA,AAA4B,WAA5BA,EAAa,UAAU,EAAiBA,AAA2B,QAA3BA,EAAa,SAAS,AAAS,GAE5I79B,EAAG,SAAS,CAAC,GAAG,CAAC,wBAErB,CAeA,MAbmB,WAAfA,EAAG,OAAO,GAEZA,EAAG,YAAY,CAAC,gBAAiBA,EAAG,YAAY,CAAC,SACjDA,EAAG,YAAY,CAAC,oBAAqBA,EAAG,YAAY,CAAC,aAGrDA,EAAG,YAAY,CAAC,OAAQA,EAAG,MAAM,EACjCA,EAAG,YAAY,CAAC,WAAY,YAG5BA,EAAG,SAAS,CAAC,GAAG,CAAC,yBAGZ09B,EAAqB19B,EAAG,aAAa,CAAE,GAChD,EAGa89B,EAAkB,CAAC99B,EAAI+9B,IAElC,AAA+E,KAA3E,CAAC,SAAU,MAAO,MAAO,QAAS,QAAS,OAAO,CAAC,OAAO,CAAC/9B,EAAG,OAAO,GAKrEA,EAAG,SAAS,EAAIA,EAAG,SAAS,CAAC,KAAK,EAMhCg+B,AAHwB,CAAC,gBAAiB,oBAAqB,kBAAkB,CAG7D,IAAI,CAACC,AAAAA,GAAOA,EAAI,IAAI,CAACj+B,EAAG,SAAS,CAAC,KAAK,GAVxD,KAgBLA,EAAG,UAAU,EAAIA,AAAyB,IAAzBA,EAAG,UAAU,CAAC,MAAM,CAChCz5C,OAAO,MAAM,CAACy5C,EAAG,UAAU,EAC/B,MAAM,CAACxxB,AAAAA,GAAS,AAAiB,UAAjB,OAAOA,GACvB,GAAG,CAACA,AAAAA,GAASsvD,EAAgBtvD,EAAOuvD,IACpC,MAAM,CAAC,CAACh5E,EAAMm5E,IAAUA,AAAS,OAATA,EAAgBn5E,EAAK,MAAM,CAACm5E,GAAQn5E,EAAO,EAAE,EAItEi7C,EAAG,WAAW,EAAI+9B,EAAM,OAAO,CAAC/9B,EAAG,WAAW,CAAC,IAAI,IAAM,GACpDA,EAGF,KAIIm+B,EAAen+B,AAAAA,IAC1B,GAAIA,AAAO,OAAPA,EACF,MAAO,GAET,GAAI,AAAwB,SAAjBA,EAAG,SAAS,CACrB,OAAOm+B,EAAan+B,EAAG,UAAU,EAInC,IAAMo+B,EAAcp+B,EAAG,qBAAqB,GAGtCq+B,EAAevzD,EAAAA,CAAMA,CAAC,MAAM,CAAC,WAAW,CACxCwzD,EAAcxzD,EAAAA,CAAMA,CAAC,MAAM,CAAC,UAAU,CAGtCyzD,EAAUzzD,EAAAA,CAAMA,CAAC,MAAM,CAAC,WAAW,CACnC0zD,EAAU1zD,EAAAA,CAAMA,CAAC,MAAM,CAAC,WAAW,OAGzC,EAAIszD,CAAAA,EAAY,GAAG,CAAGA,EAAY,MAAM,CAAGC,EAAeG,CAAM,KAAKJ,CAAAA,EAAY,IAAI,CAAGA,EAAY,KAAK,CAAGE,EAAcC,CAAM,KAAKH,CAAAA,EAAY,GAAG,CAAGA,EAAY,MAAM,CAAG,MAAKA,CAAAA,EAAY,IAAI,CAAGA,EAAY,KAAK,CAAG,IAKtN,EAAItzD,EAAAA,CAAMA,CAAC,MAAM,CAAC,YAAY,GAC5Bk1B,EAAG,cAAc,CAAC,CAAE,SAAU,OAAQ,MAAO,QAAS,GAC/C,GAMb,EAGay+B,EAAkBhvD,AAAAA,GAAYA,EAAS,GAAG,CAACuwB,AAAAA,GAAMA,EAAG,WAAW,CAAC,IAAI,IC8SpEm9B,EAAcryD,EAAAA,CAAMA,CAAC,YAAY,EAAI,IA7clD,MAAM4zD,EA8DJ,IAAI,2BAA4B,CAC9B,OAAOzhF,MAAM,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAG,EAAE,AACxH,CAGA,IAAI,kBAAmB,CACrB,OAAOA,MAAM,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAG,EAAE,AAClH,CAGA,IAAI,wBAAyB,CAC3B,OAAOsJ,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CACjD,CAACxB,EAAMm5E,IAASn5E,EAAK,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAACm5E,EAAK,EAC1D,EAAE,CAEN,CAEA,yBAAyBppD,CAAQ,CAAE6pD,CAAU,CAAE,CAC7C,IAAI,CAAC,GAAG,CAAC7pD,EAAU6pD,EACrB,CAGA,UAAUt5C,CAAI,CAAE,CAEd,IAAI,CAAC,aAAa,CAAGA,CACvB,CAGA,0BAA0BvQ,CAAQ,CAAE8pD,CAAO,CAAE,CAC3C,IAAI,CAAC,mBAAmB,CAAG,mBAEtB,IAAI,CAAC,mBAAmB,GAC3B,CAAC9pD,EAAS,CAAE,IAAI,CAAC,mBAAmB,CAACA,EAAS,CAAC,MAAM,CAACtvB,AAAAA,GAAOo5E,AAAyB,KAAzBA,EAAQ,OAAO,CAACp5E,G,EAEjF,CAGA,uBAAuBsvB,CAAQ,CAAE8pD,CAAO,CAAE,CAExC,IAAI,CAAC,gBAAgB,CAAG,mBAEnB,IAAI,CAAC,gBAAgB,GACxB,CAAC9pD,EAAS,CAAE,IAAI,CAAC,gBAAgB,CAACA,EAAS,CAAG,IAAI,CAAC,gBAAgB,CAACA,EAAS,CAAC,MAAM,CAAC8pD,GAAWA,C,EAEpG,CAGA,sBAAsBp5E,CAAG,CAAE,CACzB,IAAI,CAAC,mBAAmB,CAAG,mBAEtB,IAAI,CAAC,mBAAmB,GAC3B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAE,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAACA,EAAI,C,EAErE,CAGA,0BAA0Bo5E,CAAO,CAAE,CAEjC,IAAI,CAAC,mBAAmB,CAAGr4E,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAACxB,EAAMm5E,KAE7E,IAAMW,EAAe,IAAI,CAAC,mBAAmB,CAACX,EAAK,CAAC,MAAM,CAAC14E,AAAAA,GAAOo5E,EAAQ,OAAO,CAACp5E,GAAO,IAGzF,MAAO,mBAEFT,GAAAA,CACH,CAACm5E,EAAK,CAAE,IAAI,CAAC,mBAAmB,CAACA,EAAK,CAAC,MAAM,CAAC14E,AAAAA,GAAOq5E,AAA4B,EAA5BA,EAAa,OAAO,CAACr5E,IAAU,MAAM,CAACq5E,E,EAE/F,EAAG,CAAC,EACN,CAGA,cAAcpvD,CAAQ,CAAE,CAEtB,GAAIA,EAAS,MAAM,EAAI,EACrB,OAAOA,EAIT,IAAMqvD,EAAeL,EAAgBhvD,GAGrC,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAACjqB,AAAAA,GAAOs5E,EAAa,OAAO,CAACt5E,GAAO,IAAI,GAAG,CAACA,AAAAA,GAAOiqB,CAAQ,CAACqvD,EAAa,OAAO,CAACt5E,GAAK,CACjI,CAGA,IAAI6/B,EAAO,EAAE,CAAEs5C,EAAa,CAAC,CAAC,CAAE,CAE9B,IAAI,CAAC,SAAS,CAACt5C,GAEX05C,IAAY,IAAI,CAAC,YAAY,CAAC15C,EAAK,GAErC,KAAI,CAAC,YAAY,CAAG,mBAEf,IAAI,CAAC,YAAY,GACpB,CAACA,EAAK,CAAE,GAAI25C,CAAAA,GAAAA,EAAS,CACnB,QAASL,EACT,OAAQt5C,EAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAC1B,aAAc,IAAI,CAAC,gBAAgB,AACrC,E,GAGN,CAGA,UAAU7/B,CAAG,CAAE3H,CAAM,CAAE,CACrB,IAAIohF,EAAaz5E,EACjB,GAAI,AAAkB,UAAlB,OAAO3H,GAAuB0I,OAAO,IAAI,CAAC1I,GAAQ,MAAM,CAAE,CAC5D,IAAMqhF,EAAY15E,EAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAC7D05E,OAAAA,GAAAA,EAAW,OAAO,CAACC,AAAAA,IAEjB,IAAMC,EAAeD,EAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAE,GAElEthF,CAAAA,CAAM,CAACuhF,EAAa,EACtBH,CAAAA,EAAaA,EAAW,OAAO,CAACE,EAAQthF,CAAM,CAACuhF,EAAa,EAEhE,EACF,CAMA,MAJI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC55E,IAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAACA,GAGtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAACy5E,EAAYphF,EAC7D,CAGA,iBAAiB2H,CAAG,CAAE+yC,CAAO,CAAE,OAE7B,AAAkD,KAA5CztB,EAAAA,CAAMA,CAAC,MAAM,CAAC,yBAAyB,EAKzC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAACtlB,GAAO,GAJhCw5E,IAAAA,eAAwB,CAACx5E,EAAK+yC,GASnC,QAAQ,IAAI,CAAC/yC,GACR,QAI2C,KAAhD,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAACA,IACzC,IAAI,CAAC,qBAAqB,CAACA,GAI7B,IAAI,CAAC,eAAe,GACtB,CAGA,iBAAkB,CAEhB,GAAI,AAAmB,OAAnB,IAAI,CAAC,SAAS,CAMlB,IAAI,CAAC,SAAS,CAAG2T,WAAW,IAAI,CAAC,oBAAoB,CAAE,IAAI,CAAC,YAAY,CAC1E,CAGA,cAAcsW,CAAQ,CAAE,CAEtB,OAAOA,EAAS,KAAK,CAAC,EAAG,IAAI,CAAC,YAAY,CAC5C,CAGA,wBAAwBmvD,CAAO,CAAES,CAAW,CAAE,CAE5C,IAAMC,EAAeD,EAAY,MAAM,CAAC,CAACt6E,EAAMm5E,EAAM75E,IAAmB65E,AAAS,KAATA,EAAiBn5E,EAAK,MAAM,CAAC,CAACV,EAAM,EAAIU,EAAS,EAAE,EAGrHw6E,EAAkB,mBAEnBX,GAAAA,CACH,CAAC,IAAI,CAAC,aAAa,CAAC,CAAEA,CAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAACp5E,EAAKnB,IAAUi7E,AAA8B,EAA9BA,EAAa,OAAO,CAACj7E,G,GAOhG,MAAO,CACLk7E,gBAAAA,EACAC,oBAL0BH,EAAY,MAAM,CAAC,CAACI,EAAIp7E,IAAUi7E,AAA8B,EAA9BA,EAAa,OAAO,CAACj7E,GAMnF,CACF,CAGA,aAAau6E,EAAU,EAAE,CAAE,CAEzBlhC,aAAa,IAAI,CAAC,SAAS,EAC3B,IAAI,CAAC,SAAS,CAAG,KAG6B,IAA1C,IAAI,CAAC,yBAAyB,CAAC,MAAM,GAChB,IAAnBkhC,EAAQ,MAAM,EAEhB,IAAI,CAAC,yBAAyB,CAACA,GAIjC,IAAI,CAAC,eAAe,GAExB,CAGA,sBAAuB,CAErB,IAAInhE,EAAO,EACPqN,CAAAA,EAAAA,CAAMA,CAAC,MAAM,CAAC,oBAAoB,EACpCrN,EAAOqN,EAAAA,CAAMA,CAAC,QAAQ,CAAC,aAAa,CAAC40D,UAAU50D,EAAAA,CAAMA,CAAC,MAAM,CAAC,oBAAoB,GAEjFlf,QAAQ,GAAG,CAAC,qCAAsCkf,EAAAA,CAAMA,CAAC,MAAM,CAAC,oBAAoB,GAGpFrN,EAAOqN,EAAAA,CAAMA,CAAC,QAAQ,CAAC,IAAI,CAI7B,IAAM60D,EAAgB7B,EAAgBrgE,EAAM,IAAI,CAAC,sBAAsB,EAQvE,GALA7R,QAAQ,GAAG,CAAC,8BAA+B,IAAI,CAAC,sBAAsB,EACtEA,QAAQ,GAAG,CAAC,gBAAiB+zE,GAIzB,CAACA,GAAiBA,AAAyB,IAAzBA,EAAc,MAAM,CAQxC,OAPI70D,EAAAA,CAAMA,CAAC,MAAM,CAAC,YAAY,GAC5BA,EAAAA,CAAMA,CAAC,MAAM,CAAC,gBAAgB,CAAG,GAEjClf,QAAQ,GAAG,CAAC,8BAIP,IAAI,CAAC,YAAY,GAI1B,IAAMg0E,EAAuB,IAAI,CAAC,aAAa,CAACD,GAG1CE,EAAoB,IAAI,CAAC,aAAa,CAACD,GAGvCf,EAAeJ,EAAgBoB,GAG/BC,EAAqBv5E,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAACxB,EAAMm5E,IAAU,mBAEpFn5E,GAAAA,CACH,CAACm5E,EAAK,CAAE,IAAI,CAAC,mBAAmB,CAACA,EAAK,CAAC,MAAM,CAAC14E,AAAAA,GAAOq5E,EAAa,OAAO,CAACr5E,GAAO,G,GAC/E,CAAC,GAKLzH,QAAQ,GAAG,CAFQwI,OAAO,MAAM,CAACs5E,GAAmB,MAAM,CAAC,CAAC96E,EAAMm5E,IAAkB,AAAgB,UAAhB,OAAOA,EAAoBn5E,EAAK,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC0Y,EAAMygE,GAAM,EAAIn5E,EAAS,EAAE,GAGxK,IAAI,CAACg7E,AAAAA,GAAa,IAAI,CAAC,uBAAuB,CAACD,EAAoBC,IAEnE,IAAI,CAAC,CAAC,CAAER,gBAAAA,CAAe,CAAEC,oBAAAA,CAAmB,CAAE,GAAK,IAAI,CAAC,mBAAmB,CAACD,EAAiBC,IAE7F,IAAI,CAACQ,AAAAA,GAAkBjiF,QAAQ,GAAG,CAACiiF,GAAgB,IAAI,CAAC,IAAM,IAAI,CAAC,YAAY,CAACnB,IACrF,CAGA,oBAAoBiB,CAAkB,CAAEC,CAAS,CAAE,CAEjD,OAAOx5E,OAAO,IAAI,CAACu5E,GAAoB,GAAG,CAAChrD,AAAAA,IAEzC,IAAM8pD,EAAUkB,CAAkB,CAAChrD,EAAS,CAExCmrD,EAAa,EACbC,EAAa,SAWjB,CAVIp1D,EAAAA,CAAMA,CAAC,MAAM,CAAC,YAAY,GACxBA,EAAAA,CAAMA,CAAC,MAAM,CAAC,UAAU,EAC1Bm1D,CAAAA,EAAan1D,EAAAA,CAAMA,CAAC,MAAM,CAAC,UAAU,AAAD,EAElCA,EAAAA,CAAMA,CAAC,MAAM,CAAC,UAAU,EAC1Bo1D,CAAAA,EAAap1D,EAAAA,CAAMA,CAAC,MAAM,CAAC,UAAU,AAAD,GAKpC8zD,AAAmB,IAAnBA,EAAQ,MAAM,EAAUmB,AAAqB,IAArBA,EAAU,MAAM,EAAUnB,EAAQ,MAAM,GAAKmB,EAAU,MAAM,GACnFj1D,EAAAA,CAAMA,CAAC,MAAM,CAAC,YAAY,GAC5BA,EAAAA,CAAMA,CAAC,MAAM,CAAC,gBAAgB,CAAG,GAEjClf,QAAQ,GAAG,CAAC,8BAGP,KAGTu0E,IAAAA,IAAU,CAAC,cAAeC,IAAAA,SAAY,CAAC,CACrC,OAAQ,sBACR,UAAWtrD,EACX,IAAKgrD,CAAkB,CAAChrD,EAAS,CAAC,IAAI,CAAC,sBACvC,eAAgB,GAChBmrD,WAAAA,EACAC,WAAAA,EACA,WAAYH,EAAU,IAAI,CAAC,MAC7B,GAAI,CACF,eAAgB,mCAClB,GACG,IAAI,CAAC,KAEJ,IAAI,CAAC,sBAAsB,CAACjrD,EAAUgrD,CAAkB,CAAChrD,EAAS,EAGlE,IAAI,CAAC,yBAAyB,CAACA,EAAUgrD,CAAkB,CAAChrD,EAAS,CACvE,GAEK,GACT,EACF,CAGA,eAAerX,CAAI,CAAE4iE,CAAY,CAAE,CAEjC,IAAMC,EAAmB5C,EAAqB2C,SAO9C,CANIv1D,EAAAA,CAAMA,CAAC,MAAM,CAAC,YAAY,EAE5Blf,QAAQ,GAAG,CAAC,eAAgBy0E,EAAa,SAAS,EAIhD,AAACC,GAAqBnC,EAAakC,IAYnCv1D,EAAAA,CAAMA,CAAC,MAAM,CAAC,YAAY,EAG5Blf,QAAQ,GAAG,CAAC,WAIL,IAAI7N,QAAQ8pD,AAAAA,IACjB1uC,WAAW,KAET,IAAMonE,EAAez1D,EAAAA,CAAMA,CAAC,MAAM,CAAC,eAAe,AAGlDA,CAAAA,EAAAA,CAAMA,CAAC,MAAM,CAAC,eAAe,CAAG,KAGhCsyD,IAGAv1B,EAAQ04B,EACV,EAAG,IACL,IAIK,IAAIxiF,QAAQ8pD,AAAAA,GAAW24B,IAAAA,KAAgB,CAC5C/iE,EACA,CACE,OAAQuiC,AAAAA,GAEN,CAAKA,IAAOA,EAAG,SAAS,GAAKA,EAAG,OAAO,EAAI,AAAwB,UAAxB,OAAOA,EAAG,SAAS,GAK1D,KAAI,CAAC,UAAU,CAAC,OAAO,CAACA,EAAG,OAAO,EAAI,EAAC,GAMpCygC,AAA6B,IAA7BA,AAFmBzgC,EAAG,SAAS,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC0gC,AAAAA,GAAY,AAAyC,KAAzC,IAAI,CAAC,aAAa,CAAC,OAAO,CAACA,IAEvE,MAAM,AAEnC,GAEC,IAAI,CAACC,AAAAA,IAEJvD,IAGAv1B,EAAQ84B,EACV,KA7DA/0E,QAAQ,GAAG,CAAC,+CAGZwxE,IAGO,GAwDX,CAzcA,aAAc,CAEZ,IAAI,CAAC,WAAW,CAAG,QACnB,IAAI,CAAC,gBAAgB,CAAG,CAAC,EACzB,IAAI,CAAC,gBAAgB,CAAG,EAAE,CAC1B,IAAI,CAAC,mBAAmB,CAAG,CAAC,EAC5B,IAAI,CAAC,aAAa,CAAG,IAAI,CAAC,WAAW,CACrC,IAAI,CAAC,aAAa,CAAG,CACnB,aACA,qBACA,WACA,cACA,WACA,sBACA,qBACA,2BACA,mBACA,gBACA,mCACA,eACD,CACD,IAAI,CAAC,UAAU,CAAG,CAChB,SACA,MACD,CACD,IAAI,CAAC,YAAY,CAAG,CAClB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAE,GAAI4B,CAAAA,GAAAA,EAAS,CAC/B,QAAS,CAAC,EACV,OAAQ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CACtC,aAAc,EAChB,EACF,EAEA,IAAI,CAAC,aAAa,CAAG,CAAE,eAAgB,eAAgB,cAAe,QAAS,EAE/E,IAAI,CAAC,SAAS,CAAG,KAGjB,IAAI,CAAC,YAAY,CAAG,EAGpB,IAAI,CAAC,YAAY,CAAG,IAGpB,IAAI,CAAC,SAAS,CAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EACzC,IAAI,CAAC,YAAY,CAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAC/C,IAAI,CAAC,aAAa,CAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EACjD,IAAI,CAAC,aAAa,CAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EACjD,IAAI,CAAC,cAAc,CAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EACnD,IAAI,CAAC,eAAe,CAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EACrD,IAAI,CAAC,gBAAgB,CAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EACvD,IAAI,CAAC,mBAAmB,CAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAC7D,IAAI,CAAC,oBAAoB,CAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAC/D,IAAI,CAAC,sBAAsB,CAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EACnE,IAAI,CAAC,yBAAyB,CAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,EACzE,IAAI,CAAC,yBAAyB,CAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,EACzE,IAAI,CAAC,SAAS,CAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EACzC,IAAI,CAAC,wBAAwB,CAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CACzE,CAgZF,E,uCCtdO,IAAMjJ,EAAe,K,IAAMJ,EAAAA,EAA2Dr9E,E,MAA3Dq9E,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,EAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAyB,OAAzBA,CAAAA,EAAAA,EAAe,UAAU,AAAD,GAAxBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA2B,WAAW,AAAD,IAAM,cAAgBr9E,AAAAA,CAAAA,AAAa,OAAbA,CAAAA,EAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAe,WAAW,AAAD,IAAM,Y,EAEtHsoF,EAA6B,EAAE,CAE/BC,EAAqB,MAAM3kE,I,IACP4kE,EAAxB,IAAMC,EAAkBD,MAAAA,EAAAA,KAAAA,EAAAA,AAAmC,OAAnCA,CAAAA,EAAAA,EAAQ,OAAO,CAAC,kBAAmB,UAAS,GAA5CA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA+C,IAAI,GACrEE,EAAS,IAAIC,YAAY,SAAS,MAAM,CAACF,GAE/C,MAAO,CACL,IAAKA,EACL,QAAS9jF,MAAM,IAAI,CAAC,IAAIikF,WAHX,MAAMp2D,EAAAA,CAAMA,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAASk2D,KAGZ,GAAG,CAACG,AAAAA,GAAKA,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,EAAG,MAAM,IAAI,CAAC,GAC7F,CACF,EAEaC,EAAyBC,AAAAA,IACpCA,EAAa,OAAO,CAAClE,AAAAA,IACnB0D,EAAmB1D,GAChB,IAAI,CAAC,CAAC,CAAEmE,QAAAA,CAAO,CAAEC,IAAAA,CAAG,CAAE,IACjB,CAACz2D,EAAAA,CAAMA,CAAC,YAAY,CAAC,0BAA0B,CAAC,IAAI,CAAC02D,AAAAA,GAAKj7E,OAAO,IAAI,CAACi7E,GAAG,QAAQ,CAACF,KACpFx2D,EAAAA,CAAMA,CAAC,YAAY,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAClD,CAACw2D,EAAQ,CAAEC,CACb,EAEJ,GACC,KAAK,CAAC/yE,AAAAA,GAAS5C,QAAQ,KAAK,CAAC4C,GAClC,GAEOoyE,GAGIa,EAAkB,KAC7B,IAAMv8B,EAAO,IAAI/iD,OAAO,WAAW,GAC7BgjD,EAAQ,IAAIhjD,OAAO,QAAQ,GAC3BijD,EAAM,IAAIjjD,OAAO,OAAO,GACxB2tC,EAAQ,IAAI3tC,OAAO,QAAQ,GAE3BD,EAAMC,KAAK,GAAG,CAAC+iD,EAAMC,EAAOC,EAAKtV,EADvB,IAAI3tC,OAAO,UAAU,GACkB,GACjDwuC,EAAYxuC,KAAK,GAAG,CAAC+iD,EAAMC,EAAOC,EAAKtV,EAAO,EAAG,GACjD4xC,EAAUv/E,KAAK,GAAG,CAAC+iD,EAAMC,EAAOC,EAAKtV,EAAO,GAAI,GAGtD,OAAOa,EAAYzuC,GAAOw/E,EAAUx/E,CACtC,EAEay/E,EAAuBl+E,AAAAA,I,IACXm+E,EAAvB,IAAMC,EAAiB,AAAqB7E,OAArB4E,CAAAA,EAAAA,OAAO,IAAI,CAAC5E,EAAAA,EAASA,CAAAA,GAArB4E,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAwB,IAAI,CAAC,KAC9CE,EAAM/E,OAAO,CAAC,MAAM,EAAE8E,EAAe,MAAM,CAAC,CAAE,KAEpD,OAAOp+E,MAAAA,EAAAA,KAAAA,EAAAA,EAAK,OAAO,CAACq+E,EAAK,IAC3B,EHZaC,EAAe5E,AAAAA,GAAe,SAAe33E,CAAG,CAAE+yC,EAAU,CAAC,CAAC,EACzE,GAAM,CAAEnyC,KAAAA,EAAO,SAAS,CAAEV,OAAAA,EAAS,SAAS,CAAE,CAAG6yC,EAE7C,CAACypC,EAASC,EAAU,CAAGz8E,EAAI,OAAO,CAAC,UAAW,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC08E,AAAAA,GAAMt8E,SAASs8E,EAAI,IAEpF18E,CAAAA,EAAI,OAAO,CAAC,MAAQ,EACtBw8E,EAAUA,AAAY,KAAZA,EAAiBA,EAAU,GAAKA,EACjCx8E,EAAI,OAAO,CAAC,MAAQ,GAC7Bw8E,CAAAA,EAAUA,AAAY,KAAZA,EAAiB,EAAIA,CAAM,EAGvC,IAAMG,EAAW,IAAIhgF,WAGrB,CAFAggF,EAAS,QAAQ,CAACH,EAASC,GAEvBn+C,MAAMq+C,EAAS,OAAO,KACjB38E,EAEF28E,EAAS,kBAAkB,CAAChF,EAAY,aAAa,CAftC,CAAE/2E,KAAAA,EAAMV,OAAAA,CAAO,EAgBvC,EAwFa08E,EAA2BjF,AAAAA,GAAe,SAA2BkF,CAAW,EAC3F,OAAO,IAAItkF,QAAQ,CAAC8pD,EAASC,KAC3B,GAAI,CAEFq1B,EAAY,WAAW,CAAGkF,EAC1Bx6B,EAAQ,CAAE,OAAQ,GAAMw6B,YAAAA,CAAY,EACtC,CAAE,MAAOxpE,EAAK,CACZivC,EAAO,AAAI9J,MAAMnlC,GACnB,CACF,EACF,EAEaypE,EAAoCnF,AAAAA,GAAe,SAAoC93C,CAAI,CAAEk9C,CAAe,EAGvH,IAAMC,EAAaj8E,OAAO,IAAI,CAFXg8E,GAEwB,MAAM,CAAC,CAACE,EAAK7gF,KACtD,IAAM8gF,EAAQ/D,AAHG4D,CAGO,CAAC3gF,EAAI,QAC7B,AAAK8gF,EAGEn8E,OAAO,MAAM,CAACk8E,EAAK,CAAE,CAAC7gF,EAAI,CAAE8gF,CAAM,GAFhCD,CAGX,EAAG,CAAC,GAKJ,OAbmBF,GAWjBpF,EAAY,GAAG,CAAC93C,EAAMm9C,GAEhB,CAAE,OAAQ,GAAMn9C,KAAAA,CAAK,CAC/B,EAEas9C,EAAwB,CAAC,CAAEv/E,KAAAA,CAAI,CAAEiiC,KAAAA,EAAO63C,EAAAA,EAAgB,CAAE,IACrE,IAAM0F,EAAgBv9C,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,MAAM,AAAD,IAAM,EAAI63C,EAAAA,EAAgBA,CAAG73C,EAC9D,MAAO,CAAC,IAAI,EAAEjiC,EAAK,QAAQ,EAAEw/E,EAAc,IAAI,EAAErgF,KAAK,KAAK,CAAEA,AAAiB,KAAjBA,KAAK,MAAM,GAAsB,KAAM,CAAC,AACvG,EAEasgF,EAAuB,CAAC,CAAEx9C,KAAAA,CAAI,CAAEjiC,KAAAA,CAAI,CAAE,GAAK,IAAIrF,QAAQ,CAAC8pD,EAASC,KAC5E,GAAI,CACF,IAAMg7B,EAAeh4D,EAAAA,CAAMA,CAAC,QAAQ,CAAC,aAAa,CAAC,SACnDg4D,CAAAA,EAAa,GAAG,CAAGH,EAAsB,CAAEt9C,KAAAA,EAAMjiC,KAAAA,CAAK,GACtD0/E,EAAa,MAAM,CAAG,IAAMj7B,EAAQ/8B,EAAAA,CAAMA,CAAC,MAAM,CAAC,QAAQ,EAC1Dg4D,EAAa,OAAO,CAAG,IAAMh7B,EAAO,AAAI9J,MAAM,qCAE1C,CAAClzB,EAAAA,CAAMA,CAAC,MAAM,EAChBA,CAAAA,EAAAA,CAAMA,CAAC,MAAM,CAAG,CAAC,GAGnBA,EAAAA,CAAMA,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAACg4D,EACnC,CAAE,MAAOrrF,EAAG,CACVqwD,EAAOrwD,EACT,CACF,GAEasrF,EAAyB,CAAC,CAAE19C,KAAAA,CAAI,CAAEjiC,KAAAA,CAAI,CAAE,GAAK4/E,MAAML,EAAsB,CAAEt9C,KAAAA,EAAMjiC,KAAAA,CAAK,GAAI,CACrG,QAAS,CAAE,eAAgB,YAAa,CAC1C,GAAG,IAAI,CAAClG,AAAAA,GAAKA,EAAE,IAAI,IAAI,IAAI,CAACA,AAAAA,GAAKA,EAAE,OAAO,CAAC,mBAAoB,KAAK,IAAI,CAACA,AAAAA,GAAK+E,KAAK,KAAK,CAAC/E,IAE5E+lF,EAAuB9F,AAAAA,GAAe,SAAuB93C,CAAI,CAAE69C,CAAqB,E,IAElEC,EAAAA,EAAAA,EAEdrhF,EAHnB,IAAMshF,EAA6Bd,EAAkCnF,GAC/D15E,EAAMk+E,EAAqB,AAAMwB,OAANA,CAAAA,EAAAA,EAAAA,CAAMA,AAANA,GAAAA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAc,OAAdA,CAAAA,EAAAA,EAAQ,MAAM,AAAD,GAAbA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAwB,OAAxBA,CAAAA,EAAAA,EAAgB,QAAQ,AAAD,GAAvBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0B,IAAI,EACzDE,EAAwBH,GAAyB38E,OAAO,IAAI,CAAC02E,EAAAA,EAAmBA,EAAE,IAAI,CAACuE,AAAAA,GAAKvE,EAAAA,EAAmB,CAACuE,EAAE,CAAC/9E,IACnH6/E,EAAaxhF,AAAAA,CAAAA,AAAMA,OAANA,CAAAA,EAAAA,EAAAA,CAAMA,AAANA,GAAAA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAQ,QAAQ,AAAD,EAAI+gF,EAAuBE,EACvD3/E,EAAOigF,EAAwB,CAAC,4BAA4B,EAAEA,EAAsB,CAAC,CAAG,SAC9F,OAAO,IAAItlF,QAAQ,CAAC8pD,EAASC,KAC3Bw7B,EAAW,CAAElgF,KAAAA,EAAM,KAAMiiC,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAM,MAAM,AAAD,IAAM,EAAI63C,EAAAA,EAAgBA,CAAG73C,CAAK,GACnE,IAAI,CAACk9C,AAAAA,GAAmB16B,EAAQu7B,EAA2B/9C,EAAMk9C,KACjE,KAAK,CAAC1pE,AAAAA,GAAOivC,EAAO,AAAI9J,MAAMnlC,IACnC,EACF,EAEa0qE,EAA+B,KACtCC,IAAM14D,EAAAA,CAAMA,CAAC,YAAY,CAAC,+BAA+B,GAAK,CAACA,EAAAA,CAAMA,CAAC,YAAY,CAAC,mBAAmB,GACxGlf,QAAQ,GAAG,CAAC,0DAEZkf,EAAAA,CAAMA,CAAC,YAAY,CAAC,+BAA+B,CAAGqkB,YAAY,SACzCs0C,EAA0DC,EAYxEC,EAZT,IAAMC,EAAiBH,AAAAA,CAAAA,AAA8C,OAA9CA,CAAAA,EAAAA,EAAAA,CAAMA,CAAC,YAAY,CAAC,0BAA0B,AAAD,GAA7CA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgD,MAAM,AAAD,GAAC,CAAwC,OAApCC,CAAAA,EAAAA,EAAAA,CAAMA,CAAC,YAAY,CAAC,gBAAgB,AAAD,GAAnCA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAsC,MAAM,AAAD,EAE5H,IAAI54D,EAAAA,CAAMA,CAAC,YAAY,CAAC,mBAAmB,EAI3C,GAAI84D,EAKF,OAJAx0C,cAActkB,EAAAA,CAAMA,CAAC,YAAY,CAAC,+BAA+B,EACjEA,EAAAA,CAAMA,CAAC,YAAY,CAAC,+BAA+B,CAAG,KACtDA,EAAAA,CAAMA,CAAC,YAAY,CAAC,mBAAmB,CAAG,GAEnC+4D,IAAAA,IAAU,CAAC,4CAA6C,CAC7D,IAAK,AAAe,OAAfF,CAAAA,EAAAA,EAAAA,CAAMA,CAAC,QAAQ,AAAD,GAAdA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAiB,IAAI,CAC1B,OAAQ74D,EAAAA,CAAMA,CAAC,YAAY,CAAC,0BAA0B,AACxD,GAAG,IAAI,CAAC+2B,AAAAA,QACFiiC,EAC+BL,EAD/BK,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,AAAS,OAATA,CAAAA,EAAAA,EAAK,IAAI,AAAD,GAARA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAW,YAAY,AAAD,IAAM,KAC9Bl4E,QAAQ,GAAG,CAAC,CAAC,kBAAkB,EAAE,AAA8C,OAA9C63E,CAAAA,EAAAA,EAAAA,CAAMA,CAAC,YAAY,CAAC,0BAA0B,AAAD,GAA7CA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgD,MAAM,CAAC,6BAA6B,CAAC,CAE1H,GAAG,KAAK,CAAC,KACP73E,QAAQ,GAAG,CAAC,2DACd,GAGFw1E,EAAuBt2D,EAAAA,CAAMA,CAAC,YAAY,CAAC,gBAAgB,EAC7D,EAAG,MAEP,EI9OA,IAAMvpB,GJDkB47E,EICLA,EJDoB,SAAW33E,CAAG,CAAE3H,EAAS,CAAC,CAAC,MAQ3DhF,EAAAA,EAAAA,EAAAA,EAWQP,EAAAA,EAlBb,GAAI,CAACkN,GAGD,AAAe,UAAf,OAAOA,GAIP,CAAmC,OAAlC3M,CAAAA,EAAAA,AAAAA,CAAAA,AAAMA,OAANA,CAAAA,EAAAA,EAAAA,CAAMA,AAANA,GAAAA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAc,OAAdA,CAAAA,EAAAA,EAAQ,MAAM,AAAD,GAAbA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAwB,OAAxBA,CAAAA,EAAAA,EAAgB,QAAQ,AAAD,GAAvBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0B,IAAI,AAAD,GAAK,EAAC,GAAnCA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAuC,QAAQ,CAAC,8BAA6B,EANhF,OAAO2M,EAUT,IAAIy5E,EAAaz5E,EACjB,GAAI,CAMF,GALI,AAAiC,YAAjC,OAAO23E,EAAY,SAAS,CAC9B8B,EAAa9B,EAAY,SAAS,CAAC33E,EAAK3H,GACN,YAAzB,OAAOs/E,EAAY,CAAC,EAC7B8B,CAAAA,EAAa9B,EAAY,CAAC,CAAC33E,EAAK3H,EAAM,EAEpC,AAAqD,SAArD,CAAavF,OAANA,CAAAA,EAAAA,EAAAA,CAAMA,AAANA,GAAAA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAc,OAAdA,CAAAA,EAAAA,EAAQ,MAAM,AAAD,GAAbA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgB,yBAAyB,AAAD,EACjD,OAAOkN,EAET,GAAI23E,EAAY,aAAa,GAAKD,EAAAA,EAAgBA,EAAI13E,IAAQy5E,GAAc9B,EAAY,WAAW,CACjG,MAAO,GAEX,CAAE,MAAO1lF,EAAG,CACVmU,QAAQ,KAAK,CAAC,2DAA4DnU,EAC5E,CAIA,OAFcoG,EAAO,UAAU,CAAIohF,EAAW,OAAO,CAAC,WAAY,WAAaA,CAGjF,GAsB4B9B,EIpDDA,EAC3B,IAAM59D,GJ0FoChe,EI1FaA,EJ0FR,SAA6BiE,CAAG,CAAE3H,EAAS,CAAC,CAAC,E,IACrFhF,EAAAA,EAAAA,EAAAA,EAAL,GAAI,AAAmC,OAAlCA,CAAAA,EAAAA,AAAAA,CAAAA,AAAMA,OAANA,CAAAA,EAAAA,EAAAA,CAAMA,AAANA,GAAAA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAc,OAAdA,CAAAA,EAAAA,EAAQ,MAAM,AAAD,GAAbA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAwB,OAAxBA,CAAAA,EAAAA,EAAgB,QAAQ,AAAD,GAAvBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0B,IAAI,AAAD,GAAK,EAAC,GAAnCA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAuC,QAAQ,CAAC,+BACnD,MAAO,IAAM2M,EAEf,IAAMu+E,EAAmBxiF,EAAEiE,EAAK3H,GAC1BmmF,EAAmBC,AAAAA,IACvB,IAAMC,EAAUD,EAAa,KAAK,CAAC,aACnC,GAAIC,GAAWA,CAAO,CAAC,EAAE,CACvB,OAAOA,CAAO,CAAC,EAAE,AAEnB,OAAM,AAAIlmC,MAAM,CAAC,kBAAkB,EAAEimC,EAAa,oEAAoE,CAAC,CACzH,EAEA,OAAOE,AAAAA,IACL,GAAI,CACF,IAAMC,EAAgB,mBAChBC,EAAkB,mBAClBH,EAAWH,GAAoBA,EAAiB,KAAK,CAAIA,EAAiB,KAAK,CAACK,GAAiB,KACvG,GAAIF,GAAWA,EAAQ,MAAM,CAAG,EAAG,CACjC,IAAMI,EAAYH,GAAmB,CAAC,CAEJ,aAA9B,OAAOG,EAAU,QAAQ,EAC3BA,CAAAA,EAAU,QAAQ,CAAGpC,AAAAA,GAAMA,CAAC,EAG9B,IAAMqC,EAAiBL,EAAQ,GAAG,CAACM,AAAAA,IACjC,IAAMC,EAAa,CAAC,QAAQ,EAAET,EAAiBQ,GAAW,CAAC,CACrDE,EAAiBF,EAAU,OAAO,CAACH,EAAiB,UAC1D,AAAI,AAAiC,YAAjC,OAAOC,CAAS,CAACG,EAAW,CACvBH,CAAS,CAACG,EAAW,CAACC,GAExBJ,EAAU,QAAQ,CAACI,EAC5B,GAEA,OAAOX,EAAiB,KAAK,CAACK,GAAe,GAAG,CAAC,CAACO,EAAStgF,IACzD,AAAiC,SAA1BkgF,CAAc,CAAClgF,EAAM,CACxB,CAACsgF,EAASJ,CAAc,CAAClgF,EAAM,CAAC,CAChC,CAACsgF,EAAQ,CAEjB,CACF,CAAE,MAAO9rE,EAAK,CACZjN,QAAQ,KAAK,CAACiN,EAChB,CACA,OAAOkrE,CACT,CACF,IIrIAa,ACDO,SAAyCzH,CAAW,CAAE57E,CAAC,E,IAuBFsjF,EAAAA,EAtB1D,IAAMC,EAAgB7B,EAAqB9F,GACrC4H,EAAoB3C,EAAyBjF,GAC7CiG,EAA6Bd,EAAkCnF,EAGrE6H,CAAAA,OAAO,SAAS,CAAC,MAAM,CAAG,WACxB,OAAOzjF,EAAE,IAAI,CACf,EAEI,CAACupB,EAAAA,CAAMA,CAAC,YAAY,GACtBA,EAAAA,CAAMA,CAAC,GAAG,CAAGvpB,EACbupB,EAAAA,CAAMA,CAAC,YAAY,CAAGqyD,EACtBryD,EAAAA,CAAMA,CAAC,YAAY,CAAC,CAAC,CAAGvpB,EACxBupB,EAAAA,CAAMA,CAAC,YAAY,CAAC,aAAa,CAAGg6D,EACpCh6D,EAAAA,CAAMA,CAAC,YAAY,CAAC,0BAA0B,CAAGs4D,EACjDt4D,EAAAA,CAAMA,CAAC,YAAY,CAAC,iBAAiB,CAAGi6D,EACxCj6D,EAAAA,CAAMA,CAAC,YAAY,CAAC,+BAA+B,CAAG,KACtDA,EAAAA,CAAMA,CAAC,YAAY,CAAC,0BAA0B,CAAG,EAAE,CACnDA,EAAAA,CAAMA,CAAC,YAAY,CAAC,oCAAoC,CAAGy4D,EAC3Dz4D,EAAAA,CAAMA,CAAC,YAAY,CAAC,mBAAmB,CAAG,IAGxCA,EAAAA,CAAMA,CAAC,MAAM,EAAIA,EAAAA,CAAMA,CAAC,MAAM,CAAC,mBAAmB,GAAiB,OAAb+5D,CAAAA,EAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAqB,OAArBA,CAAAA,EAAAA,EAAe,MAAM,AAAD,GAApBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAuB,QAAQ,AAAD,GACtFzB,EAA2Bt4D,EAAAA,CAAMA,CAAC,MAAM,CAAC,aAAa,CAAEA,EAAAA,CAAMA,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAGnFirD,KAAkB0L,KAAqB32D,AAAsC,UAAtCA,EAAAA,CAAMA,CAAC,YAAY,CAAC,aAAa,EAC1Ey4D,GAEJ,ED7BgCpG,EAAa57E,E,8JEG7C,IAAMunC,EAAQpJ,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAW,CAAC,CACxBxiB,SAAAA,CAAQ,CACRyY,eAAAA,CAAc,CACdsvD,UAAAA,CAAS,CACTC,wBAAAA,CAAuB,CACvBC,sBAAAA,CAAqB,CACrBC,oBAAAA,CAAmB,CACnBlgB,eAAAA,CAAc,CACdE,eAAAA,CAAc,CACdD,gBAAAA,CAAe,CACfkgB,eAAAA,CAAc,CACdC,eAAAA,CAAc,CACdC,aAAAA,CAAY,CACZC,gBAAAA,CAAe,CACfC,wBAAAA,CAAuB,CACvBC,UAAAA,CAAS,CACTC,wBAAAA,CAAuB,CACvBpkF,EAAAA,CAAC,CACDqkF,UAAAA,CAAS,CACV,CAAE7xD,KAED,IAAM8xD,EAAYj2D,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,IAEd2+B,EAAW,kFAEf,GAAI62B,GAAuBK,EAAwB,MAAM,CAAG,EAAG,CAC7D,IAAMK,EAAqBL,EAAwB,IAAI,CAAC,KACxDl3B,EAAW,CAAC,EAAEA,EAAS,CAAC,EAAEu3B,EAAmB,CAAC,AAChD,CAEA,GAAM,CAACjwD,EAAWkwD,EAAc,CAAGxhE,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAASoR,GACtCqwD,EAAWnpF,AAAAA,IAGX,CADgB,IADEiuB,EAAAA,CAAMA,CAAC,QAAQ,CAAC,gBAAgB,CAACyjC,GACjB,CAAC,IAAI,CAACjJ,AAAAA,GAAa2gC,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAa3gC,EAAWzoD,EAAM,MAAM,IAE3FkpF,EAAc,GAElB,EACMG,EAAaR,EAAYS,AAAAA,CAAAA,EAAAA,EAAAA,gBAAAA,AAAAA,EAAiBtwD,EAAW8vD,GAA2B/1D,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,IAChFw2D,EAAO,IAAML,EAAc,IAC3BM,EAAO,IAAMN,EAAc,IAC3BO,EAAmB,IAAMP,EAAc,CAAClwD,GAC9C0wD,AAAAA,CAAAA,EAAAA,EAAAA,mBAAAA,AAAAA,EAAoBxyD,EAAK,IAAO,mBAC3B8xD,EAAU,OAAO,GACpBO,KAAAA,EACAC,KAAAA,EACAC,iBAAAA,EACAzwD,UAAAA,EACAqwD,WAAAA,C,IAGFhnE,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,GAAIkmE,EAEF,OADAt6D,EAAAA,CAAMA,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAWk7D,GACnC,IAAMl7D,EAAAA,CAAMA,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAWk7D,EAE9D,EAAG,CAACz3B,EAAS,EAEbrvC,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACJsmE,IACE3vD,EACF2wD,IAAAA,IAAe,CAAC,MAAOJ,GAEvBI,IAAAA,MAAiB,CAAC,MAAOJ,IAGtB,IAAMI,IAAAA,MAAiB,CAAC,MAAOJ,IACrC,CAACZ,EAAiB3vD,EAAU,EAE/B4wD,AAAAA,CAAAA,EAAAA,EAAAA,oBAAAA,AAAAA,EAAqB,KACf,CAAC5wD,GACH0vD,GAEJ,EAAG,CAAC1vD,EAAU,EAEd,IAAM6wD,EAAgB92D,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO+2D,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,KAAmB,OAAO,CACjDC,EAAmBh3D,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO+2D,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,KAAmB,OAAO,CAE1D,MACE,UAACE,EAAAA,CAAMA,CAAAA,CACL,IAAKhB,EACL,UAAWZ,EACX,gBAAgB,2BAChB,kBAAmBC,EACnB,sBAAuBC,E,SAEtBtvD,GACC,UAACqvC,EAAAA,C,SACC,UAAC,uCACC,IAAKghB,C,EACDZ,GAAAA,CACJ,KAAK,SACL,aAAW,OACX,6BAA0B,E,GACrB,AAACM,EAGF,CACF,aAAcA,CAChB,EALkB,CAChB,kBAAmBc,EACnB,mBAAoBE,CACtB,GAEA,CACA,SAAS,K,SAET,WAACzhB,EAAAA,C,UACC,UAACC,EAAAA,CACC,cAAeshB,EACf,iBAAkBE,EAClB,EAAGrlF,C,GAEJ2b,EACD,UAACmoE,EAAAA,CAAAA,G,SAOf,EAEAv8C,CAAAA,EAAM,SAAS,CAAG,CAChB,UAAW7sB,EAAAA,IAAIA,CACf,eAAgBA,EAAAA,IAAIA,CACpB,SAAUwB,EAAAA,IAAAA,CAAAA,UAAe,CACzB,oBAAqBxB,EAAAA,IAAIA,CACzB,eAAgBuB,EAAAA,WAAWA,CAC3B,eAAgBA,EAAAA,WAAWA,CAC3B,gBAAiBA,EAAAA,WAAWA,CAC5B,eAAgBA,EAAAA,WAAWA,CAC3B,wBAAyBtB,EAAAA,MAAMA,CAC/B,eAAgBgiC,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAAC,GACvB,aAAcrhC,EAAAA,IAAIA,CAClB,gBAAiBZ,EAAAA,IAAIA,CACrB,wBAAyB0hB,AAAAA,CAAAA,EAAAA,EAAAA,OAAAA,AAAAA,EAAQzhB,EAAAA,MAAMA,EACvC,UAAWD,EAAAA,IAAIA,CACf,wBAAyBu+C,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,CACjC39C,EAAAA,IAAIA,CACJqhC,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM,CAAE,QAAS4oC,EAAAA,GAAGA,AAAC,GACtB,EACD,sBAAuB5qE,EAAAA,MAAMA,CAC7B,UAAWA,EAAAA,MAAMA,AACnB,EAGA4sB,EAAM,YAAY,CAAG,CACnB,UAAW,GACX,eAAgB,GAChB,oBAAqB,GACrB,wBAAyB,OACzB,eAAgB,CAAC,CAAE5rB,SAAAA,CAAQ,CAAE,GAC3B,UAAC,OAAI,MAAO,CACV,SAAU,QACV,OAAQ,EACR,KAAM,EACN,IAAK,EACL,MAAO,OACP,OAAQ,OACR,SAAU,OACV,gBAAiB,mBACnB,E,SAEGA,C,GAGL,gBAAiB,CAAC,CAAEA,SAAAA,CAAQ,CAAE,GAC5B,UAAC,OACC,MAAO,CACL,gBAAiB,UACjB,OAAQ,WACR,QAAS,OACT,OAAQ,iBACR,MAAO,KACT,E,SAECA,C,GAGL,eAAgB,CAAC,CAAEA,SAAAA,CAAQ,CAAE,GAAK,UAAC,O,SAAKA,C,GACxC,eAAgB,CAAC,CAAEA,SAAAA,CAAQ,CAAE,GAAK,UAAC,O,SAAKA,C,GACxC,eAAgB,CAAC,EACjB,aAAc,KAAO,EACrB,gBAAiB,GACjB,wBAAyB,EAAE,CAC3B,UAAW,GACX,wBAAyB,KACzB,sBAAuB,GACvB,UAAW,EACb,EAEA,IAAe4rB,C,oFCnMf,IAAM+9C,EAASnnD,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAW,CAAC,CACzBxiB,SAAAA,CAAQ,CACR+nE,UAAAA,CAAS,CACT8B,gBAAAA,CAAe,CACfC,kBAAAA,CAAiB,CACjB7B,sBAAAA,CAAqB,CACtB,CAAEpxD,KACD,IAAM8xD,EAAYoB,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAaD,EAAmB/B,EAAW8B,EAAiB5B,GAM9E,MAJAoB,AAAAA,CAAAA,EAAAA,EAAAA,mBAAAA,AAAAA,EAAoBxyD,EAAK,IAAO,EAC9B,SAAU8xD,EAAU,OAAO,CAAGA,EAAU,OAAO,CAAC,EAAE,CAAG,EACvD,IAEOZ,GAAaY,EAAU,OAAO,CAAG5lC,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EACtC/iC,EACA2oE,EAAU,OAAO,EACf3oE,CACN,EAEA2pE,CAAAA,EAAO,SAAS,CAAG,CACjB,SAAUppE,EAAAA,IAAAA,CAAAA,UAAe,CACzB,UAAWxB,EAAAA,IAAIA,CACf,kBAAmBC,EAAAA,MAAMA,CACzB,gBAAiBA,EAAAA,MAAMA,CACvB,sBAAuBA,EAAAA,MAAMA,AAC/B,EAEA2qE,EAAO,YAAY,CAAG,CACpB,UAAW,GACX,kBAAmB,OACnB,gBAAiBppF,KAAAA,EACjB,sBAAuB,EACzB,EAEA,IAAeopF,C,sHCxCR,IAAMK,EAAmB,CAC9B,MAAO,GACP,UAAW,EACX,MAAO,IACP,IAAK,EACL,MAAO,GACP,OAAQ,EACV,EAEaC,EAAe,eACfC,EAAkB,uB,2pBCFxB,IAAMC,EAAuB,CAACvrF,EAAcmzB,EAAO,EAAE,CAAEq4D,EAAa,CAAC,UAAU,IACpF,GAAM,CAACzxD,EAAWkwD,EAAc,CAAGxhE,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAASzoB,GAY5C,MAVAojB,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,IAAM8mE,EAAW,CAAC,CAAEtnE,OAAAA,CAAM,CAAE,GAAK,CAACuQ,EAAK,IAAI,CAAC8E,AAAAA,GAAOkyD,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAalyD,EAAI,OAAO,CAAErV,KAAYqnE,EAAc,IAMvG,OAJAuB,EAAW,OAAO,CAACC,AAAAA,IACjBz8D,EAAAA,CAAMA,CAAC,gBAAgB,CAACy8D,EAAWvB,EACrC,GAEO,IAAMsB,EAAW,OAAO,CAACC,AAAAA,GAAaz8D,EAAAA,CAAMA,CAAC,mBAAmB,CAACy8D,EAAWvB,GACrF,EAAG,CAAC/2D,EAAK,EAEF,CAAC4G,EAAWkwD,EAAc,AACnC,EAEayB,EAAmC,CAAC,CAAEv4D,KAAAA,EAAO,EAAE,CAAE5f,SAAAA,EAAW,IAAI,CAAEk4E,UAAAA,EAAY,SAAS,CAAE,IACpG,IAAME,EAAY,AAAoB,YAApB,OAAOp4E,EAA0BA,EAAWtO,AAAAA,GAAKA,EACnEme,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,IAAM8mE,EAAW,CAAC,CAAEtnE,OAAAA,CAAM,CAAE,GAAK,CAACuQ,EAAK,IAAI,CAAC8E,AAAAA,GAAOkyD,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAalyD,EAAI,OAAO,CAAErV,KAAY+oE,EAAU/oE,GAGnG,OADAoM,EAAAA,CAAMA,CAAC,gBAAgB,CAACy8D,EAAWvB,GAC5B,IAAMl7D,EAAAA,CAAMA,CAAC,mBAAmB,CAACy8D,EAAWvB,EACrD,EAAG,CAAC/2D,EAAK,CACX,EAEay4D,EAAgC,CAAC5rF,EAAcmzB,EAAO,EAAE,IACnE,GAAM,CAAC4G,EAAWkwD,EAAc,CAAGxhE,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAASzoB,GAS5C,MAPAojB,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,IAAM8mE,EAAW,CAAC,CAAEtnE,OAAAA,CAAM,CAAE,GAAK,CAACuQ,EAAK,IAAI,CAAC8E,AAAAA,GAAOkyD,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAalyD,EAAI,OAAO,CAAErV,KAAYqnE,EAAc,IAGvG,OADAj7D,EAAAA,CAAMA,CAAC,gBAAgB,CAAC,YAAak7D,GAC9B,IAAMl7D,EAAAA,CAAMA,CAAC,mBAAmB,CAAC,YAAak7D,EACvD,EAAG,CAAC/2D,EAAK,EAEF,CAAC4G,EAAWkwD,EAAc,AACnC,EAEa4B,EAAmC,CAAC7rF,EAAcyyD,KAC7D,GAAM,CAAC14B,EAAWkwD,EAAc,CAAGxhE,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAASzoB,GACtCkqF,EAAWnpF,AAAAA,IAGX,CADgB,IADEiuB,EAAAA,CAAMA,CAAC,QAAQ,CAAC,gBAAgB,CAACyjC,GACjB,CAAC,IAAI,CAACjJ,AAAAA,GAAa2gC,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAa3gC,EAAWzoD,EAAM,MAAM,IAE3FkpF,EAAc,GAElB,EAOA,MALA7mE,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR4L,EAAAA,CAAMA,CAAC,gBAAgB,CAAC,UAAWk7D,GAC5B,IAAMl7D,EAAAA,CAAMA,CAAC,mBAAmB,CAAC,UAAWk7D,IAClD,CAACz3B,EAAS,EAEN,CAAC14B,EAAWkwD,EAAc,AACnC,EAEa6B,EAAoB,CAAC9rF,EAAc+rF,EAAgB,EAAK,IAEnE,IAAMC,EAAuB,AAAC7qF,MAAM,OAAO,CAACnB,GAAiCA,EAAjB,CAACA,EAAa,CAGpE,CAACisF,EAAiBC,EAAmB,CAAGzjE,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAASujE,UAkBvD,AAAID,EACK,CAACE,EAhBoBE,AAAAA,IAG5BD,EAD0BE,AADJH,EAAgB,OAAO,CAACE,GAAiB,GACrBF,EAAgB,MAAM,CAACjpF,AAAAA,GAASmpF,IAAkBnpF,GAAS,IAAIipF,EAAiBE,EAAc,CAE1I,EAYkDD,EAAmB,CAG9D,CAACD,EAb4BE,AAAAA,IAElC,IADsBF,CAAAA,EAAgB,OAAO,CAACE,GAAiB,EAAC,EAKhED,EAAmB,CAACC,EAAc,CACpC,EAMsDD,EAAmB,AAC3E,EAEavB,EAAuB,CAAC0B,EAAeC,KAClD,IAAMC,EAAaz4D,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,IAE1B1Q,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,GAAImpE,EAAW,OAAO,CAAE,CACtBA,EAAW,OAAO,CAAG,GACrB,MACF,CAEA,OAAOF,GACT,EAAGC,EACL,EAEaE,EAAkB,CAAC,GAAGr5D,KACjC,IAAMs5D,EAAY34D,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,IAiBlB,MAfA1Q,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR+P,EAAK,OAAO,CAAC8E,AAAAA,IACX,IAAI,CAACA,EAID,AAAe,YAAf,OAAOA,EACTA,EAAIw0D,EAAU,OAAO,EAGrBx0D,EAAI,OAAO,CAAGw0D,EAAU,OAAO,AAEnC,EACF,EAAG,CAACt5D,EAAK,EAEFs5D,CACT,EAEatB,EAAe,CAC1BD,EAAoB,MAAM,CAC1B/B,EAAY,EAAK,CACjB8B,EAAkB,oCAAoC,CACtD5B,EAAwB,EAAE,IAG1B,IAAMqD,EAAsBx4D,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAY,KACtC,GAAI,CAACi1D,EAAW,OAEhB,IAAMwD,EAAkB39D,EAAAA,CAAMA,CAAC,QAAQ,CAAC,aAAa,CAACk8D,GACtD,GAAIyB,EAAiB,CAEnB,IAAMC,EAAmB3B,EAAAA,GAAkB0B,EAAgB,aAAa,CAAC,CAAC,CAAC,EAAE1B,EAAgB,MAAM,CAAC,EACpG,GAAI2B,EAAkB,OAAOA,EAG7B,IAAMxhF,EAAKy/E,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,IACLgC,EAAM79D,EAAAA,CAAMA,CAAC,QAAQ,CAAC,aAAa,CAAC,OAI1C,OAHA69D,EAAI,YAAY,CAAC5B,EAAiB,QAClC4B,EAAI,YAAY,CAAC,KAAMzhF,GACvBuhF,EAAgB,WAAW,CAACE,GACrBA,CACT,CACF,EAAG,CAAC3B,EAAmB/B,EAAW8B,EAAgB,EAG5ClB,EAAYj2D,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAOu1D,EAAwBl4E,SAAS,aAAa,CAACk4E,GAAyBqD,KAMjG,MAJAtpE,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR2mE,EAAU,OAAO,CAAG2C,KAAyB3C,EAAU,OAAO,AAChE,EAAG,CAAC2C,EAAoB,EAEjB3C,CACT,EAEa+C,EAAe,CAAC9sF,EAAc,CACzC,OAAQ+sF,CAAc,CACtB,WAAYC,CAAkB,CAC9B,YAAaC,CAAmB,CAChC,YAAaC,CAAmB,CACjC,CAAG,CAAC,CAAC,IACJ,GAAM,CAACC,EAAYC,EAAa,CAAG3kE,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAASzoB,GAEtCqtF,EAA2B,CAACntF,EAAOqT,IAAaxS,AAAAA,IACpDqsF,EAAaltF,GACba,EAAM,eAAe,GACrBA,EAAM,cAAc,GAEI,YAApB,OAAOwS,GACTA,EAASxS,GAGJ,IAGHusF,EAAcD,EAAyB,GAAMJ,GAC7CM,EAAaF,EAAyB,GAAML,GAC5CQ,EAAcH,EAAyB,GAAOH,GAGpD,MAAO,CAACC,EAAY,CAClBG,YAAAA,EAAaC,WAAAA,EAAYC,YAAAA,EAAaC,OAHzBJ,EAAyB,GAAON,EAI/C,EAAE,AACJ,EAEMW,EAAgB,EAAE,CACXC,EAAYxS,AAAAA,IACvB,GAAM,CAACyS,EAAaC,EAAa,CAAGplE,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,CAAE,OAAQ,GAAO,MAAO,EAAM,GA8B3E,MA5BArF,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,GAAIsqE,EAAc,OAAO,CAACvS,GAAO,GAE/B,OADA0S,EAAa,CAAE,OAAQ,GAAM,MAAO,EAAM,GACnC5oF,AAAAA,GAAKA,EAGdyoF,EAAc,IAAI,CAACvS,GAEnB,IAAM2S,EAAY38E,SAAS,aAAa,CAAC,SACzC28E,CAAAA,EAAU,GAAG,CAAG3S,EAChB2S,EAAU,KAAK,CAAG,GAElB,IAAMC,EAAe,IAAMF,EAAa,CAAE,OAAQ,GAAM,MAAO,EAAM,GAC/DG,EAAgB,KACpBH,EAAa,CAAE,OAAQ,GAAM,MAAO,EAAK,GACzCC,EAAU,MAAM,EAClB,EAMA,OAJAA,EAAU,gBAAgB,CAAC,OAAQC,GACnCD,EAAU,gBAAgB,CAAC,QAASE,GACpC78E,SAAS,IAAI,CAAC,WAAW,CAAC28E,GAEnB,KACLA,EAAU,mBAAmB,CAAC,OAAQC,GACtCD,EAAU,mBAAmB,CAAC,QAASE,EACzC,CACF,EAAG,CAAC7S,EAAI,EAEDyS,CACT,EAEaK,EAAU,CAACC,EAAMh8D,EAAYorC,EAAO,CAAC,OAAO,CAAE6wB,EAAc,CACvE,WAAY,GACZ,UAAW,GACX,SAAU,EACV,SAAU,IACV,iBAAkB,GAClB,mBAAoB,CACtB,CAAC,IACC,IAAMC,EAAOj4D,AAAAA,CAAAA,EAAAA,EAAAA,OAAAA,AAAAA,EAAQ,IAAM,IAAIk4D,EAAAA,CAAIA,CAACH,EAAM,mBAAKC,GAAAA,CAAa7wB,KAAAA,C,IAAS,CAAC4wB,EAAMC,EAAa7wB,EAAK,EAE9F,MADgBnnC,AAAAA,CAAAA,EAAAA,EAAAA,OAAAA,AAAAA,EAAQ,IAAO,AAACjE,EAAoBk8D,EAAK,MAAM,CAACl8D,GAAnBg8D,EAAiC,CAACE,EAAMl8D,EAAW,CAElG,EAEao8D,EAAUtrF,AAAAA,IACrB,IAAMi1B,EAAMnE,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,IAIZ,MAHA1Q,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR6U,EAAI,OAAO,CAAGj1B,CAChB,GACOi1B,EAAI,OAAO,AACpB,EAEas2D,EAAYC,AAAAA,IACvB,IAAMv2D,EAAMnE,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,IAgCZ,MA9BA1Q,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,EAAU,KACR,IAAIqrE,EAsBJ,OApBAz/D,EAAAA,CAAMA,CAAC,qBAAqB,CAAC,KACtBiJ,EAAI,OAAO,GAEZjJ,EAAAA,CAAMA,CAAC,oBAAoB,CAW7By/D,AAVAA,CAAAA,EAAW,IAAIz/D,EAAAA,CAAMA,CAAC,oBAAoB,CAAC,CAAC,CAAC43D,EAAM,IACjD,GAAIA,AAA4B,IAA5BA,EAAM,iBAAiB,CAI3B4H,EAAS,IAETC,EAAS,SAAS,CAACx2D,EAAI,OAAO,CAChC,EAAG,CAAE,UAAW,CAAE,EAAC,EAEV,OAAO,CAACA,EAAI,OAAO,EAE5Bu2D,EAAS,IAEb,GAEO,KACDC,GACFA,EAAS,UAAU,EAEvB,CACF,EAAG,CAACx2D,EAAI,OAAO,CAAC,EAET,CAACA,EAAI,AACd,EAEaoyD,EAAmB,CAAChoE,EAAQwnE,KACvC,IAAM6E,EAAW56D,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,IACX66D,EAAmB9E,GAA2B/1D,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,IAC9Cy4D,EAAaz4D,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,EAAO,IAmB1B,MAjBA86D,AAAAA,CAAAA,EAAAA,EAAAA,eAAAA,AAAAA,EAAgB,SAKdC,EAKEC,EAEAC,EAXF,GAAIxC,EAAW,OAAO,EAAI,CAAClqE,EAAQ,CACjCkqE,EAAW,OAAO,CAAG,GACrB,MACF,CAUA,O,AATgB,OAAhBsC,CAAAA,EAAAA,EAAS,OAAO,AAAD,GAAfA,AAAAA,KAAAA,IAAAA,GAAAA,EAAkB,YAAY,CAAC,WAAYxsE,EAAS,EAAI,IACpDA,GACE,CAACwnE,GACH8E,CAAAA,EAAiB,OAAO,CAAGx9E,SAAS,aAAa,AAAD,E,AAElC,OAAhB29E,CAAAA,EAAAA,EAAS,OAAO,AAAD,GAAfA,AAAAA,KAAAA,IAAAA,GAAAA,EAAkB,KAAK,I,AAEC,OAAxBC,CAAAA,EAAAA,EAAiB,OAAO,AAAD,GAAvBA,AAAAA,KAAAA,IAAAA,GAAAA,EAA0B,KAAK,GAE1B,K,IAAMA,E,OAAwB,OAAxBA,CAAAA,EAAAA,EAAiB,OAAO,AAAD,GAAvBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA0B,KAAK,E,CAC9C,EAAG,CAAC1sE,EAAO,EAEJqsE,CACT,C,wQCjTO,IAAMM,EAAe,CAACt8D,EAAOrnB,EAAM4jF,EAAO,MAAM,GACrD,AAAI,AAAiB,UAAjB,OAAOv8D,EACF,UAACu8D,EAAAA,CAAK,YAAW5jF,E,SAAOqnB,C,GAE1BA,EAIIw8D,EAAiBC,AAAAA,GAAW1kF,OAAO,IAAI,CAAC2gF,EAAAA,EAAgBA,EAAE,MAAM,CAACtlF,AAAAA,GAAOqpF,EAAQ,OAAO,CAACrpF,GAAO,IAAI,GAAG,CAACA,AAAAA,GAAQ,EAAEA,IAAAA,EAAK,QAASslF,EAAAA,EAAgB,CAACtlF,EAAI,AAAC,IACrJspF,EAAiBD,AAAAA,IAC5B,IAAME,EAAkBH,EAAeC,GACvC,MAAO,CAAC,CAAErpF,IAAAA,CAAG,CAAEqiC,QAAAA,CAAO,CAAE,GAAKknD,EAAgB,MAAM,CAAC,CAAC,CAAE,IAAKC,CAAW,CAAE,QAASC,CAAe,CAAE,GAAMD,IAAgBxpF,GAAOypF,IAAoBpnD,GAAU,MAAM,CAAG,CACzK,EACaqnD,EAAoBJ,EAAe,CAAC,QAAQ,EACpBA,EAAe,CAAC,YAAY,EAClCA,EAAe,CAAC,MAAM,EACZA,EAAe,CAAC,QAAS,QAAS,QAAS,MAAM,EACnF,IAAMK,EAA2BL,EAAe,CAAC,QAAS,QAAQ,EACvCA,EAAe,CAAC,SAAS,EAGpD,IAAMM,EAAiBjzC,AAAAA,GAAWA,EAAQ,MAAM,CAAC,CAACkzC,EAAkB/6D,IAAW+6D,EAAiB,MAAM,CAAC/6D,AAAgB,UAAhBA,EAAO,IAAI,CAAe86D,EAAe96D,EAAO,OAAO,EAAI,CAACA,EAAO,EAAG,EAAE,EACzKg7D,EAAoB,CAAC5sF,EAAOy5C,EAASozC,EAAa,EAAK,IAClE,GAAIpzC,AAAmB,IAAnBA,EAAQ,MAAM,CAChB,OAGF,IAAMkzC,EAAmBD,EAAejzC,GAClCqzC,EAAiCH,EAAiB,IAAI,CAAC/6D,AAAAA,GAAUA,EAAO,QAAQ,EAChFm7D,EAAqBF,GAAcC,EACnCE,EAAmBD,EAAqBJ,EAAiB,MAAM,CAAC/6D,AAAAA,GAAU,CAACA,EAAO,QAAQ,EAAI+6D,SAEpG,AAAK3sF,EAGEgtF,EAAiB,IAAI,CAAC,CAAC,CAAE,MAAOC,CAAW,CAAE,GAAKA,IAAgBjtF,GAFhE+sF,EAAqBpuF,KAAAA,EAAYquF,CAAgB,CAAC,EAAE,AAG/D,EAEaE,EAAqB,CAAC,CAAE59E,KAAAA,CAAI,CAAEjH,KAAAA,CAAI,CAAE8kB,KAAAA,CAAI,CAAE,CAAExoB,IAChD,EACL2K,KAAAA,EAAMjH,KAAAA,EAAM8kB,KAAAA,EAAMxoB,IAAAA,CACpB,GAGWkjF,EAAkB,IAAMsF,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,IAAS,KAAK,CAAC,OAAO,IAAI,CAAC,I,4FCjDzD,IAAMj3E,EAAY,CAACk3E,EAAOC,EAAQC,KACvC,IAAMC,EAAI,IAAIlqF,KACdkqF,EAAE,OAAO,CAACA,EAAE,OAAO,GAAMD,MAAAA,GACzB,IAAM38C,EAAU,CAAC,QAAQ,EAAE48C,EAAE,WAAW,GAAG,CAAC,AAC5Cp/E,CAAAA,SAAS,MAAM,CAAG,CAAC,EAAEi/E,EAAM,CAAC,EAAEC,EAAO,EAAE,EAAE18C,EAAQ,UAAU,EAAE3kB,EAAAA,CAAMA,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,+BAA+B,CAAC,AACnJ,EAEaV,EAAaxoB,AAAAA,IACxB,IAAM0qF,EAASr/E,SAAS,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,EAAErL,EAAI,gBAAgB,CAAC,EACtE,OAAO0qF,EAASA,EAAO,GAAG,GAAK7uF,KAAAA,CACjC,C,8FCKO,IAAMy7B,EAAkB9qB,AAAAA,I,IAGFu1E,EAA2BR,EAAAA,EAFtD,IAAMoJ,EAAQn+E,EAAK,OAAO,CAAC,MAAO,OAAO,OAAO,CAAC,OAAQ,OAEnDo+E,EAAUxf,AADF,AAAI+P,OAAO,CAAC,MAAM,EAAEwP,EAAM,SAAS,CAAC,EAC5B,IAAI,CAAC5I,AAAAA,CAAAA,AAAe,OAAfA,CAAAA,EAAAA,EAAAA,CAAMA,CAAC,QAAQ,AAAD,GAAdA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAiB,MAAM,AAAD,GAAC,CAAiB,OAAbR,CAAAA,EAAAA,EAAAA,CAAMA,CAAC,MAAM,AAAD,GAAZA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,AAAuB,OAAvBA,CAAAA,EAAAA,EAAe,QAAQ,AAAD,GAAtBA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAyB,MAAM,AAAD,GACpF,OAAOqJ,AAAY,OAAZA,EAAmB,GAAKp3B,mBAAmBo3B,CAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAO,KAC9E,EAaMC,EAAkB,CAACrjF,EAAOw/D,EAAM9sC,KACpC,IAAM4b,EAAa5b,EAAK,EAAI1yB,EAAM,MAAM,CAAG0yB,EAAKA,EAC1C95B,EAAOoH,EAAM,MAAM,CAACw/D,EAAM,EAAE,CAAC,EAAE,CACrCx/D,EAAM,MAAM,CAACsuC,EAAY,EAAG11C,EAC9B,EAEa0qF,EAAY,CAACtjF,EAAOw/D,EAAM9sC,KACrC,IAAM6wD,EAAWvjF,EAAM,KAAK,GAE5B,OADAqjF,EAAgBE,EAAU/jB,EAAM9sC,GACzB6wD,CACT,C,8LCzCO,IAAMC,EAAiBpvF,AAAAA,GACrB+I,OAAO,IAAI,CAAC/I,GAChB,GAAG,CAACoE,AAAAA,GAAO,CAAC,EAAEA,EAAI,CAAC,EAAEtK,OAAO,kBAAkB,CAACkG,CAAI,CAACoE,EAAI,EAAE,CAAC,EAC3D,IAAI,CAAC,KAGGirF,EAAc,CAACp1F,EAAGq1F,EAAa,IAAMrvF,KAAAA,CAAS,CAAEsvF,EAAkB,EAAI,IACjF,GAAM,CAAEnrF,IAAAA,EAAM,EAAE,CAAEqiC,QAAAA,CAAO,CAAE,CAAGxsC,EACzBmK,CAAAA,GAAOA,AAAQ,UAARA,GAAoBqiC,AAAY,KAAZA,CAAa,IACvC8oD,GACFt1F,EAAE,eAAe,GAEnBq1F,IAEJ,EAEaE,EAAS,CAAC9lF,EAAI+vE,EAAKC,KAC9B,GAAIjqE,SAAS,cAAc,CAAC/F,GAC1B,MAAO,GAGT,IAAMiwE,EAAKlqE,SAAS,aAAa,CAAC,SAElCkqE,CAAAA,EAAG,EAAE,CAAGjwE,EACRiwE,EAAG,MAAM,CAAGD,EACZC,EAAG,GAAG,CAAGF,EACT,IAAMG,EAAMnqE,SAAS,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAClDmqE,EACFA,EAAI,UAAU,CAAC,YAAY,CAACD,EAAIC,GAEhCnqE,SAAS,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAACkqE,EAEzD,EAyBa8O,EAAe,CAACgH,EAAOC,IAAUC,IAAUF,IAAUE,IAAUD,IAAYD,CAAAA,IAAUC,GAAUjH,EAAagH,EAAOC,EAAM,UAAU,GA6CnIE,EAAe,KAC1B,IAAMC,EAAepgF,SAAS,eAAe,CAAC,YAAY,CAAGA,SAAS,eAAe,CAAC,YAAY,CAC5FqgF,EAAcrgF,SAAS,eAAe,CAAC,WAAW,CAAGA,SAAS,eAAe,CAAC,WAAW,CAC/F3V,OAAO,QAAQ,CAACg2F,EAAc,EAAIA,EAAc,EAAGD,EAAe,EAAIA,EAAe,EACvF,C,8FC5GO,IAAME,EAAgB,CAC3B,WAAY,aACZ,OAAQ,SACR,SAAU,WACV,SAAU,WACV,MAAO,OACT,EAEaC,EAAmB,CAC9BD,EAAc,UAAU,CACxBA,EAAc,MAAM,CACpBA,EAAc,QAAQ,CACtBA,EAAc,QAAQ,CACtBA,EAAc,KAAK,CACpB,C,qECZD,IAAME,EAAqB3xF,AAAAA,GAClB,CAACE,EAAQF,CAAY,CAAEG,IAC5B,AAAKA,EAAO,IAAI,CACZA,AAAgB,oBAAhBA,EAAO,IAAI,CACN,mBACFD,GAAAA,CACH,CAACC,EAAO,OAAO,CAAC,WAAW,CAAC,CAAE,CAC5B,KAAMA,EAAO,OAAO,CAAC,WAAW,CAChC,MAAOA,EAAO,OAAO,CAAC,YAAY,AACpC,C,GAGAA,AAAgB,0BAAhBA,EAAO,IAAI,CACN,WACFD,EACAC,EAAO,OAAO,CAAC,eAAe,EAGjCA,AAAgB,uBAAhBA,EAAO,IAAI,CACN,WACFA,EAAO,OAAO,CAAC,eAAe,EAGjCA,AAAgB,uBAAhBA,EAAO,IAAI,CACN,CAAC,EAELD,CAAK,CAACC,EAAO,IAAI,CAAC,CAChB,mBACFD,GAAAA,CACH,CAACC,EAAO,IAAI,CAAC,CAAE,mBACVD,CAAK,CAACC,EAAO,IAAI,CAAC,GACrB,MAAO,CAACD,CAAK,CAACC,EAAO,IAAI,CAAC,CAAC,KAAK,A,KALJD,EAxBPA,EAmCvBof,EAAoB,AAAkB,aAAlB,OAAO9jB,QAA0BA,OAAO,oCAAoC,EAAIA,OAAO,oCAAoC,CAAC,CAAE,KAAM,yBAA0B,IAAO+jB,EAAAA,EAAOA,CAgDtM,MAAe,IA/Cf,MAAMqyE,EAGJ,aAAc,CACZ,GAHF,qBAAQnyE,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAYkyE,EAAmB,CAAC,GAAIryE,MAO5C,oBAAOuyE,AAAAA,IACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAE,KAAM,wBAAyB,QAAS,CAAE,gBAAiBA,CAAY,CAAE,EACjG,GAEA,wBAAW,IAEF,IAAI,CAAC,KAAK,EAGnB,6BAAgB,CAACC,EAAaC,KAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAE,KAAM,kBAAmB,QAAS,CAAED,YAAAA,EAAaC,aAAAA,CAAa,CAAE,EACxF,GAEA,uBAAU,IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,IAG5B,0BAAaC,AAAAA,I,IAEUC,EADrB,IAAMH,EAAc,IAAI,CAAC,cAAc,CAACE,GAClCD,EAAe,AAAkC,OAAlCE,CAAAA,EAAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAACH,EAAY,AAAD,GAAjCG,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoC,KAAK,QAC9D,AAAI,AAAwB,SAAjBF,GACTjiF,QAAQ,GAAG,CAAC3J,KAAK,SAAS,CAAC6rF,GAAU,6BAC9B,IAEFD,CACT,GAEA,6BAAgBC,AAAAA,IACd,IAAMF,EAAc,IAAI,CAAC,cAAc,CAACE,GACxC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAE,KAAMF,CAAY,EAC1C,GAEA,8BAAiBE,AAAAA,GACf,AAAI,AAAmB,SAAZA,EAAgC,KACvC,AAAmB,UAAnB,OAAOA,EAA6BA,EACjCA,EAAQ,IAAI,EAvCfhjE,EAAAA,CAAMA,CAAC,WAAW,CAAE,OAAOA,EAAAA,CAAMA,CAAC,WAAW,AACjDA,CAAAA,EAAAA,CAAMA,CAAC,WAAW,CAAG,IAAI,AAC3B,CAuCF,ECjFA,IAAMkjE,EAAQ,CAAC,EAEFC,EAAgB,KAC3B,GAAI,AAA4B,SAArBD,EAAM,UAAU,CAAkB,OAAOA,EAAM,UAAU,CACpE,IAAIE,EAAc,IACI,cAAlB,OAAO52F,QACT42F,CAAAA,EAAc52F,OAAO,UAAU,CAAGA,OAAO,UAAU,CAAC,YAAY,CAAGA,OAAO,YAAY,AAAD,EAEvF,IAAM62F,EAAoBX,EAAiB,QAAQ,CAACU,GAGpD,OAFAF,EAAM,UAAU,CAAGG,EACnBH,EAAM,WAAW,CAAGG,EAAoBD,EAAc,KAC/CF,EAAM,UAAU,AACzB,EAEa5mC,EAAkB,IAC7B,EAAI6mC,KACKD,EAAM,WAAW,GAAKT,EAAAA,UAAwB,CAS5Ca,EAAiB,IAC5B,AAAIH,IACKD,EAAM,WAAW,CAEnB,KAGHK,EAAc,CAAC5qF,EAAK6qF,KACxB,GAAI,CACF,OAAO,IAAItqE,IAAIvgB,EAAK6qF,EACtB,CAAE,MAAO72F,EAAG,CACV,MAAO,EACT,CACF,EAEM82F,EAAiBpoE,AAAAA,IACrB,IAAMqoE,EAAWvS,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,WACjB,AAAK91D,EAAS,UAAU,CAACqoE,GAGlBroE,EAFE,CAAC,EAAEA,EAAS,UAAU,CAAC,KAAOqoE,EAAS,KAAK,CAAC,EAAG,IAAMA,EAAS,EAAEroE,EAAS,CAAC,AAGtF,EAGMsoE,EAAiC,CAAChrF,EAAM,EAAE,I,IAEhBsnC,EAD9B,IAAM2jD,EAAYjrF,AAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAK,KAAK,CAAC,KAAK,MAAM,CAACkrF,QAAO,GAAK,EAAE,OAEvD,AAD8B5jD,AAAAA,CAAAA,AAAAA,OAAAA,CAAAA,EAAAA,MAAK,GAALA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAQ,kBAAkB,AAAD,GAAK2jD,AAAiB,gBAAjBA,CAAS,CAAC,EAAE,CAEjE,CAAC,kBAAmBA,EAAU,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KADjBjrF,CAErC,EAEMmrF,EAAqBC,AAAAA,IACzB,IAAMP,EAAUxS,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,IACZr4E,EAAMorF,EACJC,EAAYT,EAAY5qF,GAW9B,OATIqrF,EACEA,EAAU,MAAM,GAAKR,IACvBQ,EAAU,QAAQ,CAAGP,EAAeO,EAAU,QAAQ,EACtDrrF,EAAMqrF,EAAU,QAAQ,IAG1BrrF,EAAM8qF,EAAe9qF,GAEvBA,EAAMgrF,EAA+BhrF,EAEvC,EAEMsrF,EAAiCC,AAAAA,GACrC,EAAIf,CAAAA,KAEAe,AAAyB,WAAzBA,EAAY,QAAQ,EAChBA,CAAAA,EAAY,YAAY,CAAC,GAAG,CAAC,OAASA,AAAkC,IAAlCA,EAAY,YAAY,CAAC,IAAI,AAAK,CAH9D,GAQX,GAGIttF,EAAyB,CAAC+B,EAAKib,EAAS,QAAQ,CAAEuwE,EAAgB,EAAK,CAAEC,EAAiB,EAAE,IACvG,IAAMnoC,EAAcj8B,EAAAA,CAAMA,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAoB,IAAMA,EAAAA,CAAMA,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,cAAgB,GAC9HkkE,EAAcX,EAAY5qF,EAAKq4E,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,KAErC,GAAIkT,GAAeD,EAA+BC,GAChD,OAAO13F,OAAO,IAAI,CAAC,CAAC,UAAU,EAAE82F,IAAiB,+BAA+B,EAAEY,EAAY,MAAM,CAAC,CAAC,CAAE,QAASE,GAGnH,GAAID,EACF,OAAO33F,OAAO,IAAI,CAACmM,EAAKib,EAAQwwE,GAGlC,GAAInoC,EAAa,CACfzvD,OAAO,QAAQ,CAAC,IAAI,CAAGmM,EACvB,MACF,CACA,GAAIwqF,WACF,AAAIkB,EAAAA,UAAsB,CAACA,EAAAA,OAAmB,GAAG,uBAAuB,EAC/D73F,OAAO,IAAI,CAACmM,EAAK,SAAU,CAAC,oBAAoB,EAAEyrF,EAAe,CAAC,EAGvEzrF,EAAI,UAAU,CAAC,YAEVnM,OAAO,IAAI,CAACmM,EAAKib,EAAQwwE,GAE3B53F,OAAO,IAAI,CAAC,CAAC,UAAU,EAAE82F,IAAiB,EAAE3qF,EAAI,CAAC,CAAE,QAASyrF,GAGrE,OAAO53F,OAAO,IAAI,CAACs3F,EAAmBnrF,GAAMib,EAAQwwE,EACtD,C,sHCpEO,IAAME,EAAgBvgF,AAAAA,GAAS,wJACnC,IAAI,CAACm2E,OAAOn2E,GAAO,WAAW,IAGrBtN,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAE,0BACEA,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAE,yBA4DX,IAAMqpD,EAAgB,CAACvzB,EAAUzoB,KACtC,GAAM,CAAE,aAAc,CAAER,KAAAA,CAAI,CAAE,CAAE,CAAGQ,EACnC,OAAOR,IAASipB,CAClB,C,wJC3FO,IAAMg4D,EAAY/jE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAHM,kKAGqC,CAClE,SAAU,CACR,KAAM,CACJ,MAAO,WACP,OAAQ,cACR,MAAO,WACT,EACA,QAAS,CACP,KAAM,cACN,MAAO,QACT,EACA,UAAW,CACT,KAAM,QACR,EACA,QAAS,CACP,MAAO,WACP,OAAQ,WACR,QAAS,QACX,EACA,gBAAiB,CACf,KAAM,OACR,EACA,OAAQ,CACN,KAAM,qBACR,EACA,SAAU,CACR,KAAM,gCACN,MAAO,gBACT,EACA,WAAY,CAAC,EACb,YAAa,CAAC,EACd,cAAe,CAAC,EAChB,cAAe,CAAC,EAChB,WAAY,CAAC,EACb,OAAQ,CAAC,EACT,aAAc,CAAC,EACf,MAAO,CAAC,CACV,EACA,iBAAkB,CAIhB,CACE,QAAS,UACT,YAAa,GACb,WAAY,GACZ,KAAM,QACN,UAAW,KACb,EACA,CACE,QAAS,UACT,YAAa,GACb,WAAY,GACZ,KAAM,SACN,UAAW,MACb,EACA,CACE,QAAS,UACT,YAAa,GACb,WAAY,GACZ,KAAM,QACN,UAAW,MACb,EAIA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,eACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,eACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,eACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,eACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,eACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,MACd,KAAM,QACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,SACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,SACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,SACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,SACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,SACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,MACd,KAAM,SACN,UAAW,iBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,KACd,KAAM,QACN,UAAW,gBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,aAAc,MACd,KAAM,QACN,UAAW,iBACb,EAIA,CACE,QAAS,UACT,WAAY,GACZ,gBAAiB,GACjB,KAAM,QACN,UAAW,kBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,gBAAiB,GACjB,KAAM,SACN,UAAW,mBACb,EACA,CACE,QAAS,UACT,WAAY,GACZ,gBAAiB,GACjB,KAAM,QACN,UAAW,mBACb,EAIA,CACE,OAAQ,GACR,cAAe,GACf,UAAW,UACb,EAKA,CACE,QAAS,CAAC,QAAS,UAAU,CAC7B,UAAW,gBACb,EAMA,CACE,QAAS,SACT,WAAY,CACV,UAAW,UAAW,QAAS,UAC/B,YAAa,QAAS,QAAS,OAAQ,MAAO,OAC9C,UAAW,QAAS,OAAQ,SAAU,QAAS,YAChD,CACD,OAAQ,GACR,UAAW,aACb,EACA,CACE,QAAS,SACT,WAAY,CACV,UAAW,UAAW,QAAS,UAC/B,YAAa,QAAS,QAAS,OAAQ,MAAO,OAC9C,UAAW,QAAS,OAAQ,SAAU,QAAS,YAChD,CACD,OAAQ,GACR,UAAW,UACb,EACA,CACE,QAAS,SACT,WAAY,CACV,UAAW,YAAa,QAAS,QAAS,OAAQ,MAAO,OACzD,UAAW,QAAS,OAAQ,SAAU,QAAS,YAChD,CACD,SAAU,GACV,OAAQ,GACR,UAAW,kBACb,EAMA,CACE,QAAS,SACT,WAAY,UACZ,OAAQ,GACR,UAAWC,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,EAAAA,CAAAA,IAA8B,AAC3C,EACA,CACE,QAAS,SACT,WAAY,UACZ,SAAU,GACV,OAAQ,GACR,UAAWA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,IAAAA,CAAAA,EAAAA,CAAAA,KAA4B,AACzC,EACA,CACE,QAAS,SACT,WAAY,UACZ,OAAQ,GACR,UAAWA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,KAAAA,CAAAA,IAAiC,AAC9C,EACA,CACE,QAAS,SACT,WAAY,UACZ,SAAU,GACV,OAAQ,GACR,UAAWA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,IAAAA,CAAAA,EAAAA,CAAAA,KAA4B,AACzC,EACA,CACE,QAAS,SACT,WAAY,UACZ,SAAU,GACV,OAAQ,GACR,UAAW,mBACb,EAMA,CACE,QAAS,SACT,WAAY,YACZ,OAAQ,GACR,UAAW,CACTA,EAAAA,CAAAA,CAAAA,UAAAA,CAAAA,KAAAA,CAAAA,IAA6B,CAC7BA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,IAAAA,CAAAA,IAAsB,CACvB,AACH,EACA,CACE,QAAS,SACT,WAAY,YACZ,OAAQ,GACR,UAAW,CAAC,cAAeA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA,IAAuB,CAAC,AACrD,EACA,CACE,QAAS,SACT,WAAY,YACZ,SAAU,GACV,UAAWA,EAAAA,CAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,KAA+B,AAC5C,EACA,CACE,QAAS,SACT,WAAY,YACZ,SAAU,GACV,OAAQ,GACR,UAAW,mBACb,EAMA,CACE,QAAS,SACT,WAAY,UACZ,OAAQ,GACR,UAAWA,EAAAA,CAAAA,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA,EAAAA,CAAAA,IAA+B,AAC5C,EACA,CACE,QAAS,SACT,WAAY,UACZ,OAAQ,GACR,UAAW,iBACb,EACA,CACE,QAAS,SACT,WAAY,UACZ,SAAU,GACV,OAAQ,GACR,UAAWA,EAAAA,CAAAA,CAAAA,OAAAA,CAAAA,IAAAA,CAAAA,EAAAA,CAAAA,KAA6B,AAC1C,EACA,CACE,QAAS,SACT,WAAY,UACZ,SAAU,GACV,OAAQ,GACR,UAAW,oBACb,EAMA,CACE,QAAS,SACT,WAAY,QACZ,OAAQ,GACR,UAAWA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,OAAAA,CAAAA,EAAAA,CAAAA,IAA6B,AAC1C,EACA,CACE,QAAS,SACT,WAAY,QACZ,OAAQ,GACR,UAAWA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,OAAAA,CAAAA,KAAAA,CAAAA,IAAgC,AAC7C,EACA,CACE,QAAS,SACT,WAAY,QACZ,SAAU,GACV,OAAQ,GACR,UAAWA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAAA,EAAAA,CAAAA,KAA2B,AACxC,EACA,CACE,QAAS,SACT,WAAY,QACZ,SAAU,GACV,OAAQ,GACR,UAAWA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,QAAAA,CAAAA,EAAAA,CAAAA,KAA+B,AAC5C,EAMA,CACE,QAAS,SACT,WAAY,UACZ,OAAQ,GACR,UAAWwlD,EAAAA,CAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,IAAgC,AAC7C,EACA,CACE,QAAS,SACT,WAAY,UACZ,OAAQ,GACR,UAAW,gBACb,EACA,CACE,QAAS,SACT,WAAY,UACZ,SAAU,GACV,OAAQ,GACR,UAAWA,EAAAA,CAAAA,CAAAA,UAAAA,CAAAA,IAAAA,CAAAA,KAA+B,AAC5C,EAMA,CACE,QAAS,SACT,WAAY,YACZ,OAAQ,GACR,UAAW,sBACb,EACA,CACE,QAAS,SACT,WAAY,YACZ,OAAQ,GACR,UAAW,yBACb,EACA,CACE,QAAS,SACT,WAAY,YACZ,SAAU,GACV,OAAQ,GACR,UAAW,yBACb,EAMA,CACE,QAAS,SACT,WAAY,QACZ,OAAQ,GACR,UAAW,kBACb,EACA,CACE,QAAS,SACT,WAAY,QACZ,OAAQ,GACR,UAAW,qBACb,EACA,CACE,QAAS,SACT,WAAY,QACZ,SAAU,GACV,OAAQ,GACR,UAAW,qBACb,EAMA,CACE,QAAS,SACT,WAAY,QACZ,OAAQ,GACR,UAAW,kBACb,EACA,CACE,QAAS,SACT,WAAY,QACZ,OAAQ,GACR,UAAW,qBACb,EACA,CACE,QAAS,SACT,WAAY,QACZ,SAAU,GACV,OAAQ,GACR,UAAW,qBACb,EAMA,CACE,QAAS,SACT,WAAY,OACZ,OAAQ,GACR,UAAW,iBACb,EACA,CACE,QAAS,SACT,WAAY,OACZ,OAAQ,GACR,UAAW,oBACb,EACA,CACE,QAAS,SACT,WAAY,OACZ,SAAU,GACV,OAAQ,GACR,UAAW,oBACb,EAMA,CACE,QAAS,SACT,WAAY,MACZ,OAAQ,GACR,UAAW,gBACb,EACA,CACE,QAAS,SACT,WAAY,MACZ,OAAQ,GACR,UAAW,mBACb,EACA,CACE,QAAS,SACT,WAAY,MACZ,SAAU,GACV,OAAQ,GACR,UAAW,mBACb,EAMA,CACE,QAAS,SACT,WAAY,OACZ,OAAQ,GACR,UAAW,iBACb,EACA,CACE,QAAS,SACT,WAAY,OACZ,OAAQ,GACR,UAAW,oBACb,EACA,CACE,QAAS,SACT,WAAY,OACZ,SAAU,GACV,OAAQ,GACR,UAAW,oCACb,EAMA,CACE,QAAS,SACT,WAAY,UACZ,OAAQ,GACR,UAAW,oBACb,EACA,CACE,QAAS,SACT,WAAY,UACZ,OAAQ,GACR,UAAW,uBACb,EACA,CACE,QAAS,SACT,WAAY,UACZ,SAAU,GACV,OAAQ,GACR,UAAW,uBACb,EAMA,CACE,QAAS,SACT,WAAY,QACZ,OAAQ,GACR,UAAW,kBACb,EACA,CACE,QAAS,SACT,WAAY,QACZ,OAAQ,GACR,UAAW,qBACb,EACA,CACE,QAAS,SACT,WAAY,QACZ,SAAU,GACV,OAAQ,GACR,UAAW,qBACb,EAMA,CACE,QAAS,SACT,WAAY,SACZ,OAAQ,GACR,UAAW,mBACb,EACA,CACE,QAAS,SACT,WAAY,SACZ,OAAQ,GACR,UAAW,sBACb,EACA,CACE,QAAS,SACT,WAAY,SACZ,SAAU,GACV,OAAQ,GACR,UAAW,sBACb,EAMA,CACE,QAAS,SACT,WAAY,YACZ,OAAQ,GACR,UAAW,sBACb,EACA,CACE,QAAS,SACT,WAAY,YACZ,OAAQ,GACR,UAAW,yBACb,EACA,CACE,QAAS,SACT,WAAY,YACZ,SAAU,GACV,OAAQ,GACR,UAAW,yBACb,EAMA,CACE,QAAS,SACT,WAAY,QACZ,OAAQ,GACR,UAAW,kBACb,EACA,CACE,QAAS,SACT,WAAY,QACZ,OAAQ,GACR,UAAW,qBACb,EACA,CACE,QAAS,SACT,WAAY,QACZ,SAAU,GACV,OAAQ,GACR,UAAW,qBACb,EAMA,CACE,QAAS,UACT,WAAY,UACZ,MAAO,QACP,UAAWxlD,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,IAAkC,AAC/C,EACA,CACE,QAAS,UACT,WAAY,UACZ,MAAO,OACP,UAAW,iBACb,EAMA,CACE,QAAS,UACT,WAAY,YACZ,MAAO,QACP,UAAWA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,IAA0B,AACvC,EACA,CACE,QAAS,UACT,WAAY,YACZ,MAAO,OACP,UAAW,iBACb,EAMA,CACE,QAAS,UACT,WAAY,UACZ,MAAO,QACP,UAAW,iBACb,EACA,CACE,QAAS,UACT,WAAY,UACZ,MAAO,OACP,UAAW,cACb,EAMA,CACE,QAAS,UACT,WAAY,UACZ,MAAO,QACP,UAAWA,EAAAA,CAAAA,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,IAAmC,AAChD,EACA,CACE,QAAS,UACT,WAAY,UACZ,MAAO,OACP,UAAW,kBACb,EAMA,CACE,QAAS,UACT,WAAY,QACZ,MAAO,QACP,UAAWA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,IAAiC,AAC9C,EACA,CACE,QAAS,UACT,WAAY,QACZ,MAAO,OACP,UAAW,gBACb,EAMA,CACE,QAAS,CAAC,QAAS,UAAU,CAC7B,WAAY,UACZ,MAAO,QACP,UAAWA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,KAAAA,CAAAA,IAAiC,AAC9C,EACA,CACE,QAAS,CAAC,QAAS,UAAU,CAC7B,WAAY,UACZ,MAAO,OACP,UAAW,gBACb,EAOA,CACE,QAAS,CAAC,QAAS,UAAU,CAC7B,WAAY,UACZ,SAAU,GACV,MAAO,QACP,UAAWA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,QAAAA,CAAAA,EAAAA,CAAAA,KAAgC,AAC7C,EACA,CACE,QAAS,CAAC,QAAS,UAAU,CAC7B,WAAY,CAAC,UAAW,YAAa,UAAW,QAAS,UAAU,CACnE,SAAU,GACV,MAAO,OACP,UAAW,mBACb,EAMA,CACE,QAAS,CAAC,QAAS,UAAU,CAC7B,WAAY,CAAC,YAAa,UAAU,CACpC,MAAO,QACP,MAAOA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,IAAAA,CAAAA,IAAsB,AAC/B,EACA,CACE,QAAS,CAAC,QAAS,UAAU,CAC7B,WAAY,CAAC,YAAa,UAAU,CACpC,MAAO,OACP,MAAO,aACT,EAOA,CACE,QAAS,CAAC,QAAS,UAAU,CAC7B,WAAY,CAAC,YAAa,UAAU,CACpC,SAAU,GACV,MAAO,QACP,UAAWA,EAAAA,CAAAA,CAAAA,UAAAA,CAAAA,QAAAA,CAAAA,KAAiC,AAC9C,EAOA,CACE,QAAS,CAAC,QAAS,UAAU,CAC7B,WAAY,UACZ,SAAU,GACV,MAAO,QACP,UAAW,CAACA,EAAAA,CAAAA,CAAAA,OAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA,IAA+B,CAAEA,EAAAA,CAAAA,CAAAA,OAAAA,CAAAA,QAAAA,CAAAA,EAAAA,CAAAA,KAAiC,CAAC,AACjF,EACA,CACE,QAAS,CAAC,QAAS,UAAU,CAC7B,WAAY,UACZ,SAAU,GACV,MAAO,OACP,UAAW,iBACb,EAMA,CACE,QAAS,CAAC,QAAS,UAAU,CAC7B,WAAY,QACZ,MAAO,QACP,UAAWA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,OAAAA,CAAAA,KAAAA,CAAAA,IAAgC,AAC7C,EACA,CACE,QAAS,CAAC,QAAS,UAAU,CAC7B,WAAY,QACZ,MAAO,OACP,UAAW,eACb,EAOA,CACE,QAAS,CAAC,QAAS,UAAU,CAC7B,WAAY,QACZ,SAAU,GACV,MAAO,QACP,UAAWA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,QAAAA,CAAAA,EAAAA,CAAAA,KAA+B,AAC5C,EAMA,CACE,WAAY,UACZ,SAAU,GACV,UAAW,wBACb,EAMA,CACE,WAAY,YACZ,SAAU,GACV,UAAW,uBACb,EAMA,CACE,WAAY,UACZ,SAAU,GACV,UAAW,yBACb,EAMA,CACE,WAAY,QACZ,SAAU,GACV,UAAW,uBACb,EAMA,CACE,WAAY,UACZ,SAAU,GACV,UAAW,wBACb,EAMA,CACE,WAAY,YACZ,SAAU,GACV,UAAW,+BACb,EAMA,CACE,WAAY,QACZ,SAAU,GACV,UAAW,2BACb,EAMA,CACE,WAAY,QACZ,SAAU,GACV,UAAW,2BACb,EAMA,CACE,WAAY,OACZ,SAAU,GACV,UAAW,0BACb,EAMA,CACE,WAAY,MACZ,SAAU,GACV,UAAW,yBACb,EAMA,CACE,WAAY,OACZ,SAAU,GACV,UAAW,0BACb,EAMA,CACE,WAAY,UACZ,SAAU,GACV,UAAW,6BACb,EAMA,CACE,WAAY,QACZ,SAAU,GACV,UAAW,2BACb,EAMA,CACE,WAAY,SACZ,SAAU,GACV,UAAW,4BACb,EAMA,CACE,WAAY,QACZ,SAAU,GACV,UAAW,2BACb,EAMA,CACE,WAAY,YACZ,SAAU,GACV,UAAW,+BACb,EAGA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,YAAa,GACb,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,SACN,YAAa,GACb,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,YAAa,GACb,UAAW,gBACb,EAEA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,YAAa,GACb,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,SACN,YAAa,GACb,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,YAAa,GACb,UAAW,gBACb,EAEA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,SACN,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,UAAW,gBACb,EAEA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,SACN,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,UAAW,gBACb,EAEA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,SACN,UAAW,gBACb,EACA,CACE,aAAc,KACd,cAAe,GACf,KAAM,QACN,UAAW,gBACb,EAEA,CACE,aAAc,MACd,cAAe,GACf,KAAM,QACN,UAAW,iBACb,EACA,CACE,aAAc,MACd,cAAe,GACf,KAAM,SACN,UAAW,iBACb,EACA,CACE,aAAc,MACd,cAAe,GACf,KAAM,QACN,UAAW,iBACb,EACA,CACE,KAAM,QACN,WAAY,GACZ,cAAe,GACf,YAAa,GACb,UAAW,OACb,EACA,CACE,KAAM,SACN,WAAY,GACZ,cAAe,GACf,YAAa,GACb,UAAW,OACb,EACA,CACE,KAAM,QACN,WAAY,GACZ,cAAe,GACf,YAAa,GACb,UAAW,OACb,EACD,AACH,GAEa+jE,EAAgBhkE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAuB,GAAI,CACtD,SAAU,CACR,KAAM,CACJ,MAAO,eACP,OAAQ,eACR,MAAO,cACT,EACA,gBAAiB,CACf,KAAM,8CACR,EACA,aAAc,CACZ,GAAI,YACJ,GAAI,YACJ,GAAI,YACJ,GAAI,YACJ,GAAI,YACJ,IAAK,YACP,EACA,OAAQ,CAAC,EACT,cAAe,CAAC,EAChB,YAAa,CAAC,CAChB,EACA,iBAAkB,CAChB,CACE,aAAc,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAAM,CACnD,UAAW,UACb,EACA,CACE,OAAQ,GACR,cAAe,GACf,YAAa,GACb,UAAW,WACb,EACD,AACH,GAEaikE,EAAgBjkE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAuB,8BAA+B,CACjF,SAAU,CACR,KAAM,CACJ,MAAO,UACP,OAAQ,UACR,MAAO,SACT,EACA,OAAQ,CAAC,EACT,cAAe,CAAC,CAClB,EACA,iBAAkB,CAChB,CACE,OAAQ,GACR,cAAe,GACf,UAAW,WACb,EACA,CACE,OAAQ,GACR,cAAe,GACf,UAAW,UACb,EACD,AACH,GAEakkE,EAAqBlkE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAA4B,WAAY,CACxE,SAAU,CACR,OAAQ,CAAC,EACT,WAAY,CAAC,CACf,EACA,iBAAkB,CAChB,CACE,WAAY7tB,KAAAA,EACZ,UAAW,gBACb,EACA,CACE,OAAQ,GACR,UAAW,WACb,EACD,AACH,KCluCc,YACF,KACC,KACH,KACA,KACC,KACQ,KACH,OACR,WACC,UACD,WACG,S,gBCpDJ,IAAMgyF,EAAa,AAAC9jF,IACzB,GAAM,CACJsgB,KAAAA,CAAI,CAAEyjE,gBAAAA,CAAe,CAAEC,aAAAA,CAAY,CAAEC,OAAAA,CAAM,CAAEC,cAAAA,CAAa,CAAEvjE,YAAAA,CAAW,CAAEpP,SAAAA,CAAQ,CAClF,CAAGvR,EAEJ,MACE,UAAC,QAAK,UAAW+Q,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAG4yE,EAAc,CAChCrjE,KAAAA,EAAMyjE,gBAAAA,EAAiBC,aAAAA,EAAcC,OAAAA,EAAQC,cAAAA,EAAevjE,YAAAA,CAC9D,I,SAEGpP,C,EAGP,EAEa4yE,EAAa,AAACnkF,IACzB,GAAM,CACJsgB,KAAAA,CAAI,CAAE4jE,cAAAA,CAAa,CAAED,OAAAA,CAAM,CAAE,KAAMlmD,CAAI,CACxC,CAAG/9B,EAEJ,MAAO,UAAC+9B,EAAAA,CAAK,UAAWhtB,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAG6yE,EAAc,CAAEtjE,KAAAA,EAAM4jE,cAAAA,EAAeD,OAAAA,CAAO,G,EACzE,EAEaG,EAAkB,AAACpkF,IAC9B,GAAM,CACJsgB,KAAAA,CAAI,CAAE2jE,OAAAA,CAAM,CAAEI,cAAAA,CAAa,CAAEhkE,WAAAA,CAAU,CAAE07B,QAAAA,CAAO,CACjD,CAAG/7C,EAGEskF,EAAuBjkE,AAAe,YAAfA,GAA4BA,AAAe,YAAfA,GAA4BA,AAAe,UAAfA,GAA0BA,AAAe,cAAfA,EAA8BA,EAAavuB,KAAAA,EAI1J,MACE,UAACyyF,EAAAA,CAASA,CAAAA,CACR,WAAYD,EACZ,OALqBvoC,AAAY,WAAZA,EAMrB,UAAWhrC,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAG8yE,EAAmB,CAC/BxjE,WAAAA,EACA4jE,OAAAA,CACF,IACA,KAAM3jE,E,SAEL+jE,C,EAGP,E,WC1CO,IAAMG,EAAY7kE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EACvB,yBAA0B,CACxB,SAAU,CACR,KAAM,CACJ,MAAO,UACP,OAAQ,UACR,MAAO,SACT,EACA,MAAO,CAAC,CACV,CACF,GAGW8kE,EAAiB9kE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAA2B,oDAAqD,CAC5G,SAAU,CACR,MAAO,CACL,QAAS,iBACT,KAAMC,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,IAA2B,CACjC,MAAO,cACT,CACF,CACF,GAEa8kE,EAAmB/kE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAC9B,gJAAiJ,CAC/I,SAAU,CACR,MAAO,CACL,QAAS,mBACT,KAAM,oBACN,MAAO,gBACT,CACF,CACF,GClCWglE,EAA0C,CACrD,KAAM,SACN,MAAO,SACT,E,8aCDO,IAAMC,EAAS,AAAC5kF,Q,IACrB,IAEI6kF,EAAAA,EAAAA,CAAAA,EAAKF,EAAuB3kF,GAF1B,CACJ0X,UAAAA,CAAS,CAAE4I,KAAAA,CAAI,CAAExF,MAAAA,CAAK,CACvB,CAAG+pE,EADyB1zF,EAAAA,A,6XACzB0zF,EAAAA,CADFntE,YAAW4I,OAAMxF,Q,EAGbgqE,EAAkB/zE,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAG2G,EAAW8sE,EAAU,CAC9ClkE,KAAAA,EACAxF,MAAAA,CACF,IAEA,MACE,WAAC,O,EAAA,GAAI,UAAWgqE,C,EAAqB3zF,G,KAAAA,C,UACnC,UAAC,QAAK,UAAWuzF,EAAiB,CAAE5pE,MAAAA,CAAM,E,GAC1C,UAAC,OAAI,UAAW2pE,EAAe,CAAE3pE,MAAAA,CAAM,E,oVAG7C,E,iBCXO,IAAMgP,EAA6BiK,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAExC,CACE/zB,EACAooB,S,IAEA,GAAM,CACJ7W,SAAAA,CAAQ,CACRmG,UAAAA,CAAS,CACT2I,WAAAA,GAA0C,CAC1C1S,SAAAA,GAAsC,CACtC,QAASo3E,CAAO,CAChBxnE,UAAAA,GAAwC,CACxCjmB,KAAAA,CAAI,CACJ2sF,OAAAA,GAAkC,CAClCe,WAAAA,CAAU,CACVX,cAAAA,CAAa,CACbY,OAAAA,GAAkC,CAClCC,QAAAA,GAAoC,CACpCnB,gBAAAA,GAAoD,CACpDzjE,KAAAA,GAA8B,CAC9B,UAAW6kE,CAAS,CACpBnB,aAAAA,GAA8C,CAC9ClpE,MAAAA,GAAgC,CAChCtf,KAAAA,GAA8B,CAC9BugD,QAAAA,GAAoC,CACpC,GAAIuS,EAAYh3D,EAAO,IAAM,QAAQ,CAEtC,CAAG0I,EADC7O,EAAAA,A,6XACD6O,EAAAA,CArBFuR,WACAmG,YACA2I,aACA1S,WACA,UACA4P,YACAjmB,OACA2sF,SACAe,aACAX,gBACAY,SACAC,UACAnB,kBACAzjE,OACA,YACA0jE,eACAlpE,QACAtf,OACAugD,UACA,K,EAIIqpC,EAAa,CAAC,CAAGD,CAAAA,GAAa,CAACJ,GAAa,CAACI,GAAaJ,CAAM,EAChEM,EAAgB,CAAC,CAAEF,CAAAA,GAAaJ,CAAM,EACtCO,EAAe,CAAC,CAACjB,EAEjB1jE,EAAc,CAAC,CAACpP,EAChB2yE,EAAgB,CAAC,CAACc,EAIlBO,EAAgBC,AAHEnlE,GAAcolE,EAAAA,EAAAA,CAAAA,QAAsD,CAACplE,GAGrD,SAAW07B,EAG7C2pC,EAAe,CAAC/3E,GAAWs2E,EAG3BltC,EAAamtC,GAAiBwB,EAAeV,EAAazzE,EAG1Do0E,EAAUhlE,GAAgBujE,GAAiBwB,EAG3CE,GAAkB70E,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAG2G,EAAWgsE,EAAU,CAC9CrjE,WAAAA,EACA1S,SAAAA,EACA4P,UAAAA,EACA8nE,cAAAA,EACAnB,cAAAA,EACAkB,WAAAA,EACAzkE,YAAAA,EACAskE,OAAAA,EACA,OAAQS,EACRR,QAAAA,EACAnB,gBAAAA,EACAC,aAAAA,EACA1jE,KAAAA,EACAxF,MAAAA,EACA,QAASyqE,CACX,IAGMM,GAAkB,UAACjB,EAAMA,CAAC,UAAU,WAAW,KAAMtkE,C,GACrDwlE,GAAgB5B,EAAgB2B,GAAkB,UAAC,QAAK,UAAU,4D,SAA6DA,E,GAG/HE,GACJ,uB,UACGZ,GACC,UAAChB,EAAUA,CACT,KAAMgB,EACN,KAAM7kE,EACN,cAAe4jE,EACf,OAAQwB,C,GAGXA,GAAgBI,GAChBH,GACC,UAAC7B,EAAUA,CACT,gBAAiBC,EACjB,KAAMzjE,EACN,OAAQolE,EACR,aAAc1B,EACd,cAAeE,EACf,YAAavjE,E,SAEZo2B,C,GAGJuuC,GAAgB,CAACpB,GAChB,UAACE,EAAeA,CACd,WAAY/jE,EACZ,KAAMC,EACN,OAAQolE,EACR,cAAerB,EACf,QAASkB,C,GAGZR,GAAW,CAACO,GACX,UAACnB,EAAUA,CACT,KAAMY,EACN,KAAMzkE,EACN,cAAe4jE,EACf,OAAQwB,C,MAMhB,MACE,UAACp3B,G,EAAAA,A,6aAAAA,CAAAA,EACKn9D,G,KAAAA,CACJ,KAAMmG,GAAQxF,KAAAA,EACd,KAAM,CAACwF,GAAQkE,EAAOA,EAAO1J,KAAAA,EAC7B,SAAU6b,EACV,UAAWi4E,GACX,IAAKx9D,E,SAEJ29D,E,iVAGP,E,iLCrIF,IAAMC,EAAgB,CACpB,MAAO,UACP,OAAQ,UACR,MAAO,SACT,EAGaC,EAActmE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EACzB,4FAA6F,CAC3F,SAAU,CACR,KAAMqmE,EACN,SAAU,CACR,KAAM,qBACN,MAAO,gBACT,EACA,QAAS,CAAC,EACV,cAAe,CAAC,EAChB,MAAO,CAAC,EACR,MAAO,CACL,MAAOpmE,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,KAAmC,AAC5C,CACF,EACA,iBAAkB,CAEhB,CACE,MAAO,OACP,MAAO,GACP,UAAW,qCACb,EACA,CACE,MAAO,OACP,MAAO,GACP,QAAS,GACT,UAAW,qCACb,EACA,CACE,MAAO,OACP,QAAS,GACT,SAAU,GACV,MAAO,GACP,cAAe,GACf,UAAW,CACTwlD,EAAAA,CAAAA,CAAAA,UAAAA,CAAAA,IAAAA,CAAAA,IAA8B,CAC9BA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,IAA4B,CAC5BxlD,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,KAAmC,CACpC,AACH,EACA,CACE,MAAO,OACP,QAAS,GACT,SAAU,GACV,cAAe,GACf,UAAW,CAACwlD,EAAAA,CAAAA,CAAAA,UAAAA,CAAAA,KAAAA,CAAAA,IAA+B,CAAEA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,IAA4B,CAAC,AAC5E,EACA,CACE,MAAO,OACP,cAAe,GACf,QAAS,GACT,SAAU,GACV,UAAW,CAACA,EAAAA,CAAAA,CAAAA,UAAAA,CAAAA,KAAAA,CAAAA,IAA+B,CAAEA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,IAA4B,CAAC,AAC5E,EACA,CACE,MAAO,OACP,QAAS,GACT,SAAU,GACV,cAAe,GACf,UAAW,CAACA,EAAAA,CAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,IAAgC,CAAEA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,IAA4B,CAAC,AAC7E,EAEA,CACE,MAAO,QACP,MAAO,GACP,UAAW,wBACb,EACA,CACE,MAAO,QACP,MAAO,GACP,QAAS,GACT,UAAW,wBACb,EACA,CACE,MAAO,QACP,QAAS,GACT,SAAU,GACV,cAAe,GACf,MAAO,GACP,UAAW,CAACxlD,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,IAA0B,CAAEA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,KAAmC,CAAE,WAAW,AAC1F,EACA,CACE,MAAO,QACP,QAAS,GACT,SAAU,GACV,UAAW,2BACb,EACA,CACE,MAAO,QACP,cAAe,GACf,QAAS,GACT,SAAU,GACV,UAAW,2BACb,EACA,CACE,MAAO,QACP,QAAS,GACT,SAAU,GACV,UAAW,gBACb,EAEA,CACE,MAAO,CAAC,OAAQ,QAAQ,CACxB,QAAS,GACT,MAAO,GACP,UAAW,CAACA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,KAAmC,CAAC,AAClD,EACA,CACE,MAAO,CAAC,OAAQ,QAAQ,CACxB,QAAS,GACT,SAAU,GACV,cAAe,GACf,UAAW,CACTA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,EAAAA,CAAAA,IAA8B,CAC9BA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,IAAkC,CAClCA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,IAAAA,CAAAA,EAAAA,CAAAA,KAA4B,CAC5BA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,KAAgC,CACjC,AACH,EACA,CACE,MAAO,CAAC,OAAQ,QAAQ,CACxB,QAAS,GACT,cAAe,GACf,SAAU,GACV,UAAW,CACTA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,EAAAA,CAAAA,IAA8B,CAC9BA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,IAAkC,CAClCA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,IAAAA,CAAAA,EAAAA,CAAAA,KAA4B,CAC5BA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,KAAgC,CACjC,AACH,EACA,CACE,MAAO,CAAC,OAAQ,QAAQ,CACxB,QAAS,GACT,cAAe,GACf,SAAU,GACV,MAAO,GACP,UAAW,CACTA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,IAAiC,CACjCA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,KAA+B,CAChC,AACH,EACA,CACE,MAAO,QACP,QAAS,GACT,cAAe,GACf,SAAU,GACV,MAAO,GACP,UAAW,gDACb,EACA,CACE,MAAO,OACP,QAAS,GACT,cAAe,GACf,MAAO,GACP,SAAU,GACV,UAAW,CAACwlD,EAAAA,CAAAA,CAAAA,UAAAA,CAAAA,IAAAA,CAAAA,IAA8B,CAAE,iDAAiD,AAC/F,EACD,AACH,GAGW8gB,EAAqBvmE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAA4B,gCAAiC,CAC7F,SAAU,CACR,KAAMqmE,CACR,CACF,GAEaG,EAAkBxmE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAyB,qDAAsD,CAC5G,SAAU,CACR,SAAU,CACR,MAAO,aACT,EACA,MAAO,CAAC,CACV,EACA,iBAAkB,CAChB,CACE,MAAO,OACP,SAAU,GACV,UAAW,gBACb,EACA,CACE,MAAO,QACP,SAAU,GACV,UAAWC,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA,IAAuB,AACpC,EACD,AACH,G,gBC3LO,IAAMwmE,EAA8C,CACzD,KAAM3mE,EAAAA,EAAAA,CAAAA,IAAwB,CAC9B,MAAOA,EAAAA,EAAAA,CAAAA,KAAyB,AAClC,E,iBCTO,IAAMiJ,EAAWqL,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAW,CACjC/zB,EACAooB,KAEA,IAcItH,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAA8B9gB,EAAO,CAAC,QAAS,OAAO,EAdpD,CACJ6wB,YAAAA,CAAW,CACX40C,MAAAA,CAAK,CACLC,SAAAA,CAAQ,CACR5qD,MAAAA,CAAK,CACLnN,SAAAA,CAAQ,CACR04E,cAAAA,CAAa,CACb5hE,QAAAA,CAAO,CACPnE,KAAAA,CAAI,CACJzd,MAAAA,CAAK,CACL6U,UAAAA,CAAS,CACTnc,GAAAA,CAAE,CACFoqE,SAAAA,CAAQ,CAET,CAAG7kD,EADC3vB,EAAAA,A,6XACD2vB,EAAAA,CAbF+P,cACA40C,QACAC,WACA5qD,QACAnN,WACA04E,gBACA5hE,UACAnE,OACAzd,QACA6U,YACAnc,KACAoqE,W,EAIIC,EAAWH,GAASA,EAAM,MAAM,CAAG,EACnCj/B,EAAiB3V,GAAeA,EAAY,MAAM,CAAG,EACrDg1C,EAAe90D,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAG,AAAC60D,GAAap/B,EAA6B,KAAZ9uB,EAAkBwuE,EAAmB,CAAE5lE,KAAAA,CAAK,IAE7FgmE,EACJ,WAAC,QAAK,UAAWzgB,E,UACf,UAAC,Q,6aAAA,CACC,KAAK,WACL,GAAItqE,EACJ,QAASkpB,EACT,UAAWwhE,EAAY,CACrB3lE,KAAAA,EACAxF,MAAAA,EACA,SAAU,CAAC,CAACnN,EACZ,QAAS,CAAC,CAAC8W,EACX,cAAe,CAAC,CAAC4hE,EACjB,MAAO,CAAC,CAACxjF,CACX,GACA,SAAU8K,EACV,IAAKya,EACL,KAAMs9C,C,EACFv0E,IAELszB,GAAW,UAACg6C,EAAAA,CAASA,CAAAA,CAAC,UAAW0nB,EAAgB,CAAErrE,MAAAA,EAAO,SAAU,CAAC,CAACnN,CAAS,E,GAC/E04E,GAAiB,UAACluC,EAAAA,CAASA,CAAAA,CAAC,UAAWguC,EAAgB,CAAErrE,MAAAA,EAAO,SAAU,CAAC,CAACnN,CAAS,E,MAI1F,OACGi4D,GAAYp/B,EACX,UAACu/B,EAAAA,CAAWA,CAAAA,CACV,GAAIxqE,EACJ,MAAO+qF,EACP,YAAaz1D,EACb,MAAO40C,EACP,UAAW/tD,EACX,KAAM4I,EACN,SAAU,CAAC,CAAC3S,EACZ,MAAOmN,EACP,SAAU6qD,C,GAEV2gB,CAER,EAEA59D,CAAAA,EAAS,YAAY,CAAG09D,C,wJCpEjB,IAAMG,EAAe5mE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAC1B,sCAAuC,CACrC,SAAU,CACR,KAAM,CAAC,EACP,WAAY,CAAC,EACb,YAAa,CACX,KAAM,uCACR,EACA,OAAQ,CACN,KAAM,UACR,CACF,EACA,iBAAkB,CAIhB,CACE,YAAa,GACb,KAAM,QACN,MAAO,SACT,EACA,CACE,YAAa,GACb,KAAM,SACN,MAAO,aACT,EACA,CACE,YAAa,GACb,KAAM,QACN,MAAO,SACT,EAIA,CACE,YAAa,GACb,KAAM,QACN,MAAO,2BACT,EACA,CACE,YAAa,GACb,KAAM,SACN,MAAO,4BACT,EACA,CACE,YAAa,GACb,KAAM,QACN,MAAO,0BACT,EAKA,CACE,WAAY,CAAC,UAAW,UAAW,QAAQ,CAC3C,OAAQ,GACR,YAAa,GACb,MAAO,aACT,EACA,CACE,WAAY,YACZ,YAAa,GACb,MAAOC,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAAA,IAAyB,AAClC,EAKA,CACE,WAAY,UACZ,OAAQ,GACR,MAAOA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,EAAAA,CAAAA,IAA8B,AACvC,EACA,CACE,WAAY,YACZ,OAAQ,GACR,MAAOA,EAAAA,CAAAA,CAAAA,UAAAA,CAAAA,KAAAA,CAAAA,IAA6B,AACtC,EACA,CACE,WAAY,UACZ,OAAQ,GACR,MAAOA,EAAAA,CAAAA,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA,EAAAA,CAAAA,IAA+B,AACxC,EACA,CACE,WAAY,QACZ,OAAQ,GACR,MAAOA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,OAAAA,CAAAA,EAAAA,CAAAA,IAA6B,AACtC,EAKA,CACE,WAAY,UACZ,OAAQ,GACR,MAAOA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,KAAAA,CAAAA,IAAiC,AAC1C,EACA,CACE,WAAY,YACZ,OAAQ,GACR,MAAOA,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,IAAAA,CAAAA,IAAsB,AAC/B,EACA,CACE,WAAY,UACZ,OAAQ,GACR,MAAOA,EAAAA,CAAAA,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA,KAAAA,CAAAA,IAAkC,AAC3C,EACA,CACE,WAAY,QACZ,OAAQ,GACR,MAAOA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,OAAAA,CAAAA,KAAAA,CAAAA,IAAgC,AACzC,EACD,AACH,GChHW2kE,EAAY,AAACvkF,Q,IACxB,GAAM,CACJ0X,UAAAA,CAAS,CAAEnG,SAAAA,CAAQ,CAAE8O,WAAAA,CAAU,CAAE4kE,OAAAA,CAAM,CAAE3kE,KAAAA,CAAI,CAC9C,CAAGtgB,EADgD7O,EAAAA,A,6XAChD6O,EAAAA,CADF0X,YAAWnG,WAAU8O,aAAY4kE,SAAQ3kE,O,EAKrCkmE,EAAqBz1E,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAG2G,EAAW6uE,EAAa,CACpDlmE,WAAAA,EACAM,YAJkB,CAAC,CAACpP,EAKpB0zE,OAAAA,EACA3kE,KAAAA,CACF,IAEA,MACE,UAAC,Q,EAAA,A,6aAAA,CAAK,UAAWkmE,C,EAAwBr1F,G,KAAAA,C,SACtCogB,C,iVAGP,CAEAgzE,CAAAA,EAAU,YAAY,CCtBuC,CAC3D,OAAQ,GACR,KAAM,SACN,WAAY,SACd,C,6KCKO,IAAMkC,EAAwB9mE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAA+B,GAAI,CACtE,SAAU,CACR,KAAM,CAAC,EACP,OAAQ,CAAC,EACT,SAAU,CAAC,EACX,SAAU,CAAC,EACX,GAAI,CACF,MAAO,yBACP,SAAU,8BACZ,CACF,EACA,iBAAkB,CAChB,CACE,OAAQ,GACR,KAAM,QACN,UAAW,KACb,EACA,CACE,OAAQ,GACR,KAAM,SACN,UAAW,MACb,EACA,CACE,OAAQ,GACR,KAAM,QACN,UAAW,MACb,EACA,CACE,OAAQ,GACR,KAAM,QACN,UAAW,cACb,EACA,CACE,OAAQ,GACR,KAAM,SACN,UAAW,eACb,EACA,CACE,OAAQ,GACR,KAAM,QACN,UAAW,iBACb,EACA,CACE,SAAU,GACV,GAAI,WACJ,UAAW,oBACb,EACA,CACE,SAAU,GACV,SAAU,GACV,GAAI,WACJ,UAAW,gBACb,EACD,AACH,GAEa+mE,EAAe/mE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAsB,GAAI,CACpD,SAAU,CACR,KAAM,CACJ,MAAO,OACP,OAAQ,OACR,MAAO,MACT,EACA,GAAI,CACF,MAAO,oCACP,SAAU,UACZ,EACA,eAAgB,CAAC,EACjB,YAAa,CAAC,EACd,MAAO,CAAC,CACV,EACA,iBAAkB,CAChB,CACE,eAAgB,GAChB,YAAa,GACb,GAAI,WACJ,MAAO,QACP,UAAW,gBACb,EACA,CACE,eAAgB,GAChB,YAAa,GACb,GAAI,WACJ,MAAO,OACP,UAAWylD,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA,IAAyB,AACtC,EACD,AACH,GAEauhB,EAAiB,CAC5B,QAAShnE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAA+B,6BAA8B,CACpE,SAAU,CACR,KAAM,CACJ,MAAO,gBACP,OAAQ,gBACR,MAAO,eACT,EACA,MAAO,CAAC,EACR,SAAU,CAAC,EACX,SAAU,CAAC,EACX,UAAW,CAAC,EACZ,QAAS,CAAC,EACV,cAAe,CAAC,CAClB,EACA,iBAAkB,CAChB,CACE,UAAW,QACX,UAAW,UACb,EACA,CACE,UAAW,MACX,UAAW,UACb,EACA,CACE,cAAe,GACf,MAAO,QACP,UAAWC,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,IAAwB,AACrC,EACA,CACE,cAAe,GACf,MAAO,OACP,UAAW,gBACb,EACA,CACE,UAAW,QACX,QAAS,QACT,KAAM,QACN,UAAW,MACb,EACA,CACE,UAAW,QACX,QAAS,QACT,KAAM,CAAC,SAAU,QAAQ,CACzB,UAAW,MACb,EACA,CACE,UAAW,MACX,QAAS,QACT,KAAM,QACN,UAAW,MACb,EACA,CACE,UAAW,MACX,QAAS,QACT,KAAM,CAAC,SAAU,QAAQ,CACzB,UAAW,MACb,EACA,CACE,QAAS,SACT,KAAM,QACN,UAAW,MACb,EACA,CACE,QAAS,SACT,KAAM,CAAC,SAAU,QAAQ,CACzB,UAAW,MACb,EACA,CACE,QAAS,SACT,SAAU,GACV,SAAU,GACV,MAAO,QACP,UAAW,YACb,EACA,CACE,QAAS,SACT,SAAU,GACV,SAAU,GACV,MAAO,QACP,UAAW,YACb,EACA,CACE,QAAS,SACT,SAAU,GACV,SAAU,GACV,MAAO,QACP,UAAW,aACb,EACA,CACE,QAAS,SACT,MAAO,OACP,UAAW,2BACb,EACD,AACH,GACA,QAASD,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAA+B,WAAY,CAClD,SAAU,CACR,KAAM,CACJ,MAAO,MACP,OAAQ,MACR,MAAO,KACT,CACF,CACF,EACF,EAEmCA,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAA4B,mDAAoD,CACjH,SAAU,CACR,MAAO,CAAC,EACR,SAAU,CAAC,EACX,SAAU,CAAC,CACb,EACA,iBAAkB,CAChB,CACE,MAAO,QACP,SAAU,GACV,SAAU,GACV,UAAW,CAACC,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,IAAAA,CAAAA,IAAsB,CAAE,aAAa,AACnD,EACA,CACE,MAAO,QACP,SAAU,GACV,SAAU,GACV,UAAW,2BACb,EACA,CACE,MAAO,QACP,SAAU,GACV,SAAU,GACV,UAAW,2BACb,EACA,CACE,MAAO,OACP,UAAW,aACb,EACA,CACE,MAAO,OACP,SAAU,GACV,UAAW,gBACb,EACA,CACE,MAAO,OACP,SAAU,GACV,UAAW,gBACb,EACD,AACH,G,yrCClPO,IAAMyH,EAAY0M,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAW,CAClC/zB,EACAooB,KAEA,GAAM,CACJ/H,WAAAA,CAAU,CACVC,KAAAA,CAAI,CACJ3S,SAAAA,CAAQ,CACRmN,MAAAA,CAAK,CACLiG,SAAAA,CAAQ,CACR2kD,SAAAA,CAAQ,CACRnqE,GAAAA,CAAE,CACFmc,UAAAA,CAAS,CACTkvE,WAAAA,CAAU,CACVC,SAAAA,CAAQ,CACR7lE,SAAAA,CAAQ,CACRK,MAAAA,CAAK,CACLylE,GAAAA,EAAK,OAAO,CACZrlE,OAAAA,EAAS,EAAK,CACdtuB,MAAAA,CAAK,CACLoe,SAAAA,CAAQ,CACR0P,YAAAA,CAAW,CACX8lE,0BAAAA,CAAyB,CAE1B,CAAG/mF,EADC7O,EAAAA,EACD6O,EAAAA,CAnBFqgB,aACAC,OACA3S,WACAmN,QACAiG,WACA2kD,WACAnqE,KACAmc,YACAkvE,aACAC,WACA7lE,WACAK,QACAylE,KACArlE,SACAtuB,QACAoe,WACA0P,cACA8lE,4B,EAYIC,EAAmBjmE,GAAY,CAACpT,GAAa,CAACo5E,EAE9CE,EAA8Bl2E,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAClC2G,EACAwvE,EAAAA,CAAAA,CAAAA,SAA8B,CAAC,CAC7B7mE,WAAAA,EACA,SAAU2mE,EACV,SAAU,CAAC,CAACr5E,EACZmN,MAAAA,EACA,MAAO,CAAC,CAACuG,CACX,GACAolE,EAAsB,CACpBnmE,KAAAA,EAAMwmE,GAAAA,EAAIrlE,OAAAA,EAAQ,SAAU,CAAC,CAAC9T,EAAU,SAAU,CAAC,CAACoT,CACtD,IAGIomE,EAAqBp2E,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EACzBm2E,EAAAA,CAAAA,CAAAA,KAA0B,CAAC,CACzBv5E,SAAAA,EACAmN,MAAAA,EACAwF,KAAAA,EACA,MAAO,CAAC,CAACe,CACX,GACAqlE,EAAa,CACXpmE,KAAAA,EACAwmE,GAAAA,EACA,eAAgB,CAAC,CAAC7lE,EAClB,YAAa,CAAC,CAAC1P,EACfuJ,MAAAA,CACF,IAGF,MAEE,WAAC,WACC,UAAWmsE,EACX,QA5CgB,AAACn7F,I,IAILs7F,EAHd,IAAM5gE,EAAU16B,EAAE,MAAM,CACxB,GAAI06B,AAAoB,WAApBA,EAAQ,OAAO,EAAiBA,AAAoB,UAApBA,EAAQ,OAAO,EAAgBA,AAAoB,UAApBA,EAAQ,OAAO,CAAc,OAEhG,IAAM6gE,EAAQD,MAAAA,EAAAA,KAAAA,EAAAA,AAAgB,OAAhBA,CAAAA,EAAAA,EAAG,aAAa,AAAD,GAAfA,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAkB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,AAChEC,OAAAA,GAAAA,EAAO,KAAK,EACd,EAuCI,IAAKP,AAAO,aAAPA,EAAoB1+D,EAAM,I,EAC1B0+D,AAAO,aAAPA,EAAoB31F,EAAO,CAAC,I,UAEhCy1F,EACAE,AAAO,UAAPA,GAEG,UAAC,WACC,UAAWK,EACX,SAAUx5E,EACV,KAAM+3D,EACN,SAAU3kD,EACV,IAAKqH,EACL,GAAI7sB,EACJ,MAAOpI,EACP,SAAU6tB,EACV,YAAaC,C,EACT9vB,IAGT21F,AAAO,aAAPA,GAAqB,UAAC,QAAK,UAAWK,E,SAAqB51E,MAAAA,EAAAA,EAAY0P,C,GACvE4lE,E,GAGP,EAEAx/D,CAAAA,EAAU,YAAY,CAAGigE,EAAAA,EAAqBA,CAEvC,IAAMhgE,EAA6CyM,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EACxD,CACE/zB,EACAooB,KAEA,GAAM,CACJ9H,KAAAA,EAAOinE,EAAAA,EAAAA,CAAAA,IAA2B,CAClCzsE,MAAAA,EAAQysE,EAAAA,EAAAA,CAAAA,KAA4B,CACpCC,UAAAA,EAAYD,EAAAA,EAAAA,CAAAA,SAAgC,CAC5CxrC,QAAAA,EAAUwrC,EAAAA,EAAAA,CAAAA,OAA8B,CACxC55E,SAAAA,EAAW45E,EAAAA,EAAAA,CAAAA,QAA+B,CAC1CxmE,SAAAA,EAAWwmE,EAAAA,EAAAA,CAAAA,QAA+B,CAC1CT,GAAAA,EAAK,MAAM,CACXW,cAAAA,CAAa,CACblsF,GAAAA,CAAE,CACF,KAAMwiC,CAAI,CACVh7B,KAAAA,CAAI,CACJ2kF,QAAAA,CAAO,CAER,CAAG1nF,EADC7O,EAAAA,EACD6O,EAAAA,CAbFsgB,OACAxF,QACA0sE,YACAzrC,UACApuC,WACAoT,WACA+lE,KACAW,gBACAlsF,KACA,OACAwH,OACA2kF,U,EAIF,GAAI,CAAC3pD,GAAQ,CAACh7B,EAAM,MAAO,yBAE3B,IAAM4kF,EAA0B52E,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAG41E,EAAe,OAAO,CAAC,CACxDrmE,KAAAA,EACAxF,MAAAA,EACA0sE,UAAAA,EACAzrC,QAAAA,EACA,SAAU,CAAC,CAACh7B,EACZ,SAAU,CAAC,CAACpT,EACZ,cAAe,CAAC,CAAC85E,CACnB,IAEMG,EAAqBjB,EAAe,OAAO,CAAC,CAAErmE,KAAAA,CAAK,GAGzD,MACE,WAHgBwmE,EAGfx4B,EAAAA,EAAAA,CACC,UAAWq5B,EACX,QAASD,EACT,GAAInsF,EACJ,IAAK6sB,C,EACDj3B,GAAAA,C,UAEHq2F,AAAc,UAAdA,GAED,uB,UACGzpD,GAAQ,UAACA,EAAAA,CAAK,UAAW6pD,C,GACzB7kF,GAAQA,E,GAGVykF,AAAc,QAAdA,GAED,uB,UACGzkF,GAAQA,EACRg7B,GAAQ,UAACA,EAAAA,CAAK,UAAW6pD,C,SAKlC,E,y6BCpKK,IAAMjgE,EAAYoM,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAW,CAClC/zB,EACAooB,KAEA,IAYItH,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAe9gB,GAZb,CACJzE,GAAAA,CAAE,CACFwlB,SAAAA,CAAQ,CACRT,KAAAA,CAAI,CACJ3S,SAAAA,CAAQ,CACRmN,MAAAA,CAAK,CACL+sE,OAAAA,CAAM,CACN/+B,OAAAA,CAAM,CACNg/B,uBAAAA,CAAsB,CACtBf,0BAAAA,CAAyB,CACzB/lE,SAAAA,CAAQ,CAET,CAAGF,EADC3vB,EAAAA,A,6XACD2vB,EAAAA,CAXFvlB,KACAwlB,WACAT,OACA3S,WACAmN,QACA+sE,SACA/+B,SACAg/B,yBACAf,4BACA/lE,W,EAII4lE,EACJ,UAACt/D,EAAAA,CAAcA,CAAAA,EAAAA,EAAAA,CAAAA,EACTugE,GAAAA,CACJ,KAAMvnE,EACN,MAAOxF,EACP,SAAU,CAAC,CAACnN,EACZ,SAAU,CAAC,CAACoT,EACZ,UAAU,O,IAIR8lE,EACJ,UAACv/D,EAAAA,CAAcA,CAAAA,EAAAA,EAAAA,CAAAA,EACTwhC,GAAAA,CACJ,KAAMxoC,EACN,KAAMS,GAAY+mE,EAAyBvgE,EAAAA,CAAcA,CAAGuhC,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ,IAAI,CACxE,MAAOhuC,EACP,SAAU,CAAC,CAACnN,EACZ,SAAU,CAAC,CAACoT,EACZ,UAAU,K,IAId,MACE,UAACsG,EAAAA,CAASA,CAAAA,EAAAA,CACR,GAAI9rB,EACJ,IAAK6sB,EACL,SAAU,CAAC,CAACrH,EACZ,0BAA2B,CAAC,CAACgmE,EAC7B,KAAMzmE,EACN,MAAOxF,EACP,SAAU,CAAC,CAACnN,EACZ,WAAYi5E,EACZ,SAAUC,EACV,SAAU7lE,C,EACN7vB,GAGV,EAEAw2B,CAAAA,EAAU,YAAY,CAAGogE,EAAAA,EAAqBA,A,q6BCDvC,IAAMT,EAAgD,OAAK7nE,EAAAA,EAAmBA,EAAAA,CAAE,GAAI,O,GAErFuoE,EAAgC,CACpC,GAAI,OACJ,KAAMl2F,KAAAA,EACN,KAAMA,KAAAA,EACN,QAAS,OACX,EAEay1F,EAAsD,OAC9D9nE,EAAAA,EAAmBA,EAAAA,CACtB,UAAW,QACX,QAAS,O,GAGEsoE,EAAgD,OACxDtoE,EAAAA,EAAmBA,EAAAA,CACtB,uBAAwB,GACxB,OAAQuoE,EACR,OAAQA,C,GAG8C,OACnDvoE,EAAAA,EAAmBA,EAAAA,CACtB,KAAM,C,GAGR,GAAM,CACJwoE,aAAAA,CAAY,CAAEC,aAAAA,CAAY,CAAEvkE,OAAAA,CAAM,CAAEgtB,UAAAA,CAAS,CAAEw3C,cAAAA,CAAa,CAC7D,CCjEgE,CAC/D,KAAM,SACN,UAAW,aACX,OAAQ,EACR,QAAS,GACT,aAAc,GACd,MAAO,QACP,OAAQ,GACR,OAAQ,IACV,ED0DsD,OACjD1oE,EAAAA,EAAmBA,EAAAA,CACtB,cAAe,CACbwoE,aAAAA,EACAC,aAAAA,EACAvkE,OAAAA,EACAgtB,UAAAA,EACAw3C,cAAAA,CACF,C,wJExFK,IAAMhrD,EAAQpJ,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EACnB,CACE/zB,EACAooB,S,IAEA,GAAM,CACJggE,KAAAA,CAAI,CACJn+D,QAAAA,CAAO,CACPo+D,aAAAA,CAAY,CACZC,OAAAA,CAAM,CACN/2E,SAAAA,CAAQ,CACR0oE,UAAAA,CAAS,CACT35D,KAAAA,CAAI,CACJioE,OAAAA,CAAM,CACN,GAAIC,EAAM,KAAK,CACfC,YAAAA,CAAW,CAEZ,CAAGzoF,EADC7O,EAAAA,A,6XACD6O,EAAAA,CAXFooF,OACAn+D,UACAo+D,eACAC,SACA/2E,WACA0oE,YACA35D,OACAioE,SACA,KACAE,c,EAMF,MACE,UAACC,EAAAA,EAAaA,CAAAA,CACZ,QAASz+D,EACT,KAAMm+D,EACN,aAAcC,EACd,MAAO,CAAEC,OAAAA,CAAO,EAChB,UAAWK,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAkB,CAAE,YAAa,CAAC,CAACF,EAAaF,OAAAA,CAAO,GAClE,aAAY,GACZ,IAAKngE,EACL,oBAAiB,G,SAEjB,UAbmBogE,G,EAalBI,A,6aAAAA,CACC,aAAY3O,EACZ,UAAW4O,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAS,CAAEvoE,KAAAA,CAAK,E,EACvBnvB,G,KAAAA,CACJ,SAAU,E,SAETogB,C,mVAIT,EAEF4rB,CAAAA,EAAM,YAAY,CAAG2rD,EAAAA,EAAiBA,A,kICnD/B,IAAMxhD,EAAY,AAACtnC,Q,IACxB,GAAM,CACJuR,SAAAA,CAAQ,CAAEmG,UAAAA,CAAS,CAAEqxE,UAAAA,CAAS,CAC/B,CAAG/oF,EADiC7O,EAAAA,A,6XACjC6O,EAAAA,CADFuR,WAAUmG,YAAWqxE,Y,EAEvB,MACE,UAAC,O,EAAA,A,6aAAA,GAAQ53F,G,KAAAA,CAAM,UAAW4f,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAG2G,EAAWsxE,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAa,CAAED,UAAAA,CAAU,I,SAAMx3E,C,iVAE3E,CAEA+1B,CAAAA,EAAU,YAAY,CAAG2hD,EAAAA,EAAqBA,A,gMCLvC,IAAMN,EAAoBhpE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAA2B,2GAA4G,CACtK,SAAU,CACR,YAAa,CACX,KAAM,gBACN,MAAO,WACT,EACA,OAAQ,CACN,MAAO,kBACT,CACF,CACF,GAEakpE,EAAWlpE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAkB,kGAAmG,CAC3I,SAAU,CACR,KAAM,CACJ,MAAO,YACP,OAAQ,WACR,MAAO,WACP,OAAQ,WACR,QAAS,UACX,CACF,CACF,GAEaqpE,EAAerpE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAsB,8CAA+C,CAC/F,SAAU,CACR,UAAW,CACT,KAAM,MACN,MAAO,KACT,CACF,CACF,GAEa0mB,EAAsB1mB,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAA6B,kEAAmE,CACjI,SAAU,CACR,eAAgB,CACd,QAASC,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,EAAAA,CAAAA,IAA8B,CACvC,QAASA,EAAAA,CAAAA,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA,EAAAA,CAAAA,IAA+B,CACxC,MAAOA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,OAAAA,CAAAA,EAAAA,CAAAA,IAA6B,CACpC,UAAWA,EAAAA,CAAAA,CAAAA,UAAAA,CAAAA,KAAAA,CAAAA,IAA6B,CACxC,UAAW,uBACX,MAAO,mBACP,MAAO,mBACP,KAAM,kBACN,IAAK,iBACL,KAAM,kBACN,QAAS,qBACT,MAAO,mBACP,OAAQ,oBACR,MAAO,mBACP,UAAW,sBACb,EACA,SAAU,CACR,MAAO,aACT,CACF,CACF,GAEa2mB,EAAe5mB,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAsB,GAAI,CACpD,SAAU,CACR,SAAU,CACR,KAAM,SACN,MAAO,KACT,CACF,CACF,E,sHCtCO,IAAMspE,EAAgD,CAC3D,UAAW,EACb,EAEaH,EAAwC,CACnD,KAAM,GACN,OAAQ,KACR,KAAM,SACN,OAAQ,EACV,EAEariD,EAAoD,CAC/D,SAAU,EACZ,C,sHCzCO,IAAMygD,EAAuB,CAClC,UAAWvnE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAiC,OAAQ,CAClD,SAAU,CACR,WAAY,CAAC,EACb,SAAU,CACR,KAAM,YACR,EACA,SAAU,CAAC,EACX,MAAO,CAAC,EACR,SAAU,CAAC,EACX,MAAO,CACL,KAAM,0BACN,MAAO,oGACT,CACF,EACA,iBAAkB,CAChB,CACE,MAAO,QACP,UAAWC,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAAA,IAAyB,AACtC,EACA,CACE,MAAO,QACP,SAAU,GACV,SAAU,GACV,MAAO,GACP,UAAW,UACb,EACA,CACE,MAAO,QACP,SAAU,GACV,SAAU,GACV,MAAO,GACP,UAAW,+CACb,EAEA,CACE,WAAY,CAAC,QAAS,UAAW,UAAU,CAC3C,SAAU,GACV,MAAO,GACP,UAAW,WACb,EACA,CACE,SAAU,GACV,MAAO,GACP,UAAW,iBACb,EAEA,CACE,MAAO,QACP,SAAU,GACV,SAAU,GACV,MAAO,GACP,UAAW,CACTA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,IAA0B,CAC1BA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,WAAyC,CACzC,qHACD,AACH,EAEA,CACE,MAAO,QACP,SAAU,GACV,SAAU,GACV,WAAY,UACZ,MAAO,GACP,UAAW,CACTA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,IAA0B,CAC1BA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,WAAyC,CACzC,0GACD,AACH,EAEA,CACE,MAAO,QACP,SAAU,GACV,SAAU,GACV,WAAY,UACZ,MAAO,GACP,UAAW,CACTA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,IAAkC,CAClC,8FACD,AACH,EAEA,CACE,MAAO,QACP,SAAU,GACV,SAAU,GACV,WAAY,UACZ,MAAO,GACP,UAAW,CACTA,EAAAA,CAAAA,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,IAAmC,CACnC,gGACD,AACH,EAEA,CACE,MAAO,QACP,SAAU,GACV,SAAU,GACV,WAAY,QACZ,MAAO,GACP,UAAW,CACTA,EAAAA,CAAAA,CAAAA,KAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,IAAiC,CACjC,8FACD,AACH,EAEA,CACE,MAAO,QACP,SAAU,GACV,SAAU,GACV,MAAO,GACP,WAAY,UACZ,UAAW,kHACb,EACA,CACE,MAAO,OACP,UAAW,aACb,EACA,CACE,MAAO,OACP,MAAO,GACP,UAAW,aACb,EAEA,CACE,MAAO,OACP,SAAU,GACV,SAAU,GACV,MAAO,GACP,WAAY,UACZ,UAAW,CACTA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,WAAyC,CACzC,0HACD,AACH,EAEA,CACE,MAAO,OACP,SAAU,GACV,SAAU,GACV,MAAO,GACP,WAAY,UACZ,UAAW,CACTA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,IAAkC,CAClC,8FACD,AACH,EAEA,CACE,MAAO,OACP,SAAU,GACV,SAAU,GACV,MAAO,GACP,WAAY,UACZ,UAAW,CACTA,EAAAA,CAAAA,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,IAAmC,CACnC,+FACD,AACH,EAEA,CACE,MAAO,OACP,SAAU,GACV,SAAU,GACV,MAAO,GACP,WAAY,QACZ,UAAW,2GACb,EAEA,CACE,MAAO,OACP,SAAU,GACV,SAAU,GACV,MAAO,GACP,WAAY,UACZ,UAAW,iHACb,EAEA,CACE,MAAO,OACP,SAAU,GACV,SAAU,GACV,MAAO,GACP,UAAW,CACTA,EAAAA,CAAAA,CAAAA,MAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,WAAyC,CACzC,0HACD,AACH,EACA,CACE,MAAO,OACP,SAAU,GACV,SAAU,GACV,MAAO,GACP,UAAW,qCACb,EACD,AACH,GACA,MAAOD,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAA6B,qFAAsF,CACxH,SAAU,CACR,KAAM,CACJ,MAAO,UACP,OAAQ,UACR,MAAO,SACT,EACA,MAAO,CAAC,EACR,SAAU,CAAC,EACX,MAAO,CACL,KAAM,GACN,MAAO,QACT,CACF,EACA,iBAAkB,CAChB,CACE,MAAO,QACP,SAAU,GACV,UAAW,sBACb,EACA,CACE,MAAO,QACP,SAAU,GACV,UAAW,sBACb,EACD,AACH,EACF,EAEaupE,EAAyE,CACpF,OAAQ,CACN,KAAM,iBACN,GAAI,oBACJ,GAAI,oBACJ,GAAI,oBACJ,GAAI,oBACJ,GAAI,oBACJ,IAAK,oBACP,EACA,QAAS,CACP,KAAM,kBACN,GAAI,qBACJ,GAAI,qBACJ,GAAI,qBACJ,GAAI,qBACJ,GAAI,qBACJ,IAAK,qBACP,EACA,OAAQ,CACN,KAAM,iBACN,GAAI,oBACJ,GAAI,oBACJ,GAAI,oBACJ,GAAI,oBACJ,GAAI,oBACJ,IAAK,oBACP,EACA,IAAK,CACH,KAAM,cACN,GAAI,iBACJ,GAAI,iBACJ,GAAI,iBACJ,GAAI,iBACJ,GAAI,iBACJ,IAAK,iBACP,EACA,OAAQ,CACN,KAAM,iBACN,GAAI,oBACJ,GAAI,oBACJ,GAAI,oBACJ,GAAI,oBACJ,GAAI,oBACJ,IAAK,oBACP,EACA,MAAO,CACL,KAAM,gBACN,GAAI,mBACJ,GAAI,mBACJ,GAAI,mBACJ,GAAI,mBACJ,GAAI,mBACJ,IAAK,mBACP,CACF,C,8FC/RO,IAAMzD,EAAsB,CAAC,QAAS,MAAO,OAAQ,UAAW,QAAS,OAAQ,SAAU,QAAS,YAAa,YAAa,QAAQ,CAEtI,IAAM0D,EAAqB,CAAC,UAAW,UAAW,QAAQ,CAkBpDC,EAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAK,AACpD,KAAYA,EAAkB,CAChC,IAAYA,EAAkB,A,uNClBxE,IAAMC,EAAiB,CACrBC,EACAtpF,EACAupF,IAEA,AAAKD,EAKE,A,6aAAA,GAAKtpF,EADUwpF,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAeF,EAAYC,IAHxCvpF,EAiBEyf,EAAsD,CACjE,KAAM,SACN,MAAO,QACP,WAAY,SACd,EAEagqE,EAAqBpqE,AAAAA,CAAAA,EAAAA,EAAAA,aAAAA,AAAAA,EAA6C,MAGzEqqE,EAAiD,CAAC,aAAc,WAAY,WAAY,WAAY,OAAQ,QAAS,KAAK,CAEnHC,EAAiB,CAC5B3pF,EACA4pF,EAAgDF,CAAkB,GAG3DL,EADa/+D,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAWm/D,GACIzpF,EAAO4pF,GA2C/BniE,EAAkBpI,AAAAA,CAAAA,EAAAA,EAAAA,aAAAA,AAAAA,EAA0C,MAE5DwqE,EAAuBxqE,AAAAA,CAAAA,EAAAA,EAAAA,aAAAA,AAAAA,EAA+C,MAEtE4I,EAAqB,KAChC,IAAMv1B,EAAU43B,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAW7C,GAC3B,GAAI,CAAC/0B,EACH,MAAM,AAAI2/C,MAAM,8DAElB,OAAO3/C,CACT,EAEay1B,EAA0B,KACrC,IAAMz1B,EAAU43B,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAWu/D,UAC3B,AAAKn3F,EAGEA,EAFE,CAAC,CAGZ,C,2ICjGO,IAAMo3F,EAAiBnqE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAwB,OAAQ,CAC5D,SAAU,CACR,KAAM,CACJ,MAAO,QACP,OAAQ,QACR,MAAO,OACT,EACA,SAAU,CAAC,EACX,MAAO,CAAC,EACR,SAAU,CAAC,CACb,EACA,iBAAkB,CAChB,CACE,SAAU,CAAC,OAAQ,cAAe,QAAQ,CAC1C,UAAW,YACb,EACD,AACH,GAEaoqE,EAA0BpqE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAiC,GAAI,CAC1E,SAAU,CACR,KAAM,CACJ,MAAO,SACP,MAAO,QACT,EACA,SAAU,CAAC,CACb,EACA,iBAAkB,CAChB,CACE,SAAU,CAAC,OAAQ,cAAe,QAAQ,CAC1C,UAAW,iBACb,EACD,AACH,GAEaqqE,EAAqBrqE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAA4B,GAAI,CAChE,SAAU,CACR,KAAM,CACJ,MAAO,UACP,OAAQ,UACR,MAAO,SACT,EACA,eAAgB,CACd,KAAM,WACR,EACA,MAAO,CAAC,EACR,SAAU,CAAC,EACX,SAAU,CAAC,CACb,EACA,iBAAkB,CAChB,CACE,KAAM,CAAC,QAAS,SAAU,QAAQ,CAClC,UAAW,OACb,EACA,CACE,MAAO,QACP,SAAU,GACV,UAAWC,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAAA,IAAyB,AACtC,EACA,CACE,MAAO,QACP,SAAU,GACV,UAAW,gBACb,EACA,CACE,MAAO,OACP,SAAU,GACV,UAAW,aACb,EACA,CACE,MAAO,OACP,SAAU,GACV,UAAW,gBACb,EACA,CACE,SAAU,CAAC,OAAQ,QAAQ,CAC3B,UAAW,UACb,EACD,AACH,GAEaqqE,EAA4BtqE,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAA4B,QAAS,CAC5E,SAAU,CACR,KAAM,CACJ,MAAO,UACP,OAAQ,UACR,MAAO,SACT,EACA,MAAO,CAAC,EACR,SAAU,CAAC,EACX,SAAU,CAAC,CACb,EACA,iBAAkB,CAChB,CACE,MAAO,QACP,SAAU,GACV,UAAWC,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,IAAwB,AACrC,EACA,CACE,MAAO,QACP,SAAU,GACV,UAAW,gBACb,EACA,CACE,MAAO,OACP,SAAU,GACV,UAAWwlD,EAAAA,CAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA,IAAyB,AACtC,EACA,CACE,MAAO,OACP,SAAU,GACV,UAAW,gBACb,EACA,CACE,SAAU,CAAC,OAAQ,cAAc,CACjC,UAAW,UACb,EACD,AACH,GC1HaW,EAAc,AAAC/lE,IAC1B,GAAM,CACJ0X,UAAAA,CAAS,CAAEmZ,YAAAA,CAAW,CAAEljB,SAAAA,CAAQ,CAAEpS,GAAAA,CAAE,CAAE8rF,MAAAA,CAAK,CAAE5hB,MAAAA,CAAK,CAAEnlD,KAAAA,CAAI,CAAExF,MAAAA,CAAK,CAAE6qD,SAAAA,CAAQ,CAC1E,CAAG3lE,EACEwmC,EAAiB3V,EAAY,MAAM,CAAG,EACtC+0C,EAAWH,EAAM,MAAM,CAAG,EAEhC,MACE,WAAC,SAAM,UAAW10D,AAAAA,CAAAA,EAAAA,EAAAA,EAAAA,AAAAA,EAAG2G,EAAWoyE,EAAe,CAAExpE,KAAAA,EAAMqlD,SAAAA,CAAS,IAAK,QAASpqE,E,UAC3E8rF,EACD,WAAC,QAAK,UAAW0C,EAAwB,CAAEzpE,KAAAA,EAAMqlD,SAAAA,CAAS,G,UACvDC,GACC,UAAC,QACC,UAAWokB,EAAmB,CAC5B1pE,KAAAA,EAAMxF,MAAAA,EAAOnN,SAAAA,EAAU64B,eAAAA,EAAgBm/B,SAAAA,CACzC,G,SAECF,C,GAGJj/B,GACC,UAAC,QAAK,UAAWyjD,EAA0B,CACzC3pE,KAAAA,EAAMxF,MAAAA,EAAOnN,SAAAA,EAAUg4D,SAAAA,CACzB,G,SAEG90C,C,QAMb,CAEAk1C,CAAAA,EAAY,YAAY,CCzByC,CAC/D,YAAa,GACb,MAAO,GACP,SAAU,GACV,KAAM,SACN,MAAO,OACT,C,kCCgVA,KAAe,CACbmkB,MAxWY,CACZ,OAAQ,CACN,GAAI,CACF,KAAM,gBACN,MAAO,qBACT,EACA,OAAQ,CACN,KAAM,oBACN,MAAO,yBACT,EACA,MAAO,CACL,KAAM,mBACN,MAAO,wBACT,CACF,EACA,OAAQ,CACN,GAAI,CACF,KAAM,gBACN,MAAO,qBACT,EACA,OAAQ,CACN,KAAM,oBACN,MAAO,yBACT,EACA,MAAO,CACL,KAAM,mBACN,MAAO,wBACT,CACF,EACA,KAAM,CACJ,GAAI,CACF,KAAM,cACN,MAAO,mBACT,EACA,OAAQ,CACN,KAAM,kBACN,MAAO,uBACT,EACA,MAAO,CACL,KAAM,iBACN,MAAO,sBACT,CACF,EACA,KAAM,CACJ,GAAI,CACF,KAAM,cACN,MAAO,mBACT,EACA,OAAQ,CACN,KAAM,kBACN,MAAO,uBACT,EACA,MAAO,CACL,KAAM,iBACN,MAAO,sBACT,CACF,CACF,EAgTEnnF,KA9SW,CACX,SAAU,CACR,KAAM,gBACN,MAAO,qBACT,EACA,MAAO,CACL,KAAM,iBACN,MAAO,sBACT,EACA,OAAQ,CACN,KAAM,iBACN,MAAO,sBACT,EACA,KAAM,CACJ,KAAM,iBACN,MAAO,sBACT,EACA,QAAS,CACP,KAAM,iBACN,MAAO,sBACT,CACF,EA0REonF,WAxRiB,CACjB,SAAU,CACR,KAAM,aACN,MAAO,mBACP,YAAa,0BACb,MAAO,kBACT,EACA,MAAO,CACL,KAAM,aACN,MAAO,mBACP,YAAa,0BACb,MAAO,kBACT,EACA,OAAQ,CACN,KAAM,cACN,MAAO,oBACP,YAAa,2BACb,MAAO,mBACT,EACA,KAAM,CACJ,KAAM,cACN,MAAO,oBACP,YAAa,2BACb,MAAO,mBACT,EACA,QAAS,CACP,KAAM,cACN,MAAO,oBACP,YAAa,2BACb,MAAO,mBACT,CACF,EA0PEC,OAxPa,CACb,MAAO,CACL,KAAM,iBACN,MAAO,sBACT,EACA,OAAQ,CACN,KAAM,kBACN,MAAO,uBACT,EACA,KAAM,CACJ,KAAM,kBACN,MAAO,uBACT,EACA,QAAS,CACP,KAAM,kBACN,MAAO,uBACT,CACF,EAwOEC,OAtOa,CACb,SAAU,CACR,GAAI,CACF,KAAM,cACN,MAAO,oBACP,YAAa,2BACb,MAAO,mBACT,EACA,OAAQ,CACN,KAAM,kBACN,MAAO,wBACP,YAAa,+BACb,MAAO,uBACT,EACA,MAAO,CACL,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,CACF,EACA,MAAO,CACL,GAAI,CACF,KAAM,cACN,MAAO,oBACP,YAAa,2BACb,MAAO,mBACT,EACA,OAAQ,CACN,KAAM,kBACN,MAAO,wBACP,YAAa,+BACb,MAAO,uBACT,EACA,MAAO,CACL,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,CACF,EACA,QAAS,CACP,GAAI,CACF,KAAM,cACN,MAAO,oBACP,YAAa,2BACb,MAAO,mBACT,EACA,OAAQ,CACN,KAAM,kBACN,MAAO,wBACP,YAAa,+BACb,MAAO,uBACT,EACA,MAAO,CACL,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,CACF,EACA,KAAM,CACJ,GAAI,CACF,KAAM,cACN,MAAO,oBACP,YAAa,2BACb,MAAO,mBACT,EACA,OAAQ,CACN,KAAM,kBACN,MAAO,wBACP,YAAa,+BACb,MAAO,uBACT,EACA,MAAO,CACL,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,CACF,CACF,EAsJEn8E,QApJc,CACd,SAAU,CACR,GAAI,CACF,KAAM,eACN,MAAO,oBACT,EACA,OAAQ,CACN,KAAM,mBACN,MAAO,wBACT,EACA,MAAO,CACL,KAAM,kBACN,MAAO,uBACT,CACF,EACA,MAAO,CACL,GAAI,CACF,KAAM,eACN,MAAO,oBACT,EACA,OAAQ,CACN,KAAM,mBACN,MAAO,wBACT,EACA,MAAO,CACL,KAAM,kBACN,MAAO,uBACT,CACF,EACA,QAAS,CACP,GAAI,CACF,KAAM,eACN,MAAO,oBACT,EACA,OAAQ,CACN,KAAM,mBACN,MAAO,wBACT,EACA,MAAO,CACL,KAAM,kBACN,MAAO,uBACT,CACF,EACA,KAAM,CACJ,GAAI,CACF,KAAM,eACN,MAAO,oBACT,EACA,OAAQ,CACN,KAAM,mBACN,MAAO,wBACT,EACA,MAAO,CACL,KAAM,kBACN,MAAO,uBACT,CACF,CACF,EA4FErL,MA1FY,CACZ,SAAU,CACR,GAAI,CACF,KAAM,aACN,MAAO,mBACP,YAAa,0BACb,MAAO,kBACT,EACA,OAAQ,CACN,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,EACA,MAAO,CACL,KAAM,gBACN,MAAO,sBACP,YAAa,6BACb,MAAO,qBACT,CACF,EACA,MAAO,CACL,GAAI,CACF,KAAM,aACN,MAAO,mBACP,YAAa,0BACb,MAAO,kBACT,EACA,OAAQ,CACN,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,EACA,MAAO,CACL,KAAM,gBACN,MAAO,sBACP,YAAa,6BACb,MAAO,qBACT,CACF,EACA,QAAS,CACP,GAAI,CACF,KAAM,aACN,MAAO,mBACP,YAAa,0BACb,MAAO,kBACT,EACA,OAAQ,CACN,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,EACA,MAAO,CACL,KAAM,gBACN,MAAO,sBACP,YAAa,6BACb,MAAO,qBACT,CACF,EACA,KAAM,CACJ,GAAI,CACF,KAAM,aACN,MAAO,mBACP,YAAa,0BACb,MAAO,kBACT,EACA,OAAQ,CACN,KAAM,iBACN,MAAO,uBACP,YAAa,8BACb,MAAO,sBACT,EACA,MAAO,CACL,KAAM,gBACN,MAAO,sBACP,YAAa,6BACb,MAAO,qBACT,CACF,CACF,CAUA,C,iCClTA,KAAe,CACbE,KA9DW,CACX,SAAU,CACR,KAAM,iBACN,MAAO,sBACT,EACA,MAAO,CACL,KAAM,iBACN,MAAO,sBACT,EACA,OAAQ,CACN,KAAM,iBACN,MAAO,sBACT,EACA,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"}