{"version":3,"sources":["components/DailyTasks/TaskList/TaskGrid.module.scss","components/Reservation/Steps/Steps.module.scss","components/commons/Table/Table.module.scss","components/commons/Stepper/Stepper.module.scss","layouts/SideMenu/SideMenuItem.module.scss","components/commons/Drawer/Drawer.module.scss","components/ReservationList/ReservationList.module.scss","components/commons/Snackbar/Snackbar.module.scss","layouts/Layout/Layout.module.scss","components/PageContent/PageContent.module.scss","components/cateringOrder/CateringDutyQuantity/CateringDutyQuantity.module.scss","pages/dailyTasks/ARM/ARMTab/ARMTab.module.scss","pages/dailyTasks/passengerList/PassengerListPage/PassengerListPage.module.scss","components/EmergencyContactCard/EmergencyContactCard.module.scss","components/cateringOrder/CateringOrderCard/CateringOrderCard.module.scss","components/commons/FileDownloadButton/FileDownloadButton.module.scss","layouts/Content/Content.module.scss","components/upliftStations/UpliftStationRouting/UpliftStationRouting.module.scss","pages/flightManagement/BlockFlightPage/BlockFlightTab/BlockFlightSearchTab.module.scss","components/Reservation/commons/AgentForm.module.scss","pages/settings/eticket/ETicketTemplatePage/ETicketTemplatePage.module.scss","pages/userManagement/guest/GuestListPage/GuestListPage.module.scss","components/MemberAccessForm/MemberAccessForm.module.scss","styles/styles.module.scss","components/Reservation/Basket/Basket.module.scss","pages/dailyTasks/taskList/TaskListPage.module.scss","components/commons/FormControl/FormControl.module.scss","components/commons/AccordionWarningMessage/AccordionWarningMessage.module.scss","components/commons/TextField/TextField.module.scss","components/commons/Tabs/Tabs.module.scss","components/passengerList/LegTravelerCard/LegTravelerCard.module.scss","components/DailyTasks/PrintETicket/PrintETicket.module.scss","components/Reservation/Steps/personalData/PersonalDataConditions.module.scss","components/ReservationList/Details/CVFlightDetails.module.scss","components/MemberInformation/MemberInformation.module.scss","layouts/Header/Header.module.scss","components/Reservation/commons/ReviewSummary/ReviewSummary.module.scss","components/Reservation/CvFlightPicker/contents/cards/CVFlightCard.module.scss","pages/ForbiddenPage/ForbiddenPage.module.scss","components/ReportIssue/ReportIssue.module.scss","utils/objectToFormData/objectToFormData.js","components/cateringOrder/CateringOrderFilter/CateringOrderFilter.module.scss","components/commons/NoResult/NoResult.module.scss","components/commons/TableIconButton/TableIconButton.module.scss","pages/catering/FlightSchedulePage/FlightSchedulePage.module.scss","components/commons/SearchButton/SearchButton.module.scss","components/passengerList/AllLegsCrewCard/AllLegsCrewCard.module.scss","components/passengerList/LegCrewCard/LegCrewCard.module.scss","components/WaitList/WaitListGrid.module.scss","pages/dailyTasks/waitingList/WaitingListPage.module.scss","components/Reporting/NoShowConfirmed/NoShowConfirmed.module.scss","components/Reporting/WarningList/WarningListGrid.module.scss","components/Reservation/ReservationMailExchange/ReservationMailExchange.module.scss","components/commons/Carousel/Carousel.module.scss","components/commons/Stepper/StepperActions.module.scss","components/ReservationPaymentInformations/ReservationPaymentInformations.module.scss","components/commons/ReactQuill/ReactQuill.module.scss","pages/reservation/bookATrip/ReservationStepsPage.module.scss","components/HelpPageForm/HelpPageForm.module.scss","pages/reservation/bookATrip/BookingSetup/BookingSetupPage.module.scss","pages/settings/wcm/EditWCMPage/EditWCMPage.module.scss","components/WCMPageForm/WCMPageForm.module.scss","components/Reservation/CvFlightPicker/CVFlightPicker.module.scss","layouts/SideMenu/SideMenu.module.scss","styles/variables.module.scss","components/commons/FileUpload/FileUpload.module.scss","components/PassportDocument/ImmigrationDocumentCreationDrawer.module.scss","context/GlobalStorage/GlobalStorageProvider.tsx","msal-config.ts","services/AuthenticationService.ts","utils/Constants.ts","services/ApiService.tsx","services/UserService.ts","assets/images/logo.png","pages/ForbiddenPage/ForbiddenPage.tsx","assets/images/cargolux-home_1.png","context/User/UserContext.tsx","components/PrivateRoute/PrivateRoute.tsx","components/Routes/Routes.tsx","assets/icons/errorWhite.svg","assets/icons/success.svg","utils/MessageType.ts","components/commons/Snackbar/Snackbar.tsx","context/Snackbar/SnackbarContext.tsx","hooks/useSnackbar.ts","services/AirportService.ts","services/CountryService.ts","services/SettingsService.ts","context/ClientAppContext/ClientAppContext.tsx","hooks/useWindowEvent.ts","context/LocalStorageContext/LocalStorageReducer.ts","context/LocalStorageContext/LocalStorageContext.tsx","context/PlannersContext/PlannersContext.tsx","hooks/useScreenshot.ts","services/FileService.ts","utils/Forms.ts","services/IssueService.ts","components/commons/Drawer/Drawer.tsx","components/commons/Drawer/DrawerActions.tsx","components/commons/Drawer/DrawerCancelButton.tsx","components/commons/Drawer/DrawerContent.tsx","components/commons/Drawer/DrawerSaveButton.tsx","components/commons/Drawer/DrawerTitle.tsx","components/commons/FormControl/FormControl.tsx","components/commons/TextField/TextField.tsx","components/commons/ToggleButtons/ToggleButtons.tsx","components/ReportIssue/ReportIssueDrawer.tsx","components/ReportIssue/ReportIssue.tsx","context/LayoutProvider/LayoutReducer.ts","context/LayoutProvider/LayoutProvider.tsx","utils/PermissionsList.ts","layouts/Content/Content.tsx","assets/icons/help.svg","assets/icons/mail.svg","assets/icons/menu.svg","assets/icons/userFemale.svg","assets/icons/userMale.svg","services/AlertService.ts","components/Alerts/AlertPopoverPopup.tsx","hooks/useBreakpoint.ts","layouts/Header/Header.tsx","assets/icons/contact.svg","assets/icons/intranet.svg","assets/icons/booking.svg","assets/images/logo.svg","assets/images/mini-logo.svg","assets/icons/catering.svg","assets/icons/dailyTask.svg","assets/icons/flightManagement.svg","assets/icons/memberManagement.svg","assets/icons/monitoring.svg","assets/icons/reporting.svg","assets/icons/setting.svg","routes/SideMenuRoutes.tsx","hooks/useClientApp.ts","hooks/useSideMenuRoutes.ts","layouts/SideMenu/SideMenuItem.tsx","layouts/SideMenu/SideMenu.tsx","layouts/Layout/Layout.tsx","assets/images/world-map.svg","styles/theme.ts","components/commons/Dialog/Dialog.tsx","components/commons/Dialog/DialogActions.tsx","components/commons/Dialog/DialogButton.tsx","components/commons/Dialog/DialogContent.tsx","components/commons/Dialog/DialogTitle.tsx","hooks/useModal.tsx","hooks/useMakeAReservationAccess.tsx","assets/icons/simpleArrow.svg","pages/HomePage/HomePageMobile.tsx","pages/HomePage/HomePage.tsx","services/AppSettingService.ts","context/settings/AppSettingsPageContext/AppSettingsPageReducer.ts","context/settings/AppSettingsPageContext/AppSettingsPageProvider.tsx","services/ARMService.ts","context/ARM/ARMReducer.ts","context/ARM/ARMTabEnum.ts","context/ARM/ARMProvider.tsx","services/BlockFlightService.ts","services/ReservationService.ts","context/BlockFlight/BlockFlightEnums.ts","context/BlockFlight/BlockFlightReducer.tsx","context/BlockFlight/BlockFlightProvider.tsx","services/ApiCateringService.ts","services/CateringOrderService.ts","context/catering/CateringOrderProvider/CateringOrderReducer.ts","context/catering/CateringOrderProvider/CateringOrderProvider.tsx","services/CrewSpecialMealService.ts","context/catering/CrewSpecialMealsProvider/CrewSpecialMealsReducer.ts","context/catering/CrewSpecialMealsProvider/CrewSpecialMealsProvider.tsx","context/catering/ForecastProvider/ForecastReducer.ts","context/catering/ForecastProvider/ForecastProvider.tsx","services/UpliftStationService.ts","context/catering/UpliftStationsProvider/UpliftStationsReducer.ts","context/catering/UpliftStationsProvider/UpliftStationsProvider.tsx","services/FlightService.ts","services/SeatsService.ts","context/CVFlightsContext/CVFlightsReducer.ts","context/CVFlightsContext/CVFlightsContext.tsx","services/HelpPageService.ts","context/HelpPageProvider/HelpPageReducer.ts","context/HelpPageProvider/HelpPageProvider.tsx","services/MemberService.ts","context/MemberManagementProvider/MemberManagementReducer.ts","context/MemberManagementProvider/MemberManagementProvider.tsx","context/MyInformationProvider/MyInformationReducer.ts","context/MyInformationProvider/MyInformationProvider.tsx","models/Utils/IPaginated.ts","context/MyReservations/MyReservationsReducer.ts","context/MyReservations/MyReservationsContext.tsx","services/PassengerService.ts","context/PassengerListProvider/PassengerListReducer.ts","context/PassengerListProvider/PassengerListProvider.tsx","assets/icons/stepper/car.svg","assets/icons/stepper/carSelected.svg","assets/icons/stepper/commercial.svg","assets/icons/stepper/commercialSelected.svg","assets/icons/stepper/cvFlight.svg","assets/icons/stepper/cvFlightSelected.svg","assets/icons/stepper/hotel.svg","assets/icons/stepper/hotelSelected.svg","assets/icons/stepper/personalData.svg","assets/icons/stepper/personalDataSelected.svg","assets/icons/stepper/review.svg","assets/icons/stepper/reviewSelected.svg","hooks/useReservationPassengers.ts","models/Reservation/ReservationEnum.ts","services/TrainingCatalogueService.ts","context/ReservationProvider/ReservationActions.ts","context/ReservationProvider/ReservationReducer.ts","context/ReservationProvider/ReservationProvider.tsx","context/ReservationConsultContext/ReservationConsultReducer.tsx","context/ReservationConsultContext/ReservationConsultContext.tsx","services/TaskService.ts","context/TaskList/TaskListReducer.ts","context/TaskList/TaskListProvider.tsx","context/TrainingCatalogueProvider/TrainingCatalogueReducer.ts","context/TrainingCatalogueProvider/TrainingCatalogueTabEnum.ts","context/TrainingCatalogueProvider/TrainingCatalogueProvider.tsx","services/WaitListService.ts","context/WaitList/WaitListReducer.ts","context/WaitList/WaitListProvider.tsx","services/EmailTemplatesService.ts","context/settings/EmailTemplatesPageContext/EmailTemplatesPageReducer.ts","context/settings/EmailTemplatesPageContext/EmailTemplatesPageProvider.tsx","context/AirportsContext/AirportsReducer.ts","context/AirportsContext/AirportsProvider.tsx","context/ManageReservations/ManageReservationsReducer.tsx","context/ManageReservations/ManageReservationsProvider.tsx","context/settings/BlockFlightSettingContext/BlockFlightSettingReducer.ts","context/settings/BlockFlightSettingContext/BlockFlightSettingProvider.tsx","services/WCMPageService.ts","context/settings/WCMPageContext/WCMPageReducer.ts","context/settings/WCMPageContext/WCMPageProvider.tsx","assets/icons/danger.svg","components/cateringOrder/CateringOrderCard/CateringOrderCard.tsx","components/cateringOrder/CateringOrderFilter/CateringOrderFilter.tsx","assets/icons/noResult.svg","components/commons/NoResult/NoResult.tsx","components/PageContent/PageContent.tsx","pages/catering/CateringOrderPage/CateringOrderPage.tsx","assets/icons/delete.svg","assets/icons/edit.svg","assets/icons/plus.svg","components/commons/AddButton/AddButton.tsx","assets/icons/pagingFirst.svg","assets/icons/pagingLast.svg","assets/icons/pagingNext.svg","assets/icons/pagingPrevious.svg","components/commons/Table/Table.tsx","components/commons/TableIconButton/TableIconButton.tsx","components/commons/Searchcomplete/Searchcomplete.tsx","components/crewSpecialMeal/CrewSpecialMealCrewFilter/CrewSpecialMealCrewFilter.tsx","components/commons/Dialog/DialogCancelButton.tsx","components/crewSpecialMeal/CrewSpecialMealDeleteDialog/CrewSpecialMealDeleteDialog.tsx","components/commons/Select/Select.tsx","components/commons/Checkbox/Checkbox.tsx","components/crewSpecialMeal/CrewSpecialMealForm/CrewSpecialMealForm.tsx","components/crewSpecialMeal/CrewSpecialMealDrawer/CrewSpecialMealDrawer.tsx","components/crewSpecialMeal/CrewSpecialMealExportDialog/CrewSpecialMealExportDialog.tsx","pages/catering/CrewSpecialMealsPage/CrewSpecialMealsPage.tsx","pages/catering/FlightSchedulePage/FlightSchedulePage.tsx","components/commons/DatePicker/DatePicker.tsx","assets/icons/search.svg","components/commons/SearchButton/SearchButton.tsx","components/forecast/ForecastSearch/ForecastSearch.tsx","pages/catering/ForecastPage/ForecastPage.tsx","services/ManualForecastService.ts","pages/catering/ManualForecastPage/ManualForecastPage.tsx","components/commons/DateTime/DateTime.tsx","components/upliftStations/UpliftStationDialog/StationTypeSelectOption.ts","components/upliftStations/UpliftStationDialog/UpliftStationDialog.tsx","components/upliftStations/UpliftStationRouting/UpliftStationRouting.tsx","components/upliftStations/UpliftStationSearch/UpliftStationSearch.tsx","assets/icons/comment.svg","components/DialogComment/DialogComment.tsx","hooks/useComment.tsx","pages/catering/UpliftStationsPage/UpliftStationsPage.tsx","components/cateringOrder/CateringDutyQuantityCell/CateringDutyQuantityCell.tsx","components/cateringOrder/CateringDutyQuantity/CateringDutyQuantity.tsx","pages/catering/duty/DutyQuantityPage.tsx","components/commons/AutoComplete/AutoComplete.tsx","assets/icons/attachedFileLighter.svg","components/DialogComment/DialogMultiComment.tsx","hooks/useReservationRedirect.tsx","models/DailyTasks/TaskList/Forms/ITaskForm.ts","components/commons/Drawer/DrawerButton.tsx","assets/icons/deleteBin.svg","assets/icons/attachedFile.svg","utils/Downloads.ts","components/commons/FileDownloadButton/FileDownloadButton.tsx","assets/icons/uploadFile.svg","components/commons/FileUpload/FileUpload.tsx","components/DailyTasks/TaskList/TaskForm.tsx","components/DailyTasks/TaskList/TaskGridDrawer.tsx","components/DailyTasks/TaskList/TaskGrid.tsx","hooks/useMultiComment.tsx","pages/dailyTasks/taskList/TaskListPage.tsx","hooks/useWindowSize.ts","components/commons/NavTabs/NavTabs.tsx","components/commons/DisplayControl/DisplayControl.tsx","pages/dailyTasks/ARM/ARMTab/ARMDrawer.tsx","pages/dailyTasks/ARM/ARMTab/ARMBlockFlightTab.tsx","hooks/usePassengerListRedirect.ts","pages/dailyTasks/ARM/ARMTab/ARMReservationTab.tsx","hooks/useARMRedirect.ts","routes/ARMRoutes.tsx","pages/dailyTasks/ARM/ARMPage.tsx","assets/icons/print.svg","components/commons/Tabs/Tabs.tsx","components/passengerList/AllLegsCrewCard/AllLegsCrewCard.tsx","assets/icons/warningSecondary.svg","styles/collapseCardIcon.ts","components/passengerList/EmergencyContactInfo/EmergencyContactInfo.tsx","hooks/useCountries.ts","utils/Genders.ts","pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/DocumentStatusChip.tsx","pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/PassportExpirationChip.tsx","pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/ReadOnlyLabel.tsx","services/ImmigrationDocumentService.ts","components/PdfFileDownloadButton.tsx","utils/get-mime-type.ts","components/ImmigrationDocument/ImmigrationDocumentPreview.tsx","components/Reservation/Steps/personalData/PassportReadonlyCard.tsx","components/passengerList/AllLegsTravelerCard/AllLegsTravelerCard.tsx","components/passengerList/LegCrewCard/LegCrewCard.tsx","services/ApisService.ts","components/passengerList/LegTravelerCard/DirectApisApiResponse.tsx","components/passengerList/LegTravelerCard/LegTravelerCard.tsx","assets/icons/warning.svg","pages/dailyTasks/passengerList/PassengerListPage/PassengerListPage.tsx","models/Enum.ts","utils/Strings.tsx","components/commons/Dialog/DialogSaveButton.tsx","components/DailyTasks/PrintETicket/PrintETicketGrid.tsx","pages/dailyTasks/printETicket/PrintETicketPage.tsx","components/WaitList/WaitListGrid.tsx","pages/dailyTasks/waitingList/WaitingListPage.tsx","components/DailyTasks/TaskList/RelatedTasksGrid.tsx","pages/dailyTasks/relatedTasks/RelatedTasksPage.tsx","pages/dailyTasks/passengerList/PassengerListLightPage/PassengerListLightPage.tsx","components/BlockFlights/Airports/BlockFlightRelationsCard.tsx","components/BlockFlights/Airports/BlockFlightAirports.tsx","components/BlockFlights/Common/CommentTravelTypes.tsx","components/BlockFlights/CarrierCode/BlockFlightCarrierCode.tsx","components/BlockFlights/Common/FlightRoutingCard.tsx","components/BlockFlights/FlightNumber/BlockFlightNumberStep1.tsx","components/BlockFlights/FlightNumber/BlockFlightNumberStep2.tsx","components/BlockFlights/FlightNumber/BlockFlightNumberStep3.tsx","components/BlockFlights/FlightNumber/BlockFlightFlightNumber.tsx","components/BlockFlights/TailNumber/BlockFlightTailNumber.tsx","pages/flightManagement/BlockFlightPage/BlockFlightTab/BlockFlightCreateTab.tsx","assets/icons/back.svg","components/BlockFlights/Airports/BlockFlightRulesAirports.tsx","components/BlockFlights/CarrierCode/BlockFlightRulesCarrierCode.tsx","components/BlockFlights/FlightNumber/BlockFlightRulesFlightNumber.tsx","components/BlockFlights/TailNumber/BlockFlightRulesTailNumber.tsx","pages/flightManagement/BlockFlightPage/BlockFlightTab/BlockFlightRulesTab.tsx","assets/icons/notApplicable.svg","components/BlockFlights/Common/BlockFlightView.tsx","hooks/useQuery.ts","pages/flightManagement/BlockFlightPage/BlockFlightTab/BlockFlightSearchTab.tsx","routes/BlockFlightRoutes.tsx","pages/flightManagement/BlockFlightPage/BlockFlightPage.tsx","pages/flightManagement/schedule/DeparturesFromLUXPage/DeparturesFromLUXPage.tsx","pages/HelpPage/HelpPage.tsx","services/AuditLogService.ts","pages/reporting/auditLog/AlertsTab/AlertsTab.tsx","pages/reporting/auditLog/ReservationsTab/ReservationsTab.tsx","routes/AuditLogRoutes.tsx","pages/reporting/auditLog/AuditLogPage.tsx","components/Reporting/AviationInsurance/AviationInsuranceGrid.tsx","services/ReportingService.ts","pages/reporting/aviationInsurance/AviationInsuranceReportPage.tsx","components/Reporting/NoShowConfirmed/NoShowConfirmedGrid.tsx","pages/reporting/notShowConfirmed/NoShowConfirmedReportPage.tsx","components/commons/MultiSelect/MultiSelect.tsx","components/Reporting/TravelReport/TravelReportCar.tsx","components/Reporting/TravelReport/TravelReportCVFight.tsx","components/Reporting/TravelReport/TravelReportHotel.tsx","components/Reporting/TravelReport/TravelReportDrawer.tsx","components/Reporting/TravelReport/TravelReportCommercial.tsx","pages/reporting/travelReport/TravelReportPage.tsx","components/DialogComment/DialogMultiCommentReadonly.tsx","components/Reporting/WarningList/WarningListGrid.tsx","hooks/useMultiCommentReadonly.tsx","pages/reporting/warningList/WarningListPage.tsx","components/commons/SendMailModal/SendMailModal.tsx","components/Reporting/Accounting/SpecialFeesGrid.tsx","components/Reporting/Accounting/PassengersToBeInvoicedGrid.tsx","pages/reporting/accouting/AccountingReportPage.tsx","pages/reporting/membersRole/MembersRoleReportPage.tsx","pages/reporting/auditlogsecurity/AuditLogSecurityPage.tsx","models/Reservation/Forms/IBookingApprovalForm.ts","pages/reservation/approvals/ReservationApprovalPage.tsx","assets/icons/deleteBinWhite.svg","hooks/useDebounce.tsx","components/commons/AutoCompleteFetcher/AutoCompleteFetcher.tsx","hooks/useReservationChildrenMethods.tsx","models/Reservation/ITripType.ts","pages/reservation/bookATrip/BookingSetup/BookingSetupPage.tsx","assets/icons/basket.svg","assets/icons/mobileStepperNext.svg","components/commons/Stepper/Stepper.tsx","assets/icons/carBasket.svg","assets/icons/commercialBasket.svg","assets/icons/cvFlightBasket.svg","assets/icons/hotelBasket.svg","components/Reservation/commons/TravelersPicker.tsx","components/Reservation/commons/PassengerList.tsx","components/Reservation/commons/AgentForm.tsx","hooks/useMultiCommentCollapse.tsx","context/ReservationMailExchangeContext/ReservationMailExchangeReducer.ts","context/ReservationMailExchangeContext/ReservationMailExchangeProvider.tsx","components/Reservation/ReservationMailExchange/ReservationMailExchangeDetails.tsx","components/Reservation/ReservationMailExchange/ReservationMailExchangeList.tsx","components/Reservation/ReservationMailExchange/ReservationExchangeHistoryModal.tsx","hooks/useReservationStatus.tsx","models/Reservation/Forms/ISendReservationForm.ts","components/Reservation/commons/SendMailModal.tsx","hooks/useReservationTraining.ts","components/Reservation/commons/ReviewSummary/ReviewSummaryEditForm.tsx","components/Reservation/commons/ReviewSummary/ReviewSummaryReadOnly.tsx","components/Reservation/commons/ReviewSummary/ReviewSummary.tsx","assets/icons/activeService.svg","hooks/useSendReservation.tsx","hooks/useReservationExchangeHistory.tsx","assets/icons/editWhite.svg","components/Reservation/Basket/Content/HotelBasket.tsx","components/Reservation/Basket/BasketRemovePassengerModal.tsx","components/Reservation/Basket/Content/CommercialBasket.tsx","components/Reservation/Basket/Content/carBaskets/RentalCarBasket.tsx","components/Reservation/Basket/Content/carBaskets/LuxPoolCarBasket.tsx","components/Reservation/Basket/Content/carBaskets/CompanyCarBasket.tsx","components/Reservation/Basket/Content/carBaskets/PrivateCarBasket.tsx","components/Reservation/Basket/Content/carBaskets/CarpoolingBasket.tsx","components/Reservation/Basket/Content/CarBasket.tsx","components/Reservation/Basket/Content/CvFlightBasket.tsx","components/Reservation/Basket/Content/EmptyBasketItem.tsx","components/Reservation/Basket/Basket.tsx","components/commons/Switch/OnOffSwitch.tsx","libraries/react-slick/initial-state.js","libraries/react-slick/utils/innerSliderUtils.js","libraries/react-slick/track.js","libraries/react-slick/dots.js","libraries/react-slick/arrows.js","libraries/react-slick/inner-slider.js","libraries/react-slick/default-props.js","libraries/react-slick/slider.js","libraries/react-slick/index.js","components/commons/Carousel/Carousel.tsx","components/Reservation/CvFlightPicker/contents/CVFlightCarousel.tsx","assets/icons/arrow.svg","hooks/useCVFlightTimezones.ts","assets/icons/flightArrival.svg","assets/icons/flightDeparture.svg","components/Reservation/CvFlightPicker/contents/FlightDepartureHeader.tsx","components/Reservation/CvFlightPicker/contents/cards/CVFlightCardSchedule.tsx","components/Reservation/CvFlightPicker/contents/cards/CVFlightLegDetails.tsx","components/Reservation/CvFlightPicker/contents/cards/CVFlightCard.tsx","assets/icons/noFlightFound.svg","assets/icons/noFlightFoundForGivenDate.svg","components/Reservation/CvFlightPicker/contents/CVFlightNoFlightFound.tsx","components/Reservation/CvFlightPicker/contents/cards/CVFlightCardList.tsx","components/Reservation/CvFlightPicker/CVFlightOneWayPicker.tsx","components/Reservation/CvFlightPicker/CvFlightOutwardPicker.tsx","components/Reservation/CvFlightPicker/CvFlightReturnPicker.tsx","components/Reservation/CvFlightPicker/CVFlightPicker.tsx","hooks/useAgent.ts","components/commons/FileUpload/UnControlledFileUpload.tsx","hooks/useTaskAttachments.tsx","utils/Dates.ts","models/Reservation/Forms/IHotelForm.ts","assets/icons/mobileStepperActionNext.svg","assets/icons/mobileStepperActionNextDisabled.svg","components/commons/Stepper/StepperActions.tsx","assets/icons/reset.svg","components/Reservation/commons/ClearFormMobile.tsx","components/Reservation/Steps/HotelStep.tsx","models/Reservation/Forms/ICarForm.ts","components/commons/DateTimePicker/ControlledDateTimePicker.tsx","components/commons/controlled/ControlledTextField.tsx","components/Reservation/Steps/carTypeForms/RentalForm.tsx","components/Reservation/Steps/carTypeForms/LuxPoolForm.tsx","components/Reservation/Steps/carTypeForms/CompanyCarForm.tsx","components/Reservation/Steps/carTypeForms/PrivateCarForm.tsx","components/Reservation/Steps/carTypeForms/CarpoolingForm.tsx","components/Reservation/Steps/carTypeForms/canEditFields.ts","components/Reservation/Steps/CarStep.tsx","models/Reservation/Forms/ICommercialForm.ts","components/Reservation/Steps/commercials/CommercialFlightForm.tsx","components/Reservation/Steps/commercials/CommercialTrainForm.tsx","components/Reservation/Steps/CommercialStep.tsx","models/Reservation/Forms/ISearchFlightForm.ts","components/Reservation/Steps/cvflights/CvFlightRequirementReport.tsx","components/Reservation/Steps/cvflights/CvFlightAirportRequirements.tsx","components/Reservation/Steps/cvflights/CvFlightAirportRequirementsModal.tsx","components/Reservation/Steps/cvflights/CvFlightStepActions.tsx","components/Reservation/Steps/CvFlightStep.tsx","assets/icons/emptyBasket.svg","components/Reservation/Steps/review/cars/RentalCarReview.tsx","components/Reservation/Steps/review/cars/LuxPoolCarReview.tsx","components/Reservation/Steps/review/cars/CompanyCarReview.tsx","components/Reservation/Steps/review/cars/PrivateCarReview.tsx","components/Reservation/Steps/review/cars/CarpoolingReview.tsx","components/Reservation/Steps/review/CarReview.tsx","components/Reservation/Steps/review/CommercialReviewDetails.tsx","components/Reservation/Steps/review/CommercialReview.tsx","hooks/useCVFlightTravelerStatus.ts","components/Reservation/Steps/review/CVFlightReviewDetails.tsx","hooks/useDateTimezone.ts","components/commons/DateTimeZone/DateTimeZone.tsx","components/Reservation/Steps/review/CVFlightReview.tsx","components/Reservation/Steps/review/CvFlightReviewContainer.tsx","components/Reservation/Steps/review/HotelReviewDetails.tsx","components/Reservation/Steps/review/HotelReview.tsx","components/Reservation/Steps/review/ReviewForPassenger.tsx","components/Reservation/Steps/ReviewStep.tsx","models/Reservation/Forms/IPersonalDataForm.ts","components/commons/AccordionWarningMessage/AccordionWarningMessage.tsx","components/NextOfKinInlineForm/NextOfKinInlineForm.tsx","components/EmergencyContactCard/EmergencyContactCard.tsx","components/NextOfKinForm/NextOfKinForm.tsx","components/EmergencyContact/EmergencyContact.tsx","assets/icons/airPlusCard.svg","assets/icons/amexCard.svg","assets/icons/dinerClubCard.svg","assets/icons/masterCard.svg","assets/icons/visaCard.svg","components/PaymentInformationForm/PaymentInformationForm.tsx","components/PaymentInformation/PaymentInformation.tsx","components/PaymentInformationInlineForm/PaymentInformationInlineForm.tsx","components/PaymentInformationCard/PaymentInformationCard.tsx","components/ReservationPaymentInformations/ReservationPaymentInformations.tsx","components/Reservation/Steps/personalData/ContactInformationForm.tsx","components/Reservation/Steps/personalData/ContactLocationForm.tsx","components/Reservation/Steps/personalData/ContactLocationCard.tsx","components/commons/ReactQuill/ReactQuill.tsx","components/Reservation/Steps/personalData/PersonalDataConditions.tsx","components/Reservation/Steps/PersonalDataStep.tsx","pages/reservation/bookATrip/ReservationStepsPage.tsx","components/Reservation/Consult/ReviewForPassengerReadOnly.tsx","components/Reservation/Consult/ReservationReviewReadOnly.tsx","pages/reservation/consult/ReservationConsultPage.tsx","assets/icons/noReservation.svg","components/ReservationList/Items/NoReservationFound.tsx","components/ReservationList/Details/cars/CommentHistoryDrawer.tsx","components/ReservationList/Details/cars/CarComments.tsx","components/ReservationList/Details/cars/RentalCarDetails.tsx","components/ReservationList/Details/cars/LuxPoolCarDetails.tsx","components/ReservationList/Details/cars/CompanyCarDetails.tsx","components/ReservationList/Details/cars/PrivateCarDetails.tsx","components/ReservationList/Details/cars/CarpoolingDetails.tsx","components/ReservationList/Details/CarDetails.tsx","components/ReservationList/Items/IconData.tsx","components/Reservation/Steps/review/TravelTicket.tsx","components/ReservationList/Details/TravelersDetails.tsx","components/ReservationList/Details/CommercialDetails.tsx","components/ReservationList/Details/CVFlightTravelerDetails.tsx","components/Reservation/Steps/review/cv-flight/FlightRow.tsx","components/Reservation/Steps/review/cv-flight/CvFlightDetailMobile.tsx","components/ReservationList/Details/CVFlightDetails.tsx","components/ReservationList/Details/CVFlightDetailsContainer.tsx","components/ReservationList/Details/HotelDetails.tsx","components/ReservationList/Items/Travelers.tsx","components/ReservationList/Items/ServiceCounter.tsx","components/ReservationList/Items/ReservationActionsButton.tsx","components/ReservationList/Items/ReservationItem.tsx","components/ReservationList/ReservationList.tsx","hooks/useResumeReservation.tsx","pages/reservation/myReservations/tabs/MyCurrentReservationsTab.tsx","pages/reservation/myReservations/tabs/MyReservationsHistoryTab.tsx","routes/MyReservationsRoutes.tsx","pages/reservation/myReservations/MyReservationsPage.tsx","pages/reservation/ReservationConditionsPdf.tsx","pages/reservation/manageReservations/ManageReservationsPages.tsx","pages/reservation/ReservationMainPage.tsx","context/settings/AlertsContext/AlertsReducer.tsx","context/settings/AlertsContext/AlertsProvider.tsx","services/TripTypeService.ts","context/settings/AppSettingsTripTypesContext/AppSettingsTripTypesReducer.ts","context/settings/AppSettingsTripTypesContext/AppSettingsTipTypesProvider.tsx","assets/icons/ok.svg","assets/icons/rejected.svg","components/Alerts/AlertForm.tsx","components/Alerts/AlertDrawer.tsx","pages/settings/application/AlertsTab/AlertsTab.tsx","components/AppSettings/AppSettingsGrid.tsx","models/Settings/IAppSettingForm.ts","components/AppSettings/AppSettingsForm.tsx","components/AppSettings/AppSettingsDrawer.tsx","pages/settings/application/GeneralTab/GeneralTab.tsx","models/Settings/IAppSettingTripType.ts","components/TripTypes/TripTypesForm.tsx","components/TripTypes/TripTypesDrawer.tsx","components/TripTypes/TripTypesGrid.tsx","pages/settings/application/TripTypesTab/SettingsTripTypesTab.tsx","routes/ApplicationSettingsRoutes.tsx","pages/settings/application/ApplicationSettingsPage.tsx","assets/icons/dragAndDrop.svg","assets/icons/preview.svg","components/commons/PreviewButton/PreviewButton.tsx","components/ETicketTemplateSectionForm/ETicketTemplateSectionForm.tsx","services/ETicketTemplateService.ts","pages/settings/eticket/ETicketTemplatePage/ETicketTemplatePage.tsx","components/Airports/AirportGeneralInfo/AirportGeneralInfo.tsx","components/Airports/AirportImmigrationInfo/AirportImmigrationInfo.tsx","components/Airports/AirportGeneralComments/AirportGeneralComments.tsx","components/Airports/AirportsPage/AddAirportForm.tsx","components/Airports/AirportsPage/AirportDrawer.tsx","pages/settings/airport/AirportsPage/AirportsPage.tsx","pages/settings/airport/AirportDetailsPage/AirportDetailsPage.tsx","components/HelpPageForm/HelpPageForm.tsx","pages/settings/help/ListHelpPage/ListHelpPage.tsx","components/commons/AutoCompleteFetcher/ControlledAutoCompleteFetcher.tsx","components/TrainingCatalogueForm/TrainingCatalogueForm.tsx","pages/settings/training/TrainingCataloguePage/TrainingCatalogueTab/TrainingCatalogueTab.tsx","routes/TrainingCatalogueRoutes.tsx","pages/settings/training/TrainingCataloguePage/TrainingCataloguePage.tsx","pages/settings/wcm/EditWCMPage/EditWCMPage.tsx","components/EmailTemplates/EmailTemplatesGrid.tsx","models/Settings/IEmailTemplateForm.ts","components/EmailTemplates/EmailTemplateForm.tsx","components/EmailTemplates/EmailTemplatesDrawer.tsx","pages/settings/emailTemplates/EmailTemplatesPage.tsx","components/WCMPageForm/WCMPageForm.tsx","pages/settings/wcm/WCMPage.tsx","context/settings/ApisSettingsSchengenCountriesPageContext/ApisSettingsSchengenCountriesPageProvider.tsx","models/Settings/IApisSchengenCountriesFormSchema.ts","components/ApisSettings/SchengenCountries/ApisSettingsSchengenCountryForm.tsx","components/ApisSettings/SchengenCountries/ApisSettingsSchengenCountriesDrawer.tsx","components/ApisSettings/SchengenCountries/ApisSettingsSchengenCountriesGrid.tsx","pages/settings/apis/ShengenCountriesTab/ApisSchengenCountriesTab.tsx","context/settings/ApisSettingsCountryPropertiesPageContext/ApisSettingsCountryPropertiesPageContext.tsx","context/settings/ApisSettingsTemplatesPageContext/ApisSettingsTemplatesPageContext.tsx","components/ApisSettings/Templates/ApisSettingsTemplatesGrid.tsx","models/Settings/ApisTemplateTypes.ts","models/Settings/ApisTemplateModes.ts","models/Settings/ApisTemplateFileTypes.ts","models/Settings/TemplateKeywords.ts","components/ApisSettings/Templates/ApisSettingsTemplatesForm.tsx","models/Settings/IApisTemplatesFormSchema.ts","components/ApisSettings/Templates/ApisSettingsTemplatesDrawer.tsx","pages/settings/apis/TemplatesTab/ApisTemplatesTab.tsx","components/ApisSettings/Properties/ApisSettingsCountryPropertiesGrid.tsx","components/ApisSettings/Properties/ApisSettingsCountryPropertiesForm.tsx","models/Settings/IApisCountryPropertiesFormSchema.ts","components/ApisSettings/Properties/ApisSettingsCountryPropertiesDrawer.tsx","pages/settings/apis/PropertiesTab/ApisPropertiesTab.tsx","routes/ApisConfigurationRoutes.tsx","pages/settings/apis/ApisPage.tsx","pages/settings/BlockFlight/BlockFlightSettingPage.tsx","pages/TravelEmergencyContactPage/TravelEmergencyContactPage.tsx","pages/userAccount/impersonation/ConnectAsPage/ConnectAsPage.tsx","components/commons/FileUpload/SingleControlledFileUpload.tsx","components/PassportDocument/PassportForm.tsx","components/ImmigrationDocument/ImmigrationDocumentSchema.ts","components/PassportDocument/PassportCreationDrawer.tsx","components/MemberInformation/MemberInformation.tsx","pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/PassportMenu.tsx","hooks/CountryHelper.ts","components/PassportDocument/PassportUpdateDrawer.tsx","components/VisaDocument/VisaForm.tsx","components/VisaDocument/VisaCreationDrawer.tsx","pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/VisaMenu.tsx","components/VisaDocument/VisaUpdateDrawer.tsx","pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/VisaList.tsx","pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/PassportCard.tsx","components/GuestInformation/GuestInformation.tsx","components/EmployeeInformation/EmployeeInformation.tsx","components/OrganisationInformation/OrganisationInformation.tsx","pages/userAccount/myInformation/MyInformationPage/EmployeeInfoTab/EmployeeInfoTab.tsx","assets/icons/seeMore.svg","pages/userAccount/myInformation/MyInformationPage/FamilyMembersTab/FamilyMembersTab.tsx","components/GuestAddDrawer/GuestAddDrawer.tsx","pages/userAccount/myInformation/MyInformationPage/GuestTab/GuestTab.tsx","pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/UnassignedVisaList.tsx","pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/ImmigrationDataTab.tsx","pages/userAccount/myInformation/MyInformationPage/PersonalInfoTab/PersonalInfoTab.tsx","routes/ConnectedAsInformationRoutes.tsx","pages/userAccount/impersonation/ConnectedAsInformationPage/ConnectedAsInformationPage.tsx","pages/userAccount/impersonation/ConnectedAsPage/ConnectedAsPage.tsx","routes/MyInformationRoutes.tsx","pages/userAccount/myInformation/MyInformationPage/MyInformationPage.tsx","assets/icons/deleteBinDisabled.svg","assets/icons/plusPurple.svg","pages/userManagement/guest/GuestListPage/GuestListPage.tsx","components/MemberAccessForm/MemberAccessForm.tsx","pages/userManagement/members/MemberDetailsPage/MemberDetailsAccessTab/MemberDetailsAccessTab.tsx","pages/userManagement/members/MemberDetailsPage/MemberDetailsEmployeeInfoTab/MemberDetailsEmployeeInfoTab.tsx","components/MemberAccess/MemberAccess.tsx","pages/userManagement/members/MemberDetailsPage/MemberDetailsFamilyMembersTab/MemberDetailsFamilyMembersTab.tsx","pages/userManagement/members/MemberDetailsPage/MemberDetailsGuestsTab/MemberDetailsGuestsTab.tsx","pages/userManagement/members/MemberDetailsPage/MemberDetailsPersonalInfoTab/MemberDetailsPersonalInfoTab.tsx","context/RoleProvider/RoleReducer.ts","context/RoleProvider/RoleProvider.tsx","components/RoleConfiguration/RoleForm.tsx","components/RoleConfiguration/RoleConfiguration.tsx","pages/userManagement/members/MemberDetailsPage/MemberDetailsRoleTab/MemberDetailsRoleTab.tsx","routes/MemberDetailsRoutes.tsx","pages/userManagement/members/MemberDetailsPage/MemberDetailsPage.tsx","pages/userManagement/members/MemberListPage/MemberListPage.tsx","pages/userManagement/members/MemberMainPage/MemberMainPage.tsx","pages/userManagement/role/RoleConfigurationPage/RoleConfigurationPage.tsx","pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/VisaCard.tsx","pages/dailyTasks/passportApproval/ImmigrationDocumentApprovalDetail.tsx","pages/dailyTasks/passportApproval/ImmigrationDocumentApprovalPage.tsx","routes/AppRoutes.tsx","utils/LocalRedirectUrlStorage.ts","hooks/useVersionCache.ts","App.tsx","reportWebVitals.ts","index.tsx","components/Airports/AirportImmigrationInfo/AirportImmigrationInfo.module.scss","pages/HomePage/HomePage.module.scss","components/Reservation/Steps/review/CVFlightReviewDetails.module.scss"],"names":["module","exports","isUndefined","value","undefined","isArray","Array","isBlob","size","type","slice","serialize","obj","cfg","fd","pre","indices","nullsAsUndefineds","booleansAsIntegers","allowEmptyArrays","FormData","append","isBoolean","length","forEach","index","key","Date","isDate","toISOString","Object","isObject","name","lastModifiedDate","lastModified","isFile","keys","prop","lastIndexOf","substring","dotNotation","GlobalStorageContext","createContext","useGlobalStorageContext","useContext","GlobalStorageProvider","_ref","children","logs","pageTitle","AddLog","useCallback","message","push","ClearLogs","splice","GetLogs","SetPageTile","title","GetPageTile","_jsx","Provider","msalConfig","auth","clientId","concat","process","authority","redirectUri","window","location","origin","cache","cacheLocation","storeAuthStateInCookie","AuthenticationService","constructor","postLogoutRedirectUrl","msalApp","this","PublicClientApplication","retrieveRolesFromToken","account","getAccount","tokenResponse","idTokenClaims","roles","console","error","currentAccounts","getAllAccounts","getTokenSilent","scopes","Promise","reject","signIn","request","acquireTokenSilent","getUsername","_this$getAccount$user","_this$getAccount","username","getInstance","classInstance","log","loginRedirect","catch","signOut","logoutRedirect","postLogoutRedirectUri","Constants","buttons","ok","cancel","save","saveChange","saveChanges","validate","showAll","yes","no","search","continue","export","assign","titles","confirmDelete","confirmActivation","appHeaderTitle","content","reallyWantToDelete","reallyWantToActivate","noDataFound","messages","success","dataSaved","dataDeleted","dataActivated","dataDeactivated","dataExported","dataInserted","fetchingData","savingData","deletingData","activatingData","userPreferencesData","insertCrewData","validation","required","requiredField","min","max","matches","duplicateOfKey","invalidDate","maxDate","minDate","invalidRangeDate","invalidEmail","invalidNumber","emailRegex","emailMultipleRegex","numericDecimalRegex","numericOnlyRegex","maxInt","attachment","minNumeric","maxNumeric","paymentCard","minDateToday","minDateAnotherField","multipleEmail","passengerBlocked","Admin","Agent","CateringDepartmentUser","CateringLuxairUser","DepartureProcessing","DeploymentAdmin","GuestRegistration","OutstationAgent","Planner","Traveler","placeholder","date","preferences","global","country","company","year","settings","intranetLink","contactUsMail","CvPreferredHotelsLink","commercialFlightInfoLink","checkFlightInfoLink","commercialFlightAdditionalDetailsLink","personalDataCondition","myIDTravel","timaticUrl","externalSideMenus","timatic","airports","areas","status","deleted","armAlert","warningText","warningTextAlternative","wcm","retrieveError","titleForCargoluxCondition","rulesAndConditions","text","instance","axios","create","baseURL","defaults","headers","common","host","JSON","parse","_process$env$REACT_AP2","ResponseError","Error","super","interceptors","use","config","then","authResult","handleConfig","e","_AuthenticationServic","authServiceInstance","silentRequest","loginHint","ssoSilent","resolve","token","accessToken","assignBearerToken","bearerHeader","c","Authorization","responseBody","response","data","getFormData","object","formData","requests","get","url","_error$response","_error$response$data","_error$response2","isBusinessException","isCancel","postAsFormdata","body","post","_error$response3","_error$response3$data","_error$response5","_error$response4","_error$response6","errors","putAsFormdata","put","_error$response7","_error$response7$data","_error$response9","_error$response8","_error$response10","_error$response11","_error$response11$dat","_error$response13","_error$response12","_error$response14","_error$response15","_error$response15$dat","_error$response17","_error$response16","_error$response18","patch","_error$response19","_error$response19$dat","_error$response20","delete","_error$response21","_error$response21$dat","_error$response22","API_ENDPOINT","UserService","getUserPermissions","getUserDetails","getAllPlanners","getAllRoles","getAllPermissions","getPermissionsOfRole","roleName","params","updateRole","roleInfo","insertRole","deleteRole","getPermissionsOfUser","updatePermissionsOfRole","permissionsRole","updatePermissionsOfUser","permissionsUser","getPaymentInformationDetail","paymentInformationId","createPaymentInformation","paymentInfo","updatePaymentInformation","setDefaultPaymentInformation","deletePaymentInformation","userId","ForbiddenPage","Container","maxWidth","_jsxs","className","styles","container","src","logo","alt","Typography","variant","gutterBottom","UserContext","React","permissions","UserContextProvider","initialized","setInitialized","useState","userInfo","setUserInfo","loadUserPermissions","userAccount","async","AuthorizationService","stringify","userDetails","_instance$retrieveRol","userName","fullName","user","lastName","firstName","gender","isBlocked","blockedFrom","email","homepageText","finally","useEffect","_","isEmpty","style","display","alignItems","margin","width","height","position","top","left","background","Background","overflow","backgroundSize","paddingLeft","paddingRight","flexDirection","justifyItems","overflowY","CircularProgress","color","marginBottom","wordWrap","wordBreak","useUserContext","PrivateRoute","permission","render","rest","userPermissions","Route","props","includes","Redirect","to","Routes","_path","_circle","items","basePath","mainRoutes","_Fragment","map","_ref2","path","exact","component","Fragment","_extends","bind","target","i","arguments","source","prototype","hasOwnProperty","call","apply","SvgErrorWhite","svgRef","titleId","viewBox","fill","xmlns","ref","id","fillRule","clipRule","d","cx","cy","r","stroke","ForwardRef","_rect","_defs","SvgSuccess","xmlnsXlink","patternContentUnits","xlinkHref","transform","MessageType","Snackbar","Success","Warning","warning","Info","info","MuiSnackbar","anchorOrigin","vertical","horizontal","open","SnackbarContent","Box","SuccessIcon","ErrorIcon","ml","SnackbarContext","addMessage","SnackbarProvider","setMessage","setType","timer","setTimeout","clearTimeout","useMemo","useSnackbar","AirportService","getSummaries","cancelToken","getTimeZones","addAirport","airport","deleteAirport","airportCode","activateAirport","code","deactivateAirport","updateGeneralInfo","generalInfo","getAirportDetails","getDetailsForCodes","codes","updateImmigrationInfo","immigrationInfo","updateGeneralComments","generalComments","updateComments","comments","CountryService","getBySearchText","searchText","getETravelSettings","getNFSAMaxDaysInFuture","ClientAppContextDefaultState","countries","airportsTimeZones","nfsaMaxDaysInFuture","isBusinessLoaded","getSettingValue","getAirportTimezoneByCode","ClientAppContext","ClientAppContextProvider","setCountries","setAirportsTimeZone","isLoaded","setIsLoaded","setSettings","setNfsaMaxDaysInFuture","getAllData","all","SettingsService","_settings$find","find","s","t","useWindowEvent","eventName","handler","element","handlerRef","useRef","current","eventListener","event","addEventListener","removeEventListener","LocalStorageActionType","LocalStorageReducer","state","action","_action$payload","_action$payload2","_action$payload3","_action$payload4","CONNECTED_MEMBER","connectedMember","payload","BOOKING_STEPS","bookingSteps","SET_IS_BOOKING_CANCELLED","isBookingCancelled","SET_BLOCK_FLIGHT_STORAGE","blockFlightStorage","InitialState","_localStorage$getItem","localStorage","getItem","_localStorage$getItem2","_localStorage$getItem3","_localStorage$getItem4","LocalStorageContext","LocalStorageProvider","dispatch","useReducer","storageArea","newValue","setItem","removeItem","toString","useLocalStorageContext","PlannersContext","PlannersProvider","planners","setPlanners","refreshPlanners","usePlannersContext","useScreenshot","image","setImage","setError","takeScreenshot","node","html2canvas","canvas","croppedCanvas","document","createElement","croppedCanvasContext","getContext","cropWidth","cropHeight","drawImage","base64Image","toDataURL","FileService","removeBase64StringPrefix","startsWith","indexOf","getContentWithBase64StringPrefix","extension","prefix","getContentType","fileData","uint","Uint8Array","bytes","byte","convertDataToBinary","dataArray","base64","raw","atob","rawLength","charCodeAt","isFileTypeAllowed","ret","getFileExtension","fileName","openFile","contentType","link","innerHTML","download","href","appendChild","click","removeChild","b64toBlob","b64Data","sliceSize","byteCharacters","byteArrays","offset","byteNumbers","byteArray","Blob","dataURLtoFile","dataurl","filename","arr","split","block","match","mime","bstr","n","u8arr","File","isRequiredFieldMissing","schema","getValues","values","fields","describe","some","tests","findIndex","GetFormData","IssueService","reportIssue","issue","Drawer","anchor","MuiDrawer","DrawerActions","DrawerCancelButton","onClick","Button","baseStyles","buttonTernaryOutlined","DrawerContent","DrawerSaveButton","loading","buttonTernaryContained","DrawerTitle","handleClose","centered","IconButton","CloseIcon","FormControl","label","description","isOptional","fullWidth","noAutoComplete","MuiFormControl","control","FormLabel","optional","getValue","defaultValue","TextField","readonly","wrap","readonlyWrap","MuiTextField","InputProps","disableUnderline","readOnly","autoComplete","InputLabelProps","shrink","ToggleButtons","options","optionsProp","disabled","errorMessage","classes","initStyles","newObj","primaryNav","padding","borderRadius","backgroundColor","zIndex","b1","float","textAlign","border","paddingTop","paddingBottom","textDecoration","transition","isActive","withindicator","pointerEvents","option","makeStyles","tbg","ToggleButtonGroup","exclusive","opt","ToggleButton","root","selected","disableRipple","Controller","onChange","FormHelperText","ReportIssueSchema","yup","shape","subject","typeError","severity","ReportIssueDrawer","isVisible","onClose","screenshot","form","useForm","resolver","yupResolver","mode","updating","setUpdating","onSubmit","handleSubmit","join","result","noValidate","drawerFormActions","mb","colorTernary","Grid","direction","gridContainerDrawer","item","inputProps","maxLength","inputRef","register","helperText","multiline","rows","md","formState","isDirty","isValid","ReportIssue","contentRef","drawerVisible","setDrawerVisible","Fab","ContactMailIcon","LayoutActionType","LayoutReducer","SET_SELECTED_MENU_ITEM","selectedMenuItem","SET_IS_MENU_OPEN","isMenuOpen","SET_FULLWIDTH","LayoutContext","useLayoutContext","LayoutProvider","openMenu","closeMenu","toggleMenu","setFullWidth","PermissionsList","eTravelSettings","eTravelImmigrationDocumentApproval","eTravelSettingsApplicationSettings","eTravelSettingsAirportDetails","eTravelSettingsApisConfiguration","eTravelSettingsAirportAdd","eTravelSettingsTrainingCatalogue","eTravelSettingsETicketTemplate","eTravelSettingsEMailTemplates","eTravelSettingsWCMPages","eTravelSettingsHelpPages","eTravelSettingsBlockFlightsReasons","eTravelMyInformation","eTravelMyInformationPersonalInfo","eTravelMyInformationImmigrationData","eTravelMyInformationEmployeeInfo","eTravelMyInformationFamilyMembers","eTravelMyInformationGuests","eTravelUserManagementRoleConfiguration","eTravelUserManagementMemberAdministration","eTravelUserManagementGuestManagement","eTravelUserManagementGuestRegistration","eTravelUserManagementGuestOwnership","eTravelUserManagementUserPermissions","eTravelUserManagementImpersonationAll","eTravelUserManagementConnectAs","eTravelUserManagementImpersonationSpecific","eTravelFlightManagementDepartures","eTravelFlightManagementTimatic","eTravelFlightManagementBlockFlights","eTravelReservationMyReservations","eTravelReservationManageReservations","eTravelReservationMakeReservation","eTravelReservation72hrsBooking","eTravelReservationEditServices","eTravelReservationDetailsFromPaxList","eTravelReservationReservationApproval","eTravelReservationConsultReservation","eTravelReservationSendReservation","eTravelReservationMailsHistory","eTravelReservationMyIDTravel","eTravelReservationPastBooking","eTravelDailyTasksTaskList","eTravelDailyTasksTaskListAllAssignation","eTravelDailyTasksTaskListOutstationAssignation","eTravelDailyTasksARM","eTravelDailyTasksWaitList","eTravelDailyTasksPassengerList","eTravelDailyTasksPassengerListLight","eTravelDailyTasksPassengerListEmergency","eTravelDailyTasksPrintTickets","cateringCrewSpecialMeals","cateringUpliftStations","cateringFlightSchedule","cateringManualForecast","cateringCateringOrder","cateringForecast","cateringDutyQuantities","eTravelReporting","eTravelReportingAuditLog","eTravelReportingNoShowConfirmed","eTravelReportingWarningList","eTravelReportingTravelReport","eTravelReportingAccountingReport","eTravelReportingAviationInsurance","eTravelReportingReportIssue","eTravelReportingAuditLogSecurity","eTravelDailyTasksRelatedTasks","eTravelReportingMemberByRole","Content","theme","useTheme","useLocation","isLargeScreen","useMediaQuery","breakpoints","up","clsx","pathname","contentHome","drawerOpen","SvgHelp","_path2","_path3","_path4","SvgMail","SvgMenu","_mask","_g","SvgUserFemale","maskUnits","x","y","mask","_path5","_path6","_path7","_path8","_path9","_path10","_path11","_path12","_path13","SvgUserMale","AlertService","getAll","getActiveAlerts","createAlert","alert","updateAlert","deleteAlert","alertId","AlertPopoverPopup","alerts","setAlerts","refreshInterval","fetchAlerts","interval","setInterval","clearInterval","PopupState","popupId","popupState","Badge","badgeContent","badge","bindTrigger","WarningRoundedIcon","Popover","bindPopover","transformOrigin","_x$message","fontSize","p","minWidth","dangerouslySetInnerHTML","__html","Divider","useBreakpoint","xs","only","sm","lg","xl","smdown","mddown","lgdown","smup","mdup","lgup","Header","history","useHistory","setOpen","anchorRef","breakpoint","openConnectedAs","setOpenConnectedAs","anchorRefConnectedAs","handleToggle","prevOpen","contains","handleToggleConnectedAs","handleCloseConnectedAs","handleRedirect","handleStopConnectAs","handleRedirectConnectedAs","hasAvailableActions","renderButtons","_state$connectedMembe","_state$connectedMembe2","iconButton","helpIcon","MailIcon","HelpIcon","PhoneInTalk","UserFemaleIcon","UserMaleIcon","btnUser","avatar","alignedTexts","userNameHomePage","roleNameHomePage","IconExpandMore","IconExpandLess","Popper","anchorEl","role","placement","popper","modifiers","flip","enabled","preventOverflow","boundariesElement","disablePortal","offsetWidth","marginTop","TransitionProps","Grow","Paper","ClickAwayListener","onClickAway","MenuList","autoFocusItem","menu","MenuItem","separator","toLocaleUpperCase","headerHomeMobile","headerMobile","MenuIcon","marginLeft","headerHome","header","SvgContact","SvgIntranet","SvgBooking","SvgCatering","_rect2","_rect3","_rect4","_rect5","_rect6","_rect7","SvgDailyTask","rx","SvgFlightManagement","SvgMemberManagement","SvgMonitoring","SvgReporting","strokeWidth","SvgSetting","SideMenuRoutes","icon","BookingIcon","sideMenuMatch","isExternal","CateringIcon","DailyTaskIcon","FlightManagementIcon","MemberManagementIcon","ReportingIcon","MonitoringIcon","SettingIcon","useClientAppContext","useSideMenuRoutes","routes","setRoutes","resolveExternalPath","externalRoute","_getSettingValue","_getSettingValue2","_root$items","reduce","acc","curr","SideMenuItem","childItem","clickAwayTs","isExpandable","useRouteMatch","strict","sensitive","sideMenuMatching","expand","setExpand","MenuItemRoot","ListItem","replace","button","listItem","parentActiveLink","disableGutters","ListItemIcon","ListItemText","primary","inset","NavLink","childLink","activeClassName","activeLink","handleLinkClick","listItemButton","disableTouchRipple","MenuItemChildren","Collapse","in","timeout","unmountOnExit","collapse","List","disablePadding","useStyles","createStyles","drawerWidth","flex","outline","drawerClose","overflowX","SideMenu","setClickAwayTs","routeAuthReducer","res","AllowedRoutes","route","_route$items","filter","drawer","Scrollbar","disableTracksWidthCompensation","contentProps","drawerContent","drawerContentOpen","Link","miniLogo","littleLogo","list","bottomDrawerContainer","disableElevation","btnIntranet","ContactIcon","miniBtnIntranet","IntranetIcon","Hidden","smUp","transitionDuration","paper","drawerPaper","ModalProps","keepMounted","xsDown","handleClickAway","Layout","_path14","_path15","_path16","_path17","_path18","_path19","_path20","_path21","_path22","_path23","_path24","_path25","_path26","_path27","_path28","_path29","_path30","_circle2","_circle3","_circle4","_circle5","_circle6","_circle7","createTheme","Number","variables","breakpointXs","breakpointSm","breakpointMd","breakpointLg","breakpointXl","palette","main","primaryColor","secondary","secondaryColor","ternary","ternaryColor","default","defaultBackgroundColor","actionSelectedBackground","hover","actionHoverBackground","typography","fontFamily","h1","fontStyle","fontWeight","lineHeight","letterSpacing","minHeight","h2","h3","lineHight","h4","subtitle1","subtitle2","body1","body2","caption","overrides","MuiTypography","colorTextSecondary","MuiGrid","MuiDialog","MuiDialogTitle","MuiDialogContent","MuiDialogActions","justifyContent","spacing","MuiListItem","secondaryAction","MuiListItemText","MuiListItemIcon","MuiSnackbarContent","anchorOriginTopCenter","MuiCircularProgress","colorPrimary","MuiFormHelperText","lightErrorColor","contained","marginRight","MuiFormLabel","primaryTextColor","marginNormal","MuiInputLabel","formControl","MuiSelect","select","MuiTableCell","borderBottom","whiteSpace","textOverflow","head","MuiTableRow","MuiTabs","flexContainer","indicator","MuiTab","textColorInherit","opacity","MuiToggleButtonGroup","MuiToggleButton","textTransform","MuiInputBase","input","MuiButton","boxSizing","startIcon","outlined","boxShadow","MuiStepConnector","alternativeLabel","bottom","line","borderColor","MuiStepLabel","active","MuiCard","MuiAccordionDetails","MuiOutlinedInput","notchedOutline","adornedEnd","MuiInput","underline","MuiAutocomplete","inputRoot","endAdornment","MuiAccordion","MuiAccordionSummary","MuiIconButton","MuiPickersDay","daySelected","divRef","isSmartphone","down","layoutContent","CssBaseline","containerHome","StylesProvider","injectFirst","ThemeProvider","backgroundImageHome","backgroundImage","rootHome","SvgWorldMap","Dialog","ReactDOM","createPortal","DialogActions","small","smallDialogActions","DialogButton","DialogContent","DialogTitle","useModal","setIsVisible","showModal","hideModal","useMakeAReservationAccess","moment","isSameOrBefore","IsBlockedDialog","redirect","SvgSimpleArrow","HomePageMobile","welcome","titleHome","trim","bodyHome","myReservationLinkMobile","ArrowIcon","HomePage","isSmallScreen","grid","mt","mapContainer","WorldMapIcon","AppSettingsService","update","setting","AppSettingsPageActionTypes","AppSettingsPageReducer","FETCH_SETTINGS_STARTED","loaded","FETCH_SETTINGS_FAILED","FETCH_SETTINGS_DONE","SELECT_SETTING","selectedSetting","UPDATE_SETTING_STARTED","UPDATE_SETTING_DONE","produce","draft","category","UPDATE_SETTING_FAILED","initialState","AppSettingsPageContext","useAppSettingsPageContext","AppSettingsPageProvider","fetchSettings","selectSetting","updateSetting","ARMService","getReservations","from","fromDate","format","toDate","getBlockedFlights","updateComment","arm","check","ARMActionType","ARMReducer","FETCH_RESERVATIONS","reservations","FETCH_BLOCK_FLIGHTS","blockFlights","SELECTED_ARM","selectedARM","SELECTED_TAB","selectedTab","SELECTED_FROM_DATE","SELECTED_TO_DATE","ARMTabEnum","RESERVATIONS","ARMContext","ARMProvider","fetchReservations","fetchBlockFlights","refreshData","useARMContext","BlockFlightService","getRelations","saveCountryAirports","deleteCountryAirports","blockedFlightId","getBlockedCountryAirports","saveCarrierCode","deleteCarrierCode","getBlockedCarrierCodes","saveTailNumber","deleteTailNumber","getBlockedTailNumbers","getAutoCompleteComments","getRoutingByFlightNumber","flightNumber","saveFlightNumber","deleteFlightNumber","getBlockedFlightNumbers","flightDate","getBlockFlightReasons","saveBlockedFlightReason","reason","deleteBlockedFlightReason","reasonId","ReservationService","getAllTripTypes","getServiceStatuses","getConditionsPdf","responseType","getReservation","consultReservation","getReservationSummaries","startOf","add","getReservationHistory","getReservationSummariesForMember","memberId","getReservationsGuestPlanner","getReservationHistoryForMember","getCVFlightPassengerSummariesForDepartureDate","departureDate","hasBookedFlight","members","reservationId","hasOverlappingFlight","excludeCVIds","memberIds","departureFlightDeparture","returnFlightDeparture","sendETicket","eTicket","sendETicketForMember","booking","approve","rejectMessage","getReservationExchanges","exchangePostReply","exchangeId","reply","sendSummary","summaryConfig","getPlannerMembers","BlockFlightTabEnum","BlockFlightRuleEnum","BlockFlightActionType","BlockFlightReducer","SELECTED_CREATE_RULE","selectedCreateRule","SELECTED_RULES_RULE","selectedRulesRule","SELECTED_SEARCH_FLIGHT_NUMBER","searchFlightNumber","SELECTED_SEARCH_FLIGHT_DATE","searchFlightDate","BLOCKED_COUNTRIES_AIRPORTS","blockedCountriesAirports","BLOCKED_CARRIER_CODES","blockedCarrierCodes","BLOCKED_TAIL_NUMBERS","blockedTailNumbers","BLOCKED_FLIGHT_NUMBERS","blockedFlightNumbers","ruleOptions","COUNTRY_AIRPORT","CARRIER_CODE","TAIL_NUMBER","FLIGHT_NUMBER","BlockFlightContext","BlockFlightProvider","relationTypes","setRelationTypes","reasons","setReasons","cvTripTypes","setCVTripTypes","_localStorage$state$b","_localStorage$state$b2","createRule","blockFlightRule","editRulesRule","relations","tripTypes","isCVFlight","fetchCountryAirports","fetchCarrierCodes","fetchTailNumbers","fetchFlightNumbers","blockFlight","isSuccess","RULES","useBlockFlightContext","cateringInstance","cateringRequests","QUANTITY_ENDPOINT","BASE_URL","CateringOrderService","getCateringOrder","saveCateringOrder","cateringOrder","exportCateringOrder","getDutyQuantities","saveDutyQuantities","dutyQuantities","mappings","CateringOrderActionType","CateringOrderReducer","SET_CATERINGORDER","SET_LOADING","SET_CARD_LOADING","cardLoading","SET_FILTER","SET_HAS_RESULT","hasResult","SET_DATA_FETCHED","dataFetched","SET_SELECTED_CATERINGORDER_LINE","selectedCateringOrderLine","CateringOrderContext","CateringOrderProvider","originalCateringOrder","setOriginalCateringOrder","fetchCateringOrder","filteredCateringOrder","getFilteredCateringOrder","cateringOrders","m","flightDesc","toUpperCase","acceptOrder","etd","newCateringOrder","cloneDeep","elt","cateringOrderId","isAccepted","tailNumberChanged","etdChanged","routingChanged","cateringOrderForLegs","sector","cateringOrderSector","cateringOrderLegId","crewNormOnBoardChanged","crewVgOnBoardChanged","crewGfNlOnBoardChanged","crewGfNlVgOnBoardChanged","paxOnBoardChanged","dutyChanged","blob","useCateringOrderContext","API_SPECIAL_MEAL_ENDPOINT","API_CREW_ENDPOINT","CrewSpecialMealService","getCrewSpecialMeals","getCrews","getCrewsWithoutMeals","getMealTypes","createCrewSpecialMeal","crewSpecialMeal","insertCrewAndCrewSpecialMeal","crew","updateCrewSpecialMeal","deleteCrewSpecialMeal","crewCode","exportCrewSpecialMeals","exportMeals","CrewSpecialMealsActionType","CrewSpecialMealsReducer","SET_CREWSPECIALMEALS","crewSpecialMeals","SET_CREWS_WITHOUT_MEALS","crewsWithoutMeals","SET_CREWS","crews","SET_MEALTYPES","mealTypes","SET_SELECTED_CREWSPECIALMEAL","selectedCrewSpecialMeal","SET_FILTERED_CREWCODE","filteredCrewCode","CrewSpecialMealsContext","CrewSpecialMealsProvider","originalMeals","setOriginalMeals","validationError","setValidationError","fetchCrewSpecialMeals","fetchCrews","fetchCrewsWithoutMeals","fetchMealTypes","filteredMeals","getFilteredMeals","meals","specialMeal","_specialMeal$crew","clearValidationErrors","updated","exported","useCrewSpecialMealsContext","ForecastActionType","ForecastReducer","SET_DATE","utc","ForecastContext","ForecastProvider","useForecastContext","UpliftStationService","getUpliftStations","updateUpliftStation","upliftStation","updateUpliftStationComment","comment","exportUpliftStations","UpliftStationsActionType","UpliftStationsReducer","SET_UPLIFTSTATIONS","upliftStations","SET_UPLIFTSTATIONTYPES","upliftStationTypes","SET_SELECTED_UPLIFTSTATION","selectedUpliftStation","SET_SELECTED_ROUTINGLEG","selectedRoutingLeg","SET_FROMDATE","SET_TODATE","UpliftStationsContext","UpliftStationsProvider","fetchUpliftStations","stations","legsToString","legs","leg","flightDescription","upliftStationComment","updatedStations","station","firstLegFlightNumber","firstLegFlightDate","useUpliftStationsContext","FlightService","getDepartures","getFlights","getFlightSchedule","getFlightsWithBlockedReason","tripDetails","SeatsService","compute","flights","ownerId","tripTypeId","CVFlightsActionTypes","updatePassengerBlockedStatusOnFlights","f","departureTime","blockedReason","CVFlightsReducer","_action$payload$searc","_action$payload$searc2","FETCH_FLIGHTS_STARTED","fetchingFlights","pickedFlight","pickedReturnFlight","FETCH_FLIGHTS_FAILED","SET_OVERLAPPING_FLIGHT","overlapping","FETCH_FLIGHTS_DONE","passengerBlockedFrom","FETCH_RETURN_FLIGHTS_STARTED","fetchingReturnFlights","FETCH_RETURN_FLIGHTS_FAILED","FETCH_RETURN_FLIGHTS_DONE","returnFlights","FETCH_SEATS_STARTED","FETCH_SEATS_FAILED","FETCH_SEATS_DONE","seats","RESET","FILTER_FLIGHTS","filteredFlights","FILTER_RETURN_FLIGHTS","filteredReturnFlights","PICK_FLIGHT","PICK_RETURN_FLIGHT","ENSURE_FLIGHT","ENSURE_RETURN_FLIGHT","CVFlightsContext","useCVFlightsContext","CVFlightsProvider","computeSeats","awbNumber","fullFlights","filterByDeparture","timezone","getLocalDepartureDate","clone","tz","setOverlapping","searchFlights","reset","filterFlights","_state$search2","_state$search3","_state$search4","l","_state$search","timeZone","awbIn","filterReturnFlights","_state$search6","_state$search7","_state$search8","_state$search5","pickFlight","flight","pickReturnFlight","ensureFlight","ensureReturnFlight","HelpPageService","helpPage","helpPageId","saveNewImage","HelpPageActionType","HelpPageReducer","FETCH_HELP_PAGES","helpPages","FETCH_ROLES","SELECT_HELP_PAGE","selectedHelpPage","HelpPageContext","HelpPageProvider","fetchHelpPages","fetchRoles","submitHelpPage","helPage","helpPagePromise","deleteSelectedHelpPage","isDeleted","useHelpPageContext","GUEST","MemberService","getById","getInformationById","createNextOfKin","nextOfKin","updateNextOfKin","updateDefaultNextOfKin","deleteNextOfKin","nextOfKinId","updateOrganisationInformation","organisation","getPaymentTypes","getMemberListBySearch","encodeURIComponent","updateMemberAccess","memberAccess","getAuthorizedImpersonationList","getImpersonationForMember","searchGuests","getGuest","createGuest","guest","linkGuest","guestId","unlinkGuest","unlinkAllEmployeesOfGuest","guestMapping","updateGuestLink","updateGuestsContactInfos","infos","updateGuestsMemberInfos","searchAllGuests","deleteGuest","searchEmployees","searchEmployeesAndGuests","updateContactInfos","updateMember","member","searchByRole","searchRole","MemberManagementActionType","MemberManagementReducer","SELECTED_MEMBER","selectedMember","SET_MEMBERID","SET_MEMBERS","SET_SEARCH_VALUE","searchValue","SET_LAST_SEARCH_VALUE","lastSearchValue","SET_ISBLOCKED","SET_ISACTIVE","SET_ROLENAME","SET_ROLES","SET_SEARCH_IS_DONE","searchIsDone","MemberManagementContext","MemberManagementProvider","originalMembers","setOriginalMembers","refreshSelectedMember","filteredMembers","getFilteredMembers","memberInfo","searchMembers","saveOrganisation","useMemberManagementContext","MyInformationActionType","MyInformationReducer","FETCH_INFORMATIONS","information","FETCH_PAYMENT_TYPES","paymentTypes","MyInformationContext","MyInformationProvider","connectedAs","fetchInformation","fetchPaymentTypes","types","useMyInformationContext","Paginate","page","pageSize","hasPrevious","hasMore","Math","floor","MyReservationsActionTypes","MyReservationsTabEnum","MyReservationReducer","FETCH_BOOKINGS_STARTED","isFetching","FETCH_BOOKINGS_FAILED","FETCH_BOOKINGS_DONE","bookingsData","FETCH_NEXT_BOOKINGS","bookings","bookingPage","hasMoreBooking","FETCH_HISTORY_STARTED","FETCH_HISTORY_FAILED","FETCH_HISTORY_DONE","historyData","FETCH_NEXT_HISTORY","historyPage","hasMoreHistory","SWITCH_TAB","currentTab","REMOVE_RESERVATION_DONE","REMOVE_RESERVATION_FAILED","REMOVE_RESERVATION_STARTED","CURRENT","armNotificationId","MyReservationsContext","useMyReservationsContext","MyReservationsProvider","MyReservationsReducer","fetchData","LoadNextBookings","LoadNextHistory","_state$bookings","_state$history","fetchBookings","fetchHistory","_state$bookingsData","_state$historyData","selectTab","tab","removeReservation","PassengerService","getPassengerList","getPassengerListLight","updateIsConfirmed","confirmed","updateIsEmergency","emergency","updateIsOnBoard","onboard","updateIsClosed","closed","print","fullVersion","getFlightArmAlert","PassengerListActionType","PassengerListReducer","SET_PASSENGER_LIST","flightCrews","flightTravelers","flightCrewsLegs","flightTravelersLegs","tailNumber","SET_PASSENGER_LIST_LIGHT","passengerListLight","SET_FLIGHT_TRAVELERS","SET_FLIGHT_TRAVELERS_LEGS","SET_FILTERS","filters","SET_IS_EMERGENCY","isEmergency","SET_LEGS","SET_IS_EXIST_ARM_NOTIF","isExistArmAlert","PassengerListContext","PassengerListProvider","fetchPassengerList","passengerList","fetchPassengerListLight","flightTravelersCopy","ft","isConfirmed","flightTravelersLegsCopy","flatMap","travelers","ftl","cvFlightLegId","isOnBoard","destination","isClosed","usePassengerListContext","SvgCar","SvgCarSelected","_ellipse","_ellipse2","SvgCommercial","ry","SvgCommercialSelected","SvgCvFlight","SvgCvFlightSelected","SvgHotel","fillOpacity","SvgHotelSelected","SvgPersonalData","SvgPersonalDataSelected","SvgReview","SvgReviewSelected","useReservationPassengers","memberInformations","selectedTripType","reservationMembers","passengers","setPassengers","familyReducer","cur","_memberInformations$m","_memberInformations$r","familyMember","relatives","relationName","relationTypeName","birthDate","activePassengers","_booking$cvFlights","_booking$commercials","cvFlights","cvFlightLegs","reservationCVFlightLegMembers","z","cars","hotels","commercials","canDisplayTraveler","_memberInformations$m2","_memberInformations$m3","_memberInformations$m4","_memberInformations$m5","_memberInformations$m6","_memberInformations$m7","multiplePassengers","ReservationStatus","ServiceStatus","TrainingCatalogueService","getCurrentTrainingCourses","getHistoryTrainingCourses","getAutoCompleteTrainingsName","createTrainingCourse","trainingCourse","updateTrainingCourse","deactivateTrainingCourse","courseId","ReservationActionType","nextUiId","uiId","setUids","_draft$cvFlights","_draft$commercials","_draft$hotels","_draft$cars","commercial","hotel","car","ReservationReducer","_state$activeHotel","_state$activeCar","_state$activeCommerci","_state$activeCommerci2","SET_INITIALIZED","SET_BOOKING","SET_STEPS","steps","SET_ALL_TRIP_TYPES","allTripTypes","SET_SELECTED_TRIP_TYPE","SET_ACTIVE_STEP","activeStep","activeCar","activeHotel","activeCommercial","SET_MEMBER_INFORMATIONS","SET_ACTIVE_HOTEL","Steps","HOTEL","UPSERT_HOTEL","_state$booking$hotels","_state$booking$hotels2","_state$booking$hotels3","_state$booking$hotels4","entryIndex","h","REMOVE_HOTEL","_state$booking$hotels5","_state$booking$hotels6","_draft$hotels2","SET_ACTIVE_CAR","CAR","UPSERT_CAR","_state$booking$cars$f","_state$booking$cars","_state$booking$cars2","_state$booking$cars3","REMOVE_CAR","_state$booking$cars$f2","_state$booking$cars4","_draft$cars2","SET_ACTIVE_COMMERCIAL","COMMERCIAL_TRANSPORT","UPSERT_COMMERCIAL","_action$payload$","_draft$commercials2","_Array$from","_state$booking$commer","nextId","Set","entries","entry","REMOVE_COMMERCIAL","_draft$commercials3","REMOVE_COMMERCIAL_MEMBER","_draft$commercials4","UPSERT_CVFLIGHT","_state$booking$cvFlig","_state$booking$cvFlig2","_state$booking$cvFlig3","_state$booking$cvFlig4","REMOVE_CVFLIGHT","_state$booking$cvFlig5","_state$booking$cvFlig6","_state$booking$cvFlig7","_draft$cvFlights2","currentCVFlight","at","removedCVMember","cvFlightId","REMOVE_CVFLIGHT_MEMBER","_state$booking$cvFlig8","removeCvFlightMember","SET_IS_CANCELLED","isCancelled","SET_TEMPORARY_RESERVATION_CARD","temporaryReservationCard","SET_PERSONAL_DATA","SET_ALL_PAYMENT_TYPES","LOAD_BOOKING_STARTED","loadingBooking","LOAD_BOOKING_DONE","conditionsAccepted","LOAD_BOOKING_FAILED","SAVE_RESA_STARTED","savingReservation","SAVE_RESA_DONE","SET_TRAININGS","trainings","UPDATE_GENERAL_INFO","ReservationContext","ReservationProvider","localStorageDispatch","fetchAllTripTypes","fetchMemberInformations","_state$booking","_state$booking2","_state$selectedTripTy","_state$booking3","fetchTrainings","selectedType","tt","paymentInformations","ccNumber","cbNumber","_state$memberInformat","_state$memberInformat2","_state$memberInformat3","payment","cbOwner","ccOwner","isDefault","paymentInfoId","paymentType","ccType","expirationDate","ccExpirationDate","setTemporaryReservationCard","saveToLocalStorage","initiateSteps","initialisedSteps","CV_FLIGHT","FlightIcon","selectedIcon","FlightSelectedIcon","allowCommercial","CommercialIcon","CommercialSelectedIcon","allowHotel","HotelIcon","HotelSelectedIcon","allowCar","CarIcon","CarSelectedIcon","PERSONAL_DATA","PersonalDataIcon","PersonalDataSelectedIcon","REVIEW","ReviewIcon","ReviewSelectedIcon","_information$relative","filtered","isBefore","_information$relative2","loadFromStorage","saveSetup","setup","savePersonalData","personalData","commercialsWithoutAttachments","task","attachments","hotelsWithoutAttachments","carsWithoutAttachments","bookingWithoutAttachments","validatePersonalData","validateImmigrationDocuments","emergencyContactId","buildPersonalDataMessage","validateContactLocation","validateContactInformation","specific","every","validateDocument","documentId","_state$memberInformat4","_state$memberInformat5","documents","_state$selectedTripTy2","_state$booking4","_state$booking4$hotel","isBusiness","contactLocations","emailPrimary","emailTicketDelivery","saveBooking","validateContext","personalDataValidation","WaitingForApproval","cancelBooking","err","setActiveStep","step","setActiveService","stepName","serviceId","_state$booking5","_state$booking5$hotel","_state$booking6","_state$booking6$cars","_state$booking7","_state$booking7$comme","_passengers$find","hotelId","setActiveHotel","carId","setActiveCar","commercialId","setActiveCommercial","previousStep","scrollToTop","nextStep","scroller","scrollTo","duration","delay","smooth","resetPayload","upsertHotel","removeHotel","upsertCar","removeCar","upsertCommercial","commercialEntries","removeCommercial","commercialUiId","removeCommercialMember","commercialMember","upsertCvFlight","removeCvFlight","setIsCancelled","card","loadBooking","reservation","useReservationContext","ReservationConsultActionType","ReservationConsultReducer","_action$payload$train","FETCH_OWNER_INFO_DONE","ownerInformations","SELECT_TRIPTYPE","LOAD_RESERVATION_STARTED","responseError","LOAD_RESERVATION_FAILED","LOAD_RESERVATION_DONE","SET_TRAINING_DETAILS","trainingName","trainingDate","ReservationConsultContext","ReservationConsultProvider","_state$reservation5","_state$reservation","selectTripType","tripType","_state$reservation2","fetchOwnerInformations","isGuest","_state$reservation3","selectedTraining","_state$reservation4","loadReservation","inf","filterQueryString","_filter$agentId","_filter$station","_filter$status","_filter$travelerId","_filter$type","agentId","travelerId","TaskService","getTasks","getAgents","getTravelers","getAttachment","taskAttachmentId","endsWith","newKey","getRelatedTasks","HidedTaskStatus","TaskListActionType","TaskListReducer","FETCH_TASKS_STARTED","fetchingTasks","currentFilter","FETCH_TASKS_DONE","tasks","tasksTravelers","service","FETCH_TASKS_FAILED","FETCH_CONTEXT_DATA_STARTED","fetchingContextData","FETCH_CONTEXT_DATA_DONE","agents","employee","plannerMembers","filterableStatus","hided","FETCH_CONTEXT_DATA_FAILED","SELECT_TASK","selectedTask","UPDATE_TASK_STARTED","UPDATE_TASK_FAILED","UPDATE_TASK_DONE","taskId","FETCH_RELATEDTASKS_STARTED","fetchingRelatedTasks","FETCH_RELATEDTASKS_DONE","relatedTasks","FETCH_RELATEDTASKS_FAILED","TaskListContext","TaskListProvider","fetchTasks","agent","a","agentFullName","traveler","travelerFullName","selectTask","updateTask","updatedTask","fetchRelatedTasks","useTaskListContext","TrainingCatalogueActionType","TrainingCatalogueReducer","FETCH_CURRENT_TRAININGS","currentTrainingCourses","FETCH_HISTORY_TRAININGS","historyTrainingCourses","SELECTED_TRAINING_COURSE","selectedTrainingCourse","SELECTED_TRAINING_TAB","TrainingCatalogueTabEnum","CURRENT_TRAININGS","TrainingCatalogueContext","TrainingCatalogueProvider","fetchCurrentTrainings","HISTORY_TRAININGS","fetchHistoryTrainings","trainingsCourse","submitTrainingCourse","trainingPromise","deactivateSelectedTrainingCourse","isDeactivated","getWaitList","_flightDate$toISOStri","WaitListActionType","extractEmployees","waitListItems","reduceEmployees","w","reservationOwner","WaitListReducer","FETCH_CONTEXT_STARTED","isLoading","FETCH_CONTEXT_DONE","filteredItems","employees","selectedEmployee","FETCH_CONTEXT_FAILED","FETCH_WAITLIST_STARTED","FETCH_WAITLIST_DONE","FETCH_WAITLIST_FAILED","UPDATE_COMMENT","SELECT_EMPLOYEE","WaitListContext","WaitListProvider","WaitListService","fetchWaitList","_filter$flightDate","selectEmployee","useWaitListContext","EmailTemplateService","template","EmailTemplatesPageActionTypes","EmailTemplatesPageReducer","FETCH_TEMPLATES_STARTED","FETCH_TEMPLATES_FAILED","FETCH_TEMPLATES_DONE","templates","SELECT_TEMPLATE","selectedTemplate","UPDATE_TEMPLATE_STARTED","UPDATE_TEMPLATE_DONE","emailTemplateId","UPDATE_TEMPLATE_FAILED","EmailTemplatesContext","EmailTemplatesPageProvider","fetchTemplates","selectTemplate","updateTemplate","useEmailTemplatesPageContext","AirportActionTypes","AirportReducer","LOAD_AIRPORT_STARTED","LOAD_AIRPORT_FAILED","LOAD_AIRPORT_DONE","ADD_AIRPORT_STARTED","ADD_AIRPORT_FAILED","ADD_AIRPORT_DONE","apisIn","apisOut","immigrationInformation","transitInformation","trafficRights","tsaRights","isInactive","sort","b","localeCompare","AIRPORT_DELETED","SELECT_AIRPORT_TO_TOGGLE_ACTIVE_FLAG","selectedAirportToToggleActiveFlag","TOGGLE_ACTIVE_FLAG","UPDATE_AIRPORT_COMMENT","AirportsContext","AirportsDispatchContext","AirportsProvider","CancelToken","toggleActiveFlag","selectAirportToToggleActiveFlag","useAirportsContext","useAirportsDispatchContext","ManageReservationsActionTypes","ManagerReservationsReducer","ManageReservationsContext","ManageReservationsProvider","ManageReservationsReducer","BlockFlightSettingActionType","BlockFlightSettingReducer","FETCH_REASONS","SELECT_REASON","selectedReason","BlockFlightSettingContext","BlockFlightSettingProvider","fetchReasons","submitReason","deleteSelectedReason","WCMPageService","getByName","WCMPageActionType","WCMPageReducer","FETCH_WCM_PAGES","WCMPages","SELECT_WCM_PAGE","selectedWCMPage","WCMPageContext","WCMPageProvider","fetchWCMPages","submitWCMPage","WCMPagePromise","deleteSelectedWCMPage","wcmPageId","SvgDanger","CateringOrderCard","_data$etd2","_data$cateringOrderFo2","_data$etd3","_data$cateringOrderFo3","isForecast","hasChanges","_data$cateringOrderFo","Table","table","TableHead","TableRow","TableCell","cell","colSpan","std","hour","TableBody","headerSector","redCell","routing","incompleteDataFromCrewService","DangerIcon","_data$etd4","_sector$duty","_sector$duty2","_sector$duty3","_data$etd5","_data$etd6","_data$etd7","_data$etd8","_data$etd9","duty","sectionTd","isMoreThan18Hours","hotBreakfast","norm","hotMeals","vg","gfNl","gfNlVg","pax","salads","hotSnacks","sandwiches","freshFruit","softDrinks","waterPlain","waterSpark","fruitJuice","freshMilk","crewOnBoard","paxOnBoard","LinearProgress","acceptRedButton","acceptOrangeButton","canBeAccepted","acceptedButton","acceptButton","handleAccept","_data$cateringOrderId","_data$etd","cateringOrderToSave","_s$cateringOrderLegId","_s$cateringOrderId","crewNormOnBoard","crewVgOnBoard","crewGfNlOnBoard","crewGfNlVgOnBoard","CateringOrderFilter","downloadBlob","URL","createObjectURL","downloadLink","clickHandler","revokeObjectURL","InputLabel","htmlFor","Input","InputAdornment","handleClickSearchFilter","onMouseDown","preventDefault","ClearIcon","SearchIcon","GetAppIcon","RefreshIcon","SvgNoResult","NoResult","isDrawer","NoResultIcon","pageIcon","PageContent","cvFlightActive","withHeader","withoutHeader","CateringOrderPage","SvgDelete","SvgEdit","strokeLinecap","strokeLinejoin","SvgPlus","AddButton","_line","PlusIcon","SvgPagingFirst","x1","y1","x2","SvgPagingLast","y2","SvgPagingNext","SvgPagingPrevious","GlobalFilter","globalFilter","setGlobalFilter","gotoPage","defaultPropGetter","columns","pagination","itemsPerPage","fixed","hiddenColumns","getRowProps","getCellProps","renderRowSubComponent","onSelectedRows","resetPageOnData","records","setRecords","getTableProps","getTableBodyProps","headerGroups","prepareRow","setHiddenColumns","visibleColumns","selectedFlatRows","canPreviousPage","canNextPage","pageOptions","pageCount","nextPage","previousPage","setPageSize","pageIndex","useTable","autoResetExpanded","autoResetPage","autoResetGlobalFilter","useGlobalFilter","useSortBy","usePagination","useExpanded","useRowSelect","renderRow","row","depth","tableRow","innerRow","cells","isExpanded","elevation","MuiTable","tableHead","headerGroup","_headerGroup$getHeade","_headerGroup$getHeade2","_createElement","getHeaderGroupProps","column","headerProps","getHeaderProps","getSortByToggleProps","canSort","clickable","isSorted","isSortedDesc","ArrowDownwardIcon","ArrowUpwardIcon","tableBody","FirstPage","NavigatePrevious","number","NavigateNext","LastPage","Select","show","TableIconButton","svg","Searchcomplete","freeSolo","Autocomplete","renderOption","getOptionLabel","getOptionSelected","renderInput","onInputChange","_ref3","CrewSpecialMealCrewFilter","autoCompleteTextField","firstname","lastname","DialogCancelButton","CrewSpecialMealDeleteDialog","_state$selectedCrewSp2","_state$selectedCrewSp3","_state$selectedCrewSp4","_state$selectedCrewSp5","_state$selectedCrewSp6","dialog","mealType","handleDelete","_state$selectedCrewSp","menuItemRoot","menuItemSelected","noOptionsLabel","formControlClassName","inputLabel","labelWidth","setLabelWidth","MenuProps","disableScrollLock","getContentAnchorEl","as","CheckboxControlled","labelPlacement","renderProps","FormControlLabel","MuiCheckbox","checked","Checkbox","CrewSpecialMealForm","_form$errors$crewCode","_form$errors","_form$errors2","_form$errors3","_form$errors4","_form$errors5","_form$errors6","_form$errors7","_form$errors8","_form$errors9","_form$errors10","_form$errors11","_form$errors12","_form$errors13","_form$errors14","isNew","checkBoxValue","isNewCrew","setIsNewCrew","getDefaultCrew","autoHighlight","defaultChecked","rank","employeeId","mealTypeCode","DefaultCrewSpecialMeal","CrewSpecialMealDrawer","isSubmitDisabled","setIsSubmitDisabled","isNewCrewMember","setIsNewCrewMember","CrewSpecialMealFormSchema","_c$crew$code","_formData$code","toLowerCase","inserted","_formData$crewCode","selectedMeal","_selectedMeal$crew","getFormDefaultValue","onDrawerClose","CrewSpecialMealExportDialog","userContext","recipient","setRecipient","handleExport","recipients","CrewSpecialMealsPage","deleteDialog","exportDialog","accessor","disableSortBy","Cell","handleEdit","original","EditIcon","DeleteIcon","handleAdd","FlightSchedulePage","schedule","setSchedule","arrivalStation","setDefault","DatePicker","inputVariant","displayMinDateMessage","selectedValue","setSelectedValue","MuiPickersUtilsProvider","libInstance","utils","MomentUtils","KeyboardDatePicker","minDateMessage","SvgSearch","SearchButton","ForecastSearch","handleSearch","onKeyDownHandler","isBetween","endOf","onKeyDown","disableToolbar","autoOk","ForecastPage","ImmigrationDocumentService","sendManualForecastsByEmail","manualForecast","ManualForecastPage","ManualForecastFormSchema","emails","setLoading","ManualForecastService","minRows","my","DateTime","full","indicateMissingConversion","mandatoryTimezone","localHelper","dateContent","StationTypeSelectOptions","StationTypeSelectOption","UpliftStationDialog","routingLeg","setValue","upliftStationType","carrier","flightNumberOnly","RadioGroup","Radio","handleUpdate","UpliftStationRouting","setRoutingLeg","flexWrap","isPermanent","isCateringForThisFlight","isStaticCatering","handleClick","UpliftStationSearch","_state$fromDate","SvgComment","DialogComment","modalActions","onSave","setComment","useComment","badgeClassName","numericalBadge","handleValidate","CommentIconWithDialog","overlap","invisible","CommentIcon","UpliftStationsPage","disabledSort","compactTable","backgroundRow","backgroundAlternateRow","CateringDutyQuantityCell","quantity","itemId","dutyCode","isSaving","localQuantity","setLocalQuantity","isReadOnly","setIsReadOnly","inputQuantity","_inputQuantity$curren","onFocus","onBlur","onKeyPress","charCode","which","keyCode","numericOnly","parseInt","CateringDutyQuantity","setDutyQuantities","processing","setProcessing","fetchDutyQuantities","quantities","mapItems","itemsPerAssignmentCategory","mapped","cateringItemId","assignmentCategory","updateQuantities","dutyQuantity","updateQuantity","dutyDuration","mapQuantitiesToUpdate","setHeaders","subHeaders","setSubHeaders","setRows","dutyCodes","myRows","itemAssignment","cateringAssignment","foundCategory","dutyRow","categoryName","foundItem","dutyItemRow","dutyDurationCode","categoryId","rowSpan","newState","iac","TableContainer","DutyQuantityPage","AutoComplete","valueProp","unmatchedValue","_defaultValue$valuePr","openOnFocus","o","Boolean","SvgAttachedFileLighter","DialogMultiComment","maxHeight","historyComment","createdOn","createdBy","ReservationRedirectOrigin","useReservationRedirect","resaInfo","toReview","allowed","setAllowed","ManageReservations","isSame","taskTypeDecode","redirectUrl","TaskFormSchema","guaranteeGiven","nullable","cargoluxInvoice","invoicePaidUponCheckout","invoiceToBeAttached","prepaidReservation","prepaidVoucher","DrawerButton","SvgDeleteBin","SvgAttachedFile","useBlobDownload","webkitURL","remove","downloadByAttachment","attachmentId","FileDownloadButton","getFile","getFileArgument","downloadAttachmentButton","handleDownloadAttachment","AttachedFileIcon","SvgUploadFile","FileUpload","accept","multiple","onFileChange","onFileDelete","useOriginalFile","immigrationDocument","fileFromImmigrationDocument","currentFiles","setCurrentFiles","fileList","setFileList","shouldValidate","getFileFromInput","file","reader","FileReader","onerror","onload","_reader$result","base64String","readAsDataURL","handleFileChange","persist","files","promises","newFiles","manageUploadedFile","mainContainer","fileinput","uploadbutton","UploadFileIcon","_file$fileName","uploadedItem","handleViewFile","deleteIcon","vAligh","allProofs","allFileProofs","handleRemoveDocument","TaskForm","_form$errors$agent$va","_selectedTask$service","_selectedTask$service2","_selectedTask$service3","_selectedTask$service4","_selectedTask$service5","_selectedTask$service6","existingAttachments","resolveTraveler","onFileChanged","setExistingAttachments","outStationed","mailing1","assignation","defaultAssignation","documentName","billingLabel","TaskGridDrawer","_selectedTask$attachm","_selectedTask$attachm3","fileAdded","setFileAdded","_selectedTask$attachm2","defaultValues","taskForm","_taskForm$agent","_taskForm$file","hasFile","TaskGrid","alternateColorMapping","el","alternate","getFontWeight","isVacationReservation","TaskList","ButtonBase","_ref4","_row$original$service","_row$original$service2","_ref5","_ref6","taskExtended","flexFlow","getStatusLabel","_ref7","_ref8","_row$original$attachm","AttachmentIcon","_ref9","travelerComment","_ref10","_comments$map","iconButtonClassName","useMultiComment","taskComment","createdByName","_ref11","_alternateColorMappin","alternateRow","TaskListPage","_employee$member$memb","setFilter","fetchBusinesses","_employee$user$mailin","_employee$user","availableStations","useWindowSize","windowSize","setWindowSize","innerWidth","innerHeight","handleResize","NavTabs","isTooSmallForMobile","setSize","clientWidth","Tabs","tabNav","smallTabNav","_item$name2","_item$name","Tab","DisplayControl","ARMDrawer","isVisibleDrawer","hideDrawer","watchStatus","useWatch","gridContainer","gridSection","idx","canBeChecked","canBeResolved","ARMBlockFlightTab","filtredData","setFiltredData","showDrawer","filtredStatus","setFiltredStatus","setReadOnly","BLOCK_FLIGHTS","localFiltredData","tableClickableText","handleEditARM","usePassengerListRedirect","redirectInfo","ARMReservationTab","filtredType","setFiltredType","setIsLoading","useARMRedirect","MuiLink","_row$original$owner","_row$original$owner2","owner","mr","ARMRoutes","ARMPage","SvgPrint","tabs","activeTab","setActiveTab","handleValueChange","TabIndicatorProps","AllLegsCrewCard","summary","summaryContent","SvgWarningSecondary","useCollapseCardIconStyles","transitions","shortest","expandOpen","EmergencyContactInfo","emergencyContact","gridContainerPage","relationType","address","city","postCode","phone","useCountries","Genders","GendersOptions","Male","Female","Undisclosed","Unspecified","DocumentStatusChip","Chip","CheckCircle","HighlightOff","AccessTime","ErrorOutline","PassportExpirationChip","expireDate","isWithin6Month","expireMoment","now","diff","isExpired","today","ReadOnlyLabel","normalizedValue","getMemberDocuments","getPendingDocuments","approveDocument","rejectDocument","createNewDocument","updateDocument","deleteDocument","getImmigrationDocumentAttachment","getAxiosAttachment","updateDefaultDocument","linkVisa","passportId","visaId","PdfFileDowloadButtton","_document$memberId","filePath","_parts$pop","parts","pop","getFileTypeFromHeader","contentDisposition","fileNameMatch","fileNameStarMatch","decodeURIComponent","getFileNameFromContentDisposition","ImmigrationDocumentPreview","_document$fileName","setAttachment","isPdf","imageUrl","documentType","PassportReadonlyCard","dateFormat","countryName","countryCode","_countries$find","Card","CardHeader","ReactCountryFlag","nationalityCode","CardContent","documentNumber","issueDate","middleName","birthCountryCode","birthCity","birthState","_GendersOptions$find","genderChoice","AllLegsTravelerCard","passengerListContext","expanded","setExpanded","confirmation","setConfirmation","isChild","WarningIcon","handleExpandClick","priorityName","isGroom","Switch","_passengerListContext","_passengerListContext2","ExpandMoreIcon","approver","LegCrewCard","ApisService","getApisDirectResponses","getSchengenCountries","addSchengenCountry","deleteSchengenCountry","getCountryProperties","addCountryProperty","countryProperty","updateCountryProperty","deleteCountryProperty","getTemplates","addTemplate","deleteTemplate","DirectApisApiResponse","apisResponse","setApisResponse","loadingApisResponse","setLoadingApisResponse","tmp","orderBy","receivedOn","sx","ukuptrecord","getLatestOfEach","sourceSystems","uniq","sourceSystem","latest","_apisResponse$sourceS","responseCode","responseDescription","responseText","dayjs","iataCodeRegex","LegTravelerCard","setOrigin","setDestination","stationRes","handleOnBoardStatusChange","newStatus","isOnboard","v","SvgWarning","PassengerListPage","_moment","fDesc","fDate","useParams","setFlightDesc","setFlightDate","setStatus","handleSearchPassenger","handleKeyPress","fileURL","printButton","PrintIcon","Menu","bindMenu","close","missingCarrier","handleStatusChange","armAlertContainer","armAlertLeftPadding","armAlertText","_passengerListContext3","_passengerListContext4","_passengerListContext5","_passengerListContext6","_passengerListContext7","_passengerListContext8","_passengerListContext9","_passengerListContext10","_passengerListContext11","hr","handleIsOnClosedClick","CVFlightStatus","formatString","_len","args","_key","substr","getNormalizedString","normalize","highlightSearchText","normalizedText","normalizedSearch","trimStart","trimEnd","firstIndex","lastIndex","components","DialogSaveButton","ReservationETicketFormSchema","PrintETicketGrid","flightPassengerSummaries","selectedItem","setSelectedItem","showETicketDialog","hideETicketDialog","isVisibleETicketDialog","computeTravelerStatus","Confirmed","Ticketed","gridData","passengerId","statusList","legStatus","passenger","usReservationRedirect","Tickets","touched","PrintETicketPage","hasSearch","setHasSearch","setData","summaries","setDepartureDate","WaitListGrid","_row$original$flightD","WaitList","waitlistDate","WaitingListPage","_employees$find","searchCriterion","setSearchCriterion","validSearchCriterion","validDate","TextFieldCommon","RelatedTasksGrid","RelatedTasks","RelatedTasksPage","PassengerListLightPage","legInfo","passengerCount","crewCount","BlockFlightRelationsCard","onValidateForm","useFormContext","checkAllFrom","setCheckAllFrom","checkAllTo","setCheckAllTo","checkAllTransit","setCheckAllTransit","isTriggeredByCheckAllFrom","setIsTriggeredByCheckAllFrom","isTriggeredByCheckAllTo","setIsTriggeredByCheckAllTo","isTriggeredByCheckAllTransit","setIsTriggeredByCheckAllTransit","refreshKey","setRefreshKey","firstRender","setFirstRender","handleOnCheckAll","isChecked","columnName","Accordion","AccordionSummary","expandIcon","AccordionDetails","tripId","handleOnchageFrom","handleOnchageTo","handleOnchageTransit","BlockFlightAirports","_defaultValue$airport","_defaultValue$fromDat","_defaultValue$country","_form$errors$country","_defaultValue$fromDat2","_defaultValue$fromDat3","_defaultValue$toDate","_form$errors$reason","_form$errors$comment","_defaultValue$airport2","isUpdate","allAirports","setAllAirports","isDisabled","setIsDisabled","refreshValidation","setRefreshValidation","isReadOnlyLocal","setIsReadOnlyLocal","isUpdateLocal","setIsUpdateLocal","trigger","optionSchema","blockFlightAirportsFormSchema","when","_moment$startOf","watchFromDate","watchCountry","validateForm","isSaveVisible","rel","transit","FormProvider","_blockFlightForm$reas","_blockFlightForm$coun","listAirports","blockFlightForm","_defaultValue$airport3","CommentTravelTypes","_defaultValues$travel","_defaultValues$fromDa","_defaultValues$fromDa2","_defaultValues$toDate","_resolveReasonOption","onRefreshValidate","groupName","isException","checkAll","setCheckAll","travelTypes","fromName","toName","resolveReasonOption","handleOnChange","BlockFlightCarrierCode","_defaultValue$reason","blockFlightCarrierCodeFormSchema","carrierCode","_blockFlightForm$carr","_blockFlightForm$reas2","_blockFlightForm$comm","tripTypeIds","FlightRoutingCard","flightRouting","selectedRouting","handleChange","clickableDrawerOption","checkboxOptions","checkboxSelectedOption","flightDates","BlockFlightNumberStep1","flightRoutings","handleNextStep","pt","BlockFlightNumberStep2","routingLegs","selectedLegs","handlePreviousStep","formattedValue","legRouting","_values$legs","formLeg","handleCheckAll","BlockFlightNumberStep3","fullRouting","isExceptionLocal","setIsExceptionLocal","isAllLegs","blockFlightNumberFormSchema","_moment$startOf2","departureStation","enableSave","_values","flightNumbers","isAll","_blockFlightForm$valu","_blockFlightForm","_blockFlightForm2","_defaultValue$reason2","BlockFlightNumberStep","BlockFlightFlightNumber","setFlightNumber","setFlightRoutings","setSelectedRouting","setSelectedLegs","setRoutingLegs","STEP_1","waitResponse","setWaitResponse","resetData","gotoNextStep","STEP_2","STEP_3","gotoPreviousStep","_flightRoutings$find","BlockFlightTailNumber","blockFlightTailNumberFormSchema","_blockFlightForm$tail","BlockFlightCreateTab","CREATE","bigToggleButtons","SvgBack","filterUnits","colorInterpolationFilters","floodOpacity","radius","operator","dx","dy","stdDeviation","in2","BlockFlightRulesAirports","selectedRow","setSelectedRow","selectedRowToDelete","setSelectedRowToDelete","showConfirmationDialog","hideConfirmationDialog","isVisibleConfirmationDialog","setDefaultValue","_row$original$airport","blockedFlight","BackIcon","BlockFlightRulesCarrierCode","_cvTripTypes$find","allTrip","BlockFlightRulesFlightNumber","departure","arrival","formatted","BlockFlightRulesTailNumber","BlockFlightRulesTab","SvgNotApplicable","BlockFlightView","saveAirports","blockedRouting","useQuery","URLSearchParams","BlockFlightSearchTab","query","flighDate","SEARCH","blockedFlights","notApplicable","NotApplicable","handleSeeMore","normalRow","handleConfirmDelete","BlockFlightRoutes","BlockFlightPage","DeparturesFromLUXPage","departures","setDepartures","setTimezone","selectedStation","setSelectedStation","_airportsTimeZones$fi","_airportsTimeZones$fi2","sta","diffDays","baseStyle","eta","HelpPage","_state$helpPages","InnerHtmlContainer","AuditLogService","getReservationsAuditLogs","getAlertsAuditLogs","getSecurityAuditLogs","AlertsTab","setFromDate","setToDate","isSearchDisabled","setIsSearchDisabled","selectedLog","setSelectedLog","isSameOrAfter","createdAt","auditLog","handleDisplayLog","ReservationsTab","reservationNumber","setReservationNumber","_reservationNumber$tr","_e$target$value","_e$target$value2","test","AlertLogRoutes","AuditLogPage","AuditlogRoutes","AviationinsuranceGrid","ReportingService","getWarningListReport","getNoShowConfirmedReport","onLoad","offLoad","getAviationInsuranceReport","getPassengersToBeInvoicedReport","month","sendPassengersToBeInvoicedReport","mail","getSpecialFeesReport","sendSpecialFeesReport","getTravelReport","searchReport","exportTravelReport","getPriorities","CarrierCode","filteredData","ALL","AviationInsuranceReportPage","_state$searchCriterio","_state$searchCriterio2","_state$searchCriterio3","setState","CVCount","CV","CVICount","CVI","nextVal","AviationInsuranceGrid","NoShowConfirmedGrid","onUpdateComment","canUpdateComment","_row$original$etd","NoShowConfirmed","ReportType","reportType","NO_SHOW","NoShowConfirmedReportPage","NOT_CONFIRMED","dataCopy","MultiSelect","other","tempValue","setTempValue","checkboxState","setCheckboxState","watchedValue","watchInternal","renderValue","_options$find","selectedValues","onExited","handleOnBlur","_options$find2","TravelReportCar","rentalCompany","_row$original$pickUpD","pickUpDate","TravelReportCVFight","cvFlight","TravelReportHotel","hotelName","_row$original$checkIn","checkIn","TravelReportDrawer","_travelReport$summary","_travelReport$summary2","_travelReport$summary3","_travelReport$summary4","_travelReport$summary5","_travelReport$cvFligh","_travelReport$commerc","_travelReport$hotels","_travelReport$cars","travelReport","PaperProps","traveller","TravelReportCommercial","_row$original$departu","TravelReportFormSchema","createdToDate","TravelReportPage","_data$summary","_reportDates$fromDate","_reportDates$createdF","_form$errors$priority","predefinedReport","setPredefinedReport","reportDates","setReportDates","createdFromDate","isGenerateDisabled","setIsGenerateDisabled","setTravelers","priorities","setPriorities","selectedReport","setSelectedReport","uuid","setUuid","predefinedReportSelected","setPredefinedReportSelected","priority","IsGenerateEnabled","toDateValid","createdToDateValid","getformData","_values$traveler","costCenter","handleGenerate","_Guid$create","Guid","_data$summary$find","travelReportSummary","DialogMultiCommentReadonly","WarningListGrid","reasonType","travelerFirstName","travelerLastName","WarningList","_row$original$created","creatorFirstName","creatorLastName","useMultiCommentReadonly","ReasonType","TRIAL_PERIOD","WarningListPage","LAST_MINUTE","SendMailSchema","SendMailModal","handleSend","modalOptions","onModalClose","SpecialFeesGrid","sendMail","passengerName","PassengersToBeInvoicedGrid","AccountingReportType","passengersToBeInvoicedItems","specialFeesItems","sendingMail","PassengersToBeInvoiced","AccountingReportPage","searchSpecialFees","searchPassengersInvoiced","inline","val","PayrollDeductionForSecurityFees","mailInfo","reportPromise","CheckBoxOutlineBlankIcon","checkedIcon","CheckBoxIcon","MembersRoleReportPage","setRoles","selectRoleName","setSelectedRoleName","noResult","setNoResult","handleSearchMembers","searchRoles","newData","employeeName","disableCloseOnSelect","AuditLogSecurityPage","_selectedLog$document","setCountry","sentAt","securityLog","templateType","templateMode","documentNumbers","otherTimeTransmission","ReservationApprovalFormSchema","is","NotApproved","ReservationApprovalPage","actionWatch","watch","clearForm","_form$reason","Approved","handleSuccess","inputNumber","SvgDeleteBinWhite","useDebounce","debouncedValue","setDebouncedValue","AutoCompleteFetcher","_props$errors","_props$helperText","serviceFunction","makeOptionsFunction","requiredText","setOptions","setSearchText","debouncedSearchText","retrieveOptions","researchValue","dtos","newOptions","BETWEEN_2_AND_7_MESSAGE","BETWENN_7_AND_18_MESSAGE","computePassengerAge","_member$birthDate2","validatePassengersBetween2and7","childs","adults","between2and7","validatePassengersBetween7and18","TripTypesEnum","BooleanOptions","BookingSetupPage","_memberInformations$m8","_memberInformations$m9","_memberInformations$m10","_memberInformations$m11","_memberInformations$m12","_creationForm$errors$","_creationForm$errors$2","_creationForm$errors$3","_creationForm$errors$4","_memberInformations$m13","_memberInformations$m14","_memberInformations$m15","_memberInformations$m16","_memberInformations$m17","_memberInformations$m18","_memberInformations$m19","_memberInformations$m20","_memberInformations$m21","_memberInformations$m22","_memberInformations$m23","_memberInformations$m24","_memberInformations$m25","_memberInformations$m26","isInTrial","setIsInTrial","setIsCVFlight","setTripType","groupTravel","setGroupTravel","validationSchema","setValidationSchema","computeAge","validateAdultCount","shouldDisplayOver27","schoolCertificateWarning","_member$birthDate","passengersIds","_memberInformations$r2","_memberInformations$r3","between7and18","childId","_memberInformations$r4","_memberInformations$r5","child","age","_memberInformations$r6","_memberInformations$r7","useReservationChildrenMethods","showValidationError","hideValidationError","hasValidationError","childrenValidation","setChildrenValidation","_memberInformations$u","hiredDate","subtract","SetupShape","trainingReference","of","approverEmail","travelInGroup","reservationEmployees","budgeted","isBudgeted","shortDescription","customerCompany","customerCompanyName","customerContact","customerContactPerson","cvContact","cvContactPerson","creationForm","shouldDirty","group","watchTrainingReference","watchTrainingDate","watchReservationEmployees","watchReservationMembers","_tripType$approver","_trainings$find","returnValue","memberSelectionError","expirationText","isMissingContactInfo","residenceCode","ImmigrationDataError","MissingContactInfoError","fieldContainer","relation","startDate","endDate","g","_allTripTypes$find","_allTripTypes$find2","Vacation","VacationWithoutCV","subtitle","formResults","selectedCourse","array","accumulator","currentValue","Function","training","_creationForm$errors$5","nextValue","travelGroupActions","roundedIconButton","isNaN","roundedDisabledIconButton","AddIcon","formControlEllipsis","_r$lastName","_r$documents","_r$lastName2","_r$lastName3","Alert","MdOutlineWarningAmber","alignSelf","linkButton","groupByArray","SvgBasket","SvgMobileStepperNext","Stepper","_line2","_line3","_line4","stepsCount","mobileStepper","arrow","NextIcon","reverseIcon","stepNumber","stepTitle","MuiStepper","nonLinear","_stepsCount$index$cou","Step","StepButton","count","stepIcon","stepIconActive","stepButton","SvgCarBasket","strokeOpacity","SvgCommercialBasket","SvgCvFlightBasket","_mask2","SvgHotelBasket","convert","TravelersPicker","formName","serializeTraveler","PassengersList","displayLabel","getWaitListedLabel","found","isWaitListed","AgentForm","_task$taskId","_data$agents2","_task$status","isHotel","CommentsCollapse","controller","summaryClassName","summaryTitleClassName","expandButtonClassName","collapsed","setCollapsed","pb","useMultiCommentCollapse","agentAccordion","historyTitle","historyCollapse","connectedAgent","_data$agents","agentComment","ReservationMailExchangeActionType","ReservationMailExchangeReducer","LOAD_HISTORY_STARTED","selectedExchange","LOAD_HISTORY_DONE","exchanges","LOAD_HISTORY_FAILED","SELECT_EXCHANGE","POST_REPLY_STARTED","POST_REPLY_DONE","exchangeIndex","reservationMailExchangeId","POST_REPLY_FAILED","ReservationMailExchangeContext","ReservationMailExchangeProvider","selectExchange","exchange","loadReservationExchange","postReply","useReservationMailExchangeContext","reservationMailDetailsSchema","ReservationMailExchangeDetails","_exchange$message","backButton","sendingDate","sentBy","includeGeneralInformation","includeCVFlights","includeCommercials","includeHotels","includeCars","informationIncluded","multilineLabel","boldFormControlTitle","ReservationMailExchangeList","closeModal","_row$original$sentDat","sentDate","_row$original$replyDa","replyDate","ReservationExchangeHistoryModal","useReservationStatus","statusApproved","statusNotApproved","statusWaiting","statusDefault","SendReservationSchema","allInformation","generalInformation","handleSendReservation","handleSelection","unchecked","u","getUncheckedReservationParts","useReservationTraining","_selectedTraining$tra","ReviewSummaryEditForm","_reservation$approver","_reservation$reason","onFinish","setSchema","schemaShape","_reservation$hotels","_reservation$cars","_reservation$commerci","hotelOngoingTask","_h$task","Request","carOngoingTask","_h$task2","commercialOngoingTask","_h$task3","employeesInGroup","unregister","watchGroupTravel","watchEmployeesInGroup","employeeFields","setEmployeeFields","_form$trainingDate","_form$employeesInGrou","_form$employeesInGrou2","reviewSummaryContent","_errors$employeesInGr","_errors$employeesInGr2","employeeAutoComplete","newVal","ReviewSummaryReadOnly","_reservation$reason2","onEditClick","atLeastOneFieldsEditable","reviewSummaryContentLabel","PassengerList","ReviewSummary","setEmployees","editMode","setEditMode","SendReservationButton","_data$message","useSendReservation","ReservationExchangesHistoryButton","useReservationExchangeHistory","ReservationStatusBadge","px","py","cwa","SvgActiveService","SvgEditWhite","HotelBasket","closeDrawer","activeModalItemId","setActiveModalItemId","_hotel$task","reservationActiveServiceCategorySubTitle","reservationServiceCategorySubTitle","ActiveServiceIcon","basketStyle","NeedToCancel","reservationServiceCategoryLabel","reservationServiceCategoryInfo","checkOut","estimatedCost","atLeastOnePassenger","deserializedList","deserializeListOfPassengers","BasketRemovalFormSchema","removeAll","travelersToRemove","BasketRemovalFormSchemaWithChildren","BasketRemovePassengerModal","onCancel","validateChildren","validationResult","setvalidationResult","onSelection","passengersLeft","_passengers$filter$ma","CommercialBasket","removeEntry","removeMember","itemTitle","trainNumber","resolvePassenger","aggregate","uiReducer","uiEntryIndex","_commercial$task","removeMembers","RentalCarBasket","_car$task","dropOffDate","LuxPoolCarBasket","CompanyCarBasket","estimatedDistance","distanceUnit","PrivateCarBasket","CarpoolingBasket","driverName","CarBasket","reservationCarType","getCarTypeBasket","CvFlightBasket","removeFlight","showAWB","_getAirportTimezoneBy","_getAirportTimezoneBy2","_flight$awbNumber","arrivalTime","toRemove","EmptyBasketItem","IconComponent","emptyInfo","Basket","_booking$cvFlights$le","_booking$cvFlights2","_booking$commercials$","_booking$commercials2","_booking$hotels$lengt","_booking$hotels","_booking$hotels2","_booking$cars$length","_booking$cars","_booking$cars2","isSummaryExpanded","setIsSummaryExpanded","mainTitle","align","accordionSummary","summaryTitle","summaryExpand","airBills","CvFlightBasketIcon","timeDiff","CommercialBasketIcon","HotelBasketIcon","CarBasketIcon","OnOffSwitch","offLabel","onLabel","animating","autoplaying","currentDirection","currentLeft","currentSlide","dragging","edgeDragged","lazyLoadedList","listHeight","listWidth","scrolling","slideCount","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackStyle","trackWidth","targetSlide","getOnDemandLazySlides","spec","onDemandSlides","startIndex","lazyStartIndex","endIndex","lazyEndIndex","slideIndex","lazySlidesOnLeft","lazySlidesOnRight","centerMode","slidesToShow","centerPadding","getWidth","elem","getHeight","offsetHeight","getSwipeDirection","verticalSwiping","xDist","yDist","swipeAngle","atan2","round","PI","abs","canGoNext","canGo","infinite","extractObject","newObject","checkNavigable","navigables","counter","indexes","slidesToScroll","getNavigableIndexes","prevNavigable","getSlideCount","centerOffset","swipeToSlide","swipedSlide","slides","findDOMNode","listRef","querySelectorAll","slide","offsetTop","offsetLeft","currentIndex","rtl","dataset","checkSpecKeys","keysArray","getTrackCSS","trackHeight","trackChildren","getTotalSlides","WebkitTransition","useTransform","WebkitTransform","msTransform","fade","attachEvent","getTrackAnimateCSS","speed","cssEase","getTrackLeft","unslick","trackRef","variableWidth","targetLeft","slidesToOffset","getPreClones","targetSlideIndex","trackElem","childNodes","getPostClones","siblingDirection","slidesOnRight","slidesOnLeft","right","canUseDOM","getSlideClasses","slickActive","slickCenter","slickCloned","getKey","fallbackKey","renderSlides","preCloneSlides","postCloneSlides","childrenCount","Children","childOnClickOptions","lazyLoad","childStyle","getSlideStyle","slideClass","slideClasses","cloneElement","classnames","tabIndex","focusOnSelect","preCloneNo","reverse","Track","PureComponent","onMouseEnter","onMouseOver","onMouseLeave","mouseEvents","Dots","dotCount","dots","ceil","getDotCount","leftBound","rightBound","dotOptions","customPaging","appendDots","dotsClass","PrevArrow","prevClasses","prevHandler","prevArrow","prevArrowProps","customProps","NextArrow","nextClasses","nextHandler","nextArrow","nextArrowProps","InnerSlider","Component","_this","listRefHandler","trackRefHandler","track","adaptHeight","adaptiveHeight","querySelector","componentWillMount","ssrInit","onInit","slidesToLoad","prevState","onLazyLoad","componentDidMount","updateState","autoplay","autoPlay","lazyLoadTimer","progressiveLazyLoad","ro","ResizeObserver","onWindowResized","callbackTimers","observe","onfocus","pauseOnFocus","onSlideFocus","onblur","onSlideBlur","componentWillUnmount","animationEndCallback","detachEvent","autoplayTimer","componentWillReceiveProps","nextProps","setTrackStyle","changeSlide","pause","componentDidUpdate","checkImagesLoad","onReInit","debouncedResize","debounce","resizeWindow","callback","updatedState","centerPaddingAdj","initialSlide","initializedState","trackLeft","childrenWidths","preClones","postClones","currentWidth","images","imagesCount","loadedCount","onclick","prevClickHandler","parentNode","focus","onLazyLoadError","slideHandler","dontAnimate","asNavFor","beforeChange","afterChange","nextState","waitForAnimate","useCSS","finalSlide","animationLeft","finalLeft","animationSlide","innerSlider","firstBatch","indexOffset","previousInt","slideOffset","stopPropagation","keyHandler","dir","accessibility","tagName","selectHandler","disableBodyScroll","ontouchmove","enableBodyScroll","swipeStart","swipe","draggable","touches","pageX","clientX","pageY","clientY","swipeMove","edgeFriction","onEdge","swipeEvent","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","swipeEnd","touchThreshold","onSwipe","minSwipe","newSlide","triggerSlideHandler","slickPrev","slickNext","slickGoTo","play","nextIndex","playType","autoplaySpeed","pauseType","onDotsOver","onDotsLeave","onTrackOver","onTrackLeave","trackProps","pauseOnHover","dotProps","pauseOnDotsHover","arrowProps","arrows","verticalHeightStyle","centerPaddingStyle","listStyle","touchMove","listProps","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","innerSliderProps","defaultProps","easing","responsive","slidesPerRow","enquire","require","Slider","innerSliderRefHandler","slickPause","slickPlay","_responsiveMediaHandlers","media","breakpt","bQuery","json2mq","newProps","resp","toArray","warn","newChildren","j","k","rowclassName","ChevronRightIcon","htmlColor","ChevronLeftIcon","Carousel","initialSlideIndex","onSlideChanged","lowThresholdDate","indexToSlideTo","setSlideIndex","beforeChangeEvent","next","CVFlightCarousel","fromDateThreshold","targetDate","rangeInDay","onSelectDate","onCarouselCardUpdated","getLocalTimedLeg","legIndex","gmtLeg","timezones","useCVFlightTimezones","cards","setCards","lowThreshold","lowDateThreshold","computedCards","dayFlights","_getLocalTimedLeg","dayName","dayNumber","getDateToSelect","getIndexFromDate","targetDateFormatted","carouselContainer","carouselCard","alignContent","disabledDay","numberOfFlights","SvgArrow","SvgFlightArrival","SvgFlightDeparture","FlightDepartureHeader","_countries$find2","fromCode","toCode","back","pickerHeaderMobile","pickerHeaderMobileLabel","pickerHeaderMobileData","ArrivalIcon","DepartureIcon","pickerHeader","mx","CVFlightCardSchedule","_flightTimezones$","_flightTimezones$$ori","_flightTimezones$2","_flightTimezones$2$or","_flightTimezones","_flightTimezones$dest","_flightTimezones2","_flightTimezones2$des","gmtTimezone","flightTimezones","cardLabel","scheduleData","CVFlightLegDetails","_timezone$origin","_timezone$destination","seatsCount","cardDetailContainer","cardDetail","cardData2","Skeleton","CVFlightCard","_path31","_path32","_path33","_seats$legs$reduce","onChecked","selectorButton","cardContainerGridSelected","cardContainerGrid","flightClosedContainer","flightClosedText","disabledCard","flightCardRouting","cardData","availableSeats","viewButtons","cardDetailsContainer","_seats$legs$find","pl","SvgNoFlightFound","SvgNoFlightFoundForGivenDate","clipPath","gradientUnits","stopColor","stopOpacity","CVFlightNoFlightFound","otherFlightsAvailable","flightNotFound","NoFlightFoundForGivenDateIcon","NoFlightIcon","noFlightMessage","CVFlightCardList","gmt","onItemChecked","checkedItem","setCheckedItem","handleCheckedFlights","CVFlightOneWayPicker","onDateSelected","setCheckedFlight","ensureCheckedFlight","defaultDateSelected","setGmt","setMinDate","selectedDateMonth","setSelectedDateMonth","cvFlightPicker","monthLabelContainer","monthLabel","monthLabelChild","monthLabelUnderline","CvFlightOutwardPicker","onDatePicked","handleSelectDateChange","handleReturnFlightSelectDateChange","CVFlightPicker","outwardPickedDate","setOutwardPickedDate","Element","CvFlightReturnPicker","useAgent","isAgent","UnControlledFileUpload","_file$name","useTaskAttachments","deleteIconClassName","initialAttachments","serviceUId","setAttachments","newFile","setNewFile","setIsDirty","setAttachmentDirty","memoFileUpload","newAttachment","addNewFile","AgentFormAttachments","handleFetchAttachment","handleRemoveAttachment","tmpAttachments","computedAttachments","attachmentIsDirty","SortDateType","getSafeTime","getTime","sortByDate","ASC","start","end","getFullYear","RoomType","checkBlocked","blocked","dateToCheck","sortedDateToCheck","HotelFormSchema","roomType","HotelFormSchemaAllowPastBooking","HotelFormSchemaProcessed","HotelFormSchemaUpdate","SvgMobileStepperActionNext","SvgMobileStepperActionNextDisabled","StepperActions","numberSteps","onCancelEdition","cancelAvailable","isReservationDirty","hideConfirmation","isVisibleConfirmation","showTaskListConfirmation","hideTaskListConfirmation","isVisibleTaskListConfirmation","decode","decodedOrigin","NextIconDisabled","SvgReset","ClearFormMobile","iconLink","ResetIcon","iconLeft","HotelStep","_activeHotel$task$att","_activeHotel$task","_activeHotel$uiId","_activeHotel$task2","_activeHotel$task3","_activeHotel$task$att2","_activeHotel$task4","_activeHotel$task4$at","bookingStatus","allowPastBooking","editFields","Cancelled","Processed","attachmentChanged","_activeHotel$checkIn","_activeHotel$checkOut","handleHotelFieldUpdate","handleTaskSubmit","base","_hotel$status","_base$type","handleTaskComments","agentCommentEntry","minDateWatch","hotelForm","_activeHotel$hotelId","_activeHotel$reservat","_activeHotel$taskId","_hotel$guaranteeGiven","_hotel$cargoluxInvoic","_hotel$invoicePaidUpo","_hotel$invoiceToBeAtt","_hotel$prepaidReserva","_hotel$prepaidVoucher","_activeHotel$uiId2","hotelEntry","CarType","ReservationCarType","RentalCarFormSchema","carType","pickUpLocation","dropOffLocation","LuxPoolSchema","CompanyCarFormSchema","PrivateCarFormSchema","CarpoolingFormSchema","ControlledDateTimePicker","validateInternal","KeyboardDateTimePicker","ampm","ControlledTextField","RentalForm","_form$errors$rentalCo","_form$errors$rentalCo2","_form$errors$pickUpLo","_form$errors3$pickUpL","_form$errors$pickUpDa","_form$errors4$pickUpD","_form$errors$dropOffL","_form$errors5$dropOff","_form$errors$dropOffD","_form$errors6$dropOff","_form$errors$estimate","_form$errors7$estimat","_form$errors$carType$","_form$errors2$carType","LuxPoolForm","_form$errors$traveler","CompanyCarForm","_form$errors$dropOffD2","_form$errors2$estimat","PrivateCarForm","CarpoolingForm","canEditFields","isEdit","isApproved","CarStep","_activeCar$task$attac","_activeCar$task","_activeCar$uiId","_activeCar$task2","_activeCar$task3","reservationTypeWatch","isEditAvailable","getCarForm","_activeCar$pickUpDate","_activeCar$dropOffDat","clearErrors","handleCarFieldUpdate","_car$status","carForm","_activeCar$carId","_activeCar$reservatio","_activeCar$taskId","_activeCar$uiId2","carEntry","CarId","ClassOfTravel","CommercialType","luggageFormSchema","weight","allTraveler","CommercialFormSchema","includeAllRelatives","hasLuggage","Train","Flight","travelClass","luggages","CommercialFormSchemaAllowPastBooking","CommercialFormProcessedSchema","CommercialFormUpdateSchema","CommercialFlightForm","_activeCommercial$lug","_activeCommercial$lug2","_activeCommercial$tas","_activeCommercial$tas2","watchHasLuggage","useFieldArray","_form$errors$luggages","_form$errors$luggages2","_form$errors$luggages3","_form$errors$luggages4","CommercialTrainForm","CommercialStep","_activeCommercial$tas3","_activeCommercial$tas4","_activeCommercial$uiI","_activeCommercial$tas5","_activeCommercial$tas6","_activeCommercial$tas7","watchType","watchIncludeAllRelatives","watchDeparture","toEntries","_activeCommercial$tra","_form$travelerComment","_form$estimatedCost","_form$departureDate","_form$travelerComment2","passengersId","_activeCommercial$com","_activeCommercial$res","_activeCommercial$tas8","_activeCommercial$uiI2","_commercial$status","commercialForm","_booking$reservationM","FlightTripType","OptionFormSchema","SearchFlightFormSchema","RoundTrip","CvFlightRequirementReport","requirements","requirement","extractRequirements","getRequirementField","airportRequirementReducer","hasValue","CvFlightAirportRequirements","immigrationReportData","immigrationSendingRequirements","immigrationSendingRequirements2","transitReportData","transitSendingRequirements","transitSendingRequirements2","trafficReportData","trafficSendingRequirements","trafficSendingRequirements2","CvFlightAirportRequirementReport","AirportRequirementsFormSchema","CvFlightAirportRequirementsModal","onValidate","airportsInfo","setAirportInfos","outward","return","asHours","getFlightAirportInfos","airportsToGetInfos","detail","_flight$routing$split","marginY","CvFlightStepActions","onFlightAdded","showConfirmation","showUnauthorized","hideUnauthorized","isVisibleUnAuthorized","showAuthorized","hideAuthorized","isVisibleAuthorized","validating","setValidating","actionsEnabled","attachMembers","isReturnFlight","_search$awbOut","_search$awbIn","awbOut","flightAlreadyAdded","addFlights","overlappingFlight","_removedCVMember$map","cvFlightIds","getOverlappingFlight","outWardDuplicate","returnDuplicate","outWardNumber","returnNumber","handleDuplicate","timeBeforeBeginningOfTrip","CvFlightStep","getPassengerBlockedFromThreshold","blockedDates","sortedDates","searchCompleteOptions","autoSelect","CvFlightStepperActions","SvgEmptyBasket","RentalCarReview","_car$task$status","_car$task2","_car$travelerComment","_car$task$comments","_car$task$attachments","reservationCreation","LuxPoolCarReview","CompanyCarReview","attachemnt","PrivateCarReview","CarpoolingReview","CarReview","getCarReview","CommercialReviewDetails","_commercial$luggages","_commercial$luggages2","_commercial$task$comm","_commercial$task$atta","luggage","CommercialReview","_commercial$task$stat","_commercial$task2","_commercial$travelerC","useCVFlightTravelers","travelerReducer","_reservationMembers$f","statuses","computedStatus","memberName","reduceTravelersData","CVFlightReviewDetails","_flight$cvFlightLegs","selectedLeg","setSelectedLeg","handleCancelDialog","_flightTimezones$inde","_flightTimezones$inde2","_flightTimezones$inde3","_flightTimezones$inde4","_lastLeg$ata","newLegs","newRouting","lastLeg","ata","extend","useDateTimezone","datetime","airportTimezone","utcString","UTCOffset","DateTimeZone","dateTimezone","gap","cvFlightEditFormSchema","CVFlightReview","_travelers$find$compu","_travelers$find","allPassengers","updateFlight","modalVisible","setModalVisible","isFutureFlight","CvFlightReviewContainer","passengerFlights","isPassengerInAnyLegs","HotelReviewDetails","_hotel$task$comments","_hotel$task$attachmen","HotelReview","_hotel$task$status","_hotel$task2","_hotel$travelerCommen","ReviewForPassenger","_booking$cvFlights$le2","_booking$cvFlights3","_booking$commercials$2","_booking$commercials3","_booking$hotels$lengt2","_booking$cars$length2","_booking$commercials$3","_booking$commercials4","_booking$hotels$lengt3","_booking$hotels3","_booking$hotels$lengt4","_booking$hotels4","_booking$hotels5","_booking$cars$length3","_booking$cars3","_booking$cars$length4","_booking$cars4","_booking$cars5","_allPassengers$find","EmptyBasket","ReviewStep","setTab","handleChangeTab","ContactLocationFormSchema","etravelContactLocationFD","etravelContactLocationTD","etravelContactLocationAD","etravelContactLocationCI","etravelContactLocationPH","PersonalDataFormSchema","defaultNextOfKinId","contactInfoTicketDelivery","contactInfoPrimary","contactInfoTraveling","excludeEmptyString","AccordionWarningMessage","isCritical","warningContainer","warningLeftPadding","warningExpirationText","NextOfKinInlineForm","etravelNextOfKinFN","etravelNextOfKinLN","etravelNextOfKinRT","etravelNextOfKinAD","etravelNextOfKinCI","etravelNextOfKinPC","etravelNextOfKinPH","EmergencyContactCard","_nextOfKin$lastName","saveNextOfKin","NextOfKinFormSchema","submittedNextOfKin","emergencyCardForm","accordionRoots","fullAccordionFormAlignDetails","notExpanded","summaryOverride","ellipsis","handleCancel","handleConfirmDeleteNextOfKin","NextOfKinForm","DefaultNextOfKin","EmergencyContact","_nextOfKins$find","nextOfKins","disableSelect","setDefaultNextOfKinId","nok","nexOfKinPromise","handleAddEmergencyContact","selectorSaveButton","handleUpdateDefaultNextOfKin","etravelNextOfKinD","etravelNextOfKinMI","etravelNextOfKinID","formContainer","SvgAirPlusCard","SvgAmexCard","SvgDinerClubCard","SvgMasterCard","SvgVisaCard","PaymentInformationForm","expirationDateMonth","expirationDateYear","PaymentInformationFormSchema","DefaultPaymentInformation","PaymentInformation","_paymentInformations$","defaultPaymentInfoId","setDefaultPaymentInfoId","pi","savePaymentInformation","paymentInformation","promise","maskAccountNumber","unmaskedPart","formatExpirationDate","paymentTypeIcon","AirPlusCardIcon","AmexCardIcon","DinerClubCardIcon","MasterCardIcon","VisaCardIcon","onAddClick","paymentOption","handleUpdateDefaultPaymentInformation","PaymentInformationCard","PaymentInformationInlineForm","setPaymentInformation","hideInputUnderlineAfter","startAdornment","onReveal","LockOpenOutlined","LockOutlined","paymentInfoDetail","setPaymentInfoDetail","CardExpiration","cardAlertView","monthsLeft","WillExpire","Expired","None","willExpireInAMonth","submittedPaymentInfo","handleConfirmDeletePaymentInformation","ReservationPaymentInformationsFormSchema","DefaultReservationPaymentInformations","ReservationPaymentInformations","reservationForm","isTemporary","setIsTemporary","lastSavedCard","setLastSavedCard","selectAddedCard","setSelectAddedCard","watchPayment","foundCard","_memberInformations$p","_memberInformations$p2","_memberInformations$p3","_memberInformations$p4","_memberInformations$p5","saveTemporaryPaymentInformation","_memberInformations$u3","temporaryUpdate","_memberInformations$u4","_memberInformations$u2","fullPayment","ContactInformationForm","emailTraveling","ContactLocationForm","contactLocation","phoneNumber","etravelContactLocationCO","ContactLocationCard","saveContactLocation","deleteContactLocation","formats","ReactQuill","quillRef","saveImagehandler","imageHandler","setAttribute","onchange","range","editor","getSelection","insertEmbed","REACT_APP_API_URI","setSelection","deleteText","modules","toolbar","handlers","clipboard","matchVisual","reactQuill","MuiReactQuill","PersonalDataConditions","conditionAccepted","setConditionAccepted","wcmPage","setWcmPage","requestFailed","setRequestFailed","conditionClicked","setConditionClicked","fetchWCMPage","Tooltip","conditions","withoutToolbar","DefaultValueContactLocation","PersonalDataStep","_booking$reservationM2","_reservationMembers$r","_selectedMember$docum","_reservationMembers$r3","_selectedMember$docum2","_booking$reservationM3","_booking$emergencyCon","_memberInformations$n2","setSelectedMember","setSelectedTab","setConditionsAccepted","isPassportExpired","reservationMembersWithMemberId","rm","_fullMember$documents","_fullMember$documents2","_fullMember$documents3","fullMember","setReservationMembers","setContactLocations","selectedPassportId","setSelectedPassportId","foundTrip","clf","cl","watchForm","isAddContactLocationDisabled","setIsAddContactLocationDisabled","passportUpdated","setPassportUpdated","currentMember","isContactLocationMissing","isImmigrationDataMissing","dirtyFields","currentDocument","handleReservationMembersSelect","availablePassports","defaultPassport","_availablePassports$f","_availablePassports$f2","_memberInformations$n","isMissing","hotelsCancelled","passport","currentReservationMembers","_reservationMembers$r2","formLocation","selectedDocument","isPropagationStopped","_chosenCard$paymentTy","_chosenCard$cbOwner","_chosenCard$cbNumber","chosenCard","defaultPaymentInformation","contactLocationSubmit","contactLocationResult","_memberInformations$r8","displayEmpty","doc","Styles","contactInformationAccordion","contactLocationDetails","onAddContactLocation","_location$etravelCont","_location$etravelCont2","handleUpdateContactLocation","contactLocationsUpdated","index2","handleDeleteContactLocation","ReservationStepsPage","_steps$activeStep","_steps$activeStep2","_steps$activeStep3","showBasketDrawer","hideBasketDrawer","isVisibleBasketDrawer","stepId","isPast","redirectStep","computedCvFlightMembers","reducedCvFlight","basketButton","BasketIcon","stepComponent","activeStepObject","ReviewForPassengerReadOnly","_reservation$cvFlight","_reservation$cvFlight2","_reservation$commerci2","_reservation$commerci3","_reservation$hotels$l","_reservation$cars$len","_reservation$cvFlight3","_reservation$cvFlight4","_reservation$cvFlight5","_reservation$commerci4","_reservation$commerci5","_reservation$hotels$l2","_reservation$hotels2","_reservation$cars$len2","_reservation$cars2","_reservation$commerci6","_reservation$commerci7","_reservation$hotels$l3","_reservation$hotels3","_reservation$hotels$l4","_reservation$hotels4","_reservation$hotels5","_reservation$cars$len3","_reservation$cars3","_reservation$cars$len4","_reservation$cars4","_reservation$cars5","ReservationReviewReadOnly","ReservationConsultPage","accessForbidden","SvgNoReservation","NoReservationFound","noReservationFound","NoReservationIcon","noReservationMessage","CommentHistoryDrawer","isOpen","reservationServiceCategory__info","taskCommentId","CarComments","_car$task3","commentsDesc","latestComment","reservationServiceCategory__container","reservationServiceCategory__label","gridGap","RentalCarDetails","getAttachments","LuxPoolCarDetails","CompanyCarDetails","PrivateCarDetails","CarpoolingDetails","CarDetails","getCarDetails","IconData","TravelerTicket","PersonOutlined","ConfirmationNumberOutlined","TravelerDetails","_traveler$name","_traveler$status","CommercialDetails","transportTypeLabel","transport","transportNumber","_transport$flightNumb","relationId","commercialItems","reducer","currentTraveler","_commercial","_commercial2","_commercial3","_attachments","TravelersDetails","CVFlightTravelerDetails","hasStatus","rowGap","_traveler$memberName","_computeTravelerStatu","CustomDateTime","componentStyle","FlightRow","CvFlightDetailMobile","_airports$","_airports","originAirport","destinationAirport","originDateTime","destinationDateTime","timeZones","CVFlightDetails","_route$origin","_route$destination","sortedFlightLegs","sortByDepatureTime","flightDuration","hours","padStart","minutes","flightLegs","destinations","CVFlightDetailsContainer","HotelDetails","Travelers","reservationMembersSummary","Person","ServiceCounter","showZero","ReservationActionsButton","view","edit","viewTicket","downloadAll","setRef","hasNoAction","enable","handleMenuItemClick","fun","currentTarget","MoreVert","EditOutlined","VisibilityOutlined","GetApp","SendOutlined","CancelOutlined","ReservationItem","_detail$cvFlights","canEdit","isManageResa","setDetail","reservationTravelers","tripWithin72h","formatDate","isServiceCounterActive","actionsConfig","downloadAllFile","isTicketGenerated","expandButton","CalendarToday","cvFlightCount","FaCubes","commercialCount","hotelCount","Hotel","carCount","DriveEta","divider","handleRemoveReservation","ReservationList","isManageReservations","ResumeButton","onResume","useResumeReservation","InfiniteScroll","dataLength","loader","MyCurrentReservationsTab","MyReservationsHistoryTab","HISTORY","MyReservationsRoutes","MyReservationPage","ReservationConditionsPdf","ManageReservationsPage","ReservationMainPage","MyReservationsPage","AlertActionType","AlertsReducer","FETCH_ALERT","failed","SELECTED_ALERT","selectedAlert","ACTION_STARTED","ACTION_FAILED","ACTION_DONE","AlertContext","AlertsProvider","selectAlert","addAlert","submitAlert","alertPromise","useAlertContext","TripTypeService","fetchTripTypes","AppSettingsTripTypesActionTypes","AppSettingsTripTypesReducer","FETCH_TRIPTYPES_STARTED","FETCH_TRIPTYPES_FAILED","FETCH_TRIPTYPES_DONE","UPDATE_TRIPTYPE_STARTED","UPDATE_TRIPTYPE_DONE","UPDATE_TRIPTYPE_FAILED","AppSettingsTripTypesContext","useAppSettingsTripTypesContext","AppSettingsTripTypesProvider","updateTripType","trip","SvgOk","SvgRejected","AlertForm","_defaultValues$messag","AlertFormSchema","AlertDrawer","OkIcon","RejectedIcon","modifiedAt","modifiedBy","AppSettingsGrid","displayName","AppSettingFormSchema","AppSettingsForm","_setting$displayName","_setting$description","_setting$value","section","AppSettingsDrawer","GeneralTab","AppSettingTripTypeFormSchema","TripTypesForm","_tripType$name","_tripType$description","_tripType$startDate","_tripType$endDate","watchStartDate","watchendDate","TripTypesDrawer","TripTypesGrid","_row$original$startDa","_row$original$endDate","SettingsTripTypesTab","ApplicationSettingsRoutes","ApplicationSettingsPage","SvgDragAndDrop","SvgPreview","PreviewButton","PreviewIcon","ETicketTemplateSectionForm","ETicketTemplateService","createSection","updateSection","deleteSection","sectionId","updateSectionsOrder","sections","preview","ETicketTemplateSectionFormSchema","DefaultETicketTemplateSection","eTicketTemplateSectionId","order","ETicketTemplatePage","setTemplate","selectedSection","setSelectedSection","formSection","showDrawerTemplate","hideDrawerTemplate","isVisibleDrawerTemplate","drawerTemplateTitle","setDrawerTemplateTitle","showDrawerSection","hideDrawerSection","isVisibleDrawerSection","templateSection","setTemplateSection","templateValue","setTemplateValue","previousTemplateValue","setPreviousTemplateValue","isSaveSectionDisabled","setIsSaveSectionDisabled","isSaveTemplateDisabled","setIsSaveTemplateDisabled","fetchETicketTemplate","submitETicketTemplateSection","sectionPromise","openPreview","templateTitle","travelOfficeAddress","ListItemSecondaryAction","itinerary","DragDropContext","onDragEnd","droppableId","Droppable","provided","RootRef","rootRef","innerRef","Draggable","draggableId","providedDraggable","snapshotDraggable","ContainerProps","draggableProps","dragHandleProps","isDragging","draggableStyle","ContainerComponent","itemIcon","DragAndDropIcon","getItemStyle","tags","handleSubmitTemplate","templatePromise","handleConfirmDeleteSection","AirportGeneralFormSchema","cty","ctry","area","AirportGeneralInfo","_form$errors$ctry","_form$errors$timezone","setReadonly","_generalInfo$timezone","isUsTerritory","names","cancelEdit","AirportImmigrationInfoFormSchema","passportEmail","transitEmail","trafficEmail","passportToAndFrom","passportTransit","passportSendingRequirements","passportSendingRequirements2","immigrationEmail","specialFees","amount","currency","otherwise","immigrationComments","AirportImmigrationInfo","checkBoxLabel","lightGrey","AirportGeneralCommentsFormSchema","AirportGeneralComments","AddAirportForm","AirportDrawer","AirportFormSchema","_data$timezone","AirportsPage","selectedAirport","setSelectedAirport","onConfirmDelete","AirportDetailsPage","airportDetails","setAirportDetails","fetchAirportDetails","goBack","REACT_APP_API_BASE_URL","HelpPageForm","HelpPageFormSchema","DefaultHelpPage","ListHelpPage","_state$selectedHelpPa","_state$selectedHelpPa2","_state$selectedHelpPa3","ControlledAutoCompleteFetcher","TrainingCatalogueForm","_option$trainingName","_option$trainingName2","copyEmail","TrainingCatalogueFormSchema","DefaultTrainingCourse","TrainingCatalogueTab","_state$selectedTraini","_state$selectedTraini2","_state$selectedTraini3","commonColumns","handleEditTraining","handleDeactivateTraining","TrainingCatalogueRoutes","TrainingCataloguePage","EmailTemplatesGrid","templateName","EmailTemplateFormSchema","cc","bcc","EmailTemplateForm","_template$from","_template$to","_template$cc","_template$bcc","EmailTemplatesDrawer","EmailTemplatesPage","WCMPageForm","_defaultValue$descrip","WCMPageFormSchema","DefaultWCMPage","WCMPage","_state$selectedWCMPag","_state$selectedWCMPag2","_state$selectedWCMPag3","ApisSettingsSchengenCountriesPageContext","useApisSettingsSchengenCountriesPageContext","ApisSettingsSchengenCountriesPageProvider","schengenCountries","setSchengenCountries","setLoaded","creating","setCreating","selectedCountry","setSelectedCountry","setDrawerOpen","confirmationOpen","setConfirmationOpen","countryToDelete","setCountryToDelete","fetchSchengenCountries","openAddFormDrawer","selectCountry","confirmDeleteSchengenCountry","IApisSchengenCountriesFormSchema","ApisSettingsSchengenCountryForm","ApisSettingsSchengenCountriesDrawer","ApisSettingsSchengenCountriesGrid","ApisSchengenCountriesTab","ApisSettingsCountryPropertiesPageContext","useApisSettingsCountryPropertiesPageContext","ApisSettingsCountryPropertiesPageProvider","countryProperties","setCountryProperties","selectedCountryProperty","setSelectedCountryProperty","countryPropertyToDelete","setCountryPropertyToDelete","fetchCountryProperties","apisCountryPropertiesId","confirmDeleteCountryProperty","selectCountryProperty","ApisSettingsTemplatesPageContext","useApisSettingsTemplatesPageContext","ApisSettingsTemplatesPageProvider","setTemplates","setSelectedTemplate","templateToDelete","setTemplateToDelete","apisCountryTemplatesId","confirmDeleteTemplate","ApisSettingsTemplatesGrid","subType","fileType","ApisTemplateTypes","ApisTemplateModes","ApisTemplateSubTypes","ApisTemplateFileTypes","TemplateKeywords","ApisSettingsCountryPropertiesForm","_selectedTemplate$sub","getTemplateKeywords","MCL","Regular","FCM","CLS","ZPX","Internal","Overflying","In","Out","Txt","Xlsx","nbrLinesTemplate","nbrLinesTemplateRepeatable","onDoubleClick","keyword","oldValue","addTemplateKeyword","userSelect","templateRepeatable","addTemplateRepeatableKeyword","IApisTemplatesFormSchema","oneOf","notRequired","ApisSettingsTemplatesDrawer","_data$code","_data$mode","_data$fileType","_data$nbrLinesTemplat","_data$template","_data$nbrLinesTemplat2","_data$templateRepeata","_data$type","_data$subType","req","templateFile","templateRepeatableFile","encType","ApisSettingsTemplatesForm","ApisTemplatesTab","ApisSettingsCountryPropertiesGrid","receivers","startSequence","crType","unaHeader","bgm","bgmCloseDoor","bgmInternal","bgmOverflying","crTypeSimple","transTimeInbound","transTimeOutbound","transTimeOther","transDoorClose","transTimeOverflying","excludeSchengen","IApisCountryPropertiesFormSchema","excludeSchengenCountries","ApisSettingsCountryPropertiesDrawer","ApisPropertiesTab","ApisConfigurationRoutes","ApisPage","BlockFlightReasonFormSchema","DefaultBlockFlightReason","canDelete","BlockFlightSettingPage","_state$selectedReason","_state$selectedReason2","_state$selectedReason3","TravelEmergencyContactPage","ConnectAsFormSchema","ConnectAsPage","searchWatch","selectedMemberId","setSelectedMemberId","handleSelected","_formData$search","clickableRow","FilePreview","showImage","SingleControlledFileUpload","initialFile","ClipboardEvent","clipboardData","DataTransfer","len","buildFileList","errorMessages","errorRender","PassportForm","_errors$birthCountryC","_errors$nationalityCo","_document$blobUrl","watchIssueDate","passportNumber","invalidDateMessage","maxDateMessage","field","expiryDate","uri","blobUrl","onlyLetters","PassportCreateSchema","PassportUpdateSchema","VisaSchema","visaType","PassportCreationDrawer","modal","_document$birthCity","_document$birthDate","_document$birthState$","_document$birthState","_document$expiryDate","_document$documentNam","_document$documentNam2","_document$passportNum","_document$passportNum2","_document$firstName$t","_document$firstName","_document$gender$trim","_document$gender","_document$issueDate","_document$lastName$tr","_document$lastName","_document$middleName$","_document$middleName","_document$birthCountr","_document$birthCountr2","_document$birthCountr3","_document$nationality","_document$nationality2","_document$nationality3","documentFile","FileList","submitDoc","ContactInfoSchema","etravelMemberAD","etravelMemberCI","etravelMemberPH","etravelMemberPC","etravelMemberST","etravelMemberRC","GeneralInfoSchema","etravelMemberFN","etravelMemberLN","etravelMemberMN","etravelMemberBD","etravelMemberG","etravelMemberNC","MemberInformation","_countries$find3","_generalForm$errors$e","_countries$find4","_countries$find5","_countries$find6","_generalForm$errors$e2","_contactForm$errors$e","generalInfoEditable","contactInfoEditable","isCard","isVisibleCheckBox","selectedMemberForDeletion","setSelectedMemberForDeletion","familyMembers","isUpdateContact","isUpdateContactFamilyMembers","typeMember","setChecked","contactForm","generalForm","SubmittedGeneralInfo","_SubmittedGeneralInfo","_SubmittedGeneralInfo2","_SubmittedGeneralInfo3","_SubmittedGeneralInfo4","maidenName","SubmittedContactInfo","_SubmittedContactInfo","_SubmittedContactInfo2","_SubmittedContactInfo5","_SubmittedContactInfo6","_SubmittedContactInfo3","_SubmittedContactInfo4","EditDocumentButton","justify","handleCheckBoxChange","numberOfUnlinkedElements","PassportMenu","onMenuClick","setAnchorEl","handleItemClick","canAddVisa","canSetDefault","getCountryOptionByCode","PassportUpdateDrawer","mapDocumentToFormValues","_doc$fileName","nationalityOption","birthCountryOption","documentForm","_documentForm$birthCi","_documentForm$birthCi2","_documentForm$birthDa","_documentForm$birthSt","_documentForm$birthSt2","_documentForm$expiryD","_documentForm$documen","_documentForm$passpor","_documentForm$passpor2","_documentForm$firstNa","_documentForm$firstNa2","_documentForm$gender","_documentForm$issueDa","_documentForm$lastNam","_documentForm$lastNam2","_documentForm$middleN","_documentForm$middleN2","_documentForm$birthCo","_documentForm$birthCo2","_documentForm$nationa","_documentForm$nationa2","parentId","VisaForm","getDocument","VisaCreationDrawer","_document$documentNum","_document$documentNum2","_document$visaType$tr","_document$visaType","VisaMenu","visaStatus","VisaUpdateDrawer","_document$file","_formData$documentNum","_formData$nationality","VisaListDelete","visa","rowsDeleted","VisaAvatar","Avatar","cursor","AttachFile","VisaList","visas","selectedAction","setSelectedAction","handleOnSubmit","ListItemAvatar","handleAction","imageButton","PassportCard","_document$visas$lengt","_document$visas","_document$isDefault","_document$visas2","documentApprovalPage","showUpdateDrawer","hideUpdateDrawer","updateDrawerVisible","showCreateVisaDrawer","hideCreateVisaDrawer","createVisaDrawerVisible","CardActions","disableSpacing","ExpandMore","numberOfDeleteRows","GuestInformation","createModal","EmployeeInformation","_employeeInfo$employe","employeeInfo","mailing2","subGroup","employer","endedDate","OrganisationInformation","isSaveDisabled","setIsSaveDisabled","planner1","planner2","planner3","_defaultValue$planner","_defaultValue$planner2","_defaultValue$planner3","planner1Value","planner2Value","planner3Value","_organisation$planner","_organisation$planner2","_organisation$planner3","planner","EmployeeInfoTab","_planners$find$fullNa","_planners$find","_planners$find$fullNa2","_planners$find2","_planners$find$fullNa3","_planners$find3","SvgSeeMore","FamilyMembersTab","updatedMember","_row$original","_row$original$lastNam","SeeMoreIcon","GuestSearchSchema","etravelGuestSearchFN","etravelGuestSearchLN","etravelGuestSearchDB","GuestCreationSchema","etravelGuestFN","etravelGuestLN","etravelGuestMN","etravelGuestBD","etravelGuestG","etravelGuestNC","etravelGuestAD","etravelGuestCI","etravelGuestPO","etravelGuestRC","etravelGuestPH","GuestAddDrawer","_watchSearchForm$etra","_watchSearchForm$etra2","_watchSearchForm$etra3","foundGuests","setFoundGuests","selectedGuest","setSelectedGuest","isCreationForm","setIsCreationForm","isCreationSubmitDisabled","setIsCreationSubmitDisabled","showAddDrawer","hideAddDrawer","isVisibleAddDrawer","searchForm","etravelGuestST","resetDrawer","watchSearchForm","_payload$etravelGuest","_payload$etravelGuest2","_payload$etravelGuest3","_payload$etravelGuest4","guestFirstName","guestLastName","guestDateOfBirth","guests","fg","numberOfLinked","GuestTab","selectedGuestForDeletion","setSelectedGuestForDeletion","_row$original2","_row$original2$member","_row$original2$member2","UnassignedVisaList","passports","onAction","selectedVisa","setSelectedVisa","AlertTitle","openModal","handleSelectPassport","autoFocus","handleAddPassport","Add","PassportList","ImmigrationDataTab","_member$documents$fil","_member$documents","_member$documents$fil2","_member$documents2","_selectedPassport$mem","_selectedPassport$doc","addVisa","_e$documentType","_e$documentType2","selectedPassport","setSelectedPassport","handleUnassignedAction","PersonalInfoTab","ConnectedAsInformationRoutes","ConnectedAsInformationPage","setTabs","setGuest","newTabs","ConnectedAsPage","handleRedirectTo","MyInformationRoutes","MyInformationPage","SvgDeleteBinDisabled","SvgPlusPurple","EmployeeSearchSchema","GuestListPage","_selectedGuest$guestL","_selectedGuest$guestL2","_selectedEmployee$emp","_selectedGuest$guestL3","_selectedEmployee$emp2","_selectedGuest$guestL4","allGuests","setAllGuests","showLinkDialog","hideLinkDialog","isVisibleLinkDialog","showDeactivationReason","hideDeactivationReason","isVisibleDeactivationReason","lastsearchText","setLastSearchText","setSelectedEmployee","deactivationReason","setDeactivationReason","foundEmployees","setFoundEmployees","selectedEmployeeId","setSelectedEmployeeId","isAssociationSubmitDisabled","setIsAssociationSubmitDisabled","_r$guestLastName","guestName","creationDate","createdDate","_e$employeeLastName","employeeFirstName","employeeLastName","employeeIsActive","employeeDeactivationReason","refresh","afterHandleLink","handleLink","_employee$employeeId","CheckedIcon","AlignIconButton","NotCheckedIcon","handleLinkUpdateClick","isGuestDeletable","DeleteIconDisabled","handleCloseConfirmationDialog","MemberAccessForm","_errors$roleName$mess","_errors$roleName","_errors$roleName2","rootMember","accessComments","noMarginBottom","MemberAccessFormSchema","MemberDetailsAccessTab","_selectedMember$membe","_selectedMember$user$","_selectedMember$membe2","memberAccessForm","_memberAccessForm$acc","MemberDetailsEmployeeInfoTab","MemberAccess","_form$getValues","_member$memberId","_member$isActive","_member$isBlocked","MemberDetailsFamilyMembersTab","relative","MemberDetailsGuestsTab","MemberDetailsPersonnalInfoTab","RoleActionType","RoleReducer","SELECT_ROLE","selectedRole","RoleContext","RoleProvider","submitRole","useRoleContext","RoleForm","isCreate","roleDescription","RoleFormSchemaAdd","RoleFormSchemaModify","DefaultRole","applicationName","RoleConfiguration","_roleContext$state$ro","setPermissions","rolePermissions","setRolePermissions","setUserPermissions","isUserPermissionConfiguration","setRefresh","setSelectedRole","setRoleName","debouncedSelectedRole","rolesInfo","setRolesInfo","isSelectedModify","setIsSelectedModify","formRole","defaultRoleValues","fetchPermissionsOfUser","fetchPermissionsOfRole","usernameParams","inputValue","buttonRoleEditRemoveContained","permissionForm","_permissionForm$permi","selectedPermissions","permissionName","permissionsOfUser","_user$userId","_user$userId2","permissionsOfRole","parentPermission","restrictedToRole","isCheckedForRole","isCheckedForUser","perm","MemberDetailsRoleTab","_state$selectedMember","_state$selectedMember2","MemberDetailRoutes","MemberDetailsPersonalInfoTab","MemberDetailsPage","MemberDetailsRoutes","MemberListPage","familyMembersName","familyMembersRelation","isMember","MemberMainPage","RoleConfigurationPage","VisaCard","showUpdateVisaDrawer","hideUpdateVisaDrawer","updateVisaDrawerVisible","ImmigrationDocumentApprovalDetail","attachmentMime","setAttachmentMime","loadingAttachment","setLoadingAttachment","force","rejectionReasons","ImmigrationDocumentApprovalPage","setDocuments","loadDocuments","activeId","setActive","_row$original$firstNa","showRejectDialog","setShowRejectDialog","rejectionCode","setRejectionCode","rejectionReason","setRejectionReason","rr","AppRoutes","SessionStorageKey","metaFile","versionCacheKey","foundNewVersion","version","caches","cacheName","reload","setCachedVersion","checkVersion","fetch","json","getMetaVersion","metaVersion","cachedVersion","version1","version2","parts1","parts2","num1","num2","isVersionGreaterThan","App","sessionStorage","useAxiosLogger","properties","excludeProperties","stringifyValue","logRequest","logResponse","logError","reqInterceptor","resInterceptor","eject","useCateringAxiosLogger","useMsalAuthentication","InteractionType","prompt","AuthenticatedTemplate","Router","reportWebVitals","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","msalInstance","accounts","setActiveAccount","addEventCallback","eventType","EventType","LOGIN_SUCCESS","MsalProvider","getElementById","navigator","serviceWorker","ready","registration"],"mappings":";yGACAA,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,aAAe,+BAA+B,IAAM,sBAAsB,WAAa,6BAA6B,aAAe,+BAA+B,OAAS,yBAAyB,WAAa,6B,sBCAjvBD,EAAOC,QAAU,CAAC,uBAAyB,sCAAsC,OAAS,sBAAsB,WAAa,0BAA0B,4BAA8B,2C,sBCArLD,EAAOC,QAAU,CAAC,UAAY,yBAAyB,KAAO,oBAAoB,OAAS,sBAAsB,MAAQ,qBAAqB,YAAc,2B,sBCA5JD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,WAAa,4BAA4B,SAAW,0BAA0B,eAAiB,gCAAgC,MAAQ,uBAAuB,cAAgB,+BAA+B,UAAY,2BAA2B,WAAa,4BAA4B,MAAQ,uB,sBCAr0BD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,SAAW,+BAA+B,KAAO,2BAA2B,UAAY,gCAAgC,WAAa,iCAAiC,iBAAmB,uCAAuC,kBAAoB,wCAAwC,eAAiB,qC,sBCA70BD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,YAAc,4BAA4B,SAAW,yBAAyB,cAAgB,8BAA8B,cAAgB,8B,sBCA5qBD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,KAAO,8BAA8B,SAAW,kCAAkC,qBAAuB,8CAA8C,gBAAkB,yCAAyC,QAAU,iCAAiC,YAAc,qCAAqC,QAAU,iCAAiC,OAAS,gCAAgC,kBAAoB,2CAA2C,kBAAoB,2CAA2C,mBAAqB,4CAA4C,qBAAuB,8CAA8C,aAAe,sCAAsC,kBAAoB,2C,sBCAjvCD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,MAAQ,wBAAwB,QAAU,0BAA0B,QAAU,0BAA0B,KAAO,uBAAuB,QAAU,0B,sBCAhrBD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,KAAO,qBAAqB,gBAAkB,gCAAgC,oBAAsB,oCAAoC,SAAW,yBAAyB,UAAY,0BAA0B,cAAgB,8BAA8B,kBAAoB,kCAAkC,sBAAwB,sC,sBCA92BD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,QAAU,6BAA6B,MAAQ,2BAA2B,OAAS,4BAA4B,eAAiB,oCAAoC,WAAa,gCAAgC,cAAgB,mC,sBCAjwBD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,OAAS,qCAAqC,SAAW,uC,sBCAzlBD,EAAOC,QAAU,CAAC,cAAgB,8BAA8B,YAAc,4B,sBCA9ED,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,GAAK,8BAA8B,aAAe,wCAAwC,oBAAsB,+CAA+C,kBAAoB,6C,sBCAntBD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,kBAAoB,gDAAgD,eAAiB,6CAA6C,YAAc,0C,qBCAhrBD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,MAAQ,iCAAiC,UAAY,qCAAqC,aAAe,wCAAwC,OAAS,kCAAkC,KAAO,gCAAgC,aAAe,wCAAwC,eAAiB,0CAA0C,gBAAkB,2CAA2C,mBAAqB,8C,sBCAv8BD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,yBAA2B,qDAAqD,UAAY,sC,sBCA5nBD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,QAAU,yBAAyB,UAAY,2BAA2B,WAAa,4B,sBCAvnBD,EAAOC,QAAU,CAAC,IAAM,kCAAkC,YAAc,0CAA0C,wBAA0B,sDAAsD,iBAAmB,+C,sBCArND,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,cAAgB,4CAA4C,eAAiB,6CAA6C,aAAe,2CAA2C,UAAY,wC,sBCAhuBD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,QAAU,2BAA2B,eAAiB,kCAAkC,aAAe,gCAAgC,cAAgB,iC,sBCAvrBD,EAAOC,QAAU,CAAC,MAAQ,mCAAmC,SAAW,sCAAsC,cAAgB,2C,sBCA9HD,EAAOC,QAAU,CAAC,gBAAkB,uC,sBCApCD,EAAOC,QAAU,CAAC,UAAY,oCAAoC,eAAiB,yC,oBCAnFD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,OAAS,uBAAuB,KAAO,qBAAqB,MAAQ,sBAAsB,MAAQ,sBAAsB,oBAAsB,oCAAoC,kBAAoB,kCAAkC,cAAgB,8BAA8B,MAAQ,sBAAsB,KAAO,qBAAqB,YAAc,4BAA4B,eAAiB,+BAA+B,uBAAyB,uCAAuC,8BAAgC,8CAA8C,sBAAwB,sCAAsC,UAAY,0BAA0B,KAAO,qBAAqB,QAAU,wBAAwB,eAAiB,+BAA+B,SAAW,yBAAyB,OAAS,uBAAuB,UAAY,0BAA0B,gBAAkB,gCAAgC,uBAAyB,uCAAuC,wBAA0B,wCAAwC,aAAe,6BAA6B,sBAAwB,sCAAsC,aAAe,6BAA6B,kBAAoB,kCAAkC,WAAa,2BAA2B,8BAAgC,8CAA8C,oCAAsC,oDAAoD,mBAAqB,mCAAmC,YAAc,4BAA4B,kBAAoB,kCAAkC,0BAA4B,0CAA0C,OAAS,uBAAuB,YAAc,4BAA4B,2BAA6B,2CAA2C,mCAAqC,mDAAmD,yCAA2C,yDAAyD,sCAAwC,sDAAsD,kCAAoC,kDAAkD,iCAAmC,iDAAiD,gCAAkC,gDAAgD,+BAAiC,+CAA+C,sBAAwB,sCAAsC,aAAe,6BAA6B,uBAAyB,uCAAuC,cAAgB,8BAA8B,mBAAqB,mCAAmC,mBAAqB,mCAAmC,SAAW,yBAAyB,UAAY,0BAA0B,SAAW,yBAAyB,cAAgB,8BAA8B,QAAU,wBAAwB,mBAAqB,mCAAmC,iBAAmB,iCAAiC,aAAe,6BAA6B,IAAM,oBAAoB,cAAgB,8BAA8B,eAAiB,+BAA+B,kBAAoB,kCAAkC,cAAgB,8BAA8B,eAAiB,+B,qBCAr0HD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,KAAO,qBAAqB,UAAY,0BAA0B,aAAe,6BAA6B,cAAgB,8BAA8B,UAAY,0BAA0B,SAAW,yBAAyB,iBAAmB,iCAAiC,cAAgB,8BAA8B,aAAe,6BAA6B,QAAU,wBAAwB,QAAU,wBAAwB,kBAAoB,kCAAkC,iBAAmB,iC,sBCAjiCD,EAAOC,QAAU,CAAC,sBAAwB,4C,sBCA1CD,EAAOC,QAAU,CAAC,QAAU,6BAA6B,MAAQ,2BAA2B,SAAW,8B,sBCAvGD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,mBAAqB,oDAAoD,sBAAwB,uDAAuD,iBAAmB,kD,sBCA3sBD,EAAOC,QAAU,CAAC,SAAW,4BAA4B,aAAe,gC,sBCAxED,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,OAAS,qBAAqB,MAAQ,oB,sBCAtkBD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,YAAc,qC,sBCA9iBD,EAAOC,QAAU,CAAC,aAAe,mCAAmC,IAAM,0B,sBCA1ED,EAAOC,QAAU,CAAC,eAAiB,+CAA+C,WAAa,2C,sBCA/FD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,UAAY,mCAAmC,aAAe,sCAAsC,oBAAsB,6CAA6C,WAAa,oC,sBCAptBD,EAAOC,QAAU,CAAC,mBAAqB,8C,qBCAvCD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,OAAS,uBAAuB,WAAa,2BAA2B,QAAU,wBAAwB,SAAW,yBAAyB,iBAAmB,iCAAiC,SAAW,yBAAyB,iBAAmB,iCAAiC,OAAS,uBAAuB,WAAa,2BAA2B,KAAO,qBAAqB,iBAAmB,iCAAiC,aAAe,6BAA6B,iBAAmB,iCAAiC,SAAW,yBAAyB,eAAiB,+BAA+B,aAAe,6BAA6B,UAAY,0BAA0B,UAAY,0BAA0B,MAAQ,sBAAsB,MAAQ,sBAAsB,OAAS,uB,qBCAn0CD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,qBAAuB,4CAA4C,0BAA4B,iDAAiD,kBAAoB,yCAAyC,0BAA4B,iDAAiD,qBAAuB,4CAA4C,mBAAqB,0C,iECAl5BD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,kBAAoB,wCAAwC,KAAO,2BAA2B,UAAY,gCAAgC,SAAW,+BAA+B,UAAY,gCAAgC,aAAe,mCAAmC,qBAAuB,2CAA2C,oBAAsB,0CAA0C,WAAa,iCAAiC,mBAAqB,yCAAyC,kBAAoB,wCAAwC,0BAA4B,gDAAgD,iBAAmB,uCAAuC,sBAAwB,4CAA4C,aAAe,mCAAmC,YAAc,kC,sBCAt2CD,EAAOC,QAAU,CAAC,UAAY,iC,sBCA9BD,EAAOC,QAAU,CAAC,YAAc,iC,oBCDhC,MAAMC,EAAeC,QAAoBC,IAAVD,EAQzBE,EAAWF,GAAUG,MAAMD,QAAQF,GAInCI,EAAUJ,GACdA,GACsB,kBAAfA,EAAMK,MACS,kBAAfL,EAAMM,MACU,oBAAhBN,EAAMO,MAQTC,EAAYA,CAACC,EAAKC,EAAKC,EAAIC,MAC/BF,EAAMA,GAAO,CAAC,GAEVG,SAAUd,EAAYW,EAAIG,UAAmBH,EAAIG,QAErDH,EAAII,mBAAoBf,EAAYW,EAAII,oBAEpCJ,EAAII,kBAERJ,EAAIK,oBAAqBhB,EAAYW,EAAIK,qBAErCL,EAAIK,mBAERL,EAAIM,kBAAmBjB,EAAYW,EAAIM,mBAEnCN,EAAIM,iBAERL,EAAKA,GAAM,IAAIM,SAEXlB,EAAYU,KAzCkB,OA2ChBA,EACXC,EAAII,mBACPH,EAAGO,OAAON,EAAK,IA3CFZ,IAA2B,mBAAVA,EA6CvBmB,CAAUV,GACfC,EAAIK,mBACNJ,EAAGO,OAAON,EAAKH,EAAM,EAAI,GAEzBE,EAAGO,OAAON,EAAKH,GAERP,EAAQO,GACbA,EAAIW,OACNX,EAAIY,SAAQ,CAACrB,EAAOsB,KAClB,MAAMC,EAAMX,EAAM,KAAOF,EAAIG,QAAUS,EAAQ,IAAM,IAErDd,EAAUR,EAAOU,EAAKC,EAAIY,EAAI,IAEvBb,EAAIM,kBACbL,EAAGO,OAAON,EAAM,KAAM,IArDZZ,IAAUA,aAAiBwB,KAuD9BC,CAAOhB,GAChBE,EAAGO,OAAON,EAAKH,EAAIiB,gBA5DL1B,IAAUA,IAAU2B,OAAO3B,GA6DhC4B,CAASnB,IAjDNT,IACdI,EAAOJ,IACe,kBAAfA,EAAM6B,OACsB,kBAA3B7B,EAAM8B,kBACkB,kBAAvB9B,EAAM+B,cA6CcC,CAAOvB,IAASL,EAAOK,GAmBlDE,EAAGO,OAAON,EAAKH,GAlBfkB,OAAOM,KAAKxB,GAAKY,SAASa,IACxB,MAAMlC,EAAQS,EAAIyB,GAElB,GAAIhC,EAAQF,GACV,KAAOkC,EAAKd,OAAS,GAAKc,EAAKC,YAAY,QAAUD,EAAKd,OAAS,GACjEc,EAAOA,EAAKE,UAAU,EAAGF,EAAKd,OAAS,GAI3C,MAAMG,EAAMX,EACRF,EAAI2B,YACFzB,EAAM,IAAMsB,EACZtB,EAAM,IAAMsB,EAAO,IACrBA,EAEJ1B,EAAUR,EAAOU,EAAKC,EAAIY,EAAI,KAvCzBZ,GAgDXd,EAAOC,QAAU,CACfU,Y,sBC5FFX,EAAOC,QAAU,CAAC,YAAc,yC,sBCAhCD,EAAOC,QAAU,CAAC,SAAW,2B,sBCA7BD,EAAOC,QAAU,CAAC,IAAM,6B,sBCAxBD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,eAAiB,2C,sBCAjjBD,EAAOC,QAAU,CAAC,aAAe,mC,sBCAjCD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,KAAO,8B,sBCAviBD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,KAAO,0B,sBCAviBD,EAAOC,QAAU,CAAC,WAAa,iC,sBCA/BD,EAAOC,QAAU,CAAC,sBAAwB,+C,sBCA1CD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,WAAa,oC,sBCA7iBD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,WAAa,oC,sBCA7iBD,EAAOC,QAAU,CAAC,qBAAuB,sDAAsD,oBAAoB,mD,sBCAnHD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,KAAO,uBAAuB,UAAY,4BAA4B,cAAc,8BAA8B,aAAe,+B,sBCAjqBD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,UAAY,kC,sBCA5iBD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,eAAiB,uD,sBCAjjBD,EAAOC,QAAU,CAAC,WAAa,+B,sBCA/BD,EAAOC,QAAU,CAAC,cAAgB,4CAA4C,aAAe,2C,sBCA7FD,EAAOC,QAAU,CAAC,WAAa,iC,qBCA/BD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,eAAiB,yCAAyC,SAAW,mCAAmC,kBAAoB,4CAA4C,WAAa,qCAAqC,WAAa,qCAAqC,eAAiB,yCAAyC,mBAAqB,6CAA6C,kBAAoB,4CAA4C,oBAAsB,8C,sBCA9/BD,EAAOC,QAAU,CAAC,WAAa,gC,sBCA/BD,EAAOC,QAAU,CAAC,WAAa,gC,qBCA/BD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,aAAe,qCAAqC,mBAAqB,2CAA2C,wBAA0B,gDAAgD,uBAAyB,+CAA+C,YAAc,oCAAoC,YAAc,oCAAoC,UAAY,kCAAkC,gBAAkB,wCAAwC,aAAe,qCAAqC,oBAAsB,4CAA4C,WAAa,mCAAmC,oBAAsB,4CAA4C,eAAiB,uCAAuC,eAAiB,uCAAuC,gBAAkB,wC,qBCA51CD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,YAAc,8BAA8B,YAAc,8BAA8B,OAAS,yBAAyB,cAAgB,gCAAgC,WAAa,6BAA6B,KAAO,uBAAuB,gBAAkB,kCAAkC,kBAAoB,oCAAoC,YAAc,8BAA8B,KAAO,uBAAuB,sBAAwB,wC,qBCAh+BD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,Q,2CCAxhBD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,yBAA2B,6CAA6C,UAAY,8BAA8B,UAAY,8BAA8B,aAAe,iCAAiC,OAAS,2BAA2B,SAAW,6BAA6B,SAAW,6BAA6B,MAAQ,0BAA0B,cAAgB,kCAAkC,WAAa,+B,8GCAj8BD,EAAOC,QAAU,CAAC,mBAAqB,8DAA8D,cAAgB,yDAAyD,OAAS,kDAAkD,6BAA+B,wEAAwE,YAAc,uDAAuD,kBAAoB,6DAA6D,gBAAkB,2DAA2D,UAAY,qD,yICExjB,MAYDwC,EAAuBC,wBAAc,CAAC,GAmC/BC,EAA0BA,IAAMC,qBAAWH,GAEzCI,MAnCyBC,IAAmB,IAAlB,SAAEC,GAAUD,EAEnD,MAAME,EAAiB,GACvB,IAAIC,EACJ,MAAMC,EAASC,uBAAaC,IAC1BJ,EAAKK,KAAKD,EAAQ,GAEjB,IAEGE,EAAYH,uBAAY,KAC5BH,EAAKO,OAAO,EAAGP,EAAKzB,OAAO,GAC1B,IAEGiC,EAAUL,uBAAY,IAAMH,GAAM,IAElCS,EAAcN,uBAAaO,GAAmBT,EAAYS,GAAQ,IAClEC,EAAcR,uBAAY,IAAMF,GAAW,IAEjD,OACEW,cAACnB,EAAqBoB,SAAQ,CAC5B1D,MAAO,CACL+C,SACAI,YACAE,UACAC,cACAE,eACAZ,SAEDA,GAC6B,E,2BC9C7B,MAAMe,EAAa,CACxBC,KAAM,CACJC,SAAS,GAADC,OAAKC,kCACbC,UAAU,qCAADF,OAAuCC,kCAChDE,YAAaC,OAAOC,SAASC,QAE/BC,MAAO,CACLC,cAAe,eACfC,wBAAwB,ICLrB,MAAMC,EAMHC,cAAe,KAJfC,sBAAwB,IAAI,KAE7BC,aAAO,EAGZC,KAAKD,QAAU,IAAIE,IAAwBlB,EAC7C,CAEOmB,yBACL,MAAMC,EAAUH,KAAKI,aACrB,GAAID,EAAS,CACX,MAAME,EAAgBF,EAAQG,cAC9B,GAAID,EACF,OAAOA,EAAcE,KAEzB,CACA,MAAO,EACT,CAEOH,aACL,QAAqB/E,IAAjB2E,KAAKD,QAEP,YADAS,QAAQC,MAAM,iCAIhB,MAAMC,EAAkBV,KAAKD,QAAQY,iBACrC,OAAwB,OAApBD,GACFF,QAAQC,MAAM,wBACP,MAGLC,EAAgBlE,QAAU,EACrBkE,EAAgB,GAGlB,IACT,CAEA,oBAAaE,CAAeC,GAC1B,QAAqBxF,IAAjB2E,KAAKD,QAEP,OADAS,QAAQC,MAAM,iCACPK,QAAQC,SAGjB,MAAMZ,EAAUH,KAAKI,aAErB,IAAKD,EAEH,aADMH,KAAKgB,SACJF,QAAQC,SAGjB,MAAME,EAAyB,CAC7Bd,UACAU,UAGF,OAAOb,KAAKD,QAAQmB,mBAAmBD,EACzC,CAEOE,cAAuB,IAADC,EAAAC,EAC3B,OAAkC,QAAlCD,EAAwB,QAAxBC,EAAOrB,KAAKI,oBAAY,IAAAiB,OAAA,EAAjBA,EAAmBC,gBAAQ,IAAAF,IAAI,EACxC,CAEA,kBAAcG,GAMZ,OALKvB,KAAKwB,gBACRhB,QAAQiB,IAAI,iCACZzB,KAAKwB,cAAgB,IAAI5B,GAGpBI,KAAKwB,aACd,CAEOR,SACL,OAAOhB,KAAKD,QAAQ2B,gBAAgBC,OAAOlB,IACzCD,QAAQC,MAAMA,EAAM,GAExB,CAEOmB,UACL,OAAO5B,KAAKD,QACT8B,eAAe,CAAEC,sBAAuB9B,KAAKF,wBAC7C6B,OAAOlB,IACND,QAAQC,MAAMA,EAAM,GAE1B,EAtFWb,EACI4B,mBAAa,ECkIfO,I,EAAAA,EAtIG,CAChBC,QAAS,CACPC,GAAI,KACJC,OAAQ,SACRC,KAAM,OACNC,WAAY,cACZC,YAAa,eACbC,SAAU,WACVC,QAAS,WACTC,IAAK,MACLC,GAAI,KACJC,OAAQ,SACRC,SAAU,WACVC,OAAQ,SACRC,OAAQ,UAEVC,OAAQ,CACNC,cAAe,iBACfC,kBAAmB,qBACnBC,eAAgB,+BAElBC,QAAS,CACPC,mBAAoB,yCACpBC,qBAAsB,2CACtBC,YAAa,mBAEfC,SAAU,CACRC,QAAS,CACPC,UAAW,0BACXC,YAAa,4BACbC,cAAe,8BACfC,gBAAiB,gCACjBC,aAAc,6BACdC,aAAc,8BAEhBpD,MAAO,CACLqD,aAAc,wCACdC,WAAY,sCACZC,aAAc,wCACdC,eAAgB,0CAChBC,oBAAqB,oDACrBC,eACE,kEAGNC,WAAY,CACVC,SAAU,0BACVC,cAAe,gCACfC,IAAK,sDACLC,IAAK,0DACLhI,OAAQ,qDACRiI,QAAS,gDACTC,eAAgB,6BAChBC,YAAa,6BACbC,QAAS,4CACTC,QAAS,0CACTC,iBAAkB,0DAClBC,aAAc,8BACdC,cAAe,kDACfC,WAAY,gEACZC,mBACE,0EACFC,oBAAqB,gBACrBC,iBAAkB,WAClBC,OAAQ,WACRC,WAAY,+BACZC,WAAY,2CACZC,WAAY,yCACZC,YACE,kEACFC,aAAc,8CACdC,oBAAqB,iDACrBC,cACE,uEACFC,iBACE,4EAEJtF,MAAO,CACLuF,MAAO,QACPC,MAAO,QACPC,uBAAwB,2BACxBC,mBAAoB,uBACpBC,oBAAqB,uBACrBC,gBAAiB,mBACjBC,kBAAmB,qBACnBC,gBAAiB,mBACjBC,QAAS,UACTC,SAAU,YAEZC,YAAY,CACVC,KAAM,cAERC,YAAa,CACXC,OAAQ,SACRC,QAAS,UACTC,QAAS,UACTC,KAAM,QAERC,SAAU,CACRC,aAAc,gBACdC,cAAe,iBACfC,sBAAuB,wBACvBC,yBAA0B,4BAC1BC,oBAAqB,sBACrBC,sCACE,yCACFC,sBAAuB,gCACvBC,WAAY,kBACZC,WAAY,eAEdC,kBAAmB,CACjBF,WAAY,eACZG,QAAS,WAEXC,SAAU,CACRC,MAAO,CAAC,SAAU,SAAU,WAE9BC,OAAQ,CACNC,QAAS,WAEXC,SAAU,CACRC,YAAa,gCACbC,uBAAwB,oDAE1BC,IAAK,CACHC,cACE,2EACFC,0BAA2B,mCAE7BC,mBAAoB,CAClBC,KAAM,8JCzGV,MAAMC,EAAWC,IAAMC,OATP,CACdC,QAASvJ,8BASXqJ,IAAMG,SAASC,QAAQC,OAAO,+BAAiCvJ,OAAOC,SAASuJ,KAChEP,QAEf,MAAM1H,EAAmBkI,KAAKC,MAA0C,QAArCC,EAAC9J,gCAAoC8J,EAAI,IAErE,MAAMC,UAAsBC,MAGjCtJ,YAAYxB,EAAiBwJ,GAC3BuB,MAAM/K,GAAS,KAHjBwJ,YAAM,EAIJ7H,KAAK6H,OAASA,CAChB,EAGFU,EAASc,aAAapI,QAAQqI,KAAKC,GACjC3J,EAAsB2B,cACnBX,eAAeC,GACf2I,MAAMC,GACLC,EAAaH,EAAQE,KAEtB9H,OAAOgI,IACNnJ,QAAQiB,IAAIkI,GAEgB/J,EAAsB2B,cAC9BP,QAAQ,IAE7BW,OAAOgI,IAAmB,IAADC,EACxB,MAAMC,EAAsBjK,EAAsB2B,cAC5CuI,EAAgB,CACpBjJ,SACAkJ,UAA2D,QAAlDH,EAAEhK,EAAsB2B,cAAcnB,oBAAY,IAAAwJ,OAAA,EAAhDA,EAAkDtI,UAE/Dd,QAAQiB,IAAI,OAAQqI,GACpBtJ,QAAQC,MAAM,2CAA4CkJ,GAC1DE,EAAoB9J,QACjBiK,UAAUF,GACVN,MAAMC,GACLC,EAAaH,EAAQE,IACtB,MAIT,MAAMC,EAAeA,CACnBH,EACAE,IAEA,IAAI3I,SAAQ,CAACmJ,EAASlJ,KACpB,MAAMmJ,EAAQT,EAAWU,iBACX9O,IAAV6O,GACFnJ,EAAOwI,GAETU,EAAQG,EAAkBb,EAAQW,GAAO,IAGvCE,EAAoBA,CAACb,EAA4BW,KACrD,MAAMG,EAAY,UAAAnL,OAAagL,GACzBI,EAAIf,EASV,OARKe,EAAE1B,QAKL0B,EAAE1B,QAAU,IAAI0B,EAAE1B,QAAS2B,cAAeF,GAJ1CC,EAAE1B,QAAU,CACV2B,cAAeF,GAMZd,CAAM,EAkDTiB,EAAgBC,GAA4BA,EAASC,KAE3D,SAASC,EAAYC,GACnB,MAAMC,EAAW,IAAIxO,SAErB,OADAU,OAAOM,KAAKuN,GAAQnO,SAASE,GAAQkO,EAASvO,OAAOK,EAAKiO,EAAOjO,MAC1DkO,CACT,CAEO,MAAMC,EACNC,CAACC,EAAazB,IACjBhB,EACGwC,IAAIC,EAAKzB,GACTC,KAAKgB,GACL7I,OAAOlB,IAAW,IAADwK,EAAAC,EAE+BC,EAA/C,GADA3K,QAAQC,MAAMA,GACI,QAAlBwK,EAAIxK,EAAMgK,gBAAQ,IAAAQ,GAAM,QAANC,EAAdD,EAAgBP,YAAI,IAAAQ,GAApBA,EAAsBE,oBACxB,MAAM,IAAIlC,EACRzI,EAAMgK,SAASC,KAAKrM,QACN,QADa8M,EAC3B1K,EAAMgK,gBAAQ,IAAAU,OAAA,EAAdA,EAAgBtD,QAGpB,IAAKW,IAAM6C,SAAS5K,GAClB,MAAM,IAAIyI,EAAcnH,EAAUuB,SAAS7C,MAAMqD,aACnD,IAfKgH,EAiBKQ,CACdN,EACAO,EACAhC,IAEAhB,EACGiD,KAAKR,EAAKL,EAAYY,GAAO,IACzBhC,EACHX,QAAS,IAAU,OAANW,QAAM,IAANA,OAAM,EAANA,EAAQX,QAAS,eAAgB,yBAE/CY,KAAKgB,GACL7I,OAAOlB,IAAW,IAADgL,EAAAC,EAAAC,EAC+BC,EAA/C,GAAkB,QAAlBH,EAAIhL,EAAMgK,gBAAQ,IAAAgB,GAAM,QAANC,EAAdD,EAAgBf,YAAI,IAAAgB,GAApBA,EAAsBN,oBACxB,MAAM,IAAIlC,EACRzI,EAAMgK,SAASC,KAAKrM,QACN,QADauN,EAC3BnL,EAAMgK,gBAAQ,IAAAmB,OAAA,EAAdA,EAAgB/D,QAGpB,GAEE,6CADc,QAAd8D,EAAAlL,EAAMgK,gBAAQ,IAAAkB,OAAA,EAAdA,EAAgBjB,KAAK/L,OAErB,CAAC,IAADkN,EACA,MAAMC,EAASrL,EAAMgK,SAASC,KAAKoB,OACnC,MAAM,IAAI5C,EACR4C,EAAO/O,OAAOM,KAAKyO,GAAQ,IACb,QADgBD,EAC9BpL,EAAMgK,gBAAQ,IAAAoB,OAAA,EAAdA,EAAgBhE,OAEpB,CACA,IAAKW,IAAM6C,SAAS5K,GAClB,MAAM,IAAIyI,EAAcnH,EAAUuB,SAAS7C,MAAMsD,WACnD,IA/CK+G,EAiDIiB,CACbf,EACAO,EACAhC,IAEAhB,EACGyD,IAAIhB,EAAKL,EAAYY,GAAO,IACxBhC,EACHX,QAAS,IAAU,OAANW,QAAM,IAANA,OAAM,EAANA,EAAQX,QAAS,eAAgB,yBAE/CY,KAAKgB,GACL7I,OAAOlB,IAAW,IAADwL,EAAAC,EAAAC,EAC+BC,EAA/C,GAAkB,QAAlBH,EAAIxL,EAAMgK,gBAAQ,IAAAwB,GAAM,QAANC,EAAdD,EAAgBvB,YAAI,IAAAwB,GAApBA,EAAsBd,oBACxB,MAAM,IAAIlC,EACRzI,EAAMgK,SAASC,KAAKrM,QACN,QADa+N,EAC3B3L,EAAMgK,gBAAQ,IAAA2B,OAAA,EAAdA,EAAgBvE,QAGpB,GAEE,6CADc,QAAdsE,EAAA1L,EAAMgK,gBAAQ,IAAA0B,OAAA,EAAdA,EAAgBzB,KAAK/L,OAErB,CAAC,IAAD0N,EACA,MAAMP,EAASrL,EAAMgK,SAASC,KAAKoB,OACnC,MAAM,IAAI5C,EACR4C,EAAO/O,OAAOM,KAAKyO,GAAQ,IACb,QADgBO,EAC9B5L,EAAMgK,gBAAQ,IAAA4B,OAAA,EAAdA,EAAgBxE,OAEpB,CACA,IAAKW,IAAM6C,SAAS5K,GAClB,MAAM,IAAIyI,EAAcnH,EAAUuB,SAAS7C,MAAMsD,WACnD,IA/EK+G,EAkFLU,CAACR,EAAaO,EAAUhC,IAC5BhB,EACGiD,KAAKR,EAAKO,EAAMhC,GAChBC,KAAKgB,GACL7I,OAAOlB,IAAW,IAAD6L,EAAAC,EAAAC,EAC+BC,EAA/C,GAAkB,QAAlBH,EAAI7L,EAAMgK,gBAAQ,IAAA6B,GAAM,QAANC,EAAdD,EAAgB5B,YAAI,IAAA6B,GAApBA,EAAsBnB,oBACxB,MAAM,IAAIlC,EACRzI,EAAMgK,SAASC,KAAKrM,QACN,QADaoO,EAC3BhM,EAAMgK,gBAAQ,IAAAgC,OAAA,EAAdA,EAAgB5E,QAGpB,GAEE,6CADc,QAAd2E,EAAA/L,EAAMgK,gBAAQ,IAAA+B,OAAA,EAAdA,EAAgB9B,KAAK/L,OAErB,CAAC,IAAD+N,EACA,MAAMZ,EAASrL,EAAMgK,SAASC,KAAKoB,OACnC,MAAM,IAAI5C,EACR4C,EAAO/O,OAAOM,KAAKyO,GAAQ,IACb,QADgBY,EAC9BjM,EAAMgK,gBAAQ,IAAAiC,OAAA,EAAdA,EAAgB7E,OAEpB,CACA,IAAKW,IAAM6C,SAAS5K,GAClB,MAAM,IAAIyI,EAAcnH,EAAUuB,SAAS7C,MAAMsD,WACnD,IAzGK+G,EA4GNkB,CAAChB,EAAaO,EAAWhC,IAC5BhB,EACGyD,IAAIhB,EAAKO,EAAMhC,GACfC,KAAKgB,GACL7I,OAAOlB,IAAW,IAADkM,EAAAC,EAAAC,EAC+BC,EAA/C,GAAkB,QAAlBH,EAAIlM,EAAMgK,gBAAQ,IAAAkC,GAAM,QAANC,EAAdD,EAAgBjC,YAAI,IAAAkC,GAApBA,EAAsBxB,oBACxB,MAAM,IAAIlC,EACRzI,EAAMgK,SAASC,KAAKrM,QACN,QADayO,EAC3BrM,EAAMgK,gBAAQ,IAAAqC,OAAA,EAAdA,EAAgBjF,QAGpB,GAEE,6CADc,QAAdgF,EAAApM,EAAMgK,gBAAQ,IAAAoC,OAAA,EAAdA,EAAgBnC,KAAK/L,OAErB,CAAC,IAADoO,EACA,MAAMjB,EAASrL,EAAMgK,SAASC,KAAKoB,OACnC,MAAM,IAAI5C,EACR4C,EAAO/O,OAAOM,KAAKyO,GAAQ,IACb,QADgBiB,EAC9BtM,EAAMgK,gBAAQ,IAAAsC,OAAA,EAAdA,EAAgBlF,OAEpB,CACA,IAAKW,IAAM6C,SAAS5K,GAClB,MAAM,IAAIyI,EAAcnH,EAAUuB,SAAS7C,MAAMsD,WACnD,IAnIK+G,EAsIJkC,CAAChC,EAAaO,EAAYhC,IAC/BhB,EACGyE,MAAMhC,EAAKO,EAAMhC,GACjBC,KAAKgB,GACL7I,OAAOlB,IAAW,IAADwM,EAAAC,EAC+BC,EAA/C,GAAkB,QAAlBF,EAAIxM,EAAMgK,gBAAQ,IAAAwC,GAAM,QAANC,EAAdD,EAAgBvC,YAAI,IAAAwC,GAApBA,EAAsB9B,oBACxB,MAAM,IAAIlC,EACRzI,EAAMgK,SAASC,KAAKrM,QACN,QADa8O,EAC3B1M,EAAMgK,gBAAQ,IAAA0C,OAAA,EAAdA,EAAgBtF,QAGpB,IAAKW,IAAM6C,SAAS5K,GAClB,MAAM,IAAIyI,EAAcnH,EAAUuB,SAAS7C,MAAMsD,WACnD,IAnJK+G,EAsJHsC,CAACpC,EAAazB,IACpBhB,EACG6E,OAAOpC,EAAKzB,GACZC,KAAKgB,GACL7I,OAAOlB,IAAW,IAAD4M,EAAAC,EAC+BC,EAA/C,GAAkB,QAAlBF,EAAI5M,EAAMgK,gBAAQ,IAAA4C,GAAM,QAANC,EAAdD,EAAgB3C,YAAI,IAAA4C,GAApBA,EAAsBlC,oBACxB,MAAM,IAAIlC,EACRzI,EAAMgK,SAASC,KAAKrM,QACN,QADakP,EAC3B9M,EAAMgK,gBAAQ,IAAA8C,OAAA,EAAdA,EAAgB1F,QAGpB,IAAKW,IAAM6C,SAAS5K,GAClB,MAAM,IAAIyI,EAAcnH,EAAUuB,SAAS7C,MAAMuD,aACnD,IC5SFwJ,EAAe,YA6DNC,MA3DK,CAClBC,mBAAoBA,IAClB5C,EAAa,GAAD5L,OAAIsO,EAAY,iBAC9BG,eAAgBA,IACd7C,EAAa,GAAD5L,OAAIsO,EAAY,aAC9BI,eAAgBA,IACd9C,EAAa,GAAD5L,OAAIsO,EAAY,cAC9BK,YAAaA,IACX/C,EAAa,GAAD5L,OAAIsO,EAAY,uBAC9BM,kBAAmBA,IACjBhD,EAAa,GAAD5L,OAAIsO,EAAY,6BAC9BO,qBAAuBC,GACrBlD,EAAa,GAAD5L,OAAIsO,EAAY,sBAAsB,CAChDS,OAAQ,CACND,cAGNE,WAAaC,GACXrD,EAAc,GAAD5L,OAAIsO,EAAY,WAAWW,GAC1CC,WAAaD,GACXrD,EAAc,GAAD5L,OAAIsO,EAAY,YAAYW,GAC3CE,WAAaL,GACXlD,EAAgB,GAAD5L,OAAIsO,EAAY,WAAW,CACxCS,OAAQ,CACND,cAGNM,qBAAuBhN,GACrBwJ,EAAa,GAAD5L,OAAIsO,EAAY,sBAAAtO,OAAqBoC,IACnDiN,wBACEC,GAEA1D,EAAa,GAAD5L,OAAIsO,EAAY,qBAAqBgB,GACnDC,wBACEC,GAEA5D,EAAa,GAAD5L,OAAIsO,EAAY,qBAAqBkB,GACnDC,4BAA8BC,GAA+D9D,EAAa,GAAD5L,OAAIsO,EAAY,wBAAAtO,OAAuB0P,IAChJC,yBACEC,GAEAhE,EAAc,GAAD5L,OAAIsO,EAAY,uBAAuBsB,GACtDC,yBACED,GAEAhE,EAAa,GAAD5L,OAAIsO,EAAY,uBAAuBsB,GACrDE,6BACEtE,GAEAI,EAAa,GAAD5L,OAAIsO,EAAY,+BAA+B9C,GAC7DuE,yBAA0BA,CACxBC,EACAN,IAEA9D,EAAgB,GAAD5L,OACVsO,EAAY,KAAAtO,OAAIgQ,EAAM,wBAAAhQ,OAAuB0P,K,oDCrEvC,MAA0B,iCCuB1BO,MAjBiBA,IAE5BtQ,cAACuQ,IAAS,CAACC,SAAS,KAAIrR,SACtBsR,eAAA,OAAKC,UAAWC,IAAOC,UAAUzR,SAAA,CAC/Ba,cAAA,OAAK6Q,IAAKC,EAAMC,IAAI,KACpB/Q,cAACgR,IAAU,CAACC,QAAQ,KAAKC,cAAY,EAAA/R,SAAC,qBAGtCa,cAACgR,IAAU,CAAA7R,SAAC,iG,SCdL,MAA0B,4CCWzC,MAAMgS,EAAcC,IAAMtS,cAAyB,CACjDuS,YAAa,CAAC,IAGVC,EAAgCpS,IAAmB,IAAlB,SAAEC,GAAUD,EACjD,MASOqS,EAAaC,GAAkBC,oBAAS,IACxCC,EAAUC,GAAeF,mBAAoB,CAClDJ,YAAa,CAAC,IAGVO,EAAsBA,KAC1B,IAAIlI,EAAW3I,EAAsB2B,cACjCmP,EAAcnI,EAASnI,aAEtBsQ,EAlBoBC,WACzB,IACE,aAAaC,EAAqBjD,gBACpC,CAAE,MAAOlN,GAEP,MADAD,QAAQC,MAAM,0BAA4BsI,KAAK8H,UAAUpQ,EAAO,KAAM,IAChEA,CACR,GAiBAiN,GACGlE,MAAMsH,IAAiB,IAADC,EACrB,IAAKD,EAEH,YADAtQ,QAAQC,MAAM,0BAIhB,IAAIyP,EAAc,IACbY,EAAYZ,eACsB,QAArCa,EAAIxI,EAASrI,gCAAwB,IAAA6Q,IAAI,IAG3CP,EAAY,CACVrQ,QAASuQ,EACTM,SAAqB,OAAXN,QAAW,IAAXA,OAAW,EAAXA,EAAapP,SACvB4O,YAAwB,OAAXA,QAAW,IAAXA,IAAe,GAC5Be,SAAUH,EAAYI,KAAKD,SAC3BE,SAAUL,EAAYI,KAAKC,SAC3BC,UAAWN,EAAYI,KAAKE,UAC5BC,OAAQP,EAAYO,OACpBrD,SAAU8C,EAAYI,KAAKlD,SAC3BsD,UAAWR,EAAYQ,UACvBC,YAAaT,EAAYS,YACzBC,MAAOV,EAAYU,MACnBC,aAAcX,EAAYI,KAAKO,cAC/B,IAEH9P,OAAOgI,IACNnJ,QAAQC,MAAMkJ,EAAE,IAEjB+H,SAAQ,IAAMrB,GAAe,KAlC9B7P,QAAQC,MAAM,wDAkCsB,EAOxC,OAJAkR,qBAAU,KACRlB,GAAqB,GACpB,IAEEL,EAkDDA,GAAeG,GAAYqB,IAAEC,QAAgB,OAARtB,QAAQ,IAARA,OAAQ,EAARA,EAAUL,aAC1CrR,cAACsQ,EAAa,IAGrBtQ,cAACmR,EAAYlR,SAAQ,CAAC1D,MAAOmV,EAASvS,SAAEA,IApDtCa,cAAA,OACEiT,MAAO,CACLC,QAAS,OACTC,WAAY,SACZC,OAAQ,SACRC,MAAO,OACPC,OAAQ,OACRC,SAAU,WACVC,IAAK,EACLC,KAAM,EACNC,WAAW,OAADrT,OAASsT,EAAU,mCAC7BC,SAAU,SACVC,eAAgB,SAChB1U,SAEFsR,eAAA,OACEwC,MAAO,CACLa,YAAa,OACbC,aAAc,OACdX,OAAQ,SACRF,QAAS,OACTc,cAAe,SACfC,aAAc,SACdd,WAAY,SACZe,UAAW,QACX/U,SAAA,CAEFa,cAACmU,IAAgB,CACfC,MAAM,YACNnB,MAAO,CAAEoB,aAAc,QACvBzX,KAAM,KAERoD,cAACgR,IAAU,CACTC,QAAQ,KACRC,cAAY,EACZ+B,MAAO,CACLqB,SAAU,aACVC,UAAW,aACXL,UAAW,OACXE,MAAO,SACPjV,SACH,oDAWiE,EAM/DqV,EAAiBA,IAAMxV,qBAAWmS,GCrGhCsD,MA1B+BvV,IAIvC,IAJwC,WAC7CwV,EAAU,OACVC,KACGC,GACJ1V,EACC,MAAQmS,YAAawD,GAAoB7V,qBAAWmS,GAEpD,OAAKwD,EAMH3U,cAAC8U,IAAK,IACAF,EACJD,OAASI,GACPF,EAAgBG,SAASN,GACvBC,EAAOI,GAEP/U,cAACiV,IAAQ,CAACC,GAAG,kBAXnBvT,QAAQC,MAAM,6CACP,KAaL,ECyCSuT,ICxEXC,EAAOC,EDwEIF,EA3DuBjW,IAI/B,IAJgC,MACrCoW,EAAK,SACLC,EAAQ,WACRC,GAAa,GACdtW,EACC,MAAM,UAAEQ,GAAcX,IAEtB,OACE0R,eAAAgF,WAAA,CAAAtW,SAAA,CACGqW,GAAc7T,QAAQiB,IAAI,+BAC1B0S,EAAMI,KAAIC,IAAA,IAAC,KAAEC,EAAI,MAAEC,EAAK,WAAEnB,EAAU,UAAEoB,GAAmBH,EAAA,OACxD3V,cAACoR,IAAM2E,SAAQ,CAAA5W,SACZuV,EACC1U,cAACyU,EAAY,CACXC,WAAYA,EACZkB,KAAMA,EACNC,MAAOA,EACPlB,OAAQA,IACFmB,GACEN,GAEF9V,IAEKM,cAAAyV,WAAA,CAAAtW,SAAG2W,UAEV,IAKN9V,cAAC8U,IAAK,CACJc,KAAMA,EACNC,MAAOA,EACPlB,OAAQA,IACFmB,GACEN,GAEF9V,IAEKM,cAAAyV,WAAA,CAAAtW,SAAG2W,UAEV,KA9BWF,EAmCJ,IAElBL,GACCvV,cAAC8U,IAAK,CACJc,KAAML,EACNM,OAAK,EACLlB,OAAQA,IAAM3U,cAACiV,IAAQ,CAACC,GAAII,EAAM,GAAGM,WAGxC,E,+BCnEP,SAASI,KAAiS,OAApRA,GAAW9X,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAUF,GAASS,MAAMtV,KAAMiV,UAAY,CAElV,SAASM,GAAcxX,EAAMyX,GAC3B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO8W,GAAS,CACtD3C,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAMsV,IAAUA,EAAqB,gBAAoB,OAAQ,CAC3E8B,SAAU,UACVC,SAAU,UACVC,EAAG,iqBACHN,KAAM,WACHzB,IAAYA,EAAuB,gBAAoB,SAAU,CACpEgC,GAAI,GACJC,GAAI,GACJC,EAAG,IACHC,OAAQ,WAEZ,CACA,MAAMC,GAA0B,aAAiBf,IAClC,IChCXgB,GAAOC,GDgCI,IC/Bf,SAAS,KAAiS,OAApR,GAAWzZ,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASwB,GAAW1Y,EAAMyX,GACxB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPc,WAAY,+BACZb,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM4X,KAAUA,GAAqB,gBAAoB,OAAQ,CAC3ErE,MAAO,GACPC,OAAQ,GACRwD,KAAM,oBACHa,KAAUA,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,UAAW,CAChHV,GAAI,WACJa,oBAAqB,oBACrBzE,MAAO,EACPC,OAAQ,GACM,gBAAoB,MAAO,CACzCyE,UAAW,UACXC,UAAW,sBACK,gBAAoB,QAAS,CAC7Cf,GAAI,SACJ5D,MAAO,GACPC,OAAQ,GACRyE,UAAW,imFAEf,CACA,MAAM,GAA0B,aAAiBH,IAClC,ICxCR,IAAKK,GAAW,SAAXA,GAAW,OAAXA,EAAW,kBAAXA,EAAW,cAAXA,EAAW,kBAAXA,EAAW,YAAXA,CAAW,M,yBC0DRC,OA1C4BhZ,IAAwB,IAAvB,QAAEM,EAAO,KAAE3C,GAAMqC,EACvD+T,EAAQ,GACZ,OAAQpW,GACN,KAAKob,GAAY3N,MACf2I,EAAQtC,KAAO/O,MACf,MACF,KAAKqW,GAAYE,QACflF,EAAQtC,KAAOjM,QACf,MACF,KAAKuT,GAAYG,QACfnF,EAAQtC,KAAO0H,QACf,MACF,KAAKJ,GAAYK,KAGjB,QACErF,EAAQtC,KAAO4H,KAGnB,OACEvY,cAACwY,KAAW,CACVC,aAAc,CACZC,SAAU,MACVC,WAAY,UAEdC,MAAM,EAAKzZ,SAEXa,cAAC6Y,KAAe,CACdnI,UAAS,GAAArQ,OAAK4S,EAAK,KAAA5S,OAAIsQ,KAAOtM,SAC9B7E,QACEiR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,SAAQhU,SAAA,CACpCtC,IAASob,GAAYE,SAAWnY,cAAC+Y,GAAW,IAC5Clc,IAASob,GAAY3N,OACpBtK,cAACgZ,GAAS,CAAC3F,MAAM,OAAOC,OAAO,SAEjCtT,cAAC8Y,KAAG,CAACG,GAAI,EAAE9Z,SAAEK,UAIP,EC9ClB,MAAM0Z,GAAkB9H,IAAMtS,cAAqC,CACjEqa,WAAYA,SAGDC,GAA6Bla,IAAmB,IAAlB,SAAEC,GAAUD,EACrD,MAAOM,EAAS6Z,GAAc5H,mBAAiB,KACxC5U,EAAMyc,GAAW7H,mBAAsBwG,GAAY3N,OAE1DwI,qBAAU,KACR,GAAgB,KAAZtT,EAAgB,CAClB,MAAM+Z,EAAQC,YAAW,KACvBH,EAAW,IACXC,EAAQrB,GAAY3N,MAAM,GACzB,KACH,MAAO,IAAMmP,aAAaF,EAC5B,IACC,CAAC/Z,IAEJ,MAAM2Z,EAAa5Z,uBAAY,CAACC,EAAiB3C,KAC/Cwc,EAAW7Z,GACX8Z,EAAY,OAAJzc,QAAI,IAAJA,IAAQob,GAAY3N,MAAM,GACjC,IAEG/N,EAAQmd,mBAAQ,KACb,CAAEP,gBACR,CAACA,IAEJ,OACEnZ,cAACkZ,GAAgBjZ,SAAQ,CAAC1D,MAAOA,EAAM4C,SACrCsR,eAAAgF,WAAA,CAAAtW,SAAA,CACGK,GAAWQ,cAACkY,GAAQ,CAAe1Y,QAASA,EAAS3C,KAAMA,GAAjC2C,GAC1BL,MAEsB,EAIhB+Z,UCtCAS,OAJKA,IACX3a,qBAAWka,ICMpB,MAAMvK,GAAe,eAmCNiL,OAjCQ,CACrBC,aAAeC,GACb7N,EAAa,GAAD5L,OAAIsO,GAAY,cAAc,CAAEmL,gBAC9CC,aAAcA,IACZ9N,EAAa,GAAD5L,OAAIsO,GAAY,eAC9BqL,WAAaC,GACXhO,EAAc,GAAD5L,OAAIsO,IAAgBsL,GACnCC,cAAgBC,GACdlO,EAAgB,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAI8Z,IACrCC,gBAAkBC,GAChBpO,EAAe,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAIga,EAAI,cACxCC,kBAAoBD,GAClBpO,EAAe,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAIga,EAAI,gBACxCE,kBAAmBA,CAACF,EAAcG,IAChCvO,EAAe,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAIga,EAAI,gBAAgBG,GACxDC,kBAAoBJ,GAClBpO,EAAa,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAIga,IAClCK,mBAAqBC,GACnB1O,EAAa,GAAD5L,OAAIsO,GAAY,WAAAtO,OAAU6J,KAAK8H,UAAU2I,KACvDC,sBAAuBA,CACrBP,EACAQ,IAEA5O,EAAe,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAIga,EAAI,gBAAgBQ,GACxDC,sBAAuBA,CACrBT,EACAU,IAEA9O,EAAe,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAIga,EAAI,oBAAoBU,GAC5DC,eAAgBA,CAACX,EAAcY,IAC7BhP,EAAe,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAIga,EAAI,aAAa,CAAEY,cCtCzD,MAAMtM,GAAe,cAQNuM,OALQ,CACrBhP,IAAKA,IAA2BD,EAAa,GAAD5L,OAAIsO,GAAY,MAC5DwM,gBAAkBC,GAChBnP,EAAa,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAI+a,KCRpC,MAAMzM,GAAe,eAUNuM,OAPQ,CACrBG,mBAAoBA,IAClBpP,EAAa,GAAD5L,OAAIsO,GAAY,sBAE9B2M,uBAAwBA,IACtBrP,EAAa,GAAD5L,OAAIsO,GAAY,mBCSzB,MAAM4M,GAAuD,CAClEC,UAAW,GACXC,kBAAmB,GACnBvT,SAAU,GACVwT,oBAAqB,GACrBC,kBAAkB,EAClBC,gBAAiBA,KAAe,EAChCC,yBAA0BA,KAC5B,GAEMC,GAAmB1K,IAAMtS,cAAsC,IAChEyc,KAGCQ,GAA6D7c,IAE5D,IAF6D,SAClEC,GACDD,EACC,MAAM,WAAEia,GAAeQ,MAEhB6B,EAAWQ,GAAgBvK,mBAAqB,KAChDgK,EAAmBQ,GAAuBxK,mBAC/C,KAEKyK,EAAUC,GAAe1K,oBAAkB,IAC3CvJ,EAAUkU,GAAe3K,mBAA0B,KACnDiK,EAAqBW,GAA0B5K,mBAAS,IAE/DqB,qBAAU,KACRwJ,GAAY,GACX,IAEH,MAAMA,EAAaA,KACjBra,QAAQsa,IAAI,CACVrB,GAAehP,MACfsQ,GAAgBnB,qBAChBzB,GAAeG,eACfyC,GAAgBlB,2BAEf3Q,MAAMiB,IACLoQ,EAAapQ,EAAS,IACtBwQ,EAAYxQ,EAAS,IACrBqQ,EAAoBrQ,EAAS,IAC7ByQ,EAAuBzQ,EAAS,IAChCuQ,GAAY,EAAK,IAElBrZ,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,EAGAoc,EAAkBrc,uBACrBzB,IAAW,IAAA2e,EAAA,OAAwC,QAAxCA,EAAKvU,EAASwU,MAAMC,GAAMA,EAAE7e,MAAQA,WAAI,IAAA2e,OAAA,EAAnCA,EAAqClgB,KAAK,GAC3D,CAAC2L,IAGG2T,EAA2Btc,uBAC9B8a,GAAkC,OAAjBoB,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBiB,MAAME,GAAMA,EAAEvC,OAASA,KAC5D,CAACoB,IAGGlf,EAAQ,CACZif,YACAC,oBACAvT,WACAwT,sBACAC,iBAAkBO,GAGpB,OACElc,cAAC8b,GAAiB7b,SAAQ,CACxB1D,MAAO,IAAKA,EAAOqf,kBAAiBC,4BAA2B1c,SAE9D+c,GAAY/c,GACa,ECxEzB,SAAS0d,GACdC,EACAC,GAEC,IADDC,EAA6B5G,UAAAzY,OAAA,QAAAnB,IAAA4Z,UAAA,GAAAA,UAAA,GAAG3V,OAehC,MAAMwc,EAAaC,mBAEnBpK,qBAAU,KACRmK,EAAWE,QAAUJ,CAAO,GAC3B,CAACA,IAEJjK,qBAAU,KACR,MAAMsK,EAA+BC,QACZ7gB,IAAvBygB,EAAWE,QAAwBF,EAAWE,QAAQE,GAAS,KAGjE,OAFAL,EAAQM,iBAAiBR,EAAWM,GAE7B,KACLJ,EAAQO,oBAAoBT,EAAWM,EAAc,CACtD,GACA,CAACN,EAAWE,GACjB,CClDO,IAAKQ,GAAsB,SAAtBA,GAAsB,OAAtBA,EAAsB,oCAAtBA,EAAsB,8BAAtBA,EAAsB,gDAAtBA,EAAsB,gDAAtBA,CAAsB,MAqDnBC,I,YAAAA,GA3BoBA,CACjCC,EACAC,KACI,IAADC,EAAAC,EAAAC,EAAAC,EACH,OAAQJ,EAAO9gB,MACb,KAAK2gB,GAAuBQ,iBAC1B,MAAO,IACFN,EACHO,gBAAiB/T,KAAKC,MAAoB,QAAfyT,EAACD,EAAOO,eAAO,IAAAN,IAAI,SAElD,KAAKJ,GAAuBW,cAC1B,MAAO,IAAKT,EAAOU,aAAclU,KAAKC,MAAoB,QAAf0T,EAACF,EAAOO,eAAO,IAAAL,IAAI,SAChE,KAAKL,GAAuBa,yBAC1B,MAAO,IACFX,EACHY,mBAAoBpU,KAAKC,MAAoB,QAAf2T,EAACH,EAAOO,eAAO,IAAAJ,IAAI,SAErD,KAAKN,GAAuBe,yBAC1B,MAAO,IACFb,EACHc,mBAAoBtU,KAAKC,MAAoB,QAAf4T,EAACJ,EAAOO,eAAO,IAAAH,IAAI,SAErD,QACE,OAAOL,EACX,EC7CK,MAAMe,GAAkC,CAC7CR,gBAAiB/T,KAAKC,MACyC,QADpCuU,GACzBC,aAAaC,QAAQpB,GAAuBQ,yBAAiB,IAAAU,MAAI,QAEnEN,aAAclU,KAAKC,MACyC,QADpC0U,GACtBF,aAAaC,QAAQpB,GAAuBW,sBAAc,IAAAU,MAAI,QAEhEP,mBACuE,QADrDQ,GAChBH,aAAaC,QAAQpB,GAAuBa,iCAAyB,IAAAS,MACrE,OACFN,mBAAoBtU,KAAKC,MAC8C,QADzC4U,GAC5BJ,aAAaC,QAAQpB,GAAuBe,iCAAyB,IAAAQ,MACnE,SASAC,GAAsBlgB,wBAAc,CAAC,GAuE5BmgB,OArEwB/f,IAAmB,IAAlB,SAAEC,GAAUD,EAClD,MAAOwe,EAAOwB,GAAYC,qBAAW1B,GAAqBgB,IAwD1D,OA/CA5B,GAAe,WAPE/R,IACXA,EAAEsU,cAAgBT,cACpBO,EAAS,CAAEriB,KAAMiO,EAAEhN,IAA+BogB,QAASpT,EAAEuU,UAC/D,IAOFvM,qBAAU,KACJ4K,EAAMO,gBACRU,aAAaW,QACX9B,GAAuBQ,iBACvB9T,KAAK8H,UAAU0L,EAAMO,kBAGvBU,aAAaY,WAAW/B,GAAuBQ,iBACjD,GACC,CAACN,EAAMO,kBAEVnL,qBAAU,KACJ4K,EAAMU,aACRO,aAAaW,QACX9B,GAAuBW,cACvBjU,KAAK8H,UAAU0L,EAAMU,eAGvBO,aAAaY,WAAW/B,GAAuBW,cACjD,GACC,CAACT,EAAMU,eAEVtL,qBAAU,KACJ4K,EAAMY,mBACRK,aAAaW,QACX9B,GAAuBa,yBACvBX,EAAMY,mBAAmBkB,YAG3Bb,aAAaY,WAAW/B,GAAuBa,yBACjD,GACC,CAACX,EAAMY,qBAEVxL,qBAAU,KACJ4K,EAAMc,mBACRG,aAAaW,QACX9B,GAAuBe,yBACvBrU,KAAK8H,UAAU0L,EAAMc,qBAGvBG,aAAaY,WAAW/B,GAAuBe,yBACjD,GACC,CAACb,EAAMc,qBAGRxe,cAACgf,GAAoB/e,SAAQ,CAC3B1D,MAAO,CACLmhB,QACAwB,YACA/f,SAEDA,GAC4B,EAM5B,MAAMsgB,GAAyBA,IAAMzgB,qBAAWggB,IC5FjDU,GAAkB5gB,wBAAc,CAAC,GA8BxB6gB,OA5BoBzgB,IAAmB,IAAlB,SAAEC,GAAUD,EAC9C,MAAO0gB,EAAUC,GAAepO,mBAAkB,KAC5C,WAAE0H,GAAeQ,KAEvB7G,qBAAU,KACRgN,GAAiB,GAChB,IAEH,MAAMA,EAAkBA,IACflR,EAAYG,iBAChBpE,MAAMiB,IACLiU,EAAYjU,EAAS,IAEtB9I,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAGvC,OACEQ,cAAC0f,GAAgBzf,SAAQ,CACvB1D,MAAO,CACLqjB,WACAE,mBACA3gB,SAEDA,GACwB,EAMxB,MAAM4gB,GAAqBA,IAAM/gB,qBAAW0gB,I,gGCWpCM,OA7COA,KACpB,MAAOC,EAAOC,GAAYzO,mBAAiB,KACpC7P,EAAOue,GAAY1O,mBAAS,MAoCnC,MAAO,CACLwO,QACAG,eAjCsBC,IACtB,IAAKA,EACH,MAAM,IAAI/V,MAAM,yCAElB,OAAOgW,KAAYD,GAChB1V,MAAM4V,IACL,MAAMC,EAAgBC,SAASC,cAAc,UACvCC,EAAuBH,EAAcI,WAAW,MAIhDC,EAAYN,EAAOlN,MACnByN,EAAaP,EAAOjN,OAE1BkN,EAAcnN,MAAQwN,EACtBL,EAAclN,OAASwN,EAEH,OAApBH,QAAoB,IAApBA,KAAsBI,UACpBR,EARuB,EADD,GAcxB,MAAMS,EAAcR,EAAcS,YAGlC,OADAf,EAASc,GACFA,CAAW,IAEnBle,MAAMqd,EAAS,EAMlBve,QACD,E,yDCnDH,MAAMsf,GAAc,CAOlBC,yBAA2BtV,GACrBA,EAAKuV,WAAW,SACXvV,EAAK/O,MAAM+O,EAAKwV,QAAQ,KAAO,GAEjCxV,EAGTyV,iCAAmCC,IACjC,IAAIC,EAAc,QAOlB,OALKD,IACHA,EAAY,eAINA,GACN,IAAK,MACHC,GAAU,kBACV,MACF,IAAK,MACHA,GAAU,YACV,MACF,IAAK,MACHA,GAAU,YACV,MACF,IAAK,MACHA,GAAU,2BACV,MACF,IAAK,OACHA,GACE,oEACF,MACF,IAAK,MACHA,GAAU,qBACV,MACF,IAAK,OACHA,GACE,0EACF,MACF,IAAK,MACHA,GAAU,kBACV,MACF,IAAK,MACHA,GAAU,+BACV,MACF,IAAK,MACL,IAAK,OACHA,GAAU,YACV,MACF,IAAK,MASL,IAAK,cACHA,GAAU,aACV,MARF,IAAK,MACHA,GAAU,kBACV,MACF,IAAK,MACHA,GAAU,kBAOd,OAAOA,EAAS,UAAU,EAG5BC,eAAiBC,IACf,MAAMC,EAAO,IAAIC,WAAWF,GAC5B,IAAIG,EAAkB,GACtBF,EAAK/jB,SAASkkB,IACZD,EAAMpiB,KAAKqiB,EAAKtC,SAAS,IAAI,IAG/B,MADuB,EACR,EAGjBuC,oBAAqBA,CAAClW,EAAcmW,KAClC,IAAIC,EAASf,GAAYC,yBAAyBtV,GAC9CqW,EAAMzhB,OAAO0hB,KAAKF,GAClBG,EAAYF,EAAIvkB,OAEpBqkB,EAAY,IAAItlB,MAAM0lB,GAEtB,IAAK,IAAIjM,EAAY,EAAGA,EAAIiM,EAAWjM,IACrC6L,EAAU7L,GAAK+L,EAAIG,WAAWlM,GAEhC,OAAO6L,CAAS,EAElBM,kBAAoBf,IAClB,IAAIgB,GAAe,EAEnB,OAAQhB,GACN,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,MACL,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,GACHgB,GAAM,EAGV,OAAOA,CAAG,EAGZC,iBAAmBC,IACjB,GAAIA,GAAYA,EAAS/jB,YAAY,KAAO,EAAG,CAE7C,OADc+jB,EAAS9jB,UAAU8jB,EAAS/jB,YAAY,KAAO,EAE/D,CACA,MAAO,EAAE,EAYXgkB,SAAS7W,EAAc4W,EAAkBE,GACvC,IAAIC,EAAOnC,SAASC,cAAc,KAClCkC,EAAKC,UAAY,gBACjBD,EAAKE,SAAWL,EAChBG,EAAKG,KAAOJ,GAA4B,GAAK9W,EAC7C+W,EAAK1M,OAAS,SACduK,SAAS/T,KAAKsW,YAAYJ,GAC1BA,EAAKK,QACLxC,SAAS/T,KAAKwW,YAAYN,EAC5B,EAYAO,UAAUC,EAAiBT,EAAqBU,GAC9CV,EAAcA,GAAe,GAC7BU,EAAYA,GAAa,IAGzB,MAAMC,EAAiBnB,KAAKiB,GACtBG,EAAoB,GAI1B,IAAK,IAAIC,EAAS,EAAGA,EAASF,EAAe3lB,OAAQ6lB,GAAUH,EAAW,CACxE,MAAMvmB,EAAQwmB,EAAexmB,MAAM0mB,EAAQA,EAASH,GAE9CI,EAAc,IAAI/mB,MAAMI,EAAMa,QACpC,IAAK,IAAIwY,EAAI,EAAGA,EAAIrZ,EAAMa,OAAQwY,IAChCsN,EAAYtN,GAAKrZ,EAAMulB,WAAWlM,GAIpC,MAAMuN,EAAY,IAAI9B,WAAW6B,GAEjCF,EAAW9jB,KAAKikB,EAClB,CAEA,OAAO,IAAIC,KAAKJ,EAAY,CAAE1mB,KAAM8lB,GACtC,EAEAiB,cAAcC,EAAiBC,GAQ7B,IAPA,IAAIC,EAAMF,EAAQG,MAAM,KACpBC,EAAQF,EAAI,GAAGG,MAAM,WACrBC,EAAgB,MAATF,EAAgBA,EAAM,GAAK,GAClCG,EAAOjC,KAAK4B,EAAI,IAChBM,EAAID,EAAKzmB,OACT2mB,EAAQ,IAAI1C,WAAWyC,GAEpBA,KACLC,EAAMD,GAAKD,EAAK/B,WAAWgC,GAG7B,OAAO,IAAIE,KAAK,CAACD,GAAQR,EAAU,CAAEjnB,KAAMsnB,GAC7C,GAGajD,U,UCrMA,SAASsD,GACtBC,EACAC,GAEA,IAAIC,EAAcD,IACdE,EAAcH,EAAOI,WAAWD,OACpC,OAAO1mB,OAAOM,KAAKomB,GAAQE,MAAMhnB,IAC/B,GACE8mB,EAAO9mB,GAAKinB,MAAMC,WAAU9lB,IAAA,IAAC,KAAEd,GAAWc,EAAA,MAAc,aAATd,CAAmB,KAChE,SACe5B,IAAhBmoB,EAAO7mB,IAAsC,KAAhB6mB,EAAO7mB,IAA+B,OAAhB6mB,EAAO7mB,IAE3D,OAAO,CACT,GAEJ,CAEO,SAASmnB,GAAYpZ,GA4B1B,OADiB9O,qBAAU8O,EA1BX,CAKdzO,SAAS,EAMTC,mBAAmB,EAMnBC,oBAAoB,EAMpBC,kBAAkB,EAClBqB,aAAa,GAIjB,CChCesmB,OAXM,CACnBC,YAAcC,IACZ,MAAMpZ,EAAWiZ,GAAYG,GAC7B,OAAOnZ,EAAc,GAAD5L,OALH,aAKuB2L,EAAU,CAChDjC,QAAS,CACP,eAAgB,wBAElB,G,8BCHSsb,OANuBnmB,IAAA,IAAC,OAAEomB,EAAM,SAAEnmB,KAAa4V,GAAO7V,EAAA,OACnEc,cAACulB,KAAS,CAACD,OAAc,OAANA,QAAM,IAANA,IAAU,WAAavQ,EAAK5V,SAC5CA,GACS,E,qBCCCqmB,OAJiBtmB,IAAmB,IAAlB,SAAEC,GAAUD,EAC3C,OAAOc,cAAA,OAAK0Q,UAAWuC,KAAMuS,cAAcrmB,SAAEA,GAAe,E,UCsB/CsmB,OAhBgDvmB,IAGxD,IAHyD,QAC9DwmB,KACG3Q,GACJ7V,EACC,OACEc,cAAC2lB,KAAM,CACL1U,QAAQ,WACRP,UAAWkV,KAAWC,sBACtBH,QAASA,KACL3Q,EAAK5V,SAER+D,EAAUC,QAAQE,QACZ,ECfEyiB,OAJiB5mB,IAAmB,IAAlB,SAAEC,GAAUD,EAC3C,OAAOc,cAAA,OAAK0Q,UAAWuC,KAAM6S,cAAc3mB,SAAEA,GAAe,EC0B/C4mB,OAlB4C7mB,IAIpD,IAJqD,KAC1DuK,EAAI,QACJuc,KACGjR,GACJ7V,EACC,OACEuR,eAACkV,KAAM,CACL9oB,KAAK,SACLoU,QAAQ,YACRP,UAAWkV,KAAWK,0BAClBlR,EAAK5V,SAAA,GAEN6mB,GAAWhmB,cAACmU,IAAgB,CAACvX,KAAM,MACpCopB,GAAO,GAAA3lB,OAAOoJ,GAAcvG,EAAUC,QAAQM,YACzC,E,+BCQEyiB,OArBkChnB,IAI1C,IAJ2C,YAChDinB,EAAW,SACXC,EAAQ,SACRjnB,GACDD,EACC,OACEc,cAAA,OAAK0Q,UAAS,GAAArQ,OAAK4S,KAAMiT,YAAW,KAAA7lB,OAAI+lB,GAAYnT,KAAMmT,UAAWjnB,SACnEsR,eAACO,IAAU,CAAC8E,UAAU,KAAK7E,QAAQ,KAAKmD,MAAM,UAASjV,SAAA,CACpDA,EACAgnB,EACCnmB,cAACqmB,KAAU,CAACX,QAASS,EAAYhnB,SAC/Ba,cAACsmB,KAAS,MAGZtmB,cAAAyV,WAAA,QAGA,E,yCCiBK8Q,OAjCkCrnB,IAQ1C,IAR2C,MAChDsnB,EAAK,YACLC,EAAW,WACXC,EAAU,SACVvnB,EAAQ,UACRwnB,GAAY,EAAI,eAChBC,GAAiB,KACd7R,GACJ7V,EACC,OACEc,cAAC6mB,KAAc,CAACnW,UAAWC,KAAOmW,QAASH,UAAWA,KAAe5R,EAAK5V,SACxEsR,eAAAgF,WAAA,CAAAtW,SAAA,CACGqnB,GAASxmB,cAAC+mB,KAAS,CAACrW,UAAWC,KAAO6V,MAAMrnB,SAAEqnB,IAE9CA,GAASI,GACR5mB,cAAC+mB,KAAS,CAAC9T,MAAO,CAAEC,QAAS,QAAS/T,SAAE,mBAEzCunB,GACC1mB,cAACgR,IAAU,CACTC,QAAQ,UACR6E,UAAU,OACVpF,UAAWC,KAAOqW,SAAS7nB,SAC5B,aAIFsnB,GAAezmB,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAEsnB,IAC5CtnB,MAEY,E,+BCtBrB,SAAS8nB,GAASlS,EAAOmS,GACvB,MAAmB,WAAfnS,EAAMlY,MAECkY,EAAMxY,MADRwY,EAAMxY,MAGJ2qB,GAGF,GAEX,CAiDeC,OA7CXjoB,IAMG,IANF,SACHkoB,GAAW,EAAK,KAChBC,GAAO,EAAK,aACZH,EAAY,UACZP,GAAY,KACT5R,GACJ7V,EACC,MAAM+T,EAAQoU,EAAO1W,KAAO2W,aAAe3W,KAAOyW,SAElD,OACEpnB,cAAAyV,WAAA,CAAAtW,SACGioB,EACCpnB,cAACunB,KAAY,CACXL,aAAcA,EACdjQ,GAAIlC,EAAMkC,GAAKlC,EAAMkC,GAAKlC,EAAM3W,KAChCopB,WAAY,CACVC,kBAAkB,EAClBC,UAAU,EACVnrB,MAAO0qB,GAASlS,EAAOmS,GACvBS,aAAc,OAEhBC,gBAAiB,CACfC,QAAQ,MAEL9S,EACL9D,QAAQ,WACR0V,UAAWA,EACXjW,UAAWuC,IAGbjT,cAACunB,KAAY,CACXL,aAAcA,EACdjQ,GAAIlC,EAAMkC,GAAKlC,EAAMkC,GAAKlC,EAAM3W,QAC3B2W,EACL4R,UAAWA,EACX1V,QAAQ,WACRuW,WAAY,CACVG,aAAc,UAInB,E,yCCmGQG,OA3JsC5oB,IAU9C,IAV+C,KACpDd,EACA2pB,QAASC,EAAW,SACpBC,EAAQ,QACRnB,EAAO,aACPI,EAAY,MACZtlB,GAAQ,EAAK,aACbsmB,EAAe,GAAE,KACjBtrB,EAAO,YACJgY,GACJ1V,EAEC,MAAM6oB,EAAqB,OAAXC,QAAW,IAAXA,IAAe,GA+FzBG,EA9FaC,MACjB,IAAIC,EAAS,CACXC,WAAY,CACVC,QAAS,MACTlV,MAAO,OACPmV,aAAc,MACdC,gBAAiB,2BACjBC,OAAQ,EACRpV,OAAO,GAADjT,OAAc,UAATzD,EAAmB,OAAS,SAEzC+rB,GAAI,CACFjV,WAAY,yBACZkV,MAAO,OACPL,QAAS,EACTM,UAAW,SACXxV,MAAM,GAADhT,OAAK,IAAM0nB,EAAQpqB,OAAM,KAC9B4V,SAAU,QACVuV,OAAQ,iBACR1V,OAAQ,iBACR,gBAAiB,CACfoV,aAAc,eAEhB,eAAgB,CACdA,aAAc,eAEhB,qBAAsB,CACpBtV,QAAS,QACT6V,WAAY,OACZC,cAAe,OACfC,eAAgB,QAElB,aAAc,CACZ,qBAAsB,CACpBR,gBAAiB,cACjBS,WAAW,OAAD7oB,OAA0B,IAAjB0nB,EAAQpqB,OAAa,cACxCyW,MAAO,UAIb+U,SAAU,CAAC,EACXC,cAAe,CACb7V,SAAU,WACV,QAAS,CACP,eAAgB,CACd,WAAY,CACVL,QAAS,QACTK,SAAU,WACV8V,cAAe,OACfH,WAAW,OAAD7oB,OAA0B,IAAjB0nB,EAAQpqB,OAAa,UACxCyV,OAAQ,UACRoV,aAAc,MACdnV,MAAM,uBAADhT,OAAyB0nB,EAAQpqB,OAAM,KAC5C2V,OAAQ,mBACRmV,gBAAiB,UACjBC,OAAQ,UAqClB,OA/BAX,EAAQrS,KAAI,CAAC4T,EAAQzrB,KACnBwqB,EAAOM,GAAK,IACPN,EAAOM,GAER,CAAC,eAADtoB,OAAgBxC,EAAK,qCAAqC,CACxDwG,QAAS,KACToP,KAAK,wBAADpT,OAA0B0nB,EAAQpqB,OAAM,QAAA0C,OAAOxC,EAAQ,EAAC,QAAAwC,OAC1D,GAAKxC,EAAQ,GAAE,oBAGnB,CAAC,eAADwC,OAAgBxC,EAAK,sCAAsC,CACzDwG,QAAS,KACToP,KAAK,wBAADpT,OAA0B0nB,EAAQpqB,OAAM,QAAA0C,OAAOxC,EAAQ,EAAC,QAAAwC,OAC1D,GAAKxC,EAAQ,GAAE,oBAGnB,eAAgB,CACd,aAAc,CACZ,WAAY,CACVwG,QAAS,KACToP,KAAK,yCAADpT,OAA2C0nB,EAAQpqB,OAAM,kBAE/D,UAAW,CACT0G,QAAS,KACToP,KAAK,yCAADpT,OAA2C0nB,EAAQpqB,OAAM,oBAKtE,IAEI4rB,aAAWlB,EAAXkB,EAAoB,EAGbnB,GACVoB,EAAOzU,GACX/U,cAACypB,KAAiB,CAChBC,WAAW,KACP9U,KACAG,EACJrE,UAAS,GAAArQ,OAAK8nB,EAAQG,WAAU,KAAAjoB,OAAI8nB,EAAQiB,eAAgBjqB,SAE3D4oB,EAAQrS,KAAI,CAACiU,EAAK9rB,IACjBmC,cAAC4pB,KAAY,CAEXrtB,MAAOotB,EAAIptB,MACX0rB,SAAUA,EACVE,QAAS,CAAE0B,KAAM1B,EAAQQ,GAAImB,SAAU3B,EAAQgB,UAC/CY,eAAa,EAAA5qB,SAEZwqB,EAAInD,OANA3oB,OAYb,OACE4S,eAAAgF,WAAA,CAAAtW,SAAA,CACG2nB,EACC9mB,cAACgqB,KAAU,CACTrV,OAASI,GACPyU,EAAI,IACCzU,EACHkV,SAAUA,CAACnf,EAAQvO,KACH,OAAVA,GACFwY,EAAMkV,SAAS1tB,EACjB,IAINuqB,QAASA,EACT1oB,KAAMA,EACN8oB,aAAcA,IAGhBsC,EAAI,CAAC,GAEN5nB,GAAS5B,cAACkqB,KAAc,CAAA/qB,SAAE+oB,MAC1B,ECvIP,MAAMiC,GAAoBC,OAAaC,MAAM,CAC3CC,QAASF,OAEN5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,UAClCglB,SAAUJ,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,YAwJrBilB,OAtJ8CvrB,IAItD,IAJuD,UAC5DwrB,EAAS,QACTC,EAAO,WACPC,GACD1rB,EACC,MAAM,QAAEU,EAAO,YAAEG,GAAgBhB,IAE3B8rB,EAAOC,aAA0B,CACrCC,SAAUC,aAAYb,IACtBc,KAAM,cAGF,WAAE9R,GAAeQ,MAChBuR,EAAUC,GAAe1Z,oBAAS,GA6BzC,OACEzR,cAAAyV,WAAA,CAAAtW,SACEsR,eAAC4U,GAAM,CAACzM,KAAM8R,EAAWC,QAASA,IAAMA,IAAUxrB,SAAA,CAChDa,cAACkmB,GAAW,CAAA/mB,SAAC,iBACbsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAjCDrf,IACpBmf,GAAY,GACZ,IAAI/rB,EAAOQ,IAEXslB,GAAaC,YAAY,CACvBmF,QAASte,EAASse,QAClB7D,YAAaza,EAASya,YACtB+D,SAAUxe,EAASwe,SACnB3e,KAAM,IAAI0Y,KAAK,CAACnlB,EAAKksB,KAAK,SAAU,iBAAkB,CACpDzuB,KAAM,eAER+tB,WAAY1J,GAAY0C,cAAcgH,EAAY,oBAEjDjgB,MAAM4gB,IACLA,EACIpS,EAAW,8BAA+BlB,GAAYE,SACtDgB,EAAW,4BAA4B,IAE5CrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,IAE1BqT,SAAQ,KACPsY,GAAY,GACZR,GAAS,GACT,IAUEa,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCsR,eAACqV,GAAa,CAAA3mB,SAAA,CACZa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACN,UAAWkV,KAAW+F,aAAaxsB,SAAC,iEAIlDsR,eAACmb,KAAI,CACHhb,WAAS,EACTib,UAAU,SACVnb,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CAE1Ca,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAACmnB,GAAS,CACR/oB,KAAK,UACL4tB,WAAY,CAAEC,UAAW,IACzBtkB,YAAY,UACZukB,SAAUrB,EAAKsB,SACf/Y,OAAO,SACP8T,aAAY,YAAA7mB,OAAcN,KAC1B4mB,WAAS,EACT/kB,QAASipB,EAAK5d,OAAOqd,QACrB8B,WACEvB,EAAK5d,OAAOqd,QAAUO,EAAK5d,OAAOqd,QAAQ9qB,QAAU,SAM5DQ,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACumB,GAAW,CAACC,MAAM,cAAcE,YAAU,EAAAvnB,SACzCa,cAACmnB,GAAS,CACR/oB,KAAK,cACL8tB,SAAUrB,EAAKsB,SACfjF,kBAAc1qB,EACd4W,OAAO,SACPzL,YAAY,sBACZ0kB,WAAW,EACX1F,WAAS,EACT2F,KAAM,EACN1qB,QAASipB,EAAK5d,OAAOwZ,YACrB2F,WACEvB,EAAK5d,OAAOwZ,YACRoE,EAAK5d,OAAOwZ,YAAYjnB,QACxB,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAAC8nB,GAAa,CACZ1pB,KAAK,WACLxB,KAAK,QACLmrB,QAAS,CACP,CAAEvB,MAAO,WAAYjqB,MAAO,YAC5B,CAAEiqB,MAAO,OAAQjqB,MAAO,QACxB,CAAEiqB,MAAO,SAAUjqB,MAAO,UAC1B,CAAEiqB,MAAO,MAAOjqB,MAAO,QAEzB2qB,kBAAc1qB,EACdsqB,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAOud,SACrBtC,aACE2C,EAAK5d,OAAOud,SAAWK,EAAK5d,OAAOud,SAAShrB,QAAU,eAOlEQ,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CACjBkB,WAAS,EACTjB,QAASA,KACPiF,GAAS,MAIf3qB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC+lB,GAAgB,CACfY,WAAS,EACT1P,GAAG,sBACHgR,UAAW4C,EAAK2B,UAAUC,UAAY5B,EAAK2B,UAAUE,QACrDjjB,KAAK,WACLuc,QAASkF,IAAaN,kBAOjC,ECnJQ+B,OAjCkCztB,IAAqB,IAApB,WAAE0tB,GAAY1tB,EAC9D,MAAO2tB,EAAeC,GAAoBrb,oBAAS,IAC7C,MAAEwO,EAAK,eAAEG,GAAmBJ,KAGlC,OACEvP,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC+sB,KAAG,CACF9b,QAAQ,WACRyU,QAASA,KANQtF,EAAewM,EAAWzP,SASzC2P,GAAiB,EAAK,EAExB1Y,MAAM,UACN,aAAW,eACXxX,KAAM,QACN8T,UAAWC,KAAOwU,YAAYhmB,SAE9Ba,cAACgtB,KAAe,MAElBhtB,cAACyqB,GAAiB,CAChBC,UAAWmC,EACXlC,QAASA,KACPmC,GAAiB,EAAM,EAGzBlC,WAAiB,OAAL3K,QAAK,IAALA,IAAS,OAEtB,EC1CA,IAAKgN,GAAgB,SAAhBA,GAAgB,OAAhBA,IAAgB,mDAAhBA,IAAgB,uCAAhBA,IAAgB,iCAAhBA,CAAgB,MA8BbC,OAbcA,CAACxP,EAAoBC,KAChD,OAAQA,EAAO9gB,MACb,KAAKowB,GAAiBE,uBACpB,MAAO,IAAKzP,EAAO0P,iBAAkBzP,EAAOO,SAC9C,KAAK+O,GAAiBI,iBACpB,MAAO,IAAK3P,EAAO4P,WAAY3P,EAAOO,SACxC,KAAK+O,GAAiBM,cACpB,MAAO,IAAK7P,EAAOiJ,UAAWhJ,EAAOO,SACvC,QACE,OAAOR,EACX,ECvBK,MAAMe,GAA4B,CACvC2O,iBAAkB,GAClBE,YAAY,EACZ3G,WAAW,GAYP6G,GAAgB1uB,wBAAc,CAAC,GAqCxB2uB,GAAmBA,IAAMzuB,qBAAWwuB,IAElCE,OArCkBxuB,IAAmB,IAAlB,SAAEC,GAAUD,EAC5C,MAAOwe,EAAOwB,GAAYC,qBAAW+N,GAAezO,IAkBpD,OACEze,cAACwtB,GAAcvtB,SAAQ,CACrB1D,MAAO,CACLmhB,QACAwB,WACAyO,SArBWA,KACfzO,EAAS,CAAEriB,KAAMowB,GAAiBI,iBAAkBnP,SAAS,GAAO,EAqBhE0P,UAnBYA,KAChB1O,EAAS,CAAEriB,KAAMowB,GAAiBI,iBAAkBnP,SAAS,GAAQ,EAmBjE2P,WAjBaA,KACjB3O,EAAS,CACPriB,KAAMowB,GAAiBI,iBACvBnP,SAAUR,EAAM4P,YAChB,EAcEQ,aAZgBvxB,IACpB2iB,EAAS,CAAEriB,KAAMowB,GAAiBM,cAAerP,QAAS3hB,GAAQ,GAY9D4C,SAEDA,GACsB,E,8BCiCd4uB,OArFS,CACtBC,gBAAiB,mBACjBC,mCAAoC,uCACpCC,mCAAoC,uCACpCC,8BAA+B,kCAC/BC,iCAAkC,sCAClCC,0BAA2B,8BAC3BC,iCAAkC,qCAClCC,+BAAgC,mCAChCC,8BAA+B,kCAC/BC,wBAAyB,4BACzBC,yBAA0B,6BAC1BC,mCAAoC,uCACpCC,qBAAsB,wBACtBC,iCAAkC,qCAClCC,oCAAqC,wCACrCC,iCAAkC,qCAClCC,kCAAmC,sCACnCC,2BAA4B,+BAC5BC,uCACE,2CACFC,0CACE,8CACFC,qCACE,yCACFC,uCACE,2CACFC,oCAAqC,wCACrCC,qCACE,yCACFC,sCACE,0CACFC,+BAAgC,mCAChCC,2CACE,+CACFC,kCAAmC,sCACnCC,+BAAgC,mCAChCC,oCAAqC,wCACrCC,iCAAkC,qCAClCC,qCACE,yCACFC,kCAAmC,sCACnCC,+BAAgC,mCAChCC,+BAAgC,mCAChCC,qCACE,yCACFC,sCACE,0CACFC,qCACE,yCACFC,kCAAmC,sCACnCC,+BAAgC,mCAChCC,6BAA8B,iCAC9BC,8BAA+B,mCAC/BC,0BAA2B,8BAC3BC,wCACE,4CACFC,+CACE,mDACFC,qBAAsB,yBACtBC,0BAA2B,8BAC3BC,+BAAgC,mCAChCC,oCAAqC,wCACrCC,wCACE,4CACFC,8BAA+B,kCAC/BC,yBAA0B,8BAC1BC,uBAAwB,2BACxBC,uBAAwB,2BACxBC,uBAAwB,2BACxBC,sBAAuB,0BACvBC,iBAAkB,oBAClBC,uBAAwB,2BACxBC,iBAAkB,oBAClBC,yBAA0B,6BAC1BC,gCAAiC,oCACjCC,4BAA6B,gCAC7BC,6BAA8B,iCAC9BC,iCAAkC,qCAClCC,kCAAmC,sCACnCC,4BAA6B,gCAC7BC,iCAAkC,sCAClCC,8BAA+B,mCAC/BC,6BAA8B,kC,uCClDjBC,ICjCX,GAAO,GDiCIA,GAvBWnzB,IAAmB,IAAlB,SAAEC,GAAUD,EACrC,MACEwe,OAAO,WAAE4P,EAAU,UAAE3G,IACnB8G,KACE6E,EAAQC,eACR7xB,EAAW8xB,cACXC,EAAgBC,aAAcJ,EAAMK,YAAYC,GAAG,OAEzD,OACE5yB,cAAA,OACE0Q,UAAWmiB,aACa,MAAtBnyB,EAASoyB,SAAmBniB,KAAOoiB,YAAcpiB,KAAOtM,QACxD,CACE,CAACsM,KAAOqiB,aAAcP,GAAiBnF,EACvC,CAAC3c,KAAOgW,WAAYA,IAEtBxnB,SAEDA,GACG,E,mIC5BV,SAAS,KAAiS,OAApR,GAAWjB,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS6c,GAAQ/zB,EAAMyX,GACrB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,+lBACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,SAAU,CACpEO,GAAI,QACJC,GAAI,QACJC,EAAG,QACHT,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBmc,IAClC,IC9BX,GAAOC,GAAQC,GAAQC,GD8BZ,IC7Bf,SAAS,KAAiS,OAApR,GAAWl1B,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASid,GAAQn0B,EAAMyX,GACrB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,uQACHN,KAAM,aACHoc,KAAWA,GAAsB,gBAAoB,OAAQ,CAChE9b,EAAG,sIACHN,KAAM,aACHqc,KAAWA,GAAsB,gBAAoB,OAAQ,CAChE/b,EAAG,2JACHN,KAAM,aACHsc,KAAWA,GAAsB,gBAAoB,OAAQ,CAChEhc,EAAG,iMACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBuc,IAClC,IClCX,GAAO,GAAQ,GDkCJ,ICjCf,SAAS,KAAiS,OAApR,GAAWn1B,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASkd,GAAQp0B,EAAMyX,GACrB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTE,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,oLACA,KAAW,GAAsB,gBAAoB,OAAQ,CAChEA,EAAG,+NACA,KAAW,GAAsB,gBAAoB,OAAQ,CAChEA,EAAG,oMAEP,CACA,MAAM,GAA0B,aAAiBkc,IAClC,IC3BXC,GAAOC,GD2BI,IC1Bf,SAAS,KAAiS,OAApR,GAAWt1B,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASqd,GAAcv0B,EAAMyX,GAC3B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAMyzB,KAAUA,GAAqB,gBAAoB,OAAQ,CAC3Etc,GAAI,QACJ,YAAa,QACbyc,UAAW,iBACXC,EAAG,EACHC,EAAG,EACHvgB,MAAO,GACPC,OAAQ,IACM,gBAAoB,OAAQ,CAC1C4D,SAAU,UACVC,SAAU,UACVC,EAAG,wJACHN,KAAM,YACF0c,KAAOA,GAAkB,gBAAoB,IAAK,CACtDK,KAAM,eACQ,gBAAoB,OAAQ,CAC1C3c,SAAU,UACVC,SAAU,UACVC,EAAG,wJACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CI,SAAU,UACVC,SAAU,UACVC,EAAG,+VACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CI,SAAU,UACVC,SAAU,UACVC,EAAG,4OACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CI,SAAU,UACVC,SAAU,UACVC,EAAG,4IACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CI,SAAU,UACVC,SAAU,UACVC,EAAG,iOACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CI,SAAU,UACVC,SAAU,UACVC,EAAG,2uBACHN,KAAM,cAEV,CACA,MAAM,GAA0B,aAAiB2c,IAClC,ICnEX,GAAO,GAAQ,GAAQ,GAAQK,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GAASC,GAASC,GAASC,GDmEvF,IClEf,SAAS,KAAiS,OAApR,GAAWp2B,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASme,GAAYr1B,EAAMyX,GACzB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,wJACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,wJACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,wJACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,uTACHN,KAAM,aACHgd,KAAWA,GAAsB,gBAAoB,OAAQ,CAChE5c,SAAU,UACVC,SAAU,UACVC,EAAG,oDACHN,KAAM,aACHid,KAAWA,GAAsB,gBAAoB,OAAQ,CAChE7c,SAAU,UACVC,SAAU,UACVC,EAAG,gNACHN,KAAM,aACHkd,KAAWA,GAAsB,gBAAoB,OAAQ,CAChE9c,SAAU,UACVC,SAAU,UACVC,EAAG,mNACHN,KAAM,aACHmd,KAAWA,GAAsB,gBAAoB,OAAQ,CAChE/c,SAAU,UACVC,SAAU,UACVC,EAAG,0MACHN,KAAM,aACHod,KAAWA,GAAsB,gBAAoB,OAAQ,CAChEhd,SAAU,UACVC,SAAU,UACVC,EAAG,kfACHN,KAAM,aACHqd,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEjd,SAAU,UACVC,SAAU,UACVC,EAAG,4OACHN,KAAM,aACHsd,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEld,SAAU,UACVC,SAAU,UACVC,EAAG,4GACHN,KAAM,aACHud,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEnd,SAAU,UACVC,SAAU,UACVC,EAAG,mFACHN,KAAM,aACHwd,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEpd,SAAU,UACVC,SAAU,UACVC,EAAG,iFACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiByd,IAClC,Q,8DCpFf,MAAM5lB,GAAe,aAcN6lB,OAZM,CACnBC,OAAQA,IAAyBxoB,EAAa,GAAD5L,OAAIsO,KACjD+lB,gBAAiBA,IACfzoB,EAAa,GAAD5L,OAAIsO,GAAY,YAC9BgmB,YAAcC,GACZ3oB,EAAc,GAAD5L,OAAIsO,IAAgBimB,GACnCC,YAAcD,GACZ3oB,EAAa,GAAD5L,OAAIsO,IAAgBimB,GAClCE,YAAcC,GACZ9oB,EAAgB,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAI00B,KCwFxBC,OApF8C91B,IAEtD,IAFuD,UAC5DwR,GACDxR,EACC,MAAO+1B,EAAQC,GAAazjB,mBAAmB,KACxC0jB,GAAmB1jB,mBAAS,MAE7B2jB,EAAcA,KAClBZ,GAAaE,kBACV/pB,MAAMiB,GAAaspB,EAAUtpB,KAC7B9I,OAAM,IAAMoyB,EAAU,KAAI,EAa/B,OAVApiB,qBAAU,KAER,GADAsiB,IACID,GAAmBA,EAAkB,EAAG,CAC1C,MAAME,EAAWC,YAAYF,EAAaD,GAC1C,MAAO,IAAMI,cAAcF,EAC7B,IACC,CAACF,IAEJriB,qBAAU,QAAU,IAGlB9S,cAAAyV,WAAA,CAAAtW,SACG81B,EAAOt3B,OAAS,GACfqC,cAACw1B,KAAU,CACTvkB,QAAQ,UACRwkB,QAAQ,sBAAqBt2B,SAG3Bu2B,GACAjlB,eAAA,QAAAtR,SAAA,CACEa,cAACqmB,KAAU,CACTpP,GAAG,uBAEHvG,UAAS,GAAArQ,OAAKqQ,GAAYvR,SAE1Ba,cAAC21B,KAAK,CAEJC,aAAcX,EAAOt3B,OACrB+S,UAAWkV,KAAWiQ,SAClBC,uBAAYJ,GAAWv2B,SAE3Ba,cAAC+1B,KAAkB,CAEjBrlB,UAAWkV,KAAW+F,cADlB,uBANF,wBAJF,wBAgBN3rB,cAACg2B,KAAO,IAEFC,uBAAYP,GAChBjd,aAAc,CACZC,SAAU,SACVC,WAAY,UAEdud,gBAAiB,CACfxd,SAAU,MACVC,WAAY,UACZxZ,SAED81B,EAAOvf,KAAKie,IAAC,IAAAwC,EAAA,OACZ1lB,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CACF7F,MAAO,CAAEmjB,SAAU,QAEnBC,EAAG,EACH7lB,SAAU,IACV8lB,SAAU,IACVC,wBAAyB,CAAEC,OAAiB,QAAXL,EAAExC,EAAEn0B,eAAO,IAAA22B,IAAI,KAJ3CxC,EAAEoB,SAMT/0B,cAACy2B,KAAO,MAAAp2B,OAASszB,EAAEoB,QAAO,eACzB,KAtBD,mBAwBI,6BAAA10B,OA5C4Bq1B,EAAWD,WAHjD,wBAoDP,E,qBC1DQiB,OAvBOA,KACpB,MAAMpE,EAAQC,OACRoE,EAAKjE,aAAcJ,EAAMK,YAAYiE,KAAK,OAC1CC,EAAKnE,aAAcJ,EAAMK,YAAYiE,KAAK,OAC1CrK,EAAKmG,aAAcJ,EAAMK,YAAYiE,KAAK,OAC1CE,EAAKpE,aAAcJ,EAAMK,YAAYiE,KAAK,OAC1CG,EAAKrE,aAAcJ,EAAMK,YAAYiE,KAAK,OAEhD,MAAO,CACLD,KACAE,KACAtK,KACAuK,KACAC,KACAC,OAAQL,GAAME,EACdI,OAAQN,GAAME,GAAMtK,EACpB2K,QAASH,EACTI,MAAOR,EACPS,KAAM7K,GAAMuK,GAAMC,EAClBM,KAAMP,GAAMC,EACb,E,8BCucYO,IC5eX,GAAO,GAAQ,GAAQ,GAAQ,GAAQ,GD4e5BA,GAxcUA,KACvB,MAAMC,EAAUC,cACV92B,EAAW8xB,eACX,WACJ3E,EACAnQ,OAAO,UAAEiJ,IACP8G,MACG7U,EAAM6e,GAAWrmB,IAAMK,UAAS,GACjCimB,EAAYtmB,IAAM8L,OAA0B,OAC5C,SAAE9K,EAAQ,YAAEf,EAAW,SAAElC,EAAQ,OAAEqD,GAAWxT,qBAAWmS,GACzDwmB,EAAajB,MAEZkB,EAAiBC,GAAsBzmB,IAAMK,UAAS,GACvDqmB,EAAuB1mB,IAAM8L,OAA0B,OAEvD,MAAEQ,EAAK,SAAEwB,GAAaO,MACtB,gBAAE7D,GAAoB5c,qBAAW8c,IAEjCic,EAAeA,KACnBN,GAASO,IAAcA,GAAS,EAG5B7R,EAAe9I,IAEjBqa,EAAUva,SACVua,EAAUva,QAAQ8a,SAAS5a,EAAMnH,SAInCuhB,GAAQ,EAAM,EAGVS,EAA0BA,KAC9BL,GAAoBG,IAAcA,GAAS,EAGvCG,EAA0B9a,IAE5Bya,EAAqB3a,SACrB2a,EAAqB3a,QAAQ8a,SAAS5a,EAAMnH,SAI9C2hB,GAAmB,EAAM,EAGrBO,EAAkBjsB,IACtBorB,EAAQ93B,KAAK0M,GACbsrB,GAAQ,EAAM,EAGVY,EAAsBA,KAC1BnZ,EAAS,CAAEriB,KAAM2gB,GAAuBQ,iBAAkBE,QAAS,OACnEgB,EAAS,CACPriB,KAAM2gB,GAAuBa,yBAC7BH,QAAS,SAEXoa,EAA0B,IAAI,EAG1BA,EAA6BnsB,IACjCorB,EAAQ93B,KAAK0M,GACb0rB,GAAmB,GACnBJ,GAAQ,EAAM,EAGVc,EAAsBA,OACnBlnB,EAAY2D,SAAS+Y,GAAgBa,uBAC1Cvd,EAAY2D,SACV+Y,GAAgByB,wCAElBne,EAAY2D,SACV+Y,GAAgB2B,6CAEjBiI,EAAWV,QAAUvZ,EAAMO,iBAK1Bua,EAAgBA,KAAO,IAADC,EAAAC,EAC1B,OACEjoB,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACqI,KAAG,CAAA3Z,SAAA,CACDw4B,EAAWV,OACVj3B,cAAAyV,WAAA,IAEAhF,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACg1B,GAAiB,CAChBtkB,UAAS,GAAArQ,OAAKsQ,KAAOgoB,WAAU,KAAAt4B,OAAIsQ,KAAOioB,YAE5C54B,cAACqmB,KAAU,CACTpP,GAAG,gBACHvG,UAAWC,KAAOgoB,WAClBjT,QAASA,IACPjlB,OAAOmY,KAAK,UAADvY,OACCub,EACR1Y,EAAUgF,SAASE,iBAGxBjJ,SAEDa,cAAC64B,GAAQ,MAEX74B,cAACqmB,KAAU,CACTpP,GAAG,iBACHyO,QAASA,IAAMjlB,OAAOmY,KAAK,SAC3BlI,UAAS,GAAArQ,OAAKsQ,KAAOgoB,WAAU,KAAAt4B,OAAIsQ,KAAOioB,UAAWz5B,SAErDa,cAAC84B,GAAQ,MAEX94B,cAACqmB,KAAU,CACTpP,GAAG,cACHyO,QAASA,IAAM0S,EAAe,2BAC9B1nB,UAAS,GAAArQ,OAAKsQ,KAAOgoB,WAAU,KAAAt4B,OAAIsQ,KAAOioB,UAAWz5B,SAGrDa,cAAC+4B,KAAW,CAACroB,UAAWkV,KAAW+F,oBAIzC3rB,cAAAyV,WAAA,CAAAtW,SACGw4B,EAAWV,OACVxmB,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACg1B,GAAiB,CAChBtkB,UAAS,GAAArQ,OAAKsQ,KAAOgoB,WAAU,KAAAt4B,OAAIsQ,KAAOioB,YAE5C54B,cAACqmB,KAAU,CACTpP,GAAG,cACHvG,UAAWC,KAAOgoB,WAClB3hB,IAAK0gB,EACLhS,QAASqS,EAAa54B,SAErBue,EAAMO,gBACLje,cAAC21B,KAAK,CACJC,aAAa,IACbllB,UAAWC,KAAOklB,MAClBpd,aAAc,CACZC,SAAU,SACVC,WAAY,SACZxZ,SAEU,MAAXqT,EAAiBxS,cAACg5B,GAAc,IAAMh5B,cAACi5B,GAAY,MAEzC,MAAXzmB,EACFxS,cAACg5B,GAAc,IAEfh5B,cAACi5B,GAAY,SAKnBj5B,cAAC2lB,KAAM,CACL1O,GAAG,cACHD,IAAK0gB,EACLhS,QAASqS,EACTrnB,UAAWC,KAAOuoB,QAClBjR,UAAWsQ,IAAsBp5B,SAEjCsR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,SAAQhU,SAAA,CACzB,MAAXqT,EACCxS,cAACg5B,GAAc,CAACtoB,UAAWC,KAAOwoB,SAElCn5B,cAACi5B,GAAY,CAACvoB,UAAWC,KAAOwoB,SAElC1oB,eAACqI,KAAG,CAACpI,UAAWC,KAAOyoB,aAAaj6B,SAAA,CAClCa,cAAA,QACE0Q,UACwB,MAAtBhQ,EAASoyB,SACLniB,KAAO0oB,iBACP1oB,KAAOwB,SACZhT,SAEAiT,IAEHpS,cAAA,QACE0Q,UACwB,MAAtBhQ,EAASoyB,SACLniB,KAAO2oB,iBACP3oB,KAAOxB,SACZhQ,SAEAgQ,QAGHyJ,GACA5Y,cAACu5B,KAAc,CACbtmB,MAA6B,MAAtBvS,EAASoyB,SAAmB,CAAEhc,KAAM,SAAY,CAAC,IAG3D8B,GACC5Y,cAACw5B,KAAc,CACbvmB,MAA6B,MAAtBvS,EAASoyB,SAAmB,CAAEhc,KAAM,SAAY,CAAC,cAQrEyhB,KACCv4B,cAACy5B,KAAM,CACL7gB,KAAMA,EACN8gB,SAAUhC,EAAUva,QACpBwc,UAAMn9B,EACN0sB,YAAU,EACV0Q,UAAU,eACVlpB,UAAWC,KAAOkpB,OAClBC,UAAW,CACTC,KAAM,CACJC,SAAS,GAEXC,gBAAiB,CACfD,SAAS,EACTE,kBAAmB,iBAGvBC,eAAa,EACblnB,MAAO,CACLI,MACEqkB,EAAUva,UAAYwa,EAAWV,OAC7BS,EAAUva,QAAQid,YAAc,GAChC,OACNC,UAAW,QACXl7B,SAEDD,IAAA,IAAC,gBAAEo7B,EAAe,UAAEV,GAAW16B,EAAA,OAC9Bc,cAACu6B,KAAI,IACCD,EACJrnB,MAAO,CACLijB,gBACgB,WAAd0D,EAAyB,aAAe,iBAC1Cz6B,SAEFa,cAACw6B,KAAK,CAACvjB,GAAG,4BAA2B9X,SACnCa,cAACy6B,KAAiB,CAACC,YAAavU,EAAYhnB,SAC1CsR,eAACkqB,KAAQ,CAACC,cAAehiB,EAAMlI,UAAWC,KAAOkqB,KAAK17B,SAAA,CACnDkS,EAAY2D,SACX+Y,GAAgBa,uBAEhB5uB,cAAC86B,KAAQ,CACP7jB,GAAG,uBACHyO,QAASA,IAAM0S,EAAe,mBAAmBj5B,SAClD,mBAIFw4B,EAAWV,QAAUvZ,EAAMO,gBAC1BxN,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAA,OAAK0Q,UAAWC,KAAOoqB,YACvBtqB,eAACqqB,KAAQ,CACP7jB,GAAG,qBACHyO,QAASA,IACP4S,EAA0B,iBAC3Bn5B,SAAA,CACF,oBACmB,IACjBue,EAAMO,gBAAgB1L,UACpB5T,UAAU,EAAG,GACbq8B,oBACFtd,EAAMO,gBAAgB3L,SACpB3T,UAAU,EAAG,GACbq8B,uBAELh7B,cAAC86B,KAAQ,CACP7jB,GAAG,wBACHyO,QAASA,IACP4S,EAA0B,cAC3Bn5B,SACF,mBAGDa,cAAC86B,KAAQ,CACP7jB,GAAG,yBACHyO,QAASA,IAAM2S,IAAsBl5B,SACtC,wBAKFkS,EAAY2D,SACX+Y,GAAgByB,wCAEhBne,EAAY2D,SACV+Y,GAAgB2B,8CAElB1vB,cAAC86B,KAAQ,CACP7jB,GAAG,2BACHgR,SAAoC,OAA1BvK,EAAMO,gBAChByH,QAASA,IAAM0S,EAAe,cAAcj5B,SAC7C,eAKLa,cAAC86B,KAAQ,CACP7jB,GAAG,gBACHyO,QAASA,IACP3kB,EAAsB2B,cAAcK,UACrC5D,SACF,mBAMF,KAIXw4B,EAAWV,QACXvZ,EAAMO,kBACL5M,EAAY2D,SACX+Y,GAAgByB,wCAEhBne,EAAY2D,SACV+Y,GAAgB2B,8CAElBjf,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACkV,KAAM,CACL1O,GAAG,oBACHD,IAAK8gB,EACLpS,QAASwS,EACTxnB,UAAWC,KAAOuoB,QAAQ/5B,SAAA,CAES,OAAb,QAArBs5B,EAAA/a,EAAMO,uBAAe,IAAAwa,OAAA,EAArBA,EAAuBjmB,QACtBxS,cAACg5B,GAAc,CAACtoB,UAAWC,KAAOwoB,SAElCn5B,cAACi5B,GAAY,CAACvoB,UAAWC,KAAOwoB,SAElC1oB,eAACqI,KAAG,CAACpI,UAAWC,KAAOyoB,aAAaj6B,SAAA,CAClCa,cAAA,QACE0Q,UACwB,MAAtBhQ,EAASoyB,SACLniB,KAAO2oB,iBACP3oB,KAAOxB,SACZhQ,SACF,iBAGDa,cAAA,QACE0Q,UACwB,MAAtBhQ,EAASoyB,SACLniB,KAAO0oB,iBACP1oB,KAAOwB,SACZhT,SAEqB,QAFrBu5B,EAEAhb,EAAMO,uBAAe,IAAAya,OAAA,EAArBA,EAAuBtmB,cAG3BwlB,EACC53B,cAACw5B,KAAc,CACbvmB,MAA6B,MAAtBvS,EAASoyB,SAAmB,CAAEhc,KAAM,SAAY,CAAC,IAG1D9W,cAACu5B,KAAc,CACbtmB,MAA6B,MAAtBvS,EAASoyB,SAAmB,CAAEhc,KAAM,SAAY,CAAC,OAI9D9W,cAACy5B,KAAM,CACLxiB,GAAG,yBACH2B,KAAMgf,EACN8B,SAAU5B,EAAqB3a,QAC/Bwc,UAAMn9B,EACN0sB,YAAU,EACViR,eAAa,EACblnB,MAAO,CACLyV,OAAQ,EACRrV,MAAOykB,EAAqB3a,QACxB2a,EAAqB3a,QAAQid,YAAc,GAC3C,OACJC,UAAW,QACXl7B,SAEDwW,IAAA,IAAC,gBAAE2kB,EAAe,UAAEV,GAAWjkB,EAAA,OAC9B3V,cAACu6B,KAAI,IACCD,EACJrnB,MAAO,CACLijB,gBACgB,WAAd0D,EAAyB,aAAe,iBAC1Cz6B,SAEFa,cAACw6B,KAAK,CAAAr7B,SACJa,cAACy6B,KAAiB,CAACC,YAAavC,EAAuBh5B,SACrDsR,eAACkqB,KAAQ,CACPC,cAAehD,EACflnB,UAAWC,KAAOkqB,KAAK17B,SAAA,CAEvBa,cAAC86B,KAAQ,CACP7jB,GAAG,qBACHyO,QAASA,IACP4S,EAA0B,iBAC3Bn5B,SACF,gBAGDa,cAAC86B,KAAQ,CACP7jB,GAAG,wBACHyO,QAASA,IACP4S,EAA0B,cAC3Bn5B,SACF,mBAGDa,cAAC86B,KAAQ,CACP7jB,GAAG,yBACHyO,QAASA,IAAM2S,IAAsBl5B,SACtC,4BAMF,SAKhB,EAIP,OAAIw4B,EAAWhB,GAEX32B,cAAAyV,WAAA,CAAAtW,SACEsR,eAAA,OACEC,UACwB,MAAtBhQ,EAASoyB,SACLniB,KAAOsqB,iBACPtqB,KAAOuqB,aACZ/7B,SAAA,CAEDa,cAACqmB,KAAU,CAACX,QAASmI,EAAW1uB,SAC9Ba,cAACm7B,GAAQ,CAACrkB,KAAK,QAAQ7D,MAAO,CAAEmoB,WAAY,YAE9Cp7B,cAACgR,IAAU,CAACN,UAAWC,KAAO7Q,MAAMX,SAAC,YACpCq5B,SAOPx4B,cAAA,OACE0Q,UAAWmiB,aACa,MAAtBnyB,EAASoyB,SAAmBniB,KAAO0qB,WAAa1qB,KAAO2qB,OACvD,CACE,CAAC3qB,KAAOgW,WAAYA,IAEtBxnB,SAEDq5B,KACG,E,yCCveV,SAAS,KAAiS,OAApR,GAAWt6B,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASmlB,GAAWr8B,EAAMyX,GACxB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,i1BACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,sNACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,kPACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,oPACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,iPACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,gPACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBykB,IAClC,ICxCX,GAAO,GAAQ,GAAQ,GAAQ,GAAQ,GDwC5B,ICvCf,SAAS,KAAiS,OAApR,GAAWr9B,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASolB,GAAYt8B,EAAMyX,GACzB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,oUACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,sTACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,8aACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,iTACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,+TACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,gcACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiB0kB,IAClC,QCxCX,GAAO,GCAI,OAA0B,iCCA1B,OAA0B,sCFCzC,SAAS,KAAiS,OAApR,GAAWt9B,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASqlB,GAAWv8B,EAAMyX,GACxB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTE,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,muCACA,KAAW,GAAsB,gBAAoB,OAAQ,CAChEA,EAAG,oSAEP,CACA,MAAM,GAA0B,aAAiBqkB,IAClC,IG3BX,GAAO,GH2BI,IG1Bf,SAAS,KAAiS,OAApR,GAAWv9B,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASslB,GAAYx8B,EAAMyX,GACzB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTE,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,+VACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,o1BAEP,CACA,MAAM,GAA0B,aAAiBskB,IAClC,IC5BX,GAAOC,GAAQC,GAAQC,GAAQC,GAAQC,GAAQC,GD4BpC,IC3Bf,SAAS,KAAiS,OAApR,GAAW99B,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS6lB,GAAa/8B,EAAMyX,GAC1B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTE,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3E6zB,EAAG,QACHC,EAAG,EACHvgB,MAAO,GACPC,OAAQ,EACR4oB,GAAI,KACDP,KAAWA,GAAsB,gBAAoB,OAAQ,CAChEhI,EAAG,QACHC,EAAG,EACHvgB,MAAO,GACPC,OAAQ,EACR4oB,GAAI,KACDN,KAAWA,GAAsB,gBAAoB,OAAQ,CAChEjI,EAAG,QACHtgB,MAAO,EACPC,OAAQ,EACR4oB,GAAI,KACDL,KAAWA,GAAsB,gBAAoB,OAAQ,CAChElI,EAAG,QACHC,EAAG,GACHvgB,MAAO,EACPC,OAAQ,EACR4oB,GAAI,KACDJ,KAAWA,GAAsB,gBAAoB,OAAQ,CAChEnI,EAAG,QACHC,EAAG,QACHvgB,MAAO,QACPC,OAAQ,IACR4oB,GAAI,IACJlkB,UAAW,iCACR+jB,KAAWA,GAAsB,gBAAoB,OAAQ,CAChEpI,EAAG,OACHC,EAAG,QACHvgB,MAAO,QACPC,OAAQ,IACR4oB,GAAI,IACJlkB,UAAW,+BACRgkB,KAAWA,GAAsB,gBAAoB,OAAQ,CAChErI,EAAG,QACHC,EAAG,GACHvgB,MAAO,GACPC,OAAQ,EACR4oB,GAAI,KAER,CACA,MAAM,GAA0B,aAAiBD,IAClC,IChEX,GDgEW,IC/Df,SAAS,KAAiS,OAApR,GAAW/9B,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS+lB,GAAoBj9B,EAAMyX,GACjC,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTE,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,s0QAEP,CACA,MAAM,GAA0B,aAAiB+kB,IAClC,ICvBX,GDuBW,ICtBf,SAAS,KAAiS,OAApR,GAAWj+B,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASgmB,GAAoBl9B,EAAMyX,GACjC,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTE,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,21BAEP,CACA,MAAM,GAA0B,aAAiBglB,IAClC,ICzBX,GDyBW,ICxBf,SAAS,KAAiS,OAApR,GAAWl+B,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASimB,GAAcn9B,EAAMyX,GAC3B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTE,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,i7CAEP,CACA,MAAM,GAA0B,aAAiBilB,IAClC,ICzBX,GAAO,GAAQ,GAAQ,GDyBZ,ICxBf,SAAS,KAAiS,OAApR,GAAWn+B,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASkmB,GAAap9B,EAAMyX,GAC1B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTE,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3E6zB,EAAG,EACHC,EAAG,QACHvgB,MAAO,QACPC,OAAQ,QACR4oB,GAAI,QACJK,YAAa,OACV,KAAW,GAAsB,gBAAoB,OAAQ,CAChE5I,EAAG,QACHC,EAAG,QACHvgB,MAAO,QACPC,OAAQ,QACR4oB,GAAI,QACJK,YAAa,OACV,KAAW,GAAsB,gBAAoB,OAAQ,CAChE5I,EAAG,QACHC,EAAG,EACHvgB,MAAO,QACPC,OAAQ,GACR4oB,GAAI,QACJK,YAAa,OACV,KAAW,GAAsB,gBAAoB,OAAQ,CAChE5I,EAAG,QACHC,EAAG,EACHvgB,MAAO,QACPC,OAAQ,GACR4oB,GAAI,QACJK,YAAa,OAEjB,CACA,MAAM,GAA0B,aAAiBD,IAClC,ICjDX,GAAO,GDiDI,IChDf,SAAS,KAAiS,OAApR,GAAWp+B,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASomB,GAAWt9B,EAAMyX,GACxB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTE,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,2hKACA,KAAW,GAAsB,gBAAoB,OAAQ,CAChEF,SAAU,UACVC,SAAU,UACVC,EAAG,6vBAEP,CACA,MAAM,GAA0B,aAAiBolB,IAClC,ICiXAC,OAhYkB,CAC/B,CACE7mB,KAAM,gBACNxX,KAAM,eACNyX,OAAO,EACP6mB,KAAM18B,cAAC28B,GAAW,IAClBrnB,MAAO,CACL,CACEM,KAAM,+BACNxX,KAAM,kBACNyX,OAAO,EACPP,MAAO,GACPZ,WAAYqZ,GAAgB+B,kCAE9B,CACEla,KAAM,oBACNxX,KAAM,qBACNyX,OAAO,EACPP,MAAO,GACPsnB,cAAe,0BACfloB,WAAYqZ,GAAgBiC,mCAE9B,CACEpa,KAAM,0BACNxX,KAAM,uBACNyX,OAAO,EACPP,MAAO,GACPZ,WAAYqZ,GAAgBqC,uCAE9B,CACExa,KAAM,GACNxX,KAAM8E,EAAU0F,kBAAkBF,WAClCmN,OAAO,EACPP,MAAO,GACPunB,YAAY,EACZnoB,WAAYqZ,GAAgByC,8BAE9B,CACE5a,KAAM,mCACNxX,KAAM,sBACNyX,OAAO,EACPP,MAAO,GACPZ,WAAYqZ,GAAgBgC,wCAIlC,CACEna,KAAM,YACNxX,KAAM,WACNs+B,KAAM18B,cAAC88B,GAAY,IACnBjnB,OAAO,EACPP,MAAO,CACL,CACEM,KAAM,0BACNxX,KAAM,iBACNyX,OAAO,EACPP,MAAO,GACPZ,WAAYqZ,GAAgBwD,uBAE9B,CACE3b,KAAM,2BACNxX,KAAM,kBACNyX,OAAO,EACPP,MAAO,GACPZ,WAAYqZ,GAAgBqD,wBAE9B,CACExb,KAAM,6BACNxX,KAAM,qBACNyX,OAAO,EACPP,MAAO,GACPZ,WAAYqZ,GAAgBoD,0BAE9B,CACEvb,KAAM,qBACNxX,KAAM,WACNyX,OAAO,EACPP,MAAO,GACPZ,WAAYqZ,GAAgByD,kBAE9B,CACE5b,KAAM,2BACNxX,KAAM,kBACNyX,OAAO,EACPP,MAAO,GACPZ,WAAYqZ,GAAgBuD,wBAE9B,CACE1b,KAAM,iBACNxX,KAAM,YACNyX,OAAO,EACPP,MAAO,IAET,CACEM,KAAM,2BACNxX,KAAM,kBACNyX,OAAO,EACPP,MAAO,GACPZ,WAAYqZ,GAAgBsD,wBAE9B,CACEzb,KAAM,iBACNxX,KAAM,sBACNyX,OAAO,EACPP,MAAO,GACPZ,WAAYqZ,GAAgB0D,0BAIlC,CACE7b,KAAM,cACNxX,KAAM,cACNs+B,KAAM18B,cAAC+8B,GAAa,IACpBlnB,OAAO,EACPP,MAAO,CACL,CACEM,KAAM,yBACNxX,KAAM,iBACNkX,MAAO,GACPZ,WAAYqZ,GAAgBgD,gCAE9B,CACEnb,KAAM,+BACNxX,KAAM,uBACNkX,MAAO,GACPZ,WAAYqZ,GAAgBiD,qCAE9B,CACEpb,KAAM,kBACNxX,KAAM,0BACNkX,MAAO,GACPZ,WAAYqZ,GAAgB8C,sBAE9B,CACEjb,KAAM,oBACNxX,KAAM,YACNkX,MAAO,GACPZ,WAAYqZ,GAAgB2C,2BAE9B,CACE9a,KAAM,sBACNxX,KAAM,gBACNkX,MAAO,GACPZ,WAAYqZ,GAAgBmD,+BAE9B,CACEtb,KAAM,sBACNxX,KAAM,eACNkX,MAAO,GACPZ,WAAYqZ,GAAgB+C,2BAE9B,CACElb,KAAM,2BACNxX,KAAM,gBACNkX,MAAO,GACPZ,WAAYqZ,GAAgBoE,+BAE9B,CACEvc,KAAM,wBACNxX,KAAM,oBACNkX,MAAO,IAET,CACEM,KAAM,gCACNxX,KAAM,oBACNkX,MAAO,GACPZ,WAAYqZ,GAAgBE,sCAIlC,CACErY,KAAM,oBACNxX,KAAM,oBACNs+B,KAAM18B,cAACg9B,GAAoB,IAC3BnnB,OAAO,EACPP,MAAO,CACL,CACEM,KAAM,+BACNxX,KAAM,aACNkX,MAAO,IAET,CACEM,KAAM,+BACNxX,KAAM,aACNkX,MAAO,GACPZ,WAAYqZ,GAAgB4B,mCAE9B,CACE/Z,KAAM,GACNxX,KAAM8E,EAAU0F,kBAAkBC,QAClCyM,MAAO,GACPunB,YAAY,EACZnoB,WAAYqZ,GAAgB6B,gCAE9B,CACEha,KAAM,0BACNxX,KAAM,eACNkX,MAAO,GACPZ,WAAYqZ,GAAgB8B,uCAIlC,CACEja,KAAM,kBACNxX,KAAM,oBACNs+B,KAAM18B,cAACi9B,GAAoB,IAC3BpnB,OAAO,EACPP,MAAO,CACL,CACEM,KAAM,+BACNxX,KAAM,cACNyX,OAAO,EACPP,MAAO,GACPsnB,cAAe,4CACfloB,WAAYqZ,GAAgBoB,2CAE9B,CACEvZ,KAAM,yBACNxX,KAAM,mBACNyX,OAAO,EACPP,MAAO,GACPZ,WAAYqZ,GAAgBqB,sCAE9B,CACExZ,KAAM,wBACNxX,KAAM,qBACNyX,OAAO,EACPP,MAAO,GACPZ,WAAYqZ,GAAgBmB,0CAIlC,CACEtZ,KAAM,aACNxX,KAAM,YACNs+B,KAAM18B,cAACk9B,GAAa,IACpB5nB,MAAO,CACL,CACEM,KAAM,0BACNxX,KAAM,gBACNkX,MAAO,GACPZ,WAAYqZ,GAAgB+D,8BAE9B,CACElc,KAAM,uBACNxX,KAAM,gCACNkX,MAAO,IAET,CACEM,KAAM,sBACNxX,KAAM,qBACNkX,MAAO,GACPZ,WAAYqZ,GAAgBiE,mCAE9B,CACEpc,KAAM,uBACNxX,KAAM,oBACNyX,OAAO,EACPP,MAAO,GACPZ,WAAYqZ,GAAgBgE,kCAE9B,CACEnc,KAAM,mBACNxX,KAAM,YACNkX,MAAO,GACPZ,WAAYqZ,GAAgB4D,0BAE9B,CACE/b,KAAM,2BACNxX,KAAM,qBACNkX,MAAO,GACPZ,WAAYqZ,GAAgBmE,kCAE9B,CACEtc,KAAM,yBACNxX,KAAM,eACNkX,MAAO,GACPZ,WAAYqZ,GAAgB8D,6BAE9B,CACEjc,KAAM,6BACNxX,KAAM,sBACNkX,MAAO,GACPZ,WAAYqZ,GAAgB6D,iCAE9B,CACEhc,KAAM,yBACNxX,KAAM,kBACNkX,MAAO,GACPZ,WAAYqZ,GAAgB+D,gCAIlC,CACElc,KAAM,cACNxX,KAAM,aACNs+B,KAAM18B,cAACm9B,GAAc,IACrB7nB,MAAO,CACL,CACEM,KAAM,sBACNxX,KAAM,iBACNkX,MAAO,IAET,CACEM,KAAM,+BACNxX,KAAM,mBACNkX,MAAO,IAET,CACEM,KAAM,mBACNxX,KAAM,WACNkX,MAAO,IAET,CACEM,KAAM,uBACNxX,KAAM,qBACNkX,MAAO,MAIb,CACEM,KAAM,YACNxX,KAAM,WACNs+B,KAAM18B,cAACo9B,GAAW,IAClB9nB,MAAO,CACL,CACEM,KAAM,oBACNxX,KAAM,kBACNkX,MAAO,GACPZ,WAAYqZ,GAAgBI,+BAE9B,CACEvY,KAAM,iBACNxX,KAAM,qBACNkX,MAAO,GACPZ,WAAYqZ,GAAgBK,kCAE9B,CACExY,KAAM,sBACNxX,KAAM,qBACNkX,MAAO,GACPZ,WAAYqZ,GAAgBO,kCAE9B,CACE1Y,KAAM,oBACNxX,KAAM,mBACNkX,MAAO,GACPZ,WAAYqZ,GAAgBQ,gCAE9B,CACE3Y,KAAM,qBACNxX,KAAM,YACNkX,MAAO,GACPZ,WAAYqZ,GAAgBU,yBAE9B,CACE7Y,KAAM,sBACNxX,KAAM,aACNkX,MAAO,GACPZ,WAAYqZ,GAAgBW,0BAE9B,CACE9Y,KAAM,mBACNxX,KAAM,kBACNkX,MAAO,GACPZ,WAAYqZ,GAAgBS,+BAG9B,CACE5Y,KAAM,oBACNxX,KAAM,uBACNkX,MAAO,GACPZ,WAAYqZ,GAAgBY,oCAE9B,CACE/Y,KAAM,wBACNxX,KAAM,uBACNkX,MAAO,GACPZ,WAAYqZ,GAAgBG,uCCjYrBmP,OAJaA,IACnBr+B,qBAAW8c,ICyCLwhB,OAtCWA,KACxB,MAAOC,EAAQC,GAAa/rB,mBAAmB,KACzC,gBAAEmK,GAAoByhB,KAEtBI,EAAuBC,IAAmC,IAADC,EAAAC,EAC7D,OAAQF,EAAct/B,MACpB,KAAK8E,EAAU0F,kBAAkBF,WAC/B,MAAO,IACFg1B,EACH9nB,KAAoD,QAAhD+nB,EAAE/hB,EAAgB1Y,EAAUgF,SAASQ,mBAAW,IAAAi1B,IAAI,IAG5D,KAAKz6B,EAAU0F,kBAAkBC,QAC/B,MAAO,IACF60B,EACH9nB,KAAoD,QAAhDgoB,EAAEhiB,EAAgB1Y,EAAUgF,SAASS,mBAAW,IAAAi1B,IAAI,IAE5D,QACE,OAAOF,EACX,EAgBF,OAbA5qB,qBAAU,KACR,MAAMyqB,EAASd,GAAe/mB,KAAKmU,IAAI,IAAAgU,EAAA,MAAM,IACxChU,EACHvU,MAAiB,QAAZuoB,EAAEhU,EAAKvU,aAAK,IAAAuoB,OAAA,EAAVA,EAAYC,QAAO,CAACC,EAAeC,IACjCA,EAAKnB,YAA4B,KAAdmB,EAAKpoB,KAC3B,IAAImoB,EAAKN,EAAoBO,IAC7B,IAAID,EAAKC,IACZ,IACJ,IAEDR,EAAUD,EAAO,GAChB,IAEI,CAAEA,SAAQ,E,iFCfnB,MAAMU,GAA6C/+B,IAW5C,IAX6C,KAClDd,EAAI,KACJwX,EAAI,cACJgnB,EAAa,KACbF,EAAI,MACJ7mB,EAAK,MACLP,EAAK,UACL4oB,EAAS,GACTjnB,EAAE,YACFknB,EAAW,WACXtB,GACD39B,EACC,MACEwe,OAAO,WAAE4P,GAAY,WACrBO,GACEJ,KACE2Q,EAAe9oB,GAASA,EAAM3X,OAAS,EACvC45B,EAAUC,cACVlF,EAAQC,eACRE,EAAgBC,aAAcJ,EAAMK,YAAYC,GAAG,OACnDlyB,EAAW8xB,cAEjB,IAAItO,EAAQma,YAAc,CACxBzoB,KAAMA,EACN0oB,QAAQ,EACRC,WAAW,IAGTC,EAAmBH,YAAc,CACnCzoB,KAAMgnB,EACN0B,QAAQ,EACRC,WAAW,IAGb,MAAOE,EAAQC,GAAajtB,oBAAS,GAErCqB,qBAAU,KACR4rB,IAAYxa,EAAM,GACjB,CAACA,EAAOxjB,EAAUy9B,IAErB,MAoBMQ,EAAeP,EACnB3tB,eAACmuB,KAAQ,CACP3nB,GAAM,OAAFA,QAAE,IAAFA,OAAE,EAAFA,EAAI4nB,QAAQ,KAAM,KACtBC,QAAM,EACNpuB,UAAS,GAAArQ,OAAKsQ,KAAOouB,SAAQ,KAAA1+B,OAC3Bo+B,EAAS9tB,KAAOquB,sBAAmBxiC,GAErCkpB,QAASA,KA1BN4H,GAEOmF,GAAiByL,GAC3BrQ,IAFAA,SAIG3J,GAAOwa,GAAWD,KAsBrBQ,gBAAc,EAAA9/B,SAAA,CAEbu9B,GAAQ18B,cAACk/B,KAAY,CAAA//B,SAAEu9B,IACvBpP,GAActtB,cAACm/B,KAAY,CAACC,QAAShhC,EAAMihC,OAAK,OAGnDr/B,cAACs/B,IAAO,CACNpqB,GAAI2nB,EAAa,GAAKjnB,EACtBC,MAAOA,EACPsT,SAAUA,MAAQjF,KAAWsa,EAC7B9tB,UAAWwtB,EAAS,GAAA79B,OAAMsQ,KAAOiS,KAAI,KAAAviB,OAAIsQ,KAAO4uB,gBAAc/iC,EAC9DgjC,gBAAiB7uB,KAAO8uB,WACxB/Z,QA/BoBga,KACjBjN,GACH5E,IAEEgP,EACFp8B,OAAOmY,KAAKhD,EAAM,UAElB2hB,EAAQ93B,KAAKmW,EACf,EAuB2BzW,SAEzBsR,eAACmuB,KAAQ,CACP3nB,GAAM,OAAFA,QAAE,IAAFA,OAAE,EAAFA,EAAI4nB,QAAQ,KAAM,KACtBC,QAAM,EACNpuB,UAAWC,KAAOgvB,eAClBC,oBAAkB,EAAAzgC,SAAA,CAEjBu9B,GAAQ18B,cAACk/B,KAAY,CAAA//B,SAAEu9B,IACvBpP,GAActtB,cAACm/B,KAAY,CAACC,QAAShhC,EAAMgW,MAAM,UAAUirB,OAAK,SAKjEQ,EAAmBzB,EACvBp+B,cAAC8/B,KAAQ,CACPC,GAAIzS,GAAcmR,EAClBuB,QAAQ,OACRC,eAAa,EACbvvB,UAAWC,KAAOuvB,SAAS/gC,SAE3Ba,cAACmgC,KAAI,CAACrqB,UAAU,MAAMsqB,gBAAc,EAAAjhC,SACjCmW,GACCA,EAAMI,KAAKqW,GACT/rB,cAACi+B,GAAY,CAEXhnB,GAAI8U,EAAK3tB,QACL2tB,EACJmS,WAAW,GAHNnS,EAAK3tB,YAQlB,KAEJ,OACEqS,eAAAgF,WAAA,CAAAtW,SAAA,CACGw/B,EACAkB,IACA,EAIQ5B,UCzHf,MAEMoC,GAAY9W,cAAW,IAC3B+W,aAAa,CACXtN,WAAY,CACV3f,MAAOktB,QACP/sB,IAAK,EACLgtB,KAAM,WACNltB,OAAQ,OACRJ,QAAS,OACTutB,QAAS,EACT/X,OAAQ,KACRnV,SAAU,QACVW,UAAW,OACXF,cAAe,UAEjB0sB,YAAa,CACXC,UAAW,SACXttB,MAAO,YAiPEutB,OA5OYA,KACzB,MAAMvuB,EAAOrT,qBAAWmS,GAClBomB,EAAUC,cACVrP,EAAUkY,MACV,OAAE9C,GAAWD,MACb,gBAAE1hB,GAAoBxK,IAAMpS,WAAW8c,KACtCqiB,EAAa0C,GAAkBpvB,mBAAS,IAAI1T,MAC7C45B,EAAajB,MAEjBhZ,OAAO,WAAE4P,GAAY,SACrBK,EAAQ,UACRC,EAAS,WACTC,GACEJ,KAEJ3a,qBAAU,KACJ6kB,EAAWN,KACb1J,IAEAC,GACF,GACC,CAAC+J,EAAWN,OAEf,MAAMyJ,EAAmBA,CAACC,EAAe/C,IACvCA,EAAKtpB,YAAgBrC,EAAKhB,YAAYqL,MAAM2Z,GAAMA,IAAM2H,EAAKtpB,aACzD,IAAIqsB,EAAK/C,GACT,IAAI+C,GAEJC,EAAgBzD,EACnB7nB,KACEurB,IAAK,IAAAC,EAAA,MACH,IACID,EACH3rB,MAAkB,QAAb4rB,EAAED,EAAM3rB,aAAK,IAAA4rB,OAAA,EAAXA,EAAapD,OAAiBgD,EAAkB,IACxD,IAEJK,QAAQF,GAAUA,EAAM3rB,OAAS2rB,EAAM3rB,MAAM3X,OAAS,IAEnDy6B,EAAkBjsB,IACtBorB,EAAQ93B,KAAK0M,GACbyhB,GAAW,EAGPwT,EACJphC,cAACqhC,KAAS,CACRC,gCAA8B,EAC9BC,aAAc,CAAEtuB,MAAO,CAAEK,OAAQ,SAAWnU,SAE5CsR,eAAA,OACEC,UAAS,GAAArQ,OAAKsQ,KAAO6wB,cAAa,KAAAnhC,OAChCitB,EAAa3c,KAAO8wB,kBAAoB,MACvCtiC,SAAA,CAEHa,cAAC0hC,IAAI,CACHzqB,GAAG,iBACH/B,GAAG,IACHwQ,QAASA,IAAM4H,GAAcqK,EAAWX,QAAUpJ,IAAYzuB,SAE7DmuB,EACCttB,cAAA,OAAK6Q,IAAKC,GAAMC,IAAI,UAAUL,UAAWC,KAAOG,OAEhD9Q,cAAA,OAAK6Q,IAAK8wB,GAAU5wB,IAAI,UAAUL,UAAWC,KAAOixB,eAGxD5hC,cAACmgC,KAAI,CAACzvB,UAAWC,KAAOkxB,KAAK1iC,SAC1B6hC,EAActrB,KAAKurB,GAEhBjhC,cAACi+B,GAAY,CAEXhnB,GAAIgqB,EAAM7iC,QACN6iC,EACJ9C,YAAaA,GAHR8C,EAAM7iC,UAQnBqS,eAAA,OAAKC,UAAWC,KAAOmxB,sBAAsB3iC,SAAA,EACzCw4B,EAAWN,OACV/J,EACC7c,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACkV,KAAM,CACL1O,GAAG,gBACH8qB,kBAAgB,EAChBrxB,UAAWC,KAAOqxB,YAClB/wB,QAAQ,YACRyU,QAASA,IACPjlB,OAAOmY,KAAK,UAADvY,OACCub,EACR1Y,EAAUgF,SAASE,iBAGxBjJ,SAAA,CAEDa,cAAC64B,GAAQ,IAAG,WAEdpoB,eAACkV,KAAM,CACL1O,GAAG,cACH8qB,kBAAgB,EAChBrxB,UAAWC,KAAOqxB,YAClB/wB,QAAQ,YACRyU,QAASA,IAAMjlB,OAAOmY,KAAK,SAASzZ,SAAA,CAEpCa,cAAC84B,GAAQ,IAAG,WAGdroB,eAACkV,KAAM,CACL1O,GAAG,cACH8qB,kBAAgB,EAChBrxB,UAAWC,KAAOqxB,YAClB/wB,QAAQ,YACRyU,QAASA,IAAM0S,EAAe,2BAA2Bj5B,SAAA,CAEzDa,cAACiiC,GAAW,IAAG,iBAInBxxB,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACqmB,KAAU,CACTpP,GAAG,qBACHyO,QAASA,IACPjlB,OAAOmY,KAAK,UAADvY,OACCub,EACR1Y,EAAUgF,SAASE,iBAIzBsI,UAAWC,KAAOuxB,gBAAgB/iC,SAElCa,cAAC64B,GAAQ,CAACnoB,UAAWC,KAAOuxB,oBAE9BliC,cAACqmB,KAAU,CACTpP,GAAG,qBACHvG,UAAWC,KAAOuxB,gBAClBxc,QAASA,IAAMjlB,OAAOmY,KAAK,SAASzZ,SAEpCa,cAAC84B,GAAQ,CAACpoB,UAAWC,KAAOuxB,oBAE9BliC,cAACqmB,KAAU,CACTpP,GAAG,qBACHvG,UAAWC,KAAOuxB,gBAClBxc,QAASA,IAAM0S,EAAe,2BAA2Bj5B,SAEzDa,cAACiiC,GAAW,CAACvxB,UAAWC,KAAOuxB,wBAItC5U,EACC7c,eAACkV,KAAM,CACL1O,GAAG,qBACH8qB,kBAAgB,EAChBrxB,UAAWC,KAAOqxB,YAClB/wB,QAAQ,YACRyU,QAASA,IACPjlB,OAAOmY,KACLgD,EAAgB1Y,EAAUgF,SAASC,cACnC,UAEHhJ,SAAA,CAEDa,cAACmiC,GAAY,IAAG,eAGlBniC,cAACqmB,KAAU,CACTpP,GAAG,qBACHyO,QAASA,IACPjlB,OAAOmY,KACLgD,EAAgB1Y,EAAUgF,SAASC,cACnC,UAGJuI,UAAWC,KAAOuxB,gBAAgB/iC,SAElCa,cAACmiC,GAAY,CAACzxB,UAAWC,KAAOuxB,4BAQtCtxB,OACOpU,IAAXiE,OAAuB,IAAMA,OAAOggB,SAAS/T,UAAOlQ,EAStD,OACEiU,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACoiC,KAAM,CAACC,MAAI,EAAAljC,SACVa,cAACqlB,KAAM,CACLid,mBAAoB,IACpB1xB,UAAWA,EACXK,QAAQ,YACR2H,KAAM0U,EACN3C,QAASA,KACPkW,EAAe,IAAI9iC,MACnB8vB,GAAY,EAEd1F,QAAS,CACP0B,KAAMlZ,KAAOywB,OACbmB,MAAO5xB,KAAO6xB,aAEhBC,WAAY,CACVC,aAAa,GACbvjC,SAEDiiC,MAGLphC,cAACoiC,KAAM,CAACO,QAAM,EAAAxjC,SACZa,cAACy6B,KAAiB,CAACC,YA/BDkI,KAClBtV,IAAeqK,EAAWN,OAC5BzJ,IACAiT,EAAe,IAAI9iC,MACrB,EA2BoDoB,SAC9Ca,cAACqlB,KAAM,CACLid,mBAAoB,IACpBna,QAAS,CACP0B,KAAMlZ,KAAOywB,OACbmB,MAAOjV,EAAa3c,KAAO6xB,YAAc7xB,KAAO+vB,aAElDhwB,UAAWmiB,aAAK,CACd,CAAC1K,EAAQ6K,YAAa1F,IAAeqK,EAAWN,KAChD,CAAClP,EAAQuY,cAAepT,IAE1Brc,QAAQ,YACR2H,KAAM0U,EAAWnuB,SAEhBiiC,UAIN,E,qBCtNQyB,ICtEX,GAAO,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAS,GAAS,GAAS,GAASC,GAASC,GAASC,GAASC,GAASC,GAASC,GAASC,GAASC,GAASC,GAASC,GAASC,GAASC,GAASC,GAASC,GAASC,GAASC,GAASC,GAAS,GAASC,GAAUC,GAAUC,GAAUC,GAAUC,GAAUC,GDsEpTvB,GApDU3jC,IAAiB,IAAhB,SAACC,GAASD,EAClC,MAAMozB,EEyBC+R,aAAY,CACjB1R,YAAa,CACXhO,OAAQ,CACNgS,GAAI2N,OAAOC,KAAUC,cACrB3N,GAAIyN,OAAOC,KAAUE,cACrBlY,GAAI+X,OAAOC,KAAUG,cACrB5N,GAAIwN,OAAOC,KAAUI,cACrB5N,GAAIuN,OAAOC,KAAUK,gBAGzBC,QAAS,CACPhoC,KAAM,QACNuiC,QAAS,CACP0F,KAAMP,KAAUQ,cAElBC,UAAW,CACTF,KAAMP,KAAUU,gBAElBC,QAAS,CACPJ,KAAMP,KAAUY,cAElBzxB,WAAY,CACV0xB,QAASb,KAAUc,wBAErB1nB,OAAQ,CACNmM,SAAUya,KAAUe,yBACpBC,MAAOhB,KAAUiB,wBAGrBC,WAAY,CACVC,WAAY,wBACZC,GAAI,CACFD,WAAY,qBACZE,UAAW,SACXC,WAAY,IACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,WACf1xB,aAAc,MACd,4BAA6B,CAC3B2xB,UAAW,OACX5P,SAAU,SAGd6P,GAAI,CACFP,WAAY,qBACZE,UAAW,SACXC,WAAY,IACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,WACf1xB,aAAc,OACdgmB,UAAW,OAEb6L,GAAI,CACFR,WAAY,qBACZE,UAAW,SACXC,WAAY,IACZzP,SAAU,OACV+P,UAAW,OACXJ,cAAe,YAEjBK,GAAI,CACFV,WAAY,YACZE,UAAW,SACXC,WAAY,OACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,YAEjBM,UAAW,CACTX,WAAY,YACZE,UAAW,SACXC,WAAY,IACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,YAEjBO,UAAW,CACTZ,WAAY,YACZE,UAAW,SACXC,WAAY,SACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,YAEjBQ,MAAO,CACLb,WAAY,YACZE,UAAW,SACXC,WAAY,IACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,YAEjBS,MAAO,CACLd,WAAY,YACZE,UAAW,SACXC,WAAY,IACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,YAEjBU,QAAS,CACPf,WAAY,YACZE,UAAW,SACXC,WAAY,IACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,aAGnBW,UAAW,CACTC,cAAe,CACbC,mBAAoB,CAClBxyB,MAAO,YAGXyyB,QAAS,CACP,eAAgB,CACdxzB,MAAO,OACPD,OAAQ,EACRmV,QAAS,GAEX,eAAgB,CACdlV,MAAO,OACPD,OAAQ,EACRmV,QAAS,GAEX,eAAgB,CACdlV,MAAO,OACPD,OAAQ,EACRmV,QAAS,GAEX,eAAgB,CACdlV,MAAO,OACPD,OAAQ,EACRmV,QAAS,GAEX,eAAgB,CACdlV,MAAO,OAEPD,OAAQ,EACRmV,QAAS,IAGbhD,UAAW,CACTgd,MAAO,CACL/Z,aAAc,oBACdnV,MAAO,MACPijB,SAAU,QACV,4BAA6B,CAC3B9N,aAAc,MACdnV,MAAO,OACPijB,SAAU,WAIhBwQ,UAAW,CACTvE,MAAO,CACL/Z,aAAc,IAGlBue,eAAgB,CACdld,KAAM,CACJtB,QAAS,qBACT,OAAQ,CACNmd,WAAY,wBACZE,UAAW,SACXC,WAAY,IACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,YAEjB,cAAe,CACbL,WAAY,wBACZE,UAAW,SACXC,WAAY,IACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,YAEjB,WAAY,CACVxd,QAAS,IACTK,MAAO,WAIboe,iBAAkB,CAChBnd,KAAM,CACJtB,QAAS,kBACTS,cAAe,EACf,OAAQ,CACN0c,WAAY,wBACZE,UAAW,SACXC,WAAY,IACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,YAEjB,cAAe,CACbL,WAAY,wBACZE,UAAW,SACXC,WAAY,IACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,YAEjB,OAAQ,CACNL,WAAY,YACZE,UAAW,SACXC,WAAY,OACZzP,SAAU,OACV0P,WAAY,OACZjd,UAAW,SACXkd,cAAe,WACf3yB,OAAQ,KAId6zB,iBAAkB,CAChBpd,KAAM,CACJtB,QAAS,OACTQ,WAAY,EACZme,eAAgB,SAEhB,WAAY,CACVtB,UAAW,SACXC,WAAY,IACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,WACf1L,UAAW,OACX,4BAA6B,CAC3B,kBAAmB,CACjBe,WAAY,WAKpB+L,QAAS,CACP,yBAA0B,CACxB/L,WAAY,UAIlBgM,YAAa,CACXC,gBAAiB,CACftzB,aAAc,UAGlBuzB,gBAAiB,CACfzd,KAAM,CACJwQ,UAAW,MACXhmB,aAAc,OAEhBgrB,MAAO,CACLvrB,YAAa,IAEfkxB,UAAW,CACT5O,SAAU,OACVyP,WAAY,WAGhB0B,gBAAiB,CACf1d,KAAM,CACJyM,SAAU,YAGdkR,mBAAoB,CAClB3d,KAAM,CACJxW,MAAO,OACPG,IAAK,MACLwyB,UAAW,OACXkB,eAAgB,SAChB1e,aAAc,EACdD,QAAS,IAGb/P,YAAa,CACXqR,KAAM,CACJpW,KAAM,GAERg0B,sBAAuB,CACrBp0B,MAAO,OACPG,IAAK,EACL,4BAA6B,CAC3BA,IAAK,KAIXk0B,oBAAqB,CACnBC,aAAc,CACZvzB,MAAO,YAGXwzB,kBAAmB,CACjB/d,KAAM,CACJwQ,UAAW,MACXjE,SAAU,OACV0P,WAAY,OAEZ,cAAe,CACb1xB,MAAOmwB,KAAUsD,iBAGnB,SAAU,CACRzzB,MAAOmwB,KAAUsD,kBAGrBC,UAAW,CACT1M,WAAY,MACZ2M,YAAa,QAGjBC,aAAc,CACZne,KAAM,CACJzV,MAAOmwB,KAAU0D,iBACjBrC,UAAW,SACXC,WAAY,SACZzP,SAAU,OACV0P,WAAY,OAEZ,cAAe,CACb1xB,MAAOmwB,KAAUsD,mBAIvBhhB,eAAgB,CACdqhB,aAAc,CACZ7N,UAAW,MACXhmB,aAAc,SAGlB8zB,cAAe,CACbC,YAAa,CACXh0B,MAAO,uBAETyT,OAAQ,CACNzT,MAAOmwB,KAAU0D,mBAGrBI,UAAW,CACTC,OAAQ,CACN/f,QAAS,aACT,UAAW,CACTE,gBAAiB,iBAIvB8f,aAAc,CACZ1e,KAAM,CACJ6b,WAAY,YACZE,UAAW,SACXC,WAAY,IACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,YACfyC,aAAc,oBACdC,WAAY,SACZ70B,SAAU,SACV80B,aAAc,WACd,oEAAqE,CACnEhD,WAAY,YACZE,UAAW,SACXC,WAAY,IACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,cAGnB4C,KAAM,CACJ/C,UAAW,SACXC,WAAY,OACZzP,SAAU,OACV0P,WAAY,OACZC,cAAe,SACfnyB,SAAU,UAGdg1B,YAAa,CACXD,KAAM,CACJlgB,gBAAiB,YAGrBogB,QAAS,CACPhf,KAAM,CACJmc,UAAW,QAEb8C,cAAe,CACbN,aAAc,oBACdn1B,MAAO,yBACPH,QAAS,cAET,4BAA6B,CAC3BG,MAAO,gBAGX01B,UAAW,CACTtgB,gBAAiB8b,KAAUY,aAC3B7xB,OAAQ,MACRkV,aAAc,SAGlBwgB,OAAQ,CACNnf,KAAM,CACJmc,UAAW,QAEbiD,iBAAkB,CAChB70B,MAAO,QACP80B,QAAS,IAGbC,qBAAsB,CACpBtf,KAAM,CACJ3W,QAAS,OACTuV,gBAAiB,UACjB3U,YAAa,MACbC,aAAc,QAGlBq1B,gBAAiB,CACfvf,KAAM,CACJwQ,UAAW,MACXhmB,aAAc,MACdyU,OAAQ,EACRC,WAAY,MACZC,cAAe,MACfR,aAAc,MACdpU,MAAO,UACPyxB,WAAY,IACZD,UAAW,SACXxP,SAAU,OACV0P,WAAY,OACZuD,cAAe,OACf,UAAW,CACT7gB,aAAc,OAEhB,aAAc,CACZC,gBAAiB,UACjBrU,MAAO,OACPoU,aAAc,MACd,UAAW,CACTC,gBAAiB,UACjBrU,MAAO,WAOfk1B,aAAc,CACZzf,KAAM,CACJtB,QAAS,KAEXghB,MAAO,CACL1D,WAAY,IACZD,UAAW,SACXxP,SAAU,OACV0P,WAAY,OACZ,8CAA+C,CAC7C1xB,MAAO,UACPsxB,WAAY,YACZE,UAAW,SACXC,WAAY,MACZzP,SAAU,OACV8S,QAAS,EACTnD,cAAe,cAIrByD,UAAW,CACT3f,KAAM,CACJrB,aAAc,MACd6gB,cAAe,OACf9gB,QAAS,WACT+N,SAAU,QACVmT,UAAW,aACX,4BAA6B,CAC3Bp2B,MAAO,SAIXmT,MAAO,CACL4P,SAAU,OACVwP,UAAW,SACXF,WAAY,SACZG,WAAY,IACZC,WAAY,OAEZC,cAAe,YAEjB2D,UAAW,CACT3B,YAAa,QAEf4B,SAAU,CACRC,UAAW,uCACXrhB,QAAS,WACT,iBAAkB,CAChBqhB,UAAW,SAGf9B,UAAW,CACT8B,UAAW,yCAGfC,iBAAkB,CAChBC,iBAAkB,CAChBC,OAAQ,MACRv2B,IAAK,QAEPw2B,KAAM,CACJ12B,OAAQ,EACRwV,OAAQ,EACRL,gBAAiB,UACjBD,aAAc,EACdyhB,YAAa,YAGjBC,aAAc,CACZ1jB,MAAO,CACLpS,MAAO,UACPyxB,WAAY,IACZD,UAAW,SACXxP,SAAU,OACV0P,WAAY,OACZuD,cAAe,aAEjBc,OAAQ,CACN,uBAAwB,CACtBtE,WAAY,MACZzxB,MAAO,YAGX01B,iBAAkB,CAChBrB,WAAY,WAGhB2B,QAAS,CACPvgB,KAAM,CACJpB,gBAAiB,gBAGrB4hB,oBAAqB,CACnBxgB,KAAM,CACJtB,QAAS,QAGb+hB,iBAAkB,CAChBzgB,KAAM,CACJ,gDAAiD,CAC/CogB,YAAa1F,KAAUsD,iBAEzB,2CAA4C,CAC1CoC,YAAa,YAGjB5d,UAAW,CACT,4BAA6B,CAC3B9D,QAAS,aAGbghB,MAAO,CACLhhB,QAAS,cACTG,OAAQ,IAEV6hB,eAAgB,CACdzhB,OAAQ,YACRmhB,YAAa,qBACbv2B,WAAY,2BACZ8U,aAAc,OAEhBgiB,WAAY,CACVz2B,aAAc,IAGlB02B,SAAU,CACRC,UAAW,CACT,WAAY,CACVlC,aAAa,aAADnoC,OAAekkC,KAAUQ,eAEvC,oCAAqC,CACnCyD,aAAa,aAADnoC,OAAekkC,KAAUQ,eAEvC,UAAW,CACTyD,aAAa,aAADnoC,OAAekkC,KAAUQ,iBAI3C4F,gBAAiB,CACfC,UAAW,CACT,4CAA6C,CAC3CriB,QAAS,cAGbsiB,aAAc,CACZr3B,IAAK,YAGTs3B,aAAc,CACZjhB,KAAM,CACJ+f,UAAW,mCACXphB,aAAc,MACdD,QAAS,WACTlU,aAAc,OACd,WAAY,CACVf,OAAQ,OAIdy3B,oBAAqB,CACnBlhB,KAAM,CACJxV,aAAc,MACd,iBAAkB,CAChB2xB,UAAW,QAEbzd,QAAS,MACT,gBAAiB,CACfE,gBAAiB,2BAGrBpkB,QAAS,CACPgQ,aAAc,MACdjB,OAAQ,IACRF,QAAS,cACTG,MAAO,OACP,iBAAkB,CAChBD,OAAQ,KAEV,OAAQ,CACNA,OAAQ,OAId43B,cAAe,CACbnhB,KAAM,CACJ,UAAW,CACTpB,gBAAiB,iBAIvBwiB,cAAe,CACbC,YAAa,CACXziB,gBAAiB8b,KAAUU,eAC3B7wB,MAAO,kBACP,UAAW,CACTqU,gBAAiB,+BACjBrU,MAAO,0BAKZ2T,IA5oBQ,IAAkBA,EFvB/B,MAAMrnB,EAAW8xB,eACX,YAAEnhB,GAAgBrS,qBAAWmS,GAC7Bg6B,EAAS/5B,IAAM8L,OAAO,MACtBkuB,EAAe1Y,aAAcJ,EAAMK,YAAY0Y,KAAK,OAEpDC,EACJ76B,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACurC,KAAW,IACZvrC,cAAC4gC,GAAQ,IACTnwB,eAAA,OACEuG,IAAKm0B,EACLz6B,UACwB,MAAtBhQ,EAASoyB,SAAmBniB,KAAO66B,cAAgB76B,KAAOC,UAC3DzR,SAAA,CAEDa,cAACs3B,GAAM,IACP7mB,eAAC4hB,GAAO,CAAAlzB,SAAA,CACLA,GACW,OAAXkS,QAAW,IAAXA,OAAW,EAAXA,EAAa2D,SAAS+Y,GAAgBkE,gCACpCmZ,GAAgBprC,cAAC2sB,GAAW,CAACC,WAAYue,aAMpD,OACEnrC,cAACyrC,KAAc,CAACC,aAAW,EAAAvsC,SACzBa,cAAC2rC,KAAa,CAACrZ,MAAOA,EAAMnzB,SAC1Ba,cAACoZ,GAAgB,CAAAja,SACfa,cAAC0tB,GAAc,CAAAvuB,SACbsR,eAAA,OAAKC,UAAWC,KAAOkZ,KAAK1qB,SAAA,CAC1Ba,cAAA,QACE0Q,UACwB,MAAtBhQ,EAASoyB,SACLniB,KAAOi7B,oBACPj7B,KAAOk7B,kBAGQ,MAAtBnrC,EAASoyB,UACR9yB,cAAA,QAAM0Q,UAAWC,KAAOm7B,WACvB,IACFR,YAKM,ECjErB,SAAS,KAAiS,OAApR,GAAWptC,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS21B,GAAY7sC,EAAMyX,GACzB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,IACPC,OAAQ,IACRuD,QAAS,cACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,onTACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,8eACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,gQACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,6wBACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,05CACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,+YACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,8iBACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,2WACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,gaACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,8cACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,6WACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,iiBACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,2hBACHN,KAAM,aACHgsB,KAAYA,GAAuB,gBAAoB,OAAQ,CAClE1rB,EAAG,2tBACHN,KAAM,aACHisB,KAAYA,GAAuB,gBAAoB,OAAQ,CAClE3rB,EAAG,yjDACHN,KAAM,aACHksB,KAAYA,GAAuB,gBAAoB,OAAQ,CAClE5rB,EAAG,mXACHN,KAAM,aACHmsB,KAAYA,GAAuB,gBAAoB,OAAQ,CAClE7rB,EAAG,u3BACHN,KAAM,aACHosB,KAAYA,GAAuB,gBAAoB,OAAQ,CAClE9rB,EAAG,0wBACHN,KAAM,aACHqsB,KAAYA,GAAuB,gBAAoB,OAAQ,CAClE/rB,EAAG,yqBACHN,KAAM,aACHssB,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEhsB,EAAG,qlCACHN,KAAM,aACHusB,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEjsB,EAAG,u8EACHN,KAAM,aACHwsB,KAAYA,GAAuB,gBAAoB,OAAQ,CAClElsB,EAAG,ymSACHN,KAAM,aACHysB,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEnsB,EAAG,8kBACHN,KAAM,aACH0sB,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEpsB,EAAG,otBACHN,KAAM,aACH2sB,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEyF,QAAS,GACT9xB,EAAG,6CACHI,OAAQ,UACR+kB,YAAa,KACVmH,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEwF,QAAS,GACT9xB,EAAG,4CACHI,OAAQ,UACR+kB,YAAa,KACVoH,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEuF,QAAS,GACT9xB,EAAG,6CACHI,OAAQ,UACR+kB,YAAa,KACVqH,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEsF,QAAS,GACT9xB,EAAG,sDACHI,OAAQ,UACR+kB,YAAa,KACVsH,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEqF,QAAS,GACT9xB,EAAG,uDACHI,OAAQ,UACR+kB,YAAa,KACVuH,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEoF,QAAS,GACT9xB,EAAG,oDACHI,OAAQ,UACR+kB,YAAa,KACV,KAAY,GAAuB,gBAAoB,SAAU,CACpEllB,GAAI,QACJC,GAAI,QACJC,EAAG,QACHT,KAAM,aACHitB,KAAaA,GAAwB,gBAAoB,SAAU,CACtE1sB,GAAI,QACJC,GAAI,QACJC,EAAG,QACHT,KAAM,aACHktB,KAAaA,GAAwB,gBAAoB,SAAU,CACtE3sB,GAAI,QACJC,GAAI,QACJC,EAAG,QACHT,KAAM,aACHmtB,KAAaA,GAAwB,gBAAoB,SAAU,CACtE5sB,GAAI,QACJC,GAAI,QACJC,EAAG,QACHT,KAAM,aACHotB,KAAaA,GAAwB,gBAAoB,SAAU,CACtE7sB,GAAI,QACJC,GAAI,QACJC,EAAG,QACHT,KAAM,aACHqtB,KAAaA,GAAwB,gBAAoB,SAAU,CACtE9sB,GAAI,QACJC,GAAI,QACJC,EAAG,QACHT,KAAM,aACHstB,KAAaA,GAAwB,gBAAoB,SAAU,CACtE/sB,GAAI,QACJC,GAAI,QACJC,EAAG,QACHT,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBi1B,IAClC,Q,6BE1HAC,OAhCuB9sC,IAAA,IAAC,KACrC0Z,EAAI,SACJzZ,EAAQ,SACRqR,EAAW,KAAI,UACfmW,GAAY,EAAI,YAChB+b,GAAc,KACX3tB,GACJ7V,EAAA,OACiB,IAAhBwjC,EACE1iC,cAAC8mC,KAAS,CACRluB,KAAMA,EACNpI,SAAUA,EACVmW,UAAWA,EACX+b,YAAaA,KACT3tB,EAAK5V,SAERA,IAEDyZ,EACFqzB,IAASC,aACPlsC,cAAC8mC,KAAS,CACRluB,KAAMA,EACNpI,SAAUA,EACVmW,UAAWA,KACP5R,EAAK5V,SAERA,IAEHshB,SAAS/T,MAET,IAAI,E,UCdKy/B,OAVqCjtC,IAA0B,IAAzB,SAAEC,EAAQ,MAAEitC,GAAOltC,EACtE,OACEc,cAACinC,KAAgB,CACfv2B,UAAW07B,EAAQxmB,KAAWymB,wBAAqB7vC,EAAU2C,SAE5DA,GACgB,ECcRmtC,OAlBwCptC,IAKhD,IALiD,QACtDwmB,EAAO,KACPjc,EAAO,KAAI,QACXuc,KACGjR,GACJ7V,EACC,OACEc,cAAC2lB,KAAM,CACLD,QAASA,EACTzU,QAAQ,YACRP,UAAWkV,KAAWK,0BAClBlR,EAAK5V,SAEN6mB,EAAUhmB,cAACmU,IAAgB,CAACvX,KAAM,KAAS6M,GACvC,E,UCfE8iC,OAJsCrtC,IAA0B,IAAzB,MAAE+T,EAAK,SAAE9T,GAAUD,EACvE,OAAOc,cAACgnC,KAAgB,CAAC/zB,MAAOA,EAAM9T,SAAEA,GAA4B,E,UCmBvDqtC,OAlBkCttC,IAG1C,IAH2C,YAChDinB,EAAW,SACXhnB,GACDD,EACC,OACEuR,eAACs2B,KAAc,CAAA5nC,SAAA,CACZA,EACAgnB,EACCnmB,cAACqmB,KAAU,CAACX,QAASS,EAAYhnB,SAC/Ba,cAACsmB,KAAS,MAGZtmB,cAAAyV,WAAA,MAEa,EChBd,MAAMg3B,GAAWA,KACtB,MAAO/hB,EAAWgiB,GAAgBj7B,oBAAkB,GAKpD,MAAO,CACLiZ,YACAiiB,UALgBptC,uBAAY,IAAMmtC,GAAa,IAAO,IAMtDE,UALgBrtC,uBAAY,IAAMmtC,GAAa,IAAQ,IAMxD,ECHY,SAASG,KACtB,MACEnvB,OAAO,gBAAEO,IACPwB,KACE/N,EAAW8C,IACX+iB,EAAUC,eACV,UAAEmV,EAAS,UAAEC,EAAS,UAAEliB,GAAc+hB,KAEtCh6B,EAAYA,KAChB,GAAIwL,GACF,GACEA,EAAgBxL,WAChBwL,EAAgBvL,aAChBo6B,KAAO7uB,EAAgBvL,aAAaq6B,eAAeD,OAAU,OAE7D,OAAO,OAGT,GACEp7B,EAASe,WACTf,EAASgB,aACTo6B,KAAOp7B,EAASgB,aAAaq6B,eAAeD,OAAU,OAEtD,OAAO,EAIX,OAAO,CAAK,EAkCd,MAAO,CAAEE,gBAvBeA,IAEpBv8B,eAACu7B,GAAM,CAACpzB,KAAM8R,EAAWC,QAASiiB,EAAWp8B,SAAS,KAAIrR,SAAA,CACxDa,cAACwsC,GAAW,CAAArtC,SACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3Ba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAAA7R,SAAC,gFAKda,cAACmsC,GAAa,CAAAhtC,SACZa,cAACssC,GAAY,CACX7iC,KAAK,KACLwN,GAAG,yBACHyO,QAASknB,SAOOxU,eA/BF6U,IAClBx6B,IACFk6B,IAEApV,EAAQ93B,KAAa,OAARwtC,QAAQ,IAARA,IAAY,0BAC3B,EA0BwCx6B,YAC5C,C,IC7EI,G,oBACJ,SAAS,KAAiS,OAApR,GAAWvU,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS82B,GAAehuC,EAAMyX,GAC5B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,EACRuD,QAAS,WACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,2pBACHN,KAAM,WAEV,CACA,MAAM,GAA0B,aAAiBo2B,IAClC,IC6DAC,OArEwCjuC,IAIhD,IAJiD,SACtDkT,EAAQ,YACRf,EAAW,aACXuB,GACD1T,EACC,MAAM,gBAAE8tC,EAAe,eAAE5U,GAAmByU,KAqB5C,OACEp8B,eAAA,OAAKC,UAAWC,KAAOtM,QAAQlF,SAAA,CAC7BsR,eAAA,OAAKC,UAAWC,KAAOy8B,QAASn6B,MAAO,CAAEK,OAAQ,QAASnU,SAAA,CACxDa,cAACgtC,EAAe,IAChBv8B,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,SAAQ1sB,SAAA,CAChCsR,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,CACRsR,eAACO,IAAU,CAACN,UAAWC,KAAO08B,UAAWp6B,MAAO,CAAEmB,MAAO,SAAUjV,SAAA,CAAC,kBAClDiT,KA1BnBQ,GAAgBA,EAAaoR,MAAM,MAAMrmB,OAAS,EACvDiV,EACG06B,OACAtpB,MAAM,MACNtO,KAAI,CAACjM,EAAM5L,IACVmC,cAACgR,IAAU,CACTN,UAAWC,KAAO48B,SAElBt6B,MAAO,CAAEmB,MAAO,SAAUjV,SAEzBsK,GAHI5L,KAOXmC,cAACgR,IAAU,CAACN,UAAWC,KAAO48B,SAAUt6B,MAAO,CAAEmB,MAAO,SAAUjV,SAC/DyT,OAeC5S,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRsR,eAACkV,KAAM,CACL1O,GAAG,sBACH0P,WAAS,EACTjW,UAAWC,KAAO68B,wBAClB13B,UAAW4rB,IACXxsB,GAAG,+BAA8B/V,SAAA,CAClC,wBAECa,cAACytC,GAAS,eAKjBp8B,EAAY2D,SACX+Y,GAAgBiC,oCAEhBhwB,cAAC2lB,KAAM,CACL1O,GAAG,wBACHhG,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBU,WAAS,EACTjB,QAASA,IAAM0S,IACfnlB,MAAO,CAAEoB,aAAc,QAASlV,SACjC,yBAIC,ECmCKuuC,OAnGYA,KACzB,MAAM,SAAEt7B,EAAQ,YAAEf,EAAW,SAAElC,EAAQ,aAAEyD,GAAiB4B,IACpD8d,EAAQC,eAERE,EAAgBC,aAAcJ,EAAMK,YAAYC,GAAG,OACnD+a,EAAgBjb,aAAcJ,EAAMK,YAAY0Y,KAAK,QAmBrD,gBAAE2B,EAAe,eAAE5U,GAAmByU,KAE5C,OAAOc,EACL3tC,cAACmtC,GAAc,CACb/6B,SAAUA,EACVf,YAAaA,EACbuB,aAAcA,IAGhBnC,eAAA,OAAKC,UAAS,GAAArQ,OAAKsQ,KAAOtM,SAAUlF,SAAA,CAClCa,cAAA,OAAKiT,MAAO,CAAEutB,KAAM,KACpB/vB,eAAA,OAAKC,UAAWC,KAAOi9B,KAAKzuC,SAAA,CAE1Ba,cAACgtC,EAAe,IAChBv8B,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAW4G,EAAgB,MAAQ,iBAAiBtzB,SAAA,CAClEa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBsR,eAAA,OAAKC,UAAWC,KAAOy8B,QAAQjuC,SAAA,CAC7BsR,eAACO,IAAU,CAACN,UAAWC,KAAO08B,UAAWj5B,MAAM,UAASjV,SAAA,CAAC,kBACvCiT,KAEjBjD,IAAajM,EAAUxB,MAAMyF,wBAC5BgI,IAAajM,EAAUxB,MAAM0F,qBArClCwL,GAAgBA,EAAaoR,MAAM,MAAMrmB,OAAS,EACvDiV,EACG06B,OACAtpB,MAAM,MACNtO,KAAI,CAACjM,EAAM5L,IACVmC,cAACgR,IAAU,CAACN,UAAWC,KAAO48B,SAAsBn5B,MAAM,UAASjV,SAChEsK,GAD0C5L,KAKjDmC,cAACgR,IAAU,CAACN,UAAWC,KAAO48B,SAAUn5B,MAAM,UAASjV,SACpDyT,KA4BMzD,IAAajM,EAAUxB,MAAMyF,wBAC5BgI,IAAajM,EAAUxB,MAAM0F,oBAC3BpH,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACvDkS,EAAY2D,SACX+Y,GAAgB+B,mCAEhB9vB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC2lB,KAAM,CACL1O,GAAG,sBACHhG,QAAQ,WACRP,UAAWkV,KAAWC,sBACtBc,WAAS,EACT7Q,UAAW4rB,IACXxsB,GAAG,+BAA8B/V,SAClC,4BAKJkS,EAAY2D,SACX+Y,GAAgBiC,oCAEhBhwB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC2lB,KAAM,CACL1O,GAAG,wBACHhG,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBU,WAAS,EACTjB,QAASA,IAAM0S,IAAiBj5B,SACjC,mCAUjBa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAIjmB,UAAWC,KAAOm9B,aAAa3uC,SACvDa,cAAA,OAAK0Q,UAAWC,KAAO+E,IAAIvW,SACzBa,cAAC+tC,GAAY,CAAC96B,MAAO,CAAEI,MAAO,sBAOzC,EC/GH,MAAM1E,GAAe,eAMNq/B,OAJY,CACzB9hC,IAAKA,IAA8BD,EAAa,GAAD5L,OAAIsO,GAAY,MAC/Ds/B,OAASC,GAAyBjiC,EAAa,GAAD5L,OAAIsO,GAAY,KAAKu/B,I,SCK9D,IAAKC,GAA0B,SAA1BA,GAA0B,OAA1BA,IAA0B,mDAA1BA,IAA0B,iDAA1BA,IAA0B,6CAA1BA,IAA0B,mCAA1BA,IAA0B,mDAA1BA,IAA0B,6CAA1BA,IAA0B,iDAA1BA,CAA0B,MA4B/B,MAAMC,GAAyBA,CACpC1wB,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAKsxC,GAA2BE,uBAC9B,MAAO,IAAK3wB,EAAOsI,SAAS,EAAMsoB,QAAQ,GAC5C,KAAKH,GAA2BI,sBAC9B,MAAO,IAAK7wB,EAAOsI,SAAS,GAC9B,KAAKmoB,GAA2BK,oBAC9B,MAAO,IACF9wB,EACHsI,SAAS,EACTsoB,QAAQ,EACRpmC,SAAUyV,EAAOO,SAErB,KAAKiwB,GAA2BM,eAC9B,MAAO,IAAK/wB,EAAOgxB,gBAAiB/wB,EAAOO,SAC7C,KAAKiwB,GAA2BQ,uBAC9B,MAAO,IAAKjxB,EAAOwN,UAAU,GAC/B,KAAKijB,GAA2BS,oBAC9B,MAAO,IACFlxB,EACHgxB,qBAAiBlyC,EACjB0uB,UAAU,EACVhjB,SAAU2mC,aAAQnxB,EAAMxV,UAAW4mC,IACjC,MAAMjxC,EAAQixC,EAAM9pB,WACjBrI,GACCA,EAAEve,OAASuf,EAAOO,QAAQ9f,MAC1Bue,EAAEoyB,WAAapxB,EAAOO,QAAQ6wB,WAElCD,EAAMnvC,OAAO9B,EAAO,EAAG8f,EAAOO,QAAQ,KAG5C,KAAKiwB,GAA2Ba,sBAC9B,MAAO,IAAKtxB,EAAOgxB,qBAAiBlyC,EAAW0uB,UAAU,GAE3D,QACE,OAAOxN,EACX,EC5DIuxB,GAAsC,CAC1C/mC,SAAU,GACV8d,SAAS,EACTsoB,QAAQ,EACRpjB,UAAU,EACVwjB,qBAAiBlyC,GAGb0yC,GAAyB99B,IAAMtS,cACnC,CAAC,GA4DUqwC,GAA4BA,IACvCnwC,qBAAWkwC,IAEEE,OA5D2BlwC,IAAmB,IAAlB,SAAEC,GAAUD,EACrD,MAAOwe,EAAOwB,GAAYC,qBAAWivB,GAAwBa,KACvD,WAAE91B,GAAeQ,KAEjB01B,EAAgB9vC,uBAAY,KAChCyuC,GAAmB9hC,MAChBvB,MAAMzC,IACLgX,EAAS,CACPriB,KAAMsxC,GAA2BK,oBACjCtwB,QAAShW,GACT,IAEHpF,OAAOlB,IACNsd,EAAS,CAAEriB,KAAMsxC,GAA2BI,wBAC5Cp1B,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,GAC5C,GACH,CAAC6O,IAEEm2B,EAAgB/vC,uBAAa2uC,IACjChvB,EAAS,CACPriB,KAAMsxC,GAA2BM,eACjCvwB,QAASgwB,GACT,GACD,IAEGqB,EAAgBhwC,uBACnB2uC,IACChvB,EAAS,CAAEriB,KAAMsxC,GAA2BQ,yBAC5CX,GAAmBC,OAAOC,GACvBvjC,MAAMo2B,IACDA,GACF7hB,EAAS,CACPriB,KAAMsxC,GAA2BS,oBACjC1wB,QAASgwB,IAEX/0B,EAAW,+BAAgClB,GAAYE,UAEvDgB,EAAW,0BACb,IAEDrW,OAAOlB,IACNsd,EAAS,CAAEriB,KAAMsxC,GAA2Ba,wBAC5C71B,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,GAC5C,GAEN,CAAC6O,IAGH,OACEnZ,cAACkvC,GAAuBjvC,SAAQ,CAC9B1D,MAAO,IAAKmhB,EAAO2xB,gBAAeC,gBAAeC,iBAAgBpwC,SAEhEA,GAC+B,EC9EtC,MAAMwP,GAAe,UAsCN6gC,OApCI,CACjBC,gBAAiBA,CACfC,EACAx6B,KAEA,IAAIy6B,EAAWD,EACXA,EAAKE,OAAO,oBACZ9C,KAAO,IAAI/uC,MAAQ6xC,OAAO,oBAC1BC,EAAW,OAAF36B,QAAE,IAAFA,OAAE,EAAFA,EAAI06B,OAAO,oBACxB,OAAO3jC,EAAa,GAAD5L,OACdsO,GAAY,2BAAAtO,OAA0BsvC,GAAQtvC,OAC/CwvC,EAAM,WAAAxvC,OAAcwvC,GAAW,IAElC,EAEHC,kBAAmBA,CACjBJ,EACAx6B,KAEA,IAAIy6B,EAAWD,EACXA,EAAKE,OAAO,oBACZ9C,KAAO,IAAI/uC,MAAQ6xC,OAAO,oBAC1BC,EAAW,OAAF36B,QAAE,IAAFA,OAAE,EAAFA,EAAI06B,OAAO,oBACxB,OAAO3jC,EAAa,GAAD5L,OACdsO,GAAY,sBAAAtO,OAAqBsvC,GAAQtvC,OAC1CwvC,EAAM,WAAAxvC,OAAcwvC,GAAW,IAElC,EAEHE,cAAgBC,GACd/jC,EAAa,GAAD5L,OAAIsO,GAAY,aAAaqhC,GAC3CC,MAAQD,GACN/jC,EAAa,GAAD5L,OAAIsO,GAAY,WAAWqhC,GACzC5kC,QAAU4kC,GACR/jC,EAAa,GAAD5L,OAAIsO,GAAY,YAAYqhC,ICrCrC,IAAKE,GAAa,SAAbA,GAAa,OAAbA,IAAa,2CAAbA,IAAa,6CAAbA,IAAa,+BAAbA,IAAa,+BAAbA,IAAa,2CAAbA,IAAa,uCAAbA,CAAa,MA6CVC,OAnBWA,CAACzyB,EAAiBC,KAC1C,OAAQA,EAAO9gB,MACb,KAAKqzC,GAAcE,mBACjB,MAAO,IAAK1yB,EAAO2yB,aAAc1yB,EAAOO,SAC1C,KAAKgyB,GAAcI,oBACjB,MAAO,IAAK5yB,EAAO6yB,aAAc5yB,EAAOO,SAC1C,KAAKgyB,GAAcM,aACjB,MAAO,IAAK9yB,EAAO+yB,YAAa9yB,EAAOO,SACzC,KAAKgyB,GAAcQ,aACjB,MAAO,IAAKhzB,EAAOizB,YAAahzB,EAAOO,SACzC,KAAKgyB,GAAcU,mBACjB,MAAO,IAAKlzB,EAAOiyB,SAAUhyB,EAAOO,SACtC,KAAKgyB,GAAcW,iBACjB,MAAO,IAAKnzB,EAAOmyB,OAAQlyB,EAAOO,SACpC,QACE,OAAOR,EACX,EC/CGozB,GAAU,SAAVA,GAAU,OAAVA,IAAU,+BAAVA,IAAU,iCAAVA,CAAU,EAAVA,IAAU,IAKAA,MCMR,MAAMryB,GAAyB,CACpCkyB,YAAaG,GAAWC,aACxBV,aAAc,KACdE,aAAc,KACdE,YAAa,KACbd,SAAU7C,OACV+C,OAAQ,MAaJmB,GAAalyC,wBAAc,CAAC,GAgGnBmyC,OA9Fe/xC,IAAmB,IAAlB,SAAEC,GAAUD,EACzC,MAAOwe,EAAOwB,GAAYC,qBAAWgxB,GAAY1xB,KAC3C,WAAEtF,GAAeQ,KAEjBu3B,EAAoBp/B,UACpB4L,EAAMiyB,UACRH,GAAWC,gBAAgB/xB,EAAMiyB,SAAUjyB,EAAMmyB,QAC9CllC,MAAM4gB,GACLrM,EAAS,CAAEriB,KAAMqzC,GAAcE,mBAAoBlyB,QAASqN,MAE7DzoB,OAAOlB,IACNsd,EAAS,CAAEriB,KAAMqzC,GAAcE,mBAAoBlyB,QAAS,KAC5D/E,EAAWvX,EAAMpC,QAAQ,GAE/B,EAGI2xC,EAAoBr/B,UACpB4L,EAAMiyB,UACRH,GAAWM,kBAAkBpyB,EAAMiyB,SAAUjyB,EAAMmyB,QAChDllC,MAAM4gB,GACLrM,EAAS,CAAEriB,KAAMqzC,GAAcI,oBAAqBpyB,QAASqN,MAE9DzoB,OAAOlB,IACNsd,EAAS,CAAEriB,KAAMqzC,GAAcE,mBAAoBlyB,QAAS,KAC5D/E,EAAWvX,EAAMpC,QAAQ,GAE/B,EAGI4xC,EAAct/B,UACd4L,EAAMizB,aAAeG,GAAWC,aAClCG,IAEAC,GACF,EA0CF,OACEnxC,cAACgxC,GAAW/wC,SAAQ,CAClB1D,MAAO,CACLmhB,QACAwB,WACA6wB,cA5CiBC,IACrBR,GAAWO,cAAc,IAAKryB,EAAM+yB,eAAgBT,IACjDrlC,MAAM4gB,IACDA,GACF6lB,IACAj4B,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,UAE7DgB,EAAW,iCACb,IAEDrW,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAmC1CywC,MAhCSD,IACbR,GAAWS,MAAM,IAAKvyB,EAAM+yB,eAAgBT,IACzCrlC,MAAM4gB,IACDA,GACF6lB,IACAj4B,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,UAE7DgB,EAAW,iCACb,IAEDrW,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAuB1C4L,QApBW4kC,IACfR,GAAWpkC,QAAQ,IAAKsS,EAAM+yB,eAAgBT,IAC3CrlC,MAAM4gB,IACDA,GACF6lB,IACAj4B,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,UAE7DgB,EAAW,oCACb,IAEDrW,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAW1C0xC,oBACAC,qBACAhyC,SAEDA,GACmB,EAMnB,MAAMkyC,GAAgBA,IAAMryC,qBAAWgyC,ICjHxCriC,GAAe,kBAyDN2iC,OAvDY,CACzBC,aAAcA,IACZtlC,EAAa,GAAD5L,OAAIsO,GAAY,eAC9B6iC,oBAAsB3lC,GACpBI,EAAc,GAAD5L,OAAIsO,GAAY,YAAY9C,GAC3C4lC,sBAAwBC,GACtBzlC,EAAgB,GAAD5L,OAAIsO,GAAY,aAAAtO,OAAYqxC,IAC7CC,0BAA2BA,IACzB1lC,EAAa,GAAD5L,OAAIsO,GAAY,aAC9BijC,gBAAkB/lC,GAChBI,EAAc,GAAD5L,OAAIsO,GAAY,YAAY9C,GAC3CgmC,kBAAoBH,GAClBzlC,EAAgB,GAAD5L,OAAIsO,GAAY,aAAAtO,OAAYqxC,IAC7CI,uBAAwBA,IACtB7lC,EAAa,GAAD5L,OAAIsO,GAAY,aAC9BojC,eAAiBlmC,GACfI,EAAc,GAAD5L,OAAIsO,GAAY,SAAS9C,GACxCmmC,iBAAmBN,GACjBzlC,EAAgB,GAAD5L,OAAIsO,GAAY,UAAAtO,OAASqxC,IAC1CO,sBAAuBA,IACrBhmC,EAAa,GAAD5L,OAAIsO,GAAY,UAC9BujC,wBACE92B,GAEAnP,EAAa,GAAD5L,OAAIsO,GAAY,kBAAAtO,OAAiB+a,IAC/C+2B,yBAA2BC,GACzBnmC,EAAa,GAAD5L,OAAIsO,GAAY,cAAAtO,OAAa+xC,IAC3CC,iBAAmBxmC,GACjBI,EAAc,GAAD5L,OAAIsO,GAAY,iBAAiB9C,GAChDymC,mBAAqBZ,GACnBzlC,EAAgB,GAAD5L,OAAIsO,GAAY,kBAAAtO,OAAiBqxC,IAClDa,wBAAyBA,IACvBtmC,EAAa,GAAD5L,OAAIsO,GAAY,kBAC9BmhC,kBAAmBA,CACjBsC,EACAI,IAEOvmC,EAAa,GAAD5L,OACdsO,GAAY,YAAAtO,OAAW+xC,GAAY/xC,OACpCmyC,EAAU,eAAAnyC,OACmB,OAAVmyC,QAAU,IAAVA,OAAU,EAAVA,EAAY5C,OAAO,qBAClC,KAIV6C,sBAAuBA,IACdxmC,EAAa,GAAD5L,OAAIsO,GAAY,aAErC+jC,wBAA0BC,GACjB1mC,EAAc,GAAD5L,OAAIsO,GAAY,YAAYgkC,GAElDC,0BAA4BC,GACnB5mC,EAAgB,GAAD5L,OAAIsO,GAAY,aAAAtO,OAAYwyC,KCtDtD,MAAMlkC,GAAe,mBAiJNmkC,OA/IY,CACzBC,gBAAiBA,IACf9mC,EAAa,GAAD5L,OAAIsO,GAAY,eAC9BqkC,mBAAqBl5B,GACnB7N,EAAa,GAAD5L,OAAIsO,GAAY,oBAAoB,CAAEmL,gBACpDm5B,iBAAkBA,IAChBhnC,EAAa,GAAD5L,OAAIsO,GAAY,kBAAkB,CAAEukC,aAAc,SAChEC,eAAiBl8B,GACfhL,EAAa,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAI4W,IAClCm8B,mBAAqBn8B,GACnBhL,EAAa,GAAD5L,OAAIsO,GAAY,aAAAtO,OAAY4W,IAC1Co8B,wBAAyBA,IACvBpnC,EAAa,GAAD5L,OACPsO,GAAY,wBAAAtO,OAAuBysC,OACnCwG,QAAQ,OACRr1C,cAAa,YAAAoC,OAAWysC,OACxBwG,QAAQ,OACRC,IAAI,IAAK,QACTt1C,gBAEPu1C,sBAAuBA,IACrBvnC,EAAa,GAAD5L,OACPsO,GAAY,wBAAAtO,OAAuBysC,OACnCwG,QAAQ,OACRC,KAAK,EAAG,QACRt1C,cAAa,YAAAoC,OAAWysC,OACxBwG,QAAQ,OACRr1C,cAAa,oBAEpBw1C,iCACEC,GAEAznC,EAAa,GAAD5L,OACPsO,GAAY,uBAAAtO,OAAsBqzC,EAAQ,cAAArzC,OAAaysC,OACvDwG,QAAQ,OACRr1C,cAAa,YAAAoC,OAAWysC,OACxBwG,QAAQ,OACRC,IAAI,IAAK,QACTt1C,gBAEP01C,4BAA6BA,IAC3B1nC,EAAa,GAAD5L,OACPsO,GAAY,6CAAAtO,OAA4CysC,OACxDwG,QAAQ,OACRr1C,cAAa,YAAAoC,OAAWysC,OACxBwG,QAAQ,OACRC,IAAI,IAAK,QACTt1C,gBAEP21C,+BACEF,GAEAznC,EAAa,GAAD5L,OACPsO,GAAY,uBAAAtO,OAAsBqzC,EAAQ,cAAArzC,OAAaysC,OACvDwG,QAAQ,OACRC,KAAK,EAAG,QACRt1C,cAAa,YAAAoC,OAAWysC,OACxBwG,QAAQ,OACRr1C,cAAa,oBAEpB41C,8CACEC,GAEA7nC,EAAa,GAAD5L,OACPsO,GAAY,qBAAAtO,OAAoByzC,EAAc71C,gBAErD81C,gBAAiBA,CACf3B,EACA4B,EACAC,IAEAhoC,EAAc,GAAD5L,OAAIsO,GAAY,cAAc,CACzCyjC,eACA4B,UACAC,kBAEJC,qBAAsBA,CACpBC,EACAC,EACAC,EACAC,IAEAroC,EAAc,GAAD5L,OAAIsO,GAAY,yBAAyB,CACpDwlC,eACAC,YACAC,2BACAC,0BAEJC,YAAcC,GACZvoC,EAAc,GAAD5L,OAAIsO,GAAY,sBAAsB6lC,GACrDC,qBAAsBA,CACpBD,EACAd,IAEAznC,EAAc,GAAD5L,OAAIsO,GAAY,aAAAtO,OAAYqzC,GAAYc,GACvD5qC,OAAS8qC,IACP,MAAM1oC,EAAWiZ,GAAYyvB,GAC7B,OAAOzoC,EAAc,GAAD5L,OAAIsO,IAAgB3C,EAAU,CAChDjC,QAAS,CACP,eAAgB,wBAElB,EAEJkkC,OAASyG,IACP,MAAM1oC,EAAWiZ,GAAYyvB,GAC7B,OAAOzoC,EAAa,GAAD5L,OAAIsO,IAAgB3C,EAAU,CAC/CjC,QAAS,CACP,eAAgB,wBAElB,EAEJ4qC,QAAUV,GACRhoC,EAAe,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAI4zC,EAAa,aACjD/xC,OAAQA,CAAC+xC,EAAuBz0C,IAC9ByM,EAAe,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAI4zC,EAAa,WAAW,CACxDW,cAAep1C,IAEnB+O,OAAS0lC,GACPhoC,EAAgB,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAI4zC,IACrCY,wBACEZ,GAEAhoC,EAAa,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAI4zC,EAAa,eAC/Ca,kBAAmBA,CACjBb,EACAc,EACAC,IAEA/oC,EAAc,GAAD5L,OACRsO,GAAY,KAAAtO,OAAI4zC,EAAa,eAAA5zC,OAAc00C,EAAU,UACxD,CAAEC,MAAOA,IAEbC,YAAaA,CACXhB,EACAiB,IAEAjpC,EAAc,GAAD5L,OACRsO,GAAY,KAAAtO,OAAI4zC,EAAa,gBAChCiB,GAEJC,kBAAmBA,IACjBlpC,EAAa,GAAD5L,OAAIsO,GAAY,qBC9J3BymC,GAAkB,SAAlBA,GAAkB,OAAlBA,IAAkB,mBAAlBA,IAAkB,iBAAlBA,IAAkB,mBAAlBA,CAAkB,EAAlBA,IAAkB,IAMhB,IAAKC,GAAmB,SAAnBA,GAAmB,OAAnBA,IAAmB,qCAAnBA,IAAmB,+BAAnBA,IAAmB,6BAAnBA,IAAmB,iCAAnBA,CAAmB,MAOhBD,UCJR,IAAKE,GAAqB,SAArBA,GAAqB,OAArBA,IAAqB,+CAArBA,IAAqB,6CAArBA,IAAqB,+BAArBA,IAAqB,2CAArBA,IAAqB,uCAArBA,IAAqB,iEAArBA,IAAqB,6DAArBA,IAAqB,2DAArBA,IAAqB,iDAArBA,IAAqB,+CAArBA,IAAqB,oDAArBA,CAAqB,MAkGlBC,OAhCmBA,CAChC73B,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAKy4C,GAAsBE,qBACzB,MAAO,IAAK93B,EAAO+3B,mBAAoB93B,EAAOO,SAChD,KAAKo3B,GAAsBI,oBACzB,MAAO,IAAKh4B,EAAOi4B,kBAAmBh4B,EAAOO,SAC/C,KAAKo3B,GAAsB5E,aACzB,MAAO,IAAKhzB,EAAOizB,YAAahzB,EAAOO,SACzC,KAAKo3B,GAAsB1E,mBACzB,MAAO,IAAKlzB,EAAOiyB,SAAUhyB,EAAOO,SACtC,KAAKo3B,GAAsBzE,iBACzB,MAAO,IAAKnzB,EAAOmyB,OAAQlyB,EAAOO,SACpC,KAAKo3B,GAAsBM,8BACzB,MAAO,IAAKl4B,EAAOm4B,mBAAoBl4B,EAAOO,SAChD,KAAKo3B,GAAsBQ,4BACzB,MAAO,IAAKp4B,EAAOq4B,iBAAkBp4B,EAAOO,SAC9C,KAAKo3B,GAAsBU,2BACzB,MAAO,IAAKt4B,EAAOu4B,yBAA0Bt4B,EAAOO,SACtD,KAAKo3B,GAAsBY,sBACzB,MAAO,IAAKx4B,EAAOy4B,oBAAqBx4B,EAAOO,SACjD,KAAKo3B,GAAsBc,qBACzB,MAAO,IAAK14B,EAAO24B,mBAAoB14B,EAAOO,SAChD,KAAKo3B,GAAsBgB,uBACzB,MAAO,IAAK54B,EAAO64B,qBAAsB54B,EAAOO,SAClD,QACE,OAAOR,EACX,ECrFK,MAAMe,GAAiC,CAC5CkyB,YAAa,KACb6F,YAAa,CACX,CACEhwB,MAAO,sBACPjqB,MAAO84C,GAAoBoB,iBAE7B,CAAEjwB,MAAO,eAAgBjqB,MAAO84C,GAAoBqB,cACpD,CAAElwB,MAAO,cAAejqB,MAAO84C,GAAoBsB,aACnD,CAAEnwB,MAAO,gBAAiBjqB,MAAO84C,GAAoBuB,gBAEvDnB,mBAAoB,KACpBE,kBAAmB,KACnBhG,SAAU,KACVE,OAAQ,KACRgG,mBAAoB,GACpBE,iBAAkB,KAClBE,yBAA0B,KAC1BE,oBAAqB,KACrBE,mBAAoB,KACpBE,qBAAsB,MAmBlBM,GAAqB/3C,wBAAc,CAAC,GAwT3Bg4C,OAtTuB53C,IAAmB,IAAlB,SAAEC,GAAUD,EACjD,MAAOwe,EAAOwB,GAAYC,qBAAWo2B,GAAoB92B,KAClDs4B,EAAeC,GAAoBvlC,mBAA0B,KAC7DwlC,EAASC,GAAczlC,mBAA+B,KACtD0lC,EAAaC,GAAkB3lC,mBAAsB,KACtD,WAAE0H,GAAeQ,KACjB4d,EAAUC,cACV7Y,EAAec,KAErB3M,qBAAU,KAAO,IAADukC,EAAAC,EACd,IAAIC,EAAuE,QAAxCF,EAAG14B,EAAajB,MAAMc,0BAAkB,IAAA64B,OAAA,EAArCA,EAClCG,gBACAC,EACiB,QADiBH,EAAG34B,EAAajB,MACnDc,0BAAkB,IAAA84B,OAAA,EADoBA,EAClBG,cACnBF,IAAe75B,EAAM+3B,oBACvBv2B,EAAS,CACPriB,KAAMy4C,GAAsBE,qBAC5Bt3B,QAASq5B,IAGTE,IAAkB/5B,EAAMi4B,mBAC1Bz2B,EAAS,CACPriB,KAAMy4C,GAAsBI,oBAC5Bx3B,QAASu5B,IAIbnG,GAAmBC,eAChB5mC,MAAM+sC,GAAcV,EAAiBU,KACrC50C,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAErCszC,GAAmBC,kBAChBpoC,MAAMgtC,GACLP,EAAeO,EAAUxW,QAAQxN,GAAMA,EAAEikB,gBAE1C90C,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAErC8xC,GAAmBmB,wBAChB9nC,MAAMssC,GAAYC,EAAWD,KAC7Bn0C,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,GAC7C,IAEHsT,qBAAU,KASR,OARA6L,EAAaO,SAAS,CACpBriB,KAAM2gB,GAAuBe,yBAC7BL,QAAShU,KAAK8H,UAAU,CACtBwlC,gBAAiB95B,EAAM+3B,mBACvBgC,cAAe/5B,EAAMi4B,sBAIjBj4B,EAAMi4B,mBACZ,KAAKN,GAAoBoB,gBACe,MAAlC/4B,EAAMu4B,0BACR4B,IAEF,MACF,KAAKxC,GAAoBqB,aACU,MAA7Bh5B,EAAMy4B,qBACR2B,IAEF,MACF,KAAKzC,GAAoBsB,YACS,MAA5Bj5B,EAAM24B,oBACR0B,IAEF,MACF,KAAK1C,GAAoBuB,cACW,MAA9Bl5B,EAAM64B,sBACRyB,IAGN,GACC,CAACt6B,EAAM+3B,mBAAoB/3B,EAAMi4B,oBAEpC,MA+CMkC,EAAuB/lC,UAC3Bw/B,GAAmBK,4BAA4BhnC,MAAM4gB,IACnDrM,EAAS,CACPriB,KAAMy4C,GAAsBU,2BAC5B93B,QAASqN,GACT,GACF,EA8CEusB,EAAoBhmC,UACxBw/B,GAAmBQ,yBAAyBnnC,MAAM4gB,IAChDrM,EAAS,CACPriB,KAAMy4C,GAAsBY,sBAC5Bh4B,QAASqN,GACT,GACF,EA8CEwsB,EAAmBjmC,UACvBw/B,GAAmBW,wBAAwBtnC,MAAM4gB,IAC/CrM,EAAS,CACPriB,KAAMy4C,GAAsBc,qBAC5Bl4B,QAASqN,GACT,GACF,EA8CEysB,EAAqBlmC,UACzBw/B,GAAmBiB,0BAA0B5nC,MAAM4gB,IACjDrM,EAAS,CACPriB,KAAMy4C,GAAsBgB,uBAC5Bp4B,QAASqN,GACT,GACF,EAGJ,OACEvrB,cAAC62C,GAAmB52C,SAAQ,CAC1B1D,MAAO,CACLmhB,QACAwB,WACA63B,gBACAI,cACA3F,oBA3NsB1/B,UAC1Bw/B,GAAmBE,oBAAoByG,GACpCttC,MAAM4gB,IACDA,EAAO2sB,WACTL,IAEItsB,EAAO/rB,SAAW+rB,EAAO/rB,QAAQ7B,OAAS,EAC5Cwb,EAAWoS,EAAO/rB,QAASyY,GAAYG,SAEvCe,EAAW,kCAAmClB,GAAYE,SAG5D+G,EAAS,CACPriB,KAAMy4C,GAAsBI,oBAC5Bx3B,QAASm3B,GAAoBoB,kBAG3B/4B,EAAMizB,cAAgByE,GAAmB+C,OAC3C5gB,EAAQ93B,KAAK,kCAGf0Z,EAAW,2BACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,EAkMAiyC,sBA/LwB3/B,UAC5Bw/B,GAAmBG,sBAAsBC,GACtC/mC,MAAM4gB,IACDA,GACFssB,IACA1+B,EACE,sCACAlB,GAAYE,UAGdgB,EAAW,2BACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,EAiLAoyC,gBArKkB9/B,UACtBw/B,GAAmBM,gBAAgBqG,GAChCttC,MAAM4gB,IACDA,GACFusB,IAEA3+B,EAAW,kCAAmClB,GAAYE,SAE1D+G,EAAS,CACPriB,KAAMy4C,GAAsBI,oBAC5Bx3B,QAASm3B,GAAoBqB,eAG3Bh5B,EAAMizB,cAAgByE,GAAmB+C,OAC3C5gB,EAAQ93B,KAAK,kCAGf0Z,EAAW,2BACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,EAgJAqyC,kBA7IoB//B,UACxBw/B,GAAmBO,kBAAkBH,GAClC/mC,MAAM4gB,IACDA,GACFusB,IACA3+B,EACE,sCACAlB,GAAYE,UAGdgB,EAAW,2BACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,EA+HAuyC,eAnHiBjgC,UACrBw/B,GAAmBS,eAAekG,GAC/BttC,MAAM4gB,IACDA,GACFwsB,IAEA5+B,EAAW,kCAAmClB,GAAYE,SAE1D+G,EAAS,CACPriB,KAAMy4C,GAAsBI,oBAC5Bx3B,QAASm3B,GAAoBsB,cAG3Bj5B,EAAMizB,cAAgByE,GAAmB+C,OAC3C5gB,EAAQ93B,KAAK,kCAGf0Z,EAAW,2BACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,EA8FAwyC,iBA3FmBlgC,UACvBw/B,GAAmBU,iBAAiBN,GACjC/mC,MAAM4gB,IACDA,GACFwsB,IACA5+B,EACE,sCACAlB,GAAYE,UAGdgB,EAAW,2BACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,EA6EA6yC,iBAjEmBvgC,UACvBw/B,GAAmBe,iBAAiB9B,GACjC5lC,MAAM4gB,IACDA,GACFysB,IAEA7+B,EAAW,kCAAmClB,GAAYE,SAE1D+G,EAAS,CACPriB,KAAMy4C,GAAsBI,oBAC5Bx3B,QAASm3B,GAAoBuB,gBAG3Bl5B,EAAMizB,cAAgByE,GAAmB+C,OAC3C5gB,EAAQ93B,KAAK,kCAGf0Z,EAAW,2BACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,EA4CA8yC,mBAzCqBxgC,UACzBw/B,GAAmBgB,mBAAmBZ,GACnC/mC,MAAM4gB,IACDA,GACFysB,IACA7+B,EACE,sCACAlB,GAAYE,UAGdgB,EAAW,2BACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,EA2BAy3C,WACA93C,SAEDA,GAC2B,EAM3B,MAAMi5C,GAAwBA,IAAMp5C,qBAAW63C,I,OC5VtD,MAAMwB,GAAmB1uC,IAAMC,OARf,CACdC,QAASvJ,kCAUX,MAAM0B,GAAmBkI,KAAKC,MAA2C,QAAtCC,GAAC9J,iCAAqC8J,GAAI,IAEtE,MAAMC,WAAsBC,MAGjCtJ,YAAYxB,EAAiBwJ,GAC3BuB,MAAM/K,GAAS,KAHjBwJ,YAAM,EAIJ7H,KAAK6H,OAASA,CAChB,EAGFqvC,GAAiB7tC,aAAapI,QAAQqI,KAAKC,GACzC3J,EAAsB2B,cACnBX,eAAeC,IACf2I,MAAMC,GACLC,GAAaH,EAAQE,KAEtB9H,OAAOgI,IACNnJ,QAAQiB,IAAIkI,EAAE,IAEfhI,OAAOgI,IAAmB,IAADC,EACxB,MAAMC,EAAsBjK,EAAsB2B,cAC5CuI,EAAgB,CACpBjJ,OAAM,GACNkJ,UAA2D,QAAlDH,EAAEhK,EAAsB2B,cAAcnB,oBAAY,IAAAwJ,OAAA,EAAhDA,EAAkDtI,UAE/Dd,QAAQiB,IAAI,OAAQqI,GACpBtJ,QAAQC,MAAM,2CAA4CkJ,GAC1DE,EAAoB9J,QACjBiK,UAAUF,GACVN,MAAMC,GACLC,GAAaH,EAAQE,KAEtB9H,OAAOlB,IACND,QAAQC,MAAM,wBAAyBA,EAAM,GAC7C,MAIV,MAAMiJ,GAAeA,CACnBH,EACAE,IAEA,IAAI3I,SAAQ,CAACmJ,EAASlJ,KACpB,MAAMmJ,EAAQT,EAAWU,iBACX9O,IAAV6O,GACFnJ,EAAOwI,GAETU,EAAQG,GAAkBb,EAAQW,GAAO,IAGvCE,GAAoBA,CAACb,EAA4BW,KACrD,MAAMG,EAAY,UAAAnL,OAAagL,GACzBI,EAAIf,EASV,OARKe,EAAE1B,QAKL0B,EAAE1B,QAAU,IAAI0B,EAAE1B,QAAS2B,cAAeF,GAJ1CC,EAAE1B,QAAU,CACV2B,cAAeF,GAMZd,CAAM,EAkDTiB,GAAgBC,GAA4BA,EAASC,KAE9CysC,GACNpsC,CAACC,EAAazB,IACjB2tC,GACGnsC,IAAIC,EAAKzB,GACTC,KAAKgB,IACL7I,OAAOlB,IAAuB,IAADwK,EAAAE,EAE5B,MADA3K,QAAQC,MAAMA,GACR,IAAIyI,GACM,QADO+B,EACrBxK,EAAMgK,gBAAQ,IAAAQ,OAAA,EAAdA,EAAgBP,KACF,QADMS,EACpB1K,EAAMgK,gBAAQ,IAAAU,OAAA,EAAdA,EAAgBtD,OAIlB,IAbKsvC,GAgBL3rC,CAACR,EAAaO,EAAUhC,IAC5B2tC,GACG1rC,KAAKR,EAAKO,EAAMhC,GAChBC,KAAKgB,IACL7I,OAAOlB,IAAuB,IAADgL,EAAAG,EAC5B,IAAKpD,IAAM6C,SAAS5K,GAClB,MAAM,IAAIyI,GAAcnH,EAAUuB,SAAS7C,MAAMsD,YAEnD,MAAM,IAAImF,GACH,OAALzI,QAAK,IAALA,GAAe,QAAVgL,EAALhL,EAAOgK,gBAAQ,IAAAgB,OAAV,EAALA,EAAiBf,KACZ,OAALjK,QAAK,IAALA,GAAe,QAAVmL,EAALnL,EAAOgK,gBAAQ,IAAAmB,OAAV,EAALA,EAAiB/D,OAClB,IA3BIsvC,GA8BNnrC,CAAChB,EAAaO,EAAWhC,IAC5B2tC,GACGlrC,IAAIhB,EAAKO,EAAMhC,GACfC,KAAKgB,IACL7I,OAAOlB,IAAuB,IAADkL,EAAAE,EAC5B,IAAKrD,IAAM6C,SAAS5K,GAClB,MAAM,IAAIyI,GAAcnH,EAAUuB,SAAS7C,MAAMsD,YAEnD,MAAM,IAAImF,GACH,OAALzI,QAAK,IAALA,GAAe,QAAVkL,EAALlL,EAAOgK,gBAAQ,IAAAkB,OAAV,EAALA,EAAiBjB,KACZ,OAALjK,QAAK,IAALA,GAAe,QAAVoL,EAALpL,EAAOgK,gBAAQ,IAAAoB,OAAV,EAALA,EAAiBhE,OAClB,IAzCIsvC,GA4CH/pC,CAACpC,EAAazB,IACpB2tC,GACG9pC,OAAOpC,EAAKzB,GACZC,KAAKgB,IACL7I,OAAOlB,IAAuB,IAADwL,EAAAG,EAC5B,IAAK5D,IAAM6C,SAAS5K,GAClB,MAAM,IAAIyI,GAAcnH,EAAUuB,SAAS7C,MAAMuD,cAEnD,MAAM,IAAIkF,GACH,OAALzI,QAAK,IAALA,GAAe,QAAVwL,EAALxL,EAAOgK,gBAAQ,IAAAwB,OAAV,EAALA,EAAiBvB,KACZ,OAALjK,QAAK,IAALA,GAAe,QAAV2L,EAAL3L,EAAOgK,gBAAQ,IAAA2B,OAAV,EAALA,EAAiBvE,OAClB,IC7LH2F,GAAe,sBACf4pC,GAAoB,gBACpBC,GAAWl4C,gCA+BFm4C,OA7Bc,CACzBC,iBAAmB9wC,GACf0wC,GAAqB,GAADj4C,OAAIsO,IAAgB,CACpCS,OAAQ,CAACugC,SAAU/nC,GACnBiC,QAAS2uC,KAEjBG,kBACIC,GAEAN,GAAsB,GAADj4C,OAAIsO,GAAY,WAAWiqC,EAAe,CAC3D/uC,QAAS2uC,KAEjBK,oBAAsBjxC,GAClB0wC,GAAqB,GAADj4C,OAAIsO,GAAY,WAAW,CAC3CS,OAAQ,CAACugC,SAAU/nC,GACnBiC,QAAS2uC,GACTtF,aAAc,SAEtB4F,kBAAmBA,IACfR,GAAqB,GAADj4C,OAAIk4C,IAAqB,CAAC1uC,QAAS2uC,KAC3DO,mBACIC,GAEAV,GAAqB,GAADj4C,OACbk4C,IACH,CAACU,SAAUD,GACX,CAACnvC,QAAS2uC,MCnCf,IAAKU,GAAuB,SAAvBA,GAAuB,OAAvBA,IAAuB,yCAAvBA,IAAuB,qEAAvBA,IAAuB,6BAAvBA,IAAuB,uCAAvBA,IAAuB,mCAAvBA,IAAuB,uCAAvBA,IAAuB,2BAAvBA,CAAuB,MA+FpBC,OA7CqBA,CAClCz7B,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAKq8C,GAAwBE,kBAC3B,MAAO,IACF17B,EACHk7B,cAAej7B,EAAOO,SAE1B,KAAKg7B,GAAwBG,YAC3B,MAAO,IACF37B,EACHsI,QAASrI,EAAOO,SAEpB,KAAKg7B,GAAwBI,iBAC3B,MAAO,IACF57B,EACH67B,YAAa57B,EAAOO,SAExB,KAAKg7B,GAAwBM,WAC3B,MAAO,IACF97B,EACHyjB,OAAQxjB,EAAOO,SAEnB,KAAKg7B,GAAwBO,eAC3B,MAAO,IACF/7B,EACHg8B,UAAW/7B,EAAOO,SAEtB,KAAKg7B,GAAwBS,iBAC3B,MAAO,IACFj8B,EACHk8B,YAAaj8B,EAAOO,SAExB,KAAKg7B,GAAwBW,gCAC3B,MAAO,IACFn8B,EACHo8B,0BAA2Bn8B,EAAOO,SAEtC,QACE,OAAOR,EACX,EC9EK,MAAMe,GAAmC,CAC9Cm6B,cAAe,GACfkB,0BAA2B,KAC3B9zB,SAAS,EACTuzB,aAAa,EACbG,WAAW,EACXE,aAAa,EACbzY,OAAQ,IAWJ4Y,GAAuBj7C,wBAAc,CAAC,GA4J7Bk7C,OA1JyB96C,IAAmB,IAAlB,SAAEC,GAAUD,EACnD,MAAOwe,EAAOwB,GAAYC,qBAAWg6B,GAAsB16B,KACpDw7B,EAAuBC,GAA4BzoC,mBAExD,KACI,WAAE0H,GAAeQ,KAEvB7G,qBAAU,KACRqnC,GAAoB,GACnB,IAEHrnC,qBAAU,KACR,MAAMsnC,EAAwBC,EAC5BJ,GAEF/6B,EAAS,CACPriB,KAAMq8C,GAAwBE,kBAC9Bl7B,QAASk8B,GACT,GACD,CAAC18B,EAAMyjB,SAEV,MAAMgZ,EAAqBA,KACzBj7B,EAAS,CAAEriB,KAAMq8C,GAAwBG,YAAan7B,SAAS,IAC/Du6B,GAAqBC,mBAClB/tC,MAAM2vC,IACLJ,EAAyBI,GACzB,MAAMF,EAAwBC,EAAyBC,GACvDp7B,EAAS,CACPriB,KAAMq8C,GAAwBE,kBAC9Bl7B,QAASk8B,IAEXl7B,EAAS,CACPriB,KAAMq8C,GAAwBS,iBAC9Bz7B,SAAS,IAEXgB,EAAS,CACPriB,KAAMq8C,GAAwBO,eAC9Bv7B,QAASk8B,EAAsBz8C,OAAS,IAE1CuhB,EAAS,CAAEriB,KAAMq8C,GAAwBG,YAAan7B,SAAS,GAAQ,IAExEpb,OAAOlB,IACNsd,EAAS,CAAEriB,KAAMq8C,GAAwBG,YAAan7B,SAAS,IAC/D/E,EAAWvX,EAAMpC,QAAQ,GACzB,EAGA66C,EACJzB,IAEA,GAAqB,KAAjBl7B,EAAMyjB,OACR,OAAOyX,EAET,IAAIwB,EAAwB,IAAIxB,GAMhC,MALqB,KAAjBl7B,EAAMyjB,SACRiZ,EAAwBA,EAAsBjZ,QAAQoZ,GACpDA,EAAEC,WAAWC,cAAczlC,SAAS0I,EAAMyjB,OAAOsZ,gBAAkBF,EAAEnI,aAAaqI,cAAczlC,SAAS0I,EAAMyjB,OAAOsZ,kBAGnHL,CAAqB,EAgF9B,OACEp6C,cAAC+5C,GAAqB95C,SAAQ,CAC5B1D,MAAO,CACLmhB,QACAwB,WACAi7B,qBACAxB,kBAnFqBC,IACzB15B,EAAS,CAAEriB,KAAMq8C,GAAwBI,iBAAkBp7B,SAAS,IACpE,MAAMw8B,EAAc,CAClB5G,cAAe8E,EAAc+B,IAC7BvI,aAAcwG,EAAcxG,cAE9BqG,GAAqBE,kBAAkB+B,GACpC/vC,MAAMiuC,IACLz/B,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7D,MAAMyiC,EAAmB7nC,IAAE8nC,UAAUZ,GACrC,IAAK,IAAI9jC,EAAI,EAAGA,EAAIykC,EAAiBj9C,OAAQwY,IAAK,CAChD,IAAI2kC,EAAMF,EAAiBzkC,IAEzB2kC,EAAIC,kBAAoBnC,EAAcmC,iBACrCD,EAAIN,aAAe5B,EAAc4B,YAChCM,EAAItI,aAAeoG,EAAcpG,cAEnCsI,EAAIC,gBAAkBnC,EAAcmC,gBACpCD,EAAIE,WAAapC,EAAcoC,WAC/BF,EAAIG,kBAAoBrC,EAAcqC,kBACtCH,EAAII,WAAatC,EAAcsC,WAC/BJ,EAAIK,eAAiBvC,EAAcuC,eAEnCL,EAAIM,qBAAqBx9C,SAASy9C,IAChC,MAAMC,EACJ1C,EAAcwC,qBAAqB1+B,MAChCC,GAAMA,EAAE0+B,SAAWA,EAAOA,SAE3BC,IACFD,EAAOE,mBACLD,EAAoBC,mBACtBF,EAAON,gBAAkBO,EAAoBP,gBAC7CM,EAAOG,uBACLF,EAAoBE,uBACtBH,EAAOI,qBACLH,EAAoBG,qBACtBJ,EAAOK,uBACLJ,EAAoBI,uBACtBL,EAAOM,yBACLL,EAAoBK,yBACtBN,EAAOO,kBACLN,EAAoBM,kBACtBP,EAAOQ,YAAcP,EAAoBO,YAC3C,IAGN,CACA3B,EAAyBU,GACzB,MAAMR,EACJC,EAAyBO,GAC3B17B,EAAS,CACPriB,KAAMq8C,GAAwBE,kBAC9Bl7B,QAASk8B,IAEXl7B,EAAS,CACPriB,KAAMq8C,GAAwBI,iBAC9Bp7B,SAAS,GACT,IAEHpb,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAyB1Cq5C,oBAtBsB/mC,UAC1B,IACE,MAAMgqC,QAAarD,GAAqBI,sBAOxC,OANIiD,GAAQA,EAAKl/C,KAAO,GACtBuc,EACEjW,EAAUuB,SAASC,QAAQK,aAC3BkT,GAAYE,SAGT2jC,CACT,CAAE,MAAOl6C,GACPuX,EAAWvX,EAAMpC,QACnB,IAWIL,SAEDA,GAC6B,EAM7B,MAAM48C,GAA0BA,IAAM/8C,qBAAW+6C,ICxLlDiC,GAA4B,oBAC5BC,GAAoB,YACpBzD,GAAWl4C,gCA4CF47C,OA1CgB,CAC7BC,oBAAqBA,IACnB7D,GAAqB,GAADj4C,OAAI27C,IAA6B,CAAEnyC,QAAS2uC,KAClE4D,SAAUA,IACR9D,GAAqB2D,GAAmB,CAAEpyC,QAAS2uC,KACrD6D,qBAAsBA,IACpB/D,GAAqB,GAADj4C,OAAI47C,GAAiB,yBAAyB,CAChEpyC,QAAS2uC,KAEb8D,aAAcA,IACZhE,GAAqB,GAADj4C,OAAI27C,GAAyB,eAAe,CAC9DnyC,QAAS2uC,KAEb+D,sBACEC,GAEAlE,GAAsB0D,GAA2BQ,EAAiB,CAChE3yC,QAAS2uC,KAEbiE,6BACEC,GAEApE,GAAsB,GAADj4C,OAAI27C,IAA6BU,EAAM,CAC1D7yC,QAAS2uC,KAEbmE,sBACEH,GAEAlE,GAAqB0D,GAA2BQ,EAAiB,CAC/D3yC,QAAS2uC,KAEboE,sBAAwBC,GACtBvE,GAAwB,GAADj4C,OAAI27C,GAAyB,KAAA37C,OAAIw8C,GAAY,CAClEhzC,QAAS2uC,KAEbsE,uBACEC,GAEAzE,GAAsB,GAADj4C,OAAI27C,GAAyB,WAAWe,EAAa,CACxElzC,QAAS2uC,MC9CR,IAAKwE,GAA0B,SAA1BA,GAA0B,OAA1BA,IAA0B,+CAA1BA,IAA0B,yBAA1BA,IAA0B,qDAA1BA,IAA0B,iCAA1BA,IAA0B,+DAA1BA,IAA0B,6BAA1BA,IAA0B,mCAA1BA,IAA0B,uCAA1BA,IAA0B,iDAA1BA,CAA0B,MAqHvBC,OAvDwBA,CACrCv/B,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAKmgD,GAA2BE,qBAC9B,MAAO,IACFx/B,EACHy/B,iBAAkBx/B,EAAOO,SAE7B,KAAK8+B,GAA2BI,wBAC9B,MAAO,IACF1/B,EACH2/B,kBAAmB1/B,EAAOO,SAE9B,KAAK8+B,GAA2BM,UAC9B,MAAO,IACF5/B,EACH6/B,MAAO5/B,EAAOO,SAElB,KAAK8+B,GAA2BQ,cAC9B,MAAO,IACF9/B,EACH+/B,UAAW9/B,EAAOO,SAEtB,KAAK8+B,GAA2B3D,YAC9B,MAAO,IACF37B,EACHsI,QAASrI,EAAOO,SAEpB,KAAK8+B,GAA2BvD,eAC9B,MAAO,IACF/7B,EACHg8B,UAAW/7B,EAAOO,SAEtB,KAAK8+B,GAA2BrD,iBAC9B,MAAO,IACFj8B,EACHk8B,YAAaj8B,EAAOO,SAExB,KAAK8+B,GAA2BU,6BAC9B,MAAO,IACFhgC,EACHigC,wBAAyBhgC,EAAOO,SAEpC,KAAK8+B,GAA2BY,sBAC9B,MAAO,IACFlgC,EACHmgC,iBAAkBlgC,EAAOO,SAE7B,QACE,OAAOR,EACX,ECtGK,MAAMe,GAAsC,CACjD0+B,iBAAkB,GAClBI,MAAO,GACPF,kBAAmB,GACnBI,UAAW,GACXE,wBAAyB,KACzB33B,SAAS,EACT0zB,WAAW,EACXE,aAAa,EACbiE,iBAAkB,CAAEr3B,MAAO,MAAOjqB,MAAO,QAiBrCuhD,GAA0Bh/C,wBAC9B,CAAC,GA2MYi/C,OAxM4B7+C,IAAmB,IAAlB,SAAEC,GAAUD,EACtD,MAAOwe,EAAOwB,GAAYC,qBAAW89B,GAAyBx+B,KACxD,WAAEtF,GAAeQ,MAChBqkC,EAAeC,GAAoBxsC,mBAExC,KAEKysC,EAAiBC,GAAsB1sC,wBAC5CjV,GAGFsW,qBAAU,KACRsrC,IACAC,IACAC,IACAC,GAAgB,GACf,IAEHzrC,qBAAU,KACR,MAAM0rC,EAAgBC,EAAiBT,GACvC9+B,EAAS,CACPriB,KAAMmgD,GAA2BE,qBACjCh/B,QAASsgC,GACT,GACD,CAAC9gC,EAAMmgC,mBAEV,MAAMO,EAAwBA,KAC5Bl/B,EAAS,CAAEriB,KAAMmgD,GAA2B3D,YAAan7B,SAAS,IAClEg+B,GAAuBC,sBACpBxxC,MAAM+zC,IACLT,EAAiBS,GACjB,MAAMF,EAAgBC,EAAiBC,GACvCx/B,EAAS,CACPriB,KAAMmgD,GAA2BE,qBACjCh/B,QAASsgC,IAEXt/B,EAAS,CACPriB,KAAMmgD,GAA2BrD,iBACjCz7B,SAAS,IAEXgB,EAAS,CACPriB,KAAMmgD,GAA2BvD,eACjCv7B,QAASsgC,EAAc7gD,OAAS,IAElCuhB,EAAS,CACPriB,KAAMmgD,GAA2B3D,YACjCn7B,SAAS,GACT,IAEHpb,OAAOlB,IACNsd,EAAS,CACPriB,KAAMmgD,GAA2B3D,YACjCn7B,SAAS,IAEX/E,EAAWvX,EAAMpC,QAAQ,GACzB,EAGA6+C,EAAaA,KACjBnC,GAAuBE,WACpBzxC,MAAM4yC,GACLr+B,EAAS,CAAEriB,KAAMmgD,GAA2BM,UAAWp/B,QAASq/B,MAEjEz6C,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAG1C8+C,EAAyBA,KAC7BpC,GAAuBG,uBACpB1xC,MAAM4yC,GACLr+B,EAAS,CACPriB,KAAMmgD,GAA2BI,wBACjCl/B,QAASq/B,MAGZz6C,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAG1C++C,EAAiBA,KACrBrC,GAAuBI,eACpB3xC,MAAM8yC,GACLv+B,EAAS,CACPriB,KAAMmgD,GAA2BQ,cACjCt/B,QAASu/B,MAGZ36C,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAG1Ci/C,EAAoBC,IACxB,IAAKhhC,EAAMmgC,kBAAqD,QAAjCngC,EAAMmgC,iBAAiBr3B,MACpD,OAAOk4B,EAET,IAAIF,EAAgB,IAAIE,GAMxB,MALqC,QAAjChhC,EAAMmgC,iBAAiBr3B,QACzBg4B,EAAgBA,EAAcrd,QAC3Bwd,IAAW,IAAAC,EAAA,OAAqB,QAAhBA,EAAAD,EAAYjC,YAAI,IAAAkC,OAAA,EAAhBA,EAAkBvkC,QAASqD,EAAMmgC,iBAAiBthD,KAAK,KAGrEiiD,CAAa,EAmFtB,OACEx+C,cAAC89C,GAAwB79C,SAAQ,CAC/B1D,MAAO,CACLmhB,QACAwgC,kBACAW,sBAPwBA,IAAMV,OAAmB3hD,GAQjD0iB,WACAq9B,sBAvFyBC,IAC7BN,GAAuBK,sBAAsBC,GAC1C7xC,MAAK,KACJwO,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7DimC,IACAE,GAAwB,IAEzBx7C,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,EA+EAm9C,sBApDyBH,IAC7B2B,OAAmB3hD,GACnB0/C,GAAuBS,sBAAsBH,GAC1C7xC,MAAMm0C,IACDA,IACF3lC,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7DimC,IACF,IAEDt7C,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,EA0CAo9C,sBAvCyBC,IAC7BX,GAAuBU,sBAAsBC,GAC1ClyC,MAAM1B,IACDA,IACFkQ,EACEjW,EAAUuB,SAASC,QAAQE,YAC3BqT,GAAYE,SAEdimC,IACAE,IACF,IAEDx7C,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EA4B1Cs9C,uBAzB0BC,IAC9Bb,GAAuBY,uBAAuBC,GAC3CpyC,MAAMo0C,IACDA,GACF5lC,EACEjW,EAAUuB,SAASC,QAAQK,aAC3BkT,GAAYE,QAEhB,IAEDrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAgB1Ci9C,6BA9EJD,IAEA2B,OAAmB3hD,GACZ0/C,GAAuBO,6BAA6BD,GACxD7xC,MAAK,KACJwO,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7DkmC,IACAD,IACAE,KACO,KAERx7C,OAAOlB,IAEN,GADAD,QAAQiB,IAAI,UAAUhB,EAAMoH,QACP,MAAjBpH,EAAMoH,OAAgB,CACxB,MAAMxJ,EAAO,wBAAAa,OAA2Bm8C,EAAgBE,KAAKriC,KAAI,mBACjE8jC,EAAmB3+C,GACnB2Z,EAAW3Z,EACb,MACE2Z,EAAWvX,EAAMpC,SAEnB,OAAO,CAAK,MA2DZL,SAEDA,GACgC,EAMhC,MAAM6/C,GAA6BA,IACxChgD,qBAAW8+C,ICtPN,IAAKmB,GAAkB,SAAlBA,GAAkB,OAAlBA,IAAkB,yCAAlBA,IAAkB,6BAAlBA,IAAkB,mCAAlBA,IAAkB,uCAAlBA,IAAkB,uBAAlBA,CAAkB,MAyEfC,OAnCgBA,CAC7BxhC,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAKoiD,GAAmB7F,kBACtB,MAAO,IACF17B,EACHk7B,cAAej7B,EAAOO,SAE1B,KAAK+gC,GAAmB5F,YACtB,MAAO,IACF37B,EACHsI,QAASrI,EAAOO,SAEpB,KAAK+gC,GAAmBxF,eACtB,MAAO,IACF/7B,EACHg8B,UAAW/7B,EAAOO,SAEtB,KAAK+gC,GAAmBtF,iBACtB,MAAO,IACFj8B,EACHk8B,YAAaj8B,EAAOO,SAExB,KAAK+gC,GAAmBE,SACtB,MAAO,IACFzhC,EACH9V,KAAM+V,EAAOO,SAEjB,QACE,OAAOR,EACX,ECjEK,MAAMe,GAA8B,CACzCm6B,cAAe,GACf5yB,SAAS,EACT0zB,WAAW,EACXE,aAAa,EACbhyC,KAAMklC,KAAOsS,OAUTC,GAAkBvgD,wBAAc,CAAC,GAgExBwgD,OA9DoBpgD,IAAmB,IAAlB,SAAEC,GAAUD,EAC9C,MAAOwe,EAAOwB,GAAYC,qBAAW+/B,GAAiBzgC,KAChD,WAAEtF,GAAeQ,KAEvB7G,qBAAU,KACRqnC,GAAoB,GACnB,IAEH,MAAMA,EAAqBA,KACzBj7B,EAAS,CAAEriB,KAAMoiD,GAAmB5F,YAAan7B,SAAS,IAC1Du6B,GAAqBC,iBACnBh7B,EAAM9V,KAAM0rC,QAAQ,OAAOr1C,eAE1B0M,MAAMiuC,IACL15B,EAAS,CACPriB,KAAMoiD,GAAmB7F,kBACzBl7B,QAAS06B,IAEX15B,EAAS,CAAEriB,KAAMoiD,GAAmBtF,iBAAkBz7B,SAAS,IAC/DgB,EAAS,CACPriB,KAAMoiD,GAAmBxF,eACzBv7B,QAAS06B,EAAcj7C,OAAS,IAElCuhB,EAAS,CAAEriB,KAAMoiD,GAAmB5F,YAAan7B,SAAS,GAAQ,IAEnEpb,OAAOlB,IACNsd,EAAS,CAAEriB,KAAMoiD,GAAmB5F,YAAan7B,SAAS,IAC1D/E,EAAWvX,EAAMpC,QAAQ,GACzB,EAoBN,OACEQ,cAACq/C,GAAgBp/C,SAAQ,CACvB1D,MAAO,CACLmhB,QACAwB,WACAi7B,qBACAtB,oBAvBsB/mC,UAC1B,IACE,MAAMgqC,QAAarD,GAAqBI,oBACtCn7B,EAAM9V,KAAM0rC,QAAQ,OAAOr1C,eAQ7B,OANI69C,GAAQA,EAAKl/C,KAAO,GACtBuc,EACEjW,EAAUuB,SAASC,QAAQK,aAC3BkT,GAAYE,SAGT2jC,CACT,CAAE,MAAOl6C,GACPuX,EAAWvX,EAAMpC,QACnB,IAUIL,SAEDA,GACwB,EAMxB,MAAMogD,GAAqBA,IAAMvgD,qBAAWqgD,ICrF7C1wC,GAAe,uBAGf6pC,GAAWl4C,gCAyBFk/C,OAvBc,CAC3BC,kBAAmBA,CACjB9P,EACAE,IAEAyI,GAAqB,GAADj4C,OAAIsO,GAAY,cAAAtO,OAAasvC,EAAQ,YAAAtvC,OAAWwvC,GAAU,CAC5EhmC,QAAS2uC,KAEbkH,oBAAsBC,GACpBrH,GAAsB,GAADj4C,OAbD,6BAawBs/C,EAAe,CAAE91C,QAAS2uC,KACxEoH,2BACEC,GAEAvH,GAAsB,GAADj4C,OAhBA,uBAgBwBw/C,EAAS,CAAEh2C,QAAS2uC,KACnEsH,qBAAsBA,CAACnQ,EAAkBE,IACvCyI,GAAqB,GAADj4C,OACfsO,GAAY,qBAAAtO,OAAoBsvC,EAAQ,YAAAtvC,OAAWwvC,GACtD,CACEqD,aAAc,OACdrpC,QAAS2uC,MCxBV,IAAKuH,GAAwB,SAAxBA,GAAwB,OAAxBA,IAAwB,2CAAxBA,IAAwB,mDAAxBA,IAAwB,2DAAxBA,IAAwB,qDAAxBA,IAAwB,6BAAxBA,IAAwB,mCAAxBA,IAAwB,uCAAxBA,IAAwB,+BAAxBA,IAAwB,2BAAxBA,CAAwB,MAqHrBC,OAvDsBA,CACnCtiC,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAKkjD,GAAyBE,mBAC5B,MAAO,IACFviC,EACHwiC,eAAgBviC,EAAOO,SAE3B,KAAK6hC,GAAyBI,uBAC5B,MAAO,IACFziC,EACH0iC,mBAAoBziC,EAAOO,SAE/B,KAAK6hC,GAAyB1G,YAC5B,MAAO,IACF37B,EACHsI,QAASrI,EAAOO,SAEpB,KAAK6hC,GAAyBtG,eAC5B,MAAO,IACF/7B,EACHg8B,UAAW/7B,EAAOO,SAEtB,KAAK6hC,GAAyBpG,iBAC5B,MAAO,IACFj8B,EACHk8B,YAAaj8B,EAAOO,SAExB,KAAK6hC,GAAyBM,2BAC5B,MAAO,IACF3iC,EACH4iC,sBAAuB3iC,EAAOO,SAElC,KAAK6hC,GAAyBQ,wBAC5B,MAAO,IACF7iC,EACH8iC,mBAAoB7iC,EAAOO,SAE/B,KAAK6hC,GAAyBU,aAC5B,MAAO,IACF/iC,EACHiyB,SAAUhyB,EAAOO,SAErB,KAAK6hC,GAAyBW,WAC5B,MAAO,IACFhjC,EACHmyB,OAAQlyB,EAAOO,SAEnB,QACE,OAAOR,EACX,ECvGK,MAAMe,GAAoC,CAC/CyhC,eAAgB,GAChBE,mBAAoB,GACpBE,sBAAuB,KACvBE,mBAAoB,KACpBx6B,SAAS,EACT0zB,WAAW,EACXE,aAAa,EACbjK,SAAU7C,KAAOsS,MACjBvP,OAAQ/C,KAAOsS,MAAM7L,IAAI,EAAG,SAYxBoN,GAAwB7hD,wBAAc,CAAC,GAuH9B8hD,OArH0B1hD,IAAiB,IAAhB,SAACC,GAASD,EAClD,MAAOwe,EAAOwB,GAAYC,qBAAW6gC,GAAuBvhC,KACtD,WAACtF,GAAcQ,KAErB7G,qBAAU,KACR+tC,GAAqB,GACpB,IAEH,MAAMA,EAAsBA,KAC1B3hC,EAAS,CAACriB,KAAMkjD,GAAyB1G,YAAan7B,SAAS,IAC/DshC,GAAqBC,kBACnB/hC,EAAMiyB,SAAU2D,QAAQ,OAAOr1C,cAC/Byf,EAAMmyB,OAAQyD,QAAQ,OAAOr1C,eAE5B0M,MAAMm2C,IACLA,EAASljD,SACN+1B,GACEA,EAAEotB,aAAeptB,EAAEqtB,KACjBtrC,KAAKurC,GAAQ,GAAA5gD,OAAQ4gD,EAAIC,qBACzB51B,KAAK,OAEZpM,EAAS,CACPriB,KAAMkjD,GAAyBE,mBAC/B/hC,QAAS4iC,IAEX5hC,EAAS,CACPriB,KAAMkjD,GAAyBpG,iBAC/Bz7B,SAAS,IAEXgB,EAAS,CACPriB,KAAMkjD,GAAyBtG,eAC/Bv7B,QAAS4iC,EAASnjD,OAAS,IAE7BuhB,EAAS,CACPriB,KAAMkjD,GAAyB1G,YAC/Bn7B,SAAS,GACT,IAEHpb,OAAOlB,IACNsd,EAAS,CACPriB,KAAMkjD,GAAyB1G,YAC/Bn7B,SAAS,IAEX/E,EAAWvX,EAAMpC,QAAQ,GACzB,EAyDN,OACEQ,cAAC2gD,GAAsB1gD,SAAQ,CAC7B1D,MAAO,CACLmhB,QACAwB,WACA2hC,sBACAnB,oBAjCuBC,IAC3BH,GAAqBE,oBAAoBC,GACtCh1C,MAAMm0C,IACDA,GAEF+B,IACA1nC,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,UAE7DgB,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WAAY+S,GAAY3N,MAC9D,IAEDxH,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAuB1CogD,2BA5DJuB,IAEA3B,GAAqBI,2BAA2BuB,GAC7Cx2C,MAAMm0C,IACL,GAAIA,EAAS,CACX3lC,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7D,MAAMipC,EAAkBruC,IAAE8nC,UAAUn9B,EAAMwiC,gBAEpCmB,EAAUD,EAAgB1kC,MAC7B2kC,GACCA,EAAQC,uBACRH,EAAqB/O,cACrBiP,EAAQE,qBAAuBJ,EAAqB3O,aAEpD6O,IACFA,EAAQxB,QAAUsB,EAAqBtB,SAEzC3gC,EAAS,CACPriB,KAAMkjD,GAAyBE,mBAC/B/hC,QAASkjC,GAEb,KAEDt+C,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAsC1CsgD,qBArBuBhuC,UAC3B,IACE,MAAMgqC,QAAa0D,GAAqBM,qBACtCpiC,EAAMiyB,SAAU2D,QAAQ,OAAOr1C,cAC/Byf,EAAMmyB,OAAQyD,QAAQ,OAAOr1C,eAG/B,OADAkb,EAAWjW,EAAUuB,SAASC,QAAQK,aAAckT,GAAYE,SACzD2jC,CACT,CAAE,MAAOl6C,GACPuX,EAAWvX,EAAMpC,QACnB,IAYIL,SAEDA,GAC8B,EAM9B,MAAMqiD,GAA2BA,IAAMxiD,qBAAW2hD,ICxJnDhyC,GAAe,cACf6pC,GAAWl4C,4BAkBFmhD,OAfO,CACpBC,cAAgBL,GACdp1C,EAAa,GAAD5L,OAAIsO,GAAY,gBAAAtO,OAAeghD,GAAW,CACpDx3C,QAAS2uC,KAEbmJ,WAAYA,CAACjS,EAAcx6B,EAAYtN,IACrC0wC,GAAqB,GAADj4C,OACfsO,GAAY,UAAAtO,OAASqvC,EAAI,KAAArvC,OAAI6U,EAAE,UAAA7U,OAASuH,EAAK3J,gBAEpD2jD,kBAAmBA,IACjBtJ,GAAqB,sBAAuB,CAAEzuC,QAZ7BvJ,kCAanBuhD,4BAA8BC,GAC5B71C,EAAc,GAAD5L,OAAIsO,GAAY,SAASmzC,EAAa,CAAEj4C,QAAS2uC,MCPnDuJ,OATM,CACnBC,QAASA,CACPC,EACAC,EACAC,IAEAl2C,EAAc,GAAD5L,OARI,YAQY,aAAAA,OAAY6hD,EAAO,KAAA7hD,OAAI8hD,GAAcF,ICF/D,IAAKG,GAAoB,SAApBA,GAAoB,OAApBA,EAAoB,gDAApBA,EAAoB,8CAApBA,EAAoB,4CAApBA,EAAoB,wCAApBA,EAAoB,4DAApBA,EAAoB,0DAApBA,EAAoB,sDAApBA,EAAoB,cAApBA,EAAoB,gCAApBA,EAAoB,8CAApBA,EAAoB,0BAApBA,EAAoB,wCAApBA,EAAoB,8BAApBA,EAAoB,4CAApBA,EAAoB,0CAApBA,EAAoB,wCAApBA,EAAoB,oCAApBA,CAAoB,MA+EzB,MAAMC,GAAwCA,CACnDJ,EACAvvC,IAEOA,EACHuvC,EAAQvsC,KAAK4sC,GACXxV,KAAOwV,EAAEC,gBAAkBzV,KAAOp6B,GAC7B,IACI4vC,EACH7vC,WAAW,EACX+vC,cAAet/C,EAAUqC,WAAWyB,kBAEtCs7C,IAENL,EAGOQ,GAAmBA,CAC9B/kC,EACAC,KACI,IAAD+kC,EAAAC,EACH,OAAQhlC,EAAO9gB,MACb,KAAKulD,GAAqBQ,sBACxB,MAAO,IACFllC,EACHmlC,iBAAiB,EACjB36B,kBAAc1rB,EACdqH,OAAQ8Z,EAAOO,QACf4kC,kBAActmD,EACdumD,wBAAoBvmD,GAExB,KAAK4lD,GAAqBY,qBACxB,MAAO,IAAKtlC,EAAOmlC,iBAAiB,EAAO36B,aAAcvK,EAAOO,SAClE,KAAKkkC,GAAqBa,uBACxB,MAAO,IAAKvlC,EAAOwlC,YAAavlC,EAAOO,SACzC,KAAKkkC,GAAqBe,mBACxB,MAAO,IACFzlC,EACHmlC,iBAAiB,EACjBZ,QAASI,GACP1kC,EAAOO,QAAQ+jC,QACM,QADCS,EACtB/kC,EAAOO,QAAQra,cAAM,IAAA6+C,OAAA,EAArBA,EAAuBU,uBAG7B,KAAKhB,GAAqBiB,6BACxB,MAAO,IAAK3lC,EAAO4lC,uBAAuB,EAAMp7B,kBAAc1rB,GAChE,KAAK4lD,GAAqBmB,4BACxB,MAAO,IACF7lC,EACH4lC,uBAAuB,EACvBp7B,aAAcvK,EAAOO,SAEzB,KAAKkkC,GAAqBoB,0BACxB,MAAO,IACF9lC,EACH4lC,uBAAuB,EACvBG,cAAepB,GACb1kC,EAAOO,QAAQ+jC,QACM,QADCU,EACtBhlC,EAAOO,QAAQra,cAAM,IAAA8+C,OAAA,EAArBA,EAAuBS,uBAG7B,KAAKhB,GAAqBsB,oBACxB,MAAO,IAAKhmC,EAAOwK,kBAAc1rB,GACnC,KAAK4lD,GAAqBuB,mBACxB,MAAO,IAAKjmC,EAAOwK,aAAcvK,EAAOO,SAC1C,KAAKkkC,GAAqBwB,iBACxB,MAAO,IACFlmC,EACHmmC,MAAOhV,aAAQnxB,EAAMmmC,OAAQ/U,GAKpB,IAJMA,EAAM3N,QAChBxkB,IACEgB,EAAOO,QAAQ4G,MAAMuR,GAAMA,EAAE+b,eAAiBz1B,EAAEy1B,oBAEjCz0B,EAAOO,YAGjC,KAAKkkC,GAAqB0B,MACxB,MAAO,IACFpmC,EACHukC,QAAS,GACTwB,cAAe,GACfI,MAAO,GACPhgD,YAAQrH,EACRsmD,kBAActmD,EACdumD,wBAAoBvmD,GAExB,KAAK4lD,GAAqB2B,eACxB,MAAO,IACFrmC,EACHsmC,gBAAiBrmC,EAAOO,SAE5B,KAAKkkC,GAAqB6B,sBACxB,MAAO,IACFvmC,EACHwmC,sBAAuBvmC,EAAOO,SAElC,KAAKkkC,GAAqB+B,YACxB,MAAO,IACFzmC,EACHwlC,iBAAa1mD,EACbsmD,aAAcnlC,EAAOO,SAEzB,KAAKkkC,GAAqBgC,mBACxB,MAAO,IACF1mC,EACHwlC,iBAAa1mD,EACbumD,mBAAoBplC,EAAOO,SAE/B,KAAKkkC,GAAqBiC,cACxB,MAAO,IACF3mC,EACHolC,cACGplC,EAAMolC,cACPhW,KAAOpvB,EAAMolC,aAAaP,eAAiBzV,KAAOnvB,EAAOO,cACrD1hB,EACAkhB,EAAMolC,cAEhB,KAAKV,GAAqBkC,qBACxB,MAAO,IACF5mC,EACHqlC,oBACGrlC,EAAMqlC,oBACPjW,KAAOpvB,EAAMqlC,mBAAmBR,eAC9BzV,KAAOnvB,EAAOO,cACZ1hB,EACAkhB,EAAMqlC,oBAEhB,QACE,OAAOrlC,EACX,ECnLIuxB,GAAgC,CACpCiU,iBAAa1mD,EACbqH,YAAQrH,EACRylD,QAAS,GACT+B,gBAAiB,GACjBP,cAAe,GACfS,sBAAuB,GACvBpB,kBAActmD,EACdumD,wBAAoBvmD,EACpB2kC,YAAQ3kC,EACRqmD,iBAAiB,EACjBS,uBAAuB,EACvBO,MAAO,IAGHU,GAAmBnzC,IAAMtS,cAAc,CAAC,GAkMjC0lD,GAAsBA,IAAMxlD,qBAAWulD,IAErCE,OAlMqBvlD,IAAmB,IAAlB,SAAEC,GAAUD,EAC/C,MAAM,kBAAEuc,GAAsB4hB,MACvB3f,EAAOwB,GAAYC,qBAAWsjC,GAAkBxT,IAmDjDyV,EAAeA,CACnBzC,EACAE,EACAD,EACAyC,KAEA,GAAIxC,GAAcD,EAAS,CACzBhjC,EAAS,CAAEriB,KAAMulD,GAAqBsB,sBACtC,MAAMkB,EAAc3C,EAAQvsC,KAAK4sC,GAC/BqC,EAAY,IAAKrC,EAAGqC,UAAWA,GAAcrC,IAE/CP,GAAaC,QAAQ4C,EAAa1C,EAASC,GACxCx3C,MAAMk5C,GACL3kC,EAAS,CACPriB,KAAMulD,GAAqBwB,iBAC3B1lC,QAAS2lC,MAGZ/gD,OAAOlB,GACNsd,EAAS,CACPriB,KAAMulD,GAAqBuB,mBAC3BzlC,QAAStc,KAGjB,GAiFIijD,EAAoBA,CACxB5C,EACAr6C,EACAk9C,IAEOl9C,EACHq6C,EAAQ9gB,QACLmhB,GAZqByC,EAACzC,EAAcwC,IAC3CA,EACIhY,KAAOwV,EAAEC,eAAeyC,QAAQC,GAAGH,GAAUlV,OAAO,cACpD9C,KAAOwV,EAAEC,eAAe3S,OAAO,cAU3BmV,CAAsBzC,EAAGwC,KACzBhY,KAAOllC,GAAMgoC,OAAO,gBAExBqS,EAGN,OACEjiD,cAACukD,GAAiBtkD,SAAQ,CACxB1D,MAAO,IACFmhB,EACHwnC,eA9BkBhC,IACtBhkC,EAAS,CACPriB,KAAMulD,GAAqBa,uBAC3B/kC,QAASglC,GACT,EA2BEiC,cA7KgBrzC,UACpBoN,EAAS,CACPriB,KAAMulD,GAAqBQ,sBAC3B1kC,QAASra,IAEX49C,GAAcI,4BAA4B,CACxCnS,KAAM7rC,EAAO6rC,KACbx6B,GAAIrR,EAAOqR,GACXtN,KAAM/D,EAAO8rC,SACbwS,WAAYt+C,EAAOs+C,WACnBpL,cAAelzC,EAAO6zC,YAErB/sC,MAAMs3C,GACL/iC,EAAS,CACPriB,KAAMulD,GAAqBe,mBAC3BjlC,QAAS,CAAE+jC,UAASp+C,cAGvBf,OAAOlB,GACNsd,EAAS,CACPriB,KAAMulD,GAAqBY,qBAC3B9kC,QAAStc,MAIXiC,EAAOgsC,SACT3wB,EAAS,CAAEriB,KAAMulD,GAAqBiB,+BACtC5B,GAAcI,4BAA4B,CACxCnS,KAAM7rC,EAAOqR,GACbA,GAAIrR,EAAO6rC,KACX9nC,KAAM/D,EAAOgsC,OACbsS,WAAYt+C,EAAOs+C,WACnBpL,cAAelzC,EAAO6zC,YAErB/sC,MAAMs3C,GACL/iC,EAAS,CACPriB,KAAMulD,GAAqBoB,0BAC3BtlC,QAAS,CAAE+jC,UAASp+C,cAGvBf,OAAOlB,GACNsd,EAAS,CACPriB,KAAMulD,GAAqBmB,4BAC3BrlC,QAAStc,MAGjB,EAgIIwjD,MAlGQA,KACZlmC,EAAS,CAAEriB,KAAMulD,GAAqB0B,OAAQ,EAkG1CuB,cA/FiBlkB,IAA6B,IAADmkB,EAAAC,EAAAC,EACjD,MAAMV,EAAWrpC,EAAkBiB,MAChC+oC,IAAC,IAAAC,EAAA,OAAKD,EAAEprC,QAAqB,QAAjBqrC,EAAKhoC,EAAM7Z,cAAM,IAAA6hD,OAAA,EAAZA,EAAchW,KAAI,IAEhCsU,EAAkBa,EACtBnnC,EAAMukC,QACN9gB,EAAOv5B,KACC,OAARk9C,QAAQ,IAARA,OAAQ,EAARA,EAAUa,UAEZzmC,EAAS,CACPriB,KAAMulD,GAAqB2B,eAC3B7lC,QAAS8lC,IAEXU,EACEV,EACY,QADGsB,EACf5nC,EAAM7Z,cAAM,IAAAyhD,OAAA,EAAZA,EAAcnD,WACF,QADYoD,EACxB7nC,EAAM7Z,cAAM,IAAA0hD,OAAA,EAAZA,EAAcrD,QACF,QADSsD,EACrB9nC,EAAM7Z,cAAM,IAAA2hD,OAAA,EAAZA,EAAcI,MACf,EA8EGC,oBA3EuB1kB,IAA6B,IAAD2kB,EAAAC,EAAAC,EACvD,MAAMlB,EAAWrpC,EAAkBiB,MAAM+oC,IAAC,IAAAQ,EAAA,OAAKR,EAAEprC,QAAqB,QAAjB4rC,EAAKvoC,EAAM7Z,cAAM,IAAAoiD,OAAA,EAAZA,EAAc/wC,GAAG,IACrE8uC,EAAkBa,EACtBnnC,EAAM+lC,cACNtiB,EAAOv5B,KACC,OAARk9C,QAAQ,IAARA,OAAQ,EAARA,EAAUa,UAEZzmC,EAAS,CACPriB,KAAMulD,GAAqB6B,sBAC3B/lC,QAAS8lC,IAEXU,EACEV,EACY,QADG8B,EACfpoC,EAAM7Z,cAAM,IAAAiiD,OAAA,EAAZA,EAAc3D,WACF,QADY4D,EACxBroC,EAAM7Z,cAAM,IAAAkiD,OAAA,EAAZA,EAAc7D,QACF,QADS8D,EACrBtoC,EAAM7Z,cAAM,IAAAmiD,OAAA,EAAZA,EAAcJ,MACf,EA4DGM,WAzDcC,IAClBjnC,EAAS,CAAEriB,KAAMulD,GAAqB+B,YAAajmC,QAASioC,GAAS,EAyDjEC,iBAtDoBD,IACxBjnC,EAAS,CACPriB,KAAMulD,GAAqBgC,mBAC3BlmC,QAASioC,GACT,EAmDEE,aAhDgBrgD,IACpBkZ,EAAS,CAAEriB,KAAMulD,GAAqBiC,cAAenmC,QAASlY,GAAU,EAgDpEsgD,mBA7CsBtgD,IAC1BkZ,EAAS,CACPriB,KAAMulD,GAAqBkC,qBAC3BpmC,QAASlY,GACT,GA0CE7G,SAEDA,GACyB,ECjPhC,MAAMwP,GAAe,gBAoBN43C,OAlBS,CACtB9xB,OAAQA,IAA4BxoB,EAAa,GAAD5L,OAAIsO,KACpD/E,OAAS48C,GACPv6C,EAAc,GAAD5L,OAAIsO,IAAgB63C,GACnCvY,OAASuY,GACPv6C,EAAa,GAAD5L,OAAIsO,IAAgB63C,GAClCj4C,OAASk4C,GACPx6C,EAAgB,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAIomD,IACrCz3C,YAAaA,IAAyB/C,EAAa,GAAD5L,OAAIsO,GAAY,WAClE+3C,aAAe16C,GACNC,EAAc,GAAD5L,OAAIsO,GAAY,UAAU3C,EAAU,CACtDjC,QAAS,CACP,eAAgB,0BCfjB,IAAK48C,GAAkB,SAAlBA,GAAkB,OAAlBA,IAAkB,uCAAlBA,IAAkB,6BAAlBA,IAAkB,uCAAlBA,CAAkB,MAiCfC,OAhBgBA,CAC7BlpC,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAK8pD,GAAmBE,iBACtB,MAAO,IAAKnpC,EAAOopC,UAAWnpC,EAAOO,SACvC,KAAKyoC,GAAmBI,YACtB,MAAO,IAAKrpC,EAAOhc,MAAOic,EAAOO,SACnC,KAAKyoC,GAAmBK,iBACtB,MAAO,IAAKtpC,EAAOupC,iBAAkBtpC,EAAOO,SAC9C,QACE,OAAOR,EACX,ECvBK,MAAMe,GAA8B,CACzCqoC,UAAW,KACXplD,MAAO,KACPulD,iBAAkB,MAUdC,GAAkBpoD,wBAAc,CAAC,GAuFxBqoD,OArFoBjoD,IAAmB,IAAlB,SAAEC,GAAUD,EAC9C,MAAOwe,EAAOwB,GAAYC,qBAAWynC,GAAiBnoC,KAChD,WAAEtF,GAAeQ,KAEvB7G,qBAAU,KACRs0C,IAAiBtkD,MAAMnB,QAAQC,OAC/BylD,IAAavkD,MAAMnB,QAAQC,MAAM,GAChC,IAEH,MAAMwlD,EAAiBt1C,UACrBy0C,GAAgB9xB,SACb9pB,MAAMm8C,GACL5nC,EAAS,CACPriB,KAAM8pD,GAAmBE,iBACzB3oC,QAAS4oC,MAGZhkD,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAG1C6nD,EAAav1C,UACjBy0C,GAAgBv3C,cACbrE,MAAMjJ,GACLwd,EAAS,CAAEriB,KAAM8pD,GAAmBI,YAAa7oC,QAASxc,MAE3DoB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EA8ChD,OACEQ,cAACknD,GAAgBjnD,SAAQ,CACvB1D,MAAO,CACLmhB,QACAwB,WACAooC,eAhDkBC,IACtB,IAAIC,EAEFA,EADE9pC,EAAMupC,iBACUV,GAAgBtY,OAAO,IACpCvwB,EAAMupC,oBACNM,IAGahB,GAAgB38C,OAAO29C,GAG3CC,EACG78C,MAAM4gB,IACDA,GACF67B,IAAiBtkD,MAAMnB,QAAQC,MACjC,IAED+I,MAAK,IACJwO,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,WAE9DrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EA6B1CioD,uBA1ByBA,KACzB/pC,EAAMupC,kBACRV,GAAgBh4C,OAAOmP,EAAMupC,iBAAiBR,YAC3C97C,MAAM+8C,IACDA,EACFN,IAAiBtkD,MAAMnB,QAAQC,OAE/BuX,EAAW,wCACb,IAEDxO,MAAK,IACJwO,EACEjW,EAAUuB,SAASC,QAAQE,YAC3BqT,GAAYE,WAGfrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UACvC,GAUIL,SAEDA,GACwB,EAMxB,MAAMwoD,GAAqBA,IAAM3oD,qBAAWkoD,IC5F7Cv4C,GAAe,cACfi5C,GAAQ,SAiFCC,OA/EO,CACpB37C,IAAKA,IAAmCD,EAAa,GAAD5L,OAAIsO,KACxDm5C,QAAU7wC,GACRhL,EAAa,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAI4W,IAClC8wC,mBAAoBA,CAClB9wC,EACAkzB,IAGIl+B,EADJk+B,EACiB,GAAD9pC,OAAIsO,GAAY,iBAAAtO,OAAgB4W,EAAE,YAAA5W,OAAW8pC,GAC5C,GAAD9pC,OAAIsO,GAAY,iBAAAtO,OAAgB4W,IAClD+wC,gBAAkBC,GAChBh8C,EAAc,GAAD5L,OAAIsO,GAAY,cAAcs5C,GAC7CC,gBAAkBD,GAChBh8C,EAAa,GAAD5L,OAAIsO,GAAY,cAAcs5C,GAC5CE,uBAAyBt8C,GACvBI,EAAa,GAAD5L,OAAIsO,GAAY,sBAAsB9C,GACpDu8C,gBAAiBA,CAAC1U,EAAkB2U,IAClCp8C,EAAgB,GAAD5L,OAAIsO,GAAY,eAAAtO,OAAcgoD,EAAW,KAAAhoD,OAAIqzC,IAC9D4U,8BACEC,GAEAt8C,EAAa,GAAD5L,OAAIsO,GAAY,kBAAkB45C,GAChDC,gBAAiBA,IACfv8C,EAAa,GAAD5L,OAAIsO,GAAY,kBAC9B85C,sBAAwB5kD,GACtBoI,EAAa,GAAD5L,OAAIsO,GAAY,YAAAtO,OAAWqoD,mBAAmB7kD,KAC5D8kD,mBAAqBC,GACnB38C,EAAa,GAAD5L,OAAIsO,GAAY,WAAWi6C,GACzCC,+BACEztC,GAEAnP,EAAa,GAAD5L,OACPsO,GAAY,mBAAAtO,OAAkBqoD,mBAAmBttC,KAExD0tC,0BAA4BpV,GAC1BznC,EAAa,GAAD5L,OAAIsO,GAAY,0BAAAtO,OAAyBqzC,IACvDqV,aAAellD,GACboI,EAAc,GAAD5L,OAAIsO,IAAYtO,OAAGunD,GAAK,WAAW/jD,GAClDmlD,SAAUA,CAAC/xC,EAAYkzB,IAEjBl+B,EADJk+B,EACiB,GAAD9pC,OAAIsO,IAAYtO,OAAGunD,GAAK,KAAAvnD,OAAI4W,EAAE,YAAA5W,OAAW8pC,GACxC,GAAD9pC,OAAIsO,IAAYtO,OAAGunD,GAAK,KAAAvnD,OAAI4W,IAC9CgyC,YAAcC,GACZj9C,EAAc,GAAD5L,OAAIsO,IAAYtO,OAAGunD,GAAK,QAAQsB,GAC/CC,UAAWA,CAAC94C,EAAgB+4C,IAC1Bn9C,EAAc,GAAD5L,OAAIsO,IAAYtO,OAAGunD,GAAK,KAAAvnD,OAAI+oD,EAAO,UAAA/oD,OAASgQ,GAAU,CAAC,GACtEg5C,YAAaA,CAACh5C,EAAgB+4C,IAC5Bn9C,EAAgB,GAAD5L,OAAIsO,IAAYtO,OAAGunD,GAAK,KAAAvnD,OAAI+oD,EAAO,YAAA/oD,OAAWgQ,IAC/Di5C,0BAA4BC,GAC1Bt9C,EAAa,GAAD5L,OAAIsO,IAAYtO,OAAGunD,GAAK,aAAa2B,GACnDC,gBAAkBD,GAChBt9C,EAAa,GAAD5L,OAAIsO,IAAYtO,OAAGunD,GAAK,SAAS2B,GAC/CE,yBAA2BC,GACzBz9C,EAAa,GAAD5L,OAAIsO,IAAYtO,OAAGunD,GAAK,iBAAiB8B,GACvDC,wBAA0BD,GACxBz9C,EAAa,GAAD5L,OAAIsO,IAAYtO,OAAGunD,GAAK,gBAAgB8B,GACtDE,gBAAkBxuC,GAChBnP,EAAa,GAAD5L,OACPsO,IAAYtO,OAAGunD,GAAK,YAAAvnD,OAAWqoD,mBAAmBttC,KAEzDyuC,YAAcT,GACZn9C,EAAgB,GAAD5L,OAAIsO,IAAYtO,OAAGunD,GAAK,KAAAvnD,OAAI+oD,IAC7CU,gBAAkBjmD,GAChBoI,EAAc,GAAD5L,OAAIsO,GAAY,oBAAoB9K,GACnDkmD,yBAA2BlmD,GACzBoI,EAAa,GAAD5L,OACPsO,GAAY,wBAAAtO,OAAuBqoD,mBAAmB7kD,KAE7DmmD,mBAAqBN,GACnBz9C,EAAa,GAAD5L,OAAIsO,GAAY,iBAAiB+6C,GAC/CO,aAAeC,GACbj+C,EAAa,GAAD5L,OAAIsO,GAAY,kBAAkBu7C,GAChDC,aAAeC,GACbn+C,EAAa,GAAD5L,OACPsO,GAAY,kBAAAtO,OAAiBqoD,mBAAmB0B,MC3FlD,IAAKC,GAA0B,SAA1BA,GAA0B,OAA1BA,IAA0B,qCAA1BA,IAA0B,+BAA1BA,IAA0B,6BAA1BA,IAA0B,uCAA1BA,IAA0B,iDAA1BA,IAA0B,iCAA1BA,IAA0B,+BAA1BA,IAA0B,+BAA1BA,IAA0B,yBAA1BA,IAA0B,2CAA1BA,CAA0B,MAuEvBC,OA9BwBA,CACrC5sC,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAKwtD,GAA2BE,gBAC9B,MAAO,IAAK7sC,EAAO8sC,eAAgB7sC,EAAOO,SAC5C,KAAKmsC,GAA2BI,aAC9B,MAAO,IAAK/sC,EAAOg2B,SAAU/1B,EAAOO,SACtC,KAAKmsC,GAA2BK,YAC9B,MAAO,IAAKhtC,EAAOs2B,QAASr2B,EAAOO,SACrC,KAAKmsC,GAA2BM,iBAC9B,MAAO,IAAKjtC,EAAOktC,YAAajtC,EAAOO,SACzC,KAAKmsC,GAA2BQ,sBAC9B,MAAO,IAAKntC,EAAOotC,gBAAiBntC,EAAOO,SAC7C,KAAKmsC,GAA2BU,cAC9B,MAAO,IAAKrtC,EAAOjL,UAAWkL,EAAOO,SACvC,KAAKmsC,GAA2BW,aAC9B,MAAO,IAAKttC,EAAOyL,SAAUxL,EAAOO,SACtC,KAAKmsC,GAA2BY,aAC9B,MAAO,IAAKvtC,EAAOvO,SAAUwO,EAAOO,SACtC,KAAKmsC,GAA2Ba,UAC9B,MAAO,IAAKxtC,EAAOhc,MAAOic,EAAOO,SACnC,KAAKmsC,GAA2Bc,mBAC9B,MAAO,IAAKztC,EAAO0tC,aAAcztC,EAAOO,SAC1C,QACE,OAAOR,EACX,EC3DK,MAAMe,GAAsC,CACjD+rC,eAAgB,KAChBxW,QAAS,GACTN,cAAUl3C,EACVouD,YAAa,GACbE,gBAAiB,GACjBr4C,UAAW,MACX0W,SAAU,MACVha,SAAU,MACVzN,MAAO,GACP0pD,cAAc,GAWVC,GAA0BvsD,wBAAc,CAAC,GAkHhCwsD,OAhH4BpsD,IAAmB,IAAlB,SAAEC,GAAUD,EACtD,MAAOwe,EAAOwB,GAAYC,qBAAWmrC,GAAyB7rC,KACvD8sC,EAAiBC,GAAsB/5C,mBAAwB,KAChE,WAAE0H,GAAeQ,KAEvB7G,qBAAU,KACRu0C,GAAY,GACX,IAEHv0C,qBAAU,KACR24C,GAAuB,GACtB,CAAC/tC,EAAMg2B,WAEV5gC,qBAAU,KACR,MAAM44C,EAAkBC,EAAmBJ,GAC3CrsC,EAAS,CACPriB,KAAMwtD,GAA2BK,YACjCxsC,QAASwtC,GACT,GACD,CAAChuC,EAAMjL,UAAWiL,EAAMyL,SAAUzL,EAAMvO,WAE3C,MAAMs8C,EAAwB35C,UACxB4L,EAAMg2B,UACRmU,GAAcE,mBAAmBrqC,EAAMg2B,UACpC/oC,MAAMihD,GACL1sC,EAAS,CACPriB,KAAMwtD,GAA2BE,gBACjCrsC,QAAS0tC,MAGZ9oD,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UACvC,EAGI6nD,EAAav1C,UACjBlD,EAAYI,cACTrE,MAAMjJ,GACLwd,EAAS,CAAEriB,KAAMwtD,GAA2Ba,UAAWhtC,QAASxc,MAEjEoB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EA+B1CmsD,EAAsB3X,IAC1B,GACsB,QAApBt2B,EAAMjL,WACa,QAAnBiL,EAAMyL,UACa,QAAnBzL,EAAMvO,SAEN,OAAO6kC,EAET,IAAI0X,EAAkB,IAAI1X,GAgB1B,MAfwB,QAApBt2B,EAAMjL,YACRi5C,EAAkBA,EAAgBvqB,QAC/BoZ,GAAMA,EAAE9nC,YAAciL,EAAMjL,aAGV,QAAnBiL,EAAMyL,WACRuiC,EAAkBA,EAAgBvqB,QAC/BoZ,GAAMA,EAAEpxB,WAAazL,EAAMyL,YAGT,QAAnBzL,EAAMvO,WACRu8C,EAAkBA,EAAgBvqB,QAC/BoZ,GAAMA,EAAEprC,WAAauO,EAAMvO,YAGzBu8C,CAAe,EAGxB,OACE1rD,cAACqrD,GAAwBprD,SAAQ,CAC/B1D,MAAO,CACLmhB,QACAwB,WACAusC,wBACAI,cA7DgB/5C,UACpB+1C,GAAcY,sBAAsB5kD,GACjC8G,MAAMqpC,IACLwX,EAAmBxX,GACnB,MAAM0X,EAAkBC,EAAmB3X,GAC3C90B,EAAS,CACPriB,KAAMwtD,GAA2BK,YACjCxsC,QAASwtC,IAEXxsC,EAAS,CACPriB,KAAMwtD,GAA2Bc,mBACjCjtC,SAAS,GACT,IAEHpb,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAgD1CssD,iBA7CoBvD,IACxBV,GAAcS,8BAA8BC,GACzC59C,MAAM4gB,IACDA,IACFpS,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7DszC,IACF,IAED3oD,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,GAsC1CL,SAEDA,GACgC,EAMhC,MAAM4sD,GAA6BA,IACxC/sD,qBAAWqsD,ICvJN,IAAKW,GAAuB,SAAvBA,GAAuB,OAAvBA,IAAuB,2CAAvBA,IAAuB,6CAAvBA,CAAuB,MA+BpBC,OAdqBA,CAClCvuC,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAKmvD,GAAwBE,mBAC3B,MAAO,IAAKxuC,EAAOyuC,YAAaxuC,EAAOO,SACzC,KAAK8tC,GAAwBI,oBAC3B,MAAO,IAAK1uC,EAAO2uC,aAAc1uC,EAAOO,SAC1C,QACE,OAAOR,EACX,ECfK,MAAMe,GAAmC,CAC9C0tC,YAAa,CAAC,EACdE,aAAc,IAUVC,GAAuBxtD,wBAAc,CAAC,GAgF7BytD,OA1EqDrtD,IAG7D,IAH8D,YACnEstD,EAAW,SACXrtD,GACDD,EACC,MACEwe,OAAO,gBAAEO,IACPwB,MACG/B,EAAOwB,GAAYC,qBAAW8sC,GAAsBxtC,KACrD,WAAEtF,GAAeQ,KAEvB7G,qBAAU,KACR25C,IACAC,GAAmB,GAClB,IAEH,MAAMD,EAAmB36C,UACnB06C,GAAevuC,EACbA,EAAgB9L,UAAY8L,EAAgBy1B,UAC9CmU,GAAcE,mBAAmB9pC,EAAgBy1B,UAC9C/oC,MAAMwhD,GACLjtC,EAAS,CACPriB,KAAMmvD,GAAwBE,mBAC9BhuC,QAAS,IAAKiuC,OAGjBrpD,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAGvCqoD,GAAc37C,MACXvB,MAAMwhD,GACLjtC,EAAS,CACPriB,KAAMmvD,GAAwBE,mBAC9BhuC,QAAS,IAAKiuC,OAGjBrpD,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UACvC,EAEIktD,EAAoB56C,UACxB+1C,GAAcW,kBACX79C,MAAMgiD,GACLztC,EAAS,CACPriB,KAAMmvD,GAAwBI,oBAC9BluC,QAASyuC,MAGZ7pD,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAchD,OACEQ,cAACssD,GAAqBrsD,SAAQ,CAC5B1D,MAAO,CACLmhB,QACAwB,WACAutC,mBACAX,iBAjBoBvD,IACxBV,GAAcS,8BAA8BC,GACzC59C,MAAM4gB,IACDA,IACFpS,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7Ds0C,IACF,IAED3pD,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,GAU1CL,SAEDA,GAC6B,EAM7B,MAAMytD,GAA0BA,IAAM5tD,qBAAWstD,ICtG3CO,GAAWA,CACtBv3C,EACAw3C,EACAC,KAIO,CACLlhD,KAHeyJ,EAAMxY,OAAOgwD,EAAO,GAAKC,EAAUD,EAAOC,GAIzDC,YAAaF,EAAO,EACpBG,QAASH,EAJGI,KAAKC,MAAM73C,EAAM3X,OAASovD,GAAY,EAKlDA,aCfG,IAAKK,GAAyB,SAAzBA,GAAyB,OAAzBA,EAAyB,gDAAzBA,EAAyB,8CAAzBA,EAAyB,0CAAzBA,EAAyB,8CAAzBA,EAAyB,4CAAzBA,EAAyB,wCAAzBA,EAAyB,wBAAzBA,EAAyB,8CAAzBA,EAAyB,0CAAzBA,EAAyB,wCAAzBA,EAAyB,iDAAzBA,EAAyB,2CAAzBA,EAAyB,+CAAzBA,CAAyB,MAgBzBC,GAAqB,SAArBA,GAAqB,OAArBA,IAAqB,qBAArBA,IAAqB,qBAArBA,CAAqB,MAwGlBC,OApDqBA,CAClC5vC,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAKuwD,GAA0BG,uBAC7B,MAAO,IAAK7vC,EAAO8vC,YAAY,EAAMtlC,kBAAc1rB,GACrD,KAAK4wD,GAA0BK,sBAC7B,MAAO,IAAK/vC,EAAO8vC,YAAY,EAAOtlC,aAAcvK,EAAOO,SAC7D,KAAKkvC,GAA0BM,oBAC7B,MAAO,IAAKhwC,EAAO8vC,YAAY,EAAOG,aAAchwC,EAAOO,SAC7D,KAAKkvC,GAA0BQ,oBAC7B,MAAO,IACFlwC,EACHmwC,SAAU,IAAInwC,EAAMmwC,YAAalwC,EAAOO,QAAQrS,MAChDiiD,YAAapwC,EAAMowC,YAAc,EACjCC,eAAgBpwC,EAAOO,QAAQ+uC,SAEnC,KAAKG,GAA0BY,sBAC7B,MAAO,IAAKtwC,EAAO8vC,YAAY,EAAMtlC,kBAAc1rB,GACrD,KAAK4wD,GAA0Ba,qBAC7B,MAAO,IAAKvwC,EAAO8vC,YAAY,EAAOtlC,aAAcvK,EAAOO,SAC7D,KAAKkvC,GAA0Bc,mBAC7B,MAAO,IAAKxwC,EAAO8vC,YAAY,EAAOW,YAAaxwC,EAAOO,SAC5D,KAAKkvC,GAA0BgB,mBAC7B,MAAO,IACF1wC,EACH6Z,QAAS,IAAI7Z,EAAM6Z,WAAY5Z,EAAOO,QAAQrS,MAC9CwiD,YAAa3wC,EAAM2wC,YAAc,EACjCC,eAAgB3wC,EAAOO,QAAQ+uC,SAEnC,KAAKG,GAA0BmB,WAC7B,MAAO,IAAK7wC,EAAO8wC,WAAY7wC,EAAOO,SACxC,KAAKkvC,GAA0BqB,wBAC7B,MAAO,IACF/wC,EACHiwC,aAAcjwC,EAAMiwC,aAAaxsB,QAC9B/pB,GAAMA,EAAE68B,gBAAkBt2B,EAAOO,UAEpC4vC,YAAa,EACbD,SAAU,GACVL,YAAY,GAEhB,KAAKJ,GAA0BsB,0BAC7B,MAAO,IAAKhxC,EAAO8vC,YAAY,GACjC,KAAKJ,GAA0BuB,2BAC7B,MAAO,IAAKjxC,EAAO8vC,YAAY,GACjC,QACE,OAAO9vC,EACX,EC5FF,MAEMuxB,GAAqC,CACzCuf,WAAYnB,GAAsBuB,QAClCf,SAAU,GACVF,aAAc,GACdG,YAAa,EACbC,gBAAgB,EAChBx2B,QAAS,GACT42B,YAAa,GACbE,YAAa,EACbC,gBAAgB,EAChBpmC,kBAAc1rB,EACdgxD,YAAY,EACZqB,kBAAmB,MAGfC,GAAwB19C,IAAMtS,cAAc,CAAC,GA+ItCiwD,GAA2BA,IAAM/vD,qBAAW8vD,IAE1CE,OA/I0B9vD,IAAmB,IAAlB,SAAEC,GAAUD,EACpD,MAAOwe,EAAOwB,GAAYC,qBAAW8vC,GAAuBhgB,KACtD,WAAE91B,GAAeQ,MAErB+D,OAAO,gBAAEO,IACPwB,KAEJ3M,qBAAU,KACJ4K,EAAMwK,cAAc/O,EAAWuE,EAAMwK,aAAa,GACrD,CAACxK,EAAMwK,eAEVpV,qBAAU,MACR,uBACQo8C,GACP,CAFD,EAEI,GACH,CAACxxC,EAAM8wC,aAEV17C,qBAAU,IAAMq8C,KAAoB,CAACzxC,EAAMiwC,eAC3C76C,qBAAU,IAAMs8C,KAAmB,CAAC1xC,EAAMywC,cAG1C,MAAMe,EAAYp9C,UAAA,IAAAu9C,EAAAC,EAAA,OAChB5xC,EAAM8wC,aAAenB,GAAsBuB,SACzB,QAAdS,EAAA3xC,EAAMmwC,gBAAQ,IAAAwB,OAAA,EAAdA,EAAgB1xD,QAAS,EACvBsE,QAAQmJ,UACRmkD,KACW,QAAbD,EAAA5xC,EAAM6Z,eAAO,IAAA+3B,OAAA,EAAbA,EAAe3xD,QAAS,EACxBsE,QAAQmJ,UACRokD,GAAc,EAEdD,EAAgBz9C,UACpBoN,EAAS,CAAEriB,KAAMuwD,GAA0BG,0BACtB,OAApBtvC,EACG60B,GAAmBO,0BACnBP,GAAmBW,iCACjBx1B,EAAgBy1B,WAGnB/oC,MAAMkjD,GACL3uC,EAAS,CACPriB,KAAMuwD,GAA0BM,oBAChCxvC,QAAS2vC,MAGZ/qD,OAAOlB,GACNsd,EAAS,CACPriB,KAAMuwD,GAA0BK,sBAChCvvC,QAAStc,KAEZ,EAGCutD,EAAmBA,KAAO,IAADM,GACP,QAAlBA,EAAA/xC,EAAMiwC,oBAAY,IAAA8B,OAAA,EAAlBA,EAAoB9xD,QAAS,GAC/BuhB,EAAS,CACPriB,KAAMuwD,GAA0BQ,oBAChC1vC,QAAS2uC,GAASnvC,EAAMiwC,aAAcjwC,EAAMowC,YA3E1B,KA6EtB,EAGI0B,EAAe19C,UACnBoN,EAAS,CAAEriB,KAAMuwD,GAA0BY,yBACtB,OAApB/vC,EACG60B,GAAmBU,wBACnBV,GAAmBc,+BACjB31B,EAAgBy1B,WAGnB/oC,MAAMkjD,GACL3uC,EAAS,CACPriB,KAAMuwD,GAA0Bc,mBAChChwC,QAAS2vC,MAGZ/qD,OAAOlB,GACNsd,EAAS,CACPriB,KAAMuwD,GAA0Ba,qBAChC/vC,QAAStc,KAEZ,EAGCwtD,EAAkBA,KAAO,IAADM,GACP,QAAjBA,EAAAhyC,EAAMywC,mBAAW,IAAAuB,OAAA,EAAjBA,EAAmB/xD,QAAS,GAC9BuhB,EAAS,CACPriB,KAAMuwD,GAA0BgB,mBAChClwC,QAAS2uC,GAASnvC,EAAMywC,YAAazwC,EAAM2wC,YA1GzB,KA4GtB,EAGIsB,EAAaC,IACjB1wC,EAAS,CAAEriB,KAAMuwD,GAA0BmB,WAAYrwC,QAAS0xC,GAAM,EAGlEC,EAAqB5b,IACzB/0B,EAAS,CACPriB,KAAMuwD,GAA0BuB,6BAElC7b,GAAmBvkC,OAAO0lC,GACvBtpC,MAAM4gB,IACDA,GACFrM,EAAS,CACPriB,KAAMuwD,GAA0BqB,wBAChCvwC,QAAS+1B,IAEX96B,EAAW,mCAAoClB,GAAYE,WAE3DgB,EAAW,mCACX+F,EAAS,CACPriB,KAAMuwD,GAA0BsB,4BAEpC,IAED5rD,OAAOlB,IACNuX,EAAWvX,EAAMpC,SACjB0f,EAAS,CACPriB,KAAMuwD,GAA0BsB,2BAChC,GACF,EAGAnyD,EAAQmd,mBACZ,SACKgE,EACHyxC,mBACAC,kBACAO,YACAE,uBAEF,CAACnyC,IAGH,OACE1d,cAAC8uD,GAAsB7uD,SAAQ,CAAC1D,MAAOA,EAAM4C,SAC1CA,GAC8B,EC9KrC,MAAMwP,GAAe,kBAkDNmhD,OAhDU,CACvBC,iBAAkBA,CAChBvV,EACAhI,EACAxpC,IAEAiD,EAAa,GAAD5L,OACPsO,GAAY,gBAAAtO,OAAem6C,EAAU,gBAAAn6C,OAAemyC,EAAU,YAAAnyC,OAAW2I,IAEhFgnD,sBAAuBA,CACrBxV,EACAhI,EACAxpC,IAEAiD,EAAa,GAAD5L,OACPsO,GAAY,sBAAAtO,OAAqBm6C,EAAU,gBAAAn6C,OAAemyC,EAAU,YAAAnyC,OAAW2I,IAEtF+mC,cAAgB8P,GACd5zC,EAAc,GAAD5L,OAAIsO,GAAY,YAAYkxC,GAC3CoQ,kBACEC,GACqBjkD,EAAc,GAAD5L,OAAIsO,GAAY,cAAcuhD,GAClEC,kBACEC,GACqBnkD,EAAc,GAAD5L,OAAIsO,GAAY,cAAcyhD,GAClEC,gBAAkBC,GAChBrkD,EAAc,GAAD5L,OAAIsO,GAAY,YAAY2hD,GAC3CC,eAAiBC,GACfvkD,EAAc,GAAD5L,OAAIsO,GAAY,WAAW6hD,GAC1CC,MAAOA,CACLjW,EACAhI,EACAxpC,EACAi4C,EACAyP,IAEAzkD,EAAa,GAAD5L,OACPsO,GAAY,sBAAAtO,OAAqBm6C,EAAU,gBAAAn6C,OAAemyC,EAAU,YAAAnyC,OAAW2I,EAAM,SAAA3I,OAAQ4gD,EAAG,iBAAA5gD,OAAgBqwD,GACnH,CACExd,aAAc,SAGpByd,kBAAmBA,CACjBnW,EACAhI,IAEAvmC,EAAa,GAAD5L,OAAIsO,GAAY,cAAAtO,OAAam6C,EAAU,KAAAn6C,OAAImyC,KC3CpD,IAAKoe,GAAuB,SAAvBA,GAAuB,OAAvBA,IAAuB,2CAAvBA,IAAuB,uDAAvBA,IAAuB,+CAAvBA,IAAuB,yDAAvBA,IAAuB,6BAAvBA,IAAuB,6BAAvBA,IAAuB,mCAAvBA,IAAuB,uCAAvBA,IAAuB,uCAAvBA,IAAuB,uBAAvBA,IAAuB,oDAAvBA,CAAuB,MAkJpBC,OAtEqBA,CAClCnzC,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAK+zD,GAAwBE,mBAC3B,MAAO,IACFpzC,EACHqzC,YAAapzC,EAAOO,QAAQ6yC,YAC5BC,gBAAiBrzC,EAAOO,QAAQ8yC,gBAChCC,gBAAiBtzC,EAAOO,QAAQ+yC,gBAChCC,oBAAqBvzC,EAAOO,QAAQgzC,oBACpCC,WAAYxzC,EAAOO,QAAQizC,YAE/B,KAAKP,GAAwBQ,yBAC3B,MAAO,IACF1zC,EACH2zC,mBAAoB1zC,EAAOO,SAE/B,KAAK0yC,GAAwBU,qBAC3B,MAAO,IACF5zC,EACHszC,gBAAiBrzC,EAAOO,SAE5B,KAAK0yC,GAAwBW,0BAC3B,MAAO,IACF7zC,EACHwzC,oBAAqBvzC,EAAOO,SAEhC,KAAK0yC,GAAwBY,YAC3B,MAAO,IACF9zC,EACH+zC,QAAS9zC,EAAOO,SAEpB,KAAK0yC,GAAwBvX,YAC3B,MAAO,IACF37B,EACHsI,QAASrI,EAAOO,SAEpB,KAAK0yC,GAAwBnX,eAC3B,MAAO,IACF/7B,EACHg8B,UAAW/7B,EAAOO,SAEtB,KAAK0yC,GAAwBjX,iBAC3B,MAAO,IACFj8B,EACHk8B,YAAaj8B,EAAOO,SAExB,KAAK0yC,GAAwBc,iBAC3B,MAAO,IACFh0C,EACHi0C,YAAah0C,EAAOO,SAExB,KAAK0yC,GAAwBgB,SAC3B,MAAO,IACFl0C,EACHsjC,KAAMrjC,EAAOO,SAEjB,KAAK0yC,GAAwBiB,uBAC3B,MAAO,IACFn0C,EACHo0C,gBAAiBn0C,EAAOO,SAG5B,QACE,OAAOR,EACX,EC5IK,MAAMe,GAAmC,CAC9CsyC,YAAa,GACbC,gBAAiB,GACjBC,gBAAiB,GACjBC,oBAAqB,GACrBO,QAAS,CAAEjX,WAAY,GAAIhI,WAAY,KAAMxpC,OAAQ,aACrDgd,SAAS,EACT0zB,WAAW,EACXE,aAAa,EACb+X,aAAa,EACb3Q,KAAM,GACNqQ,mBAAoB,GACpBS,iBAAiB,GAebC,GAAuBjzD,wBAAc,CAAC,GAqR7BkzD,OAnRyB9yD,IAAmB,IAAlB,SAAEC,GAAUD,EACnD,MAAOwe,EAAOwB,GAAYC,qBAAW0xC,GAAsBpyC,KACrD,WAAEtF,GAAeQ,KA8PvB,OACE3Z,cAAC+xD,GAAqB9xD,SAAQ,CAC5B1D,MAAO,CACLmhB,QACAwB,WACA+yC,mBAjQsBR,IAC1BvyC,EAAS,CAAEriB,KAAM+zD,GAAwBvX,YAAan7B,SAAS,IAC/DgB,EAAS,CAAEriB,KAAM+zD,GAAwBY,YAAatzC,QAASuzC,IAC/D3B,GAAiBC,iBACf0B,EAAQjX,WAAWC,cACnBgX,EAAQjf,WAAYc,QAAQ,OAAOr1C,cACnCwzD,EAAQzoD,QAEP2B,MAAMunD,IACLhzC,EAAS,CACPriB,KAAM+zD,GAAwBE,mBAC9B5yC,QAASg0C,IAEXhzC,EAAS,CACPriB,KAAM+zD,GAAwBjX,iBAC9Bz7B,SAAS,IAEXgB,EAAS,CACPriB,KAAM+zD,GAAwBc,iBAC9BxzC,QACEg0C,EAAclB,gBAAgBrzD,OAAS,GACnCu0D,EAAclB,gBAAgB,GAAGW,cAGzCzyC,EAAS,CACPriB,KAAM+zD,GAAwBnX,eAC9Bv7B,QAASg0C,EAAclR,KAAKrjD,OAAS,IAEvCuhB,EAAS,CACPriB,KAAM+zD,GAAwBgB,SAC9B1zC,QAASg0C,EAAclR,OAGzB9hC,EAAS,CAAEriB,KAAM+zD,GAAwBvX,YAAan7B,SAAS,IAE/D4xC,GAAiBa,kBACfc,EAAQjX,WAAWC,cACnBgX,EAAQjf,WAAYc,QAAQ,OAAOr1C,eAElC0M,MAAMzB,IACLgW,EAAS,CACPriB,KAAM+zD,GAAwBiB,uBAC9B3zC,QACEg0C,EAAclB,gBAAgBrzD,OAAS,IAC/B,OAARuL,QAAQ,IAARA,OAAQ,EAARA,EAAUvL,QAAS,GACrB,IAEHmF,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,IAELsD,OAAOlB,IACNsd,EAAS,CAAEriB,KAAM+zD,GAAwBvX,YAAan7B,SAAS,IAC/D/E,EAAWvX,EAAMpC,QAAQ,GACzB,EA4MA2yD,wBAzM2BV,IAC/BvyC,EAAS,CAAEriB,KAAM+zD,GAAwBvX,YAAan7B,SAAS,IAC/DgB,EAAS,CAAEriB,KAAM+zD,GAAwBY,YAAatzC,QAASuzC,IAC/D3B,GAAiBE,sBACfyB,EAAQjX,WAAWC,cACnBgX,EAAQjf,WAAYc,QAAQ,OAAOr1C,cACnCwzD,EAAQzoD,QAEP2B,MAAM0mD,IACLnyC,EAAS,CACPriB,KAAM+zD,GAAwBQ,yBAC9BlzC,QAASmzC,IAEXnyC,EAAS,CACPriB,KAAM+zD,GAAwBjX,iBAC9Bz7B,SAAS,IAEXgB,EAAS,CACPriB,KAAM+zD,GAAwBnX,eAC9Bv7B,QAASmzC,EAAmB1zD,OAAS,IAEvCuhB,EAAS,CAAEriB,KAAM+zD,GAAwBvX,YAAan7B,SAAS,GAAQ,IAExEpb,OAAOlB,IACNsd,EAAS,CAAEriB,KAAM+zD,GAAwBvX,YAAan7B,SAAS,IAC/D/E,EAAWvX,EAAMpC,QAAQ,GACzB,EAgLA2wD,kBA7KqBC,IACzBN,GAAiBK,kBAAkB,CACjC3V,WAAY98B,EAAM+zC,QAAQjX,WAC1BhI,WAAY90B,EAAM+zC,QAAQjf,WAAYc,QAAQ,OAAOr1C,gBAEpD0M,MAAM4gB,IACDA,GACFpS,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7D+G,EAAS,CACPriB,KAAM+zD,GAAwBc,iBAC9BxzC,QAASkyC,KAGXj3C,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WACtC,IAEDpC,OAAM,KACLqW,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WAAW,GAC/C,EA4JA+qD,kBAzJqBC,IACzBJ,GAAiBG,kBAAkBC,GAChCvlD,MAAM4gB,IACL,GAAIA,EAAQ,CACVpS,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAE7D,IAAIi6C,EAAsBr/C,IAAE8nC,UAAUn9B,EAAMszC,iBAC5CoB,EAAoBx0D,SAASy0D,IAEzBA,EAAG3e,WAAawc,EAAUxc,UAC1B2e,EAAGpe,gBAAkBic,EAAUjc,gBAE/Boe,EAAGC,YAAcpC,EAAUoC,YAC7B,IAEFpzC,EAAS,CACPriB,KAAM+zD,GAAwBU,qBAC9BpzC,QAASk0C,IAGX,IAAIG,EAA0Bx/C,IAAE8nC,UAAUn9B,EAAMwzC,qBAChDqB,EACGC,SAASlQ,GAAMA,EAAEmQ,YACjB70D,SAAS80D,IAENA,EAAIhf,WAAawc,EAAUxc,UAC3Bgf,EAAIze,gBAAkBic,EAAUjc,gBAEhCye,EAAIJ,YAAcpC,EAAUoC,YAC9B,IAEJpzC,EAAS,CACPriB,KAAM+zD,GAAwBW,0BAC9BrzC,QAASq0C,GAEb,MACEp5C,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WACtC,IAEDpC,OAAM,KACLqW,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WAAW,GAC/C,EAiHA6qC,cA9GiB8P,IACrBiQ,GAAiB/f,cAAc8P,GAC5Bl1C,MAAM4gB,IACL,GAAIA,EAAQ,CACVpS,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAE7D,IAAIi6C,EAAsBr/C,IAAE8nC,UAAUn9B,EAAMszC,iBAC5CoB,EAAoBx0D,SAASy0D,IAEzBA,EAAG3e,WAAamM,EAAQnM,UACxB2e,EAAGpe,gBAAkB4L,EAAQ5L,gBAE7Boe,EAAGxS,QAAUA,EAAQA,QACvB,IAEF3gC,EAAS,CACPriB,KAAM+zD,GAAwBU,qBAC9BpzC,QAASk0C,IAGX,IAAIG,EAA0Bx/C,IAAE8nC,UAAUn9B,EAAMwzC,qBAChDqB,EACGC,SAASlQ,GAAMA,EAAEmQ,YACjB70D,SAAS80D,IAENA,EAAIhf,WAAamM,EAAQnM,UACzBgf,EAAIze,gBAAkB4L,EAAQ5L,gBAE9Bye,EAAI7S,QAAUA,EAAQA,QACxB,IAEJ3gC,EAAS,CACPriB,KAAM+zD,GAAwBW,0BAC9BrzC,QAASq0C,GAEb,MACEp5C,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WACtC,IAEDpC,OAAM,KACLqW,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WAAW,GAC/C,EAsEAmrD,gBAnEmBC,IACvBR,GAAiBO,gBAAgBC,GAC9B3lD,MAAM4gB,IACL,GAAIA,EAAQ,CACVpS,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAE7D,IAAIo6C,EAA0Bx/C,IAAE8nC,UAAUn9B,EAAMwzC,qBAChDqB,EACGC,SAASlQ,GAAMA,EAAEmQ,YACjB70D,SAAS80D,IAENA,EAAIhf,WAAa4c,EAAQ5c,UACzBgf,EAAIC,gBAAkBrC,EAAQqC,eAC9BD,EAAIze,gBAAkBqc,EAAQrc,gBAE9Bye,EAAIE,UAAYtC,EAAQsC,UAC1B,IAEJ1zC,EAAS,CACPriB,KAAM+zD,GAAwBW,0BAC9BrzC,QAASq0C,GAEb,MACEp5C,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WACtC,IAEDpC,OAAM,KACLqW,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WAAW,GAC/C,EAwCAqrD,eArCkBC,IACtBV,GAAiBS,eAAeC,GAC7B7lD,MAAM4gB,IACL,GAAIA,EAAQ,CACVpS,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAE7D,IAAIo6C,EAA0Bx/C,IAAE8nC,UAAUn9B,EAAMwzC,qBAChDqB,EACGpxB,QAAQmhB,GAAMA,EAAErB,MAAG,GAAA5gD,OAAQmwD,EAAO7vD,OAAM,OAAAN,OAAMmwD,EAAOqC,eACrDL,SAASlQ,GAAMA,EAAEmQ,YACjB70D,SAAS80D,IACRA,EAAII,SAAWtC,EAAOsC,QAAQ,IAElC5zC,EAAS,CACPriB,KAAM+zD,GAAwBW,0BAC9BrzC,QAASq0C,GAEb,MACEp5C,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WACtC,IAEDpC,OAAM,KACLqW,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WAAW,GAC/C,GAeA/F,SAEDA,GAC6B,EAM7B,MAAM4zD,GAA0BA,IAAM/zD,qBAAW+yD,I,ICpUpD,GAAO,GAAQ,GAAS,GAAU,GAAQ,GAAQ,GAAQ,GAAQ,GAAU,GAAU,G,UAC1F,SAAS,KAAiS,OAApR,GAAW7zD,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS48C,GAAO9zD,EAAMyX,GACpB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,6IACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,iJACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,SAAU,CACpEO,GAAI,QACJC,GAAI,QACJC,EAAG,OACHT,KAAM,WACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,QACJC,GAAI,QACJC,EAAG,OACHT,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,oKACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,usBACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,szFACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,gOACHN,KAAM,QACNU,OAAQ,aACL,KAAa,GAAwB,gBAAoB,SAAU,CACtEH,GAAI,QACJC,GAAI,QACJC,EAAG,OACHT,KAAM,aACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,QACJC,GAAI,QACJC,EAAG,OACHT,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,4KACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBk8C,IAClC,IClEX,GAAO,GAAQ,GAAS,GAAU,GAAQ,GAAQ,GAAQ,GAAQ,GAAU,GAAU,GDkE3E,ICjEf,SAAS,KAAiS,OAApR,GAAW90D,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS68C,GAAe/zD,EAAMyX,GAC5B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,6IACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,iJACHN,KAAM,WACH,KAAY,GAAuB,gBAAoB,SAAU,CACpEO,GAAI,QACJC,GAAI,QACJC,EAAG,OACHT,KAAM,WACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,QACJC,GAAI,QACJC,EAAG,OACHT,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,oKACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,usBACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,szFACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,gOACHN,KAAM,UACNU,OAAQ,aACL,KAAa,GAAwB,gBAAoB,SAAU,CACtEH,GAAI,QACJC,GAAI,QACJC,EAAG,OACHT,KAAM,aACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,QACJC,GAAI,QACJC,EAAG,OACHT,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,4KACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBm8C,IAClC,IClEX,GAAO,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQC,GAAUC,GAAW,GDkEzE,ICjEf,SAAS,KAAiS,OAApR,GAAWj1D,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASg9C,GAAcl0D,EAAMyX,GAC3B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,iLACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,kLACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,wmBACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,skGACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,mEACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,oEACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,kVACHN,KAAM,QACNU,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,+IACHN,KAAM,aACHo8C,KAAaA,GAAwB,gBAAoB,UAAW,CACvE77C,GAAI,OACJC,GAAI,QACJ4kB,GAAI,QACJm3B,GAAI,QACJv8C,KAAM,aACHq8C,KAAcA,GAAyB,gBAAoB,UAAW,CACzE97C,GAAI,QACJC,GAAI,QACJ4kB,GAAI,QACJm3B,GAAI,QACJv8C,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,iTACHN,KAAM,UACNU,OAAQ,aAEZ,CACA,MAAM,GAA0B,aAAiB47C,IAClC,ICjEX,GAAO,GAAQ,GAAQ,GAAQ,GAAU,GAAW,GAAQ,GDiEjD,IChEf,SAAS,KAAiS,OAApR,GAAWl1D,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASk9C,GAAsBp0D,EAAMyX,GACnC,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,mEACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,oEACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,kVACHN,KAAM,UACNU,OAAQ,WACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,+IACHN,KAAM,WACH,KAAa,GAAwB,gBAAoB,UAAW,CACvEO,GAAI,OACJC,GAAI,QACJ4kB,GAAI,QACJm3B,GAAI,QACJv8C,KAAM,WACH,KAAc,GAAyB,gBAAoB,UAAW,CACzEO,GAAI,QACJC,GAAI,QACJ4kB,GAAI,QACJm3B,GAAI,QACJv8C,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,iTACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,48BACHN,KAAM,WAEV,CACA,MAAM,GAA0B,aAAiBw8C,IAClC,ICvDX,GAAO,GAAQ,GAAQ,GDuDZ,ICtDf,SAAS,KAAiS,OAApR,GAAWp1D,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASm9C,GAAYr0D,EAAMyX,GACzB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,gLACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,kLACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,0mBACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,4uGACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBy8C,IAClC,ICpCX,GDoCW,ICnCf,SAAS,KAAiS,OAApR,GAAWr1D,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASo9C,GAAoBt0D,EAAMyX,GACjC,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,u8BACHN,KAAM,WAEV,CACA,MAAM,GAA0B,aAAiB08C,IAClC,IC3BX,GAAO,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAS,GD2BrE,IC1Bf,SAAS,KAAiS,OAApR,GAAWt1D,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASq9C,GAASv0D,EAAMyX,GACtB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,2DACHN,KAAM,QACNU,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,wDACHN,KAAM,UACNU,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,wDACHI,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,2CACHI,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,mDACHN,KAAM,QACN48C,YAAa,GACbl8C,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,oDACHN,KAAM,QACN48C,YAAa,GACbl8C,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,oDACHN,KAAM,QACN48C,YAAa,GACbl8C,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,oDACHN,KAAM,QACN48C,YAAa,GACbl8C,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,oHACHN,KAAM,QACN48C,YAAa,GACbl8C,OAAQ,aACL,KAAY,GAAuB,gBAAoB,OAAQ,CAClEJ,EAAG,oDACHN,KAAM,UACNU,OAAQ,aACL,KAAY,GAAuB,gBAAoB,SAAU,CACpEH,GAAI,QACJC,GAAI,QACJC,EAAG,KACHT,KAAM,UACNU,OAAQ,aAEZ,CACA,MAAM,GAA0B,aAAiBi8C,IAClC,ICvEX,GAAO,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAS,GDuErE,ICtEf,SAAS,KAAiS,OAApR,GAAWv1D,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASu9C,GAAiBz0D,EAAMyX,GAC9B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,2DACHN,KAAM,UACNU,OAAQ,WACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,wDACHN,KAAM,QACNU,OAAQ,WACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,wDACHI,OAAQ,WACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,2CACHI,OAAQ,WACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,mDACHI,OAAQ,WACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,oDACHI,OAAQ,WACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,oDACHI,OAAQ,WACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,oDACHI,OAAQ,WACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,oHACHI,OAAQ,WACL,KAAY,GAAuB,gBAAoB,OAAQ,CAClEJ,EAAG,oDACHN,KAAM,QACNU,OAAQ,WACL,KAAY,GAAuB,gBAAoB,SAAU,CACpEH,GAAI,QACJC,GAAI,QACJC,EAAG,KACHT,KAAM,QACNU,OAAQ,WAEZ,CACA,MAAM,GAA0B,aAAiBm8C,IAClC,IC7DX,GAAO,GAAQ,GD6DJ,IC5Df,SAAS,KAAiS,OAApR,GAAWz1D,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASw9C,GAAgB10D,EAAMyX,GAC7B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,mMACHN,KAAM,UACNU,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,oNACHN,KAAM,QACNU,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,0gBACHN,KAAM,QACNU,OAAQ,aAEZ,CACA,MAAM,GAA0B,aAAiBo8C,IAClC,IClCX,GAAO,GAAQ,GDkCJ,ICjCf,SAAS,KAAiS,OAApR,GAAW11D,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASy9C,GAAwB30D,EAAMyX,GACrC,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,mMACHN,KAAM,QACNU,OAAQ,WACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,oNACHN,KAAM,UACNU,OAAQ,WACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,0gBACHN,KAAM,UACNU,OAAQ,WAEZ,CACA,MAAM,GAA0B,aAAiBq8C,IAClC,IClCX,GAAO,GAAQ,GDkCJ,ICjCf,SAAS,KAAiS,OAApR,GAAW31D,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS09C,GAAU50D,EAAMyX,GACvB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,qLACHN,KAAM,QACNU,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,iGACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,glCACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBg9C,IAClC,IClCX,GAAO,GAAQ,GDkCJ,ICjCf,SAAS,KAAiS,OAApR,GAAW51D,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS29C,GAAkB70D,EAAMyX,GAC/B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,qLACHN,KAAM,UACNU,OAAQ,WACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,kGACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,glCACHN,KAAM,WAEV,CACA,MAAM,GAA0B,aAAiBi9C,IAClC,ICzBA,SAASC,GACtBC,EACAC,EACAC,EACAzf,GAEA,MAAO0f,EAAYC,GAAiB5iD,mBAAS,IAEvC6iD,EAAgBA,CAACv2B,EAAmBw2B,KAA6B,IAADC,EAAAC,EACpE,MAAMC,GACc,OAAlBT,QAAkB,IAAlBA,GAA0B,QAARO,EAAlBP,EAAoB/J,cAAM,IAAAsK,OAAR,EAAlBA,EAA4B9gB,YAAa6gB,EAAI7gB,SACzCugB,EAAmB/J,OACD,OAAlB+J,QAAkB,IAAlBA,GAA6B,QAAXQ,EAAlBR,EAAoBU,iBAAS,IAAAF,OAAX,EAAlBA,EAA+B/3C,MAC5BnF,GAAMA,EAAEm8B,WAAa6gB,EAAI7gB,WAGlC,OAAOghB,EACH,IACK32B,EACH,CACExrB,UAAWmiD,EAAaniD,UACxBD,SAAUoiD,EAAapiD,SACvBohC,SAAUghB,EAAahhB,SACvBkhB,aAAcF,EAAaG,iBAC3BC,UAAWJ,EAAaI,UACxBpiD,YAAagiD,EAAahiD,cAG9B,IAAIqrB,EAAI,EAwBRg3B,EAAmBX,EAAWjzB,QAAQ9K,GArBhBqd,KAAsB,IAADshB,EAAAC,EAM/C,SALsB,OAAPvgB,QAAO,IAAPA,GAAkB,QAAXsgB,EAAPtgB,EAASwgB,iBAAS,IAAAF,OAAX,EAAPA,EAAoBlwC,MAAM6O,GACvCA,EAAEwhC,aAAarwC,MAAM8O,GACnBA,EAAEwhC,8BAA8BtwC,MAAMuwC,GAAMA,EAAE3hB,UAAYA,WAOzD3gC,IAAEC,QAAe,OAAP0hC,QAAO,IAAPA,OAAO,EAAPA,EAAS4gB,QAInBviD,IAAEC,QAAe,OAAP0hC,QAAO,IAAPA,OAAO,EAAPA,EAAS6gB,UAIV,OAAP7gB,QAAO,IAAPA,GAAoB,QAAbugB,EAAPvgB,EAAS8gB,mBAAW,IAAAP,OAAb,EAAPA,EAAsBnwC,MAAM6O,GAAMA,EAAE+f,UAAYA,IAAS,EAIhE+hB,CAAmBp/B,EAAEqd,YAuBvB,OApBA5gC,qBAAU,KACR,GAAImhD,GAAsBC,EAAkB,CAAC,IAADwB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC1C,MAAM3B,EACY,OAAhBF,QAAgB,IAAhBA,KAAkB8B,oBAAsB7B,EACpCA,EAAmBr2B,OAAqBw2B,EAAe,IACvD,CACE,CACE/hD,UAA6B,OAAlB0hD,QAAkB,IAAlBA,GAA0B,QAARyB,EAAlBzB,EAAoB/J,cAAM,IAAAwL,OAAR,EAAlBA,EAA4BnjD,UACvCD,SAA4B,OAAlB2hD,QAAkB,IAAlBA,GAA0B,QAAR0B,EAAlB1B,EAAoB/J,cAAM,IAAAyL,OAAR,EAAlBA,EAA4BrjD,SACtCohC,SAA4B,OAAlBugB,QAAkB,IAAlBA,GAA0B,QAAR2B,EAAlB3B,EAAoB/J,cAAM,IAAA0L,OAAR,EAAlBA,EAA4BliB,SACtCkhB,aAAgC,OAAlBX,QAAkB,IAAlBA,GAA0B,QAAR4B,EAAlB5B,EAAoB/J,cAAM,IAAA2L,OAAR,EAAlBA,EAA4BhB,iBAC1CC,UAA6B,OAAlBb,QAAkB,IAAlBA,GAA0B,QAAR6B,EAAlB7B,EAAoB/J,cAAM,IAAA4L,OAAR,EAAlBA,EAA4BhB,UACvCpiD,YAA+B,OAAlBuhD,QAAkB,IAAlBA,GAA0B,QAAR8B,EAAlB9B,EAAoB/J,cAAM,IAAA6L,OAAR,EAAlBA,EAA4BrjD,cAInD2hD,EAAcD,EAChB,IACC,CAACH,EAAoBC,EAAkBC,IAEnC,CAAEC,aAAYW,mBACvB,CCtFO,IAAKkB,GAAiB,SAAjBA,GAAiB,OAAjBA,EAAiB,oBAAjBA,EAAiB,2BAAjBA,EAAiB,0CAAjBA,CAAiB,MAMjBC,GAAa,SAAbA,GAAa,OAAbA,EAAa,8BAAbA,EAAa,0BAAbA,EAAa,kBAAbA,EAAa,wCAAbA,EAAa,sBAAbA,EAAa,sBAAbA,EAAa,4DAAbA,EAAa,gBAAbA,EAAa,2CAAbA,CAAa,MCFzB,MAAMvnD,GAAe,eAuBNwnD,OArBkB,CAC/BC,0BAA2BA,IACzBnqD,EAAa,GAAD5L,OAAIsO,KAClB0nD,0BAA2BA,IACzBpqD,EAAa,GAAD5L,OAAIsO,GAAY,aAC9B2nD,6BAA+Bl7C,GAC7BnP,EAAa,GAAD5L,OAAIsO,GAAY,kBAAAtO,OAAiB+a,IAC/Cm7C,qBACEC,GAEAvqD,EAAc,GAAD5L,OAAIsO,IAAgB6nD,GACnCC,qBACED,GAEAvqD,EAAa,GAAD5L,OAAIsO,IAAgB6nD,GAClCE,yBAA2BC,GACzB1qD,EAAa,GAAD5L,OAAIsO,GAAY,eAAegoD,EAAU,CACnD5sD,QAAS,CAAE,eAAgB,uBCV1B,IAAK6sD,GAAqB,SAArBA,GAAqB,OAArBA,IAAqB,6BAArBA,IAAqB,yBAArBA,IAAqB,2CAArBA,IAAqB,mDAArBA,IAAqB,qCAArBA,IAAqB,qDAArBA,IAAqB,uCAArBA,IAAqB,+BAArBA,IAAqB,+BAArBA,IAAqB,mCAArBA,IAAqB,4BAArBA,IAAqB,4BAArBA,IAAqB,kDAArBA,IAAqB,0CAArBA,IAAqB,0CAArBA,IAAqB,wDAArBA,IAAqB,sCAArBA,IAAqB,sCAArBA,IAAqB,sCAArBA,IAAqB,oDAArBA,IAAqB,kBAArBA,IAAqB,wCAArBA,IAAqB,oEAArBA,IAAqB,0CAArBA,IAAqB,kDAArBA,IAAqB,gDAArBA,IAAqB,0CAArBA,IAAqB,8CAArBA,IAAqB,0CAArBA,IAAqB,oCAArBA,IAAqB,kCAArBA,IAAqB,8CAArBA,CAAqB,MCsBjC,MAAMC,GAAYvhD,GACTA,EAAM3X,OAAS,EAClBuvD,KAAKvnD,IAAI8Q,MACXy2C,KACA53C,EAAMI,KAAKie,GAAMA,EAAEmjC,QACjB,EACA,EAqBOC,GAAWriB,GACK7F,aAAQ6F,GAAU5F,IAAW,IAADkoB,EAAAC,EAAAC,EAAAC,EACrDroB,EAAMomB,UAA2B,QAAlB8B,EAAGloB,EAAMomB,iBAAS,IAAA8B,OAAA,EAAfA,EAAiBthD,KAAI,CAACywC,EAAQtoD,KAAK,IAChDsoD,EACH2Q,KAAMj5D,EAAQ,MAEhBixC,EAAM0mB,YAA+B,QAApByB,EAAGnoB,EAAM0mB,mBAAW,IAAAyB,OAAA,EAAjBA,EAAmBvhD,KAAI,CAAC0hD,EAAYv5D,KAAK,IACxDu5D,EACHN,KAAMj5D,EAAQ,MAEhBixC,EAAMymB,OAAqB,QAAf2B,EAAGpoB,EAAMymB,cAAM,IAAA2B,OAAA,EAAZA,EAAcxhD,KAAI,CAAC2hD,EAAOx5D,KAAK,IACzCw5D,EACHP,KAAMj5D,EAAQ,MAEhBixC,EAAMwmB,KAAiB,QAAb6B,EAAGroB,EAAMwmB,YAAI,IAAA6B,OAAA,EAAVA,EAAYzhD,KAAI,CAAC4hD,EAAKz5D,KAAK,IAAUy5D,EAAKR,KAAMj5D,EAAQ,KAAI,IAiU9D05D,OA3TmBA,CAChC75C,EACAC,KACI,IAAD65C,EAAAC,EAAAC,EAAAC,EACH,OAAQh6C,EAAO9gB,MACb,KAAK+5D,GAAsBgB,gBACzB,MAAO,IAAIl6C,EAAOnM,YAAaoM,EAAOO,SACxC,KAAK04C,GAAsBiB,YACzB,MAAO,IAAIn6C,EAAOg3B,QAAS/2B,EAAOO,SACpC,KAAK04C,GAAsBkB,UACzB,MAAO,IAAIp6C,EAAOq6C,MAAOp6C,EAAOO,QAAS3M,aAAa,GACxD,KAAKqlD,GAAsBoB,mBACzB,MAAO,IAAIt6C,EAAOu6C,aAAct6C,EAAOO,SACzC,KAAK04C,GAAsBsB,uBACzB,MAAO,IACFx6C,EACHw2C,iBAAkBv2C,EAAOO,SAE7B,KAAK04C,GAAsBuB,gBACzB,MAAO,IACFz6C,EACH06C,WAAYz6C,EAAOO,QACnBm6C,UAAW,KACXC,YAAa,KACbC,iBAAkB,MAEtB,KAAK3B,GAAsB4B,wBACzB,MAAO,IAAI96C,EAAOu2C,mBAAoBt2C,EAAOO,SAC/C,KAAK04C,GAAsB6B,iBACzB,MAAO,IACF/6C,EACH46C,YAAa36C,EAAOO,QACpBk6C,WAAY16C,EAAMq6C,MAAM/yC,WAAWrI,GAAMA,EAAEve,OAASs6D,GAAMC,QAC1DJ,iBAAkB,KAClBF,UAAW,MAEf,KAAKzB,GAAsBgC,aACzB,MAAO,IACFl7C,EACH46C,YAAa,KACb5jB,QAAS7F,aAAQnxB,EAAMg3B,SAAU5F,IAAW,IAAD+pB,EAAAC,EAAAC,EAAAC,EACzC,MAAMC,EAGH,QAHaJ,EACM,QADNC,EACdp7C,EAAMg3B,QAAQ6gB,cAAM,IAAAuD,OAAA,EAApBA,EAAsB9zC,WACnBk0C,GAAMA,EAAEpC,OAASn5C,EAAOO,QAAQ44C,cAClC,IAAA+B,KAAK,EACR/pB,EAAMymB,QACc,IAAhB0D,EACGnqB,EAAMymB,OAAO0D,GAAct7C,EAAOO,QACnC4wB,EAAMymB,OAAO91D,KAAK,IACfke,EAAOO,QACV44C,KAAMD,GAA6B,QAArBkC,EAACr7C,EAAMg3B,QAAQ6gB,cAAM,IAAAwD,IAAI,MAExCjqB,EAAMymB,OAAS,CAChB,IACK53C,EAAOO,QACV44C,KAAMD,GAA6B,QAArBmC,EAACt7C,EAAMg3B,QAAQ6gB,cAAM,IAAAyD,IAAI,KAEzC,IAENvsC,SAAS,GAEb,KAAKmqC,GAAsBuC,aACzB,MAAO,IACFz7C,EACH46C,aACmB,QAAjBd,EAAA95C,EAAM46C,mBAAW,IAAAd,OAAA,EAAjBA,EAAmBV,QAASn5C,EAAOO,QAAU,KAAOR,EAAM46C,YAC5D5jB,QAAS7F,aAAQnxB,EAAMg3B,SAAU5F,IAAW,IAADsqB,EAAAC,EAAAC,EACzC,MAAML,EAC6D,QADnDG,EACM,QADNC,EACd37C,EAAMg3B,QAAQ6gB,cAAM,IAAA8D,OAAA,EAApBA,EAAsBr0C,WAAWk0C,GAAMA,EAAEpC,OAASn5C,EAAOO,iBAAQ,IAAAk7C,KAChE,GACiB,IAAhBH,IAA+B,QAAZK,EAAAxqB,EAAMymB,cAAM,IAAA+D,GAAZA,EAAc35D,OAAOs5D,EAAY,GAAE,IAE5DxsC,SAAS,GAEb,KAAKmqC,GAAsB2C,eACzB,MAAO,IACF77C,EACH26C,UAAW16C,EAAOO,QAClBk6C,WAAY16C,EAAMq6C,MAAM/yC,WAAWrI,GAAMA,EAAEve,OAASs6D,GAAMc,MAC1DjB,iBAAkB,KAClBD,YAAa,MAEjB,KAAK1B,GAAsB6C,WACzB,MAAO,IACF/7C,EACH26C,UAAW,KACX3jB,QAAS7F,aAAQnxB,EAAMg3B,SAAU5F,IAAW,IAAD4qB,EAAAC,EAAAC,EAAAC,EACzC,MAAMZ,EAGH,QAHaS,EACI,QADJC,EACdj8C,EAAMg3B,QAAQ4gB,YAAI,IAAAqE,OAAA,EAAlBA,EAAoB30C,WACjBk0C,GAAMA,EAAEpC,OAASn5C,EAAOO,QAAQ44C,cAClC,IAAA4C,KAAK,EACR5qB,EAAMwmB,MACc,IAAhB2D,EACGnqB,EAAMwmB,KAAK2D,GAAct7C,EAAOO,QACjC4wB,EAAMwmB,KAAK71D,KAAK,IACbke,EAAOO,QACV44C,KAAMD,GAA2B,QAAnB+C,EAACl8C,EAAMg3B,QAAQ4gB,YAAI,IAAAsE,IAAI,MAEtC9qB,EAAMwmB,KAAO,CACd,IAAI33C,EAAOO,QAAS44C,KAAMD,GAA2B,QAAnBgD,EAACn8C,EAAMg3B,QAAQ4gB,YAAI,IAAAuE,IAAI,KACzD,IAENptC,SAAS,GAEb,KAAKmqC,GAAsBkD,WACzB,MAAO,IACFp8C,EACH26C,WACiB,QAAfZ,EAAA/5C,EAAM26C,iBAAS,IAAAZ,OAAA,EAAfA,EAAiBX,QAASn5C,EAAOO,QAAU,KAAOR,EAAM26C,UAC1D3jB,QAAS7F,aAAQnxB,EAAMg3B,SAAU5F,IAAW,IAADirB,EAAAC,EAAAC,EACzC,MAAMhB,EAC2D,QADjDc,EACI,QADJC,EACdt8C,EAAMg3B,QAAQ4gB,YAAI,IAAA0E,OAAA,EAAlBA,EAAoBh1C,WAAWk0C,GAAMA,EAAEpC,OAASn5C,EAAOO,iBAAQ,IAAA67C,KAC9D,GACiB,IAAhBd,IAA6B,QAAVgB,EAAAnrB,EAAMwmB,YAAI,IAAA2E,GAAVA,EAAYt6D,OAAOs5D,EAAY,GAAE,IAE1DxsC,SAAS,GAEb,KAAKmqC,GAAsBsD,sBACzB,MAAO,IACFx8C,EACH66C,iBAAkB56C,EAAOO,QACzBk6C,WAAY16C,EAAMq6C,MAAM/yC,WACrBrI,GAAMA,EAAEve,OAASs6D,GAAMyB,uBAE1B9B,UAAW,KACXC,YAAa,MAEjB,KAAK1B,GAAsBwD,kBACzB,MAAO,IACF18C,EACH66C,iBAAkB,KAClB7jB,QAAS7F,aAAQnxB,EAAMg3B,SAAU5F,IAAW,IAADurB,EACzC,MAAMvD,EAAwB,QAApBuD,EAAG18C,EAAOO,QAAQ,UAAE,IAAAm8C,OAAA,EAAjBA,EAAmBvD,KAChC,GAAIA,EAAO,EAAG,CAAC,IAADwD,EACZxrB,EAAM0mB,YAA+B,QAApB8E,EAAGxrB,EAAM0mB,mBAAW,IAAA8E,OAAA,EAAjBA,EAAmBn5B,QACpC11B,GAAMA,EAAEqrD,OAASA,IAEpBhoB,EAAM0mB,YACD1mB,EAAM0mB,YAAc,IAAI1mB,EAAM0mB,eAAgB73C,EAAOO,SACrD4wB,EAAM0mB,YAAc,IAAI73C,EAAOO,QACtC,KAAO,CAAC,IAADq8C,EAAAC,EACL,MAAMC,EAAS5D,GAOZ,QAPoB0D,EACrB79D,MAAMgzC,KACJ,IAAIgrB,IACuB,QADpBF,EACL98C,EAAMg3B,QAAQ8gB,mBAAW,IAAAgF,OAAA,EAAzBA,EAA2B9kD,KAAKjK,IACvB,IAAIA,EAAGioC,SAAU,eAG7B,IAAA6mB,IAAI,IAEDI,EAAUh9C,EAAOO,QAAQxI,KAAKklD,IAAK,IACpCA,EACH9D,KAAM2D,MAER3rB,EAAM0mB,YACD1mB,EAAM0mB,YAAc,IAAI1mB,EAAM0mB,eAAgBmF,GAC9C7rB,EAAM0mB,YAAc,IAAImF,EAC/B,KAEFluC,SAAS,GAEb,KAAKmqC,GAAsBiE,kBACzB,MAAO,IACFn9C,EACH66C,kBACwB,QAAtBb,EAAAh6C,EAAM66C,wBAAgB,IAAAb,OAAA,EAAtBA,EAAwBZ,QAASn5C,EAAOO,QACpC,KACAR,EAAM66C,iBACZ7jB,QAAS7F,aAAQnxB,EAAMg3B,SAAU5F,IAAW,IAADgsB,EACzChsB,EAAM0mB,YAA+B,QAApBsF,EAAGhsB,EAAM0mB,mBAAW,IAAAsF,OAAA,EAAjBA,EAAmB35B,QACpC11B,GAAMA,EAAEqrD,OAASn5C,EAAOO,SAC1B,IAEHuO,SAAS,GAEb,KAAKmqC,GAAsBmE,yBACzB,MAAO,IACFr9C,EACH66C,kBACwB,QAAtBZ,EAAAj6C,EAAM66C,wBAAgB,IAAAZ,OAAA,EAAtBA,EAAwBb,QAASn5C,EAAOO,QAAQ44C,KAC5C,KACAp5C,EAAM66C,iBACZ7jB,QAAS7F,aAAQnxB,EAAMg3B,SAAU5F,IAAW,IAADksB,EACzClsB,EAAM0mB,YAA+B,QAApBwF,EAAGlsB,EAAM0mB,mBAAW,IAAAwF,OAAA,EAAjBA,EAAmB75B,QACpC11B,GACCA,EAAEqrD,OAASn5C,EAAOO,QAAQ44C,MAC1BrrD,EAAEioC,WAAa/1B,EAAOO,QAAQw1B,UACjC,IAEHjnB,SAAS,GAEb,KAAKmqC,GAAsBqE,gBACzB,MAAO,IACFv9C,EACHg3B,QAAS7F,aAAQnxB,EAAMg3B,SAAU5F,IAAW,IAADosB,EAAAC,EAAAC,EAAAC,EACzC,MAAMpC,EAGH,QAHaiC,EACS,QADTC,EACdz9C,EAAMg3B,QAAQwgB,iBAAS,IAAAiG,OAAA,EAAvBA,EAAyBn2C,WACtBk0C,GAAMA,EAAEpC,OAASn5C,EAAOO,QAAQ44C,cAClC,IAAAoE,KAAK,EACRpsB,EAAMomB,WACc,IAAhB+D,EACGnqB,EAAMomB,UAAU+D,GAAct7C,EAAOO,QACtC4wB,EAAMomB,UAAUz1D,KAAK,IAClBke,EAAOO,QACV44C,KAAMD,GAAgC,QAAxBuE,EAAC19C,EAAMg3B,QAAQwgB,iBAAS,IAAAkG,IAAI,MAE3CtsB,EAAMomB,UAAY,CACnB,IACKv3C,EAAOO,QACV44C,KAAMD,GAAgC,QAAxBwE,EAAC39C,EAAMg3B,QAAQwgB,iBAAS,IAAAmG,IAAI,KAE5C,IAEN5uC,SAAS,GAEb,KAAKmqC,GAAsB0E,gBACzB,MAAO,IACF59C,EACHg3B,QAAS7F,aAAQnxB,EAAMg3B,SAAU5F,IAAW,IAADysB,EAAAC,EACzC,MAAMvC,EAGH,QAHasC,EACS,QADTC,EACd99C,EAAMg3B,QAAQwgB,iBAAS,IAAAsG,OAAA,EAAvBA,EAAyBx2C,WACtBk0C,GAAMA,EAAEpC,OAASn5C,EAAOO,iBAC1B,IAAAq9C,KAAK,EACR,IAAoB,IAAhBtC,EAAmB,CAAC,IAADwC,EAAAC,EACrB,MAAMC,EAAyC,QAA1BF,EAAG/9C,EAAMg3B,QAAQwgB,iBAAS,IAAAuG,OAAA,EAAvBA,EAAyBG,GAAG3C,GACrC,OAAf0C,QAAe,IAAfA,KAAiBxG,aACd3C,SAAS7+B,GAAMA,EAAEyhC,gCACjB1/C,KAAKie,SAC0Bn3B,IAA1BsyC,EAAM+sB,kBACR/sB,EAAM+sB,gBAAkB,IAE1B/sB,EAAM+sB,gBAAgBp8D,KAAK,CACzBq8D,WAAYH,EAAgBG,WAC5BpoB,SAAU/f,EAAE+f,UACZ,IAGS,QAAfgoB,EAAA5sB,EAAMomB,iBAAS,IAAAwG,GAAfA,EAAiB/7D,OAAOs5D,EAAY,EACtC,KAEFxsC,SAAS,GAEb,KAAKmqC,GAAsBmF,uBACzB,MAAO,IACFr+C,EACHg3B,QAAS7F,aAAQnxB,EAAMg3B,SAAU5F,IAC/B,GAAIA,EAAMomB,UAAW,CAAC,IAAD8G,EACnB,MAAMn+D,EAAQixC,EAAMomB,UAAUlwC,WAC3Bs9B,GAAMA,EAAEwU,OAASn5C,EAAOO,QAAQ44C,OAE7B6E,EAAyC,QAA1BK,EAAGt+C,EAAMg3B,QAAQwgB,iBAAS,IAAA8G,OAAA,EAAvBA,EAAyBJ,GAAG/9D,GAChD89D,SAC4Bn/D,IAA1BsyC,EAAM+sB,kBACR/sB,EAAM+sB,gBAAkB,IAE1B/sB,EAAM+sB,gBAAgBp8D,KAAK,CACzBq8D,WAA2B,OAAfH,QAAe,IAAfA,OAAe,EAAfA,EAAiBG,WAC7BpoB,SAAU/1B,EAAOO,QAAQw1B,YAI7B5E,EAAMqlB,mBAAqBrlB,EAAMqlB,mBAAmBhzB,QAAOr2B,GAAKA,EAAE4oC,WAAa/1B,EAAOO,QAAQw1B,WAE9F5E,EAAMomB,UAAUv1D,OACd9B,EACA,GA9SZsoD,EAgTcrX,EAAMomB,UAAUr3D,GA/S9B61C,EAgTc/1B,EAAOO,QAAQw1B,SA9StB,IACFyS,EACHgP,aAAchP,EAAOgP,aAAaz/C,KAAmBurC,IAAG,IACnDA,EACHmU,8BAA+BnU,EAAImU,8BAA8Bt3B,QAG/D,CAACC,EAAKC,IAAUA,EAAK0V,WAAaA,EAAW,IAAI3V,GAAO,IAAIA,EAAKC,IACjE,UAySE,CArTmBi+B,IAC3B9V,EACAzS,CAmTQ,IAEFjnB,SAAS,GAEb,QACE,OAAO/O,EACT,KAAKk5C,GAAsB9S,MACzB,MAAO,IAAInmC,EAAOO,SACpB,KAAK04C,GAAsBsF,iBACzB,MAAO,IAAIx+C,EAAOy+C,YAAax+C,EAAOO,SACxC,KAAK04C,GAAsBwF,+BACzB,MAAO,IAAI1+C,EAAO2+C,yBAA0B1+C,EAAOO,SACrD,KAAK04C,GAAsB0F,kBACzB,MAAO,IACF5+C,EACHg3B,QAAS,IAAIh3B,EAAMg3B,WAAY/2B,EAAOO,SACtCuO,SAAS,GAEb,KAAKmqC,GAAsB2F,sBACzB,MAAO,IAAI7+C,EAAO2uC,aAAc1uC,EAAOO,SACzC,KAAK04C,GAAsB4F,qBACzB,MAAO,IAAI9+C,EAAO++C,gBAAgB,EAAMlrD,aAAa,GACvD,KAAKqlD,GAAsB8F,kBACzB,MAAO,IACFh/C,EACH++C,gBAAgB,EAChB/nB,QAAS,IAAIqiB,GAAQp5C,EAAOO,SAAUy+C,oBAAoB,GAC1DrE,YAAa,KACbC,iBAAkB,KAClBF,UAAW,MAEf,KAAKzB,GAAsBgG,oBACzB,MAAO,IAAIl/C,EAAO++C,gBAAgB,GACpC,KAAK7F,GAAsBiG,kBACzB,MAAO,IAAIn/C,EAAOo/C,mBAAmB,GACvC,KAAKlG,GAAsBmG,eACzB,MAAO,IAAIr/C,EAAOo/C,mBAAmB,GACvC,KAAKlG,GAAsBoG,cACzB,MAAO,IAAIt/C,EAAOu/C,UAAWt/C,EAAOO,SACtC,KAAK04C,GAAsBsG,oBACzB,MAAO,IAAIx/C,EAAOg3B,QAAS,IAAIh3B,EAAMg3B,WAAY/2B,EAAOO,UAC5D,ECjWK,IAAKw6C,GAAK,SAALA,GAAK,OAALA,EAAK,cAALA,EAAK,sBAALA,EAAK,oCAALA,EAAK,cAALA,EAAK,UAALA,EAAK,8BAALA,EAAK,gBAALA,CAAK,MAUV,MAAMj6C,GAAiC,CAC5ClN,aAAa,EACbmjC,QAAS,CAAC,EACVqjB,MAAO,GACPK,WAAY,EACZH,aAAc,GACd/D,sBAAkB13D,EAClBy3D,mBAAoB,CAAC,EACrBqE,YAAa,KACbD,UAAW,KACXE,iBAAkB,KAClB4D,aAAa,EACbE,8BAA0B7/D,EAC1B6vD,aAAc,GACdoQ,gBAAgB,EAChBhwC,SAAS,EACTqwC,mBAAmB,EACnBG,UAAW,IAwCPE,GAAqBr+D,wBAAc,CAAC,GA2qB3Bs+D,OAzqBuBl+D,IAAmB,IAAlB,SAAEC,GAAUD,EACjD,MACEwe,OAAO,gBAAEO,EAAe,aAAEG,EAAY,mBAAEE,GACxCY,SAAUm+C,GACR59C,MAEG/B,EAAOwB,GAAYC,qBAAWo4C,GAAoB94C,KACnD,WAAEtF,GAAeQ,KACjB4d,EAAUC,eACV,WAAE48B,GAAeJ,GACrBt2C,EAAMu2C,mBACNv2C,EAAMw2C,iBACNx2C,EAAMg3B,QAAQyf,oBAEVx8B,EAAajB,KAEnB5jB,qBAAU,KACRwqD,IACA5Q,GAAmB,GAClB,IAEH55C,qBAAU,KACRtB,GAAe,GACf+rD,GAAyB,GACxB,CAACt/C,IAEJnL,qBAAU,KACR,GAAI4K,EAAMg3B,QAAS,CAAC,IAAD8oB,EAAAC,EAAAC,EAAAC,EAQjB,GANoC,KAApB,QAAbH,EAAA9/C,EAAMg3B,eAAO,IAAA8oB,OAAA,EAAbA,EAAevpB,gBACc,QAAf,QAAbwpB,EAAA//C,EAAMg3B,eAAO,IAAA+oB,OAAA,EAAbA,EAAe9G,WACU,IAA3Bj5C,EAAMu/C,UAAUt/D,QAEhBigE,KAEwB,QAAtBF,EAAAhgD,EAAMw2C,wBAAgB,IAAAwJ,OAAA,EAAtBA,EAAwBvb,eAA4B,QAAlBwb,EAAKjgD,EAAMg3B,eAAO,IAAAipB,OAAA,EAAbA,EAAexb,YAAY,CACpE3wC,GAAe,GACf,IAAIqsD,EAAengD,EAAMu6C,aAAav7C,MACnCohD,GAAOA,EAAG3b,aAAezkC,EAAMg3B,QAAQyN,aAE1C0b,GACE3+C,EAAS,CACPriB,KAAM+5D,GAAsBsB,uBAC5Bh6C,QAAS2/C,GAEf,MACErsD,GAAe,GAEjB,GACEkM,EAAMu2C,oBACNv2C,EAAMu2C,mBAAmB8J,qBACzBrgD,EAAMg3B,QAAQspB,eAGRxhE,IAFNkhB,EAAMu2C,mBAAmB8J,oBAAoBrhD,MAC1C2Z,GAAMA,EAAE4nC,WAAavgD,EAAMg3B,QAAQspB,WAEtC,CAAC,IAADE,EAAAC,EAAAC,EACA,IAAIC,EAA+B,CACjCJ,SAAUvgD,EAAMg3B,QAAQspB,SACxBM,QAAS5gD,EAAMg3B,QAAQ6pB,QACvBC,WAAW,EACXC,cAAe,EACfC,YAAahhD,EAAMg3B,QAAQiqB,OAC3BtuD,OAA8C,QAAxC6tD,EAA0B,QAA1BC,EAAEzgD,EAAMu2C,0BAAkB,IAAAkK,GAAM,QAANC,EAAxBD,EAA0B9rD,YAAI,IAAA+rD,OAAN,EAAxBA,EAAgC/tD,cAAM,IAAA6tD,IAAI,EAClDU,eAAgBlhD,EAAMg3B,QAAQmqB,kBAEhCC,EAA4BT,EAC9B,CAEAU,GACF,IACC,CAACrhD,EAAMg3B,UAEV5hC,qBAAU,KACJ4K,EAAMw2C,kBACR8K,GACF,GACC,CAACthD,EAAMw2C,mBAEV,MAAM8K,EAAgBA,KACpB,IAAIC,EAA4B,GAG9BvhD,EAAMw2C,mBAENx2C,EAAMw2C,iBAAiBtc,YACrBqnB,EAAiBx/D,KAAK,CACpBrB,KAAMs6D,GAAMwG,UACZxiC,KAAM18B,cAACm/D,GAAU,CAAC/oC,SAAS,UAC3BgpC,aAAcp/D,cAACq/D,GAAkB,CAACjpC,SAAS,YAE/C1Y,EAAMw2C,iBAAiBoL,iBACrBL,EAAiBx/D,KAAK,CACpBrB,KAAMs6D,GAAMyB,qBACZz9B,KAAM18B,cAACu/D,GAAc,CAACnpC,SAAS,UAC/BgpC,aAAcp/D,cAACw/D,GAAsB,CAACppC,SAAS,YAEnD1Y,EAAMw2C,iBAAiBuL,YACrBR,EAAiBx/D,KAAK,CACpBrB,KAAMs6D,GAAMC,MACZj8B,KAAM18B,cAAC0/D,GAAS,CAACtpC,SAAS,UAC1BgpC,aAAcp/D,cAAC2/D,GAAiB,CAACvpC,SAAS,YAE9C1Y,EAAMw2C,iBAAiB0L,UACrBX,EAAiBx/D,KAAK,CACpBrB,KAAMs6D,GAAMc,IACZ98B,KAAM18B,cAAC6/D,GAAO,CAACzpC,SAAS,UACxBgpC,aAAcp/D,cAAC8/D,GAAe,CAAC1pC,SAAS,aAG9C6oC,EAAiBx/D,KAAK,CACpBrB,KAAMs6D,GAAMqH,cACZrjC,KAAM18B,cAACggE,GAAgB,CAAC5pC,SAAS,UACjCgpC,aAAcp/D,cAACigE,GAAwB,CAAC7pC,SAAS,YAEnD6oC,EAAiBx/D,KAAK,CACpBrB,KAAMs6D,GAAMwH,OACZxjC,KAAM18B,cAACmgE,GAAU,CAAC/pC,SAAS,UAC3BgpC,aAAcp/D,cAACogE,GAAkB,CAAChqC,SAAS,YAG7ClX,EAAS,CACPriB,KAAM+5D,GAAsBkB,UAC5B55C,QAAS+gD,IAGXztD,GAAe,EAAK,EAGtBsB,qBAAU,KACRyqD,GAAyB,GACxB,CAAC7/C,EAAM2+C,2BAEV,MAAM7qD,EAAkBjV,IACtB2iB,EAAS,CACPriB,KAAM+5D,GAAsBgB,gBAC5B15C,QAAS3hB,GACT,EAGEghE,EAA0BzrD,UAC1BmM,EACEA,EAAgB9L,SAClB01C,GAAcE,mBAAkC,OAAf9pC,QAAe,IAAfA,OAAe,EAAfA,EAAiBy1B,UAAU,GACzD/oC,MAAMwhD,IAAiB,IAADkU,EACrB,IAAIC,EAAW,IACVnU,EACHwI,UAAgC,QAAvB0L,EAAElU,EAAYwI,iBAAS,IAAA0L,OAAA,EAArBA,EAAuBl/B,QAC/B+oB,KACsB,IAApBA,EAAO/gC,UAAyC,OAApB+gC,EAAO/gC,cAElC+gC,EAAOz3C,WACPq6B,KAAOod,EAAOx3C,aAAa6tD,SAASzzB,UAEf,OAArBod,EAAOz3C,cAGXiL,EAAM2+C,2BACRiE,EAASvC,oBAAsB,IAC1BuC,EAASvC,oBACZrgD,EAAM2+C,2BAGVn9C,EAAS,CACPriB,KAAM+5D,GAAsB4B,wBAC5Bt6C,QAAS,IAAKoiD,IACd,IAEHx9D,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAGrCqoD,GAAcmB,SAAwB,OAAf/qC,QAAe,IAAfA,OAAe,EAAfA,EAAiBy1B,UAAU,GAC/C/oC,MAAMwhD,IACL,IAAImU,EAAgB,IACfnU,EACH4R,oBAAqB,GACrBpJ,UAAW,IAETj3C,EAAM2+C,2BACRiE,EAASvC,oBAAsB,IAC1BuC,EAASvC,oBACZrgD,EAAM2+C,2BAGVn9C,EAAS,CACPriB,KAAM+5D,GAAsB4B,wBAC5Bt6C,QAASoiD,GACT,IAEHx9D,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAGvCqoD,GAAc37C,MACXvB,MAAMwhD,IAAiB,IAADqU,EACrB,IAAIF,EAAW,IACVnU,EACHwI,UAAgC,QAAvB6L,EAAErU,EAAYwI,iBAAS,IAAA6L,OAAA,EAArBA,EAAuBr/B,QAC/B+oB,KACsB,IAApBA,EAAO/gC,UAAyC,OAApB+gC,EAAO/gC,cAElC+gC,EAAOz3C,WACPq6B,KAAOod,EAAOx3C,aAAa6tD,SAASzzB,UAEf,OAArBod,EAAOz3C,cAGXiL,EAAM2+C,2BACRiE,EAASvC,oBAAsB,IAC1BuC,EAASvC,oBACZrgD,EAAM2+C,2BAGVn9C,EAAS,CACPriB,KAAM+5D,GAAsB4B,wBAC5Bt6C,QAAS,IAAKoiD,IACd,IAEHx9D,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UACvC,EAGI89D,EAAoBxrD,UACxBghC,GAAmBC,kBAChBpoC,MAAM4gB,IACDA,IACFrM,EAAS,CACPriB,KAAM+5D,GAAsBoB,mBAC5B95C,QAASqN,IAEXk1C,IACF,IAED39D,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAG1CktD,EAAoB56C,UACxB+1C,GAAcW,kBACX79C,MAAM4gB,IACDA,GACFrM,EAAS,CACPriB,KAAM+5D,GAAsB2F,sBAC5Br+C,QAASqN,GAEb,IAEDzoB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAG1Co+D,EAAiBA,KACrBzH,GAAyBC,4BACtBzrD,MAAM4gB,IACDA,GACFrM,EAAS,CACPriB,KAAM+5D,GAAsBoG,cAC5B9+C,QAAS,IAAIqN,IAEjB,IAEDzoB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAG1CkhE,EAAaC,IACjBzhD,EAAS,CACPriB,KAAM+5D,GAAsBiB,YAC5B35C,QAAS,IAAKyiD,IACd,EAGEC,EAAoBC,IACxB3hD,EAAS,CACPriB,KAAM+5D,GAAsB0F,kBAC5Bp+C,QAAS2iD,GACT,EAGE9B,EAAqBA,KAAO,IAADvE,EAAA3B,EAAAc,EAC/B,MAAMmH,EAAyD,QAA5BtG,EAAG98C,EAAMg3B,QAAQ8gB,mBAAW,IAAAgF,OAAA,EAAzBA,EAA2B18B,QAC/D,CAACC,EAAoBC,IACZA,EACH,IAAID,EAAK,IAAKC,EAAM+iC,KAAM,IAAK/iC,EAAK+iC,KAAMC,YAAa,MACvDjjC,GAEN,IAEIkjC,EAA+C,QAAvBpI,EAAGn7C,EAAMg3B,QAAQ6gB,cAAM,IAAAsD,OAAA,EAApBA,EAAsB/6B,QACrD,CAACC,EAAeC,IACPA,EACH,IAAID,EAAK,IAAKC,EAAM+iC,KAAM,IAAK/iC,EAAK+iC,KAAMC,YAAa,MACvDjjC,GAEN,IAEImjC,EAA2C,QAArBvH,EAAGj8C,EAAMg3B,QAAQ4gB,YAAI,IAAAqE,OAAA,EAAlBA,EAAoB77B,QACjD,CAACC,EAAaC,IACLA,EACH,IAAID,EAAK,IAAKC,EAAM+iC,KAAM,IAAK/iC,EAAK+iC,KAAMC,YAAa,MACvDjjC,GAEN,IAGIojC,EAA4B,IAC7BzjD,EAAMg3B,QACT8gB,YAAasL,EACbvL,OAAQ0L,EACR3L,KAAM4L,GAER7D,EAAqB,CACnBxgE,KAAM2gB,GAAuBW,cAC7BD,QAAShU,KAAK8H,UAAUmvD,IACxB,EAGEV,EAAkBA,KAClBniD,GAA6C,SAAvBA,GACxB++C,EAAqB,CACnBxgE,KAAM2gB,GAAuBW,cAC7BD,QAAS,SAEXm/C,EAAqB,CACnBxgE,KAAM2gB,GAAuBa,yBAC7BH,QAAS,WAGPE,GAAgBA,EAAa+jC,WAC/BjjC,EAAS,CACPriB,KAAM+5D,GAAsBiB,YAC5B35C,QAASE,IAGX5M,GAAe,GAGnBA,GAAe,EAAK,EAGhB4vD,EAAwBP,GACvBQ,EAA6BR,EAAa1M,oBAEP,IAApC0M,EAAaS,mBACRC,EAAyB,iCAC7BC,EAAwBX,GAExBY,EAA2BZ,GAER,OAApB5iD,GAA6B4iD,EAAalE,mBAEvC,GADE4E,EAAyB,wCAFzBA,EAAyB,mCAFzBA,EAAyB,gCAJzBA,EAAyB,uCAY9BA,EAA4BG,GAE1B,GAANrhE,OADoB,8CACC,KAAAA,OAAIqhE,GAGrBL,EACJlN,GAYOA,EAAmBwN,OAAOzX,GAVR0X,EAACluB,EAAkBmuB,KAAwB,IAADC,EAAAC,EACjE,MAAM7X,EAGH,QAHS4X,EACwB,QADxBC,EACVrkD,EAAMu2C,mBAAmBU,iBAAS,IAAAoN,OAAA,EAAlCA,EAAoCrlD,MACjCnF,GAAMA,EAAEm8B,WAAaA,WACvB,IAAAouB,IAAIpkD,EAAMu2C,mBAAmB/J,OAChC,OACE2X,EAAa,GACb3X,EAAO8X,UAAUtlD,MAAMtF,GAAMA,EAAEyqD,aAAeA,GAAW,EAI3DD,CAAiB1X,EAAOxW,SAAUwW,EAAO2X,cAIvCL,EAA2BX,IAAiC,IAADoB,EAAAnJ,EAAAoJ,EAAAC,EAI/D,SAFwB,QAAtBF,EAAAvkD,EAAMw2C,wBAAgB,IAAA+N,OAAA,EAAtBA,EAAwBG,aACiB,KAAX,QAA9BtJ,EAAc,QAAdoJ,EAACxkD,EAAMg3B,eAAO,IAAAwtB,GAAQ,QAARC,EAAbD,EAAe3M,cAAM,IAAA4M,OAAR,EAAbA,EAAuBxkE,cAAM,IAAAm7D,IAAI,KAGhC+H,EAAawB,kBACbxB,EAAawB,iBAAiB1kE,OAAS,CAGhC,EAGP8jE,EAA8BZ,GAC3BA,EAAayB,cAAgBzB,EAAa0B,oBAyB7CC,EAAcA,KAElB,GADAtjD,EAAS,CAAEriB,KAAM+5D,GAAsBiG,oBAvBjB4F,MACtB,KACI/kD,EAAMg3B,QAAQwgB,WAAgD,IAAnCx3C,EAAMg3B,QAAQwgB,UAAUv3D,WACnD+f,EAAMg3B,QAAQ8gB,aAAoD,IAArC93C,EAAMg3B,QAAQ8gB,YAAY73D,WACvD+f,EAAMg3B,QAAQ6gB,QAA0C,IAAhC73C,EAAMg3B,QAAQ6gB,OAAO53D,WAC7C+f,EAAMg3B,QAAQ4gB,MAAsC,IAA9B53C,EAAMg3B,QAAQ4gB,KAAK33D,QAM3C,OAJAwb,EACE,kDACAlB,GAAY3N,QAEP,EAET,MAAMo4D,EAAyBtB,EAAqB,IAAK1jD,EAAMg3B,UAC/D,QAAIguB,EAAuB/kE,OAAS,KAClCwb,EAAWupD,EAAwBzqD,GAAY3N,QACxC,EAGE,EAKPm4D,GAAmB,CACrB,MAAM52D,EAAO,IACR6R,EAAMg3B,QACTwN,QAASxkC,EAAMu2C,mBAAmB/J,OAAOxW,WAGzCh2B,EAAMg3B,QAAQT,cAAgB,EAC1BnB,GAAmB7E,OAAOpiC,GAC1BinC,GAAmBlpC,OAAO,IACrBiC,EACH7C,OAAQitD,GAAkB0M,sBAG/Bh4D,MAAM4gB,IACLrM,EAAS,CAAEriB,KAAM+5D,GAAsBmG,iBACvCxxC,EACIpS,EAAW,oBAAqBlB,GAAYE,SAC5CgB,EAAW,gCAAiClB,GAAY3N,OAC5Ds4D,GAAe,IAEhB9/D,OAAO+/D,IACN3jD,EAAS,CAAEriB,KAAM+5D,GAAsBmG,iBACvC5jD,EAAW0pD,EAAIrjE,QAASyY,GAAY3N,MAAM,GAEhD,MACE4U,EAAS,CAAEriB,KAAM+5D,GAAsBmG,gBACzC,EAGI+F,EAAiBC,IACrB7jD,EAAS,CAAEriB,KAAM+5D,GAAsBuB,gBAAiBj6C,QAAS6kD,GAAO,EAGpEC,EAAmBA,CAACC,EAAkBC,KAAuB,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAChE,OAAQR,GACN,KAAKvK,GAAMC,MACT,MAAMtB,EAAqB,QAAhB8L,EAAGzlD,EAAMg3B,eAAO,IAAAyuB,GAAQ,QAARC,EAAbD,EAAe5N,cAAM,IAAA6N,OAAR,EAAbA,EAAuB1mD,MAClCw8C,GAAMA,EAAEwK,UAAYR,IAEnB7L,GAAOsM,EAAetM,GAC1B,MACF,KAAKqB,GAAMc,IACT,MAAMlC,EAAmB,QAAhB+L,EAAG3lD,EAAMg3B,eAAO,IAAA2uB,GAAM,QAANC,EAAbD,EAAe/N,YAAI,IAAAgO,OAAN,EAAbA,EAAqB5mD,MAAMw8C,GAAMA,EAAE0K,QAAUV,IACrD5L,GAAKuM,EAAavM,GACtB,MACF,KAAKoB,GAAMyB,qBACT,MAAM/C,EAA0B,QAAhBmM,EAAG7lD,EAAMg3B,eAAO,IAAA6uB,GAAa,QAAbC,EAAbD,EAAe/N,mBAAW,IAAAgO,OAAb,EAAbA,EAA4B9mD,MAC5Cw8C,GAAMA,EAAE4K,eAAiBZ,IAExB9L,GACF2M,EAAoB,IACf3M,EACH3E,UAAW,CACiD,QADjDgR,EACTrP,EAAW13C,MAAM2Z,GAAMA,EAAEqd,WAAa0jB,EAAW1jB,kBAAS,IAAA+vB,IAAI,CAC5DlxD,UAAW,mBACXmhC,SAAU,EACVphC,SAAU,GACVsiD,aAAc,cAItB,MACF,QACEkO,EAAcplD,EAAMq6C,MAAM/yC,WAAWrI,GAAMA,EAAEve,OAASs6D,GAAMwH,UAChE,EAGI8D,EAAeA,KACnB9kD,EAAS,CACPriB,KAAM+5D,GAAsBuB,gBAC5Bj6C,QAASR,EAAM06C,WAAa,IAE9B6L,GAAa,EAGTC,EAAWA,KACfhlD,EAAS,CACPriB,KAAM+5D,GAAsBuB,gBAC5Bj6C,QAASR,EAAM06C,WAAa,IAE9B6L,GAAa,EAGTA,EAAcA,KAClBE,YAASC,SAAS,wBAAyB,CACzCC,SAAU,IACVC,MAAO,EACPC,OAAQ,iBACR/gD,OAAQmU,EAAWX,QAAU,GAAK,GAClC,EAGE4rC,EAAgBA,KACpBvF,EAAqB,CACnBxgE,KAAM2gB,GAAuBW,cAC7BD,QAAS,SAEX,IAAIsmD,EAAe,IACd/lD,GACH4tC,aAAc3uC,EAAM2uC,aACpB4L,aAAcv6C,EAAMu6C,aACpBhE,mBAAoBv2C,EAAMu2C,mBAC1B1iD,aAAa,GAEf2N,EAAS,CAAEriB,KAAM+5D,GAAsB9S,MAAO5lC,QAASsmD,IACvDnH,EAAqB,CACnBxgE,KAAM2gB,GAAuBa,yBAC7BH,QAAS,UAEXqZ,EAAQ93B,KAAK,+BAA+B,EAGxCkkE,EAAkBtM,IACtBn4C,EAAS,CAAEriB,KAAM+5D,GAAsB6B,iBAAkBv6C,QAASm5C,GAAQ,EAGtEwM,EAAgBvM,IACpBp4C,EAAS,CAAEriB,KAAM+5D,GAAsB2C,eAAgBr7C,QAASo5C,GAAM,EAGlEyM,EAAuB3M,IAC3Bl4C,EAAS,CACPriB,KAAM+5D,GAAsBsD,sBAC5Bh8C,QAASk5C,GACT,EAGEqN,EAAepN,IACnBn4C,EAAS,CAAEriB,KAAM+5D,GAAsBgC,aAAc16C,QAASm5C,GAAQ,EAGlEqN,EAAeztD,IACnBiI,EAAS,CAAEriB,KAAM+5D,GAAsBuC,aAAcj7C,QAASjH,GAAK,EAG/D0tD,EAAarN,IACjBp4C,EAAS,CAAEriB,KAAM+5D,GAAsB6C,WAAYv7C,QAASo5C,GAAM,EAG9DsN,EAAa3tD,IACjBiI,EAAS,CAAEriB,KAAM+5D,GAAsBkD,WAAY57C,QAASjH,GAAK,EAG7D4tD,EAAoBC,IACxB5lD,EAAS,CACPriB,KAAM+5D,GAAsBwD,kBAC5Bl8C,QAAS4mD,GACT,EAGEC,EAAoBC,IACxB9lD,EAAS,CACPriB,KAAM+5D,GAAsBiE,kBAC5B38C,QAAS8mD,GACT,EAGEC,EAA0BC,IAI9BhmD,EAAS,CACPriB,KAAM+5D,GAAsBmE,yBAC5B78C,QAASgnD,GACT,EAGEC,EAAkBhf,IACtBjnC,EAAS,CAAEriB,KAAM+5D,GAAsBqE,gBAAiB/8C,QAASioC,GAAS,EAGtEif,EAAkBnuD,IACtBiI,EAAS,CAAEriB,KAAM+5D,GAAsB0E,gBAAiBp9C,QAASjH,GAAK,EAGlEglD,EAAwB/R,IAC5BhrC,EAAS,CACPriB,KAAM+5D,GAAsBmF,uBAC5B79C,QAASgsC,GACT,EAGEmb,EAAiBA,KACrBhI,EAAqB,CACnBxgE,KAAM2gB,GAAuBa,yBAC7BH,QAAS,SAEXgB,EAAS,CAAEriB,KAAM+5D,GAAsBsF,iBAAkBh+C,SAAS,GAAO,EAGrE4gD,EACJwG,IAEApmD,EAAS,CACPriB,KAAM+5D,GAAsBwF,+BAC5Bl+C,QAASonD,GACT,EAGE/qD,EAAqBmvC,IACzBxqC,EAAS,CACPriB,KAAM+5D,GAAsBsG,oBAC5Bh/C,QAASwrC,GACT,EAGE6b,EAAetuD,IACnBiI,EAAS,CAAEriB,KAAM+5D,GAAsB4F,uBACvC1pB,GAAmBK,eAAel8B,GAC/BtM,MAAM66D,IACLtmD,EAAS,CACPriB,KAAM+5D,GAAsB8F,kBAC5Bx+C,QAASsnD,GACT,IAEH1iE,OAAOlB,IACNuX,EAAWvX,EAAMpC,SACjB0f,EAAS,CACPriB,KAAM+5D,GAAsBgG,oBAC5B1+C,QAAStc,GACT,GACF,EAGArF,GAAQmd,mBACZ,MACEgE,QACAwB,WACAsjD,cACA9B,YACA3B,qBACA+D,gBACAE,mBACAkB,WACAF,eACApB,gBACAe,iBACAc,cACAC,cACAb,eACAc,YACAC,YACAb,sBACAc,mBACAE,mBACAE,yBACAE,iBACAC,iBACAnJ,uBACAoJ,iBACA9H,0BACAuB,8BACA8B,mBACAQ,uBACAmE,cACAtB,cACA1pD,uBAEF,CAACmD,IAGH,OACE1d,cAACm9D,GAAmBl9D,SAAQ,CAAC1D,MAAOA,GAAM4C,SACvCA,GAC2B,EAM3B,MAAMsmE,GAAwBA,IAAMzmE,qBAAWm+D,ICxwB/C,IAAKuI,GAA4B,SAA5BA,GAA4B,OAA5BA,IAA4B,uDAA5BA,IAA4B,iDAA5BA,IAA4B,qDAA5BA,IAA4B,iDAA5BA,IAA4B,qCAA5BA,IAA4B,+CAA5BA,CAA4B,MAqEzBC,OAtC0BA,CACvCjoD,EACAC,KACI,IAADioD,EAAAhoD,EAAAC,EAAAC,EACH,OAAQH,EAAO9gB,MACb,KAAK6oE,GAA6BG,sBAChC,MAAO,IAAKnoD,EAAOooD,kBAAmBnoD,EAAOO,SAC/C,KAAKwnD,GAA6BK,gBAChC,MAAO,IAAKroD,EAAOw2C,iBAAkBv2C,EAAOO,SAC9C,KAAKwnD,GAA6BM,yBAChC,MAAO,IAAKtoD,EAAOsI,SAAS,EAAMigD,mBAAezpE,GACnD,KAAKkpE,GAA6BQ,wBAChC,MAAO,IAAKxoD,EAAOsI,SAAS,EAAOigD,cAAetoD,EAAOO,SAC3D,KAAKwnD,GAA6BS,sBAChC,MAAO,IACFzoD,EACH8nD,YAAa,IAAKzO,GAAQp5C,EAAOO,UACjC+nD,mBAAezpE,EACfwpB,SAAS,GAEb,KAAK0/C,GAA6BU,qBAChC,MAAO,IACF1oD,EACH8nD,YAAa9nD,EAAM8nD,YACf,IACK9nD,EAAM8nD,YACTa,aAA0C,QAA9BT,EAAgB,QAAhBhoD,EAAED,EAAOO,eAAO,IAAAN,OAAA,EAAdA,EAAgByoD,oBAAY,IAAAT,IAAI,GAC9CU,aAAa,QAADjmE,OAAUysC,KAAqB,QAAfjvB,EAACF,EAAOO,eAAO,IAAAL,OAAA,EAAdA,EAAgB8xB,UAAUC,OACrD,cACD,QAAAvvC,OAAOysC,KAAqB,QAAfhvB,EAACH,EAAOO,eAAO,IAAAJ,OAAA,EAAdA,EAAgB+xB,QAAQD,OAAO,qBAEhDpzC,GAER,QACE,OAAOkhB,EACX,ECpEK,MAAMe,GAAwC,CACnDuH,SAAS,EACTw/C,iBAAahpE,EACb03D,sBAAkB13D,EAClBspE,uBAAmBtpE,EACnBypE,mBAAezpE,GAYX+pE,GAA4BznE,wBAChC,CAAC,GA6FY0nE,OA1F8BtnE,IAAmB,IAADunE,EAAA,IAAjB,SAAEtnE,GAAUD,EACxD,MAAOwe,EAAOwB,GAAYC,qBAAWwmD,GAA2BlnD,KAC1D,WAAEtF,GAAeQ,MAGrB+D,OAAO,aAAEu6C,EAAY,UAAEgF,IACrBwI,KAEJ3yD,qBAAU,KAAO,IAAD4zD,EACd,GACmB,QAAjBA,EAAAhpD,EAAM8nD,mBAAW,IAAAkB,GAAjBA,EAAmBvkB,YACnB8V,GACAA,EAAat6D,OAAS,EACtB,CACAgpE,EAAejpD,EAAM8nD,YAAYrjB,YACjC,MAAMykB,EAAW3O,EAAav7C,MAC3BE,IAAC,IAAAiqD,EAAA,OAAKjqD,EAAEulC,cAAgC,QAAtB0kB,EAAKnpD,EAAM8nD,mBAAW,IAAAqB,OAAA,EAAjBA,EAAmB1kB,WAAU,IAEvD2kB,EAAuBppD,EAAM8nD,YAAYtjB,QAAS0kB,EAAUG,QAC9D,IACC,CAACrpD,EAAM8nD,YAAavN,IAEvBnlD,qBAAU,KAAO,IAADk0D,EACd,GAAqB,QAArBA,EAAItpD,EAAM8nD,mBAAW,IAAAwB,GAAjBA,EAAmBrQ,SAAU,CAC/B,IAAIsQ,EAA4B,OAAThK,QAAS,IAATA,OAAS,EAATA,EAAWvgD,MAC/BE,IAAC,IAAAsqD,EAAA,OAAKtqD,EAAE+5C,YAA8B,QAAtBuQ,EAAKxpD,EAAM8nD,mBAAW,IAAA0B,OAAA,EAAjBA,EAAmBvQ,SAAQ,IAEnDsQ,GACE/nD,EAAS,CACPriB,KAAM6oE,GAA6BU,qBACnCloD,QAAS+oD,GAEf,IACC,CAAChK,EAA4B,QAAnBwJ,EAAE/oD,EAAM8nD,mBAAW,IAAAiB,OAAA,EAAjBA,EAAmB9P,WAElC,MAAMwQ,EAAmBlwD,IACvBiI,EAAS,CAAEriB,KAAM6oE,GAA6BM,2BAC9ClzB,GAAmBM,mBAAmBn8B,GACnCtM,MAAM66D,IACLtmD,EAAS,CACPriB,KAAM6oE,GAA6BS,sBACnCjoD,QAASsnD,GACT,IAEH1iE,OAAOlB,IACNuX,EAAWvX,EAAMpC,SACjB0f,EAAS,CACPriB,KAAM6oE,GAA6BQ,wBACnChoD,QAAStc,GACT,GACF,EAGAklE,EAAyBA,CAAC5kB,EAAiB6kB,MACjCA,EACVlf,GAAcmB,SAAS9G,GACvB2F,GAAcE,mBAAmB7F,IAGlCv3C,MAAMy8D,GACLloD,EAAS,CACPriB,KAAM6oE,GAA6BG,sBACnC3nD,QAAS,IAAKkpD,OAGjBtkE,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAG1CmnE,EAAkBxkB,IACtBjjC,EAAS,CACPriB,KAAM6oE,GAA6BK,gBACnC7nD,QAAS+5C,EAAav7C,MAAME,GAAMA,EAAEulC,aAAeA,KACnD,EAGE5lD,EAAQmd,mBACZ,SACKgE,EACHypD,qBAEF,CAACzpD,IAGH,OACE1d,cAACumE,GAA0BtmE,SAAQ,CAAC1D,MAAOA,EAAM4C,SAC9CA,GACkC,EAMlC,MCxHDwP,GAAe,YAEf04D,GAAqBlmC,IAAyB,IAADmmC,EAAAC,EAAAC,EAAAC,EAAAC,EACjD,MAAM3pC,EAAM,GAMZ,OALAA,EAAIt+B,KAAK,WAADY,OAA0B,QAA1BinE,EAAYnmC,EAAOwmC,eAAO,IAAAL,IAAI,KACtCvpC,EAAIt+B,KAAK,WAADY,OAA0B,QAA1BknE,EAAYpmC,EAAOkgB,eAAO,IAAAkmB,IAAI,KACtCxpC,EAAIt+B,KAAK,UAADY,OAAwB,QAAxBmnE,EAAWrmC,EAAOn4B,cAAM,IAAAw+D,IAAI,KACpCzpC,EAAIt+B,KAAK,cAADY,OAAgC,QAAhConE,EAAetmC,EAAOymC,kBAAU,IAAAH,IAAI,KAC5C1pC,EAAIt+B,KAAK,QAADY,OAAoB,QAApBqnE,EAASvmC,EAAOtkC,YAAI,IAAA6qE,IAAI,KACzB3pC,EAAIpgC,OAAS,EAAIogC,EAAIzS,KAAK,KAAO,EAAE,EAgC7Bu8C,OA7BK,CAClBC,SAAW3mC,GACTl1B,EAAa,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAIgnE,GAAkBlmC,KACpD4mC,UAAYjuD,GACV7N,EAAa,GAAD5L,OAAIsO,GAAY,WAAW,CAAEmL,gBAC3CkuD,aAAcA,IACZ/7D,EAAa,GAAD5L,OAAIsO,GAAY,eAC9Bs5D,cAAgBC,GACdj8D,EAAa,GAAD5L,OAAIsO,GAAY,gBAAAtO,OAAe6nE,GAAoB,CAC7Dh1B,aAAc,SAElBjF,OAAS8yB,IACP,MAAM/0D,EAAWiZ,GAAY87C,GAQ7B,OAPA/0D,EAASpO,SAAQ,CAACrB,EAAOuB,KACvB,GAAIA,EAAIqqE,SAAS,aAAc,CAC7B,IAAIC,EAAStqE,EAAI+gC,QAAQ,YAAa,YACtC7yB,EAASuC,OAAOzQ,GACZvB,GAAOyP,EAASvO,OAAO2qE,EAAQ7rE,EACrC,KAEK0P,EAAa,GAAD5L,OAAIsO,IAAgB3C,EAAU,CAC/CjC,QAAS,CACP,eAAgB,wBAElB,EAEJs+D,gBAAkBlnC,GAChBl1B,EAAa,GAAD5L,OAAIsO,GAAY,kBAAAtO,OAAiBgnE,GAAkBlmC,MCrBnE,MAAMmnC,GAAkB,CAAC,aAElB,IAAKC,GAAkB,SAAlBA,GAAkB,OAAlBA,IAAkB,6CAAlBA,IAAkB,uCAAlBA,IAAkB,2CAAlBA,IAAkB,2DAAlBA,IAAkB,qDAAlBA,IAAkB,yDAAlBA,IAAkB,6BAAlBA,IAAkB,6CAAlBA,IAAkB,uCAAlBA,IAAkB,2CAAlBA,IAAkB,4DAAlBA,IAAkB,sDAAlBA,IAAkB,0DAAlBA,CAAkB,MAgEvB,MAAMC,GAAkBA,CAC7B9qD,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAK0rE,GAAmBE,oBACtB,MAAO,IAAK/qD,EAAOgrD,eAAe,EAAMC,cAAehrD,EAAOO,SAChE,KAAKqqD,GAAmBK,iBACtB,MAAO,IACFlrD,EACHgrD,eAAe,EACfG,MAAOlrD,EAAOO,QACd4qD,eAAgBprD,EAAM+0C,UAAUtxB,QAAQvkB,IAAC,IAAAgB,EAAA,OACzB,QADyBA,EACvCD,EAAOO,eAAO,IAAAN,OAAA,EAAdA,EAAgBkH,MAAMi8C,GAASA,EAAKgI,QAAQnB,aAAehrD,EAAE82B,UAAS,KAG5E,KAAK60B,GAAmBS,mBACtB,MAAO,IAAKtrD,EAAOgrD,eAAe,GACpC,KAAKH,GAAmBU,2BACtB,MAAO,IAAKvrD,EAAOwrD,qBAAqB,GAC1C,KAAKX,GAAmBY,wBACtB,MAAO,IACFzrD,EACHwrD,qBAAqB,EACrBE,OAAQzrD,EAAOO,QAAQ,GACvBu0C,UAAW90C,EAAOO,QAAQ,GAC1BlV,OAAQ2U,EAAOO,QAAQ,GACvBmrD,SAAU1rD,EAAOO,QAAQ,GACzBorD,eAAgB3rD,EAAOO,QAAQ,GAC/BqrD,iBAAkB5rD,EAAOO,QAAQ,GAAGijB,QACjCxN,IAAO20C,GAAgBxjD,MAAM0kD,GAAUA,IAAU71C,EAAEv1B,UAG1D,KAAKmqE,GAAmBkB,0BACtB,MAAO,IAAK/rD,EAAOwrD,qBAAqB,GAC1C,KAAKX,GAAmBmB,YACtB,MAAO,IAAKhsD,EAAOisD,aAAchsD,EAAOO,SAC1C,KAAKqqD,GAAmBqB,oBACtB,MAAO,IAAKlsD,EAAOwN,UAAU,GAC/B,KAAKq9C,GAAmBsB,mBACtB,MAAO,IAAKnsD,EAAOwN,UAAU,EAAOy+C,kBAAcntE,GACpD,KAAK+rE,GAAmBuB,iBACtB,MAAO,IACFpsD,EACHwN,UAAU,EACVy+C,kBAAcntE,EACdqsE,MAAOh6B,aAAQnxB,EAAMmrD,OAAQ/5B,IAC3B,MAAMjxC,EAAQixC,EAAM9pB,WACjB2O,GAAMA,EAAEo2C,SAAWpsD,EAAOO,QAAQ6rD,SAEjClsE,GAAS,IACXyqE,GAAgBxjD,MAAM0kD,GAAUA,IAAU7rD,EAAOO,QAAQlV,SACrD8lC,EAAMnvC,OAAO9B,EAAO,GACpBixC,EAAMnvC,OAAO9B,EAAO,EAAG8f,EAAOO,SACpC,KAGN,KAAKqqD,GAAmByB,2BACtB,MAAO,IACFtsD,EACHusD,sBAAsB,EACtBtB,cAAehrD,EAAOO,SAE1B,KAAKqqD,GAAmB2B,wBACtB,MAAO,IACFxsD,EACHusD,sBAAsB,EACtBE,aAAcxsD,EAAOO,QACrB4qD,eAAgBprD,EAAM+0C,UAAUtxB,QAAQvkB,IAAC,IAAAiB,EAAA,OACzB,QADyBA,EACvCF,EAAOO,eAAO,IAAAL,OAAA,EAAdA,EAAgBiH,MAAMi8C,GAASA,EAAKgI,QAAQnB,aAAehrD,EAAE82B,UAAS,KAG5E,KAAK60B,GAAmB6B,0BACtB,MAAO,IAAK1sD,EAAOusD,sBAAsB,GAC3C,QACE,OAAOvsD,EACX,ECpJWe,GAA8B,CACzC4qD,cAAU7sE,EACVqsE,MAAO,GACPc,kBAAcntE,EACdmsE,mBAAensE,EACfksE,eAAe,EACfx9C,UAAU,EACVg+C,qBAAqB,EACrBE,OAAQ,GACR3W,UAAW,GACXqW,eAAgB,GAChB9/D,OAAQ,GACRugE,iBAAkB,GAClBD,eAAgB,GAChBa,aAAc,GACdF,sBAAsB,GAGlBI,GAAkBvrE,wBAAc,CAAC,GAsIxBwrE,OApIoBprE,IAAmB,IAAlB,SAAEC,GAAUD,EAC9C,MAAOwe,EAAOwB,GAAYC,qBAAWqpD,GAAiB/pD,KAChD,WAAEtF,GAAeQ,KAuBvB7G,qBAAU,KApBRoM,EAAS,CAAEriB,KAAM0rE,GAAmBU,6BACpChnE,QAAQsa,IAAI,CACVsrD,GAAYE,YACZF,GAAYG,eACZl1B,GAAmBE,qBACnB6U,GAAc37C,MACd4mC,GAAmBqC,sBAElBxqC,MAAKgL,IAA0D,IAAxDyzD,EAAQ3W,EAAWzpD,EAAQkhD,EAAQof,GAAe3zD,EACxDuJ,EAAS,CACPriB,KAAM0rE,GAAmBY,wBACzBjrD,QAAS,CAACkrD,EAAQ3W,EAAWzpD,EAAQkhD,EAAQof,IAC7C,IAEHxmE,OAAOlB,IACNsd,EAAS,CAAEriB,KAAM0rE,GAAmBkB,4BACpCtwD,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,GAK9B,GACjB,IAgGH,OACEtK,cAACqqE,GAAgBpqE,SAAQ,CACvB1D,MAAO,CAAEmhB,QAAO6sD,WAhGAppC,IAClBjiB,EAAS,CAAEriB,KAAM0rE,GAAmBE,oBAAqBvqD,QAASijB,IAClE0mC,GAAYC,SAAS3mC,GAClBx2B,MAAMk+D,IACLA,EAAMjrE,SAASgf,IACb,IAAI4tD,EAAQ9sD,EAAM0rD,OAAO1sD,MAAM+tD,IAAOA,EAAE/2B,YAAc92B,EAAE+qD,UACxD/qD,EAAE8tD,cAAgBF,EAAK,GAAAnqE,OAChBmqE,EAAMj4D,UAAS,KAAAlS,OAAImqE,EAAMl4D,UACd,OAAdsK,EAAE+qD,QACF,GAAE,qBAEN,IAAIgD,EAAWjtD,EAAM+0C,UAAU/1C,MAC5BiX,IAAOA,EAAE+f,YAAc92B,EAAEmsD,QAAQnB,aAEpChrD,EAAEmsD,QAAQ6B,iBAAmBD,EAAQ,GAAAtqE,OAC9BsqE,EAASp4D,UAAS,KAAAlS,OAAIsqE,EAASr4D,UAClC,EAAE,IAER4M,EAAS,CAAEriB,KAAM0rE,GAAmBK,iBAAkB1qD,QAAS2qD,GAAQ,IAExE/lE,OAAOlB,IACNsd,EAAS,CAAEriB,KAAM0rE,GAAmBS,qBACpC7vD,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,GAC5C,EAyE0BugE,WAtEZ9J,GAClB7hD,EAAS,CAAEriB,KAAM0rE,GAAmBmB,YAAaxrD,QAAS6iD,IAqEhB+J,WAnExBC,IAClB7rD,EAAS,CAAEriB,KAAM0rE,GAAmBqB,sBACpC/B,GAAY55B,OAAO88B,GAChBpgE,MAAM4gB,IACL,IAAIi/C,EAAQ9sD,EAAM0rD,OAAO1sD,MAAM+tD,IAAOA,EAAE/2B,YAAcnoB,EAAOo8C,UAC7Dp8C,EAAOm/C,cAAgBF,EAAK,GAAAnqE,OACrBmqE,EAAMj4D,UAAS,KAAAlS,OAAImqE,EAAMl4D,UACT,OAAnBiZ,EAAOo8C,QACP,GAAE,qBAEN,IAAIgD,EAAWjtD,EAAM+0C,UAAU/1C,MAC5BiX,IAAOA,EAAE+f,YAAcnoB,EAAOw9C,QAAQnB,aAEzCr8C,EAAOw9C,QAAQ6B,iBAAmBD,EAAQ,GAAAtqE,OACnCsqE,EAASp4D,UAAS,KAAAlS,OAAIsqE,EAASr4D,UAClC,GAEAiZ,GACFpS,EAAW,4BAA6BlB,GAAYE,SACpD+G,EAAS,CACPriB,KAAM0rE,GAAmBuB,iBACzB5rD,QAASqN,MAGXpS,EAAW,wBAAyBlB,GAAY3N,OAChD4U,EAAS,CAAEriB,KAAM0rE,GAAmBsB,qBACtC,IAED/mE,OAAOlB,IACNuX,EAAW,0BAAD9Y,OAA2BuB,GAASqW,GAAY3N,OAC1D4U,EAAS,CAAEriB,KAAM0rE,GAAmBsB,oBAAqB,GACzD,EAoCkDmB,kBAlC7B7pC,IACzBjiB,EAAS,CACPriB,KAAM0rE,GAAmByB,2BACzB9rD,QAASijB,IAEX0mC,GAAYQ,gBAAgBlnC,GACzBx2B,MAAMw/D,IACLA,EAAavsE,SAASgf,IACpB,IAAI4tD,EAAQ9sD,EAAM0rD,OAAO1sD,MAAM+tD,IAAOA,EAAE/2B,YAAc92B,EAAE+qD,UACxD/qD,EAAE8tD,cAAgBF,EAAK,GAAAnqE,OAChBmqE,EAAMj4D,UAAS,KAAAlS,OAAImqE,EAAMl4D,UACd,OAAdsK,EAAE+qD,QACF,GAAE,qBAEN,IAAIgD,EAAWjtD,EAAM+0C,UAAU/1C,MAC5BiX,IAAOA,EAAE+f,YAAc92B,EAAEmsD,QAAQnB,aAEpChrD,EAAEmsD,QAAQ6B,iBAAmBD,EAAQ,GAAAtqE,OAC9BsqE,EAASp4D,UAAS,KAAAlS,OAAIsqE,EAASr4D,UAClC,EAAE,IAER4M,EAAS,CACPriB,KAAM0rE,GAAmB2B,wBACzBhsD,QAASisD,GACT,IAEHrnE,OAAOlB,IACNsd,EAAS,CAAEriB,KAAM0rE,GAAmB6B,4BACpCjxD,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,GAC5C,GAKsEnL,SAEvEA,GACwB,EAMxB,MAAM8rE,GAAqBA,IAAMjsE,qBAAWqrE,IC3K5C,IAAKa,GAA2B,SAA3BA,GAA2B,OAA3BA,IAA2B,qDAA3BA,IAA2B,qDAA3BA,IAA2B,uDAA3BA,IAA2B,iDAA3BA,CAA2B,MAkDxBC,OAlByBA,CACtCztD,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAKquE,GAA4BE,wBAC/B,MAAO,IAAK1tD,EAAO2tD,uBAAwB1tD,EAAOO,SACpD,KAAKgtD,GAA4BI,wBAC/B,MAAO,IAAK5tD,EAAO6tD,uBAAwB5tD,EAAOO,SACpD,KAAKgtD,GAA4BM,yBAC/B,MAAO,IAAK9tD,EAAO+tD,uBAAwB9tD,EAAOO,SACpD,KAAKgtD,GAA4BQ,sBAC/B,MAAO,IAAKhuD,EAAOizB,YAAahzB,EAAOO,SACzC,QACE,OAAOR,EACX,EClDGiuD,GAAwB,SAAxBA,GAAwB,OAAxBA,IAAwB,yCAAxBA,IAAwB,yCAAxBA,CAAwB,EAAxBA,IAAwB,IAKdA,MCSR,MAAMltD,GAAuC,CAClDkyB,YAAag7B,GAAyBC,kBACtCP,uBAAwB,KACxBE,uBAAwB,KACxBE,uBAAwB,MAUpBI,GAA2B/sE,wBAAc,CAAC,GAoGjCgtE,OAlG6B5sE,IAAmB,IAAlB,SAAEC,GAAUD,EACvD,MAAOwe,EAAOwB,GAAYC,qBAAWgsD,GAA0B1sD,KACzD,WAAEtF,GAAeQ,KAEvB7G,qBAAU,KACRi5D,IAAwBjpE,MAAMnB,QAAQC,MAAM,GAC3C,IAEHkR,qBAAU,KAEN4K,EAAMizB,cACHg7B,GAAyBK,mBACK,OAAjCtuD,EAAM6tD,wBAENU,IAAwBnpE,MAAMnB,QAAQC,MACxC,GACC,CAAC8b,EAAMizB,cAEV,MAAMo7B,EAAwBj6D,UAC5BqkD,GAAyBC,4BACtBzrD,MAAMuhE,GACLhtD,EAAS,CACPriB,KAAMquE,GAA4BE,wBAClCltD,QAASguD,MAGZppE,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAG1CysE,EAAwBn6D,UAC5BqkD,GAAyBE,4BACtB1rD,MAAMuhE,GACLhtD,EAAS,CACPriB,KAAMquE,GAA4BI,wBAClCptD,QAASguD,MAGZppE,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EA+ChD,OACEQ,cAAC6rE,GAAyB5rE,SAAQ,CAChC1D,MAAO,CACLmhB,QACAwB,WACAitD,qBAjDwB3V,IAC5B,IAAI4V,EAEFA,EADE1uD,EAAM+tD,uBACUtV,GAAyBM,qBAAqB,IAC3D/4C,EAAM+tD,0BACNjV,IAIHL,GAAyBI,qBAAqBC,GAGlD4V,EACGzhE,MAAM4gB,IACDA,GACFwgD,IAAwBjpE,MAAMnB,QAAQC,MACxC,IAED+I,MAAK,IACJwO,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,WAE9DrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EA6B1C6sE,iCA1BmCA,KACnC3uD,EAAM+tD,wBACRtV,GAAyBO,yBACvBh5C,EAAM+tD,uBAAuB9U,UAE5BhsD,MAAM2hE,IACDA,GACFnzD,EACEjW,EAAUuB,SAASC,QAAQI,gBAC3BmT,GAAYE,SAEd4zD,IAAwBjpE,MAAMnB,QAAQC,QAEtCuX,EAAW,kDACb,IAEDrW,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UACvC,GAUIL,SAEDA,GACiC,EAMjC,MC/HDwP,GAAe,eA0BNozC,OAxBM,CACnBwqB,YAAaA,CACX/xB,EACAhI,KAAiB,IAAAg6B,EAAA,OAEjBvgE,EAAa,GAAD5L,OACPsO,GAAY,gBAAAtO,OAAyB,OAAVm6C,QAAU,IAAVA,IAAc,GAAE,gBAAAn6C,OACnB,QADmBmsE,EAClC,OAAVh6B,QAAU,IAAVA,OAAU,EAAVA,EAAYv0C,qBAAa,IAAAuuE,IAAI,IAEhC,EACHz8B,cAAeA,CACbkE,EACA0e,EACAjf,EACAmM,IAEA5zC,EAAe,GAAD5L,OAAIsO,GAAY,YAAY,CACxCslC,gBACA0e,gBACAjf,WACAmM,aCTC,IAAK4sB,GAAkB,SAAlBA,GAAkB,OAAlBA,IAAkB,iDAAlBA,IAAkB,2CAAlBA,IAAkB,+CAAlBA,IAAkB,mDAAlBA,IAAkB,6CAAlBA,IAAkB,iDAAlBA,IAAkB,mCAAlBA,IAAkB,qCAAlBA,CAAkB,MAwB9B,MAAMC,GAAoBC,GACjBA,EAAc7uC,OAAmB8uC,GAAiB,IAGrDA,GAAkBA,CAAC7uC,EAAiBC,IACxCD,EAAIrhB,MAAMmwD,GAAMA,EAAEtwE,QAAUyhC,EAAK8uC,mBAC7B/uC,EACA,IACKA,EACH,CACEvX,MAAM,GAADnmB,OAAK29B,EAAKzrB,UAAS,KAAAlS,OAAI29B,EAAK1rB,UACjC/V,MAAOyhC,EAAK8uC,mBAITC,GAAkBA,CAC7BrvD,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAK4vE,GAAmBO,sBACtB,MAAO,IAAKtvD,EAAOuvD,WAAW,GAChC,KAAKR,GAAmBS,mBACtB,MAAO,IACFxvD,EACHuvD,WAAW,EACX3D,eAAgB3rD,EAAOO,QAAQ,GAC/ByuD,cAAehvD,EAAOO,QAAQ,GAC9BivD,cAAexvD,EAAOO,QAAQ,GAC9BkvD,UAAWV,GAAiB/uD,EAAOO,QAAQ,IAC3CmvD,sBAAkB7wE,GAEtB,KAAKiwE,GAAmBa,qBACtB,MAAO,IAAK5vD,EAAOuvD,WAAW,GAChC,KAAKR,GAAmBc,uBACtB,MAAO,IAAK7vD,EAAOuvD,WAAW,GAChC,KAAKR,GAAmBe,oBACtB,MAAO,IACF9vD,EACHuvD,WAAW,EACXN,cAAehvD,EAAOO,QACtBivD,cAAexvD,EAAOO,QACtBkvD,UAAWV,GAAiB/uD,EAAOO,SACnCmvD,sBAAkB7wE,GAEtB,KAAKiwE,GAAmBgB,sBACtB,MAAO,IAAK/vD,EAAOuvD,WAAW,GAChC,KAAKR,GAAmBiB,eACtB,MAAO,IACFhwD,EACHuvD,WAAW,EACXN,cAAe99B,aAAQnxB,EAAMivD,eAAgB79B,IAC3C,MAAMjxC,EAAQixC,EAAM9pB,WACjB2O,GACCA,EAAE+f,WAAa/1B,EAAOO,QAAQw1B,UAC9B/f,EAAEg/B,gBAAkBh1C,EAAOO,QAAQy0C,gBAEnC90D,GAAS,GACXixC,EAAMnvC,OAAO9B,EAAO,EAAG8f,EAAOO,QAChC,IAEFivD,cAAet+B,aAAQnxB,EAAMyvD,eAAgBr+B,IAC3C,MAAMjxC,EAAQixC,EAAM9pB,WACjB2O,GACCA,EAAE+f,WAAa/1B,EAAOO,QAAQw1B,UAC9B/f,EAAEg/B,gBAAkBh1C,EAAOO,QAAQy0C,gBAEnC90D,GAAS,GACXixC,EAAMnvC,OAAO9B,EAAO,EAAG8f,EAAOO,QAChC,KAGN,KAAKuuD,GAAmBkB,gBACtB,MAAO,IACFjwD,EACH2vD,iBAAkB1vD,EAAOO,QACzBivD,cAAexvD,EAAOO,QAClBR,EAAMivD,cAAcxrC,QACjB0rC,GAAMA,EAAEC,mBAAqBnvD,EAAOO,UAEvCR,EAAMivD,eAEd,QACE,OAAOjvD,EACX,EC3GWe,GAA8B,CACzCwuD,WAAW,EACXN,cAAe,GACfrD,eAAgB,GAChB8D,UAAW,GACXC,sBAAkB7wE,EAClB2wE,cAAe,IAGXS,GAAkB9uE,wBAAc,CAAC,GA8ExB+uE,OA5EoB3uE,IAAmB,IAAlB,SAAEC,GAAUD,EAC9C,MAAOwe,EAAOwB,GAAYC,qBAAW4tD,GAAiBtuD,KAChD,WAAEtF,GAAeQ,KAqBvB7G,qBAAU,KAlBRoM,EAAS,CAAEriB,KAAM4vE,GAAmBO,wBAEpC/qE,QAAQsa,IAAI,CACVu2B,GAAmBqC,oBACnB24B,GAAgBvB,gBAEf5hE,MAAKgL,IAAsC,IAApC2zD,EAAgBqD,GAAch3D,EACpCuJ,EAAS,CACPriB,KAAM4vE,GAAmBS,mBACzBhvD,QAAS,CAACorD,EAAgBqD,IAC1B,IAEH7pE,OAAOlB,IACNsd,EAAS,CAAEriB,KAAM4vE,GAAmBa,uBACpCn0D,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,GAK9B,GACjB,IA0CH,OACEtK,cAAC4tE,GAAgB3tE,SAAQ,CACvB1D,MAAO,CAAEmhB,QAAOqwD,cA1CG5sC,IAA6B,IAAD6sC,EACjD9uD,EAAS,CAAEriB,KAAM4vE,GAAmBc,yBAEpCO,GAAgBvB,YAAYprC,EAAOqZ,WAA6B,QAAnBwzB,EAAE7sC,EAAOqR,kBAAU,IAAAw7B,OAAA,EAAjBA,EAAmBn+B,UAC/DllC,MAAMgiE,IACLztD,EAAS,CACPriB,KAAM4vE,GAAmBe,oBACzBtvD,QAASyuD,GACT,IAEH7pE,OAAOlB,IACNsd,EAAS,CAAEriB,KAAM4vE,GAAmBgB,wBACpCt0D,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,GAC5C,EA6B6B2jE,eA1BX5E,GACtBnqD,EAAS,CAAEriB,KAAM4vE,GAAmBkB,gBAAiBzvD,QAASmrD,IAyBbt5B,cAvB7BA,CAAChkB,EAAqB8zB,KAC1CiuB,GAAgB/9B,cACdhkB,EAAKkoB,cACLloB,EAAK4mC,cACL5mC,EAAK2nB,SACLmM,GAECl1C,MAAMo2B,IACDA,GACF7hB,EAAS,CACPriB,KAAM4vE,GAAmBiB,eACzBxvD,QAAS,IAAK6N,EAAM8zB,QAASA,KAE/B1mC,EAAW,+BAAgClB,GAAYE,UAEvDgB,EAAW,yBACb,IAEDrW,OAAOlB,GAAUuX,EAAgB,OAALvX,QAAK,IAALA,OAAK,EAALA,EAAOpC,UAAS,GAKkBL,SAE9DA,GACwB,EAMxB,MAAM+uE,GAAqBA,IAAMlvE,qBAAW4uE,ICvG7Cj/D,GAAe,qBAYNw/D,OAVc,CAC3BjiE,IAAKA,IAAiCD,EAAa,GAAD5L,OAAIsO,GAAY,MAClEs/B,OAASmgC,GACPniE,EAAa,GAAD5L,OAAIsO,IAAgB,IAC3By/D,EACH9jD,QAAS,GACT5d,KAAM,MCCL,IAAK2hE,GAA6B,SAA7BA,GAA6B,OAA7BA,IAA6B,qDAA7BA,IAA6B,mDAA7BA,IAA6B,+CAA7BA,IAA6B,qCAA7BA,IAA6B,qDAA7BA,IAA6B,+CAA7BA,IAA6B,mDAA7BA,CAA6B,MA4BlC,MAAMC,GAA4BA,CACvC5wD,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAKwxE,GAA8BE,wBACjC,MAAO,IAAK7wD,EAAOsI,SAAS,EAAMsoB,QAAQ,GAC5C,KAAK+/B,GAA8BG,uBACjC,MAAO,IAAK9wD,EAAOsI,SAAS,GAC9B,KAAKqoD,GAA8BI,qBACjC,MAAO,IACF/wD,EACHsI,SAAS,EACTsoB,QAAQ,EACRogC,UAAW/wD,EAAOO,SAEtB,KAAKmwD,GAA8BM,gBACjC,MAAO,IAAKjxD,EAAOkxD,iBAAkBjxD,EAAOO,SAC9C,KAAKmwD,GAA8BQ,wBACjC,MAAO,IAAKnxD,EAAOwN,UAAU,GAC/B,KAAKmjD,GAA8BS,qBACjC,MAAO,IACFpxD,EACHkxD,sBAAkBpyE,EAClB0uB,UAAU,EACVwjD,UAAW7/B,aAAQnxB,EAAMgxD,WAAY5/B,IACnC,MAAMjxC,EAAQixC,EAAM9pB,WACjBrI,GAAMA,EAAEoyD,kBAAoBpxD,EAAOO,QAAQ6wD,kBAE9CjgC,EAAMnvC,OAAO9B,EAAO,EAAG8f,EAAOO,QAAQ,KAG5C,KAAKmwD,GAA8BW,uBACjC,MAAO,IAAKtxD,EAAOkxD,sBAAkBpyE,EAAW0uB,UAAU,GAC5D,QACE,OAAOxN,EACX,ECrDIuxB,GAAyC,CAC7Cy/B,UAAW,GACX1oD,SAAS,EACTsoB,QAAQ,EACRpjB,UAAU,EACV0jD,sBAAkBpyE,GAGdyyE,GAAwB79D,IAAMtS,cAClC,CAAC,GAgEYowE,OA7D8BhwE,IAAmB,IAAlB,SAAEC,GAAUD,EACxD,MAAOwe,EAAOwB,GAAYC,qBAAWmvD,GAA2Br/B,KAC1D,WAAE91B,GAAeQ,KAEjBw1D,EAAiB5vE,uBAAY,KACjC4uE,GAAqBjiE,MAClBvB,MAAM+jE,IACLxvD,EAAS,CACPriB,KAAMwxE,GAA8BI,qBACpCvwD,QAASwwD,GACT,IAEH5rE,OAAOlB,IACNsd,EAAS,CACPriB,KAAMwxE,GAA8BG,yBAEtCr1D,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,GAC5C,GACH,CAAC6O,IAEEi2D,EAAiB7vE,uBAAa2uC,IAClChvB,EAAS,CACPriB,KAAMwxE,GAA8BM,gBACpCzwD,QAASgwB,GACT,GACD,IAEGmhC,EAAiB9vE,uBACpB6uE,IACClvD,EAAS,CAAEriB,KAAMwxE,GAA8BQ,0BAC/CV,GAAqBlgC,OAAOmgC,GACzBzjE,MAAMo2B,IACDA,GACF7hB,EAAS,CACPriB,KAAMwxE,GAA8BS,qBACpC5wD,QAASkwD,IAEXj1D,EAAW,gCAAiClB,GAAYE,UAExDgB,EAAW,2BACb,IAEDrW,OAAOlB,IACNsd,EAAS,CACPriB,KAAMwxE,GAA8BW,yBAEtC71D,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,GAC5C,GAEN,CAAC6O,IAGH,OACEnZ,cAACivE,GAAsBhvE,SAAQ,CAC7B1D,MAAO,IAAKmhB,EAAOyxD,iBAAgBC,iBAAgBC,kBAAiBlwE,SAEnEA,GAC8B,EAM9B,MAAMmwE,GAA+BA,IAC1CtwE,qBAAWiwE,ICtFN,IAAKM,GAAkB,SAAlBA,GAAkB,OAAlBA,IAAkB,6CAAlBA,IAAkB,uCAAlBA,IAAkB,2CAAlBA,IAAkB,+CAAlBA,IAAkB,6CAAlBA,IAAkB,yCAAlBA,IAAkB,mCAAlBA,IAAkB,+EAAlBA,IAAkB,2CAAlBA,IAAkB,mDAAlBA,IAAkB,sCAAlBA,CAAkB,MA0GfC,OA1EQA,CACrB9xD,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAK0yE,GAAmBE,qBACtB,MAAO,IAAK/xD,EAAOsI,SAAS,GAC9B,KAAKupD,GAAmBG,oBACtB,MAAO,IAAKhyD,EAAOsI,SAAS,GAC9B,KAAKupD,GAAmBI,kBACtB,MAAO,IACFjyD,EACHsI,SAAS,EACTsoB,QAAQ,EACRxlC,SAAU6U,EAAOO,SAErB,KAAKqxD,GAAmBK,oBACtB,MAAO,IAAKlyD,EAAOwN,UAAU,GAC/B,KAAKqkD,GAAmBM,mBACtB,MAAO,IAAKnyD,EAAOwN,UAAU,GAC/B,KAAKqkD,GAAmBO,iBACtB,MAAO,IACFpyD,EACHwN,UAAU,EACVpiB,SAAU,IACL4U,EAAM5U,SACT,IACK6U,EAAOO,QACV6xD,QAAQ,EACRC,SAAS,EACTC,wBAAwB,EACxBC,oBAAoB,EACpBC,eAAe,EACfC,WAAW,EACXC,YAAY,EACZp1D,SAAU,KAEZq1D,MAAK,CAAC7F,EAAG8F,IAAM9F,EAAEpwD,KAAKm2D,cAAcD,EAAEl2D,SAE5C,KAAKk1D,GAAmBkB,gBACtB,MAAO,IACF/yD,EACHwN,UAAU,EACVpiB,SAAU,IACL4U,EAAM5U,SAASq4B,QAAQr2B,GAAMA,EAAEuP,OAASsD,EAAOxD,eAClDm2D,MAAK,CAAC7F,EAAG8F,IAAM9F,EAAEpwD,KAAKm2D,cAAcD,EAAEl2D,SAE5C,KAAKk1D,GAAmBmB,qCACtB,MAAO,IAAKhzD,EAAOizD,kCAAmChzD,EAAOO,SAC/D,KAAKqxD,GAAmBqB,mBACtB,OAAO/hC,aAAQnxB,GAAQoxB,IACrB,MAAMmqB,EAAanqB,EAAMhmC,SAASkc,WAC/BylD,GAAMA,EAAEpwD,OAASsD,EAAOO,UAEvB+6C,GAAc,IAChBnqB,EAAMhmC,SAASmwD,GAAYoX,YACxBvhC,EAAMhmC,SAASmwD,GAAYoX,YAEhCvhC,EAAM6hC,uCAAoCn0E,CAAS,IAEvD,KAAK+yE,GAAmBsB,uBACtB,OAAOhiC,aAAQnxB,GAAQoxB,IACrB,MAAMmqB,EAAanqB,EAAMhmC,SAASkc,WAC/BylD,GAAMA,EAAEpwD,OAASsD,EAAOO,QAAQ/D,cAE/B8+C,GAAc,IAChBnqB,EAAMhmC,SAASmwD,GAAYh+C,SAAW0C,EAAOO,QAAQjD,SACvD,IAEJ,QACE,OAAOyC,EACX,EC1FF,MAAMuxB,GAAe,CACnBX,QAAQ,EACRtoB,SAAS,EACTkF,UAAU,EACVpiB,SAAU,GACV6nE,uCAAmCn0E,GAG/Bs0E,GAAkB1/D,IAAMtS,cAAc,CAAC,GACvCiyE,GAA0B3/D,IAAMtS,cACpC,CAAC,GAiIYkyE,OA9HoB9xE,IAAmB,IAAlB,SAAEC,GAAUD,EAC9C,MAAOwe,EAAOwB,GAAYC,qBAAWqwD,GAAgBvgC,KAC/C,WAAE91B,GAAeQ,KAEvB7G,qBAAU,KACR,MAAMgH,EAAcnQ,IAAMsnE,YAAY56D,SAetC,OAbA6I,EAAS,CAAEriB,KAAM0yE,GAAmBE,uBACpC71D,GAAeC,aAAaC,EAAYzO,OACrCV,MAAM4gB,IACLrM,EAAS,CACPriB,KAAM0yE,GAAmBI,kBACzBzxD,QAASqN,GACT,IAEHzoB,OAAOlB,IACNsd,EAAS,CAAEriB,KAAM0yE,GAAmBG,sBACpCv2D,EAAWvX,EAAMpC,QAAQ,IAGtB,KACLsa,EAAYzW,OAAO,sBAAsB,CAC1C,GACA,CAAC8V,IAoFJ,OACEnZ,cAAAyV,WAAA,CAAAtW,SACEa,cAAC8wE,GAAgB7wE,SAAQ,CAAC1D,MAAO,IAAKmhB,GAAQve,SAC5Ca,cAAC+wE,GAAwB9wE,SAAQ,CAC/B1D,MAAO,CACLyd,WAvFUC,IAClBiF,EAAS,CAAEriB,KAAM0yE,GAAmBK,sBACpCh2D,GAAeI,WAAWC,GACvBtP,MAAM4gB,IACDA,GACFrM,EAAS,CACPriB,KAAM0yE,GAAmBO,iBACzB5xD,QAASjE,IAEXd,EAAW,WAAD9Y,OAAY4Z,EAAQI,KAAI,UAAUpC,GAAYE,UAExDgB,EAAW,2BACb,IAEDrW,OAAOlB,IACNsd,EAAS,CAAEriB,KAAM0yE,GAAmBM,qBACpC12D,EAAgB,OAALvX,QAAK,IAALA,OAAK,EAALA,EAAOpC,QAAQ,GAC1B,EAuEI0xE,iBA/CeA,CAAC/2D,EAAqBgP,MACtBA,EACnBvP,GAAeU,kBACfV,GAAeQ,iBACJD,GACZxP,MAAMo2B,IACDA,GACF7hB,EAAS,CACPriB,KAAM0yE,GAAmBqB,mBACzB1yD,QAAS/D,IAEXhB,EAAW,WAAD9Y,OACG8Z,EAAW,KAAA9Z,OAAI8oB,EAAW,cAAgB,aACrDlR,GAAYE,UAGdgB,EAAW,YAAD9Y,OAAa8oB,EAAW,aAAe,YACnD,IAEDrmB,OAAO+/D,GAAQ1pD,EAAW0pD,EAAIrjE,UAAS,EA6BlC2xE,gCAtD+Bl3D,GACvCiF,EAAS,CACPriB,KAAM0yE,GAAmBmB,qCACzBxyD,QAASjE,IAoDHe,eA3BaA,CAACb,EAAqBc,KAC3CrB,GAAeoB,eAAeb,EAAac,GACxCtQ,MAAMiB,IACDA,GACFsT,EAAS,CACPriB,KAAM0yE,GAAmBsB,uBACzB3yD,QAAS,CAAEjD,WAAUd,iBAEvBhB,EAAW,uBAAD9Y,OACe8Z,EAAW,YAClClC,GAAYE,UAGdgB,EAAW,8BACb,IAEDrW,OAAO+/D,GAAQ1pD,EAAW0pD,EAAIrjE,UAAS,EAYlC0a,cAvEaC,IACrBP,GAAeM,cAAcC,GAC1BxP,MAAM4gB,IACDA,GACFrM,EAAS,CAAEriB,KAAM0yE,GAAmBkB,gBAAiBt2D,gBACrDhB,EAAW,WAAD9Y,OAAY8Z,EAAW,gBAAgBlC,GAAYE,UAE7DgB,EAAW,2BACb,IAEDrW,OAAOlB,IACNuX,EAAgB,OAALvX,QAAK,IAALA,OAAK,EAALA,EAAOpC,QAAQ,GAC1B,GA4DIL,SAEDA,OAGJ,EAKA,MAAMiyE,GAAqBA,IAAMpyE,qBAAW8xE,IACtCO,GAA6BA,IACxCryE,qBAAW+xE,ICpKN,IAAKO,GAA6B,SAA7BA,GAA6B,OAA7BA,EAA6B,gDAA7BA,EAA6B,8CAA7BA,EAA6B,0CAA7BA,EAA6B,8CAA7BA,EAA6B,0CAA7BA,EAA6B,iDAA7BA,EAA6B,2CAA7BA,EAA6B,+CAA7BA,EAA6B,wDAA7BA,EAA6B,kDAA7BA,EAA6B,uCAA7BA,CAA6B,MAkG1BC,OA9C2BA,CACxC7zD,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAKy0E,GAA8B/jB,uBACjC,MAAO,IAAK7vC,EAAO8vC,YAAY,EAAMtlC,kBAAc1rB,GACrD,KAAK80E,GAA8B7jB,sBACjC,MAAO,IAAK/vC,EAAO8vC,YAAY,EAAOtlC,aAAcvK,EAAOO,SAC7D,KAAKozD,GAA8B5jB,oBACjC,MAAO,IAAKhwC,EAAO8vC,YAAY,EAAOG,aAAchwC,EAAOO,SAC7D,KAAKozD,GAA8B1jB,oBACjC,MAAO,IACFlwC,EACHmwC,SAAU,IAAInwC,EAAMmwC,YAAalwC,EAAOO,QAAQrS,MAChDiiD,YAAapwC,EAAMowC,YAAc,EACjCC,eAAgBpwC,EAAOO,QAAQ+uC,SAEnC,KAAKqkB,GAA8B7iB,wBACjC,MAAO,IACF/wC,EACHiwC,aAAcjwC,EAAMiwC,aAAaxsB,QAC9B/pB,GAAMA,EAAE68B,gBAAkBt2B,EAAOO,UAEpC4vC,YAAa,EACbD,SAAU,GACVL,YAAY,GAEhB,KAAK8jB,GAA8B5iB,0BACjC,MAAO,IAAKhxC,EAAO8vC,YAAY,GACjC,KAAK8jB,GAA8B3iB,2BACjC,MAAO,IAAKjxC,EAAO8vC,YAAY,GACjC,KAAK8jB,GAA8BrI,2BACjC,MAAO,IAAKvrD,EAAOwrD,qBAAqB,GAC1C,KAAKoI,GAA8BnI,wBACjC,MAAO,IACFzrD,EACHwrD,qBAAqB,EACrB72D,KAAMsL,EAAOO,QAAQ,IAGzB,QACE,OAAOR,EACX,EC9EF,MAEMuxB,GAAyC,CAC7C58B,KAAM,KACNw7C,SAAU,GACVF,aAAc,GACdG,YAAa,EACbC,gBAAgB,EAChB7lC,kBAAc1rB,EACdgxD,YAAY,GAGRgkB,GAA4BpgE,IAAMtS,cACtC,CAAC,GA+FY2yE,OA5F8BvyE,IAAmB,IAAlB,SAAEC,GAAUD,EACxD,MAAOwe,EAAOwB,GAAYC,qBAAWuyD,GAA2BziC,KAC1D,WAAE91B,GAAeQ,KAEvB7G,qBAAU,KACJ4K,EAAMwK,cAAc/O,EAAWuE,EAAMwK,aAAa,GACrD,CAACxK,EAAMwK,eAEVpV,qBAAU,MACR,uBACQo8C,GACP,CAFD,EAEI,GACH,IAEHp8C,qBAAU,IAAMq8C,KAAoB,CAACzxC,EAAMiwC,eAE3C,MAAMuB,EAAYp9C,UAChBy9C,GAAe,EAGXA,EAAgBz9C,UACpBoN,EAAS,CAAEriB,KAAMy0E,GAA8B/jB,yBAC/Cza,GAAmBa,8BAChBhpC,MAAMkjD,GACL3uC,EAAS,CACPriB,KAAMy0E,GAA8B5jB,oBACpCxvC,QAAS2vC,MAGZ/qD,OAAOlB,GACNsd,EAAS,CACPriB,KAAMy0E,GAA8B7jB,sBACpCvvC,QAAStc,KAEZ,EAGCutD,EAAmBA,KAAO,IAADM,GACP,QAAlBA,EAAA/xC,EAAMiwC,oBAAY,IAAA8B,OAAA,EAAlBA,EAAoB9xD,QAAS,GAC/BuhB,EAAS,CACPriB,KAAMy0E,GAA8B1jB,oBACpC1vC,QAAS2uC,GAASnvC,EAAMiwC,aAAcjwC,EAAMowC,YAzD1B,KA2DtB,EAGI+B,EAAqB5b,IACzB/0B,EAAS,CACPriB,KAAMy0E,GAA8B3iB,6BAEtC7b,GAAmBvkC,OAAO0lC,GACvBtpC,MAAM4gB,IACDA,GACFrM,EAAS,CACPriB,KAAMy0E,GAA8B7iB,wBACpCvwC,QAAS+1B,IAEX96B,EAAW,mCAAoClB,GAAYE,WAE3DgB,EAAW,mCACX+F,EAAS,CACPriB,KAAMy0E,GAA8B5iB,4BAExC,IAED5rD,OAAOlB,IACNuX,EAAWvX,EAAMpC,SACjB0f,EAAS,CACPriB,KAAMy0E,GAA8B5iB,2BACpC,GACF,EAGAnyD,EAAQmd,mBACZ,SACKgE,EACHyxC,mBACAU,uBAEF,CAACnyC,IAGH,OACE1d,cAACwxE,GAA0BvxE,SAAQ,CAAC1D,MAAOA,EAAM4C,SAC9CA,GACkC,ECxHlC,IAAKwyE,GAA4B,SAA5BA,GAA4B,OAA5BA,IAA4B,iCAA5BA,IAA4B,iCAA5BA,CAA4B,MAkCzBC,OAd0BA,CACvCl0D,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAK80E,GAA6BE,cAChC,MAAO,IAAKn0D,EAAOu5B,QAASt5B,EAAOO,SACrC,KAAKyzD,GAA6BG,cAChC,MAAO,IAAKp0D,EAAOq0D,eAAgBp0D,EAAOO,SAC5C,QACE,OAAOR,EACX,ECpBK,MAAMe,GAAwC,CACnDw4B,QAAS,KACT86B,eAAgB,MAUZC,GAA4BlzE,wBAChC,CAAC,GAuEYmzE,OApE8B/yE,IAAmB,IAAlB,SAAEC,GAAUD,EACxD,MAAOwe,EAAOwB,GAAYC,qBAAWyyD,GAA2BnzD,KAC1D,WAAEtF,GAAeQ,KAEvB7G,qBAAU,KACRo/D,IAAepvE,MAAMnB,QAAQC,MAAM,GAClC,IAEH,MAAMswE,EAAepgE,UACnBw/B,GAAmBmB,wBAChB9nC,MAAMssC,GACL/3B,EAAS,CACPriB,KAAM80E,GAA6BE,cACnC3zD,QAAS+4B,MAGZn0C,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAsChD,OACEQ,cAACgyE,GAA0B/xE,SAAQ,CACjC1D,MAAO,CACLmhB,QACAwB,WACAizD,aAxCgBx/B,IACpBrB,GAAmBoB,wBAAwBC,GACxChoC,MAAM4gB,IACDA,GACF2mD,IAAepvE,MAAMnB,QAAQC,MAC/B,IAED+I,MAAK,IACJwO,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,WAE9DrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EA+B1C4yE,qBA5BuBA,KACvB10D,EAAMq0D,gBACRzgC,GAAmBsB,0BACjBl1B,EAAMq0D,eAAel/B,UAEpBloC,MAAM+8C,IACDA,EACFwqB,IAAepvE,MAAMnB,QAAQC,OAE7BuX,EAAW,qCACb,IAEDxO,MAAK,IACJwO,EACEjW,EAAUuB,SAASC,QAAQE,YAC3BqT,GAAYE,WAGfrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UACvC,GAUIL,SAEDA,GACkC,EAMlC,MChGDwP,GAAe,eAsBN0jE,OApBQ,CACrBnmE,IAAKA,IAAyBD,EAAa,GAAD5L,OAAIsO,GAAY,MAC1D2jE,UAAYl0E,GACV6N,EAAa,GAAD5L,OAAIsO,GAAY,UAAAtO,OAASjC,IACvCq2B,OAAQA,IAA2BxoB,EAAa,GAAD5L,OAAIsO,GAAY,MAC/Ds/B,OAAS6e,GACP7gD,EAAa,GAAD5L,OAAIsO,IAAgBm+C,GAClCljD,OAASkjD,GACP7gD,EAAa,GAAD5L,OAAIsO,IAAgBm+C,GAClCv+C,OAAS0I,GACPhL,EAAgB,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAI4W,IACrCyvC,aAAe16C,GACNC,EAAc,GAAD5L,OAAIsO,GAAY,UAAU3C,EAAU,CACtDjC,QAAS,CACP,eAAgB,0BCjBjB,IAAKwoE,GAAiB,SAAjBA,GAAiB,OAAjBA,IAAiB,qCAAjBA,IAAiB,qCAAjBA,CAAiB,MAyBdC,OAXeA,CAAC90D,EAAqBC,KAClD,OAAQA,EAAO9gB,MACb,KAAK01E,GAAkBE,gBACrB,MAAO,IAAK/0D,EAAOg1D,SAAU/0D,EAAOO,SACtC,KAAKq0D,GAAkBI,gBACrB,MAAO,IAAKj1D,EAAOk1D,gBAAiBj1D,EAAOO,SAC7C,QACE,OAAOR,EACX,ECfK,MAAMe,GAA6B,CACxCi0D,SAAU,KACVE,gBAAiB,MAUbC,GAAiB/zE,wBAAc,CAAC,GA0EvBg0E,OAxEmB5zE,IAAmB,IAAlB,SAAEC,GAAUD,EAC7C,MAAOwe,EAAOwB,GAAYC,qBAAWqzD,GAAgB/zD,KAC/C,WAAEtF,GAAeQ,KAEvB7G,qBAAU,KACRigE,GAAe,GACd,IAEH,MAAMA,EAAgBjhE,UACpBugE,GAAe59C,SACZ9pB,MAAM+nE,GACLxzD,EAAS,CAAEriB,KAAM01E,GAAkBE,gBAAiBv0D,QAASw0D,MAE9D5vE,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EA6ChD,OACEQ,cAAC6yE,GAAe5yE,SAAQ,CACtB1D,MAAO,CACLmhB,QACAwB,WACA8zD,cA/CiBzrB,IACrB,IAAI0rB,EAEFA,EADEv1D,EAAMk1D,gBACSP,GAAepkC,OAAO,IAClCvwB,EAAMk1D,mBACNrrB,IAGY8qB,GAAezoE,OAAO29C,GAGzC0rB,EAAetoE,MAAM4gB,IACfA,GACFwnD,GACF,IAECpoE,MAAK,IACJwO,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,WAE9DrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EA6B1C0zE,sBA1BwBA,KACxBx1D,EAAMk1D,iBACRP,GAAe9jE,OAAOmP,EAAMk1D,gBAAgBO,WACzCxoE,MAAM+8C,IACDA,EACFqrB,IAEA55D,EAAW,wCACb,IAEDxO,MAAK,IACJwO,EACEjW,EAAUuB,SAASC,QAAQE,YAC3BqT,GAAYE,WAGfrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UACvC,GAUIL,SAEDA,GACuB,E,IC3F1B,G,4DACJ,SAAS,KAAiS,OAApR,GAAWjB,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASg9D,GAAUl0E,EAAMyX,GACvB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,6yBACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBs8D,IAClC,Q,oBCygBAC,OAvgB8Cn0E,IAGQ,IAADo0E,EAAAC,EAAAC,EAAAC,EAAA,IAHN,KACE5nE,EAAI,WACJ6nE,GAAa,GACdx0E,EAC7D,MAAM,MAACwe,EAAK,SAAEwB,EAAQ,kBAAEy5B,GAAqBoD,KAuCvC43B,EAAaA,KACjB,IAAK,IAAIx9D,EAAI,EAAGA,GAA6B,QAA5By9D,EAAG/nE,EAAKuvC,4BAAoB,IAAAw4B,OAAA,EAAzBA,EAA2Bj2E,QAAQwY,IAAK,CAAC,IAADy9D,EAC1D,GACE/nE,EAAKuvC,qBAAqBjlC,GAAG0lC,aAC7BhwC,EAAKuvC,qBAAqBjlC,GAAGqlC,wBAC7B3vC,EAAKuvC,qBAAqBjlC,GAAGslC,sBAC7B5vC,EAAKuvC,qBAAqBjlC,GAAGulC,wBAC7B7vC,EAAKuvC,qBAAqBjlC,GAAGwlC,0BAC7B9vC,EAAKuvC,qBAAqBjlC,GAAGylC,mBAC7B/vC,EAAKsvC,gBAAkBtvC,EAAKovC,kBAE5B,OAAO,CAEX,CACA,OAAO,CAAK,EA2Bd,OACExqC,eAACojE,KAAK,CAACnjE,UAAWC,KAAOmjE,MAAM30E,SAAA,CAC7Ba,cAAC+zE,KAAS,CAAA50E,SACRsR,eAACujE,KAAQ,CAAA70E,SAAA,CACPa,cAACi0E,KAAS,CACRvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,MACrBC,QAAS,EACTlhE,MAAO,CAACI,MAAO,MAAMlU,SACtB,SAGDa,cAACi0E,KAAS,CACRvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,MACrBC,QAAS,EACTlhE,MAAO,CAACI,MAAO,OAAOlU,SAErB2tC,KAAe,QAATwmC,EAACznE,EAAK8uC,WAAG,IAAA24B,IAAIznE,EAAKuoE,KAAKC,OAAS,EACnC,4BACA,cAENr0E,cAACi0E,KAAS,CACRvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,MACrBC,QAAS,EACTlhE,MAAO,CAACI,MAAO,OAAOlU,SACvB,WAGDa,cAACi0E,KAAS,CACRvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,MACrBC,QAAS,EACTlhE,MAAO,CAACI,MAAO,OAAOlU,SACvB,eAGDa,cAACi0E,KAAS,CACRvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,MACrBC,QAAS,EACTlhE,MAAO,CAACI,MAAO,OAAOlU,SACvB,eAGDa,cAACi0E,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,MAAQjhE,MAAO,CAACI,MAAO,MAAMlU,SAAC,qBAG9DsR,eAACwjE,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,MAAQjhE,MAAO,CAACI,MAAO,MAAMlU,SAAA,CAAC,cAE5Da,cAAA,SAAK,YAGPyQ,eAACwjE,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,MAAQjhE,MAAO,CAACI,MAAO,MAAMlU,SAAA,CAAC,cAE5Da,cAAA,SAAK,UAGPyQ,eAACwjE,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,MAAQjhE,MAAO,CAACI,MAAO,MAAMlU,SAAA,CAAC,cAE5Da,cAAA,SAAK,QAGPyQ,eAACwjE,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,MAAQjhE,MAAO,CAACI,MAAO,MAAMlU,SAAA,CAAC,cAE5Da,cAAA,SAAK,QAGPyQ,eAACwjE,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,MAAQjhE,MAAO,CAACI,MAAO,MAAMlU,SAAA,CAAC,aAE5Da,cAAA,SAAK,WAGPA,cAACi0E,KAAS,CACRvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,MACrBC,QAAS,EACTlhE,MAAO,CAACI,MAAO,OAAOlU,SACvB,kBAGDa,cAACi0E,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,MAAQjhE,MAAO,CAACI,MAAO,MAAMlU,SAAC,sBAKlEsR,eAAC6jE,KAAS,CAAAn1E,SAAA,CAC+B,KAAb,QAAzBo0E,EAAA1nE,EAAKuvC,4BAAoB,IAAAm4B,OAAA,EAAzBA,EAA2B51E,SAC1B8S,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACujE,KAAQ,CAACtjE,UAAWC,KAAO4jE,aAAap1E,SAAA,CACvCsR,eAACwjE,KAAS,CACRE,QAAS,EACTzjE,UAAS,GAAArQ,OAAKsQ,KAAO2qB,OAAM,KAAAj7B,QACxBqzE,GAAc7nE,EAAKsvC,eAChBv1B,KAAW4uD,aACXh4E,GACH2C,SAAA,CACJ,aACY0M,EAAK4oE,WAElBz0E,cAACi0E,KAAS,CAACE,QAAS,EAAGzjE,UAAWC,KAAO2qB,OAAOn8B,SAAC,uBAGjDsR,eAACwjE,KAAS,CAACE,QAAS,EAAGzjE,UAAWC,KAAO2qB,OAAOn8B,SAAA,CAAC,WACtC0M,EAAK2uC,cAEhB/pC,eAACwjE,KAAS,CACRE,QAAS,EACTzjE,UAAS,GAAArQ,OAAKsQ,KAAO2qB,OAAM,KAAAj7B,QACxBqzE,GAAc7nE,EAAKqvC,WAChBt1B,KAAW4uD,aACXh4E,GACH2C,SAAA,CACJ,QACO2tC,KAAe,QAAT0mC,EAAC3nE,EAAK8uC,WAAG,IAAA64B,IAAI3nE,EAAKuoE,KAAKxkC,OAAO,mBAAmB6K,iBAE/DhqC,eAACwjE,KAAS,CACRE,QAAS,GACTzjE,UAAS,GAAArQ,OAAKsQ,KAAO2qB,OAAM,KAAAj7B,QACxBqzE,GAAc7nE,EAAKovC,kBAChBr1B,KAAW4uD,aACXh4E,GACH2C,SAAA,CACJ,YACW0M,EAAKslD,iBAGnBnxD,cAACg0E,KAAQ,CAAA70E,SACPa,cAACi0E,KAAS,CAACE,QAAS,GAAIzjE,UAAWC,KAAOujE,KAAK/0E,SAAC,0CAMrD0M,EAAK6oE,+BACJ10E,cAACg0E,KAAQ,CAACtjE,UAAWC,KAAO4jE,aAAap1E,SACvCa,cAACi0E,KAAS,CACRE,QAAS,GACTzjE,UAAS,GAAArQ,OAAKulB,KAAW4uD,SACzBvhE,MAAO,CAACsV,QAAS,OAAOppB,SAExBsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAM1Y,WAAW,SAAQhU,SAAA,CACjDa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC20E,GAAU,MAEb30E,cAAC4rB,KAAI,CAACG,MAAI,EAAC9Y,MAAO,CAACmoB,WAAY,OAAOj8B,SAAC,0FAQ9C0M,EAAKuvC,qBAAqB1lC,KAAI,CAAC2lC,EAAQllC,KAAC,IAAAy+D,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OACvC3kE,eAACW,IAAM2E,SAAQ,CAAA5W,SAAA,CACbsR,eAACujE,KAAQ,CAACtjE,UAAWC,KAAO4jE,aAAap1E,SAAA,CACvCa,cAACi0E,KAAS,CACRE,QAAS,EACTzjE,UAAS,GAAArQ,OAAKsQ,KAAO2qB,OAAM,KAAAj7B,QACxBqzE,GAAc7nE,EAAKsvC,eAChBv1B,KAAW4uD,aACXh4E,GACH2C,SAEI,IAANgX,GAAO,aAAA9V,OAAiBwL,EAAK4oE,WAEhChkE,eAACwjE,KAAS,CAACE,QAAS,EAAGzjE,UAAWC,KAAO2qB,OAAOn8B,SAAA,CAAC,YACrCk8C,EAAOA,UAEnBr7C,cAACi0E,KAAS,CAACE,QAAS,EAAGzjE,UAAWC,KAAO2qB,OAAOn8B,SACvC,IAANgX,GAAO,WAAA9V,OAAewL,EAAKumC,gBAE9BpyC,cAACi0E,KAAS,CACRE,QAAS,EACTzjE,UAAS,GAAArQ,OAAKsQ,KAAO2qB,OAAM,KAAAj7B,QACxBqzE,GAAc7nE,EAAKqvC,WAChBt1B,KAAW4uD,aACXh4E,GACH2C,SAEI,IAANgX,GAAO,QAAA9V,OACEysC,KAAe,QAAT8nC,EAAC/oE,EAAK8uC,WAAG,IAAAi6B,IAAI/oE,EAAKuoE,KAC7BxkC,OAAO,mBACP6K,iBAEPz6C,cAACi0E,KAAS,CACRE,QAAS,GACTzjE,UAAS,GAAArQ,OAAKsQ,KAAO2qB,OAAM,KAAAj7B,QACxBqzE,GAAc7nE,EAAKovC,kBAChBr1B,KAAW4uD,aACXh4E,GACH2C,SAEI,IAANgX,GAAO,YAAA9V,OAAgBwL,EAAKslD,iBAIjC1gD,eAACujE,KAAQ,CAACtjE,UAAU,aAAYvR,SAAA,CAC9Ba,cAACi0E,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,QACjCqzE,GAAcr4B,EAAOQ,YAClBj2B,KAAW4uD,aACXh4E,GACFyW,MAAO,CAACI,MAAO,MAAMlU,SACrBk8C,EAAOg6B,KAAwB,QAAdR,EAAGx5B,EAAOg6B,YAAI,IAAAR,OAAA,EAAXA,EAAax6D,KAAnB,MAElBra,cAACi0E,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,OAAIsQ,KAAO2kE,UAAS,KAAAj1E,QACrDqzE,GAAcr4B,EAAOQ,YAClBj2B,KAAW4uD,aACXh4E,GACH2C,SACAk8C,EAAOk6B,kBAAoB,SAAY9kE,eAAAgF,WAAA,CAAAtW,SAAA,CACrC2tC,KAAkB,QAAZgoC,EAACz5B,EAAOg6B,YAAI,IAAAP,OAAA,EAAXA,EAAapvE,IAAK,YAAYkqC,OAAO,SAASpwB,WACtDxf,cAAA,SACC8sC,KAAkB,QAAZioC,EAAC15B,EAAOg6B,YAAI,IAAAN,OAAA,EAAXA,EAAapvE,IAAK,YAAYiqC,OAAO,SAASpwB,gBAK1D/O,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,OAEjCa,cAAA,SACC8sC,KAAe,QAATkoC,EAACnpE,EAAK8uC,WAAG,IAAAq6B,IAAInpE,EAAKuoE,KAAKC,OAAS,EAAC,GAAAh0E,OACjCg7C,EAAOm6B,aAAaC,KAAI,KAAAp1E,OAAIg7C,EAAOq6B,SAASD,MAC/Cp6B,EAAOq6B,SAASD,QAEtBhlE,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,KAEjCa,cAAA,SACC8sC,KAAe,QAATmoC,EAACppE,EAAK8uC,WAAG,IAAAs6B,IAAIppE,EAAKuoE,KAAKC,OAAS,EAAC,GAAAh0E,OACjCg7C,EAAOm6B,aAAaG,GAAE,KAAAt1E,OAAIg7C,EAAOq6B,SAASC,IAC7Ct6B,EAAOq6B,SAASC,MAEtBllE,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,QAEjCa,cAAA,SACC8sC,KAAe,QAATooC,EAACrpE,EAAK8uC,WAAG,IAAAu6B,IAAIrpE,EAAKuoE,KAAKC,OAAS,EAAC,GAAAh0E,OACjCg7C,EAAOm6B,aAAaI,KAAI,KAAAv1E,OAAIg7C,EAAOq6B,SAASE,MAC/Cv6B,EAAOq6B,SAASE,QAEtBnlE,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,WAEjCa,cAAA,SACC8sC,KAAe,QAATqoC,EAACtpE,EAAK8uC,WAAG,IAAAw6B,IAAItpE,EAAKuoE,KAAKC,OAAS,EAAC,GAAAh0E,OACjCg7C,EAAOm6B,aAAaK,OAAM,KAAAx1E,OAAIg7C,EAAOq6B,SAASG,QACjDx6B,EAAOq6B,SAASG,UAEtBplE,eAACwjE,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,OAAIsQ,KAAO2kE,WAAYn2E,SAAA,CAAC,MAE1Da,cAAA,SACC8sC,KAAe,QAATsoC,EAACvpE,EAAK8uC,WAAG,IAAAy6B,IAAIvpE,EAAKuoE,KAAKC,OAAS,EAAC,GAAAh0E,OACjCg7C,EAAOm6B,aAAaM,IAAG,KAAAz1E,OAAIg7C,EAAOq6B,SAASI,KAC9Cz6B,EAAOq6B,SAASI,OAEtBrlE,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,OAEjCa,cAAA,SACCq7C,EAAO06B,OAAON,QAEjBhlE,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,KAEjCa,cAAA,SACCq7C,EAAO06B,OAAOJ,MAEjBllE,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,QAEjCa,cAAA,SACCq7C,EAAO06B,OAAOH,QAEjBnlE,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,WAEjCa,cAAA,SACCq7C,EAAO06B,OAAOF,UAEjBplE,eAACwjE,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,OAAIsQ,KAAO2kE,WAAYn2E,SAAA,CAAC,MAE1Da,cAAA,SACCq7C,EAAO06B,OAAOD,OAEjBrlE,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,OAEjCa,cAAA,SACCq7C,EAAO26B,UAAUP,QAEpBhlE,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,KAEjCa,cAAA,SACCq7C,EAAO26B,UAAUL,MAEpBllE,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,QAEjCa,cAAA,SACCq7C,EAAO26B,UAAUJ,QAEpBnlE,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,WAEjCa,cAAA,SACCq7C,EAAO26B,UAAUH,UAEpBplE,eAACwjE,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,OAAIsQ,KAAO2kE,WAAYn2E,SAAA,CAAC,MAE1Da,cAAA,SACCq7C,EAAO26B,UAAUF,OAEpBrlE,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,OAEjCa,cAAA,SACCq7C,EAAO46B,WAAWR,QAErBhlE,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,KAEjCa,cAAA,SACCq7C,EAAO46B,WAAWN,MAErBllE,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,QAEjCa,cAAA,SACCq7C,EAAO46B,WAAWL,QAErBnlE,eAACwjE,KAAS,CAACvjE,UAAWC,KAAOujE,KAAK/0E,SAAA,CAAC,WAEjCa,cAAA,SACCq7C,EAAO46B,WAAWJ,UAErBplE,eAACwjE,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,OAAIsQ,KAAO2kE,WAAYn2E,SAAA,CAAC,MAE1Da,cAAA,SACCq7C,EAAO46B,WAAWH,OAErB91E,cAACi0E,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,OAAIsQ,KAAO2kE,WAAYn2E,SACxDk8C,EAAO66B,aAEVl2E,cAACi0E,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,OAAIsQ,KAAO2kE,WAAYn2E,SACxDk8C,EAAO86B,aAEVn2E,cAACi0E,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,OAAIsQ,KAAO2kE,WAAYn2E,SACxDk8C,EAAO+6B,aAEVp2E,cAACi0E,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,OAAIsQ,KAAO2kE,WAAYn2E,SACxDk8C,EAAOg7B,aAEVr2E,cAACi0E,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,OAAIsQ,KAAO2kE,WAAYn2E,SACxDk8C,EAAOi7B,aAEVt2E,cAACi0E,KAAS,CAACvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,OAAIsQ,KAAO2kE,WAAYn2E,SACxDk8C,EAAOk7B,YAEV9lE,eAACwjE,KAAS,CACRvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,QACtBqzE,GAAcr4B,EAAOG,uBAClB51B,KAAW4uD,aACXh4E,GACH2C,SAAA,CACJ,OAECa,cAAA,SACCq7C,EAAOm7B,YAAYf,QAEtBhlE,eAACwjE,KAAS,CACRvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,QACtBqzE,GAAcr4B,EAAOI,qBAClB71B,KAAW4uD,aACXh4E,GACH2C,SAAA,CACJ,KAECa,cAAA,SACCq7C,EAAOm7B,YAAYb,MAEtBllE,eAACwjE,KAAS,CACRvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,QACtBqzE,GAAcr4B,EAAOK,uBAClB91B,KAAW4uD,aACXh4E,GACH2C,SAAA,CACJ,QAECa,cAAA,SACCq7C,EAAOm7B,YAAYZ,QAEtBnlE,eAACwjE,KAAS,CACRvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,QACtBqzE,GAAcr4B,EAAOM,yBAClB/1B,KAAW4uD,aACXh4E,GACH2C,SAAA,CACJ,WAECa,cAAA,SACCq7C,EAAOm7B,YAAYX,UAEtB71E,cAACi0E,KAAS,CACRvjE,UAAS,GAAArQ,OAAKsQ,KAAOujE,KAAI,KAAA7zE,QACtBqzE,GAAcr4B,EAAOO,kBAClBh2B,KAAW4uD,aACXh4E,GACH2C,SAEFk8C,EAAOo7B,kBAnPOtgE,EAsPJ,KAEjBu9D,GACA1zE,cAACg0E,KAAQ,CAAA70E,SACPa,cAACi0E,KAAS,CAACE,QAAS,GAAIzjE,UAAWC,KAAOujE,KAAK/0E,SAC5Cue,EAAM67B,aACP77B,EAAMo8B,2BACNp8B,EAAMo8B,0BAA0BiB,kBAChClvC,EAAKkvC,iBACLr9B,EAAMo8B,0BAA0BU,aAAe3uC,EAAK2uC,YACpD98B,EAAMo8B,0BAA0BtH,aAAe3mC,EAAK2mC,WAClDxyC,cAAC02E,KAAc,IAEf12E,cAAC8Y,KAAG,CACF5F,QAAQ,OACRg0B,eAAe,WACfj0B,MAAO,CAACsV,QAAS,OAAOppB,SAExBa,cAAC2lB,KAAM,CACLjV,UArbZ7E,EAAKovC,mBAAqBpvC,EAAKqvC,WAAmBvqC,KAAOgmE,gBACzDhD,IAAqBhjE,KAAOimE,mBAE5B/qE,EAAKgrE,cACHhrE,EAAKmvC,WACArqC,KAAOmmE,eACFnmE,KAAOomE,aAEnBlrE,EAAKmvC,WACArqC,KAAOmmE,oBADhB,EAgbgB7lE,QAAQ,YACRyU,QAhfGsxD,KAAO,IAADC,EAAAC,EACzBh4D,EAAS,CACPriB,KAAMq8C,GAAwBW,gCAC9B37B,QAASrS,IAEX,MAAMsrE,EAAsB,CAC1Bp8B,gBAAqC,QAAtBk8B,EAAEprE,EAAKkvC,uBAAe,IAAAk8B,IAAI,EACzC7kC,aAAcvmC,EAAKumC,aACnBoI,WAAY3uC,EAAK2uC,WACjBhI,WAAY3mC,EAAK2mC,WACjBiiC,QAAS5oE,EAAK4oE,QACdtjB,WAAYtlD,EAAKslD,WACjBxW,IAAa,QAAVu8B,EAAErrE,EAAK8uC,WAAG,IAAAu8B,IAAIrrE,EAAKuoE,IACtBp5B,YAAY,EACZG,gBAAgB,EAChBF,mBAAmB,EACnBC,YAAY,EACZE,qBAAsBvvC,EAAKuvC,qBAAqB1lC,KAAKiH,IAAC,IAAAy6D,EAAAC,EAAA,MAAM,CAC1D97B,mBAAwC,QAAtB67B,EAAEz6D,EAAE4+B,0BAAkB,IAAA67B,IAAI,EAC5Cr8B,gBAAkC,QAAnBs8B,EAAE16D,EAAEo+B,uBAAe,IAAAs8B,IAAI,EACtCh8B,OAAQ1+B,EAAE0+B,OACVi8B,gBAAiB36D,EAAE65D,YAAYf,KAC/B8B,cAAe56D,EAAE65D,YAAYb,GAC7B6B,gBAAiB76D,EAAE65D,YAAYZ,KAC/B6B,kBAAmB96D,EAAE65D,YAAYX,OACjCY,WAAY95D,EAAE85D,WACdj7B,wBAAwB,EACxBC,sBAAsB,EACtBC,wBAAwB,EACxBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,aAAa,EACd,KAEHlD,EAAkBw+B,EAAoB,EA+ctBlvD,SACwC,KAAb,QAAzBwrD,EAAA5nE,EAAKuvC,4BAAoB,IAAAq4B,OAAA,EAAzBA,EAA2B91E,UAAiBkO,EAAKgrE,eAAkBhrE,EAAKmvC,YAAcnvC,EAAKgrE,gBAAkBlD,IAC9Gx0E,SA9ab0M,EAAKovC,mBAAqBpvC,EAAKqvC,YAC/By4B,KAEA9nE,EAAKgrE,gBAAkBhrE,EAAKmvC,WAHsB,SAIjDnvC,EAAKgrE,eAAkBhrE,EAAKmvC,WAE1B,WAF6C,sBAob5C,E,uICnaG08B,IC7HX,GAAO,GAAQ,GAAQ,GAAQ,GD6HpBA,GAvGkDA,KAC/D,MAAM,MAAEh6D,EAAK,SAAEwB,EAAQ,oBAAE25B,EAAmB,mBAAEsB,GAC5C4B,KAuBI47B,EAAeA,CAAC77B,EAAYh4B,KAChC,MAAM3X,EAAMyrE,IAAIC,gBAAgB/7B,GAE1Bg8B,EAAer3D,SAASC,cAAc,KAC5Co3D,EAAa/0D,KAAO5W,EACpB2rE,EAAah1D,SAAWgB,GAAY,WAEpC,MAAMi0D,EAAeA,KACnBv+D,YAAW,KACTo+D,IAAII,gBAAgB7rE,GACpB2rE,EAAav6D,oBAAoB,QAASw6D,EAAa,GACtD,IAAI,EAGTD,EAAax6D,iBAAiB,QAASy6D,GAAc,GAErDD,EAAa70D,OAAO,EAEtB,OACEjjB,cAAAyV,WAAA,CAAAtW,SACEsR,eAACqI,KAAG,CACF5F,QAAQ,OACRC,WAAW,SACX+zB,eAAe,gBACfxb,GAAI,EAAEvsB,SAAA,CAENa,cAAC4rB,KAAI,CAAChb,WAAS,EAACs2B,eAAe,aAAa/zB,WAAW,SAAQhU,SAC7Da,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRsR,eAAC8V,KAAW,CAAC7V,UAAWC,KAAOy3B,YAAah0B,MAAM,UAASjV,SAAA,CACzDa,cAACi4E,KAAU,CAACC,QAAQ,aAAY/4E,SAAC,yBACjCa,cAACm4E,KAAK,CACJlhE,GAAG,aACH0Q,aAAa,MACbprB,MAAOmhB,EAAMyjB,QAAU,GACvBlX,SAAWnf,IACToU,EAAS,CACPriB,KAAMq8C,GAAwBM,WAC9Bt7B,QAASpT,EAAEoL,OAAO3Z,OAAS,IAC3B,EAEJsuC,aACE7qC,cAACo4E,KAAc,CAAC7kE,SAAS,MAAKpU,SAC5Ba,cAACqmB,KAAU,CACTX,QA3DY2yD,KAC9Bn5D,EAAS,CAAEriB,KAAMq8C,GAAwBM,WAAYt7B,QAAS,IAAK,EA2DjDo6D,YAhElBj7D,IAEAA,EAAMk7D,gBAAgB,EA8DqCp5E,SAExCue,EAAMyjB,OAASnhC,cAACw4E,KAAS,IAAMx4E,cAACy4E,KAAU,iBAQzDhoE,eAACkV,KAAM,CACLD,QApEa5T,UACnB,MAAMgqC,QAAajD,IACfiD,GAAQA,EAAKl/C,KAAO,GACtB+6E,EACE77B,EAAK,kBAADz7C,OACcysC,KACfmY,GAAG,qBACHrV,OAAO,aACP6K,cAAa,SAEpB,EA2DMrmC,MAAM,YACNnB,MAAO,CAAEmjB,SAAU,QAASj3B,SAAA,CAE5Ba,cAAC04E,KAAU,CACT5hE,KAAK,YACL7D,MAAO,CAAE80B,YAAa,MAAO10B,MAAO,OAAQC,OAAQ,UACnD,IAAI,kBAGTtT,cAAC2lB,KAAM,CACLvR,MAAM,YACNnD,QAAQ,WACRy4B,UAAW1pC,cAAC24E,KAAW,IACvBjzD,QAASA,IAAMy0B,IAAqBh7C,SACrC,gBAIF,ECxHP,SAAS,KAAiS,OAApR,GAAWjB,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASwiE,GAAY15E,EAAMyX,GACzB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,8EACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,sWACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,oFACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,wYACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,ubACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiB8hE,IAClC,Q,qBCRAC,OAhB4B35E,IAGpC,IAHqC,SAC1C45E,GAAW,EAAK,KAChBrvE,EAAO,4CACRvK,EACC,OACEuR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,SAAS/zB,WAAW,SAAQhU,SAAA,CAC7Da,cAAC+4E,GAAY,CAACroE,UAAWooE,EAAWnoE,KAAOqoE,SAAW,KACtDh5E,cAAC8Y,KAAG,CAACG,GAAK6/D,EAAe,EAAJ,EAAM35E,SACzBa,cAACgR,IAAU,CAACC,QAAQ,QAAQmD,MAAM,UAASjV,SACxCsK,QAGD,E,qBCeKwvE,OA3BkC/5E,IAK1C,IAL2C,MAChDY,EAAK,OACLw7B,EAAM,SACNn8B,EAAQ,eACR+5E,GACDh6E,EACC,MAAM,YAAEW,GAAgBd,IAMxB,OAJA+T,qBAAU,KACRjT,EAAYC,EAAM,GACjB,CAACA,IAGF2Q,eAAA,OACEC,UAAS,GAAArQ,OAAKsQ,KAAOtM,QAAO,KAAAhE,OAC1Bi7B,EAAS3qB,KAAOwoE,WAAaxoE,KAAOyoE,cAAa,KAAA/4E,OAC/C64E,EAAiBvoE,KAAOuoE,eAAiB,IAAK/5E,SAAA,CAEjDm8B,GAAUt7B,cAAA,OAAK0Q,UAAWC,KAAO2qB,OAAOn8B,SAAEm8B,IAC3Ct7B,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,UAAU1D,UAAWC,KAAO7Q,MAAMX,SAC9DW,IAEFX,IACG,ECaKk6E,ICjDX,GAAO,GDiDIA,GArCqBA,KAClC,MAAM,aAAEvrD,GAAiBL,MACnB,MAAE/P,GAAUq+B,KAQlB,OANAjpC,qBAAU,KACRgb,GAAa,GACN,KACLA,GAAa,EAAM,IAEpB,IAEDrd,eAACwoE,GAAW,CAACn5E,MAAM,iBAAgBX,SAAA,CAChCue,EAAMsI,SAAWhmB,cAAC02E,KAAc,CAACtiE,MAAM,eACtCsJ,EAAMsI,SACNhmB,cAAAyV,WAAA,CAAAtW,SACGue,EAAMk8B,aACL55C,cAAAyV,WAAA,CAAAtW,SACGue,EAAMg8B,UACLjpC,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC03E,GAAmB,IACnBh6D,EAAMk7B,cAAcljC,KAAI,CAACjK,EAAG0K,IAC3BnW,cAACqzE,GAAiB,CAASxnE,KAAMJ,GAAT0K,QAI5BnW,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,YAOT,EC5ClB,SAAS,KAAiS,OAApR,GAAW36E,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASkjE,GAAUp6E,EAAMyX,GACvB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,8dACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,gnBACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBwiE,IAClC,IC9BX,GAAO,GAAQ,GD8BJ,IC7Bf,SAAS,KAAiS,OAApR,GAAWp7E,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASmjE,GAAQr6E,EAAMyX,GACrB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,2YACHI,OAAQ,UACR+kB,YAAa,IACbi9C,cAAe,QACfC,eAAgB,WACb,KAAW,GAAsB,gBAAoB,OAAQ,CAChEriE,EAAG,mCACHI,OAAQ,UACR+kB,YAAa,IACbi9C,cAAe,QACfC,eAAgB,WACb,KAAW,GAAsB,gBAAoB,OAAQ,CAChEriE,EAAG,mCACHI,OAAQ,UACR+kB,YAAa,IACbi9C,cAAe,QACfC,eAAgB,WAEpB,CACA,MAAM,GAA0B,aAAiBF,IAClC,IC1CX,GD0CW,ICzCf,SAAS,KAAiS,OAApR,GAAWr7E,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASsjE,GAAQx6E,EAAMyX,GACrB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,uXACHN,KAAM,WAEV,CACA,MAAM,GAA0B,aAAiB4iE,IAClC,ICEAC,IC3BX,GAAOC,GD2BID,GAnB8Bz6E,IAItC,IAJuC,UAC5CynB,EAAS,SACTxnB,KACG4V,GACJ7V,EACC,OACEc,cAAC2lB,KAAM,CACL1O,GAAIlC,EAAMkC,GAAKlC,EAAMkC,GAAKlC,EAAM3W,QAC5B2W,EACJX,MAAM,YACNnD,QAAQ,YACR0V,UAAWA,EACX+iB,UAAW1pC,cAAC65E,GAAQ,IAAI16E,SAEvBA,GACM,E,8FCtBb,SAAS,KAAiS,OAApR,GAAWjB,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS0jE,GAAe56E,EAAMyX,GAC5B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,uFACHN,KAAM,aACH8iE,KAAUA,GAAqB,gBAAoB,OAAQ,CAC9DG,GAAI,IACJC,GAAI,GACJC,GAAI,IACJziE,OAAQ,UACR+kB,YAAa,KAEjB,CACA,MAAM,GAA0B,aAAiBu9C,IAClC,ICjCX,GAAO,GDiCI,IChCf,SAAS,KAAiS,OAApR,GAAW57E,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS8jE,GAAch7E,EAAMyX,GAC3B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,uEACHN,KAAM,aACH,KAAU,GAAqB,gBAAoB,OAAQ,CAC9DijE,GAAI,KACJC,GAAI,EACJC,GAAI,KACJE,GAAI,GACJ3iE,OAAQ,UACR+kB,YAAa,KAEjB,CACA,MAAM,GAA0B,aAAiB29C,IAClC,IClCX,GDkCW,ICjCf,SAAS,KAAiS,OAApR,GAAWh8E,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASgkE,GAAcl7E,EAAMyX,GAC3B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,uEACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBsjE,IAClC,IC3BX,GD2BW,IC1Bf,SAAS,KAAiS,OAApR,GAAWl8E,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASikE,GAAkBn7E,EAAMyX,GAC/B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,2FACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBujE,IAClC,Q,qBCIf,SAASC,GAAYp7E,GAAoD,IAAnD,aAAEq7E,EAAY,gBAAEC,EAAe,SAAEC,GAAev7E,EAUpE,OACEc,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC4rB,KAAI,CAAChb,WAAS,EAACs2B,eAAe,aAAa/zB,WAAW,SAAQhU,SAC7Da,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRsR,eAAC8V,KAAW,CAAC7V,UAAWC,KAAOy3B,YAAah0B,MAAM,UAASjV,SAAA,CACzDa,cAACi4E,KAAU,CAACC,QAAQ,aAAY/4E,SAAC,oBACjCa,cAACm4E,KAAK,CACJlhE,GAAG,aACH0Q,aAAa,MACbprB,MAAOg+E,GAAgB,GACvBtwD,SAAWnf,IACT0vE,EAAgB1vE,EAAEoL,OAAO3Z,YAASC,GAC9Bi+E,GAAUA,EAAS,EAAE,EAE3B5vC,aACE7qC,cAACo4E,KAAc,CAAC7kE,SAAS,MAAKpU,SAC5Ba,cAACqmB,KAAU,CACTX,QArBc2yD,KAC9BmC,EAAgB,GAAG,EAqBHlC,YA1BhBj7D,IAEAA,EAAMk7D,gBAAgB,EAwBmCp5E,SAExCo7E,EAAev6E,cAACw4E,KAAS,IAAMx4E,cAACy4E,KAAU,kBAU/D,CAsBA,MAAMiC,GAAoBA,KAAA,CAAS,GAgQpB7G,OA9PsBl+D,IAiB9B,IAjB+B,QACpCglE,EAAO,KACP9uE,EAAI,OACJhI,GAAS,EAAK,KACdysE,GAAO,EAAK,OACZ7xC,GAAS,EAAK,WACdm8C,GAAa,EAAK,aAClBC,EAAe,GAAE,MACjBC,GAAQ,EAAK,cACbC,EAAa,YACbC,EAAcN,GAAiB,aAC/BO,EAAeP,GAAiB,sBAChCQ,EAAqB,eACrBC,EAAc,QACdn1D,EAAO,UACPtV,EAAS,gBACT0qE,GACDzlE,EACC,MAAO0lE,EAASC,GAAc7pE,mBAAS5F,IACjC,cACJ0vE,EAAa,kBACbC,EAAiB,aACjBC,EAAY,KACZnvD,EAAI,WACJovD,EAAU,gBACVlB,EAAe,iBACfmB,EAAgB,eAChBC,EAAc,iBACdC,EAAgB,KAChB/uB,EAAI,gBACJgvB,EAAe,YACfC,EAAW,YACXC,EAAW,UACXC,EAAS,SACTxB,EAAQ,SACRyB,EAAQ,aACRC,EAAY,YACZC,EACA1+D,OAAO,UAAE2+D,EAAS,SAAEtvB,EAAQ,aAAEwtB,IAC5B+B,oBACF,CACE3B,UACA9uE,KAAMwvE,EACNkB,mBAAmB,EACnBttC,aAAc,CAAEotC,UAAW,GAC3BG,eAAe,EACfC,uBAAuB,GAEzB54E,EAAS64E,mBAAkB,OAC3BpM,EAAOqM,aAAY,OACnB/B,EAAagC,iBAAgB,OAC7Bn+C,EAASo+C,eAAc,OACvBC,iBAGFhqE,qBAAU,KACJ8nE,GAAcC,GAChBuB,EAAYvB,EACd,GACC,CAACA,IAEJzpE,IAAM0B,WAAU,KACdqoE,GAAkBA,EAAeU,EAAiB,GACjD,CAACA,IAEJ/oE,qBAAU,KACRwoE,EAAWzvE,GACPkvE,GACFY,EAAiBZ,GAEnBK,GAAmBX,EAAS,EAAE,GAC7B,CAAC5uE,EAAMkvE,IAEV,MAAMgC,EAAaC,GAEfvsE,eAACW,IAAM2E,SAAQ,CAAA5W,SAAA,CACba,cAACg0E,KAAQ,CACPtuD,QAASA,OACThV,UAAyB,IAAdssE,EAAIC,MAActsE,KAAOusE,SAAWvsE,KAAOwsE,YAClDH,EAAIhC,YAAYA,EAAYgC,IAAK79E,SAEpC69E,EAAII,MAAM1nE,KAAI,CAACw+D,EAAWr2E,IACzBmC,cAACi0E,KAAS,IAAiBC,EAAK+G,aAAaA,EAAa/G,IAAM/0E,SAC7D+0E,EAAKv/D,OAAO,SADC9W,OAKnBm/E,EAAIK,YAAcnC,EACjBl7E,cAACg0E,KAAQ,CAAA70E,SACPa,cAACi0E,KAAS,CAACE,QAASyH,EAAej+E,OAAOwB,SACvC+7E,GAAyBA,EAAsB,CAAE8B,YAGpD,OAlBeA,EAAI/lE,IAqH7B,OACExG,eAAC+pB,KAAK,CAAC8iD,UAAW,EAAEn+E,SAAA,CACjB0E,EACC7D,cAACs6E,GAAY,CACXC,aAAcA,EACdC,gBAAiBA,EACjBC,SAAUA,IAEV,KAhFJhqE,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAAC8sE,KAAQ,CACP7sE,UAAWmiB,aACTioD,EAAQnqE,KAAOmqE,WAAQt+E,EACvBkU,QAAwBlU,MAEtB++E,IAAep8E,SAAA,CAEnBa,cAAC+zE,KAAS,CAACrjE,UAAWC,KAAO6sE,UAAUr+E,SACpCs8E,EAAa/lE,KAAI,CAAC+nE,EAAa5/E,KAAK,IAAA6/E,EAAAC,EAAA,OACnCC,wBAAC5J,KAAQ,CACPtjE,UAAWC,KAAOusE,YACdO,EAAYI,sBAChB//E,IAA2C,QAAxC4/E,EAAmC,QAAnCC,EAAEF,EAAYI,6BAAqB,IAAAF,OAAA,EAAjCA,EAAmC7/E,WAAG,IAAA4/E,IAAI7/E,GAE9C4/E,EAAY1zE,QAAQ2L,KAAKooE,IACxB,MAAMC,EAAczN,EAChBwN,EAAOE,eACLF,EAAOG,qBAAqB,CAC1Bn+E,WAAOtD,KAGXshF,EAAOE,iBAEX,OACEJ,wBAAC3J,KAAS,IACJ8J,EACJ9qE,MAAO,CACLI,MAAOyqE,EAAOzqE,MACd7C,SAAUstE,EAAOttE,SACjB8lB,SAAUwnD,EAAOxnD,UAEnB5lB,UAAWotE,EAAOI,QAAUvtE,KAAOwtE,UAAY,GAC/CrgF,IAAKigF,EAAYjgF,KAEjBkC,cAAA,QAAAb,SAAO2+E,EAAOnpE,OAAO,YACpB27D,GACCtwE,cAAA,QAAAb,SACG2+E,EAAOM,SACNN,EAAOO,aACLr+E,cAACs+E,KAAiB,CAChBrrE,MAAO,CACLmjB,SAAU,GACVtiB,YAAa,KAIjB9T,cAACu+E,KAAe,CACdtrE,MAAO,CACLmjB,SAAU,GACVtiB,YAAa,KAKnB,KAII,IAGP,MAnFZkS,EACPhmB,cAAAyV,WAAA,IAEAzV,cAACs0E,KAAS,CAAC5jE,UAAWC,KAAO6tE,aAAehD,IAAmBr8E,SAC5Dy7E,EACG9tB,EAAKp3C,KAAKsnE,IACRtB,EAAWsB,GAEJD,EAAUC,MAEnB1wD,EAAK5W,KAAKsnE,IACRtB,EAAWsB,GAEJD,EAAUC,aA2EpBh3D,GAAWhmB,cAAC02E,KAAc,CAACtiE,MAAM,iBAerCwmE,GAActuD,EAAK3uB,OAASk9E,GAC3BpqE,eAACqI,KAAG,CAAC+0B,GAAI,EAAG36B,QAAQ,OAAOg0B,eAAe,SAAS/zB,WAAW,SAAQhU,SAAA,CACpEsR,eAACqI,KAAG,CAACud,EAAG,EAAEl3B,SAAA,CACRa,cAACqmB,KAAU,CAACX,QAASA,IAAM+0D,EAAS,GAAIxyD,UAAW6zD,EAAgB38E,SACjEa,cAACy+E,GAAS,MAEZz+E,cAACqmB,KAAU,CAACX,QAASy2D,EAAcl0D,UAAW6zD,EAAgB38E,SAC5Da,cAAC0+E,GAAgB,SAGrB1+E,cAAC8Y,KAAG,CAACud,EAAG,EAAG3lB,UAAWC,KAAOguE,OAAOx/E,SACjC68E,EAAYtmE,KAAKie,GAChB0oD,IAAc1oD,EACZ3zB,cAAA,QAAAb,SAAew0B,EAAI,GAARA,GAEX3zB,cAAA,KAAW0lB,QAASA,IAAM+0D,EAAS9mD,GAAGx0B,SACnCw0B,EAAI,GADCA,OAMdljB,eAACqI,KAAG,CAACud,EAAG,EAAEl3B,SAAA,CACRa,cAACqmB,KAAU,CAACX,QAASw2D,EAAUj0D,UAAW8zD,EAAY58E,SACpDa,cAAC4+E,GAAY,MAEf5+E,cAACqmB,KAAU,CACTX,QAASA,IAAM+0D,EAASwB,EAAY,GACpCh0D,UAAW8zD,EAAY58E,SAEvBa,cAAC6+E,GAAQ,SAGb7+E,cAAC8Y,KAAG,CAACud,EAAG,EAAEl3B,SACRa,cAAC8+E,KAAM,CACLviF,MAAOwwD,EACP9iC,SAAWnf,IACTsxE,EAAY93C,OAAOx5B,EAAEoL,OAAO3Z,OAAO,EAErCmU,UAAWC,KAAOouE,KAAK5/E,SAEtB,CAAC,GAAI,GAAI,IAAIuW,KAAKq3C,GACjBt8C,eAACqqB,KAAQ,CAAgBv+B,MAAOwwD,EAAS5tD,SAAA,CAAC,QAClC4tD,IADOA,cAQnB,E,qBC9TGiyB,OAhBV9/E,IAA6D,IAA5D,SAAEC,EAAQ,QAAEumB,EAAO,YAAE4yD,EAAW,SAAErwD,KAAalT,GAAO7V,EAC1D,OACEc,cAACqmB,KAAU,CACTzpB,KAAK,QACL8T,UAAWC,KAAOsuE,IAClBv5D,QAASA,EACT4yD,YAAaA,EACbvuD,eAAa,KACThV,EACJkT,SAAUA,EAAS9oB,SAElBA,GACU,E,WCsGF+/E,OAjGwChgF,IAehD,IAfiD,KACtDd,EAAI,MACJooB,EAAK,aACLU,EAAY,MACZ9S,EAAQ,UAAS,OACjBhB,EAAS,OAAM,UACfuT,GAAY,EAAI,QAChBoB,EAAO,MACPnmB,EAAK,aACLsmB,EAAY,QACZpB,EAAO,YACPnf,EAAW,QACXsJ,EAAU,WAAU,SACpBkuE,KACGvqE,GACJ1V,EACC,OACEuR,eAAC8V,KAAW,CAACI,UAAWA,EAAW/kB,MAAOA,EAAOwR,OAAQA,EAAOjU,SAAA,CAC7D2nB,EACC9mB,cAACgqB,KAAU,CACTrV,OAAQgB,IAAA,IAAC,SAAEsU,KAAalV,GAAOY,EAAA,OAC7B3V,cAAAyV,WAAA,CAAAtW,SACEa,cAACo/E,KAAY,CACXnoE,GAAIrC,EAAKqC,GAAKrC,EAAKqC,GAAK7Y,EACxB2pB,QAASA,EACTs3D,aAAe/1D,GAAgBA,EAAO9C,MACtC84D,eAAiBh2D,GAAgBA,EAAO9C,MACxC+4D,kBAAmBA,CAACj2D,EAAa/sB,KAClB,OAAN+sB,QAAM,IAANA,OAAM,EAANA,EAAQ/sB,UAAe,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOA,OAElCijF,YAAcpwE,GACZpP,cAACmnB,KAAS,IACJ/X,EACJ6B,QAAQ,WACRtJ,YAAaA,EACb6e,MAAOA,EACP5kB,MAAOA,EACPxD,KAAI,GAAAiC,OAAKjC,EAAI,UACb6Y,GAAE,GAAA5W,OAAKjC,EAAI,UACX4tB,WAAY,IACP5c,EAAO4c,WACVrE,aAAc,SAIpBsC,SAAUA,CAACnf,EAAQe,KACjBoe,EAASpe,EAAK,KAEZ+I,KACAG,EACJoqE,WAAYA,EACZM,cAAeA,CAAC30E,EAAGe,KACjB+I,EAAK6qE,eAAiB7qE,EAAK6qE,cAAc30E,EAAGe,EAAM,SAChDszE,GAAYl1D,EAASpe,GAChBA,MAGV,EAELoe,SAAUy1D,IAAA,IAAE,CAAE7zE,GAAU6zE,EAAA,OAAK7zE,CAAI,EACjCzN,KAAMA,EACN0oB,QAASA,EACTI,aAAcA,IAGhBlnB,cAACo/E,KAAY,CACXnoE,GAAIrC,EAAKqC,GAAKrC,EAAKqC,GAAK7Y,EACxB2pB,QAASA,EACTs3D,aAAe/1D,GAAgBA,EAAO9C,MACtC84D,eAAiBh2D,GAAgBA,EAAO9C,MACxC+4D,kBAAmBA,CAACj2D,EAAa/sB,KAClB,OAAN+sB,QAAM,IAANA,OAAM,EAANA,EAAQ/sB,UAAe,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOA,OAElCijF,YAAcpwE,GACZpP,cAACmnB,KAAS,IACJ/X,EACJ6B,QAASA,EACTtJ,YAAaA,EACb6e,MAAOA,EACP5kB,MAAOA,EACPxD,KAAI,GAAAiC,OAAKjC,EAAI,UACb6Y,GAAE,GAAA5W,OAAKjC,EAAI,UACX4tB,WAAY,IACP5c,EAAO4c,WACVrE,aAAc,YAIhB/S,IAIPhT,GAAS5B,cAACkqB,KAAc,CAAA/qB,SAAE+oB,MACf,EClEHy3D,OAzCXA,KACF,MAAM,MAAEjiE,EAAK,SAAEwB,GAAa8/B,KAC5B,OACEvuC,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,cAC5Ba,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACk/E,GAAc,CACb9gF,KAAK,OACL6Y,GAAG,8BACHvG,UAAWkV,KAAWg6D,sBACtBp5D,MAAM,OACNuB,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO,UACpBmhB,EAAM6/B,MACNpc,QACE11B,IACEiS,EAAM2/B,kBACJ3nC,KAAKjK,GAAC,GAAApL,OAAQoL,EAAE4O,KAAI,KAAAha,OAAIoL,EAAEo0E,UAAS,KAAAx/E,OAAIoL,EAAEq0E,YACzC9qE,SAAS,GAAD3U,OAAIoL,EAAE4O,KAAI,KAAAha,OAAIoL,EAAEo0E,UAAS,KAAAx/E,OAAIoL,EAAEq0E,aAE7CpqE,KAAKgnC,IAAI,CACRl2B,MAAM,GAADnmB,OAAKq8C,EAAKmjC,UAAS,KAAAx/E,OAAIq8C,EAAKojC,UACjCvjF,MAAOmgD,EAAKriC,UAGlB4P,SAAUA,CAAC5M,EAAO9gB,KAChB2iB,EAAS,CACPriB,KAAMmgD,GAA2BY,sBACjC1/B,QAAS3hB,GACT,EAEJoqB,WAAS,EACTpqB,MAAOmhB,EAAMmgC,yBAIlB,ECvBQkiC,OAjBgD7gF,IAIxD,IAJyD,QAC9DwmB,EAAO,KACPjc,KACGsL,GACJ7V,EACC,OACEc,cAAC2lB,KAAM,CACL1U,QAAQ,WACRP,UAAWkV,KAAWC,sBACtBH,QAASA,KACL3Q,EAAK5V,SAERsK,GAAcvG,EAAUC,QAAQE,QAC1B,ECkCE28E,OAvCX9gF,IAAiB,IAAD+gF,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAAf,OAAEC,GAAQphF,EACb,MAAM,MAAEwe,EAAK,sBAAEk/B,GAA0BoC,KASzC,OACEvuC,eAACu7B,GAAM,CAACpzB,KAAM0nE,EAAO51D,UAAWC,QAAS21D,EAAO1zC,UAAWp8B,SAAS,KAAIrR,SAAA,CACtEsR,eAAC+7B,GAAW,CAAArtC,SAAA,CACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,sDAGzBa,cAACgR,IAAU,CAACN,UAAU,WAAUvR,SAAA,GAAAkB,OACD,QADC4/E,EAC9BviE,EAAMigC,+BAAuB,IAAAsiC,GAAM,QAANC,EAA7BD,EAA+BvjC,YAAI,IAAAwjC,OAAN,EAA7BA,EAAqCL,UAAS,KAAAx/E,OACf,QADe8/E,EAC5CziE,EAAMigC,+BAAuB,IAAAwiC,GAAM,QAANC,EAA7BD,EAA+BzjC,YAAI,IAAA0jC,OAAN,EAA7BA,EAAqCN,SAASrlC,cAAa,OAAAp6C,OAChC,QADgCggF,EAC7D3iE,EAAMigC,+BAAuB,IAAA0iC,OAAA,EAA7BA,EAA+BE,SAAS95D,kBAG5CzmB,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAAS46D,EAAO1zC,YAElB5sC,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IA7BI86D,MACiB,IAADC,EAA/B/iE,EAAMigC,yBACRf,EAAwD,QAAnC6jC,EAAC/iE,EAAMigC,wBAAwBjB,YAAI,IAAA+jC,OAAA,EAAlCA,EAAoCpmE,MAE5DimE,EAAO1zC,WAAW,EAyBG4zC,UAGZ,E,UC1Cb,MAAMngD,GAAY9W,cAAY+I,IAAY,CACxCouD,aAAc,CACZ,yEAA0E,CACxEj4D,gBAAiB6J,EAAMuS,QAAQlnB,OAAOmM,WAG1C62D,iBAAkB,CAAC,MA0GN7B,OA5FwB5/E,IAehC,IAfiC,KACtCd,EAAI,aACJ8oB,EAAY,QACZjW,EAAU,WAAU,MACpBmD,EAAQ,UAAS,OACjBhB,EAAS,OAAM,UACfuT,GAAY,EAAI,MAChB/kB,EAAK,MACL4kB,EAAK,QACLuB,EAAO,eACP64D,EAAc,aACd14D,EAAY,QACZpB,EAAO,qBACP+5D,KACG9rE,GACJ7V,EACC,MAAMipB,EAAUkY,KACVygD,EAAa1vE,IAAM8L,OAAyB,OAC3C6jE,EAAYC,GAAiB5vE,IAAMK,SAAS,GAEnDL,IAAM0B,WAAU,KACdkuE,EAAcF,EAAW3jE,QAASid,YAAY,GAC7C,IAEH,MAyBMkO,EACFtoC,cAACqoC,KAAS,CACRpxB,GAAI7Y,EACJ2iF,WAAYA,EACZE,UAAW,CACTxoE,aAAc,CACZC,SAAU,SACVC,WAAY,QAEduoE,mBAAmB,EACnBC,mBAAoB,SAElBpsE,EAAK5V,SApCR4oB,EAAQpqB,QAA6B,IAAnBoqB,EAAQpqB,OAQxBoqB,EAAQrS,KAAK4T,GAEdtpB,cAAC86B,KAAQ,CAEPv+B,MAAO+sB,EAAO/sB,MACd4rB,QAAS,CACP0B,KAAM1B,EAAQu4D,aACd52D,SAAU3B,EAAQw4D,kBAClBxhF,SAEDmqB,EAAO9C,OAPH8C,EAAO/sB,SAThByD,cAAC86B,KAAQ,CAAC7S,UAAQ,EAAA9oB,SAChBa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,4BAuCjC,OACEsR,eAAC8V,KAAW,CACVtV,QAASA,EACTmD,MAAOA,EACPuS,UAAWA,EACXvT,OAAQA,EACRxR,MAAOA,EACP8O,UAAWmwE,EAAqB1hF,SAAA,CAEhCa,cAACi4E,KAAU,CAACjhE,IAAK8pE,EAAW3hF,SAAEqnB,IAC7BM,EACC9mB,cAACgqB,KAAU,CACTo3D,GAAI94C,EACJxhB,QAASA,EACTI,aAAcA,EACd9oB,KAAMA,IAGRkqC,EAED1mC,GAAS5B,cAACkqB,KAAc,CAAA/qB,SAAE+oB,MACf,E,qBC7GlB,MA8Bam5D,GAAyD1rE,IAO/D,IAPgE,MACrE6Q,EAAK,eACL86D,EAAiB,MAAK,UACtB5wE,EAAS,QACToW,EAAO,KACP1oB,KACG2W,GACJY,EACC,OACE3V,cAACgqB,KAAU,CACT5rB,KAAMA,EACN0oB,QAASA,EACTnS,OAAS4sE,GACPvhF,cAACwhF,KAAgB,CACf16D,QACE9mB,cAACyhF,KAAW,CACVxqE,GAAIlC,EAAMkC,GAAKlC,EAAMkC,GAAK7Y,EAC1BgW,MAAM,UACN6V,SAAWnf,GAAMy2E,EAAYt3D,SAASnf,EAAEoL,OAAOwrE,SAC/CA,QAASH,EAAYhlF,SACjBwY,IAGRyR,MAAOA,EACP86D,eAAgBA,EAChB5wE,UAAWA,KAGf,EAISixE,OA9D4BziF,IAKpC,IALqC,MAC1CsnB,EAAK,eACL86D,EAAiB,MAAK,UACtB5wE,KACGqE,GACJ7V,EACC,OACEc,cAACwhF,KAAgB,CACf16D,QACE9mB,cAACyhF,KAAW,CACVxqE,GAAIlC,EAAMkC,GAAKlC,EAAMkC,GAAKlC,EAAM3W,KAChCgW,MAAM,aACFW,IAGRyR,MAAOA,EACP86D,eAAgBA,EAChB5wE,UAAWA,GACX,EC8LSkxE,OAjMkD1iF,IAS1D,IAAD2iF,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAT4D,KAChE93D,EAAI,gBACJqzB,EAAe,aACfh3B,EAAY,MACZq2B,EAAK,kBACLF,EAAiB,UACjBI,EAAS,MACTmlC,EAAK,cACLC,GACD3jF,EACC,MAWO4jF,EAAWC,GAAgBtxE,oBAAkB,GAMpD,OACEhB,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACumB,GAAW,CAACC,MAAM,cAAarnB,SAC9Ba,cAACk/E,GAAc,CACbn3D,QAASs1B,EAAkB3nC,KAAKgnC,IAAI,CAClCl2B,MAAM,GAADnmB,OAAKq8C,EAAKmjC,UAAS,KAAAx/E,OAAIq8C,EAAKojC,SAASrlC,eAC1Cl+C,MAAOmgD,EAAKriC,SAEdjc,KAAK,WACLuJ,YAAY,gBACZgf,WAAS,EACTvT,OAAO,SACP8T,aA9Ba87D,MACrB,IAAK97D,EAAa21B,SAChB,OAAO,KAET,MAAMH,EAAOa,EAAM7gC,MAAMjR,GAAMA,EAAE4O,OAAS6M,EAAa21B,WACvD,OAAIH,EACK,CAAEl2B,MAAOk2B,EAAKmjC,UAAY,IAAMnjC,EAAKojC,SAAUvjF,MAAOmgD,EAAKriC,MAE7D,IAAI,EAsBW2oE,GACdphF,QAASipB,EAAK5d,OAAO4vC,SACrB30B,aACE2C,EAAK5d,OAAO4vC,SAAgC,QAAxBglC,EAAIh3D,EAAK5d,OAAO4vC,gBAAQ,IAAAglC,OAAA,EAArBA,EAA+BriF,QAAU,GAElEsnB,QAAS+D,EAAK/D,QACd7P,GAAI,cACJgsE,eAAa,EACbh7D,UAAW26D,GAASE,QAI1B9iF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,IACdisD,GACC5iF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC2hF,GAAQ,CACP1qE,GAAG,UACHuP,MAAM,2CACN0F,SAAUrB,EAAKsB,SACf/tB,KAAI,UACJ7B,MAAOumF,EACPI,gBAAgB,EAChB9uE,MAAM,UACN6V,SAAUA,KAxClB84D,GAAcD,QACdD,GAAeC,QA4CZA,GACCryE,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,IACf32B,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,IACf32B,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,IACf32B,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAACmnB,GAAS,CACR/oB,KAAK,OACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,UACZgf,WAAS,EACT/kB,QAASs8C,KAAgC,QAAZ4jC,EAACj3D,EAAK5d,cAAM,IAAA60E,IAAXA,EAAaznE,MAC3C+R,WACiB,OAAf8xB,QAAe,IAAfA,IACY,QAAX6jC,EAAAl3D,EAAK5d,cAAM,IAAA80E,GAAXA,EAAa1nE,KAAkB,QAAd2nE,EAAGn3D,EAAK5d,cAAM,IAAA+0E,OAAA,EAAXA,EAAa3nE,KAAK7a,QAAU,SAMzDQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAACmnB,GAAS,CACR/oB,KAAK,OACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,UACZgf,WAAS,EACT/kB,QAAoB,QAAZqgF,EAACp3D,EAAK5d,cAAM,IAAAg1E,IAAXA,EAAakB,MACtB/2D,WAAuB,QAAX81D,EAAAr3D,EAAK5d,cAAM,IAAAi1E,GAAXA,EAAaiB,KAAkB,QAAdhB,EAAGt3D,EAAK5d,cAAM,IAAAk1E,OAAA,EAAXA,EAAagB,KAAK3jF,QAAU,SAKlEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,aAAYrnB,SAC7Ba,cAACmnB,GAAS,CACR/oB,KAAK,YACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,UACZgf,WAAS,EACT/kB,QAAoB,QAAZwgF,EAACv3D,EAAK5d,cAAM,IAAAm1E,IAAXA,EAAa7vE,WACtB6Z,WACa,QAAXi2D,EAAAx3D,EAAK5d,cAAM,IAAAo1E,GAAXA,EAAa9vE,UAAYsY,EAAK5d,OAAOsF,UAAU/S,QAAU,SAMjEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACmnB,GAAS,CACR/oB,KAAK,WACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,UACZgf,WAAS,EACT/kB,QAAoB,QAAZ0gF,EAACz3D,EAAK5d,cAAM,IAAAq1E,IAAXA,EAAahwE,UACtB8Z,WACa,QAAXm2D,EAAA13D,EAAK5d,cAAM,IAAAs1E,GAAXA,EAAajwE,SAAsB,QAAdkwE,EAAG33D,EAAK5d,cAAM,IAAAu1E,OAAA,EAAXA,EAAalwE,SAAS9S,QAAU,SAMhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,cAAarnB,SAC9Ba,cAACmnB,GAAS,CACR/oB,KAAK,aACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,OACZgf,WAAS,EACT/kB,QAAoB,QAAZ6gF,EAAC53D,EAAK5d,cAAM,IAAAw1E,IAAXA,EAAaW,YACtBh3D,WACa,QAAXs2D,EAAA73D,EAAK5d,cAAM,IAAAy1E,GAAXA,EAAaU,WAAwB,QAAdT,EAAG93D,EAAK5d,cAAM,IAAA01E,OAAA,EAAXA,EAAaS,WAAW5jF,QAAU,YAOxEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAAC8+E,GAAM,CACL53D,aAAcA,EAAam8D,aAC3BjlF,KAAK,eACL6Y,GAAI,iBACJtP,YAAY,aACZgf,WAAS,EACTG,QAAS+D,EAAK/D,QACdiB,QAAS01B,EAAU/nC,KAAK6qE,IAAQ,CAC9B/5D,MAAO+5D,EAAS95D,YAChBlqB,MAAOgkF,EAASlmE,SAElBzY,QAASipB,EAAK5d,OAAOo2E,aACrBn7D,aACE2C,EAAK5d,OAAOo2E,aAAex4D,EAAK5d,OAAOo2E,aAAa7jF,QAAU,SAKtEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,MACV,ECjMJ,MAAM2sD,GAA2C,CACtDzmC,SAAU,GACVwmC,aAAc,IAuKDE,OAhKsDrkF,IAE9D,IAF+D,OACpEkiC,GACDliC,EACC,MAAM,MACJwe,EAAK,sBACL6+B,EAAqB,sBACrBI,EAAqB,6BACrBF,EAA4B,sBAC5BoC,EAAqB,gBACrBX,GACEc,MACGwkC,EAAkBC,GAAuBhyE,oBAAkB,IAC3DiyE,EAAiBC,GAAsBlyE,qBAWxCmyE,EAA4BlqE,mBAAQ,KACxC,IAAI+K,EAAc,CAAC,EAuBnB,OArBEA,EADEi/D,EACO,CACPnxE,UAAW6X,OAAa5kB,SAAStC,EAAUqC,WAAWC,UACtD8M,SAAU8X,OAAa5kB,SAAStC,EAAUqC,WAAWC,UACrD6U,KAAM+P,OAAa5kB,SAAStC,EAAUqC,WAAWC,UACjD29E,KAAM/4D,OAAa5kB,SAAStC,EAAUqC,WAAWC,UACjD49E,WAAYh5D,OAAa5kB,SAAStC,EAAUqC,WAAWC,UACvD69E,aAAcj5D,OAAa5kB,SAAStC,EAAUqC,WAAWC,WAGlD,CACPq3C,SAAUzyB,OAEPC,MAAM,CACL7D,MAAO4D,OACP7tB,MAAO6tB,SAER5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,UAClC69E,aAAcj5D,OAAa5kB,SAAStC,EAAUqC,WAAWC,WAGtD4kB,OAAaC,MAAM5F,EAAO,GAChC,CAACi/D,IAEE74D,EAAOC,aAA8B,CACzCG,KAAM,WACNF,SAAUC,aAAY44D,KAGxB9wE,qBAAU,KACR,MAAMmV,IAAa4C,EAAK2B,UAAUE,SAAW7B,EAAK2B,UAAUC,SAC5Dg3D,EAAoBx7D,EAAS,GAC5B,CAAC4C,EAAK2B,UAAUE,QAAS7B,EAAK/D,UA0DjC,OACErW,eAAC4U,GAAM,CAACzM,KAAMwoB,EAAO1W,UAAWC,QAASyW,EAAOwL,UAAUztC,SAAA,CACxDa,cAACkmB,GAAW,CAAA/mB,SACTue,EAAMigC,wBACH,iCACA,kCAENltC,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAjECrf,IAGgB,IAADy0E,EAAnC,GAFA5hC,IAEInhC,EAAMigC,wBACRhB,EAAsB,CACpBE,SAA4C,QAApC4jC,EAAE/iE,EAAMigC,wBAAwBjB,YAAI,IAAA+jC,OAAA,EAAlCA,EAAoCpmE,KAC9CgpE,aAAcr3E,EAASq3E,eAEzBjiD,EAAOwL,iBAEP,GAAI82C,EAAiB,CAOnB,GANkBhmE,EAAMy/B,iBAAiBzgC,MACtCjR,IAAC,IAAAo4E,EAAAC,EAAA,OACCr4E,EAAEixC,KAAKmjC,YAAqB,OAAR7zE,QAAQ,IAARA,OAAQ,EAARA,EAAUuG,YAC7B9G,EAAEixC,KAAKojC,WAAoB,OAAR9zE,QAAQ,IAARA,OAAQ,EAARA,EAAUsG,YAAwB,QAAXuxE,EAAAp4E,EAAEixC,KAAKriC,YAAI,IAAAwpE,OAAA,EAAXA,EAAaE,kBAA0B,OAAR/3E,QAAQ,IAARA,GAAc,QAAN83E,EAAR93E,EAAUqO,YAAI,IAAAypE,OAAN,EAARA,EAAgBC,cAAa,IAI1Gl5D,EAAK1K,SAAS,OAAQ,CAAC3gB,QAAS0D,EAAUuB,SAAS7C,MAAM0D,qBACpD,CACL,MAAMo3C,EAAO,CACXA,KAAM,CACJmjC,UAAW7zE,EAASuG,UACpButE,SAAU9zE,EAASsG,SACnB+H,KAAMrO,EAASqO,KACf8oE,KAAMn3E,EAASm3E,KACfC,WAAYp3E,EAASo3E,YAEvBC,aAAcr3E,EAASq3E,cAEzB5mC,EAA6BC,GAAM/xC,MAAMq5E,IACnCA,GAAU5iD,EAAOwL,WAAW,GAEpC,CACF,KAAO,CAAC,IAADq3C,EACL1nC,EAAsB,CACpBM,SAA2B,QAAnBonC,EAAEj4E,EAAS6wC,gBAAQ,IAAAonC,OAAA,EAAjBA,EAAmB1nF,MAC7B8mF,aAAcr3E,EAASq3E,eAEzBjiD,EAAOwL,WACT,CACF,IAyBIphB,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAAC4hF,GAAmB,CAClB1jC,gBAAiBA,EACjBrzB,KAAMA,EACN3D,aA5BRg9D,KAEmB,IAADC,EAAlB,OAAID,EACK,CACLrnC,SAA2B,QAAnBsnC,EAAED,EAAaxnC,YAAI,IAAAynC,OAAA,EAAjBA,EAAmB9pE,KAC7BgpE,aAAca,EAAa3D,SAASlmE,MAGjCipE,EAAsB,EAoBPc,CAAoB1mE,EAAMigC,yBACxCJ,MAAO7/B,EAAM6/B,MACbF,kBAAmB3/B,EAAM2/B,kBACzBI,UAAW//B,EAAM+/B,UACjBmlC,OAAQllE,EAAMigC,wBACdklC,cA5HgB5yC,IACxB0zC,EAAmB1zC,EAAM,MA8HrBjwC,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CAACkB,WAAS,EAACjB,QA9HpB2+D,KACpBxlC,IACAzd,EAAOwL,WAAW,MA8HV5sC,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC+lB,GAAgB,CACfY,WAAS,EACT1P,GAAG,yBACHgR,SAAUu7D,gBAMb,ECpHEc,OAjDXplF,IAAiB,IAAhB,OAAEohF,GAAQphF,EACb,MAAM,uBAAE49C,GAA2BkC,KAC7BulC,EAAc/vE,KACbgwE,EAAWC,GAAgBhzE,mBAAS,IAE3CqB,qBAAU,KACR2xE,EAAaF,EAAY5xE,MAAM,GAC9B,IAUH,OACElC,eAACu7B,GAAM,CAACpzB,KAAM0nE,EAAO51D,UAAWC,QAAS21D,EAAO1zC,UAAWp8B,SAAS,KAAIrR,SAAA,CACtEa,cAACwsC,GAAW,CAAArtC,SACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,2BAE3Ba,cAACusC,GAAa,CAAAptC,SACZa,cAACumB,GAAW,CAACC,MAAM,6DAA4DrnB,SAC7Ea,cAACmnB,GAAS,CACR5qB,MAAOioF,EACPv6D,SAjBY5M,IACpBonE,EAAapnE,EAAMnH,OAAO3Z,MAAM,EAiBxB6B,KAAK,YACL6Y,GAAI,YACJtP,YAAY,QACZgf,WAAS,QAIflW,eAAC07B,GAAa,CAAAhtC,SAAA,CACZa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQE,OACxBqiB,QAAS46D,EAAO1zC,YAElB5sC,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQY,OACxB2hB,QA7Bag/D,KACnB5nC,EAAuB,CAAE6nC,WAAYH,EAAUxgE,MAAM,OACrDs8D,EAAO1zC,WAAW,EA4BZ3kB,UAAWu8D,SAGR,ECqFEI,OA7HoDA,KACjE,MAAM,MAAElnE,EAAK,SAAEwB,GAAa8/B,KACtB5d,EAASqL,KACTo4C,EAAep4C,KACfq4C,EAAer4C,KAEfkuC,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,YACRytD,SAAU,YACV1xE,MAAO,OAET,CACEikB,OAAQ,YACRytD,SAAU,kBAEZ,CACEztD,OAAQ,WACRytD,SAAU,iBAEZ,CACEztD,OAAQ,YACRytD,SAAU,wBAEZ,CACEztD,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBuR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAAA,CAC/Da,cAACg/E,GAAe,CAACt5D,QAASA,IAAMw/D,EAAWlI,EAAImI,UAAUhmF,SACvDa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,OAE/BtT,cAAC8Y,KAAG,CAACG,GAAI,EAAE9Z,SACTa,cAACg/E,GAAe,CAACt5D,QAASA,IAAM86D,EAAaxD,EAAImI,UAAUhmF,SACzDa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,WAG/B,EAERD,MAAO,SAGX,IAWI6xE,EAAapzE,UACjBoN,EAAS,CACPriB,KAAMmgD,GAA2BU,6BACjCx/B,QAASs+B,IAEXpb,EAAOuL,WAAW,EAGd6zC,EAAe1uE,UACnBoN,EAAS,CACPriB,KAAMmgD,GAA2BU,6BACjCx/B,QAASs+B,IAEXqoC,EAAal4C,WAAW,EAO1B,OACEl8B,eAACwoE,GAAW,CAACn5E,MAAM,qBAAoBX,SAAA,CACrCsR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,gBAAgBxb,GAAI,EAAEvsB,SAAA,CACvDa,cAAC25E,GAAS,CAAC1iE,GAAG,wBAAwByO,QA/B1B4/D,KAChBpmE,EAAS,CACPriB,KAAMmgD,GAA2BU,6BACjCx/B,QAAS,OAEXkjB,EAAOuL,WAAW,EA0B2CxtC,SAAC,kCAI1DsR,eAACkV,KAAM,CACLD,QAZag/D,KACnBI,EAAan4C,WAAW,EAYlBv4B,MAAM,YACNnB,MAAO,CAAEmjB,SAAU,QAASj3B,SAAA,CAE5Ba,cAAC04E,KAAU,CACT5hE,KAAK,YACL7D,MAAO,CAAE80B,YAAa,MAAO10B,MAAO,OAAQC,OAAQ,UACnD,IAAI,qBAIXtT,cAAC2/E,GAAyB,IACzBjiE,EAAMsI,SAAWhmB,cAAC02E,KAAc,CAACtiE,MAAM,eACtCsJ,EAAMsI,SACNhmB,cAAAyV,WAAA,CAAAtW,SACGue,EAAMk8B,aACL55C,cAAAyV,WAAA,CAAAtW,SACGue,EAAMg8B,UACL15C,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAM6R,EAAMy/B,iBACZmzB,MAAI,EACJsK,YAAU,EACVC,aAAc,KAGhB76E,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,UAQrB74E,cAACujF,GAAqB,CAACniD,OAAQA,IAC/BphC,cAACggF,GAA2B,CAACM,OAAQuE,IACrC7kF,cAACskF,GAA2B,CAAChE,OAAQwE,MACzB,E,qBCtEHS,OAnEsBA,KACnC,MAAOC,EAAUC,GAAeh0E,mBAA4B,KACtD,WAAE0H,GAAeQ,KACvB7G,qBAAU,KACR2uC,GAAcG,oBACXj3C,MAAM4gB,GAAWk6D,EAAYl6D,KAC7BzoB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,GAC7C,IAEH,MAAMm7E,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,gBACRytD,SAAU,gBAGZ,CACEztD,OAAQ,UACRytD,SAAU,UACVE,KAAM/lF,IAAmB,IAAlB,IAAE89E,GAAU99E,EACjB,OACEuR,eAACO,IAAU,CAAA7R,SAAA,IAAAkB,OACL28E,EAAImI,SAASxkF,OAAM,OACvBX,cAAA,QAAM0Q,UAAWC,KAAO+0E,eAAevmF,SACpC69E,EAAImI,SAAStyB,gBAEL,GAInB,CACEv7B,OAAQ,gBACRytD,SAAU,sBAEZ,CACEztD,OAAQ,MACRytD,SAAU,MACVE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjBqnE,EAAImI,SAAS/Q,KACbtnC,KAAOkwC,EAAImI,SAAS/Q,KAAKnvB,GAAG,qBAAqBrV,OAAO,WAAW,GAEvE,CACEtY,OAAQ,MACRytD,SAAU,MACVE,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1C,EAAImI,SAASxqC,KACb7N,KAAOkwC,EAAImI,SAASxqC,KAAKsK,GAAG,qBAAqBrV,OAAO,WAAW,EACrEv8B,MAAO,SAGX,IAGF,OACErT,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAK,oBAAAO,OAAsBysC,OAASmY,GAAG,qBAAqBrV,OAAO,cAAa,KAAIzwC,SAAA,CAC/Fa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTsR,eAACO,IAAU,CAACoD,MAAM,YAAWjV,SAAA,CAAC,gCACCa,cAAA,KAAAb,SAAG,UAAS,wBAG5CqmF,GAAYxlF,cAAC6zE,GAAK,CAAC8G,QAASA,EAAS9uE,KAAM25E,EAAUlV,MAAI,QAE3D,E,iDCjEPxjC,KAAOmY,GAAG0gC,WAAW,OAkHNC,IC5HX,GD4HWA,GAtGgC1mF,IAiBxC,IAjByC,MAC9C0C,EAAK,WACLwqB,EAAU,MACVhY,EAAK,QACL0S,EAAO,KACP1oB,EAAI,aACJ8oB,EAAY,MACZ3qB,EAAK,SACL0tB,EAAQ,UACRtD,GAAY,EAAI,QAChB1V,EAAU,SAAQ,OAClBmC,EAAS,SAAQ,aACjByyE,EAAe,WAAU,OACzBj2C,EAAS,aAAY,QACrB5pC,EAAO,sBACP8/E,GAAwB,KACrB/wE,GACJ7V,EACC,MAAO6mF,EAAeC,GAAoBv0E,mBAAwB,MAMlE,OAJAqB,qBAAU,KACRkzE,EAAsB,OAALzpF,QAAK,IAALA,IAAS,KAAK,GAC9B,CAACA,IAGFkU,eAAC8V,KAAW,CACVnS,MAAOA,EACPuS,UAAWA,EACXvT,OAAQA,EACRxR,MAAOA,GAA4B,OAAlBmkF,IAA2BA,EAAcr5D,UAAWvtB,SAAA,CAErEa,cAACimF,KAAuB,CAACC,YAAap5C,KAAQq5C,MAAOC,KAAYjnF,SAC9D2nB,EACC9mB,cAACgqB,KAAU,CACTo3D,GACEphF,cAACqmF,KAAkB,CACjBpvE,GAAIlC,EAAMkC,GAAKlC,EAAMkC,GAAK7Y,EAC1B6S,QAASA,EACT40E,aAAcA,EACdj2C,OAAQA,EACR3lB,SAAWnf,IACTk7E,EAAiBl7E,EAAE,EAErBvO,MAAOwpF,EACPnkF,MACEA,GAA4B,OAAlBmkF,IAA2BA,EAAcr5D,UAErD1mB,QACa,MAAXA,EAAkB8mC,KAAO,aAAc,cAAgB9mC,EAEzDsgF,eACER,EACEr1E,eAAA,QAAMwC,MAAO,CAAEmB,MAAO,OAAQjV,SAAA,CAAC,6BACF2tC,KAAO9mC,GAAS4pC,OAAOA,MAGpD,GAGJjoB,aAAa,SACT5S,IAGRmS,aAAcA,EACd9oB,KAAMA,EACN0oB,QAASA,IAGX9mB,cAACqmF,KAAkB,CACjBpvE,GAAIlC,EAAMkC,GAAKlC,EAAMkC,GAAK7Y,EAC1BA,KAAMA,EACN6S,QAASA,EACT40E,aAAcA,EACdj2C,OAAQA,EACR3lB,SAAWnf,IACTk7E,EAAiBl7E,GACjBmf,GAAYA,EAASnf,EAAE,EAEzBvO,MAAOwpF,EACPnkF,MAAOA,EACPoE,QACa,MAAXA,EAAkB8mC,KAAO,aAAc,cAAgB9mC,EAEzDsgF,eACER,EACEr1E,eAAA,QAAMwC,MAAO,CAAEmB,MAAO,OAAQjV,SAAA,CAAC,6BACF2tC,KAAO9mC,GAAS4pC,OAAOA,MAGpD,GAGJjoB,aAAa,SACT5S,MAITnT,GAAS5B,cAACkqB,KAAc,CAACjZ,QAAQ,SAAQ9R,SAAEitB,MAChC,ECvHlB,SAAS,KAAiS,OAApR,GAAWluB,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASmwE,GAAUrnF,EAAMyX,GACvB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTE,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EgX,KAAM,QACNI,SAAU,UACVC,SAAU,UACVC,EAAG,gqBAEP,CACA,MAAM,GAA0B,aAAiBmvE,IAClC,Q,qBCGAC,OApBoCtnF,IAI5C,IAJ6C,UAClDynB,EAAS,SACTxnB,KACG4V,GACJ7V,EACC,OACEc,cAAC2lB,KAAM,CACL1O,GAAIlC,EAAMkC,GAAKlC,EAAMkC,GAAKlC,EAAM3W,KAChCgW,MAAM,YACNnD,QAAQ,YACR0V,UAAWA,EACX+iB,UAAW1pC,cAACy4E,GAAU,OAClB1jE,EACJrE,UAAWC,KAAO61E,aAAarnF,SAE9BA,GACM,ECyHEsnF,OAjIwCA,KACrD,MAAM,MAAE/oE,EAAK,SAAEwB,EAAQ,mBAAEi7B,EAAkB,oBAAEtB,GAC3C0G,KACImnC,EAAeA,KACnBvsC,GAAoB,EAGhBwsC,EAAoB77E,IAEZ,UAAVA,EAAEhN,KACa,OAAf4f,EAAM9V,MACN8V,EAAM9V,KAAK8kB,WACXhP,EAAM9V,KAAKg/E,UACT95C,OAASsS,MAAM9L,QAAQ,OAAOC,KAAK,EAAG,QACtCzG,OAASsS,MAAMynC,MAAM,OAAOtzC,IAAI,EAAI,QACpC,KACA,OAGFmzC,GACF,EAaI/O,EAAeA,CAAC77B,EAAYh4B,KAChC,MAAM3X,EAAMyrE,IAAIC,gBAAgB/7B,GAE1Bg8B,EAAer3D,SAASC,cAAc,KAC5Co3D,EAAa/0D,KAAO5W,EACpB2rE,EAAah1D,SAAWgB,GAAY,WAEpC,MAAMi0D,EAAeA,KACnBv+D,YAAW,KACTo+D,IAAII,gBAAgB7rE,GACpB2rE,EAAav6D,oBAAoB,QAASw6D,EAAa,GACtD,IAAI,EAGTD,EAAax6D,iBAAiB,QAASy6D,GAAc,GAErDD,EAAa70D,OAAO,EAGtB,OACEjjB,cAAAyV,WAAA,CAAAtW,SACEsR,eAACqI,KAAG,CACF5F,QAAQ,OACRC,WAAW,SACX+zB,eAAe,gBACfxb,GAAI,EAAEvsB,SAAA,CAENsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAGtK,GAAI,EAAGuK,GAAI,EAAE33B,SACrCa,cAACumB,GAAW,CAACC,MAAM,OAAOsgE,UAAWH,EAAiBxnF,SACpDa,cAAC4lF,GAAU,CACTj+D,aAAa,MACbo/D,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,WACL6Y,GAAG,yBACH24B,OAAO,aACPrzC,MAAOmhB,EAAM9V,KACb5B,QAAS8mC,OAASsS,MAAM7L,KAAK,EAAG,QAAQ1D,SACxC9pC,QAAS+mC,OAASsS,MAAM7L,IAAI,EAAI,QAAQ1D,SACxC5lB,SAAWriB,GACTsX,EAAS,CAAEriB,KAAMoiD,GAAmBE,SAAUjhC,QAAStW,UAK/D5H,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8Y,KAAG,CAAC7F,MAAO,CAAEonB,UAAW,QAASl7B,SAChCa,cAACwmF,GAAY,CACXvvE,GAAG,8BACHgR,SACiB,OAAfvK,EAAM9V,OACL8V,EAAM9V,KAAK8kB,YACXhP,EAAM9V,KAAKg/E,UACV95C,OAASsS,MAAM9L,QAAQ,OAAOC,KAAK,EAAG,QACtCzG,OAASsS,MAAMynC,MAAM,OAAOtzC,IAAI,EAAI,QACpC,KACA,MAGJ7tB,QAASghE,EACTI,UAAWH,EAAiBxnF,SAC7B,0BAOPsR,eAACkV,KAAM,CACLD,QAjFa5T,UACnB,MAAMgqC,QAAajD,IACfiD,GAAQA,EAAKl/C,KAAO,GACtB+6E,EACE77B,EAAK,YAADz7C,OACQqd,EAAM9V,KAAMgoC,OAAO,YAAY6K,cAAa,SAE5D,EA2EMrmC,MAAM,YACNnB,MAAO,CAAEmjB,SAAU,QACnBnO,SACiB,OAAfvK,EAAM9V,OACL8V,EAAM9V,KAAK8kB,YACXhP,EAAM9V,KAAKg/E,UACV95C,OAASsS,MAAM9L,QAAQ,OAAOC,KAAK,EAAG,QACtCzG,OAASsS,MAAMynC,MAAM,OAAOtzC,IAAI,EAAI,QACpC,KACA,MAEHp0C,SAAA,CAEDa,cAAC04E,KAAU,CACT5hE,KAAK,YACL7D,MAAO,CAAE80B,YAAa,MAAO10B,MAAO,OAAQC,OAAQ,UACnD,IAAI,sBAIV,EC5FQ2zE,OAtCgBA,KAC7B,MAAM,aAAEn5D,GAAiBL,MACnB,MAAE/P,GAAU6hC,KASlB,OAPAzsC,qBAAU,KACRgb,GAAa,GACN,KACLA,GAAa,EAAM,IAEpB,IAGDrd,eAACwoE,GAAW,CAACn5E,MAAM,WAAUX,SAAA,CAC3Ba,cAACymF,GAAc,IACd/oE,EAAMsI,SAAWhmB,cAAC02E,KAAc,CAACtiE,MAAM,eACtCsJ,EAAMsI,SACNhmB,cAAAyV,WAAA,CAAAtW,SACGue,EAAMk8B,aACL55C,cAAAyV,WAAA,CAAAtW,SACGue,EAAMg8B,UACL15C,cAAAyV,WAAA,CAAAtW,SACGue,EAAMk7B,cAAcljC,KAAI,CAACjK,EAAG0K,IAC3BnW,cAACqzE,GAAiB,CAASxnE,KAAMJ,EAAGioE,YAAU,GAAtBv9D,OAI5BnW,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,YAOT,ECjCHqO,OAPoB,CACjCC,2BACEC,GAEA9uC,GAAsB,GAADj4C,OAPJ,4BAOwB+mF,EAAgB,CAAEv9E,QAN9CvJ,mCCuIF+mF,OApHsBA,KACnC,MAAM,WAAEluE,GAAeQ,MACjB,oBAAE+B,GAAwB2hB,KAE1BiqD,EAA2Bl9D,OAAaC,MAAM,CAClDziB,KAAMwiB,OAEH1kB,IACConC,OAASwG,QAAQ,OAAOC,KAAK,EAAG,QAAQ1D,SACxC3sC,EAAUqC,WAAWS,SAEtBL,IACCmnC,OAAS+5C,MAAM,OAAOtzC,KAAK73B,EAAqB,QAAQm0B,SACxD3sC,EAAUqC,WAAWQ,SAEzBwhF,OAAQn9D,OAEL5kB,SAAStC,EAAUqC,WAAWC,UAC9BI,QACC1C,EAAUqC,WAAWc,mBACrBnD,EAAUqC,WAAWwB,iBAIrB8jB,EAAOC,aAA6B,CACxCG,KAAM,WACNF,SAAUC,aAAYs8D,MAEjBthE,EAASwhE,GAAc/1E,oBAAS,GAwBvC,OACEzR,cAAAyV,WAAA,CAAAtW,SACEa,cAACi5E,GAAW,CAACn5E,MAAM,kBAAiBX,SAClCa,cAAA,QACE2nB,aAAa,MACbyD,SAAUP,EAAKQ,cA3BDxf,IACpB,IAAIu7E,EAAkC,CACpCx/E,KAAMklC,KAAOjhC,EAAKjE,MAAMgoC,OAAO,cAAcpwB,WAC7C+nE,OAAQ17E,EAAK07E,OAAOj6C,QAEtBk6C,GAAW,GACXC,GAAsBN,2BAA2BC,GAC9Cz8E,MAAK,KACJwO,EAAW,0BAA2BlB,GAAYE,QAAQ,IAE3DrV,OAAM,KACLqW,EAAW,sCAAuClB,GAAY3N,MAAM,IAErEuI,SAAQ,KACPgY,EAAKu6B,MAAM,CACTmiC,OAAQ,GACR3/E,KAAMklC,OAAS+C,WAEjB23C,GAAW,EAAM,GACjB,IASEh8D,YAAU,EAAArsB,SAEVsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,SAAQ1sB,SAAA,CAChCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAAC4lF,GAAU,CACT5/E,QAAS8mC,OAASwG,QAAQ,OAAOC,KAAK,EAAG,QAAQ1D,SACjD9pC,QAAS+mC,OACN+5C,MAAM,OACNtzC,KAAK73B,EAAqB,QAC1Bm0B,SACHk3C,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZuf,aAAc4lB,OAAS+C,SACvBzxC,KAAK,OACL6Y,GAAG,OACH24B,OAAO,aACP9oB,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAOrF,KACrBwkB,WAAYvB,EAAK5d,OAAOrF,KAAOijB,EAAK5d,OAAOrF,KAAKpI,QAAU,SAIhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBsR,eAAC8V,GAAW,CAACC,MAAM,SAAQrnB,SAAA,CACzBa,cAAA,OAAAb,SAAKa,cAACgR,IAAU,CAACC,QAAQ,UAAS9R,SAAC,qCACnCa,cAACmnB,GAAS,CACR/oB,KAAK,SACL6Y,GAAG,SACHoV,WAAW,EACXq7D,QAAS,EACTx7D,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAOs6E,OACrBn7D,WACEvB,EAAK5d,OAAOs6E,OAAS18D,EAAK5d,OAAOs6E,OAAO/nF,QAAU,UAK1DQ,cAAC8Y,KAAG,CAAC6uE,GAAI,EAAExoF,SACTa,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoa,GAAG,qBACHhG,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBgC,UAAW4C,EAAK2B,UAAUE,SAAW1G,EAAQ7mB,SAE5C6mB,EAAU,aAAe,kCAMnC,ECnFQ4hE,OAxC4B1oF,IAOpC,IAPqC,MAC1C+T,EAAK,KACLrL,EAAI,KACJigF,EAAI,OACJj4C,EAAM,SACNkV,EACAgjC,0BAA2BC,GAAoB,GAChD7oF,EACC,MAAM8oF,EAAcA,IAClBljC,EAAWhY,KAAOllC,GAAMq9C,GAAGH,GAAYhY,KAAOllC,GAEhD,GAAIA,GAAQgoC,EACV,OACE5vC,cAAA,QAAMiT,MAAOA,EAAM9T,UAChB4oF,GAAuBjjC,GAAgC,IAApBA,EAASnnD,OAG3CqC,cAAAyV,WAAA,CAAAtW,SAAG6oF,IAAcp4C,OAAOA,GAAQ6K,gBAFhChqC,eAAAgF,WAAA,CAAAtW,SAAA,CAAG6oF,IAAcp4C,OAAOA,GAAQ6K,cAAc,SAQtD,MAAMwtC,EAAcrgF,EAChBigF,EACEG,IAAcp4C,OAAO,mBAAmB6K,cACxCutC,IAAcp4C,OAAO,eACvB,MAEJ,OACE5vC,cAAA,QAAMiT,MAAOA,EAAM9T,UAChB4oF,GAAuBjjC,GAAgC,IAApBA,EAASnnD,OAG3CqC,cAAAyV,WAAA,CAAAtW,SAAG8oF,IAFHx3E,eAAAgF,WAAA,CAAAtW,SAAA,CAAG8oF,EAAY,QAIZ,E,qBC3CX,MAAMC,GAA2B,CAC/B,CAAE3rF,MAAO,iBAAkBiqB,MAAO,aAClC,CAAEjqB,MAAO,kBAAmBiqB,MAAO,oBACnC,CAAEjqB,MAAO,mBAAoBiqB,MAAO,qBACpC,CAAEjqB,MAAO,oBAAqBiqB,MAAO,6BAIvC,IACiB2hE,YAAuB,KACtB5rE,IAAG,IACjB2rE,GAAyBxyE,KAAK4T,GAAWA,IC0E9B8+D,OAhEkDlpF,IAG1D,IAH2D,OAChEohF,EAAM,WACN+H,GACDnpF,EACC,MAAM,oBAAEwgD,GAAwB8B,MACzBjlD,EAAO+rF,GAAYl3E,IAAMK,SAAS,IAEzCqB,qBAAU,KACRw1E,EAASD,EAAWE,kBAAkB,GACrC,CAACF,IAeJ,OACE53E,eAACu7B,GAAM,CAACpzB,KAAM0nE,EAAO51D,UAAWC,QAAS21D,EAAO1zC,UAAWp8B,SAAS,KAAIrR,SAAA,CACtEa,cAACwsC,GAAW,CAAArtC,SAAC,qBACbsR,eAAC87B,GAAa,CAAAptC,SAAA,CACZsR,eAACO,IAAU,CAAA7R,SAAA,CAAC,YAAUkpF,EAAWhnC,WACjC5wC,eAACO,IAAU,CAAA7R,SAAA,CAAC,WACDkpF,EAAWG,QACnBH,EAAWI,iBAAiB,IAC7BzoF,cAAC4nF,GAAQ,CAAChgF,KAAMygF,EAAW71C,WAAY5C,OAAO,iBAEhD5vC,cAAC8Y,KAAG,CAAC6uE,GAAI,EAAExoF,SACTa,cAAC0oF,KAAU,CACTtqF,KAAK,oBACL7B,MAAOA,EACP0tB,SA3BY5M,IACpBirE,EAAUjrE,EAAMnH,OAA4B3Z,MAAM,EA0BnB4C,SAEtBgpF,GAAwB5rE,MAAM7G,KAAK7Y,GAClCmD,cAACwhF,KAAgB,CAEfjlF,MAAOM,EAAKN,MACZuqB,QAAS9mB,cAAC2oF,KAAK,CAACv0E,MAAM,YACtBoS,MAAO3pB,EAAK2pB,OAHP3pB,EAAKN,gBASpBkU,eAAC07B,GAAa,CAAAhtC,SAAA,CACZa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQE,OACxBqiB,QAAS46D,EAAO1zC,YAElB5sC,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQM,SACxBiiB,QA5CakjE,KACnBlpC,EAAoB,CAClBtN,aAAci2C,EAAWj2C,aACzBI,WAAY61C,EAAW71C,WACvB6O,QAASgnC,EAAWhnC,QACpBknC,kBAAmBhsF,IAErB+jF,EAAO1zC,WAAW,SAwCT,E,qBClCEi8C,OAtCoD3pF,IAE5D,IAF6D,cAClEygD,GACDzgD,EACC,MAAMohF,EAAS7zC,MACR47C,EAAYS,GAAiBr3E,mBAClC,MAQF,OACEhB,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAO61E,SAAS,OAAM5pF,SAChCwgD,EAAcqB,KAAKtrC,KAAI,CAACurC,EAAK9qC,IAC5BnW,cAAA,OAEE0Q,UAAWmiB,aAAKliB,KAAOswC,IAAK,CAC1B,CAACtwC,KAAOq4E,aAAwC,mBAA1B/nC,EAAIsnC,kBAC1B,CAAC53E,KAAOs4E,yBACoB,oBAA1BhoC,EAAIsnC,kBACN,CAAC53E,KAAOu4E,kBAAmBjoC,EAAIioC,mBAEjCxjE,QAASu7B,EAAIioC,sBAAmB1sF,EAAY,IAjBjCykD,KACnB6nC,EAAc7nC,GACdq/B,EAAO3zC,WAAW,EAewCw8C,CAAYloC,GAAK9hD,SAElE8hD,EAAIC,mBATA/qC,OAaVkyE,GACCroF,cAACooF,GAAmB,CAAC9H,OAAQA,EAAQ+H,WAAYA,MAElD,ECgHQe,ICjKX,GAAO,GAAQ,GAAQ,GDiKZA,GAjJkDA,KAAO,IAADC,EACrE,MAAM,MAAE3rE,EAAK,SAAEwB,EAAQ,oBAAE2hC,EAAmB,qBAAEf,GAC5C0B,KACIklC,EAAeA,KACnB7lC,GAAqB,EA8BjB82B,EAAeA,CAAC77B,EAAYh4B,KAChC,MAAM3X,EAAMyrE,IAAIC,gBAAgB/7B,GAE1Bg8B,EAAer3D,SAASC,cAAc,KAC5Co3D,EAAa/0D,KAAO5W,EACpB2rE,EAAah1D,SAAWgB,GAAY,WAEpC,MAAMi0D,EAAeA,KACnBv+D,YAAW,KACTo+D,IAAII,gBAAgB7rE,GACpB2rE,EAAav6D,oBAAoB,QAASw6D,EAAa,GACtD,IAAI,EAGTD,EAAax6D,iBAAiB,QAASy6D,GAAc,GAErDD,EAAa70D,OAAO,EAGtB,OACEjjB,cAAAyV,WAAA,CAAAtW,SACEsR,eAACqI,KAAG,CACF5F,QAAQ,OACRC,WAAW,SACX+zB,eAAe,gBACfxb,GAAI,EACJo7D,UArDoBh8E,IAEZ,UAAVA,EAAEhN,KACiB,OAAnB4f,EAAMiyB,UACNjyB,EAAMiyB,SAASjjB,WACE,OAAjBhP,EAAMmyB,QACNnyB,EAAMmyB,OAAOnjB,WAEbg6D,GACF,EA4CgCvnF,SAAA,CAE5BsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAGtK,GAAI,EAAGuK,GAAI,EAAE33B,SACrCa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAAC4lF,GAAU,CACTj+D,aAAa,MACbo/D,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,WACL6Y,GAAG,yBACH24B,OAAO,aACPrzC,MAAOmhB,EAAMiyB,SACb1lB,SAAWriB,GACTA,GACAsX,EAAS,CACPriB,KAAMkjD,GAAyBU,aAC/BviC,QAAStW,UAMnB5H,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAGtK,GAAI,EAAGuK,GAAI,EAAE33B,SACrCa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAAC4lF,GAAU,CACTj+D,aAAa,MACb3hB,QAAuB,QAAhBqjF,EAAE3rE,EAAMiyB,gBAAQ,IAAA05C,OAAA,EAAdA,EAAgBx5C,SACzBk3C,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,SACL6Y,GAAG,uBACH24B,OAAO,aACPrzC,MAAOmhB,EAAMmyB,OACb5lB,SAAWriB,GACTsX,EAAS,CACPriB,KAAMkjD,GAAyBW,WAC/BxiC,QAAStW,UAMnB5H,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8Y,KAAG,CAAC7F,MAAO,CAAEonB,UAAW,QAASl7B,SAChCa,cAACwmF,GAAY,CACXvvE,GAAG,8BACHgR,SACqB,OAAnBvK,EAAMiyB,UACW,OAAjBjyB,EAAMmyB,SACLnyB,EAAMiyB,SAASjjB,YACfhP,EAAMmyB,OAAOnjB,UAEhBhH,QAASghE,EAAavnF,SACvB,0BAOPsR,eAACkV,KAAM,CACLD,QAzGa5T,UACnB,MAAMgqC,QAAagE,IAEfhE,GAAQA,EAAKl/C,KAAO,GACtB+6E,EACE77B,EAAK,uBAADz7C,OACmBqd,EACpBiyB,SAAUC,OAAO,YACjB6K,cAAa,KAAAp6C,OAAIqd,EACjBmyB,OAAQD,OAAO,YACf6K,cAAa,SAEpB,EA8FMrmC,MAAM,YACNnB,MAAO,CAAEmjB,SAAU,QACnBnO,SACqB,OAAnBvK,EAAMiyB,UACW,OAAjBjyB,EAAMmyB,SACLnyB,EAAMiyB,SAASjjB,YACfhP,EAAMmyB,OAAOnjB,UACfvtB,SAAA,CAEDa,cAAC04E,KAAU,CACT5hE,KAAK,YACL7D,MAAO,CAAE80B,YAAa,MAAO10B,MAAO,OAAQC,OAAQ,UACnD,IAAI,sBAIV,EC5JP,SAAS,KAAiS,OAApR,GAAWpV,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASkzE,GAAWpqF,EAAMyX,GACxB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,iVACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,kOACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,kOACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,obACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBwyE,IAClC,IC0DAC,OAtEsCrqF,IAO9C,IAP+C,aACpDsqF,EAAY,MACZ1pF,EAAK,MACLvD,EAAK,OACLktF,EAAM,MACNjjE,EAAQ,UAAS,SACjBY,GAAW,GACZloB,EACC,MAAMy4B,EAAajB,MACZmpB,EAAS6pC,GAAcj4E,mBAAc,OAALlV,QAAK,IAALA,IAAS,IAQhD,OACEyD,cAAAyV,WAAA,CAAAtW,SACEsR,eAACu7B,GAAM,CACLpzB,KAAM4wE,EAAa9+D,UACnBC,QAAS6+D,EAAa58C,UACtBp8B,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAEW,IACdE,cAACusC,GAAa,CAAAptC,SACZa,cAACumB,GAAW,CAACC,MAAOA,EAAMrnB,SACxBa,cAACmnB,KAAS,CACRK,WAAY,CAAEE,SAAUN,GACxB7qB,MAAOsjD,EACP51B,SAnBUnf,IACpB4+E,EAAW5+E,EAAEoL,OAAO3Z,MAAM,EAmBhB6B,KAAK,UACLiuB,WAAW,EACXC,KAAM,EACNrb,QAAQ,WACR0V,WAAS,QAIf3mB,cAACmsC,GAAa,CAAAhtC,SACZsR,eAACqI,KAAG,CACF5F,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACf7zB,MAAM,OAAMlU,SAAA,CAEZa,cAAC+/E,GAAkB,CACjB9oE,GAAG,uBACHyO,QAAS8jE,EAAa58C,aAEtBxlB,GACApnB,cAAC8Y,KAAG,CACFG,GAAK0e,EAAWX,OAAa,EAAJ,EACzB6W,GAAIlW,EAAWX,OAAS,EAAI,EAAE73B,SAE9Ba,cAACssC,GAAY,CACXzvC,KAAK,SACLoa,GAAG,yBACHgR,UAAgB,OAAL1rB,QAAK,IAALA,IAAS,MAAQsjD,EAC5Bp2C,KAAMvG,EAAUC,QAAQM,SACxBiiB,QA7CIyjE,KAClBM,EAAO5pC,EAAS,eAmDb,ECtEQ,SAAS8pC,GAAUzqF,GASvB,IATwB,MACjCY,EAAK,MACLvD,EAAK,OACLktF,EAAM,MACNjjE,EAAQ,UAAS,eACjBojE,EAAc,KACdhtF,EAAO,GAAE,eACTitF,GAAiB,EAAK,SACtBziE,GAAW,GACLloB,EACN,MAAM,UAAEytC,EAAS,UAAEC,EAAS,UAAEliB,GAAc+hB,KACtCq9C,EAAkBjqC,IACtB4pC,EAAO5pC,GACPjT,GAAW,EAqCb,MAAO,CAAEm9C,sBAlCqBA,IAE1Bt5E,eAAAgF,WAAA,CAAAtW,SAAA,GACKioB,GAAY7qB,IACbyD,cAACqmB,KAAU,CACTX,QAASinB,EACT15B,MAAO,CAAEsV,QAAS,OAClB7X,UAAWmiB,aAAKjN,KAAWiQ,MAAO+zD,GAAgBzqF,SAElDa,cAAC21B,KAAK,CACJvhB,MAAM,YACN1D,UAAWk5E,EACX34E,QAAS44E,EAAiB,WAAa,MACvCG,QAAQ,WACRC,WAAY1tF,EACZq5B,aAAcr5B,EAAQ,OAAIC,EAAU2C,SAEpCa,cAACkqF,GAAW,CAAC72E,MAAOzW,EAAM0W,OAAQ1W,QAIxCoD,cAACupF,GAAa,CACZC,aAAc,CAAE78C,YAAWC,YAAWliB,aACtCnuB,MAAOA,EACPktF,OAAQK,EACRhqF,MAAOA,EACP0mB,MAAOA,EACP5pB,KAAMA,EACNwqB,SAAUA,OAOpB,CCgDe+iE,OAzGsBA,KACnC,MAAM,MAACzsE,EAAK,2BAAEkiC,GAA8B4B,MACtC,aAAC1zB,GAAgBL,KAEvB3a,qBAAU,KACRgb,GAAa,GACN,KACLA,GAAa,EAAM,IAEpB,IAEH,MAAM6sD,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,cACRytD,SAAU,aACVE,KAAM/lF,IAAA,IAAC,IAAC89E,GAAS99E,EAAA,OACfc,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAAS5jC,mBAAoB3R,OAAO,aAAa,EAEvEv8B,MAAO,MAET,CACEikB,OAAQ,MACRytD,SAAU,MACV1xE,MAAO,MAET,CACEikB,OAAQ,YACRytD,SAAU,4BACV1xE,MAAO,MAET,CACEikB,OAAQ,UACRytD,SAAU,WAEZ,CACEztD,OAAQ,QACRytD,SAAU,OACVE,KAAMtvE,IAAA,IAAC,IAACqnE,GAASrnE,EAAA,OACf3V,cAAC6oF,GAAoB,CAAClpC,cAAeq9B,EAAImI,UAAW,EAEtDiF,cAAc,GAEhB,CACE9yD,OAAQ,eACRytD,SAAU,eACVqF,cAAc,GAEhB,CACE9yD,OAAQ,WACRytD,SAAU,UACV1xE,MAAO,KACP4xE,KAAMvF,IAAiB,IAAhB,IAAC1C,GAAS0C,EACf,MAAM,sBAACqK,GAAyBJ,GAAW,CACzC7pF,MAAO,yBACPvD,MAAOygF,EAAImI,SAAStlC,QACpBgqC,gBAAgB,EAChBjtF,KAAM,GACN6sF,OAAS5pC,IACPD,EAA2B,CACzBxN,aAAc4qC,EAAImI,SAAS7jC,qBAC3B9O,WAAYwqC,EAAImI,SAAS5jC,mBACzB1B,QAASA,GACT,IAGN,OAAO7/C,cAAC+pF,EAAqB,GAAE,EAEjCK,cAAc,KAGlB,CAAC1sE,IAGH,OACEjN,eAACwoE,GAAW,CAACn5E,MAAM,kBAAiBX,SAAA,CAClCa,cAACopF,GAAmB,IACpBppF,cAAC6zE,GAAK,CACJ7tD,QAAStI,EAAMsI,QACftV,UAAWkV,KAAWykE,aACtB1P,QAASA,EACT9uE,KAAM6R,EAAMwiC,eACZowB,MAAI,EACJzsE,QAAM,EAEN+2E,YAAU,EACVC,aAAc,GACdE,cAAe,CAAC,UAAW,gBAC3BC,YAAcgC,GACRA,EAAI/lE,GAAK,IAAM,EACV,CACLvG,UAAU,GAADrQ,OAAKulB,KAAW0kE,gBAGpB,CACL55E,UAAU,GAADrQ,OAAKulB,KAAW2kE,6BAMrB,E,UCzCHC,OAzD4DtrF,IAMpE,IANqE,SAC1E6vC,EAAQ,SACR07C,EAAQ,OACRC,EAAM,SACNC,EAAQ,SACR1gE,EAAQ,SAAE2gE,GACX1rF,EACC,MAAO2rF,EAAeC,GAAoBr5E,mBAASg5E,IAC5CM,EAAYC,GAAiBv5E,oBAAS,GAkBvCw5E,EAAgB/tE,iBAAyB,MAW/C,OATApK,qBAAU,KAIU,IAADo4E,GAHbH,GAAcN,IAAaI,GAC7B5gE,EAAS4gE,EAAeH,EAAQC,EAAU57C,GAEvCg8C,KACkB,QAArBG,EAAAD,EAAc9tE,eAAO,IAAA+tE,GAArBA,EAAuB5iD,SACzB,GACC,CAACyiD,IAGF/qF,cAACi0E,KAAS,CAAA90E,SACRa,cAACmnB,GAAS,CACR+E,SAAU++D,EACV1uF,MAAOsuF,EACPzjE,SAAU2jE,GAAcH,EACxBO,QAASA,KACPH,GAAc,EAAM,EAEtBI,OAAQA,KACNJ,GAAc,EAAK,EAErBnuF,KAAK,SACLwuF,WAAavgF,GAxCEA,KAEnB,MAAMwgF,EAAWxgF,EAAEygF,MAAQzgF,EAAEygF,MAAQzgF,EAAE0gF,QAlBV,IAmBzBF,GACFN,GAAc,GAhBK,MAmBnBM,GApBmB,KAqBnBA,GAtBiB,KAuBjBA,GAxBgB,KAyBhBA,GAEAxgF,EAAEytE,gBACJ,EA2BuBkT,CAAY3gF,GAC/Bmf,SAAWnf,GAAMggF,EAAiBY,SAAS5gF,EAAEoL,OAAO3Z,WACpD,GAAA8D,OAdesqF,EAAQ,KAAAtqF,OAAIqqF,GAenB,E,qBCsPDiB,OApRwBA,KACrC,MAAO3yC,EAAgB4yC,GAAqBn6E,mBAAkC,KACvEo6E,EAAYC,GAAiBr6E,oBAAkB,IAChD,WAAC0H,GAAcQ,KAEfoyE,EAAsBj6E,UAC1Bg6E,GAAc,GACdrzC,GAAqBK,oBAClBnuC,MAAMqhF,IACLJ,EAAkBI,EAAW,IAE9BlpF,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,IACxBqT,SAAQ,KACXi5E,GAAc,EAAM,GACpB,EAmBEG,EACJC,IAEA,MAAMnrD,EAAkC,GAYxC,OAXAmrD,EAA2BtuF,SAASkN,IAClC,MAAMqhF,EAASrhF,EAAEwK,MAAMI,KAAKqW,IACnB,CACL0+D,SAAU1+D,EAAK0+D,SACf2B,eAAgBrgE,EAAKqgE,eACrBC,mBAAoBvhF,EAAEikC,aAG1BhO,EAAIthC,QAAQ0sF,EAAO,IAGdprD,CAAG,EAGNgY,EAAqBjnC,UAEzBg6E,GAAc,GACdrzC,GAAqBM,mBApCrBC,KAEA,MAAMszC,EAAmB,GAUzB,OARAtzC,EAAetjC,KAAK62E,IAClB,MAAMC,EAA0C,CAC9C7B,SAAU4B,EAAaE,aAAapyE,KACpC/E,MAAO22E,EAASM,EAAaL,6BAE/BI,EAAiB7sF,KAAK+sF,EAAe,IAGhCF,CAAgB,EAyBrBI,CAAsB1zC,IAErBruC,MAAK,KACJwO,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7D4zE,GAAqB,IAEtBjpF,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,IACxBqT,SAAQ,KACXi5E,GAAc,EAAM,GACpB,GAGG/hF,EAAS4iF,GAAcl7E,mBAAmB,KAC1Cm7E,EAAYC,GAAiBp7E,mBAAmB,KAChD6a,EAAMwgE,GAAWr7E,mBAAqB,IAE7CqB,qBAAU,KACRi5E,GAAqB,GACpB,IAEHj5E,qBAAU,KACR,IAAIi6E,EAAY/zC,EAAetjC,KAC5B62E,GAAiBA,EAAaE,aAAapyE,OAE9CsyE,EAAWI,GACXF,EACE7zC,EAAetjC,KACZ62E,GACCA,EAAaE,aAAajmE,SAIhC,IAAIwmE,EAAqB,GACzBh0C,EAAep7C,SAASy3E,IACtBA,EAAK6W,2BAA2BtuF,SAASqvF,IACvCA,EAAe33E,MAAM1X,SAASsvF,IAC5B,IAAIC,EAAgBH,EAAOtwE,MACxB0wE,GAAYA,EAAQC,cAAgBJ,EAAel+C,WAEtD,GAAIo+C,EAAe,CACjB,IAAIG,EAAYH,EAAcnB,WAAWtvE,MACtC6wE,GAAgBA,EAAY7C,QAAUwC,EAAmBnhE,KAAK9U,KAE7Dq2E,EACFA,EAAUtB,WAAa,IAClBsB,EAAUtB,WACb,CACErB,SAAUuC,EAAmBM,iBAC7B/C,SAAUyC,EAAmBzC,WAIjC0C,EAAcnB,WAAa,IACtBmB,EAAcnB,WACjB,CACEj9C,SAAUk+C,EAAel+C,SACzB27C,OAAQwC,EAAmBnhE,KAAK9U,GAChC7Y,KAAM8uF,EAAmBnhE,KAAK3tB,KAC9B4tF,WAAY,CACV,CACErB,SAAUuC,EAAmBM,iBAC7B/C,SAAUyC,EAAmBzC,YAMzC,KAAO,CACL,IAAIuB,EAA6B,CAC/B,CACEj9C,SAAUk+C,EAAel+C,SACzB27C,OAAQwC,EAAmBnhE,KAAK9U,GAChC7Y,KAAM8uF,EAAmBnhE,KAAK3tB,KAC9B4tF,WAAY,CACV,CACErB,SAAUuC,EAAmBM,iBAC7B/C,SAAUyC,EAAmBzC,aAKrCuC,EAAOvtF,KAAK,CACVguF,WAAYP,EAAmBd,eAC/BiB,aAAcJ,EAAel+C,SAC7Bi9C,WAAYA,EACZ0B,QAAST,EAAe33E,MAAM3X,OAAS,GAE3C,IACA,GACF,IAEJmvF,EAAQE,EAAO,GACd,CAACh0C,IAGJ,MAAM/uB,EAAWA,CAACwgE,EAAkBC,EAAgBC,EAAkB57C,KACpE,MAAM4+C,EAAW56E,IAAE8nC,UAAU7B,GAIvBjtB,EAH8B4hE,EACjCn7B,SAAQ1nD,GAAKA,EAAEohF,6BACf/qD,QAAOysD,GAAOA,EAAI7+C,WAAaA,IACOyjB,SAAQ1nD,GAAKA,EAAEwK,QACrDoH,MAAKvG,GAAKA,EAAEi2E,iBAAmB1B,GAAUv0E,EAAEq3E,mBAAqB7C,IAE/D5+D,IACFA,EAAK0+D,SAAWA,GAGlBmB,EAAkB+B,EAAS,EAG7B,OACE3tF,cAAAyV,WAAA,CAAAtW,SACG65C,GAAkBA,EAAer7C,OAAS,GACzC8S,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACqI,KAAG,CAAC4S,GAAI,EAAGxY,QAAQ,OAAOg0B,eAAe,SAAQ/nC,SAAA,CAChDa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRmD,MAAM,UACNsR,QAASA,KACPqmE,GAAqB,EACrB5sF,SAED+D,EAAUC,QAAQE,SAErBrD,cAAC8Y,KAAG,CAACG,GAAI,EAAE9Z,SACTsR,eAACkV,KAAM,CACL1U,QAAQ,YACRmD,MAAM,UACNsR,QAASA,KACPqzB,GAAoB,EACpB55C,SAAA,CAED0sF,GACC7rF,cAACmU,IAAgB,CAAClB,MAAO,CAAC80B,YAAa,OAAQnrC,KAAM,GAAIwX,MAAM,YAChElR,EAAUC,QAAQK,oBAIzBxD,cAAC6tF,KAAc,CAAA1uF,SACbsR,eAACojE,KAAK,CAACj3E,KAAK,QAAOuC,SAAA,CACjBsR,eAACsjE,KAAS,CAAA50E,SAAA,CACRsR,eAACujE,KAAQ,CAACtjE,UAAWC,KAAO2qB,OAAOn8B,SAAA,CACjCa,cAACi0E,KAAS,CACRE,QAAS,EACTuZ,QAAS,EACTh9E,UAAWC,KAAO2qB,SAEnBvxB,EAAQ2L,KAAK4lB,GACZt7B,cAACi0E,KAAS,CAERhhE,MAAO,CAACqjB,SAAU,OAClB5lB,UAAWC,KAAO2qB,OAAOn8B,SAAA,QAAAkB,OAEhBi7B,IAJJA,QAQXt7B,cAACg0E,KAAQ,CAACtjE,UAAWC,KAAO2qB,OAAOn8B,SAChCytF,EAAWl3E,KAAK4lB,GACft7B,cAACi0E,KAAS,CAAcvjE,UAAWC,KAAO2qB,OAAOn8B,SAC9Cm8B,GADaA,UAMtBt7B,cAACs0E,KAAS,CAAAn1E,SACPmtB,EAAK5W,KAAKsnE,GAEPvsE,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACg0E,KAAQ,CAAA70E,SACPsR,eAACwjE,KAAS,CAERyZ,QAAS1Q,EAAI0Q,QACbh9E,UAAWC,KAAOo+B,SAAS5vC,SAAA,CAC5B,MACK69E,EAAIqQ,eAJHrQ,EAAIyQ,aAKC,GAAAptF,OAPI28E,EAAIyQ,WAAU,SAU/BzQ,EAAIgP,WAAWt2E,KAAKqW,GAEjB/rB,cAAAyV,WAAA,CAAAtW,SACEsR,eAACujE,KAAQ,CAAA70E,SAAA,CAGPa,cAACi0E,KAAS,CAAA90E,SAGP4sB,EAAK3tB,MAAI,GAAAiC,OAFF28E,EAAIyQ,WAAU,KAAAptF,OAAI0rB,EAAK2+D,SAIhC3+D,EAAKigE,WAAWt2E,KAAK+0E,GAElBzqF,cAACwqF,GAAwB,CACvBI,SAAUiB,EACV98C,SAAUhjB,EAAKgjB,SACf9kB,SAAUA,EAEV0gE,SAAUF,EAASE,SACnBD,OAAQ3+D,EAAK2+D,OACbD,SAAUA,EAASA,UAAS,GAAApqF,OAHpBoqF,EAASE,SAAQ,KAAAtqF,OAAI0rB,EAAK2+D,OAAM,cAM5C,GAAArqF,OAnBM28E,EAAIyQ,WAAU,KAAAptF,OAAI0rB,EAAK2+D,OAAM,6BAgC5D,ECzSQoD,OAV4CA,IAEvD9tF,cAAAyV,WAAA,CAAAtW,SACEa,cAACi5E,GAAW,CAACn5E,MAAM,kBAAiBX,SAClCa,cAAC2rF,GAAoB,QC0HdoC,ICrIX,GDqIWA,GAvGoC7uF,IAuB5C,IAvB6C,QAClD6oB,EAAO,eACPu3D,EAAc,aACdD,EAAY,UACZ2O,EAAS,YACTxO,EAAW,KACXphF,EAAI,aACJ8oB,EAAY,SACZ+C,EAAQ,QACRhZ,EAAU,WAAU,MACpBmD,EAAQ,UAAS,OACjBhB,EAAS,SAAQ,UACjBuT,GAAY,EAAI,OAChB1Z,EAAM,WACNmf,EAAU,qBACVy0D,EAAoB,SACpB54D,GAAW,EAAK,SAChBk3D,EAAQ,SACRmJ,EAAQ,SACRn8D,EAAQ,YACRxkB,EAAW,eACXsmF,KACGl5E,GACJ7V,EACC4T,qBAAU,KAGyB,IAADo7E,EAF5B/hE,IACFA,EAAS/tB,GACL8oB,GAAgBohE,GAClBA,EAASlqF,EAA6B,QAAzB8vF,EAAEhnE,EAAa8mE,UAAU,IAAAE,IAAIhnE,GAE9C,GACC,CAACiF,IAEJ,MAAMod,EACJvpC,cAACo/E,KAAY,CACXnoE,GAAIlC,EAAMkC,GAAKlC,EAAMkC,GAAK7Y,EAC1B2pB,QAASA,EACTu3D,eAAgBA,EAChBD,aAAcA,EACdp1D,SAAUA,CAAC5M,EAAY9gB,KACrB+rF,GACEA,EACElqF,EACA7B,EAASA,EAAMyxF,GAAazxF,EAAMyxF,GAAazxF,OAASC,GAE5DytB,GACEA,EACE5M,EACA9gB,EAASA,EAAMyxF,GAAazxF,EAAMyxF,GAAazxF,OAASC,EACzD,EAEL+iF,kBAAmBA,CAACj2D,EAAa/sB,IACxB+sB,EAAO0kE,KAAezxF,EAAMyxF,IAAc1kE,IAAW/sB,EAE9D4iF,SAAUA,EACVgP,aAAa,EACbxnE,UAAWA,EACXsB,SAAUA,EACVf,aACEa,EAAQrL,MAAM0xE,GAAMA,EAAEJ,KAAe9mE,IACjCa,EAAQrL,MAAM0xE,GAAMA,EAAEJ,KAAe9mE,IAAc8mE,GACnD9mE,EAENs4D,YAAcpwE,GACLowE,EACLA,EAAYpwE,GAEZpP,cAACmnB,KAAS,IACJ/X,EACJ6B,QAAQ,WACRrP,MAAOysF,QAAQphF,GACfmf,WAAYA,EACZzkB,YAAaA,EACbsiB,SAAW5M,IACTirE,GAAYA,EAASlqF,EAAoB,OAAd6vF,QAAc,IAAdA,IAAkB5wE,EAAMnH,OAAO3Z,OAC1D0tB,GAAYA,EAAS5M,EAAqB,OAAd4wE,QAAc,IAAdA,IAAkB5wE,EAAMnH,OAAO3Z,MAAM,OAKrEwY,IAIR,OACE/U,cAAAyV,WAAA,CAAAtW,SACGgtB,EACCnsB,cAACumB,KAAW,CACVtV,QAASA,EACTmD,MAAOA,EACPuS,UAAWA,EACXvT,OAAQA,EACRxR,MAAOysF,QAAQphF,GACfyD,UAAWmwE,EAAqB1hF,SAE/BoqC,IAGHA,GAED,E,oBCjIP,SAAS,KAAiS,OAApR,GAAWrrC,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASk4E,GAAuBpvF,EAAMyX,GACpC,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,0fACHI,OAAQ,UACR+kB,YAAa,OAEjB,CACA,MAAM,GAA0B,aAAiB+xD,IAClC,ICwGAC,OAtGgDrvF,IAQxD,IARyD,aAC9DsqF,EAAY,QACZjyD,EAAO,MACPz3B,EAAK,MACLvD,EAAK,OACLktF,EAAM,MACNjjE,EAAQ,UAAS,KACjB5pB,EAAO,IACRsC,EACC,MAAMy4B,EAAajB,MACZmpB,EAAS6pC,GAAcj4E,mBAAc,OAALlV,QAAK,IAALA,IAAS,IAShD,OACEyD,cAAAyV,WAAA,CAAAtW,SACEsR,eAACu7B,GAAM,CACLpzB,KAAM4wE,EAAa9+D,UACnBC,QAAS6+D,EAAa58C,UACtBp8B,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAEW,IACd2Q,eAAC87B,GAAa,CAAAptC,SAAA,CACXo4B,GAAWA,EAAQ55B,OAAS,GAC3BqC,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAAC8Y,KAAG,CAAC7F,MAAO,CAAEu7E,UAAW,IAAKt6E,UAAW,QAAS/U,SAC/Co4B,EAAQ7hB,KAAI,CAAC+4E,EAAgB5wF,IAC5BmC,cAACw6B,KAAK,CACJ8iD,UAAW,EAAEn+E,SAGbsR,eAACqI,KAAG,CAACyP,QAAS,EAAEppB,SAAA,CACdsR,eAACO,IAAU,CAACC,QAAQ,YAAYmD,MAAM,gBAAejV,SAAA,CAAC,aACzC,IACXa,cAAC4nF,GAAQ,CACPhgF,KAAM6mF,EAAeC,UACrB9+C,OAAO,cACN,IAAI,KACJ,IACH5vC,cAAC4nF,GAAQ,CACPhgF,KAAM6mF,EAAeC,UACrB9+C,OAAO,UACN,IAAI,MACH6+C,EAAeE,aAErB3uF,cAACgR,IAAU,CAACiC,MAAO,CAAEsB,UAAW,cAAepV,SAC7Ca,cAACgR,IAAU,CAAC8E,UAAU,OAAO7E,QAAQ,YAAW9R,SAC7CsvF,EAAe5uC,gBAGhB,WAAAx/C,OArBUxC,EAAK,KAAAwC,OAAIouF,EAAeC,kBA2BlD1uF,cAACumB,GAAW,CAACC,MAAOA,EAAMrnB,SACxBa,cAACmnB,KAAS,CACR5qB,MAAOsjD,EACP51B,SApDUnf,IACpB4+E,EAAW5+E,EAAEoL,OAAO3Z,MAAM,EAoDhB6B,KAAK,UACLiuB,WAAW,EACXC,KAAM,EACNrb,QAAQ,WACR0V,WAAS,SAIf3mB,cAACmsC,GAAa,CAAAhtC,SACZsR,eAACqI,KAAG,CACF5F,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACf7zB,MAAM,OAAMlU,SAAA,CAEZa,cAAC+/E,GAAkB,CACjB9oE,GAAG,uBACHyO,QAAS8jE,EAAa58C,YAExB5sC,cAAC8Y,KAAG,CACFsiB,WAAazD,EAAWX,OAAa,EAAJ,EACjCqD,UAAW1C,EAAWX,OAAS,EAAI,EAAE73B,SAErCa,cAACssC,GAAY,CACXzvC,KAAK,SACLoa,GAAG,yBACHgR,UAAgB,OAAL1rB,QAAK,IAALA,IAAS,MAAQsjD,EAC5Bp2C,KAAMvG,EAAUC,QAAQM,SACxBiiB,QA7EMyjE,KAClBM,EAAO5pC,EAAS,eAkFb,EC1GA,IAAK+uC,GAAyB,SAAzBA,GAAyB,OAAzBA,EAAyB,oBAAzBA,EAAyB,kBAAzBA,EAAyB,0BAAzBA,EAAyB,kCAAzBA,EAAyB,oBAAzBA,EAAyB,wCAAzBA,EAAyB,4BAAzBA,CAAyB,MA+CtB,SAASC,GACtBC,EACAC,EACAzlB,EACA3oE,GAEA,MAAM,SAAEue,GAAaO,KACf8X,EAAUC,eACV,WAAEre,GAAeQ,MACjB,YAAEtI,GAAgBmD,KACjBw6E,EAASC,GAAcx9E,oBAAS,GAEvCqB,qBAAU,KAELzB,EAAY2D,SACX+Y,GAAgByB,uCAwBlBy/D,GAAW,GApBT59E,EAAY2D,SACV+Y,GAAgB2B,4CAGd/uB,IAAWiuF,GAA0BM,mBACvCrnC,GAAcC,QAAQgnC,EAAShiB,kBAAkBniE,MAAMiS,IACrD,IAAIuyE,EAASvyE,EAAE82B,WAAao7C,EAAShiB,iBACrCmiB,EAAWE,EAAO,IAGpBF,EACE3lB,EAAetkD,WACZ2O,GAAMA,EAAE+f,WAAao7C,EAAShiB,oBAC5B,GAITmiB,GAAW,EAIf,GACC,CAAC59E,IAEJ,MAAM+9E,EACc,eAAlBN,EAASjyF,KAAwB,cAAgBiyF,EAASjyF,KACtDwyF,EAAcN,EAAQ,iBAAA1uF,OACPyuF,EAAS76C,cAAa,WAAA5zC,OACrC+uF,EAAc,GAAA/uF,OACP+uF,EAAc,YAAA/uF,OAAWM,GAAM,UAAAN,OACxBM,IAAQ,iBAAAN,OAEPyuF,EAAS76C,cAAa,WAAA5zC,OAAU+uF,EAAc,KAAA/uF,OAAIyuF,EAAS5rB,UAAS,YAAA7iE,OAAWM,GAiBpG,MAAO,CAAEssC,SAfQn7B,UACf,IACE,MAAM04C,QAAuB3C,GAAciB,0BACzCgmC,EAAShiB,kBAEX5tD,EAAS,CACPriB,KAAM2gB,GAAuBQ,iBAC7BE,QAAShU,KAAK8H,UAAU,IAAKw4C,MAE/BjzB,EAAQ93B,KAAK4vF,EACf,CAAE,MAAOztF,GACPuX,EAAW,mCACb,GAGiB61E,UACrB,C,yBCzHO,MAAMM,GAAiBllE,OAAaC,MAAM,CAC/CklE,eAAgBnlE,OAAWolE,WAC3BC,gBAAiBrlE,OAAWolE,WAC5BE,wBAAyBtlE,OAAWolE,WACpCG,oBAAqBvlE,OAAWolE,WAChCI,mBAAoBxlE,OAAWolE,WAC/BK,eAAgBzlE,OAAWolE,aCWdM,IChCX,GAAO,GAAQ,GDgCJA,GAnBwC5wF,IAKhD,IALiD,QACtDwmB,EAAO,KACPjc,EAAO,KAAI,QACXuc,KACGjR,GACJ7V,EACC,OACEuR,eAACkV,KAAM,CACLD,QAASA,EACTzU,QAAQ,YACRP,UAAWkV,KAAWK,0BAClBlR,EAAK5V,SAAA,GAEN6mB,GAAWhmB,cAACmU,IAAgB,CAACvX,KAAM,MACpCopB,GAAO,GAAA3lB,OAAOoJ,KACT,EC3Bb,SAAS,KAAiS,OAApR,GAAWvL,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS25E,GAAa7wF,EAAMyX,GAC1B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,ivBACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,oOACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,oOACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBi5E,IAClC,ICjCX,GDiCW,IChCf,SAAS,KAAiS,OAApR,GAAW7xF,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS45E,GAAgB9wF,EAAMyX,GAC7B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,0fACHI,OAAQ,UACR+kB,YAAa,OAEjB,CACA,MAAM,GAA0B,aAAiByzD,IAClC,Q,qBCCAC,OAzBSA,KACpB,SAAStY,EAAa77B,EAAYh4B,GAC9B,MAAMlB,EAAOnC,SAASC,cAAc,KAC9BvU,EAAM1L,OAAOm3E,KAAOn3E,OAAOyvF,UAEjCttE,EAAKG,KAAO5W,EAAI0rE,gBAAgB/7B,GAChCl5B,EAAKE,SAAWgB,GAAY,WAE5BrD,SAAS/T,KAAKjP,OAAOmlB,GACrBA,EAAKK,QACLL,EAAKutE,SAEL32E,YAAW,IAAMrN,EAAI6rE,gBAAgBp1D,EAAKG,OAAO,KACrD,CAUA,MAAO,CAACqtE,qBARqBt+E,MACzBu+E,EACAvsE,KAGA6zD,QADmB9P,GAAYI,cAAcooB,GAC1BvsE,EAAS,EAGF6zD,eAAa,EC6BhC2Y,ICtDX,GDsDWA,GAtCwCpxF,IAMhD,IANiD,IACtDpB,EAAG,QACHyyF,EAAO,SACP9tE,EAAQ,gBACR+tE,EAAe,GACfv5E,GACD/X,EACC,MAAM,WAAEia,GAAeQ,MACjB,aAAEg+D,GAAiBsY,KAezB,OACEjwF,cAAA,OAAK0Q,UAAWC,KAAOC,UAAUzR,SAC/BsR,eAAC4V,KAAU,CACTpP,GAAIA,EACJra,KAAK,QACL8T,UAAWC,KAAO8/E,yBAClB/qE,QAASA,IAnBkB5T,WAC/By+E,EAAQC,GACL7lF,MAAMmxC,IACL,KAAIA,GAAQA,EAAKl/C,KAAO,GAElB,MAAM0N,MAAM,GAADjK,OAAIoiB,EAAQ,wBAD3Bk1D,EAAa77B,EAAK,GAADz7C,OAAKoiB,GAC2B,IAEpD3f,OAAOlB,IACND,QAAQiB,IAAIhB,GACZuX,EAAWjW,EAAUuB,SAAS7C,MAAMqD,aAAa,GACjD,EASeyrF,CAAyBjuE,GAAUtjB,SAAA,CAElDa,cAAC2wF,GAAgB,IACjB3wF,cAAA,OAAAb,SAAc,OAARsjB,QAAQ,IAARA,IAAY,qBARiB3kB,EAUjC,ECjDV,SAAS,KAAiS,OAApR,GAAWI,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASw6E,GAAc1xF,EAAMyX,GAC3B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,stDACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiB85E,IAClC,Q,oBCsOAC,OA/NgC3xF,IAcxC,IAdyC,KAC9CuK,EAAI,KACJrL,EAAI,SACJgpB,EAAQ,OACR0pE,EAAM,SACNC,GAAW,EACXlmE,MAAM,QAAE/D,EAAO,SAAEwhE,EAAQ,OAAEr7E,GAAQ,aACnC+jF,EAAY,aACZC,EAAY,MACZ78E,EAAQ,UAAS,MACjBxS,EAAK,WACLwqB,EAAU,gBACV8kE,GAAkB,EAAK,oBACvBC,GACDjyF,EACC,MAAM,WAAEia,GAAeQ,KACjBy3E,EAAiDD,GAAuB,CAC5E1uE,SAAU0uE,EAAoB1uE,SAC9Bpe,QAAS,KAEJgtF,EAAcC,GAAmB7/E,mBAA8B2/E,EAA8B,CAACA,GAA+B,KAC7HG,EAAUC,GAAe//E,mBAAiB,IAEjDqB,qBAAU,KACJu+E,GAGI/I,EAASlqF,EAFX8yF,EACFH,EACmBQ,EACAA,EAAS,GAE5BR,EACmBM,EACAA,EAAa,GALH,CAAEI,gBAAgB,GAOnD,GACC,CAACJ,IAGJ,MAAMK,EAAoBC,GACjB,IAAI1vF,SAAQ,SAAUmJ,EAASlJ,GACpC,MAAM0vF,EAAS,IAAIC,WACnBD,EAAOE,QAAU5vF,EACjB0vF,EAAOG,OAAS,WAAa,IAADC,EAC1B,IAAIC,EAA4B,QAAhBD,EAAGJ,EAAOrmE,cAAM,IAAAymE,OAAA,EAAbA,EAAexyE,WAClCpU,EAAQ,CAAEqX,SAAUkvE,EAAKvzF,KAAMiG,QAAqB,OAAZ4tF,QAAY,IAAZA,IAAgB,IAC1D,EACAL,EAAOM,cAAcP,EACvB,IAYIQ,EAAmBrgF,UACvB,IAEE,GADAuL,EAAM+0E,UACF/0E,EAAMnH,QAAUmH,EAAMnH,OAAOm8E,OAASh1E,EAAMnH,OAAOm8E,MAAM10F,OAAS,EAAG,CACvE,MAAM00F,EAAkBh1E,EAAMnH,OAAOm8E,MACrCf,EAAgB,IAEhB,IAAIgB,EAA2B,GAC3BC,EAAmB,GACvB,IAAK,IAAIp8E,EAAI,EAAGA,EAAIk8E,EAAM10F,OAAQwY,IAAK,CACrC,IAAIw7E,EAAOU,EAAMtmE,KAAK5V,GAClBw7E,IACFY,EAAS9yF,KAAKkyF,GACdW,EAAS7yF,KAAKiyF,EAAiBC,IAEnC,CAEAH,EAAYe,GAEZtwF,QAAQsa,IAAI+1E,GACT3nF,MAAMga,GA7Ba0tE,KACtBrB,GACFA,EAAyB,OAAZK,QAAY,IAAZA,IAAgB,GAAIgB,GAG/Bf,EADJP,EACoB,IAAiB,OAAZM,QAAY,IAAZA,IAAgB,MAAQgB,GAC7B,CAACA,EAAM,IAAI,EAuBPG,CAAmB7tE,KACpC7hB,OAAM,SAAU6vC,GACfhxC,QAAQiB,IAAI,uBAADvC,OAAwBsyC,IACnCt1B,EAAMnH,OAAO3Z,MAAQ,EACvB,GACJ,CACF,CAAE,MAAOqF,GACPuX,EAAWvX,EAAMpC,QACnB,GA+BF,OACEQ,cAACgqB,KAAU,CACT5rB,KAAMA,EACN0oB,QAASA,EACTnS,OAAQgB,IAAA,IAAC,SAAEsU,EAAQ,OAAEmhE,EAAM,MAAE7uF,EAAK,KAAE6B,GAAMuX,EAAA,OACxClF,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWC,KAAO8hF,cAActzF,SAAA,EAC5CioB,GACA3W,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAAA,SACEioB,SAAUb,EACV0pE,OAAQA,GAAU,IAClBpgF,UAAWC,KAAO+hF,UAClBz7E,GAAI,aACJ85E,SAAUA,EACVl0F,KAAK,OACLotB,SAAUkoE,IAEZnyF,cAAA,SAAOk4E,QAAS,aAAa/4E,SAC3BsR,eAAA,QAAAtR,SAAA,CACEa,cAAC2lB,KAAM,CACLsC,SAAUb,EACVnW,QAAQ,WACRmD,MAAOA,EACP1D,UAAWC,KAAOgiF,aAClB/1F,KAAK,QACLkZ,UAAU,OACV4zB,UAAW1pC,cAAC4yF,GAAc,CAACx+E,MAAOA,IAClCuS,WAAS,EAAAxnB,SAERsK,IAEF7H,IACGA,GACFwqB,GACEpsB,cAACkqB,KAAc,CAACtoB,OAAK,EAACqP,QAAQ,WAAU9R,SACrCitB,IAGDnf,GAAUA,EAAO7O,GACrB6O,EAAO7O,GAAMoB,QACXQ,cAACkqB,KAAc,CAACtoB,OAAK,EAACqP,QAAQ,WAAU9R,SACrC8N,EAAO7O,GAAMoB,UAGhBtB,OAAOy8D,QAAQ1tD,EAAO7O,IAAOsX,KAC3B,CAAC9T,EAAY/D,IAET4S,eAACyZ,KAAc,CACbtoB,OAAK,EACLqP,QAAQ,WAAU9R,SAAA,CAGjB,IACAyC,EAAM,GAAGpC,UAAO,GAAAa,OAHTuB,EAAMpC,QAAO,KAAAa,OAAIxC,MAUnC,WAMVmC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SACfkyF,GACCA,EAAa37E,KAAI,CAACi8E,EAAa9zF,KAAa,IAAAg1F,EAAA,OAC1CpiF,eAACmb,KAAI,CACHhb,WAAS,EAETF,UAAWC,KAAOmiF,aAAa3zF,SAAA,CAE/Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAIvP,EAAW,GAAK,GAAGjoB,SAChCsR,eAAC4V,KAAU,CACTpP,GAAE,GAAA5W,OAAKsxF,EAAKlvE,SAAQ,KAAApiB,OAAIxC,GACxBjB,KAAK,QACL8T,UAAWC,KAAO8/E,yBAClB/qE,QAASA,IAjGN5T,WACrBoP,GAAYwB,SAASivE,EAAKttF,QAASstF,EAAKlvE,SAAS,EAgGhBswE,CAAepB,GAAMxyF,SAAA,CAEpCa,cAAC2wF,GAAgB,IACjB3wF,cAAA,OAAAb,SAAoB,QAApB0zF,EAAU,OAAJlB,QAAI,IAAJA,OAAI,EAAJA,EAAMlvE,gBAAQ,IAAAowE,IAAI,uBAG1BzrE,GACApnB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOqiF,WAAW7zF,SAC7Ca,cAACqmB,KAAU,CACTzpB,KAAK,QACL8T,UAAWC,KAAOsiF,OAClBvtE,QAASA,IAxGF5T,WACvBm/E,GACFA,EAAapzF,GAEf,IAAIq1F,EAAiC,OAAZ7B,QAAY,IAAZA,IAAgB,GACzC6B,EAAUvzF,OAAO9B,EAAO,GACxByzF,EAAgB,IAAI4B,IAGpB,IAAIC,EAAgC,OAAR5B,QAAQ,IAARA,IAAY,GACxC4B,EAAcxzF,OAAO9B,EAAO,GAC5B2zF,EAAY,IAAI2B,GAAe,EA6FIC,CAAqBv1F,GAAOsB,SAE3Ca,cAACqlF,GAAU,UAGhB,GAAAhlF,OAxBOsxF,EAAKlvE,SAAQ,KAAApiB,OAAIxC,GAyBpB,QAGR,GAET,EC0BSw1F,OAzP4Bn0F,IAMpC,IAADo0F,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IANsC,KAC1C/oE,EAAI,oBACJgpE,EAAmB,gBACnBC,EAAe,cACfC,EAAa,uBACbC,GACD90F,EACC,MACEwe,OAAO,SAAE2rD,EAAQ,OAAED,EAAM,OAAEpgE,EAAM,aAAE2gE,IACjCsB,MACE,YAAE55D,GAAgBmD,IAClBy/E,EACJ5iF,EAAY2D,SACV+Y,GAAgB6C,kDAEjBvf,EAAY2D,SACX+Y,GAAgB4C,yCAkBpB,OACE3wB,cAAAyV,WAAA,CAAAtW,SACGwqE,GACCl5D,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACO,IAAU,CAAA7R,SAAA,CAAC,qBACS,IACnBa,cAACgR,IAAU,CAAC8E,UAAU,OAAO7E,QAAQ,YAAW9R,SAC7CwqE,EAAa11B,qBAIpBj0C,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACO,IAAU,CAAA7R,SAAA,CAAC,QACJ,IACNa,cAACgR,IAAU,CAAC8E,UAAU,OAAO7E,QAAQ,YAAW9R,SACvB,eAAtBwqE,EAAa9sE,KACV,eACA8sE,EAAa9sE,YAIvBmD,cAAC8Y,KAAG,CAACzE,aAAc,EAAElV,SACnBsR,eAACO,IAAU,CAAA7R,SAAA,CAAC,YACA,IACVa,cAACgR,IAAU,CAAC8E,UAAU,OAAO7E,QAAQ,YAAW9R,SAC7C20F,GAAiBnqB,EAAaZ,QAAQnB,mBAI7Cn3D,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,SAAQrnB,SACzBa,cAAC8+E,GAAM,CACL53D,aAAcyiD,EAAa3gE,OAC3B5K,KAAK,SACL0oB,QAAS+D,EAAK/D,QACdiB,QAAS/e,EAAO0M,KAAK1M,IAAM,CACzBzM,MAAOyM,EAAO5K,KACdooB,MAAOxd,EAAO5K,SAEhBwD,QAASipB,EAAK5d,OAAOjE,OACrBkf,aACE2C,EAAK5d,OAAOjE,OAAS6hB,EAAK5d,OAAOjE,OAAOxJ,QAAU,SAK1DQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,cAAarnB,SAC9Ba,cAACk/E,GAAc,CACbn3D,QACEksE,EACI7qB,EACGjoC,QACExN,GACCA,EAAEsgE,cACFtgE,EAAE0tB,WAAoB,OAARgoB,QAAQ,IAARA,OAAQ,EAARA,EAAUh3D,KAAK6hF,YAEhCx+E,KAAK80D,IAAK,CACThkD,MAAM,GAADnmB,OAAKmqE,EAAMj4D,UAAS,KAAAlS,OAAImqE,EAAMl4D,UACnC/V,MAAOiuE,EAAM92B,aAEjB01B,EAAO1zD,KAAK80D,IAAK,CACfhkD,MAAM,GAADnmB,OAAKmqE,EAAMj4D,UAAS,KAAAlS,OAAImqE,EAAMl4D,UACnC/V,MAAOiuE,EAAM92B,aAGrBt1C,KAAK,QACLuJ,YAAY,gBACZgf,WAAS,EACTvT,OAAO,SACP8T,aAvFY65C,KAC1B,MAAMozB,EAAc/qB,EAAO1sD,MAAMiX,GAAMA,EAAE+f,WAAaqtB,EAAK4G,UAC3D,OAAOwsB,EACH,CACE3tE,MAAM,GAADnmB,OAAK8zF,EAAY5hF,UAAS,KAAAlS,OAAI8zF,EAAY7hF,UAC/C/V,MAAO43F,EAAYzgD,UAErB,IAAI,EAgFoB0gD,CAAmBzqB,GACjC/nE,QAASipB,EAAK5d,OAAOu9D,MACrBtiD,aACE2C,EAAK5d,OAAOu9D,MAA+B,QAA1B8oB,EAAGzoE,EAAK5d,OAAOu9D,MAAMjuE,aAAK,IAAA+2F,OAAA,EAAvBA,EAAyB9zF,QAAU,GAEzDsnB,QAAS+D,EAAK/D,QACd7P,GAAI,0BACJgsE,eAAa,QAInBjjF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CAACuhB,UAAW,EAAEl7B,SAChBa,cAACumB,GAAW,CAACC,MAAM,GAAErnB,SACnBsR,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAACuhB,UAAW,EAAEl7B,SAChBa,cAAC6wF,GAAU,CACTpnF,KAAK,gBACLrL,KAAK,OACLysB,KAAMA,EACNmmE,aAAcA,IAAM+C,GAAc,GAClC9C,aAAcA,IAAM8C,GAAc,GAClC7C,iBAAiB,MAGpB2C,EAAoBn+E,KAAI,CAACjP,EAAY5I,IACpCmC,cAAC8Y,KAAG,CAAA3Z,SAGFsR,eAACmb,KAAI,CAAChb,WAAS,EAACuC,WAAW,SAAQhU,SAAA,CACjCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACswF,GAAkB,CACjB7tE,SAAUhc,EAAW4tF,aACrB9D,QAASA,IACP1oB,GAAYI,cACVxhE,EAAWyhE,sBAKnBloE,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOqiF,WAAW7zF,SAC7Ca,cAACqmB,KAAU,CACTzpB,KAAK,QACL8T,UAAWC,KAAOsiF,OAClBvtE,QAASA,KACP0tE,OA1HA/C,EA2HE5pF,EAAWyhE,iBA1HzC8rB,EACEH,EAAoB1yD,QAAQspC,GAAMA,EAAEvC,mBAAqBmoB,KAF/BA,KA6HD,EAAAlxF,SAEDa,cAACqlF,GAAU,YAGV,cAAAhlF,OA1BYoG,EAAWyhE,iBAAgB,KAAA7nE,OAAIxC,eAiCvC,UAAtB8rE,EAAa9sE,MACZ4T,eAACqI,KAAG,CAAA3Z,SAAA,CACFa,cAAC8Y,KAAG,CAACzE,aAAc,EAAElV,SACnBa,cAACgR,IAAU,CAACN,UAAWC,KAAO2jF,aAAan1F,SAAC,cAK9Ca,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC2hF,GAAQ,CACPn7D,MAAM,kBACNpoB,KAAK,iBACL8tB,SAAUrB,EAAKsB,SACf+2D,eACqC,QADvBqQ,EACZ5pB,EAAaZ,QAAQwmB,sBAAc,IAAAgE,SAAI/2F,EAEzC4X,MAAM,cAGVpU,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC2hF,GAAQ,CACPn7D,MAAM,sBACNpoB,KAAK,kBACL8tB,SAAUrB,EAAKsB,SACf+2D,eACsC,QADxBsQ,EACZ7pB,EAAaZ,QAAQ0mB,uBAAe,IAAA+D,KAEtCp/E,MAAM,cAGVpU,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC2hF,GAAQ,CACPn7D,MAAM,oCACNpoB,KAAK,0BACL8tB,SAAUrB,EAAKsB,SACf+2D,eAC8C,QADhCuQ,EACZ9pB,EAAaZ,QAAQ2mB,+BAAuB,IAAA+D,KAE9Cr/E,MAAM,cAGVpU,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC2hF,GAAQ,CACPn7D,MAAM,8EACNpoB,KAAK,sBACL8tB,SAAUrB,EAAKsB,SACf+2D,eAC0C,QAD5BwQ,EACZ/pB,EAAaZ,QAAQ4mB,2BAAmB,IAAA+D,KAE1Ct/E,MAAM,cAGVpU,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC2hF,GAAQ,CACPn7D,MAAM,sBACNpoB,KAAK,qBACL8tB,SAAUrB,EAAKsB,SACf+2D,eACyC,QAD3ByQ,EACZhqB,EAAaZ,QAAQ6mB,0BAAkB,IAAA+D,KAEzCv/E,MAAM,cAGVpU,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC2hF,GAAQ,CACPn7D,MAAM,2BACNpoB,KAAK,iBACL8tB,SAAUrB,EAAKsB,SACf+2D,eACqC,QADvB0Q,EACZjqB,EAAaZ,QAAQ8mB,sBAAc,IAAA+D,KAErCx/E,MAAM,wBAQnB,ECvIQmgF,OArHwCr1F,IAGhD,IAADs1F,EAAAC,EAAA,IAHkD,UACtD/pE,EAAS,gBACTopE,GACD50F,EACC,MACEwe,OAAO,SAAEwN,EAAQ,aAAEy+C,GAAc,WACjCmB,EAAU,WACVD,GACEI,MAEGypB,EAAWC,GAAgBljF,oBAAS,IACpCoiF,EAAqBG,GAA0BviF,mBAE3B,QAFmC+iF,EAEhD,OAAZ7qB,QAAY,IAAZA,OAAY,EAAZA,EAAc3I,mBAAW,IAAAwzB,IAAI,IAE/B1hF,qBACE,SAAA8hF,EAAA,OAAMZ,EAAgD,QAA1BY,EAAa,OAAZjrB,QAAY,IAAZA,OAAY,EAAZA,EAAc3I,mBAAW,IAAA4zB,IAAI,GAAG,GAC7D,CAACjrB,IAGH,MAAM9+C,EAAOC,aAAmB,CAC9BC,SAAUC,aAAYskE,IACtBrkE,KAAM,WACN4pE,cAAe,CACbh4F,UAAML,EACNguE,WAAOhuE,EACPwM,YAAQxM,EACRm1F,KAAM,QAoCV,OACE3xF,cAAAyV,WAAA,CAAAtW,SACEsR,eAAC4U,GAAM,CAACzM,KAAM8R,EAAWC,QAASA,IAAMkgD,OAAWruE,GAAW2C,SAAA,CAC5Da,cAACkmB,GAAW,CAAA/mB,SAAC,wBACbsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAtCDypE,IAAyB,IAADC,EAAAC,EACxCrrB,GACFmB,EAAW,IACNnB,EACH3gE,OAAQ8rF,EAAS9rF,OACjB2+D,QAAuB,QAAhBotB,EAAED,EAAStqB,aAAK,IAAAuqB,OAAA,EAAdA,EAAgBx4F,MACzBykE,YAAa8zB,EAASnD,KAClB,IACKkC,EACH,CACEQ,aAA2B,QAAfW,EAAEF,EAASnD,YAAI,IAAAqD,OAAA,EAAbA,EAAe52F,KAC7BiG,QAASywF,EAASnD,KAClBzpB,iBAAkB,IAGtB2rB,EACJ9qB,QACwB,UAAtBY,EAAa9sE,KACT,IACK8sE,EAAaZ,QAChB0mB,gBAAiBqF,EAASrF,gBAC1BF,eAAgBuF,EAASvF,eACzBG,wBAAyBoF,EAASpF,wBAClCC,oBAAqBmF,EAASnF,oBAC9BC,mBAAoBkF,EAASlF,mBAC7BC,eAAgBiF,EAASjF,gBAE3BlmB,EAAaZ,UAEvB4rB,GAAa,EAAM,IAUbnpE,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAACqzF,GAAQ,CACPS,gBAAiBA,EACjBjpE,KAAMA,EACNgpE,oBAAqBA,EACrBG,uBAAwBA,EACxBD,cAAgBkB,GAAYN,EAAaM,OAG7Cj1F,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CACjBkB,WAAS,EACTjB,QAASA,KACPmlD,OAAWruE,GACXm4F,GAAa,EAAM,MAIzB30F,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC8vF,GAAY,CACXnpE,WAAS,EACT1P,GAAG,yBACHgR,UACG4C,EAAK2B,UAAUC,UACfioE,GACDb,EAAoBl2F,UACN,OAAZgsE,QAAY,IAAZA,GAAyB,QAAb8qB,EAAZ9qB,EAAc3I,mBAAW,IAAAyzB,OAAb,EAAZA,EAA2B92F,QAE/Bd,KAAK,SACL6oB,QAASA,OACTjc,KAAK,WACLuc,QAASkF,kBAOpB,ECgRQgqE,OAhYYA,KACzB,MAAM,YAAE7jF,GAAgBmD,KAEtBkJ,OAAO,OACL0rD,EAAM,UACN3W,EAAS,MACToW,EAAK,cACLH,EAAa,aACbiB,EAAY,eACZL,GACD,WACDuB,EAAU,WACVC,GACEG,KAEEkqB,EAAwBtsB,EAAM/qC,QAClC,CAACC,EAAiBC,IACTD,EAAIjZ,MAAMswE,GAAOA,EAAGnhD,gBAAkBjW,EAAKiW,gBAC9ClW,EACA,IACKA,EACH,CACEkW,cAAejW,EAAKiW,cACpBohD,UACiB,IAAft3D,EAAIpgC,SAAwBogC,EAAIA,EAAIpgC,OAAS,GAAG03F,aAI5D,IAGIvB,EAAmBpgD,IACvB,MAAMknB,EAAQnI,EAAU/1C,MAAME,IAAOA,EAAE82B,YAAcA,IACrD,OAAOknB,EAAK,GAAAv6D,OAAMu6D,EAAMroD,UAAS,KAAAlS,OAAIu6D,EAAMtoD,UAAa,EAAE,EAyCtDgjF,EAAiBv0D,GAFQA,IACZ,aAAjBA,EAAI6lC,SAEJ2uB,CAAsBx0D,GAAO,OAAS,GAElC45C,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,KACRytD,SAAU,UAEZ,CACEztD,OAAQ,UACRytD,SAAU,gBACV1xE,MAAO,KACP4xE,KAAM/lF,IAAmB,IAAlB,IAAE89E,GAAU99E,EACjB,MAAM,SAAE+tC,EAAQ,QAAE+hD,GAAYH,GAC5B,CACE3rB,UAAW8Z,EAAImI,SAASpc,QAAQ9xD,GAChC8yD,OAAQiT,EAAImI,SAASpb,OACrB+C,iBAAkBkQ,EAAImI,SAASrY,iBAC/B74B,cAAe+oC,EAAImI,SAASlxC,cAC5Bp3C,KAAMmgF,EAAImI,SAAStoF,OAErB,EACAysE,EACAslB,GAA0B4G,UAE5B,OACEx1F,cAAAyV,WAAA,CAAAtW,SACG6vF,EACChvF,cAACy1F,KAAU,CAAC/vE,QAASunB,EAAS9tC,SAC5Ba,cAAC0hC,KAAI,CAAAviC,SAEDa,cAAA,QACEiT,MAAO,CACLw1B,WAAY,UACZ5C,WAAYyvD,EAActY,EAAImI,WAC9BhmF,SAED69E,EAAImI,SAASlxC,oBAMtBj0C,cAAA,QACEiT,MAAO,CACLw1B,WAAY,UACZ5C,WAAYyvD,EAActY,EAAImI,WAC9BhmF,SAED69E,EAAImI,SAASlxC,iBAGjB,GAIT,CACE3c,OAAQ,gBACRytD,SAAU,YACVE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAC4nF,GAAQ,CACPhgF,KAAMo1E,EAAImI,SAASuJ,UACnB9+C,OAAO,aACP38B,MAAO,CACLw1B,WAAY,UACZ5C,WAAYyvD,EAActY,EAAImI,YAEhC,EAEJ9xE,MAAO,OAET,CACEikB,OAAQ,OACRjkB,MAAO,MACP0xE,SAAU,OACVE,KAAMvF,IAAmB,IAAlB,IAAE1C,GAAU0C,EACjB,MAAM,SAAEzyC,EAAQ,QAAE+hD,GAAYH,GAC5B,CACE3rB,UAAW8Z,EAAImI,SAASpc,QAAQ9xD,GAChC8yD,OAAQiT,EAAImI,SAASpb,OACrB+C,iBAAkBkQ,EAAImI,SAASrY,iBAC/B74B,cAAe+oC,EAAImI,SAASlxC,cAC5Bp3C,KAAMmgF,EAAImI,SAAStoF,OAErB,EACAysE,EACAslB,GAA0B4G,UAEtB34F,EACkB,eAAtBmgF,EAAImI,SAAStoF,KACT,eACAmgF,EAAImI,SAAStoF,KACnB,OACEmD,cAAAyV,WAAA,CAAAtW,SACG6vF,EACChvF,cAACy1F,KAAU,CAAC/vE,QAASunB,EAAS9tC,SAC5Ba,cAAC0hC,KAAI,CAAAviC,SACHa,cAAA,QACEiT,MAAO,CACLw1B,WAAY,UACZ5C,WAAYyvD,EAActY,EAAImI,WAC9BhmF,SAEDtC,QAKPmD,cAAA,QACEiT,MAAO,CACLw1B,WAAY,UACZ5C,WAAYyvD,EAActY,EAAImI,WAC9BhmF,SAEDtC,KAGJ,GAIT,CACEy6B,OAAQ,iBACR2tD,KAAMyQ,IAAA,IAAAC,EAAAC,EAAA,IAAC,IAAE5Y,GAAU0Y,EAAA,OACjB11F,cAAC4nF,GAAQ,CACPhgF,KAAyC,QAArC+tF,EAAsB,QAAtBC,EAAE5Y,EAAImI,SAASpc,eAAO,IAAA6sB,OAAA,EAApBA,EAAsB9hD,qBAAa,IAAA6hD,IAAI,KAC7C/lD,OAAO,aACP38B,MAAO,CACLw1B,WAAY,UACZ5C,WAAYyvD,EAActY,EAAImI,YAEhC,EAEJ9xE,MAAO,MACP0xE,SAAU,iBAEZ,CACEztD,OAAQ,WACRjkB,MAAO,MACP4xE,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjB71F,cAAA,QACEiT,MAAO,CACLw1B,WAAY,UACZ5C,WAAYyvD,EAActY,EAAImI,WAC9BhmF,SAED69E,EAAImI,SAASpc,QAAQ6B,kBACjB,EAETma,SAAU,4BAEZ,CACEztD,OAAQ,SACRytD,SAAU,SACVE,KAAM6Q,IAAA,IAAC,IAAE9Y,GAAU8Y,EAAA,MAxLDC,KACtB,MAAMvvE,EACJxmB,cAAA,QACEiT,MAAO,CACLw1B,WAAY,WACZtpC,SAED42F,EAAa/sF,SAIlB,OACEyH,eAAA,OACEwC,MAAO,CACLC,QAAS,OACT8iF,SAAU,SACVnwD,WAAYyvD,EAAcS,IAC1B52F,SAAA,CAEFa,cAAA,QAAAb,SAAOqnB,IACPxmB,cAAA,SAAOiT,MAAO,CAAE2yB,UAAW,SAAUC,WAAY,UAAW1mC,SACzD42F,EAAanvB,aAEZ,EAiKoBqvB,CAAejZ,EAAImI,SAAS,GAEtD,CACE7tD,OAAQ,cACRjkB,MAAO,MACP4xE,KAAMiR,IAAA,IAAC,IAAElZ,GAAUkZ,EAAA,OACjBl2F,cAAA,QACEiT,MAAO,CACLw1B,WAAY,UACZ5C,WAAYyvD,EAActY,EAAImI,WAC9BhmF,SAED69E,EAAImI,SAASza,eACT,EAETqa,SAAU,iBAEZ,CACEztD,OAAQ,GACRytD,SAAU,cACV1xE,MAAO,KACP2xE,eAAe,EACfC,KAAMkR,IAAA,IAAAC,EAAA,IAAC,IAAEpZ,GAAUmZ,EAAA,OACO,QAAxBC,EAAApZ,EAAImI,SAASnkB,mBAAW,IAAAo1B,OAAA,EAAxBA,EAA0Bz4F,QAAS,EACjCqC,cAAC21B,KAAK,CACJC,aAAconD,EAAImI,SAASnkB,YAAYrjE,OACvCyW,MAAM,YACN41E,QAAQ,WACRt5E,UAAWkV,KAAWiQ,MAAM12B,SAE5Ba,cAACq2F,GAAc,CAAChjF,MAAO,GAAIC,OAAQ,OAGrCtT,cAAAyV,WAAA,GACD,GAEL,CACE6hB,OAAQ,IACRytD,SAAU,kBACV1xE,MAAO,KACP2xE,eAAe,EACfC,KAAMqR,IAAmB,IAAlB,IAAEtZ,GAAUsZ,EACjB,MAAM,sBAAEvM,GAA0BJ,GAAW,CAC3C7pF,MAAO,qBACPvD,MAAOygF,EAAImI,SAASpc,QAAQwtB,gBAC5B3M,eAAgBj5E,KAAOgoB,WACvBkxD,gBAAgB,EAChBjtF,KAAM,GACN6sF,OAAS5pC,IACPirB,EAAW,IACNkS,EAAImI,SACPpc,QAAS,IAAKiU,EAAImI,SAASpc,QAASwtB,gBAAiB12C,IACrD,IAGN,OAAO7/C,cAAC+pF,EAAqB,GAAG,GAGpC,CACEzyD,OAAQ,IACRytD,SAAU,WACV1xE,MAAO,KACP2xE,eAAe,EACfC,KAAMuR,IAAmB,IAADC,EAAA,IAAjB,IAAEzZ,GAAUwZ,EACjB,MAAMv7E,EAAW+hE,EAAImI,SAASlqE,UACxB,sBAAE8uE,GCvSH,SAAwB7qF,GAS5B,IAT6B,MACtCY,EAAK,QACLy3B,EAAO,MACPh7B,EAAK,OACLktF,EAAM,MACNjjE,EAAQ,UAAS,oBACjBkwE,EAAmB,eACnB9M,EAAc,KACdhtF,EAAO,IACDsC,EACN,MAAM,UAAEytC,EAAS,UAAEC,EAAS,UAAEliB,GAAc+hB,KACtCq9C,EAAkBjqC,IACtB4pC,EAAO5pC,GACPjT,GAAW,EA8Bb,MAAO,CAAEm9C,sBA3BqBA,IAE1Bt5E,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACqmB,KAAU,CAACX,QAASinB,EAAWj8B,UAAWgmF,EAAoBv3F,SAC7Da,cAAC21B,KAAK,CACJvhB,MAAM,YACN1D,UAAWmiB,aAAKjN,KAAWiQ,MAAO+zD,GAClC34E,QAAQ,WACR+4E,QAAQ,WACRp0D,aAAc2B,EAAQ55B,OAAOwB,SAE7Ba,cAACkqF,GAAW,CAAC72E,MAAOzW,EAAM0W,OAAQ1W,QAGtCoD,cAACuuF,GAAkB,CACjB/E,aAAc,CAAE78C,YAAWC,YAAWliB,aACtC6M,QAASA,EACTh7B,MAAOA,EACPktF,OAAQK,EACRhqF,MAAOA,EACP0mB,MAAOA,EACP5pB,KAAMA,OAOhB,CD2P4C+5F,CAAgB,CAChDp/D,QAKK,QALEk/D,EACG,OAARx7E,QAAQ,IAARA,OAAQ,EAARA,EAAUvF,KAAekhF,IAAW,CAClC/2C,QAAS+2C,EAAY/2C,QACrB8uC,UAAWiI,EAAYC,cACvBnI,UAAWkI,EAAYlI,qBACtB,IAAA+H,IAAI,GACT32F,MAAO,mBACPvD,MAAO,GACPK,KAAM,GACN85F,oBAAqB/lF,KAAOgoB,WAC5B8wD,OAAS5pC,IACPirB,EAAW,IACNkS,EAAImI,SACPlqE,SAAU,IAAI+hE,EAAImI,SAASlqE,SAAU,CAAE4kC,QAASA,KAChD,IAGN,OAAO7/C,cAAC+pF,EAAqB,GAAG,GAGpC,CACEzyD,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAM6R,IAAA,IAAC,IAAE9Z,GAAU8Z,EAAA,OACjB92F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACy1F,KAAU,CACT/vE,QAASA,KACPmlD,EAAW,IAAKmS,EAAImI,UAA4B,EAChDhmF,SAEFa,cAAC0hC,KAAI,CAACttB,MAAM,UAASjV,SAAC,wBAEpB,EAERkU,MAAO,SAGX,CAzSoBqgC,IACpB,MAAMknB,EAAQwO,EAAO1sD,MAAME,IAAOA,EAAE82B,YAAcA,IAClD,OAAOknB,EAAK,GAAAv6D,OACLu6D,EAAMroD,UAAS,KAAAlS,OAAIu6D,EAAMtoD,UACf,OAAbohC,EACA,GAAE,oBACkB,EAmSTogD,EAAiBjpB,EAAYC,IAE9C,OACE9qE,cAAAyV,WAAA,CAAAtW,SACG0pE,GAASpW,GAAa6W,GAAkBT,EAAMlrE,OAAS,EACtD8S,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAMg9D,EACNkS,cACE1pE,EAAY2D,SACV+Y,GAAgBmC,gCAEd,CAAC,UACD,CAAC,SAAU,aAEjB4qD,OAAK,EACLxK,MAAI,EACJ0K,YAAcgC,IAAS,IAAD+Z,EACpB,OAGG,QAHHA,EACE5B,EAAsBz4E,MACnBiX,IAAOA,EAAEsgB,iBAAmB+oC,EAAImI,SAASlxC,uBAC3C,IAAA8iD,GAFDA,EAEG1B,UAEI,CACL3kF,UAAU,GAADrQ,OAAKsQ,KAAOqmF,eAGhB,CACLtmF,UAAU,GAADrQ,OAAKsQ,KAAOqsE,KAEzB,EAEFh3D,QAAS0iD,IAEX1oE,cAACu0F,GAAc,CACb7pE,YAAai/C,EACbmqB,gBAAiBA,OAIH,KAAb,OAALjrB,QAAK,IAALA,OAAK,EAALA,EAAOlrE,SACLqC,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,CAACpvE,KAAK,4DAIpB,E,qBEhJQwtF,OArPgBA,KAAO,IAADC,EAAA5vB,EAAAI,EAAAF,EAAAD,EACnC,MACE7pD,OAAO,OACL0rD,EAAM,eACNN,EAAc,oBACdI,EAAmB,iBACnBK,EAAgB,SAChBF,GACD,WACDkB,GACEU,MACE,YAAE55D,GAAgBmD,IAClBy/E,EACJ5iF,EAAY2D,SACV+Y,GAAgB6C,kDAEjBvf,EAAY2D,SACX+Y,GAAgB4C,0CAGbwQ,EAAQg2D,GAAa1lF,mBAAsB,CAChDk2D,QAASt2D,EAAY2D,SACnB+Y,GAAgB4C,0CAEW,QAD5BumE,EACW,OAAR7tB,QAAQ,IAARA,OAAQ,EAARA,EAAUnf,OAAOxW,gBAAQ,IAAAwjD,SACzB16F,EACJ6kD,aAAS7kD,EACTK,UAAML,EACNorE,gBAAYprE,IAGR46F,EAAkB73F,uBAAY,KAC9B8pE,GAAUkB,EAAWppC,EAAO,GAC/B,CAACA,EAAQkoC,IAEZv2D,qBAAU,KACRskF,GAAiB,GAChB,CAACj2D,IAEJruB,qBAAU,KACR,GACEu2D,GACAh4D,EAAY2D,SACV+Y,GAAgB4C,yCAGlBwmE,EAAU,IAAKh2D,EAAQwmC,QAAiB,OAAR0B,QAAQ,IAARA,OAAQ,EAARA,EAAUnf,OAAOxW,gBAC5C,GAAI21B,GAAY4qB,EAAc,CAAC,IAADoD,EAAAC,EACnCH,EAAU,IACLh2D,EACHwmC,QAAiB,OAAR0B,QAAQ,IAARA,OAAQ,EAARA,EAAUnf,OAAOxW,SAC1B2N,QAAiC,QAA1Bg2C,EAAU,OAARhuB,QAAQ,IAARA,GAAc,QAANiuB,EAARjuB,EAAUh3D,YAAI,IAAAilF,OAAN,EAARA,EAAgBpD,gBAAQ,IAAAmD,SAAI76F,GAEzC,MACE26F,EAAU,IAAKh2D,EAAQwmC,aAASnrE,GAClC,GACC,CAAC6sE,EAAUh4D,IAEd,MAAMkmF,EAAoB76F,MAAMgzC,KAC9B,IAAIgrB,IAAI0O,EAAO1zD,KAAK80D,GAAUA,EAAMnpB,YAGtC,OACErhD,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,YAAWX,SAAA,CAC5Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,qGAK3Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,gBAE7B+pE,EACClpE,cAAC02E,KAAc,CAACtiE,MAAM,cAEtB3D,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAAC8+E,GAAM,CACL1gF,KAAK,cACL6Y,GAAG,8BACHuP,MAAM,cACNvV,QAAQ,WACR8W,QACEksE,EACI,CACE,CAAEztE,MAAO,MAAOjqB,OAAQ,MACrB6sE,EACAjoC,QACExN,GACCA,EAAEsgE,cACFtgE,EAAE0tB,WAAoB,OAARgoB,QAAQ,IAARA,OAAQ,EAARA,EAAUh3D,KAAK6hF,YAEhCx+E,KAAK80D,IAAK,CACThkD,MAAM,GAADnmB,OAAKmqE,EAAMj4D,UAAS,KAAAlS,OAAImqE,EAAMl4D,UACnC/V,MAAOiuE,EAAM92B,cAGnB,CACE,CAAEltB,MAAO,MAAOjqB,OAAQ,GACxB,CAAEiqB,MAAO,iBAAkBjqB,MAAO,MAC/B6sE,EAAO1zD,KAAK80D,IAAK,CAClBhkD,MAAM,GAADnmB,OAAKmqE,EAAMj4D,UAAS,KAAAlS,OAAImqE,EAAMl4D,UACnC/V,MAAOiuE,EAAM92B,cAIvBn3C,MAAqB,QAAhB+qE,EAAEnmC,EAAOwmC,eAAO,IAAAL,KAAK,EAC1Br9C,SAAW5M,IACT85E,EAAU,IACLh2D,EACHwmC,SAC0B,IAAxBtqD,EAAMnH,OAAO3Z,WACTC,EACC6gB,EAAMnH,OAAO3Z,OACpB,MAIRyD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAACo/E,GAAY,CACXhhF,KAAK,WACL6Y,GAAG,2BACHqoE,eAAiBh2D,GAAWA,EAAO9C,MACnC64D,aAAe/1D,GAAWA,EAAO9C,MACjCwnE,UAAU,QACV56E,OAAO,SACPosE,YAAcpwE,GACZpP,cAACmnB,KAAS,IACJ/X,EACJoX,MAAM,WACNpT,OAAO,SACP1C,UAAWC,KAAOivE,wBAGtB73D,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,OAAQ,MACrBusE,EAAepzD,KAAKi1D,IAAQ,CAC7BnkD,MAAM,GAADnmB,OAAKsqE,EAASp4D,UAAS,KAAAlS,OAAIsqE,EAASr4D,UACzC/V,MAAOouE,EAASj3B,cAGpBzpB,SAAUA,CAAC5M,EAAO9gB,KAChB46F,EAAU,IACLh2D,EACHymC,YACa,IAAXrrE,OAAeC,EAAaD,GAC9B,EAEJoqB,WAAS,EACTO,aAAc,CAAEV,MAAO,MAAOjqB,OAAQ,OAG1CyD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAAC8+E,GAAM,CACL1gF,KAAK,WACL6Y,GAAG,2BACHuP,MAAM,OACNvV,QAAQ,WACR8W,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO,OACvB,CAAEiqB,MAAO,eAAgBjqB,MAAO,cAChC,CAAEiqB,MAAO,QAASjqB,MAAO,SACzB,CAAEiqB,MAAO,MAAOjqB,MAAO,QAEzBA,MAAkB,QAAbmrE,EAAEvmC,EAAOtkC,YAAI,IAAA6qE,IAAI,MACtBz9C,SAAW5M,IACT85E,EAAU,IACLh2D,EACHtkC,KACyB,QAAvBwgB,EAAMnH,OAAO3Z,WACTC,EACC6gB,EAAMnH,OAAO3Z,OACpB,MAIRyD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAAC8+E,GAAM,CACL1gF,KAAK,SACL6Y,GAAG,yBACHuP,MAAM,SACNvV,QAAQ,WACR8W,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO,UACpBgtE,EAAiB7zD,KAAK1M,IAAM,CAC7Bwd,MAAOxd,EAAO5K,KACd7B,MAAOyM,EAAO5K,UAGlB7B,MAAoB,QAAfirE,EAAErmC,EAAOn4B,cAAM,IAAAw+D,IAAI,MACxBv9C,SAAW5M,IACT85E,EAAU,IACLh2D,EACHn4B,OACyB,QAAvBqU,EAAMnH,OAAO3Z,WACTC,EACC6gB,EAAMnH,OAAO3Z,OACpB,OAIN03F,GACAj0F,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAAC8+E,GAAM,CACL1gF,KAAK,UACL6Y,GAAG,0BACHuP,MAAM,UACNvV,QAAQ,WACR8W,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO,UACpBg7F,EAAkB7hF,KAAK2rC,IAAO,CAC/B76B,MAAO66B,EACP9kD,MAAO8kD,OAGX9kD,MAAqB,QAAhBgrE,EAAEpmC,EAAOkgB,eAAO,IAAAkmB,IAAI,MACzBt9C,SAAW5M,IACT85E,EAAU,IACLh2D,EACHkgB,QACyB,QAAvBhkC,EAAMnH,OAAO3Z,WACTC,EACC6gB,EAAMnH,OAAO3Z,OACpB,WAQdyD,cAAC8Y,KAAG,CAAA3Z,SACFa,cAACk1F,GAAQ,aAKhB,E,qBC/NQsC,OA/BOA,KAGpB,MAAOC,EAAYC,GAAiBjmF,mBAAS,CAC3C4B,MAAO5S,OAAOk3F,WACdrkF,OAAQ7S,OAAOm3F,cAuBjB,OApBA9kF,qBAAU,KAER,SAAS+kF,IAEPH,EAAc,CACZrkF,MAAO5S,OAAOk3F,WACdrkF,OAAQ7S,OAAOm3F,aAEnB,CASA,OANAn3F,OAAO6c,iBAAiB,SAAUu6E,GAGlCA,IAGO,IAAMp3F,OAAO8c,oBAAoB,SAAUs6E,EAAa,GAC9D,IAEIJ,CAAU,ECmDJK,OAjEyB54F,IAGjC,IAHkC,MACvCoW,EAAK,oBACLyiF,GAAsB,GACvB74F,EACC,MAAMisC,EAASjuB,iBAAuB,OAC/BtgB,EAAMo7F,GAAWvmF,mBAAS,GAC3B/Q,EAAW8xB,eACTnhB,YAAawD,GAAoB7V,qBAAWmS,GAE9CsmF,EAAaD,KAOnB,OANA1kF,qBAAU,KACJq4B,EAAOhuB,SACT66E,EAAQ7sD,EAAOhuB,QAAQ86E,YACzB,GACC,CAACR,IAGFz3F,cAAA,OAAKgX,IAAKm0B,EAAOhsC,SACfa,cAACk4F,KAAI,CACH37F,MACE+Y,EAAMI,KAAKS,GAAMA,EAAEP,OAAMZ,SAAStU,EAASoyB,UACvCpyB,EAASoyB,SACTxd,EAAM,GAAGM,KAEflF,UAAS,GAAArQ,OAAKulB,KAAWuyE,OAAM,KAAA93F,OAC7B03F,GAAuBnyE,KAAWwyE,aAEpCnnF,QAAQ,aACRgC,MAAO,CAAEI,MAAOzW,EAAO,MACvBuC,SAECmW,EAAMI,KAAKqW,IAawC,IAADssE,EAZ3BC,EAAtB,OAAKvsE,EAAKrX,WAYJG,EAAgBG,SAAS+W,EAAKrX,YAE9B1U,cAACu4F,KAAG,CACFthF,GAAa,QAAXohF,EAAEtsE,EAAK3tB,YAAI,IAAAi6F,OAAA,EAATA,EAAWx5D,QAAQ,KAAM,KAE7BtiC,MAAOwvB,EAAKnW,KACZ4Q,MAAOuF,EAAK3tB,KACZ0X,UAAW4rB,IACXxsB,GAAI6W,EAAKnW,MAJJmW,EAAKnW,MAQP,KAtBP5V,cAACu4F,KAAG,CACFthF,GAAa,QAAXqhF,EAAEvsE,EAAK3tB,YAAI,IAAAk6F,OAAA,EAATA,EAAWz5D,QAAQ,KAAM,KAE7BtiC,MAAOwvB,EAAKnW,KACZ4Q,MAAOuF,EAAK3tB,KACZ0X,UAAW4rB,IACXxsB,GAAI6W,EAAKnW,MAJJmW,EAAKnW,KAsBhB,OAGA,ECnDK4iF,OAjBwCt5F,IAAuB,IAAtB,MAAEsnB,EAAK,MAAEjqB,GAAO2C,EACtE,OACEuR,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACgR,IAAU,CACTC,QAAQ,QACR6E,UAAU,OACV7C,MAAO,CAAEc,aAAc,OAAQ5U,SAE9BqnB,IAEHxmB,cAACgR,IAAU,CAACC,QAAQ,YAAY6E,UAAU,OAAM3W,SAC7C5C,MAEF,E,qBCyJQk8F,OA7I8Bv5F,IAOtC,IAPuC,YAC5CuxC,EAAW,gBACXioD,EAAe,WACfC,EAAU,KACV9tE,EAAI,aACJQ,EAAY,SACZ3D,GACDxoB,EACC,MAAOskF,EAAkBC,GAAuBhyE,oBAAS,GACnDmnF,EAAcC,aAAS,CAC3B/xE,QAAS+D,EAAK/D,QACd1oB,KAAM,WAMR,OAHA0U,qBAAU,KACR2wE,EAAoBmV,KAA2B,OAAXnoD,QAAW,IAAXA,OAAW,EAAXA,EAAaznC,QAAO,GACvD,CAAC4vF,IAEFnoF,eAAC4U,GAAM,CAACzM,KAAM8/E,EAAiB/tE,QAASguE,EAAWx5F,SAAA,CACjDa,cAACkmB,GAAW,CAAA/mB,SACE,OAAXsxC,QAAW,IAAXA,KAAawD,cAAa,8BAAA5zC,OACkB,OAAXowC,QAAW,IAAXA,OAAW,EAAXA,EAAawD,eAC3C,2BAENxjC,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,aAAaA,GAC5BG,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWC,KAAOmoF,cAAc35F,SAAA,CAC9Ca,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,gCAE3BsR,eAACmb,KAAI,CAACG,MAAI,EAACnb,WAAS,EAAC+lB,GAAI,GAAIjmB,UAAWC,KAAOooF,YAAY55F,SAAA,CACzDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,gBACNjqB,MAAkB,OAAXk0C,QAAW,IAAXA,OAAW,EAAXA,EAAa+J,eAGxBx6C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,cACNjqB,MAAOuwC,KAAkB,OAAX2D,QAAW,IAAXA,OAAW,EAAXA,EAAa+B,YACxB5C,OAAO,aACP6K,kBAGPz6C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CAAChyE,MAAM,OAAOjqB,MAAkB,OAAXk0C,QAAW,IAAXA,OAAW,EAAXA,EAAa5zC,YAGrDmD,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,4BAE3Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOooF,YAAY55F,SACnC,OAAXsxC,QAAW,IAAXA,OAAW,EAAXA,EAAahqB,YAAYzC,MAAM,MAAMtO,KAAI,CAACqW,EAAMitE,IAE7Ch5F,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAC5B4sB,GADkCitE,OAM3Ch5F,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOooF,YAAY55F,SAC/Ca,cAACumB,GAAW,CAACC,MAAM,kCAAiCrnB,SAClDa,cAACmnB,GAAS,CACR5qB,MAAOuwC,KAAkB,OAAX2D,QAAW,IAAXA,OAAW,EAAXA,EAAai+C,WACxBzpC,GAAG,qBACHrV,OAAO,mBACP6K,cACHrzB,UAAQ,QAIdpnB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOooF,YAAY55F,SAC7CuoB,EACC1nB,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,aAAYrnB,SACvCa,cAACmnB,GAAS,CAAC5qB,MAAOq8F,EAAaxxE,UAAQ,MAGzCpnB,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,aAAYrnB,SACvCa,cAACgqB,KAAU,CACTo3D,GACE3wE,eAACi4E,KAAU,CAAC,aAAW,SAAStqF,KAAK,UAASe,SAAA,CAC5Ca,cAACwhF,KAAgB,CACfjlF,MAAM,UACNuqB,QAAS9mB,cAAC2oF,KAAK,IACfniE,MAAM,kBACNyB,SAAUP,KAAwB,OAAX+oB,QAAW,IAAXA,KAAawoD,gBAEtCj5F,cAACwhF,KAAgB,CACfjlF,MAAM,WACNuqB,QAAS9mB,cAAC2oF,KAAK,IACfniE,MAAM,UACNyB,SAAUP,KAAwB,OAAX+oB,QAAW,IAAXA,KAAayoD,oBAI1C96F,KAAK,SACL0oB,QAAS+D,EAAK/D,mBAO1B9mB,cAACwlB,GAAa,CAAArmB,SACVuoB,EAeA1nB,cAAC4rB,KAAI,CACHhb,WAAS,EACTF,UAAWkV,KAAWkG,oBACtBob,eAAe,SAAQ/nC,SAEvBa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC8vF,GAAY,CAACnpE,WAAS,EAACjB,QAASizE,EAAYlvF,KAAK,cApBtDgH,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CAACkB,WAAS,EAACjB,QAASizE,MAEzC34F,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC+lB,GAAgB,CACfY,WAAS,EACT1P,GAAG,eACHgR,SAAUu7D,EACV/5E,KAAMvG,EAAUC,QAAQM,uBAiB7B,EC+IE01F,OAvR8CA,KAC3D,MACEz7E,OAAO,YAAE+yB,EAAW,aAAEF,EAAY,SAAEZ,EAAQ,OAAEE,GAAQ,SACtD3wB,EAAQ,MACR+wB,EAAK,QACL7kC,EAAO,cACP2kC,EAAa,kBACboB,GACEE,MACG+nD,EAAaC,GAAkB5nF,mBAAiB,KAErDk7B,UAAW2sD,EACX1sD,UAAW+rD,EACXjuE,UAAWguE,GACTjsD,MACG8sD,EAAeC,GAAoB/nF,mBAAiB,OACrDoZ,EAAOC,aAAkB,CAAEG,KAAM,cAChCvD,EAAU+xE,GAAehoF,oBAAS,GACnC8yE,EAAc/vE,IAEpB1B,qBAAU,KACRoM,EAAS,CACPriB,KAAMqzC,GAAcQ,aACpBxyB,QAAS4yB,GAAW4oD,eACpB,GACD,IAEH5mF,qBAAU,KACR2mF,EAAoC,SAAb,OAAXhpD,QAAW,IAAXA,OAAW,EAAXA,EAAaznC,QAAiB,GACzC,CAACynC,IAEJ39B,qBAAU,KACR,IAAI6mF,EAAmB,IAAiB,OAAZppD,QAAY,IAAZA,IAAgB,IAExCgpD,GAAmC,QAAlBA,IACnBI,EAAmBA,EAAiBx4D,QACjCxN,GAAMA,EAAE3qB,SAAWuwF,KAIxBF,EAAeM,EAAiB,GAC/B,CAACppD,EAAcgpD,IAElB,MASM7S,EAAeA,KACnBv1C,GAAmB,EAkBfwpC,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,YACRytD,SAAU,aACVE,KAAM/lF,IAAmB,IAAlB,IAAE89E,GAAU99E,EACjB,OACEqlF,GACAA,EAAYlzE,YAAY2D,SACtB+Y,GAAgB8B,qCAIhB7vB,cAAC0hC,IAAI,CACHxsB,GAAE,6CAAA7U,OACA28E,EAAImI,SAAS3qC,WAAU,gBAAAn6C,OACVysC,KAAOkwC,EAAImI,SAAS3yC,YAAYv0C,eAC/CyS,UAAWkV,KAAWg0E,mBAAmBz6F,SAExC69E,EAAImI,SAAS3qC,aAIbwiC,EAAImI,SAAS3qC,UAAU,EAEhCnnC,MAAO,OAET,CACEikB,OAAQ,cACRytD,SAAU,aACVE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAAS3yC,WAAY5C,OAAO,aAAc,EAEhEv8B,MAAO,OAET,CACEikB,OAAQ,SACRytD,SAAU,SACV1xE,MAAO,OAET,CACEikB,OAAQ,oBACRytD,SAAU,YACVE,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAC4nF,GAAQ,CACPhgF,KAAMo1E,EAAImI,SAASuJ,UACnB7G,MAAI,EACJ/iC,SAAS,qBACT,EAEJzxC,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,UACVE,KAAMyQ,IAAmB,IAAlB,IAAE1Y,GAAU0Y,EACjB,MAAM,sBAAE3L,GAA0BJ,GAAW,CAC3C7pF,MAAO,cACPvD,MAAOygF,EAAImI,SAAStlC,QACpBgqC,gBAAgB,EAChBJ,OAAS5pC,IAhEI/tC,WACrBi+B,EAAcC,EAAI,EAgER85C,CAAe,IAAK9M,EAAImI,SAAUtlC,QAASA,GAAU,IAIzD,OAAO7/C,cAAC+pF,EAAqB,GAAG,EAElC12E,MAAO,MAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjB71F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACg/E,GAAe,CAACt5D,QAASA,IAvGd5T,WACpB+Y,EAAKu6B,MAAM,CACTp8C,OAAQgnC,EAAIhnC,SAGdkW,EAAS,CAAEriB,KAAMqzC,GAAcM,aAActyB,QAAS8xB,IACtDspD,GAAY,EAiG4BO,CAAc7c,EAAImI,UAAUhmF,SAC1Da,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAE3B,EAERD,MAAO,QAGX,CAACs8B,EAAUE,IASb,OACEp/B,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,8CAI3Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAGo7D,UAbUh8E,IACV,UAAVA,EAAEhN,KAA2B,OAAR6xC,QAAQ,IAARA,KAAUjjB,WACjCg6D,GACF,EAU0CvnF,SACtCsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAAC4lF,GAAU,CACTj+D,aAAa,MACbo/D,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,WACL6Y,GAAG,eACH24B,OAAO,aACPrzC,MAAOozC,EACP1lB,SAAWriB,GACTA,GACAsX,EAAS,CACPriB,KAAMqzC,GAAcU,mBACpB1yB,QAAStW,UAMnB5H,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,KAAKE,YAAU,EAAAvnB,SAChCa,cAAC4lF,GAAU,CACTj+D,aAAa,MACb3hB,QAAiB,OAAR2pC,QAAQ,IAARA,OAAQ,EAARA,EAAUE,SACnBk3C,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,SACL6Y,GAAG,aACH24B,OAAO,aACPrzC,MAAOszC,EACP5lB,SAAWriB,GACTsX,EAAS,CACPriB,KAAMqzC,GAAcW,iBACpB3yB,QAAa,OAAJtW,QAAI,IAAJA,SAAQpL,UAM3BwD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8Y,KAAG,CAAC7F,MAAO,CAAEonB,UAAW,QAASl7B,SAChCa,cAACwmF,GAAY,CACXvvE,GAAG,oBACHgR,WAAmB,OAAR0nB,QAAQ,IAARA,KAAUjjB,WACrBhH,QAASghE,EAAavnF,SACvB,wBAOTa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,gBAE9Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8+E,GAAM,CACL1gF,KAAK,SACLooB,MAAM,SACNvV,QAAQ,WACR8W,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO,OACvB,CAAEiqB,MAAO,UAAWjqB,MAAO,WAC3B,CAAEiqB,MAAO,MAAOjqB,MAAO,OACvB,CAAEiqB,MAAO,WAAYjqB,MAAO,aAE9BA,MAAOg9F,EACPtvE,SAAWnf,IACT0uF,EAAiB1uF,EAAEoL,OAAO3Z,MAAgB,UAMnD68F,GAAeA,EAAYz7F,OAAS,EACnCqC,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAMutF,EACNxe,YAAU,EACVtK,MAAI,EACJyK,cAAe,CAAC,QAAS,eAAgB,aAG3B,MAAhBxqC,GACwB,KAAb,OAAX6oD,QAAW,IAAXA,OAAW,EAAXA,EAAaz7F,SACXqC,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,MAIf74E,cAACy4F,GAAS,CACRhoD,YAAaA,EACb5lB,KAAMA,EACNQ,aAtNgBrf,IAChBykC,IACsB,YAApBzkC,EAAShD,OACXinC,EAAM,IAAKQ,EAAaznC,OAAQgD,EAAShD,SACZ,aAApBgD,EAAShD,QAClBoC,EAAQ,IAAKqlC,EAAaznC,OAAQgD,EAAShD,SAE7C2vF,IACF,EA+MIA,WAAYA,EACZD,gBAAiBA,EACjBhxE,SAAUA,MAEX,E,qBC5SQ,SAASoyE,GACtBC,GAEA,MAAM,YAAE1oF,GAAgBmD,IAClB+iB,EAAUC,cAEVw3D,EAAU39E,EAAY2D,SAC1B+Y,GAAgBgD,gCAGZs+D,EAAW,0BAAAhvF,OACf05F,EAAav/C,WAAU,KAAAn6C,OACrB05F,EAAavnD,WAAWv0C,eAM5B,MAAO,CAAE+wF,UAAS/hD,SAJDA,KACf1V,EAAQ93B,KAAK4vF,EAAY,EAI7B,CCgXe2K,OAxW8CA,KAC3D,MACEt8E,OAAO,YAAE+yB,EAAW,aAAEJ,EAAY,SAAEV,EAAQ,OAAEE,GAAQ,SACtD3wB,EAAQ,MACR+wB,EAAK,QACL7kC,EAAO,cACP2kC,EAAa,kBACbmB,GACEG,MAEG+nD,EAAaC,GAAkB5nF,mBAAiB,KAErDk7B,UAAW2sD,EACX1sD,UAAW+rD,EACXjuE,UAAWguE,GACTjsD,MACGwtD,EAAaC,GAAkBzoF,mBAAiB,QAChD8nF,EAAeC,GAAoB/nF,mBAAiB,OACrDoZ,EAAOC,aAAkB,CAAEG,KAAM,cAChCvD,EAAU+xE,GAAehoF,oBAAS,IAClCw7D,EAAWktB,GAAgB1oF,oBAAS,GAE3CqB,qBAAU,KACRoM,EAAS,CACPriB,KAAMqzC,GAAcQ,aACpBxyB,QAAS4yB,GAAWC,cACpB,GACD,IAEHj+B,qBAAU,KACR2mF,EAAoC,SAAb,OAAXhpD,QAAW,IAAXA,OAAW,EAAXA,EAAaznC,QAAiB,GACzC,CAACynC,IAEJ39B,qBAAU,KACR,IAAI6mF,EAAmB,IAAiB,OAAZtpD,QAAY,IAAZA,IAAgB,IAExC4pD,GAA+B,QAAhBA,IACjBN,EAAmBA,EAAiBx4D,QAAQxN,GAAMA,EAAE92B,OAASo9F,KAE3DV,GAAmC,QAAlBA,IACnBI,EAAmBA,EAAiBx4D,QACjCxN,GAAMA,EAAE3qB,SAAWuwF,KAGxBF,EAAeM,GACfQ,GAAa,EAAM,GAClB,CAAC9pD,EAAc4pD,EAAaV,IAE/B,MASM7S,EAAeA,KACnByT,GAAa,GACbjpD,GAAmB,EAkBfypC,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,UACRytD,SAAU,gBACV1xE,MAAO,KACP4xE,KAAM/lF,IAAmB,IAAlB,IAAE89E,GAAU99E,EACjB,MAAM,SAAE+tC,GCjHH,SAAwBgH,GACrC,MAAM,SAAE/0B,GAAaO,KACf8X,EAAUC,eACV,WAAEre,GAAeQ,KAEjB01E,EAAW,iBAAAhvF,OAAoB4zC,EAAa,WAsBlD,MAAO,CAAEhH,SApBQn7B,UACfghC,GAAmBK,eAAec,GAC/BtpC,MAAKmH,UACJ,GAAIivB,EAAI2mB,UACNvuC,EAAW,2CACN,CACL,MAAMqxC,QAAuB3C,GAAciB,0BACzC/nB,EAAImhB,SAENhjC,EAAS,CACPriB,KAAM2gB,GAAuBQ,iBAC7BE,QAAShU,KAAK8H,UAAU,IAAKw4C,MAE/BjzB,EAAQ93B,KAAK4vF,EACf,KAEDvsF,OAAM,KACLqW,EAAW,kCAAkC,GAC7C,EAGR,CDqF+BihF,CAAepd,EAAImI,SAASlxC,eACjD,OACEj0C,cAACq6F,KAAO,CACNjmF,MAAM,UACNsR,QAASunB,EACTv8B,UAAWkV,KAAWg0E,mBAAmBz6F,SAExC69E,EAAImI,SAASlxC,eACN,GAIhB,CACE3c,OAAQ,YACRytD,SAAU,aACVE,KAAMtvE,IAAmB,IAAlB,IAAEqnE,GAAUrnE,EACjB,MAAM,SAAEs3B,EAAQ,QAAE+hD,GAAY8K,GAAyB,CACrDt/C,WAAYwiC,EAAImI,SAAS3qC,WACzBhI,WAAY1F,KAAOkwC,EAAImI,SAAS3yC,YAAYc,QAAQ,OAAOzD,WAE7D,OACE7vC,cAAAyV,WAAA,CAAAtW,SACG6vF,EACChvF,cAACy1F,KAAU,CAAC/vE,QAASunB,EAAS9tC,SAC5Ba,cAAC0hC,KAAI,CAAAviC,SACHa,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAAS3qC,iBAKpBx6C,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAAS3qC,cAGjB,EAGPnnC,MAAO,MAET,CACEikB,OAAQ,cACRytD,SAAU,aACVE,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAAS3yC,WAAY5C,OAAO,aAAc,EAEhEv8B,MAAO,OAET,CACEikB,OAAQ,WACRytD,SAAU,QACV1xE,MAAO,MACP4xE,KAAMyQ,IAAA,IAAA4E,EAAAC,EAAA,IAAC,IAAEvd,GAAU0Y,EAAA,OACjB11F,cAAAyV,WAAA,CAAAtW,SACG69E,EAAImI,SAASqV,QAA2B,QAAlBF,EAAAtd,EAAImI,SAASqV,aAAK,IAAAF,OAAA,EAAlBA,EAAoBt2E,MAAM,KAAKrmB,QAAS,EAC3C,QAD4C48F,EAC9Dvd,EAAImI,SAASqV,aAAK,IAAAD,OAAA,EAAlBA,EAAoBv2E,MAAM,KAAKtO,KAAKie,GAClCljB,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAEF2hF,GAAI,EACJ3kF,UAAU,OAAM3W,SAEfw0B,GAAC,GAAAtzB,OAJM28E,EAAImI,SAASqV,MAAK,KAAAn6F,OAAIszB,IAMhC3zB,cAAA,cAIJA,cAAC8Y,KAAG,CAA0B2hF,GAAI,EAAG3kF,UAAU,OAAM3W,SAClD69E,EAAImI,SAASqV,OADNxd,EAAImI,SAASqV,QAIxB,GAGP,CACEljE,OAAQ,OACRytD,SAAU,QAEZ,CACEztD,OAAQ,SACRytD,SAAU,SACV1xE,MAAO,OAET,CACEikB,OAAQ,oBACRytD,SAAU,YACVE,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjB71F,cAAC4nF,GAAQ,CACPhgF,KAAMo1E,EAAImI,SAASuJ,UACnB7G,MAAI,EACJ/iC,SAAS,qBACT,EAEJzxC,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,UACVE,KAAM6Q,IAAmB,IAAlB,IAAE9Y,GAAU8Y,EACjB,MAAM,sBAAE/L,GAA0BJ,GAAW,CAC3C7pF,MAAO,cACPvD,MAAOygF,EAAImI,SAAStlC,QACpBgqC,gBAAgB,EAChBJ,OAAS5pC,IAnHI/tC,WACrBi+B,EAAcC,EAAI,EAmHR85C,CAAe,IAAK9M,EAAImI,SAAUtlC,QAASA,GAAU,IAIzD,OAAO7/C,cAAC+pF,EAAqB,GAAG,EAElC12E,MAAO,MAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMiR,IAAA,IAAC,IAAElZ,GAAUkZ,EAAA,OACjBl2F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACg/E,GAAe,CAACt5D,QAASA,IA3Jd5T,WACpB+Y,EAAKu6B,MAAM,CACTp8C,OAAQgnC,EAAIhnC,SAGdkW,EAAS,CAAEriB,KAAMqzC,GAAcM,aAActyB,QAAS8xB,IACtDspD,GAAY,EAqJ4BO,CAAc7c,EAAImI,UAAUhmF,SAC1Da,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAE3B,EAERD,MAAO,QAGX,CAACs8B,EAAUE,IASb,OACEp/B,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,8CAI3Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAGo7D,UAbUh8E,IACV,UAAVA,EAAEhN,KAA2B,OAAR6xC,QAAQ,IAARA,KAAUjjB,WACjCg6D,GACF,EAU0CvnF,SACtCsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAAC4lF,GAAU,CACTj+D,aAAa,MACbo/D,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,WACL6Y,GAAG,eACH24B,OAAO,aACPrzC,MAAOozC,EACP1lB,SAAWriB,GACTA,GACAsX,EAAS,CACPriB,KAAMqzC,GAAcU,mBACpB1yB,QAAStW,UAMnB5H,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,KAAKE,YAAU,EAAAvnB,SAChCa,cAAC4lF,GAAU,CACTj+D,aAAa,MACb3hB,QAAiB,OAAR2pC,QAAQ,IAARA,OAAQ,EAARA,EAAUE,SACnBk3C,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,SACL6Y,GAAG,aACH24B,OAAO,aACPrzC,MAAOszC,EACP5lB,SAAWriB,GACTsX,EAAS,CACPriB,KAAMqzC,GAAcW,iBACpB3yB,QAAa,OAAJtW,QAAI,IAAJA,SAAQpL,UAM3BwD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8Y,KAAG,CAAC7F,MAAO,CAAEonB,UAAW,QAASl7B,SAChCa,cAACwmF,GAAY,CACXvvE,GAAG,oBACHgR,WAAmB,OAAR0nB,QAAQ,IAARA,KAAUjjB,WACrBhH,QAASghE,EAAavnF,SACvB,wBAOTa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,gBAE9Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8+E,GAAM,CACL1gF,KAAK,OACLooB,MAAM,OACNvV,QAAQ,WACR8W,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO,OACvB,CAAEiqB,MAAO,kBAAmBjqB,MAAO,mBACnC,CAAEiqB,MAAO,kBAAmBjqB,MAAO,mBACnC,CAAEiqB,MAAO,kBAAmBjqB,MAAO,mBACnC,CAAEiqB,MAAO,kBAAmBjqB,MAAO,mBACnC,CAAEiqB,MAAO,kBAAmBjqB,MAAO,mBACnC,CAAEiqB,MAAO,cAAejqB,MAAO,eAC/B,CAAEiqB,MAAO,oBAAqBjqB,MAAO,qBACrC,CAAEiqB,MAAO,kBAAmBjqB,MAAO,mBACnC,CAAEiqB,MAAO,aAAcjqB,MAAO,eAEhCA,MAAO09F,EACPhwE,SAAWnf,IACTovF,EAAepvF,EAAEoL,OAAO3Z,MAAgB,MAI9CyD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8+E,GAAM,CACL1gF,KAAK,SACLooB,MAAM,SACNvV,QAAQ,WACR8W,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO,OACvB,CAAEiqB,MAAO,UAAWjqB,MAAO,WAC3B,CAAEiqB,MAAO,MAAOjqB,MAAO,OACvB,CAAEiqB,MAAO,WAAYjqB,MAAO,aAE9BA,MAAOg9F,EACPtvE,SAAWnf,IACT0uF,EAAiB1uF,EAAEoL,OAAO3Z,MAAgB,WAMnD0wE,GAAajtE,cAAC02E,KAAc,CAACtiE,MAAM,cACnCglF,GAAeA,EAAYz7F,OAAS,EACnCqC,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAMutF,EACNxe,YAAU,EACVtK,MAAI,EACJyK,cAAe,CAAC,QAAS,eAAgB,aAG3B,MAAhB1qC,GACwB,KAAb,OAAX+oD,QAAW,IAAXA,OAAW,EAAXA,EAAaz7F,SACXqC,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,MAIf74E,cAACy4F,GAAS,CACRhoD,YAAaA,EACb5lB,KAAMA,EACNQ,aAjSgBrf,IAChBykC,IACsB,YAApBzkC,EAAShD,OACXinC,EAAM,IAAKQ,EAAaznC,OAAQgD,EAAShD,SACZ,aAApBgD,EAAShD,QAClBoC,EAAQ,IAAKqlC,EAAaznC,OAAQgD,EAAShD,SAE7C2vF,IACF,EA0RIA,WAAYA,EACZD,gBAAiBA,EACjBhxE,SAAUA,MAEX,EEjXQgzE,OAjBa,CAC1B,CACE9kF,KAAM,+BACNxX,KAAM,eACNyX,OAAO,EACPC,UAAW9V,cAACg6F,GAAiB,IAC7BtlF,WAAYqZ,GAAgB8C,sBAE9B,CACEjb,KAAM,wBACNxX,KAAM,yBACNyX,OAAO,EACPC,UAAW9V,cAACm5F,GAAiB,IAC7BzkF,WAAYqZ,GAAgB8C,uBCAjB8pE,ICpBX,GAAO,GAAQ,GAAQ,GDoBZA,GAX0BA,IAErC36F,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,0BAAyBX,SAAA,CAC1Ca,cAAC83F,GAAO,CAACxiF,MAAOolF,KAChB16F,cAACmV,EAAM,CAACG,MAAOolF,GAAWnlF,SAAS,yB,oBCb3C,SAAS,KAAiS,OAApR,GAAWrX,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASwkF,GAAS17F,EAAMyX,GACtB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,gaACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,gaACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,+6DACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,gaACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiB8jF,IAClC,Q,qBCyBA1C,OA9CoBh5F,IAAe,IAAd,KAAE27F,GAAM37F,EAC1C,MAAO47F,EAAWC,GAAgBtpF,mBAAiB,GASnD,OACEzR,cAAAyV,WAAA,CAAAtW,SACG07F,EAAKl9F,OAAS,GACb8S,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC6oC,KAAO,CACNn4B,UAAWC,KAAOwnF,OAClB57F,MAAOu+F,EACP7wE,SAdgB+wE,CACxB39E,EACAgC,KAEA07E,EAAa17E,EAAS,EAWd47E,kBAAmB,CAAEhoF,MAAO,CAAES,WAAY,YAAcvU,SAEvD07F,EAAKnlF,KAAKk6C,GACTA,EAAI/5B,MACF71B,cAACu4F,KAAG,CAEF/xE,MACExmB,cAAC21B,KAAK,CACJjlB,UAAWC,KAAOklB,MAClBD,aAAcg6B,EAAI/5B,MAClBzhB,MAAM,YAAWjV,SAEhBywD,EAAIppC,SAPJopC,EAAIppC,OAYXxmB,cAACu4F,KAAG,CAAiB/xE,MAAOopC,EAAIppC,OAAtBopC,EAAIppC,WAInBq0E,EAAKC,GAAWz2F,YAGpB,E,qBC8BQ62F,ICrFX,GAAO,GDqFIA,GArE0Ch8F,IAAgB,IAAf,MAAEq+C,GAAOr+C,EACjE,MAAMy4B,EAAajB,KACnB,OACE12B,cAAAyV,WAAA,CAAAtW,SACEa,cAAA,OAAK0Q,UAAWmiB,aAAKjN,KAAW0/C,KAAM30D,KAAO20D,MAAMnmE,SACjDsR,eAAA,OAAKC,UAAWkV,KAAWu1E,QAAQh8F,SAAA,CACjCa,cAAA,OAAK0Q,UAAWkV,KAAWw1E,eAAej8F,SACvCo+C,EAAM7nC,KAAI,CAACgnC,EAAM7+C,IAChB4S,eAACmb,KAAI,CACHhb,WAAS,EAAAzR,SAAA,CAGTa,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBsR,eAACqI,KAAG,CAAC4S,GAAIiM,EAAWhB,GAAK,EAAI,EAAEx3B,SAAA,CAC7Ba,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAC1Ba,cAACgR,IAAU,CACTC,QAAQ,YACRmD,MAAM,UACNlB,QAAQ,SAAQ/T,SACjB,SAIHsR,eAACO,IAAU,CAACC,QAAQ,YAAYiC,QAAQ,SAAQ/T,SAAA,CAC7Cu9C,EAAKnqC,UAAU,IAAEmqC,EAAKpqC,iBAI7BtS,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBsR,eAACqI,KAAG,CAAC4S,GAAIiM,EAAWhB,GAAK,EAAI,EAAEx3B,SAAA,CAC7Ba,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAC1Ba,cAACgR,IAAU,CAACC,QAAQ,QAAQiC,QAAQ,SAAQ/T,SAAC,eAI/Ca,cAACgR,IAAU,CAACC,QAAQ,YAAYiC,QAAQ,SAAQ/T,SAC7Cu9C,EAAKymC,YAIZnjF,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAAC8Y,KAAG,CAAC5F,QAAQ,SAAQ/T,SAClBu9C,EAAKsE,KAAKtrC,KAAI,CAAC+vC,EAAGtvC,IACjBnW,cAAC8Y,KAAG,CAEF4S,GACE7tB,IAAU0/C,EAAM5/C,OAAS,GACzBwY,IAAMumC,EAAKsE,KAAKrjD,OAAS,EACrB,EACA,EACLwB,SAEDa,cAACgR,IAAU,CAACC,QAAQ,QAAQiC,QAAQ,SAAQ/T,SACzCsmD,KATEA,WAcN,GAAAplD,OAhDCq8C,EAAK0mC,WAAU,KAAA/iF,OAAIq8C,EAAKnqC,UAAS,KAAAlS,OAAIq8C,EAAKpqC,eAoDxDtS,cAAA,OAAKiT,MAAO,CAAEI,MAAO,OAAQ00B,YAAa,iBAG7C,EChFP,SAAS,KAAiS,OAApR,GAAW7pC,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASilF,GAAoBn8F,EAAMyX,GACjC,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,6pBACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,SAAU,CACpEO,GAAI,GACJC,GAAI,GACJC,EAAG,IACHC,OAAQ,aAEZ,CACA,MAAM,GAA0B,aAAiB6jF,IAClC,IC9BR,MAAMC,GAA4B/xE,cAAY+I,GACnDgO,aAAa,CACX7B,OAAQ,CACNrqB,MAAO,UACP4D,UAAW,eACXojB,WAAY,OACZlS,WAAYoJ,EAAMipE,YAAY3xF,OAAO,YAAa,CAChDy6D,SAAU/xC,EAAMipE,YAAYl3B,SAASm3B,WAEvC,8BAA+B,CAC7B/yE,gBAAiB,6BAGrBgzE,WAAY,CACVzjF,UAAW,sBCuHF0jF,OAzHoDx8F,IAG5D,IAH6D,iBAClEy8F,EAAgB,SAChBjoD,GACDx0C,EACC,OACEuR,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,aAAYrnB,SAC7Ba,cAACmnB,GAAS,CACRC,UAAU,EACVhpB,KAAK,YACLvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTpqB,MAAOo/F,EAAiBppF,UACxB0E,GAAE,GAAA5W,OAAKqzC,EAAQ,oBAIrB1zC,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACmnB,GAAS,CACRC,UAAU,EACVhpB,KAAK,WACLvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTpqB,MAAOo/F,EAAiBrpF,SACxB2E,GAAE,GAAA5W,OAAKqzC,EAAQ,mBAIrB1zC,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CACRC,UAAU,EACVhpB,KAAK,eACLvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTpqB,MAAOo/F,EAAiBE,aACxB5kF,GAAE,GAAA5W,OAAKqzC,EAAQ,0BAKvB1zC,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAACmnB,GAAS,CACRC,UAAU,EACVhpB,KAAK,UACLvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTpqB,MAAOo/F,EAAiBG,QACxB7kF,GAAE,GAAA5W,OAAKqzC,EAAQ,oBAKvBjjC,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAACmnB,GAAS,CACRC,UAAU,EACVhpB,KAAK,OACLvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTpqB,MAAOo/F,EAAiBI,KACxB9kF,GAAE,GAAA5W,OAAKqzC,EAAQ,eAIrB1zC,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,SAAQrnB,SACzBa,cAACmnB,GAAS,CACRC,UAAU,EACVhpB,KAAK,WACLvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTpqB,MAAOo/F,EAAiBK,SACxB/kF,GAAE,GAAA5W,OAAKqzC,EAAQ,mBAIrB1zC,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,QAAOrnB,SACxBa,cAACmnB,GAAS,CACRC,UAAU,EACVhpB,KAAK,QACLvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTpqB,MAAOo/F,EAAiBM,MACxBhlF,GAAE,GAAA5W,OAAKqzC,EAAQ,qBAKtB,E,uCC3HQwoD,OAJMA,IACMl9F,qBAAW8c,IACZN,UCNnB,IAAK2gF,GAAO,SAAPA,GAAO,OAAPA,EAAO,SAAPA,EAAO,WAAPA,EAAO,gBAAPA,EAAO,gBAAPA,CAAO,MAOZ,MAAMC,GAAiB,CAC5B,CAAC51E,MAAO,OAAQjqB,MAAO4/F,GAAQE,MAC/B,CAAC71E,MAAO,SAAUjqB,MAAO4/F,GAAQG,QACjC,CAAC91E,MAAO,cAAejqB,MAAO4/F,GAAQI,aACtC,CAAC/1E,MAAO,cAAejqB,MAAO4/F,GAAQK,c,uDCgBzBC,OAlBf,SAA4B1nF,GAC1B,MAAM,OAAE/L,GAAW+L,EAEnB,MAAe,aAAX/L,EACKhJ,cAAC08F,KAAI,CAAC9/F,KAAK,QAAQ4pB,MAAM,WAAWvV,QAAQ,WAAWyrB,KAAM18B,cAAC28F,KAAW,CAAC1pF,MAAO,CAAEmB,MAAO,aAAiBnB,MAAO,CAAEmB,MAAO,UAAWqU,gBAAiB,UAAWwhB,YAAa,aAGzK,aAAXjhC,EACKhJ,cAAC08F,KAAI,CAAC9/F,KAAK,QAAQ4pB,MAAM,WAAWvV,QAAQ,WAAWyrB,KAAM18B,cAAC48F,KAAY,CAAC3pF,MAAO,CAACmB,MAAO,aAAiBnB,MAAO,CAACmB,MAAO,UAAWqU,gBAAiB,UAAWwhB,YAAa,aAGxK,YAAXjhC,EACKhJ,cAAC08F,KAAI,CAAC9/F,KAAK,QAAQ4pB,MAAM,UAAUvV,QAAQ,WAAWyrB,KAAM18B,cAAC68F,KAAU,CAAC5pF,MAAO,CAACmB,MAAO,aAAgBnB,MAAO,CAACmB,MAAO,UAAWqU,gBAAiB,UAAWwhB,YAAa,aAG5KjqC,cAAC08F,KAAI,CAAC9/F,KAAK,QAAQ4pB,MAAM,QAAQvV,QAAQ,WAAWyrB,KAAM18B,cAAC88F,KAAY,KAChF,ECceC,OA9Bf,SAAgChoF,GAC9B,MAAM,WAAEioF,GAAejoF,EAevB,MAbuBkoF,MACrB,MAAMC,EAAepwD,KAAOkwD,GACtBG,EAAMrwD,OACNswD,EAAOF,EAAaE,KAAKD,EAAK,SAAS,GAC7C,OAAOC,EAAO,GAAKA,EAAO,CAAC,EASzBH,GACKj9F,cAAC08F,KAAI,CAAC9/F,KAAK,QAAQ4pB,MAAM,gBAAgBvV,QAAQ,WAC3CyrB,KAAM18B,cAAC68F,KAAU,CAAC5pF,MAAO,CAAEmB,MAAO,aAClCnB,MAAO,CAAEmB,MAAO,UAAWqU,gBAAiB,UAAWwhB,YAAa,aATjEozD,MAChB,MAAMH,EAAepwD,KAAOkwD,GACtBM,EAAQxwD,OACd,OAAOowD,EAAa38B,SAAS+8B,EAAM,EASjCD,GACKr9F,cAAC08F,KAAI,CAAC9/F,KAAK,QAAQ4pB,MAAM,UAAUvV,QAAQ,WAAWyrB,KAAM18B,cAAC68F,KAAU,CAAC5pF,MAAO,CAAEmB,MAAO,aAClFnB,MAAO,CAAEmB,MAAO,UAAWqU,gBAAiB,UAAWwhB,YAAa,aAG5EjqC,cAAAyV,WAAA,GACT,ECPe8nF,OAvBf,SAAuBxoF,GACrB,MAAM,MAAEyR,EAAK,MAAEjqB,GAAUwY,EAEzB,IAAIyoF,EAAkBjhG,EAMtB,MAJc,KAAVA,QAA0BC,IAAVD,GAAiC,OAAVA,IACzCihG,EAAkB,KAIlBx9F,cAACmnB,KAAS,CACRlU,MAAO,CAAEI,MAAO,QAChBmT,MAAOA,EACPjqB,MAAOihG,EACPh2E,WAAY,CACVE,UAAU,EACVD,kBAAkB,GAEpBxW,QAAQ,YAGd,ECtBA,MAAMtC,GAAe,2BAuGNu4E,OA1DoB,CACjCuW,mBAAqB/pD,GACnBznC,EAAa,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAIqzC,IAElCgqD,oBAAqBA,IACnBzxF,EAAa,GAAD5L,OAAIsO,GAAY,aAE9BgvF,gBAAkB97B,GAChB51D,EAAuB,GAAD5L,OAAIsO,GAAY,YAAY,CAAEkzD,eAEtD+7B,eAAgBA,CAAC/7B,EAAoBlvB,IACnC1mC,EAAuB,GAAD5L,OAAIsO,GAAY,WAAW,CAAEkzD,aAAYlvB,WAEjEkrD,kBACEp9E,IAEA,MAAMzU,EAAWiZ,GAAYxE,GAE7B,OAAOxU,EAAc,GAAD5L,OAAIsO,IAAgB3C,EAAU,CAChDjC,QAAS,CACP,eAAgB,wBAElB,EAGJ+zF,eAAiBr9E,IACf,MAAMzU,EAAWiZ,GAAYxE,GAE7B,OAAOxU,EAAa,GAAD5L,OAAIsO,IAAgB3C,EAAU,CAC/CjC,QAAS,CACP,eAAgB,wBAElB,EAGJg0F,eAAiBl8B,GACf51D,EAAgB,GAAD5L,OAAIsO,GAAY,KAAAtO,OAAIwhE,IAErCm8B,iCAAmC9/E,GACjCjS,EAAa,GAAD5L,OACPsO,GAAY,KAAAtO,OAAI6d,EAAQw1B,SAAQ,gBAAArzC,OAAe6d,EAAQ2jD,YAC1D,CAAE3uB,aAAc,SAGpB+qD,mBAAqB//E,GACZxU,EAASwC,IAAI,GAAD7L,OACdsO,GAAY,KAAAtO,OAAI6d,EAAQw1B,SAAQ,gBAAArzC,OAAe6d,EAAQ2jD,YAC1D,CAAE3uB,aAAc,SAIpBgrD,sBAAwBr8B,GACtB51D,EAAa,GAAD5L,OAAIsO,GAAY,aAAAtO,OAAYwhE,GAAc,CAAC,GAEzDs8B,SAAUA,CAACC,EAAoBC,IAC7BpyF,EAAc,GAAD5L,OAAIsO,GAAY,UAAAtO,OAAS+9F,EAAU,KAAA/9F,OAAIg+F,GAAU,CAAC,ICnFpDC,OAff,SAA+BvpF,GAAe,IAADwpF,EAC3C,MAAM,SAAE99E,GAAa1L,EAErB,OACE/U,cAACswF,GAAkB,CACjBC,QAASrJ,GAA2B8W,iCACpCxN,gBAAiB,CACf3uB,WAAYphD,EAASohD,WACrBnuB,SAA2B,QAAnB6qD,EAAE99E,EAASizB,gBAAQ,IAAA6qD,IAAI99E,EAASizB,UAE1CjxB,SAAUhC,EAASgC,UAGzB,ECMO,SAASD,GAAiBg8E,GAA2B,IAADC,EACzD,IAAKD,EACH,MAAO,GAET,MAAME,EAAQF,EAASx6E,MAAM,KAC7B,OAAO06E,EAAM/gG,OAAS,GAAe,QAAd8gG,EAAGC,EAAMC,aAAK,IAAAF,IAAS,EAChD,CAEO,SAASG,GAAsBhzF,GACpC,MACM4yF,EA5BR,SAA2CK,GAEzC,MAAMC,EAAgBD,EAAmB36E,MAAM,0CACzC66E,EAAoBF,EAAmB36E,MAAM,+BAEnD,IAAIzB,EAAW,KAUf,OARyB,MAArBs8E,GAA6BA,EAAkB,GAEjDt8E,EAAWu8E,mBAAmBD,EAAkB,IACtB,MAAjBD,GAAyBA,EAAc,KAEhDr8E,EAAWq8E,EAAc,GAAGjgE,QAAQ,QAAS,KAGxCpc,CACT,CAYmBw8E,CADUrzF,EAAS7B,QAAQ,wBAG5C,OADiByY,GAAyB,OAARg8E,QAAQ,IAARA,IAAY,GAEhD,CCwDeU,OA3Ef,SAAoCnqF,GAA4B,IAADoqF,EAC7D,MAAM,SAAE1+E,GAAa1L,GAEf,WAAEoE,GAAeQ,MAEhBf,EAAM6e,GAAWhmB,oBAAS,IAC1BhL,EAAY24F,GAAiB3tF,wBAA6BjV,IAC1DwpB,EAASm0E,GAAgB1oF,oBAAS,GA6BzCqB,qBAAU,KACRssF,OAAc5iG,EAAU,GACvB,CAACikB,IAEJ,MAAM4+E,EAAgD,QAAxC78E,GAAiB/B,EAASgC,UAExC,OACEhS,eAAA,OAAAtR,SAAA,CACEsR,eAAC4V,KAAU,CACTzpB,KAAK,QACL8T,UAAWC,KAAO8/E,yBAClB/qE,QAASA,IAtCkB5T,WAC3BrL,EACFgxB,GAAQ,IAGV0iE,GAAa,GAEbjT,GACG8W,iCAAiC,CAChCn8B,WAAYphD,EAASohD,WACrBnuB,SAAUjzB,EAASizB,WAEpB/oC,MAAMmxC,IACL,KAAIA,GAAQA,EAAKl/C,KAAO,GAMtB,MAAM0N,MAAM,GAADjK,OAAIoiB,EAAQ,wBANE,CACzB,MACM68E,GADa7+F,OAAOm3E,KAAOn3E,OAAOyvF,WACZrY,gBAAgB/7B,GAC5CsjD,EAAcE,GACd7nE,GAAQ,EACV,CAEA,IAED30B,OAAM,KACLqW,EAAWjW,EAAUuB,SAAS7C,MAAMqD,aAAa,IAChD4N,SAAQ,IAAMsnF,GAAa,KAAO,EAcpBzJ,CAAyBjwE,EAASgC,UAAUtjB,SAAA,CAE3Da,cAAC2wF,GAAgB,IACjB3wF,cAAA,OAAAb,SAAuB,QAAvBggG,EAAM1+E,EAASgC,gBAAQ,IAAA08E,IAAI,oBAE5Bn5E,GAAWhmB,cAAC02E,KAAc,IAC3BjmE,eAACu7B,KAAM,CACLx7B,SAAS,KACT1Q,MAAK,GAAAO,OAAKogB,EAAS8+E,aAAY,eAC/B3mF,KAAMA,EACN+R,QAASA,IAAM8M,GAAQ,GAAOt4B,SAAA,CAE9BsR,eAAC+7B,KAAW,CAAArtC,SAAA,CAAEshB,EAAS8+E,aAAa,iBACpC9uF,eAAC87B,KAAa,CAAAptC,SAAA,EACVkgG,GACAr/F,cAAA,OAAKiT,MAAO,CAAEI,MAAO,QAAUxC,IAAKpK,EAClCsK,IAAG,GAAA1Q,OAAKogB,EAAS8+E,aAAY,iBAGhCF,GACCr/F,cAACs+F,GAAqB,CAAC79E,SAAUA,YAM7C,ECuBe++E,OAjGf,SAA8BzqF,GAC5B,MAAM,SAAE0L,GAAa1L,EACfyG,EAAY0gF,KAEZuD,EAAc73F,IAClB,GAAKA,EAGL,OAAOklC,KAAOllC,GAAMgoC,OAAO,cAAc,EAGrC8vD,EAAeC,IAAyB,IAADC,EAC3C,OAAyD,QAAzDA,EAAOpkF,EAAUkB,MAAK5R,GAAKA,EAAE60F,cAAgBA,WAAY,IAAAC,OAAA,EAAlDA,EAAoDF,WAAW,EASxE,OACE1/F,cAAAyV,WAAA,CAAAtW,SACEsR,eAACovF,KAAI,CAAC5uF,QAAQ,WAAU9R,SAAA,CACtBa,cAAC8/F,KAAU,CACThgG,MACE2Q,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACbsR,eAACmb,KAAI,CAACG,MAAI,EAACnb,WAAS,EAACu2B,QAAS,EAAGh0B,WAAW,WAAW+zB,eAAe,aAAY/nC,SAAA,CAChFa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC+/F,KAAgB,CAAC9gB,KAAG,EAAC0gB,YAAal/E,EAASu/E,gBAAiB/sF,MAAO,CAAEoB,aAAc,eAEtFrU,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACPshB,EAAS4zE,kBAGd5jF,eAACmb,KAAI,CAACG,MAAI,EAACnb,WAAS,EAACu2B,QAAS,EAAGh0B,WAAW,SAAS+zB,eAAe,aAAY/nC,SAAA,CAC9Ea,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACy8F,GAAkB,CAACzzF,OAAQyX,EAASzX,WAElB,aAApByX,EAASzX,QACRhJ,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC+8F,GAAsB,CAACC,WAAYv8E,EAASu8E,uBAQzDh9F,cAACigG,KAAW,CAAChtF,MAAO,CAAE8V,WAAY,GAAI5pB,SACpCsR,eAACmb,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAEhoC,SAAA,CACzBa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,kBAAkBjqB,MAAOkkB,EAASy/E,mBAEzDlgG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,cAAcjqB,MAAOkjG,EAAWh/E,EAASu8E,gBAEhEh9F,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,aAAajqB,MAAOkjG,EAAWh/E,EAAS0/E,eAE/DngG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,aAAajqB,MAAOkkB,EAASlO,cAEpDvS,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,YAAYjqB,MAAOkkB,EAASnO,aAEnDtS,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,cAAcjqB,MAAOkkB,EAAS2/E,eAErDpgG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,aAAajqB,MAAOkjG,EAAWh/E,EAASq0C,eAE/D90D,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,mBAAmBjqB,MAAOmjG,EAAYj/E,EAAS4/E,sBAEtErgG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,gBAAgBjqB,MAAOkkB,EAAS6/E,cAEvDtgG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,iBAAiBjqB,MAAOkkB,EAAS8/E,eAExDvgG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,cAAcjqB,MAAOmjG,EAAYj/E,EAASu/E,qBAEjEhgG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,SAASjqB,MAtEpBiW,KAAoB,IAADguF,EACvC,OAEC,QAFDA,EAAOpE,GAAe1/E,MACnB4M,GAAWA,EAAO/sB,QAAUiW,WAC9B,IAAAguF,OAAA,EAFMA,EAEJh6E,KAAK,EAmEuCi6E,CAAahgF,EAASjO,YAE7DxS,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACk/F,GAA0B,CAACz+E,SAAUA,eAOpD,ECwLeigF,OAzQkDxhG,IAG1D,IAH2D,SAChEyrE,EAAQ,SACRvjD,GAAW,GACZloB,EACC,MAAMy4B,EAAajB,KACbiqE,EAAuB5tC,KACvB5qC,EAAUmzE,MACTsF,EAAUC,GAAepvF,oBAAS,GACnC8yE,EAAc/vE,KAEbqrC,EAAS6pC,GAAcj4E,mBAAS,IACvCqB,qBAAU,KACR42E,EAAW/e,EAAS9qB,QAAQ,GAC3B,CAAC8qB,EAAS9qB,UAEb,MAAM,sBAAEkqC,GAA0BJ,GAAW,CAC3C7pF,MAAO,oBACPvD,MAAOsjD,EACP4pC,OAAS5pC,IACP8gD,EAAqB5wD,cAAc,CACjCkE,cAAe02B,EAAS12B,cACxB6nB,WAAY6O,EAAS7O,WACrBpoB,SAAUi3B,EAASj3B,SACnBmM,QAASA,GACT,EAEJgqC,gBAAgB,EAChBjtF,KAAM,MAGDkkG,EAAcC,GAAmBtvF,oBAAS,GAE3CuvF,EACmB,OAAvBr2B,EAAS7V,WAELhoB,OAASswD,KAAKzyB,EAAS7V,UAAW,SAAS,IAAU,GAErD18C,EAAW5Y,GAEbiR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,SAAQhU,SAAA,CACrCa,cAACihG,GAAW,CAAChuF,MAAO,CAAEW,SAAU,aAChC5T,cAAC8Y,KAAG,CAACsiB,WAAY,EAAEj8B,SACjBa,cAACgR,IAAU,CACTC,QAAQ,YACRmD,MAAM,YACNnB,MAAO,CAAE6yB,WAAY,QAAS3mC,SAE7BK,SAOXsT,qBAAU,KACRiuF,EAAgBp2B,EAASrY,YAAY,GACpC,CAACqY,EAASrY,cAEb,MAYM4uC,EAAoBA,KACxBL,GAAaD,EAAS,EAGxB,OACE5gG,cAAAyV,WAAA,CAAAtW,SACEsR,eAAA,OAAKC,UAAWkV,KAAW0/C,KAAMryD,MAAO,CAAEoB,aAAc,QAASlV,SAAA,CAC/DsR,eAAA,OAAKC,UAAWkV,KAAWu1E,QAAQh8F,SAAA,CACjCa,cAAA,OAAK0Q,UAAWkV,KAAWw1E,eAAej8F,SACxCsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBsR,eAACqI,KAAG,CAAC4S,GAAIiM,EAAWhB,GAAK,EAAI,EAAEx3B,SAAA,CAC7BsR,eAACqI,KAAG,CAAC4S,GAAI,EAAEvsB,SAAA,CACTa,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAC1Ba,cAACgR,IAAU,CACTC,QAAQ,YACRmD,MAAM,UACNlB,QAAQ,SAAQ/T,SAEfwrE,EAASw2B,iBAGd1wF,eAACO,IAAU,CAACC,QAAQ,YAAYiC,QAAQ,SAAQ/T,SAAA,CAC7CwrE,EAASp4D,UAAU,IAAEo4D,EAASr4D,eAGnCtS,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACZ6hG,GACChhG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACdiZ,EAAQ,WAGZuyD,EAASy2B,SACRphG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACdiZ,EAAQ,gBAKjB3H,eAACqI,KAAG,CAAC4S,GAAIi/C,EAAShmB,UAAY,EAAI,EAAExlD,SAAA,CAClCa,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAC1Ba,cAACgR,IAAU,CAACC,QAAQ,QAAQiC,QAAQ,SAAQ/T,SAAC,kBAI9ColF,IACEA,EAAYlzE,YAAY2D,SACvB+Y,GAAgBsC,uCAEhBk0D,EAAYlzE,YAAY2D,SACtB+Y,GAAgBoC,uCAElBo0D,EAAYlzE,YAAY2D,SACtB+Y,GAAgB2B,6CAElB1vB,cAACgR,IAAU,CAACC,QAAQ,YAAYiC,QAAQ,SAAQ/T,SAC9Ca,cAAC0hC,IAAI,CACHxrB,OAAO,SACPhB,GAAE,yBAAA7U,OAA2BsqE,EAAS12B,eAAgB90C,SAEtDa,cAACq6F,KAAO,CAACvkF,UAAU,SAAS1B,MAAM,UAASjV,SACxCwrE,EAAS12B,oBAKhBj0C,cAACgR,IAAU,CAACC,QAAQ,YAAYiC,QAAQ,SAAQ/T,SAC7CwrE,EAAS12B,mBAKjB02B,EAAShmB,WACRl0C,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAC1Ba,cAACgR,IAAU,CAACC,QAAQ,QAAQiC,QAAQ,SAAQ/T,SAAC,UAI/Ca,cAACgR,IAAU,CAACC,QAAQ,YAAYiC,QAAQ,SAAQ/T,SAC7CwrE,EAAShmB,oBAOpB3kD,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBsR,eAACqI,KAAG,CAAC4S,GAAIiM,EAAWhB,GAAK,EAAI,EAAEx3B,SAAA,CAC7Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,kBAE9Ba,cAACwhF,KAAgB,CACf16D,QACE9mB,cAACqhG,KAAM,CACLjtF,MAAM,UACNstE,QAASof,EACT72E,SA7GpB5M,IAEA,MAAM6yC,EAAY7yC,EAAMnH,OAAOwrE,QAC/Bif,EAAqB1wC,kBAAkB,CACrChc,cAAe02B,EAAS12B,cACxB6nB,WAAY6O,EAAS7O,WACrBpoB,SAAUi3B,EAASj3B,SACnB4e,YAAapC,GACb,EAsGkBjoC,SAAUb,IAGdZ,MAAOs6E,EAAe,MAAQ,YAIpC9gG,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAAC8Y,KAAG,CAAC5F,QAAQ,SAAQ/T,SAClBwrE,EAAS3pB,KAAKtrC,KAAI,CAAC+vC,EAAG5nD,KAAK,IAAAyjG,EAAAC,EAAA,OAC1B9wF,eAACqI,KAAG,CAEF4S,GAAI7tB,IAAU8sE,EAAS3pB,KAAKrjD,OAAS,EAAI,EAAI,EAAEwB,SAAA,CAE/Ca,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAC1Ba,cAACgR,IAAU,CAACC,QAAQ,QAAQiC,QAAQ,SAAQ/T,SACzCsmD,MAGLzlD,cAACgR,IAAU,CAACC,QAAQ,YAAYiC,QAAQ,SAAQ/T,SAEnB,QAD1BmiG,EAAAX,EAAqBjjF,MAAMwzC,oBACzBx0C,MAAM4lC,GAAMA,EAAErB,MAAQwE,WAAE,IAAA67C,GAGxB,QAHwBC,EAD1BD,EAEG7uC,UAAU/1C,MACTE,GAAMA,EAAE82B,WAAai3B,EAASj3B,kBAChC,IAAA6tD,GAJFA,EAII3uC,UACD,UACA,kBAfDnN,EAiBD,QAIX9tB,EAAWR,KACVn3B,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAAC+pF,EAAqB,MAGtB/pF,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTsR,eAAC4pF,KAAO,CACNjmF,MAAM,UACNsR,QAASw7E,EACTprF,UAAW9E,IACXC,QAAQ,QAAO9R,SAAA,CAChB,OACMyhG,EAAW,SAAW,SAAS,yBAM/CjpE,EAAWR,KACVn3B,cAACqmB,KAAU,CACT3V,UAAWmiB,aAAK1K,EAAQsW,OAAQ,CAC9B,CAACtW,EAAQszE,YAAamF,IAExBl7E,QAASw7E,EAAkB/hG,SAE3Ba,cAACwhG,KAAc,MAGfxhG,cAAC+pF,EAAqB,OAG5B/pF,cAAC8/B,KAAQ,CAACC,GAAI6gE,EAAU5gE,QAAS,EAAGC,eAAa,EAAA9gC,SAC/CsR,eAACqI,KAAG,CAAC+0B,GAAIlW,EAAWhB,GAAK,EAAI,EAAEx3B,SAAA,CAC7Ba,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CACRC,UAAU,EACVnQ,GAAE,GAAA5W,OAAKsqE,EAASj3B,SAAQ,aACxBt1C,KAAK,WACLvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTpqB,MAAOouE,EAAS82B,aAGpBzhG,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,2BAG3Ca,cAACw/F,GAAoB,CAAC/+E,SAAUkqD,EAASlqD,WACzCzgB,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,sBAG3Ca,cAAC07F,GAAoB,CACnBC,iBAAkBhxB,EAAS1iB,UAC3BvU,SAAUi3B,EAASj3B,oBAK1B,E,qBChOQguD,OAvDkCxiG,IAAgB,IAAf,MAAEq+C,GAAOr+C,EACzD,MAAMy4B,EAAajB,KACnB,OACE12B,cAAAyV,WAAA,CAAAtW,SACEa,cAAA,OAAK0Q,UAAWmiB,aAAKjN,KAAW0/C,KAAM30D,KAAO20D,MAAMnmE,SACjDsR,eAAA,OAAKC,UAAWkV,KAAWu1E,QAAQh8F,SAAA,CACjCa,cAAA,OAAK0Q,UAAWkV,KAAWw1E,eAAej8F,SACvCo+C,GACCA,EAAM7nC,KAAI,CAACgnC,EAAM7+C,IACf4S,eAACmb,KAAI,CACHhb,WAAS,EAAAzR,SAAA,CAGTa,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBsR,eAACqI,KAAG,CAAC4S,GAAIiM,EAAWhB,GAAK,EAAI,EAAEx3B,SAAA,CAC7Ba,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAC1Ba,cAACgR,IAAU,CACTC,QAAQ,YACRmD,MAAM,UACNlB,QAAQ,SAAQ/T,SACjB,SAIHsR,eAACO,IAAU,CAACC,QAAQ,YAAYiC,QAAQ,SAAQ/T,SAAA,CAC7Cu9C,EAAKnqC,UAAU,IAAEmqC,EAAKpqC,iBAI7BtS,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBsR,eAACqI,KAAG,CACF4S,GACE7tB,IAAU0/C,EAAM5/C,OAAS,EAAI,EAAIg6B,EAAWhB,GAAK,EAAI,EACtDx3B,SAAA,CAEDa,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAC1Ba,cAACgR,IAAU,CAACC,QAAQ,QAAQiC,QAAQ,SAAQ/T,SAAC,eAI/Ca,cAACgR,IAAU,CAACC,QAAQ,YAAYiC,QAAQ,SAAQ/T,SAC7Cu9C,EAAKymC,cAGL,GAAA9iF,OAjCCq8C,EAAK0mC,WAAU,KAAA/iF,OAAIq8C,EAAKnqC,UAAS,KAAAlS,OAAIq8C,EAAKpqC,eAqC1DtS,cAAA,OAAKiT,MAAO,CAAEI,MAAO,OAAQ00B,YAAa,iBAG7C,E,mDC1DP,MAAMp5B,GAAe,WAkCNgzF,OAhCK,CAClBC,uBAAwBA,CAAC3tD,EAAuBP,EAAkBif,EAAuB74C,IACvF7N,EAAa,GAAD5L,OAAIsO,GAAY,6BAAAtO,OAA4B4zC,EAAa,cAAA5zC,OAAaqzC,EAAQ,mBAAArzC,OAAkBsyD,GAAiB,CAAE74C,gBACjI+nF,qBAAsBA,IACpB51F,EAAa,GAAD5L,OAAIsO,GAAY,wBAC9BmzF,mBAAqBznF,GACnBpO,EAAc,GAAD5L,OAAIsO,GAAY,uBAAuB,CAAE0L,SACxD0nF,sBAAwB1nF,GACtBpO,EAAgB,GAAD5L,OAAIsO,GAAY,wBAAAtO,OAAuBga,IAExD2nF,qBAAsBA,IACpB/1F,EAAa,GAAD5L,OAAIsO,GAAY,wBAC9BszF,mBACEC,GAEAj2F,EAAc,GAAD5L,OAAIsO,GAAY,uBAAuBuzF,GACtDC,sBACED,GAEAj2F,EAAa,GAAD5L,OAAIsO,GAAY,uBAAuBuzF,GACrDE,sBAAwBnrF,GACtBhL,EAAgB,GAAD5L,OAAIsO,GAAY,wBAAAtO,OAAuB4W,IAExDorF,aAAcA,IACZp2F,EAAa,GAAD5L,OAAIsO,GAAY,eAC9B2zF,YAAcl0B,GACZniE,EAAwB,GAAD5L,OAAIsO,GAAY,cAAcy/D,GACvDiB,eAAiBjB,GACfniE,EAAuB,GAAD5L,OAAIsO,GAAY,cAAcy/D,GACtDm0B,eAAiBtrF,GACfhL,EAAgB,GAAD5L,OAAIsO,GAAY,eAAAtO,OAAc4W,KCqElCurF,OA1Ff,SAA+BztF,GAC7B,MAAM,SAAC41D,EAAQ,YAAE9X,EAAW,OAAElyD,GAAUoU,GAElC,WAACoE,GAAcQ,MAEd8oF,EAAcC,GAAmBjxF,mBAA+B,KAChEkxF,EAAqBC,GAA0BnxF,oBAAkB,GAmCxE,OAjCAqB,qBAAU,KACR8vF,GAAuB,GAEvBjB,GAAYC,uBAAuBj3B,EAAS12B,cAAe02B,EAASj3B,SAAUi3B,EAAShY,eACpFhoD,MAAMo2B,IACL,GAAIhuB,IAAEC,QAAQ+tB,GAAM,OAEpB,IAAI8hE,EAAM9hE,EAAII,QAAOr2B,GAAKA,EAAEnK,SAAWA,GAAUmK,EAAE+nD,cAAgBA,IACnEgwC,EAAM9vF,IAAE+vF,QAAQD,GAAK/3F,GAAKA,EAAEi4F,YAAY,QACpCF,EAAIllG,OAAS,GAAG+kG,EAAgBG,EAAI,IAEzC//F,OAAM,KACLqW,EAAW,2EAA2E,IAEvFtG,SAAQ,KACP+vF,GAAuB,EAAM,GAC7B,GAEH,CAACj4B,IAgBFl6D,eAACqI,KAAG,CAAC+0B,GAAI,EAAGm1D,GAAI,CAAChvF,cAAe,UAAU7U,SAAA,CACxCa,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAAC,yBAG/BwjG,GAAuB3iG,cAACmU,IAAgB,CAAClD,QAAQ,mBAEhDwxF,IAAiBE,GACjB3iG,cAACgR,IAAU,CAACN,UAAWmiB,aAAKliB,KAAOsyF,aAAchyF,QAAQ,QAAO9R,SAAC,qBArB/C+jG,MACtB,MAAMC,EAAgBpwF,IAAEqwF,KAAKX,EAAa/sF,KAAI5K,GAAKA,EAAEu4F,gBAC/C93E,EAAS,GAEf,IAAK,MAAM83E,KAAgBF,EAAe,CAExC,MAAMG,EAASvwF,IAAE+vF,QAAQL,EAAathE,QAAOr2B,GAAKA,EAAEu4F,eAAiBA,KAAev4F,GAAKA,EAAEi4F,YAAY,QAAQ,GAC/Gx3E,EAAO9rB,KAAK6jG,EACd,CAEA,OAAO/3E,CAAM,EAaV23E,GAAkBxtF,KAAK+sF,IAAY,IAAAc,EAAA,OAClCvjG,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAAChb,WAAS,EAAuBF,UAAWmiB,aAAKliB,KAAOsyF,aAAa9jG,SAAA,CACxEa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SAEfsR,eAACqI,KAAG,CAACkqF,GAAI,CAAC9vF,QAAS,OAAQc,cAAe,UAAU7U,SAAA,CAClDa,cAACgR,IAAU,CAACC,QAAQ,QACRmD,MAAM,UACNlB,QAAQ,SAAQ/T,SACzBsjG,EAAae,eAEhBxjG,cAAA,OAAAb,SACEa,cAAC08F,KAAI,CAACl2E,MAAgC,QAA3B+8E,EAAEd,EAAaY,oBAAY,IAAAE,OAAA,EAAzBA,EAA2B9oD,cAAermC,MAAM,UACvDxX,KAAK,iBAIjBoD,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,GAAGptB,SAChBsR,eAACqI,KAAG,CAACkqF,GAAI,CAAC9vF,QAAS,OAAQc,cAAe,SAAUF,YAAa,QAAQ3U,SAAA,CAEvEsR,eAACO,IAAU,CAACC,QAAQ,QAAO9R,SAAA,CACxBsjG,EAAagB,qBACZ1wF,IAAEC,QAAQyvF,EAAaiB,eAAiBjzF,eAAAgF,WAAA,CAAAtW,SAAA,CACxCa,cAAA,SACCyiG,EAAaiB,mBAGlB1jG,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SACxBwkG,KAAMlB,EAAaM,YAAYnzD,OAAO,8BA1B1B6yD,EAAaxrF,KA+BjC,MAIX,ECpEA,MAAM2sF,GAAgB,cAsRPC,IC9TX,GAAO,GD8TIA,GApR0C3kG,IAIQ,IAJP,SACEyrE,EAAQ,SACRvjD,GAAW,EAAK,IAChB65B,GACD/hD,EACzD,MAAMy4B,EAAajB,KACbiqE,EAAuB5tC,KACvB5qC,EAAUmzE,MACTsF,EAAUC,GAAepvF,oBAAS,GACnC8yE,EAAc/vE,KAEbqrC,EAAS6pC,GAAcj4E,mBAAS,IAEvCqB,qBAAU,KACR42E,EAAW/e,EAAS9qB,QAAQ,GAC3B,CAAC8qB,EAAS9qB,UAEbl+C,QAAQiB,IAAI+nE,EAAS/X,WACrB,MAAM,sBAACm3B,GAAyBJ,GAAW,CACzC7pF,MAAO,oBACPvD,MAAOsjD,EACP4pC,OAAS5pC,IACP8gD,EAAqB5wD,cAAc,CACjCkE,cAAe02B,EAAS12B,cACxB6nB,WAAY6O,EAAS7O,WACrBpoB,SAAUi3B,EAASj3B,SACnBmM,QAASA,GACT,EAEJgqC,gBAAgB,EAChBjtF,KAAM,MAGF,WAACuc,GAAcQ,MAEdhZ,EAAQmjG,GAAaryF,wBAA6BjV,IAClDq2D,EAAakxC,GAAkBtyF,wBAA6BjV,GAEnEsW,qBAAU,KACR,MAAMkxF,EAAa/iD,EAAI/8B,MAAM0/E,IAC7B,GAAII,GACEA,EAAWrmG,QAAU,EAAG,CAC1B,MAAMgD,EAASqjG,EAAW,GACpBnxC,EAAcmxC,EAAW,GAC/BF,EAAUnjG,GACVojG,EAAelxC,EACjB,CACF,GACC,CAAC5R,IAIJ,MASMgjD,EAA6BC,IATJC,QAULD,EATxBvD,EAAqBtwC,gBAAgB,CACnCpc,cAAe02B,EAAS12B,cACxB0e,cAAegY,EAAShY,cACxBjf,SAAUi3B,EAASj3B,SACnBkf,UAAWuxC,GAKqB,EAG9BjD,EAAoBA,KACxBL,GAAaD,EAAS,EAGlBI,EACmB,OAAvBr2B,EAAS7V,WAELhoB,OAASswD,KAAKzyB,EAAS7V,UAAW,SAAS,IAAU,GAErD18C,EAAW5Y,GAEbiR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,SAAQhU,SAAA,CACrCa,cAACihG,GAAW,CAAChuF,MAAO,CAACW,SAAU,aAC/B5T,cAAC8Y,KAAG,CAACsiB,WAAY,EAAEj8B,SACjBa,cAACgR,IAAU,CACTC,QAAQ,YACRmD,MAAM,YACNnB,MAAO,CAAC6yB,WAAY,QAAQ3mC,SAE3BK,SAOX,OACEQ,cAAAyV,WAAA,CAAAtW,SACEsR,eAAA,OAAKC,UAAWkV,KAAW0/C,KAAKnmE,SAAA,CAC9BsR,eAAA,OAAKC,UAAWkV,KAAWu1E,QAAQh8F,SAAA,CACjCa,cAAA,OAAK0Q,UAAWkV,KAAWw1E,eAAej8F,SACxCsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBsR,eAACqI,KAAG,CAAC4S,GAAIiM,EAAWhB,GAAK,EAAI,EAAEx3B,SAAA,CAC7BsR,eAACqI,KAAG,CAAC4S,GAAI,EAAEvsB,SAAA,CACTa,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAC1Ba,cAACgR,IAAU,CACTC,QAAQ,YACRmD,MAAM,UACNlB,QAAQ,SAAQ/T,SAEfwrE,EAASw2B,iBAGd1wF,eAACO,IAAU,CAACC,QAAQ,YAAYiC,QAAQ,SAAQ/T,SAAA,CAC7CwrE,EAASp4D,UAAU,IAAEo4D,EAASr4D,eAGlC0uF,GAAWr2B,EAASy2B,SACnBphG,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACZ6hG,GACChhG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACdiZ,EAAQ,WAGZuyD,EAASy2B,SACRphG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACdiZ,EAAQ,gBAOnB3H,eAACqI,KAAG,CAAC4S,GAAIi/C,EAAShmB,UAAY,EAAI,EAAExlD,SAAA,CAClCa,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAC1Ba,cAACgR,IAAU,CAACC,QAAQ,QAAQiC,QAAQ,SAAQ/T,SAAC,kBAI7ColF,IACCA,EAAYlzE,YAAY2D,SACrB+Y,GAAgBsC,uCAElBk0D,EAAYlzE,YAAY2D,SACtB+Y,GAAgBoC,wCAEtBo0D,EAAYlzE,YAAY2D,SACtB+Y,GAAgB2B,4CAEhB1vB,cAACgR,IAAU,CAACC,QAAQ,YAAYiC,QAAQ,SAAQ/T,SAC9Ca,cAAC0hC,IAAI,CACHxrB,OAAO,SACPhB,GAAE,yBAAA7U,OAA2BsqE,EAAS12B,eAAgB90C,SAEtDa,cAACq6F,KAAO,CAACvkF,UAAU,SAAS1B,MAAM,UAASjV,SACxCwrE,EAAS12B,oBAKhBj0C,cAACgR,IAAU,CAACC,QAAQ,YAAYiC,QAAQ,SAAQ/T,SAC7CwrE,EAAS12B,mBAIf02B,EAAShmB,WACRl0C,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAC1Ba,cAACgR,IAAU,CAACC,QAAQ,QAAQiC,QAAQ,SAAQ/T,SAAC,UAI/Ca,cAACgR,IAAU,CAACC,QAAQ,YAAYiC,QAAQ,SAAQ/T,SAC7CwrE,EAAShmB,oBAMpB3kD,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBsR,eAACqI,KAAG,CAAC4S,GAAIiM,EAAWhB,GAAK,EAAI,EAAEx3B,SAAA,CAC7BsR,eAACO,IAAU,CAACC,QAAQ,QAAQiC,QAAQ,SAAQ/T,SAAA,CAAC,eAC9B,OAEfa,cAACgR,IAAU,CAACC,QAAQ,YAAYiC,QAAQ,SAAQ/T,SAC7CwrE,EAASrY,YAAc,MAAQ,YAItCtyD,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC8Y,KAAG,CAAC4S,GAAIiM,EAAWhB,GAAK,EAAI,EAAEx3B,SAC7Ba,cAACumB,GAAW,CAAApnB,SACVa,cAAC8nB,GAAa,CACZ7Q,GAAG,gCACH7Y,KAAK,SACLxB,KAAK,QACLmrB,QAAS,CACP,CAACvB,MAAO,UAAWjqB,OAAO,GAC1B,CAACiqB,MAAO,UAAWjqB,OAAO,IAE5BA,MAAOouE,EAAS/X,UAChB3qC,SAAUb,EACV6C,SAAUA,CAAClX,EAAEqxF,IAAKH,EAA0BG,WAKnDzsE,EAAWP,KACVp3B,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAIjmB,UAAU,iBAAgBvR,SAClDa,cAAA,OAAK0Q,UAAU,WAAUvR,SACvBa,cAAC+pF,EAAqB,QAI1B/pF,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBsR,eAAC4pF,KAAO,CACNjmF,MAAM,UACNsR,QAASw7E,EACTprF,UAAW9E,IACXC,QAAQ,QAAO9R,SAAA,CAChB,OACMyhG,EAAW,SAAW,SAAS,yBAS7CjpE,EAAWR,KACVn3B,cAACqmB,KAAU,CACT3V,UAAWmiB,aAAK1K,EAAQsW,OAAQ,CAC9B,CAACtW,EAAQszE,YAAamF,IAExBl7E,QAASw7E,EAAkB/hG,SAE3Ba,cAACwhG,KAAc,MAGjBxhG,cAAC+pF,EAAqB,OAIzBl3B,GAAelyD,GAAUX,cAACwiG,GAAqB,CAAC73B,SAAUA,EAAU9X,YAAaA,EAAalyD,OAAQA,IAEvGX,cAAC8/B,KAAQ,CAACC,GAAI6gE,EAAU5gE,QAAS,EAAGC,eAAa,EAAA9gC,SAC/CsR,eAACqI,KAAG,CAAC+0B,GAAIlW,EAAWhB,GAAK,EAAI,EAAEx3B,SAAA,CAC7Ba,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CACRC,UAAU,EACVnQ,GAAE,GAAA5W,OAAKsqE,EAASj3B,SAAQ,aACxBt1C,KAAK,WACLvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTpqB,MAAOouE,EAAS82B,aAGpBzhG,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,2BAG3Ca,cAACw/F,GAAoB,CAAC/+E,SAAUkqD,EAASlqD,WACzCzgB,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,sBAG3Ca,cAAC07F,GAAoB,CACnBC,iBAAkBhxB,EAAS1iB,UAC3BvU,SAAUi3B,EAASj3B,oBAK1B,E,qBCzTP,SAAS,KAAiS,OAApR,GAAWx1C,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASiuF,GAAWnlG,EAAMyX,GACxB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,6pBACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,SAAU,CACpEO,GAAI,GACJC,GAAI,GACJC,EAAG,IACHC,OAAQ,aAEZ,CACA,MAAM,GAA0B,aAAiB6sF,IAClC,ICmfAC,OA5eqBA,KAAO,IAADC,EACxC,MAAMhgB,EAAc/vE,IACdmjB,EAAajB,KACnB,IAAI,MAAE8tE,EAAK,MAAEC,GAAUC,cACvB,MAAOlqD,EAAYmqD,GAAiBlzF,mBAAsB,OAAL+yF,QAAK,IAALA,IAAS,KACvDhyD,EAAYoyD,GAAiBnzF,mBAClCgzF,EAAmC,QAA9BF,EAAGz3D,KAAO23D,EAAO,qBAAa,IAAAF,IAAI,KAAOz3D,KAAO,IAAI/uC,KAAQ,gBAE5DiL,EAAQ67F,GAAapzF,mBAAoC,aAE1DkvF,EAAuB5tC,KAuBvB+xC,EAAwBA,KAC5BnE,EAAqB1uC,mBAAmB,CAAEzX,aAAYhI,aAAYxpC,UAAS,EAUvE+7F,EAAkBj6F,IAEV,UAAVA,EAAEhN,KACoB,KAAtB08C,EAAWlN,QACXkF,GACAA,EAAW9lB,WAEXo4E,GACF,EAmBIr0C,EAAQA,CAACxP,EAAayP,KAC1BZ,GAAiBW,MACfkwC,EAAqBjjF,MAAM+zC,QAAQjX,WACnCmmD,EAAqBjjF,MAAM+zC,QACxBjf,WAAYc,QAAQ,OACpBr1C,cACH0iG,EAAqBjjF,MAAM+zC,QAAQzoD,OACnCi4C,EACAyP,GACA/lD,MAAM4gB,IACN,GAAIA,GAAUA,EAAO3uB,KAAO,EAAG,CAC7B,MAAM+0F,EAAO,IAAIptE,KAAK,CAACgH,GAAS,oBAAqB,CACnD1uB,KAAM,oBAER,IAAImoG,EAAUvkG,OAAOm3E,IAAIC,gBAAgB8Z,GACzC,IAAI/hC,EAAMnvD,OAAOmY,OACL,OAARg3C,IACFA,EAAIlvD,SAASqiB,KAAOiiF,EAExB,IACA,EAIEC,EAAehkD,GAEjBjhD,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAWxb,GAAI,EAAEvsB,SAClDa,cAACw1B,KAAU,CAACvkB,QAAQ,UAAUwkB,QAAQ,kBAAiBt2B,SACnDu2B,GACAjlB,eAACW,IAAM2E,SAAQ,CAAA5W,SAAA,CACbsR,eAACkV,KAAM,CACLvR,MAAM,YACNnB,MAAO,CAAEmjB,SAAU,WACfN,uBAAYJ,GAAWv2B,SAAA,CAE3Ba,cAACklG,GAAS,CACRpuF,KAAK,YACL7D,MAAO,CAAE80B,YAAa,MAAO10B,MAAO,OAAQC,OAAQ,UACnD,IAAI,0BAGT7C,eAAC00F,KAAI,IACCC,oBAAS1vE,GACbyrD,mBAAoB,KACpB1oE,aAAc,CACZC,SAAU,SACVC,WAAY,UAEdud,gBAAiB,CACfxd,SAAU,MACVC,WAAY,UACZxZ,SAAA,CAEFa,cAAC86B,KAAQ,CACPpV,QAASA,KACP+qC,EAAMxP,GAAK,GACXvrB,EAAW2vE,OAAO,EAClBlmG,SACH,kBAGDa,cAAC86B,KAAQ,CACPpV,QAASA,KACP+qC,EAAMxP,GAAK,GACXvrB,EAAW2vE,OAAO,EAClBlmG,SACH,2BAWTmmG,EACJ9qD,EAAW78C,OAAS,IAAM68C,EAAWC,cAAcv2B,MAAM,iBAE3D,OACEzT,eAACwoE,GAAW,CAACn5E,MAAM,iBAAgBX,SAAA,CACjCa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAYhU,SACzCsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,gBAAernB,SAC1Ca,cAACmnB,GAAS,CACRlQ,GAAG,8BACHtP,YAAY,SACZpL,MAAOi+C,EACPssC,UAAWie,EACX96E,SAtJkBnf,IAC9B65F,EAAc75F,EAAEoL,OAAO3Z,MAAM,EAsJjByvB,WAAY,CAAE/Y,MAAO,CAAEo2B,cAAe,cACtCjd,WACEk5E,EACI,yDACA,GAEN1jG,MAAO0jG,QAIbtlG,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,iBAAgBrnB,SAC3Ca,cAAC4lF,GAAU,CACT3uE,GAAG,+BACH8vE,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZyL,OAAO,OACPhV,KAAK,gBACL7B,MAAOi2C,EACPs0C,UAAWie,EACX96E,SAxKkBnf,IAC9B85F,EAAc95F,GAAKA,EAAE4hB,UAAYogB,KAAOhiC,EAAE+kC,UAAoB,KAAK,QA2K7D7vC,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,SAAQrnB,SACnCa,cAAC8nB,GAAa,CACZ7Q,GAAG,2CACH7Y,KAAK,SACLxB,KAAK,QACLmrB,QAAS,CACP,CAAEvB,MAAO,YAAajqB,MAAO,aAC7B,CAAEiqB,MAAO,YAAajqB,MAAO,cAE/BA,MAAOyM,EACPihB,SAnLas7E,CAACloF,EAAY6mF,KAClCA,IACFW,EAAUX,GACgB,KAAtB1pD,EAAWlN,QAAiBkF,GAAcA,EAAW9lB,WACvDi0E,EAAqB1uC,mBAAmB,CACtCzX,aACAhI,aACAxpC,OAAQk7F,IAGd,QA8KMlkG,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACwmF,GAAY,CACXvvE,GAAG,+BACHgR,SACEq9E,KAEwB,KAAtB9qD,EAAWlN,QACXkF,GACAA,EAAW9lB,WAGfhH,QAASo/E,EACT7xF,MACE0kB,EAAWR,KACP,CAAEkD,UAAW,QACb,CAAEhmB,aAAc,QACrBlV,SACF,iCAONwhG,EAAqBjjF,MAAMo0C,iBAC1BrhD,eAACqI,KAAG,CACF+0B,GAAIlW,EAAWX,OAAS,EAAI,EAC5BtL,GAAIiM,EAAWX,OAAS,EAAI,EAC5B7jB,WAAW,aACXD,QAAQ,OACRxC,UAAWC,KAAO60F,kBAAkBrmG,SAAA,CAEpCa,cAAA,QAAM0Q,UAAWC,KAAO80F,sBACxBzlG,cAACihG,GAAW,IACZjhG,cAACgR,IAAU,CAACC,QAAQ,QAAQP,UAAWC,KAAO+0F,aAAavmG,SACxD+D,EAAUgG,SAASE,4BAKzBu3F,EAAqBjjF,MAAMsI,SAC1BhmB,cAAC02E,KAAc,CAACtiE,MAAM,eAEtBusF,EAAqBjjF,MAAMsI,SAC3BvV,eAAAgF,WAAA,CAAAtW,SAAA,CACGolF,EAAYlzE,YAAY2D,SACvB+Y,GAAgBkD,0CAEhB0vE,EAAqBjjF,MAAMg8B,WACzBjpC,eAACqI,KAAG,CAAC4S,GAAIiM,EAAWR,KAAO,EAAI,EAAEh4B,SAAA,CAC/Ba,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAC1Ba,cAACgR,IAAU,CAACC,QAAQ,YAAYiC,QAAQ,SAAQ/T,SAAC,gBAInDa,cAACwhF,KAAgB,CACf16D,QACE9mB,cAACqhG,KAAM,CACLjtF,MAAM,UACNstE,QAASif,EAAqBjjF,MAAMi0C,YACpC1nC,SAlOlB5M,IAEA,MAAM+yC,EAAY/yC,EAAMnH,OAAOwrE,QAC/Bif,EAAqBxwC,kBAAkBC,EAAU,EAgO/BnoC,SAEE,cADA04E,EAAqBjjF,MAAM+zC,QAAQzoD,SAKzCwd,MAAOm6E,EAAqBjjF,MAAMi0C,YAAc,MAAQ,UAI/DgvC,EAAqBjjF,MAAMk8B,aAC1B55C,cAAAyV,WAAA,CAAAtW,SACGwhG,EAAqBjjF,MAAMg8B,UAC1B15C,cAACk4F,GAAI,CACH2C,KAAM,IACD8F,EAAqBjjF,MAAMsjC,KAAKtrC,KAAK+vC,IAAC,IAAA67C,EAAAC,EAAAoE,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,MAAM,CAC7C3/E,MAAOi/B,EACPphD,QACEoM,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CACHhb,WAAS,EACTuC,WAAW,SACX+zB,eAAe,gBAAe/nC,SAAA,CAE9Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOy0E,GAAI,EAAGx0E,WAAW,SAAQhU,SAC5Ca,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SACrBwhG,EAAqBjjF,MAAMyzC,iBAIlCnxD,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SAEN,cADDwhG,EAAqBjjF,MAAM+zC,QAAQzoD,UAMX,KAApB,QAHDs4F,EAAAX,EAAqBjjF,MAAMuzC,gBAAgBv0C,MACxC4lC,GACCA,EAAE3hD,OAAS,MAAQ2hD,EAAEuQ,cAAgBpN,WACxC,IAAA67C,OAAA,EAHDA,EAGG/jD,MAAM5/C,SAGI,IAFbgjG,EAAqBjjF,MAAMwzC,oBAAoB/vB,QAC5CmhB,GAAMA,EAAErB,MAAQwE,IACjB9nD,SAEJsnG,EAAYx/C,QAIS,QAFpB87C,EACNZ,EAAqBjjF,MAAMwzC,oBACzBx0C,MAAM4lC,GAAMA,EAAErB,MAAQwE,WAAE,IAAA87C,OAAA,EAD1BA,EAEG9uC,UAAU/8C,KAAKkH,GACf5c,cAAC6jG,GAAe,CACd5iD,IAAKwE,EAELklB,SAAU/tD,EACVwK,SAEI,cADFu5E,EAAqBjjF,MAAM+zC,QAAQzoD,QAEnC23F,EAAqBjjF,MAAMwzC,oBACxB/vB,QAAQmhB,GAAMA,EAAErB,MAAQwE,IACxB+M,SAASlQ,GAAMA,EAAEmQ,YAAW,GAAGK,UACnC,GAAAzyD,OAROuc,EAAE82B,SAAQ,KAAArzC,OAAIuc,EAAE+1C,cAAa,KAAAtyD,OAAIuc,EAAEq3B,mBAchD,QAFA0xD,EAAAhF,EAAqBjjF,MAAMuzC,gBAAgBv0C,MACzC4lC,GAAMA,EAAE3hD,OAAS,MAAQ2hD,EAAEuQ,cAAgBpN,WAC7C,IAAAkgD,OAAA,EAFAA,EAEEpoD,SAGA,QAFDqoD,EAAAjF,EAAqBjjF,MAAMuzC,gBAAgBv0C,MACxC4lC,GAAMA,EAAE3hD,OAAS,MAAQ2hD,EAAEuQ,cAAgBpN,WAC7C,IAAAmgD,OAAA,EAFDA,EAEGroD,MAAM5/C,QAAU,IAGlB,QAHmBkoG,EACpBlF,EAAqBjjF,MAAMwzC,oBAAoBx0C,MAC5C4lC,GAAMA,EAAErB,MAAQwE,WAClB,IAAAogD,OAAA,EAFDA,EAEGpzC,aAGF,QAFDqzC,EAAAnF,EAAqBjjF,MAAMwzC,oBAAoBx0C,MAC5C4lC,GAAMA,EAAErB,MAAQwE,WAClB,IAAAqgD,OAAA,EAFDA,EAEGrzC,UAAU90D,QAAU,GACrBqC,cAAA,MAAI0Q,UAAWC,KAAOy1F,MAIzB,QAFAL,EAAApF,EAAqBjjF,MAAMuzC,gBAAgBv0C,MACzC4lC,GAAMA,EAAE3hD,OAAS,MAAQ2hD,EAAEuQ,cAAgBpN,WAC7C,IAAAsgD,OAAA,EAFAA,EAEExoD,SAGA,QAFDyoD,EAAArF,EAAqBjjF,MAAMuzC,gBAAgBv0C,MACxC4lC,GAAMA,EAAE3hD,OAAS,MAAQ2hD,EAAEuQ,cAAgBpN,WAC7C,IAAAugD,OAAA,EAFDA,EAEGzoD,MAAM5/C,QAAU,GACjBqC,cAAC0hG,GAAW,CACVnkD,MAIG,QAJE0oD,EACHtF,EAAqBjjF,MAAMuzC,gBAAgBv0C,MACxC4lC,GACCA,EAAE3hD,OAAS,MAAQ2hD,EAAEuQ,cAAgBpN,WACxC,IAAAwgD,OAAA,EAHDA,EAGG1oD,QAMU,KAApB,QAFA2oD,EAAAvF,EAAqBjjF,MAAMuzC,gBAAgBv0C,MACzC4lC,GAAMA,EAAE3hD,OAAS,MAAQ2hD,EAAEuQ,cAAgBpN,WAC7C,IAAAygD,OAAA,EAFAA,EAEE3oD,MAAM5/C,SAGM,IAFbgjG,EAAqBjjF,MAAMwzC,oBAAoB/vB,QAC5CmhB,GAAMA,EAAErB,MAAQwE,IACjB9nD,QAEA,cADFgjG,EAAqBjjF,MAAM+zC,QAAQzoD,QAEjChJ,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOy0E,GAAI,EAAGx0E,WAAW,SAAQhU,SAC5Ca,cAACgR,IAAU,CAACC,QAAQ,QAAQmD,MAAM,UAASjV,SAAC,mCAO7B,KAApB,QAFAgnG,EAAAxF,EAAqBjjF,MAAMuzC,gBAAgBv0C,MACzC4lC,GAAMA,EAAE3hD,OAAS,MAAQ2hD,EAAEuQ,cAAgBpN,WAC7C,IAAA0gD,OAAA,EAFAA,EAEE5oD,MAAM5/C,SAGM,IAFbgjG,EAAqBjjF,MAAMwzC,oBAAoB/vB,QAC5CmhB,GAAMA,EAAErB,MAAQwE,IACjB9nD,QAEA,cADFgjG,EAAqBjjF,MAAM+zC,QAAQzoD,QAEjChJ,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOy0E,GAAI,EAAGx0E,WAAW,SAAQhU,SAC5Ca,cAACgR,IAAU,CAACC,QAAQ,QAAQmD,MAAM,UAASjV,SAAC,0BAOhD,cADDwhG,EAAqBjjF,MAAM+zC,QAAQzoD,QAElC23F,EAAqBjjF,MAAMwzC,oBACxB/vB,QAAQmhB,GAAMA,EAAErB,MAAQwE,IACxB+M,SAASlQ,GAAMA,EAAEmQ,YAAW90D,OAAS,GACtCqC,cAAC8Y,KAAG,CACF5F,QAAQ,OACRC,WAAW,SACX+zB,eAAe,SACf2G,GAAI,EAAE1uC,SAENsR,eAACkV,KAAM,CACL9oB,KAAK,SACLoU,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBP,QAASA,KACP2gF,OA1VhC1lG,EA2VkC8kD,EAAEzhC,MAAM,OAAO,GA1VjD6uC,EA2VkCpN,EAAEzhC,MAAM,OAAO,GA1VjD8uC,GA2VmC6tC,EAAqBjjF,MAAMwzC,oBACzB/vB,QAAQmhB,GAAMA,EAAErB,MAAQwE,IACxB+M,SAASlQ,GAAMA,EAAEmQ,YAAW,GAAGK,cA3VpE6tC,EAAqBpwC,eAAe,CAClC/V,WAAYmmD,EAAqBjjF,MAAM+zC,QAAQjX,WAC/ChI,WAAYmuD,EAAqBjjF,MAAM+zC,QACpCjf,WAAYc,QAAQ,OACpBr1C,cACH0C,OAAQA,EACRkyD,YAAaA,EACbC,SAAUA,IAZgBuzC,IAC5B1lG,EACAkyD,EACAC,CA+V+B,EAAA3zD,SAAA,CAEAwhG,EAAqBjjF,MAAMwzC,oBACzB/vB,QAAQmhB,GAAMA,EAAErB,MAAQwE,IACxB+M,SAASlQ,GAAMA,EAAEmQ,YAAW,GAAGK,SAC9B,QACA,SAAS,cAOzBj9B,MAAM,GAADx1B,OACHsgG,EAAqBjjF,MAAMwzC,oBACxB/vB,QAAQxN,GAAMA,EAAEstB,MAAQwE,IACxB3nB,QAAO,CAACzZ,EAAG0Z,IAAQA,EAAI00B,UAAU90D,OAAS0mB,GAAG,GAChDs8E,EAAqBjjF,MAAMuzC,gBACxB9vB,QAAQxN,GAAMA,EAAEhzB,OAAS,MAAQgzB,EAAEk/B,cAAgBpN,IACnD3nB,QAAO,CAACzZ,EAAG0Z,IAAQA,EAAIwf,MAAM5/C,OAAS0mB,GAAG,IAE/C,IACD,CACEmC,MAAO,WACPniB,QACEoM,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CACHhb,WAAS,EACTuC,WAAW,SACX+zB,eAAe,gBAAe/nC,SAAA,CAE9Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOy0E,GAAI,EAAGx0E,WAAW,SAAQhU,SAC5Ca,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SACrBwhG,EAAqBjjF,MAAMyzC,iBAIlCnxD,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SAEN,cADDwhG,EAAqBjjF,MAAM+zC,QAAQzoD,QACnBi8F,EAAY,YAIhCtE,EAAqBjjF,MAAMszC,gBAAgBt7C,KACzCkH,GACC5c,cAAC0gG,GAAmB,CAElB/1B,SAAU/tD,EACVwK,SAEE,cADAu5E,EAAqBjjF,MAAM+zC,QAAQzoD,QAEpC,GAAA3I,OALOuc,EAAE82B,SAAQ,KAAArzC,OAAIuc,EAAEq3B,kBAS7B0sD,EAAqBjjF,MAAMqzC,YAAYpzD,OAAS,GAC/CgjG,EAAqBjjF,MAAMszC,gBAAgBrzD,OACzC,GAAKqC,cAAA,MAAI0Q,UAAWC,KAAOy1F,KAC9BzF,EAAqBjjF,MAAMqzC,YAAYpzD,OACtC,GACAqC,cAACk7F,GAAe,CACd39C,MAAOojD,EAAqBjjF,MAAMqzC,qBAShD/wD,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,aAOT,EC/gBX,IAAKytB,GAAc,SAAdA,GAAc,OAAdA,EAAc,kBAAdA,EAAc,sBAAdA,EAAc,qBAAdA,EAAc,oBAAdA,EAAc,sBAAdA,CAAc,MCEX,SAASC,GAAa98F,GAAuC,IAAD,IAAA+8F,EAAApwF,UAAAzY,OAArB8oG,EAAI,IAAA/pG,MAAA8pG,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,EAAA,GAAAtwF,UAAAswF,GACxD,OAAOj9F,EAAKo1B,QAAQ,cAAc,SAAU4rC,GAC1C,OAAOg8B,GAAMh8B,EAAEk8B,OAAO,EAAGl8B,EAAE9sE,OAAS,IAAM,EAC5C,GACF,CAEO,SAASipG,GAAoBn9F,GAClC,OAAW,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMo9F,UAAU,OAAOhoE,QAAQ,mBAAoB,GAC5D,CAEO,SAASioE,GACdr9F,EACA2R,GAEA,IAAI2rF,EAAiBH,GAAoBn9F,GACrCu9F,EAAmBJ,GAA8B,OAAVxrF,QAAU,IAAVA,OAAU,EAAVA,EAAY6rF,YAAYC,WAC/DliF,EAA0B,OAAd+hF,QAAc,IAAdA,OAAc,EAAdA,EACZtsD,cACDp5B,QAAwB,OAAhB2lF,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBvsD,eACzB0sD,EAAa,EACbC,EAAY,EAEhB,IADA,IAAIC,EAAa,GACVriF,GAAa,GAclB,GAbAoiF,EAAYpiF,EAAYgiF,EAAiBrpG,OACzC0pG,EAAW5nG,KACTgR,eAAAgF,WAAA,CAAAtW,SAAA,CACGsK,EAAK9K,UAAUwoG,EAAYniF,GAC5BhlB,cAAA,QAAMiT,MAAO,CAAEwV,gBAAiB,UAAWtpB,SACxCsK,EAAK9K,UAAUqmB,EAAWoiF,SAIjCpiF,EAA0B,OAAd+hF,QAAc,IAAdA,OAAc,EAAdA,EACRtsD,cACDp5B,QAAwB,OAAhB2lF,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBvsD,cAAe2sD,GAC5CD,EAAaC,EACTpiF,EAAY,EAEd,OADAqiF,EAAW5nG,KAAKO,cAAAyV,WAAA,CAAAtW,SAAGsK,EAAK9K,UAAUyoG,MAC3BpnG,cAAAyV,WAAA,CAAAtW,SAAGkoG,IAGd,OAAOrnG,cAAAyV,WAAA,CAAAtW,SAAGsK,GACZ,CCjBe69F,OAhB4CpoG,IAGpD,IAHqD,KAC1DuK,KACGsL,GACJ7V,EACC,OACEc,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoU,QAAQ,YACRP,UAAWkV,KAAWK,0BAClBlR,EAAK5V,SAEJ,OAAJsK,QAAI,IAAJA,IAAQvG,EAAUC,QAAQG,MACpB,E,qBC4Bb,MAAMikG,GAA+Bn9E,OAAaC,MAAM,CACpD1X,MAAOyX,OAEF5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDC,QACG1C,EAAUqC,WAAWc,mBACrBnD,EAAUqC,WAAWW,gBAqSlBshG,OAjS4CtoG,IAGQ,IAHP,yBACIuoG,EAAwB,eACxBn+B,GACHpqE,EACzD,MAAOwoG,EAAcC,GAAmBl2F,wBACpCjV,GAEEm7B,EAAajB,MACb,WAACvd,GAAcQ,MAGjBgzB,UAAWi7D,EACXh7D,UAAWi7D,EACXn9E,UAAWo9E,GACXr7D,KAEE5hB,EAAOC,aAAiC,CAC1C+pE,cAAe,CACXliF,MAAmB,OAAZ+0F,QAAY,IAAZA,OAAY,EAAZA,EAAc/0F,OAEzBsY,KAAM,MACNF,SAAUC,aAAYu8E,MAG1Bz0F,qBAAU,KACN+X,EAAKu6B,MAAM,CACPzyC,MAAmB,OAAZ+0F,QAAY,IAAZA,OAAY,EAAZA,EAAc/0F,OACvB,GACH,CAAC+0F,IAEJ,MAAMK,EAAyB/+F,IAC3B,GAAKA,GAA4B,IAAlBA,EAAOrL,OAItB,OAAKqL,EAAO8b,MAAMlI,GAAMA,IAAM0pF,GAAe0B,YAGxCh/F,EAAO8b,MAAMlI,GAAMA,IAAM0pF,GAAe2B,WAItC,KAHI,IAHA,GAMA,EAGTC,EAAWT,EAAyB3pE,QACtC,CAACC,EAAmBC,KAChB,MAAMngC,EAAQkgC,EAAI/Y,WACbzN,GACGA,EAAE08B,gBAAkBjW,EAAKiW,eACzB18B,EAAE4wF,cAAgBnqE,EAAK0V,WAE/B,OAAI71C,GAAS,EACFgxC,aAAQ9Q,GAAM+Q,IACjBA,EAAMnvC,OAAO9B,EAAO,EAAG,CACnBo2C,cAAejW,EAAKiW,cACpBthC,MAAOqrB,EAAKukC,oBACZv5D,OAAQ++F,EAAsB,IACvBj5D,EAAMjxC,GAAOuqG,cACbpqE,EAAKqqE,YAEZC,UAAU,GAADjoG,OAAK29B,EAAK1rB,SAAQ,KAAAjS,OAAI29B,EAAKzrB,WACpC41F,YAAanqE,EAAK0V,SAClB00D,WAAY,IAAIt5D,EAAMjxC,GAAOuqG,cAAepqE,EAAKqqE,WACjDv7B,iBAAkB9uC,EAAK8uC,kBACzB,IAGC,IACA/uC,EACH,CACIkW,cAAejW,EAAKiW,cACpBthC,MAAOqrB,EAAKukC,oBACZv5D,OAAQ++F,EAAsB/pE,EAAKqqE,WACnCC,UAAU,GAADjoG,OAAK29B,EAAK1rB,SAAQ,KAAAjS,OAAI29B,EAAKzrB,WACpC41F,YAAanqE,EAAK0V,SAClB00D,WAAYpqE,EAAKqqE,UACjBv7B,iBAAkB9uC,EAAK8uC,kBAGnC,GAEJ,IAGEqoB,EAAwB+S,EAASpqE,QACnC,CAACC,EAAiBC,IACPD,EAAIjZ,MAAMswE,GAAOA,EAAGnhD,gBAAkBjW,EAAKiW,gBAC5ClW,EACA,IACKA,EACH,CACIkW,cAAejW,EAAKiW,cACpBohD,UACmB,IAAft3D,EAAIpgC,SAAwBogC,EAAIA,EAAIpgC,OAAS,GAAG03F,aAIpE,IAgCE1a,EAAUvpE,IAAMsI,SAClB,IAAM,CACF,CACI4d,OAAQ,UACRytD,SAAU,gBACV1xE,MAAO,MACP4xE,KAAMtvE,IAAiB,IAAhB,IAACqnE,GAASrnE,EACb,MAAM,SAACs3B,EAAQ,QAAE+hD,GAAWuZ,GACxB,IAAIvrB,EAAImI,WACR,EACA7b,EACAslB,GAA0B4Z,SAE9B,OACIxoG,cAAAyV,WAAA,CAAAtW,SACK6vF,EACGhvF,cAACy1F,KAAU,CAAC/vE,QAASunB,EAAS9tC,SAC1Ba,cAAC0hC,KAAI,CAAAviC,SACrBa,cAAA,QAAMiT,MAAO,CAACw1B,WAAY,WAAWtpC,SAClC69E,EAAImI,SAASlxC,oBAKJj0C,cAAA,QAAMiT,MAAO,CAACw1B,WAAY,WAAWtpC,SAClD69E,EAAImI,SAASlxC,iBAGL,GAIf,CACI3c,OAAQ,SACRytD,SAAU,SACV1xE,MAAO,MAEX,CACIikB,OAAQ,iBACRjkB,MAAO,MACP0xE,SAAU,aAEd,CACIztD,OAAQ,QACRytD,SAAU,QACV1xE,MAAO,OAEX,CACIikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMvF,IAAA,IAAC,IAAC1C,GAAS0C,EAAA,OACb1/E,cAAAyV,WAAA,CAAAtW,SACIa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC7Da,cAACy1F,KAAU,CACP/vE,QAASA,KACLiiF,EAAgB,IAAI3qB,EAAImI,WACxByiB,GAAmB,EACrBzoG,SAEFa,cAAC0hC,KAAI,CAACttB,MAAM,UAASjV,SAAC,sBAG/B,EAEPkU,MAAO,SAGf,IAGJ,OACI5C,eAAAgF,WAAA,CAAAtW,SAAA,CACK+oG,EAASvqG,OAAS,EACfqC,cAAC6zE,GAAK,CACF8G,QAASA,EACT9uE,KAAMq8F,EACNptB,OAAK,EACLE,YAAcgC,IAAS,IAAD+Z,EAClB,OAGK,QAHLA,EACI5B,EAAsBz4E,MACjBiX,IAAOA,EAAEsgB,iBAAmB+oC,EAAImI,SAASlxC,uBAC7C,IAAA8iD,GAFDA,EAEG1B,UAEI,CACH3kF,UAAU,GAADrQ,OAAKsQ,KAAOqmF,eAGlB,CACHtmF,UAAU,GAADrQ,OAAKsQ,KAAOqsE,KAE7B,IAIRh9E,cAAC02E,KAAc,CAACtiE,MAAM,cAGzBszF,GAAgB1nG,cAACgsC,GAAM,CACpBpzB,KAAMkvF,EACNn9E,QAASk9E,EACTr3F,SAAS,KAAIrR,SAEbsR,eAAA,QACIkX,aAAa,MACbyD,SAAUP,EAAKQ,cAtIHR,IACpB68E,EACA50D,GAAmB2B,qBACf,CACIR,cAAeyzD,EAAazzD,cAC5BthC,MAAOkY,EAAKlY,OAEhB+0F,EAAaS,aAEZx9F,MAAM4gB,IACCA,GACAs8E,IAEA1uF,EAAW,mCAAoClB,GAAYE,SAC3D0vF,KAEA1uF,EAAW,yBAA0BlB,GAAY3N,MACrD,IAEHxH,OAAOlB,IACJimG,IACA1uF,EAAWvX,EAAMpC,QAAQ,KAGjC2Z,EAAW,wCAAyClB,GAAY3N,OAChEu9F,IACJ,IA6GYr8E,YAAU,EAAArsB,SAAA,CAEVa,cAACwsC,GAAW,CAAArtC,SAAC,0BACba,cAACusC,GAAa,CAAAptC,SACVa,cAACumB,GAAW,CACRC,MAAM,6BACNC,YAAY,iCAAgCtnB,SAE5Ca,cAACmnB,GAAS,CACN/oB,KAAK,QACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASipB,EAAK5d,OAAO0F,MACrByZ,WACIvB,EAAK5d,OAAO0F,OAASkY,EAAK2B,UAAUi8E,QAAQ91F,MACtCkY,EAAK5d,OAAO0F,MAAMnT,QAClB,SAKtBQ,cAACmsC,GAAa,CAAAhtC,SACVsR,eAACqI,KAAG,CACA5F,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACfx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CAEhCa,cAAC+/E,GAAkB,CACft2E,KAAMvG,EAAUC,QAAQE,OACxBqiB,QAASmiF,IAEb7nG,cAAC8Y,KAAG,CACAG,GAAK0e,EAAWX,OAAa,EAAJ,EACzB6W,GAAIlW,EAAWX,OAAS,EAAI,EAAE73B,SAE9Ba,cAACsnG,GAAgB,CACb79F,KAAMvG,EAAUC,QAAQM,SACxB5G,KAAK,SACLorB,UAAW4C,EAAK2B,UAAUE,wBAOnD,ECxNIg8E,OA3GoBA,KACjC,MAAOC,EAAWC,GAAgBn3F,oBAAS,IACpCw7D,EAAWktB,GAAgB1oF,oBAAS,IACpC5F,EAAMg9F,GAAWp3F,mBAA2B,CACjDq3F,UAAW,GACXx/B,eAAgB,KAEZ3xC,EAAajB,MACZod,EAAei1D,GAAoBt3F,mBAAwB,OAC5D,WAAE0H,GAAeQ,KAEvB7G,qBAAU,KACRggC,GAAmBqC,oBAChBxqC,MAAMqpC,GAAY60D,EAAQ,IAAKh9F,EAAMy9D,eAAgBt1B,MACrDlxC,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,GAC7C,IAEH,MAAMknF,EAAeA,KACnBkiB,GAAa,GACT90D,GAAkC,MAAjBA,IACnBqmD,GAAa,GACbrnD,GAAmBe,8CACjBC,EAAcjE,UAEbllC,MAAMm+F,IACL3O,GAAa,GACb0O,EAAQ,IAAKh9F,EAAMi9F,UAAWA,GAAY,IAE3ChmG,OAAOlB,IACNu4F,GAAa,GACbhhF,EAAWvX,EAAMpC,QAAQ,IAE/B,EAgBF,OACEQ,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,gBAAeX,SAAA,CAChCa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAYhU,SACzCsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,iBAAgBrnB,SAC3Ca,cAAC4lF,GAAU,CACT3uE,GAAG,8BACH8vE,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZyL,OAAO,OACPhV,KAAK,gBACL7B,MAAOu3C,EACPgzC,UApBQh8E,IACR,UAAVA,EAAEhN,KAAmBg2C,GAAiBA,EAAcpnB,WACtDg6D,GACF,EAkBcz8D,SA7BmBnf,IACjCi+F,EACEj+F,GAAKA,EAAE4hB,UAAYogB,KAAOhiC,EAAE+kC,UAAUyD,QAAQ,OAAiB,MAEjEs1D,GAAa,GACbC,EAAQ,CAAEC,UAAW,GAAIx/B,eAAgB,IAAK,QA4BtCtpE,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACwmF,GAAY,CACXvvE,GAAG,8BACHgR,WAAY6rB,GAAiBA,EAAcpnB,WAC3ChH,QAASghE,EACTzzE,MACE0kB,EAAWR,KACP,CAAEkD,UAAW,QACb,CAAEhmB,aAAc,QACrBlV,SACF,2BAMN8tE,IAAcphE,EAAKy9D,eAClBtpE,cAAC02E,KAAc,CAACtiE,MAAM,cACpBvI,GAAiC,GAAzBA,EAAKi9F,UAAUnrG,OACzBgrG,EACE3oG,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,MAGX74E,cAAAyV,WAAA,IAGFzV,cAAAyV,WAAA,CAAAtW,SACEa,cAACwnG,GAAgB,CACfC,yBAA0B57F,EAAKi9F,UAC/Bx/B,eAAgBz9D,EAAKy9D,uBAK5B,E,qBCsCQ0/B,OAxJoCA,KACjD,MACEtrF,OAAO,cAAEyvD,EAAa,eAAE7D,GAAgB,cACxCv5B,GACEm+B,KAEEriE,EAAOshE,EAAcz3D,KAAKqW,IAAI,IAC/BA,EACH6+C,iBAAiB,GAADvqE,OAAK0rB,EAAKxZ,UAAS,KAAAlS,OAAI0rB,EAAKzZ,UAC5C2uC,IAAI,GAAD5gD,OAAK0rB,EAAKprB,OAAM,OAAAN,OAAM0rB,EAAK8mC,iBAG1B8nB,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,YACRjkB,MAAO,MACP0xE,SAAU,cAEZ,CACEztD,OAAQ,cACRytD,SAAU,aACV1xE,MAAO,MACP4xE,KAAM/lF,IAAA,IAAA+pG,EAAA,IAAC,IAAEjsB,GAAU99E,EAAA,OACjBc,cAAC4nF,GAAQ,CAAChgF,KAA6B,QAAzBqhG,EAAEjsB,EAAImI,SAAS3yC,kBAAU,IAAAy2D,IAAI,KAAMr5D,OAAO,aAAc,GAG1E,CACEtY,OAAQ,UACRytD,SAAU,gBACV1xE,MAAO,MACP4xE,KAAMtvE,IAAmB,IAAlB,IAAEqnE,GAAUrnE,EACjB,MAAM,SAAEs3B,EAAQ,QAAE+hD,GAAYH,GAC5B,IAAK7R,EAAImI,WACT,EACA7b,EACAslB,GAA0Bsa,UAE5B,OACElpG,cAAAyV,WAAA,CAAAtW,SACG6vF,EACChvF,cAACy1F,KAAU,CAAC/vE,QAASunB,EAAS9tC,SAC5Ba,cAAC0hC,KAAI,CAAAviC,SACHa,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASlxC,oBAKpBj0C,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASlxC,iBAGjB,GAIT,CACE3c,OAAQ,MACRjkB,MAAO,MACP0xE,SAAU,MACVE,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjBjvE,eAAA,QAAMwC,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAA,CACpC69E,EAAImI,SAASxkF,OAAO,MAAIq8E,EAAImI,SAAStyB,cACjC,GAGX,CACEv7B,OAAQ,WACRjkB,MAAO,MACP0xE,SAAU,mBACVE,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OACjBjlF,eAAA,QAAMwC,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAA,CACpC69E,EAAImI,SAAS5yE,UAAU,IAAEyqE,EAAImI,SAAS7yE,WAClC,GAGX,CACEglB,OAAQ,QACRjkB,MAAO,MACP0xE,SAAU,QACVE,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjB71F,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAE69E,EAAImI,SAAS8W,OAAa,GAGvE,CACE3kE,OAAQ,gBACRjkB,MAAO,MACP0xE,SAAU,eACVE,KAAM6Q,IAAA,IAAC,IAAE9Y,GAAU8Y,EAAA,OACjB9Y,EAAImI,SAASgkB,aACXnpG,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASgkB,aAAcv5D,OAAO,cAElD5vC,cAAAyV,WAAA,GACD,GAEL,CACE6hB,OAAQ,WACRjkB,MAAO,KACP0xE,SAAU,YAEZ,CACEztD,OAAQ,GACRytD,SAAU,YACV1xE,MAAO,KACP2xE,eAAe,EACfC,KAAMiR,IAAmB,IAAlB,IAAElZ,GAAUkZ,EACjB,MAAM,sBAAEnM,GAA0BJ,GAAW,CAC3C7pF,MAAO,UACPvD,MAAOygF,EAAImI,SAAStlC,QACpB+pC,eAAgBj5E,KAAOgoB,WACvBkxD,gBAAgB,EAChBjtF,KAAM,GACN6sF,OAAS5pC,IACP9P,EAAc,IAAKitC,EAAImI,UAAYtlC,EAAQ,IAG/C,OACE7/C,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAAC+pF,EAAqB,KAClB,GAIZ,CACEzyD,OAAQ,mBACRytD,SAAU,mBACV1xE,MAAO,KACP2xE,eAAe,KAGnB,CAAC1b,IAGH,OACEtpE,cAAAyV,WAAA,CAAAtW,SACG0M,GAAQA,EAAKlO,OAAS,EACrBqC,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAMA,EACN+uE,YAAY,EACZtK,MAAM,EACNyK,cAAe,CAAC,oBAChBD,OAAK,IAGP96E,cAAC02E,KAAc,CAACtiE,MAAM,eAEvB,E,qBCkBQg1F,OAxJmBA,KAAO,IAADC,EACtC,MACE3rF,OAAO,UACLuvD,EAAS,cACTN,EAAa,cACbQ,EAAa,UACbC,EAAS,iBACTC,GACD,cACDU,EAAa,eACbE,GACEC,KACEv2C,EAAajB,MACZ4yE,EAAiBC,GAAsB93F,mBAA0B,CACtE+gC,WAAY,KACZgI,WAAY,KAGRksC,EAAeA,KACnB3Y,EAAc,IAAKu7B,GAAkB,EAGjCE,EACJF,EAAgB92D,YACe,OAA/B82D,EAAgB92D,YAChB82D,EAAgB92D,WAAW9lB,WAC3B48E,EAAgB9uD,YAChB8uD,EAAgB9uD,WAAYlN,OAAO3vC,OAAS,EAExC8rG,EAAa3+F,GACjBA,GAAKA,EAAE4hB,UAAYogB,KAAOhiC,EAAE+kC,UAAUyD,QAAQ,OAAiB,KAE3DyxD,EAAkBj6F,IACR,UAAVA,EAAEhN,KAAmB0rG,GACvB9iB,GACF,EAGF,OACEj2E,eAACwoE,GAAW,CAACn5E,MAAM,eAAcX,SAAA,CAC/Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,gEAI3Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAAC,2FAKlCa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAYhU,SACzCsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,gBAAernB,SAC1Ca,cAAC0pG,GAAe,CACdzyF,GAAG,2BACHtP,YAAY,SACZpL,MAAO+sG,EAAgB9uD,WACvBssC,UAAWie,EACX96E,SAAWnf,GACTy+F,EAAmB,IACdD,EACH9uD,WAAY1vC,EAAEoL,OAAO3Z,cAM/ByD,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,cAAarnB,SACxCa,cAAC4lF,GAAU,CACT3uE,GAAG,yBACH8vE,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZyL,OAAO,OACPhV,KAAK,aACL7B,MAAO+sG,EAAgB92D,WACvBs0C,UAAWie,EACX96E,SAAWnf,IACTy+F,EAAmB,IACdD,EACH92D,WAAYi3D,EAAU3+F,IACtB,QAKV9K,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACwmF,GAAY,CACXvvE,GAAG,0BACHgR,UAAWuhF,EACX9jF,QAASghE,EACTzzE,MACE0kB,EAAWR,KACP,CAAEkD,UAAW,QACb,CAAEhmB,aAAc,QACrBlV,SACF,uBAIFwtE,GAAiBA,EAAchvE,OAAS,GACvCqC,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAACo/E,GAAY,CACXhhF,KAAK,YACL6Y,GAAG,2BACHqoE,eAAiBh2D,GAAWA,EAAO9C,MACnC64D,aAAe/1D,GAAWA,EAAO9C,MACjCwnE,UAAU,QACV56E,OAAO,SACPosE,YAAcpwE,GACZpP,cAACmnB,KAAS,IACJ/X,EACJoX,MAAM,QACNpT,OAAO,SACP1C,UAAWC,KAAOivE,wBAGtB73D,QAAS,CAAC,CAAEvB,MAAO,MAAOjqB,OAAQ,MAAQ6wE,GAC1CnjD,SAAUA,CAAC5M,EAAO9gB,KAChB0xE,GAA2B,KAAX1xE,OAAeC,GAAaD,EAAM,EAEpDoqB,WAAS,EACTpqB,MACqD,QADhD8sG,EACHj8B,EAAU1wD,MAAMiX,GAAMA,EAAEp3B,QAAU8wE,WAAiB,IAAAg8B,IAAI,CACrD7iF,MAAO,MACPjqB,OAAQ,cASvB0wE,GAAajtE,cAAC02E,KAAc,CAACtiE,MAAM,eAClC64D,GAAaE,EAAcxvE,OAAS,EACpCqC,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTa,cAACgpG,GAAY,MAGfhpG,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,QAGD,ECgHH8wB,OA1QoBA,KACjC,MAAM,YAAEt4F,GAAgBmD,KAEtBkJ,OAAO,OACL0rD,EAAM,UACN3W,EAAS,aACT0X,EAAY,qBACZF,EAAoB,aACpBN,EAAY,eACZL,GACD,WACDuB,EAAU,WACVC,GACEG,KAEEkqB,EAAwBhrB,EAAarsC,QACzC,CAACC,EAAiBC,IACTD,EAAIjZ,MAAMswE,GAAOA,EAAGnhD,gBAAkBjW,EAAKiW,gBAC9ClW,EACA,IACKA,EACH,CACEkW,cAAejW,EAAKiW,cACpBohD,UACiB,IAAft3D,EAAIpgC,SAAwBogC,EAAIA,EAAIpgC,OAAS,GAAG03F,aAI5D,IAGIvB,EAAmBpgD,IACvB,MAAMknB,EAAQnI,EAAU/1C,MAAME,IAAOA,EAAE82B,YAAcA,IACrD,OAAOknB,EAAK,GAAAv6D,OAAMu6D,EAAMroD,UAAS,KAAAlS,OAAIu6D,EAAMtoD,UAAa,EAAE,EAYtDqoE,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,KACRytD,SAAU,UAEZ,CACEztD,OAAQ,UACRytD,SAAU,gBACV1xE,MAAO,KACP4xE,KAAM/lF,IAAmB,IAAlB,IAAE89E,GAAU99E,EACjB,MAAM,SAAE+tC,EAAQ,QAAE+hD,GAAYH,GAC5B,CACE3rB,UAAW8Z,EAAImI,SAASpc,QAAQ9xD,GAChC8yD,OAAQiT,EAAImI,SAASpb,OACrB+C,iBAAkBkQ,EAAImI,SAASrY,iBAC/B74B,cAAe+oC,EAAImI,SAASlxC,cAC5Bp3C,KAAMmgF,EAAImI,SAAStoF,OAErB,EACAysE,EACAslB,GAA0Bgb,cAE5B,OACE5pG,cAAAyV,WAAA,CAAAtW,SACG6vF,EACChvF,cAACy1F,KAAU,CAAC/vE,QAASunB,EAAS9tC,SAC5Ba,cAAC0hC,KAAI,CAAAviC,SACHa,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASlxC,oBAKpBj0C,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASlxC,iBAGjB,GAIT,CACE3c,OAAQ,gBACRytD,SAAU,YACVE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASuJ,UAAW9+C,OAAO,aAAc,EAE/Dv8B,MAAO,OAET,CACEikB,OAAQ,OACRjkB,MAAO,MACP0xE,SAAU,OACVE,KAAMvF,IAAmB,IAAlB,IAAE1C,GAAU0C,EACjB,MAAM,SAAEzyC,EAAQ,QAAE+hD,GAAYH,GAC5B,CACE3rB,UAAW8Z,EAAImI,SAASpc,QAAQ9xD,GAChC8yD,OAAQiT,EAAImI,SAASpb,OACrB+C,iBAAkBkQ,EAAImI,SAASrY,iBAC/B74B,cAAe+oC,EAAImI,SAASlxC,cAC5Bp3C,KAAMmgF,EAAImI,SAAStoF,OAErB,EACAysE,EACAslB,GAA0B4G,UAEtB34F,EACkB,eAAtBmgF,EAAImI,SAAStoF,KACT,eACAmgF,EAAImI,SAAStoF,KACnB,OACEmD,cAAAyV,WAAA,CAAAtW,SACG6vF,EACChvF,cAACy1F,KAAU,CAAC/vE,QAASunB,EAAS9tC,SAC5Ba,cAAC0hC,KAAI,CAAAviC,SACHa,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAEtC,QAI7CmD,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAEtC,KAE1C,GAIT,CACEy6B,OAAQ,iBACR2tD,KAAMyQ,IAAA,IAAAC,EAAAC,EAAA,IAAC,IAAE5Y,GAAU0Y,EAAA,OACjB11F,cAAC4nF,GAAQ,CACPhgF,KAAyC,QAArC+tF,EAAsB,QAAtBC,EAAE5Y,EAAImI,SAASpc,eAAO,IAAA6sB,OAAA,EAApBA,EAAsB9hD,qBAAa,IAAA6hD,IAAI,KAC7C/lD,OAAO,aACP,EAEJv8B,MAAO,MACP0xE,SAAU,iBAEZ,CACEztD,OAAQ,WACRjkB,MAAO,MACP4xE,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjB71F,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASpc,QAAQ6B,kBACjB,EAETma,SAAU,4BAEZ,CACEztD,OAAQ,SACRytD,SAAU,SACV1xE,MAAO,MACP4xE,KAAM6Q,IAAA,IAAC,IAAE9Y,GAAU8Y,EAAA,OACjB91F,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAE69E,EAAImI,SAASn8E,QAAc,GAGxE,CACEsuB,OAAQ,cACRjkB,MAAO,MACP4xE,KAAMiR,IAAA,IAAC,IAAElZ,GAAUkZ,EAAA,OACjBl2F,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASza,eACT,EAETqa,SAAU,iBAEZ,CACEztD,OAAQ,GACRytD,SAAU,cACV1xE,MAAO,KACP2xE,eAAe,EACfC,KAAMkR,IAAA,IAAAC,EAAA,IAAC,IAAEpZ,GAAUmZ,EAAA,OACO,QAAxBC,EAAApZ,EAAImI,SAASnkB,mBAAW,IAAAo1B,OAAA,EAAxBA,EAA0Bz4F,QAAS,EACjCqC,cAAC21B,KAAK,CACJC,aAAconD,EAAImI,SAASnkB,YAAYrjE,OACvCyW,MAAM,YACN41E,QAAQ,WACRt5E,UAAWkV,KAAWiQ,MAAM12B,SAE5Ba,cAACq2F,GAAc,CAAChjF,MAAO,GAAIC,OAAQ,OAGrCtT,cAAAyV,WAAA,GACD,GAEL,CACE6hB,OAAQ,IACRytD,SAAU,kBACV1xE,MAAO,KACP2xE,eAAe,EACfC,KAAMqR,IAAmB,IAAlB,IAAEtZ,GAAUsZ,EACjB,MAAM,sBAAEvM,GAA0BJ,GAAW,CAC3C7pF,MAAO,qBACPvD,MAAOygF,EAAImI,SAASpc,QAAQwtB,gBAC5B3M,eAAgBj5E,KAAOgoB,WACvBkxD,gBAAgB,EAChBjtF,KAAM,GACN6sF,OAAS5pC,IACPirB,EAAW,IACNkS,EAAImI,SACPpc,QAAS,IAAKiU,EAAImI,SAASpc,QAASwtB,gBAAiB12C,IACrD,IAGN,OAAO7/C,cAAC+pF,EAAqB,GAAG,KAItC,CAhLoBr2C,IACpB,MAAMknB,EAAQwO,EAAO1sD,MAAME,IAAOA,EAAE82B,YAAcA,IAClD,OAAOknB,EAAK,GAAAv6D,OACLu6D,EAAMroD,UAAS,KAAAlS,OAAIu6D,EAAMtoD,UACf,OAAbohC,EACA,GAAE,oBACkB,EA0KTogD,EAAiBjpB,EAAYC,IAE9C,OACE9qE,cAAAyV,WAAA,CAAAtW,SACGgrE,GACD1X,GACA6W,IACY,OAAZa,QAAY,IAAZA,OAAY,EAAZA,EAAcxsE,QAAS,EACrB8S,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAMs+D,EACN4Q,cACE1pE,EAAY2D,SACV+Y,GAAgBmC,gCAEd,CAAC,UACD,CAAC,SAAU,aAEjB4qD,OAAK,EACLxK,MAAI,EACJ0K,YAAcgC,IAAS,IAAD+Z,EACpB,OACuB,OAArB5B,QAAqB,IAArBA,GAEC,QAFoB4B,EAArB5B,EAAuBz4E,MACpBiX,IAAOA,EAAEsgB,iBAAmB+oC,EAAImI,SAASlxC,uBAC3C,IAAA8iD,GAFDA,EAEG1B,UAEI,CACL3kF,UAAU,GAADrQ,OAAKsQ,KAAOqmF,eAGhB,CACLtmF,UAAU,GAADrQ,OAAKsQ,KAAOqsE,KAEzB,EAEFh3D,QAASikD,IAEXjqE,cAACu0F,GAAc,CACb7pE,YAAai/C,EACbmqB,gBAAiBA,OAII,KAAb,OAAZ3pB,QAAY,IAAZA,OAAY,EAAZA,EAAcxsE,SACZqC,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,CAACpvE,KAAK,4DAIpB,EC5CQogG,OAhOoBA,KAAO,IAADviC,EAAAI,EAAAF,EAAAD,EACvC,MACE7pD,OAAO,OACL0rD,EAAM,eACNN,EAAc,oBACdI,EAAmB,iBACnBK,EAAgB,SAChBF,GACD,kBACD2B,GACEC,MACE,YAAE55D,GAAgBmD,IAClBy/E,EACJ5iF,EAAY2D,SACV+Y,GAAgB6C,kDAEjBvf,EAAY2D,SACX+Y,GAAgB4C,0CAGbwQ,EAAQg2D,GAAa1lF,mBAAsB,CAChDk2D,QAAS,EACTtmB,aAAS7kD,EACTK,UAAML,EACNorE,gBAAYprE,IAGR46F,EAAkB73F,uBAAY,KAC9B8pE,GAAU2B,EAAkB7pC,EAAO,GACtC,CAACA,EAAQkoC,IAEZv2D,qBAAU,KACRskF,GAAiB,GAChB,CAACj2D,IAEJruB,qBAAU,KACR,GACEu2D,GACAh4D,EAAY2D,SACV+Y,GAAgB4C,yCAGlBwmE,EAAU,IAAKh2D,EAAQwmC,QAAS,SAC3B,GAAI0B,GAAY4qB,EAAc,CAAC,IAADoD,EAAAC,EACnCH,EAAU,IACLh2D,EACHwmC,QAAS,EACTtmB,QAAiC,QAA1Bg2C,EAAU,OAARhuB,QAAQ,IAARA,GAAc,QAANiuB,EAARjuB,EAAUh3D,YAAI,IAAAilF,OAAN,EAARA,EAAgBpD,gBAAQ,IAAAmD,SAAI76F,GAEzC,MACE26F,EAAU,IAAKh2D,EAAQwmC,aAASnrE,GAClC,GACC,CAAC6sE,EAAUh4D,IAEd,MAAMkmF,EAAoB76F,MAAMgzC,KAC9B,IAAIgrB,IAAI0O,EAAO1zD,KAAK80D,GAAUA,EAAMnpB,YAGtC,OACErhD,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,qBAAoBX,SAAA,CACrCa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,qGAK3Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,gBAE7B+pE,EACClpE,cAAC02E,KAAc,CAACtiE,MAAM,cAEtB3D,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAAC8+E,GAAM,CACL1gF,KAAK,cACL6Y,GAAG,sCACHuP,MAAM,cACNvV,QAAQ,WACR8W,QAAS,CACP,CAAEvB,MAAO,iBAAkBjqB,MAAO,MAC/B6sE,EAAO1zD,KAAK80D,IAAK,CAClBhkD,MAAM,GAADnmB,OAAKmqE,EAAMj4D,UAAS,KAAAlS,OAAImqE,EAAMl4D,UACnC/V,MAAOiuE,EAAM92B,cAGjBn3C,MAAqB,QAAhB+qE,EAAEnmC,EAAOwmC,eAAO,IAAAL,KAAK,EAC1Br9C,SAAW5M,IACT85E,EAAU,IACLh2D,EACHwmC,SAC0B,IAAxBtqD,EAAMnH,OAAO3Z,WACTC,EACC6gB,EAAMnH,OAAO3Z,OACpB,MAIRyD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAACo/E,GAAY,CACXhhF,KAAK,WACL6Y,GAAG,mCACHqoE,eAAiBh2D,GAAWA,EAAO9C,MACnC64D,aAAe/1D,GAAWA,EAAO9C,MACjCwnE,UAAU,QACV56E,OAAO,SACPosE,YAAcpwE,GACZpP,cAACmnB,KAAS,IACJ/X,EACJoX,MAAM,WACNpT,OAAO,SACP1C,UAAWC,KAAOivE,wBAGtB73D,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,OAAQ,MACrBusE,EAAepzD,KAAKi1D,IAAQ,CAC7BnkD,MAAM,GAADnmB,OAAKsqE,EAASp4D,UAAS,KAAAlS,OAAIsqE,EAASr4D,UACzC/V,MAAOouE,EAASj3B,cAGpBzpB,SAAUA,CAAC5M,EAAO9gB,KAChB46F,EAAU,IACLh2D,EACHymC,YACa,IAAXrrE,OAAeC,EAAaD,GAC9B,EAEJoqB,WAAS,EACTO,aAAc,CAAEV,MAAO,MAAOjqB,OAAQ,OAG1CyD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAAC8+E,GAAM,CACL1gF,KAAK,WACL6Y,GAAG,mCACHuP,MAAM,OACNvV,QAAQ,WACR8W,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO,OACvB,CAAEiqB,MAAO,eAAgBjqB,MAAO,cAChC,CAAEiqB,MAAO,QAASjqB,MAAO,SACzB,CAAEiqB,MAAO,MAAOjqB,MAAO,QAEzBA,MAAkB,QAAbmrE,EAAEvmC,EAAOtkC,YAAI,IAAA6qE,IAAI,MACtBz9C,SAAW5M,IACT85E,EAAU,IACLh2D,EACHtkC,KACyB,QAAvBwgB,EAAMnH,OAAO3Z,WACTC,EACC6gB,EAAMnH,OAAO3Z,OACpB,MAIRyD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAAC8+E,GAAM,CACL1gF,KAAK,SACL6Y,GAAG,iCACHuP,MAAM,SACNvV,QAAQ,WACR8W,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO,UACpBgtE,EAAiB7zD,KAAK1M,IAAM,CAC7Bwd,MAAOxd,EAAO5K,KACd7B,MAAOyM,EAAO5K,UAGlB7B,MAAoB,QAAfirE,EAAErmC,EAAOn4B,cAAM,IAAAw+D,IAAI,MACxBv9C,SAAW5M,IACT85E,EAAU,IACLh2D,EACHn4B,OACyB,QAAvBqU,EAAMnH,OAAO3Z,WACTC,EACC6gB,EAAMnH,OAAO3Z,OACpB,OAIN03F,GACAj0F,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAAC8+E,GAAM,CACL1gF,KAAK,UACL6Y,GAAG,kCACHuP,MAAM,UACNvV,QAAQ,WACR8W,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO,UACpBg7F,EAAkB7hF,KAAK2rC,IAAO,CAC/B76B,MAAO66B,EACP9kD,MAAO8kD,OAGX9kD,MAAqB,QAAhBgrE,EAAEpmC,EAAOkgB,eAAO,IAAAkmB,IAAI,MACzBt9C,SAAW5M,IACT85E,EAAU,IACLh2D,EACHkgB,QACyB,QAAvBhkC,EAAMnH,OAAO3Z,WACTC,EACC6gB,EAAMnH,OAAO3Z,OACpB,WAQdyD,cAAC8Y,KAAG,CAAA3Z,SACFa,cAAC2pG,GAAgB,aAKxB,ECZQG,OAzM0BA,KAAO,IAADvF,EAC7C,MAAM5sE,EAAajB,KACnB,IAAI,MAAE8tE,EAAK,MAAEC,GAAUC,cACvB,MAAOlqD,EAAYmqD,GAAiBlzF,mBAAsB,OAAL+yF,QAAK,IAALA,IAAS,KACvDhyD,EAAYoyD,GAAiBnzF,mBAClCgzF,GAAmC,QAA9BF,EAAGz3D,KAAO23D,EAAO,qBAAa,IAAAF,IAAW,OAEzCv7F,EAAQ67F,GAAapzF,mBAAoC,cAE1D,MAAEiM,EAAK,wBAAEy0C,GAA4BY,KAmBrC+xC,EAAwBA,KAC5B3yC,EAAwB,CAAE3X,aAAYhI,aAAYxpC,UAAS,EAGvD+7F,EAAkBj6F,IAEV,UAAVA,EAAEhN,KACoB,KAAtB08C,EAAWlN,QACXkF,GACAA,EAAW9lB,WAEXo4E,GACF,EAGIQ,EACJ9qD,EAAW78C,OAAS,IAAM68C,EAAWC,cAAcv2B,MAAM,iBAE3D,OACEzT,eAACwoE,GAAW,CAACn5E,MAAM,iBAAgBX,SAAA,CACjCa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAYhU,SACzCsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,gBAAernB,SAC1Ca,cAACmnB,GAAS,CACRlQ,GAAG,8BACHtP,YAAY,SACZpL,MAAOi+C,EACPssC,UAAWie,EACX96E,SA9CkBnf,IAC9B65F,EAAc75F,EAAEoL,OAAO3Z,MAAM,EA8CjByvB,WAAY,CAAE/Y,MAAO,CAAEo2B,cAAe,cACtCjd,WACEk5E,EACI,yDACA,GAEN1jG,MAAO0jG,QAIbtlG,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,iBAAgBrnB,SAC3Ca,cAAC4lF,GAAU,CACT3uE,GAAG,+BACH8vE,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZyL,OAAO,OACPhV,KAAK,gBACL7B,MAAOi2C,EACPs0C,UAAWie,EACX96E,SAhEkBnf,IAC9B85F,EAAc95F,GAAKA,EAAE4hB,UAAYogB,KAAOhiC,EAAE+kC,UAAoB,KAAK,QAmE7D7vC,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,SAAQrnB,SACnCa,cAAC8nB,GAAa,CACZ7Q,GAAG,2CACH7Y,KAAK,SACLxB,KAAK,QACLmrB,QAAS,CACP,CAAEvB,MAAO,YAAajqB,MAAO,aAC7B,CAAEiqB,MAAO,YAAajqB,MAAO,cAE/BA,MAAOyM,EACPihB,SA3Eas7E,CAACloF,EAAY6mF,KAClCA,IACFW,EAAUX,GACgB,KAAtB1pD,EAAWlN,QAAiBkF,GAAcA,EAAW9lB,WACvDylC,EAAwB,CAAE3X,aAAYhI,aAAYxpC,OAAQk7F,IAE9D,QA0EMlkG,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACwmF,GAAY,CACXvvE,GAAG,+BACHgR,SACEq9E,KAEwB,KAAtB9qD,EAAWlN,QACXkF,GACAA,EAAW9lB,WAGfhH,QAASo/E,EACT7xF,MACE0kB,EAAWR,KACP,CAAEkD,UAAW,QACb,CAAEhmB,aAAc,QACrBlV,SACF,iCAMNue,EAAMsI,SAAWhmB,cAAC02E,KAAc,CAACtiE,MAAM,eACtCsJ,EAAMsI,SACNhmB,cAAAyV,WAAA,CAAAtW,SACGue,EAAMk8B,aACL55C,cAAAyV,WAAA,CAAAtW,SACGue,EAAMg8B,UACL15C,cAACk4F,GAAI,CACH2C,KAAM,IACDn9E,EAAM2zC,mBAAmB37C,KAAKq0F,IAAO,CACtCvjF,MAAOujF,EAAQ9oD,IACf58C,QACEoM,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOy0E,GAAI,EAAGx0E,WAAW,SAAQhU,SAC5Ca,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SACrB4qG,EAAQ54C,eAGb1gD,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,EAAEx3B,SACtBsR,eAACqI,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAAA,CAC1Ba,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,eAG5BsR,eAACO,IAAU,CAACC,QAAQ,KAAI9R,SAAA,CACrB,IACA4qG,EAAQC,eAAgB,YAK/BhqG,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,EAAEx3B,SACtBsR,eAACqI,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAAA,CAC1Ba,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,gBAG5BsR,eAACO,IAAU,CAACC,QAAQ,KAAI9R,SAAA,CACrB,IACA4qG,EAAQE,UAAW,eAKL,IAAtBF,EAAQE,WACoB,IAA3BF,EAAQC,gBACiB,cAAzBtsF,EAAM+zC,QAAQzoD,QACZhJ,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOy0E,GAAI,EAAGx0E,WAAW,SAAQhU,SAC5Ca,cAACgR,IAAU,CAACC,QAAQ,QAAQmD,MAAM,UAASjV,SAAC,mCAK3B,IAAtB4qG,EAAQE,WACoB,IAA3BF,EAAQC,gBACiB,cAAzBtsF,EAAM+zC,QAAQzoD,QACZhJ,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOy0E,GAAI,EAAGx0E,WAAW,SAAQhU,SAC5Ca,cAACgR,IAAU,CAACC,QAAQ,QAAQmD,MAAM,UAASjV,SAAC,6BAOtD02B,MAAM,GAADx1B,OAAK0pG,EAAQC,eAAiBD,EAAQE,kBAKjDjqG,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,YAOT,E,+BCgDHqxB,OAnP4DhrG,IAKpE,IALqE,aAC1E28F,EAAY,eACZsO,EAAc,cACdtV,EAAa,SACbntE,GAAW,GACZxoB,EACC,MAAM,UAAEwlB,EAAS,SAAEyH,EAAQ,SAAEm8D,GAAa8hB,gBACnCC,EAAcC,GAAmB74F,oBAAS,IAC1C84F,EAAYC,GAAiB/4F,oBAAS,IACtCg5F,EAAiBC,GAAsBj5F,oBAAS,IAChDk5F,EAA2BC,GAChCn5F,oBAAS,IACJo5F,EAAyBC,GAA8Br5F,oBAAS,IAChEs5F,EAA8BC,GACnCv5F,oBAAS,IACJw5F,EAAYC,GAAiBz5F,mBAAS,KACtC05F,EAAaC,GAAkB35F,oBAAS,GAE/CqB,qBAAU,KACJq4F,IACEtW,IACFA,EAAoB,KAAEl3F,SAAWk+F,EAAalkD,UAAUh6C,OACpD0tG,GAAiB,EAAM,QACvB/iB,EAAS,aAADjoF,OACOw7F,EAAaz9F,KAAI,SAC9By2F,EAAoB,MAE1BA,EAAkB,GAAEl3F,SAAWk+F,EAAalkD,UAAUh6C,OAClD0tG,GAAiB,EAAM,MACvB/iB,EAAS,aAADjoF,OAAcw7F,EAAaz9F,KAAI,OAAOy2F,EAAkB,IACpEA,EAAuB,QAAEl3F,SAAWk+F,EAAalkD,UAAUh6C,OACvD0tG,GAAiB,EAAM,WACvB/iB,EAAS,aAADjoF,OACOw7F,EAAaz9F,KAAI,YAC9By2F,EAAuB,UAG/BuW,GAAe,GACjB,GACC,CAACvW,IAEJ/hF,qBAAU,KACJ63F,IACGN,GACH/hB,EAAS,aAADjoF,OAAcw7F,EAAaz9F,KAAI,SAAS,IAGlD8sG,EAAc,GAAD7qG,OAAIgqG,EAAY,UAC7BO,GAA6B,IAE/BT,GAAgB,GACf,CAACE,IAEJv3F,qBAAU,KACJ+3F,IACGN,GACHjiB,EAAS,aAADjoF,OAAcw7F,EAAaz9F,KAAI,OAAO,IAGhD8sG,EAAc,GAAD7qG,OAAIkqG,EAAU,QAC3BO,GAA2B,IAE7BX,GAAgB,GACf,CAACI,IAEJz3F,qBAAU,KACJi4F,IACGN,GACHniB,EAAS,aAADjoF,OAAcw7F,EAAaz9F,KAAI,YAAY,IAGrD8sG,EAAc,GAAD7qG,OAAIoqG,EAAe,aAChCO,GAAgC,IAElCb,GAAgB,GACf,CAACM,IAEJ,MAAMa,EAAYA,CAACnpD,EAAoBopD,KACrC,OAAQA,GACN,IAAK,OACH,GAAIlB,EAAc,OAAO,EACzB,MAEF,IAAK,KACH,GAAIE,EAAY,OAAO,EACvB,MAEF,IAAK,UACH,GAAIE,EAAiB,OAAO,EAIhC,IAAI9lF,EAASD,EAAS,aAAArkB,OACPw7F,EAAaz9F,KAAI,KAAAiC,OAAIkrG,IAEpC,QAAO5mF,GAASA,EAAO3P,SAAS,GAAD3U,OAAI8hD,GAAqB,EAGpDkpD,EAAmBv5F,MAAO4vE,EAAkB6pB,KAChD,OAAQA,GACN,IAAK,OACHjB,EAAgB5oB,GAChBkpB,GAA6B,GAC7B,MAEF,IAAK,KACHJ,EAAc9oB,GACdopB,GAA2B,GAC3B,MAEF,IAAK,UACHJ,EAAmBhpB,GACnBspB,GAAgC,GAEpC,EAqBF,OACEhrG,cAAAyV,WAAA,CAAAtW,SACEsR,eAAC+6F,KAAS,CAAArsG,SAAA,CACRa,cAACyrG,KAAgB,CAACC,WAAY1rG,cAACwhG,KAAc,IAAIriG,SAC/Ca,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAE08F,EAAaz9F,SAEzC4B,cAAC2rG,KAAgB,CAAAxsG,SACfsR,eAACojE,KAAK,CAAA10E,SAAA,CACJa,cAAC+zE,KAAS,CAAA50E,SACRsR,eAACujE,KAAQ,CAAA70E,SAAA,CACPa,cAACi0E,KAAS,CAAA90E,SAAC,gBACXa,cAACi0E,KAAS,CAAChhE,MAAO,CAAEI,MAAO,MAAOlU,SAAC,SACnCa,cAACi0E,KAAS,CAAChhE,MAAO,CAAEI,MAAO,MAAOlU,SAAC,OACnCa,cAACi0E,KAAS,CAAChhE,MAAO,CAAEI,MAAO,MAAOlU,SAAC,iBAGvCsR,eAAC6jE,KAAS,CAAAn1E,SAAA,CACRsR,eAACujE,KAAQ,CAAA70E,SAAA,CACPa,cAACi0E,KAAS,CAAA90E,SAAC,QACXa,cAACi0E,KAAS,CAAA90E,SACRa,cAAC2hF,GAAQ,CACP15D,SAAUP,EACVzQ,QAAIza,EACJ4X,MAAM,UACNstE,QAAS2oB,EACTpgF,SAAUA,CAACnf,EAAG42E,IAAY2pB,EAAiB3pB,EAAS,YAGxD1hF,cAACi0E,KAAS,CAAA90E,SACRa,cAAC2hF,GAAQ,CACP15D,SAAUP,EACVzQ,QAAIza,EACJ4X,MAAM,UACNstE,QAAS6oB,EACTtgF,SAAUA,CAACnf,EAAG42E,IAAY2pB,EAAiB3pB,EAAS,UAGxD1hF,cAACi0E,KAAS,CAAA90E,SACRa,cAAC2hF,GAAQ,CACP15D,SAAUP,EACVzQ,QAAIza,EACJ4X,MAAM,UACNstE,QAAS+oB,EACTxgF,SAAUA,CAACnf,EAAG42E,IACZ2pB,EAAiB3pB,EAAS,iBAGpB,GAAArhF,OA9BIw7F,EAAaz9F,KAAI,SAgClCy9F,EAAalkD,UAAUjiC,KAAKke,GAEzBnjB,eAACujE,KAAQ,CAAA70E,SAAA,CAGPa,cAACi0E,KAAS,CAAA90E,SAAEy0B,EAAEx1B,OACd4B,cAACi0E,KAAS,CAAA90E,SACRa,cAAC2hF,GAAQ,CACP15D,SAAUP,EACVzQ,QAAIza,EACJ0vB,SAAUC,EACV/tB,KAAI,aAAAiC,OAAew7F,EAAaz9F,KAAI,SACpC7B,MAAOq3B,EAAEuuB,WACTu/B,QAAS4pB,EAAU13E,EAAEuuB,WAAY,QACjC/tC,MAAM,UACN6V,SAAUA,CAACnf,EAAG42E,IAlFV5vE,OAAO85F,EAAgBlqB,KAC/C4oB,GAAgB,GAChBY,EAAc,GAAD7qG,OAAIurG,EAAM,KAAAvrG,OAAIqhF,EAAO,UAClCyoB,GAAgB,EAgFM0B,CAAkBj4E,EAAEuuB,WAAYu/B,OAItC1hF,cAACi0E,KAAS,CAAA90E,SACRa,cAAC2hF,GAAQ,CACP15D,SAAUP,EACVzQ,QAAIza,EACJ0vB,SAAUC,EACV/tB,KAAI,aAAAiC,OAAew7F,EAAaz9F,KAAI,OACpC7B,MAAOq3B,EAAEuuB,WACTu/B,QAAS4pB,EAAU13E,EAAEuuB,WAAY,MACjC/tC,MAAM,UACN6V,SAAUA,CAACnf,EAAG42E,IA1FZ5vE,OAAO85F,EAAgBlqB,KAC7C8oB,GAAc,GACdU,EAAc,GAAD7qG,OAAIurG,EAAM,KAAAvrG,OAAIqhF,EAAO,QAClCyoB,GAAgB,EAwFM2B,CAAgBl4E,EAAEuuB,WAAYu/B,OAIpC1hF,cAACi0E,KAAS,CAAA90E,SACRa,cAAC2hF,GAAQ,CACP15D,SAAUP,EACVzQ,QAAIza,EACJ0vB,SAAUC,EACV/tB,KAAI,aAAAiC,OAAew7F,EAAaz9F,KAAI,YACpC7B,MAAOq3B,EAAEuuB,WACTu/B,QAAS4pB,EAAU13E,EAAEuuB,WAAY,WACjC/tC,MAAM,UACN6V,SAAUA,CAACnf,EAAG42E,IAlGP5vE,OAAO85F,EAAgBlqB,KAClDgpB,GAAmB,GACnBQ,EAAc,GAAD7qG,OAAIurG,EAAM,KAAAvrG,OAAIqhF,EAAO,aAClCyoB,GAAgB,EAgGM4B,CAAqBn4E,EAAEuuB,WAAYu/B,SAG7B,GAAArhF,OA5CJw7F,EAAaz9F,KAAI,KAAAiC,OAAIuzB,EAAEx1B,KAAI,KAAAiC,OAAI4qG,gBAlDrCpP,EAAaz9F,OAsG5B,EC8RQ4tG,OAxfkD9sG,IAK1D,IAAD+sG,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAL4D,aAChExlF,EAAY,SACZylF,EAAQ,SACRjlF,GAAW,EAAK,aAChB2D,GACDnsB,EACC,MAAM,UAAEsc,EAAS,kBAAEC,GAAsB4hB,MACnC,cAAE0Z,EAAa,QAAEE,GAAYmB,MAC5Bw0D,EAAaC,GAAkBp7F,mBACpCyV,EAAape,YACY,QAArBmjG,EAAA/kF,EAAape,gBAAQ,IAAAmjG,OAAA,EAArBA,EAAuBtuG,QAAS,QAGhCnB,IAECswG,EAAYC,GAAiBt7F,oBAAS,IACtCu7F,EAAmBC,GAAwBx7F,oBAAS,IACpDy7F,EAAiBC,GAAsB17F,mBAASiW,IAChD0lF,EAAeC,GAAoB57F,mBAASk7F,GAE7Cr6E,EAAQC,eACR6Y,EAAe1Y,aAAcJ,EAAMK,YAAY0Y,KAAK,OAE1Dv4B,qBAAU,KACJ65F,GAEF9hF,EAAKyiF,UAEPD,EAAiBV,EAAS,GACzB,CAACA,IAEJ,MAAMY,EAAenjF,OAAaC,MAAM,CACtC9tB,MAAO6tB,OAEJ5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,YAG9BgoG,EAAgC9zF,mBAAQ,KAC5C,IAAI+K,EAAc,CAAC,EACnB,GAAI2oF,GAAiBlmF,EAAayoB,SAAU,CAC1C,IAAI3pC,EAAU8mC,KAAO5lB,EAAayoB,UAAU5C,eAC1C,IAAIhvC,KACJ,OAEEmpB,EAAayoB,SACb7C,OAASwG,QAAQ,OACrB7uB,EAAS,CACP1c,QAASqiB,OAEN5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,UAClCmqC,SAAUvlB,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACV7kB,IACCM,EAAQ6pC,SACR02D,GACErjG,EAAUqC,WAAWuB,oBACrBd,EAAQ4pC,OAAO,gBAGrBC,OAAQzlB,OAELolE,WACAjlE,UAAU,IACVkjF,KAAK,YAAY,CAAC99D,EAAuBvlB,IACxCulB,EACIvlB,EAAI1kB,IACFiqC,EACA42D,GAAarjG,EAAUqC,WAAWuB,oBAAqB,SAEzDsjB,IAERuoB,OAAQ46D,EAAahjF,UAAUrnB,EAAUqC,WAAWC,UAExD,KAAO,CAAC,IAADkoG,EACLjpF,EAAS,CACP1c,QAASqiB,OAEN5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,UAClCmqC,SAAUvlB,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACV7kB,IACgC,QAD7BgoG,EACF5gE,KAAO,IAAI/uC,MAAQu1C,QAAQ,YAAI,IAAAo6D,OAAA,EAA/BA,EAAiC79D,SACjC3sC,EAAUqC,WAAWsB,cAEzBgpC,OAAQzlB,OAELolE,WACAjlE,UAAU,IACVkjF,KAAK,YAAY,CAAC99D,EAAuBvlB,IACxCulB,EACIvlB,EAAI1kB,IACFiqC,EACA42D,GAAarjG,EAAUqC,WAAWuB,oBAAqB,SAEzDsjB,IAERuoB,OAAQ46D,EAAahjF,UAAUrnB,EAAUqC,WAAWC,UAExD,CACA,OAAO4kB,OAAaC,MAAM5F,EAAO,GAChC,CAAC2oF,IAEEviF,EAAOC,aAAkC,CAC7CG,KAAM,WACNF,SAAUC,aAAYwiF,KAElBG,EAAgB9U,aAAS,CAC7B/xE,QAAS+D,EAAK/D,QACd1oB,KAAM,WACN8oB,aAAmC,QAAvBglF,EAAEhlF,EAAayoB,gBAAQ,IAAAu8D,OAAA,EAArBA,EAAuBr8D,WAEjC+9D,EAAe/U,aAAS,CAC5B/xE,QAAS+D,EAAK/D,QACd1oB,KAAM,UACN8oB,aAAcA,EAAanf,UA4B7B+K,qBAAU,KACR+6F,GAAc,GACb,CACDb,EACAY,EACAD,EACAf,EACA/hF,EAAK2B,UAAUE,UAGjB,MAAMmhF,EAAeA,KACnB,GACEb,GACCY,GACCD,GACA7gE,KAAO6gE,GAAejhF,gBACNlwB,IAAhBowG,GACA/hF,EAAK2B,UAAUE,QACjB,CACA,IAAI/H,EAASkG,EAAKnG,YACdopF,EAAyBlB,IAA4B,EAMzD,IAJoB,IAAhBA,GAA+B,OAANjoF,QAAM,IAANA,KAAQ7b,WACnCglG,EAAgBnpF,EAAO7b,SAASnL,OAAS,GAGjC,OAANgnB,QAAM,IAANA,KAAQ+yB,UAAW,CACrB,IAAIq2D,EAAM7vG,OAAOymB,OAAOA,EAAO+yB,WAC/Bo2D,EACEA,IACCC,EAAIjpF,MAAMvN,GAAWA,EAAEm4B,KAAK/xC,OAAS,KACpCowG,EAAIjpF,MAAMvN,GAAWA,EAAErC,GAAGvX,OAAS,KACnCowG,EAAIjpF,MAAMvN,GAAWA,EAAEy2F,QAAQrwG,OAAS,IAC9C,CAEAovG,GAAee,EACjB,MACEf,GAAc,GAEhBE,GAAqB,EAAM,EAE7B,OACEjtG,cAAAyV,WAAA,CAAAtW,SACEa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTa,cAACiuG,KAAY,IAAKpjF,EAAI1rB,SACpBsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAxERvZ,UAAsD,IAADo8F,EAAAC,EACpE,IAAIC,EACAC,EAAgBvlG,WAEhBslG,EADE1xG,MAAMD,QAAQ4xG,EAAgBvlG,UACjBulG,EAAgBvlG,SAEhB,CAACulG,EAAgBvlG,WAIpCuiB,EAAa,IACRnE,EACHyoB,SACE0+D,EAAgB1+D,UAChB7C,KAAOuhE,EAAgB1+D,UAAU2D,QAAQ,KAC3CzD,OACEw+D,EAAgBx+D,QAAU/C,KAAOuhE,EAAgBx+D,QAAQg3C,MAAM,KACjEl0C,OAA8B,QAAxBu7D,EAAEG,EAAgB17D,cAAM,IAAAu7D,OAAA,EAAtBA,EAAwB3xG,MAChCsjD,QAASwuD,EAAgBxuD,QACzB8/C,YAAoC,QAAzBwO,EAAEE,EAAgBtmG,eAAO,IAAAomG,OAAA,EAAvBA,EAAyB5xG,MACtCuM,SAAUslG,EACV12D,UAAW22D,EAAgB32D,WAC3B,IAmDMlsB,YAAU,EAAArsB,SAAA,CAEVsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,SAAQ1sB,SAAA,CAChCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAGtK,GAAI,EAAEptB,SAC9Ba,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,UAASrnB,SACnC+tG,EACCltG,cAACmnB,GAAS,CACR/oB,KAAK,UACL7B,MAA2B,QAAtB4vG,EAAEjlF,EAAanf,eAAO,IAAAokG,OAAA,EAApBA,EAAsB3lF,MAC7BY,UAAQ,IAGVpnB,cAACk/E,GAAc,CACb9gF,KAAK,UACL6Y,GAAG,UACH8Q,QAASvM,EAAU9F,KAAK3N,IAAO,CAC7BxL,MAAOwL,EAAQ43F,YACfn5E,MAAOze,EAAQ23F,gBAEjB54E,QAAS+D,EAAK/D,QACd1T,OAAO,SACP8T,aAAcA,EAAanf,QAC3BJ,YAAY,aACZ/F,QAASipB,EAAK5d,OAAOlF,QACrBmgB,aACE2C,EAAK5d,OAAOlF,QACY,QADLqkG,EACdvhF,EAAK5d,OAAOlF,eAAO,IAAAqkG,OAAA,EAApBA,EAA8B5sG,QAC9B,SAMdiR,eAACmb,KAAI,CACHhb,WAAS,EACTmb,MAAI,EACJ4K,GAAI,GACJE,GAAI,EACJtK,GAAI,EACJ7b,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CAExCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAE13B,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACtB+tG,EACCltG,cAACmnB,GAAS,CACR/oB,KAAK,WACL7B,MAA4B,QAAvB8vG,EAAEnlF,EAAayoB,gBAAQ,IAAA08D,OAAA,EAArBA,EAAuBz8D,OAAO,cACrCxoB,UAAQ,IAGVpnB,cAAC4lF,GAAU,CACT5/E,QACEkhB,EAAayoB,UACb7C,KAAO5lB,EAAayoB,UAAU5C,eAC5B,IAAIhvC,KACJ,OAEuB,QADxBuuG,EACGplF,EAAayoB,gBAAQ,IAAA28D,OAAA,EAArBA,EAAuBz8D,SACvB/C,OAASwG,QAAQ,OAAOzD,SAE9Bi2C,uBAAuB,EACvBiB,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,WACL6Y,GAAG,WACH24B,OAAO,aACP1oB,aAAcA,EAAayoB,SAC3B7oB,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAO0iC,SACrBvjB,WACEvB,EAAK5d,OAAO0iC,SACR9kB,EAAK5d,OAAO0iC,SAASnwC,QACrB,SAMdQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAE13B,SACvBa,cAACumB,GAAW,CAACC,MAAM,KAAKE,YAAawmF,EAAgB/tG,SAClD+tG,EACCltG,cAACmnB,GAAS,CACR/oB,KAAK,SACL7B,MAA0B,QAArBgwG,EAAErlF,EAAa2oB,cAAM,IAAA08D,OAAA,EAAnBA,EAAqB38D,OAAO,cACnCxoB,UAAQ,IAGVpnB,cAAC4lF,GAAU,CACT5/E,QAAsB,OAAb2nG,QAAa,IAAbA,IAAiB,IAAI5vG,KAC9BgpF,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,SACL6Y,GAAG,SACH24B,OAAO,aACP1oB,aAAcA,EAAa2oB,OAC3B/oB,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAO4iC,OACrBzjB,WACEvB,EAAK5d,OAAO4iC,OAAShlB,EAAK5d,OAAO4iC,OAAOrwC,QAAU,YAO9DQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAGtK,GAAI,EAAEptB,SAC9Ba,cAACumB,GAAW,CAACC,MAAM,SAAQrnB,SACxB+tG,EACCltG,cAACmnB,GAAS,CACR/oB,KAAK,SACL7B,MAAO2qB,EAAayrB,OACpBvrB,UAAQ,IAGVpnB,cAACk/E,GAAc,CACb9gF,KAAM,SACN2pB,QAASkvB,EAAQvhC,KAAKi9B,IAAM,CAC1Bp2C,MAAOo2C,EAAOA,OACdnsB,MAAOmsB,EAAOA,WAEhB7rB,QAAS+D,EAAK/D,QACd1T,OAAO,SACP8T,aAAcA,EAAayrB,OAC3BhrC,YAAY,oCACZ/F,QAASipB,EAAK5d,OAAO0lC,OACrBzqB,aACE2C,EAAK5d,OAAO0lC,OACW,QADL65D,EACb3hF,EAAK5d,OAAO0lC,cAAM,IAAA65D,OAAA,EAAnBA,EAA6BhtG,QAC7B,SAMdQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAGtK,GAAI,EAAEptB,SAC9Ba,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SACzB+tG,EACCltG,cAACmnB,GAAS,CACR/oB,KAAK,UACL7B,MAAO2qB,EAAa24B,QACpBz4B,UAAQ,IAGVpnB,cAACmnB,GAAS,CACR/oB,KAAK,UACL8tB,SAAUrB,EAAKsB,SACf/Y,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXq7D,QAAS,EACT/gE,WAAS,EACThf,YAAY,2BACZuf,aAAcA,EAAa24B,QAC3Bj+C,QAASipB,EAAK5d,OAAO4yC,QACrBzzB,WACEvB,EAAK5d,OAAO4yC,QACY,QADL4sD,EACd5hF,EAAK5d,OAAO4yC,eAAO,IAAA4sD,OAAA,EAApBA,EAA8BjtG,QAC9B,SAMbouG,GACC5tG,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACR+tG,EACCltG,cAACumB,GAAW,CAACC,MAAM,kCAAiCrnB,SACf,KAAb,QAArButG,EAAAxlF,EAAape,gBAAQ,IAAA4jG,OAAA,EAArBA,EAAuB/uG,SACtBqC,cAACmnB,GAAS,CACR/oB,KAAK,WACL7B,MAAM,eACN6qB,UAAQ,MAKdpnB,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,qEAQnCyuG,IAAiBV,GAChBltG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAGtK,GAAI,EAAEptB,SAC9Ba,cAAC8nB,GAAa,CACZ1pB,KAAK,WACL2pB,QAAS,CACP,CAAEvB,MAAO,oBAAqBjqB,OAAO,GACrC,CAAEiqB,MAAO,kBAAmBjqB,OAAO,IAErCA,MAAOqwG,EACP3iF,SAAUA,CAACnf,EAAGvO,IAAUswG,EAAetwG,QAI5B,IAAhBqwG,GACC5sG,cAAC4rB,KAAI,CAAChb,WAAS,EAACmb,MAAI,EAAC4K,GAAI,GAAGx3B,SACzBsc,EACE0lB,QACExN,GACCA,EAAEgsE,eAA4B,OAAZiO,QAAY,IAAZA,OAAY,EAAZA,EAAcrxG,SAAUo3B,EAAE08C,aAE/C36D,KAAKke,IAAC,IAAA06E,EAAA,OACLtuG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAAC2hF,GAAQ,CACP15D,SAAUilF,EACVj2F,GAAI2c,EAAEvZ,KACNmM,MAAOoN,EAAEvZ,KACT6R,SAAUrB,EAAKsB,SACf/tB,KAAI,WACJ7B,MAAOq3B,EAAEvZ,KACT6oE,eACuB,QADTorB,EACZpnF,EAAape,gBAAQ,IAAAwlG,OAAA,EADPA,EAEbt5F,SAAS4e,EAAEvZ,MACdjG,MAAM,UACN6V,SAAUA,IAAMgjF,GAAqB,MACrC,GAAA5sG,OAbsBuzB,EAAEvZ,MAcrB,MAIduzF,GACCn9F,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,MACC3C,IAAhBowG,GAA6B71D,GAC5B/2C,cAAC8Y,KAAG,CAAC6uE,GAAI,EAAExoF,SACR+tG,EACCltG,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,iDAI5Ba,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,wFAQd3C,IAAhBowG,GACC71D,GACAA,EAAcrhC,KAAKie,GAEf3zB,cAACkqG,GAAwB,CACvBxiF,SAAUwlF,EAEVrR,aAAcloE,EACdkhE,cACE3tE,EAAawwB,WACbxwB,EAAawwB,UAAU/jB,EAAEv1B,MAE3B+rG,eAAgB0D,GANXl6E,EAAEv1B,cAapB8uG,EACCltG,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CACF6uE,GAAI,EACJz0E,QAASk4B,EAAe,QAAU,OAClClE,eAAe,SAAQ/nC,SAEvBa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRP,UAAWkV,KAAWC,sBACtB5O,GAAG,2BACHyO,QAASA,KACPynF,GAAmB,GACnBE,GAAiB,EAAK,EACtBluG,SACH,gCAOPa,cAAC8Y,KAAG,CAACyhC,EAAG,EAAGrnC,QAAQ,OAAOg0B,eAAe,SAAQ/nC,SAC/Ca,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoa,GAAG,qBACHhG,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBgC,SAAU6kF,EAAW3tG,SACtB,gCAQV,EC3QQovG,OAtPgDrvG,IAOxD,IAADsvG,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAP0D,kBAC9DC,EAAiB,KACjBhkF,EAAI,cACJgqE,EAAa,UACbia,EAAS,SACTpnF,GAAW,EAAK,YAChBqnF,GAAc,GACf7vG,EACC,MAAM,YAAEi4C,EAAW,QAAEF,GAAYmB,MAC1B42D,EAAUC,GAAex9F,mBAC9B0lC,EAAYx5C,UAAoC,QAA9B6wG,EAAK3Z,EAAcqa,mBAAW,IAAAV,OAAA,EAAzBA,EAA2B7wG,SAE9CgwG,EAAgB9U,aAAe,CACnC/xE,QAAS+D,EAAK/D,QACd1oB,KAAM0wG,EAAS,YAAAzuG,OAAeyuG,GAAc,cAEvC3D,EAAaC,GAAkB35F,oBAAS,GAE/CqB,qBAAU,KACJq4F,IACFtgF,EAAKy9D,SACHwmB,EAAS,eAAAzuG,OAAkByuG,GAAc,cACzCja,EAAcqa,aAEhB9D,GAAe,GACjB,GACC,CAAC0D,EAAWja,IAEf/hF,qBAAU,KACR,GAAIi8F,EAAa,CACf,IAAII,EAAWL,EAAS,YAAAzuG,OAAeyuG,GAAc,WACjDM,EAASN,EAAS,UAAAzuG,OAAayuG,GAAc,SACjDjkF,EAAKsB,SAAS,CAAE/tB,KAAM+wG,EAAUtyG,KAAM,WACtCguB,EAAKsB,SAAS,CAAE/tB,KAAMgxG,EAAQvyG,KAAM,WACpCguB,EAAKy9D,SAAS6mB,EAAUta,EAAcllD,UACtC9kB,EAAKy9D,SAAS8mB,EAAQva,EAAchlD,OACtC,IACC,CAACk/D,IAEJ,MAQMzD,EAAanpD,IACjB,IAAI+sD,EAAcrkF,EAAKnG,UACrBoqF,EAAS,eAAAzuG,OAAkByuG,GAAc,eAE3C,OAAkB,OAAXI,QAAW,IAAXA,OAAW,EAAXA,EAAal6F,SAASmtC,KAAe6sD,CAAQ,EAQhDK,EAAsB9vG,uBACzBhD,IACC,MAAMo2C,EAASsE,EAAQv6B,MAAMiX,GAAMA,EAAEgf,SAAWp2C,IAChD,OAAOo2C,GAAU,CAAEp2C,MAAOo2C,EAAOA,OAAQnsB,MAAOmsB,EAAOA,OAAQ,GAEjE,CAACsE,IAEH,OACEj3C,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAE13B,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACtBuoB,GAAYqnF,EACX/uG,cAACmnB,GAAS,CACR/oB,KAAM0wG,EAAS,YAAAzuG,OAAeyuG,GAAc,WAC5CvyG,MAA6B,QAAxBkyG,EAAE5Z,EAAcllD,gBAAQ,IAAA8+D,OAAA,EAAtBA,EAAwB7+D,OAAO,cACtCxoB,UAAQ,IAGVpnB,cAAC4lF,GAAU,CACT5/E,QACE6uF,EAAcllD,UACd7C,KAAO+nD,EAAcllD,UAAU5C,eAC7B,IAAIhvC,KACJ,OAEwB,QADzB2wG,EACG7Z,EAAcllD,gBAAQ,IAAA++D,OAAA,EAAtBA,EAAwB7+D,SACxB/C,OAASwG,QAAQ,OAAOzD,SAE9Bi2C,uBAAuB,EACvBiB,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAM0wG,EAAS,YAAAzuG,OAAeyuG,GAAc,WAC5Cl/D,OAAO,aACP1oB,aAAc2tE,EAAcllD,SAC5B7oB,QAAS+D,EAAK/D,QACdllB,QACIipB,EAAK5d,OACL6hG,EAAS,YAAAzuG,OAAeyuG,GAAc,YAG1C1iF,WACEvB,EAAK5d,OAAO6hG,EAAS,YAAAzuG,OAAeyuG,GAAc,YAC9CjkF,EAAK5d,OACH6hG,EAAS,YAAAzuG,OAAeyuG,GAAc,YACtCtvG,QACF,SAMdQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAE13B,SACvBa,cAACumB,GAAW,CAACC,MAAM,KAAKE,YAAagB,IAAaqnF,EAAY5vG,SAC3DuoB,GAAYqnF,EACX/uG,cAACmnB,GAAS,CACR/oB,KAAM0wG,EAAS,UAAAzuG,OAAayuG,GAAc,SAC1CvyG,MAA2B,QAAtBoyG,EAAE9Z,EAAchlD,cAAM,IAAA8+D,OAAA,EAApBA,EAAsB/+D,OAAO,cACpCxoB,UAAQ,IAGVpnB,cAAC4lF,GAAU,CACT5/E,QAAsB,OAAb2nG,QAAa,IAAbA,IAAiB,IAAI5vG,KAC9BgpF,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZm+E,uBAAuB,EACvB1nF,KAAM0wG,EAAS,UAAAzuG,OAAayuG,GAAc,SAC1Cl/D,OAAO,aACP9oB,QAAS+D,EAAK/D,QACdI,aAAc2tE,EAAchlD,OAC5BjuC,QACIipB,EAAK5d,OAAO6hG,EAAS,UAAAzuG,OAAayuG,GAAc,UAEpD1iF,WACEvB,EAAK5d,OAAO6hG,EAAS,UAAAzuG,OAAayuG,GAAc,UAC5CjkF,EAAK5d,OAAO6hG,EAAS,UAAAzuG,OAAayuG,GAAc,UAC7CtvG,QACH,SAMdQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,SAAQrnB,SACxBuoB,EACC1nB,cAACmnB,GAAS,CACR/oB,KAAM0wG,EAAS,UAAAzuG,OAAayuG,GAAc,SAC1CvyG,MAAOs4F,EAAcliD,OACrBvrB,UAAQ,IAGVpnB,cAACk/E,GAAc,CACb9gF,KAAM0wG,EAAS,UAAAzuG,OAAayuG,GAAc,SAC1C/mF,QAASkvB,EAAQvhC,KAAKi9B,IAAM,CAC1Bp2C,MAAOo2C,EAAOA,OACdnsB,MAAOmsB,EAAOA,WAEhB7rB,QAAS+D,EAAK/D,QACd1T,OAAO,SACP8T,aAAuD,QAA3C0nF,EAAES,EAAoBxa,EAAcliD,eAAO,IAAAi8D,IAAI,KAC3DjnG,YAAY,oCACZ/F,MACEipB,EAAK5d,OAAO6hG,EAAS,UAAAzuG,OAAayuG,GAAc,UAElD5mF,aACE2C,EAAK5d,OAAO6hG,EAAS,UAAAzuG,OAAayuG,GAAc,UAC5CjkF,EAAK5d,OAAO6hG,EAAS,UAAAzuG,OAAayuG,GAAc,UAC7CtvG,QACH,SAMdQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,UAAUE,YAAY,EAAKvnB,SAC3CuoB,EACC1nB,cAACmnB,GAAS,CACR/oB,KAAM0wG,EAAS,WAAAzuG,OAAcyuG,GAAc,UAC3CziF,WAAW,EACXC,KAAK,IACL/vB,MAAOs4F,EAAch1C,QACrBz4B,UAAQ,IAGVpnB,cAACmnB,GAAS,CACR/oB,KAAM0wG,EAAS,WAAAzuG,OAAcyuG,GAAc,UAC3C5iF,SAAUrB,EAAKsB,SACf/Y,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXC,KAAK,IACL3F,WAAS,EACThf,YAAY,2BACZuf,aAAc2tE,EAAch1C,QAC5Bj+C,MACEipB,EAAK5d,OAAO6hG,EAAS,WAAAzuG,OAAcyuG,GAAc,WAEnD1iF,WACEvB,EAAK5d,OAAO6hG,EAAS,WAAAzuG,OAAcyuG,GAAc,WAC7CjkF,EAAK5d,OACH6hG,EAAS,WAAAzuG,OAAcyuG,GAAc,WACrCtvG,QACF,SAMdQ,cAAC4rB,KAAI,CAAChb,WAAS,EAACmb,MAAI,EAAA5sB,SAClBsR,eAAC8V,GAAW,CAACC,MAAM,cAAarnB,SAAA,CAC9Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC2hF,GAAQ,CACP15D,SAAUP,EACVzQ,QAAIza,EACJ4X,MAAM,UACNoS,MAAM,MACNk7D,QAASstB,EACT/kF,SAAUA,CAAClX,EAAG2uE,IAtLH5vE,WACvBm9F,EAAYvtB,GACPA,GACH72D,EAAKy9D,SAASwmB,EAAS,eAAAzuG,OAAkByuG,GAAc,cAAe,IAExED,GAAmB,EAiLmBxD,CAAiB3pB,MAPxB,OAUtBvqC,EAAYzhC,KAAKke,GAChB5zB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC2hF,GAAQ,CACP15D,SAAUP,EACVzQ,QAAIza,EACJgqB,MAAOoN,EAAEx1B,KACT8tB,SAAUrB,EAAKsB,SACf/tB,KAAM0wG,EAAS,eAAAzuG,OAAkByuG,GAAc,cAC/CvyG,MAAOq3B,EAAEuuB,WACTu/B,QAAS4pB,EAAU,GAADjrG,OAAIuzB,EAAEuuB,aACxB/tC,MAAM,UACN6V,SAAUA,IArLHnY,WACrBm9F,GAAY,GACZJ,GAAmB,EAmLWS,MAChB,GAAAjvG,OAXuBuzB,EAAEuuB,wBAiBpC,ECZQotD,OAjOwDrwG,IAKhE,IAADswG,EAAA,IALkE,aACtEtoF,EAAY,SACZylF,EAAQ,SACRjlF,GAAW,EAAK,aAChB2D,GACDnsB,EACC,MAAO8tG,EAAmBC,GAAwBx7F,oBAAS,IACpDq7F,EAAYC,GAAiBt7F,oBAAS,IACtCy7F,EAAiBC,GAAsB17F,mBAASiW,IAChD0lF,EAAeC,GAAoB57F,mBAASk7F,GAE7Cr6E,EAAQC,eACR6Y,EAAe1Y,aAAcJ,EAAMK,YAAY0Y,KAAK,OAE1Dv4B,qBAAU,KACJ65F,GAEF9hF,EAAKyiF,UAAUxqG,MAAMnB,QAAQC,OAE/ByrG,EAAiBV,EAAS,GACzB,CAACA,IAEJ,MAAMY,EAAenjF,OAAaC,MAAM,CACtC9tB,MAAO6tB,OAEJ5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,YAE9BiqG,EAAmC/1F,mBAAQ,KAC/C,IAAI+K,EACJ,GAAI2oF,GAAiBlmF,EAAayoB,SAAU,CAC1C,IAAI3pC,EAAU8mC,KAAO5lB,EAAayoB,UAAU5C,eAC1C,IAAIhvC,KACJ,OAEEmpB,EAAayoB,SACb7C,OAASwG,QAAQ,OACrB7uB,EAAS,CACPirF,YAAatlF,OAEV5kB,SAAStC,EAAUqC,WAAWC,UAC9B7H,OAAO,EAAG4oG,GAAarjG,EAAUqC,WAAW5H,OAAQ,IACvDgyC,SAAUvlB,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACV7kB,IACCM,EAAQ6pC,SACR02D,GACErjG,EAAUqC,WAAWuB,oBACrBd,EAAQ4pC,OAAO,gBAGrBC,OAAQzlB,OAELolE,WACAjlE,UAAU,IACVkjF,KAAK,YAAY,CAAC99D,EAAuBlrB,IACxCkrB,EACIlrB,EAAO/e,IACLiqC,EACA42D,GAAarjG,EAAUqC,WAAWuB,oBAAqB,SAEzD2d,IAERkuB,OAAQ46D,EAAahjF,UAAUrnB,EAAUqC,WAAWC,UAExD,KAAO,CAAC,IAADkoG,EACLjpF,EAAS,CACPirF,YAAatlF,OAEV5kB,SAAStC,EAAUqC,WAAWC,UAC9B7H,OAAO,EAAG4oG,GAAarjG,EAAUqC,WAAW5H,OAAQ,IACvDgyC,SAAUvlB,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACV7kB,IACgC,QAD7BgoG,EACF5gE,KAAO,IAAI/uC,MAAQu1C,QAAQ,YAAI,IAAAo6D,OAAA,EAA/BA,EAAiC79D,SACjC3sC,EAAUqC,WAAWsB,cAEzBgpC,OAAQzlB,OAELolE,WACAjlE,UAAU,IACVkjF,KAAK,YAAY,CAAC99D,EAAuBlrB,IACxCkrB,EACIlrB,EAAO/e,IACLiqC,EACA42D,GAAarjG,EAAUqC,WAAWuB,oBAAqB,SAEzD2d,IAERkuB,OAAQ46D,EAAahjF,UAAUrnB,EAAUqC,WAAWC,UACpDq6C,QAASz1B,OAENzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAEvD,CACA,OAAOykB,OAAaC,MAAM5F,EAAO,GAChC,CAAC2oF,IAEEviF,EAAOC,aAAqC,CAChDG,KAAM,WACNF,SAAUC,aAAYykF,GACtB5a,cAAe3tE,IAoBjBpU,qBAAU,KACR+6F,GAAc,GACb,CAACb,EAAmBniF,EAAK2B,UAAUE,UAEtC,MAAMmhF,EAAeA,KACnB,IAAIqB,EAAcrkF,EAAKnG,UAAU,eAEjCqoF,IACIliF,EAAK2B,UAAUE,SAAWwiF,IAA0B,OAAXA,QAAW,IAAXA,OAAW,EAAXA,EAAavxG,QAAS,IAE/DqvG,GACFC,GAAqB,EACvB,EAGF,OACEjtG,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cApCJvZ,UAAyD,IAAD69F,EAAAzB,EAAA0B,EAAAC,EACvExkF,EAAa,IACRnE,EACHwoF,YAAwC,QAA7BC,EAAEtB,EAAgBqB,mBAAW,IAAAC,IAAI,GAC5Ch9D,OAAqC,QAA/Bu7D,EAAwB,QAAxB0B,EAAEvB,EAAgB17D,cAAM,IAAAi9D,OAAA,EAAtBA,EAAwBrzG,aAAK,IAAA2xG,IAAI,GACzCruD,QAAgC,QAAzBgwD,EAAExB,EAAgBxuD,eAAO,IAAAgwD,IAAI,GACpClgE,SACE0+D,EAAgB1+D,UAChB7C,KAAOuhE,EAAgB1+D,UAAU2D,QAAQ,KAC3CzD,OACEw+D,EAAgBx+D,QAAU/C,KAAOuhE,EAAgBx+D,QAAQg3C,MAAM,KACjEipB,YAAazB,EAAgBa,YACzBb,EAAgBa,YAAYx5F,KAAK2O,IAAOA,IACxC,IACJ,IAuBEmH,YAAU,EAAArsB,SAAA,CAEVsR,eAACmb,KAAI,CACHhb,WAAS,EACTF,UAAWkV,KAAWg2E,kBACtB/vE,UAAU,SAAQ1sB,SAAA,CAElBa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAGtK,GAAI,EAAEptB,SAC9Ba,cAACumB,GAAW,CAACC,MAAM,eAAcrnB,SAC/Ba,cAACmnB,GAAS,CACRC,SAAU8lF,EACV9uG,KAAK,cACLuJ,YAAY,KACZukB,SAAUrB,EAAKsB,SACfjF,aAAcA,EAAawoF,YAC3B/oF,WAAS,EACT/kB,QAASipB,EAAK5d,OAAOyiG,YACrBtjF,WACEvB,EAAK5d,OAAOyiG,YAAc7kF,EAAK5d,OAAOyiG,YAAYlwG,QAAU,SAKpEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAGtK,GAAI,EAAEptB,SAC9Ba,cAACuuG,GAAkB,CACjB7mF,SAAUwlF,EACV2B,kBAAmBA,IAAM5B,GAAqB,GAC9CpiF,KAAMA,EACNgqE,cAAe,CACbllD,SAAUzoB,EAAayoB,SACvBE,OAAQ3oB,EAAa2oB,OACrB8C,OAA2B,QAArB68D,EAAEtoF,EAAayrB,cAAM,IAAA68D,OAAA,EAAnBA,EAAqBjzG,MAC7BsjD,QAAS34B,EAAa24B,QACtBqvD,YAAahoF,EAAagoF,oBAKjChC,EACCltG,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CACF6uE,GAAI,EACJz0E,QAASk4B,EAAe,QAAU,OAClClE,eAAe,SAAQ/nC,SAEvBa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRP,UAAWkV,KAAWC,sBACtB5O,GAAG,0BACHyO,QAASA,KACPynF,GAAmB,GACnBE,GAAiB,EAAK,EACtBluG,SACH,gCAOPa,cAAC8Y,KAAG,CAACyhC,EAAG,EAAGrnC,QAAQ,OAAOg0B,eAAe,SAAQ/nC,SAC/Ca,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoa,GAAG,qBACHhG,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBgC,SAAU6kF,EAAW3tG,SACtB,4BAMH,ECrMK4wG,OA5C8C7wG,IAItD,IAJuD,cAC5D8wG,EAAa,gBACbC,EAAe,aACfC,GACDhxG,EACC,OACEc,cAAC8Y,KAAG,CACFpI,UAAWkV,KAAWuqF,sBACtBzqF,QAASA,IAAMwqF,EAAaF,EAAcv7B,SAASt1E,SAEnDsR,eAACmb,KAAI,CACHhb,WAAS,EACTs2B,eAAe,gBACf/zB,WAAW,SACXg0B,QAAS,EACTz2B,UAAS,GAAArQ,OAAKulB,KAAWwqF,gBAAe,KAAA/vG,OACtC4vG,IAAoBD,EAAcv7B,SAClC7uD,KAAWyqF,wBACVlxG,SAAA,CAEHa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAAC2oF,KAAK,CACJv0E,MAAM,UACNstE,QAASuuB,IAAoBD,EAAcv7B,QAC3CxqD,SAAWnf,GAAMolG,EAAaplG,EAAEoL,OAAO3Z,OACvCA,MAAOyzG,EAAcv7B,YAGzBhkE,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAE6wG,EAAcv7B,UACxCz0E,cAACgR,IAAU,CAAA7R,SAAC,oDAGX6wG,EAAcM,YAAY56F,KAAKie,GAC9B3zB,cAACgR,IAAU,CAAA7R,SACR2tC,KAAOnZ,GAAGic,OAAO,aAAa6K,eAAa,GAAAp6C,OAD1B2vG,EAAcv7B,QAAO,KAAAp0E,OAAIszB,aAM/C,ECgBK48E,OArDwDrxG,IAKhE,IALiE,eACtEsxG,EAAc,gBACdP,EAAe,aACfC,EAAY,eACZO,GACDvxG,EACC,MAAMozB,EAAQC,eACR6Y,EAAe1Y,aAAcJ,EAAMK,YAAY0Y,KAAK,OAC1D,OACE56B,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACgR,IAAU,CAAA7R,SAAC,aACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,0DAGzBa,cAACgR,IAAU,CAAA7R,SAAC,8CACZa,cAAC8Y,KAAG,CAAC43F,GAAI,EAAEvxG,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACZqxG,EAAe96F,KAAKie,GACnB3zB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC+vG,GAAiB,CAChBC,cAAer8E,EACfs8E,gBAAiBA,EACjBC,aAAcA,KAJMv8E,EAAE8gD,WAQ5Bz0E,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CACF6uE,GAAI,EACJz0E,QAASk4B,EAAe,QAAU,OAClClE,eAAe,SAAQ/nC,SAEvBa,cAAC8Y,KAAG,CAACG,GAAImyB,EAAe,EAAI,EAAGyC,GAAIzC,EAAe,EAAI,EAAEjsC,SACtDa,cAAC2lB,KAAM,CACL1U,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBgC,SAAsC,KAAb,OAAfgoF,QAAe,IAAfA,OAAe,EAAfA,EAAiBtyG,QAC3BsZ,GAAG,+BACHyO,QAASA,KACP+qF,GAAgB,EAChBtxG,SAED+D,EAAUC,QAAQW,wBAO9B,EC6FQ6sG,OAzIwDzxG,IAKhE,IALiE,YACtE0xG,EAAW,aACXC,EAAY,mBACZC,EAAkB,eAClBL,GACDvxG,EACC,MAAM2rB,EAAOC,gBACNgiF,EAAYC,GAAiBt7F,oBAAS,IACtCu7F,EAAmBC,GAAwBx7F,oBAAS,GAErD6gB,EAAQC,eACR6Y,EAAe1Y,aAAcJ,EAAMK,YAAY0Y,KAAK,OAE1Dv4B,qBAAU,KACJ+9F,EAAalzG,OAAS,IACpBkzG,EAAalzG,SAAWizG,EAAYjzG,OACtCsxG,GAAY,GAEZpkF,EAAKy9D,SACH,OACAuoB,EAAan7F,KAAKie,GAAMA,EAAEo9E,kBAG9B9D,GAAqB,GACvB,GACC,CAAC4D,IAEJ/9F,qBAAU,KACR,GAAIk6F,EAAmB,CACrB,IAAIroF,EAASkG,EAAKnG,YAClBqoF,EAAqC,IAAvBpoF,EAAOq8B,KAAKrjD,QAC1BsvG,GAAqB,EACvB,IACC,CAACD,IAEJ,MASOgC,EAAUC,GAAex9F,oBAAS,GAEnC65F,EAAa0F,IAAwB,IAADC,EAExC,OAAkB,QAAXA,EADMpmF,EAAKnG,YACJs8B,YAAI,IAAAiwD,OAAA,EAAXA,EAAaj8F,SAASg8F,KAAehC,CAAQ,EAetD,OACEv+F,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cA/BG6lF,IACpB,GAAIA,EAAQlwD,KAAKrjD,OAAS,EAAG,CAC3B,IAAIqjD,EAAO4vD,EAAYzvE,QAAQxN,GAC7Bu9E,EAAQlwD,KAAKhsC,SAAS2e,EAAEo9E,kBAE1BN,EAAezvD,EACjB,KA0BEx1B,YAAU,EAAArsB,SAAA,CAEVa,cAACgR,IAAU,CAAA7R,SAAC,aACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,iEAGzBa,cAAC8Y,KAAG,CAAC43F,GAAI,EAAEvxG,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACrDyxG,EAAYl7F,KAAKke,GAEd5zB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC2hF,GAAQ,CACP1qE,QAAIza,EACJgqB,MAAOoN,EAAEm9E,eACT7kF,SAAUrB,EAAKsB,SACf/tB,KAAI,OACJ7B,MAAOq3B,EAAEm9E,eACT38F,MAAM,UACNstE,QACuB,aAArB9tD,EAAEm9E,eACE/B,EACA1D,EAAU13E,EAAEm9E,gBAElB9mF,SAAUA,CACR5M,EACAqkE,KAEqB,aAArB9tD,EAAEm9E,eA3CIrvB,KACtButB,EAAYvtB,GACPA,GACH72D,EAAKy9D,SAAS,OAAQ,IAExB2kB,GAAqB,EAAK,EAuCNkE,CAAezvB,GArCd5vE,WACrBm9F,GAAY,GACZhC,GAAqB,EAAK,EAoCNqC,EAAgB,KAnBF17E,EAAEm9E,kBAyB9B/wG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACqI,KAAG,CACF6uE,GAAI,EACJz0E,QAASk4B,EAAe,QAAU,OAClClE,eAAe,SAAQ/nC,SAAA,CAEvBa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRP,UAAWkV,KAAWC,sBACtB5O,GAAG,+BACHyO,QAASA,KACPorF,GAAoB,EACpB3xG,SACH,kBAGDa,cAAC8Y,KAAG,CAACG,GAAImyB,EAAe,EAAI,EAAGyC,GAAIzC,EAAe,EAAI,EAAEjsC,SACtDa,cAAC2lB,KAAM,CACL1U,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBppB,KAAK,SACLorB,SAAU6kF,EACV71F,GAAG,+BAA8B9X,SAEhC+D,EAAUC,QAAQW,yBAO1B,EC0TIstG,OAxawDlyG,IAYhE,IAADswG,EAAA,IAZkE,aACtEp9D,EAAY,YACZw+D,EAAW,aACXC,EAAY,aACZ3pF,EAAY,mBACZ4pF,EAAkB,SAClBnE,GAAW,EAAK,SAChBvlF,GAAW,EAAK,eAChB0iE,EAAc,WACdt3C,EAAU,YACV6+D,EAAW,YACXtC,GAAc,GACf7vG,EACC,MAAO4tG,EAAYC,GAAiBt7F,oBAAS,IACtCu7F,EAAmBC,GAAwBx7F,oBAAS,IACpD27F,EAAeC,GAAoB57F,mBAASk7F,IAC5CO,EAAiBC,GAAsB17F,mBAAS2V,IAChDkqF,EAAkBC,GAAuB9/F,mBAASs9F,GACnDyC,EAAYZ,EAAYjzG,SAAWkzG,EAAalzG,OAEhD20B,EAAQC,eACR6Y,EAAe1Y,aAAcJ,EAAMK,YAAY0Y,KAAK,OAEpDkiE,EAAenjF,OAAaC,MAAM,CACtC9tB,MAAO6tB,OAEJ5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,YAE9BisG,EAA8B/3F,mBAAQ,KAC1C,IAAI+K,EAAc,CAAC,EACnB,GAAI+sF,EAAW,CAAC,IAAD9D,EACb,IAAI1nG,EACFkhB,EAAayoB,UACb7C,KAAO5lB,EAAayoB,UAAU5C,eAAe,IAAIhvC,KAAQ,OACrDmpB,EAAayoB,SACb7C,OAASwG,QAAQ,OACvB85D,GAAiBlmF,EAAayoB,SACzBlrB,EAAiB,SAAI2F,OAEnB5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACV7kB,IACCM,EAAQ6pC,SACR02D,GACErjG,EAAUqC,WAAWuB,oBACrBd,EAAQ4pC,OAAO,gBAGpBnrB,EAAiB,SAAI2F,OAEnB5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACV7kB,IACgC,QAD7BgoG,EACF5gE,KAAO,IAAI/uC,MAAQu1C,QAAQ,YAAI,IAAAo6D,OAAA,EAA/BA,EAAiC79D,SACjC3sC,EAAUqC,WAAWsB,cAE7B4d,EAAe,OAAI2F,OAEhBolE,WACAjlE,UAAU,IACVkjF,KAAK,YAAY,CAAC99D,EAAuBlrB,IACxCkrB,EACIlrB,EAAO/e,IACLiqC,EACA42D,GAAarjG,EAAUqC,WAAWuB,oBAAqB,SAEzD2d,IAERA,EAAe,OAAI8oF,EAAahjF,UAAUrnB,EAAUqC,WAAWC,SACjE,KAAO,CACL,IAAIQ,EACFkhB,EAAayoB,UACb7C,KAAO5lB,EAAayoB,UAAU5C,eAAe,IAAIhvC,KAAQ,OACrDmpB,EAAayoB,SACb7C,OAASwG,QAAQ,OAEvBu9D,EAAajzG,SAASqjD,IAAS,IAADywD,EAC5B,IAAI5C,EAAS,GAAAzuG,OAAM4gD,EAAI0wD,iBAAgB,KAAAtxG,OAAI4gD,EAAIykC,gBAC/C0nB,GAAiBlmF,EAAayoB,SACzBlrB,EAAO,YAADpkB,OAAayuG,IAAe1kF,OAEhC5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACV7kB,IACCM,EAAQ6pC,SACR02D,GACErjG,EAAUqC,WAAWuB,oBACrBd,EAAQ4pC,OAAO,gBAGpBnrB,EAAO,YAADpkB,OAAayuG,IAAe1kF,OAEhC5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACV7kB,IACgC,QAD7BgsG,EACF5kE,KAAO,IAAI/uC,MAAQu1C,QAAQ,YAAI,IAAAo+D,OAAA,EAA/BA,EAAiC7hE,SACjC3sC,EAAUqC,WAAWsB,cAE7B4d,EAAO,UAADpkB,OAAWyuG,IAAe1kF,OAE7BolE,WACAjlE,UAAU,IACVkjF,KAAK,YAADptG,OAAayuG,IAAa,CAACn/D,EAAuBlrB,IACrDkrB,EACIlrB,EAAO/e,IACLiqC,EACA42D,GAAarjG,EAAUqC,WAAWuB,oBAAqB,SAEzD2d,IAERA,EAAO,UAADpkB,OAAWyuG,IAAevB,EAAahjF,UAC3CrnB,EAAUqC,WAAWC,SACtB,GAEL,CACA,OAAO4kB,OAAaC,MAAM5F,EAAO,GAChC,CAAC2oF,IAEEviF,EAAOC,aAAmC,CAC9CG,KAAM,WACNF,SAAUC,aAAYymF,KAGxB3+F,qBAAU,KACJ65F,GAEF9hF,EAAKyiF,UAEPD,EAAiBV,EAAS,GACzB,CAACA,IAEJ75F,qBAAU,KACRq6F,EAAmB/lF,EAAS,GAC3B,CAACA,IAEJtU,qBAAU,KACJi8F,IACF5B,GAAmB,GACnBE,GAAiB,IAEnBkE,EAAoBxC,EAAY,GAC/B,CAACA,IAEJj8F,qBAAU,KACR+6F,GAAc,GACb,CAACb,EAAmBniF,EAAK2B,UAAUE,UAEtC,MAAMmhF,EAAeA,KACnB,IAAI+D,GAAa,EACjB,GAAI/mF,EAAK2B,UAAUE,QACjB,GAAI8kF,EAAW,CACb,IAAItC,EAAcrkF,EAAKnG,UAAU,eACjCktF,IAAa1C,IAAyB,OAAXA,QAAW,IAAXA,OAAW,EAAXA,EAAavxG,QAAS,CACnD,MACE,IAAK,IAAIsjD,KAAO4vD,EAAc,CAAC,IAADgB,EAC5B,IAAI/C,EAAS,GAAAzuG,OAAM4gD,EAAI0wD,iBAAgB,KAAAtxG,OAAI4gD,EAAIykC,gBAC3C/gE,EAAckG,EAAKnG,YAIvB,GAHAktF,IAAajtF,EAAO,eAADtkB,OAAgByuG,MACG,QAAlC+C,EAAAltF,EAAO,eAADtkB,OAAgByuG,WAAY,IAAA+C,OAAA,EAAlCA,EAAoCl0G,QAAS,GAE5Ci0G,EACH,KAEJ,CAIJ7E,IAAgBliF,EAAK2B,UAAUE,SAAWklF,IAEtC5E,GACFC,GAAqB,EACvB,EA+EF,OACEx8F,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cA/EEvZ,UAGnB,GAAIg4E,EAAgB,CAClB,IAAIgoB,EACY,IAAD5D,EAAA0B,EAAAC,EAAf,GAAI2B,EACFM,EAAgB,CACd,CACEt3D,WAAYpI,EACZqiC,QAAS48B,EACT1+D,OAAqC,QAA/Bu7D,EAAwB,QAAxB0B,EAAEvB,EAAgB17D,cAAM,IAAAi9D,OAAA,EAAtBA,EAAwBrzG,aAAK,IAAA2xG,IAAI,GACzCruD,QAAgC,QAAzBgwD,EAAExB,EAAgBxuD,eAAO,IAAAgwD,IAAI,GACpClgE,SACE0+D,EAAgB1+D,UAChB7C,KAAOuhE,EAAgB1+D,UAAU2D,QAAQ,KAC3CzD,OACEw+D,EAAgBx+D,QAChB/C,KAAOuhE,EAAgBx+D,QAAQg3C,MAAM,KACvCipB,YAAazB,EAAgBa,YACzBb,EAAgBa,YAAYx5F,KAAK2O,IAAYA,IAC7C,GACJ0tF,OAAO,EACPhD,YAAauC,SAIjBQ,EAAgBjB,EAAan7F,KAC1Bie,IAAC,IAAAq+E,EAAAC,EAAAC,EAAA,MAA0B,CAC1B13D,WAAYpI,EACZqiC,QAAQ,GAADp0E,OAAKszB,EAAEg+E,iBAAgB,KAAAtxG,OAAIszB,EAAE+xD,gBACpC/yC,OAGU,QAHJq/D,EAGH,QAHGC,EACJ5D,EAAgB,UAADhuG,OACHszB,EAAEg+E,iBAAgB,KAAAtxG,OAAIszB,EAAE+xD,wBACnC,IAAAusB,OAAA,EAFDA,EAEG11G,aAAK,IAAAy1G,IAAI,GACdnyD,QAGG,QAHIqyD,EACL7D,EAAgB,WAADhuG,OACFszB,EAAEg+E,iBAAgB,KAAAtxG,OAAIszB,EAAE+xD,wBACpC,IAAAwsB,IAAI,GACPviE,SACE0+D,EAAgB,YAADhuG,OACDszB,EAAEg+E,iBAAgB,KAAAtxG,OAAIszB,EAAE+xD,kBAEtC54C,KACEuhE,EAAgB,YAADhuG,OACDszB,EAAEg+E,iBAAgB,KAAAtxG,OAAIszB,EAAE+xD,kBAEtCpyC,QAAQ,KACZzD,OACEw+D,EAAgB,UAADhuG,OACHszB,EAAEg+E,iBAAgB,KAAAtxG,OAAIszB,EAAE+xD,kBAEpC54C,KACEuhE,EAAgB,UAADhuG,OACHszB,EAAEg+E,iBAAgB,KAAAtxG,OAAIszB,EAAE+xD,kBAEpCmB,MAAM,KACVipB,YAAazB,EAAgB,eAADhuG,OACXszB,EAAEg+E,iBAAgB,KAAAtxG,OAAIszB,EAAE+xD,iBAErC2oB,EAAgB,eAADhuG,OACEszB,EAAEg+E,iBAAgB,KAAAtxG,OAAIszB,EAAE+xD,iBACvChwE,KAAK2O,IAAYA,IACnB,GACJ0tF,OAAO,EACPhD,YAAauC,EACd,IAGLxnB,EACEwnB,EACIQ,EAAcp8F,KAAKie,IAAC,IAAWA,EAAG+d,gBAAiB,MACnDogE,EAER,KAOEtmF,YAAU,EAAArsB,SAAA,CAETiuG,GAAiBF,EAChBltG,cAACumB,GAAW,CAACC,MAAM,gBAAernB,SAChCa,cAACmnB,GAAS,CACR/oB,KAAK,eACL6Y,GAAG,qBACHmQ,UAAQ,EACR7qB,MAAO61C,MAIX3hC,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACgR,IAAU,CAAA7R,SAAC,aACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,yDAK7Ba,cAAC8Y,KAAG,CAAC43F,GAAI,EAAEvxG,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACPqyG,EACC/gG,eAAC+6F,KAAS,CAAgB5K,UAAU,EAAKzhG,SAAA,CACvCa,cAACyrG,KAAgB,CAAAtsG,SACfa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAEkyG,MAE5BrxG,cAAC2rG,KAAgB,CAAAxsG,SACfa,cAACuuG,GAAkB,CACjB7mF,SAAUwlF,EACV2B,kBAAmBA,IAAM5B,GAAqB,GAC9CpiF,KAAMA,EACNgqE,cAAe,CACbllD,SACE2hE,GAAoB9+D,EAChB1F,KAAO0F,GACPtrB,EAAayoB,SACnBE,OACEyhE,GAAoB9+D,EAChB1F,KAAO0F,GACPtrB,EAAa2oB,OACnB8C,OAA2B,QAArB68D,EAAEtoF,EAAayrB,cAAM,IAAA68D,OAAA,EAAnBA,EAAqBjzG,MAC7BsjD,QAAS34B,EAAa24B,QACtBqvD,YAAahoF,EAAagoF,aAE5BH,YAAauC,QAtBJ,YA2BfT,EAAan7F,KAAKie,IAAO,IAADw+E,EACtB,OACE1hG,eAAC+6F,KAAS,CAER5K,SAAmC,KAAb,OAAZiQ,QAAY,IAAZA,OAAY,EAAZA,EAAclzG,cAAsBnB,EAAU2C,SAAA,CAExDa,cAACyrG,KAAgB,CACfC,YACc,OAAZmF,QAAY,IAAZA,OAAY,EAAZA,EAAclzG,QAAS,GAAKqC,cAACwhG,KAAc,IAC5CriG,SAEDa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAEw0B,EAAEo9E,mBAE9B/wG,cAAC2rG,KAAgB,CAAAxsG,SACfa,cAACuuG,GAAkB,CACjB7mF,SAAUwlF,EACV2B,kBAAmBA,IAAM5B,GAAqB,GAC9CpiF,KAAMA,EACNgqE,cAAe,CACbllD,SACE2hE,GAAoB9+D,EAChB1F,KAAO0F,GACPtrB,EAAayoB,SACnBE,OACEyhE,GAAoB9+D,EAChB1F,KAAO0F,GACPtrB,EAAa2oB,OACnB8C,OAA2B,QAArBw/D,EAAEjrF,EAAayrB,cAAM,IAAAw/D,OAAA,EAAnBA,EAAqB51G,MAC7BsjD,QAAS34B,EAAa24B,QACtBqvD,YAAahoF,EAAagoF,aAE5BJ,UAAS,GAAAzuG,OAAKszB,EAAEg+E,iBAAgB,KAAAtxG,OAAIszB,EAAE+xD,gBACtCqpB,YAAauC,QA7BZ39E,EAAEo9E,eAgCG,MAKnB7D,EACCltG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACqI,KAAG,CACF6uE,GAAI,EACJz0E,QAASk4B,EAAe,QAAU,OAClClE,eAAe,SAAQ/nC,SAAA,CAEvBa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRP,UAAWkV,KAAWC,sBACtB5O,GAAG,2BACHyO,QAASA,KACPynF,GAAmB,GACnBE,GAAiB,EAAK,EACtBluG,SACH,0BAGDa,cAAC8Y,KAAG,CAACG,GAAImyB,EAAe,EAAI,EAAGyC,GAAIzC,EAAe,EAAI,EAAEjsC,SACtDa,cAAC2lB,KAAM,CACL1U,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBhP,GAAG,gCACHyO,QAASA,KACPynF,GAAmB,GACnBE,GAAiB,GACjBkE,GAAoB,EAAK,EACzBpyG,SACH,+CAOPa,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACqI,KAAG,CACF6uE,GAAI,EACJz0E,QAASk4B,EAAe,QAAU,OAClClE,eAAe,SAAQ/nC,SAAA,EAErBiuG,GACAptG,cAAC2lB,KAAM,CACL1U,QAAQ,WACRP,UAAWkV,KAAWC,sBACtB5O,GAAG,+BACHyO,QAASA,KACPorF,GAAsBA,GAAoB,EAC1C3xG,SACH,kBAIHa,cAAC8Y,KAAG,CAACG,GAAImyB,EAAe,EAAI,EAAGyC,GAAIzC,EAAe,EAAI,EAAEjsC,SACtDa,cAAC2lB,KAAM,CACL1U,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBppB,KAAK,SACLorB,SAAU6kF,EACV71F,GAAG,+BAA8B9X,SAClC,sCAUV,EC7bNizG,GAAqB,SAArBA,GAAqB,OAArBA,IAAqB,mBAArBA,IAAqB,mBAArBA,IAAqB,mBAArBA,CAAqB,EAArBA,IAAqB,IAkKXC,OA5J0DA,KACvE,MAAOjgE,EAAckgE,GAAmB7gG,mBAAS,KAC1C++F,EAAgB+B,GAAqB9gG,mBAC1C,OAEKw+F,EAAiBuC,GAAsB/gG,mBAAS,KAChDo/F,EAAc4B,GAAmBhhG,mBAAwB,KACzDm/F,EAAa8B,GAAkBjhG,mBAAwB,KACvD2mD,EAAY0K,GAAiBrxD,mBAAS2gG,GAAsBO,SAC5DC,EAAcC,GAAmBphG,oBAAS,IAC3C,WAAE0H,GAAeQ,MACjB,iBAAE04B,GAAqB+F,KAEvBsuC,EAAe50E,UACnBghG,IACAD,GAAgB,GAChBvhE,GAAmBa,yBAAyBC,GACzCznC,MAAM4gB,GAAWgnF,EAAkBhnF,KACnCzoB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAClCqT,SAAQ,IAAMggG,GAAgB,IAAO,EAGpCC,EAAYA,KAChBhwC,EAAcsvC,GAAsBO,QACpCH,EAAmB,GAAG,EAsBlBO,EAAeA,KACnB,OAAQ36C,GACN,KAAKg6C,GAAsBO,OACzB7vC,EAAcsvC,GAAsBY,QACpC,MACF,KAAKZ,GAAsBY,OACzBlwC,EAAcsvC,GAAsBa,QAExC,EAGIC,EAAmBA,KACvB,OAAQ96C,GACN,KAAKg6C,GAAsBY,OACzBlwC,EAAcsvC,GAAsBO,QACpC,MACF,KAAKP,GAAsBa,OACzBnwC,EAAcsvC,GAAsBY,QAExC,EAaF,OACEviG,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAGi5C,UARUh8E,IACV,UAAVA,EAAEhN,KACJ4oF,GACF,EAK0CvnF,SACtCsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,gBAAernB,SAChCa,cAACmnB,GAAS,CACR/oB,KAAK,eACL6Y,GAAG,qBACH1a,MAAO61C,EACPnoB,SAAWnf,GAAWwnG,EAAgBxnG,EAAEoL,OAAO3Z,aAIrDyD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8Y,KAAG,CAAC7F,MAAO,CAAEonB,UAAW,QAASl7B,SAChCa,cAACwmF,GAAY,CACXvvE,GAAG,sBACHgR,SAAUmqB,EAAaz0C,OAAS,GAAKi1G,EACrCltF,QAASghE,EAAavnF,SACvB,kCAORyzG,GAAgB5yG,cAAC02E,KAAc,CAACtiE,MAAM,cACtCo8F,GAAkBA,EAAe7yG,OAAS,EACzCqC,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAE13B,SACtBi5D,IAAeg6C,GAAsBO,OACpC3yG,cAACuwG,GAAsB,CACrBC,eAAgBA,EAChBP,gBAAiBA,EACjBC,aAtFuB3zG,IAAmB,IAAD42G,EACrDX,EAAmBj2G,GACnB,IAAIukD,EAAWvkD,EAAMynB,MAAM,KAC3ByuF,EAAgB,IAChB,IAAIzxD,EAAqB,OAAdwvD,QAAc,IAAdA,GAAgD,QAAlC2C,EAAd3C,EAAgB9zF,MAAMiX,GAAMA,EAAE8gD,UAAYl4E,WAAM,IAAA42G,OAAlC,EAAdA,EAAkDnyD,KAC7D0xD,EACE1xD,EACI,CACE,CACE0kC,eAAgB5kC,EAASA,EAASnjD,OAAS,GAC3Cg0G,iBAAkB7wD,EAAS,GAC3BiwD,eAAgB,eAEf/vD,GAEL,GACL,EAuEWyvD,eAAgBsC,IAEhB36C,IAAeg6C,GAAsBY,OACvChzG,cAAC2wG,GAAsB,CACrBC,YAAaA,EACbC,aAAcA,EACdC,mBAAoBoC,EACpBzC,eAAiBzvD,IACfyxD,EAAgBzxD,GAChB+xD,GAAc,IAIlB/yG,cAACoxG,GAAsB,CACrBh/D,aAAcA,EACdi/D,YAAapB,EACbW,YAAaA,EACbC,aAAcA,EACd3pF,aAAc,CACZyoB,SAAU,KACVE,OAAQ,KACR8C,OAAQ,KACRkN,QAAS,GACTqvD,YAAa,IAEf4B,mBAAoBoC,EACpBppB,eAxEYv5C,IACxB8B,EAAiB9B,EAAa,QA6EC,KAAb,OAAdigE,QAAc,IAAdA,OAAc,EAAdA,EAAgB7yG,SACdqC,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,QAId,EC8EQu6B,OA9NsDl0G,IAK9D,IAADswG,EAAA,IALgE,aACpEtoF,EAAY,SACZylF,GAAW,EAAK,SAChBjlF,GAAW,EAAK,aAChB2D,GACDnsB,EACC,MAAO8tG,EAAmBC,GAAwBx7F,oBAAS,IACpDq7F,EAAYC,GAAiBt7F,oBAAS,IACtCy7F,EAAiBC,GAAsB17F,mBAASiW,IAChD0lF,EAAeC,GAAoB57F,mBAASk7F,GAE7Cr6E,EAAQC,eACR6Y,EAAe1Y,aAAcJ,EAAMK,YAAY0Y,KAAK,OAE1Dv4B,qBAAU,KACJ65F,GAEF9hF,EAAKyiF,UAEPD,EAAiBV,EAAS,GACzB,CAACA,IAEJ,MAAMY,EAAenjF,OAAaC,MAAM,CACtC9tB,MAAO6tB,OAEJ5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,YAG9B6tG,EAAkC35F,mBAAQ,KAC9C,IAAI+K,EAAc,CAAC,EACnB,GAAI2oF,GAAiBlmF,EAAayoB,SAAU,CAC1C,IAAI3pC,EAAU8mC,KAAO5lB,EAAayoB,UAAU5C,eAC1C,IAAIhvC,KACJ,OAEEmpB,EAAayoB,SACb7C,OAASwG,QAAQ,OACrB7uB,EAAS,CACP0sC,WAAY/mC,OAET5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClDgqC,SAAUvlB,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACV7kB,IACCM,EAAQ6pC,SACR02D,GACErjG,EAAUqC,WAAWuB,oBACrBd,EAAQ4pC,OAAO,gBAGrBC,OAAQzlB,OAELolE,WACAjlE,UAAU,IACVkjF,KAAK,YAAY,CAAC99D,EAAuBlrB,IACxCkrB,EACIlrB,EAAO/e,IACLiqC,EACA42D,GAAarjG,EAAUqC,WAAWuB,oBAAqB,SAEzD2d,IAERkuB,OAAQ46D,EAAahjF,UAAUrnB,EAAUqC,WAAWC,UAExD,KAAO,CAAC,IAADkoG,EACLjpF,EAAS,CACP0sC,WAAY/mC,OAET5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClDgqC,SAAUvlB,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACV7kB,IACgC,QAD7BgoG,EACF5gE,KAAO,IAAI/uC,MAAQu1C,QAAQ,YAAI,IAAAo6D,OAAA,EAA/BA,EAAiC79D,SACjC3sC,EAAUqC,WAAWsB,cAEzBgpC,OAAQzlB,OAELolE,WACAjlE,UAAU,IACVkjF,KAAK,YAAY,CAAC99D,EAAuBlrB,IACxCkrB,EACIlrB,EAAO/e,IACLiqC,EACA42D,GAAarjG,EAAUqC,WAAWuB,oBAAqB,SAEzD2d,IAERkuB,OAAQ46D,EAAahjF,UAAUrnB,EAAUqC,WAAWC,UAExD,CACA,OAAO4kB,OAAaC,MAAM5F,EAAO,GAChC,CAAC2oF,IAEEviF,EAAOC,aAAoC,CAC/CG,KAAM,WACNF,SAAUC,aAAYqoF,KAoBxBvgG,qBAAU,KACR+6F,GAAc,GACb,CAACb,EAAmBniF,EAAK2B,UAAUE,UAEtC,MAAMmhF,EAAeA,KACnB,IAAIqB,EAAcrkF,EAAKnG,UAAU,eAEjCqoF,IACIliF,EAAK2B,UAAUE,SAAWwiF,IAA0B,OAAXA,QAAW,IAAXA,OAAW,EAAXA,EAAavxG,QAAS,IAE/DqvG,GACFC,GAAqB,EACvB,EAGF,OACEjtG,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cApCJvZ,UAAwD,IAADwhG,EAAApF,EAAA0B,EAAAC,EACtExkF,EAAa,IACRnE,EACHiqC,WAAsC,QAA5BmiD,EAAEjF,EAAgBl9C,kBAAU,IAAAmiD,IAAI,GAC1C3gE,OAAqC,QAA/Bu7D,EAAwB,QAAxB0B,EAAEvB,EAAgB17D,cAAM,IAAAi9D,OAAA,EAAtBA,EAAwBrzG,aAAK,IAAA2xG,IAAI,GACzCruD,QAAgC,QAAzBgwD,EAAExB,EAAgBxuD,eAAO,IAAAgwD,IAAI,GACpClgE,SACE0+D,EAAgB1+D,UAChB7C,KAAOuhE,EAAgB1+D,UAAU2D,QAAQ,KAC3CzD,OACEw+D,EAAgBx+D,QAAU/C,KAAOuhE,EAAgBx+D,QAAQg3C,MAAM,KACjEipB,YAAazB,EAAgBa,YACzBb,EAAgBa,YAAYx5F,KAAK2O,IAAOA,IACxC,IACJ,IAuBEmH,YAAU,EAAArsB,SAAA,CAEVsR,eAACmb,KAAI,CACHhb,WAAS,EACTF,UAAWkV,KAAWg2E,kBACtB/vE,UAAU,SAAQ1sB,SAAA,CAElBa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAGtK,GAAI,EAAEptB,SAC9Ba,cAACumB,GAAW,CAACC,MAAM,cAAarnB,SAC9Ba,cAACmnB,GAAS,CACRC,SAAU8lF,EACV9uG,KAAK,aACLuJ,YAAY,SACZukB,SAAUrB,EAAKsB,SACfjF,aAAcA,EAAaiqC,WAC3BxqC,WAAS,EACT/kB,QAASipB,EAAK5d,OAAOkkD,WACrB/kC,WACEvB,EAAK5d,OAAOkkD,WAAatmC,EAAK5d,OAAOkkD,WAAW3xD,QAAU,SAKlEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAGtK,GAAI,EAAEptB,SAC9Ba,cAACuuG,GAAkB,CACjB7mF,SAAUwlF,EACV2B,kBAAmBA,IAAM5B,GAAqB,GAC9CpiF,KAAMA,EACNgqE,cAAe,CACbllD,SAAUzoB,EAAayoB,SACvBE,OAAQ3oB,EAAa2oB,OACrB8C,OAA2B,QAArB68D,EAAEtoF,EAAayrB,cAAM,IAAA68D,OAAA,EAAnBA,EAAqBjzG,MAC7BsjD,QAAS34B,EAAa24B,QACtBqvD,YAAahoF,EAAagoF,oBAKjChC,EACCltG,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CACF6uE,GAAI,EACJz0E,QAASk4B,EAAe,QAAU,OAClClE,eAAe,SAAQ/nC,SAEvBa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRP,UAAWkV,KAAWC,sBACtB5O,GAAG,0BACHyO,QAASA,KACPynF,GAAmB,GACnBE,GAAiB,EAAK,EACtBluG,SACH,gCAOPa,cAAC8Y,KAAG,CAACyhC,EAAG,EAAGrnC,QAAQ,OAAOg0B,eAAe,SAAQ/nC,SAC/Ca,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoa,GAAG,qBACHhG,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBgC,SAAU6kF,EAAW3tG,SACtB,4BAMH,ECpJKo0G,IC3GX,GAAI,GAAO,GD2GAA,GA1FoDA,KACjE,MACE71F,OAAO,YAAE84B,EAAW,mBAAEf,GAAoB,SAC1Cv2B,EAAQ,oBACRsyB,EAAmB,gBACnBI,EAAe,eACfG,GACEqG,KAEJtlC,qBAAU,KACRoM,EAAS,CACPriB,KAAMy4C,GAAsB5E,aAC5BxyB,QAASk3B,GAAmBo+D,QAC5B,GACD,IAcH,OACE/iG,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC6uE,GAAI,EAAExoF,SACTa,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,kDAI9Ba,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW6tF,iBAAiBt0G,SAC1Ca,cAAC8nB,GAAa,CACZ1pB,KAAM,aACN2pB,QAASyuB,EACTj6C,MAAOk5C,EACPxrB,SAxBmBnY,MACzBuL,EACA9gB,KAEc,OAAVA,GACF2iB,EAAS,CACPriB,KAAMy4C,GAAsBE,qBAC5Bt3B,QAAS3hB,GAEb,MAkBGk5C,GAAsBJ,GAAoBoB,gBACzCz2C,cAACgsG,GAAmB,CAClB9kF,aAAc,CACZwqB,gBAAiB,EACjB/B,SAAU,KACVE,OAAQ,KACR/mC,SAAU,GACV6pC,OAAQ,KACRkN,aAASrjD,GAEX6uB,aAAcmmB,IAEdiE,GAAsBJ,GAAoBqB,aAC5C12C,cAACuvG,GAAsB,CACrBroF,aAAc,CACZwqB,gBAAiB,EACjBg+D,YAAa,GACb//D,SAAU,KACVE,OAAQ,KACR8C,OAAQ,KACRkN,QAAS,GACTqvD,YAAa,IAEf7jF,aAAcumB,IAEd6D,GAAsBJ,GAAoBsB,YAC5C32C,cAACozG,GAAqB,CACpBlsF,aAAc,CACZwqB,gBAAiB,EACjByf,WAAY,GACZxhB,SAAU,KACVE,OAAQ,KACR8C,OAAQ,KACRkN,QAAS,GACTqvD,YAAa,IAEf7jF,aAAc0mB,IAGhB0D,GAAsBJ,GAAoBuB,eACxC52C,cAACqyG,GAAuB,MAG3B,ECtGP,SAAS,KAAiS,OAApR,GAAWn0G,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASs9F,GAAQx0G,EAAMyX,GACrB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAO,GAAkB,gBAAoB,IAAK,CAClEqhC,OAAQ,mBACM,gBAAoB,SAAU,CAC5C9pB,GAAI,GACJC,GAAI,GACJC,EAAG,GACHT,KAAM,cACF,KAAU,GAAqB,gBAAoB,OAAQ,CAC/DI,SAAU,UACVC,SAAU,UACVC,EAAG,wFACHN,KAAM,WACH,KAAU,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,SAAU,CAC/GG,GAAI,YACJ0c,EAAG,EACHC,EAAG,EACHvgB,MAAO,GACPC,OAAQ,GACRqgG,YAAa,iBACbC,0BAA2B,QACb,gBAAoB,UAAW,CAC7CC,aAAc,EACdtoF,OAAQ,uBACO,gBAAoB,gBAAiB,CACpDwU,GAAI,cACJljC,KAAM,SACN8nB,OAAQ,8CACO,gBAAoB,eAAgB,CACnDmvF,OAAQ,EACRC,SAAU,QACVh0E,GAAI,cACJxU,OAAQ,uBACO,gBAAoB,WAAY,CAC/CyoF,GAAI,EACJC,GAAI,IACW,gBAAoB,iBAAkB,CACrDC,aAAc,IACC,gBAAoB,gBAAiB,CACpDr3G,KAAM,SACN8nB,OAAQ,+CACO,gBAAoB,UAAW,CAC9CsG,KAAM,SACNkpF,IAAK,qBACL5oF,OAAQ,uBACO,gBAAoB,UAAW,CAC9CN,KAAM,SACN8U,GAAI,gBACJo0E,IAAK,qBACL5oF,OAAQ,aAEZ,CACA,MAAM,GAA0B,aAAiBmoF,IAClC,IC0KAU,OAxNXA,KACF,MACE12F,OAAO,yBAAEu4B,GAA0B,sBACnCxE,EAAqB,oBACrBD,GACE4G,MACGvsC,EAAMg9F,GAAWp3F,mBACE,OAAxBwkC,QAAwB,IAAxBA,IAA4B,KAEvBo+D,EAAaC,GAAkB7iG,mBACpC,OAGK8iG,EAAqBC,GAC1B/iG,mBAAsC,OAEtCk7B,UAAW8nE,EACX7nE,UAAW8nE,EACXhqF,UAAWiqF,GACTloE,MAEGvlB,EAAc0tF,GAAmBnjG,mBAAmC,CACzEigC,gBAAiB,EACjB/B,SAAU,KACVE,OAAQ,KACR/mC,SAAU,GACV6pC,OAAQ,KACRkN,aAASrjD,IAGXsW,qBAAU,KACR+1F,EAAgC,OAAxB5yD,QAAwB,IAAxBA,IAA4B,IACpCq+D,EAAe,KAAK,GACnB,CAACr+D,IAEJ,MAgCM0kC,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,UACRytD,SAAU,cACV1xE,MAAO,OAET,CACEikB,OAAQ,UACRytD,SAAU,WACVC,eAAe,EACfC,KAAM/lF,IAAA,IAAA21G,EAAA,IAAC,IAAE73B,GAAU99E,EAAA,OACjBc,cAAAyV,WAAA,CAAAtW,SACG69E,EAAImI,SAASr8E,WAAiC,QAArB+rG,EAAA73B,EAAImI,SAASr8E,gBAAQ,IAAA+rG,OAAA,EAArBA,EAAuBl3G,QAAS,EACxDq/E,EAAImI,SAASr8E,SAAS4M,KAAKie,GACzB3zB,cAAC8Y,KAAG,CAEF2hF,GAAI,EACJ3kF,UAAU,OAAM3W,SAEfw0B,GAAC,GAAAtzB,OAJM28E,EAAImI,SAASzzC,gBAAe,KAAArxC,OAAIszB,MAQ5C3zB,cAAC8Y,KAAG,CAAoC2hF,GAAI,EAAG3kF,UAAU,OAAM3W,SAAC,gBAAtD69E,EAAImI,SAASzzC,kBAIxB,GAGP,CACEpa,OAAQ,uBACRytD,SAAU,WACVC,eAAe,EACfC,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjBlF,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,QACKa,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASx1C,SAAUC,OAAO,cAAe,IAClE5vC,cAAA,SACCg9E,EAAImI,SAASt1C,OACZp/B,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,MACGa,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASt1C,OAAQD,OAAO,cAAe,OAGhE,mBAED,GAGP,CACEtY,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAAC0hC,KAAI,CACH5rB,UAAU,SACV1B,MAAM,UACNsR,QAASA,IA1FF5T,WACjBwiG,EAAeQ,GAEfF,EAAgB,CACdljE,gBAAiBojE,EAAcpjE,gBAC/B3pC,QAAS,CACPye,MAAOsuF,EAAcpV,YACrBnjG,MAAOu4G,EAAcnV,aAEvB72F,SAAUgsG,EAAchsG,SACxB6mC,SAAUmlE,EAAcnlE,UAAY7C,KAAOgoE,EAAcnlE,UACzDE,OAAQilE,EAAcjlE,QAAU/C,KAAOgoE,EAAcjlE,QACrD6H,UAAWo9D,EAAcp9D,UACzB/E,OAAQ,CAAEp2C,MAAOu4G,EAAcniE,OAAQnsB,MAAOsuF,EAAcniE,QAC5DkN,QAASi1D,EAAcj1D,SACvB,EA2EuBqlC,CAAWlI,EAAImI,UAAUhmF,SACzC,sBAGG,EAERkU,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OACjB11F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAAC0hC,KAAI,CACH5rB,UAAU,SACV1B,MAAM,UACNsR,QAASA,IAzFA5T,WACnB0iG,EAAuBM,GACvBL,GAAwB,EAuFCj0B,CAAaxD,EAAImI,UAAUhmF,SAC3C,YAGG,EAERkU,MAAO,SAGX,IAEF,OACE5C,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACQ,OAAhBk1G,EACCr0G,cAAC6zE,GAAK,CACJiH,OAAK,EACLH,QAASA,EACT9uE,KAAMA,EACNykE,MAAI,EACJsK,YAAU,EACVC,aAAc,KAGhBpqE,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC0hC,KAAI,CACHhc,QAASA,IAAM4uF,EAAe,MAC9Bz3G,KAAK,SACLoU,QAAQ,QACR6E,UAAU,SAAQ3W,SAElBa,cAAC+0G,GAAQ,MAEX/0G,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTa,cAACgsG,GAAmB,CAClB9kF,aAAcA,EACdylF,UAAQ,EACRthF,aAAcmmB,WAOxB/gC,eAACu7B,GAAM,CACLpzB,KAAM+7F,EACNhqF,QAAS+pF,EACTlkG,SAAS,KAAIrR,SAAA,CAEbsR,eAAC87B,GAAa,CAAAptC,SAAA,CACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,sCAGzBa,cAAC8Y,KAAG,CAAC43F,GAAI,EAAEvxG,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,uBAG7BsR,eAAC07B,GAAa,CAAAhtC,SAAA,CACZa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPgvF,GAAwB,IAG5B10G,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KArJb6uF,IACF9iE,EAAyC,OAAnB8iE,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7iE,iBAC3C8iE,EAAuB,YAGzBE,eAoJG,ECGQM,OAvNXA,KACF,MAAM,YACJ79D,EACAz5B,OAAO,oBAAEy4B,GAAqB,kBAC9BtE,EAAiB,gBACjBD,GACEwG,MACGvsC,EAAMg9F,GAAWp3F,mBACH,OAAnB0kC,QAAmB,IAAnBA,IAAuB,KAGlBk+D,EAAaC,GAAkB7iG,mBACpC,OAEK8iG,EAAqBC,GAC1B/iG,mBAAqC,OAErCk7B,UAAW8nE,EACX7nE,UAAW8nE,EACXhqF,UAAWiqF,GACTloE,MACGvlB,EAAc0tF,GAAmBnjG,mBACtC,CACEigC,gBAAiB,EACjBg+D,YAAa,GACb//D,SAAU,KACVE,OAAQ,KACR8C,OAAQ,KACRkN,QAAS,GACTqvD,YAAa,KAIjBp8F,qBAAU,KACR+1F,EAA2B,OAAnB1yD,QAAmB,IAAnBA,IAAuB,IAC/Bm+D,EAAe,KAAK,GACnB,CAACn+D,IAEJ,MA4BMwkC,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,eACRytD,SAAU,cACV1xE,MAAO,OAET,CACEikB,OAAQ,uBACRytD,SAAU,WACVC,eAAe,EACfC,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBuR,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,QACKa,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASx1C,SAAUC,OAAO,cAAe,IAClE5vC,cAAA,SACCg9E,EAAImI,SAASt1C,OACZp/B,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,MACGa,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASt1C,OAAQD,OAAO,cAAe,OAGhE,mBAED,GAGP,CACEtY,OAAQ,wBACRytD,SAAU,aACVC,eAAe,EACfC,KAAMtvE,IAAmB,IAADs/F,EAAA,IAAjB,IAAEj4B,GAAUrnE,EACbgiC,EAAsBqlC,EAAImI,SAAS2qB,YACnCoF,GAAU,EAMd,OALIv9D,EAAUh6C,OAAS,IACrBu3G,EAAU/9D,EAAYwqB,OAAOhuC,GAC3BgkB,EAAU3iC,SAAS2e,EAAEwuB,eAIvBniD,cAAAyV,WAAA,CAAAtW,SACwB,IAArBw4C,EAAUh6C,OAC+C,QADnCs3G,EACnB99D,EAAYz6B,MAAMiX,GAAMA,EAAEwuB,aAAexK,EAAU,YAAG,IAAAs9D,OAAA,EAAtDA,EAAwD72G,KACxD82G,EACA,kBAAiB,aAAA70G,OACJs3C,EAAUh6C,OAAM,MAChC,GAIT,CACE25B,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAAC0hC,KAAI,CACH5rB,UAAU,SACV1B,MAAM,UACNsR,QAASA,IArFF5T,WACjBwiG,EAAeQ,GAEfF,EAAgB,CACdljE,gBAAiBojE,EAAcpjE,gBAC/Bg+D,YAAaoF,EAAcpF,YAC3B//D,SAAUmlE,EAAcnlE,UAAY7C,KAAOgoE,EAAcnlE,UACzDE,OAAQilE,EAAcjlE,QAAU/C,KAAOgoE,EAAcjlE,QACrD8C,OAAQ,CAAEp2C,MAAOu4G,EAAcniE,OAAQnsB,MAAOsuF,EAAcniE,QAC5DkN,QAASi1D,EAAcj1D,QACvBqvD,YAAa4F,EAAchF,YAAYp6F,KAAKie,GAAC,GAAAtzB,OAAQszB,MACrD,EA0EuBuxD,CAAWlI,EAAImI,UAAUhmF,SACzC,sBAGG,EAERkU,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OACjB11F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAAC0hC,KAAI,CACH5rB,UAAU,SACV1B,MAAM,UACNsR,QAASA,IAxFA5T,WACnB0iG,EAAuBM,GACvBL,GAAwB,EAsFCj0B,CAAaxD,EAAImI,UAAUhmF,SAC3C,YAGG,EAERkU,MAAO,SAGX,CAAC8jC,IAEH,OACE1mC,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACQ,OAAhBk1G,EACCr0G,cAAC6zE,GAAK,CACJiH,OAAK,EACLH,QAASA,EACT9uE,KAAMA,EACNykE,MAAI,EACJsK,YAAU,EACVC,aAAc,KAGhBpqE,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC0hC,KAAI,CACHhc,QAASA,IAAM4uF,EAAe,MAC9Bz3G,KAAK,SACLoU,QAAQ,QACR6E,UAAU,SAAQ3W,SAElBa,cAAC+0G,GAAQ,MAEX/0G,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTa,cAACuvG,GAAsB,CACrBroF,aAAcA,EACdylF,UAAQ,EACRthF,aAAcumB,WAOxBnhC,eAACu7B,GAAM,CACLpzB,KAAM+7F,EACNhqF,QAAS+pF,EACTlkG,SAAS,KAAIrR,SAAA,CAEbsR,eAAC87B,GAAa,CAAAptC,SAAA,CACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,sCAGzBa,cAACgR,IAAU,CAACN,UAAU,WAAUvR,SAAA,iBAAAkB,OAAsC,OAAnBk0G,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7E,eACxE1vG,cAAC8Y,KAAG,CAAC43F,GAAI,EAAEvxG,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,uBAG7BsR,eAAC07B,GAAa,CAAAhtC,SAAA,CACZa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPgvF,GAAwB,IAG5B10G,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KArJb6uF,IACF1iE,EAAqC,OAAnB0iE,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7iE,iBACvC8iE,EAAuB,YAGzBE,eAoJG,EC8DQS,OA9QXA,KACF,MAAM,YACJh+D,EAAW,iBACX9E,EACA30B,OAAO,qBAAE64B,GAAsB,mBAC/BjE,GACE8F,MAEGvsC,EAAMg9F,GAAWp3F,mBACF,OAApB8kC,QAAoB,IAApBA,IAAwB,KAEnBs6D,EAAc4B,GAAmBhhG,mBAAwB,KACzDm/F,EAAa8B,GAAkBjhG,mBAAwB,KACvD4iG,EAAaC,GAAkB7iG,mBACpC,OAGK8iG,EAAqBC,GAC1B/iG,mBAAoC,OAEpCk7B,UAAW8nE,EACX7nE,UAAW8nE,EACXhqF,UAAWiqF,GACTloE,MAEGvlB,EAAc0tF,GAAmBnjG,mBAAoC,CAC1Ek+B,SAAU,KACVE,OAAQ,KACR8C,OAAQ,KACRkN,QAAS,GACTqvD,YAAa,KAGfp8F,qBAAU,KACR+1F,EAA4B,OAApBtyD,QAAoB,IAApBA,IAAwB,IAChC+9D,EAAe,KAAK,GACnB,CAAC/9D,IAEJ,MAuEMokC,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,gBACRytD,SAAU,aACV1xE,MAAO,OAET,CACEikB,OAAQ,UACRytD,SAAU,WAEZ,CACEztD,OAAQ,uBACRytD,SAAU,WACVC,eAAe,EACfC,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBuR,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,QACKa,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASx1C,SAAUC,OAAO,cAAe,IAClE5vC,cAAA,SACCg9E,EAAImI,SAASt1C,OACZp/B,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,MACGa,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASt1C,OAAQD,OAAO,cAAe,OAGhE,mBAED,GAGP,CACEtY,OAAQ,wBACRytD,SAAU,aACVC,eAAe,EACfC,KAAMtvE,IAAmB,IAADs/F,EAAA,IAAjB,IAAEj4B,GAAUrnE,EACbgiC,EAAsBqlC,EAAImI,SAAS2qB,YACnCoF,GAAU,EAMd,OALIv9D,EAAUh6C,OAAS,IACrBu3G,EAAU/9D,EAAYwqB,OAAOhuC,GAC3BgkB,EAAU3iC,SAAS2e,EAAEwuB,eAIvBniD,cAAAyV,WAAA,CAAAtW,SACwB,IAArBw4C,EAAUh6C,OAC+C,QADnCs3G,EACnB99D,EAAYz6B,MAAMiX,GAAMA,EAAEwuB,aAAexK,EAAU,YAAG,IAAAs9D,OAAA,EAAtDA,EAAwD72G,KACxD82G,EACA,kBAAiB,aAAA70G,OACJs3C,EAAUh6C,OAAM,MAChC,GAIT,CACE25B,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAAC0hC,KAAI,CACH5rB,UAAU,SACV1B,MAAM,UACNsR,QAASA,IApIF5T,WACjBwiG,EAAeQ,GAEfF,EAAgB,CACdjlE,SAAUmlE,EAAcnlE,UAAY7C,KAAOgoE,EAAcnlE,UACzDE,OAAQilE,EAAcjlE,QAAU/C,KAAOgoE,EAAcjlE,QACrD8C,OAAQ,CAAEp2C,MAAOu4G,EAAcniE,OAAQnsB,MAAOsuF,EAAcniE,QAC5DkN,QAASi1D,EAAcj1D,QACvBqvD,YAAa4F,EAAchF,YAAYp6F,KAAKie,GAAC,GAAAtzB,OAAQszB,OAGvD,IAAImtB,EAAWg0D,EAAcrgC,QAAQzwD,MAAM,KACvCg9B,EAAsB,GAC1B,IAAK,IAAI7qC,EAAI,EAAGA,EAAI2qC,EAASnjD,OAAS,EAAGwY,IAAK,CAC5C,IAAIi/F,EAAYt0D,EAAS3qC,GACrBk/F,EAAUv0D,EAAS3qC,EAAI,GACvBm/F,EAAS,GAAAj1G,OAAM+0G,EAAS,OAAA/0G,OAAMg1G,GAClCr0D,EAAO,IACFA,EAED,CACE2wD,iBAAkByD,EAClB1vB,eAAgB2vB,EAChBtE,eAAgBuE,GAIxB,CAEIR,EAAc/C,OAChBW,EAAe1xD,GACfyxD,EAAgBzxD,IAEhByxD,EAAgBzxD,EAClB,EAkGyBkkC,CAAWlI,EAAImI,UAAUhmF,SACzC,sBAGG,EAERkU,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OACjB11F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAAC0hC,KAAI,CACH5rB,UAAU,SACV1B,MAAM,UACNsR,QAASA,IA7FA5T,WACnB0iG,EAAuBM,GACvBL,GAAwB,EA2FCj0B,CAAaxD,EAAImI,UAAUhmF,SAC3C,YAGG,EAERkU,MAAO,SAGX,CAAC8jC,IAEH,OACE1mC,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACQ,OAAhBk1G,EACCr0G,cAAC6zE,GAAK,CACJiH,OAAK,EACLH,QAASA,EACT9uE,KAAMA,EACNykE,MAAI,EACJsK,YAAU,EACVC,aAAc,KAGhBpqE,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC0hC,KAAI,CACHhc,QAASA,IAAM4uF,EAAe,MAC9Bz3G,KAAK,SACLoU,QAAQ,QACR6E,UAAU,SAAQ3W,SAElBa,cAAC+0G,GAAQ,MAEX/0G,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAE13B,SACvBa,cAACoxG,GAAsB,CACrBh/D,aAAciiE,EAAY75D,WAC1Bo2D,YAAaA,EACbC,aAAcA,EACdQ,YAAagD,EAAY5/B,QACzBvtD,aAAcA,EACdylF,UAAU,EACV7iB,eA3JQv5C,IACpB8jE,GACFhiE,EACE9B,EAAa76B,KACVie,IAAC,IACG0gF,EACH1kE,SAAUhc,EAAEgc,SACZE,OAAQlc,EAAEkc,OACV8C,OAAQhf,EAAEgf,OACVkN,QAASlsB,EAAEksB,QACXiwD,YAAan8E,EAAEm8E,YACfiC,MAAOp+E,EAAEo+E,MACThD,YAAap7E,EAAEo7E,gBAIvB,eAoJEt+F,eAACu7B,GAAM,CACLpzB,KAAM+7F,EACNhqF,QAAS+pF,EACTlkG,SAAS,KAAIrR,SAAA,CAEbsR,eAAC87B,GAAa,CAAAptC,SAAA,CACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,sCAGzBa,cAACgR,IAAU,CAACN,UAAU,WAAUvR,SAAA,kBAAAkB,OAAuC,OAAnBk0G,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB/5D,cACzEx6C,cAAC8Y,KAAG,CAAC43F,GAAI,EAAEvxG,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,uBAG7BsR,eAAC07B,GAAa,CAAAhtC,SAAA,CACZa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPgvF,GAAwB,IAG5B10G,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KAlKM,OAAnB6uF,QAAmB,IAAnBA,KAAqB7iE,kBACvBY,EAAsC,OAAnBiiE,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7iE,iBAExC8iE,EAAuB,YAGzBE,eAgKG,EC1DQa,OAnNXA,KACF,MAAM,YACJp+D,EACAz5B,OAAO,mBAAE24B,GAAoB,iBAC7BrE,EAAgB,eAChBD,GACEqG,MACGvsC,EAAMg9F,GAAWp3F,mBACJ,OAAlB4kC,QAAkB,IAAlBA,IAAsB,KAEjBg+D,EAAaC,GAAkB7iG,mBAAkC,OACjE8iG,EAAqBC,GAC1B/iG,mBAAkC,OAElCk7B,UAAW8nE,EACX7nE,UAAW8nE,EACXhqF,UAAWiqF,GACTloE,MAEGvlB,EAAc0tF,GAAmBnjG,mBAAqC,CAC3EigC,gBAAiB,EACjByf,WAAY,GACZxhB,SAAU,KACVE,OAAQ,KACR8C,OAAQ,KACRkN,QAAS,GACTqvD,YAAa,KAGfp8F,qBAAU,KACR+1F,EAA0B,OAAlBxyD,QAAkB,IAAlBA,IAAsB,IAC9Bi+D,EAAe,KAAK,GACnB,CAACj+D,IAEJ,MA4BMskC,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,cACRytD,SAAU,aACV1xE,MAAO,OAET,CACEikB,OAAQ,uBACRytD,SAAU,WACVC,eAAe,EACfC,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBuR,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,QACKa,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASx1C,SAAUC,OAAO,cAAe,IAClE5vC,cAAA,SACCg9E,EAAImI,SAASt1C,OACZp/B,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,MACGa,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASt1C,OAAQD,OAAO,cAAe,OAGhE,mBAED,GAGP,CACEtY,OAAQ,wBACRytD,SAAU,aACVC,eAAe,EACfC,KAAMtvE,IAAmB,IAADs/F,EAAA,IAAjB,IAAEj4B,GAAUrnE,EACbgiC,EAAsBqlC,EAAImI,SAAS2qB,YACnCoF,GAAU,EAMd,OALIv9D,EAAUh6C,OAAS,IACrBu3G,EAAU/9D,EAAYwqB,OAAOhuC,GAC3BgkB,EAAU3iC,SAAS2e,EAAEwuB,eAIvBniD,cAAAyV,WAAA,CAAAtW,SACwB,IAArBw4C,EAAUh6C,OAC+C,QADnCs3G,EACnB99D,EAAYz6B,MAAMiX,GAAMA,EAAEwuB,aAAexK,EAAU,YAAG,IAAAs9D,OAAA,EAAtDA,EAAwD72G,KACxD82G,EACA,kBAAiB,aAAA70G,OACJs3C,EAAUh6C,OAAM,MAChC,GAIT,CACE25B,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAAC0hC,KAAI,CACH5rB,UAAU,SACV1B,MAAM,UACNsR,QAASA,IArFF5T,WACjBwiG,EAAeQ,GAEfF,EAAgB,CACdljE,gBAAiBojE,EAAcpjE,gBAC/Byf,WAAY2jD,EAAc3jD,WAC1BxhB,SAAUmlE,EAAcnlE,UAAY7C,KAAOgoE,EAAcnlE,UACzDE,OAAQilE,EAAcjlE,QAAU/C,KAAOgoE,EAAcjlE,QACrD8C,OAAQ,CAAEp2C,MAAOu4G,EAAcniE,OAAQnsB,MAAOsuF,EAAcniE,QAC5DkN,QAASi1D,EAAcj1D,QACvBqvD,YAAa4F,EAAchF,YAAYp6F,KAAKie,GAAC,GAAAtzB,OAAQszB,MACrD,EA0EuBuxD,CAAWlI,EAAImI,UAAUhmF,SACzC,sBAGG,EAERkU,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OACjB11F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAAC0hC,KAAI,CACH5rB,UAAU,SACV1B,MAAM,UACNsR,QAASA,IAxFA5T,WACnB0iG,EAAuBM,GACvBL,GAAwB,EAsFCj0B,CAAaxD,EAAImI,UAAUhmF,SAC3C,YAGG,EAERkU,MAAO,SAGX,CAAC8jC,IAEH,OACE1mC,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACQ,OAAhBk1G,EACCr0G,cAAC6zE,GAAK,CACJiH,OAAK,EACLH,QAASA,EACT9uE,KAAMA,EACNykE,MAAI,EACJsK,YAAU,EACVC,aAAc,KAGhBpqE,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC0hC,KAAI,CACHhc,QAASA,IAAM4uF,EAAe,MAC9Bz3G,KAAK,SACLoU,QAAQ,QACR6E,UAAU,SAAQ3W,SAElBa,cAAC+0G,GAAQ,MAEX/0G,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTa,cAACozG,GAAqB,CACpBlsF,aAAcA,EACdylF,UAAQ,EACRthF,aAAc0mB,WAOxBthC,eAACu7B,GAAM,CACLpzB,KAAM+7F,EACNhqF,QAAS+pF,EACTlkG,SAAS,KAAIrR,SAAA,CAEbsR,eAAC87B,GAAa,CAAAptC,SAAA,CACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,sCAGzBa,cAACgR,IAAU,CAACN,UAAU,WAAUvR,SAAA,gBAAAkB,OAAqC,OAAnBk0G,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBpjD,cACvEnxD,cAAC8Y,KAAG,CAAC43F,GAAI,EAAEvxG,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,uBAG7BsR,eAAC07B,GAAa,CAAAhtC,SAAA,CACZa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPgvF,GAAwB,IAG5B10G,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KArJb6uF,IACFviE,EAAoC,OAAnBuiE,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7iE,iBACtC8iE,EAAuB,YAGzBE,eAoJG,EChKQc,ICxEX,GAAS,GDwEEA,GAtDkDA,KAC/D,MACE93F,OAAO,YAAE84B,EAAW,kBAAEb,GAAmB,SACzCz2B,GACEk5B,KAEJtlC,qBAAU,KACRoM,EAAS,CACPriB,KAAMy4C,GAAsB5E,aAC5BxyB,QAASk3B,GAAmB+C,OAC5B,GACD,IAaH,OACE1nC,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC6uE,GAAI,EAAExoF,SACTa,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,8CAI9Ba,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW6tF,iBAAiBt0G,SAC1Ca,cAAC8nB,GAAa,CACZ1pB,KAAM,aACN2pB,QAASyuB,EACTj6C,MAAOo5C,EACP1rB,SAvBmBnY,MACzBuL,EACA9gB,KAEc,OAAVA,GACF2iB,EAAS,CACPriB,KAAMy4C,GAAsBI,oBAC5Bx3B,QAAS3hB,GAEb,MAiBGo5C,IAAsBN,GAAoBoB,gBACzCz2C,cAACo0G,GAAwB,IACvBz+D,IAAsBN,GAAoBqB,aAC5C12C,cAACg1G,GAA2B,IAC1Br/D,IAAsBN,GAAoBsB,YAC5C32C,cAACu1G,GAA0B,IAE3B5/D,IAAsBN,GAAoBuB,eACxC52C,cAACm1G,GAA4B,MAGhC,ECnEP,SAAS,KAAiS,OAApR,GAAWj3G,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASq/F,GAAiBv2G,EAAMyX,GAC9B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAY,GAAuB,gBAAoB,SAAU,CACjFuX,GAAI,GACJC,GAAI,GACJC,EAAG,GACHT,KAAM,aACH,KAAU,GAAqB,gBAAoB,OAAQ,CAC9DM,EAAG,2dACHN,KAAM,WAEV,CACA,MAAM,GAA0B,aAAiB2+F,IAClC,ICoJAC,OAxJ0Cx2G,IAMlD,IANmD,cACxD41G,EAAa,iBACbziE,EAAgB,aAChBsjE,EAAY,gBACZ/jE,EAAe,eACfG,GACD7yC,EACC,MAAO2xG,EAAc4B,GAAmBhhG,mBAAwB,KACzDm/F,EAAa8B,GAAkBjhG,mBAAwB,IAE9DqB,qBAAU,KACR,GAAIgiG,EAAcc,eAAgB,CAChC,IAAI90D,EAAWg0D,EAAcc,eAAe5xF,MAAM,KAC9Cg9B,EAAsB,GAC1B,IAAK,IAAI7qC,EAAI,EAAGA,EAAI2qC,EAASnjD,OAAS,EAAGwY,IAAK,CAC5C,IAAIi/F,EAAYt0D,EAAS3qC,GACrBk/F,EAAUv0D,EAAS3qC,EAAI,GACvBm/F,EAAS,GAAAj1G,OAAM+0G,EAAS,OAAA/0G,OAAMg1G,GAClCr0D,EAAO,IACFA,EAED,CACE2wD,iBAAkByD,EAClB1vB,eAAgB2vB,EAChBtE,eAAgBuE,GAIxB,CAEIR,EAAc/C,OAChBW,EAAe1xD,GACfyxD,EAAgBzxD,IAEhByxD,EAAgBzxD,EAEpB,IACC,CAAC8zD,EAAcc,iBAqBlB,OACE51G,cAAAyV,WAAA,CAAAtW,SACG21G,EAAct6D,WACbx6C,cAAAyV,WAAA,CAAAtW,SACEa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAE13B,SACvBa,cAACoxG,GAAsB,CACrBh/D,aAAc0iE,EAAct6D,WAC5BhI,WAAYsiE,EAActiE,WAC1B6+D,YAAayD,EAAcc,eAC3BhF,YAAaA,EACbC,aAAcA,EACd3pF,aAAc,CACZyoB,SAAU7C,KAAOgoE,EAAcnlE,UAC/BE,OACEilE,EAAcjlE,QAAU/C,KAAOgoE,EAAcjlE,QAC/C8C,OAAQ,CACNp2C,MAAOu4G,EAAcniE,OACrBnsB,MAAOsuF,EAAcniE,QAEvBkN,QAASi1D,EAAcj1D,QACvBqvD,YAAa4F,EAAchF,YAAYp6F,KAAKie,GAAC,GAAAtzB,OAAQszB,MAEvDvM,UAAQ,EACR2nF,YAAa+F,EAAc/F,YAC3BjlB,eA7CUv5C,IACxB8B,EACE9B,EAAa76B,KACVie,IAAC,IACGmhF,EACHrgC,QAASqgC,EAAcc,eACvBlkE,gBAAiB/d,EAAEo7E,YAAc,EAAI+F,EAAcpjE,gBACnD/B,SAAUhc,EAAEgc,SACZE,OAAQlc,EAAEkc,OACV8C,OAAQhf,EAAEgf,OACVkN,QAASlsB,EAAEksB,QACXiwD,YAAan8E,EAAEm8E,YACfiC,MAAOp+E,EAAEo+E,MACThD,YAAap7E,EAAEo7E,gBAGpB,YAmCK+F,EAAc3jD,WAChBnxD,cAACozG,GAAqB,CACpBlsF,aAAc,CACZwqB,gBAAiBojE,EAAcpjE,gBAC/Byf,WAAY2jD,EAAc3jD,WAC1BxhB,SAAU7C,KAAOgoE,EAAcnlE,UAC/BE,OAAQilE,EAAcjlE,QAAU/C,KAAOgoE,EAAcjlE,QACrD8C,OAAQ,CACNp2C,MAAOu4G,EAAcniE,OACrBnsB,MAAOsuF,EAAcniE,QAEvBkN,QAASi1D,EAAcj1D,QACvBqvD,YAAa4F,EAAchF,YAAYp6F,KAAKie,GAAC,GAAAtzB,OAAQszB,MAEvDjM,UAAQ,EACR2D,aAAc0mB,IAEd+iE,EAAcpF,YAChB1vG,cAACuvG,GAAsB,CACrBroF,aAAc,CACZwqB,gBAAiBojE,EAAcpjE,gBAC/Bg+D,YAAaoF,EAAcpF,YAC3B//D,SAAU7C,KAAOgoE,EAAcnlE,UAC/BE,OAAQilE,EAAcjlE,QAAU/C,KAAOgoE,EAAcjlE,QACrD8C,OAAQ,CACNp2C,MAAOu4G,EAAcniE,OACrBnsB,MAAOsuF,EAAcniE,QAEvBkN,QAASi1D,EAAcj1D,QACvBqvD,YAAa4F,EAAchF,YAAYp6F,KAAKie,GAAC,GAAAtzB,OAAQszB,MAEvDjM,UAAQ,EACR2D,aAAcumB,IAEdkjE,EAAcnV,YAChB3/F,cAACgsG,GAAmB,CAClB9kF,aAAc,CACZwqB,gBAAiBojE,EAAcpjE,gBAC/B/B,SAAU7C,KAAOgoE,EAAcnlE,UAC/BE,OAAQilE,EAAcjlE,QAAU/C,KAAOgoE,EAAcjlE,QACrD/mC,SAAUgsG,EAAchsG,SACxBf,QAAS,CACPye,MAAOsuF,EAAcpV,YACrBnjG,MAAOu4G,EAAcnV,aAEvBjoD,UAAWo9D,EAAcp9D,UACzB/E,OAAQ,CACNp2C,MAAOu4G,EAAcniE,OACrBnsB,MAAOsuF,EAAcniE,QAEvBkN,QAASi1D,EAAcj1D,SAEzBn4B,UAAQ,EACR2D,aAAcsqF,IAGhB31G,cAAAyV,WAAA,KAED,EC5KQ,SAASogG,KACtB,OAAO,IAAIC,gBAAgBtjF,cAAc3uB,OAC3C,C,yBCqcekyG,OA5ZoDA,KACjE,MACEr4F,OAAO,mBAAEm4B,EAAkB,iBAAEE,GAAkB,SAC/C72B,EAAQ,YACRi4B,GACEiB,MACGvsC,EAAMg9F,GAAWp3F,mBAAkC,OACnD4iG,EAAaC,GAAkB7iG,mBAAgC,OAC/D8iG,EAAqBC,GAC1B/iG,mBAAgC,OAEhCk7B,UAAW8nE,EACX7nE,UAAW8nE,EACXhqF,UAAWiqF,GACTloE,MACGmmE,EAAcC,GAAmBphG,oBAAS,GAE3CukG,EAAQH,KACRr7D,EAAaw7D,EAAM9pG,IAAI,cACvB+pG,EAAYD,EAAM9pG,IAAI,cAE5B4G,qBAAU,KACRoM,EAAS,CACPriB,KAAMy4C,GAAsBM,8BAC5B13B,QAAmB,OAAVs8B,QAAU,IAAVA,IAAc,KAEzBt7B,EAAS,CACPriB,KAAMy4C,GAAsBQ,4BAC5B53B,QAAS+3F,EAAYnpE,KAAOmpE,GAAa,MACzC,GACD,CAACz7D,EAAYy7D,IAEhB,MAAM,WAAE98F,GAAeQ,KAEjBw7E,EAA4B,OAAJtpF,QAAI,IAAJA,OAAI,EAAJA,EAAMiyB,QAClC,CAACC,EAAiBC,IACTD,EAAIjZ,MAAMswE,GAAOA,EAAG5iD,aAAexU,EAAKwU,aAC3CzU,EACA,IACKA,EACH,CACEyU,WAAYxU,EAAKwU,WACjB6iD,UACiB,IAAft3D,EAAIpgC,SAAwBogC,EAAIA,EAAIpgC,OAAS,GAAG03F,aAI5D,IAGFviF,qBAAU,KACRoM,EAAS,CACPriB,KAAMy4C,GAAsB5E,aAC5BxyB,QAASk3B,GAAmB8gE,QAC5B,GACD,IAEH,MAAMxvB,EAAe50E,UACnB+gG,GAAgB,GAChByB,EAAe,MACfhjE,GAAmBxB,kBAAkB+F,EAAoBE,GACtDprC,MAAMwrG,GAAmBtN,EAAQsN,KACjCrzG,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAClCqT,SAAQ,IAAMggG,GAAgB,IAAO,EAoCpCvgE,EAAqBxgC,UACzBw/B,GAAmBgB,mBAAmBZ,GACnC/mC,MAAM4gB,IACDA,GACFm7D,IACAvtE,EACE,sCACAlB,GAAYE,SAEdq8F,EAAuB,OAEvBr7F,EAAW,2BACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,EAmDAm7E,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACEqrE,SAAU,gBACVE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OAAK89E,EAAImI,SAASixB,eAAiBp2G,cAACq2G,GAAa,GAAG,EACvEhjG,MAAO,KACP2xE,eAAe,GAEjB,CACE1tD,OAAQ,cACRytD,SAAU,aACVE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAAS3yC,WAAY5C,OAAO,aAAc,EAEhEv8B,MAAO,OAET,CACEikB,OAAQ,iBACRytD,SAAU,WAEZ,CACEztD,OAAQ,sBACRytD,SAAU,cACVC,eAAe,EACfC,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1C,EAAImI,SAAS1+D,YAAYzC,MAAM,MAAMtO,KAAI,CAACqW,EAAWitE,KACnD,IAAIvkB,EAAU1oD,EAAK/H,MAAM,aACzB,OACEhkB,cAAC8Y,KAAG,CAAC43F,GAAI,EAAEvxG,SACW,IAAZ,OAAPs1E,QAAO,IAAPA,OAAO,EAAPA,EAAS92E,QACR8S,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,WACS,IACTa,cAAA,QAAM0Q,UAAWC,KAAOilG,eAAez2G,SAAEs1E,EAAQ,QAGnD1oD,GAPaitE,EASX,GAER,GAEN,CACE1hE,OAAQ,uBACRytD,SAAU,WACVC,eAAe,EACfC,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OACjBjlF,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,QACKa,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASx1C,SAAUC,OAAO,cAAe,IAClE5vC,cAAA,SACCg9E,EAAImI,SAASt1C,OACZp/B,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,MACGa,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASt1C,OAAQD,OAAO,cAAe,OAGhE,mBAED,EAELv8B,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjB71F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC9D69E,EAAImI,SAAS4pB,aACZ/uG,cAAC0hC,KAAI,CACH5rB,UAAU,SACV1B,MAAM,UACNsR,QAASA,IAtKF5T,WACnB0iG,EAAuBM,GACvBL,GAAwB,EAoKGj0B,CAAaxD,EAAImI,UAAUhmF,SAC3C,2BAIC,EAERkU,MAAO,MAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAM6Q,IAAA,IAAC,IAAE9Y,GAAU8Y,EAAA,OACjB91F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC9D69E,EAAImI,SAASixB,cACZp2G,cAAAyV,WAAA,IAEAzV,cAAC0hC,KAAI,CACH5rB,UAAU,SACV1B,MAAM,UACNsR,QAASA,IA/LD5T,WACpBwiG,EAAeQ,EAAc,EA8LFwB,CAAct5B,EAAImI,UAAUhmF,SAC5C,cAIC,EAERkU,MAAO,SAGX,CAAC8jC,IAGH,OACE1mC,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,gBAAernB,SAChCa,cAACmnB,GAAS,CACR/oB,KAAK,eACL6Y,GAAG,qBACH1a,MAAOs5C,EACP5rB,SAAWnf,GACToU,EAAS,CACPriB,KAAMy4C,GAAsBM,8BAC5B13B,QAASpT,EAAEoL,OAAO3Z,cAM5ByD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,cAAcE,YAAU,EAAAvnB,SACzCa,cAAC4lF,GAAU,CACTmB,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,aACL6Y,GAAG,mBACH24B,OAAO,aACPrzC,MAAOw5C,EACP9rB,SAAWriB,GACTsX,EAAS,CACPriB,KAAMy4C,GAAsBQ,4BAC5B53B,QAAa,OAAJtW,QAAI,IAAJA,IAAQ,aAM3B5H,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8Y,KAAG,CAAC7F,MAAO,CAAEonB,UAAW,QAASl7B,SAChCa,cAACwmF,GAAY,CACXvvE,GAAG,sBACHgR,UAA4B,OAAlB4tB,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBl4C,QAAS,GAAKi1G,EAC5CltF,QAASghE,EAAavnF,SACvB,kCAORyzG,GAAgB5yG,cAAC02E,KAAc,CAACtiE,MAAM,cAEtCigG,EACC5jG,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC0hC,KAAI,CACHhc,QAASA,IAAM4uF,EAAe,MAC9Bz3G,KAAK,SACLoU,QAAQ,QACR6E,UAAU,SAAQ3W,SAElBa,cAAC+0G,GAAQ,MAEX/0G,cAAC01G,GAAe,CACdZ,cAAeT,EACfhiE,iBA5PevgC,UACvBw/B,GAAmBe,iBAAiB9B,GACjC5lC,MAAM4gB,IACDA,GACFm7D,IACAvtE,EAAW,kCAAmClB,GAAYE,SAC1Dm8F,EAAe,OAEfn7F,EAAW,2BACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,EAgPIm2G,aA1NW7jG,UACnBw/B,GAAmBE,oBAAoByG,GACpCttC,MAAM4gB,IACDA,GACFm7D,IACAvtE,EAAW,kCAAmClB,GAAYE,SAC1Dm8F,EAAe,OAEfn7F,EAAW,2BACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,EA8MIoyC,gBA3Mc9/B,UACtBw/B,GAAmBM,gBAAgBqG,GAChCttC,MAAM4gB,IACDA,GACFm7D,IACAvtE,EAAW,kCAAmClB,GAAYE,SAC1Dm8F,EAAe,OAEfn7F,EAAW,2BACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,EA+LIuyC,eA5LajgC,UACrBw/B,GAAmBS,eAAekG,GAC/BttC,MAAM4gB,IACDA,GACFm7D,IACAvtE,EAAW,kCAAmClB,GAAYE,SAC1Dm8F,EAAe,OAEfn7F,EAAW,2BACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,OAmLAqM,GACE7L,cAAAyV,WAAA,CAAAtW,SACmB,IAAhB0M,EAAKlO,OACJqC,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,MAGX74E,cAAC6zE,GAAK,CACJiH,OAAK,EACLH,QAASA,EACT9uE,KAAMA,EACNykE,MAAI,EACJsK,YAAU,EACVC,aAAc,GACdG,YAAcgC,IAAS,IAAD+Z,EACpB,IAAI5uE,EAAU,GAed,OAdI60D,EAAImI,SAASixB,gBACfjuF,EAAUxX,KAAOylG,eAQjBjuF,EAJqB,OAArBgtE,QAAqB,IAArBA,GAEC,QAFoB4B,EAArB5B,EAAuBz4E,MACpBiX,GAAMA,EAAE6e,aAAewqC,EAAImI,SAAS3yC,oBACtC,IAAAukD,GAFDA,EAEG1B,UAEI,GAAAh1F,OAAM8nB,EAAO,KAAA9nB,OAAIsQ,KAAOqmF,cAExB,GAAA32F,OAAM8nB,EAAO,KAAA9nB,OAAIsQ,KAAO4lG,WAG1B,CACL7lG,UAAWyX,EACZ,MAQb1X,eAACu7B,GAAM,CACLpzB,KAAM+7F,EACNhqF,QAAS+pF,EACTlkG,SAAS,KAAIrR,SAAA,CAEbsR,eAAC87B,GAAa,CAAAptC,SAAA,CACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,sCAGzBa,cAAC8Y,KAAG,CAAC43F,GAAI,EAAEvxG,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,uBAG7BsR,eAAC07B,GAAa,CAAAhtC,SAAA,CACZa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPgvF,GAAwB,IAG5B10G,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IAzUS5T,WACH,OAAnByiG,QAAmB,IAAnBA,KAAqB7iE,iBACvBY,EAAsC,OAAnBiiE,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7iE,iBAG1CgjE,GAAwB,EAoUD8B,aAIpB,ECraQC,OAxBqB,CAClC,CACE7gG,KAAM,8BACNxX,KAAM,uBACNyX,OAAO,EACPC,UAAW9V,cAACuzG,GAAoB,IAChC7+F,WAAYqZ,GAAgB8B,qCAE9B,CACEja,KAAM,gCACNxX,KAAM,aACNyX,OAAO,EACPC,UAAW9V,cAACw1G,GAAmB,IAC/B9gG,WAAYqZ,GAAgB8B,qCAE9B,CACEja,KAAM,iCACNxX,KAAM,sBACNyX,OAAO,EACPC,UAAW9V,cAAC+1G,GAAoB,IAChCrhG,WAAYqZ,GAAgB8B,sCCRjB6mF,OAX0CA,IAErD12G,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,eAAcX,SAAA,CAC/Ba,cAAC83F,GAAO,CAACxiF,MAAOmhG,KAChBz2G,cAACmV,EAAM,CAACG,MAAOmhG,GAAmBlhG,SAAS,iC,oBC0KpCohG,OArKyBA,KACtC,MAAM,kBAAEl7F,GAAsB4hB,MACvBu5E,EAAYC,GAAiBplG,mBAAoC,OACjEmhG,EAAcC,GAAmBphG,oBAAS,IAC1CqzC,EAAUgyD,GAAerlG,mBAAiB,sBAE1CslG,EAAiBC,GAAsBvlG,mBAAyB,CACrE+U,MAAO,MACPjqB,MAAO,SAEH,WAAE4c,GAAeQ,KACvB7G,qBAAU,KACc,IAADmkG,EAAAC,EAAjBH,IACFlE,GAAgB,GAChBiE,EAEc,QAFHG,EACsD,QADtDC,EACTz7F,EAAkBiB,MAAMiX,GAAMA,EAAEtZ,OAAS08F,EAAgBx6G,eAAM,IAAA26G,OAAA,EAA/DA,EACIvxD,gBAAQ,IAAAsxD,IAAI,qBAElBx1D,GAAcC,cAA6B,OAAfq1D,QAAe,IAAfA,OAAe,EAAfA,EAAiBx6G,OAC1CoO,MAAM4gB,GAAWsrF,EAActrF,KAC/BzoB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAClCqT,SAAQ,IAAMggG,GAAgB,KACnC,GACC,CAACkE,IAEJ,MAAMp8B,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,OACRytD,SAAU,OACVE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjB4tC,KAAOkwC,EAAImI,SAASv9E,MACjBq9C,GAAGH,GACHlV,OAAO,aACP6K,aAAa,EAClBpnC,MAAO,OAET,CACEikB,OAAQ,gBACRytD,SAAU,eACV1xE,MAAO,OAET,CACEikB,OAAQ,UACRytD,SAAU,WAEZ,CACEztD,OAAQ,cACRytD,SAAU,cAEZ,CACEztD,OAAQ,MACRytD,SAAU,MACVE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjBqnE,EAAImI,SAAS/Q,KACbtnC,KAAOkwC,EAAImI,SAAS/Q,KAAKnvB,GAAGH,GAAUlV,OAAO,QAAQ,GAEzD,CACEtY,OAAQ,MACRytD,SAAU,MACVE,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1C,EAAImI,SAASgyB,KACbrqE,KAAOkwC,EAAImI,SAASgyB,KAAKlyD,GAAGH,GAAUlV,OAAO,QAAQ,GAEzD,CACEtY,OAAQ,MACRytD,SAAU,MACVE,KAAMyQ,IAAmB,IAAlB,IAAE1Y,GAAU0Y,EACb0hB,EACFtqE,KAAOkwC,EAAImI,SAASxqC,KAAKsK,GAAGH,GAAUl9C,OACtCklC,KAAOkwC,EAAImI,SAAS/Q,KAAKnvB,GAAGH,GAAUl9C,OACxC,OACEo1E,EAAImI,SAASxqC,KACXlqC,eAAAgF,WAAA,CAAAtW,SAAA,CACG2tC,KAAOkwC,EAAImI,SAASxqC,KAAKsK,GAAGH,GAAUlV,OAAO,SAAU,IAC1C,IAAbwnE,GACCp3G,cAAA,QACEiT,MAAO,CAAE4yB,WAAY,QACrBn1B,UAAW2mG,KAAU1rF,aAAaxsB,SAEjCi4G,EAAW,EAAC,IAAA/2G,OAAO+2G,GAAaA,MAIxC,GAIP,CACE9/E,OAAQ,MACRytD,SAAU,MACVE,KAAM4Q,IAAmB,IAAlB,IAAE7Y,GAAU6Y,EACbuhB,EACFtqE,KAAOkwC,EAAImI,SAASmyB,KAAKryD,GAAGH,GAAUl9C,OACtCklC,KAAOkwC,EAAImI,SAASgyB,KAAKlyD,GAAGH,GAAUl9C,OACxC,OACEo1E,EAAImI,SAASmyB,KACX7mG,eAAAgF,WAAA,CAAAtW,SAAA,CACG2tC,KAAOkwC,EAAImI,SAASmyB,KAAKryD,GAAGH,GAAUlV,OAAO,SAAU,IAC1C,IAAbwnE,GACCp3G,cAAA,QACEiT,MAAO,CAAE4yB,WAAY,QACrBn1B,UAAW2mG,KAAU1rF,aAAaxsB,SAEjCi4G,EAAW,EAAC,IAAA/2G,OAAO+2G,GAAaA,MAIxC,EAGL/jG,MAAO,QAGX,CAACyxC,IAGH,OACE9kD,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,aAAYX,SAAA,CAC7Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTsR,eAACO,IAAU,CAACoD,MAAM,YAAWjV,SAAA,CAAC,gCACCa,cAAA,KAAAb,SAAG,UAAS,qBAI7Ca,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAACk/E,GAAc,CACbn3D,QAAStM,EACN0lB,QAAQvkB,IAASA,EAAEyzD,aACnB36D,KAAKkH,IAAC,CAAQ4J,MAAO5J,EAAEvC,KAAM9d,MAAOqgB,EAAEvC,SACzCjc,KAAK,OACLuJ,YAAY,OACZsL,MAAO,CAAEI,MAAO,SAChB9W,MAAOw6G,EACP9sF,SAAUA,CAACnf,EAAGwe,MACF,OAANA,QAAM,IAANA,OAAM,EAANA,EAAQ/sB,SAAwB,OAAfw6G,QAAe,IAAfA,OAAe,EAAfA,EAAiBx6G,QACpCy6G,EAAmB1tF,EACrB,EAEF25D,eAAa,UAKpB2vB,GAAgB5yG,cAAC02E,KAAc,CAACtiE,MAAM,cAEtCwiG,GACC52G,cAAAyV,WAAA,CAAAtW,SACyB,IAAtBy3G,EAAWj5G,OACVqC,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,MAGX74E,cAAC6zE,GAAK,CAAC8G,QAASA,EAAS9uE,KAAM+qG,EAAYtmC,MAAI,UAKtD,EC9IQinC,OAzBYA,KAAO,IAADC,EAC/B,MAAM,MAAE95F,GAAUiqC,KACZ48B,EAAc/vE,IAEpB,OACExU,cAACi5E,GAAW,CAACn5E,MAAM,OAAMX,SACjB,OAALue,QAAK,IAALA,GAAgB,QAAX85F,EAAL95F,EAAOopC,iBAAS,IAAA0wD,OAAX,EAALA,EACGr2E,QAAQxN,IAAiD,IAA3CA,EAAEjyB,MAAM2f,QAAQkjE,EAAYp1E,YAC3CuG,KAAKie,GAEFljB,eAAC+6F,KAAS,CAAArsG,SAAA,CACRa,cAACyrG,KAAgB,CAACC,WAAY1rG,cAACwhG,KAAc,IAAIriG,SAC/Ca,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAEw0B,EAAEv1B,SAE9B4B,cAAC2rG,KAAgB,CAAAxsG,SACfa,cAACgR,IAAU,CAACN,UAAWkV,KAAW6xF,mBAAmBt4G,SACnDa,cAAA,OAAKu2B,wBAAyB,CAAEC,OAAQ7C,EAAEtvB,iBANhCsvB,EAAE8yB,eAYZ,EC3BlB,MAAM93C,GAAe,eAgDN+oG,OA9CS,CACtBC,yBAA0BA,CACxB1jE,EACAvE,EACAx6B,KAEA,IAAIy6B,EAAe,OAAJD,QAAI,IAAJA,OAAI,EAAJA,EAAME,OAAO,oBACxBC,EAAW,OAAF36B,QAAE,IAAFA,OAAE,EAAFA,EAAI06B,OAAO,oBACxB,OAAO3jC,EAAa,GAAD5L,OACdsO,GAAY,kBAAAtO,OAAiB4zC,EAAa,KAAA5zC,OAC3CsvC,EAAQ,aAAAtvC,OAAgBsvC,GAAa,IAAEtvC,OACtCwvC,EAAM,WAAAxvC,OAAcwvC,GAAW,IACnC,EAEH+nE,mBAAoBA,CAClBloE,EACAx6B,KAEA,IAAIy6B,EAAe,OAAJD,QAAI,IAAJA,OAAI,EAAJA,EAAME,OAAO,oBACxBC,EAAW,OAAF36B,QAAE,IAAFA,OAAE,EAAFA,EAAI06B,OAAO,oBACxB,OAAO3jC,EAAa,GAAD5L,OACdsO,GAAY,sBAAAtO,OAAqBsvC,GAAQtvC,OAC1CwvC,EAAM,WAAAxvC,OAAcwvC,GAAW,IAElC,EAEHgoE,qBAAsBA,CACpB9vG,EACA2nC,EACAx6B,KAEA,IAAIy6B,EAAe,OAAJD,QAAI,IAAJA,OAAI,EAAJA,EAAME,OAAO,oBACxBC,EAAW,OAAF36B,QAAE,IAAFA,OAAE,EAAFA,EAAI06B,OAAO,oBACxB,OACS3jC,EADLlE,EACkB,GAAD1H,OACdsO,GAAY,cAAAtO,OAAa0H,EAAO,KAAA1H,OACjCsvC,EAAQ,aAAAtvC,OAAgBsvC,GAAa,IAAEtvC,OACtCwvC,EAAM,WAAAxvC,OAAcwvC,GAAW,IAElB,GAADxvC,OACdsO,GAAY,cAAAtO,OAAasvC,EAAQ,aAAAtvC,OAAgBsvC,GAAa,IAAEtvC,OACjEwvC,EAAM,WAAAxvC,OAAcwvC,GAAW,IAElC,GCoMUioE,OA5N8BA,KAC3C,MAAO7qC,EAAWktB,GAAgB1oF,oBAAS,IACpCk+B,EAAUooE,GAAetmG,mBAAwB,OACjDo+B,EAAQmoE,GAAavmG,mBAAwB,OAC7CwmG,EAAkBC,GAAuBzmG,oBAAS,IAClD5F,EAAMg9F,GAAWp3F,mBAAkC,OACnD0mG,EAAaC,GAAkB3mG,mBAAgC,OAEpEk7B,UAAW2sD,EACX1sD,UAAW+rD,EACXjuE,UAAWguE,GACTjsD,MACE,WAAEtzB,GAAeQ,KAEvB7G,qBAAU,KAEE,OAAR68B,QAAQ,IAARA,KAAUjjB,YACC,MAAVmjB,GAAkBA,EAAOwoE,cAAc1oE,IAExCuoE,GAAoB,GAEpBA,GAAoB,EACtB,GACC,CAACvoE,EAAUE,IAEd,MAAM62C,EAAeA,KACnByT,GAAa,GAEbud,GAAgBE,mBAAmBjoE,EAAUE,GAC1CllC,MAAM4gB,GAAWs9E,EAAQt9E,KACzBzoB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAClCqT,SAAQ,IAAMsnF,GAAa,IAAO,EAcjCxf,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,KACRytD,SAAU,MACV1xE,MAAO,MAET,CACEikB,OAAQ,UACRytD,SAAU,UACV1xE,MAAO,MACP4xE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OAAK89E,EAAImI,SAAS3lF,QAAQq/B,QAAQ,WAAY,GAAG,GAEtE,CACEvH,OAAQ,OACRytD,SAAU,YACVE,KAAMtvE,IAAmB,IAAlB,IAAEqnE,GAAUrnE,EACjB,OACE3V,cAAC4nF,GAAQ,CACPhgF,KAAMo1E,EAAImI,SAASmzB,UACnB1oE,OAAO,sBACP,EAGNv8B,MAAO,OAET,CACEikB,OAAQ,YACRytD,SAAU,WACV1xE,MAAO,OAET,CACEikB,OAAQ,SACRytD,SAAU,SACV1xE,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACq6F,KAAO,CACNvkF,UAAU,SACV1B,MAAM,UACNsR,QAASA,KAxDI5T,WACvBsmG,EAAeG,GACfjf,GAAY,EAuDAkf,CAAiBx7B,EAAImI,SAAS,EAC9BhmF,SACH,cAGG,EAERkU,MAAO,QAGX,IAEF,OACE5C,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAa2zE,UAlExBh8E,IACR,UAAVA,EAAEhN,KACJ4oF,GACF,EA+DwEvnF,SACpEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAAC4lF,GAAU,CACTj+D,aAAa,MACbo/D,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,WACL6Y,GAAG,qBACH24B,OAAO,aACPrzC,MAAOozC,EACP1lB,SAAWriB,GACTmwG,EAAYnwG,EAAOA,EAAK0rC,QAAQ,KAAO,YAK/CtzC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,KAAIrnB,SACrBa,cAAC4lF,GAAU,CACTj+D,aAAa,MACb3hB,QAAiB,OAAR2pC,QAAQ,IAARA,OAAQ,EAARA,EAAUE,SACnBk3C,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,SACL6Y,GAAG,mBACH24B,OAAO,aACPrzC,MAAOszC,EACP5lB,SAAWriB,GACTowG,EAAUpwG,EAAOA,EAAKi/E,MAAM,KAAO,YAK3C7mF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8Y,KAAG,CAAC7F,MAAO,CAAEonB,UAAW,QAASl7B,SAChCa,cAACwmF,GAAY,CACXvvE,GAAG,0BACHgR,SAAUgwF,EACVvyF,QAASghE,EAAavnF,SACvB,yBAOR8tE,GAAajtE,cAAC02E,KAAc,CAACtiE,MAAM,eAClC64D,GACAphE,IACCA,EAAKlO,OAAS,EACbqC,cAAC6zE,GAAK,CACJiH,OAAK,EACLH,QAASA,EACT9uE,KAAMA,EACNykE,MAAI,EACJsK,YAAU,EACVC,aAAc,KAGhB76E,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,OAIfpoE,eAAC4U,GAAM,CAACzM,KAAM8/E,EAAiB/tE,QAASguE,EAAWx5F,SAAA,CACjDa,cAACkmB,GAAW,CAAA/mB,SAAC,kBACba,cAAC8lB,GAAa,CAAA3mB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkzE,cAAc35F,SAAA,CAClDsR,eAACmb,KAAI,CAACG,MAAI,EAACnb,WAAS,EAAC+lB,GAAI,GAAIjmB,UAAWkV,KAAWmzE,YAAY55F,SAAA,CAC7Da,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,OACNjqB,MAAOuwC,KAAkB,OAAXqrE,QAAW,IAAXA,OAAW,EAAXA,EAAaG,WACxB1oE,OAAO,sBACP6K,kBAGPz6C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CAAChyE,MAAM,SAASjqB,MAAkB,OAAX47G,QAAW,IAAXA,OAAW,EAAXA,EAAax6F,cAGvD3d,cAAC8Y,KAAG,CAAC4S,GAAI,EAAGmiB,GAAI,EAAE1uC,SAChBa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,kBAE3Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWkV,KAAWmzE,YAAY55F,SACvC,OAAXg5G,QAAW,IAAXA,OAAW,EAAXA,EAAa1xF,YAAYzC,MAAM,MAAMtO,KAAI,CAACqW,EAAMitE,IAE7Ch5F,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAC7Ba,cAAC8Y,KAAG,CAACyd,wBAAyB,CAAEC,OAAQzK,MADLitE,YAQ/Ch5F,cAACwlB,GAAa,CAAArmB,SACZa,cAAC4rB,KAAI,CACHhb,WAAS,EACTF,UAAWkV,KAAWkG,oBACtBob,eAAe,SAAQ/nC,SAEvBa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC8vF,GAAY,CAACnpE,WAAS,EAACjB,QAASizE,EAAYlvF,KAAK,qBAKzD,ECgFQgvG,OArS0CA,KACvD,MAAOxrC,EAAWktB,GAAgB1oF,oBAAS,IACpCinG,EAAmBC,GAAwBlnG,mBAAiB,KAC5Dk+B,EAAUooE,GAAetmG,mBAAwB,OACjDo+B,EAAQmoE,GAAavmG,mBAAwB,OAC7CwmG,EAAkBC,GAAuBzmG,oBAAS,IAClD5F,EAAMg9F,GAAWp3F,mBAAuC,OACxD0mG,EAAaC,GAAkB3mG,mBACpC,OAGAk7B,UAAW2sD,EACX1sD,UAAW+rD,EACXjuE,UAAWguE,GACTjsD,MACE,WAAEtzB,GAAeQ,KAEvB7G,qBAAU,KAAO,IAAD8lG,IAEa,QAAxBA,EAAAF,EAAkBprE,cAAM,IAAAsrE,OAAA,EAAxBA,EAA0Bj7G,QAAS,GAAa,OAARgyC,QAAQ,IAARA,KAAUjjB,aACxC,MAAVmjB,GAAkBA,EAAOwoE,cAAc1oE,IAExCuoE,GAAoB,GAEpBA,GAAoB,EACtB,GACC,CAACQ,EAAmB/oE,EAAUE,IAEjC,MAYM62C,EAAeA,KACnByT,GAAa,GACb,IAAIlmD,EACFykE,EAAkB/6G,OAAS,EAAI+tF,SAASgtB,GAAqB,EAE/DhB,GAAgBC,yBAAyB1jE,EAAetE,EAAUE,GAC/DllC,MAAM4gB,GAAWs9E,EAAQt9E,KACzBzoB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAClCqT,SAAQ,IAAMsnF,GAAa,IAAO,EAQjChF,EAA4B,OAAJtpF,QAAI,IAAJA,OAAI,EAAJA,EAAMiyB,QAClC,CAACC,EAAiBC,IACTD,EAAIjZ,MAAMswE,GAAOA,EAAGsjB,oBAAsB16E,EAAK06E,oBAClD36E,EACA,IACKA,EACH,CACE26E,kBAAmB16E,EAAK06E,kBACxBrjB,UACiB,IAAft3D,EAAIpgC,SAAwBogC,EAAIA,EAAIpgC,OAAS,GAAG03F,aAI5D,IASI1a,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,iBACRytD,SAAU,oBACV1xE,MAAO,MAET,CACEikB,OAAQ,OACRytD,SAAU,YACVE,KAAM/lF,IAAmB,IAAlB,IAAE89E,GAAU99E,EACjB,OACEc,cAAC4nF,GAAQ,CACPhgF,KAAMo1E,EAAImI,SAASmzB,UACnB1oE,OAAO,sBACP,EAGNv8B,MAAO,MAET,CACEikB,OAAQ,YACRytD,SAAU,WACV1xE,MAAO,OAET,CACEikB,OAAQ,QACRytD,SAAU,QACV1xE,MAAO,OAET,CACEikB,OAAQ,SACRytD,SAAU,SACV1xE,MAAO,MAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACq6F,KAAO,CACNvkF,UAAU,SACV1B,MAAM,UACNsR,QAASA,KAvEI5T,WACvBsmG,EAAeG,GACfjf,GAAY,EAsEAkf,CAAiBx7B,EAAImI,SAAS,EAC9BhmF,SACH,cAGG,EAERkU,MAAO,QAGX,IAEF,OACE5C,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAa2zE,UAjExBh8E,IACR,UAAVA,EAAEhN,KACJ4oF,GACF,EA8DwEvnF,SACpEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,qBAAoBrnB,SAC/Ca,cAACmnB,GAAS,CACRlQ,GAAG,+BACHtP,YAAY,OACZpL,MAAOm8G,EACPzuF,SApHZnf,IACI,IAAD+tG,EAAAC,GAGa,QAAdD,EAAA/tG,EAAEoL,OAAO3Z,aAAK,IAAAs8G,OAAA,EAAdA,EAAgBl7G,QAAS,KACG,KAAb,QAAdm7G,EAAAhuG,EAAEoL,OAAO3Z,aAAK,IAAAu8G,OAAA,EAAdA,EAAgBn7G,SAHL,WAG2Bo7G,KAAKjuG,EAAEoL,OAAO3Z,SAErDo8G,EAAqB7tG,EAAEoL,OAAO3Z,MAChC,QAgHMyD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAAC4lF,GAAU,CACTj+D,aAAa,MACbo/D,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,WACL6Y,GAAG,qBACH24B,OAAO,aACPrzC,MAAOozC,EACP1lB,SAAWriB,GACTmwG,EAAYnwG,EAAOA,EAAK0rC,QAAQ,KAAO,YAK/CtzC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,KAAIrnB,SACrBa,cAAC4lF,GAAU,CACTj+D,aAAa,MACb3hB,QAAiB,OAAR2pC,QAAQ,IAARA,OAAQ,EAARA,EAAUE,SACnBk3C,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,SACL6Y,GAAG,mBACH24B,OAAO,aACPrzC,MAAOszC,EACP5lB,SAAWriB,GACTowG,EAAUpwG,EAAOA,EAAKi/E,MAAM,KAAO,YAK3C7mF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8Y,KAAG,CAAC7F,MAAO,CAAEonB,UAAW,QAASl7B,SAChCa,cAACwmF,GAAY,CACXvvE,GAAG,0BACHgR,SAAUgwF,EACVvyF,QAASghE,EAAavnF,SACvB,yBAOR8tE,GAAajtE,cAAC02E,KAAc,CAACtiE,MAAM,eAClC64D,GACAphE,IACCA,EAAKlO,OAAS,EACbqC,cAAC6zE,GAAK,CACJiH,OAAK,EACLH,QAASA,EACT9uE,KAAMA,EACNykE,MAAI,EACJsK,YAAU,EACVC,aAAc,GACdG,YAAcgC,IAAS,IAAD+Z,EACpB,OACuB,OAArB5B,QAAqB,IAArBA,GAGC,QAHoB4B,EAArB5B,EAAuBz4E,MACpBiX,IACEA,EAAE+kF,qBAAuB17B,EAAImI,SAASuzB,2BAC1C,IAAA3hB,GAHDA,EAGG1B,UAEI,CACL3kF,UAAU,GAADrQ,OAAKulB,KAAWoxE,eAGpB,CACLtmF,UAAU,GAADrQ,OAAKulB,KAAWo3D,KAE7B,IAIJh9E,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,OAIfpoE,eAAC4U,GAAM,CAACzM,KAAM8/E,EAAiB/tE,QAASguE,EAAWx5F,SAAA,CACjDsR,eAACyV,GAAW,CAAA/mB,SAAA,CAAC,oCACkC,OAAXg5G,QAAW,IAAXA,OAAW,EAAXA,EAAaO,qBAEjD14G,cAAC8lB,GAAa,CAAA3mB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkzE,cAAc35F,SAAA,CAClDsR,eAACmb,KAAI,CAACG,MAAI,EAACnb,WAAS,EAAC+lB,GAAI,GAAIjmB,UAAWkV,KAAWmzE,YAAY55F,SAAA,CAC7Da,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CAAChyE,MAAM,SAASjqB,MAAkB,OAAX47G,QAAW,IAAXA,OAAW,EAAXA,EAAax6F,WAErD3d,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CAAChyE,MAAM,QAAQjqB,MAAkB,OAAX47G,QAAW,IAAXA,OAAW,EAAXA,EAAarkC,UAEpD9zE,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,cACNjqB,MAAK,GAAA8D,OAAgB,OAAX83G,QAAW,IAAXA,OAAW,EAAXA,EAAar6G,YAI7BkC,cAAC8Y,KAAG,CAAC4S,GAAI,EAAGmiB,GAAI,EAAE1uC,SAChBa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,gBAE3Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWkV,KAAWmzE,YAAY55F,SACvC,OAAXg5G,QAAW,IAAXA,OAAW,EAAXA,EAAa1lD,UAAUzuC,MAAM,KAAKtO,KAAI,CAACqW,EAAMitE,IAE1Ch5F,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAC5B4sB,GADkCitE,OAM3Ch5F,cAAC8Y,KAAG,CAAC4S,GAAI,EAAGmiB,GAAI,EAAE1uC,SAChBa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,kBAE3Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWkV,KAAWmzE,YAAY55F,SACvC,OAAXg5G,QAAW,IAAXA,OAAW,EAAXA,EAAa1xF,YAAYzC,MAAM,MAAMtO,KAAI,CAACqW,EAAMitE,IAE7Ch5F,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAC5B4sB,GADkCitE,YAQ/Ch5F,cAACwlB,GAAa,CAAArmB,SACZa,cAAC4rB,KAAI,CACHhb,WAAS,EACTF,UAAWkV,KAAWkG,oBACtBob,eAAe,SAAQ/nC,SAEvBa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC8vF,GAAY,CAACnpE,WAAS,EAACjB,QAASizE,EAAYlvF,KAAK,qBAKzD,ECzSQuvG,OAjBkB,CAC/B,CACEpjG,KAAM,gCACNxX,KAAM,eACNyX,OAAO,EACPC,UAAW9V,cAACy4G,GAAe,IAC3B/jG,WAAYqZ,GAAgB4D,0BAE9B,CACE/b,KAAM,0BACNxX,KAAM,SACNyX,OAAO,EACPC,UAAW9V,cAAC83G,GAAS,IACrBpjG,WAAYqZ,GAAgB4D,2BCFjBsnF,OAToCA,IAE/CxoG,eAACwoE,GAAW,CAACn5E,MAAM,YAAWX,SAAA,CAC5Ba,cAAC83F,GAAO,CAACxiF,MAAO4jG,KAChBl5G,cAACmV,EAAM,CAACG,MAAO4jG,GAAgB3jG,SAAS,wBCkE/B4jG,OAhEsDj6G,IAE9D,IAF+D,KACpE2M,GACD3M,EACC,MAAM,YAAEmS,GAAgBmD,IAElBmmE,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,UACRytD,SAAU,gBACV1xE,MAAO,MACP4xE,KAAMtvE,IAAmB,IAAlB,IAAEqnE,GAAUrnE,EACjB,OACEtE,GACAA,EAAY2D,SACV+Y,GAAgBsC,sCAIhBrwB,cAAC0hC,IAAI,CACHxrB,OAAO,SACPhB,GAAE,yBAAA7U,OAA2B28E,EAAImI,SAASlxC,eAAgB90C,SAE1Da,cAACq6F,KAAO,CAACvkF,UAAU,SAAS1B,MAAM,UAASjV,SACxC69E,EAAImI,SAASlxC,kBAKf+oC,EAAImI,SAASlxC,aAAa,GAGrC,CACE3c,OAAQ,MACRjkB,MAAO,MACP0xE,SAAU,OAEZ,CACEztD,OAAQ,UACRjkB,MAAO,MACP0xE,SAAU,iBAGd,IAGF,OACE/kF,cAAAyV,WAAA,CAAAtW,SACG0M,EAAKlO,OAAS,EACbqC,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAMA,EACN+uE,YAAY,EACZQ,iBAAiB,EACjB9K,MAAM,EACNwK,OAAK,IAGP96E,cAAC02E,KAAc,CAACtiE,MAAM,eAEvB,EChEP,MAAMzF,GAAe,gBAsENyqG,OApEU,CACvBC,qBAAsBA,CACpB1pE,EACA9yC,EACAgzC,IAEA5jC,EAAa,GAAD5L,OACPsO,GAAY,sBAAAtO,OAAqBsvC,EAAS1xC,cAAa,UAAAoC,OAASxD,GAAIwD,OACrEwvC,EAAM,OAAAxvC,OAAUwvC,EAAO5xC,eAAkB,KAG/Cq7G,yBAA0BA,CACxB3pE,EACAE,EACAhzC,EACA08G,EACAC,IAEAvtG,EAAa,GAAD5L,OACPsO,GAAY,0BAAAtO,OAAyBsvC,EAAS1xC,cAAa,UAAAoC,OAASxD,EAAI,QAAAwD,OAAOwvC,EAAO5xC,cAAa,YAAAoC,OAC9F,OAANk5G,QAAM,IAANA,IAAU,GAAE,aAAAl5G,OACK,OAAPm5G,QAAO,IAAPA,IAAW,KAE3BC,2BAA4BA,CAC1B9pE,EACAE,IAEA5jC,EAAa,GAAD5L,OACPsO,GAAY,4BAAAtO,OAA2BsvC,EAAS1xC,cAAa,QAAAoC,OAAOwvC,EAAO5xC,gBAElFy7G,gCAAiCA,CAC/BC,EACA1xG,IAEAgE,EAAa,GAAD5L,OACPsO,GAAY,6CAAAtO,OAA4Cs5G,EAAK,UAAAt5G,OAAS4H,IAE7E2xG,iCACEC,GAEA5tG,EAAc,GAAD5L,OACRsO,GAAY,2CACfkrG,GAEJC,qBAAsBA,CACpBH,EACA1xG,IAEAgE,EAAa,GAAD5L,OACPsO,GAAY,kCAAAtO,OAAiCs5G,EAAK,UAAAt5G,OAAS4H,IAElE8xG,sBAAwBF,GACtB5tG,EAAc,GAAD5L,OAAIsO,GAAY,gCAAgCkrG,GAC/DG,gBACEC,GAEOhuG,EAAc,GAAD5L,OAAIsO,GAAY,iBAAiBsrG,GAEvDC,mBAAqBD,GACZhuG,EAAc,GAAD5L,OAAIsO,GAAY,wBAAwBsrG,EAAc,CACxE/mE,aAAc,SAGlB80B,aAAcA,IACZ/7D,EAAa,GAAD5L,OAAIsO,GAAY,eAC9BwrG,cAAeA,IACbluG,EAAa,GAAD5L,OAAIsO,GAAY,iBC5D3ByrG,GAAW,SAAXA,GAAW,OAAXA,EAAW,UAAXA,EAAW,QAAXA,EAAW,UAAXA,CAAW,EAAXA,IAAW,IAoBhB,MAKMnrE,GAAe,CACnBpjC,KAAM,GACNwuG,aAAc,GACdptC,WAAW,EACX07B,WAAW,EACXW,gBAV6B,CAC7B35D,SAAU,KACVE,OAAQ,KACR6/D,YAAa0K,GAAYE,MA0OZC,OAhO+BA,KAAO,IAADC,EAAAC,EAAAC,EAClD,MAAOh9F,EAAOi9F,GAAYlpG,mBAAiCw9B,IACrDtX,EAAajB,MACb,WAAEvd,GAAeQ,KAEjB+sE,EAAeA,KACf8iB,IACFmR,EAAS,IAAKj9F,EAAOuvD,WAAW,IAChCmsC,GAAiBK,2BACf/7F,EAAM4rF,gBAAgB35D,SAAUE,SAChCnyB,EAAM4rF,gBAAgBz5D,OAAQA,UAE7BllC,MAAMkB,IACL8uG,EAAS,IACJj9F,EACHuvD,WAAW,EACXphE,KAAMA,EACNwuG,aAAcxuG,EACd88F,WAAW,EACXW,gBAAiB,IACZ5rF,EAAM4rF,gBACToG,YAAa0K,GAAYE,MAE3B,IAEHx3G,OAAOlB,IACN+4G,EAAS,IAAKj9F,EAAOuvD,WAAW,EAAO07B,WAAW,IAClDxvF,EAAWvX,EAAMpC,QAAQ,IAE/B,EAGIgqG,EAC+B,OAAnC9rF,EAAM4rF,gBAAgB35D,UACW,OAAjCjyB,EAAM4rF,gBAAgBz5D,QACtBnyB,EAAM4rF,gBAAgB35D,SAAWjyB,EAAM4rF,gBAAgBz5D,OAEnD45D,EAAa3+F,GACjBA,GAAKA,EAAE4hB,UAAYogB,KAAOhiC,EAAE+kC,UAAUyD,QAAQ,OAAiB,KAE3DyxD,EAAkBj6F,IACR,UAAVA,EAAEhN,KAAmB0rG,GACvB9iB,GACF,EAGIk0B,EAAUl9F,EAAM28F,aAAav8E,QACjC,CAACC,EAAKC,IACJD,GACCC,EAAK0xE,cAAgB0K,GAAYS,IAClC78E,EAAK0xE,cAAgB0K,GAAYE,IAC7Bt8E,EAAK83C,IACL,IACN,GAGIglC,EAAWp9F,EAAM28F,aAAav8E,QAClC,CAACC,EAAKC,IACJD,GACCC,EAAK0xE,cAAgB0K,GAAYW,KAClC/8E,EAAK0xE,cAAgB0K,GAAYE,IAC7Bt8E,EAAK83C,IACL,IACN,GAGF,OACE91E,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,qBAAoBX,SAAA,CACrCa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAYhU,SACzCsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,YAAWrnB,SACtCa,cAAC4lF,GAAU,CACT3uE,GAAG,6BACH8vE,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZyL,OAAO,OACPhV,KAAK,WACL7B,MAAsC,QAAjCi+G,EAAuB,QAAvBC,EAAE/8F,EAAM4rF,uBAAe,IAAAmR,OAAA,EAArBA,EAAuB9qE,gBAAQ,IAAA6qE,IAAI,KAC1C1zB,UAAWie,EACX96E,SAAWnf,IACT6vG,EAAS,IACJj9F,EACHirF,WAAW,EACXW,gBAAiB,IACZ5rF,EAAM4rF,gBACT35D,SAAU85D,EAAU3+F,IAEtBe,KAAM,IACN,QAKV7L,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,UAASrnB,SACpCa,cAAC4lF,GAAU,CACT3uE,GAAG,2BACH8vE,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZyL,OAAO,OACPhV,KAAK,SACL4H,QACqC,OAAnC0X,EAAM4rF,gBAAgB35D,SAClB,KACA7C,KAAOpvB,EAAM4rF,gBAAgB35D,UAC1B4D,IAAI,EAAG,OACP1D,SAETtzC,MAAmC,QAA9Bm+G,EAAEh9F,EAAM4rF,gBAAgBz5D,cAAM,IAAA6qE,IAAI,KACvC5zB,UAAWie,EACX96E,SAAWnf,IACT6vG,EAAS,IACJj9F,EACHirF,WAAW,EACXW,gBAAiB,IACZ5rF,EAAM4rF,gBACTz5D,OAAQ45D,EAAU3+F,IAEpBe,KAAM,IACN,QAKV7L,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACwmF,GAAY,CACXvvE,GAAG,kCACHgR,UAAWuhF,EACX9jF,QAASghE,EACTzzE,MACE0kB,EAAWR,KACP,CAAEkD,UAAW,QACb,CAAEhmB,aAAc,QACrBlV,SACF,8BAONue,EAAMuvD,UACLjtE,cAAC02E,KAAc,CAACtiE,MAAM,cACpBsJ,EAAM7R,MAA8B,IAAtB6R,EAAM7R,KAAKlO,OAC3B+f,EAAMirF,UACJ3oG,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,MAGX74E,cAAAyV,WAAA,IAGFhF,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACqI,KAAG,CAAA3Z,SAAA,CACFa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,gBAE9Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAAC8+E,GAAM,CACL1gF,KAAK,cACL6Y,GAAG,gCACHuP,MAAM,UACNvV,QAAQ,WACR8W,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO69G,GAAYE,KACnC,CAAE9zF,MAAO,KAAMjqB,MAAO69G,GAAYS,IAClC,CAAEr0F,MAAO,MAAOjqB,MAAO69G,GAAYW,MAErCx+G,MAAOmhB,EAAM4rF,gBAAgBoG,YAC7BzlF,SAAWnf,IACT,MAAMkwG,EAAUlwG,EAAEoL,OAAO3Z,MACzBo+G,EAAS,IACJj9F,EACH4rF,gBAAiB,IACZ5rF,EAAM4rF,gBACToG,YAAasL,GAEfX,aAAc38F,EAAM7R,KAAKs1B,QACtBpV,GACCivF,IAAYZ,GAAYE,KACxBvuF,EAAK2jF,cAAgBsL,KAEzB,MAIRh7G,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAGniB,GAAI,EAAEvsB,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAEhoC,SAAA,CACxBy7G,EAAU,GACT56G,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRsR,eAACqI,KAAG,CAAA3Z,SAAA,CACFa,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAAC,6BAGhCsR,eAACO,IAAU,CAACC,QAAQ,YAAW9R,SAAA,CAAC,IAAEy7G,UAIvCE,EAAW,GACV96G,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRsR,eAACqI,KAAG,CAAA3Z,SAAA,CACFa,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAAC,8BAGhCsR,eAACO,IAAU,CAACC,QAAQ,YAAW9R,SAAA,CAAC,IAAE27G,kBAQ9C96G,cAACi7G,GAAqB,CAACpvG,KAAM6R,EAAM28F,sBAIxC,E,qBC7GQa,OA3IkDh8G,IAK1D,IAL2D,KAChE2M,EAAI,eACJy9D,EAAc,KACdzsE,EAAI,gBACJs+G,GACDj8G,EACC,MAAM,YAAEmS,GAAgBmD,IAClB4mG,EAAmB/pG,EAAY2D,SACnC+Y,GAAgBgD,gCAEZ4pD,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,OACRjkB,MAAO,MACP4xE,KAAMtvE,IAAA,IAAA0lG,EAAA,IAAC,IAAEr+B,GAAUrnE,EAAA,OACjB3V,cAAC4nF,GAAQ,CAAChgF,KAAsB,QAAlByzG,EAAEr+B,EAAImI,SAASxqC,WAAG,IAAA0gE,IAAI,KAAMzrE,OAAO,aAAc,GAGnE,CACEtY,OAAQ,gBACRjkB,MAAO,MACP4xE,KAAMvF,IAAmB,IAAlB,IAAE1C,GAAU0C,EACjB,MAAM,SAAEzyC,EAAQ,QAAE+hD,GAAY8K,GAAyB,CACrDt/C,WAAYwiC,EAAImI,SAAS3qC,WACzBhI,WAAY1F,KAAOkwC,EAAImI,SAASxqC,KAAKrH,QAAQ,OAAOzD,WAEtD,OACE7vC,cAAAyV,WAAA,CAAAtW,SACG6vF,EACChvF,cAACy1F,KAAU,CAAC/vE,QAASunB,EAAS9tC,SAC5Ba,cAAC0hC,KAAI,CAAAviC,SACHa,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAAS3qC,iBAKpBx6C,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAAS3qC,cAGjB,GAIT,CACEljB,OAAQ,UACRytD,SAAU,gBACV1xE,MAAO,MACP4xE,KAAMyQ,IAAmB,IAAlB,IAAE1Y,GAAU0Y,EACjB,MAAM,SAAEzoD,EAAQ,QAAE+hD,GAAYH,GAC5B,IAAK7R,EAAImI,WACT,EACA7b,EACAslB,GAA0B0sB,iBAE5B,OACEt7G,cAAAyV,WAAA,CAAAtW,SACG6vF,EACChvF,cAACy1F,KAAU,CAAC/vE,QAASunB,EAAS9tC,SAC5Ba,cAAC0hC,KAAI,CAAAviC,SACHa,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASlxC,oBAKpBj0C,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASlxC,iBAGjB,GAIT,CACE3c,OAAQ,MACRjkB,MAAO,MACP4xE,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjBplF,eAAA,QAAMwC,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAA,CACpC69E,EAAImI,SAASxkF,OAAO,MAAIq8E,EAAImI,SAAStyB,cACjC,GAGX,CACEv7B,OAAQ,WACRjkB,MAAO,MACP4xE,KAAM6Q,IAAA,IAAC,IAAE9Y,GAAU8Y,EAAA,OACjBrlF,eAAA,QAAMwC,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAA,CACpC69E,EAAImI,SAAS5yE,UAAU,IAAEyqE,EAAImI,SAAS7yE,WAClC,GAGX,CACEglB,OAAQ,QACRjkB,MAAO,MACP4xE,KAAMiR,IAAA,IAAC,IAAElZ,GAAUkZ,EAAA,OACjBl2F,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAE69E,EAAImI,SAAS8W,OAAa,GAGvE,CACE3kE,OAAQ,WACRjkB,MAAO,MACP4xE,KAAMkR,IAAmB,IAAlB,IAAEnZ,GAAUmZ,EACjB,MAAM,sBAAEpM,GAA0BJ,GAAW,CAC3C7pF,MAAOjD,EACPN,MAAOygF,EAAImI,SAAStlC,QACpB+pC,eAAgBj5E,KAAOgoB,WACvBkxD,gBAAgB,EAChBjtF,KAAM,GACNwqB,UAAWg0F,EACX3xB,OAAS5pC,IACPs7D,EAAgB,CACdlnE,cAAe+oC,EAAImI,SAASlxC,cAC5B6nB,WAAYkhB,EAAImI,SAASrpB,WACzBpoB,SAAUspC,EAAImI,SAASzxC,SACvBmM,QAASA,GACT,IAGN,OAAO7/C,cAAC+pF,EAAqB,GAAG,KAItC,IAGF,OACE/pF,cAAAyV,WAAA,CAAAtW,SACG0M,EAAKlO,OAAS,EACbqC,cAAC6zE,GAAK,CAAC8G,QAASA,EAAS9uE,KAAMA,EAAM+uE,YAAY,EAAME,OAAK,IAE5D96E,cAAC02E,KAAc,CAACtiE,MAAM,eAEvB,ECpIFmnG,GAAU,SAAVA,GAAU,OAAVA,EAAU,iBAAVA,EAAU,6BAAVA,CAAU,EAAVA,IAAU,IAqBf,MAKMtsE,GAAe,CACnBpjC,KAAM,GACNohE,WAAW,EACX07B,WAAW,EACXW,gBAT6B,CAC7B35D,SAAU,KACVE,OAAQ,KACR2rE,WAAYD,GAAWE,SAOvBnyC,eAAgB,IAoPHoyC,OAjP6BA,KAAO,IAADlB,EAAAC,EAAAC,EAChD,MAAOh9F,EAAOi9F,GAAYlpG,mBAA+Bw9B,IACnDtX,EAAajB,MACb,WAAEvd,GAAeQ,KAEvB7G,qBAAU,KACRggC,GAAmBqC,oBAChBxqC,MAAMqpC,GAAY2mE,EAAS,IAAKj9F,EAAO4rD,eAAgBt1B,MACvDlxC,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,GAC7C,IAEH,MAAMknF,EAAeA,KACf8iB,IACFmR,EAAS,IAAKj9F,EAAOuvD,WAAW,IAChCmsC,GAAiBE,yBACf57F,EAAM4rF,gBAAgB35D,SAAUE,SAChCnyB,EAAM4rF,gBAAgBz5D,OAAQA,SAC9BnyB,EAAM4rF,gBAAgBkS,WACtB99F,EAAM4rF,gBAAgBiQ,OACtB77F,EAAM4rF,gBAAgBkQ,SAErB7uG,MAAMkB,IACL8uG,EAAS,IAAKj9F,EAAOuvD,WAAW,EAAOphE,KAAMA,EAAM88F,WAAW,GAAO,IAEtE7lG,OAAOlB,IACN+4G,EAAS,IAAKj9F,EAAOuvD,WAAW,EAAO07B,WAAW,IAClDxvF,EAAWvX,EAAMpC,QAAQ,IAE/B,EA2BIgqG,EAC+B,OAAnC9rF,EAAM4rF,gBAAgB35D,UACW,OAAjCjyB,EAAM4rF,gBAAgBz5D,QACtBnyB,EAAM4rF,gBAAgB35D,SAAWjyB,EAAM4rF,gBAAgBz5D,OAEnD45D,EAAa3+F,GACjBA,GAAKA,EAAE4hB,UAAYogB,KAAOhiC,EAAE+kC,UAAUyD,QAAQ,OAAiB,KAE3DyxD,EAAkBj6F,IACR,UAAVA,EAAEhN,KAAmB0rG,GACvB9iB,GACF,EAEF,OACE1mF,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,sBAAqBX,SAAA,CACtCa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAYhU,SACzCsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,YAAWrnB,SACtCa,cAAC4lF,GAAU,CACT3uE,GAAG,2BACH8vE,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZyL,OAAO,OACPhV,KAAK,WACL7B,MAAsC,QAAjCi+G,EAAuB,QAAvBC,EAAE/8F,EAAM4rF,uBAAe,IAAAmR,OAAA,EAArBA,EAAuB9qE,gBAAQ,IAAA6qE,IAAI,KAC1C1zB,UAAWie,EACX96E,SAAWnf,IACT6vG,EAAS,IACJj9F,EACHirF,WAAW,EACXW,gBAAiB,IACZ5rF,EAAM4rF,gBACT35D,SAAU85D,EAAU3+F,IAEtBe,KAAM,IACN,QAKV7L,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,UAASrnB,SACpCa,cAAC4lF,GAAU,CACT3uE,GAAG,yBACH8vE,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZyL,OAAO,OACPhV,KAAK,SACL4H,QACqC,OAAnC0X,EAAM4rF,gBAAgB35D,SAClB,KACA7C,KAAOpvB,EAAM4rF,gBAAgB35D,UAC1B4D,IAAI,EAAG,OACP1D,SAETtzC,MAAmC,QAA9Bm+G,EAAEh9F,EAAM4rF,gBAAgBz5D,cAAM,IAAA6qE,IAAI,KACvC5zB,UAAWie,EACX96E,SAAWnf,IACT6vG,EAAS,IACJj9F,EACHirF,WAAW,EACXW,gBAAiB,IACZ5rF,EAAM4rF,gBACTz5D,OAAQ45D,EAAU3+F,IAEpBe,KAAM,IACN,QAKV7L,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,SAAQrnB,SACnCa,cAACmnB,GAAS,CACRlQ,GAAG,yBACHtP,YAAY,MACZyL,OAAO,OACPhV,KAAK,SACL7B,MAAOmhB,EAAM4rF,gBAAgBiQ,OAC7BtvF,SAAWnf,GACT6vG,EAAS,IACJj9F,EACHirF,WAAW,EACXW,gBAAiB,IACZ5rF,EAAM4rF,gBACTiQ,OAAQzuG,EAAEoL,OAAO3Z,OAEnBsP,KAAM,WAMhB7L,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,UAASrnB,SACpCa,cAACmnB,GAAS,CACRlQ,GAAG,0BACHtP,YAAY,MACZyL,OAAO,OACPhV,KAAK,UACL7B,MAAOmhB,EAAM4rF,gBAAgBkQ,QAC7BvvF,SAAWnf,GACT6vG,EAAS,IACJj9F,EACHirF,WAAW,EACXW,gBAAiB,IACZ5rF,EAAM4rF,gBACTkQ,QAAS1uG,EAAEoL,OAAO3Z,OAEpBsP,KAAM,WAMhB7L,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,OAAMrnB,SACjCa,cAAC8nB,GAAa,CACZ1pB,KAAK,6BACLxB,KAAK,QACLmrB,QAAS,CACP,CAAEvB,MAAO,UAAWjqB,MAAOg/G,GAAWE,SACtC,CAAEj1F,MAAO,gBAAiBjqB,MAAOg/G,GAAWI,gBAE9Cp/G,MAAOmhB,EAAM4rF,gBAAgBkS,WAC7BvxF,SAAUA,CAACnf,EAAGvO,IACZo+G,EAAS,IACJj9F,EACHirF,WAAW,EACXW,gBAAiB,IACZ5rF,EAAM4rF,gBACTkS,WAAYj/G,GAEdsP,KAAM,WAMhB7L,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACwmF,GAAY,CACXvvE,GAAG,gCACHgR,UAAWuhF,EACX9jF,QAASghE,EACTzzE,MACE0kB,EAAWR,KACP,CAAEkD,UAAW,QACb,CAAEhmB,aAAc,QACrBlV,SACF,4BAMNue,EAAMuvD,UACLjtE,cAAC02E,KAAc,CAACtiE,MAAM,cACpBsJ,EAAM7R,MAA8B,IAAtB6R,EAAM7R,KAAKlO,OAC3B+f,EAAMirF,UACJ3oG,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,MAGX74E,cAAAyV,WAAA,IAGFzV,cAACk7G,GAAmB,CAClB5xC,eAAgB5rD,EAAM4rD,eACtBz9D,KAAM6R,EAAM7R,KACZhP,KACE6gB,EAAM4rF,gBAAgBkS,aAAeD,GAAWE,QAC5C,UACA,gBAENN,gBA1MmBt7D,IAC3BiQ,GAAiB/f,cAAc8P,GAC5Bl1C,MAAM4gB,IACL,GAAIA,EAAQ,CACVpS,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAE7D,IAAIyjG,EAAW7oG,IAAE8nC,UAAUn9B,EAAM7R,MACjC+vG,EAASh+G,SAAS+1B,IAEdA,EAAE+f,WAAamM,EAAQnM,UACvB/f,EAAEsgB,gBAAkB4L,EAAQ5L,gBAE5BtgB,EAAEksB,QAAUA,EAAQA,QACtB,IAEF86D,EAAS,IAAKj9F,EAAO7R,KAAM+vG,GAC7B,MACEziG,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WACtC,IAEDpC,OAAM,KACLqW,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WAAW,GAC/C,QAwLD,E,UCnIQ22G,OA5JoB38G,IAAmB,OAAb6V,GAAO7V,EAC9C,MAAM,SACJsG,EAAQ,MACRghB,EAAK,KACLpoB,EAAI,SACJ6rB,EAAQ,OACRmhE,EAAM,MACN7uF,EAAK,QACLwrB,EAAO,QACP9W,EAAU,WAAU,MACpBmD,EAAQ,UAAS,OACjBhB,EAAS,OAAM,UACfuT,GAAY,EAAI,aAChBO,EAAY,QACZJ,EAAO,qBACP+5D,KACGi7B,GACD/mG,EACEkC,EAAE,OAAA5W,OAAUjC,GACZ0iF,EAAa1vE,IAAM8L,OAAyB,OAC3C6jE,EAAYC,GAAiBvvE,mBAAS,IACtCsqG,EAAWC,GAAgBvqG,mBAAgB,KAC3CwqG,EAAeC,GAAoBzqG,mBAAmByV,GAE7DpU,qBAAU,KACRkuE,EAAcF,EAAW3jE,QAASid,YAAY,GAC7C,IAEHtnB,qBAAU,KACRvW,GAASy/G,EAAaz/G,EAAM,GAC3B,CAACA,IAEJ,MAMM4/G,EAAsB,OAAPr1F,QAAO,IAAPA,OAAO,EAAPA,EAASs1F,cAAch+G,GAI5C,OAHA0U,qBAAU,KACRopG,EAAiBC,EAAa,GAC7B,CAACA,IAEF1rG,eAAC8V,KAAW,CACVtV,QAASA,EACTmD,MAAOA,EACPuS,UAAWA,EACXvT,OAAQA,EACR1C,UAAWmwE,EAAqB1hF,SAAA,CAEhCa,cAACi4E,KAAU,CAACjhE,IAAK8pE,EAAW3hF,SAAEqnB,IAE7BM,EACC9mB,cAACgqB,KAAU,CACTo3D,GACEphF,cAACqoC,KAAS,CACRpxB,GAAIlC,EAAMkC,GAAKlC,EAAMkC,GAAK7Y,EAC1B2yF,UAAQ,EACRpqE,UAAWA,EACXo6D,WAAYA,EACZv7E,SAAUA,EACVwmB,WAAY,CACV5tB,OACA6Y,GAAG,SAAD5W,OAAW4W,IAEfgqE,UAAW,CACTE,mBAAoB,MAEtBk7B,YAAc13F,GACLA,EACJjP,KAAK0uF,IAAC,IAAAkY,EAAA,OAA4C,QAA5CA,EAAKv0F,EAAQrL,MAAM0xE,GAAWA,EAAE7xF,QAAU6nG,WAAE,IAAAkY,OAAA,EAAvCA,EAAyC91F,KAAK,IACzD8E,KAAK,SAGNwwF,EAAK38G,SAER4oB,EAAQrS,KAAKqW,GACZtb,eAACqqB,KAAQ,CAEPv+B,MAAOwvB,EAAKxvB,MAAM4C,SAAA,CAElBa,cAAC2hF,GAAQ,CACPD,QACEu6B,GAAiBA,EAAcjnG,SAAS+W,EAAKxvB,SAGjDyD,cAACm/B,KAAY,CAACC,QAASrT,EAAKvF,UAAS,GAAAnmB,OAR7B4W,EAAE,KAAA5W,OAAI0rB,EAAKxvB,MAAK,KAAA8D,OAAI0rB,EAAKvF,YAazCM,QAASA,EACTI,aAAcA,EACd9oB,KAAMA,EACNsnB,QAAUrI,IACR,GAAIA,EAAMnH,OAAO3Z,MAAO,CACtB,IAAIggH,EAA2Bl/F,EAAMnH,OAAO3Z,MACxC8iB,EACuB,GAAzBk9F,EAAe5+G,QACd4+G,EAAevnG,SAAS,SAAuB,OAAbinG,QAAa,IAAbA,OAAa,EAAbA,EAAet+G,QAAS,EACvD,CAAC,OACD4+G,EAAep7E,QAAQxN,GAAW,OAALA,IACnC7M,EAAQwhE,SAASlqF,EAAMihB,EACzB,CACA,OAAOhC,EAAMnH,OAAO3Z,KAAK,IAI7ByD,cAACqoC,KAAS,CACRpxB,GAAIlC,EAAMkC,GAAKlC,EAAMkC,GAAK7Y,EAC1B2yF,UAAQ,EACRpqE,UAAWA,EACXo6D,WAAYA,EACZ92D,SACEA,GAEK5M,IAAe2+F,EAAa3+F,EAAMnH,OAAO3Z,QAEhDA,MAAOw/G,EACPv2G,SAAUA,EACVwmB,WAAY,CACV5tB,OACA6Y,GAAG,SAAD5W,OAAW4W,IAEfgqE,UAAW,CACTu7B,SA7FWC,KACfrxB,GACFA,EAAO2wB,EACT,EA2FQ56B,mBAAoB,MAEtBk7B,YAAc13F,GACLA,EACJjP,KAAK0uF,IAAC,IAAAsY,EAAA,OAA4C,QAA5CA,EAAK30F,EAAQrL,MAAM0xE,GAAWA,EAAE7xF,QAAU6nG,WAAE,IAAAsY,OAAA,EAAvCA,EAAyCl2F,KAAK,IACzD8E,KAAK,SAGNwwF,EAAK38G,SAER4oB,EAAQrS,KAAKqW,GACZtb,eAACqqB,KAAQ,CAEPv+B,MAAOwvB,EAAKxvB,MAAM4C,SAAA,CAElBa,cAAC2hF,GAAQ,CACPD,QACEz3D,EACI1tB,EAAMyY,SAAS+W,EAAKxvB,OACpBw/G,EAAU/mG,SAAS+W,EAAKxvB,SAGhCyD,cAACm/B,KAAY,CAACC,QAASrT,EAAKvF,UAAS,GAAAnmB,OAV7B4W,EAAE,KAAA5W,OAAI0rB,EAAKxvB,MAAK,KAAA8D,OAAI0rB,EAAKvF,cAe7B,ECzEHm2F,OA3E0Cz9G,IAAe,IAAd,KAAEo2D,GAAMp2D,EAChE,MAAMi2F,EAA4B,OAAJ7/B,QAAI,IAAJA,OAAI,EAAJA,EAAMx3B,QAClC,CAACC,EAAiBC,IACTD,EAAIjZ,MAAMswE,GAAOA,EAAGt3F,MAAQkgC,EAAK4+E,gBACpC7+E,EACA,IACKA,EACH,CACEjgC,IAAKkgC,EAAK4+E,cACVvnB,UACiB,IAAft3D,EAAIpgC,SAAwBogC,EAAIA,EAAIpgC,OAAS,GAAG03F,aAI5D,IAGI1a,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,eACRytD,SAAU,aACV1xE,MAAO,MACP4xE,KAAMtvE,IAAA,IAAAknG,EAAA,IAAC,IAAE7/B,GAAUrnE,EAAA,OACjB3V,cAAC4nF,GAAQ,CAAChgF,KAA6B,QAAzBi1G,EAAE7/B,EAAImI,SAAS23B,kBAAU,IAAAD,IAAI,KAAMjtE,OAAO,aAAc,GAG1E,CACEtY,OAAQ,mBACRytD,SAAU,kBAEZ,CACEztD,OAAQ,WACRytD,SAAU,UACV1xE,MAAO,OAET,CACEikB,OAAQ,SACRytD,SAAU,SACV1xE,MAAO,SAGX,IAEF,OACE5C,eAACqI,KAAG,CAAC+0B,GAAI,EAAE1uC,SAAA,CACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,QACzBa,cAAC6zE,GAAK,CACJiH,OAAK,EACLH,QAASA,EACT9uE,KAAMypD,EACNgb,MAAI,EACJsK,YAAU,EACVC,aAAc,GACdG,YAAcgC,IAAS,IAAD+Z,EACpB,OACE5B,GAGC,QAHoB4B,EACrB5B,EAAsBz4E,MACnBiX,GAAMA,EAAE71B,MAAQk/E,EAAImI,SAASy3B,uBAC/B,IAAA7lB,GAFDA,EAEG1B,UAEI,CACL3kF,UAAU,GAADrQ,OAAKulB,KAAW2kE,yBAGpB,CACL75E,UAAU,GAADrQ,OAAKulB,KAAW0kE,eAE7B,MAGA,ECeKyyB,OAtFkD79G,IAE1D,IAF2D,UAChEg2D,GACDh2D,EACC,MAAMi2F,EAAiC,OAATjgC,QAAS,IAATA,OAAS,EAATA,EAAWp3B,QACvC,CAACC,EAAiBC,IACTD,EAAIjZ,MAAMswE,GAAOA,EAAGt3F,MAAQkgC,EAAKg/E,WACpCj/E,EACA,IACKA,EACH,CACEjgC,IAAKkgC,EAAKg/E,SACV3nB,UACiB,IAAft3D,EAAIpgC,SAAwBogC,EAAIA,EAAIpgC,OAAS,GAAG03F,aAI5D,IAGI1a,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,WACRytD,SAAU,WACV1xE,MAAO,OAET,CACEikB,OAAQ,YACRytD,SAAU,YAEZ,CACEztD,OAAQ,YACRytD,SAAU,aACV1xE,MAAO,MACP4xE,KAAMtvE,IAAA,IAAAszF,EAAA,IAAC,IAAEjsB,GAAUrnE,EAAA,OACjB3V,cAAC4nF,GAAQ,CAAChgF,KAA6B,QAAzBqhG,EAAEjsB,EAAImI,SAAS3yC,kBAAU,IAAAy2D,IAAI,KAAMr5D,OAAO,aAAc,GAG1E,CACEtY,OAAQ,SACRytD,SAAU,SACV1xE,MAAO,OAET,CACEikB,OAAQ,UACRytD,SAAU,UACV1xE,MAAO,OAET,CACEikB,OAAQ,SACRytD,SAAU,SACV1xE,MAAO,SAGX,IAEF,OACE5C,eAACqI,KAAG,CAAC+0B,GAAI,EAAE1uC,SAAA,CACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,cACzBa,cAAC6zE,GAAK,CACJiH,OAAK,EACLH,QAASA,EACT9uE,KAAMqpD,EACNob,MAAI,EACJsK,YAAU,EACVC,aAAc,GACdG,YAAcgC,IAAS,IAAD+Z,EACpB,OACE5B,GACkE,QAD7C4B,EACrB5B,EAAsBz4E,MAAMiX,GAAMA,EAAE71B,MAAQk/E,EAAImI,SAAS63B,kBAAS,IAAAjmB,GAAlEA,EACI1B,UAEG,CACL3kF,UAAU,GAADrQ,OAAKulB,KAAW2kE,yBAGpB,CACL75E,UAAU,GAADrQ,OAAKulB,KAAW0kE,eAE7B,MAGA,ECRK2yB,OA1E8C/9G,IAAiB,IAAhB,OAAEq2D,GAAQr2D,EACtE,MAAMi2F,EAA8B,OAAN5/B,QAAM,IAANA,OAAM,EAANA,EAAQz3B,QACpC,CAACC,EAAiBC,IACTD,EAAIjZ,MAAMswE,GAAOA,EAAGt3F,MAAQkgC,EAAKk/E,YACpCn/E,EACA,IACKA,EACH,CACEjgC,IAAKkgC,EAAKk/E,UACV7nB,UACiB,IAAft3D,EAAIpgC,SAAwBogC,EAAIA,EAAIpgC,OAAS,GAAG03F,aAI5D,IAGI1a,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,WACRytD,SAAU,UACV1xE,MAAO,MACP4xE,KAAMtvE,IAAA,IAAAwnG,EAAA,IAAC,IAAEngC,GAAUrnE,EAAA,OACjB3V,cAAC4nF,GAAQ,CAAChgF,KAA0B,QAAtBu1G,EAAEngC,EAAImI,SAASi4B,eAAO,IAAAD,IAAI,KAAMvtE,OAAO,aAAc,GAGvE,CACEtY,OAAQ,OACRytD,SAAU,QAEZ,CACEztD,OAAQ,YACRytD,SAAU,WACV1xE,MAAO,OAET,CACEikB,OAAQ,SACRytD,SAAU,SACV1xE,MAAO,SAGX,IAEF,OACE5C,eAACqI,KAAG,CAAC+0B,GAAI,EAAE1uC,SAAA,CACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,UACzBa,cAAC6zE,GAAK,CACJiH,OAAK,EACLH,QAASA,EACT9uE,KAAM0pD,EACN+a,MAAI,EACJsK,YAAU,EACVC,aAAc,GACdG,YAAcgC,IAAS,IAAD+Z,EACpB,OACE5B,GACmE,QAD9C4B,EACrB5B,EAAsBz4E,MAAMiX,GAAMA,EAAE71B,MAAQk/E,EAAImI,SAAS+3B,mBAAU,IAAAnmB,GAAnEA,EACI1B,UAEG,CACL3kF,UAAU,GAADrQ,OAAKulB,KAAW2kE,yBAGpB,CACL75E,UAAU,GAADrQ,OAAKulB,KAAW0kE,eAE7B,MAGA,EC0BK+yB,OAvFgDn+G,IAIxD,IAADo+G,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAJ0D,aAC9DC,EAAY,UACZrzF,EAAS,QACTC,GACDzrB,EACC,OACEc,cAAAyV,WAAA,CAAAtW,SACEa,cAAAyV,WAAA,CAAAtW,SACEsR,eAAC4U,GAAM,CACLzM,KAAM8R,EACNC,QAASA,IAAMA,IACfqzF,WAAY,CAAE/qG,MAAO,CAAEI,MAAO,QAAUlU,SAAA,CAExCa,cAACkmB,GAAW,CAAA/mB,SAAA,8BAAAkB,OAAuD,QAAvDi9G,EAAgCS,EAAa5iB,QAAQ,UAAE,IAAAmiB,OAAA,EAAvBA,EAAyBrpE,iBACrExjC,eAACqV,GAAa,CAAA3mB,SAAA,CACZa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkzE,cAAc35F,SAClDsR,eAACmb,KAAI,CAACG,MAAI,EAACnb,WAAS,EAAC+lB,GAAI,GAAIjmB,UAAWkV,KAAWmzE,YAAY55F,SAAA,CAC7Da,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,YACNjqB,MAA8B,QAAzBghH,EAAEQ,EAAa5iB,QAAQ,UAAE,IAAAoiB,OAAA,EAAvBA,EAAyB32C,aAGpC5mE,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,WACNjqB,MAA8B,QAAzBihH,EAAEO,EAAa5iB,QAAQ,UAAE,IAAAqiB,OAAA,EAAvBA,EAAyBS,cAGZ,QAAvBR,EAAAM,EAAa5iB,QAAQ,UAAE,IAAAsiB,GAAvBA,EAAyB/1D,UACxB1nD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,SACNjqB,MAAO2G,EAAU8F,OAAOC,YAI5BjJ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,SACNjqB,MAA8B,QAAzBmhH,EAAEK,EAAa5iB,QAAQ,UAAE,IAAAuiB,OAAA,EAAvBA,EAAyB10G,iBAMnB,QAAtB20G,EAAAI,EAAa7oD,iBAAS,IAAAyoD,OAAA,EAAtBA,EAAwBhgH,QAAS,GAChCqC,cAAC+8G,GAAmB,CAAC7nD,UAAW6oD,EAAa7oD,aAEtB,QAAxB0oD,EAAAG,EAAavoD,mBAAW,IAAAooD,OAAA,EAAxBA,EAA0BjgH,QAAS,GAClCqC,cAACk+G,GAAsB,CAAC1oD,YAAauoD,EAAavoD,eAEhC,QAAnBqoD,EAAAE,EAAaxoD,cAAM,IAAAsoD,OAAA,EAAnBA,EAAqBlgH,QAAS,GAC7BqC,cAACi9G,GAAiB,CAAC1nD,OAAQwoD,EAAaxoD,UAExB,QAAjBuoD,EAAAC,EAAazoD,YAAI,IAAAwoD,OAAA,EAAjBA,EAAmBngH,QAAS,GAC3BqC,cAAC28G,GAAe,CAACrnD,KAAMyoD,EAAazoD,UAGxCt1D,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CACjBkB,WAAS,EACTjB,QAASA,KACPiF,GAAS,MAIf3qB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC8vF,GAAY,CACXnpE,WAAS,EACT1P,GAAG,uBACHyO,QAASA,KACPiF,GAAS,EAEXlhB,KAAK,uBAOhB,ECRQy0G,OApFwDh/G,IAEhE,IAFiE,YACtEs2D,GACDt2D,EACC,MAAMi2F,EAAmC,OAAX3/B,QAAW,IAAXA,OAAW,EAAXA,EAAa13B,QACzC,CAACC,EAAiBC,IACTD,EAAIjZ,MAAMswE,GAAOA,EAAGt3F,MAAQkgC,EAAK2gD,SACpC5gD,EACA,IACKA,EACH,CACEjgC,IAAKkgC,EAAK2gD,OACV0W,UACiB,IAAft3D,EAAIpgC,SAAwBogC,EAAIA,EAAIpgC,OAAS,GAAG03F,aAI5D,IAGI1a,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,YACRytD,SAAU,gBACV1xE,MAAO,MACP4xE,KAAMtvE,IAAA,IAAAwoG,EAAA,IAAC,IAAEnhC,GAAUrnE,EAAA,OACjB3V,cAAC4nF,GAAQ,CACPhgF,KAAgC,QAA5Bu2G,EAAEnhC,EAAImI,SAASrxC,qBAAa,IAAAqqE,IAAI,KACpCvuE,OAAO,aACP,GAGN,CACEtY,OAAQ,OACRytD,SAAU,OACV1xE,MAAO,OAET,CACEikB,OAAQ,SACRytD,SAAU,SACV1xE,MAAO,OAET,CACEikB,OAAQ,UACRytD,SAAU,WAEZ,CACEztD,OAAQ,SACRytD,SAAU,SACV1xE,MAAO,SAGX,IAEF,OACE5C,eAACqI,KAAG,CAAC+0B,GAAI,EAAE1uC,SAAA,CACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,8BACzBa,cAAC6zE,GAAK,CACJiH,OAAK,EACLH,QAASA,EACT9uE,KAAM2pD,EACN8a,MAAI,EACJsK,YAAU,EACVC,aAAc,GACdG,YAAcgC,IAAS,IAAD+Z,EACpB,OACE5B,GACgE,QAD3C4B,EACrB5B,EAAsBz4E,MAAMiX,GAAMA,EAAE71B,MAAQk/E,EAAImI,SAASxG,gBAAO,IAAAoY,GAAhEA,EACI1B,UAEG,CACL3kF,UAAU,GAADrQ,OAAKulB,KAAW2kE,yBAGpB,CACL75E,UAAU,GAADrQ,OAAKulB,KAAW0kE,eAE7B,MAGA,EC/BH,MAAM8zB,GAAyBh0F,OAAaC,MAAM,CACvDg0F,cAAej0F,OAEZolE,WACAie,KAAK,mBAAmB,CAAC99D,EAAuBlrB,IAC/CkrB,EAAWlrB,EAAO/e,IAAIiqC,EAAU,IAAMlrB,MAgtB7B65F,OA5sBoBA,KAAO,IAADC,EAAAC,EAAAC,EAAAC,EACvC,MAAMn6B,EAAc/vE,KACby4D,EAAWktB,GAAgB1oF,oBAAS,IACpCinG,EAAmBC,GAAwBlnG,mBAAiB,KAC5DktG,EAAkBC,GAAuBntG,mBAAiB,SAC1DotG,EAAaC,GAAkBrtG,mBAA8B,CAClEk+B,SAAU,KACVE,OAAQ,KACRkvE,gBAAiB,KACjBV,cAAe,QAEVW,EAAoBC,GAAyBxtG,oBAAS,IACtD5F,EAAMg9F,GAAWp3F,mBAA+B,OAEhDghD,EAAWysD,GAAgBztG,mBAAsB,KACjD0tG,EAAYC,GAAiB3tG,mBAAsB,KACpD,WAAE0H,GAAeQ,MAErBgzB,UAAW2sD,EACX1sD,UAAW+rD,EACXjuE,UAAWguE,GACTjsD,MACG4yE,EAAgBC,GAAqB7tG,sBACrC8tG,EAAMC,GAAW/tG,mBAAS,KAC1BguG,EAA0BC,GAC/BjuG,oBAAS,GAULoZ,EAAOC,aAAiC,CAC5CG,KAAM,WACNF,SAAUC,aAAYozF,IACtBvpB,cAX4C,CAC5CllD,SAAU,KACVE,OAAQ,KACR8vE,SAAU,CAAC,OACXZ,gBAAiB,KACjBV,cAAe,KACf1zC,SAAU,QA4BZ73D,qBAAU,KACRo8C,GAAW,GACV,IAEHp8C,qBAAU,KACRmsG,GAzBwBW,MAAO,IAADhH,EAC9B,MAAM,SAAEjpE,EAAQ,OAAEE,EAAM,gBAAEkvE,EAAe,cAAEV,GAAkBQ,EACvDgB,EACO,OAAXhwE,GACCA,EAAOnjB,YACQ,OAAbijB,GAAqBE,EAAOwoE,cAAc1oE,IACzCmwE,EACc,OAAlBzB,GACCA,EAAc3xF,YACQ,OAApBqyF,GACCV,EAAchG,cAAc0G,IAClC,OACEc,GACAC,KACyB,QAAxBlH,EAAAF,EAAkBprE,cAAM,IAAAsrE,OAAA,EAAxBA,EAA0Bj7G,QAAS,IAC1B,OAARgyC,QAAQ,IAARA,OAAQ,EAARA,EAAUjjB,aACK,OAAfqyF,QAAe,IAAfA,OAAe,EAAfA,EAAiBryF,WAAU,EASRkzF,GAAoB,GAC1C,CAAClH,EAAmBmG,IAEvB/rG,qBAAU,KAEN4sG,EADuB,SAArBf,EAIJ,GACC,CAACA,IACJ,MAAMzvD,EAAYA,KAChBirC,GAAa,GACbl4F,QAAQsa,IAAI,CACV68F,GAAiBpxC,eACjBoxC,GAAiBe,kBAEhBxvG,MAAKzL,IAA8B,IAA5BuzD,EAAW0sD,GAAWjgH,EAC5BggH,EAAazsD,GACb2sD,EAAcD,EAAW,IAE1Br8G,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAClCqT,SAAQ,IAAMsnF,GAAa,IAAO,EAejC4lB,EAAcA,KAA4B,IAADC,EACzCr7F,EAASkG,EAAKnG,YACduvB,EACFykE,EAAkB/6G,OAAS,EAAI+tF,SAASgtB,GAAqB,EAiB/D,MAfwC,IACnC/zF,EACHsvB,cAAeA,EACftE,SAAUkvE,EAAYlvE,SACtBE,OAAQgvE,EAAYhvE,OACpB8uE,iBAAkBA,EAClB/2C,WAA2B,QAAjBo4C,EAAEr7F,EAAOgmD,gBAAQ,IAAAq1C,OAAA,EAAfA,EAAiBzjH,MAC7B0jH,WACEt7F,EAAOs7F,YAAct7F,EAAOs7F,WAAWtiH,OAAS,EAC5C+tF,SAAS/mE,EAAOs7F,YAChB,EACNlB,gBAAiBF,EAAYE,gBAC7BV,cAAeQ,EAAYR,cAGV,EAEf6B,EAAiBA,KAChBlB,IACH7kB,GAAa,GAEbif,GAAiBY,gBAAgB+F,KAC9Bp1G,MAAM4gB,IAAY,IAAD40F,EAChBtX,EAAQt9E,GACRi0F,EAAqB,QAAdW,EAACC,QAAKx2G,gBAAQ,IAAAu2G,OAAA,EAAbA,EAAe3gG,WAAW,IAEnC1c,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAClCqT,SAAQ,IAAMsnF,GAAa,KAChC,EASIhF,EAA4B,OAAJtpF,QAAI,IAAJA,GAAa,QAAT0yG,EAAJ1yG,EAAMsvF,eAAO,IAAAojB,OAAT,EAAJA,EAAezgF,QAC3C,CAACC,EAAiBC,IACTD,EAAIjZ,MAAMswE,GAAOA,EAAGnhD,gBAAkBjW,EAAKiW,gBAC9ClW,EACA,IACKA,EACH,CACEkW,cAAejW,EAAKiW,cACpBohD,UACiB,IAAft3D,EAAIpgC,SAAwBogC,EAAIA,EAAIpgC,OAAS,GAAG03F,aAI5D,IAyCI1a,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,UACRytD,SAAU,gBACV1xE,MAAO,KACP4xE,KAAMtvE,IAAmB,IAAlB,IAAEqnE,GAAUrnE,EACjB,OACE4uE,GACAA,EAAYlzE,YAAY2D,SACtB+Y,GAAgBsC,sCAIhBrwB,cAAC0hC,IAAI,CACHxrB,OAAO,SACPhB,GAAE,yBAAA7U,OAA2B28E,EAAImI,SAASlxC,eAAgB90C,SAE1Da,cAACq6F,KAAO,CAACvkF,UAAU,SAAS1B,MAAM,UAASjV,SACxC69E,EAAImI,SAASlxC,kBAKf+oC,EAAImI,SAASlxC,aAAa,GAGrC,CACE3c,OAAQ,SACRytD,SAAU,SACV1xE,MAAO,MACP4xE,KAAMvF,IAAmB,IAAD2gC,EAAA,IAAjB,IAAErjC,GAAU0C,EACjB,OACE7zE,GAGC,QAHGw0G,EACJx0G,EAAKsvF,QAAQz+E,MACViX,GAAMA,EAAEsgB,eAAiB+oC,EAAImI,SAASlxC,uBACxC,IAAAosE,GAFDA,EAEG34D,UAEIxkD,EAAU8F,OAAOC,QAEnB+zE,EAAImI,SAASn8E,MAAM,GAG9B,CACEsuB,OAAQ,OACRytD,SAAU,WACV1xE,MAAO,OAET,CACEikB,OAAQ,WACRytD,SAAU,YACV1xE,MAAO,OAET,CACEikB,OAAQ,YACRytD,SAAU,YACV1xE,MAAO,MAET,CACEikB,OAAQ,MACRytD,SAAU,cACV1xE,MAAO,MAET,CACEikB,OAAQ,MACRytD,SAAU,OACV1xE,MAAO,MAET,CACEikB,OAAQ,QACRytD,SAAU,SACV1xE,MAAO,MAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OACjB11F,cAAC8Y,KAAG,CACF5F,QAAQ,OACRg0B,eAAe,WACf/zB,WAAW,SAAQhU,SAGnBa,cAACq6F,KAAO,CACNvkF,UAAU,SACV1B,MAAM,UACNsR,QAASA,IA7HC5T,WACpB,IAAIisG,EAA8B,CAChC5iB,QAAStvF,EACLA,EAAKsvF,QAAQh6D,QACVxN,GACCA,EAAEsgB,eAAiBqsE,EAAoBrsE,eACvCtgB,EAAEsqF,WAAaqC,EAAoBrC,YAEvC,GACJ/oD,UAAWrpD,EACPA,EAAKqpD,UAAU/zB,QACZxN,GACCA,EAAEsgB,eAAiBqsE,EAAoBrsE,eACvCtgB,EAAEsqF,WAAaqC,EAAoBrC,YAEvC,GACJzoD,YAAa3pD,EACTA,EAAK2pD,YAAYr0B,QACdxN,GACCA,EAAEsgB,eAAiBqsE,EAAoBrsE,eACvCtgB,EAAEsqF,WAAaqC,EAAoBrC,YAEvC,GACJ1oD,OAAQ1pD,EACJA,EAAK0pD,OAAOp0B,QACTxN,GAAMA,EAAEsgB,eAAiBqsE,EAAoBrsE,gBAEhD,GACJqhB,KAAMzpD,EACFA,EAAKypD,KAAKn0B,QACPxN,GAAMA,EAAEsgB,eAAiBqsE,EAAoBrsE,gBAEhD,IAENqrE,EAAkBvB,GAClBzkB,GAAY,EA0Fagd,CAAct5B,EAAImI,UAAUhmF,SAC5C,cANIogH,EASD,EAERlsG,MAAO,QAGX,CAACksG,IAqBG5nC,EAAeA,CAAC77B,EAAYh4B,KAChC,MAAM3X,EAAMyrE,IAAIC,gBAAgB/7B,GAE1Bg8B,EAAer3D,SAASC,cAAc,KAC5Co3D,EAAa/0D,KAAO5W,EACpB2rE,EAAah1D,SAAWgB,GAAY,WAEpC,MAAMi0D,EAAeA,KACnBv+D,YAAW,KACTo+D,IAAII,gBAAgB7rE,GACpB2rE,EAAav6D,oBAAoB,QAASw6D,EAAa,GACtD,IAAI,EAGTD,EAAax6D,iBAAiB,QAASy6D,GAAc,GACrDD,EAAa70D,OAAO,EAUtB,OACExS,eAACwoE,GAAW,CAACn5E,MAAM,gBAAeX,SAAA,CAChCa,cAAA,QACE2nB,aAAa,MACbyD,SAAUP,EAAKQ,aAAa60F,GAC5B10F,YAAU,EAAArsB,SAEVa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAa2zE,UAjN1Bh8E,IACR,UAAVA,EAAEhN,KACJoiH,GACF,EA8M0E/gH,SACpEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,mBAAkBrnB,SACnCa,cAAC4lF,GAAU,CACTj+D,aAAa,MACbo/D,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,WACL6Y,GAAG,yBACH24B,OAAO,aACPrzC,MAAOsiH,EAAYlvE,SACnB1lB,SAAWriB,GACTk3G,EAAe,IACVD,EACHlvE,SAAU/nC,EAAOA,EAAK0rC,QAAQ,KAAO,aAM/CtzC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,iBAAgBrnB,SACjCa,cAAC4lF,GAAU,CACTj+D,aAAa,MACb3hB,QAA6B,QAAtBw4G,EAAEK,EAAYlvE,gBAAQ,IAAA6uE,OAAA,EAApBA,EAAsB3uE,SAC/Bk3C,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,SACL6Y,GAAG,uBACH24B,OAAO,aACPrzC,MAAOsiH,EAAYhvE,OACnB5lB,SAAWriB,GACTk3G,EAAe,IACVD,EACHhvE,OAAQjoC,EAAOA,EAAKi/E,MAAM,KAAO,aAM3C7mF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,oBAAmBrnB,SAC9Ca,cAAC4lF,GAAU,CACTj+D,aAAa,MACbo/D,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,kBACL6Y,GAAG,6BACH24B,OAAO,aACP3lB,SAAWriB,GACTk3G,EAAe,IACVD,EACHE,gBAAiBn3G,EAAOA,EAAK0rC,QAAQ,KAAO,aAMtDtzC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,kBAAiBrnB,SAC5Ca,cAAC4lF,GAAU,CACT5/E,QAAoC,QAA7By4G,EAAEI,EAAYE,uBAAe,IAAAN,OAAA,EAA3BA,EAA6B5uE,SACtCloB,aAAa,MACbo/D,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,gBACL6Y,GAAG,2BACH24B,OAAO,aACP3lB,SAAWriB,GACTk3G,EAAe,IACVD,EACHR,cAAez2G,EAAOA,EAAKi/E,MAAM,KAAO,aAOlD7mF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,oBAAmBrnB,SAC9Ca,cAAC8+E,GAAM,CACL7nE,GAAG,kCACH7Y,KAAK,kCACL7B,MAAOoiH,EACP10F,SAAWnf,IACT8zG,EAAoB9zG,EAAEoL,OAAO3Z,MAAM,EAErCwrB,QAAS,CACP,CACEvB,MAAO,OACPjqB,MAAO,QAET,CACEiqB,MAAO,qBACPjqB,MAAO,mBAET,CACEiqB,MAAO,uBACPjqB,MAAO,qBAET,CACEiqB,MAAO,0BACPjqB,MAAO,wBAET,CACEiqB,MAAO,4BACPjqB,MAAO,0BAET,CACEiqB,MAAO,+BACPjqB,MAAO,4BAET,CACEiqB,MAAO,uBACPjqB,MAAO,2BAET,CACEiqB,MAAO,uBACPjqB,MAAO,2BAET,CACEiqB,MAAO,UACPjqB,MAAO,kBAMjByD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,qBAAoBrnB,SAC/Ca,cAACmnB,GAAS,CACRlQ,GAAG,mCACH+U,WAAY,CAAE/Y,MAAO,CAAEo2B,cAAe,cACtC1hC,YAAY,OACZpL,MAAOm8G,EACPzuF,SA5Ydnf,IACI,IAAD+tG,EAAAC,GAGa,QAAdD,EAAA/tG,EAAEoL,OAAO3Z,aAAK,IAAAs8G,OAAA,EAAdA,EAAgBl7G,QAAS,KACG,KAAb,QAAdm7G,EAAAhuG,EAAEoL,OAAO3Z,aAAK,IAAAu8G,OAAA,EAAdA,EAAgBn7G,SAHP,WAG6Bo7G,KAAKjuG,EAAEoL,OAAO3Z,SAErDo8G,EAAqB7tG,EAAEoL,OAAO3Z,MAChC,QAwYQyD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,gBAAernB,SAC1Ca,cAACmnB,GAAS,CACRlQ,GAAG,8BACH+U,WAAY,CAAE/Y,MAAO,CAAEo2B,cAAe,cACtCnd,SAAUrB,EAAKsB,SACfxkB,YAAY,SACZvJ,KAAK,eACL6pB,SAAUw3F,QAIhBz/G,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,qBAAoBrnB,SAC/Ca,cAAC8+E,GAAM,CACL7nE,GAAG,mCACH7Y,KAAK,oBACL0oB,QAAS+D,EAAK/D,QACdI,aAAa,MACbe,SAAUw3F,EACV13F,QAAS,CACP,CACEvB,MAAO,aACPjqB,MAAO,OAET,CACEiqB,MAAO,wBACPjqB,MAAO,YAET,CACEiqB,MAAO,uBACPjqB,MAAO,wBAET,CACEiqB,MAAO,kBACPjqB,MAAO,gBAET,CACEiqB,MAAO,uBACPjqB,MAAO,+BAMjByD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,WAAUrnB,SACrCa,cAACk/E,GAAc,CACbn3D,QAAS0qC,EAAU/8C,KAAKi1D,IAAQ,CAC9BnkD,MAAM,GAADnmB,OAAKsqE,EAASp4D,UAAS,KAAAlS,OAAIsqE,EAASr4D,UACzC/V,MAAOouE,EAASj3B,aAElBz8B,GAAG,yBACH7Y,KAAK,WACLuJ,YAAY,gBACZgf,WAAS,EACTvT,OAAO,SACP6U,SAAUw3F,EACV79G,QAASipB,EAAK5d,OAAO09D,SACrBziD,aACE2C,EAAK5d,OAAO09D,SAAW9/C,EAAK5d,OAAO09D,SAASnrE,QAAU,GAExDsnB,QAAS+D,EAAK/D,QACdm8D,eAAa,QAInBjjF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,cAAarnB,SACxCa,cAACmnB,GAAS,CACRlQ,GAAG,4BACH+U,WAAY,CAAE/Y,MAAO,CAAEo2B,cAAe,cACtCnd,SAAUrB,EAAKsB,SACfxkB,YAAY,SACZvJ,KAAK,aACL6pB,SAAUw3F,QAIhBz/G,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,WAAUrnB,SACrCa,cAAC67G,GAAW,CACV9zF,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO,UACpB4iH,EACA7uC,MAAK,CAAC7F,EAAG8F,IAAM9F,EAAErsE,KAAKoyE,cAAcD,EAAEnyE,QACtCsX,KAAKiqG,IAAQ,CACZn5F,MAAOm5F,EAASvhH,KAChB7B,MAAOojH,EAASvhH,UAGtB6Y,GAAG,yBACH7Y,KAAK,WACLuJ,YAAY,gBACZgf,WAAS,EACTvT,OAAO,SACP6U,SAAUw3F,EACV79G,QAASipB,EAAK5d,OAAO0yG,SACrBz3F,aACE2C,EAAK5d,OAAO0yG,SAAkC,QAA1BjB,EAAG7zF,EAAK5d,OAAO0yG,SAAS,UAAE,IAAAjB,OAAA,EAAvBA,EAAyBl/G,QAAU,GAE5DsnB,QAAS+D,EAAK/D,cAIpB9mB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,SAAQrnB,SACnCa,cAACmnB,GAAS,CACRlQ,GAAG,uBACH+U,WAAY,CAAE/Y,MAAO,CAAEo2B,cAAe,cACtCnd,SAAUrB,EAAKsB,SACfxkB,YAAY,MACZvJ,KAAK,SACL6pB,SAAUw3F,QAIhBz/G,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,UAASrnB,SACpCa,cAACmnB,GAAS,CACRlQ,GAAG,uBACH+U,WAAY,CAAE/Y,MAAO,CAAEo2B,cAAe,cACtCnd,SAAUrB,EAAKsB,SACfxkB,YAAY,MACZvJ,KAAK,UACL6pB,SAAUw3F,QAKhBz/G,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,cAAarnB,SACxCa,cAACmnB,GAAS,CACRlQ,GAAG,2BACHo0E,WAAavgF,GApSRA,KACnB,MAAMwgF,EAAWxgF,EAAEygF,MAAQzgF,EAAEygF,MAAQzgF,EAAE0gF,SACnCF,EAAW,IAAMA,EAAW,KAC9BxgF,EAAEytE,gBACJ,EAgSiCkT,CAAY3gF,GAC/BohB,SAAUrB,EAAKsB,SACfxkB,YAAY,OACZvJ,KAAK,aACL6pB,SAAUw3F,QAKhBz/G,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8Y,KAAG,CAAC7F,MAAO,CAAEonB,UAAW,QAASl7B,SAChCa,cAAC2lB,KAAM,CACL1O,GAAG,gCACHgR,SAAU+2F,EACVniH,KAAK,SACLuX,MAAM,YACNnD,QAAQ,YACRgC,MAAO,CACLmB,MAAO,SACPjV,SACH,+BAQV8tE,GAAajtE,cAAC02E,KAAc,CAACtiE,MAAM,eAClC64D,GACAphE,IACCA,GAAQA,EAAKsvF,QAAQx9F,OAAS,EAC7B8S,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,gBAAgBygD,GAAI,EAAExoF,SAAA,CACvDsR,eAACsW,KAAS,CAAA5nB,SAAA,CAAC,0BACe0M,EAAKsvF,QAAQx9F,UAEvC8S,eAACkV,KAAM,CACLD,QA9WO5T,UACnB,IACE,MAAMgqC,QAAas9D,GAAiBc,mBAAmB6F,KACnDjkE,GAAQA,EAAKl/C,KAAO,IACtB+6E,EAAa77B,EAAK,qBAClB3iC,EACEjW,EAAUuB,SAASC,QAAQK,aAC3BkT,GAAYE,SAGlB,CAAE,MAAO0qD,GACPlhE,QAAQiB,IAAI,CACVhB,MACEihE,aAAev4D,MAAQu4D,EAAIrjE,QAAU,iCAE3C,GAgWY4U,MAAM,YACNnB,MAAO,CAAEmjB,SAAU,QAASj3B,SAAA,CAE5Ba,cAAC04E,KAAU,CACT5hE,KAAK,YACL7D,MAAO,CAAE80B,YAAa,MAAO10B,MAAO,OAAQC,OAAQ,UACnD,IAAI,sBAKXtT,cAAC6zE,GAAK,CACJiH,OAAK,EACLH,QAASA,EACT9uE,KAAMA,EAAKsvF,QACX7qB,MAAI,EACJsK,YAAU,EACVC,aAAc,GACdG,YAAcgC,IAAS,IAAD+Z,EACpB,OACE5B,GAGC,QAHoB4B,EACrB5B,EAAsBz4E,MACnBiX,IAAOA,EAAEsgB,iBAAmB+oC,EAAImI,SAASlxC,uBAC3C,IAAA8iD,GAFDA,EAEG1B,UAEI,CACL3kF,UAAU,GAADrQ,OAAKulB,KAAW2kE,yBAGpB,CACL75E,UAAU,GAADrQ,OAAKulB,KAAW0kE,eAE7B,OAKNtqF,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,OAGdwmC,GACCr/G,cAACq9G,GAAkB,CACjB3yF,UAAWguE,EACX/tE,QAASguE,EACTolB,aAAcsB,MAGN,EC5sBHkB,OAhDwDrhH,IAMhE,IANiE,aACtEsqF,EAAY,SACZvuE,EAAQ,MACRnb,EAAK,UACL0uF,EAAY,IAAG,MACfhoE,EAAQ,YACTtnB,EACC,OACEc,cAAAyV,WAAA,CAAAtW,SACEsR,eAACu7B,GAAM,CACLpzB,KAAM4wE,EAAa9+D,UACnBC,QAAS6+D,EAAa58C,UACtBp8B,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAEW,IACdE,cAACusC,GAAa,CAAAptC,SACX8b,GAAYA,EAAStd,OAAS,GAC7BqC,cAACumB,GAAW,CAACC,MAAOA,EAAMrnB,SACxBa,cAAC8Y,KAAG,CAAC7F,MAAO,CAAEu7E,UAAWA,EAAWt6E,UAAW,QAAS/U,SACrD8b,EAASvF,KAAI,CAACmqC,EAAShiD,IACtBmC,cAACw6B,KAAK,CAAC8iD,UAAW,EAAEn+E,SAClBa,cAAC8Y,KAAG,CAACyP,QAAS,EAAEppB,SACda,cAACgR,IAAU,CAACiC,MAAO,CAAEsB,UAAW,cAAepV,SAC7Ca,cAACgR,IAAU,CAAC8E,UAAU,OAAO7E,QAAQ,YAAW9R,SAC7C0gD,SAGD,YAAAx/C,OAP8BxC,YAchDmC,cAACmsC,GAAa,CAAAhtC,SACZa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,SAAS7zB,MAAM,OAAMlU,SACtDa,cAACssC,GAAY,CACX7iC,KAAK,QACLwN,GAAG,uBACHyO,QAAS8jE,EAAa58C,oBAK7B,E,yBC8CQ4zE,OA9F0CthH,IAIlD,IAJmD,eACxDoqE,EAAc,KACdz9D,EAAI,WACJ40G,GACDvhH,EACC,MAAMy7E,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,WACRjkB,MAAO,MACP4xE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjBlF,eAAA,QAAMwC,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAA,CACpC69E,EAAImI,SAASu7B,kBAAkB,IAAE1jC,EAAImI,SAASw7B,mBAC1C,GAGX,CACErpF,OAAQ,UACRytD,SAAU,gBACV1xE,MAAO,MACP4xE,KAAMvF,IAAmB,IAAlB,IAAE1C,GAAU0C,EACjB,MAAM,SAAEzyC,EAAQ,QAAE+hD,GAAYH,GAC5B,IAAK7R,EAAImI,WACT,EACA7b,EACAslB,GAA0BgyB,aAE5B,OACE5gH,cAAAyV,WAAA,CAAAtW,SACG6vF,EACChvF,cAACy1F,KAAU,CAAC/vE,QAASunB,EAAS9tC,SAC5Ba,cAAC0hC,KAAI,CAAAviC,SACHa,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASlxC,oBAKpBj0C,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASlxC,iBAGjB,GAIT,CACE3c,OAAQ,mBACR2tD,KAAMyQ,IAAA,IAAAmrB,EAAA,IAAC,IAAE7jC,GAAU0Y,EAAA,OACjB11F,cAAC4nF,GAAQ,CACPhgF,KAA4B,QAAxBi5G,EAAE7jC,EAAImI,SAASuJ,iBAAS,IAAAmyB,IAAI,KAChCjxE,OAAO,mBACP,EAEJv8B,MAAO,OAET,CACEikB,OAAQ,aACR2tD,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjBplF,eAAA,QAAMwC,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAA,CACpC69E,EAAImI,SAAS27B,iBAAiB,IAAE9jC,EAAImI,SAAS47B,kBACzC,EAET1tG,MAAO,OAET,CACEikB,OAAQ,SACRjkB,MAAO,MACP4xE,KAAM6Q,IAAmB,IAAlB,IAAE9Y,GAAU8Y,EACjB,MAAM,sBAAE/L,GClEH,SAAgC7qF,GAOpC,IAPqC,MAC9CY,EAAK,SACLmb,EAAQ,MACRuL,EAAQ,UAAS,oBACjBkwE,EAAmB,eACnB9M,EAAc,KACdhtF,EAAO,IACDsC,EACN,MAAM,UAAEytC,EAAS,UAAEC,EAAS,UAAEliB,GAAc+hB,KA6B5C,MAAO,CAAEs9C,sBA3BqBA,IAE1Bt5E,eAAAgF,WAAA,CAAAtW,SAAA,CACG8b,EAAStd,OAAS,GACjBqC,cAACqmB,KAAU,CAACX,QAASinB,EAAWj8B,UAAWgmF,EAAoBv3F,SAC7Da,cAAC21B,KAAK,CACJvhB,MAAM,YACN1D,UAAWmiB,aAAKjN,KAAWiQ,MAAO+zD,GAClC34E,QAAQ,WACR+4E,QAAQ,WACRp0D,aAAc3a,EAAStd,OAAOwB,SAE9Ba,cAACkqF,GAAW,CAAC72E,MAAOzW,EAAM0W,OAAQ1W,QAIxCoD,cAACugH,GAA0B,CACzB/2B,aAAc,CAAE78C,YAAWC,YAAWliB,aACtCzP,SAAUA,EACVnb,MAAOA,EACP0mB,MAAOA,EACP5pB,KAAMA,OAOhB,CD4B4CokH,CAAwB,CACxD/lG,SAAU+hE,EAAImI,SAASluC,QACvBy/C,oBAAqB/lF,KAAOgoB,WAC5B74B,MAAO2gH,EACPj6F,MAAO,YACP5pB,KAAM,KAER,OAAOoD,cAAC+pF,EAAqB,GAAG,KAItC,IAGF,OACE/pF,cAAAyV,WAAA,CAAAtW,SACG0M,EAAKlO,OAAS,EACbqC,cAAC6zE,GAAK,CAAC8G,QAASA,EAAS9uE,KAAMA,EAAM+uE,YAAY,EAAME,OAAK,IAE5D96E,cAAC02E,KAAc,CAACtiE,MAAM,eAEvB,EEvFF6sG,GAAU,SAAVA,GAAU,OAAVA,EAAU,qBAAVA,EAAU,yBAAVA,CAAU,EAAVA,IAAU,IAmBf,MAKMhyE,GAAe,CACnBpjC,KAAM,GACNohE,WAAW,EACX07B,WAAW,EACXW,gBAT6B,CAC7B35D,SAAU,KACVE,OAAQ,KACR4wE,WAAYQ,GAAWC,cAOvB53C,eAAgB,IAqLH63C,OAlLmBA,KAAO,IAAD3G,EAAAC,EAAAC,EACtC,MAAOh9F,EAAOi9F,GAAYlpG,mBAA2Bw9B,IAC/CtX,EAAajB,MACb,WAAEvd,GAAeQ,KAEvB7G,qBAAU,KACRggC,GAAmBqC,oBAChBxqC,MAAMqpC,GAAY2mE,EAAS,IAAKj9F,EAAO4rD,eAAgBt1B,MACvDlxC,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,GAC7C,IAEH,MAAMknF,EAAeA,KACf8iB,IACFmR,EAAS,IAAKj9F,EAAOuvD,WAAW,IAEhCmsC,GAAiBC,qBACf37F,EAAM4rF,gBAAgB35D,SAAUE,SAChCnyB,EAAM4rF,gBAAgBmX,WACW,OAAjC/iG,EAAM4rF,gBAAgBz5D,YAClBrzC,EACAkhB,EAAM4rF,gBAAgBz5D,OAAOA,UAEhCllC,MAAMkB,IACL8uG,EAAS,IAAKj9F,EAAOuvD,WAAW,EAAOphE,KAAMA,EAAM88F,WAAW,GAAO,IAEtE7lG,OAAOlB,IACN+4G,EAAS,IAAKj9F,EAAOuvD,WAAW,EAAO07B,WAAW,IAClDxvF,EAAWvX,EAAMpC,QAAQ,IAE/B,EAGIgqG,EAC+B,OAAnC9rF,EAAM4rF,gBAAgB35D,WACY,OAAjCjyB,EAAM4rF,gBAAgBz5D,QACrBnyB,EAAM4rF,gBAAgB35D,SAAWjyB,EAAM4rF,gBAAgBz5D,QAErD45D,EAAa3+F,GACjBA,GAAKA,EAAE4hB,UAAYogB,KAAOhiC,EAAE+kC,UAAUyD,QAAQ,OAAiB,KAE3DyxD,EAAkBj6F,IACR,UAAVA,EAAEhN,KAAmB0rG,GACvB9iB,GACF,EAGF,OACE1mF,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,eAAcX,SAAA,CAC/Ba,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAYhU,SACzCsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,YAAWrnB,SACtCa,cAAC4lF,GAAU,CACT3uE,GAAG,uBACH8vE,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZyL,OAAO,OACPhV,KAAK,WACL2H,QAAS+mC,OAASwG,QAAQ,OAAOzD,SACjCtzC,MAAsC,QAAjCi+G,EAAuB,QAAvBC,EAAE/8F,EAAM4rF,uBAAe,IAAAmR,OAAA,EAArBA,EAAuB9qE,gBAAQ,IAAA6qE,IAAI,KAC1C1zB,UAAWie,EACX96E,SAAWnf,IACT6vG,EAAS,IACJj9F,EACHirF,WAAW,EACXW,gBAAiB,IACZ5rF,EAAM4rF,gBACT35D,SAAU85D,EAAU3+F,IAEtBe,KAAM,IACN,QAKV7L,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,UAAUE,YAAY,EAAKvnB,SACtDa,cAAC4lF,GAAU,CACT3uE,GAAG,qBACH8vE,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZyL,OAAO,OACPhV,KAAK,SACL4H,QACqC,OAAnC0X,EAAM4rF,gBAAgB35D,SAClB,KACA7C,KAAOpvB,EAAM4rF,gBAAgB35D,UAC1B4D,IAAI,EAAG,OACP1D,SAETtzC,MAAmC,QAA9Bm+G,EAAEh9F,EAAM4rF,gBAAgBz5D,cAAM,IAAA6qE,IAAI,KACvC5zB,UAAWie,EACX96E,SAAWnf,IACT6vG,EAAS,IACJj9F,EACHirF,WAAW,EACXW,gBAAiB,IACZ5rF,EAAM4rF,gBACTz5D,OAAQ45D,EAAU3+F,IAEpBe,KAAM,IACN,QAKV7L,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,SAAQrnB,SACnCa,cAAC8nB,GAAa,CACZ1pB,KAAK,yBACLxB,KAAK,QACLmrB,QAAS,CACP,CACEvB,MAAO,sBACPjqB,MAAO0kH,GAAWC,cAEpB,CAAE16F,MAAO,kBAAmBjqB,MAAO0kH,GAAWG,cAEhD7kH,MAAOmhB,EAAM4rF,gBAAgBmX,WAC7Bx2F,SAAUA,CAACnf,EAAGvO,IACZo+G,EAAS,IACJj9F,EACHirF,WAAW,EACXW,gBAAiB,IACZ5rF,EAAM4rF,gBACTmX,WAAYlkH,GAEdsP,KAAM,WAMhB7L,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACwmF,GAAY,CACXvvE,GAAG,4BACHgR,UAAWuhF,EACX9jF,QAASghE,EACTzzE,MACE0kB,EAAWR,KACP,CAAEkD,UAAW,QACb,CAAEhmB,aAAc,QACrBlV,SACF,+BAMNue,EAAMuvD,UACLjtE,cAAC02E,KAAc,CAACtiE,MAAM,cACpBsJ,EAAM7R,MAA8B,IAAtB6R,EAAM7R,KAAKlO,OAC3B+f,EAAMirF,UACJ3oG,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,MAGX74E,cAAAyV,WAAA,IAGFzV,cAACwgH,GAAe,CACdl3C,eAAgB5rD,EAAM4rD,eACtBz9D,KAAM6R,EAAM7R,KACZ40G,WACE/iG,EAAM4rF,gBAAgBmX,aAAeQ,GAAWG,YAC5C,kBACA,4BAKX,EC3MA,MAAMC,GAAiBj3F,OAAaC,MAAM,CAC/Cs6D,WAAYv6D,OAET5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDC,QACC1C,EAAUqC,WAAWc,mBACrBnD,EAAUqC,WAAWwB,eAEzBvH,QAAS4qB,OAAazkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QAgHzD27G,OAtGsCpiH,IAK9C,IAL+C,WACpDqiH,EAAU,MACVzhH,EAAK,QACLkmB,EACAw7F,cAAc,UAAE50E,EAAS,UAAEliB,IAC5BxrB,EACC,MAAM2rB,EAAOC,aAA2B,CACtCG,KAAM,WACNF,SAAUC,aAAYq2F,IACtBxsB,cAAe,CACblQ,gBAAYnoF,EACZgD,aAAShD,KAIPilH,EAAeA,KACnB52F,EAAKu6B,QACLxY,GAAW,EAGb,OACE5sC,cAAAyV,WAAA,CAAAtW,SACEa,cAACgsC,GAAM,CAACpzB,KAAM8R,EAAWC,QAAS82F,EAAcjxG,SAAS,KAAIrR,SAC3DsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,aAAak2F,GAC5B/1F,YAAU,EAAArsB,SAAA,CAEVa,cAACwsC,GAAW,CAAArtC,SAAO,OAALW,QAAK,IAALA,IAAS,cACvBE,cAACusC,GAAa,CAAAptC,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CACVC,MAAM,qBACNC,YAAY,iCAAgCtnB,SAE5Ca,cAACmnB,GAAS,CACR/oB,KAAK,aACL6Y,GAAG,sBACHtP,YAAY,gDACZukB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACN8S,kBAAc1qB,EACdmqB,WAAS,EACT/kB,QAASipB,EAAK5d,OAAO03E,WACrBv4D,WACEvB,EAAK5d,OAAO03E,WACR95D,EAAK5d,OAAO03E,WAAWnlF,QACvB,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,UAAUE,YAAY,EAAKvnB,SAC5Ca,cAACmnB,GAAS,CACR/oB,KAAK,UACL6Y,GAAG,oBACHiV,SAAUrB,EAAKsB,SACf/Y,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXC,KAAK,IACL3F,WAAS,EACThf,YAAY,0BACZuf,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAOzN,QACrB4sB,WACEvB,EAAK5d,OAAOzN,QAAUqrB,EAAK5d,OAAOzN,QAAQA,QAAU,cAOhEiR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQE,OACxB4T,GAAG,mBACHyO,QAAS+7F,IAEXzhH,cAACssC,GAAY,CACXtmB,QAASA,EACTvc,KAAM,OACN5M,KAAK,SACLoa,GAAG,mBACHyO,QAASA,OACTuC,UACG4C,EAAK2B,UAAUE,UAAY7B,EAAK2B,UAAUC,SAAWzG,aAM/D,ECjBQ07F,OA5G0CxiH,IAIlD,IAJmD,KACxD2M,EAAI,UACJ88F,EAAS,SACTgZ,GACDziH,EACC,MAAMoW,EAAQzJ,EAAK6J,KAAK7J,IAAI,IACvBA,EACH+1G,cAAc,GAADvhH,OAAKwL,EAAK0G,UAAS,KAAAlS,OAAIwL,EAAKyG,UACzCmiE,QAAQ,GAADp0E,OAAKwL,EAAKlL,OAAM,OAAAN,OAAMwL,EAAKgnD,iBAG9B8nB,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,iBACRytD,SAAU,gBACVE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASy8B,eACT,GAGX,CACEtqF,OAAQ,cACRytD,SAAU,aACV1xE,MAAO,OAET,CACEikB,OAAQ,YACRjkB,MAAO,MACP0xE,SAAU,cAEZ,CACEztD,OAAQ,OACRytD,SAAU,MACV1xE,MAAO,MACP4xE,KAAMvF,IAAA,IAAA27B,EAAA,IAAC,IAAEr+B,GAAU0C,EAAA,OACjB1/E,cAAC4nF,GAAQ,CAAChgF,KAAsB,QAAlByzG,EAAEr+B,EAAImI,SAASxqC,WAAG,IAAA0gE,IAAI,KAAMzrE,OAAO,aAAc,GAGnE,CACEtY,OAAQ,QACRjkB,MAAO,MACP0xE,SAAU,WAEZ,CACEztD,OAAQ,WACRjkB,MAAO,KACP0xE,SAAU,YAEZ,CACEztD,OAAQ,eACRjkB,MAAO,MACP0xE,SAAU,eAEZ,CACEztD,OAAQ,WACRjkB,MAAO,KACP0xE,SAAU,sBAGd,IAGF,OACE/kF,cAAAyV,WAAA,CAAAtW,SACGmW,EAAM3X,OAAS,EACd8S,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC6uE,GAAI,EAAExoF,SACTa,cAAC4rB,KAAI,CAAChb,WAAS,EAACs2B,eAAe,WAAU/nC,SACvCa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRsR,eAACkV,KAAM,CACLD,QAASA,KACPi8F,GAAU,EAEZvtG,MAAM,YACNnB,MAAO,CAAEmjB,SAAU,QACnBnO,UAAU,EAAM9oB,SAAA,CAEhBa,cAAC04E,KAAU,CACT5hE,KAAK,YACL7D,MAAO,CACL80B,YAAa,MACb10B,MAAO,OACPC,OAAQ,UAET,IAAI,0BAMftT,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAMyJ,EACNslE,YAAY,EACZQ,iBAAiB,EACjB9K,MAAM,EACNwK,OAAK,OAIT6tB,GAAa3oG,cAAC64E,GAAQ,KAEvB,ECQQgpC,OA9GX3iH,IAAoC,IAAnC,KAAE2M,EAAI,UAAE88F,EAAS,SAAEgZ,GAAUziH,EAChC,MAAMoW,EAAQzJ,EAAK6J,KAAK7J,IAAI,IACvBA,EACH+1G,cAAc,GAADvhH,OAAKwL,EAAK0G,UAAS,KAAAlS,OAAIwL,EAAKyG,UACzCmiE,QAAQ,GAADp0E,OAAKwL,EAAKlL,OAAM,OAAAN,OAAMwL,EAAKgnD,iBAG9B8nB,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,iBACRytD,SAAU,gBACV1xE,MAAO,MACP4xE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASy8B,eACT,GAGX,CACEtqF,OAAQ,YACRjkB,MAAO,MACP0xE,SAAU,cAEZ,CACEztD,OAAQ,OACRytD,SAAU,MACV1xE,MAAO,MACP4xE,KAAMvF,IAAA,IAAA27B,EAAA,IAAC,IAAEr+B,GAAU0C,EAAA,OACjB1/E,cAAC4nF,GAAQ,CAAChgF,KAAsB,QAAlByzG,EAAEr+B,EAAImI,SAASxqC,WAAG,IAAA0gE,IAAI,KAAMzrE,OAAO,aAAc,GAGnE,CACEtY,OAAQ,QACRjkB,MAAO,MACP0xE,SAAU,WAEZ,CACEztD,OAAQ,cACRjkB,MAAO,MACP0xE,SAAU,aACVE,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OACjB11F,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAAS86B,YACT,GAGX,CACE3oF,OAAQ,MACRjkB,MAAO,MACP0xE,SAAU,YACVE,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjB71F,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASxgC,WACT,GAGX,CACErtB,OAAQ,WACRjkB,MAAO,KACP0xE,SAAU,cAGd,IAGF,OACE/kF,cAAAyV,WAAA,CAAAtW,SACGmW,EAAM3X,OAAS,EACd8S,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC6uE,GAAI,EAAExoF,SACTa,cAAC4rB,KAAI,CAAChb,WAAS,EAACs2B,eAAe,WAAU/nC,SACvCa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRsR,eAACkV,KAAM,CACLD,QAASA,KACPi8F,GAAU,EAEZvtG,MAAM,YACNnB,MAAO,CAAEmjB,SAAU,QACnBnO,UAAU,EAAM9oB,SAAA,CAEhBa,cAAC04E,KAAU,CACT5hE,KAAK,YACL7D,MAAO,CACL80B,YAAa,MACb10B,MAAO,OACPC,OAAQ,UAET,IAAI,0BAMftT,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAMyJ,EACNslE,YAAY,EACZQ,iBAAiB,EACjB9K,MAAM,EACNwK,OAAK,IACG,OAGZ6tB,GAAa3oG,cAAC64E,GAAQ,KAEvB,ECxGFipC,GAAoB,SAApBA,GAAoB,OAApBA,EAAoB,mDAApBA,EAAoB,uEAApBA,CAAoB,EAApBA,IAAoB,IAoBzB,MAKM7yE,GAAe,CACnB8yE,4BAA6B,GAC7BC,iBAAkB,GAClB/0C,WAAW,EACXg1C,aAAa,EACbtZ,WAAW,EACXW,gBAX6B,CAC7BqQ,MAAO7sE,OAAS8C,OAAO,KACvB3nC,KAAM6kC,OAAS8C,OAAO,QACtB4rE,WAAYsG,GAAqBI,yBA2PpBC,OAhPwBA,KACrC,MAAOzkG,EAAOi9F,GAAYlpG,mBAA0Bw9B,IAC9CtX,EAAajB,MACb,WAAEvd,GAAeQ,MACjB,UAAEgzB,EAAS,UAAEC,EAAS,UAAEliB,GAAc+hB,KA4CtC21E,EAAoBA,KACxBhJ,GAAiBU,qBACfp8F,EAAM4rF,gBAAgBqQ,MACtBj8F,EAAM4rF,gBAAgBrhG,MAErB0C,MAAMkB,IACL8uG,EAAS,IACJj9F,EACHuvD,WAAW,EACX+0C,iBAAkBn2G,EAClBk2G,4BAA6B,GAC7BpZ,WAAW,GACX,IAEH7lG,OAAOlB,IACN+4G,EAAS,IAAKj9F,EAAOuvD,WAAW,EAAO07B,WAAW,IAClDxvF,EAAWvX,EAAMpC,QAAQ,GACzB,EAGA6iH,EAA2BA,KAC/BjJ,GAAiBM,gCACfh8F,EAAM4rF,gBAAgBqQ,MACtBj8F,EAAM4rF,gBAAgBrhG,MAErB0C,MAAMkB,IACL8uG,EAAS,IACJj9F,EACHuvD,WAAW,EACX80C,4BAA6Bl2G,EAC7Bm2G,iBAAkB,GAClBrZ,WAAW,GACX,IAEH7lG,OAAOlB,IACN+4G,EAAS,IAAKj9F,EAAOuvD,WAAW,EAAO07B,WAAW,IAClDxvF,EAAWvX,EAAMpC,QAAQ,GACzB,EAGAgqG,EACJ9rF,EAAM4rF,gBAAgBqQ,OACtBj8F,EAAM4rF,gBAAgBrhG,MACtByV,EAAM4rF,gBAAgBkS,WAExB,OACE/qG,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACwoE,GAAW,CAACn5E,MAAM,oBAAmBX,SAAA,CACpCa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAYhU,SACzCsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAG1jB,MAAO,CAAEc,aAAc,QAAS5U,SAChDa,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAG/pF,UAAWkV,KAAW08F,OAAOnjH,SACvCa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,QAAOrnB,SAClCa,cAAC8+E,GAAM,CACL1gF,KAAK,sBACL7B,MAAOmhB,EAAM4rF,gBAAgBqQ,MAC7B1vF,SAAWnf,GACT6vG,EAAS,IACJj9F,EACH4rF,gBAAiB,IACZ5rF,EAAM4rF,gBACTqQ,MAAO7uG,EAAEoL,OAAO3Z,OAElBylH,iBAAkB,GAClBD,4BAA6B,GAC7BpZ,WAAW,IAGfhiF,WAAW,EACXoB,QAASrrB,MAAMgzC,KACb,CAAE/xC,OAAQ,KACV,CAACoV,EAAGoD,IAAMA,EAAI,IACdT,KAAK6sG,IAAG,CACRhmH,MAAOgmH,EACP/7F,OAAQ,IAAM+7F,GAAKzlH,OAAO,eAMpCkD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAG1jB,MAAO,CAAEa,YAAa,QAAS3U,SAC/Ca,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,OAAMrnB,SACjCa,cAAC8+E,GAAM,CACL1gF,KAAK,qBACL7B,MAAOmhB,EAAM4rF,gBAAgBrhG,KAC7BgiB,SAAWnf,GACT6vG,EAAS,IACJj9F,EACH4rF,gBAAiB,IACZ5rF,EAAM4rF,gBACTrhG,KAAM6C,EAAEoL,OAAO3Z,OAEjBylH,iBAAkB,GAClBrZ,WAAW,EACXoZ,4BAA6B,KAGjCp7F,WAAW,EACXoB,QAASrrB,MAAMgzC,KACb,CAAE/xC,OAAQ,KACV,CAACoV,EAAGoD,IAAMA,EAAI22B,OAAS7kC,OAAS,KAChCyN,KAAK6sG,IAAG,CACRhmH,MAAOgmH,EACP/7F,MAAO+7F,EAAI/iG,0BAOvBxf,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,OAAMrnB,SACjCa,cAAC8nB,GAAa,CACZ1pB,KAAK,uBACLxB,KAAK,QACLmrB,QAAS,CACP,CACEvB,MAAOs7F,GAAqBI,uBAC5B3lH,MAAOulH,GAAqBI,wBAE9B,CACE17F,MACEs7F,GAAqBU,gCACvBjmH,MACEulH,GAAqBU,kCAG3BjmH,MAAOmhB,EAAM4rF,gBAAgBkS,WAC7BvxF,SAAUA,CAACnf,EAAGvO,IACZo+G,EAAS,IACJj9F,EACHirF,WAAW,EACXW,gBAAiB,IACZ5rF,EAAM4rF,gBACTkS,WAAYj/G,GAEdylH,iBAAkB,GAClBD,4BAA6B,WAMvC/hH,cAAC4rB,KAAI,CAACG,MAAI,EAAC8K,GAAI,EAAGF,GAAI,GAAGx3B,SACvBa,cAACwmF,GAAY,CACXvvE,GAAG,2BACHgR,UAAWuhF,EACX9jF,QA/LOghE,KACf8iB,IACFmR,EAAS,IAAKj9F,EAAOuvD,WAAW,IAChCvvD,EAAM4rF,gBAAgBkS,aACtBsG,GAAqBI,uBACjBG,IACAD,IACN,EAyLYnvG,MACE0kB,EAAWR,KACP,CAAEkD,UAAW,QACb,CAAEhmB,aAAc,QACrBlV,SACF,6BAMNue,EAAMuvD,UACLjtE,cAAC02E,KAAc,CAACtiE,MAAM,cAEtBpU,cAAAyV,WAAA,CAAAtW,SACGue,EAAM4rF,gBAAgBkS,aACvBsG,GAAqBI,uBACnBliH,cAAC6hH,GAA0B,CACzBh2G,KAAM6R,EAAMqkG,4BACZpZ,UAAWjrF,EAAMirF,UACjBgZ,SAAUh1E,IAGZ3sC,cAAC0hH,GAAe,CACd71G,KAAM6R,EAAMskG,iBACZrZ,UAAWjrF,EAAMirF,UACjBgZ,SAAUh1E,SAMpB3sC,cAACshH,GAAa,CACZC,WAvNgB12F,IACpB,GAAI2+E,EAAsB,CACxB,MAAMiZ,EAAW,CACf9I,OAAQj8F,EAAM4rF,gBAAgBqQ,MAC9B1xG,MAAOyV,EAAM4rF,gBAAgBrhG,KAC7BzI,QAASqrB,EAAKrrB,QACdmlF,WAAY95D,EAAK85D,YAEb+9B,EACJhlG,EAAM4rF,gBAAgBkS,aACtBsG,GAAqBI,uBACjB9I,GAAiBQ,iCAAiC6I,GAClDrJ,GAAiBW,sBAAsB0I,GAE7C9H,EAAS,IAAKj9F,EAAOukG,aAAa,IAClCS,EACG/3G,MAAMo2B,IACL45E,EAAS,IAAKj9F,EAAOukG,aAAa,IAClCr1E,IACA7L,EACI5nB,EAAW,yBAA0BlB,GAAYE,SACjDgB,EAAW,oBAAoB,IAEpCrW,OAAOlB,IACN+4G,EAAS,IAAKj9F,EAAOukG,aAAa,IAClCr1E,IACA+tE,EAAS,IAAKj9F,EAAOuvD,WAAW,EAAO07B,WAAW,IAClDxvF,EAAWvX,EAAMpC,QAAQ,GAE/B,GA2LIM,MAAO,cACP0hH,aAAc,CAAE92F,YAAWkiB,YAAWD,aACtC3mB,QAAStI,EAAMukG,gBAEhB,E,0CC5QP,MAAMvlF,GAAO18B,cAAC2iH,KAAwB,CAACvsF,SAAS,UAC1CwsF,GAAc5iH,cAAC6iH,KAAY,CAACzsF,SAAS,UA6L5B0sF,OA3LyBA,KACtC,MAAM,WAAE3pG,GAAeQ,MAChBjY,EAAOqhH,GAAYtxG,mBAAkB,KACtC,YAAEJ,GAAgBmD,KACjBwuG,EAAgBC,GAAuBxxG,mBAAgB,KACvDw7D,EAAWktB,GAAgB1oF,oBAAS,IACpC5F,EAAMg9F,GAAWp3F,mBAAgB,KACjCyxG,EAAUC,GAAe1xG,oBAAkB,GAElDqB,qBAAU,KACRlE,EAAYI,cACTrE,MAAMiB,IACLm3G,EAASn3G,EAAS,IAEnB9I,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,GAC7C,IAEH,MAAM4jH,EAAsBA,KAC1BjpB,GAAa,GACb,IAAIkpB,EAAqB,GAEzB,IAAK,IAAIxlH,EAAQ,EAAGA,EAAQmlH,EAAerlH,OAAQE,IAAS,CAC1D,MAAMmf,EAAUgmG,EAAenlH,GAC/BwlH,EAAY5jH,KAAK,GAADY,OAAI2c,EAAQ7N,UAC9B,CAEA04C,GAAcsC,aAAak5D,EAAY/3F,QACpC3gB,MAAM4gB,IACgB,GAAjBA,EAAO5tB,QACTwlH,GAAY,GAGd,IAAIG,EAAiB,GAErB/3F,EAAO3tB,SAASssD,IACdo5D,EAAQ7jH,KAAK,CACXi0C,SAAUwW,EAAOxW,SACjB0vC,WAAYl5B,EAAOk5B,WACnBmgC,aAAcr5D,EAAOq5D,aACrBp0G,SAAU+6C,EAAO/6C,UACjB,IAEJ05F,EAAQya,GACRnpB,GAAa,EAAM,IAEpBr3F,OAAOlB,IACNu4F,GAAa,GACbhhF,EAAWvX,EAAMpC,QAAQ,GACzB,EAGAulG,EAAkBj6F,IACR,UAAVA,EAAEhN,KAAmBklH,EAAerlH,OAAS,GAC/CylH,GACF,EAEIzoC,EAAUvpE,IAAMsI,SAAQ,IACD,CACzB,CACE4d,OAAQ,WACRytD,SAAU,WACV1xE,MAAO,OACP,CAEF,CACEikB,OAAQ,QACRytD,SAAU,aACV1xE,MAAO,OAET,CACEikB,OAAQ,WACRytD,SAAU,gBAEZ,CACEztD,OAAQ,eACRytD,SAAU,WACV1xE,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,UACVE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBc,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAE7Da,cAACq6F,KAAO,CACNjmF,MAAM,UACN0B,UAAW4rB,IACXxsB,GAAE,2BAAA7U,OAA6BqoD,mBAC7Bs0B,EAAImI,SAASzxC,UACd,yBAAwBv0C,SAC1B,cAIC,EAERkU,MAAO,SAKV,IAEH,OACE5C,eAACwoE,GAAW,CAACn5E,MAAM,oBAAmBX,SAAA,CACpCa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAakB,aAAa,OAAMlV,SAC7DsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGsK,GAAI,EAAGF,GAAI,GAAGx3B,SAC9Ba,cAACumB,GAAW,CAACC,MAAM,OAAOvT,MAAO,CAAE+V,cAAe,OAAQ7pB,SACxDa,cAACo/E,KAAY,CACX2R,UAAQ,EACR95E,GAAG,kBACH8Q,QAASrmB,EACT8hH,sBAAoB,EACpBlkC,eAAiBh2D,GAAWA,EAAOna,SACnCkwE,aAAcA,CAAC/1D,EAAM3T,KAAA,IAAE,SAAEmU,GAAUnU,EAAA,OACjClF,eAACW,IAAM2E,SAAQ,CAAA5W,SAAA,CACba,cAAC2hF,KAAQ,CACPjlD,KAAMA,GACNkmF,YAAaA,GACb3vG,MAAO,CAAE80B,YAAa,GACtB25C,QAAS53D,IAEVR,EAAOna,WACO,EAEnB8D,MAAO,CAAEI,MAAO,KAChBmsE,YAAcpwE,GACZpP,cAACmnB,KAAS,IACJ/X,EACJ6B,QAAQ,WACR61E,UAAWie,IAGf96E,SAAUA,CAAC5M,EAAO9gB,KAChB0mH,EAAoB1mH,GACpBssG,EAAQ,IACRsa,GAAY,EAAM,QAM1BnjH,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,MAAKhU,SAC5Da,cAACwmF,GAAY,CACXv+D,WAAU+6F,EAAerlH,OAAS,GAClCsV,MAAO,CAAEG,OAAQ,OACjB6D,GAAG,8BACHyO,QAAS09F,EAAoBjkH,SAC9B,0BAMN8tE,EACCjtE,cAAC02E,KAAc,CAACtiE,MAAM,cACpBvI,GAAQA,EAAKlO,OAAS,EACxBqC,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAMA,EACNivE,OAAK,EACLC,cACE1pE,EAAY2D,SACV+Y,GAAgBoB,2CAEd,CAAC,IACD,CAAC,WAEPyrD,YAAY,EACZC,aAAc,KAGhBqoC,GACEljH,cAAC8Y,KAAG,CACF5F,QAAQ,OACRD,MAAO,CAAEonB,UAAW,QACpB6M,eAAe,aAAY/nC,SAE3Ba,cAAC64E,GAAQ,QAIH,ECiIH4qC,OA/SoDA,KAAO,IAADC,EACvE,MAAOz2C,EAAWktB,GAAgB1oF,oBAAS,IACpC1J,EAAS47G,GAAclyG,sBACvBk+B,EAAUooE,GAAetmG,mBAAwB,OACjDo+B,EAAQmoE,GAAavmG,mBAAwB,OAC7CwmG,EAAkBC,GAAuBzmG,oBAAS,IAClD5F,EAAMg9F,GAAWp3F,mBAAqC,OACtD0mG,EAAaC,GAAkB3mG,mBACpC,OAGAk7B,UAAW2sD,EACX1sD,UAAW+rD,EACXjuE,UAAWguE,GACTjsD,MACE,WAAEtzB,GAAeQ,KACjB6B,EAAY0gF,KAElBppF,qBAAU,OAEE,OAAP/K,QAAO,IAAPA,OAAO,EAAPA,EAASxL,MAAMoB,QAAS,GAAa,OAARgyC,QAAQ,IAARA,KAAUjjB,aAC7B,MAAVmjB,GAAkBA,EAAOwoE,cAAc1oE,IAExCuoE,GAAoB,GAEpBA,GAAoB,EACtB,GACC,CAACnwG,EAAS4nC,EAAUE,IAEvB,MAAM62C,EAAeA,KACnByT,GAAa,GACbud,GAAgBG,qBAA4B,OAAP9vG,QAAO,IAAPA,OAAO,EAAPA,EAASxL,MAAOozC,EAAUE,GAC5DllC,MAAM4gB,GAAWs9E,EAAQt9E,KACzBzoB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAClCqT,SAAQ,IAAMsnF,GAAa,IAAO,EAcjCxf,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,eACRytD,SAAU,aACV1xE,MAAO,OAET,CACEikB,OAAQ,SACRytD,SAAU,SACV1xE,MAAO,OAET,CACEikB,OAAQ,cACRytD,SAAU,cACV1xE,MAAO,OAET,CACEikB,OAAQ,OACRytD,SAAU,SACVE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBc,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASy+B,OAAQh0E,OAAO,mBAAoB,GAGpE,CACEtY,OAAQ,OACRytD,SAAU,eACV1xE,MAAO,OAET,CACEikB,OAAQ,OACRytD,SAAU,eACV1xE,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACq6F,KAAO,CACNvkF,UAAU,SACV1B,MAAM,UACNsR,QAASA,KAtDI5T,WACvBsmG,EAAeyL,GACfvqB,GAAY,EAqDAkf,CAAiBx7B,EAAImI,SAAS,EAC9BhmF,SACH,cAGG,EAERkU,MAAO,SAGX,IAEF,OACE5C,eAACwoE,GAAW,CAACn5E,MAAM,qBAAoBX,SAAA,CACrCa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAa2zE,UAhExBh8E,IACR,UAAVA,EAAEhN,KACJ4oF,GACF,EA6DwEvnF,SACpEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAACk/E,GAAc,CACb9gF,KAAK,OACL2pB,QAASvM,EAAU9F,KAAK3N,IAAO,CAC7BxL,MAAOwL,EAAQ43F,YACfn5E,MAAOze,EAAQ23F,gBAEjB/3E,cAAc,EACdvU,OAAO,SACPzL,YAAY,aACZpL,MAAOwL,EACPkJ,QAAQ,WACRgZ,SAAUA,CAACnf,EAAGvO,IAAUonH,EAAWpnH,SAIzCyD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAAC4lF,GAAU,CACTj+D,aAAa,MACbo/D,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,WACL6Y,GAAG,qBACH24B,OAAO,aACPrzC,MAAOozC,EACP1lB,SAAWriB,GACTmwG,EAAYnwG,EAAOA,EAAK0rC,QAAQ,KAAO,YAK/CtzC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,KAAIrnB,SACrBa,cAAC4lF,GAAU,CACTj+D,aAAa,MACb3hB,QAAiB,OAAR2pC,QAAQ,IAARA,OAAQ,EAARA,EAAUE,SACnBk3C,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZvJ,KAAK,SACL6Y,GAAG,mBACH24B,OAAO,aACPrzC,MAAOszC,EACP5lB,SAAWriB,GACTowG,EAAUpwG,EAAOA,EAAKi/E,MAAM,KAAO,YAK3C7mF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8Y,KAAG,CAAC7F,MAAO,CAAEonB,UAAW,QAASl7B,SAChCa,cAACwmF,GAAY,CACXvvE,GAAG,0BACHgR,SAAUgwF,EACVvyF,QAASghE,EAAavnF,SACvB,yBAOR8tE,GAAajtE,cAAC02E,KAAc,CAACtiE,MAAM,eAClC64D,GACAphE,IACCA,EAAKlO,OAAS,EACbqC,cAAC6zE,GAAK,CACJiH,OAAK,EACLH,QAASA,EACT9uE,KAAMA,EACNykE,MAAI,EACJsK,YAAU,EACVC,aAAc,KAGhB76E,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,OAIfpoE,eAAC4U,GAAM,CACLzM,KAAM8/E,EACN/tE,QAASguE,EACTqlB,WAAY,CAAE/qG,MAAO,CAAEI,MAAO,QAAUlU,SAAA,CAExCsR,eAACyV,GAAW,CAAA/mB,SAAA,CAAC,iCAC+B,OAAXg5G,QAAW,IAAXA,OAAW,EAAXA,EAAa39D,cAE9Cx6C,cAAC8lB,GAAa,CAAA3mB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkzE,cAAc35F,SAAA,CAClDsR,eAACmb,KAAI,CAACG,MAAI,EAACnb,WAAS,EAAC+lB,GAAI,GAAIjmB,UAAWkV,KAAWmzE,YAAY55F,SAAA,CACjD,OAAXg5G,QAAW,IAAXA,KAAalkE,cACZxjC,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,wBAG7Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,iBACNjqB,MAAK,GAAA8D,OAAgB,OAAX83G,QAAW,IAAXA,OAAW,EAAXA,EAAalkE,sBAK7Bj0C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,2BAG7Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CAAChyE,MAAM,SAASjqB,MAAkB,OAAX47G,QAAW,IAAXA,OAAW,EAAXA,EAAax3G,WAErDX,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,cACNjqB,MAAkB,OAAX47G,QAAW,IAAXA,OAAW,EAAXA,EAAatlD,gBAGxB7yD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,iBACNjqB,MAAOuwC,KAAkB,OAAXqrE,QAAW,IAAXA,OAAW,EAAXA,EAAa51D,eACxB3S,OAAO,mBACP6K,kBAGPz6C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,YACNjqB,MAAOuwC,KAAkB,OAAXqrE,QAAW,IAAXA,OAAW,EAAXA,EAAayL,QACxBh0E,OAAO,mBACP6K,kBAGPz6C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,OACNjqB,MAAkB,OAAX47G,QAAW,IAAXA,OAAW,EAAXA,EAAa2L,iBAGxB9jH,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,OACNjqB,MAAkB,OAAX47G,QAAW,IAAXA,OAAW,EAAXA,EAAa4L,kBAGZ,OAAX5L,QAAW,IAAXA,OAAW,EAAXA,EAAa6L,kBACZhkH,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,mBACNjqB,MAAkB,OAAX47G,QAAW,IAAXA,GAA4B,QAAjBuL,EAAXvL,EAAa6L,uBAAe,IAAAN,OAAjB,EAAXA,EAA8B7kF,QAAQ,IAAK,UAIxD7+B,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACw4F,GAAc,CACbhyE,MAAM,0BACNjqB,MAAkB,OAAX47G,QAAW,IAAXA,KAAa8L,sBAAwB,MAAQ,YAI1DjkH,cAAC8Y,KAAG,CAAC4S,GAAI,EAAGmiB,GAAI,EAAE1uC,SAChBa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,cAE3Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWkV,KAAWmzE,YAAY55F,SACvC,OAAXg5G,QAAW,IAAXA,OAAW,EAAXA,EAAa34G,QAAQwkB,MAAM,MAAMtO,KAAI,CAACqW,EAAMitE,IAEzCh5F,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAC5B4sB,GADkCitE,YAQ/Ch5F,cAACwlB,GAAa,CAAArmB,SACZa,cAAC4rB,KAAI,CACHhb,WAAS,EACTF,UAAWkV,KAAWkG,oBACtBob,eAAe,SAAQ/nC,SAEvBa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC8vF,GAAY,CAACnpE,WAAS,EAACjB,QAASizE,EAAYlvF,KAAK,qBAK9C,EClUX,MAAMy6G,GAAgC95F,OAAaC,MAAM,CAC9DquF,kBAAmBtuF,OAEhB5kB,SAAStC,EAAUqC,WAAWC,UAC9BI,QACC1C,EAAUqC,WAAWgB,iBACrBrD,EAAUqC,WAAWY,eAEzB6C,OAAQohB,OAEL5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,UAClCmtC,OAAQvoB,OAAaqjF,KAAK,SAAU,CAClC0W,GAAIluD,GAAkBmuD,YACtBz5G,KAAMyf,OAAa5kB,SAAStC,EAAUqC,WAAWC,cC2JtC6+G,ICpLX,GAAO,GAAQ,GDoLJA,GAhK2BA,KACxC,MAAMx5F,EAAOC,aAAkC,CAC7CG,KAAM,WACNF,SAAUC,aAAYk5F,OAGjBl+F,EAASwhE,GAAc/1E,oBAAS,IACjC,WAAE0H,GAAeQ,KAEjB2qG,EAAcz5F,EAAK05F,MAAM,SAAU,MAEnCC,EAAYA,IAChB35F,EAAKu6B,MAAM,CACTszD,uBAAmBl8G,EACnBwM,OAAQ,KACR2pC,YAAQn2C,IAmCZ,OACEwD,cAAAyV,WAAA,CAAAtW,SACEa,cAACi5E,GAAW,CAACn5E,MAAM,uBAAsBX,SACvCsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cA7BDR,IAEpB,GADA28D,GAAW,GACP38D,EAAK6tF,mBAAqB7tF,EAAK7hB,OAAQ,CAAC,IAADy7G,EACzC,MAAMxwE,GAAiBppB,EAAK6tF,mBAE1B7tF,EAAK7hB,SAAWitD,GAAkByuD,SAC9B5xE,GAAmB6B,QAAQV,GAC3BnB,GAAmB5wC,OAAO+xC,EAA0B,QAAbwwE,EAAE55F,EAAK8nB,cAAM,IAAA8xE,IAAI,KAE3D95G,MAAM4gB,IACLi8D,GAAW,GACXj8D,EAnBeV,KACrB25F,IACArrG,EAAW,eAAD9Y,OACOwqB,EAAK6tF,kBAAiB,qBAAAr4G,OAAoBwqB,EAAK7hB,QAC9DiP,GAAYE,QACb,EAeSwsG,CAAc95F,GACd1R,EAAW,mCAAD9Y,OAC2BwqB,EAAK6tF,kBAAiB,WAC1D,IAEN51G,OAAOlB,IACN4lF,GAAW,GACXruE,EAAWvX,EAAMpC,QAAQ,GAE/B,KASMgsB,YAAU,EAAArsB,SAAA,CAEVsR,eAACmb,KAAI,CACHhb,WAAS,EACTF,UAAW2mG,KAAUzb,kBACrB/vE,UAAU,SAAQ1sB,SAAA,CAElBa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CAACzE,aAAc,EAAElV,SACnBa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,sFAM7Ba,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,qBAAoBrnB,SACrCa,cAACmnB,GAAS,CACRD,kBAAc1qB,EACdK,KAAK,OACL6T,UAAW2mG,KAAUuN,YACrBxmH,KAAK,oBACL6Y,GAAG,yCACHtP,YAAY,OACZukB,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAOyrG,kBACrBtsF,WACEvB,EAAK5d,OAAOyrG,kBACR7tF,EAAK5d,OAAOyrG,kBAAkBl5G,QAC9B,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAM,SACN5kB,QAASipB,EAAK5d,OAAOjE,OAAO7J,SAE5Ba,cAAC8nB,GAAa,CACZ1pB,KAAK,SACL2pB,QAAS,CACP,CAAEvB,MAAO,UAAWjqB,MAAO05D,GAAkByuD,UAC7C,CAAEl+F,MAAO,OAAQjqB,MAAO05D,GAAkBmuD,cAE5CntG,GAAG,8BACHiQ,aAAc,KACdJ,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAOjE,OACrBkf,aACE2C,EAAK5d,OAAOjE,OAAS6hB,EAAK5d,OAAOjE,OAAOxJ,QAAU,SAKzD8kH,GAAeA,IAAgBruD,GAAkBmuD,aAChDpkH,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,8CAA6CrnB,SAC9Da,cAACmnB,GAAS,CACR/oB,KAAK,SACL6Y,GAAG,8BACHiV,SAAUrB,EAAKsB,SACftvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRtJ,YAAY,wCACZyM,MAAM,UACNiY,WAAW,EACXC,KAAK,IACL3F,WAAS,EACTO,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAO0lC,OACrBvmB,WACEvB,EAAK5d,OAAO0lC,OAAS9nB,EAAK5d,OAAO0lC,OAAOnzC,QAAU,YAO9DQ,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTa,cAAC4rB,KAAI,CAAChb,WAAS,EAACs2B,eAAe,SAAQ/nC,SACrCa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRsR,eAACkV,KAAM,CACL1O,GAAG,8BACHhG,QAAQ,YACRP,UAAW2mG,KAAUpxF,uBACrBgC,UAAW4C,EAAK2B,UAAUE,SAAW1G,EACrCW,WAAS,EACT9pB,KAAK,SAAQsC,SAAA,CAEZ6mB,GAAWhmB,cAACmU,IAAgB,CAACvX,KAAM,MAClCopB,GAAW,wBAOxB,E,mFC/KP,SAAS,KAAiS,OAApR,GAAW9nB,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASyuG,GAAkB3lH,EAAMyX,GAC/B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,6uBACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,oOACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,oOACHN,KAAM,WAEV,CACA,MAAM,GAA0B,aAAiB+tG,IAClC,IC/BA,SAASC,GAAYvoH,EAAY+nE,GAC9C,MAAOygD,EAAgBC,GAAqBvzG,mBAASlV,GAYrD,OAVAuW,qBAAU,KACR,MAAMiK,EAAUvD,YAAW,KACzBwrG,EAAkBzoH,EAAM,GACvB+nE,GAEH,MAAO,KACL7qD,aAAasD,EAAQ,CACtB,GACA,CAACxgB,IAEGwoH,CACT,CCsDeE,OAxDkD/lH,IAK1D,IAADgmH,EAAAC,EAAA,IAL4D,gBAChEC,EAAe,oBACfC,EAAmB,aACnBC,GAAe,KACZvwG,GACJ7V,EACC,MAAM,WAAEia,GAAeQ,MAChBoO,EAASw9F,GAAc9zG,mBAAgB,KACvC2J,EAAYoqG,GAAiB/zG,mBAAiB,IAC/Cg0G,EAAsBX,GAAY1pG,EAAY,KAEpDtI,qBACE,KACM2yG,GAAuBA,EAAoB9nH,QAAU,GACvD+nH,EAAgBD,EAClB,GAEF,CAACA,IAGH,MAIMC,EAAmBC,IACvBP,EAAgBO,GACbh7G,MAAMi7G,IACL,IAAIC,EAAaR,EAAsBA,EAAoBO,GAAQA,EACnEL,EAAWM,EAAW,IAEvB/iH,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAGhD,OACEQ,cAAC+tF,GAAY,CACXhmE,QAASA,EACT03D,cAAeA,CAAC30E,EAAGs5F,KAfrBohB,EAe6CphB,EAAG,KAC1CrvF,EACJ9H,OACc,QADRi4G,EACJnwG,EAAM9H,cAAM,IAAAi4G,KACVI,GAAgBlqG,EAAWzd,OAAS,OAClCnB,EACA,CACEgD,QAAS0D,EAAUqC,WAAWC,SAC9B3I,KAAM,YAGduvB,WACkB,QADR+4F,EACRpwG,EAAMqX,kBAAU,IAAA+4F,KACdG,GAAgBlqG,EAAWzd,OAAS,OAClCnB,EACA0G,EAAUqC,WAAWC,UAE3B,EC5DC,MAAMsgH,GACX,4EACWC,GACX,mEA+GF,MAAMC,GAAuB97D,IAAkB,IAAA+7D,EAAA,OAC7Cn5E,OAASswD,KAAqB,QAAjB6oB,EAAC/7D,EAAO4K,iBAAS,IAAAmxD,IAAIn5E,OAAU,SAAS,EAAM,EAEtD,SAASo5E,GACd9xD,GAEA,MAAM+xD,EAAS/xD,EAAWjzB,QAAQ5pB,GAA0B,aAApBA,EAAGq9C,eACrCwxD,EAAShyD,EAAWjzB,QACvBmnE,GAC6B,YAA5BA,EAAW1zC,cACiB,cAA5B0zC,EAAW1zC,cACkB,aAA5B0zC,EAAW1zC,cACVoxD,GAAoB1d,IAAe,KAEnC+d,EAAeF,EAAOhlF,QAAQ11B,GAAMu6G,GAAoBv6G,GAAM,IAEpE,QAAS46G,EAAa1oH,OAAS,GAAK0oH,EAAa1oH,OAASyoH,EAAOzoH,OACnE,CAEO,SAAS2oH,GACdlyD,GAEA,MAAM+xD,EAAS/xD,EAAWjzB,QAAQ5pB,GAA0B,aAApBA,EAAGq9C,eACrCwxD,EAAShyD,EAAWjzB,QACvBmnE,GAC6B,YAA5BA,EAAW1zC,cACiB,cAA5B0zC,EAAW1zC,cACkB,aAA5B0zC,EAAW1zC,cACVoxD,GAAoB1d,IAAe,KAMzC,QAJsB6d,EAAOhlF,QAC1B11B,GAAMu6G,GAAoBv6G,IAAO,GAAKu6G,GAAoBv6G,GAAM,KAG5C9N,OAAS,GAAsB,GAAjByoH,EAAOzoH,OAC9C,CC/HO,IAAK4oH,GAAa,SAAbA,GAAa,OAAbA,IAAa,uBAAbA,IAAa,0CAAbA,CAAa,M,6CCwBzB,MAAMC,GAAiB,CACrB,CAAChgG,MAAO,MAAOjqB,OAAO,GACtB,CAACiqB,MAAO,KAAMjqB,OAAO,IAuvCRkqH,IC9yCX,GAAI,GAAO,GAAQ,GAAQ,GAAQ,GD8yCxBA,GApvCoBA,KAAO,IAADjyD,EAAAkB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA2wD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACvC,MACEtqG,OAAO,aAACu6C,EAAY,mBAAEhE,EAAkB,UAAEgJ,GAAU,UACpDyD,EAAS,cACToC,EAAa,YACbmB,GACEwB,MAEF/nD,OAAO,gBAACO,IACNwB,MAEGwoG,EAAWC,GAAgBz2G,oBAAkB,IAC7CmmC,EAAYuwE,GAAiB12G,oBAAkB,IAC/Cm1D,EAAUwhD,GAAe32G,mBAA2B,OACpD42G,EAAaC,GAAkB72G,sBAC/B82G,EAAkBC,GAAuB/2G,mBAAS,CAAC,IACnD+xE,EAAkBC,IAAuBhyE,oBAAkB,IAC5D,UAACgB,IAAao6B,KACdva,GAAQC,eACR6Y,GAAe1Y,aAAcJ,GAAMK,YAAY0Y,KAAK,OACpD9T,GAAUC,eACV,WACJixF,GAAU,mBACVC,GAAkB,oBAClBC,GAAmB,yBACnBC,IFvEW,WACb,MAAMH,EAAcv+D,IAAoC,IAAA2+D,EAAA,OACtD/7E,OAASswD,KAAqB,QAAjByrB,EAAC3+D,EAAO4K,iBAAS,IAAA+zD,IAAI/7E,OAAU,SAAS,EAAM,EAmG7D,MAAO,CACL27E,aACAC,mBAnGyBA,CACzBz0D,EACA2S,EACAkiD,KACY,IAADr0D,EACX,GACEmS,GACAA,EAAShvB,YACTgvB,EAAS5Q,qBACmB,QAA5BvB,EAAAR,EAAmBU,iBAAS,IAAAF,OAAA,EAA5BA,EAA8B92D,QAAS,EACvC,CACA,MAAMy2D,EAAa00D,EAAchrF,QAC/B,CAACC,EAAsCC,KAAkB,IAAD+qF,EAAAC,EACtD,MAAO,IACFjrF,EAC2D,QADxDgrF,EACsB,QADtBC,EACN/0D,EAAmBU,iBAAS,IAAAq0D,OAAA,EAA5BA,EAA8BtsG,MAAMnF,GAAMA,EAAEm8B,WAAa1V,WAAK,IAAA+qF,IAC3D90D,EAAmB/J,OAAOxW,WAAa1V,EACpCi2B,EAAmB/J,YACnB1tD,EACP,GAEH,IAGF,GAAI43D,EAAWtvC,MAAMuR,QAAY75B,IAAN65B,IACzB,MAAO,oDAET,MAAM8vF,EAAS/xD,EAAWjzB,QACvB5pB,GAA8B,aAAxBA,EAAGs9C,mBAENuxD,EAAShyD,EAAWjzB,QACvBmnE,GACiC,YAAhCA,EAAWzzC,kBACqB,cAAhCyzC,EAAWzzC,kBACsB,aAAhCyzC,EAAWzzC,kBACV4zD,EAAWngB,IAAe,KAG1B+d,EAAeF,EAAOhlF,QAAQ11B,GAAMg9G,EAAWh9G,GAAM,IACrDw9G,EAAgB9C,EAAOhlF,QAC1B11B,GAAMg9G,EAAWh9G,IAAO,GAAKg9G,EAAWh9G,GAAM,KAGjD,GAAI46G,EAAa1oH,OAAS,GAAK0oH,EAAa1oH,OAASyoH,EAAOzoH,OAC1D,OAAOmoH,GACT,GAAImD,EAActrH,OAAS,GAAsB,GAAjByoH,EAAOzoH,OACrC,OAAOooH,EACX,CAEA,MAAO,EAAE,EAmDT6C,yBAhD+BA,CAC/B30D,EACA2S,EACAsiD,KACI,IAADC,EACH,GACEviD,GACAA,EAAShvB,YACTgvB,EAAS5Q,qBACmB,QAA5BmzD,EAAAl1D,EAAmBU,iBAAS,IAAAw0D,OAAA,EAA5BA,EAA8BxrH,QAAS,EACvC,CAAC,IAADyrH,EACA,MAAMC,EAAoC,QAA/BD,EAAGn1D,EAAmBU,iBAAS,IAAAy0D,OAAA,EAA5BA,EAA8B1sG,MACzCnF,GAAMA,EAAEm8B,WAAaw1E,GAAkC,aAAvB3xG,EAAEs9C,mBAErC,GAAIw0D,EAAO,CACT,MAAMC,EAAMb,EAAWY,GACvB,OAAOA,GAASA,EAAMv0D,WAAaw0D,GAAO,IAAMA,EAAM,GAClD,iMACA,EACN,CACF,CAEA,MAAO,EAAE,EA2BTX,oBAxB0BA,CAC1B10D,EACA2S,EACAsiD,KACI,IAADK,EACH,GACE3iD,GACAA,EAAShvB,YACTgvB,EAAS5Q,qBACmB,QAA5BuzD,EAAAt1D,EAAmBU,iBAAS,IAAA40D,OAAA,EAA5BA,EAA8B5rH,QAAS,EACvC,CAAC,IAAD6rH,EACA,MAAMH,EAAoC,QAA/BG,EAAGv1D,EAAmBU,iBAAS,IAAA60D,OAAA,EAA5BA,EAA8B9sG,MACzCnF,GAAMA,EAAEm8B,WAAaw1E,GAAkC,aAAvB3xG,EAAEs9C,mBAErC,OAAOw0D,GAASA,EAAMv0D,WAAa2zD,EAAWY,GAAS,EACzD,CAEA,MAAO,EAAE,EASb,CEnCMI,IAEF98E,UAAW+8E,GACX98E,UAAW+8E,GACXj/F,UAAWk/F,IACTn9E,MACGo9E,GAAoBC,IAAyBr4G,wBAElDjV,GAEFsW,qBAAU,KAAO,IAADi3G,EACQ,OAAlB91D,QAAkB,IAAlBA,GAAwB,QAAN81D,EAAlB91D,EAAoB5hD,YAAI,IAAA03G,GAAxBA,EAA0BC,WAC5B9B,EACEp7E,KAAOmnB,EAAmB5hD,KAAK23G,YAC/Bl9E,OAASm9E,SAAS,EAAG,WAGrBh2D,EAAmBU,SACvB,GACC,CAACV,IAEJnhD,qBAAU,KACR,IAAIo3G,EAAa,CAAC,EACN,OAARtjD,QAAQ,IAARA,KAAUujD,oBACZD,EAAWC,kBAAoB//F,OAE5BC,MAAM,CACL7D,MAAO4D,OAAa5kB,WACpBjJ,MAAO6tB,OAAYggG,GACjBhgG,OAAaC,MAAM,CACjBssC,SAAUvsC,OAAa5kB,SAAStC,EAAUqC,WAAWC,eAI1DA,SAAStC,EAAUqC,WAAWC,WAEvB,OAARohE,QAAQ,IAARA,KAAUN,eACZ4jD,EAAW5jD,aAAel8C,OAEvBC,MAAM,CACL7D,MAAO4D,OAAa5kB,WACpBjJ,MAAO6tB,OAAa5kB,SAAStC,EAAUqC,WAAWC,YAEnDA,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,WAExB,OAARohE,QAAQ,IAARA,KAAUq5C,aACZiK,EAAWjK,WAAa71F,OAErB5kB,SAAStC,EAAUqC,WAAWC,UAC9BE,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWmB,WAAY,cAAe,IACpEf,IACCzC,EAAUqC,WAAWiB,OACrB+/F,GACErjG,EAAUqC,WAAWoB,WACrB,cACAzD,EAAUqC,WAAWiB,SAGxB+jB,UAAU,iDAEH,OAARq8C,QAAQ,IAARA,KAAUyjD,gBACZH,EAAWzoB,SAAWr3E,OAEnBzX,MAAMzP,EAAUqC,WAAWW,cAC3BV,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAEzC,OAARihE,QAAQ,IAARA,KAAU5Q,qBACZk0D,EAAW/1D,mBAAqB/pC,KACvBA,OAAa5kB,SAAStC,EAAUqC,WAAWC,WACjDA,SAAStC,EAAUqC,WAAWC,WAEvB,OAARohE,QAAQ,IAARA,KAAU0jD,eAAiBjC,IAC7B6B,EAAWK,qBAAuBngG,OAE/BggG,GACChgG,OAEG5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UACC,kGAGL/kB,SAAStC,EAAUqC,WAAWC,WAEvB,OAARohE,QAAQ,IAARA,KAAU4jD,WACZN,EAAWO,WAAargG,OAErB5kB,SAAStC,EAAUqC,WAAWC,WAEvB,OAARohE,QAAQ,IAARA,KAAU8jD,mBACZR,EAAWzjG,YAAc2D,OAEtB5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAM4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAE1C,OAARihE,QAAQ,IAARA,KAAU+jD,kBACZT,EAAWU,oBAAsBxgG,OAE9B5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAEzC,OAARihE,QAAQ,IAARA,KAAUikD,kBACZX,EAAWY,sBAAwB1gG,OAEhC5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAEzC,OAARihE,QAAQ,IAARA,KAAUmkD,YACZb,EAAWc,gBAAkB5gG,OAE1B5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAGrD6iH,EAAoB0B,GACpBe,GAAa3iC,SAAS,4BAAwB9rF,EAAW,CACvDi1F,gBAAgB,EAChBy5B,aAAa,GACb,GACD,CAACtkD,EAAUyhD,IAEd,MAAM4C,GAAengG,aAAa,CAChCC,SAAUC,aAAYZ,OAAaC,MAAMk+F,IACzCt9F,KAAM,WACN4pE,cAAe,CACbs2B,MAAO,MAAC3uH,MAGN4uH,GAAyBH,GAAa1G,MAAM,qBAC5C8G,GAAoBJ,GAAa1G,MAAM,gBACvC+G,GAAmCL,GAAa1G,MACpD,uBACA,MAAC/nH,IAEG+uH,GAA0BN,GAAa1G,MAAM,sBAEnDzxG,qBAAU,KACW,IAAD04G,EAAdP,KACFA,GAAa7lE,MAAM,CACjB+kE,kBAAmB,KACnB7jD,aAAc,KACdm7B,SAA4B,QAApB+pB,EAAU,OAAR5kD,QAAQ,IAARA,OAAQ,EAARA,EAAU66B,gBAAQ,IAAA+pB,IAAI,KAElClD,OAAe9rH,GACjB,GACC,CAACoqE,IAEJ9zD,qBAAU,KAWE,IAAD24G,EAVL7kD,GAAYA,EAASujD,yBAIf3tH,KAFgB,OAAtB4uH,SAAsB,IAAtBA,QAAsB,EAAtBA,GAAwB7uH,MAAMmgB,MAC3BjR,GAAWA,EAAEkrD,YAA8B,OAAjB00D,SAAiB,IAAjBA,QAAiB,EAAjBA,GAAmB9uH,UAGhD0uH,GAAa3iC,SAAS,eAAgB,KAAM,CAC1CmJ,gBAAgB,EAChBy5B,aAAa,IAGfD,GAAa3iC,SACX,WAC8D,QADpDmjC,EACVxuD,EAAUvgD,MAAME,GAAMA,EAAE+5C,YAA8B,OAAjB00D,SAAiB,IAAjBA,QAAiB,EAAjBA,GAAmB9uH,gBAAM,IAAAkvH,OAAA,EAA9DA,EACIpB,cACJ,CACE54B,gBAAgB,EAChBy5B,aAAa,IAIrB,GACC,CAACE,GAAwBC,GAAmBzkD,IAE/C9zD,qBAAU,KACR,GAAI5U,OAAOM,KAAK+pH,GAAkB5qH,OAAS,EAAG,CAC5C,IAAIsqB,EAAWzD,GACb4F,OAAaC,MAAMk+F,GACnB0C,GAAavmG,WAGH,OAARkiD,QAAQ,IAARA,KAAU5Q,qBACZ/tC,EACEA,GACkE,KAA3C,OAAvBsjG,SAAuB,IAAvBA,QAAuB,EAAvBA,GAAyBpqF,QAAQoZ,GAAcA,GAAK,IAAG58C,QACzDsqB,EACEA,IACuB,OAAvBsjG,SAAuB,IAAvBA,QAAuB,EAAvBA,GAAyBzmG,MAAMy1B,QAAoB/9C,IAAN+9C,MAErC,OAARqsB,QAAQ,IAARA,KAAU0jD,gBACZriG,EAAWA,QAA4BzrB,IAAhB6rH,GAEzB5kC,GAAoBx7D,IAAagjG,GAAaz+F,UAAUE,QAC1D,IACC,CACDu+F,GAAaz+F,UAAUE,QACvBu+F,GAAankG,QACbyhG,EACAgD,KAWF1uG,GAAe,gBARa/R,IACtBmgH,GAAaz+F,UAAUC,UACzB3hB,EAAEytE,iBACFztE,EAAE4gH,YACA,2DACJ,IAKF,MAuEMC,GAAwBnsH,GAE1BiR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,SAAQhU,SAAA,CACrCa,cAAC20E,GAAU,CAAC1hE,MAAO,CAACW,SAAU,aAC9B5T,cAACgR,IAAU,CAACC,QAAQ,QAAQP,UAAWC,KAAOi7G,eAAezsH,SAC1DK,OAuBHqsH,GAAwB3hE,KAE1BA,EAAO4xC,SACP5xC,EAAO4xC,QAAQn+F,OAAS,GACxBusD,EAAO6xC,MACP7xC,EAAO6xC,KAAKp+F,OAAS,GACrBusD,EAAO4hE,eACP5hE,EAAO4hE,cAAcnuH,OAAS,GAC9BusD,EAAO8xC,UACP9xC,EAAO8xC,SAASr+F,OAAS,GAGvBouH,GAAwB3tH,GAC5ButH,GAAqB,GAADtrH,OACfjC,EAAI,6EAML4tH,GAA2B5tH,GAC/ButH,GAAqB,GAADtrH,OACfjC,EAAI,0GAEX,OACEqS,eAAAgF,WAAA,CAAAtW,SAAA,CACGsT,KACCzS,cAACiV,IAAQ,CAACC,GAAI,8CAEdlV,cAAAyV,WAAA,CAAAtW,SACEa,cAACi5E,GAAW,CAACn5E,MAAM,qBAAoBX,SACrCsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOs7G,eAAe9sH,SAClDa,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAM,oEAAmErnB,SAEzEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAAC8nB,GAAa,CACZ1pB,KAAK,aACL2pB,QAASy+F,GACTjqH,MAAOq7C,EACP3tB,SAAUA,CAACnf,EAAGs5F,KACF,OAANA,IACExsD,IAAewsD,GACjBgkB,EAAY,MAEdD,EAAc/jB,GACd6mB,GAAa7lE,MAAM,CAACwhB,SAAU,OAChC,eAMMpqE,IAAfo7C,GAA2C,OAAfA,GAC3B53C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOs7G,eAAe9sH,SAClDa,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAM,wCAAuCrnB,SAEd,WAAf,OAAf8e,QAAe,IAAfA,OAAe,EAAfA,EAAiBiuG,WAAwB9gF,GACxCprC,cAAC0oF,KAAU,CAAAvpF,SACR84D,EACE92B,QACE28B,GACCA,EAAGlmB,aAAeA,GAClBkmB,EAAGiJ,WAC4B,WAAf,OAAf9oD,QAAe,IAAfA,OAAe,EAAfA,EAAiBiuG,aACC,OAAjBpuD,EAAGquD,WAAqC,OAAfruD,EAAGsuD,SAC5Bt/E,OAAS85C,UACP95C,KAAOgxB,EAAGquD,WACVr/E,KAAOgxB,EAAGsuD,aAGjB12G,KAAK22G,GACJrsH,cAACwhF,KAAgB,CAEfjlF,MAAO8vH,EAAElqE,WAAW3iC,WACpBkiE,SAAiB,OAAR9a,QAAQ,IAARA,OAAQ,EAARA,EAAUzkB,cAAekqE,EAAElqE,WACpCr7B,QAAS9mB,cAAC2oF,KAAK,CAACv0E,MAAM,YACtBoS,MAAO6lG,EAAEjuH,KACT6rB,SAAUA,KAAA,IAAAqiG,EAAA,OACRlE,EAGG,QAHQkE,EACTr0D,EAAav7C,MACVohD,GAAOA,EAAG3b,aAAekqE,EAAElqE,oBAC7B,IAAAmqE,IAAI,KACN,GAVED,EAAElqE,gBAgBfniD,cAAC8Y,KAAG,CAACpI,UAAW2mG,KAAU5D,iBAAiBt0G,SACzCa,cAAC8nB,GAAa,CACZ1pB,KAAK,WACL2pB,QAASkwC,EACN92B,QACE28B,GACCA,EAAGlmB,aAAeA,GAClBkmB,EAAGiJ,WAC4B,WAAf,OAAf9oD,QAAe,IAAfA,OAAe,EAAfA,EAAiBiuG,aACC,OAAjBpuD,EAAGquD,WACc,OAAfruD,EAAGsuD,SACLt/E,OAAS85C,UACP95C,KAAOgxB,EAAGquD,WACVr/E,KAAOgxB,EAAGsuD,aAGjB12G,KAAK22G,IAAC,CACL7lG,MAAO6lG,EAAEjuH,KACT7B,MAAO8vH,EAAElqE,eAEbj7B,aAAc,KACd3qB,MAAe,OAARqqE,QAAQ,IAARA,OAAQ,EAARA,EAAUzkB,WACjBl4B,SAAUA,CAACnf,EAAGs5F,KAAC,IAAAmoB,EAAA,OACbnoB,GACAgkB,EACgD,QADrCmE,EACTt0D,EAAav7C,MAAMohD,GAAOA,EAAG3b,aAAeiiD,WAAE,IAAAmoB,IAC9C,KACD,WAQL,OAAR3lD,QAAQ,IAARA,OAAQ,EAARA,EAAUzkB,cAAeokE,GAAciG,WAC/B,OAAR5lD,QAAQ,IAARA,OAAQ,EAARA,EAAUzkB,cAAeokE,GAAckG,oBACzCxE,EAWY,OAARrhD,QAAQ,IAARA,KAAUxE,YAGD,KAFK,OAAlBnO,QAAkB,IAAlBA,GAA0B,QAARO,EAAlBP,EAAoB/J,cAAM,IAAAsK,GAAW,QAAXkB,EAA1BlB,EAA4BwN,iBAAS,IAAAtM,OAAnB,EAAlBA,EAAuCv0B,QACpC/pB,GAAyB,aAAnBA,EAAEmoF,eACT5hG,QACA8S,eAACqI,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,SAAQhU,SAAA,CACrCa,cAAC20E,GAAU,IACXlkE,eAACO,IAAU,CACTC,QAAQ,YACRP,UAAWC,KAAOi7G,eAAezsH,SAAA,CAEd,OAAlB80D,QAAkB,IAAlBA,GAA0B,QAAR0B,EAAlB1B,EAAoB/J,cAAM,IAAAyL,GAA1BA,EAA4BpjD,WACX,OAAlB0hD,QAAkB,IAAlBA,GAA0B,QAAR2B,EAAlB3B,EAAoB/J,cAAM,IAAA0L,GAA1BA,EAA4BtjD,SAAQ,GAAAjS,OAEd,OAAlB4zD,QAAkB,IAAlBA,GAA0B,QAAR4B,EAAlB5B,EAAoB/J,cAAM,IAAA2L,OAAR,EAAlBA,EAA4BtjD,UAAS,KAAAlS,OACjB,OAAlB4zD,QAAkB,IAAlBA,GAA0B,QAAR6B,EAAlB7B,EAAoB/J,cAAM,IAAA4L,GAAU,QAAVC,EAA1BD,EAA4BxjD,gBAAQ,IAAAyjD,OAAlB,EAAlBA,EAAsC/6B,oBAAmB,QAC3D,WAAY,IAAI,4EAKd,OAAR4rC,QAAQ,IAARA,KAAUxE,YACdypD,GAAqB53D,EAAmB/J,QACtCz5C,eAACqI,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,SAAQhU,SAAA,CACrCa,cAAC20E,GAAU,IACXlkE,eAACO,IAAU,CACTC,QAAQ,YACRP,UAAWC,KAAOi7G,eAAezsH,SAAA,CAEd,OAAlB80D,QAAkB,IAAlBA,GAA0B,QAARyyD,EAAlBzyD,EAAoB/J,cAAM,IAAAw8D,GAA1BA,EAA4Bn0G,WACX,OAAlB0hD,QAAkB,IAAlBA,GAA0B,QAAR0yD,EAAlB1yD,EAAoB/J,cAAM,IAAAy8D,GAA1BA,EAA4Br0G,SAAQ,GAAAjS,OAEd,OAAlB4zD,QAAkB,IAAlBA,GAA0B,QAAR2yD,EAAlB3yD,EAAoB/J,cAAM,IAAA08D,OAAR,EAAlBA,EAA4Br0G,UAAS,KAAAlS,OACjB,OAAlB4zD,QAAkB,IAAlBA,GAA0B,QAAR4yD,EAAlB5yD,EAAoB/J,cAAM,IAAA28D,GAAU,QAAVC,EAA1BD,EAA4Bv0G,gBAAQ,IAAAw0G,OAAlB,EAAlBA,EAAsC9rF,oBAAmB,QAC3D,WAAY,IAAI,wGAMxB4rC,GACEn2D,eAACmb,KAAI,CAACG,MAAI,EAACnb,WAAS,EAAAzR,SAAA,CAClBa,cAACgR,IAAU,CAACC,QAAQ,YAAYP,UAAWC,KAAO+7G,SAASvtH,SAAC,wEAI5DsR,eAAA,QACEkX,aAAa,MACbyD,SAAU6/F,GAAa5/F,cAlRrBshG,IA+BpB,GA9BAA,EAAYxqE,WAAqB,OAARykB,QAAQ,IAARA,OAAQ,EAARA,EAAUzkB,WAC/BwqE,EAAYx4D,mBACdw4D,EAAYx4D,mBAAqBw4D,EAAYx4D,mBACAhzB,QAAQ9c,GAAcA,EAAI,IAC1B3O,KAAK2gB,IACG,CACLqd,SAAUrd,EACV4d,cAAe,EACf4tB,WAAY,MAI5D8qD,EAAYx4D,mBAAqB,CAC/B,CACElgB,cAAe,EACfP,SAAUugB,EAAmB/J,OAAOxW,SACpCmuB,WAAY,IAId8qD,EAAYpC,uBACdoC,EAAYpC,qBAAuBoC,EAAYpC,qBAAqB70G,KACjE5K,IACQ,CACLmpC,cAAe,EACfP,SAAU5oC,OAKd6hH,EAAYxC,kBAAmB,CACjC,IAAIyC,EACFD,EAAYxC,kBAAkB5tH,MAAMmgB,MACjCE,GAAuBA,EAAE+5C,WAAag2D,EAAYrmD,aAAa/pE,QAEpEowH,EAAYh2D,SAAWi2D,EAAej2D,SACtCg2D,EAAYrmD,aAAY,QAAAjmE,OAAWysC,KAAO8/E,EAAej9E,UAAUC,OACjE,cACD,QAAAvvC,OAAOysC,KAAO8/E,EAAe/8E,QAAQD,OAAO,eAC7C+8E,EAAYtmD,aAAeumD,EAAevmD,YAC5C,CACA,MAAMwjD,EAAqBnB,GACzBz0D,EACA2S,EACA+lD,EAAYx4D,mBAAmBz+C,KAAK6B,GAAWA,EAAEm8B,YAEnDo2E,GAAsBD,GAClBA,EAAmBlsH,OAAS,EAC9B+rH,MAEAhpD,EAAUisD,GACV7pD,EAAc,GACdvrC,GAAQ93B,KAAK,2BACbwkE,IACF,IA6NkBz4C,YAAU,EACV9a,UAAW2mG,KAAU1wF,UAAUxnB,SAAA,CAE9B89D,GAAa2J,EAASujD,mBACrBnqH,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOs7G,eAAe9sH,SAClDa,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAM,8BAA6BrnB,SAEnCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACk/E,GAAc,CACb9gF,KAAK,oBACL2pB,SA7SR8kG,GA8SU5vD,EA9SIn/D,GA+SJ,eA9SvB+uH,GAAM/uF,QAAO,SAAUgvF,EAAkBC,GAC9C,IAAI3oB,EAAItmG,cAAekvH,SAAWlvH,GAAIivH,GAAgBA,EAAajvH,IAC/Ds3F,EAAK03B,EAAYpwG,MAAMnF,GAAWA,GAAKA,EAAEiP,QAAU49E,IAMvD,OALIhP,EACFA,EAAGzwE,OAAOllB,KAAKstH,GAEfD,EAAYrtH,KAAK,CAAC+mB,MAAO49E,EAAGz/E,OAAQ,CAACooG,KAEhCD,CACT,GAAG,KAsS2Bp3G,KACCu3G,IAGA,CACC1wH,MAAO0wH,EAAStoG,OAChB6B,MAAOymG,EAASzmG,UAGpBM,QAASmkG,GAAankG,QACtBI,aAAc,KACdtlB,QACyC,QAAtCmlH,EAACkE,GAAah+G,OAAOk9G,yBAAiB,IAAApD,IAArCA,EACEpiG,QAENuD,aACuC,QAArC8+F,EAAAiE,GAAah+G,OAAOk9G,yBAAiB,IAAAnD,GAArCA,EAAuCriG,OACE,QADIsiG,EACzCgE,GAAah+G,OAAOk9G,yBAAiB,IAAAlD,GAC7B,QAD6BC,EAArCD,EACEtiG,cAAM,IAAAuiG,OAD6B,EAArCA,EACU1nH,QACV,WAOfy9D,GACC2J,EAASN,cACT8kD,IACAA,GAAuB7uH,OACrByD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOs7G,eAAe9sH,SAClDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,gBAAernB,SAC1Ca,cAACk/E,GAAc,CACb9gF,KAAK,eACL2pB,QAASqjG,GAAuB7uH,MAAMmZ,KACnCu3G,IAAyB,CACxB1wH,MAAO0wH,EAASt2D,SAChBnwC,MAAM,QAADnmB,OAAUysC,KACbmgF,EAASt9E,UACTC,OAAO,cAAa,QAAAvvC,OAAOysC,KAC3BmgF,EAASp9E,QACTD,OAAO,mBAGb9oB,QAASmkG,GAAankG,QACtBllB,QAASqpH,GAAah+G,OAAOq5D,aAC7Bp/C,aAAc,KACdgB,aACE+iG,GAAah+G,OAAOq5D,aAChB2kD,GAAah+G,OAAOq5D,aAAa9mE,QACjC,WAOjBonE,EAAS0jD,eACR75G,eAACmb,KAAI,CACHG,MAAI,EACJnb,WAAS,EACTib,UAAU,MACVqb,eAAe,aACf/zB,WAAW,aACXwjB,GAAI,GAAGx3B,SAAA,CAEPa,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAM,uCAAsCrnB,SAE5Ca,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,EACJ7b,UAAWC,KAAOs7G,eAAe9sH,SAEjCa,cAAC8nB,GAAa,CACZ1pB,KAAK,WACL2pB,QAAS,CACP,CAACvB,MAAO,MAAOjqB,OAAO,GACtB,CAACiqB,MAAO,KAAMjqB,OAAO,IAEvBA,MAAO8rH,EACPp+F,SAAUA,CAACnf,EAAGs5F,KACN,OAANA,GAAckkB,EAAelkB,EAAE,QAKtCikB,GACC53G,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAACgR,IAAU,CACTC,QAAQ,YACRP,UAAWC,KAAO+7G,SAASvtH,SAC5B,gBAGDa,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAM,8BAGV/V,eAACmb,KAAI,CACHG,MAAI,EACJ4K,GAAI,GACJ/lB,WAAS,EACTF,UAAWC,KAAOirF,kBAAkBz8F,SAAA,CAEnCmsH,GAA0B51G,KACzB,CAAC6kC,EAAQ18C,KAAmB,IAADqvH,EACzB,OACEltH,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GACE94B,IACAytH,GAA0B3tH,OAAS,EAC/BE,EAAQ,EACN,EACA,GACF,GAEN0uB,GAAI,EAAEptB,SAGNa,cAACilH,GAAmB,CAClBG,gBACEv9D,GAAckC,yBAEhBs7D,oBACEpoD,GACGA,EACL7+D,KAAK,uBACLkhF,eAAiBh2D,GACfA,EAAO/W,WAAa+W,EAAOhX,SAAQ,GAAAjS,OAC5BipB,EAAO/W,UAAS,KAAAlS,OAAIipB,EAAOhX,UAC9B,GAEN+sE,aAAe/1D,GACbA,EAAO/W,WAAa+W,EAAOhX,SAAQ,GAAAjS,OAC5BipB,EAAO/W,UAAS,KAAAlS,OAAIipB,EAAOhX,UAC9B,GAEN07E,UAAU,WACVrnE,WAAS,EACThf,YAAY,kBACZsmF,eAAe,UACf76E,OAAO,SACP+Y,SAAU8+F,GAAa9+F,SACvBgzD,UAAU,EACVlyE,OACEg+G,GAAah+G,OACVs9G,sBACHU,GAAah+G,OACVs9G,qBAAqB1sH,GAE1BuuB,WACE6+F,GAAah+G,OACVs9G,uBAE2B,QAFP2C,EACvBjC,GAAah+G,OACVs9G,qBAAqB1sH,UAAM,IAAAqvH,OAAA,EAD9BA,EAEI1tH,SAENyqB,SAAUA,CAAC5M,EAAO9gB,KAChB,IAAI4wH,EACF7B,GACF6B,EAAUtvH,GAAStB,EACnB0uH,GAAa3iC,SACX,uBACA6kC,EACA,CACE17B,gBAAgB,EAChBy5B,aAAa,GAEhB,KAEH,SAAA7qH,OArDYxC,EAAK,MAAAwC,OAAM,OAADk6C,QAAC,IAADA,OAAC,EAADA,EAAG7G,UAsDtB,IAIbjjC,eAACmb,KAAI,CACHG,MAAI,EACJ4K,GACE20F,GAA0B3tH,OAAS,EAAI,EAAI,EAE7C4uB,GAAI,EACJ7b,UAAWC,KAAOy8G,mBAAmBjuH,SAAA,CAEpCmsH,GAA0B3tH,OAAS,GAClCqC,cAACqmB,KAAU,CACTX,QAASA,KACPulG,GAAa3iC,SACX,uBACA,IACKgjC,GAA0BxuH,MAC3B,GACC,IAGL,CACE20F,gBAAgB,EAChBy5B,aAAa,GAEhB,EAEHx6G,UAAS,GAAArQ,OAAKg3G,KAAUgW,kBAAiB,KAAAhtH,OAAIsQ,KAAOqiF,YAAa7zF,SAEjEa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,OAGlCg4G,GAA0BxmG,MACxB81C,GAAU0yD,MAAM1yD,IAAoB,KAAVA,IAE3B56D,cAACqmB,KAAU,CACTX,QAASA,OAETuC,UAAU,EACVvX,UACE2mG,KAAUkW,0BACXpuH,SAEDa,cAACwtH,GAAO,CAACn6G,MAAO,GAAIC,OAAQ,OAG9BtT,cAACqmB,KAAU,CACTX,QAASA,KACP4lG,GAA0B7rH,UACxBjD,GAEKyuH,GAAa3iC,SAClB,uBACAgjC,GACA,CAAC75B,gBAAgB,KAGrB/gF,UAAW2mG,KAAUgW,kBAAkBluH,SAEvCa,cAACwtH,GAAO,CAACn6G,MAAO,GAAIC,OAAQ,mBAS3CszD,EAASq5C,YACRjgH,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOs7G,eAAe9sH,SAClDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,cAAarnB,SACxCa,cAACmnB,GAAS,CACR/oB,KAAK,aACLvB,KAAK,SACL2qB,WAAY,CACVwE,WAAY,CACVtmB,IAAK,IAGTiC,YAAY,OACZukB,SAAU++F,GAAa9+F,SACvBvqB,QAASqpH,GAAah+G,OAAOgzG,WAC7B7zF,WACE6+F,GAAah+G,OAAOgzG,WAChBgL,GAAah+G,OAAOgzG,WAAWzgH,QAC/B,WAOfonE,EAASyjD,eACRrqH,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOs7G,eAAe9sH,SAClDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAM,WACNC,YAAY,+BAAyBtnB,SAErCa,cAACmnB,GAAS,CACR/oB,KAAK,WAELvB,KAAK,QACLqvB,SAAU++F,GAAa9+F,SACvBvqB,QAASqpH,GAAah+G,OAAOw0F,SAC7Br1E,WACE6+F,GAAah+G,OAAOw0F,SAChBwpB,GAAah+G,OAAOw0F,SAASjiG,QAC7B,WAQfonE,EAAS5Q,oBACR93D,OAAOM,KAAKy1D,GAAoBt2D,OAAS,GACvC8S,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAM,6BAGVxmB,cAAC4rB,KAAI,CACHhb,WAAS,EACTmb,MAAI,EACJrb,UAAWC,KAAOs7G,eAClB94G,WAAW,SAAQhU,SAEnBsR,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,EACJtZ,MAAO,CAAC80B,YAAa,QAAQ5oC,SAE7Ba,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAK,GAAAnmB,OACsB,QADtB8mH,EACHlzD,EAAmB/J,cAAM,IAAAi9D,OAAA,EAAzBA,EAA2B50G,UAAS,KAAAlS,OACT,QADS+mH,EAClCnzD,EAAmB/J,cAAM,IAAAk9D,GAAU,QAAVC,EAAzBD,EAA2B90G,gBAAQ,IAAA+0G,OAAV,EAAzBA,EAAqCrsF,qBACzCtqB,UAAWC,KAAO88G,yBAGI,QAAzBnG,EAAArzD,EAAmB/J,cAAM,IAAAo9D,GAAW,QAAXC,EAAzBD,EAA2BtlD,iBAAS,IAAAulD,OAAX,EAAzBA,EAAsCpmF,QACpC/pB,GAAyB,aAAnBA,EAAEmoF,eACT5hG,QAAS,EACTqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACtB4sH,GAAqB,GAAD1rH,OAEQ,QAFRmnH,EAEjBvzD,EAAmB/J,cAAM,IAAAs9D,OAAA,EAAzBA,EAA2Bj1G,UAAS,KAAAlS,OACT,QADSonH,EAClCxzD,EAAmB/J,cAAM,IAAAu9D,GAAU,QAAVC,EAAzBD,EAA2Bn1G,gBAAQ,IAAAo1G,OAAV,EAAzBA,EAAqC1sF,wBAG3C6wF,GACF53D,EAAmB/J,QAEnBlqD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACtB6sH,GAAwB,GAAD3rH,OAEK,QAFLsnH,EAEpB1zD,EAAmB/J,cAAM,IAAAy9D,OAAA,EAAzBA,EAA2Bp1G,UAAS,KAAAlS,OACT,QADSunH,EAClC3zD,EAAmB/J,cAAM,IAAA09D,GAAU,QAAVC,EAAzBD,EAA2Bt1G,gBAAQ,IAAAu1G,OAAV,EAAzBA,EAAqC7sF,wBAI7Ch7B,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAAC8nB,GAAa,CACZ1pB,KAAI,wBACJ2pB,QAAS,CACP,CACEvB,MAAO,MACPjqB,MACyB,QADpBurH,EACL7zD,EAAmB/J,cAAM,IAAA49D,OAAA,EAAzBA,EAA2Bp0E,UAE7B,CAACltB,MAAO,KAAMjqB,OAAQ,IAExB0rB,UAC2B,QAAzB8/F,EAAA9zD,EAAmB/J,cAAM,IAAA69D,OAAA,EAAzBA,EAA2B/lD,UACxBrkE,QAAS,EAEdupB,aAC2B,QADf8gG,EACV/zD,EAAmB/J,cAAM,IAAA89D,OAAA,EAAzBA,EAA2Bt0E,SAE7B5sB,QAASmkG,GAAankG,iBAM/BmtC,EAAmBU,WAClBV,EAAmBU,UACAxzB,QACE5pB,IAAOA,EAAEu9C,WAAa2zD,GAAWlxG,IAAM,IAEzC7B,KAAI,CAAC6B,EAAG1Z,KAAa,IAAA6vH,EAAAC,EAAAC,EAAAC,EAxlBpCruH,EAwlBoC,OACpBQ,cAAC4rB,KAAI,CACHhb,WAAS,EACTmb,MAAI,EAEJrb,UAAWC,KAAOs7G,eAClB94G,WAAW,SAAQhU,SAEnBsR,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,EACJtZ,MAAO,CAAC80B,YAAa,QAAQ5oC,SAE7Ba,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAK,GAAAnmB,OACHkX,EAAEhF,UAAS,KAAAlS,OACC,QADDqtH,EACTn2G,EAAEjF,gBAAQ,IAAAo7G,OAAA,EAAVA,EAAY1yF,qBAChBtqB,UAAWC,KAAO88G,wBAIpB7mD,EAAShvB,YAAc6wE,GAAWlxG,GAAK,EACvC9G,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAM/T,SACjBa,cAAC8nB,GAAa,CACZ1pB,KAAI,sBAAAiC,OACFxC,EAAQ,EAAC,KAEXkqB,QAAS,CACP,CACEvB,MAAO,MACPjqB,MAAOgb,EAAEm8B,UAEX,CAACltB,MAAO,KAAMjqB,OAAQ,IAExB0rB,SAAU1Q,EAAEyqD,UAAUrkE,OAAS,EAC/BmpB,QAASmkG,GAAankG,QACtBI,cAAe,MAGnBlnB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACrBwsH,GAAqB,mFAKf,QAAXgC,EAAAp2G,EAAEyqD,iBAAS,IAAA2rD,OAAA,EAAXA,EAAaxsF,QACV/pB,GAAyB,aAAnBA,EAAEmoF,eACT5hG,QAAS,EACT8S,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACtB4sH,GAAqB,GAAD1rH,OAEjBkX,EAAEhF,UAAS,KAAAlS,OACC,QADDutH,EACTr2G,EAAEjF,gBAAQ,IAAAs7G,OAAA,EAAVA,EAAY5yF,sBAElBh7B,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAM/T,SACjBa,cAAC8nB,GAAa,CACZ1pB,KAAI,sBAAAiC,OACFxC,EAAQ,EAAC,KAEXkqB,QAAS,CACP,CACEvB,MAAO,MACPjqB,MAAOgb,EAAEm8B,UAEX,CAACltB,MAAO,KAAMjqB,OAAQ,IAExB0rB,SAAU1Q,EAAEyqD,UAAUrkE,OAAS,EAC/BmpB,QAASmkG,GAAankG,QACtBI,cAAe,SAInB2kG,GAAqBt0G,GACvB9G,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACtB6sH,GAAwB,GAAD3rH,OAEpBkX,EAAEhF,UAAS,KAAAlS,OACC,QADDwtH,EACTt2G,EAAEjF,gBAAQ,IAAAu7G,OAAA,EAAVA,EAAY7yF,sBAElBh7B,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAM/T,SACjBa,cAAC8nB,GAAa,CACZ1pB,KAAI,sBAAAiC,OACFxC,EAAQ,EAAC,KAEXkqB,QAAS,CACP,CACEvB,MAAO,MACPjqB,MAAOgb,EAAEm8B,UAEX,CAACltB,MAAO,KAAMjqB,OAAQ,IAExB0rB,SAAU1Q,EAAEyqD,UAAUrkE,OAAS,EAC/BmpB,QAASmkG,GAAankG,QACtBI,cAAe,SAInByhG,GACF10D,EACA2S,EACArvD,EAAEm8B,UAEFjjC,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CAhqB/EwsH,GACE,oEAiqBsD3rH,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAM/T,SACjBa,cAAC8nB,GAAa,CACZ1pB,KAAI,sBAAAiC,OACFxC,EAAQ,EAAC,KAEXkqB,QAAS,CACP,CACEvB,MAAO,MACPjqB,MAAOgb,EAAEm8B,UAEX,CAACltB,MAAO,KAAMjqB,OAAQ,IAExB0rB,SAAU1Q,EAAEyqD,UAAUrkE,OAAS,EAC/BmpB,QAASmkG,GAAankG,QACtBI,cAAe,SAKrBzW,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAAC8nB,GAAa,CACZ1pB,KAAI,sBAAAiC,OACFxC,EAAQ,EAAC,KAEXkqB,QAAS,CACP,CACEvB,MAAO,MACPjqB,MAAOgb,EAAEm8B,UAEX,CAACltB,MAAO,KAAMjqB,OAAQ,IAExB0rB,SAAU1Q,EAAEyqD,UAAUrkE,OAAS,EAC/BmpB,QAASmkG,GAAankG,YAGzB8hG,GACC30D,EACA2S,EACArvD,EAAEm8B,WAEF1zC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8Y,KAAG,CAACsiB,WAAY,EAAEj8B,UA9uBjDK,EAgvBkC,iMA9uB9DiR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,SAAQhU,SAAA,CACrCa,cAACihG,GAAW,CAAChuF,MAAO,CAACW,SAAU,aAC/B5T,cAAC8Y,KAAG,CAACsiB,WAAY,EAAEj8B,SACjBa,cAACgR,IAAU,CACTC,QAAQ,QACRmD,MAAM,YACNnB,MAAO,CAAC6yB,WAAY,QAAQ3mC,SAE3BK,qBAklB4C+X,EAAEm8B,SA4JF,OAIlCkzB,EAAS4jD,UACRxqH,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOs7G,eAAe9sH,SAClDa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,yBAAwBrnB,SACnDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAAC8nB,GAAa,CACZ1pB,KAAK,aACL2pB,QAASy+F,GACT1/F,QAASmkG,GAAankG,QACtBllB,QAASqpH,GAAah+G,OAAOw9G,WAC7BviG,aACE+iG,GAAah+G,OAAOw9G,WAChBQ,GAAah+G,OAAOw9G,WAAWjrH,QAC/B,WAOfonE,EAAS8jD,kBACRj6G,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOs7G,eAAe9sH,SAAA,CAClDa,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAyB,cAAlBogD,EAASxoE,KAAuB,2FAA6F,sCAEtI4B,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACmnB,GAAS,CACR/oB,KAAK,cACLuJ,YAAY,wBACZ0kB,WAAS,EACTC,KAAM,EACNJ,SAAU++F,GAAa9+F,SACvBvqB,QAASqpH,GAAah+G,OAAOwZ,YAC7B2F,WACE6+F,GAAah+G,OAAOwZ,YAChBwkG,GAAah+G,OAAOwZ,YAAYjnB,QAChC,UAMbonE,EAAS+jD,iBACRl6G,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOs7G,eAAe9sH,SAAA,CAClDa,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAM,+CAERxmB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACmnB,GAAS,CACR/oB,KAAK,sBACLuJ,YAAY,SACZukB,SAAU++F,GAAa9+F,SACvBvqB,QAASqpH,GAAah+G,OAAO29G,oBAC7Bx+F,WACE6+F,GAAah+G,OAAO29G,oBAChBK,GAAah+G,OAAO29G,oBACnBprH,QACD,UAMbonE,EAASikD,iBACRp6G,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOs7G,eAAe9sH,SAAA,CAClDa,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAM,0CAERxmB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACmnB,GAAS,CACR/oB,KAAK,wBACLuJ,YAAY,kBACZukB,SAAU++F,GAAa9+F,SACvBvqB,QACIqpH,GAAah+G,OAAO69G,sBAExB1+F,WACE6+F,GAAah+G,OAAO69G,sBAChBG,GAAah+G,OAAO69G,sBACnBtrH,QACD,UAMbonE,EAASmkD,WACRt6G,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOs7G,eAAe9sH,SAAA,CAClDa,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAM,wCAERxmB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACmnB,GAAS,CACR/oB,KAAK,kBACLuJ,YAAY,kBACZukB,SAAU++F,GAAa9+F,SACvBvqB,QAASqpH,GAAah+G,OAAO+9G,gBAC7B5+F,WACE6+F,GAAah+G,OAAO+9G,gBAChBC,GAAah+G,OAAO+9G,gBAAgBxrH,QACpC,UAMdQ,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC8tH,KAAK,CAACpxF,KAAM18B,cAAC+tH,KAAqB,CACjC96G,MAAO,CAACC,QAAS,OAAQ86G,UAAW,YAC/B/8G,QAAQ,WAAWuZ,SAAS,UAASrrB,SAC1Ca,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,yHAMhCsR,eAACqI,KAAG,CACF4S,GAAI,EACJxY,QAASk4B,GAAe,QAAU,OAClClE,eAAe,SAAQ/nC,SAAA,CAEvBa,cAAC0hC,IAAI,CACHxsB,GAAI,+BACJxE,UAAWC,KAAOs9G,WAAW9uH,SAE7BsR,eAACkV,KAAM,CACL1U,QAAQ,WACRgG,GAAG,2BACHvG,UAAW2mG,KAAUxxF,sBAAsB1mB,SAAA,CAE1C+D,EAAUC,QAAQE,OAAO,oBAI9BrD,cAAC8Y,KAAG,CACFG,GAAKmyB,GAAmB,EAAJ,EACpByC,GAAIzC,GAAe,EAAI,EAAEjsC,SAGzBsR,eAACkV,KAAM,CACL9oB,KAAK,SACLoa,GAAG,6BACHhG,QAAQ,YACRP,UAAW2mG,KAAUpxF,uBACrBgC,SAAUu7D,EAAiBrkF,SAAA,CAE1B+D,EAAUC,QAAQW,SAAS,yBAnsB9B,4BA1DV2M,eAACqI,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,SAAQhU,SAAA,CACrCa,cAAC20E,GAAU,IACX30E,cAACgR,IAAU,CACTC,QAAQ,YACRP,UAAWC,KAAOi7G,eAAezsH,SAClC,kGAowBbsR,eAACu7B,GAAM,CACLpzB,KAAMgxG,GACNj/F,QAASg/F,GACTn5G,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,kDAI3Ba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAAA7R,SAAE0qH,OAEf7pH,cAACmsC,GAAa,CAACC,OAAK,EAAAjtC,SAClBa,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQC,GACxBsiB,QAASikG,aA//BEuE,IAACrB,GAAc/uH,EAmgC/B,E,yCCzyCP,SAAS,KAAiS,OAApR,GAAWI,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS+3G,GAAUjvH,EAAMyX,GACvB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAO,GAAkB,gBAAoB,IAAK,CAClEqhC,OAAQ,mBACM,gBAAoB,SAAU,CAC5C9pB,GAAI,GACJC,GAAI,GACJC,EAAG,GACHS,UAAW,qBACXlB,KAAM,YACF,KAAU,GAAqB,gBAAoB,OAAQ,CAC/DM,EAAG,oJACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,sJACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,yJACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,suCACHN,KAAM,aACH,KAAU,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,SAAU,CAC/GG,GAAI,YACJ0c,EAAG,EACHC,EAAG,EACHvgB,MAAO,GACPC,OAAQ,GACRqgG,YAAa,iBACbC,0BAA2B,QACb,gBAAoB,UAAW,CAC7CC,aAAc,EACdtoF,OAAQ,uBACO,gBAAoB,gBAAiB,CACpDwU,GAAI,cACJljC,KAAM,SACN8nB,OAAQ,8CACO,gBAAoB,eAAgB,CACnDmvF,OAAQ,EACRC,SAAU,QACVh0E,GAAI,cACJxU,OAAQ,uBACO,gBAAoB,WAAY,CAC/CyoF,GAAI,EACJC,GAAI,IACW,gBAAoB,iBAAkB,CACrDC,aAAc,IACC,gBAAoB,gBAAiB,CACpDr3G,KAAM,SACN8nB,OAAQ,+CACO,gBAAoB,UAAW,CAC9CsG,KAAM,SACNkpF,IAAK,qBACL5oF,OAAQ,uBACO,gBAAoB,UAAW,CAC9CN,KAAM,SACN8U,GAAI,gBACJo0E,IAAK,qBACL5oF,OAAQ,aAEZ,CACA,MAAM,GAA0B,aAAiB4iG,IAClC,QC/EX,G,gCACJ,SAAS,KAAiS,OAApR,GAAWjwH,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASg4G,GAAqBlvH,EAAMyX,GAClC,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,sEACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBs3G,IAClC,Q,qBCwEAC,ICnGX,GAAO,GAAQ,GAAQ,GAAS,GAAU,GAAQ,GAAQ,GAAQ,GAAQ,GAAU,GAAU,GAAQ,GAAOC,GAAQC,GAAQC,GAAQ,GAAU,GAAU,GDmG9IH,GA9E0BnvH,IAKlC,IALmC,MACxC64D,EAAK,WACLK,EAAU,cACV0K,EAAa,WACb2rD,GACDvvH,EACC,MAAMy4B,EAAajB,KACbyyD,EAAetrF,IACnBilE,EAAcjlE,EAAM,EAEtB,OACEmC,cAAAyV,WAAA,CAAAtW,SACGw4B,EAAWX,OACVvmB,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWC,KAAO+9G,cAAev7G,WAAW,SAAQhU,SAAA,CAClEa,cAAC4rB,KAAI,CAACG,MAAI,EAACnb,WAAS,EAACs2B,eAAe,aAAavQ,GAAI,EAAEx3B,SACpDi5D,EAAa,GACZp4D,cAACqmB,KAAU,CACTX,QAASA,IAAMyjE,EAAY/wB,EAAa,GACxC1nD,UAAWC,KAAOg+G,MAAMxvH,SAExBa,cAAC4uH,GAAQ,CAACl+G,UAAWkV,KAAWipG,kBAItC7uH,cAAC4rB,KAAI,CAACG,MAAI,EAACnb,WAAS,EAACs2B,eAAe,SAASvQ,GAAI,EAAEx3B,SACjDsR,eAAA,OAAAtR,SAAA,CACEa,cAACgR,IAAU,CAACN,UAAWC,KAAOm+G,WAAW3vH,SAAA,QAAAkB,OACvC+3D,EAAa,EAAC,KAAA/3D,OACZ03D,EAAMp6D,UACVqC,cAACgR,IAAU,CAACN,UAAWC,KAAOo+G,UAAU5vH,SACrC44D,EAAMK,GAAYh6D,YAIzB4B,cAAC4rB,KAAI,CAACG,MAAI,EAACnb,WAAS,EAAC+lB,GAAI,EAAGuQ,eAAe,WAAU/nC,SAClDi5D,EAAa,EAAIL,EAAMp6D,QACtBqC,cAACqmB,KAAU,CACTX,QAASA,IAAMyjE,EAAY/wB,EAAa,GACxC1nD,UAAWC,KAAOg+G,MAAMxvH,SAExBa,cAAC4uH,GAAQ,WAMjB5uH,cAACgvH,KAAU,CAACC,WAAS,EAAC72D,WAAYA,EAAYtuB,kBAAgB,EAAA3qC,SAC3D44D,EAAMriD,KAAI,CAACqtD,EAAMllE,KAAK,IAAAqxH,EAAA,OACrBlvH,cAACmvH,KAAI,CAAAhwH,SACHa,cAACovH,KAAU,CACT1pG,QAASA,IAAMyjE,EAAYtrF,GAC3B6+B,KACE18B,cAAC21B,KAAK,CACJjlB,UAAWC,KAAOklB,MAClBD,aAAqC,QAAzBs5F,EAAET,EAAW5wH,GAAOwxH,aAAK,IAAAH,IAAI,EAAE/vH,SAE3Ca,cAAA,OACE0Q,UAAS,GAAArQ,OAAKsQ,KAAO2+G,SAAQ,KAAAjvH,OAC3B+3D,IAAev6D,EAAQ8S,KAAO4+G,eAAiB,MAC9CpwH,SAEFi5D,IAAev6D,EAAQklE,EAAK3D,aAAe2D,EAAKrmC,SAIvDhsB,UAAWC,KAAO6+G,WAClBzlG,eAAa,EAAA5qB,SAEZ4jE,EAAK3kE,QApBC2kE,EAAK3kE,KAsBT,OAIZ,E,oFC9FP,SAAS,KAAiS,OAApR,GAAWF,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASq5G,GAAavwH,EAAMyX,GAC1B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,IACPC,OAAQ,IACRuD,QAAS,cACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,k+CACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,iJACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,gJACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,SAAU,CACpEO,GAAI,QACJC,GAAI,QACJC,EAAG,OACHT,KAAM,WACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,QACJC,GAAI,QACJC,EAAG,OACHT,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,gKACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,wsBACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,yzFACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,mOACHN,KAAM,QACNU,OAAQ,aACL,KAAa,GAAwB,gBAAoB,SAAU,CACtEH,GAAI,QACJC,GAAI,QACJC,EAAG,OACHT,KAAM,aACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,QACJC,GAAI,QACJC,EAAG,OACHT,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,0KACHN,KAAM,aACH,KAAU,GAAqB,gBAAoB,OAAQ,CAC9DijE,GAAI,GACJC,GAAI,KACJC,GAAI,GACJE,GAAI,KACJ3iE,OAAQ,aACL82G,KAAWA,GAAsB,gBAAoB,OAAQ,CAChEv0C,GAAI,KACJC,GAAI,IACJC,GAAI,KACJE,GAAI,GACJ3iE,OAAQ,aACL+2G,KAAWA,GAAsB,gBAAoB,OAAQ,CAChEx0C,GAAI,GACJC,GAAI,KACJC,GAAI,IACJE,GAAI,KACJ3iE,OAAQ,aACLg3G,KAAWA,GAAsB,gBAAoB,OAAQ,CAChEz0C,GAAI,KACJC,GAAI,GACJC,GAAI,KACJE,GAAI,GACJ3iE,OAAQ,aACL,KAAa,GAAwB,gBAAoB,SAAU,CACtEH,GAAI,GACJC,GAAI,EACJC,EAAG,EACHT,KAAM,aACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,GACJC,GAAI,GACJC,EAAG,EACHT,KAAM,aACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,IACJC,GAAI,KACJC,EAAG,IACHC,OAAQ,UACRk4G,cAAe,GACfnzF,YAAa,MAEjB,CACA,MAAM,GAA0B,aAAiBkzF,IAClC,IC9GX,GAAO,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAU,GAAW,GAAQ,GAAO,GAAQ,GAAQ,GAAQ,GAAS,GAAU,GD8G3H,IC7Gf,SAAS,KAAiS,OAApR,GAAWvxH,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASu5G,GAAoBzwH,EAAMyX,GACjC,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,IACPC,OAAQ,IACRuD,QAAS,cACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,k+CACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,4lBACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,k1DACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,kEACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,mEACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,mWACHN,KAAM,QACNU,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,gJACHN,KAAM,aACH,KAAa,GAAwB,gBAAoB,UAAW,CACvEO,GAAI,OACJC,GAAI,QACJ4kB,GAAI,QACJm3B,GAAI,QACJv8C,KAAM,aACH,KAAc,GAAyB,gBAAoB,UAAW,CACzEO,GAAI,QACJC,GAAI,QACJ4kB,GAAI,QACJm3B,GAAI,QACJv8C,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,2SACHN,KAAM,UACNU,OAAQ,aACL,KAAU,GAAqB,gBAAoB,OAAQ,CAC9DuiE,GAAI,GACJC,GAAI,KACJC,GAAI,GACJE,GAAI,KACJ3iE,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEuiE,GAAI,KACJC,GAAI,GACJC,GAAI,KACJE,GAAI,GACJ3iE,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEuiE,GAAI,GACJC,GAAI,KACJC,GAAI,GACJE,GAAI,KACJ3iE,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEuiE,GAAI,KACJC,GAAI,GACJC,GAAI,KACJE,GAAI,GACJ3iE,OAAQ,aACL,KAAY,GAAuB,gBAAoB,SAAU,CACpEH,GAAI,GACJC,GAAI,GACJC,EAAG,EACHT,KAAM,aACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,GACJC,GAAI,EACJC,EAAG,EACHT,KAAM,aACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,IACJC,GAAI,KACJC,EAAG,IACHC,OAAQ,UACRk4G,cAAe,GACfnzF,YAAa,MAEjB,CACA,MAAM,GAA0B,aAAiBozF,IAClC,ICzGX,GAAO,GAAQ,GAAQ,GAAO,GAAQ,GAAQ,GAAQ,GAAS,GAAU,GDyG9D,ICxGf,SAAS,KAAiS,OAApR,GAAWzxH,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASw5G,GAAkB1wH,EAAMyX,GAC/B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,IACPC,OAAQ,IACRuD,QAAS,cACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,k+CACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,imBACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,83DACHN,KAAM,aACH,KAAU,GAAqB,gBAAoB,OAAQ,CAC9DijE,GAAI,GACJC,GAAI,IACJC,GAAI,GACJE,GAAI,IACJ3iE,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEuiE,GAAI,KACJC,GAAI,GACJC,GAAI,KACJE,GAAI,EACJ3iE,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEuiE,GAAI,EACJC,GAAI,KACJC,GAAI,GACJE,GAAI,KACJ3iE,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEuiE,GAAI,KACJC,GAAI,IACJC,GAAI,KACJE,GAAI,GACJ3iE,OAAQ,aACL,KAAY,GAAuB,gBAAoB,SAAU,CACpEH,GAAI,GACJC,GAAI,GACJC,EAAG,EACHT,KAAM,aACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,EACJC,GAAI,GACJC,EAAG,EACHT,KAAM,aACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,IACJC,GAAI,IACJC,EAAG,IACHC,OAAQ,UACRk4G,cAAe,GACfnzF,YAAa,MAEjB,CACA,MAAM,GAA0B,aAAiBqzF,IAClC,IC5EX,GAAO,GAAQ,GAAQ,GAAO,GAAQC,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAS,GAAS,GAAS,GAAO,GAAQ,GAAQ,GAAQ,GAAU,GAAU,GD4EzJ,IC3Ef,SAAS,KAAiS,OAApR,GAAW3xH,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS05G,GAAe5wH,EAAMyX,GAC5B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,IACPC,OAAQ,IACRuD,QAAS,cACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,k+CACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,kEACHN,KAAM,QACNU,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,wDACHN,KAAM,UACNU,OAAQ,aACL,KAAU,GAAqB,gBAAoB,OAAQ,CAC9DP,GAAI,kBACJH,KAAM,SACQ,gBAAoB,OAAQ,CAC1CM,EAAG,gFACC,KAAW,GAAsB,gBAAoB,OAAQ,CACjEA,EAAG,6lBACHN,KAAM,UACN+c,KAAM,2BACHg8F,KAAWA,GAAsB,gBAAoB,OAAQ,CAChE54G,GAAI,kBACJH,KAAM,SACQ,gBAAoB,OAAQ,CAC1CM,EAAG,gFACC,KAAW,GAAsB,gBAAoB,OAAQ,CACjEA,EAAG,ylBACHN,KAAM,UACN+c,KAAM,2BACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEzc,EAAG,oDACHN,KAAM,QACN48C,YAAa,GACbl8C,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,mDACHN,KAAM,QACN48C,YAAa,GACbl8C,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,mDACHN,KAAM,QACN48C,YAAa,GACbl8C,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEJ,EAAG,oDACHN,KAAM,QACN48C,YAAa,GACbl8C,OAAQ,aACL,KAAY,GAAuB,gBAAoB,OAAQ,CAClEJ,EAAG,gHACHN,KAAM,QACN48C,YAAa,GACbl8C,OAAQ,aACL,KAAY,GAAuB,gBAAoB,OAAQ,CAClEJ,EAAG,kDACHN,KAAM,UACNU,OAAQ,aACL,KAAY,GAAuB,gBAAoB,SAAU,CACpEH,GAAI,QACJC,GAAI,QACJC,EAAG,QACHT,KAAM,UACNU,OAAQ,aACL,KAAU,GAAqB,gBAAoB,OAAQ,CAC9DuiE,GAAI,GACJC,GAAI,KACJC,GAAI,GACJE,GAAI,KACJ3iE,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEuiE,GAAI,KACJC,GAAI,GACJC,GAAI,KACJE,GAAI,GACJ3iE,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEwiE,GAAI,KACJC,GAAI,EACJE,GAAI,KACJ3iE,OAAQ,aACL,KAAW,GAAsB,gBAAoB,OAAQ,CAChEuiE,GAAI,IACJC,GAAI,GACJC,GAAI,IACJE,GAAI,GACJ3iE,OAAQ,aACL,KAAa,GAAwB,gBAAoB,SAAU,CACtEH,GAAI,GACJC,GAAI,EACJC,EAAG,EACHT,KAAM,aACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,GACJC,GAAI,GACJC,EAAG,EACHT,KAAM,aACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,KACJC,GAAI,KACJC,EAAG,IACHC,OAAQ,UACRk4G,cAAe,GACfnzF,YAAa,MAEjB,CACA,MAAM,GAA0B,aAAiBuzF,IAClC,ICzGf,MAAMC,GAAUA,CAAC3rB,EAAeznF,IAC9BzS,KAAK8H,UAAU,IAAKoyF,EAAGt6E,SAAUnN,IAoDpBqzG,OAlD0C9wH,IAOlD,IAPmD,UACxDuzD,EAAS,SACTw9D,EAAQ,QACRnpG,EAAO,SACPmB,GAAW,EAAK,kBAChBioG,GAAoB,EAAK,QACzBxqG,GACDxmB,EACC,OACEc,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACZszD,GACCA,EAAU/8C,KAAI,CAAC6B,EAAG1Z,IAChBmC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAACuC,WAAW,SAAQhU,SAAA,CACjCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAK,GAAAnmB,OAAKkX,EAAEhF,UAAS,KAAAlS,OAAIkX,EAAEjF,SAAS0oB,yBAGxCh7B,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAAC8nB,GAAa,CACZ1pB,KAAI,GAAAiC,OAAK4vH,EAAQ,KAAA5vH,OAAIxC,EAAK,KAC1BkqB,QAAS,CACP,CACEvB,MAAO,MACPjqB,MAAO2zH,EACHH,GAAQx4G,GAAG,GACXA,EAAEm8B,UAER,CACEltB,MAAO,KACPjqB,MAAO2zH,EAAoBH,GAAQx4G,GAAG,IAAU,IAGpD2P,aAAcgpG,EAAoBH,GAAQx4G,GAAG,IAAU,EACvD0Q,SAAUA,EACVnB,QAASA,EACTpB,QAASA,UA1BOnO,EAAEm8B,eAiC/B,E,OCFQy8E,OAvDwCjxH,IAGhD,IAHiD,WACtDk1D,EAAU,aACVg8D,GACDlxH,EACC,MACEwe,OAAO,QAAEg3B,IACP+wB,KAkBJ,SAAS4qD,EAAmB/nB,GAC1B,OAjBF,SAAsB50D,GACpB,IAAKgB,EAAQwgB,UAAW,OAAO,EAC/B,IAAIo7D,GAAQ,EAEZ,IAAK,MAAMnqE,KAAUzR,EAAQwgB,UAC3B,GAAK/O,EAAOgP,aACZ,IAAK,MAAMlU,KAAOkF,EAAOgP,aACJlU,EAAImU,8BAA8B14C,MAClD5R,GAAMA,EAAE4oC,WAAaA,GAAY5oC,EAAE9B,SAAWs9F,GAAe4C,aAEhDonB,GAAQ,GAG5B,OAAOA,CACT,CAGMC,CAAajoB,EAAU50D,UAClB1zC,cAAA,QAAM0Q,UAAU,mBAAkBvR,SAAC,qBAGrC,IACT,CAEA,OACEa,cAAAyV,WAAA,CAAAtW,UACa,OAAVi1D,QAAU,IAAVA,OAAU,EAAVA,EAAYz2D,QAAS,GACpB8S,eAAAgF,WAAA,CAAAtW,SAAA,CACGixH,GACC3/G,eAAAgF,WAAA,CAAAtW,SAAA,CACGi1D,EAAWz2D,OAAO,aAAWy2D,EAAWz2D,OAAS,GAAK,IAAI,IAAE,OAGjEqC,cAAA,OAAK0Q,UAAU,iBAAgBvR,SAClB,OAAVi1D,QAAU,IAAVA,OAAU,EAAVA,EAAY1+C,KAAI,CAAC4yF,EAAWzqG,IAC3B4S,eAAA,QAAAtR,SAAA,IAAAkB,OACMioG,EAAU/1F,UAAS,KAAAlS,OAAIioG,EAAUh2F,UACpC+9G,EAAmB/nB,KAFXzqG,WAQlB,E,yBCsMQ2yH,OAlO8BtxH,IAKtC,IAADuxH,EAAAC,EAAAC,EAAAr9B,EAAA,IALwC,KAC5CvyB,EAAI,KACJl2C,EAAI,SACJnD,EAAQ,QACRkpG,GACD1xH,EACC,MAAO2M,EAAMg9F,GAAWp3F,wBAAqCjV,IACvD,WAAE2c,GAAeQ,MACjB,YAAEtI,EAAW,SAAEc,GAAaqC,IAC5By/E,EACJ5iF,EAAY2D,SACV+Y,GAAgB6C,kDAEjBvf,EAAY2D,SACX+Y,GAAgB4C,0CAEd,iBAAEkgG,GCpCK,SAAgC3xH,GAOpC,IAPqC,WAC9C4xH,EAAU,QACVv5F,EAAO,MACPz3B,EAAQ,UAAS,iBACjBixH,EAAgB,sBAChBC,EAAqB,sBACrBC,GACM/xH,EACN,MAAOgyH,EAAWC,GAAgB1/G,oBAAS,GAsE3C,OApEAqB,qBAAU,KACJg+G,GAAYK,GAAa,EAAM,GAClC,CAACL,IAkEG,CAAED,iBAhEgBA,IAErB7wH,cAAAyV,WAAA,CAAAtW,SACGo4B,EAAQ55B,OAAS,GAChB8S,eAAC+6F,KAAS,CAAC5K,SAAUswB,EAAW5zC,UAAW,EAAEn+E,SAAA,CAC3CsR,eAACg7F,KAAgB,CAAC/6F,UAAWqgH,EAAiB5xH,SAAA,CAC5Ca,cAACgR,IAAU,CAACN,UAAWsgH,EAAsB7xH,SAAEW,IAC/CE,cAAC0hC,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QAASA,IAAMyrG,GAAcD,GAC7BxgH,UAAWugH,EACXn7G,UAAU,SAAQ3W,SAEjB+xH,EAAY,iBAAmB,oBAGpClxH,cAAC2rG,KAAgB,CAAAxsG,SACfa,cAAC8Y,KAAG,CACF5F,QAAQ,QACRD,MAAO,CAAEu7E,UAAW,IAAKt6E,UAAW,OAAQb,MAAO,QACnD+9G,GAAI,EAAEjyH,SAELo4B,EAAQ7hB,KAAI,CAAC+4E,EAAgB5wF,IAC5BmC,cAACw6B,KAAK,CACJ8iD,UAAW,EAAEn+E,SAGbsR,eAACqI,KAAG,CAACyP,QAAS,EAAEppB,SAAA,CACda,cAACgR,IAAU,CAACC,QAAQ,YAAYmD,MAAM,gBAAejV,SAClDsvF,EAAeC,UACdj+E,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,aACW,IACXa,cAAC4nF,GAAQ,CACPhgF,KAAM6mF,EAAeC,UACrB9+C,OAAO,cACN,IAAI,KACJ,IACH5vC,cAAC4nF,GAAQ,CACPhgF,KAAM6mF,EAAeC,UACrB9+C,OAAO,UACN,IAAI,MACH6+C,EAAeE,aAGrB3uF,cAAAyV,WAAA,CAAAtW,SAAE,4BAGNa,cAACgR,IAAU,CAACiC,MAAO,CAAEsB,UAAW,cAAepV,SAC7Ca,cAACgR,IAAU,CAAC8E,UAAU,OAAO7E,QAAQ,YAAW9R,SAC7CsvF,EAAe5uC,gBAGhB,WAAAx/C,OA3BUxC,EAAK,KAAAwC,OAAIouF,EAAeC,uBAuC5D,CD3C+B2iC,CAAwB,CACnDP,WAAwB,QAAdL,EAAM,OAAJ1vD,QAAI,IAAJA,OAAI,EAAJA,EAAMgJ,cAAM,IAAA0mD,IAAI,EAC5Bl5F,QAAa,OAAJwpC,QAAI,IAAJA,KAAM9lD,SACX8lD,EAAK9lD,SAASvF,KAAK6hB,IAAO,CACxBsoB,QAAStoB,EAAQsoB,QACjB8uC,UAAWp3D,EAAQs/D,cACnBnI,UAAWn3D,EAAQm3D,cAErB,GACJ5uF,MAAO,2BACPixH,iBAAkBpgH,KAAO2gH,eACzBN,sBAAuBrgH,KAAO4gH,aAC9BN,sBAAuBtgH,KAAO6gH,kBAGhC1+G,qBAAU,KACR,MAAMgH,EAAcnQ,IAAMsnE,YAAY56D,SAuBtC,OArBIqR,EACForB,GAAmBE,mBAAmBl5B,EAAYzO,OAC/CV,MAAM3B,IACL6/F,EAAQ,CAAEz/B,YAAQ5sE,EAAWwM,UAAS,IAEvClG,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,IAGhDrI,QAAQsa,IAAI,CACVsrD,GAAYE,UAAUjuD,EAAYzO,OAClCynC,GAAmBE,mBAAmBl5B,EAAYzO,SAEjDV,MAAKgL,IAAuB,IAArByzD,EAAQpgE,GAAO2M,EACrBkzF,EAAQ,CAAEz/B,SAAQpgE,UAAS,IAE5BlG,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,IAI3C,KACLwP,EAAYzW,OAAO,sBAAsB,CAC1C,GACA,CAACqkB,IAEJ,MAUM+pG,EAAqB,OAAJ5lH,QAAI,IAAJA,GAAY,QAAR6kH,EAAJ7kH,EAAMu9D,cAAM,IAAAsnD,OAAR,EAAJA,EAAch0G,MAClC+tD,GAAMA,EAAEt4D,SAASsoC,gBAAkBtoC,EAASsoC,gBAG/C,OACEz6C,cAAAyV,WAAA,CAAAtW,SACG0M,EACC4E,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,SAAQrnB,SACzBa,cAAC8+E,GAAM,CACL53D,aAA0B,QAAdypG,EAAM,OAAJ5vD,QAAI,IAAJA,OAAI,EAAJA,EAAM/3D,cAAM,IAAA2nH,IAAI,UAC9BvyH,KAAK,SACL0oB,QAAS+D,EAAK/D,QACdiB,QAASlc,EAAK7C,OAAO0M,KAAK1M,IAAM,CAC9BzM,MAAOyM,EAAO5K,KACdooB,MAAOxd,EAAO5K,SAEhBspB,SAAUA,EACV9lB,QAASipB,EAAK5d,OAAOjE,OACrBkf,aACE2C,EAAK5d,OAAOjE,OAAS6hB,EAAK5d,OAAOjE,OAAOxJ,QAAU,UAKxDkoB,GAAY7b,EAAKu9D,QACjBppE,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,cAAarnB,SAC9Ba,cAACk/E,GAAc,CACbn3D,QACEksE,EACIpoF,EAAKu9D,OACFjoC,QACExN,GACCA,EAAEsgE,cACFtgE,EAAE0tB,WAA0B,OAAdowE,QAAc,IAAdA,OAAc,EAAdA,EAAgBpwE,WAEjC3rC,KAAK80D,IAAK,CACThkD,MAAM,GAADnmB,OAAKmqE,EAAMj4D,UAAS,KAAAlS,OAAImqE,EAAMl4D,UACnC/V,MAAOiuE,EAAM92B,aAEjB7nC,EAAKu9D,OAAO1zD,KAAK80D,IAAK,CACpBhkD,MAAM,GAADnmB,OAAKmqE,EAAMj4D,UAAS,KAAAlS,OAAImqE,EAAMl4D,UACnC/V,MAAOiuE,EAAM92B,aAGrBt1C,KAAK,QACLuJ,YAAY,gBACZgf,WAAS,EACTvT,OAAO,SACP8T,aA7DY65C,KAA0B,IAAD2wD,EACnD,MAAMv9B,EAAkB,OAAJtoF,QAAI,IAAJA,GAAY,QAAR6lH,EAAJ7lH,EAAMu9D,cAAM,IAAAsoD,OAAR,EAAJA,EAAch1G,MAAMiX,GAAMA,EAAE+f,YAAiB,OAAJqtB,QAAI,IAAJA,OAAI,EAAJA,EAAM4G,WACnE,OAAOwsB,EACH,CACE3tE,MAAM,GAADnmB,OAAK8zF,EAAY5hF,UAAS,KAAAlS,OAAI8zF,EAAY7hF,UAC/C/V,MAAO43F,EAAYzgD,UAErB,IAAI,EAsDoB0gD,CAAmBrzB,GACjCn/D,QAASipB,EAAK5d,OAAOu9D,MACrBtiD,aACE2C,EAAK5d,OAAOu9D,MAA+B,QAA1B8oB,EAAGzoE,EAAK5d,OAAOu9D,MAAMjuE,aAAK,IAAA+2F,OAAA,EAAvBA,EAAyB9zF,QAAU,GAEzDsnB,QAAS+D,EAAK/D,QACd7P,GAAI,0BACJgsE,eAAa,QAKpB2tC,IAAYlpG,GACX1nB,cAAC8Y,KAAG,CAACzE,aAAc,EAAElV,SACnBsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAAC8Y,KAAG,CAACzE,aAAc,EAAElV,SACnBa,cAACgR,IAAU,CAACiC,MAAO,CAAE4yB,WAAY,KAAM1mC,SAAC,cAG1Ca,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACqhF,GAAkB,CACjB76D,MAAM,kBACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,qBAGT4B,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACqhF,GAAkB,CACjB76D,MAAM,sBACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,sBAGT4B,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACqhF,GAAkB,CACjB76D,MAAM,oCACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,8BAGT4B,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACqhF,GAAkB,CACjB76D,MAAM,8EACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,0BAGT4B,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACqhF,GAAkB,CACjB76D,MAAM,sBACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,yBAGT4B,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACqhF,GAAkB,CACjB76D,MAAM,2BACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,2BAObspB,GACAjX,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CAACpI,UAAWC,KAAO4mB,QAAQp4B,SAC7Ba,cAAC6wH,EAAgB,QAGrB7wH,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,gBAAgBE,YAAY,EAAKvnB,SAClDa,cAACmnB,GAAS,CACR/oB,KAAK,eACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXC,KAAK,IACL3F,WAAS,EACThf,YAAY,2BACZuf,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAO0kH,aACrBvlG,WACEvB,EAAK5d,OAAO0kH,aACR9mG,EAAK5d,OAAO0kH,aAAanyH,QACzB,eASlBQ,cAAC02E,KAAc,CAACtiE,MAAM,eAEvB,EEtPA,IAAKw9G,GAAiC,SAAjCA,GAAiC,OAAjCA,IAAiC,+CAAjCA,IAAiC,yCAAjCA,IAAiC,6CAAjCA,IAAiC,qCAAjCA,IAAiC,2CAAjCA,IAAiC,qCAAjCA,IAAiC,yCAAjCA,CAAiC,MAsF9BC,OAlD+BA,CAC5Cn0G,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAK+0H,GAAkCE,qBACrC,MAAO,IACFp0G,EACHsI,SAAS,EACTsoB,QAAQ,EACRyjF,sBAAkBv1H,GAEtB,KAAKo1H,GAAkCI,kBACrC,MAAO,IACFt0G,EACHsI,SAAS,EACTsoB,QAAQ,EACR2jF,UAAWt0G,EAAOO,QAClB6zG,sBAAkBv1H,GAEtB,KAAKo1H,GAAkCM,oBACrC,MAAO,IAAKx0G,EAAOsI,SAAS,EAAOsoB,QAAQ,GAC7C,KAAKsjF,GAAkCO,gBACrC,MAAO,IAAKz0G,EAAOq0G,iBAAkBp0G,EAAOO,SAC9C,KAAK0zG,GAAkCQ,mBACrC,MAAO,IAAK10G,EAAOwN,UAAU,GAC/B,KAAK0mG,GAAkCS,gBACrC,MAAO,IACF30G,EACHwN,UAAU,EACV+mG,UAAWpjF,aAAQnxB,EAAMu0G,WAAYnjF,IACnC,MAAMwjF,EAAgBxjF,EAAM9pB,WACzBla,GACCA,EAAEynH,4BACF50G,EAAOO,QAAQq0G,4BAKnB,OAHID,GAAiB,IACnBxjF,EAAMwjF,GAAiB30G,EAAOO,SAEzB4wB,CAAK,IAEdijF,sBAAkBv1H,GAEtB,KAAKo1H,GAAkCY,kBACrC,MAAO,IAAK90G,EAAOwN,UAAU,EAAO6mG,sBAAkBv1H,GACxD,QACE,OAAOkhB,EACX,EC5EF,MAAMuxB,GAAe,CACnBjpB,SAAS,EACTkF,UAAU,EACVojB,QAAQ,EACRyjF,sBAAkBv1H,EAClBy1H,UAAW,IAGPQ,GAAiC3zH,wBACrC,CAAC,GAuEY4zH,OApEmCxzH,IAAmB,IAAlB,SAAEC,GAAUD,EAC7D,MAAOwe,EAAOwB,GAAYC,qBACxB0yG,GACA5iF,KAEI,WAAE91B,GAAeQ,KAsDvB,OACE3Z,cAACyyH,GAA+BxyH,SAAQ,CACtC1D,MAAO,IAAKmhB,EAAOi1G,eArCCC,IACtB1zG,EAAS,CACPriB,KAAM+0H,GAAkCO,gBACxCj0G,QAAS00G,GACT,EAiCmCC,wBAtDN5+E,IAC/B/0B,EAAS,CAAEriB,KAAM+0H,GAAkCE,uBAEnDh/E,GAAmB+B,wBAAwBZ,GACxCtpC,MAAMsnH,IACL/yG,EAAS,CACPriB,KAAM+0H,GAAkCI,kBACxC9zG,QAAS+zG,GACT,IAEHnvH,OAAM,KACLoc,EAAS,CACPriB,KAAM+0H,GAAkCM,qBACxC,GACF,EAwC0DY,UA9B9CA,CAChB7+E,EACAc,EACAC,KAEA91B,EAAS,CAAEriB,KAAM+0H,GAAkCQ,qBAEnDt/E,GAAmBgC,kBAAkBb,EAAec,EAAYC,GAC7DrqC,MAAM4gB,IACDA,GACFrM,EAAS,CACPriB,KAAM+0H,GAAkCS,gBACxCn0G,QAASqN,IAEXpS,EAAW,4BAA6BlB,GAAYE,WAEpD+G,EAAS,CACPriB,KAAM+0H,GAAkCY,oBAE1Cr5G,EAAW,mDACb,IAEDrW,OAAM,KACLoc,EAAS,CAAEriB,KAAM+0H,GAAkCY,oBACnDr5G,EAAW,kDAAkD,GAC7D,GAKsEha,SAEvEA,GACuC,EAMvC,MAAM4zH,GAAoCA,IAC/C/zH,qBAAWyzH,I,yBCtEb,MAAMO,GAA+B5oG,OAAaC,MAAM,CACtD2qB,MAAO5qB,OAAazkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QA6JvDstH,OAxJX/zH,IAAkC,IAADg0H,EAAA,IAAhC,OAAE7vH,EAAM,SAAEuvH,EAAQ,MAAE59E,GAAO91C,EAC9B,MAAM,aAAEmsB,EAAY,OAAEpe,EAAM,SAAEkf,EAAQ,UAAEK,GACtC1B,aAAqC,CACnCC,SAAUC,aAAYgoG,IACtB/nG,KAAM,aAGJ0M,EAAajB,KAiBnB,OACE12B,cAAAyV,WAAA,CAAAtW,SACEsR,eAAA,QAAMkX,aAAa,MAAMyD,SAAUC,GAlBtBvZ,UACfkjC,EAAMnqB,EAAKmqB,MAAM,IAiB4CxpB,YAAU,EAAArsB,SAAA,CACnEsR,eAAA,OAAKC,UAAWkV,KAAWutG,WAAWh0H,SAAA,CACpCa,cAAC0hC,KAAI,CACHhc,QAASA,IAAMriB,IACfxG,KAAK,SACLoU,QAAQ,QACR6E,UAAU,SAAQ3W,SAElBa,cAAC+0G,GAAQ,MAEX/0G,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,4BAE9BsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWkV,KAAWY,MAAMrnB,SAC7CsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAK1sB,SAAA,CAC7Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACgR,IAAU,CAAC8E,UAAU,OAAM3W,SAAC,iBAE/Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACgR,IAAU,CAAC8E,UAAU,OAAOpF,UAAWkV,KAAW/Z,KAAK1M,SACrD2tC,KAAO8lF,EAASQ,aAAaxjF,OAAO,uBAK7C5vC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWkV,KAAWY,MAAMrnB,SAC7CsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAK1sB,SAAA,CAC7Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SAAC,YAGlBa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACgR,IAAU,CAAC8E,UAAU,OAAOpF,UAAWkV,KAAW/Z,KAAK1M,SACrDyzH,EAASpuC,mBAKlBxkF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWkV,KAAWY,MAAMrnB,SAC7CsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAK1sB,SAAA,CAC7Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SAAC,YAGlBa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACgR,IAAU,CAAC8E,UAAU,OAAOpF,UAAWkV,KAAW/Z,KAAK1M,SACrDyzH,EAASS,gBAKlBrzH,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWkV,KAAWY,MAAMrnB,SAC7CsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAK1sB,SAAA,CAC7Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SAAC,yBAGlBa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACgR,IAAU,CAAC8E,UAAU,OAAOpF,UAAWkV,KAAW/Z,KAAK1M,SArEzCyzH,IACb,CACZA,EAASU,0BAA4B,uBAAyB,GAC9DV,EAASW,iBAAmB,eAAiB,GAC7CX,EAASY,mBAAqB,gCAAkC,GAChEZ,EAASa,cAAgB,WAAa,GACtCb,EAASc,YAAc,SAAW,IAGvBvyF,QAAQmhB,GAAY,KAANA,IAAUh3B,KAAK,MA6D3BqoG,CAAoBf,YAM7BniH,eAACqI,KAAG,CAACzE,aAAc,EAAGgmB,UAAW,EAAEl7B,SAAA,CACjCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CAACzE,aAAc,EAAElV,SACnBa,cAACgR,IAAU,CAACiC,MAAO,CAAE4yB,WAAY,KAAM1mC,SAAC,gBAI5Ca,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,GACJjmB,UAAS,GAAArQ,OAAKulB,KAAWY,MAAK,KAAAnmB,OAAIulB,KAAWguG,gBAAiBz0H,SAE7C,QAF6C+zH,EAE7DN,EAASpzH,eAAO,IAAA0zH,IAAI,SAIzBlzH,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOkjH,qBAAqB10H,SACxDa,cAACumB,GAAW,CAACC,MAAM,QAAQE,YAAY,EAAKvnB,SAC1Ca,cAACmnB,GAAS,CACR/oB,KAAK,QACL8tB,SAAUC,EACVtvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXC,KAAK,IACL3F,WAAS,EACThf,YAAY,0BACZuf,aAAsB,OAAR0rG,QAAQ,IAARA,OAAQ,EAARA,EAAU59E,MACxBpzC,QAASqL,EAAO+nC,MAChB5oB,WAAYnf,EAAO+nC,MAAQ/nC,EAAO+nC,MAAMx1C,QAAU,SAKxDiR,eAACqI,KAAG,CACF4S,GAAI,EACJmiB,GAAI,EACJ36B,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACfx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CAEhCa,cAACylB,GAAkB,CACjBC,QAASA,KACPriB,GAAQ,IAGZrD,cAAC8Y,KAAG,CAACG,GAAI0e,EAAWX,OAAS,EAAI,EAAG6W,GAAIlW,EAAWX,OAAS,EAAI,EAAE73B,SAChEa,cAAC8vF,GAAY,CACXnpE,WAAS,EACTsB,UAAWuE,EAAUC,UAAYD,EAAUE,QAC3C7vB,KAAK,SACL6oB,QAASA,OACTjc,KAAMvG,EAAUC,QAAQM,uBAMjC,ECxEQqwH,OA9FX50H,IAAgC,IAA/B,UAAE+yH,EAAS,WAAE8B,GAAY70H,EAC5B,MAAM,eAAEyzH,GAAmBI,KAErBp4C,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,YACRytD,SAAU,WACVE,KAAMtvE,IAAA,IAAAq+G,EAAA,IAAC,IAAEh3C,GAAUrnE,EAAA,OACjB3V,cAAC4nF,GAAQ,CACPhgF,KAA2B,QAAvBosH,EAAEh3C,EAAImI,SAAS8uC,gBAAQ,IAAAD,IAAI,KAC/BpkF,OAAO,mBACP,GAGN,CACEtY,OAAQ,UACRytD,SAAU,YACVE,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASX,WACT,GAGX,CACEltD,OAAQ,UACRytD,SAAU,UAEZ,CACEztD,OAAQ,aACRytD,SAAU,YACVE,KAAMyQ,IAAA,IAAAw+B,EAAA,IAAC,IAAEl3C,GAAU0Y,EAAA,OACjB1Y,EAAImI,SAASgvC,UACXn0H,cAAC4nF,GAAQ,CACPhgF,KAA4B,QAAxBssH,EAAEl3C,EAAImI,SAASgvC,iBAAS,IAAAD,IAAI,KAChCtkF,OAAO,oBAGT5vC,cAAAyV,WAAA,GACD,GAEL,CACE6hB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjB71F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAAC0hC,KAAI,CACH5rB,UAAU,SACV1B,MAAM,UACNsR,QAASA,IAAMitG,EAAe31C,EAAImI,UAAUhmF,SAC7C,sBAGG,KAIZ,IAGF,OACEa,cAAAyV,WAAA,CAAAtW,UACY,OAAT8yH,QAAS,IAATA,OAAS,EAATA,EAAWt0H,QAAS,EACnB8S,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAMomH,EACNr3C,YAAY,EACZQ,iBAAiB,EACjB9K,MAAM,EACNwK,OAAK,IAEP96E,cAAC8Y,KAAG,CAACuhB,UAAW,EAAEl7B,SAChBa,cAAC4rB,KAAI,CAAChb,WAAS,EAACs2B,eAAe,SAAQ/nC,SACrCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAAC8vF,GAAY,CACXnpE,WAAS,EACTjB,QAASA,KACPquG,GAAY,EAEdtqH,KAAK,mBAOfzJ,cAAC64E,GAAQ,CAACpvE,KAAM,0CAEjB,EC9BQ2qH,OA5DXl1H,IAAgE,IAA/D,cAAE+0C,EAAeutE,cAAc,UAAE50E,EAAS,UAAEliB,IAAaxrB,EAC5D,MAAM,QACJ8mB,EAAO,SACPkF,EAAQ,iBACR6mG,EAAgB,UAChBE,EAAS,eACTU,EAAc,UACdG,EAAS,wBACTD,GACEE,KAQJ,OANAjgH,qBAAU,KACJ4X,GACFmoG,EAAwB5+E,EAC1B,GACC,CAACvpB,IAGF1qB,cAAAyV,WAAA,CAAAtW,SACEsR,eAACu7B,GAAM,CACLpzB,KAAM8R,EACNC,QAASA,KACPgoG,OAAen2H,GACfowC,GAAW,EAEbp8B,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAC,iCACba,cAACusC,GAAa,CAAAptC,SACT6mB,EACDhmB,cAAC02E,KAAc,CAACtiE,MAAM,cAEtBpU,cAAAyV,WAAA,CAAAtW,SACG4yH,EACC/xH,cAACizH,GAA8B,CAC7BL,SAAUb,EACV7mG,SAAUA,EACV7nB,OAAQA,IAAMsvH,OAAen2H,GAC7Bw4C,MAAQA,GACN89E,EACE7+E,EACA89E,EAAiBQ,0BACjBv9E,KAKNh1C,cAAC8zH,GAA2B,CAC1B7B,UAAWA,EACX8B,WAAYA,IAAMnnF,cAO7B,ECrEQ,SAASynF,GAAqBrrH,GAC3C,MAAM4gF,EAAkB5gF,IACtB,OAAQA,GACN,KAAKitD,GAAkByuD,SACrB,OAAO/zG,KAAO2jH,eAChB,KAAKr+D,GAAkBmuD,YACrB,OAAOzzG,KAAO4jH,kBAChB,KAAKt+D,GAAkB0M,mBACrB,OAAOhyD,KAAO6jH,cAClB,EAaF,MAAO,CAAE7+F,MAVKA,IACZ31B,cAAAyV,WAAA,CAAAtW,SACEa,cAACgR,IAAU,CACTN,UAAS,GAAArQ,OAAKsQ,KAAO8jH,cAAa,KAAAp0H,OAAIupF,EAAe5gF,IAAU7J,SAE9D6J,MAMT,CCdO,MAAM0rH,GAAwBtqG,OAElCC,MAAM,CACLm6D,UAAWp6D,OAER5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDC,QACC1C,EAAUqC,WAAWc,mBACrBnD,EAAUqC,WAAWwB,eAEzBvH,QAAS4qB,OAAazkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACtEyxD,WAAYhtC,OACZktC,IAAKltC,OACL4yF,SAAU5yF,OACVitC,MAAOjtC,OACPuqG,eAAgBvqG,OAChBwqG,mBAAoBxqG,SAErB2uF,KACC,yBACA,IAAM,KACL/7G,MAEM,OAAHA,QAAG,IAAHA,KAAK23H,gBACF,OAAH33H,QAAG,IAAHA,KAAKggH,UACF,OAAHhgH,QAAG,IAAHA,KAAK43H,oBACF,OAAH53H,QAAG,IAAHA,KAAKs6D,KACF,OAAHt6D,QAAG,IAAHA,KAAKo6D,YACF,OAAHp6D,QAAG,IAAHA,KAAKq6D,QAKA,IAAIjtC,KACT,4BACA,KACA,uBCmMOk3F,OA9NsCpiH,IAI9C,IAJ+C,YACpDsmE,EAAW,sBACXqvD,EACArT,cAAc,UAAE50E,EAAS,UAAEliB,IAC5BxrB,EACC,MAAM2rB,EAAOC,aAA8B,CACzCG,KAAM,WACNF,SAAUC,aAAY0pG,IACtB7/B,cAAe,CACbrQ,eAAWhoF,EACXgD,aAAShD,EACT46D,YAAY,EACZE,KAAK,EACL0lD,UAAU,EACV3lD,OAAO,EACPs9D,gBAAgB,EAChBC,oBAAoB,KAgBlBE,EAAmB12H,IAEvB,GADgBysB,EAAKnG,UAAUtmB,GAE7BysB,EAAKy9D,SAAS,kBAAkB,OAC3B,CACL,MAAM3jE,EAASkG,EAAKnG,YACpB,IAAKC,EAAOgwG,eAAgB,CAC1B,MAAMI,EAnB0BpwG,IAClBzmB,OAAOy8D,QAAQh2C,GAAQjP,KAAI,SAAAC,GAAyB,IAAd7X,EAAKvB,GAAMoZ,EACjE,IAAc,IAAVpZ,EACF,OAAOuB,CAEX,IAEiBqjC,QACd6zF,QAAYx4H,IAANw4H,GAAyB,mBAANA,IAWNC,CAA6BtwG,GACtB,IAArBowG,EAAUp3H,QAAgBo3H,EAAU,KAAO32H,GAC7CysB,EAAKy9D,SAAS,kBAAkB,EAEpC,CACF,GAGF,OACEtoF,cAAAyV,WAAA,CAAAtW,SACEa,cAACgsC,GAAM,CAACpzB,KAAM8R,EAAWC,QAASiiB,EAAWp8B,SAAS,KAAIrR,SACxDsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,aAAawpG,GAC5BrpG,YAAU,EAAArsB,SAAA,CAEVa,cAACwsC,GAAW,CAAArtC,SAAC,wCACba,cAACusC,GAAa,CAAAptC,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CACVC,MAAM,qBACNC,YAAY,iCAAgCtnB,SAE5Ca,cAACmnB,GAAS,CACR/oB,KAAK,YACL6Y,GAAG,4BACHtP,YAAY,gDACZukB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACN8S,kBAAc1qB,EACdmqB,WAAS,EACT/kB,QAASipB,EAAK5d,OAAOu3E,UACrBp4D,WACEvB,EAAK5d,OAAOu3E,UAAY35D,EAAK5d,OAAOu3E,UAAUhlF,QAAU,SAKhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,UAAUE,YAAY,EAAKvnB,SAC5Ca,cAACmnB,GAAS,CACR/oB,KAAK,UACL6Y,GAAG,0BACHiV,SAAUrB,EAAKsB,SACf/Y,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXq7D,QAAQ,IACR/gE,WAAS,EACThf,YAAY,0BACZuf,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAOzN,QACrB4sB,WACEvB,EAAK5d,OAAOzN,QAAUqrB,EAAK5d,OAAOzN,QAAQA,QAAU,SAK5DQ,cAAC8Y,KAAG,CAACzE,aAAc,EAAElV,SACnBa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAAC8V,GAAW,CAACC,MAAM,GAAErnB,SAAA,CACnBa,cAAC8Y,KAAG,CAACzE,aAAc,EAAElV,SACnBa,cAACgR,IAAU,CAACiC,MAAO,CAAE4yB,WAAY,KAAM1mC,SAAC,qDAK1Ca,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACqhF,GAAkB,CACjB76D,MAAM,kBACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,iBACL6Y,GAAG,+BACHyO,QAASA,KACP,MAAMf,EAASkG,EAAKnG,YACfC,EAAOgwG,eAOVhwG,EAAOgwG,gBACPhwG,EAAOiwG,oBACPjwG,EAAOq4F,UACPr4F,EAAOyyC,YACPzyC,EAAO0yC,OACP1yC,EAAO2yC,MAEPzsC,EAAKy9D,SAAS,sBAAsB,GACpCz9D,EAAKy9D,SAAS,YAAY,GAC1Bz9D,EAAKy9D,SAAS,cAAc,GAC5Bz9D,EAAKy9D,SAAS,SAAS,GACvBz9D,EAAKy9D,SAAS,OAAO,KAjBrBz9D,EAAKy9D,SAAS,sBAAsB,GACpCz9D,EAAKy9D,SAAS,YAAY,GAC1Bz9D,EAAKy9D,SAAS,cAAc,GAC5Bz9D,EAAKy9D,SAAS,SAAS,GACvBz9D,EAAKy9D,SAAS,OAAO,GAcvB,MAINtoF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACqhF,GAAkB,CACjB76D,MAAM,sBACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,qBACL6Y,GAAG,mCACHyO,QAASA,IAAMovG,EAAgB,0BAGlCtvD,EAAYtQ,WACXsQ,EAAYtQ,UAAUv3D,OAAS,GAC7BqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACqhF,GAAkB,CACjB76D,MAAM,kBACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,WACL6Y,GAAG,oCACHyO,QAASA,IAAMovG,EAAgB,gBAItCtvD,EAAYhQ,aACXgQ,EAAYhQ,YAAY73D,OAAS,GAC/BqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACqhF,GAAkB,CACjB76D,MAAM,8BACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,aACL6Y,GAAG,sCACHyO,QAASA,IAAMovG,EAAgB,kBAItCtvD,EAAYjQ,QAAUiQ,EAAYjQ,OAAO53D,OAAS,GACjDqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACqhF,GAAkB,CACjB76D,MAAM,QACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,QACL6Y,GAAG,iCACHyO,QAASA,IAAMovG,EAAgB,aAIpCtvD,EAAYlQ,MAAQkQ,EAAYlQ,KAAK33D,OAAS,GAC7CqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACqhF,GAAkB,CACjB76D,MAAM,MACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,MACL6Y,GAAG,+BACHyO,QAASA,IAAMovG,EAAgB,uBAS/CrkH,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQE,OACxB4T,GAAG,yBACHyO,QAASknB,IAEX5sC,cAACssC,GAAY,CACX7iC,KAAM,OACN5M,KAAK,SACLoa,GAAG,yBACHyO,QAASA,OACTuC,UAAW4C,EAAK2B,UAAUE,UAAY7B,EAAK2B,UAAUC,mBAK5D,E,wBChPQ,SAASyoG,GACtBv+D,EACAsG,GAEA,GAAItG,EAAU,CAAC,IAADw+D,EACZ,MAAMluD,EAA4B,OAAThK,QAAS,IAATA,OAAS,EAATA,EAAWvgD,MAAME,GAAMA,EAAE+5C,WAAaA,IAC/D,OAAOsQ,EACH,CACEZ,aAA4C,QAAhC8uD,EAAkB,OAAhBluD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBZ,oBAAY,IAAA8uD,IAAI,GAChD7uD,aAAa,QAADjmE,OAAUysC,KAAuB,OAAhBm6B,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBt3B,UAAUC,OACvD,cACD,QAAAvvC,OAAOysC,KAAuB,OAAhBm6B,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBp3B,QAAQD,OAAO,gBAElD,CAAEy2B,kBAAc7pE,EAAW8pE,kBAAc9pE,EAC/C,CACE,MAAO,CAAE6pE,kBAAc7pE,EAAW8pE,kBAAc9pE,EAEpD,CCiqBe44H,OAznBsDl2H,IAG9D,IAADm2H,EAAAC,EAAA,IAHgE,UACpEloD,EAAS,SACTmoD,GACDr2H,EACC,MAAOulB,EAAQ+wG,GAAa/jH,mBAAS,CAAC,IAEpCiM,OAAO,UAAEu/C,EAAWvoB,QAAS8wB,EAAW,iBAAEtR,GAAkB,kBAC5D35C,GACEkrD,MACE,aAAEY,EAAY,aAAEC,GAAiB4uD,GAC1B,OAAX1vD,QAAW,IAAXA,OAAW,EAAXA,EAAa7O,SACbsG,GAGFnqD,qBAAU,KACR,GAAIohD,EAAkB,CACpB,IAAIuhE,EAAc,CAAC,EACfvhE,EAAiBi2D,oBACnBsL,EAAYtL,kBAAoB//F,OAE7BC,MAAM,CACL7D,MAAO4D,OAAa5kB,WACpBjJ,MAAO6tB,OAAYggG,GACjBhgG,OAAaC,MAAM,CACjBssC,SAAUvsC,OAAa5kB,SAAStC,EAAUqC,WAAWC,eAI1D+kB,UAAUrnB,EAAUqC,WAAWC,UAC/BA,SAAStC,EAAUqC,WAAWC,WAE/B0uD,EAAiBoS,eACnBmvD,EAAYnvD,aAAel8C,OAExBC,MAAM,CACL7D,MAAO4D,OAAa5kB,WACpBjJ,MAAO6tB,OAAa5kB,SAAStC,EAAUqC,WAAWC,YAEnDA,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,WAEhC0uD,EAAiB+rD,aACnBwV,EAAYxV,WAAa71F,OAEtB5kB,SAAStC,EAAUqC,WAAWC,UAC9BE,IACC,EACA6gG,GAAarjG,EAAUqC,WAAWmB,WAAY,cAAe,IAE9Df,IACCzC,EAAUqC,WAAWiB,OACrB+/F,GACErjG,EAAUqC,WAAWoB,WACrB,cACAzD,EAAUqC,WAAWiB,SAGxB+jB,UAAU,iDAEX2pC,EAAiBm2D,gBACnBoL,EAAYh0B,SAAWr3E,OAEpBzX,MAAMzP,EAAUqC,WAAWW,cAC3BV,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDozG,KACC,uBACA,mFACCx8G,IAA2B,IAADm5H,EAAAC,EAAAC,EACzB,MAAMC,EAAqC,QAArBH,EAAGlwD,EAAYjQ,cAAM,IAAAmgE,OAAA,EAAlBA,EAAoBh5G,MAC1Cw8C,IAAC,IAAA48D,EAAA,OAAW,QAANA,EAAA58D,EAAE6H,YAAI,IAAA+0D,OAAA,EAANA,EAAQ9sH,UAAWktD,GAAc6/D,OAAO,IAE3CC,EAAiC,QAAnBL,EAAGnwD,EAAYlQ,YAAI,IAAAqgE,OAAA,EAAhBA,EAAkBj5G,MACtCw8C,IAAC,IAAA+8D,EAAA,OAAW,QAANA,EAAA/8D,EAAE6H,YAAI,IAAAk1D,OAAA,EAANA,EAAQjtH,UAAWktD,GAAc6/D,OAAO,IAE3CG,EAA+C,QAA1BN,EAAGpwD,EAAYhQ,mBAAW,IAAAogE,OAAA,EAAvBA,EAAyBl5G,MACpDw8C,IAAC,IAAAi9D,EAAA,OAAW,QAANA,EAAAj9D,EAAE6H,YAAI,IAAAo1D,OAAA,EAANA,EAAQntH,UAAWktD,GAAc6/D,OAAO,IAEjD,OACEx5H,IAAUipE,EAAYi8B,WACpBo0B,IAAqBG,IAAmBE,CAAsB,KAKtEhiE,EAAiBo2D,gBACnBmL,EAAYW,iBAAmBhsG,OAAYqjF,KAAK,cAAe,CAC7D0W,IAAI,EACJx5G,KAAMyf,OAAYggG,GAChBhgG,OAAaC,MAAM,CACjBqpB,SAAUtpB,OAEP1kB,IAAI,EAAGxC,EAAUqC,WAAWC,UAC5BA,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UACC,uGAMR2pC,EAAiBs2D,WACnBiL,EAAYhL,WAAargG,OAEtB5kB,SAAStC,EAAUqC,WAAWC,WAE/B0uD,EAAiBw2D,mBACnB+K,EAAYhvG,YAAc2D,OAEvB5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAM4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAElDuuD,EAAiBy2D,kBACnB8K,EAAY7K,oBAAsBxgG,OAE/B5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAEjDuuD,EAAiB22D,kBACnB4K,EAAY3K,sBAAwB1gG,OAEjC5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAEjDuuD,EAAiB62D,YACnB0K,EAAYzK,gBAAkB5gG,OAE3B5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAEjDuuD,EAAiBvhB,QAAU6yB,EAAY7yB,SACzC8iF,EAAY9iF,OAASvoB,OAElB5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAM4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAGtD6vH,EAAUC,EACZ,IACC,CAACvhE,EAAkBsR,EAAY7yB,SAElC,MAAM,QACJ7rB,EAAO,MACPy9F,EAAK,aACLl5F,EAAY,OACZpe,EAAM,SACNkf,EAAQ,SACRm8D,EAAQ,UACR97D,EAAS,QACT8gF,EAAO,WACP+oB,GACEvrG,aAAqB,CACvBC,SAAUC,aAAYZ,OAAaC,MAAM5F,IACzCwG,KAAM,WACN4pE,cAAe,CACborB,WAAYz6C,EAAYy6C,WACxBxe,SAAUj8B,EAAYi8B,SACtBgpB,WAAYjlD,EAAYilD,WACxBG,oBAAqBplD,EAAYolD,oBACjCE,sBAAuBtlD,EAAYslD,sBACnCE,gBAAiBxlD,EAAYwlD,gBAC7BvkG,YAAa++C,EAAY/+C,YACzBksB,OAAQ6yB,EAAY7yB,OACpBw3E,kBACE3kD,EAAY7O,UAAY0P,GAAgBpJ,EACpC,CACEz2C,MAAO6/C,EACP9pE,MAAO0gE,EAAU97B,QAAQvkB,GAAMA,EAAEypD,eAAiBA,KAEpD,KACNC,aACEA,GAAgBd,EAAY7O,SACxB,CAAEnwC,MAAO8/C,EAAc/pE,MAAOipE,EAAY7O,UAC1C,KACN0xD,aAAsB,OAATj7C,QAAS,IAATA,OAAS,EAATA,EAAWzvE,QAAS,EACjCy4H,kBACW,OAAThpD,QAAS,IAATA,OAAS,EAATA,EAAWzvE,QAAS,EAChByvE,EAAU13D,KAAK5K,IAAC,CAAQ4oC,SAAU5oC,EAAE4oC,aACpC,CAAC,CAAC,MAkBN03E,EAAyB7G,EAAM,qBAC/B8G,EAAoB9G,EAAM,gBAC1B+R,EAAmB/R,EAAM,eAAwB,OAATn3C,QAAS,IAATA,OAAS,EAATA,EAAWzvE,QAAS,GAC5D44H,EAAwBhS,EAAM,oBAEpCzxG,qBAAU,KAEU,OAAhBohD,QAAgB,IAAhBA,KAAkBi2D,wBAGZ3tH,KAFgB,OAAtB4uH,QAAsB,IAAtBA,OAAsB,EAAtBA,EAAwB7uH,MAAMmgB,MAC3BjR,GAAMA,EAAEkrD,YAA8B,OAAjB00D,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB9uH,WAG3C+rF,EAAS,eAAgB,KAAM,CAC7BmJ,gBAAgB,EAChBy5B,aAAa,GACb,GACH,CAACE,EAAwBl3D,IAE5BphD,qBAAU,KACJwjH,GACFhpB,EAAQ,mBACV,GACC,CAACgpB,IAEJ,MAAOE,EAAgBC,GAAqBhlH,oBACjC,OAAT27D,QAAS,IAATA,OAAS,EAATA,EAAWzvE,QAAS,EAChByvE,EAAU13D,KAAK5K,IAAC,CAAQ4oC,SAAU5oC,EAAE4oC,aACpC,CAAC,CAAEA,UAAW,KAYpB,OATA5gC,qBAAU,KACJ0jH,GACFluC,EAAS,mBAAoBkuC,EAAgB,CAC3C/kC,gBAAgB,EAChBy5B,aAAa,GAEjB,GACC,CAACsL,IAGFx2H,cAAAyV,WAAA,CAAAtW,SACEsR,eAAA,QAAMkX,aAAa,MAAMyD,SAAUC,GAvDrBR,IAAuB,IAAD6rG,EAAAC,EAAAC,EACtCr8G,EAAkB,IACbsQ,EACH8rC,SAA2B,QAAnB+/D,EAAE7rG,EAAKy7C,oBAAY,IAAAowD,OAAA,EAAjBA,EAAmBn6H,MAC7BguH,qBAAwB1/F,EAAKw9F,aAItB,QAJiCsO,EACf,QADeC,EACpC/rG,EAAKurG,wBAAgB,IAAAQ,OAAA,EAArBA,EAAuBlhH,KAAK5K,IAAC,CAC3B4oC,SAAU5oC,EAAE4oC,SACZO,cAAeuxB,EAAYvxB,yBAC1B,IAAA0iF,IACH,KAENpB,GAAU,IA4CmD/pG,YAAU,EAAArsB,SAAA,GAChD,OAAhB+0D,QAAgB,IAAhBA,MAAkBi2D,oBACnBnqH,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOkmH,qBAAqB13H,SACxDa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,qBAAoBrnB,SAC/Ca,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACk/E,GAAc,CACb9gF,KAAK,oBACL2pB,SAlQE8kG,EAkQoB5vD,EAlQNn/D,EAkQiB,eAjQ5C+uH,EAAM/uF,QAAO,SAAUgvF,EAAkBC,GAC9C,IAAI3oB,EAAItmG,aAAekvH,SAAWlvH,EAAIivH,GAAgBA,EAAajvH,GAC/Ds3F,EAAK03B,EAAYpwG,MAAMnF,GAAWA,GAAKA,EAAEiP,QAAU49E,IAMvD,OALIhP,EACFA,EAAGzwE,OAAOllB,KAAKstH,GAEfD,EAAYrtH,KAAK,CAAE+mB,MAAO49E,EAAGz/E,OAAQ,CAACooG,KAEjCD,CACT,GAAG,KAwPgEp3G,KAC9Cu3G,IAGA,CACC1wH,MAAO0wH,EAAStoG,OAChB6B,MAAOymG,EAASzmG,UAGpB+4D,kBAAmBA,CAAC51D,EAAK44F,IAAQ54F,EAAInD,QAAU+7F,EAAI/7F,MACnDM,QAASA,EACTllB,QAASqL,EAAOk9G,kBAChBjiG,aACEjb,EAAOk9G,kBACHl9G,EAAOk9G,kBAAkB3qH,QACzB,eASC,OAAhB00D,QAAgB,IAAhBA,MAAkBoS,eAAgB8kD,GACnCprH,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOkmH,qBAAqB13H,SACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,gBAAernB,SAC1Ca,cAACk/E,GAAc,CACb9gF,KAAK,eACL2pB,QAASqjG,EAAuB7uH,MAAMmZ,KACnCu3G,IAAyB,CACxB1wH,MAAO0wH,EAASt2D,SAChBnwC,MAAM,QAADnmB,OAAUysC,KAAOmgF,EAASt9E,UAAUC,OACvC,cACD,QAAAvvC,OAAOysC,KAAOmgF,EAASp9E,QAAQD,OAAO,mBAG3C9oB,QAASA,EACTllB,QAASqL,EAAOq5D,aAChBp+C,aACEjb,EAAOq5D,aAAer5D,EAAOq5D,aAAa9mE,QAAU,eAS/C,OAAhB00D,QAAgB,IAAhBA,MAAkB+rD,aACnBjgH,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOkmH,qBAAqB13H,SACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,cAAarnB,SACxCa,cAACmnB,GAAS,CACR/oB,KAAK,aACLvB,KAAK,SACL2qB,WAAY,CACVwE,WAAY,CACVtmB,IAAK,IAGTiC,YAAY,OACZukB,SAAUC,EACVvqB,QAASqL,EAAOgzG,WAChB7zF,WACEnf,EAAOgzG,WAAahzG,EAAOgzG,WAAWzgH,QAAU,eAS3C,OAAhB00D,QAAgB,IAAhBA,MAAkBm2D,gBACnBrqH,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOkmH,qBAAqB13H,SACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,iBAAgBrnB,SAC3Ca,cAACmnB,GAAS,CACR/oB,KAAK,WACL8oB,aAAkC,QAAtBmuG,EAAE7vD,EAAYi8B,gBAAQ,IAAA4zB,IAAI,GACtCx4H,KAAK,QACLqvB,SAAUC,EACVvqB,QAASqL,EAAOw0F,SAChBr1E,WAAYnf,EAAOw0F,SAAWx0F,EAAOw0F,SAASjiG,QAAU,eAQjD,OAAhB00D,QAAgB,IAAhBA,MAAkBo2D,gBACnB75G,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOkmH,qBAAqB13H,SACxDa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,4BAA2BrnB,SACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAAC8nB,GAAa,CACZ1pB,KAAK,cACL2pB,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,OAAO,GACvB,CAAEiqB,MAAO,KAAMjqB,OAAO,IAExBuqB,QAASA,EACTllB,QAASqL,EAAOo7G,YAChBngG,aACEjb,EAAOo7G,YAAcp7G,EAAOo7G,YAAY7oH,QAAU,aAMzD82H,GACD7lH,eAACmb,KAAI,CACHhb,WAAS,EACTuC,WAAW,aACXzC,UAAWC,KAAOkmH,qBAAqB13H,SAAA,CAEtCq3H,EAAe9gH,KAAI,CAACqW,EAAMluB,KAAK,IAAAwrG,EAAAytB,EAAAC,EAAA,OAC9B/2H,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACilH,GAAmB,CAClBG,gBAAiBv9D,GAAckC,yBAC/Bs7D,oBAAsBj4C,GACpBA,EAEFhvE,KAAI,oBAAAiC,OAAsBxC,EAAK,cAC/ByhF,eAAiBh2D,GACfA,EAAO/W,WAAa+W,EAAOhX,SAAQ,GAAAjS,OAC5BipB,EAAO/W,UAAS,KAAAlS,OAAIipB,EAAOhX,UAC9B,GAEN+sE,aAAe/1D,GACbA,EAAO/W,WAAa+W,EAAOhX,SAAQ,GAAAjS,OAC5BipB,EAAO/W,UAAS,KAAAlS,OAAIipB,EAAOhX,UAC9B,GAEN07E,UAAU,WACVrnE,WAAS,EACThf,YAAY,kBACZyL,OAAO,SACP+Y,SAAUA,EACVgzD,UAAU,EACVj4D,aACqD,QADzCmiF,EACVj8B,EAAU1wD,MAAM5R,GAAMA,EAAE4oC,WAAa3nB,EAAK2nB,kBAAS,IAAA21D,IACnD,KAEF/gB,SAAUA,EACVzH,qBAAsBlwE,KAAOqmH,qBAC7B/pH,OACEA,EAAOmpH,kBACPnpH,EAAOmpH,iBAAiBv4H,GAE1BuuB,WACEnf,EAAOmpH,mBACuB,QADPU,EACvB7pH,EAAOmpH,iBAAiBv4H,UAAM,IAAAi5H,GAAU,QAAVC,EAA9BD,EAAgCpjF,gBAAQ,IAAAqjF,OAAV,EAA9BA,EAA0Cv3H,SAE5CyqB,SAAUA,CAAC5M,EAAO9gB,KAChB,MAAMgmH,EAAM1zE,aAAQ2nF,GAAiB1nF,IACnCA,EAAMnvC,OAAO9B,EAAO,EAAG,CAAE61C,SAAUn3C,GAAQ,IAE7Ck6H,EAAkBlU,EAAI,KAzCL1kH,EA4ChB,IAETmC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOy8G,mBAAmBjuH,SACrDsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,eAAc/nC,SAAA,CAC3Ca,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACPq3H,EAAe74H,OAAS,GACvBqC,cAACqmB,KAAU,CACTX,QAASA,KACP,MAAMuxG,EAAST,EAAe15H,MAAM,GAAI,GACxCu5H,EAAW,oBAADh2H,OAENm2H,EAAe74H,OAAS,EAAC,eAG7B84H,EAAkBQ,EAAO,EAE3BvmH,UAAS,GAAArQ,OAAKsQ,KAAO08G,mBAAoBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,SAIrCtT,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACPo3H,EAAsBzxG,MACpB81C,GAAU0yD,MAAM1yD,EAAMlnB,YAAa,IAEpC1zC,cAACqmB,KAAU,CACTX,QAASA,OACTuC,UAAU,EACVvX,UAAWC,KAAO48G,0BAA0BpuH,SAE5Ca,cAACwtH,GAAO,CAACn6G,MAAO,GAAIC,OAAQ,OAG9BtT,cAACqmB,KAAU,CACTX,QAASA,KACP,MAAMuxG,EAAS,IACVT,EACH,CAAE9iF,cAAUl3C,IAEdi6H,EAAkBQ,EAAO,EAE3BvmH,UAAWC,KAAO08G,kBAAkBluH,SAEpCa,cAACwtH,GAAO,CAACn6G,MAAO,GAAIC,OAAQ,sBAW3B,OAAhB4gD,QAAgB,IAAhBA,MAAkBs2D,WACnBxqH,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOkmH,qBAAqB13H,SACvDa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,WAAUrnB,SACrCa,cAAC8nB,GAAa,CACZ1pB,KAAK,aACL2pB,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,OAAO,GACvB,CAAEiqB,MAAO,KAAMjqB,OAAO,IAExBuqB,QAASA,EACTllB,QAASqL,EAAOw9G,WAChBviG,aACEjb,EAAOw9G,WAAax9G,EAAOw9G,WAAWjrH,QAAU,aAQzC,OAAhB00D,QAAgB,IAAhBA,MAAkBw2D,mBACnB1qH,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOkmH,qBAAqB13H,SAAA,CACxDa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,mBAC7BxmB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACmnB,GAAS,CACR/oB,KAAK,cACLuJ,YAAY,wBACZ0kB,WAAS,EACTC,KAAM,EACNJ,SAAUC,EACVvqB,QAASqL,EAAOwZ,YAChB2F,WACEnf,EAAOwZ,YAAcxZ,EAAOwZ,YAAYjnB,QAAU,cAQ3C,OAAhB00D,QAAgB,IAAhBA,MAAkBy2D,kBACnB3qH,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOkmH,qBAAqB13H,SAAA,CACxDa,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAM,0BAERxmB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACmnB,GAAS,CACR/oB,KAAK,sBACLuJ,YAAY,SACZukB,SAAUC,EACVvqB,QAASqL,EAAO29G,oBAChBx+F,WACEnf,EAAO29G,oBACH39G,EAAO29G,oBAAoBprH,QAC3B,cAQG,OAAhB00D,QAAgB,IAAhBA,MAAkB22D,kBACnB7qH,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOkmH,qBAAqB13H,SAAA,CACxDa,cAACumB,GAAW,CACVI,WAAS,EACTH,MAAM,4BAERxmB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACmnB,GAAS,CACR/oB,KAAK,wBACLuJ,YAAY,kBACZukB,SAAUC,EACVvqB,QAASqL,EAAO69G,sBAChB1+F,WACEnf,EAAO69G,sBACH79G,EAAO69G,sBAAsBtrH,QAC7B,cAQG,OAAhB00D,QAAgB,IAAhBA,MAAkB62D,YACnB/qH,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOkmH,qBAAqB13H,SAAA,CACxDa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,sBAC7BxmB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACmnB,GAAS,CACR/oB,KAAK,kBACLuJ,YAAY,kBACZukB,SAAUC,EACVvqB,QAASqL,EAAO+9G,gBAChB5+F,WACEnf,EAAO+9G,gBAAkB/9G,EAAO+9G,gBAAgBxrH,QAAU,cAQnD,OAAhB00D,QAAgB,IAAhBA,MAAkBvhB,UAA4B,QAAlB2iF,EAAA9vD,EAAY7yB,cAAM,IAAA2iF,OAAA,EAAlBA,EAAoB33H,QAAS,GAC1DqC,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOkmH,qBAAqB13H,SAAA,CACxDa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,WAC7BxmB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACmnB,GAAS,CACR/oB,KAAK,SACLuJ,YAAY,mBACZ0kB,WAAS,EACTC,KAAM,EACNJ,SAAUC,EACVvqB,QAASqL,EAAO0lC,OAChBvmB,WAAYnf,EAAO0lC,OAAS1lC,EAAO0lC,OAAOnzC,QAAU,YAO9DQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAM1Y,WAAW,SAASg0B,QAAS,EAAEhoC,SAAA,CAC7Da,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRmD,MAAM,UACNsR,QAASA,KACP6vG,GAAU,EAEZtiH,MAAO,CAAEqjB,SAAU,SAAUn3B,SAE5B+D,EAAUC,QAAQE,WAGvBrD,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoU,QAAQ,YACRmD,MAAM,UACN6T,UACGuE,EAAUE,UACTF,EAAUC,UACD,OAAT2gD,QAAS,IAATA,OAAS,EAATA,EAAWzvE,UAAW44H,EAAsB54H,OAEhDsV,MAAO,CAAEqjB,SAAU,SAAUn3B,SAE5B+D,EAAUC,QAAQK,4BA3nBhB0qH,IAACrB,EAAc/uH,CAkoB7B,ECpaQo5H,OA1PsDh4H,IAK9D,IAADo2H,EAAA6B,EAAA,IALgE,UACpE/pD,EAAS,SACThmD,EAAQ,YACRgwG,EAAW,YACX5xD,GACDtmE,EACC,MAAMy4B,EAAajB,MAEjBhZ,OAAO,UAAEu/C,EAAS,aAAEhF,IAClBwN,MACE,aAAEY,EAAY,aAAEC,GAAiB4uD,GAC1B,OAAX1vD,QAAW,IAAXA,OAAW,EAAXA,EAAa7O,SACbsG,GAEI/I,EAA+B,OAAZ+D,QAAY,IAAZA,OAAY,EAAZA,EAAcv7C,MACpCiX,GAAMA,EAAEwuB,aAAeqjB,EAAYrjB,aAGhCk1E,IACe,OAAhBnjE,QAAgB,IAAhBA,MAAkBi2D,oBAAqB9jD,KACvB,OAAhBnS,QAAgB,IAAhBA,MAAkBoS,eAAgBA,KACnB,OAAhBpS,QAAgB,IAAhBA,MAAkB+rD,eACF,OAAhB/rD,QAAgB,IAAhBA,MAAkBm2D,kBACD,OAAhBn2D,QAAgB,IAAhBA,MAAkBo2D,gBAAiBl9C,EAAUzvE,OAAS,KACvC,OAAhBu2D,QAAgB,IAAhBA,MAAkBs2D,aACF,OAAhBt2D,QAAgB,IAAhBA,MAAkBw2D,qBACF,OAAhBx2D,QAAgB,IAAhBA,MAAkBy2D,oBACF,OAAhBz2D,QAAgB,IAAhBA,MAAkB22D,oBACF,OAAhB32D,QAAgB,IAAhBA,MAAkB62D,cACD,OAAhB72D,QAAgB,IAAhBA,MAAkBvhB,UAA4B,QAAlB2iF,EAAA9vD,EAAY7yB,cAAM,IAAA2iF,OAAA,EAAlBA,EAAoB33H,QAAS,EAE9D,OACE8S,eAAAgF,WAAA,CAAAtW,SAAA,GACqB,OAAhB+0D,QAAgB,IAAhBA,MAAkBi2D,oBAAqB9jD,GACxC51D,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,GACJ7b,UAAS,GAAArQ,OAAKsQ,KAAO2mH,0BAAyB,KAAAj3H,OAAIulB,KAAWY,OAAQrnB,SACtE,uBAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,GAAI7b,UAAWkV,KAAW/Z,KAAK1M,SAClDknE,SAKY,OAAhBnS,QAAgB,IAAhBA,MAAkBoS,eAAgBA,GACnC71D,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,GACJ7b,UAAS,GAAArQ,OAAKsQ,KAAO2mH,0BAAyB,KAAAj3H,OAAIulB,KAAWY,OAAQrnB,SACtE,kBAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,GAAI7b,UAAWkV,KAAW/Z,KAAK1M,SAClDmnE,SAKY,OAAhBpS,QAAgB,IAAhBA,MAAkB+rD,aACnBxvG,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,GACJ7b,UAAS,GAAArQ,OAAKsQ,KAAO2mH,0BAAyB,KAAAj3H,OAAIulB,KAAWY,OAAQrnB,SACtE,gBAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,GAAI7b,UAAWkV,KAAW/Z,KAAK1M,SAClDqmE,EAAYy6C,kBAKA,OAAhB/rD,QAAgB,IAAhBA,MAAkBm2D,gBACnB55G,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,GACJ7b,UAAS,GAAArQ,OAAKsQ,KAAO2mH,0BAAyB,KAAAj3H,OAAIulB,KAAWY,OAAQrnB,SACtE,mBAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,GAAI7b,UAAWkV,KAAW/Z,KAAK1M,SAClDqmE,EAAYi8B,gBAKL,OAAXj8B,QAAW,IAAXA,MAAajD,sBACd9xD,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,GACJ7b,UAAS,GAAArQ,OAAKsQ,KAAO2mH,0BAAyB,KAAAj3H,OAAIulB,KAAWY,OAAQrnB,SACtE,iBAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,GAAI7b,UAAWkV,KAAW/Z,KAAK1M,SAClDqmE,EAAYjD,2BAKA,OAAhBrO,QAAgB,IAAhBA,MAAkBo2D,gBAAiBl9C,EAAUzvE,OAAS,GACvD8S,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,GACJ7b,UAAS,GAAArQ,OAAKsQ,KAAO2mH,0BAAyB,KAAAj3H,OAAIulB,KAAWY,OAAQrnB,SACtE,8BAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,GAAI7b,UAAWkV,KAAW/Z,KAAK1M,SACnDa,cAACu3H,GAAa,CACZnH,cAAc,EACdh8D,WAAYgZ,EAAU13D,KAAK5K,IAAC,CAC1B4oC,SAAU5oC,EAAE4oC,SACZnhC,UAAWzH,EAAEyH,UACbD,SAAUxH,EAAEwH,SACZsiD,aAAc9pD,EAAE8pD,0BAOP,OAAhBV,QAAgB,IAAhBA,MAAkBs2D,WACnB/5G,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,GACJ7b,UAAS,GAAArQ,OAAKsQ,KAAO2mH,0BAAyB,KAAAj3H,OAAIulB,KAAWY,OAAQrnB,SACtE,aAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,GAAI7b,UAAWkV,KAAW/Z,KAAK1M,SAClDqmE,EAAYilD,WAAa,MAAQ,YAKrB,OAAhBv2D,QAAgB,IAAhBA,MAAkBw2D,mBACnBj6G,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,GACJ7b,UAAS,GAAArQ,OAAKsQ,KAAO2mH,0BAAyB,KAAAj3H,OAAIulB,KAAWY,OAAQrnB,SACtE,mBAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,GAAI7b,UAAWkV,KAAW/Z,KAAK1M,SAClDqmE,EAAY/+C,mBAKA,OAAhBytC,QAAgB,IAAhBA,MAAkBy2D,kBACnBl6G,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,GACJ7b,UAAS,GAAArQ,OAAKsQ,KAAO2mH,0BAAyB,KAAAj3H,OAAIulB,KAAWY,OAAQrnB,SACtE,0BAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,GAAI7b,UAAWkV,KAAW/Z,KAAK1M,SAClDqmE,EAAYolD,2BAKA,OAAhB12D,QAAgB,IAAhBA,MAAkB22D,kBACnBp6G,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,GACJ7b,UAAS,GAAArQ,OAAKsQ,KAAO2mH,0BAAyB,KAAAj3H,OAAIulB,KAAWY,OAAQrnB,SACtE,4BAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,GAAI7b,UAAWkV,KAAW/Z,KAAK1M,SAClDqmE,EAAYslD,6BAKA,OAAhB52D,QAAgB,IAAhBA,MAAkB62D,YACnBt6G,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,GACJ7b,UAAS,GAAArQ,OAAKsQ,KAAO2mH,0BAAyB,KAAAj3H,OAAIulB,KAAWY,OAAQrnB,SACtE,sBAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,GAAI7b,UAAWkV,KAAW/Z,KAAK1M,SAClDqmE,EAAYwlD,uBAKA,OAAhB92D,QAAgB,IAAhBA,MAAkBvhB,UAA4B,QAAlBwkF,EAAA3xD,EAAY7yB,cAAM,IAAAwkF,OAAA,EAAlBA,EAAoBx5H,QAAS,GAC1D8S,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,GACJ7b,UAAS,GAAArQ,OAAKsQ,KAAO2mH,0BAAyB,KAAAj3H,OAAIulB,KAAWY,OAAQrnB,SACtE,WAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,GAAI7b,UAAWkV,KAAW/Z,KAAK1M,SAClDqmE,EAAY7yB,aAKjBvrB,GAAYiwG,GACZr3H,cAAC8Y,KAAG,CAAC+P,UAAW8O,EAAWX,OAAS,SAAW,OAAQ6W,GAAI,EAAE1uC,SAC3Da,cAAC0hC,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QAASA,IAAM0xG,IACfnmH,QAAQ,QACR6E,UAAU,SAAQ3W,SACnB,iCAKJ,EChGQq4H,IC1KX,GD0KWA,GA1IsCt4H,IAM9C,IAAD6qH,EAAA,IANgD,WACpD31D,EAAU,iBACVF,EAAgB,mBAChBD,EAAkB,YAClBuR,EAAW,SACXp+C,GACDloB,EACC,MAAM,WAAEia,GAAeQ,MACjB,YAAEtI,GAAgBmD,KAEjB44D,EAAWqqD,GAAgBhmH,mBAAoB,KAC/CimH,EAAUC,GAAelmH,oBAAkB,GAC5CkmB,EAAajB,MAEb,sBAAEkhG,GEjCK,SAA4BpyD,GACzC,MAAM,UAAE74B,EAAS,UAAEC,EAAS,UAAEliB,GAAc+hB,MACtC,WAAEtzB,GAAeQ,KAEjBk7G,EAAyBhpH,IAAgC,IAADgsH,EAC5D,MAAMntH,EAAS,CACblL,QAAqB,QAAdq4H,EAAEhsH,EAAKrM,eAAO,IAAAq4H,IAAI,GACzBlzC,WAAY94E,EAAK24E,UAAWxgE,MAAM,KAClCmd,OAAQ,IAAKt1B,IAEfinC,GAAmBmC,YAAYuwB,EAAYvxB,cAAevpC,GACvDC,MAAMo2B,IACLA,EACI5nB,EAAW,gCAAiClB,GAAYE,SACxDgB,EAAW,sDACfyzB,GAAW,IAEZ9pC,OAAM,KACLqW,EAAW,sDACXyzB,GAAW,GACX,EAuBN,MAAO,CAAEgrF,sBApBqBA,IAC5BnnH,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC2lB,KAAM,CACL1O,GAAG,oBACHhG,QAAQ,WACRP,UAAWkV,KAAWC,sBACtBoC,UAAWu9C,EACX9/C,QAASA,IAAMinB,IACf15B,MAAO,CAAEqjB,SAAU,SAAUn3B,SAC9B,cAGDa,cAACshH,GAAa,CACZE,aAAc,CAAE92F,YAAWkiB,YAAWD,aACtCkoF,sBAAuBA,EACvBrvD,YAAaA,OAMrB,CFXoCsyD,CAAmBtyD,IAC/C,kCAAEuyD,GGpCK,SACbvyD,GAEA,MAAM,UAAE74B,EAAS,UAAEC,EAAS,UAAEliB,GAAc+hB,KAwB5C,MAAO,CAAEsrF,kCAtBiCA,IACxC/3H,cAAAyV,WAAA,CAAAtW,SACEsR,eAACiiH,GAA+B,CAAAvzH,SAAA,CAC9Ba,cAAC2lB,KAAM,CACL1U,QAAQ,WACRP,UAAWkV,KAAWC,sBACtBoC,UAAWu9C,EACX9/C,QAASA,KACPinB,GAAW,EAEb15B,MAAO,CAAEqjB,SAAU,SAAUn3B,SAC9B,YAGDa,cAACo0H,GAA+B,CAC9B5S,aAAc,CAAE92F,YAAWkiB,YAAWD,aACtCsH,cAAeuxB,EAAYvxB,qBAOrC,CHSI+jF,CAA8BxyD,IAExB7vC,MAAOsiG,GAA2B5D,GACxC7uD,EAAYx8D,QAqBd,OAlBA8J,qBAAU,KACR,GAAI0yD,GAAeA,EAAY+kD,qBAAsB,CACnD,MAAMj4B,EAAW9sB,EAAY+kD,qBAAqB70G,KAAK2zD,GACrDxhB,GAAcC,QAAQuhB,EAAS31B,YAEjCzxC,QAAQsa,IAAI+1E,GACT3nF,MAAMqpC,IACLyjF,EAAazjF,EAAQ,IAEtBlxC,OAAM,IACLqW,EACE,0CACAlB,GAAY3N,QAGpB,IACC,CAAY,OAAXk7D,QAAW,IAAXA,OAAW,EAAXA,EAAa+kD,uBAGfvqH,cAAAyV,WAAA,CAAAtW,SACEsR,eAACqI,KAAG,CACFG,GAAI0e,EAAWX,OAAS,EAAI,EAC5B/jB,MAAO,CAAES,WAAY,SACrBwkH,GAAIvgG,EAAWX,OAAS,EAAI,EAC5BmhG,GAAIxgG,EAAWX,OAAS,EAAI,EAAE73B,SAAA,CAE7BqmE,EAAYvxB,cAAgB,GAC3Bj0C,cAAAyV,WAAA,CAAAtW,SACEa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAM1Y,WAAW,SAASg0B,QAAS,EAAEhoC,SAAA,CAC7Da,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACPkS,EAAY2D,SACX+Y,GAAgBuC,oCACbtwB,cAAC43H,EAAqB,MAE7B53H,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACPkS,EAAY2D,SACX+Y,GAAgBwC,iCACbvwB,cAAC+3H,EAAiC,aAMjD/3H,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,wBAI3Ca,cAAC8Y,KAAG,CAACzE,aAAcsjB,EAAWX,OAAS,EAAI,EAAE73B,SAC3Ca,cAACi4H,EAAsB,MAGzBxnH,eAACmb,KAAI,CACHhb,WAAS,EACTmb,MAAI,EACJ5Y,WAAW,aACXzC,UAAWC,KAAOkmH,qBAAqB13H,SAAA,CAEvCa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,GACJ7b,UAAS,GAAArQ,OAAKsQ,KAAO2mH,0BAAyB,KAAAj3H,OAAIulB,KAAWY,OAAQrnB,SACtE,qBAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,GAAI7b,UAAWkV,KAAW/Z,KAAK1M,SAClD+0D,GAAgB,GAAA7zD,OAAO6zD,EAAiB91D,QAG3C4B,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,GACJ7b,UAAS,GAAArQ,OAAKsQ,KAAO2mH,0BAAyB,KAAAj3H,OAAIulB,KAAWY,OAAQrnB,SACtE,cAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,GAAI7b,UAAWkV,KAAW/Z,KAAK1M,SACnDa,cAACu3H,GAAa,CAACnjE,WAAYA,EAAYg8D,cAAc,MAGvDpwH,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJpK,GAAI,GACJ7b,UAAS,GAAArQ,OAAKsQ,KAAO2mH,0BAAyB,KAAAj3H,OAAIulB,KAAWY,OAAQrnB,SACtE,QAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,GAAI7b,UAAWkV,KAAW/Z,KAAK1M,SAC3B,QAAvB4qH,EAAA91D,EAAmB5hD,YAAI,IAAA03G,GAAvBA,EAAyBqO,IACtBnkE,EAAmB5hD,KAAK+lH,IACtB,MACA,KACF,QAELV,EACC13H,cAACo1H,GAAqB,CACpBhoD,UAAWA,EACXmoD,SAAUA,IAAMoC,GAAY,KAG9B33H,cAACk3H,GAAqB,CACpB9pD,UAAWA,EACXhmD,SAAUA,EACVgwG,YAAaA,IAAMO,GAAY,GAC/BnyD,YAAaA,WAKpB,E,oBCrKP,SAAS,KAAiS,OAApR,GAAWtnE,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASiiH,GAAiBn5H,EAAMyX,GAC9B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAY,GAAuB,gBAAoB,SAAU,CACjFuX,GAAI,EACJC,GAAI,EACJC,EAAG,EACHT,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBuhH,IAClC,IG3BX,GAAO,GAAQ,GH2BJ,IG1Bf,SAAS,KAAiS,OAApR,GAAWn6H,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASkiH,GAAap5H,EAAMyX,GAC1B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,2YACHI,OAAQ,UACR+kB,YAAa,IACbi9C,cAAe,QACfC,eAAgB,WACb,KAAW,GAAsB,gBAAoB,OAAQ,CAChEriE,EAAG,mCACHI,OAAQ,UACR+kB,YAAa,IACbi9C,cAAe,QACfC,eAAgB,WACb,KAAW,GAAsB,gBAAoB,OAAQ,CAChEriE,EAAG,mCACHI,OAAQ,UACR+kB,YAAa,IACbi9C,cAAe,QACfC,eAAgB,WAEpB,CACA,MAAM,GAA0B,aAAiB6+C,IAClC,IC0IAC,OAxJkCr5H,IAM1C,IAN2C,OAChDq2D,EAAM,eACNoO,EAAc,YACde,EAAW,YACXpM,EAAW,YACXkgE,GACDt5H,EACC,MAAOu5H,EAAmBC,GAAwBjnH,oBAAU,GAEtD0X,EAAYkuC,GACTiB,GAAejB,EAAMP,QAAoB,OAAXwB,QAAW,IAAXA,OAAW,EAAXA,EAAaxB,MAGpD,OACE92D,cAAC8Y,KAAG,CAAA3Z,SACK,OAANo2D,QAAM,IAANA,OAAM,EAANA,EAAQ7/C,KAAK2hD,IAAK,IAAAshE,EAAA,OACjBloH,eAACqI,KAAG,CAAkBs4G,GAAI,EAAEjyH,SAAA,CAC1BsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgB/zB,WAAW,SAAQhU,SAAA,CAChEa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACgR,IAAU,CACTN,UACEyY,EAASkuC,GACLzxC,KAAWgzG,yCACXhzG,KAAWizG,mCAChB15H,SAEDsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAM1Y,WAAW,SAAQhU,SAAA,CAChDgqB,EAASkuC,IACRr3D,cAAC4rB,KAAI,CAACG,MAAI,EAAC9Y,MAAO,CAAEc,aAAc,OAAQ5U,SACxCa,cAAC84H,GAAiB,MAGtBroH,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,CAAC,SAAOk4D,EAAMykC,kBAI9BrrF,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,EACNgqB,EAASkuC,IACTr3D,cAACqmB,KAAU,CACTX,QAASA,KACPi+C,EAAetM,GACfmhE,GAAeA,GAAa,EAE9B9nH,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAGtB,QAAVqlH,EAAAthE,EAAM0J,YAAI,IAAA43D,OAAA,EAAVA,EAAY3vH,UAAWktD,GAAc8iE,cACpCh5H,cAACqmB,KAAU,CACTX,QAASA,IAAMgzG,EAAqBrhE,EAAMP,MAC1CpmD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,aAMvC7C,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC4nF,GAAQ,CAAChgF,KAAMyvD,EAAM+lD,QAASxtE,OAAO,mBAG1Cn/B,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,cAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC4nF,GAAQ,CAAChgF,KAAMyvD,EAAM8hE,SAAUvpF,OAAO,mBAG3Cn/B,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,SAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDk4D,EAAM0kC,UAIXtrF,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,yBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDk4D,EAAM+hE,mBAGX3oH,eAACu7B,GAAM,CACLpzB,KAAM6/G,IAAsBphE,EAAMP,KAClCnsC,QAASA,IAAM+tG,GAAsB,GACrCloH,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAC,qDAGba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMgzG,GAAsB,KAEvC14H,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IAAMg/C,EAAYrN,EAAMP,gBA9H/BO,EAAMP,KAkIV,KAEJ,EC/HV,MAAMuiE,GAAuBx3F,IAC3B,MAAMy3F,EAAmBC,GAA4B13F,GACrD,QAAOy3F,GAAmBA,EAAiBx0G,MAAM6O,GAAMA,EAAE7J,UAAiB,EAGtEyvG,GAA+B13F,GACxB,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMnsB,KAAK5K,GAAMZ,KAAKC,MAAMW,KAqB/B0uH,GAA0BpvG,OAAaC,MAAM,CACjDovG,UAAWrvG,OACXsvG,kBAAmBtvG,OAAYqjF,KAAK,YAAa,CAC/C0W,IAAI,EACJx5G,KAAMyf,OAEHggG,GAAGhgG,QACH2uF,KACC,sBACA,uCACAsgB,QAKFM,GAAsCvvG,OAAaC,MAAM,CAC7DovG,UAAWrvG,OACXsvG,kBAAmBtvG,OAAYqjF,KAAK,YAAa,CAC/C0W,IAAI,EACJx5G,KAAMyf,OAEHggG,GAAGhgG,QACH2uF,KACC,sBACA,uCACAsgB,IAEDtgB,KAAK,YAAa+M,IA7COjkF,IAC9B,MAAMy3F,EAAmBC,GAA4B13F,GACrD,QAAOy3F,GACHpT,GACEoT,EAAiBn4F,QAAQxN,IAAOA,EAAE7J,WAE/B,IAwCJivF,KAAK,WAAYgN,IArCSlkF,IAC/B,MAAMy3F,EAAmBC,GAA4B13F,GACrD,QAAOy3F,GACHhT,GACEgT,EAAiBn4F,QAAQxN,IAAOA,EAAE7J,WAE/B,QAuMI8vG,OAlKX16H,IAQG,IARF,KACH0Z,EAAI,QACJ+R,EAAO,SACPkvG,EAAQ,SACRzuG,EAAQ,UACRqnC,EAAS,MACT3yD,EAAK,iBACLg6H,GACD56H,EACC,MAAOulB,EAAQ+wG,GAAa/jH,mBAE1B+nH,KACKO,EAAkBC,GAAuBvoH,wBAC9CjV,GAGFsW,qBAAU,KACRknH,OAAoBx9H,GACpBg5H,EACEsE,EACIH,GACAH,GACL,GACA,CAAC5gH,IAEJ,MAAMiS,EAAOC,aAA4B,CACvCC,SAAUC,aAAYvG,GACtBwG,KAAM,aAGF0M,EAAajB,KAEb+iG,EAAY5uG,EAAK05F,MAAM,aAAa,GACpCC,EAAYA,KAChB35F,EAAKu6B,MAAM,CAAEq0E,WAAW,EAAMC,kBAAmB,IAAK,EAYlDO,EAAcA,KAClB,GAAIH,EAAkB,CACpB,MAAMn1G,EAASkG,EAAKnG,YACpB,GAAIC,EAAO80G,UACTO,OAAoBx9H,OACf,CACL,MAAM88H,EAAmBC,GACvB50G,EAAO+0G,mBAET,GAAIJ,EAAkB,CACpB,MAAMY,EAAiBZ,EAAiBn4F,QAAQxN,IAAOA,EAAE7J,WACpDo8F,GAA+BgU,GAExB5T,GAAgC4T,GAEjCA,EAAev8H,SAAW27H,EAAiB37H,OACpDq8H,EAAoB,wCAEpBA,OAAoBx9H,GAJpBw9H,EAAoBjU,IAFpBiU,EAAoBlU,GAQxB,MACEkU,OAAoBx9H,EAExB,CACF,GAGF,OACEwD,cAAAyV,WAAA,CAAAtW,SACEsR,eAACu7B,GAAM,CAACpzB,KAAMA,EAAM+R,QAASA,IAAMA,IAAWna,SAAS,KAAIrR,SAAA,CACzDa,cAACwsC,GAAW,CAAArtC,SAAEW,IACd2Q,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cA3CDR,IAA8B,IAADsvG,EACjD,MAAM/lE,EAAamlE,GAA4B1uG,EAAK6uG,mBACpDlV,IACAp5F,EAAS,CACPquG,UAAW5uG,EAAK4uG,UAChBC,kBAC8D,QAD7CS,EACL,OAAV/lE,QAAU,IAAVA,OAAU,EAAVA,EAAYjzB,QAAQxN,GAAMA,EAAE7J,WAAUpU,KAAK2gB,GAAMA,EAAEqd,kBAAS,IAAAymF,IAAI,IAClE,IAqCI3uG,YAAU,EAAArsB,SAAA,CAEVa,cAACusC,GAAa,CAAAptC,SACXszD,EAAU90D,QAAU,EACnBqC,cAAAyV,WAAA,CAAAtW,SACEa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAG3Ba,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACbsR,eAAC8V,GAAW,CACVI,WAAS,EACTH,MAAK,yCAA2CrnB,SAAA,CAEhDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGpK,GAAI,EAAEptB,SACtBa,cAAC8nB,GAAa,CACZ1pB,KAAM,YACN2pB,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,OAAO,GACvB,CAAEiqB,MAAO,KAAMjqB,OAAO,IAExB2qB,cAAc,EACdJ,QAAS+D,EAAK/D,QACdpB,QAASu0G,MAGbj6H,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,UACds6H,GACAhpH,eAACqI,KAAG,CAACud,EAAG,EAAEl3B,SAAA,CACRa,cAACgR,IAAU,CAAA7R,SAAC,sCAGZa,cAACgwH,GAAe,CACdv9D,UAAWA,EACX3rC,QAAS+D,EAAK/D,QACdmpG,SAAU,oBACVC,mBAAmB,EACnBxqG,QAASu0G,SAKjBj6H,cAACgR,IAAU,CAACC,QAAQ,QAAQmD,MAAM,QAAOjV,SACtC46H,GAAsC,cAOnD/5H,cAACmsC,GAAa,CAACC,MAAOqmB,EAAU90D,QAAU,EAAEwB,SAC1CsR,eAACqI,KAAG,CACF5F,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACfx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CAEhCa,cAAC+/E,GAAkB,CACjBt2E,KACEgpD,EAAU90D,OAAS,EACfuF,EAAUC,QAAQE,OAClBH,EAAUC,QAAQS,GAExB8hB,QAASm0G,IAEX75H,cAACssC,GAAY,CACX7iC,KACEgpD,EAAU90D,OAAS,EACfuF,EAAUC,QAAQG,KAClBJ,EAAUC,QAAQQ,IAExB+hB,QAASA,OACTuC,UAAW4C,EAAK2B,UAAUE,QAC1B7vB,KAAK,uBAMd,ECnCQu9H,OA9M4Cl7H,IAQpD,IARqD,YAC1Ds2D,EAAW,WACXpB,EAAU,iBACVmE,EAAgB,oBAChBwL,EAAmB,YACnBs2D,EAAW,aACXC,EAAY,YACZ9B,GACDt5H,EACC,MAAOu5H,EAAmBC,GAAwBjnH,oBAAU,GACtD8oH,EAAanjE,GACjBA,EAAWhlB,aAAY,UAAA/xC,OACT+2D,EAAWhlB,cAAY,SAAA/xC,OACxB+2D,EAAWojE,aAEpBC,EAAoBrjE,IAAuB,IAAAqM,EAAA,OACY,QADZA,EACrC,OAAVrP,QAAU,IAAVA,OAAU,EAAVA,EAAY13C,MAAM2Z,GAAMA,EAAEqd,WAAa0jB,EAAW1jB,kBAAS,IAAA+vB,IAAI,CAC7DlxD,UAAW,mBACXmhC,SAAU,EACVphC,SAAU,GACVsiD,aAAc,WACf,EAoBG8lE,EAAuB,OAAXllE,QAAW,IAAXA,OAAW,EAAXA,EAAa13B,QAlBb68F,CAAC58F,EAAsBC,IAChC6Q,aAAQ9Q,GAAM+Q,IACnB,MAAM8rF,EAAe78F,EAAI/Y,WAAWvZ,GAAMA,EAAEqrD,OAAS94B,EAAK84B,OAC1D,GAAI8jE,GAAgB,EAAG,CACrB,MAAMhgE,EAAQ78B,EAAI68F,GAClB9rF,EAAMnvC,OAAOi7H,EAAc,EAAG,IACzBhgE,EACHnI,UAAW,IAAImI,EAAMnI,UAAWgoE,EAAiBz8F,KAErD,MACE8Q,EAAMrvC,KAAK,IACNu+B,EACHy0B,UAAW,CAACgoE,EAAiBz8F,KAEjC,KAI8D,IAE5D7U,EAAYiuC,GACTmB,GAAoBnB,EAAWN,QAAyB,OAAhByB,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBzB,MAenE,OACE92D,cAAAyV,WAAA,CAAAtW,SACGi1D,GACCp0D,cAAC8Y,KAAG,CAAA3Z,SACQ,OAATu7H,QAAS,IAATA,OAAS,EAATA,EAAWhlH,KAAK0hD,IAAU,IAAAyjE,EAAA,OACzBpqH,eAACqI,KAAG,CAAuBs4G,GAAI,EAAEjyH,SAAA,CAC/BsR,eAACmb,KAAI,CACHhb,WAAS,EACTs2B,eAAe,gBACf/zB,WAAW,SAAQhU,SAAA,CAEnBa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACgR,IAAU,CACT8E,UAAW,OACXpF,UACEyY,EAASiuC,GACLxxC,KAAWgzG,yCACXhzG,KAAWizG,mCAChB15H,SAEDsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAM1Y,WAAW,SAAQhU,SAAA,CAChDgqB,EAASiuC,IACRp3D,cAAC4rB,KAAI,CAACG,MAAI,EAAC9Y,MAAO,CAAEc,aAAc,OAAQ5U,SACxCa,cAAC84H,GAAiB,MAGtB94H,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SAAEo7H,EAAUnjE,YAI5B3mD,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,EACNgqB,EAASiuC,IACTp3D,cAACqmB,KAAU,CACTX,QAASA,KACPq+C,EAAoB3M,GACpBohE,GAAeA,GAAa,EAE9B9nH,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAGjB,QAAfunH,EAAAzjE,EAAW2J,YAAI,IAAA85D,OAAA,EAAfA,EAAiB7xH,UAAWktD,GAAc8iE,cACzCh5H,cAACqmB,KAAU,CACTX,QAASA,IAAMgzG,EAAqBthE,EAAWN,MAC/CpmD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,aAMvC7C,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,SAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAGnDa,cAAC4nF,GAAQ,CACPhgF,KAAMwvD,EAAWtjB,cACjBlE,OAAO,mBAKfn/B,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,YAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDi4D,EAAWqd,aAGhBhkE,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,mBAICa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDi4D,EAAWgiE,mBAIlB3oH,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,cAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAACu3H,GAAa,CACZnjE,WAAYgD,EAAW3E,UACvB29D,cAAc,SAIpBpwH,cAAC45H,GAA0B,CAEzBhhH,KAAM6/G,IAAsBrhE,EAAWN,KACvC+iE,SAAUA,IAAMnB,GAAsB,GACtC/tG,QAASA,IAAM+tG,GAAsB,GACrCttG,SAAWP,GAhJHiwG,EAACjwG,EAAsBusC,KAC3CshE,GAAsB,GAClB7tG,EAAK4uG,gBAAgCj9H,IAAnBquB,EAAK4uG,UACzBY,EAAYjjE,EAAWN,MAENjsC,EAAK6uG,kBAAkBv4F,QAAQ5pB,GAAMA,GAAK,IAClD7B,KAAKg+B,GACZ4mF,EAAa,CAAExjE,KAAMM,EAAWN,KAAMpjB,SAAUA,KAEpD,EAwIconF,CAAcjwG,EAAMusC,GAEtBt3D,MAAK,8DACL2yD,UAAW2E,EAAW3E,UACtBqnE,kBAAkB,GATb1iE,EAAWN,QA3HVM,EAAWN,KAsIf,OAIX,ECvFQikE,OAlHf,SAAyBhmH,GAA4B,IAADimH,EAClD,MAAM,IAAE1jE,EAAG,aAAEuM,EAAY,UAAEe,EAAS,UAAEvM,EAAS,YAAEmgE,GAAgBzjH,GAC1D0jH,EAAmBC,GAAwBjnH,oBAAU,GAEtD0X,EAAYmuC,GACTe,GAAaf,EAAIR,QAAkB,OAATuB,QAAS,IAATA,OAAS,EAATA,EAAWvB,MAG9C,OACErmD,eAACqI,KAAG,CAAgBs4G,GAAI,EAAEjyH,SAAA,CACxBsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgB/zB,WAAW,SAAQhU,SAAA,CAChEa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACgR,IAAU,CACTN,UACEyY,EAASmuC,GACL1xC,KAAWgzG,yCACXhzG,KAAWizG,mCAChB15H,SAEDsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAM1Y,WAAW,SAAQhU,SAAA,CAChDgqB,EAASmuC,IACRt3D,cAAC4rB,KAAI,CAACG,MAAI,EAAC9Y,MAAO,CAAEc,aAAc,OAAQ5U,SACxCa,cAAC84H,GAAiB,MAGtBroH,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,CAAC,cAAYm4D,EAAIslD,wBAIjCnsG,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,EACNgqB,EAASmuC,IACTt3D,cAACqmB,KAAU,CACTX,QAASA,KACPm+C,EAAavM,GACbkhE,GAAeA,GAAa,EAE9B9nH,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAGxB,QAAR0nH,EAAA1jE,EAAIyJ,YAAI,IAAAi6D,OAAA,EAARA,EAAUhyH,UAAWktD,GAAc8iE,cAClCh5H,cAACqmB,KAAU,CACTX,QAASA,IAAMgzG,EAAqBphE,EAAIR,MACxCpmD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,aAMvC7C,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,YAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWkV,KAAWszG,+BAA+B/5H,SACrEa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAIwlD,WAAYltE,OAAO,yBAG3Cn/B,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWkV,KAAWszG,+BAA+B/5H,SACrEa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAI2jE,YAAarrF,OAAO,yBAG5Cn/B,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,mBAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWkV,KAAWszG,+BAA+B/5H,SACpEm4D,EAAI8hE,mBAGT3oH,eAACu7B,GAAM,CACLpzB,KAAM6/G,IAAsBnhE,EAAIR,KAChCnsC,QAASA,IAAM+tG,GAAsB,GACrCloH,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAC,mDAGba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMgzG,GAAsB,KAEvC14H,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IAAMk/C,EAAUtN,EAAIR,gBAjG3BQ,EAAIR,KAuGlB,ECVeokE,OAtGf,SAA0BnmH,GAA4B,IAADimH,EACnD,MAAM,IAAE1jE,EAAG,aAAEuM,EAAY,UAAEe,EAAS,UAAEvM,EAAS,YAAEmgE,GAAgBzjH,GAC1D0jH,EAAmBC,GAAwBjnH,oBAAU,GAEtD0X,EAAYmuC,GACTe,GAAaf,EAAIR,QAAkB,OAATuB,QAAS,IAATA,OAAS,EAATA,EAAWvB,MAG9C,OACErmD,eAACqI,KAAG,CAAgBs4G,GAAI,EAAEjyH,SAAA,CACxBsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgB/zB,WAAW,SAAQhU,SAAA,CAChEa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACgR,IAAU,CACTN,UACEyY,EAASmuC,GACL1xC,KAAWgzG,yCACXhzG,KAAWizG,mCAChB15H,SAEDsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAM1Y,WAAW,SAAQhU,SAAA,CAChDgqB,EAASmuC,IACRt3D,cAAC4rB,KAAI,CAACG,MAAI,EAAC9Y,MAAO,CAAEc,aAAc,OAAQ5U,SACxCa,cAAC84H,GAAiB,MAGtB94H,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SAAC,uBAIjBsR,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,EACNgqB,EAASmuC,IACTt3D,cAACqmB,KAAU,CACTX,QAASA,KACPm+C,EAAavM,GACbkhE,GAAeA,GAAa,EAE9B9nH,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAGxB,QAAR0nH,EAAA1jE,EAAIyJ,YAAI,IAAAi6D,OAAA,EAARA,EAAUhyH,UAAWktD,GAAc8iE,cAClCh5H,cAACqmB,KAAU,CACTX,QAASA,IAAMgzG,EAAqBphE,EAAIR,MACxCpmD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,aAMvC7C,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,YAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWkV,KAAWszG,+BAA+B/5H,SACrEa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAIwlD,WAAYltE,OAAO,yBAG3Cn/B,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWkV,KAAWszG,+BAA+B/5H,SACrEa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAI2jE,YAAarrF,OAAO,yBAG5Cn/B,eAACu7B,GAAM,CACLpzB,KAAM6/G,IAAsBnhE,EAAIR,KAChCnsC,QAASA,IAAM+tG,GAAsB,GACrCloH,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAC,mDAGba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMgzG,GAAsB,KAEvC14H,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IAAMk/C,EAAUtN,EAAIR,gBArF3BQ,EAAIR,KA2FlB,ECceqkE,OAlHf,SAA0BpmH,GAA4B,IAADimH,EACnD,MAAM,IAAE1jE,EAAG,aAAEuM,EAAY,UAAEe,EAAS,UAAEvM,EAAS,YAAEmgE,GAAgBzjH,GAC1D0jH,EAAmBC,GAAwBjnH,oBAAU,GAEtD0X,EAAYmuC,GACTe,GAAaf,EAAIR,QAAkB,OAATuB,QAAS,IAATA,OAAS,EAATA,EAAWvB,MAG9C,OACErmD,eAACqI,KAAG,CAAgBs4G,GAAI,EAAEjyH,SAAA,CACxBsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgB/zB,WAAW,SAAQhU,SAAA,CAChEa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACgR,IAAU,CACTN,UACEyY,EAASmuC,GACL1xC,KAAWgzG,yCACXhzG,KAAWizG,mCAChB15H,SAEDsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAM1Y,WAAW,SAAQhU,SAAA,CAChDgqB,EAASmuC,IACRt3D,cAAC4rB,KAAI,CAACG,MAAI,EAAC9Y,MAAO,CAAEc,aAAc,OAAQ5U,SACxCa,cAAC84H,GAAiB,MAGtB94H,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SAAC,uBAIjBsR,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,EACNgqB,EAASmuC,IACTt3D,cAACqmB,KAAU,CACTX,QAASA,KACPm+C,EAAavM,GACbkhE,GAAeA,GAAa,EAE9B9nH,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAGxB,QAAR0nH,EAAA1jE,EAAIyJ,YAAI,IAAAi6D,OAAA,EAARA,EAAUhyH,UAAWktD,GAAc8iE,cAClCh5H,cAACqmB,KAAU,CACTX,QAASA,IAAMgzG,EAAqBphE,EAAIR,MACxCpmD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,aAMvC7C,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,eAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWkV,KAAWszG,+BAA+B/5H,SACrEa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAIwlD,WAAYltE,OAAO,yBAG3Cn/B,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWkV,KAAWszG,+BAA+B/5H,SACrEa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAI2jE,YAAarrF,OAAO,yBAG5Cn/B,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAAA,CACpEm4D,EAAI8jE,kBAAkB,IAAE9jE,EAAI+jE,aAAat3C,oBAG9CtzE,eAACu7B,GAAM,CACLpzB,KAAM6/G,IAAsBnhE,EAAIR,KAChCnsC,QAASA,IAAM+tG,GAAsB,GACrCloH,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAC,mDAGba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMgzG,GAAsB,KAEvC14H,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IAAMk/C,EAAUtN,EAAIR,gBAjG3BQ,EAAIR,KAuGlB,ECEewkE,OAlHf,SAA0BvmH,GAA4B,IAADimH,EACnD,MAAM,IAAE1jE,EAAG,aAAEuM,EAAY,UAAEe,EAAS,UAAEvM,EAAS,YAAEmgE,GAAgBzjH,GAC1D0jH,EAAmBC,GAAwBjnH,oBAAU,GAEtD0X,EAAYmuC,GACTe,GAAaf,EAAIR,QAAkB,OAATuB,QAAS,IAATA,OAAS,EAATA,EAAWvB,MAG9C,OACErmD,eAACqI,KAAG,CAAgBs4G,GAAI,EAAEjyH,SAAA,CACxBsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgB/zB,WAAW,SAAQhU,SAAA,CAChEa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACgR,IAAU,CACTN,UACEyY,EAASmuC,GACL1xC,KAAWgzG,yCACXhzG,KAAWizG,mCAChB15H,SAEDsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAM1Y,WAAW,SAAQhU,SAAA,CAChDgqB,EAASmuC,IACRt3D,cAAC4rB,KAAI,CAACG,MAAI,EAAC9Y,MAAO,CAAEc,aAAc,OAAQ5U,SACxCa,cAAC84H,GAAiB,MAGtB94H,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SAAC,uBAIjBsR,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,EACNgqB,EAASmuC,IACTt3D,cAACqmB,KAAU,CACTX,QAASA,KACPm+C,EAAavM,GACbkhE,GAAeA,GAAa,EAE9B9nH,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAGxB,QAAR0nH,EAAA1jE,EAAIyJ,YAAI,IAAAi6D,OAAA,EAARA,EAAUhyH,UAAWktD,GAAc8iE,cAClCh5H,cAACqmB,KAAU,CACTX,QAASA,IAAMgzG,EAAqBphE,EAAIR,MACxCpmD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,aAMvC7C,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,eAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWkV,KAAWszG,+BAA+B/5H,SACrEa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAIwlD,WAAYltE,OAAO,yBAG3Cn/B,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWkV,KAAWszG,+BAA+B/5H,SACrEa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAI2jE,YAAarrF,OAAO,yBAG5Cn/B,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAAA,CACpEm4D,EAAI8jE,kBAAkB,IAAE9jE,EAAI+jE,aAAat3C,oBAG9CtzE,eAACu7B,GAAM,CACLpzB,KAAM6/G,IAAsBnhE,EAAIR,KAChCnsC,QAASA,IAAM+tG,GAAsB,GACrCloH,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAC,mDAGba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMgzG,GAAsB,KAEvC14H,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IAAMk/C,EAAUtN,EAAIR,gBAjG3BQ,EAAIR,KAuGlB,ECEeykE,OAlHf,SAA0BxmH,GAA4B,IAADimH,EACnD,MAAM,IAAE1jE,EAAG,aAAEuM,EAAY,UAAEe,EAAS,UAAEvM,EAAS,YAAEmgE,GAAgBzjH,GAC1D0jH,EAAmBC,GAAwBjnH,oBAAU,GAEtD0X,EAAYmuC,GACTe,GAAaf,EAAIR,QAAkB,OAATuB,QAAS,IAATA,OAAS,EAATA,EAAWvB,MAG9C,OACErmD,eAACqI,KAAG,CAAgBs4G,GAAI,EAAEjyH,SAAA,CACxBsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgB/zB,WAAW,SAAQhU,SAAA,CAChEa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACgR,IAAU,CACTN,UACEyY,EAASmuC,GACL1xC,KAAWgzG,yCACXhzG,KAAWizG,mCAChB15H,SAEDsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAM1Y,WAAW,SAAQhU,SAAA,CAChDgqB,EAASmuC,IACRt3D,cAAC4rB,KAAI,CAACG,MAAI,EAAC9Y,MAAO,CAAEc,aAAc,OAAQ5U,SACxCa,cAAC84H,GAAiB,MAGtB94H,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SAAC,sBAIjBsR,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,EACNgqB,EAASmuC,IACTt3D,cAACqmB,KAAU,CACTX,QAASA,KACPm+C,EAAavM,GACbkhE,GAAeA,GAAa,EAE9B9nH,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAGxB,QAAR0nH,EAAA1jE,EAAIyJ,YAAI,IAAAi6D,OAAA,EAARA,EAAUhyH,UAAWktD,GAAc8iE,cAClCh5H,cAACqmB,KAAU,CACTX,QAASA,IAAMgzG,EAAqBphE,EAAIR,MACxCpmD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,aAMvC7C,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,eAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWkV,KAAWszG,+BAA+B/5H,SACrEa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAIwlD,WAAYltE,OAAO,yBAG3Cn/B,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWkV,KAAWszG,+BAA+B/5H,SACrEa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAI2jE,YAAarrF,OAAO,yBAG5Cn/B,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,WAGDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWkV,KAAWszG,+BAA+B/5H,SACpEm4D,EAAIkkE,gBAGT/qH,eAACu7B,GAAM,CACLpzB,KAAM6/G,IAAsBnhE,EAAIR,KAChCnsC,QAASA,IAAM+tG,GAAsB,GACrCloH,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAC,mDAGba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMgzG,GAAsB,KAEvC14H,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IAAMk/C,EAAUtN,EAAIR,gBAjG3BQ,EAAIR,KAuGlB,EC5De2kE,OA9D+B1mH,IAC5C,MAAM,KAAEugD,EAAI,aAAEuO,EAAY,UAAEe,EAAS,UAAEvM,GAActjD,EA0DrD,OAAO/U,cAAC8Y,KAAG,CAAA3Z,SAAM,OAAJm2D,QAAI,IAAJA,OAAI,EAAJA,EAAM5/C,KAAK4hD,GAzDEA,KACxB,OAAQA,EAAIokE,oBACV,IAAK,SACH,OACE17H,cAAC+6H,GAAe,CAEdzjE,IAAKA,EACLe,UAAWA,EACXwL,aAAcA,EACde,UAAWA,GAJNtN,EAAIsM,OAOf,IAAK,UACH,OACE5jE,cAACk7H,GAAgB,CAEf5jE,IAAKA,EACLe,UAAWA,EACXwL,aAAcA,EACde,UAAWA,GAJNtN,EAAIsM,OAOf,IAAK,UACH,OACE5jE,cAACm7H,GAAgB,CAEf7jE,IAAKA,EACLe,UAAWA,EACXwL,aAAcA,EACde,UAAWA,GAJNtN,EAAIsM,OAOf,IAAK,UACH,OACE5jE,cAACs7H,GAAgB,CAEfhkE,IAAKA,EACLe,UAAWA,EACXwL,aAAcA,EACde,UAAWA,GAJNtN,EAAIsM,OAOf,IAAK,aACH,OACE5jE,cAACu7H,GAAgB,CAEfjkE,IAAKA,EACLe,UAAWA,EACXwL,aAAcA,EACde,UAAWA,GAJNtN,EAAIsM,OAOf,QACE,OAAO5jE,cAAAyV,WAAA,IACX,EAG8BkmH,CAAiBrkE,MAAY,ECoIhDskE,OA1LwC18H,IAMhD,IANiD,QACtD+iD,EAAO,WACPmS,EAAU,aACVkmE,EAAY,aACZuB,EAAY,QACZC,GACD58H,EACC,MAAOu5H,EAAmBC,GAAwBjnH,oBAAU,IACtD,yBAAEoK,GAA6BwhB,KAE/Bo9F,EAAoBt0E,GACLzpD,MAAMgzC,KACvB,IAAIgrB,IACFvU,EAAOgP,aACJh0B,QAAQ8f,GAAQA,EAAI6a,aAAe3V,EAAO2V,aAC1CtJ,SAASvR,GACRA,EAAImU,8BAA8B1/C,KAAK6kC,GAAMA,EAAE7G,eAKpDh+B,KAAKw0C,GAAqB,OAAVkK,QAAU,IAAVA,OAAU,EAAVA,EAAY13C,MAAM2Z,GAAMA,EAAEqd,WAAawW,MACvD/oB,QAAQ9K,QAAY75B,IAAN65B,IAoBnB,OACEr2B,cAAAyV,WAAA,CAAAtW,SACU,OAAP8iD,QAAO,IAAPA,OAAO,EAAPA,EAASvsC,KAAKywC,IAAM,IAAA41E,EAAAC,EAAAC,EAAA,OACnBxrH,eAACqI,KAAG,CAAmBs4G,GAAI,EAAEjyH,SAAA,CAC3BsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgB/zB,WAAW,SAAQhU,SAAA,CAChEa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRsR,eAACO,IAAU,CACTN,UAAWkV,KAAWizG,mCAAmC15H,SAAA,CAC1D,iBACgBgnD,EAAO3L,gBAGzB2L,EAAO5D,eACNzV,KAAOqZ,EAAO5D,eAAiBzV,OAASsS,OACtCp/C,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACqmB,KAAU,CACTX,QAASA,IAAMgzG,EAAqBvyE,EAAO2Q,MAC3CpmD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,YAMzC7C,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,cAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC4nF,GAAQ,CACPhgF,KAAMu+C,EAAO5D,cACb3S,OAAO,kBACPkV,SACyD,QADjDi3E,EACNlgH,EAAyBsqC,EAAOgP,aAAa,GAAGx0D,eAAO,IAAAo7H,OAAA,EAAvDA,EACIp2E,SAENmiC,2BAA2B,SAIjCr3E,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,YAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC4nF,GAAQ,CACPhgF,KAAMu+C,EAAO+1E,YACbtsF,OAAO,kBACPkV,SAIG,QAJKk3E,EACNngH,EACEsqC,EAAOgP,aAAahP,EAAOgP,aAAax3D,OAAS,GAC9Ck1D,oBACJ,IAAAmpE,OAAA,EAHDA,EAGGr2E,SAELmiC,2BAA2B,SAIjCr3E,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,YAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDgnD,EAAOsuB,aAGXqnD,GACCrrH,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,QAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpC,QAFoC88H,EAEpD91E,EAAOxB,iBAAS,IAAAs3E,IAAI,SAI3BxrH,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,cAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAACu3H,GAAa,CACZnjE,WAAYqmE,EAAiBt0E,GAC7BiqE,cAAc,SAIpBpwH,cAAC45H,GAA0B,CAEzBhhH,KAAM6/G,IAAsBtyE,EAAO2Q,KACnC+iE,SAAUA,IAAMnB,GAAsB,GACtC/tG,QAASA,IAAM+tG,GAAsB,GACrCttG,SAAWP,GAtJCiwG,EAACjwG,EAAsBs7B,KAE3C,GADAuyE,GAAsB,GAClB7tG,EAAK4uG,gBAAgCj9H,IAAnBquB,EAAK4uG,UACzBoC,EAAa11E,EAAO2Q,UACf,CACL,MAAMqlE,EAAWtxG,EAAK6uG,kBAAkBv4F,QAAQ5pB,GAAMA,GAAK,IAC3D4kH,EAASx+H,UAAqB,OAAVy2D,QAAU,IAAVA,OAAU,EAAVA,EAAYz2D,QAC5Bk+H,EAAa11E,EAAO2Q,MACpBqlE,EAASzmH,KAAKg+B,GACZ4mF,EAAa,CACXxjE,KAAM3Q,EAAO2Q,KACbpjB,SAAUA,KAGpB,GAwI4ConF,CAAcjwG,EAAMs7B,GACxDrmD,MAAK,0DACL2yD,UAAWgoE,EAAiBt0E,GAC5B2zE,kBAAkB,GAPb3zE,EAAO2Q,QA9HN3Q,EAAO2Q,KAuIX,KAEP,EC5KQslE,OAtByCl9H,IAGjD,IAHkD,KACvDuK,EAAI,cACJ4yH,GACDn9H,EACC,OACEc,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAM1Y,WAAW,SAAQhU,SAAA,CACjDa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAEt7F,SACTa,cAACq8H,EAAa,CAAC/oH,OAAO,MAAMD,MAAM,YAGtCrT,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC8Y,KAAG,CAACG,GAAI,EAAE9Z,SACTa,cAACgR,IAAU,CAACN,UAAWC,KAAO2rH,UAAUn9H,SAAEsK,YAI5C,ECmMK8yH,OAxMwBr9H,IAAsB,IAADs9H,EAAAxnE,EAAAynE,EAAAC,EAAAznE,EAAA0nE,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAApB,YAAEzE,GAAat5H,EACrD,MACEwe,OAAO,iBACLw2C,EAAgB,mBAChBD,EAAkB,QAClBvf,EAAO,iBACP6jB,EAAgB,UAChBF,EAAS,YACTC,GACD,eACDqL,EAAc,YACde,EAAW,aACXb,EAAY,UACZe,EAAS,oBACTb,EAAmB,iBACnBgB,EAAgB,uBAChBE,EAAsB,eACtBG,EAAc,qBACdnJ,GACEwJ,MAEE,WAAErR,EAAU,iBAAEW,GAAqBf,GACvCC,EACAC,EACAxf,EAAQyf,mBACRzf,IAEKwoF,EAAmBC,GAAwB1rH,oBAAS,GACrDkmB,EAAajB,KAEnB,OAAiB,OAAV09B,QAAU,IAAVA,OAAU,EAAVA,EAAYz2D,QAAS,EAC1BqC,cAAC8Y,KAAG,CAACG,GAAI0e,EAAWX,OAAS,EAAI,EAAE73B,SACjCa,cAAC4rB,KAAI,CAAChb,WAAS,EAACib,UAAU,SAASnb,UAAWC,KAAOtM,QAAQlF,SAC3DsR,eAACqI,KAAG,CAACo/G,GAAI,EAAGxnB,GAAI/4E,EAAWX,OAAS,EAAI,EAAGo6F,GAAI,EAAEjyH,SAAA,EAC7Cw4B,EAAWX,QACXh3B,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACgR,IAAU,CACTN,UAAWC,KAAOysH,UAClBhpH,MAAM,UACNipH,MAAM,SAAQl+H,SACf,uBAKLa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAGn9B,UAAWC,KAAOwqF,QAAQh8F,SACpCsR,eAAC+6F,KAAS,CAAC5K,SAAUs8B,EAAkB/9H,SAAA,CACrCsR,eAACg7F,KAAgB,CAAC/6F,UAAWC,KAAO2sH,iBAAiBn+H,SAAA,CACnDa,cAACgR,IAAU,CAACN,UAAWC,KAAO4sH,aAAap+H,SAAC,YAG5Ca,cAAC0hC,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QAASA,IAAMy3G,GAAsBD,GACrCxsH,UAAWC,KAAO6sH,cAClB1nH,UAAU,SAAQ3W,SAEjB+9H,EAAoB,iBAAmB,sBAG5Cl9H,cAAC2rG,KAAgB,CAAAxsG,SACfsR,eAACqI,KAAG,CAAC5F,QAAQ,QAAQk+G,GAAI,EAAEjyH,SAAA,CACzBa,cAACgR,IAAU,CAACN,UAAWC,KAAO4H,KAAKpZ,SAChC+0D,GAAgB,GAAA7zD,OAAO6zD,EAAiB91D,QAE3C4B,cAACgR,IAAU,CAACN,UAAWC,KAAO4H,KAAKpZ,SACjCa,cAACu3H,GAAa,CACZnjE,WAAYW,EACZq7D,cAAc,kBAS5B3/G,eAACqI,KAAG,CAAC+0B,GAAI,EAAE1uC,SAAA,EACQ,OAAhB+0D,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBtc,aACjB53C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACqI,KAAG,CAAA3Z,SAAA,CACFa,cAACgR,IAAU,CAACN,UAAWC,KAAOo+B,SAAS5vC,SAAC,qBAGZ,QAA3Bq9H,EAAQ,OAAP9nF,QAAO,IAAPA,GAAkB,QAAXsgB,EAAPtgB,EAASwgB,iBAAS,IAAAF,OAAX,EAAPA,EAAoBr3D,cAAM,IAAA6+H,IAAI,GAAK,EACnCx8H,cAAC47H,GAAc,CACb35E,QAA0B,QAAnBw6E,EAAE/nF,EAAQwgB,iBAAS,IAAAunE,OAAA,EAAjBA,EACL3/H,QACDwzE,MAAK,CAAC7F,EAAG8F,IACRzjC,KAAO29B,EAAEloB,eAAe66C,KAAK7sB,EAAEhuB,iBAEnC6R,WAAYA,EACZynE,aAAcz2D,EACdk1D,aAAcr+D,EACd6/D,UAA2B,OAAhB5nE,QAAgB,IAAhBA,MAAkBupE,YAG/Bz9H,cAACo8H,GAAe,CACd3yH,KAAM,qBACN4yH,cAAeqB,OAGD,OAAhBxpE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBoL,mBACF,OAAhBpL,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBuL,cACF,OAAhBvL,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB0L,YAAa5/D,cAACy2B,KAAO,UAI9B,OAAhBy9B,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBoL,kBACjBt/D,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACqI,KAAG,CAAC+0B,GAAI,EAAE1uC,SAAA,CACTa,cAACgR,IAAU,CAACN,UAAWC,KAAOo+B,SAAS5vC,SAAC,qBAGV,QAA7Bu9H,EAAQ,OAAPhoF,QAAO,IAAPA,GAAoB,QAAbugB,EAAPvgB,EAAS8gB,mBAAW,IAAAP,OAAb,EAAPA,EAAsBt3D,cAAM,IAAA++H,IAAI,GAAK,EACrC18H,cAACo6H,GAAgB,CACfhmE,WAAYA,EACZoB,YAAgC,QAArBmnE,EAAEjoF,EAAQ8gB,mBAAW,IAAAmnE,OAAA,EAAnBA,EAAqB7/H,QAAQwzE,MAAK,CAAC7F,EAAG8F,KACjD,MAAMotD,EAAW7wF,KAAO29B,EAAE32B,eAAespD,KACvC7sB,EAAEz8B,eAEJ,OAAoB,IAAb6pF,EAAiBlzD,EAAE3T,KAAOyZ,EAAEzZ,KAAO6mE,CAAQ,IAEpDplE,iBAAkBA,EAClBwL,oBAAqBA,EACrBu2D,aAAcr1D,EACdo1D,YAAat1D,EACbyzD,YAAaA,IAGfx4H,cAACo8H,GAAe,CACd3yH,KAAM,2BACN4yH,cAAeuB,OAGD,OAAhB1pE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBuL,cACF,OAAhBvL,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB0L,YAAa5/D,cAACy2B,KAAO,UAI9B,OAAhBy9B,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBuL,aACjBz/D,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACqI,KAAG,CAAC+0B,GAAI,EAAE1uC,SAAA,CACTa,cAACgR,IAAU,CAACN,UAAWC,KAAOo+B,SAAS5vC,SAAC,WACf,QAAxBy9H,EAAQ,OAAPloF,QAAO,IAAPA,GAAe,QAARmoF,EAAPnoF,EAAS6gB,cAAM,IAAAsnE,OAAR,EAAPA,EAAiBl/H,cAAM,IAAAi/H,IAAI,GAAK,EAChC58H,cAACu4H,GAAW,CACVhjE,OAAsB,QAAhBunE,EAAEpoF,EAAQ6gB,cAAM,IAAAunE,OAAA,EAAdA,EACJhgI,QACDwzE,MAAK,CAAC7F,EAAG8F,IAAMzjC,KAAO29B,EAAE2yC,SAAShgB,KAAK7sB,EAAE6sC,WAC3Cz5C,eAAgBA,EAChBe,YAAaA,EACbpM,YAAaA,EACbkgE,YAAaA,IAGfx4H,cAACo8H,GAAe,CACd3yH,KAAM,iBACN4yH,cAAewB,MAGF,OAAhB3pE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB0L,WAAY5/D,cAACy2B,KAAO,UAI5B,OAAhBy9B,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB0L,WACjB5/D,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACqI,KAAG,CAAC+0B,GAAI,EAAE1uC,SAAA,CACTa,cAACgR,IAAU,CAACN,UAAWC,KAAOo+B,SAAS5vC,SAAC,SACjB,QAAtB49H,EAAQ,OAAProF,QAAO,IAAPA,GAAa,QAANsoF,EAAPtoF,EAAS4gB,YAAI,IAAA0nE,OAAN,EAAPA,EAAer/H,cAAM,IAAAo/H,IAAI,GAAK,EAC9B/8H,cAACy7H,GAAS,CACRnmE,KAAkB,QAAd2nE,EAAEvoF,EAAQ4gB,YAAI,IAAA2nE,OAAA,EAAZA,EACFngI,QACDwzE,MAAK,CAAC7F,EAAG8F,IACRzjC,KAAO29B,EAAEqyC,YAAY1f,KAAK7sB,EAAEusC,cAEhCj5C,aAAcA,EACde,UAAWA,EACXvM,UAAWA,EACXmgE,YAAaA,IAGfx4H,cAACo8H,GAAe,CACd3yH,KAAM,eACN4yH,cAAeyB,oBAWjC99H,cAAAyV,WAAA,GACD,E,+BC/KYsoH,OAlCkC7+H,IAM1C,IAN2C,aAChDgoB,EAAY,SACZ+C,EAAQ,SACR+zG,EAAQ,QACRC,EAAO,KACP7/H,GACDc,EACC,MAAOwe,EAAOi9F,GAAYvpG,IAAMK,SAAqB,OAAZyV,QAAY,IAAZA,MAOzC,OACElnB,cAAAyV,WAAA,CAAAtW,SACEa,cAACgR,IAAU,CAAC8E,UAAU,MAAK3W,SACzBsR,eAACmb,KAAI,CAAC9V,UAAU,QAAQlF,WAAS,EAACuC,WAAW,SAASg0B,QAAS,EAAEhoC,SAAA,CAC/Da,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SAAE6+H,IACZh+H,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACqhG,KAAM,CACL3f,QAAShkE,EACTuM,SAbU5M,IACpBs9F,EAASt9F,EAAMnH,OAAOwrE,SACtBz3D,EAAS5M,EAAMnH,OAAOwrE,QAAQ,EAYpBtjF,KAAMA,EACNgW,MAAM,cAGVpU,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SAAE8+H,UAGf,E,8CChBQhvF,OA1BM,CACnBivF,WAAW,EACXC,YAAa,KACbC,iBAAkB,EAClBC,YAAa,KACbC,aAAc,EACdzyG,UAAW,EACX0yG,UAAU,EACVC,aAAa,EACbjtH,aAAa,EACbktH,eAAgB,GAChBC,WAAY,KACZC,UAAW,KACXC,WAAW,EACXC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,UAAW,KACXC,QAAQ,EACRC,SAAS,EACTC,YAAa,CAAEC,OAAQ,EAAGC,OAAQ,EAAGC,KAAM,EAAGC,KAAM,GACpDC,WAAY,CAAC,EACbC,WAAY,EACZC,YAAa,G,0CCpBR,MAAMC,GAAyBC,IACpC,IAAIC,EAAiB,GACjBC,EAAaC,GAAeH,GAC5BI,EAAWC,GAAaL,GAC5B,IAAK,IAAIM,EAAaJ,EAAYI,EAAaF,EAAUE,IACnDN,EAAKnB,eAAep9G,QAAQ6+G,GAAc,GAC5CL,EAAepgI,KAAKygI,GAGxB,OAAOL,CAAc,EAeVE,GAAkBH,GAC7BA,EAAKtB,aAAe6B,GAAiBP,GAC1BK,GAAgBL,GAC3BA,EAAKtB,aAAe8B,GAAkBR,GAC3BO,GAAoBP,GAC/BA,EAAKS,WACDnzE,KAAKC,MAAMyyE,EAAKU,aAAe,IAC9B50C,SAASk0C,EAAKW,eAAiB,EAAI,EAAI,GACxC,EACOH,GAAqBR,GAChCA,EAAKS,WACDnzE,KAAKC,OAAOyyE,EAAKU,aAAe,GAAK,GACrC,GACC50C,SAASk0C,EAAKW,eAAiB,EAAI,EAAI,GACxCX,EAAKU,aAGEE,GAAYC,GAAUA,GAAQA,EAAKrmG,aAAgB,EACnDsmG,GAAaD,GAAUA,GAAQA,EAAKE,cAAiB,EACrDC,GAAoB,SAACzB,GAA0C,IAA7B0B,EAAezqH,UAAAzY,OAAA,QAAAnB,IAAA4Z,UAAA,IAAAA,UAAA,GAC5D,IAAI0qH,EAAOC,EAAOxpH,EAAGypH,EAQrB,OAPAF,EAAQ3B,EAAYC,OAASD,EAAYG,KACzCyB,EAAQ5B,EAAYE,OAASF,EAAYI,KACzChoH,EAAI21C,KAAK+zE,MAAMF,EAAOD,IACtBE,EAAa9zE,KAAKg0E,MAAW,IAAJ3pH,EAAW21C,KAAKi0E,KACxB,IACfH,EAAa,IAAM9zE,KAAKk0E,IAAIJ,IAG3BA,GAAc,IAAMA,GAAc,GAClCA,GAAc,KAAOA,GAAc,IAE7B,OAELA,GAAc,KAAOA,GAAc,IAC9B,SAEe,IAApBH,EACEG,GAAc,IAAMA,GAAc,IAC7B,KAEA,OAIJ,UACT,EAGaK,GAAazB,IACxB,IAAI0B,GAAQ,EAaZ,OAZK1B,EAAK2B,WACJ3B,EAAKS,WACHT,EAAKtB,cAAgBsB,EAAKf,WAAa,IACzCyC,GAAQ,IAGV1B,EAAKf,YAAce,EAAKU,cACxBV,EAAKtB,cAAgBsB,EAAKf,WAAae,EAAKU,gBAE5CgB,GAAQ,IAGLA,CAAK,EAIDE,GAAgBA,CAAC5B,EAAMphI,KAClC,IAAIijI,EAAY,CAAC,EAEjB,OADAjjI,EAAKZ,SAASE,GAAS2jI,EAAU3jI,GAAO8hI,EAAK9hI,KACtC2jI,CAAS,EAkZLC,GAAiBA,CAAC9B,EAAM/hI,KACnC,MAAM8jI,EAb4B/B,KAClC,IAAIj6H,EAAMi6H,EAAK2B,SAA6B,EAAlB3B,EAAKf,WAAiBe,EAAKf,WACjDlnG,EAAaioG,EAAK2B,UAAgC,EAArB3B,EAAKU,aAAoB,EACtDsB,EAAUhC,EAAK2B,UAAgC,EAArB3B,EAAKU,aAAoB,EACnDuB,EAAU,GACd,KAAOlqG,EAAahyB,GAClBk8H,EAAQpiI,KAAKk4B,GACbA,EAAaiqG,EAAUhC,EAAKkC,eAC5BF,GAAW10E,KAAKxnD,IAAIk6H,EAAKkC,eAAgBlC,EAAKU,cAEhD,OAAOuB,CAAO,EAGKE,CAAoBnC,GACvC,IAAIoC,EAAgB,EACpB,GAAInkI,EAAQ8jI,EAAWA,EAAWhkI,OAAS,GACzCE,EAAQ8jI,EAAWA,EAAWhkI,OAAS,QAEvC,IAAK,IAAI0mB,KAAKs9G,EAAY,CACxB,GAAI9jI,EAAQ8jI,EAAWt9G,GAAI,CACzBxmB,EAAQmkI,EACR,KACF,CACAA,EAAgBL,EAAWt9G,EAC7B,CAEF,OAAOxmB,CAAK,EAEDokI,GAAiBrC,IAC5B,MAAMsC,EAAetC,EAAKS,WACtBT,EAAKb,WAAa7xE,KAAKC,MAAMyyE,EAAKU,aAAe,GACjD,EACJ,GAAIV,EAAKuC,aAAc,CACrB,IAAIC,EACJ,MACMC,EADYp2F,IAASq2F,YAAY1C,EAAK2C,SACnBC,iBAAiB,gBAoB1C,GAnBA9lI,MAAMgzC,KAAK2yF,GAAQ1gE,OAAO8gE,IACxB,GAAK7C,EAAKlnH,UASR,GAAI+pH,EAAMC,UAAYhC,GAAU+B,GAAS,GAAsB,EAAlB7C,EAAKZ,UAEhD,OADAoD,EAAcK,GACP,OAVT,GACEA,EAAME,WAAaT,EAAe1B,GAASiC,GAAS,GAClC,EAAlB7C,EAAKZ,UAGL,OADAoD,EAAcK,GACP,EASX,OAAO,CAAI,KAGRL,EACH,OAAO,EAET,MAAMQ,GACS,IAAbhD,EAAKiD,IACDjD,EAAKf,WAAae,EAAKtB,aACvBsB,EAAKtB,aAGX,OADEpxE,KAAKk0E,IAAIgB,EAAYU,QAAQjlI,MAAQ+kI,IAAiB,CAE1D,CACE,OAAOhD,EAAKkC,cACd,EAGWiB,GAAgBA,CAACnD,EAAMoD,IAClCA,EAAUllG,QAAO,CAACvhC,EAAOuB,IAAQvB,GAASqjI,EAAKrpH,eAAezY,KAAM,GAChE,KACA6D,QAAQC,MAAM,gBAAiBg+H,GAExBqD,GAAerD,IAQ1B,IAAIH,EAAYyD,EAPhBH,GAAcnD,EAAM,CAClB,OACA,gBACA,aACA,eACA,eAGF,MAAMuD,EAAgBvD,EAAKf,WAAa,EAAIe,EAAKU,aAC5CV,EAAKlnH,SAGRwqH,EAAcC,EAAgBvD,EAAKd,YAFnCW,EAAa2D,GAAexD,GAAQA,EAAKb,WAI3C,IAAI9rH,EAAQ,CACVi2B,QAAS,EACThgB,WAAY,GACZm6G,iBAAkB,IAEpB,GAAIzD,EAAK0D,aAAc,CACrB,IAAIC,EAAmB3D,EAAKlnH,SAExB,oBAAsBknH,EAAKnsH,KAAO,WADlC,eAAiBmsH,EAAKnsH,KAAO,gBAE7BuE,EAAa4nH,EAAKlnH,SAElB,oBAAsBknH,EAAKnsH,KAAO,WADlC,eAAiBmsH,EAAKnsH,KAAO,gBAE7B+vH,EAAe5D,EAAKlnH,SAEpB,cAAgBknH,EAAKnsH,KAAO,MAD5B,cAAgBmsH,EAAKnsH,KAAO,MAEhCR,EAAQ,IACHA,EACHswH,kBACAvrH,YACAwrH,cAEJ,MACM5D,EAAKlnH,SACPzF,EAAW,IAAI2sH,EAAKnsH,KAEpBR,EAAY,KAAI2sH,EAAKnsH,KAgBzB,OAbImsH,EAAK6D,OAAMxwH,EAAQ,CAAEi2B,QAAS,IAC9Bu2F,IAAYxsH,EAAMI,MAAQosH,GAC1ByD,IAAajwH,EAAMK,OAAS4vH,GAG5BziI,SAAWA,OAAO6c,kBAAoB7c,OAAOijI,cAC1C9D,EAAKlnH,SAGRzF,EAAMonB,UAAYulG,EAAKnsH,KAAO,KAF9BR,EAAMmoB,WAAawkG,EAAKnsH,KAAO,MAM5BR,CAAK,EAED0wH,GAAsB/D,IACjCmD,GAAcnD,EAAM,CAClB,OACA,gBACA,aACA,eACA,aACA,QACA,YAEF,IAAI3sH,EAAQgwH,GAAYrD,GAaxB,OAXIA,EAAK0D,cACPrwH,EAAMowH,iBACJ,qBAAuBzD,EAAKgE,MAAQ,MAAQhE,EAAKiE,QACnD5wH,EAAMiW,WAAa,aAAe02G,EAAKgE,MAAQ,MAAQhE,EAAKiE,SAExDjE,EAAKlnH,SACPzF,EAAMiW,WAAa,OAAS02G,EAAKgE,MAAQ,MAAQhE,EAAKiE,QAEtD5wH,EAAMiW,WAAa,QAAU02G,EAAKgE,MAAQ,MAAQhE,EAAKiE,QAGpD5wH,CAAK,EAED6wH,GAAgBlE,IAC3B,GAAIA,EAAKmE,QACP,OAAO,EAGThB,GAAcnD,EAAM,CAClB,aACA,WACA,WACA,aACA,aACA,eACA,iBACA,aACA,YACA,gBACA,gBAGF,MAAM,WACJM,EAAU,SACV8D,EAAQ,SACRzC,EAAQ,WACRlB,EAAU,WACVxB,EAAU,aACVyB,EAAY,eACZwB,EAAc,WACd/C,EAAU,UACVJ,EAAS,cACTsF,EAAa,YACbnF,EAAW,KACX2E,EAAI,SACJ/qH,GACEknH,EAEJ,IACIsE,EACAxE,EAGJ,GAAI+D,GAA4B,IAApB7D,EAAKf,WACf,OAAO,EAGT,IAAIsF,EAAiB,EAoCrB,GAnCI5C,GACF4C,GAAkBC,GAAaxE,GAG7Bf,EAAaiD,IAAmB,GAChC5B,EAAa4B,EAAiBjD,IAE9BsF,IAAmBjE,EAAarB,EAC5ByB,GAAgBJ,EAAarB,GAC7BA,EAAaiD,IAGfzB,IACF8D,GAAkBz4C,SAAS40C,EAAe,MAI1CzB,EAAaiD,IAAmB,GAChC5B,EAAa4B,EAAiBjD,IAE9BsF,EAAiB7D,EAAgBzB,EAAaiD,GAE5CzB,IACF8D,EAAiBz4C,SAAS40C,EAAe,KAS3C4D,EAHGxrH,EAGUwnH,EAAapB,GAAe,EAL1BqF,EAAiBrF,EAGnBoB,EAAanB,GAAc,EAJ5BoF,EAAiBpF,GAST,IAAlBkF,EAAwB,CAC1B,IAAII,EACJ,IAAIC,EAAYr4F,IAASq2F,YAAY0B,GAIrC,GAHAK,EAAmBnE,EAAakE,GAAaxE,GAE7CsE,GADAxE,EAAc4E,GAAaA,EAAUC,WAAWF,KACK,EAA1B3E,EAAYiD,WAAkB,GACtC,IAAftC,EAAqB,CACvBgE,EAAmB9C,EACfrB,EAAakE,GAAaxE,GAC1BM,EACJR,EAAc4E,GAAaA,EAAUnlI,SAASklI,GAC9CH,EAAa,EACb,IAAK,IAAIzB,EAAQ,EAAGA,EAAQ4B,EAAkB5B,IAC5CyB,GACEI,GACAA,EAAUnlI,SAASsjI,IACnB6B,EAAUnlI,SAASsjI,GAAOroG,YAE9B8pG,GAAcx4C,SAASk0C,EAAKW,eAC5B2D,GAAcxE,IAAgBf,EAAYe,EAAYtlG,aAAe,CACvE,CACF,CAEA,OAAO8pG,CAAU,EAGNE,GAAgBxE,GACvBA,EAAKmE,UAAYnE,EAAK2B,SACjB,EAEL3B,EAAKqE,cACArE,EAAKf,WAEPe,EAAKU,cAAgBV,EAAKS,WAAa,EAAI,GAGvCmE,GAAiB5E,GACxBA,EAAKmE,UAAYnE,EAAK2B,SACjB,EAEF3B,EAAKf,WAGDuE,GAAkBxD,GACT,IAApBA,EAAKf,WACD,EACAuF,GAAaxE,GAAQA,EAAKf,WAAa2F,GAAc5E,GAC9C6E,GAAoB7E,GAC3BA,EAAKF,YAAcE,EAAKtB,aACtBsB,EAAKF,YAAcE,EAAKtB,aAAeoG,GAAc9E,GAChD,OAEF,QAEHA,EAAKF,YAAcE,EAAKtB,aAAeqG,GAAa/E,GAC/C,QAEF,OAIE8E,GAAgBxlI,IAKtB,IALuB,aAC5BohI,EAAY,WACZD,EAAU,IACVwC,EAAG,cACHtC,GACDrhI,EAEC,GAAImhI,EAAY,CACd,IAAIuE,GAAStE,EAAe,GAAK,EAAI,EAGrC,OAFI50C,SAAS60C,GAAiB,IAAGqE,GAAS,GACtC/B,GAAOvC,EAAe,IAAM,IAAGsE,GAAS,GACrCA,CACT,CACA,OAAI/B,EACK,EAEFvC,EAAe,CAAC,EAGZqE,GAAehvH,IAKrB,IALsB,aAC3B2qH,EAAY,WACZD,EAAU,IACVwC,EAAG,cACHtC,GACD5qH,EAEC,GAAI0qH,EAAY,CACd,IAAI5sH,GAAQ6sH,EAAe,GAAK,EAAI,EAGpC,OAFI50C,SAAS60C,GAAiB,IAAG9sH,GAAQ,GACpCovH,GAAOvC,EAAe,IAAM,IAAG7sH,GAAQ,GACrCA,CACT,CACA,OAAIovH,EACKvC,EAAe,EAEjB,CAAC,EAGGuE,GAAYA,MAEH,qBAAXpkI,SACPA,OAAOggB,WACPhgB,OAAOggB,SAASC,eCrzBdokH,GAAmBlF,IACvB,IAAImF,EAAaC,EAAaC,EAC1B/C,EAAcrkI,EAuBlB,OApBEA,EADE+hI,EAAKiD,IACCjD,EAAKf,WAAa,EAAIe,EAAK/hI,MAE3B+hI,EAAK/hI,MAEfonI,EAAcpnI,EAAQ,GAAKA,GAAS+hI,EAAKf,WACrCe,EAAKS,YACP6B,EAAeh1E,KAAKC,MAAMyyE,EAAKU,aAAe,GAC9C0E,GAAennI,EAAQ+hI,EAAKtB,cAAgBsB,EAAKf,aAAe,EAE9DhhI,EAAQ+hI,EAAKtB,aAAe4D,EAAe,GAC3CrkI,GAAS+hI,EAAKtB,aAAe4D,IAE7B6C,GAAc,IAGhBA,EACEnF,EAAKtB,cAAgBzgI,GACrBA,EAAQ+hI,EAAKtB,aAAesB,EAAKU,aAG9B,CACL,eAAe,EACf,eAAgByE,EAChB,eAAgBC,EAChB,eAAgBC,EAChB,gBANiBpnI,IAAU+hI,EAAKtB,aAOjC,EA2CG4G,GAASA,CAAC7b,EAAO8b,IAAgB9b,EAAMvrH,KAAOqnI,EAE9CC,GAAgBxF,IACpB,IAAI9hI,EACAukI,EAAS,GACTgD,EAAiB,GACjBC,EAAkB,GAClBC,EAAgBn0H,IAAMo0H,SAASnW,MAAMuQ,EAAKzgI,UAC1C2gI,EAAaC,GAAeH,GAC5BI,EAAWC,GAAaL,GAiG5B,OA/FAxuH,IAAMo0H,SAAS5nI,QAAQgiI,EAAKzgI,UAAU,CAACshI,EAAM5iI,KAC3C,IAAIwrH,EACAoc,EAAsB,CACxBjmI,QAAS,WACT3B,MAAOA,EACPikI,eAAgBlC,EAAKkC,eACrBxD,aAAcsB,EAAKtB,cAQnBjV,GAHCuW,EAAK8F,UACL9F,EAAK8F,UAAY9F,EAAKnB,eAAep9G,QAAQxjB,IAAU,EAEhD4iI,EAEAzgI,cAAA,UAEV,IAAI2lI,EArEe/F,KACrB,IAAI3sH,EAAQ,CAAC,EAoCb,YAlC2BzW,IAAvBojI,EAAKqE,gBAAsD,IAAvBrE,EAAKqE,gBAC3ChxH,EAAMI,MAAQusH,EAAKb,YAGjBa,EAAK6D,OACPxwH,EAAMM,SAAW,WACbqsH,EAAKlnH,SACPzF,EAAMO,KAAOosH,EAAK/hI,MAAQ6tF,SAASk0C,EAAKd,aAExC7rH,EAAMQ,MAAQmsH,EAAK/hI,MAAQ6tF,SAASk0C,EAAKb,YAE3C9rH,EAAMi2B,QAAU02F,EAAKtB,eAAiBsB,EAAK/hI,MAAQ,EAAI,EACvDoV,EAAMiW,WACJ,WACA02G,EAAKgE,MACL,MACAhE,EAAKiE,QAHL,gBAMAjE,EAAKgE,MACL,MACAhE,EAAKiE,QACP5wH,EAAMowH,iBACJ,WACAzD,EAAKgE,MACL,MACAhE,EAAKiE,QAHL,gBAMAjE,EAAKgE,MACL,MACAhE,EAAKiE,SAGF5wH,CAAK,EAgCO2yH,CAAc,IAAKhG,EAAM/hI,UACtCgoI,EAAaxc,EAAMt0G,MAAMrE,WAAa,GACtCo1H,EAAehB,GAAgB,IAAKlF,EAAM/hI,UAoB9C,GAlBAwkI,EAAO5iI,KACL2R,IAAM20H,aAAa1c,EAAO,CACxBvrH,IAAK,WAAaonI,GAAO7b,EAAOxrH,GAChC,aAAcA,EACd6S,UAAWs1H,KAAWF,EAAcD,GACpCI,SAAU,KACV,eAAgBH,EAAa,gBAC7B7yH,MAAO,CAAEwtB,QAAS,UAAY4oF,EAAMt0G,MAAM9B,OAAS,CAAC,KAAO0yH,GAC3DjgH,QAAU5a,IACRu+G,EAAMt0G,OAASs0G,EAAMt0G,MAAM2Q,SAAW2jG,EAAMt0G,MAAM2Q,QAAQ5a,GACtD80H,EAAKsG,eACPtG,EAAKsG,cAAcT,EACrB,KAMF7F,EAAK2B,WAA0B,IAAd3B,EAAK6D,KAAgB,CACxC,IAAI0C,EAAaZ,EAAgB1nI,EAE/BsoI,GAAc/B,GAAaxE,IAC3B2F,IAAkB3F,EAAKU,eAEvBxiI,GAAOqoI,EACHroI,GAAOgiI,IACTzW,EAAQoX,GAEVqF,EAAehB,GAAgB,IAAKlF,EAAM/hI,MAAOC,IACjDunI,EAAe5lI,KACb2R,IAAM20H,aAAa1c,EAAO,CACxBvrH,IAAK,YAAconI,GAAO7b,EAAOvrH,GACjC,aAAcA,EACdmoI,SAAU,KACVv1H,UAAWs1H,KAAWF,EAAcD,GACpC,eAAgBC,EAAa,gBAC7B7yH,MAAO,IAAMo2G,EAAMt0G,MAAM9B,OAAS,CAAC,KAAO0yH,GAC1CjgH,QAAU5a,IACRu+G,EAAMt0G,OAASs0G,EAAMt0G,MAAM2Q,SAAW2jG,EAAMt0G,MAAM2Q,QAAQ5a,GACtD80H,EAAKsG,eACPtG,EAAKsG,cAAcT,EACrB,MAMJF,IAAkB3F,EAAKU,eACzBxiI,EAAMynI,EAAgB1nI,EAClBC,EAAMkiI,IACR3W,EAAQoX,GAEVqF,EAAehB,GAAgB,IAAKlF,EAAM/hI,MAAOC,IACjDwnI,EAAgB7lI,KACd2R,IAAM20H,aAAa1c,EAAO,CACxBvrH,IAAK,aAAeonI,GAAO7b,EAAOvrH,GAClC,aAAcA,EACdmoI,SAAU,KACVv1H,UAAWs1H,KAAWF,EAAcD,GACpC,eAAgBC,EAAa,gBAC7B7yH,MAAO,IAAMo2G,EAAMt0G,MAAM9B,OAAS,CAAC,KAAO0yH,GAC1CjgH,QAAU5a,IACRu+G,EAAMt0G,OAASs0G,EAAMt0G,MAAM2Q,SAAW2jG,EAAMt0G,MAAM2Q,QAAQ5a,GACtD80H,EAAKsG,eACPtG,EAAKsG,cAAcT,EACrB,KAKV,KAGE7F,EAAKiD,IACAwC,EAAehlI,OAAOgiI,EAAQiD,GAAiBc,UAE/Cf,EAAehlI,OAAOgiI,EAAQiD,EACvC,EAGK,MAAMe,WAAcj1H,IAAMk1H,cAC/B3xH,SACE,MAAM0tH,EAAS+C,GAAajkI,KAAK4T,QAC3B,aAAEwxH,EAAY,YAAEC,EAAW,aAAEC,GAAiBtlI,KAAK4T,MACnD2xH,EAAc,CAAEH,eAAcC,cAAaC,gBACjD,OACEzmI,cAAA,OACE0Q,UAAU,cACVuC,MAAO9R,KAAK4T,MAAMyqH,cACdkH,EAAWvnI,SAEdkjI,GAGP,EC5LK,MAAMsE,WAAav1H,IAAMk1H,cAC9BvuD,aAAahwD,EAASjd,GAGpBA,EAAEytE,iBACFp3E,KAAK4T,MAAMgjE,aAAahwD,EAC1B,CAEApT,SACE,IAAIiyH,EAxBahH,KACnB,IAAIiH,EAWJ,OATEA,EADEjH,EAAK2B,SACAr0E,KAAK45E,KAAKlH,EAAKf,WAAae,EAAKkC,gBAC/BlC,EAAKkC,eAAiB,EAE7B50E,KAAK45E,MAAMlH,EAAKf,WAAae,EAAKU,cAAgBV,EAAKkC,gBACvD,EAEK50E,KAAK45E,KAAKlH,EAAKf,YAGjBgI,CAAI,EAYME,CAAY,CACzBlI,WAAY19H,KAAK4T,MAAM8pH,WACvBiD,eAAgB3gI,KAAK4T,MAAM+sH,eAC3BxB,aAAcn/H,KAAK4T,MAAMurH,aACzBiB,SAAUpgI,KAAK4T,MAAMwsH,WAMvB,MAAM,aAAEgF,EAAY,YAAEC,EAAW,aAAEC,GAAiBtlI,KAAK4T,MACnD2xH,EAAc,CAAEH,eAAcC,cAAaC,gBACjD,IAAII,EAAOnqI,MAAM+Z,MACf,KACA/Z,MAAMkqI,EAAW,GACdt7G,KAAK,KACLtH,MAAM,KACTtO,KAAI,CAACie,EAAGxd,KACR,IAAI6wH,EAAY7wH,EAAIhV,KAAK4T,MAAM+sH,eAC3BmF,EACF9wH,EAAIhV,KAAK4T,MAAM+sH,gBAAkB3gI,KAAK4T,MAAM+sH,eAAiB,GAC3DpxH,EAAYs1H,KAAW,CACzB,eACE7kI,KAAK4T,MAAMupH,cAAgB0I,GAC3B7lI,KAAK4T,MAAMupH,cAAgB2I,IAG3BC,EAAa,CACf1nI,QAAS,OACT3B,MAAOsY,EACP2rH,eAAgB3gI,KAAK4T,MAAM+sH,eAC3BxD,aAAcn9H,KAAK4T,MAAMupH,cAGvB54G,EAAUvkB,KAAK42E,aAAa9hE,KAAK9U,KAAM+lI,GAC3C,OACElnI,cAAA,MAAY0Q,UAAWA,EAAUvR,SAC9BiS,IAAM20H,aAAa5kI,KAAK4T,MAAMoyH,aAAahxH,GAAI,CAAEuP,aAD3CvP,EAEJ,IAIT,OAAO/E,IAAM20H,aAAa5kI,KAAK4T,MAAMqyH,WAAWP,GAAO,CACrDn2H,UAAWvP,KAAK4T,MAAMsyH,aACnBX,GAEP,ECrEK,MAAMY,WAAkBl2H,IAAMk1H,cACnCvuD,aAAahwD,EAASjd,GAChBA,GACFA,EAAEytE,iBAEJp3E,KAAK4T,MAAMgjE,aAAahwD,EAASjd,EACnC,CAEA6J,SACE,IAAI4yH,EAAc,CAAE,eAAe,EAAM,cAAc,GACnDC,EAAcrmI,KAAK42E,aAAa9hE,KAAK9U,KAAM,CAAE3B,QAAS,cAGvD2B,KAAK4T,MAAMwsH,WACiB,IAA5BpgI,KAAK4T,MAAMupH,cACVn9H,KAAK4T,MAAM8pH,YAAc19H,KAAK4T,MAAMurH,gBAEtCiH,EAAY,mBAAoB,EAChCC,EAAc,MAGhB,IAWIC,EAXAC,EAAiB,CACnB5pI,IAAK,IACL,YAAa,OACb4S,UAAWs1H,KAAWuB,GACtBt0H,MAAO,CAAEC,QAAS,SAClBwS,QAAS8hH,GAEPG,EAAc,CAChBrJ,aAAcn9H,KAAK4T,MAAMupH,aACzBO,WAAY19H,KAAK4T,MAAM8pH,YAkBzB,OAbE4I,EADEtmI,KAAK4T,MAAM0yH,UACDr2H,IAAM20H,aAAa5kI,KAAK4T,MAAM0yH,UAAW,IAChDC,KACAC,IAIHl3H,eAAA,UAAgB5T,KAAK,YAAa6qI,EAAcvoI,SAAA,CAC7C,IAAI,aADK,KAOTsoI,CACT,EAGK,MAAMG,WAAkBx2H,IAAMk1H,cACnCvuD,aAAahwD,EAASjd,GAChBA,GACFA,EAAEytE,iBAEJp3E,KAAK4T,MAAMgjE,aAAahwD,EAASjd,EACnC,CAEA6J,SACE,IAAIkzH,EAAc,CAAE,eAAe,EAAM,cAAc,GACnDC,EAAc3mI,KAAK42E,aAAa9hE,KAAK9U,KAAM,CAAE3B,QAAS,SAErD6hI,GAAUlgI,KAAK4T,SAClB8yH,EAAY,mBAAoB,EAChCC,EAAc,MAGhB,IAWIC,EAXAC,EAAiB,CACnBlqI,IAAK,IACL,YAAa,OACb4S,UAAWs1H,KAAW6B,GACtB50H,MAAO,CAAEC,QAAS,SAClBwS,QAASoiH,GAEPH,EAAc,CAChBrJ,aAAcn9H,KAAK4T,MAAMupH,aACzBO,WAAY19H,KAAK4T,MAAM8pH,YAkBzB,OAbEkJ,EADE5mI,KAAK4T,MAAMgzH,UACD32H,IAAM20H,aAAa5kI,KAAK4T,MAAMgzH,UAAW,IAChDC,KACAL,IAIHl3H,eAAA,UAAgB5T,KAAK,YAAamrI,EAAc7oI,SAAA,CAC7C,IAAI,SADK,KAOT4oI,CACT,E,cCzEK,MAAME,WAAoB72H,IAAM82H,UACrClnI,YAAY+T,GAAQ,IAADozH,EACjB59H,MAAMwK,GAAMozH,EAAAhnI,KAAC,KAafinI,eAAkBpxH,GAAS7V,KAAK0gC,KAAO7qB,EAAK,KAC5CqxH,gBAAmBrxH,GAAS7V,KAAKmnI,MAAQtxH,EAAK,KAC9CuxH,YAAc,KACZ,GAAIpnI,KAAK4T,MAAMyzH,gBAAkBrnI,KAAK0gC,KAAM,CAC1C,MAAM4+F,EAAOt/H,KAAK0gC,KAAK4mG,cAAc,gBAADpoI,OAClBc,KAAKuc,MAAM4gH,aAAY,OAEzCn9H,KAAK0gC,KAAK5uB,MAAMK,OAASotH,GAAUD,GAAQ,IAC7C,GACA,KACFiI,mBAAqB,KAGnB,GAFAvnI,KAAKwnI,UACLxnI,KAAK4T,MAAM6zH,QAAUznI,KAAK4T,MAAM6zH,SAC5BznI,KAAK4T,MAAM2wH,SAAU,CACvB,IAAImD,EAAelJ,GAAsB,IACpCx+H,KAAK4T,SACL5T,KAAKuc,QAENmrH,EAAalrI,OAAS,IACxBwD,KAAKw5G,UAAUmuB,IAAS,CACtBrK,eAAgBqK,EAAUrK,eAAep+H,OAAOwoI,OAE9C1nI,KAAK4T,MAAMg0H,YACb5nI,KAAK4T,MAAMg0H,WAAWF,GAG5B,GACA,KACFG,kBAAoB,KAClB,IAAIpJ,EAAO,CAAE2C,QAASphI,KAAK0gC,KAAMmiG,SAAU7iI,KAAKmnI,SAAUnnI,KAAK4T,OAC/D5T,KAAK8nI,YAAYrJ,GAAM,GAAM,KAC3Bz+H,KAAKonI,cACLpnI,KAAK4T,MAAMm0H,UAAY/nI,KAAKgoI,SAAS,SAAS,IAEpB,gBAAxBhoI,KAAK4T,MAAM2wH,WACbvkI,KAAKioI,cAAgB9zG,YAAYn0B,KAAKkoI,oBAAqB,MAE7DloI,KAAKmoI,GAAK,IAAIC,MAAe,KACvBpoI,KAAKuc,MAAMwgH,WACb/8H,KAAKqoI,iBAAgB,GACrBroI,KAAKsoI,eAAehqI,KAClB+Z,YAAW,IAAMrY,KAAKqoI,mBAAmBroI,KAAK4T,MAAM6uH,SAGtDziI,KAAKqoI,iBACP,IAEFroI,KAAKmoI,GAAGI,QAAQvoI,KAAK0gC,MACrBnlC,MAAM4Z,UAAU1Y,QAAQ4Y,KACtBiK,SAAS+hH,iBAAiB,iBACzBC,IACCA,EAAMkH,QAAUxoI,KAAK4T,MAAM60H,aAAezoI,KAAK0oI,aAAe,KAC9DpH,EAAMqH,OAAS3oI,KAAK4T,MAAM60H,aAAezoI,KAAK4oI,YAAc,IAAI,IAI/DtpI,SAGDA,OAAO6c,iBACT7c,OAAO6c,iBAAiB,SAAUnc,KAAKqoI,iBAEvC/oI,OAAOijI,YAAY,WAAYviI,KAAKqoI,iBACtC,EACA,KACFQ,qBAAuB,KACjB7oI,KAAK8oI,sBACPxwH,aAAatY,KAAK8oI,sBAEhB9oI,KAAKioI,eACP7zG,cAAcp0B,KAAKioI,eAEjBjoI,KAAKsoI,eAAe9rI,SACtBwD,KAAKsoI,eAAe7rI,SAAS2b,GAAUE,aAAaF,KACpDpY,KAAKsoI,eAAiB,IAEpBhpI,OAAO6c,iBACT7c,OAAO8c,oBAAoB,SAAUpc,KAAKqoI,iBAE1C/oI,OAAOypI,YAAY,WAAY/oI,KAAKqoI,iBAElCroI,KAAKgpI,eACP50G,cAAcp0B,KAAKgpI,cACrB,EACA,KACFC,0BAA6BC,IAC3B,IAAIzK,EAAO,CACT2C,QAASphI,KAAK0gC,KACdmiG,SAAU7iI,KAAKmnI,SACZ+B,KACAlpI,KAAKuc,OAEN4sH,GAAgB,EACpB,IAAK,IAAIxsI,KAAOI,OAAOM,KAAK2C,KAAK4T,OAAQ,CACvC,IAAKs1H,EAAU9zH,eAAezY,GAAM,CAClCwsI,GAAgB,EAChB,KACF,CACA,GAC4B,kBAAnBD,EAAUvsI,IACS,oBAAnBusI,EAAUvsI,IAIfusI,EAAUvsI,KAASqD,KAAK4T,MAAMjX,GAAM,CACtCwsI,GAAgB,EAChB,KACF,CACF,CACAnpI,KAAK8nI,YAAYrJ,EAAM0K,GAAe,KAChCnpI,KAAKuc,MAAM4gH,cAAgBltH,IAAMo0H,SAASnW,MAAMgb,EAAUlrI,WAC5DgC,KAAKopI,YAAY,CACf/qI,QAAS,QACT3B,MACEuT,IAAMo0H,SAASnW,MAAMgb,EAAUlrI,UAAYkrI,EAAU/J,aACvDhC,aAAcn9H,KAAKuc,MAAM4gH,eAGzB+L,EAAUnB,SACZ/nI,KAAKgoI,SAAS,UAEdhoI,KAAKqpI,MAAM,SACb,GACA,EACF,KACFC,mBAAqB,KAGnB,GAFAtpI,KAAKupI,kBACLvpI,KAAK4T,MAAM41H,UAAYxpI,KAAK4T,MAAM41H,WAC9BxpI,KAAK4T,MAAM2wH,SAAU,CACvB,IAAImD,EAAelJ,GAAsB,IACpCx+H,KAAK4T,SACL5T,KAAKuc,QAENmrH,EAAalrI,OAAS,IACxBwD,KAAKw5G,UAAUmuB,IAAS,CACtBrK,eAAgBqK,EAAUrK,eAAep+H,OAAOwoI,OAE9C1nI,KAAK4T,MAAMg0H,YACb5nI,KAAK4T,MAAMg0H,WAAWF,GAG5B,CAIA1nI,KAAKonI,aAAa,EAClB,KACFiB,gBAAmBc,IACbnpI,KAAKypI,iBAAiBzpI,KAAKypI,gBAAgBvnI,SAC/ClC,KAAKypI,gBAAkBC,MAAS,IAAM1pI,KAAK2pI,aAAaR,IAAgB,IACxEnpI,KAAKypI,iBAAiB,EACtB,KACFE,aAAe,WAA2B,IAA1BR,IAAal0H,UAAAzY,OAAA,QAAAnB,IAAA4Z,UAAA,KAAAA,UAAA,GAC3B,IAAK61B,IAASq2F,YAAY6F,EAAKG,OAAQ,OACvC,IAAI1I,EAAO,CACT2C,QAAS4F,EAAKtmG,KACdmiG,SAAUmE,EAAKG,SACZH,EAAKpzH,SACLozH,EAAKzqH,OAEVyqH,EAAKc,YAAYrJ,EAAM0K,GAAe,KAChCnC,EAAKpzH,MAAMm0H,SAAUf,EAAKgB,SAAS,UAClChB,EAAKqC,MAAM,SAAS,IAG3BrC,EAAKxtB,SAAS,CACZujB,WAAW,IAEbzkH,aAAa0uH,EAAK8B,6BACX9B,EAAK8B,oBACd,EAAE,KACFhB,YAAc,CAACrJ,EAAM0K,EAAeS,KAClC,IAAIC,EJpHyBpL,KAE/B,IAGIb,EAHAF,EAAaztH,IAAMo0H,SAASnW,MAAMuQ,EAAKzgI,UACvCw/H,EAAYzxE,KAAK45E,KAAKtG,GAASv0F,IAASq2F,YAAY1C,EAAK2C,WACzD9C,EAAavyE,KAAK45E,KAAKtG,GAASv0F,IAASq2F,YAAY1C,EAAKoE,YAE9D,GAAKpE,EAAKlnH,SAURqmH,EAAaJ,MAVK,CAClB,IAAIsM,EAAmBrL,EAAKS,YAA6C,EAA/B30C,SAASk0C,EAAKW,eAExB,kBAAvBX,EAAKW,eACqB,MAAjCX,EAAKW,cAAczjI,OAAO,KAE1BmuI,GAAoBtM,EAAY,KAElCI,EAAa7xE,KAAK45E,MAAMnI,EAAYsM,GAAoBrL,EAAKU,aAC/D,CAGA,IAAIxB,EACF7yF,IAASq2F,YAAY1C,EAAK2C,UAC1B7B,GACEz0F,IAASq2F,YAAY1C,EAAK2C,SAASkG,cAAc,qBAEjD/J,EAAaI,EAAcc,EAAKU,aAChChC,OACoB9hI,IAAtBojI,EAAKtB,aAA6BsB,EAAKsL,aAAetL,EAAKtB,aACzDsB,EAAKiD,UAA6BrmI,IAAtBojI,EAAKtB,eACnBA,EAAeO,EAAa,EAAIe,EAAKsL,cAEvC,IAAIzM,EAAiBmB,EAAKnB,gBAAkB,GACxCoK,EAAelJ,GACjB,CAAErB,eAAcG,mBAGlBA,EAAep+H,OAAOwoI,GAEtB,IAAInrH,EAAQ,CACVmhH,aACAE,aACAJ,YACAc,aACAnB,eACAQ,cACAJ,aACAD,kBAOF,OAJyB,OAArBmB,EAAKzB,aAAwByB,EAAKsJ,WACpCxrH,EAAmB,YAAI,WAGlBA,CAAK,EIiESytH,CAAiBvL,GACpCA,EAAO,IAAKA,KAASoL,EAAc9K,WAAY8K,EAAa1M,cAC5D,IAAI4F,EAAaJ,GAAalE,GAC9BA,EAAO,IAAKA,EAAMnsH,KAAMywH,GACxB,IAAI1E,EAAayD,GAAYrD,IAE3B0K,GACAl5H,IAAMo0H,SAASnW,MAAMluH,KAAK4T,MAAM5V,YAC9BiS,IAAMo0H,SAASnW,MAAMuQ,EAAKzgI,aAE5B6rI,EAAyB,WAAIxL,GAE/Br+H,KAAKw5G,SAASqwB,EAAcD,EAAS,EACrC,KAEFpC,QAAU,KACR,GAAIxnI,KAAK4T,MAAMkvH,cAAe,CAC5B,IAAIxE,EAAa,EACf2L,EAAY,EACVC,EAAiB,GACjBC,EAAYlH,GAAa,IACxBjjI,KAAK4T,SACL5T,KAAKuc,MACRmhH,WAAY19H,KAAK4T,MAAM5V,SAASxB,SAE9B4tI,EAAa/G,GAAc,IAC1BrjI,KAAK4T,SACL5T,KAAKuc,MACRmhH,WAAY19H,KAAK4T,MAAM5V,SAASxB,SAElCwD,KAAK4T,MAAM5V,SAASvB,SAASyrH,IAC3BgiB,EAAe5rI,KAAK4pH,EAAMt0G,MAAM9B,MAAMI,OACtCosH,GAAcpW,EAAMt0G,MAAM9B,MAAMI,KAAK,IAEvC,IAAK,IAAI8C,EAAI,EAAGA,EAAIm1H,EAAWn1H,IAC7Bi1H,GAAaC,EAAeA,EAAe1tI,OAAS,EAAIwY,GACxDspH,GAAc4L,EAAeA,EAAe1tI,OAAS,EAAIwY,GAE3D,IAAK,IAAIA,EAAI,EAAGA,EAAIo1H,EAAYp1H,IAC9BspH,GAAc4L,EAAel1H,GAE/B,IAAK,IAAIA,EAAI,EAAGA,EAAIhV,KAAKuc,MAAM4gH,aAAcnoH,IAC3Ci1H,GAAaC,EAAel1H,GAE9B,IAAIqpH,EAAa,CACfnsH,MAAOosH,EAAa,KACpBhsH,MAAO23H,EAAY,MAErB,GAAIjqI,KAAK4T,MAAMsrH,WAAY,CACzB,IAAImL,EAAY,GAAAnrI,OAAMgrI,EAAelqI,KAAKuc,MAAM4gH,cAAa,MAC7DkB,EAAW/rH,KAAI,QAAApT,OAAWm/H,EAAW/rH,KAAI,eAAApT,OAAcmrI,EAAY,WACrE,CAIA,YAHArqI,KAAKw5G,SAAS,CACZ6kB,cAGJ,CACA,IAAI+F,EAAgBn0H,IAAMo0H,SAASnW,MAAMluH,KAAK4T,MAAM5V,UACpD,MAAMygI,EAAO,IAAKz+H,KAAK4T,SAAU5T,KAAKuc,MAAOmhH,WAAY0G,GACzD,IAAI1G,EAAauF,GAAaxE,GAAQ4E,GAAc5E,GAAQ2F,EACxD9F,EAAc,IAAMt+H,KAAK4T,MAAMurH,aAAgBzB,EAC/CE,EAAa,IAAMF,EACnBuM,GACArM,GACCqF,GAAaxE,GAAQz+H,KAAKuc,MAAM4gH,cACjCmB,EACF,IACEt+H,KAAK4T,MAAMsrH,aACb+K,IAAc,IAAOrM,EAAaU,EAAc,KAAO,GAEzD,IAAID,EAAa,CACfnsH,MAAOosH,EAAa,IACpBhsH,KAAM23H,EAAY,KAEpBjqI,KAAKw5G,SAAS,CACZokB,WAAYA,EAAa,IACzBS,WAAYA,GACZ,EACF,KACFkL,gBAAkB,KAChB,IAAIe,EAAShrH,SAAS+hH,iBAAiB,oBACnCkJ,EAAcD,EAAO9tI,OACvBguI,EAAc,EAChBjvI,MAAM4Z,UAAU1Y,QAAQ4Y,KAAKi1H,GAASxrH,IACpC,MAAMlD,EAAUA,MACZ4uH,GAAeA,GAAeD,GAAevqI,KAAKqoI,kBACtD,GAAKvpH,EAAM2rH,QAEJ,CACL,MAAMC,EAAmB5rH,EAAM2rH,QAC/B3rH,EAAM2rH,QAAU,KACdC,IACA5rH,EAAM6rH,WAAWC,OAAO,CAE5B,MAPE9rH,EAAM2rH,QAAU,IAAM3rH,EAAM6rH,WAAWC,QAQpC9rH,EAAM8xE,SACL5wF,KAAK4T,MAAM2wH,SACbzlH,EAAM8xE,OAAS,KACb5wF,KAAKonI,cACLpnI,KAAKsoI,eAAehqI,KAClB+Z,WAAWrY,KAAKqoI,gBAAiBroI,KAAK4T,MAAM6uH,OAC7C,GAGH3jH,EAAM8xE,OAASh1E,EACfkD,EAAM6xE,QAAU,KACd/0E,IACA5b,KAAK4T,MAAMi3H,iBAAmB7qI,KAAK4T,MAAMi3H,iBAAiB,GAGhE,GACA,EACF,KACF3C,oBAAsB,KACpB,IAAIR,EAAe,GACnB,MAAMjJ,EAAO,IAAKz+H,KAAK4T,SAAU5T,KAAKuc,OACtC,IACE,IAAI7f,EAAQsD,KAAKuc,MAAM4gH,aACvBzgI,EAAQsD,KAAKuc,MAAMmhH,WAAa2F,GAAc5E,GAC9C/hI,IAEA,GAAIsD,KAAKuc,MAAM+gH,eAAep9G,QAAQxjB,GAAS,EAAG,CAChDgrI,EAAappI,KAAK5B,GAClB,KACF,CAEF,IACE,IAAIA,EAAQsD,KAAKuc,MAAM4gH,aAAe,EACtCzgI,IAAUumI,GAAaxE,GACvB/hI,IAEA,GAAIsD,KAAKuc,MAAM+gH,eAAep9G,QAAQxjB,GAAS,EAAG,CAChDgrI,EAAappI,KAAK5B,GAClB,KACF,CAEEgrI,EAAalrI,OAAS,GACxBwD,KAAKw5G,UAAUj9F,IAAK,CAClB+gH,eAAgB/gH,EAAM+gH,eAAep+H,OAAOwoI,OAE1C1nI,KAAK4T,MAAMg0H,YACb5nI,KAAK4T,MAAMg0H,WAAWF,IAGpB1nI,KAAKioI,gBACP7zG,cAAcp0B,KAAKioI,sBACZjoI,KAAKioI,cAEhB,EACA,KACF6C,aAAe,SAACpuI,GAAgC,IAAzBquI,EAAW91H,UAAAzY,OAAA,QAAAnB,IAAA4Z,UAAA,IAAAA,UAAA,GAChC,MAAM,SAAE+1H,EAAQ,aAAEC,EAAY,WAAErD,EAAU,MAAEnF,EAAK,YAAEyI,GACjDlE,EAAKpzH,MAEDupH,EAAe6J,EAAKzqH,MAAM4gH,aAChC,IAAI,MAAE5gH,EAAK,UAAE4uH,GJzNY1M,KAC3B,MAAM,eACJ2M,EAAc,UACdrO,EAAS,KACTuF,EAAI,SACJlC,EAAQ,MACR1jI,EAAK,WACLghI,EAAU,eACVJ,EAAc,SACdiH,EAAQ,aACRpH,EAAY,WACZ+B,EAAU,eACVyB,EAAc,aACdxB,EAAY,OACZkM,GACE5M,EACJ,GAAI2M,GAAkBrO,EAAW,MAAO,CAAC,EACzC,IACEuO,EACAC,EACAC,EAHEC,EAAiB/uI,EAIjB6f,EAAQ,CAAC,EACX4uH,EAAY,CAAC,EACf,GAAI7I,EAAM,CACR,IAAKlC,IAAa1jI,EAAQ,GAAKA,GAASghI,GAAa,MAAO,CAAC,EACzDhhI,EAAQ,EACV+uI,EAAiB/uI,EAAQghI,EAChBhhI,GAASghI,IAClB+N,EAAiB/uI,EAAQghI,GAEvB6G,GAAYjH,EAAep9G,QAAQurH,GAAkB,GACvDnO,EAAeh/H,KAAKmtI,GAEtBlvH,EAAQ,CACNwgH,WAAW,EACXI,aAAcsO,EACdnO,kBAEF6N,EAAY,CAAEpO,WAAW,EAC3B,MACEuO,EAAaG,EACTA,EAAiB,GACnBH,EAAaG,EAAiB/N,EACzB0C,EACI1C,EAAaiD,IAAmB,IACvC2K,EAAa5N,EAAcA,EAAaiD,GAF3B2K,EAAa,IAGlBpL,GAAUzB,IAASgN,EAAiBtO,EAC9CsO,EAAiBH,EAAanO,EACrB+B,GAAcuM,GAAkB/N,GACzC+N,EAAiBrL,EAAW1C,EAAaA,EAAa,EACtD4N,EAAalL,EAAW,EAAI1C,EAAa,GAChC+N,GAAkB/N,IAC3B4N,EAAaG,EAAiB/N,EACzB0C,EACI1C,EAAaiD,IAAmB,IAAG2K,EAAa,GAD1CA,EAAa5N,EAAayB,GAG3CoM,EAAgB5I,GAAa,IAAKlE,EAAMM,WAAY0M,IACpDD,EAAY7I,GAAa,IAAKlE,EAAMM,WAAYuM,IAC3ClL,IACCmL,IAAkBC,IAAWC,EAAiBH,GAClDC,EAAgBC,GAElBjH,GACEjH,EAAep+H,OACbs/H,GAAsB,IAAKC,EAAMtB,aAAcsO,KAE9CJ,GAOH9uH,EAAQ,CACNwgH,WAAW,EACXI,aAAcmO,EACdjN,WAAYmE,GAAmB,IAAK/D,EAAMnsH,KAAMi5H,IAChDjO,kBAEF6N,EAAY,CACVpO,WAAW,EACXI,aAAcmO,EACdjN,WAAYyD,GAAY,IAAKrD,EAAMnsH,KAAMk5H,IACzC3N,UAAW,OAhBbthH,EAAQ,CACN4gH,aAAcmO,EACdjN,WAAYyD,GAAY,IAAKrD,EAAMnsH,KAAMk5H,IACzClO,kBAiBN,MAAO,CAAE/gH,QAAO4uH,YAAW,EIkIEL,CAAa,CACtCpuI,WACGsqI,EAAKpzH,SACLozH,EAAKzqH,MACRsmH,SAAUmE,EAAKG,MACfkE,OAAQrE,EAAKpzH,MAAMy3H,SAAWN,IAEhC,IAAKxuH,EAAO,OACZ0uH,GAAgBA,EAAa9N,EAAc5gH,EAAM4gH,cACjD,IAAIuK,EAAenrH,EAAM+gH,eAAet9F,QACrC5kC,GAAU4rI,EAAKzqH,MAAM+gH,eAAep9G,QAAQ9kB,GAAS,IAExDwsI,GAAcF,EAAalrI,OAAS,GAAKorI,EAAWF,GACpDV,EAAKxtB,SAASj9F,GAAO,KACnByuH,GACEA,EAASU,YAAYnvH,MAAM4gH,eAAiB6J,EAAKzqH,MAAM4gH,cACvD6N,EAASU,YAAYZ,aAAapuI,GAC/ByuI,IACLnE,EAAK8B,qBAAuBzwH,YAAW,KACrC,MAAM,UAAE0kH,KAAc4O,GAAeR,EACrCnE,EAAKxtB,SAASmyB,GAAY,KACxB3E,EAAKsB,eAAehqI,KAClB+Z,YAAW,IAAM2uH,EAAKxtB,SAAS,CAAEujB,eAAc,KAEjDmO,GAAeA,EAAY3uH,EAAM4gH,qBAC1B6J,EAAK8B,oBAAoB,GAChC,GACDrG,GAAM,GAEb,EAAE,KACF2G,YAAc,SAACxiH,GAAkC,IAAzBmkH,EAAW91H,UAAAzY,OAAA,QAAAnB,IAAA4Z,UAAA,IAAAA,UAAA,GAEjC,IAAIspH,EJ/JmB6K,EAAC3K,EAAM73G,KAChC,IAAIglH,EAAaC,EAAaC,EAA2BvN,EACzD,MAAM,eACJoC,EAAc,aACdxB,EAAY,WACZzB,EAAU,aACVP,EAAY,SACZoH,EAAQ,SACRnE,GACE3B,EAIJ,GAFAmN,EADelO,EAAaiD,IAAmB,EAClB,GAAKjD,EAAaP,GAAgBwD,EAEvC,aAApB/5G,EAAQvoB,QAGVkgI,EAAcpB,GAFd2O,EACkB,IAAhBF,EAAoBjL,EAAiBxB,EAAeyM,GAElDrH,IAAanE,IAEf7B,GAA+B,KAD/BsN,EAAc1O,EAAe2O,GACMpO,EAAa,EAAImO,QAEjD,GAAwB,SAApBjlH,EAAQvoB,QAEjBkgI,EAAcpB,GADd2O,EAA8B,IAAhBF,EAAoBjL,EAAiBiL,GAE/CrH,IAAanE,IACf7B,GACIpB,EAAewD,GAAkBjD,EAAckO,QAEhD,GAAwB,SAApBhlH,EAAQvoB,SAGjB,IADAkgI,EAAc33G,EAAQlqB,MAAQkqB,EAAQ+5G,kBAClB/5G,EAAQu2G,aAC1B,OAAO,UAEJ,GAAwB,aAApBv2G,EAAQvoB,QAAwB,CAGzC,IADAkgI,EAAc33G,EAAQlqB,SACFkqB,EAAQu2G,aAC1B,OAAO,KAET,GAAIiD,EAAU,CACZ,IAAI11G,EAAY44G,GAAiB,IAAK7E,EAAMF,gBACxCA,EAAc33G,EAAQu2G,cAA8B,SAAdzyG,EACxC6zG,GAA4Bb,EACnBa,EAAc33G,EAAQu2G,cAA8B,UAAdzyG,IAC/C6zG,GAA4Bb,EAEhC,CACF,MAAO,GAAwB,UAApB92G,EAAQvoB,UACjBkgI,EAAcp7F,OAAOvc,EAAQlqB,UACTkqB,EAAQu2G,aAC1B,OAAO,KAGX,OAAOoB,CAAW,EIyGE6K,CADL,IAAKpC,EAAKpzH,SAAUozH,EAAKzqH,OACFqK,IAChB,IAAhB23G,GAAsBA,MACN,IAAhBwM,EACF/D,EAAK8D,aAAavM,EAAawM,GAE/B/D,EAAK8D,aAAavM,GAEtB,EAAE,KACF3nD,aAAgBjtE,KACS,IAAnB3J,KAAKg9E,YACPrzE,EAAEoiI,kBACFpiI,EAAEytE,kBAEJp3E,KAAKg9E,WAAY,CAAI,EACrB,KACFgvD,WAAcriI,IACZ,IAAIsiI,EJvHkBD,EAACriI,EAAGuiI,EAAexK,IACvC/3H,EAAEoL,OAAOo3H,QAAQppH,MAAM,2BAA6BmpH,EAC/C,GACS,KAAdviI,EAAE0gF,QAAuBq3C,EAAM,OAAS,WAC1B,KAAd/3H,EAAE0gF,QAAuBq3C,EAAM,WAAa,OACzC,GIkHKsK,CAAWriI,EAAG3J,KAAK4T,MAAMs4H,cAAelsI,KAAK4T,MAAM8tH,KACrD,KAARuK,GAAcjsI,KAAKopI,YAAY,CAAE/qI,QAAS4tI,GAAM,EAChD,KACFG,cAAiBxlH,IACf5mB,KAAKopI,YAAYxiH,EAAQ,EACzB,KACFylH,kBAAoB,KAMlB/sI,OAAOgtI,YALiB3iI,KACtBA,EAAIA,GAAKrK,OAAO4c,OACVk7D,gBAAgBztE,EAAEytE,iBACxBztE,EAAE4gH,aAAc,CAAK,CAEY,EACnC,KACFgiB,iBAAmB,KACjBjtI,OAAOgtI,YAAc,IAAI,EACzB,KACFE,WAAc7iI,IACR3J,KAAK4T,MAAM8rH,iBACb1/H,KAAKqsI,oBAEP,IAAI9vH,EJpIkBiwH,EAAC7iI,EAAG8iI,EAAOC,KACd,QAArB/iI,EAAEoL,OAAOo3H,SAAqBxiI,EAAEytE,kBAC3Bq1D,IAAWC,IAA0C,IAA7B/iI,EAAEjO,KAAKwkB,QAAQ,SAAyB,GAC9D,CACLk9G,UAAU,EACVY,YAAa,CACXC,OAAQt0H,EAAEgjI,QAAUhjI,EAAEgjI,QAAQ,GAAGC,MAAQjjI,EAAEkjI,QAC3C3O,OAAQv0H,EAAEgjI,QAAUhjI,EAAEgjI,QAAQ,GAAGG,MAAQnjI,EAAEojI,QAC3C5O,KAAMx0H,EAAEgjI,QAAUhjI,EAAEgjI,QAAQ,GAAGC,MAAQjjI,EAAEkjI,QACzCzO,KAAMz0H,EAAEgjI,QAAUhjI,EAAEgjI,QAAQ,GAAGG,MAAQnjI,EAAEojI,WI2H/BP,CAAW7iI,EAAG3J,KAAK4T,MAAM64H,MAAOzsI,KAAK4T,MAAM84H,WAC7C,KAAVnwH,GAAgBvc,KAAKw5G,SAASj9F,EAAM,EACpC,KACFywH,UAAarjI,IACX,IAAI4S,EJ3HiBywH,EAACrjI,EAAG80H,KAE3B,MAAM,UACJhB,EAAS,UACTV,EAAS,SACTxlH,EAAQ,aACRypH,EAAY,gBACZtB,EAAe,IACfgC,EAAG,aACHvE,EAAY,aACZ8P,EAAY,YACZ5P,EAAW,OACX6P,EAAM,OACNpP,EAAM,QACNC,EAAO,WACPL,EAAU,eACViD,EAAc,SACdP,EAAQ,YACRpC,EAAW,WACXmP,EAAU,WACV5P,EAAU,UACVC,GACEiB,EACJ,GAAIhB,EAAW,OACf,GAAIV,EAAW,OAAOpzH,EAAEytE,iBACpB7/D,GAAYypH,GAAgBtB,GAAiB/1H,EAAEytE,iBACnD,IAAIymD,EACFthH,EAAQ,CAAC,EACP6wH,EAAUzK,GAAalE,GAC3BT,EAAYG,KAAOx0H,EAAEgjI,QAAUhjI,EAAEgjI,QAAQ,GAAGC,MAAQjjI,EAAEkjI,QACtD7O,EAAYI,KAAOz0H,EAAEgjI,QAAUhjI,EAAEgjI,QAAQ,GAAGG,MAAQnjI,EAAEojI,QACtD/O,EAAYqP,YAActhF,KAAKg0E,MAC7Bh0E,KAAKuhF,KAAKvhF,KAAKwhF,IAAIvP,EAAYG,KAAOH,EAAYC,OAAQ,KAE5D,IAAIuP,EAAsBzhF,KAAKg0E,MAC7Bh0E,KAAKuhF,KAAKvhF,KAAKwhF,IAAIvP,EAAYI,KAAOJ,EAAYE,OAAQ,KAE5D,IAAKwB,IAAoB3B,GAAWyP,EAAsB,GACxD,MAAO,CAAE/P,WAAW,GAElBiC,IAAiB1B,EAAYqP,YAAcG,GAC/C,IAAIC,GACA/L,GAAW,EAAL,IAAW1D,EAAYG,KAAOH,EAAYC,OAAS,GAAK,GAC9DyB,IACF+N,EAAiBzP,EAAYI,KAAOJ,EAAYE,OAAS,GAAK,GAEhE,IAAIuH,EAAW15E,KAAK45E,KAAKjI,EAAaiD,GAClC+M,EAAiBjO,GAAkBhB,EAAKT,YAAa0B,GACrDiO,EAAmB3P,EAAYqP,YAqCnC,OApCKjN,IAEiB,IAAjBjD,GAAyC,UAAnBuQ,GACtBvQ,EAAe,GAAKsI,GAA+B,SAAnBiI,IAC/BxN,GAAUzB,IAA4B,SAAnBiP,KAErBC,EAAmB3P,EAAYqP,YAAcJ,GACzB,IAAhB5P,GAAyB6P,IAC3BA,EAAOQ,GACPnxH,EAAmB,aAAI,KAIxBuhH,GAAUqP,IACbA,EAAWO,GACXnxH,EAAc,QAAI,GASlBshH,EAPGtmH,EAQD61H,EAAUO,GAAoBpQ,EAAaC,GAAaiQ,EAPrD/L,EAGS0L,EAAUO,EAAmBF,EAF7BL,EAAUO,EAAmBF,EAQzC/N,IACF7B,EAAYuP,EAAUO,EAAmBF,GAE3ClxH,EAAQ,IACHA,EACHyhH,cACAH,YACAQ,WAAYyD,GAAY,IAAKrD,EAAMnsH,KAAMurH,KAGzC9xE,KAAKk0E,IAAIjC,EAAYG,KAAOH,EAAYC,QACU,GAAlDlyE,KAAKk0E,IAAIjC,EAAYI,KAAOJ,EAAYE,SAItCF,EAAYqP,YAAc,KAC5B9wH,EAAe,SAAI,EACnB5S,EAAEytE,kBAJK76D,CAMG,EI4BEywH,CAAUrjI,EAAG,IACpB3J,KAAK4T,SACL5T,KAAKuc,MACRsmH,SAAU7iI,KAAKmnI,MACf/F,QAASphI,KAAK0gC,KACdq+F,WAAY/+H,KAAKuc,MAAM4gH,eAEpB5gH,IACDA,EAAe,UACjBvc,KAAKg9E,WAAY,GAEnBh9E,KAAKw5G,SAASj9F,GAAM,EACpB,KACFqxH,SAAYjkI,IACV,IAAI4S,EJxCgBqxH,EAACjkI,EAAG80H,KAC1B,MAAM,SACJrB,EAAQ,MACRqP,EAAK,YACLzO,EAAW,UACXR,EAAS,eACTqQ,EAAc,gBACdnO,EAAe,WACfnC,EAAU,aACVJ,EAAY,aACZ6D,EAAY,UACZvD,EAAS,QACTqQ,GACErP,EACJ,IAAKrB,EAEH,OADIqP,GAAO9iI,EAAEytE,iBACN,CAAC,EAEV,IAAI22D,EAAWrO,EACXnC,EAAasQ,EACbrQ,EAAYqQ,EACZH,EAAiBjO,GAAkBzB,EAAa0B,GAEhDnjH,EAAQ,CACV6gH,UAAU,EACVC,aAAa,EACbI,WAAW,EACXM,SAAS,EACTD,QAAQ,EACRD,UAAW,KACXG,YAAa,CAAC,GAEhB,GAAIP,EACF,OAAOlhH,EAET,IAAKyhH,EAAYqP,YACf,OAAO9wH,EAET,GAAIyhH,EAAYqP,YAAcU,EAAU,CAKtC,IAAIrQ,EAAYsQ,EAChB,OALArkI,EAAEytE,iBACE02D,GACFA,EAAQJ,GAGFA,GACN,IAAK,OACL,IAAK,KACHM,EAAW7Q,EAAe2D,GAAcrC,GACxCf,EAAasD,EAAeT,GAAe9B,EAAMuP,GAAYA,EAC7DzxH,EAAwB,iBAAI,EAC5B,MACF,IAAK,QACL,IAAK,OACHyxH,EAAW7Q,EAAe2D,GAAcrC,GACxCf,EAAasD,EAAeT,GAAe9B,EAAMuP,GAAYA,EAC7DzxH,EAAwB,iBAAI,EAC5B,MACF,QACEmhH,EAAaP,EAEjB5gH,EAA2B,oBAAImhH,CACjC,KAAO,CAEL,IAAIR,EAAcyF,GAAalE,GAC/BliH,EAAkB,WAAIimH,GAAmB,IAAK/D,EAAMnsH,KAAM4qH,GAC5D,CACA,OAAO3gH,CAAK,EI1BEqxH,CAASjkI,EAAG,IACnB3J,KAAK4T,SACL5T,KAAKuc,MACRsmH,SAAU7iI,KAAKmnI,MACf/F,QAASphI,KAAK0gC,KACdq+F,WAAY/+H,KAAKuc,MAAM4gH,eAEzB,IAAK5gH,EAAO,OACZ,IAAI0xH,EAAsB1xH,EAA2B,2BAC9CA,EAA2B,oBAClCvc,KAAKw5G,SAASj9F,QACclhB,IAAxB4yI,IACJjuI,KAAK8qI,aAAamD,GACdjuI,KAAK4T,MAAM8rH,iBACb1/H,KAAKusI,mBACP,EACA,KACF2B,UAAY,KAIVluI,KAAKsoI,eAAehqI,KAClB+Z,YAAW,IAAMrY,KAAKopI,YAAY,CAAE/qI,QAAS,cAAe,GAC7D,EACD,KACF8vI,UAAY,KACVnuI,KAAKsoI,eAAehqI,KAClB+Z,YAAW,IAAMrY,KAAKopI,YAAY,CAAE/qI,QAAS,UAAW,GACzD,EACD,KACF+vI,UAAY,SAAC9M,GAAgC,IAAzByJ,EAAW91H,UAAAzY,OAAA,QAAAnB,IAAA4Z,UAAA,IAAAA,UAAA,GAE7B,GADAqsH,EAAQn+F,OAAOm+F,GACXnV,MAAMmV,GAAQ,MAAO,GACzB0F,EAAKsB,eAAehqI,KAClB+Z,YACE,IACE2uH,EAAKoC,YACH,CACE/qI,QAAS,QACT3B,MAAO4kI,EACPnE,aAAc6J,EAAKzqH,MAAM4gH,cAE3B4N,IAEJ,GAGN,EAAE,KACFsD,KAAO,KACL,IAAIC,EACJ,GAAItuI,KAAK4T,MAAM8tH,IACb4M,EAAYtuI,KAAKuc,MAAM4gH,aAAen9H,KAAK4T,MAAM+sH,mBAC5C,CACL,IAAIT,GAAU,IAAKlgI,KAAK4T,SAAU5T,KAAKuc,QAGrC,OAAO,EAFP+xH,EAAYtuI,KAAKuc,MAAM4gH,aAAen9H,KAAK4T,MAAM+sH,cAIrD,CAEA3gI,KAAK8qI,aAAawD,EAAU,EAC5B,KAEFtG,SAAYuG,IACNvuI,KAAKgpI,eACP50G,cAAcp0B,KAAKgpI,eAErB,MAAMhM,EAAch9H,KAAKuc,MAAMygH,YAC/B,GAAiB,WAAbuR,GACF,GACkB,YAAhBvR,GACgB,YAAhBA,GACgB,WAAhBA,EAEA,YAEG,GAAiB,UAAbuR,GACT,GAAoB,WAAhBvR,GAA4C,YAAhBA,EAC9B,YAEG,GAAiB,SAAbuR,IACW,WAAhBvR,GAA4C,YAAhBA,GAC9B,OAGJh9H,KAAKgpI,cAAgB70G,YAAYn0B,KAAKquI,KAAMruI,KAAK4T,MAAM46H,cAAgB,IACvExuI,KAAKw5G,SAAS,CAAEwjB,YAAa,WAAY,EACzC,KACFqM,MAASoF,IACHzuI,KAAKgpI,gBACP50G,cAAcp0B,KAAKgpI,eACnBhpI,KAAKgpI,cAAgB,MAEvB,MAAMhM,EAAch9H,KAAKuc,MAAMygH,YACb,WAAdyR,EACFzuI,KAAKw5G,SAAS,CAAEwjB,YAAa,WACN,YAAdyR,EACW,YAAhBzR,GAA6C,YAAhBA,GAC/Bh9H,KAAKw5G,SAAS,CAAEwjB,YAAa,YAIX,YAAhBA,GACFh9H,KAAKw5G,SAAS,CAAEwjB,YAAa,WAEjC,EACA,KACF0R,WAAa,IAAM1uI,KAAK4T,MAAMm0H,UAAY/nI,KAAKqpI,MAAM,WAAW,KAChEsF,YAAc,IACZ3uI,KAAK4T,MAAMm0H,UACgB,YAA3B/nI,KAAKuc,MAAMygH,aACXh9H,KAAKgoI,SAAS,SAAS,KACzB4G,YAAc,IAAM5uI,KAAK4T,MAAMm0H,UAAY/nI,KAAKqpI,MAAM,WAAW,KACjEwF,aAAe,IACb7uI,KAAK4T,MAAMm0H,UACgB,YAA3B/nI,KAAKuc,MAAMygH,aACXh9H,KAAKgoI,SAAS,SAAS,KACzBU,aAAe,IAAM1oI,KAAK4T,MAAMm0H,UAAY/nI,KAAKqpI,MAAM,WAAW,KAClET,YAAc,IACZ5oI,KAAK4T,MAAMm0H,UACgB,YAA3B/nI,KAAKuc,MAAMygH,aACXh9H,KAAKgoI,SAAS,QAAQ,KAExBx0H,OAAS,KACP,IAAIjE,EAAYs1H,KAAW,eAAgB7kI,KAAK4T,MAAMrE,UAAW,CAC/D,iBAAkBvP,KAAK4T,MAAM2D,SAC7B,qBAAqB,IAEvB,IAAIknH,EAAO,IAAKz+H,KAAK4T,SAAU5T,KAAKuc,OAChCuyH,EAAazO,GAAc5B,EAAM,CACnC,OACA,UACA,QACA,WACA,aACA,gBACA,eACA,WACA,iBACA,MACA,aACA,cACA,aACA,WACA,eACA,iBACA,aACA,aACA,gBACA,UACA,kBAEF,MAAM,aAAEsQ,GAAiB/uI,KAAK4T,MAS9B,IAAI8xH,EA4BAY,EAAWM,EA3Bf,GATAkI,EAAa,IACRA,EACH1J,aAAc2J,EAAe/uI,KAAK4uI,YAAc,KAChDtJ,aAAcyJ,EAAe/uI,KAAK6uI,aAAe,KACjDxJ,YAAa0J,EAAe/uI,KAAK4uI,YAAc,KAC/C7J,cAAe/kI,KAAK4T,MAAMmxH,cAAgB/kI,KAAKosI,cAAgB,OAK3C,IAApBpsI,KAAK4T,MAAM8xH,MACX1lI,KAAKuc,MAAMmhH,YAAc19H,KAAK4T,MAAMurH,aACpC,CACA,IAAI6P,EAAW3O,GAAc5B,EAAM,CACjC,YACA,aACA,eACA,eACA,iBACA,eACA,WACA,eACA,WACA,eAEF,MAAM,iBAAEwQ,GAAqBjvI,KAAK4T,MAClCo7H,EAAW,IACNA,EACHp4D,aAAc52E,KAAKopI,YACnBhE,aAAc6J,EAAmBjvI,KAAK2uI,YAAc,KACpDtJ,YAAa4J,EAAmBjvI,KAAK0uI,WAAa,KAClDpJ,aAAc2J,EAAmBjvI,KAAK2uI,YAAc,MAEtDjJ,EAAO7mI,cAAC2mI,GAAI,IAAKwJ,GACnB,CAGA,IAAIE,EAAa7O,GAAc5B,EAAM,CACnC,WACA,aACA,eACA,aACA,eACA,YACA,cAEFyQ,EAAWt4D,aAAe52E,KAAKopI,YAE3BppI,KAAK4T,MAAMu7H,SACb7I,EAAYznI,cAACsnI,GAAS,IAAK+I,IAC3BtI,EAAY/nI,cAAC4nI,GAAS,IAAKyI,KAG7B,IAAIE,EAAsB,KAEtBpvI,KAAK4T,MAAM2D,WACb63H,EAAsB,CACpBj9H,OAAQnS,KAAKuc,MAAMghH,aAIvB,IAAI8R,EAAqB,MAEG,IAAxBrvI,KAAK4T,MAAM2D,UACiB,IAA1BvX,KAAK4T,MAAMsrH,aACbmQ,EAAqB,CACnBjoH,QAAS,OAASpnB,KAAK4T,MAAMwrH,iBAIH,IAA1Bp/H,KAAK4T,MAAMsrH,aACbmQ,EAAqB,CACnBjoH,QAASpnB,KAAK4T,MAAMwrH,cAAgB,SAK1C,MAAMkQ,EAAY,IAAKF,KAAwBC,GACzCE,EAAYvvI,KAAK4T,MAAM27H,UAC7B,IAAIC,EAAY,CACdjgI,UAAW,aACXuC,MAAOw9H,EACP/qH,QAASvkB,KAAK42E,aACdO,YAAao4D,EAAYvvI,KAAKwsI,WAAa,KAC3CiD,YAAazvI,KAAKuc,MAAM6gH,UAAYmS,EAAYvvI,KAAKgtI,UAAY,KACjE0C,UAAWH,EAAYvvI,KAAK4tI,SAAW,KACvCtI,aAActlI,KAAKuc,MAAM6gH,UAAYmS,EAAYvvI,KAAK4tI,SAAW,KACjE+B,aAAcJ,EAAYvvI,KAAKwsI,WAAa,KAC5CoD,YAAa5vI,KAAKuc,MAAM6gH,UAAYmS,EAAYvvI,KAAKgtI,UAAY,KACjE6C,WAAYN,EAAYvvI,KAAK4tI,SAAW,KACxCkC,cAAe9vI,KAAKuc,MAAM6gH,UAAYmS,EAAYvvI,KAAK4tI,SAAW,KAClEjoD,UAAW3lF,KAAK4T,MAAMs4H,cAAgBlsI,KAAKgsI,WAAa,MAGtD+D,EAAmB,CACrBxgI,UAAWA,EACX08H,IAAK,OAOP,OAJIjsI,KAAK4T,MAAMgvH,UACb4M,EAAY,CAAEjgI,UAAW,cACzBwgI,EAAmB,CAAExgI,cAGrBD,eAAA,UAASygI,EAAgB/xI,SAAA,CACrBgC,KAAK4T,MAAMgvH,QAAsB,GAAZ0D,EACvBznI,cAAA,OAAKgX,IAAK7V,KAAKinI,kBAAoBuI,EAASxxI,SAC1Ca,cAACqmI,GAAK,CAACrvH,IAAK7V,KAAKknI,mBAAqB4H,EAAU9wI,SAC7CgC,KAAK4T,MAAM5V,aAGdgC,KAAK4T,MAAMgvH,QAAsB,GAAZgE,EACrB5mI,KAAK4T,MAAMgvH,QAAiB,GAAP8C,IACnB,EAprBR1lI,KAAK0gC,KAAO,KACZ1gC,KAAKmnI,MAAQ,KACbnnI,KAAKuc,MAAQ,IACRuxB,GACHqvF,aAAcn9H,KAAK4T,MAAMm2H,aACzBrM,WAAYztH,IAAMo0H,SAASnW,MAAMluH,KAAK4T,MAAM5V,WAE9CgC,KAAKsoI,eAAiB,GACtBtoI,KAAKg9E,WAAY,EACjBh9E,KAAKypI,gBAAkB,IACzB,E,yBCYauG,OArDI,CACjB9D,eAAe,EACf7E,gBAAgB,EAChB6D,YAAa,KACbjF,WAAaP,GAAS7mI,cAAA,MAAIiT,MAAO,CAAEC,QAAS,SAAU/T,SAAE0nI,IACxDyJ,QAAQ,EACRpH,UAAU,EACVyG,cAAe,IACfvD,aAAc,KACd/L,YAAY,EACZE,cAAe,OACf7vH,UAAW,GACXmzH,QAAS,OACTsD,aAAehxH,GAAMnW,cAAA,UAAAb,SAASgX,EAAI,IAClC0wH,MAAM,EACNQ,UAAW,aACXwG,WAAW,EACXuD,OAAQ,SACRhD,aAAc,IACd3K,MAAM,EACNyC,eAAe,EACf3E,UAAU,EACV2J,aAAc,EACdxF,SAAU,KACVqC,UAAW,KACXsG,OAAQ,KACRzF,OAAQ,KACRoD,gBAAiB,KACjBrB,SAAU,KACVyF,kBAAkB,EAClBxG,cAAc,EACdsG,cAAc,EACdzI,UAAW,KACX4J,WAAY,KACZ/kH,KAAM,EACNu2G,KAAK,EACLJ,MAAO,MACP6O,aAAc,EACdxP,eAAgB,EAChBxB,aAAc,EACdsD,MAAO,IACPgK,OAAO,EACPU,WAAY,KACZnM,cAAc,EACduO,WAAW,EACX1B,eAAgB,EAChBxC,QAAQ,EACRlJ,cAAc,EACdW,eAAe,EACfvrH,UAAU,EACV6zH,gBAAgB,GC5ClB,MAAMgF,GAAU1M,MAAe2M,EAAQ,KAExB,MAAMC,WAAergI,IAAM82H,UACxClnI,YAAY+T,GAAQ,IAADozH,EACjB59H,MAAMwK,GAAMozH,EAAAhnI,KAAC,KAOfuwI,sBAAyB16H,GAAS7V,KAAK0rI,YAAc71H,EAAK,KAyD1Dq4H,UAAY,IAAMluI,KAAK0rI,YAAYwC,YAAY,KAE/CC,UAAY,IAAMnuI,KAAK0rI,YAAYyC,YAAY,KAE/CC,UAAY,SAAC9M,GAAK,IAAEyJ,EAAW91H,UAAAzY,OAAA,QAAAnB,IAAA4Z,UAAA,IAAAA,UAAA,GAAQ,OACrC+xH,EAAK0E,YAAY0C,UAAU9M,EAAOyJ,EAAa,EAAD,KAEhDyF,WAAa,IAAMxwI,KAAK0rI,YAAYrC,MAAM,UAAU,KAEpDoH,UAAY,IAAMzwI,KAAK0rI,YAAY1D,SAAS,QAxE1ChoI,KAAKuc,MAAQ,CACXia,WAAY,MAEdx2B,KAAK0wI,yBAA2B,EAClC,CAIAC,MAAM97B,EAAOj5F,GAEXw0H,GAAQplH,SAAS6pF,EAAOj5F,GACxB5b,KAAK0wI,yBAAyBpyI,KAAK,CAAEu2G,QAAOj5F,WAC9C,CAGA2rH,qBAME,GAAIvnI,KAAK4T,MAAMs8H,WAAY,CACzB,IAAI1+G,EAAcxxB,KAAK4T,MAAMs8H,WAAW37H,KACrCq8H,GAAYA,EAAQp6G,aAGvBhF,EAAY29C,MAAK,CAAC38C,EAAGC,IAAMD,EAAIC,IAE/BjB,EAAY/0B,SAAQ,CAAC+5B,EAAY95B,KAE/B,IAAIm0I,EAEFA,EADY,IAAVn0I,EACOo0I,KAAQ,CAAE37G,SAAU,EAAG9lB,SAAUmnB,IAEjCs6G,KAAQ,CACf37G,SAAU3D,EAAY90B,EAAQ,GAAK,EACnC2S,SAAUmnB,IAIdktG,MACE1jI,KAAK2wI,MAAME,GAAQ,KACjB7wI,KAAKw5G,SAAS,CAAEhjF,WAAYA,GAAa,GACzC,IAKN,IAAIq+E,EAAQi8B,KAAQ,CAAE37G,SAAU3D,EAAY71B,OAAO,GAAG,KAEtD+nI,MACE1jI,KAAK2wI,MAAM97B,GAAO,KAChB70G,KAAKw5G,SAAS,CAAEhjF,WAAY,MAAO,GAEzC,CACF,CAEAqyG,uBACE7oI,KAAK0wI,yBAAyBj0I,SAAQ,SAAUZ,GAC9Cu0I,GAAQlb,WAAWr5H,EAAIg5G,MAAOh5G,EAAI+f,QACpC,GACF,CAaApI,SACE,IAAIzM,EACAgqI,GAKFhqI,EAJE/G,KAAKuc,MAAMia,WAKc,aAJ3Bu6G,EAAW/wI,KAAK4T,MAAMs8H,WAAWlwG,QAC9BgxG,GAASA,EAAKx6G,aAAex2B,KAAKuc,MAAMia,cAGhC,GAAGzvB,SACR,UACA,IAAKipI,MAAiBhwI,KAAK4T,SAAUm9H,EAAS,GAAGhqI,UAE5C,IAAKipI,MAAiBhwI,KAAK4T,QAI3BsrH,aAETn4H,EAAS45H,eAOX55H,EAAS45H,eAAiB,GAGxB55H,EAASu7H,OACPv7H,EAASo4H,aAMXp4H,EAAS45H,eAOX55H,EAASo4H,aAAe,EACxBp4H,EAAS45H,eAAiB,GAI5B,IAAI3iI,EAAWiS,IAAMo0H,SAAS4M,QAAQjxI,KAAK4T,MAAM5V,UAIjDA,EAAWA,EAASgiC,QAAQkoF,GACL,kBAAVA,IACAA,EAAM/7E,SAER+7E,IAKTnhH,EAAS+7H,gBACR/7H,EAASokB,KAAO,GAAKpkB,EAASopI,aAAe,KAE9C3vI,QAAQ0wI,KAAK,0EAGbnqI,EAAS+7H,eAAgB,GAE3B,IAAIqO,EAAc,GACd9G,EAAe,KACnB,IACE,IAAIr1H,EAAI,EACRA,EAAIhX,EAASxB,OACbwY,GAAKjO,EAASokB,KAAOpkB,EAASopI,aAC9B,CACA,IAAInC,EAAW,GACf,IACE,IAAIoD,EAAIp8H,EACRo8H,EAAIp8H,EAAIjO,EAASokB,KAAOpkB,EAASopI,aACjCiB,GAAKrqI,EAASopI,aACd,CACA,IAAIt0D,EAAM,GACV,IAAK,IAAIw1D,EAAID,EAAGC,EAAID,EAAIrqI,EAASopI,eAC3BppI,EAAS+7H,eAAiB9kI,EAASqzI,GAAGz9H,MAAM9B,QAC9Cu4H,EAAersI,EAASqzI,GAAGz9H,MAAM9B,MAAMI,SAErCm/H,GAAKrzI,EAASxB,SAJ2B60I,GAAK,EAKlDx1D,EAAIv9E,KACF2R,IAAM20H,aAAa5mI,EAASqzI,GAAI,CAC9B10I,IAAK,IAAMqY,EAAI,GAAKo8H,EAAIC,EACxBvM,UAAW,EACXhzH,MAAO,CACLI,MAAM,GAADhT,OAAK,IAAM6H,EAASopI,aAAY,KACrCp+H,QAAS,mBAKjBi8H,EAAS1vI,KACPO,cAAA,OAAK0Q,UAAWxI,EAASuqI,cAAgB,GAAGtzI,SACzC69E,GAD+C,GAAK7mE,EAAIo8H,GAI/D,CACIrqI,EAAS+7H,cACXqO,EAAY7yI,KACVO,cAAA,OAAaiT,MAAO,CAAEI,MAAOm4H,GAAersI,SACzCgwI,GADOh5H,IAKZm8H,EAAY7yI,KAAKO,cAAA,OAAAb,SAAcgwI,GAAJh5H,GAE/B,CAEA,GAAiB,YAAbjO,EAAwB,CAC1B,MAAMwI,EAAY,mBAAqBvP,KAAK4T,MAAMrE,WAAa,IAC/D,OAAO1Q,cAAA,OAAK0Q,UAAWA,EAAUvR,SAAEmzI,GACrC,CAGA,OAHWA,EAAY30I,QAAUuK,EAASo4H,eACxCp4H,EAAS67H,SAAU,GAGnB/jI,cAACioI,GAAW,CAACjxH,IAAK7V,KAAKuwI,yBAA2BxpI,EAAQ/I,SACvDmzI,GAGP,ECnNab,U,qBC4Ef,SAAS7J,GAAU7yH,GACjB,MAAM,UAAErE,EAAS,MAAEuC,EAAK,QAAEyS,GAAY3Q,EAEtC,OACE/U,cAACqmB,KAAU,CAACX,QAASA,EAASzS,MAAOA,EAAOvC,UAAWA,EAAUvR,SAC/Da,cAAC0yI,KAAgB,CAACC,UAAU,WAGlC,CAEA,SAASrL,GAAUvyH,GACjB,MAAM,UAAErE,EAAS,MAAEuC,EAAK,QAAEyS,GAAY3Q,EACtC,OACE/U,cAACqmB,KAAU,CAACX,QAASA,EAASzS,MAAOA,EAAOvC,UAAWA,EAAUvR,SAC/Da,cAAC4yI,KAAe,CAACD,UAAU,WAGjC,CAEeE,OA5E4B3zI,IAOpC,IAPqC,kBAC1C4zI,EAAoB,EAAC,SACrB3zI,EAAQ,eACR4zI,EAAc,KACdlM,EAAI,iBACJmM,EAAgB,eAChBC,GACD/zI,EACC,MAAM8X,EAAMkG,iBAAY,OACjBgjH,EAAYgT,GAAiBzhI,mBAASqhI,GACvCn7G,EAAajB,KAanB,OANA5jB,qBAAU,KACJkgI,GAAoB9S,IAAe4S,GACrC97H,EAAImG,QAAQoyH,UAAwB,OAAd0D,QAAc,IAAdA,IAAkB,EAC1C,GACC,CAACD,IAGFhzI,cAAAyV,WAAA,CAAAtW,SACEa,cAACyxI,GAAM,CACLz6H,IAAKA,EAEHkvH,eAAe,EACfpE,eAAgB,EAChBvB,cAAe,MAEfsG,KAAU,OAAJA,QAAI,IAAJA,KACNxG,YAAY,EACZ3vH,UAAW,SACX4vH,aAAc3oG,EAAWX,OAAS,EAAI,EACtCs5G,QAAS34G,EAAWX,OACpBuqG,UAAU,EAEV2J,aAAc4H,EAEd/K,UAAW7H,IAAe9uH,IAAMo0H,SAASnW,MAAMlwH,GAAY,GACzDa,cAAC4nI,GAAS,IAEZH,UAA0B,IAAfvH,GACTlgI,cAACsnI,GAAS,CAACwL,kBAAmBA,IAGlCpiI,UAAWC,KAAOC,UAClBw7H,aArCoB+G,CAACh2H,EAAci2H,KACvCF,EAAcE,GACdL,EAAeK,EAAe,EAmCMj0I,SAE/BA,KAEF,E,oBCgEQk0I,IC1IX,GD0IWA,GA7G4Cn0I,IAOpD,IAPqD,kBAC1Do0I,EAAiB,WACjBC,EAAU,WACVC,EAAU,QACVvxF,EAAO,aACPwxF,EAAY,sBACZC,GACDx0I,EACC,MAAM,iBAAEy0I,GEhCK,WACb,MAAM,kBAAEl4H,GAAsB4hB,KAgC9B,MAAO,CAAEs2G,iBA9BgBA,CAACxtF,EAAmBytF,KAC3C,MAAMC,EAAS1tF,EAAOgP,aAAay+E,GACnC,GAAIC,EAAQ,CACV,MAAMC,EAAY,CAChBnzI,OAAQ8a,EAAkBiB,MAAM+oC,GAAMA,EAAEprC,OAASw5H,EAAOlzI,SACxDkyD,YAAap3C,EAAkBiB,MAC5B+oC,GAAMA,EAAEprC,OAASw5H,EAAOhhF,eAmB7B,MAfsB,CACpBtQ,cAAeuxF,EAAUnzI,OACrBmsC,KAAO+mG,EAAOtxF,eACXyC,QACAC,GAAG6uF,EAAUnzI,OAAOglD,UACpB/V,OAAO,uBACV9C,KAAO+mG,EAAOtxF,eAAe3S,OAAO,uBACxCssF,YAAa4X,EAAUjhF,YACnB/lB,KAAO+mG,EAAO3X,aACXl3E,QACAC,GAAG6uF,EAAUjhF,YAAYlN,UACzB/V,OAAO,uBACV9C,KAAO+mG,EAAO3X,aAAatsF,OAAO,uBAI1C,CACgB,EAIpB,CFF+BmkG,IACtBC,EAAOC,GAAYxiI,mBAAkB,IAQ5CqB,qBAAU,KACR,MAAMohI,EAAepnG,KAAOymG,GAAYhgG,KAAKigG,EAAY,OACnDW,EAAmBrnG,KAAOwmG,GAE1Bc,EAAgB,IAAI13I,MAAmB,EAAb82I,EAAiB,IAAI99H,KAAI,CAAC3C,EAAGoD,KAC3D,MAAMiB,EAAI01B,KAAOonG,GAAc5gG,QAAQ,OAAOC,IAAIp9B,EAAG,OAC/Ck+H,EAAapyF,EAAQ9gB,QACxBmhB,IAAC,IAAAgyF,EAAA,OACAxnG,KAA6B,QAAvBwnG,EAACX,EAAiBrxF,EAAG,UAAE,IAAAgyF,OAAA,EAAtBA,EAAwB/xF,eAAe3S,OAAO,gBACrDx4B,EAAEw4B,OAAO,aAAa,IAE1B,MAAO,CACL2kG,QAASn9H,EAAEw4B,OAAO,OAClB4kG,UAAWp9H,EAAEw4B,OAAO,MACpBhoC,KAAMwP,EAAEy4B,SACRoS,QAASoyF,EACTpsH,WAAUqrH,GACNl8H,EAAI+8H,EAAiB7gG,QAAQ,OAElC,IAGCppC,KAAK8H,UAAUgiI,KAAW9pI,KAAK8H,UAAUoiI,KAC3CH,EAASG,GACTV,EACmB,OAAjBJ,QAAiB,IAAjBA,IACGc,EAAcz2I,OAAS,EAAIy2I,EAAc,GAAGxsI,UAAOpL,GAE1D,GACC,CAACylD,EAASuxF,EAAYF,IAEzBxgI,qBAAU,KACJkhI,GAASA,EAAMr2I,OAAS,GAAG81I,EAAagB,IAAkB,GAC7D,CAACT,IAEJ,MAAMU,EAAmBA,CAACV,EAAgBpsI,KACxC,MAAM+sI,EAAmB,GAAAt0I,OAAMysC,KAAOllC,GAAMgoC,OAAO,OAAM,KAAAvvC,OAAIysC,KAC3DllC,GACAgoC,OAAO,OACH/xC,EAAQm2I,EAAMhvH,WACjBvZ,GAAM,GAAApL,OAAGoL,EAAE8oI,QAAO,KAAAl0I,OAAIoL,EAAE+oI,aAAgBG,IAE3C,OAAO92I,GAAS,EAAIA,EAAQ,CAAC,EAGzB42I,EAAkBA,IAEL,IADHC,EAAiBV,EAAOT,GACjBS,EAAM,GAAGpsI,KAAO2rI,EAGvC,OACEvzI,cAAA,OAAK0Q,UAAWC,KAAOikI,kBAAkBz1I,SACtC60I,EAAMr2I,OAAS,GACdqC,cAAC6yI,GAAQ,CACPhM,MAAM,EACNiM,kBAAmB4B,EAAiBV,EAAOT,GAC3CR,eAAiBl1I,GA9DDA,KAClBm2I,GACFP,EAAaO,EAAMn2I,GAAO+J,KAC5B,EA2DiCmrI,CAAel1I,GAC1Cm1I,iBAAkBM,EAClBL,eAAgByB,EAAiBV,EAAOT,GAAYp0I,SAEnD60I,EAAMt+H,KAAKjK,GACVzL,cAAC6/F,KAAI,CAEHnvF,UAAWC,KAAOkkI,aAAa11I,SAE/Ba,cAACigG,KAAW,CAAA9gG,SACVsR,eAACqI,KAAG,CACF5F,QAAQ,OACRc,cAAc,SACd8gI,aAAa,SACb3hI,WAAW,SACXzC,UAAWjF,EAAEwc,SAAWtX,KAAOokI,iBAAcv4I,EAC7CqsB,UAAU,SAAQ1pB,SAAA,CAElBa,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAAEsM,EAAE8oI,UACnCv0I,cAACgR,IAAU,CAACN,UAAWC,KAAO6jI,UAAUr1I,SACrCsM,EAAE+oI,YAEL/jI,eAACO,IAAU,CAACN,UAAWC,KAAOqkI,gBAAgB71I,SAAA,CAC3CsM,EAAEw2C,QAAQtkD,OAAQ,IAClB8N,EAAEw2C,QAAQtkD,OAAS,EAAI,UAAY,kBAG5B,GAAA0C,OArBNoL,EAAE8oI,QAAO,KAAAl0I,OAAIoL,EAAE+oI,iBA0B3B,ECrIV,SAAS,KAAiS,OAApR,GAAWt2I,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS6+H,GAAS/1I,EAAMyX,GACtB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,kIACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBm+H,IAClC,IEzBX,GAAO,GFyBI,IExBf,SAAS,KAAiS,OAApR,GAAW/2I,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS8+H,GAAiBh2I,EAAMyX,GAC9B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,2eACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,oDACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBo+H,IAClC,IC5BX,GAAO,GD4BI,IC3Bf,SAAS,KAAiS,OAApR,GAAWh3I,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS++H,GAAmBj2I,EAAMyX,GAChC,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,gfACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,sDACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBq+H,IAClC,ICqFAC,OA/FsDl2I,IAI9D,IAAD0gG,EAAAy1C,EAAA,IAJgE,SACpEC,EAAQ,OACRC,EAAM,KACNC,GAAO,GACRt2I,EACC,MAAM,kBAAEuc,EAAiB,UAAED,GAAc6hB,KAEnC8xE,EAIL,QAJavP,EAAGpkF,EAAUkB,MACxBjR,IAAC,IAAAwrG,EAAA,OACAxrG,EAAEk0F,eACgD,QADrCsX,EACbx7F,EAAkBiB,MAAM+tD,GAAMA,EAAEpwD,OAASi7H,WAAS,IAAAr+B,OAAA,EAAlDA,EAAoDtX,YAAW,WAClE,IAAAC,OAAA,EAJgBA,EAIdF,YACG0P,EAIL,QAJWimC,EAAG75H,EAAUkB,MACtBjR,IAAC,IAAAyrG,EAAA,OACAzrG,EAAEk0F,eAC8C,QADnCuX,EACbz7F,EAAkBiB,MAAM+tD,GAAMA,EAAEpwD,OAASk7H,WAAO,IAAAr+B,OAAA,EAAhDA,EAAkDvX,YAAW,WAChE,IAAA01C,OAAA,EAJcA,EAIZ31C,YAEG/nE,EAAajB,KAEnB,OACE12B,cAAAyV,WAAA,CAAAtW,SACGw4B,EAAWX,OACVvmB,eAACmb,KAAI,CACHhb,WAAS,EACTuC,WAAW,SACX0Y,UAAU,MACVnb,UAAWC,KAAO8kI,mBAAmBt2I,SAAA,CAErCsR,eAACqI,KAAG,CAAC4S,GAAI,EAAEvsB,SAAA,CACTa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAO+kI,wBAAwBv2I,SAAC,cAG9Da,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOglI,uBAAuBx2I,SAAA,GAAAkB,OACtD8uG,EAAQ,OAAA9uG,OAAMi1I,QAGtBt1I,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAO+kI,wBAAwBv2I,SAAC,YAG9Da,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOglI,uBAAuBx2I,SAAA,GAAAkB,OACtD+uG,EAAM,OAAA/uG,OAAMk1I,QAIpB9kI,eAACmb,KAAI,CACHhb,WAAS,EACTuC,WAAW,SACX0Y,UAAU,MACVnb,UAAWC,KAAO8kI,mBAAmBt2I,SAAA,CAErCa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAEt7F,SACRq2I,EACCx1I,cAAC41I,GAAW,CACVtiI,OAAQqkB,EAAWX,OAAS,GAAK,GACjC3jB,MAAOskB,EAAWX,OAAS,GAAK,KAGlCh3B,cAAC61I,GAAa,CACZviI,OAAQqkB,EAAWX,OAAS,GAAK,GACjC3jB,MAAOskB,EAAWX,OAAS,GAAK,SAMxCh3B,cAAC4rB,KAAI,CAACG,MAAI,EAACrb,UAAWC,KAAOmlI,aAAa32I,SACxCsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,SAAQ1sB,SAAA,CAChCa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SAAEgwG,IACZnvG,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SAAEm2I,SAIhBt1I,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC8Y,KAAG,CAACi9H,GAAIp+G,EAAWX,OAAS,EAAI,EAAE73B,SACjCa,cAACytC,GAAS,CACRn6B,OAAQqkB,EAAWX,OAAS,GAAK,GACjC3jB,MAAOskB,EAAWX,OAAS,GAAK,SAKtCh3B,cAAC4rB,KAAI,CAACG,MAAI,EAACrb,UAAWC,KAAOmlI,aAAa32I,SACxCsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,SAAQ1sB,SAAA,CAChCa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SAAEiwG,IACZpvG,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SAAEo2I,aAKnB,E,oBCtBQS,OAxEoD92I,IAI5D,IAAD+2I,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAJ8D,OAClErwF,EAAM,YACNswF,EAAW,gBACXC,GACDx3I,EACC,OACEc,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACuC,WAAW,SAAQhU,SAAA,CACjCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,SAAQ1sB,SAAA,CAChCa,cAAC4rB,KAAI,CAACG,MAAI,EAACrb,UAAWC,KAAOgmI,UAAUx3I,SAAC,cAGxCa,cAAC4rB,KAAI,CAACG,MAAI,EAACrb,UAAWC,KAAOimI,aAAaz3I,SACxCa,cAAC4nF,GAAQ,CACPh4C,OAAO,YACPhoC,KAAMu+C,EAAO5D,cACbuC,SACE2xF,GAA4C,QAArBR,EAAGS,EAAgB,UAAE,IAAAT,GAAQ,QAARC,EAAlBD,EAAoBt1I,cAAM,IAAAu1I,OAAtC15I,EAAY05I,EAA4BvwF,aAI5D3lD,cAAC4rB,KAAI,CAACG,MAAI,EAACrb,UAAWC,KAAOimI,aAAaz3I,SACxCa,cAAC4nF,GAAQ,CACPh4C,OAAO,QACPhoC,KAAMu+C,EAAO5D,cACbuC,SACE2xF,GAA4C,QAArBN,EAAGO,EAAgB,UAAE,IAAAP,GAAQ,QAARC,EAAlBD,EAAoBx1I,cAAM,IAAAy1I,OAAtC55I,EAAY45I,EAA4BzwF,SAExDmiC,2BAA2B,WAMnC9nF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,SAAQ1sB,SAAA,CAChCa,cAAC4rB,KAAI,CAACG,MAAI,EAACrb,UAAWC,KAAOgmI,UAAUx3I,SAAC,YAGxCa,cAAC4rB,KAAI,CAACG,MAAI,EAACrb,UAAWC,KAAOimI,aAAaz3I,SACxCa,cAAC4nF,GAAQ,CACPh4C,OAAO,YACPhoC,KAAMu+C,EAAO+1E,YACbp3E,SACE2xF,GAE+C,QADlCJ,EACTK,EAAgBA,EAAgB/4I,OAAS,UAAE,IAAA04I,GAAa,QAAbC,EAA3CD,EAA6CxjF,mBAAW,IAAAyjF,OADxD95I,EACA85I,EACI3wF,aAId3lD,cAAC4rB,KAAI,CAACG,MAAI,EAACrb,UAAWC,KAAOimI,aAAaz3I,SACxCa,cAAC4nF,GAAQ,CACPh4C,OAAO,QACPhoC,KAAMu+C,EAAO+1E,YACbp3E,SACE2xF,GAE+C,QADlCF,EACTG,EAAgBA,EAAgB/4I,OAAS,UAAE,IAAA44I,GAAa,QAAbC,EAA3CD,EAA6C1jF,mBAAW,IAAA2jF,OADxDh6I,EACAg6I,EACI7wF,SAEVmiC,2BAA2B,eAMpC,ECvBQ+uD,OA3CgD33I,IAKxD,IAAD43I,EAAAC,EAAA,IAL0D,IAC9D91F,EAAG,YACHw1F,EAAW,SACX3xF,EAAQ,WACRkyF,GACD93I,EACC,OACEc,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CACHhb,WAAS,EACTF,UAAS,GAAArQ,OAAKsQ,KAAOsmI,oBAAmB,KAAA52I,OAAIsQ,KAAOumI,YAAa/3I,SAAA,CAEhEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOimI,aAAaz3I,SAC/Ca,cAAC4nF,GAAQ,CACPh4C,OAAO,kBACPhoC,KAAMq5C,EAAIsB,cACVuC,SAAU2xF,GAAyC,QAAlBK,EAAGhyF,EAASnkD,cAAM,IAAAm2I,OAA3Bt6I,EAAYs6I,EAAiBnxF,SACrDmiC,2BAA2B,MAG/B9nF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOimI,aAAaz3I,SAC/Ca,cAAC4nF,GAAQ,CACPh4C,OAAO,kBACPhoC,KAAMq5C,EAAIi7E,YACVp3E,SAAU2xF,GAA8C,QAAvBM,EAAGjyF,EAAS+N,mBAAW,IAAAkkF,OAAhCv6I,EAAYu6I,EAAsBpxF,SAC1DmiC,2BAA2B,MAG/B9nF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOwmI,UAAUh4I,SAAA,GAAAkB,OACxC4gD,EAAItgD,OAAM,KAAAN,OAAI4gD,EAAI4R,eAExBpiD,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOwmI,UAAUh4I,SAAA,CACjC,OAAV63I,QAAU,IAAVA,IAAch3I,cAACo3I,KAAQ,CAAAj4I,SAAC,QAAgB,IACzCa,cAAA,QAAM0Q,UAAWC,KAAOgmI,UAAUx3I,SAAC,uBAErCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOwmI,UAAUh4I,SAC5C8hD,EAAIzG,iBAGR,ECsKQ68F,IC9NX,GAAO,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAAS,GAASC,GAASC,GAASC,GD8N3QH,GAlMoCn4I,IAO5C,IAADu4I,EAAA,IAP8C,OAClDtxF,EAAM,UACNuxF,EAAS,QACTh2D,EAAO,YACP+0D,EAAW,SACXxuH,EAAQ,MACR47B,GACD3kD,EACC,MAAO0hG,EAAUC,GAAepvF,oBAAS,IACnC,kBAAEgK,GAAsB4hB,KACxB1F,EAAajB,KAEnB5jB,qBAAU,KACJmV,GAAcy5D,GAChBg2D,EAAUvxF,GAAQ,EACpB,GACC,CAACl+B,IAEJ,MAAMyuH,EAAkBvwF,EAAOgP,aAAaz/C,KAC1C,CAACurC,EAAKpjD,KAAK,CACTA,MAAOA,EACP8C,OAAQ8a,EAAkBiB,MAAM+oC,GAAMA,EAAEprC,OAAS4mC,EAAItgD,SACrDkyD,YAAap3C,EAAkBiB,MAAM+oC,GAAMA,EAAEprC,OAAS4mC,EAAI4R,kBAexD8kF,EAAiB,eAACvmB,EAAEh7G,UAAAzY,OAAA,QAAAnB,IAAA4Z,UAAA,GAAAA,UAAA,GAAG,EAAC,OAC5BpW,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAG3b,WAAS,EAAAzR,SACjCa,cAAC8Y,KAAG,CAACs4G,GAAIA,EAAI1gH,UAAWkV,KAAWe,UAAUxnB,SAC3Ca,cAAC2lB,KAAM,CACL1U,QAAQ,WACRmD,MAAM,UACN1D,UAAWgxE,EAAU,GAAK97D,KAAWC,sBACrCc,WAAS,EACTjB,QAASA,IAAMgyH,EAAUvxF,GAASu7B,GAClCz5D,SAAUA,GAAYk+B,EAAO1zC,UAAUtT,SAEtCuiF,EAAU,mBAAqB,0BAG/B,EAGT,OACE1hF,cAAC6/F,KAAI,CACHnvF,UAAS,GAAArQ,OAAKsQ,KAAO20D,KAAI,KAAAjlE,OACvBqhF,EAAU/wE,KAAOinI,0BAA4BjnI,KAAOknI,mBACnD14I,SAEHsR,eAACwvF,KAAW,CAAA9gG,SAAA,CACT8oB,EACCxX,eAACqI,KAAG,CACF5F,QAAQ,OACRC,WAAW,SACXzC,UAAWC,KAAOmnI,sBAAsB34I,SAAA,CAExCa,cAACihG,GAAW,CAAChuF,MAAO,CAAEW,SAAU,aAChC5T,cAACgR,KAAU,CAACC,QAAQ,QAAQP,UAAWC,KAAOonI,iBAAiB54I,SAAC,6BAKlEgnD,EAAO1zC,WACLhC,eAACqI,KAAG,CACF5F,QAAQ,OACRC,WAAW,SACXzC,UAAWC,KAAOmnI,sBAAsB34I,SAAA,CAExCa,cAACihG,GAAW,CAAChuF,MAAO,CAAEW,SAAU,aAChCnD,eAACO,KAAU,CAACC,QAAQ,QAAQP,UAAWC,KAAOonI,iBAAiB54I,SAAA,CAAC,2BACrCgnD,EAAO3D,oBAKxC/xC,eAACmb,KAAI,CACHhb,WAAS,EACTuC,WAAW,aACXzC,UAAS,GAAArQ,QAAM4nB,GAAYk+B,EAAO1zC,YAAc9B,KAAOqnI,cACvD7wG,QAASxP,EAAWX,OAAS,EAAI,EAAE73B,SAAA,CAEnCsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAG3b,WAAS,EAAAzR,SAAA,CACjCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACgR,KAAU,CACTC,QAAQ,YACRP,UAAWC,KAAOsnI,kBAAkB94I,SAtE5B6wG,MACpB,IAAIhvD,EAAOmF,EAAOsuB,QAAQzwD,MAAM,KAChC,OAAIg9B,EAAKrjD,QAAU,EACVwoD,EAAOsuB,QAER,GAANp0E,OAAU2gD,EAAK,GAAE,KAAA3gD,OAAI2gD,EAAK,GAAE,SAAA3gD,OAAQ2gD,EAAKA,EAAKrjD,OAAS,GAAE,KAAA0C,OACvD2gD,EAAKA,EAAKrjD,OAAS,GAEvB,EAgEaqyG,OAGLhwG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACg2I,GAAoB,CACnB7vF,OAAQA,EACRswF,YAAaA,EACbC,gBAAiBA,SAIvBjmI,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAG3b,WAAS,EAAAzR,SAAA,CACjCa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJ1jB,MAAO,CAAE+V,cAAe,MAAOD,WAAY,OAAQ5pB,SAEnDa,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACbsR,eAACmb,KAAI,CAACG,MAAI,EAACrb,UAAWC,KAAOgmI,UAAUx3I,SAAA,CAAC,gBACxB,IACda,cAAA,QAAM0Q,UAAWC,KAAOunI,SAAS/4I,SAAEgnD,EAAO3L,qBAI9C7iB,EAAWX,QAAU2gH,IACvB33I,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAG1jB,MAAO,CAAE8V,WAAY,OAAQ5pB,SAC7Ca,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACbsR,eAACmb,KAAI,CAACG,MAAI,EAACrb,UAAWC,KAAOunI,SAAS/4I,SAAA,CAInC,QAJmCs4I,EAC9B,OAAL5zF,QAAK,IAALA,OAAK,EAALA,EAAO7C,KAAKljB,QACX,CAACC,EAAK5gB,IAAY+vC,KAAKxnD,IAAIq4B,EAAK5gB,EAAQg7H,iBACxC,UACD,IAAAV,IAAIz3I,cAACo3I,KAAQ,CAAAj4I,SAAC,QAAgB,IAC/Ba,cAAA,QAAM0Q,UAAWC,KAAOgmI,UAAUx3I,SAAC,2BAIxCw4B,EAAWX,SAAW4pE,GAAY+2C,EAAe,IAChD/2C,IAAa34E,IAAak+B,EAAO1zC,WACjCzS,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAGtZ,MAAO,CAAE8V,WAAY,OAAQ5pB,SACrDa,cAAC0hC,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QAASA,IAAMm7E,GAAY,GAC3B5vF,QAAQ,QACR6E,UAAU,SACVpF,UAAWC,KAAOynI,YAAYj5I,SAC/B,+BAMNyhG,GACCnwF,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CAAChb,WAAS,EAACmb,MAAI,EAACrb,UAAWC,KAAO0nI,qBAAqBl5I,SAC1Da,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACtBgnD,EAAOgP,aAAaz/C,KAAI,CAACurC,EAAKpjD,KAAK,IAAAy6I,EAAA,OAClCt4I,cAAC62I,GAAkB,CAEjB51F,IAAKA,EACLw1F,YAAaA,EACb3xF,SAAU4xF,EAAgB74I,GAC1Bm5I,WACO,OAALnzF,QAAK,IAALA,GAIC,QAJIy0F,EAALz0F,EAAO7C,KAAKtkC,MACT+oC,GACCA,EAAExE,IAAItgD,SAAWsgD,EAAItgD,QACrB8kD,EAAExE,IAAI4R,cAAgB5R,EAAI4R,qBAC7B,IAAAylF,OAJI,EAALA,EAIGH,gBACJ,OAAA93I,OAVWxC,EAAK,KAAAwC,OAAI4gD,EAAItgD,OAAM,KAAAN,OAAI4gD,EAAI4R,aAWvC,QAIPl7B,EAAWX,QAAU2gH,EAAe,IACnC1vH,IAAak+B,EAAO1zC,WACpBzS,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWe,UAAW4xH,GAAI,IAAIp5I,SAC5Ca,cAAC0hC,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QAASA,IAAMm7E,GAAY,GAC3B5vF,QAAQ,QACR6E,UAAU,SACVpF,UAAWC,KAAOynI,YAAYj5I,SAC/B,sCASR,ECzNX,SAAS,KAAiS,OAApR,GAAWjB,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASoiI,GAAiBt5I,EAAMyX,GAC9B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,IACPC,OAAQ,IACRuD,QAAS,cACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,kbACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,gbACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,mPACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,kPACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,8ZACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,yOACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,0OACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,mDACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,iNACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,mDACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,wMACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,oEACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,mRACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,oFACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,oKACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,0fACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,yfACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,yyBACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,q2BACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,0tBACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,oNACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,qpCACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,4wBACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,0tBACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,iQACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,0aACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,mdACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,obACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,+ZACHN,KAAM,aACH,KAAY,GAAuB,gBAAoB,OAAQ,CAClEM,EAAG,6lBACHN,KAAM,WACHwgI,KAAYA,GAAuB,gBAAoB,OAAQ,CAClElgI,EAAG,kEACHN,KAAM,aACHygI,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEngI,EAAG,4YACHN,KAAM,aACH0gI,KAAYA,GAAuB,gBAAoB,OAAQ,CAClEpgI,EAAG,mfACHN,KAAM,WAEV,CACA,MAAM,GAA0B,aAAiB0hI,IAClC,ICzHX,GAAI,GDyHO,ICxHf,SAAS,KAAiS,OAApR,GAAWt6I,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASqiI,GAA6Bv5I,EAAMyX,GAC1C,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,IACPC,OAAQ,IACRuD,QAAS,cACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAO,GAAkB,gBAAoB,IAAK,CAClE44I,SAAU,eACI,gBAAoB,OAAQ,CAC1CthI,EAAG,gCACHN,KAAM,wBACS,gBAAoB,OAAQ,CAC3CM,EAAG,kDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,iDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oDACHN,KAAM,wBACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,oDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,oDACHN,KAAM,UACN48C,YAAa,KACE,gBAAoB,OAAQ,CAC3Ct8C,EAAG,oDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,mDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,oDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,kDACHN,KAAM,UACN48C,YAAa,KACE,gBAAoB,OAAQ,CAC3CxqB,QAAS,GACT9xB,EAAG,oDACHN,KAAM,UACN48C,YAAa,KACE,gBAAoB,OAAQ,CAC3CxqB,QAAS,GACT9xB,EAAG,oDACHN,KAAM,UACN48C,YAAa,KACE,gBAAoB,OAAQ,CAC3Ct8C,EAAG,oDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,oDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,mDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,oDACHN,KAAM,UACN48C,YAAa,KACE,gBAAoB,OAAQ,CAC3CxqB,QAAS,GACT9xB,EAAG,oDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,kDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,iDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,iDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,iDACHN,KAAM,UACN48C,YAAa,KACE,gBAAoB,OAAQ,CAC3Ct8C,EAAG,iDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,gDACHN,KAAM,UACN48C,YAAa,KACE,gBAAoB,OAAQ,CAC3Ct8C,EAAG,iDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,iDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,+CACHN,KAAM,UACN48C,YAAa,KACE,gBAAoB,OAAQ,CAC3Ct8C,EAAG,oDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,oDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,oDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,mDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,oDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,kDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,oDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,oDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,oDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,mDACHN,KAAM,UACN48C,YAAa,KACE,gBAAoB,OAAQ,CAC3Ct8C,EAAG,oDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,oDACHN,KAAM,UACN48C,YAAa,KACE,gBAAoB,OAAQ,CAC3Ct8C,EAAG,kDACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,oDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,kDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,mDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oDACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,+LACHN,KAAM,wBACS,gBAAoB,OAAQ,CAC3CM,EAAG,kNACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,iNACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,kNACHN,KAAM,wBACS,gBAAoB,OAAQ,CAC3CM,EAAG,kFACHN,KAAM,wBACS,gBAAoB,OAAQ,CAC3CM,EAAG,kFACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,iFACHN,KAAM,wBACS,gBAAoB,OAAQ,CAC3CM,EAAG,iFACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oNACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oNACHN,KAAM,wBACS,gBAAoB,OAAQ,CAC3CM,EAAG,iNACHN,KAAM,wBACS,gBAAoB,OAAQ,CAC3CM,EAAG,oNACHN,KAAM,wBACS,gBAAoB,OAAQ,CAC3CM,EAAG,mNACHN,KAAM,wBACS,gBAAoB,OAAQ,CAC3CM,EAAG,gNACHN,KAAM,yBACS,gBAAoB,OAAQ,CAC3CM,EAAG,kNACHN,KAAM,yBACS,gBAAoB,OAAQ,CAC3CM,EAAG,iNACHN,KAAM,yBACS,gBAAoB,OAAQ,CAC3CM,EAAG,+MACHN,KAAM,yBACS,gBAAoB,OAAQ,CAC3CM,EAAG,iNACHN,KAAM,yBACS,gBAAoB,OAAQ,CAC3CM,EAAG,4MACHN,KAAM,yBACS,gBAAoB,OAAQ,CAC3CM,EAAG,kNACHN,KAAM,yBACS,gBAAoB,OAAQ,CAC3CM,EAAG,oNACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,kNACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,mNACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,kNACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,gNACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,kNACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oNACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,iNACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oNACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,kNACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oNACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oNACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CoyB,QAAS,GACT9xB,EAAG,wnBACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oNACHN,KAAM,cACF,KAAU,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,iBAAkB,CACxHG,GAAI,gBACJ8iE,GAAI,QACJC,GAAI,QACJC,GAAI,QACJE,GAAI,EACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,gBACJ8iE,GAAI,OACJC,GAAI,QACJC,GAAI,OACJE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,gBACJ8iE,GAAI,QACJC,GAAI,QACJC,GAAI,QACJE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,gBACJ8iE,GAAI,QACJC,GAAI,QACJC,GAAI,QACJE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,gBACJ8iE,GAAI,QACJC,GAAI,QACJC,GAAI,QACJE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,gBACJ8iE,GAAI,QACJC,GAAI,QACJC,GAAI,QACJE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,gBACJ8iE,IAAK,QACLC,GAAI,QACJC,IAAK,OACLE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,gBACJ8iE,GAAI,IACJC,GAAI,QACJC,GAAI,IACJE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,gBACJ8iE,IAAK,QACLC,GAAI,OACJC,IAAK,QACLE,GAAI,OACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,gBACJ8iE,IAAK,QACLC,GAAI,QACJC,IAAK,QACLE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,iBACJ8iE,IAAK,QACLC,GAAI,QACJC,IAAK,QACLE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,iBACJ8iE,IAAK,QACLC,GAAI,QACJC,IAAK,OACLE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,iBACJ8iE,IAAK,QACLC,GAAI,QACJC,IAAK,QACLE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,iBACJ8iE,IAAK,QACLC,GAAI,QACJC,IAAK,QACLE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,iBACJ8iE,IAAK,QACLC,GAAI,QACJC,IAAK,QACLE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,iBACJ8iE,IAAK,QACLC,GAAI,QACJC,IAAK,QACLE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,iBAAkB,CACtD5hI,GAAI,iBACJ8iE,IAAK,QACLC,GAAI,QACJC,IAAK,QACLE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,IACRo1H,UAAW,UACXC,YAAa,MACE,gBAAoB,OAAQ,CAC3Cr1H,OAAQ,EACRo1H,UAAW,UACXC,YAAa,MACG,gBAAoB,WAAY,CAChD5hI,GAAI,SACU,gBAAoB,OAAQ,CAC1C5D,MAAO,IACPC,OAAQ,IACRwD,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiB2hI,IAClC,IC5jBAK,OAjCqD55I,IAE7D,IAF8D,sBACnE65I,GAAwB,GACzB75I,EACC,OACEc,cAAAyV,WAAA,CAAAtW,SACEsR,eAACqI,KAAG,CACFud,EAAG,EACHy+G,aAAa,SACbjsH,UAAU,SACVnY,UAAWC,KAAOqoI,eAAe75I,SAAA,CAEhC45I,EACC/4I,cAACi5I,GAA6B,IAE9Bj5I,cAACk5I,GAAY,IAEfl5I,cAAC8Y,KAAG,CAAC43F,GAAI,EAAG0gB,GAAI,EAAEjyH,SAChBa,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,UAASjV,SACrC45I,EACG,mCACA,8BAGR/4I,cAACgR,IAAU,CAACC,QAAQ,QAAQP,UAAWC,KAAOwoI,gBAAgBh6I,SAC3D45I,EACG,uFACA,mDAGP,ECWQK,OAnC4Cl6I,IAKpD,IALqD,QAC1D+iD,EAAO,IACPo3F,EAAG,cACHC,EAAa,iBACbnF,GACDj1I,EACC,MAAOq6I,EAAaC,GAAkB/nI,wBACpCjV,IAGI,MAAEqnD,GAAUW,KAEZi1F,EAAuBA,CAACtzF,EAAmBu7B,KACrC83D,EAAV93D,EAAyBv7B,OAAyB3pD,GAClD88I,EAAcnzF,EAAQu7B,EAAQ,EAGhC,OACEjxE,eAACqI,KAAG,CAAA3Z,SAAA,CACD8iD,EAAQvsC,KAAI,CAACywC,EAAQtoD,IACpBmC,cAACq3I,GAAY,CAEXlxF,OAAQA,EACRuxF,UAAW+B,EACX/3D,QAAS63D,IAAgBpzF,EACzBswF,YAAa4C,EACbpxH,SAAU6kB,KAAOqZ,EAAO5D,eAAiBzV,KAAOqnG,GAChDtwF,MAAOA,EAAMnnC,MAAMC,GAAMA,EAAEy1B,eAAiB+T,EAAO/T,gBAAc,GAAA/xC,OANzDxC,EAAK,KAAAwC,OAAI8lD,EAAO/T,iBASR,IAAnB6P,EAAQtkD,QAAgBqC,cAAC84I,GAAqB,CAACC,uBAAqB,MACjE,ECwEKW,OA9FoDx6I,IAY5D,IAZ6D,GAClE+X,EAAE,QACFgrC,EAAO,gBACP+B,EAAe,KACftU,EAAI,GACJx6B,EAAE,eACFykI,EAAc,iBACdC,EAAgB,oBAChBC,EAAmB,oBACnBC,EAAmB,kBACnBxG,EAAiB,KACjBkC,GAAO,GACRt2I,EACC,MAAOm6I,EAAKU,GAAUtoI,oBAAS,IACxBzL,EAASg0I,GAAcvoI,wBAA2BjV,IAClDy9I,EAAmBC,GAAwBzoI,mBAAS,IACrDkmB,EAAajB,KAmBnB,OACEjmB,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAGniB,GAAI,EAAEvsB,SACfuwC,GAAQx6B,GACPlV,cAACo1I,GAAqB,CAACE,SAAU5lG,EAAM6lG,OAAQrgI,EAAIsgI,KAAMA,MAG7Dx1I,cAACw6B,KAAK,CAAC8iD,UAAW,EAAG5sE,UAAWC,KAAOwpI,eAAeh7I,SACnD8iD,GAAWA,EAAQtkD,OAAS,EAC3B8S,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAACs4G,GAAIz5F,EAAWX,OAAS,EAAI,EAAGnO,UAAU,SAAQ1pB,SACpDsR,eAAA,OAAKC,UAAWC,KAAOypI,oBAAoBj7I,SAAA,CACzCa,cAACgR,IAAU,CAACN,UAAWC,KAAO0pI,WAAWl7I,SACtC86I,IAEHj6I,cAAA,OAAK0Q,UAAWC,KAAO2pI,gBAAgBn7I,SACrCa,cAAA,OAAK0Q,UAAWC,KAAO4pI,6BAI7Bv6I,cAAC8Y,KAAG,CAACs4G,GAAIz5F,EAAWX,OAAS,EAAI,EAAE73B,SACjCa,cAACqzI,GAAgB,CACfp8H,GAAE,GAAA5W,OAAK4W,EAAE,aACTq8H,kBAAmBA,EACnBC,WAAYuG,EACZtG,WAAY,EACZvxF,QAASA,EACTwxF,aA5CkB7rI,IAC9B,IAAI+xG,EAAQ7sE,KAAOllC,GAAMgoC,OAAO,YAC5BqqG,IAAsBtgC,GACxBugC,EAAqBvgC,EAAM3+E,qBAE7B2+G,EAAe/xI,EAAK,EAwCR8rI,sBAjCiB1tI,IAC7B6zI,EAAoB7zI,GACpBg0I,EAAWh0I,EAAQ,MAkCXhG,cAAC8Y,KAAG,CAAA3Z,SACFa,cAAC4rB,KAAI,CAAChb,WAAS,EAACs2B,eAAe,SAAS/zB,WAAW,SAAQhU,SACzDa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC+9H,GAAW,CACVC,SAAU,aACVC,QAAS,MACT7/H,KAAM,YACN6rB,SAAW1tB,GAAUw9I,EAAOx9I,GAC5B2qB,cAAc,UAKtBlnB,cAACo5I,GAAgB,CACfn3F,QAAS+B,EACTq1F,IAAKA,EACLC,cAxDiBG,CAACtzF,EAAmBu7B,KACrCk4D,EAAVl4D,EAA2Bv7B,OAA2B3pD,EAAU,EAwDtD23I,iBAAkBnuI,OAItBhG,cAAC84I,GAAqB,QAGzB,ECrDQ0B,OAlDsDt7I,IAE9D,IAF+D,aACpEu7I,GACDv7I,EACC,MAAM,QACJ+iD,EAAO,gBACPY,EAAe,cACfwC,EAAa,OACbxhD,EAAM,gBACNmgD,EAAe,WACfkC,EAAU,aACVG,GACE7B,KACE7sB,EAAajB,KAOnB,OAAOhd,mBACL,IACE1Z,cAAC8Y,KAAG,CAAC6uE,GAAI,EAAG1zE,aAAa,SAAQ9U,SAC9B0jD,EACC7iD,cAACo3I,KAAQ,CAAC/jI,MAAOskB,EAAWX,OAAS,OAAS,KAAM1jB,OAAQ,MAE5D2uC,GACAp+C,GACE7D,cAAC05I,GAAoB,CACnBziI,GAAI,wBACJgrC,QAASA,EACT03F,eAAiB/xI,IAhBGA,KAC9By9C,EAAc,CAAEz9C,KAAMA,IACtB6yI,EAAa7yI,EAAK,EAeN8yI,CAAuB9yI,EAAK,EAE9Bo8C,gBAAiBA,EACjBtU,KAAM7rC,EAAO6rC,KACbx6B,GAAIrR,EAAOqR,GACX0kI,iBAAkB1zF,EAClB2zF,oBAAqBxzF,EACrByzF,oBAAqBj2I,EAAO8rC,SAC5B2jG,kBAAmB,IAAIv1I,KACvBy3I,MAAM,OAMhB,CAACvzF,EAASY,EAAiBh/C,EAAQmgD,GACpC,ECSYw2F,OAxDsDt7I,IAE9D,IAF+D,kBACpEo0I,GACDp0I,EACC,MAAM,cACJukD,EAAa,oBACboC,EAAmB,sBACnBvC,EAAqB,OACrBz/C,EAAM,sBACNqgD,EAAqB,iBACrBkC,EAAgB,mBAChBE,EAAkB,mBAClBvD,GACEyB,KACE7sB,EAAajB,KAEbikH,EAAsC/yI,IAC1Ci+C,EAAoB,CAAEj+C,KAAMA,GAAO,EAGrC,OAAO8R,mBACL,IACE1Z,cAAC8Y,KAAG,CAAC6uE,GAAI,EAAExoF,SACRmkD,EACCtjD,cAACo3I,KAAQ,CAAC/jI,MAAOskB,EAAWX,OAAS,OAAS,KAAM1jB,OAAQ,MAE5DmwC,GACA5/C,GACAA,EAAOgsC,QACL7vC,cAAC05I,GAAoB,CACnBziI,GAAI,uBACJgrC,QAASwB,EACTk2F,eAAgBgB,EAChB32F,gBAAiBE,EACjBxU,KAAM7rC,EAAOqR,GACbA,GAAIrR,EAAO6rC,KACXkqG,iBAAkBxzF,EAClByzF,oBAAqBvzF,EACrBwzF,oBAAqBj2I,EAAOgsC,OAC5ByjG,kBAAmBA,EACnBkC,MAAM,OAMhB,CACE/xF,EACAH,EACAz/C,EACAqgD,EACAnB,EACAuwF,GAEH,EC3CYsH,OAfkBA,KAC/B,MAAOC,EAAmBC,GAAwBrpI,wBAChDjV,GAGF,OACEwD,cAAC8Y,KAAG,CAAC7F,MAAO,CAAEyV,OAAQ,IAAKvpB,SACzBsR,eAACsqI,WAAO,CAAC38I,KAAK,mBAAkBe,SAAA,CAC9Ba,cAACw6I,GAAqB,CAACC,aAAcK,IACrC96I,cAACg7I,GAAoB,CAAC1H,kBAAmBuH,QAEvC,ECCKI,OAXEA,KACf,MAAMvpI,EAAW8C,IAEjB,MAAO,CACL0mI,QAASxpI,EAASL,YAAYyT,MAC3BuR,GAAMA,IAAMtI,GAAgBmC,iCAE/Bxe,SAAUA,EACX,EC0GYypI,OAtGwDj8I,IAOhE,IAADk8I,EAAA,IAPkE,KACtE3xI,EAAI,OACJqnF,EAAM,MACN18E,EAAQ,UAAS,KACjBu9E,EAAI,aACJX,EAAY,UACZrqE,GAAY,GACbznB,EACC,MAAM,WAAEia,GAAeQ,KA2BjBo5E,EAAiBjhF,UAxBG6/E,IACjB,IAAI1vF,SAAQ,SAAUmJ,EAASlJ,GACpC,MAAM0vF,EAAS,IAAIC,WACnBD,EAAOE,QAAU5vF,EACjB0vF,EAAOG,OAAS,WAAa,IAADC,EAC1B,IAAIC,EAA4B,QAAhBD,EAAGJ,EAAOrmE,cAAM,IAAAymE,OAAA,EAAbA,EAAexyE,WAClCpU,EAAQ,CAAEqX,SAAUkvE,EAAKvzF,KAAMiG,QAAqB,OAAZ4tF,QAAY,IAAZA,IAAgB,IAC1D,EACAL,EAAOM,cAAcP,EACvB,IAgBAD,CAAiBC,GACdhnF,MAAMpO,IACL2kB,GAAYwB,SAASnmB,EAAM8H,QAAS9H,EAAMkmB,SAAS,IAEpD3f,OAAM,IAAMqW,EAAW,2BAA0B,EAGtD,OACE1I,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWC,KAAO8hF,cAActzF,SAAA,CAC9CsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAAA,SACE8wF,OAAQA,GAAU,IAClBpgF,UAAWC,KAAO+hF,UAClBz7E,GAAI,aACJ85E,UAAU,EACVl0F,KAAK,OACLotB,SA7BiBnY,UACvB,IAEE,GADAuL,EAAM+0E,UACF/0E,EAAMnH,QAAUmH,EAAMnH,OAAOm8E,OAASh1E,EAAMnH,OAAOm8E,MAAM10F,OAAS,EAAG,CACvE,MAAM00F,EAAkBh1E,EAAMnH,OAAOm8E,MACrCrB,EAAaqB,EAAM,GACrB,CACF,CAAE,MAAOzwF,GACPuX,EAAWvX,EAAMpC,QACnB,KAsBIQ,cAAA,SAAOk4E,QAAS,aAAa/4E,SAC3Ba,cAAA,QAAAb,SACEa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRmD,MAAOA,EACP1D,UAAWC,KAAOgiF,aAClB/1F,KAAK,QACLkZ,UAAU,OACV4zB,UAAW1pC,cAAC4yF,GAAc,CAACx+E,MAAOA,IAClCuS,UAAWA,EAAUxnB,SAEpBsK,WAKTzJ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWC,KAAOmiF,aAAa3zF,SAC5CwyF,GACClhF,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAAC4V,KAAU,CACTzpB,KAAK,QACL8T,UAAWC,KAAO8/E,yBAClB/qE,QAASA,IAAMqtE,EAAepB,GAAMxyF,SAAA,CAEpCa,cAAC2wF,GAAgB,IACjB3wF,cAAA,OAAAb,SAAgB,QAAhBi8I,EAAU,OAAJzpD,QAAI,IAAJA,OAAI,EAAJA,EAAMvzF,YAAI,IAAAg9I,IAAI,sBAIxBp7I,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOqiF,WAAW7zF,SAC7Ca,cAACqmB,KAAU,CACTzpB,KAAK,QACL8T,UAAWC,KAAOsiF,OAClBvtE,QAASA,IAAMsrE,OAAax0F,GAAW2C,SAEvCa,cAACqlF,GAAU,iBAOlB,ECmBIg2D,OAzHR,SAA2Bn8I,GAMiC,IANhC,oBACEw3F,EAAmB,oBACnB4kD,EAAmB,mBACnBC,EAAkB,SAClB7zH,EAAQ,WACR8zH,GAC2Bt8I,EAE9D,MAAO8hE,EAAay6E,GAAkBhqI,mBAA4B8pI,IAC3DG,EAASC,GAAclqI,sBACvBgb,EAASmvH,GAAcnqI,oBAAS,GAEvCqB,qBAAU,KACmB,IAAvBkuD,EAAYrjE,QAA8C,IAA9B49I,EAAmB59I,QACjD89I,EAAeF,EACjB,GACC,CAACA,IAEJzoI,qBAAU,KACJ4oI,GAASC,OAAWn/I,EAAU,GACjC,CAACg/I,IAEJ,MAeMK,EAAqBA,KACrBpvH,GAGJmvH,GAAW,EAAK,EAQZE,EAAiBpiI,mBACrB,IACE1Z,cAAC8Y,KAAG,CAACuhB,UAAW,EAAEl7B,SAChBa,cAACm7I,GAAsB,CACrB1xI,KAAK,gBACLunF,aAAeW,GAhCHA,KAClB,IAAKA,EAAM,OACXgqD,EAAWhqD,GAEX,MAAMoqD,EAAgB,CACpB1nD,aAAc1C,EAAKvzF,KACnBiG,QAASstF,EACTzpB,iBAAkB,GAGpBuzE,EAAe,IAAIz6E,EAAa+6E,IAChCJ,OAAWn/I,GACXq/I,GAAoB,EAoBUG,CAAWrqD,GACnCA,KAAM+pD,OAIZ,CAACF,EAAYx6E,IA2Df,MAAO,CAACi7E,qBArCqBA,IAEzBj8I,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CAACuhB,UAAW,EAAEl7B,SAChBa,cAACumB,GAAW,CAACC,MAAM,GAAErnB,SACnBsR,eAAAgF,WAAA,CAAAtW,SAAA,EACIuoB,GAAYo0H,EACb96E,EAAYtrD,KAAI,CAACjP,EAAY5I,IAC5BmC,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACmb,KAAI,CAAChb,WAAS,EAACuC,WAAW,SAAQhU,SAAA,CACjCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACswF,GAAkB,CACjB7tE,SAAUhc,EAAW4tF,aACrB9D,QAASA,IApBA9pF,IACO,IAAhCA,EAAWyhE,iBACN,IAAIjmE,SAASmJ,GAAYA,EAAQ3E,EAAWpC,WAE9CwjE,GAAYI,cAAcxhE,EAAWyhE,kBAgBTg0E,CAAsBz1I,QAGvCihB,GACA1nB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAW4qI,EAAoBn8I,SAC/Ca,cAACqmB,KAAU,CACTzpB,KAAK,QACL8T,UAAWgmF,EACXhxE,QAASA,IAxCFy2H,EAAC11I,EAA6B5I,KAC3Dg+I,IAEA,MAAMO,EAAiB,IAAIp7E,IACAo7E,EAAe1/H,MAAK+tD,GAAKA,EAAEvC,mBAAqBzhE,EAAWyhE,kBAAoBuC,EAAE4pB,eAAiB5tF,EAAW4tF,gBAE7Gx2F,EAAQ,IAEnCu+I,EAAez8I,OAAO9B,EAAO,GAC7B49I,EAAeW,GAAe,EA+BOD,CAAuB11I,EAAY5I,GAAOsB,SAEzDa,cAACqlF,GAAU,YAIZ,cAAAhlF,OAnBeoG,EAAWyhE,iBAAgB,KAAA7nE,OAAIxC,eA6BvCw+I,oBA1EFA,KAC1BR,IACO76E,GAwE0Cs7E,kBAAmB7vH,EACxE,ECtIO,IAAK8vH,GAAY,SAAZA,GAAY,OAAZA,IAAY,aAAZA,IAAY,eAAZA,CAAY,MAYxB,SAASC,GAAY50I,GACnB,OAAe,MAARA,EAAe,IAAI7J,KAAK6J,GAAM60I,UAAY,CACnD,CAEO,SAASC,GAAW7vB,EAAev8C,GACxC,IAAKu8C,GAA0B,IAAjBA,EAAMlvH,OAAc,OAAOkvH,EACzC,MAAMthG,EAASshG,EAAM/vH,QAMrB,OALAyuB,EAAO+kD,MAAK,CAAC7F,EAAS8F,IACbD,IAASisE,GAAaI,IACzBH,GAAY/xE,GAAK+xE,GAAYjsE,GAC7BisE,GAAYjsE,GAAKisE,GAAY/xE,KAE5Bl/C,CACT,CApBO,IAAsBqxH,GAAeC,G,GAAfD,GAPV,KAOyBC,IAsBK,IAAI9+I,MAAO++I,cArBnDpgJ,MAAMmgJ,GAAMD,GAAQ,GACxB9lI,KAAK8lI,IACLlnI,KAAI,CAACzN,EAAMpK,IAAUoK,EAAOpK,IAC5BuoI,UCJE,MAAM2W,GAAqB,CAAC,SAAU,OAAQ,UAE/CC,GAAeA,CACnBC,EACA7yH,KAEA,IAAK6yH,EAAS,OAAO7yH,EAErB,MAAM8yH,EAAcD,EAAQ97G,QAAQovC,GAAMzjC,KAAOyjC,GAAG7jD,YAEpD,GAAIwwH,GAAeA,EAAYv/I,OAAS,EAAG,CACzC,MAAMw/I,EAAoBT,GAAWQ,EAAaX,GAAaI,KAC/D,OAAOvyH,EAAIzkB,IAAIw3I,EAAkB,GAAIj6I,EAAUqC,WAAWyB,iBAC5D,CAEA,OAAOojB,CAAG,EAuBCgzH,GAAkBhzH,OAAaC,MAAM,CAChD0xE,KAAM3xE,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD03I,SAAUjzH,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClDm2F,QAAS1xE,OAEN5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD+M,YAAa0X,OAAYggG,GAAGhgG,OAAWolE,WAAWpqD,QAAQ,OAC1Dg4E,QAAShzF,OAEN5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACV7kB,IACgC,QAD7BgoG,GACF5gE,KAAO,IAAI/uC,MAAQu1C,QAAQ,YAAI,IAAAo6D,QAAA,EAA/BA,GAAiC79D,SACjC3sC,EAAUqC,WAAWsB,cAEtB4mG,KAAK,CAAC,gBAAgB,CAACwvC,EAA0B7yH,IAChD4yH,GAAaC,EAAS7yH,KAE1B+uG,SAAU/uG,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAie,KAAK,WAAW,CAAC2P,EAAsB34F,IACtC24F,EACI34F,EAAO/e,IAAI03G,EAAS,sCACpB34F,IAER20G,cAAehvG,OAEZ1kB,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWmB,WAAY,iBAAkB,IACvElB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWY,eAClCowF,gBAAiBnsE,OACjBmlE,eAAgBnlE,OAAWolE,WAC3BC,gBAAiBrlE,OAAWolE,WAC5BE,wBAAyBtlE,OAAWolE,WACpCG,oBAAqBvlE,OAAWolE,WAChCI,mBAAoBxlE,OAAWolE,WAC/BK,eAAgBzlE,OAAWolE,WAC3BmiC,aAAcvnG,SAGHkzH,GAAkClzH,OAAaC,MAAM,CAChE3X,YAAa0X,OAAYggG,GAAGhgG,OAAWolE,WAAWpqD,QAAQ,OAC1D22D,KAAM3xE,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD03I,SAAUjzH,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClDm2F,QAAS1xE,OAEN5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDy3G,QAAShzF,OAEN5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAie,KAAK,CAAC,gBAAgB,CAACwvC,EAA0B7yH,IAChD4yH,GAAaC,EAAS7yH,KAE1B+uG,SAAU/uG,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAie,KAAK,WAAW,CAAC2P,EAAsB34F,IACtC24F,EACI34F,EAAO/e,IAAI03G,EAAS,sCACpB34F,IAER20G,cAAehvG,OAEZ1kB,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWmB,WAAY,iBAAkB,IACvElB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWY,eAClCowF,gBAAiBnsE,OACjBmlE,eAAgBnlE,OAAWolE,WAC3BC,gBAAiBrlE,OAAWolE,WAC5BE,wBAAyBtlE,OAAWolE,WACpCG,oBAAqBvlE,OAAWolE,WAChCI,mBAAoBxlE,OAAWolE,WAC/BK,eAAgBzlE,OAAWolE,WAC3BmiC,aAAcvnG,SAGHmzH,GAA2BnzH,OAAaC,MAAM,CACzDksE,gBAAiBnsE,OACjBmlE,eAAgBnlE,OAAWolE,WAC3BC,gBAAiBrlE,OAAWolE,WAC5BE,wBAAyBtlE,OAAWolE,WACpCG,oBAAqBvlE,OAAWolE,WAChCI,mBAAoBxlE,OAAWolE,WAC/BK,eAAgBzlE,OAAWolE,WAC3BmiC,aAAcvnG,SAGHozH,GAAwBpzH,OAAaC,MAAM,CACtD3X,YAAa0X,OAAYggG,GAAGhgG,OAAWolE,WAAWpqD,QAAQ,OAC1DmxD,gBAAiBnsE,OACjBmlE,eAAgBnlE,OAAWolE,WAC3BC,gBAAiBrlE,OAAWolE,WAC5BE,wBAAyBtlE,OAAWolE,WACpCG,oBAAqBvlE,OAAWolE,WAChCI,mBAAoBxlE,OAAWolE,WAC/BK,eAAgBzlE,OAAWolE,WAC3BmiC,aAAcvnG,OACdgzF,QAAShzF,OAEN5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAie,KAAK,CAAC,gBAAgB,CAACwvC,EAA0B7yH,IAChD4yH,GAAaC,EAAS7yH,KAE1B+uG,SAAU/uG,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAie,KAAK,WAAW,CAAC2P,EAAsB34F,IACtC24F,EACI34F,EAAO/e,IAAI03G,EAAS,sCACpB34F,IAER20G,cAAehvG,OAEZ1kB,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWmB,WAAY,iBAAkB,IACvElB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWY,iBCrLpC,IAAI,GAAI,GAAO,GACf,SAAS,KAAiS,OAApR,GAAWjI,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASqnI,GAA2Bv+I,EAAMyX,GACxC,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAO,GAAkB,gBAAoB,IAAK,CAClEqhC,OAAQ,mBACM,gBAAoB,SAAU,CAC5C5pB,EAAG,GACHS,UAAW,yBACXR,OAAQ,UACR+kB,YAAa,MACT,KAAU,GAAqB,gBAAoB,OAAQ,CAC/DrlB,SAAU,UACVC,SAAU,UACVC,EAAG,wFACHN,KAAM,aACH,KAAU,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,SAAU,CAC/GG,GAAI,YACJ0c,EAAG,EACHC,EAAG,EACHvgB,MAAO,GACPC,OAAQ,GACRqgG,YAAa,iBACbC,0BAA2B,QACb,gBAAoB,UAAW,CAC7CC,aAAc,EACdtoF,OAAQ,uBACO,gBAAoB,gBAAiB,CACpDwU,GAAI,cACJljC,KAAM,SACN8nB,OAAQ,8CACO,gBAAoB,eAAgB,CACnDmvF,OAAQ,EACRC,SAAU,QACVh0E,GAAI,cACJxU,OAAQ,uBACO,gBAAoB,WAAY,CAC/CyoF,GAAI,EACJC,GAAI,IACW,gBAAoB,iBAAkB,CACrDC,aAAc,IACC,gBAAoB,gBAAiB,CACpDr3G,KAAM,SACN8nB,OAAQ,+CACO,gBAAoB,UAAW,CAC9CsG,KAAM,SACNkpF,IAAK,qBACL5oF,OAAQ,uBACO,gBAAoB,UAAW,CAC9CN,KAAM,SACN8U,GAAI,gBACJo0E,IAAK,qBACL5oF,OAAQ,aAEZ,CACA,MAAM,GAA0B,aAAiBkyH,IAClC,ICvEX,GAAI,GAAO,GDuEA,ICtEf,SAAS,KAAiS,OAApR,GAAWv/I,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASsnI,GAAmCx+I,EAAMyX,GAChD,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAO,GAAkB,gBAAoB,IAAK,CAClEqhC,OAAQ,mBACM,gBAAoB,SAAU,CAC5C9pB,GAAI,GACJC,GAAI,GACJC,EAAG,GACHS,UAAW,qBACXR,OAAQ,UACR+kB,YAAa,MACT,KAAU,GAAqB,gBAAoB,OAAQ,CAC/DrlB,SAAU,UACVC,SAAU,UACVC,EAAG,wFACHN,KAAM,aACH,KAAU,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,SAAU,CAC/GG,GAAI,YACJ0c,EAAG,EACHC,EAAG,EACHvgB,MAAO,GACPC,OAAQ,GACRqgG,YAAa,iBACbC,0BAA2B,QACb,gBAAoB,UAAW,CAC7CC,aAAc,EACdtoF,OAAQ,uBACO,gBAAoB,gBAAiB,CACpDwU,GAAI,cACJljC,KAAM,SACN8nB,OAAQ,8CACO,gBAAoB,eAAgB,CACnDmvF,OAAQ,EACRC,SAAU,QACVh0E,GAAI,cACJxU,OAAQ,uBACO,gBAAoB,WAAY,CAC/CyoF,GAAI,EACJC,GAAI,IACW,gBAAoB,iBAAkB,CACrDC,aAAc,IACC,gBAAoB,gBAAiB,CACpDr3G,KAAM,SACN8nB,OAAQ,+CACO,gBAAoB,UAAW,CAC9CsG,KAAM,SACNkpF,IAAK,qBACL5oF,OAAQ,uBACO,gBAAoB,UAAW,CAC9CN,KAAM,SACN8U,GAAI,gBACJo0E,IAAK,qBACL5oF,OAAQ,aAEZ,CACA,MAAM,GAA0B,aAAiBmyH,IAClC,Q,qBCqFAC,IC9JX,GD8JWA,GA1HwCz+I,IAUhD,IAViD,YACtD0+I,EAAW,WACXxlF,EAAU,SACV8L,EAAQ,aACRF,EAAY,cACZpB,EAAa,SACbzjE,EAAQ,gBACR0+I,EAAe,gBACfC,GAAkB,EAAK,mBACvBC,GACD7+I,EACC,MAAQ0tC,UAAWoxG,EAAkBtzH,UAAWuzH,GAC9CxxG,MAEAE,UAAWuxG,EACXtxG,UAAWuxG,EACXzzH,UAAW0zH,GACT3xG,KAEE9U,EAAajB,KACbs/E,EAAQH,KACRt+E,EAAUC,eACV,OAAE6mH,G/LMD,CAAEA,OAjCO19I,IACd,OAAQA,GACN,KAAKiuF,GAA0B4G,SAC7B,MAAO,CAAE5/E,KAAM,oBAAqB4Q,MAAO,uBAC7C,KAAKooE,GAA0B4Z,QAC7B,MAAO,CAAE5yF,KAAM,sBAAuB4Q,MAAO,qBAC/C,KAAKooE,GAA0Bsa,SAC7B,MAAO,CAAEtzF,KAAM,sBAAuB4Q,MAAO,uBAC/C,KAAKooE,GAA0BgyB,YAC7B,MAAO,CACLhrG,KAAM,yBACN4Q,MAAO,0BAEX,KAAKooE,GAA0B0sB,gBAC7B,MAAO,CACL1lG,KAAM,6BACN4Q,MAAO,+BAEX,KAAKooE,GAA0BM,mBAC7B,MAAO,CACLt5E,KAAM,mCACN4Q,MAAO,iCAEX,KAAKooE,GAA0Bgb,aAC7B,MAAO,CACLh0F,KAAM,2BACN4Q,MAAO,2BAEX,QACE,OACJ,G+LDI7lB,EAASq1G,EAAM9pG,IAAI,UACnBoyI,EAAgBD,EAAa,OAAN19I,QAAM,IAANA,IAAU,IACvC,OACE8P,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAAA,OAAKC,UAAWC,KAAOC,UAAUzR,SAAA,EAC7Bw4B,EAAWX,QAAUr2B,GAAU29I,GAC/Bt+I,cAAC0hC,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QAASA,KACPq4H,GAAgC,YAAVp9I,EAClBu9I,IACA3mH,EAAQ93B,KAAK6+I,EAAc1oI,KAAK,EAEtC3E,QAAQ,QACR6E,UAAU,SAAQ3W,SAEjBm/I,EAAc93H,QAInBxmB,cAACqmB,KAAU,CAACX,QAASs+C,EAAc/7C,SAAyB,IAAfmwC,EAAiBj5D,SAC5C,IAAfi5D,EACCp4D,cAACu+I,GAAgB,CAAC7tI,UAAWkV,KAAWipG,cAExC7uH,cAAC4uH,GAAQ,CAACl+G,UAAWkV,KAAWipG,gBAGlCivB,IAAoBnmH,EAAWX,QAC7Bh3B,cAAC2lB,KAAM,CACL1U,QAAQ,WACRyU,QAASm4H,EACTntI,UAAWkV,KAAWC,sBAAsB1mB,SAC7C,eAIJA,EACDa,cAACqmB,KAAU,CACTX,QAASw+C,EACTj8C,SAAU21H,EAAc,IAAMxlF,EAAWj5D,SAExCy+I,EAAc,IAAMxlF,EAAap4D,cAACu+I,GAAgB,IAAMv+I,cAAC4uH,GAAQ,SAGtEn+G,eAACu7B,GAAM,CACLpzB,KAAMqlI,EACNtzH,QAASqzH,EACTxtI,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,sDAI3Ba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASs4H,IAEXh+I,cAACssC,GAAY,CAAC7iC,KAAMvG,EAAUC,QAAQQ,IAAK+hB,QAASk9C,UAIxDnyD,eAACu7B,GAAM,CACLpzB,KAAMwlI,EACNzzH,QAASwzH,EACT3tI,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,2GAK3Ba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,4DAI3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASy4H,IAEXn+I,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IAAM6R,EAAQ93B,KAAK,+BAIjC,ECzJP,SAAS,KAAiS,OAApR,GAAWvB,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASooI,GAASt/I,EAAMyX,GACtB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,ocACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiB0nI,IAClC,ICaAC,OAxB0Cv/I,IAGlD,IAHmD,gBACxD2+I,EAAe,gBACfC,GAAkB,GACnB5+I,EAEC,OADmBw3B,KACDM,QAAY8mH,EAC5B99I,cAAC8Y,KAAG,CAAC+P,UAAU,SAASglB,GAAI,EAAGniB,GAAI,EAAEvsB,SACnCsR,eAACixB,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QAASm4H,EACT5sI,QAAQ,QACR6E,UAAU,SACVpF,UAAWkV,KAAW84H,SAASv/I,SAAA,CAE/Ba,cAAC2+I,GAAS,CAACjuI,UAAWkV,KAAWg5H,WAAY,kBAKjD5+I,cAAAyV,WAAA,GACD,E,qBC2dYopI,OApd8BA,KAAO,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACjD,MAAM,gBAAEzjI,GAAoByhB,MACtB,QAAE69G,GAAYD,MAElBv9H,OAAO,mBACLu2C,EAAkB,iBAClBC,EAAgB,QAChBxf,EAAO,YACP4jB,EAAW,WACXF,EAAU,MACVL,EACArjB,SAAW1rC,OAAQs2I,GAAe,QAClC7yH,GACD,SACDy3C,EAAQ,aACRF,EAAY,cACZpB,EAAa,eACbe,EAAc,YACdc,EAAW,YACXR,GACEwB,MAEE,YAAEp0D,GAAgBmD,IAClB+qI,EAAmBluI,EAAY2D,SACnC+Y,GAAgB0C,gCAGXhM,EAAQ+wG,GAAa/jH,mBAK1B8tI,EAAmBjC,GAAkCF,KACjD,qBAAEnB,EAAoB,oBAAEI,GAAwBhB,GAAmB,CACvEE,mBAAkD,QAAhCuD,EAAa,OAAXxmF,QAAW,IAAXA,GAAiB,QAANymF,EAAXzmF,EAAayI,YAAI,IAAAg+E,OAAN,EAAXA,EAAmB/9E,mBAAW,IAAA89E,IAAI,GACtDxD,oBAAqB3qI,KAAOqiF,WAC5B0D,oBAAqB/lF,KAAOsiF,OAC5BvrE,UAAWwzH,EACXM,WAA6B,QAAnBwD,EAAa,OAAX1mF,QAAW,IAAXA,OAAW,EAAXA,EAAaxB,YAAI,IAAAkoF,IAAI,IAG7BQ,EACJtE,IACW,OAAX5iF,QAAW,IAAXA,GAAiB,QAAN2mF,EAAX3mF,EAAayI,YAAI,IAAAk+E,OAAN,EAAXA,EAAmBj2I,UAAWktD,GAAcupF,YACjC,OAAXnnF,QAAW,IAAXA,GAAiB,QAAN4mF,EAAX5mF,EAAayI,YAAI,IAAAm+E,OAAN,EAAXA,EAAmBl2I,UAAWktD,GAAcwpF,UACxCC,GACmC,QAAvCR,EAAY,OAAX7mF,QAAW,IAAXA,GAAiB,QAAN8mF,EAAX9mF,EAAayI,YAAI,IAAAq+E,GAAa,QAAbC,EAAjBD,EAAmBp+E,mBAAW,IAAAq+E,OAAnB,EAAXA,EAAgC1hJ,cAAM,IAAAwhJ,IAAI,KAC3C9C,IAAsB1+I,QAElB,WAAEy2D,GAAeJ,GACrBC,EACAC,EACAxf,EAAQyf,oBAGJtpC,EAAOC,aAAoB,CAC/BG,KAAM,WACNF,SAAUC,aAAYvG,KAElBkT,EAAajB,MACb,WAAEvd,GAAeQ,KAEvB7G,qBAAU,KACU,IAAD8sI,EAAAC,EAAbvnF,GACFA,EAAYoL,QAAU,EAEhB8xD,EADFgqB,EACYhC,GACAD,IACZ/nB,EACE+pB,EAAmBjC,GAAkCF,IAE3DvyH,EAAKu6B,MAAM,CACT22C,KAAMzjC,EAAYyjC,KAClBshD,SAAU/kF,EAAY+kF,SACtBvhD,QAASxjC,EAAYwjC,QACrBshB,QAA4B,QAArBwiC,EAAEtnF,EAAY8kD,eAAO,IAAAwiC,IAAI,KAChCzmB,SAA8B,QAAtB0mB,EAAEvnF,EAAY6gE,gBAAQ,IAAA0mB,IAAI,KAClCzmB,cAAe9gE,EAAY8gE,cAC3B7iC,gBAAiBj+B,EAAYi+B,gBAC7BvtF,OAAQsvD,EAAYyI,KAAK/3D,OACzBumF,eAAgBj3B,EAAYi3B,eAC5BE,gBAAiBn3B,EAAYm3B,gBAC7BC,wBAAyBp3B,EAAYo3B,wBACrCC,oBAAqBr3B,EAAYq3B,oBACjCC,mBAAoBt3B,EAAYs3B,mBAChCC,eAAgBv3B,EAAYu3B,eAC5Bn9E,YAAa0hD,EAAW1+C,KAAKkH,GAC3BA,EAAElK,YACE,IAAI3U,KAAK+uC,KAAOlwB,EAAElK,aAAak9B,OAAO,eACtC,IAAI7xC,KAAK,oBAIjBy3H,EACE+pB,EAAmBjC,GAAkCF,IAEvD54B,IACF,GACC,CAAClsD,EAAalE,IAEjB,MAAMowD,EAAYA,IAChB35F,EAAKu6B,MAAM,CACT22C,UAAMv/F,EACN6gJ,cAAU7gJ,EACVs/F,aAASt/F,EACT4gH,QAAS,KACT+b,SAAU,KACVC,mBAAe58H,EACf+5F,qBAAiB/5F,EACjBguE,WAAOhuE,EACPwM,OAAQktD,GAAc6/D,QACtBxmC,gBAAgB,EAChBE,iBAAiB,EACjBC,yBAAyB,EACzBC,qBAAqB,EACrBC,oBAAoB,EACpBC,gBAAgB,EAChBn9E,YAAa0hD,EAAW1+C,KAAKkH,GAC3BA,EAAElK,YACE,IAAI3U,KAAK+uC,KAAOlwB,EAAElK,aAAak9B,OAAO,eACtC,IAAI7xC,KAAK,kBAIb+hJ,EAAyBA,CAC7BzoF,EACAiB,IAEIA,GAAeA,EAAYoL,QAAU,EAChC87E,EACH,IACKlnF,EACH8kD,QAAS/lD,EAAM+lD,QACf+b,SAAU9hE,EAAM8hE,SAChBC,cAAe/hE,EAAM+hE,eAEvB9gE,EAEGjB,EA6BL0oF,EAAmBA,CACvB1oF,EACA2oF,KACmB,IAADC,EAAAC,EAClB,MAAO,IACFF,EACHh3I,OAAoB,QAAdi3I,EAAE5oF,EAAMruD,cAAM,IAAAi3I,IAAI/pF,GAAc6/D,QACtCl5H,KAAgB,QAAZqjJ,EAAM,OAAJF,QAAI,IAAJA,OAAI,EAAJA,EAAMnjJ,YAAI,IAAAqjJ,IAAI,QACpBv4E,QAAStQ,EAAMmT,MAAQnT,EAAMmT,MAAMjuE,MAAY,OAAJyjJ,QAAI,IAAJA,OAAI,EAAJA,EAAMr4E,QACjD1sD,SAAUklI,EAAmB9oF,EAAO2oF,GACpCh/E,YAAaq7E,IACd,EAGG8D,EAAqBA,CAACt1H,EAAkBm1H,KAC5C,MAAMplF,EAAQwlF,EAAkBv1H,GAChC,OAAQ,OAAJm1H,QAAI,IAAJA,KAAM/kI,SACD2/C,EAAQ,IAAIolF,EAAK/kI,SAAU2/C,GAASolF,EAAK/kI,SAG3C2/C,EAAQ,CAACA,GAAS,EAAE,EAGvBwlF,EAAqBv1H,GACzBA,EAAK8mG,cAAgB9mG,EAAK8mG,aAAarkF,OAAO3vC,OAAS,EACnD,CAAEkiD,QAASh1B,EAAK8mG,mBAChBn1H,EAEA6jJ,EAAex1H,EAAK05F,MAAM,UAAW,IAAIxmH,MAE/C+U,qBAAU,KACJutI,GACFx1H,EAAKyiF,QAAQ,UACf,GACC,CAAC+yC,IAEJ,MAAMC,EAAY5mI,mBAChB,IACEjJ,eAAAgF,WAAA,CAAAtW,SAAA,CACG0rB,GACCupC,GACAA,EAAW1+C,KAAI,CAAC3C,EAAGlV,IACjBmC,cAAA,SAEE5B,KAAI,eAAAiC,OAAiBxC,EAAK,KAC1BhB,KAAK,SACLma,IAAK6T,EAAKsB,YAHLtuB,KAMXmC,cAAC8tH,KAAK,CAACtjG,SAAS,UAASrrB,SAAC,2GAC1Ba,cAAA,SACAyQ,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAACmnB,GAAS,CACR/oB,KAAK,OACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACThf,YAAY,SACZsgB,WAAYqwC,GAAeA,EAAYoL,QAAU,EACjDx8C,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAO8uF,KACrB3vE,WAAYvB,EAAK5d,OAAO8uF,KAAOlxE,EAAK5d,OAAO8uF,KAAKv8F,QAAU,SAIhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAAC8+E,GAAM,CACL+B,qBACE,uDAEF35D,aAAc,GACd9oB,KAAK,WACL6pB,WAAYqwC,GAAeA,EAAYoL,QAAU,EACjD58C,QAAS+D,EAAK/D,QACdiB,QAASg1H,GAASrnI,KAAK7Y,IAAI,CACzBN,MAAOM,EACP2pB,MAAO3pB,MAET8K,YAAY,SACZ/F,QAASipB,EAAK5d,OAAOowI,SACrBn1H,aACE2C,EAAK5d,OAAOowI,SAAWxyH,EAAK5d,OAAOowI,SAAS79I,QAAU,YAMhEQ,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,8BAA6BrnB,SAC9Ca,cAACmnB,GAAS,CACR/oB,KAAK,UACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACP6U,WAAYqwC,GAAeA,EAAYoL,QAAU,EACjDzyD,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACThf,YAAY,oBACZuf,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAO6uF,QACrB1vE,WACEvB,EAAK5d,OAAO6uF,QAAUjxE,EAAK5d,OAAO6uF,QAAQt8F,QAAU,WAM9DiR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAAC4lF,GAAU,CACT5/E,QACEqL,EAAY2D,SACV+Y,GAAgB0C,gCACb+uH,EACD,KACA,IAAIzhJ,KAEVgpF,gBAAc,EACdC,QAAM,EACN5oF,KAAK,UACL8oB,aAAc,KACdvf,YAAamlC,OAAS8C,OAAO,cAC7B3nB,WACIqwC,GAAeA,EAAYoL,QAAU,IAAM87E,EAE/C14H,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAOmwG,QACrBhxF,WACEvB,EAAK5d,OAAOmwG,QAAUvyF,EAAK5d,OAAOmwG,QAAQ59G,QAAU,SAK5DQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAAC4lF,GAAU,CACT5/E,QAASq6I,EACTt5D,gBAAc,EACdC,QAAM,EACN5oF,KAAK,WACL8oB,aAAc,KACde,WACIqwC,GAAeA,EAAYoL,QAAU,IAAM87E,EAE/C73I,YAAamlC,OAASyG,IAAI,EAAG,QAAQ3D,OAAO,cAC5C9oB,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAOksH,SACrB/sG,WACEvB,EAAK5d,OAAOksH,SAAWtuG,EAAK5d,OAAOksH,SAAS35H,QAAU,YAMhEiR,eAACmb,KAAI,CACHhb,WAAS,EACTF,UAAW2mG,KAAUzb,kBACrBzoF,WAAW,SAAQhU,SAAA,CAEnBa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,6BAA4BrnB,SAC7Ca,cAACmnB,GAAS,CACR/oB,KAAK,gBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACThf,YAAY,MACZsgB,WACIqwC,GAAeA,EAAYoL,QAAU,IAAM87E,EAE/Ct4H,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAOmsH,cACrBhtG,WACEvB,EAAK5d,OAAOmsH,cACRvuG,EAAK5d,OAAOmsH,cAAc55H,QAC1B,SAKZQ,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAG+uE,GAAI,EAAEt7F,SAChBa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRmD,MAAM,UACNsR,QAASA,IACPjlB,OAAOmY,KACLgD,EAAgB1Y,EAAUgF,SAASG,uBACnC,UAEHlJ,SACF,4CAOTa,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,UAAUE,YAAY,EAAKvnB,SAC5Ca,cAACmnB,GAAS,CACR/oB,KAAK,kBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXC,KAAK,IACL3F,WAAS,EACThf,YAAY,qIACZuf,kBAAc1qB,EACdyrB,WAAYqwC,GAAeA,EAAYoL,QAAU,IAAMw3E,EACvDt5I,QAASipB,EAAK5d,OAAOspF,gBACrBnqE,WACEvB,EAAK5d,OAAOspF,gBACR1rE,EAAK5d,OAAOspF,gBAAgB/2F,QAC5B,WAOb8/I,IAAkBrpF,GAAkByuD,UACnCj0G,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACy2B,KAAO,CAACxlB,QAAQ,WACjBR,eAACqI,KAAG,CAACuhB,UAAW,EAAEl7B,SAAA,CAChBa,cAACwwH,GAAS,CACR3lG,KAAMA,EACNk2C,KAAiB,OAAXzI,QAAW,IAAXA,OAAW,EAAXA,EAAayI,KACnBr5C,UAAWwzH,EACXtqB,SAAS,IAEX5wH,cAACi8I,EAAoB,cAM/B,CAAC3jF,EAAaztC,EAAMupC,IAGtB,OACE3jD,eAACqI,KAAG,CAAC2hF,GAAI9iE,EAAWX,OAAS,EAAI,EAAE73B,SAAA,CACjCsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cA9RCgsC,IAAuB,IAADkpF,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC1C,MAAMC,EAAa,CACjBv9E,QAA6B,QAAtB68E,EAAa,OAAXjoF,QAAW,IAAXA,OAAW,EAAXA,EAAaoL,eAAO,IAAA68E,IAAI,EACjCtsG,cAAyC,QAA5BusG,EAAa,OAAXloF,QAAW,IAAXA,OAAW,EAAXA,EAAarkB,qBAAa,IAAAusG,IAAI,EAC7Cz2E,OAA2B,QAArB02E,EAAa,OAAXnoF,QAAW,IAAXA,OAAW,EAAXA,EAAayR,cAAM,IAAA02E,IAAI,KAC5BX,EAAuBzoF,EAAOiB,GACjCi3B,eAAqC,QAAvBmxD,EAAO,OAALrpF,QAAK,IAALA,OAAK,EAALA,EAAOk4B,sBAAc,IAAAmxD,KACrCjxD,gBAAuC,QAAxBkxD,EAAO,OAALtpF,QAAK,IAALA,OAAK,EAALA,EAAOo4B,uBAAe,IAAAkxD,KACvCjxD,wBAAuD,QAAhCkxD,EAAO,OAALvpF,QAAK,IAALA,OAAK,EAALA,EAAOq4B,+BAAuB,IAAAkxD,KACvDjxD,oBAA+C,QAA5BkxD,EAAO,OAALxpF,QAAK,IAALA,OAAK,EAALA,EAAOs4B,2BAAmB,IAAAkxD,KAC/CjxD,mBAA6C,QAA3BkxD,EAAO,OAALzpF,QAAK,IAALA,OAAK,EAALA,EAAOu4B,0BAAkB,IAAAkxD,KAC7CjxD,eAAqC,QAAvBkxD,EAAO,OAAL1pF,QAAK,IAALA,OAAK,EAALA,EAAOw4B,sBAAc,IAAAkxD,KACrCxqD,gBAAiBl/B,EAAMk/B,gBACvBz/B,KAAuB,QAAnBkqF,EAAa,OAAX1oF,QAAW,IAAXA,OAAW,EAAXA,EAAaxB,YAAI,IAAAkqF,IAAI,EAC3BjgF,KAAMg/E,EAAiB1oF,EAAkB,OAAXiB,QAAW,IAAXA,OAAW,EAAXA,EAAayI,OAE7C0D,EAAYw8E,GACZz8B,IACArrG,EACE,qDACAlB,GAAYE,SAEd8rD,GAAa,IAyQTz4C,YAAU,EAAArsB,SAAA,CAETmhJ,EAEDtgJ,cAAC29I,GAAc,CACbC,YAAa7lF,EAAMp6D,OACnBy6D,WAAYA,EACZ8L,SAAUA,EACVF,aAAcA,EACdpB,cAAeA,EACfk7E,kBAAmBxlF,EACnBulF,gBAAiBA,KACfl6E,OAAennE,EAAU,EAE3BuhJ,mBAAoBtxH,EAAQttB,SAE5Ba,cAAC2lB,KAAM,CACL1U,QAAQ,YACRP,UAAW2mG,KAAUpxF,uBACrBppB,KAAK,SACLorB,UACG4C,EAAK2B,UAAUE,UACd7B,EAAK2B,UAAUC,UAAYkzH,EAC9BxgJ,SAEAm5D,EAAc,eAAiB,mBAItCt4D,cAACy+I,GAAe,CACdX,kBAAmBxlF,EACnBulF,gBAAiBA,KACfl6E,OAAennE,EAAU,MAGzB,ECnfH,MAAM0kJ,GAAoB,CAC/B,UACA,eACA,YACA,SAQWC,GAAiD,CAC5D,CACE36H,MAAO,aACPjqB,MAAO,UAET,CACEiqB,MAAO,eACPjqB,MAAO,WAET,CACEiqB,MAAO,cACPjqB,MAAO,WAET,CACEiqB,MAAO,cACPjqB,MAAO,WAET,CACEiqB,MAAO,aACPjqB,MAAO,eAILygJ,GAAeA,CACnBC,EACA7yH,KAEA,IAAK6yH,EAAS,OAAO7yH,EACrB,MAAM8yH,EAAcD,EAAQ97G,QAAQovC,GAAMzjC,KAAOyjC,GAAG7jD,YAEpD,GAAIwwH,GAAeA,EAAYv/I,OAAS,EAAG,CACzC,MAAMw/I,EAAoBT,GAAWQ,EAAaX,GAAaI,KAC/D,OAAOvyH,EAAIzkB,IAAIw3I,EAAkB,GAAIj6I,EAAUqC,WAAWyB,iBAC5D,CACA,OAAOojB,CAAG,EAsBCg3H,GAAsBh3H,OAAaC,MAAM,CACpDuyF,cAAexyF,OAEZ5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD07I,QAASj3H,OAEN5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClD+1H,mBAAoBtxG,OAAa5kB,SAAStC,EAAUqC,WAAWC,UAC/D87I,eAAgBl3H,OAEb5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD47I,gBAAiBn3H,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD+M,YAAa0X,OAAYggG,GAAGhgG,OAAWolE,WAAWpqD,QAAQ,OAC1D03E,WAAY1yF,OAET5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACVkjF,KAAK,CAAC,gBAAgB,CAACwvC,EAA0B7yH,IAChD4yH,GAAaC,EAAS7yH,KAE1B6wG,YAAa7wG,OAEV5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAie,KAAK,cAAc,CAACqP,EAAyBr4F,IAC5Cq4F,EACIr4F,EAAO/e,IAAIo3G,EAAY,oCACvBr4F,IAER20G,cAAehvG,OAEZ1kB,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWmB,WAAY,iBAAkB,IACvElB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWY,eAClCowF,gBAAiBnsE,OACjBphB,OAAQohB,OACRunG,aAAcvnG,SAGHo3H,GAAgBp3H,OAAaC,MAAM,CAC9CqxG,mBAAoBtxG,OAAa5kB,SAAStC,EAAUqC,WAAWC,UAC/DkN,YAAa0X,OAAYggG,GAAGhgG,OAAWolE,WAAWpqD,QAAQ,OAC1D03E,WAAY1yF,OAET5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACVkjF,KAAK,CAAC,gBAAgB,CAACwvC,EAA0B7yH,IAChD4yH,GAAaC,EAAS7yH,KAE1B6wG,YAAa7wG,OAEV5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAie,KAAK,cAAc,CAACqP,EAAyBr4F,IAC5Cq4F,EACIr4F,EAAO/e,IAAIo3G,EAAY,uCACvBr4F,IAER8xE,gBAAiBnsE,OACjBphB,OAAQohB,OACRunG,aAAcvnG,SAGHq3H,GAAuBr3H,OAAaC,MAAM,CACrDqxG,mBAAoBtxG,OAAa5kB,SAAStC,EAAUqC,WAAWC,UAC/DkN,YAAa0X,OAAYggG,GAAGhgG,OAAWolE,WAAWpqD,QAAQ,OAC1D03E,WAAY1yF,OAET5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACVkjF,KAAK,CAAC,gBAAgB,CAACwvC,EAA0B7yH,IAChD4yH,GAAaC,EAAS7yH,KAE1B6wG,YAAa7wG,OAEV5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAie,KAAK,cAAc,CAACqP,EAAyBr4F,IAC5Cq4F,EACIr4F,EAAO/e,IAAIo3G,EAAY,uCACvBr4F,IAER8xE,gBAAiBnsE,OACjBgxG,kBAAmBhxG,OAEhB5kB,SAAStC,EAAUqC,WAAWC,UAC9BE,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWmB,WAAY,iBAAkB,IACvE6jB,UAAUrnB,EAAUqC,WAAWY,eAClCk1H,aAAcjxG,OAAa5kB,SAAStC,EAAUqC,WAAWC,UACzDwD,OAAQohB,OACRunG,aAAcvnG,SAGHs3H,GAAuBt3H,OAAaC,MAAM,CACrDqxG,mBAAoBtxG,OAAa5kB,SAAStC,EAAUqC,WAAWC,UAC/DkN,YAAa0X,OAAYggG,GAAGhgG,OAAWolE,WAAWpqD,QAAQ,OAC1D03E,WAAY1yF,OAET5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACVkjF,KAAK,CAAC,gBAAgB,CAACwvC,EAA0B7yH,IAChD4yH,GAAaC,EAAS7yH,KAE1B6wG,YAAa7wG,OAEV5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAie,KAAK,cAAc,CAACqP,EAAyBr4F,IAC5Cq4F,EACIr4F,EAAO/e,IAAIo3G,EAAY,uCACvBr4F,IAER8xE,gBAAiBnsE,OACjBgxG,kBAAmBhxG,OAEhB5kB,SAAStC,EAAUqC,WAAWC,UAC9BE,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWmB,WAAY,iBAAkB,IACvE6jB,UAAUrnB,EAAUqC,WAAWY,eAClCk1H,aAAcjxG,OAAa5kB,SAAStC,EAAUqC,WAAWC,UACzDwD,OAAQohB,OACRunG,aAAcvnG,SAGHu3H,GAAuBv3H,OAAaC,MAAM,CACrDqxG,mBAAoBtxG,OAAa5kB,SAAStC,EAAUqC,WAAWC,UAC/DkN,YAAa0X,OAAYggG,GAAGhgG,OAAWolE,WAAWpqD,QAAQ,OAC1D03E,WAAY1yF,OAET5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACVkjF,KAAK,CAAC,gBAAgB,CAACwvC,EAA0B7yH,IAChD4yH,GAAaC,EAAS7yH,KAE1B6wG,YAAa7wG,OAEV5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAie,KAAK,cAAc,CAACqP,EAAyBr4F,IAC5Cq4F,EACIr4F,EAAO/e,IAAIo3G,EAAY,uCACvBr4F,IAER+2G,WAAYpxG,OAAa5kB,SAAStC,EAAUqC,WAAWC,UACvD+wF,gBAAiBnsE,OACjBphB,OAAQohB,OACRunG,aAAcvnG,SAG4BA,OAAaC,MAAM,CAC7DksE,gBAAiBnsE,OACjBphB,OAAQohB,OACRunG,aAAcvnG,SAGmBA,OAAaC,MAAM,CACpDksE,gBAAiBnsE,OACjBphB,OAAQohB,OACRunG,aAAcvnG,OACd1X,YAAa0X,OAAYggG,GAAGhgG,OAAWolE,WAAWpqD,QAAQ,OAC1D03E,WAAY1yF,OAET5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAie,KAAK,CAAC,gBAAgB,CAACwvC,EAA0B7yH,IAChD4yH,GAAaC,EAAS7yH,KAE1B6wG,YAAa7wG,OAEV5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAie,KAAK,cAAc,CAACqP,EAAyBr4F,IAC5Cq4F,EACIr4F,EAAO/e,IAAIo3G,EAAY,oCACvBr4F,IAER20G,cAAehvG,OAEZ1kB,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWmB,WAAY,iBAAkB,IACvElB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWY,iB,eCzPpC2mC,KAAOmY,GAAG0gC,WAAW,OA0FNi8D,OAxF4D1iJ,IAepE,IAfqE,MAC1E0C,EAAK,WACLwqB,EAAU,MACVhY,EAAK,QACL0S,EAAO,KACP1oB,EAAI,MACJ7B,EAAK,aACL2qB,EAAY,UACZP,GAAY,EAAI,QAChB1V,EAAU,SAAQ,OAClBmC,EAAS,SAAQ,aACjByyE,EAAe,WAAU,OACzBj2C,EAAS,mBAAkB,QAC3B5pC,KACG+O,GACJ7V,EACC,MAAO6mF,EAAeC,GAAoBv0E,mBACxClV,GAAgB,MAGZslJ,EAAmBA,IACD,OAAlB97D,GAA2BA,EAAcr5D,WAK1C3X,EAAMkT,UACW,OAAlB89D,GACY,OAAZ//E,GACA+/E,EAAgBj5C,KAAO9mC,GAGrByK,eAAA,QAAMwC,MAAO,CAAEmB,MAAO,OAAQjV,SAAA,CAAC,6BACF2tC,KAAO9mC,GAAS4pC,OAAOA,MAKjD,KAhBE5vC,cAAA,QAAMiT,MAAO,CAAEmB,MAAO,OAAQjV,SAAC,6BAmB1C,OACEa,cAAAyV,WAAA,CAAAtW,SACEa,cAACimF,KAAuB,CAACC,YAAap5C,KAAQq5C,MAAOC,KAAYjnF,SAC/Da,cAACgqB,KAAU,CACTrV,OAAQgB,IAAA,IAAC,SAAEsU,EAAQ,OAAEmhE,EAAM,MAAE7uF,GAAOoZ,EAAA,OAClC3V,cAAC8hJ,KAAsB,CACrB7qI,GAAIlC,EAAMkC,GAAKlC,EAAMkC,GAAK7Y,EAC1B2jJ,MAAM,EACN9wI,QAASA,EACT40E,aAAcA,EACdj2C,OAAQA,EACR3lB,SAAWnf,IACTk7E,EAAiBl7E,GACjBmf,EAASnf,EAAE,EAEbsgF,OAAQA,EACR7uF,MAAOA,EACPqF,MAAOA,GAAgC,OAAvBigJ,IAChB77I,QACa,MAAXA,EACI8mC,KAAO,aAAc,oBACrB9mC,EAENsgF,eACEvxE,EAAMkT,SACJ,GAEAxX,eAAA,QAAMwC,MAAO,CAAEmB,MAAO,OAAQjV,SAAA,CAAC,6BACF2tC,KAAO9mC,GAAS4pC,OAAOA,MAIxDjoB,aAAa,MACbyE,WAAYA,GAAcy1H,IAC1Bl7H,UAAWA,KACP5R,GACJ,EAEJmS,aAAcA,EACd9oB,KAAMA,EACN0oB,QAASA,OAGZ,ECzCQk7H,OA1C8B9iJ,IActC,IAduC,KAC5Cd,EAAI,KACJvB,EAAI,aACJqqB,EAAe,GAAE,UACjBP,GAAY,EAAI,QAChB1V,EAAU,WAAU,OACpBmC,EAAS,SAAQ,QACjBs0E,EAAO,UACPr7D,EAAS,SACTpE,EAAQ,MACRrmB,EAAK,WACLwqB,EAAU,YACVzkB,EAAW,QACXmf,GACD5nB,EACC,OACEc,cAACgqB,KAAU,CACT5rB,KAAMA,EACN0oB,QAASA,EACTI,aAAcA,EACdvS,OAAQgB,IAAA,IAAC,MAAEpZ,EAAK,SAAE0tB,GAAUtU,EAAA,OAC1B3V,cAACmnB,KAAS,CACRtqB,KAAMA,EACNotB,SAAUA,EACV1tB,MAAOA,EACP6B,KAAMA,EACNgV,OAAQA,EACRnC,QAASA,EACTgX,SAAUA,EACV7T,MAAM,UACNiY,UAAWA,EACXq7D,QAASA,EACT/gE,UAAWA,EACXhf,YAAaA,EACb/F,MAAOA,EACPwqB,WAAYA,GACZ,GAEJ,ECyHS61H,OAnKKltI,IAA+B,IAADmtI,EAAApgE,EAAAqgE,EAAAC,EAAApgE,EAAAqgE,EAAAC,EAAArgE,EAAAsgE,EAAAC,EAAAtgE,EAAAugE,EAAAC,EAAAvgE,EAAAwgE,EAAAC,EAAAxgE,EAAAygE,EAChD,MAAM,SAAE56H,EAAQ,QAAEjiB,GAAY+O,EACxB8V,EAAOu/E,eACPi2C,EAAexnD,aAAe,CAClCz6F,KAAM,aACN0oB,QAAS+D,EAAK/D,UAGhB,OACErW,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,iBAAiByB,SAAUA,EAAS9oB,SACrDa,cAACgiJ,GAAmB,CAClB5jJ,KAAK,gBACLvB,KAAK,OACL8K,YAAY,OACZuf,aAAa,GACbJ,QAAS+D,EAAK/D,QACdmB,SAAUA,EACVrmB,QAASipB,EAAK5d,OAAO2vG,cACrBxwF,WAA+C,QAArC81H,EAAa,QAAbpgE,EAAEj3D,EAAK5d,cAAM,IAAA60E,GAAe,QAAfqgE,EAAXrgE,EAAa86B,qBAAa,IAAAulC,OAAf,EAAXA,EAA4B3iJ,eAAO,IAAA0iJ,IAAI,SAIzDliJ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,eAAeyB,SAAUA,EAAS9oB,SACnDa,cAACgqB,KAAU,CACT9C,aAAa,GACb9oB,KAAK,UACLuW,OAAQzV,IAAA,IAAA4jJ,EAAA/gE,EAAAghE,EAAA,IAAC,MAAExmJ,EAAK,SAAE0tB,EAAQ,KAAE7rB,GAAMc,EAAA,OAChCc,cAAC8+E,GAAM,CACL+B,qBAAqB,uDACrB35D,aAAa,GACb9oB,KAAMA,EACN7B,MAAOA,EACP0tB,SAAUA,EACVhC,SAAUA,EACVF,QAASm5H,GAAQxrI,KAAK7Y,IAAI,CACxBN,MAAOM,EACP2pB,MAAO3pB,MAET+E,QAASipB,EAAK5d,OAAOo0I,QACrBn5H,aAA2C,QAA/B46H,EAAa,QAAb/gE,EAAEl3D,EAAK5d,cAAM,IAAA80E,GAAS,QAATghE,EAAXhhE,EAAas/D,eAAO,IAAA0B,OAAT,EAAXA,EAAsBvjJ,eAAO,IAAAsjJ,IAAI,IAC/C,WAMZryI,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,mBAAmByB,SAAUA,EAAS9oB,SACvDa,cAACgiJ,GAAmB,CAClB5jJ,KAAK,iBACLvB,KAAK,OACL8K,YAAY,OACZsgB,SAAUA,EACVnB,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAOq0I,eACrBl1H,WAAgD,QAAtCg2H,EAAa,QAAbpgE,EAAEn3D,EAAK5d,cAAM,IAAA+0E,GAAgB,QAAhBqgE,EAAXrgE,EAAas/D,sBAAc,IAAAe,OAAhB,EAAXA,EAA6B7iJ,eAAO,IAAA4iJ,IAAI,SAI1DpiJ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,eAAeyB,SAAUA,EAAS9oB,SACnDa,cAAC4hJ,GAAwB,CACvB57I,QAASA,EACT+gF,gBAAc,EACdC,QAAM,EACNlgE,QAAS+D,EAAK/D,QACd1oB,KAAK,aACL8oB,aAAc,KACde,SAAUA,EACVtgB,YAAamlC,OAAS8C,OAAO,oBAC7BhuC,QAASipB,EAAK5d,OAAO6vG,WACrB1wF,WAA4C,QAAlCk2H,EAAa,QAAbrgE,EAAEp3D,EAAK5d,cAAM,IAAAg1E,GAAY,QAAZsgE,EAAXtgE,EAAa66B,kBAAU,IAAAylC,OAAZ,EAAXA,EAAyB/iJ,eAAO,IAAA8iJ,IAAI,YAKxD7xI,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,oBAAoByB,SAAUA,EAAS9oB,SACxDa,cAACgiJ,GAAmB,CAClB5jJ,KAAK,kBACL8oB,aAAa,GACbe,SAAUA,EACVprB,KAAK,OACL8K,YAAY,SACZ/F,QAASipB,EAAK5d,OAAOs0I,gBACrBn1H,WAAiD,QAAvCo2H,EAAa,QAAbtgE,EAAEr3D,EAAK5d,cAAM,IAAAi1E,GAAiB,QAAjBugE,EAAXvgE,EAAaq/D,uBAAe,IAAAkB,OAAjB,EAAXA,EAA8BjjJ,eAAO,IAAAgjJ,IAAI,GACrD17H,QAAS+D,EAAK/D,cAIpB9mB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,gBAAgByB,SAAUA,EAAS9oB,SACpDa,cAAC4hJ,GAAwB,CACvB57I,QAASq6I,EACTt5D,gBAAc,EACdjgE,QAAS+D,EAAK/D,QACd1oB,KAAK,cACL4oF,QAAM,EACN9/D,aAAc,KACde,SAAUA,EACVtgB,YAAamlC,OAASyG,IAAI,EAAG,QAAQ3D,OAAO,oBAC5ChuC,QAASipB,EAAK5d,OAAOguH,YACrB7uG,WAA6C,QAAnCs2H,EAAa,QAAbvgE,EAAEt3D,EAAK5d,cAAM,IAAAk1E,GAAa,QAAbwgE,EAAXxgE,EAAa84C,mBAAW,IAAA0nB,OAAb,EAAXA,EAA0BnjJ,eAAO,IAAAkjJ,IAAI,YAKzD1iJ,cAAC4rB,KAAI,CACHhb,WAAS,EACTF,UAAW2mG,KAAUzb,kBACrBzoF,WAAW,SAAQhU,SAEnBa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,uBAAuByB,SAAUA,EAAS9oB,SAC3Da,cAACgiJ,GAAmB,CAClB5jJ,KAAK,gBACL6pB,SAAUA,EACVprB,KAAK,SACLqqB,kBAAc1qB,EACdmL,YAAY,MACZmf,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAOmsH,cACrBhtG,WAA+C,QAArCw2H,EAAa,QAAbxgE,EAAEv3D,EAAK5d,cAAM,IAAAm1E,GAAe,QAAfygE,EAAXzgE,EAAag3C,qBAAa,IAAAypB,OAAf,EAAXA,EAA4BrjJ,eAAO,IAAAojJ,IAAI,WAK3D5iJ,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,WAAWE,YAAY,EAAKvnB,SAC7Ca,cAACmnB,KAAS,CACR/oB,KAAK,kBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXq7D,QAAQ,IACR/gE,WAAS,EACThf,YAAY,2BACZsgB,SAAUA,EACVf,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAOspF,gBACrBnqE,WACEvB,EAAK5d,OAAOspF,gBACR1rE,EAAK5d,OAAOspF,gBAAgB/2F,QAC5B,aAMb,EClFQwjJ,OA/EMjuI,IAA+B,IAADkuI,EAAAnhE,EACjD,MAAM,SAAE75D,EAAQ,QAAEjiB,GAAY+O,EACxB8V,EAAOu/E,eACPi2C,EAAqBx1H,EAAK05F,MAAM,aAAc,IAAIxmH,MAExD,OACE0S,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,GAAIoK,GAAI,GAAIjmB,UAAU,OAAMvR,SACzCa,cAAC8tH,KAAK,CAACtjG,SAAS,OAAO9Z,UAAU,aAAYvR,SAAC,2FAMlDsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,eAAcrnB,SAC/Ba,cAAC4hJ,GAAwB,CACvB57I,QAASA,EACT+gF,gBAAc,EACdC,QAAM,EACN5oF,KAAK,aACL8oB,aAAc,KACde,SAAUA,EACVtgB,YAAamlC,OAAS8C,OAAO,oBAC7B9oB,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAO6vG,WACrB1wF,WACEvB,EAAK5d,OAAO6vG,WAAajyF,EAAK5d,OAAO6vG,WAAWt9G,QAAU,SAKlEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,gBAAernB,SAChCa,cAAC4hJ,GAAwB,CACvB57I,QAASq6I,EACTt5D,gBAAc,EACdC,QAAM,EACN5oF,KAAK,cACL8oB,aAAc,KACde,SAAUA,EACVtgB,YAAamlC,OAASyG,IAAI,EAAG,QAAQ3D,OAAO,oBAC5C9oB,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAOguH,YACrB7uG,WACEvB,EAAK5d,OAAOguH,YAAcpwG,EAAK5d,OAAOguH,YAAYz7H,QAAU,YAMtEQ,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,uBAAuBE,YAAY,EAAKvnB,SACzDa,cAACmnB,KAAS,CACR/oB,KAAK,kBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXq7D,QAAQ,IACR/gE,WAAS,EACThf,YAAY,2BACZsgB,SAAUA,EACVf,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAOspF,gBACrBnqE,WAAwC,QAA9B62H,EAAa,QAAbnhE,EAAEj3D,EAAK5d,cAAM,IAAA60E,OAAA,EAAXA,EAAayU,uBAAe,IAAA0sD,IAAI,aAKnD,ECyCQC,OAlHSnuI,IAA+B,IAAD2tI,EAAA5gE,EAAAqhE,EAAAP,EAAA7gE,EAAAqhE,EACpD,MAAM,SAAEn7H,EAAQ,QAAEjiB,GAAY+O,EACxB8V,EAAOu/E,eACPi2C,EAAqBx1H,EAAK05F,MAAM,aAAc,IAAIxmH,MAExD,OACE0S,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,GAAIoK,GAAI,GAAIjmB,UAAU,OAAMvR,SACzCa,cAAC8tH,KAAK,CAACtjG,SAAS,OAAO9Z,UAAU,aAAYvR,SAAC,sCAIhDsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,aAAYrnB,SAC7Ba,cAAC4hJ,GAAwB,CACvB57I,QAASA,EACT+gF,gBAAc,EACdC,QAAM,EACN5oF,KAAK,aACL8oB,aAAc,KACde,SAAUA,EACVtgB,YAAamlC,OAAS8C,OAAO,oBAC7B9oB,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAO6vG,WACrB1wF,WACEvB,EAAK5d,OAAO6vG,WAAajyF,EAAK5d,OAAO6vG,WAAWt9G,QAAU,SAKlEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAAC4hJ,GAAwB,CACvB57I,QAASq6I,EACTt5D,gBAAc,EACdC,QAAM,EACN5oF,KAAK,cACL8oB,aAAc,KACde,SAAUA,EACVtgB,YAAamlC,OAASyG,IAAI,EAAG,QAAQ3D,OAAO,oBAC5C9oB,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAOguH,YACrB7uG,WAA6C,QAAnCs2H,EAAa,QAAb5gE,EAAEj3D,EAAK5d,cAAM,IAAA60E,GAAa,QAAbqhE,EAAXrhE,EAAam5C,mBAAW,IAAAkoB,OAAb,EAAXA,EAA0B3jJ,eAAO,IAAAkjJ,IAAI,YAKzDjyI,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,qBAAoBrnB,SACrCa,cAACgiJ,GAAmB,CAClB5jJ,KAAK,oBACLvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRgX,SAAUA,EACVtB,WAAS,EACTG,QAAS+D,EAAK/D,QACdnf,YAAY,MACZuf,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAOmuH,kBACrBhvG,WAAmD,QAAzCw2H,EAAa,QAAb7gE,EAAEl3D,EAAK5d,cAAM,IAAA80E,GAAmB,QAAnBqhE,EAAXrhE,EAAaq5C,yBAAiB,IAAAgoB,OAAnB,EAAXA,EAAgC5jJ,eAAO,IAAAojJ,IAAI,SAI7D5iJ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAAC8Y,KAAG,CAAA3Z,SACFa,cAAC8nB,GAAa,CACZ1pB,KAAM,eACNxB,KAAK,QACLmrB,QAAS,CACP,CAAEvB,MAAO,KAAMjqB,MAAO,MACtB,CAAEiqB,MAAO,OAAQjqB,MAAO,OAE1B0rB,SAAUA,EACVf,aAAa,KACbJ,QAAS+D,EAAK/D,mBAMxB9mB,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,WAAWE,YAAY,EAAKvnB,SAC7Ca,cAACmnB,KAAS,CACR/oB,KAAK,kBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXq7D,QAAQ,IACR/gE,WAAS,EACThf,YAAY,2BACZsgB,SAAUA,EACVf,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAOspF,gBACrBnqE,WACEvB,EAAK5d,OAAOspF,gBACR1rE,EAAK5d,OAAOspF,gBAAgB/2F,QAC5B,aAMb,ECMQ6jJ,OApHStuI,IAA+B,IAAD6tI,EAAA9gE,EACpD,MAAM,SAAE75D,EAAQ,QAAEjiB,GAAY+O,EACxB8V,EAAOu/E,eACPi2C,EAAqBx1H,EAAK05F,MAAM,aAAc,IAAIxmH,MAExD,OACE0S,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,GAAIoK,GAAI,GAAIjmB,UAAU,OAAMvR,SACzCa,cAAC8tH,KAAK,CAACtjG,SAAS,OAAO9Z,UAAU,aAAYvR,SAAC,sCAIhDsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,aAAayB,SAAUA,EAAS9oB,SACjDa,cAAC4hJ,GAAwB,CACvB57I,QAASA,EACT+gF,gBAAc,EACdC,QAAM,EACN5oF,KAAK,aACL8oB,aAAc,KACde,SAAUA,EACVtgB,YAAamlC,OAAS8C,OAAO,oBAC7B9oB,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAO6vG,WACrB1wF,WACEvB,EAAK5d,OAAO6vG,WAAajyF,EAAK5d,OAAO6vG,WAAWt9G,QAAU,SAKlEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,WAAWyB,SAAUA,EAAS9oB,SAC/Ca,cAAC4hJ,GAAwB,CACvB57I,QAASq6I,EACTt5D,gBAAc,EACdC,QAAM,EACN5oF,KAAK,cACL8oB,aAAc,KACde,SAAUA,EACVtgB,YAAamlC,OAASyG,IAAI,EAAG,QAAQ3D,OAAO,oBAC5C9oB,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAOguH,YACrB7uG,WACEvB,EAAK5d,OAAOguH,YAAcpwG,EAAK5d,OAAOguH,YAAYz7H,QAAU,YAMtEiR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,qBAAqByB,SAAUA,EAAS9oB,SACzDa,cAACgiJ,GAAmB,CAClB5jJ,KAAK,oBACLvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACR6V,QAAS+D,EAAK/D,QACdmB,SAAUA,EACVtB,WAAS,EACThf,YAAY,MACZuf,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAOmuH,kBACrBhvG,WAA0C,QAAhCw2H,EAAa,QAAb9gE,EAAEj3D,EAAK5d,cAAM,IAAA60E,OAAA,EAAXA,EAAas5C,yBAAiB,IAAAwnB,IAAI,SAIpD5iJ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAOyB,SAAUA,EAAS9oB,SAC3Ca,cAAC8Y,KAAG,CAAA3Z,SACFa,cAAC8nB,GAAa,CACZ1pB,KAAK,eACLxB,KAAK,QACLqrB,SAAUA,EACVF,QAAS,CACP,CAAEvB,MAAO,KAAMjqB,MAAO,MACtB,CAAEiqB,MAAO,OAAQjqB,MAAO,OAE1B2qB,aAAc,KACdJ,QAAS+D,EAAK/D,mBAMxB9mB,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,WAAWE,YAAY,EAAKvnB,SAC7Ca,cAACmnB,KAAS,CACR/oB,KAAK,kBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXq7D,QAAQ,IACR/gE,WAAS,EACThf,YAAY,2BACZsgB,SAAUA,EACVf,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAOspF,gBACrBnqE,WACEvB,EAAK5d,OAAOspF,gBACR1rE,EAAK5d,OAAOspF,gBAAgB/2F,QAC5B,aAMb,EClBQ8jJ,OAhGSvuI,IACtB,MAAM,SAAEkT,EAAQ,QAAEjiB,GAAY+O,EACxB8V,EAAOu/E,eACPi2C,EAAqBx1H,EAAK05F,MAAM,aAAc,IAAIxmH,MAExD,OACE0S,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,aAAayB,SAAUA,EAAS9oB,SACjDa,cAAC4hJ,GAAwB,CACvB57I,QAASA,EACT+gF,gBAAc,EACdC,QAAM,EACN5oF,KAAK,aACL8oB,aAAc,KACde,SAAUA,EACVtgB,YAAamlC,OAAS8C,OAAO,oBAC7B9oB,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAO6vG,WACrB1wF,WACEvB,EAAK5d,OAAO6vG,WAAajyF,EAAK5d,OAAO6vG,WAAWt9G,QAAU,SAKlEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,WAAWyB,SAAUA,EAAS9oB,SAC/Ca,cAAC4hJ,GAAwB,CACvB57I,QAASq6I,EACTt5D,gBAAc,EACdC,QAAM,EACN5oF,KAAK,cACL8oB,aAAc,KACde,SAAUA,EACVtgB,YAAamlC,OAASyG,IAAI,EAAG,QAAQ3D,OAAO,oBAC5C9oB,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAOguH,YACrB7uG,WACEvB,EAAK5d,OAAOguH,YAAcpwG,EAAK5d,OAAOguH,YAAYz7H,QAAU,YAMtEQ,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,iBAAiByB,SAAUA,EAAS9oB,SACrDa,cAACgiJ,GAAmB,CAClB5jJ,KAAK,aACLvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACR6V,QAAS+D,EAAK/D,QACdH,WAAS,EACTsB,SAAUA,EACVtgB,YAAY,WACZuf,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAOuuH,WACrBpvG,WACEvB,EAAK5d,OAAOuuH,WAAa3wG,EAAK5d,OAAOuuH,WAAWh8H,QAAU,WAMpEQ,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,WAAWE,YAAY,EAAKvnB,SAC7Ca,cAACmnB,KAAS,CACR/oB,KAAK,kBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXq7D,QAAQ,IACR/gE,WAAS,EACThf,YAAY,2BACZsgB,SAAUA,EACVf,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAOspF,gBACrBnqE,WACEvB,EAAK5d,OAAOspF,gBACR1rE,EAAK5d,OAAOspF,gBAAgB/2F,QAC5B,aAMb,EClGQ+jJ,OAPcA,CAC3BrI,EACAsI,EACAC,IAEOvI,KAAauI,GAAcD,GC2WrBE,I,GAAAA,GAnU0BA,KAAO,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAC7C,MACErmI,OAAO,mBACLu2C,EAAkB,iBAClBC,EAAgB,QAChBxf,EAAO,UACP2jB,EAAS,WACTD,EAAU,MACVL,EACArjB,SAAW1rC,OAAQs2I,GAAe,QAClC7yH,GACD,SACDy3C,EAAQ,aACRF,EAAY,cACZpB,EAAa,aACbiB,EAAY,UACZc,EAAS,YACTV,GACEwB,MACE,QAAEy1E,GAAYD,KACdtjH,EAAajB,MACb,WAAEvd,GAAeQ,MACjB,YAAEtI,GAAgBmD,IAClB+qI,EAAmBluI,EAAY2D,SACnC+Y,GAAgB0C,gCAEXhM,EAAQ+wG,GAAa/jH,mBAK1B2vI,IAEIv2H,EAAOC,aAAkB,CAC7BG,KAAM,WACN4pE,cAAe,CACb6mC,wBAAoBl/H,EACpBogH,mBAAepgH,EACf6kJ,aAAS7kJ,EACT8kJ,oBAAgB9kJ,EAChBsgH,WAAY,KACZykC,qBAAiB/kJ,EACjBy+H,YAAa,KACb7B,mBAAe58H,EACf+5F,qBAAiB/5F,EACjB4+H,uBAAmB5+H,EACnB6+H,kBAAc7+H,EACdg/H,gBAAYh/H,EACZwM,OAAQktD,GAAc6/D,QACtBrjH,YAAa,IAEfqY,SAAUC,aAAYvG,KAGlBu/H,EAAuBn5H,EAAK05F,MAAM,sBAClCi/B,OAAuBhnJ,IAAd67D,GAAyC,OAAdA,EACpCorF,EAAanE,IAAkBrpF,GAAkByuD,SACjDu/B,EAAkBV,GAAcrI,EAASsI,EAAQC,GACjDz9I,EAAUu5I,EAAmB,KAAO,IAAIxhJ,KAExCmmJ,EAAaA,KACjB,OAAQF,GACN,IAAK,SACH,OAAOhkJ,cAACiiJ,GAAU,CAACh6H,UAAWg8H,EAAiBj+I,QAASA,IAC1D,IAAK,UACH,OAAOhG,cAACgjJ,GAAW,CAAC/6H,UAAWg8H,EAAiBj+I,QAASA,IAC3D,IAAK,UACH,OAAOhG,cAACkjJ,GAAc,CAACj7H,UAAWg8H,EAAiBj+I,QAASA,IAC9D,IAAK,UACH,OAAOhG,cAACqjJ,GAAc,CAACp7H,UAAWg8H,EAAiBj+I,QAASA,IAC9D,IAAK,aACH,OAAOhG,cAACsjJ,GAAc,CAACr7H,UAAWg8H,EAAiBj+I,QAASA,IAC9D,QACE,OAAOhG,cAAAyV,WAAA,IACX,EAGF3C,qBAAU,KACR,OAAQkxI,GACN,IAAK,SACHxuB,EAAU4rB,IACV,MACF,IAAK,UACH5rB,EAAUgsB,IACV,MACF,IAAK,UACHhsB,EAAUisB,IACV,MACF,IAAK,UACHjsB,EAAUksB,IACV,MACF,IAAK,aACHlsB,EAAUmsB,IACV,MACF,QACEn9B,IAEJ,GACC,CAACw/B,IAEJ,MAAM,qBAAE/H,EAAoB,oBAAEI,EAAmB,kBAAEC,GAAsBjB,GAAmB,CAC1FE,mBAAgD,QAA9BoI,EAAW,OAATtrF,QAAS,IAATA,GAAe,QAANurF,EAATvrF,EAAW0I,YAAI,IAAA6iF,OAAN,EAATA,EAAiB5iF,mBAAW,IAAA2iF,IAAI,GACpDrI,oBAAqB3qI,KAAOqiF,WAC5B0D,oBAAqB/lF,KAAOsiF,OAC5BvrE,UAAWwzH,EACXM,WAA2B,QAAjBqI,EAAW,OAATxrF,QAAS,IAATA,OAAS,EAATA,EAAWvB,YAAI,IAAA+sF,IAAI,KAG3B,WAAEzvF,GAAeJ,GACrBC,EACAC,EACAxf,EAAQyf,oBAGJqrF,EACJtE,IACU,OAAT7iF,QAAS,IAATA,GAAe,QAANyrF,EAATzrF,EAAW0I,YAAI,IAAA+iF,OAAN,EAATA,EAAiB96I,UAAWktD,GAAcupF,YAChC,OAATpnF,QAAS,IAATA,GAAe,QAAN0rF,EAAT1rF,EAAW0I,YAAI,IAAAgjF,OAAN,EAATA,EAAiB/6I,UAAWktD,GAAcwpF,UAE9C5sI,qBAAU,KACQ,IAADqxI,EAAAC,EAAX/rF,GACFxtC,EAAKu6B,MAAM,CACTs2E,mBAAoBrjE,EAAUqjE,mBAC9B9e,cAAevkD,EAAUukD,cACzBykC,QAAShpF,EAAUgpF,QACnBC,eAAgBjpF,EAAUipF,eAC1BxkC,WAAgC,QAAtBqnC,EAAE9rF,EAAUykD,kBAAU,IAAAqnC,IAAI,KACpC5C,gBAAiBlpF,EAAUkpF,gBAC3BtmB,YAAkC,QAAvBmpB,EAAE/rF,EAAU4iE,mBAAW,IAAAmpB,IAAI,KACtChrB,cAAe/gE,EAAU+gE,cACzB7iC,gBAAiBl+B,EAAUk+B,gBAC3BvtF,OAAQqvD,EAAU0I,KAAK/3D,OACvBoyH,kBAAmB/iE,EAAU+iE,kBAC7BI,WAAYnjE,EAAUmjE,WACtBH,aAAchjE,EAAUgjE,aACxB3oH,YAAa0hD,EAAW1+C,KAAKkH,GAC3BA,EAAElK,YACE,IAAI3U,KAAK+uC,KAAOlwB,EAAElK,aAAak9B,OAAO,eACtC,IAAI7xC,KAAK,kBAGjB8sB,EAAKyiF,WAELkX,GACF,GACC,CAACnsD,EAAWjE,IAEf,MAAMowD,EAAYA,KAChB35F,EAAKu6B,MAAM,CACTs2E,mBAAoBsoB,EACpBpnC,mBAAepgH,EACf6kJ,aAAS7kJ,EACT8kJ,oBAAgB9kJ,EAChBsgH,WAAY,KACZykC,qBAAiB/kJ,EACjBy+H,YAAa,KACb7B,mBAAe58H,EACf+5F,qBAAiB/5F,EACjB4+H,uBAAmB5+H,EACnB6+H,kBAAc7+H,EACdg/H,gBAAYh/H,EACZwM,OAAQktD,GAAc6/D,QACtBrjH,YAAa0hD,EAAW1+C,KAAK4yF,GAC3BA,EAAU51F,YACN,IAAI3U,KAAK+uC,KAAOw7D,EAAU51F,aAAak9B,OAAO,eAC9C,IAAI7xC,KAAK,kBAGjB8sB,EAAKw5H,aAAa,EAGdC,EAAuBA,CAAChtF,EAAee,IACvCA,GAAaA,EAAUuL,MAAQ,EAC1B47E,EAAa,IAAKnnF,KAAcf,GAAQe,EAExCf,EAuBLyoF,EAAmBA,CACvBzoF,EACA0oF,KACmB,IAADuE,EAAArE,EAClB,MAAO,IACFF,EACHh3I,OAAkB,QAAZu7I,EAAEjtF,EAAItuD,cAAM,IAAAu7I,IAAIruF,GAAc6/D,QACpCl5H,KAAgB,QAAZqjJ,EAAM,OAAJF,QAAI,IAAJA,OAAI,EAAJA,EAAMnjJ,YAAI,IAAAqjJ,IAAI,MACpBv4E,QAASrQ,EAAIkT,MAAQlT,EAAIkT,MAAMjuE,MAAY,OAAJyjJ,QAAI,IAAJA,OAAI,EAAJA,EAAMr4E,QAC7C1sD,SAAUklI,EAAmB7oF,EAAK0oF,GAClCh/E,YAAaq7E,IACd,EAGG8D,EAAqBA,CAACt1H,EAAgBm1H,KAC1C,MAAMplF,EAAQwlF,EAAkBv1H,GAChC,OAAQ,OAAJm1H,QAAI,IAAJA,KAAM/kI,SACD2/C,EAAQ,IAAIolF,EAAK/kI,SAAU2/C,GAASolF,EAAK/kI,SAG3C2/C,EAAQ,CAACA,GAAS,EAAE,EAGvBwlF,EAAqBv1H,GACzBA,EAAK8mG,cAAgB9mG,EAAK8mG,aAAarkF,OAAO3vC,OAAS,EACnD,CAAEkiD,QAASh1B,EAAK8mG,mBAChBn1H,EAEAgoJ,EAAU9qI,mBACd,IACEjJ,eAAAgF,WAAA,CAAAtW,SAAA,CACG0rB,GACCupC,GACAA,EAAW1+C,KAAI,CAAC3C,EAAGlV,IACjBmC,cAAA,SAEE5B,KAAI,eAAAiC,OAAiBxC,EAAK,KAC1BhB,KAAK,SACLma,IAAK6T,EAAKsB,YAHLtuB,KAOXmC,cAACiuG,KAAY,IAAKpjF,EAAI1rB,SAAG+kJ,MAExB5E,IAAkBrpF,GAAkByuD,UACnCj0G,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACy2B,KAAO,CAACxlB,QAAQ,WACjBR,eAACqI,KAAG,CAACuhB,UAAW,EAAEl7B,SAAA,CAChBa,cAACwwH,GAAS,CACR3lG,KAAMA,EACNk2C,KAAe,OAAT1I,QAAS,IAATA,OAAS,EAATA,EAAW0I,KACjBr5C,UAAWwzH,EACXtqB,SAAS,IAEX5wH,cAACi8I,EAAoB,cAM/B,CAAC5jF,EAAWxtC,EAAMupC,EAAY4vF,IAGhC,OACEvzI,eAACqI,KAAG,CAAC2hF,GAAI9iE,EAAWX,OAAS,EAAI,EAAE73B,SAAA,CACjCsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAtFCisC,IAAmB,IAADmtF,EAAAC,EAAAC,EAAAC,EACtC,MAAMC,EAAW,CACfC,MAAuB,QAAlBL,EAAW,OAATpsF,QAAS,IAATA,OAAS,EAATA,EAAWuL,aAAK,IAAA6gF,IAAI,EAC3BxwG,cAAuC,QAA1BywG,EAAW,OAATrsF,QAAS,IAATA,OAAS,EAATA,EAAWpkB,qBAAa,IAAAywG,IAAI,EAC3C36E,OAAyB,QAAnB46E,EAAW,OAATtsF,QAAS,IAATA,OAAS,EAATA,EAAW0R,cAAM,IAAA46E,IAAI,KAC1BL,EAAqBhtF,EAAKe,GAC7BvB,KAAqB,QAAjB8tF,EAAW,OAATvsF,QAAS,IAATA,OAAS,EAATA,EAAWvB,YAAI,IAAA8tF,IAAI,EACzB7jF,KAAMg/E,EAAiBzoF,EAAc,OAATe,QAAS,IAATA,OAAS,EAATA,EAAW0I,MACvCw1B,gBAAiBj/B,EAAIi/B,iBAEvB5xB,EAAUkgF,GACVrgC,IACArrG,EACE,6CACAlB,GAAYE,SAEd8rD,GAAa,IAuETz4C,YAAU,EAAArsB,SAAA,CAEVa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAAC8Y,KAAG,CAAA3Z,SACFa,cAAC8nB,GAAa,CACZZ,aAAc,GACde,WAAYowC,GAAaA,EAAUuL,MAAQ,EAC3CxlE,KAAK,qBACL0oB,QAAS+D,EAAK/D,QACdiB,QAASo5H,GAAmBzrI,KAAK4T,IAAM,CACrC/sB,MAAO+sB,EAAO/sB,MACdiqB,MAAO8C,EAAO9C,qBAOxBzT,IAAEC,QAAQgxI,IAAyBQ,EACrCxkJ,cAAC29I,GAAc,CACbC,YAAa7lF,EAAMp6D,OACnBy6D,WAAYA,EACZ8L,SAAUA,EACVF,aAAcA,EACdpB,cAAeA,EACfk7E,kBAAmBzlF,EACnBwlF,gBAAiBA,KACfh6E,OAAarnE,EAAU,EAEzBuhJ,mBAAoBtxH,EAAQttB,SAE5Ba,cAAC2lB,KAAM,CACL1U,QAAQ,YACRmD,MAAM,UACN1D,UAAW2mG,KAAUpxF,uBACrBppB,KAAK,SACLorB,UACG4C,EAAK2B,UAAUE,UACd7B,EAAK2B,UAAUC,UAAY6vH,EAC9Bn9I,SAEAk5D,EAAY,aAAe,iBAIlCr4D,cAACy+I,GAAe,CACdX,kBAAmBzlF,EACnBwlF,gBAAiBA,KACfh6E,OAAarnE,EAAU,MAGvB,ECrWH,MAAMuoJ,GAA0B,CAAC,UAAW,WAAY,QAAS,OAEjE,IAAKC,GAAc,SAAdA,GAAc,OAAdA,IAAc,mBAAdA,IAAc,iBAAdA,CAAc,MA4B1B,MAAMC,GAAoB,CACxBC,OAAQ96H,OAEL1kB,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWmB,WAAY,SAAU,IAC/Df,IAAI,GAAI4gG,GAAa,iCACrBh8E,UAAUrnB,EAAUqC,WAAWY,eAC/BX,SAAStC,EAAUqC,WAAWC,WAG7B6zH,GAAuBx3F,KACpBA,KAASA,EAAKnlB,MAAMiX,GAAMA,GAAKA,GAAK,IAGvCqpH,GAAeA,CACnBmI,EACA1yF,EACAwqF,EACA7yH,KAEA,QAAoB5tB,IAAhB2oJ,GAAoD,mBAAhBA,IAA8BlI,EACpE,OAAO7yH,EAET,IAAI8yH,EAUJ,GARMiI,EACJjI,EAAcD,EAAQ97G,QAAQovC,GAAMzjC,KAAOyjC,GAAG7jD,YACrC+lC,GAAaA,EAAU90D,OAAS,IACzCu/I,EAAcD,EAAQ97G,QACpB,CAACovC,EAAG1yE,IAAU0yE,GAAK9d,EAAU50D,IAAU40D,EAAU50D,GAAS,KAI1Dq/I,GAAeA,EAAYv/I,OAAS,EAAG,CACzC,MAAMw/I,EAAoBT,GAAWQ,EAAaX,GAAaI,KAC/D,OAAOvyH,EAAIzkB,IAAIw3I,EAAkB,GAAIj6I,EAAUqC,WAAWyB,iBAC5D,CAEA,OAAOojB,CAAG,EAGCg7H,GAAuBh7H,OAAaC,MAAM,CACrDxtB,KAAMutB,OACNi7H,oBAAqBj7H,OACrB1X,YAAa0X,OAAYggG,GAAGhgG,OAAWolE,WAAWpqD,QAAQ,OAC1DkgH,WAAYl7H,OACZowG,YAAapwG,OAEVzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAC/C8nG,KAAK,OAAQ,CACZ0W,GAAI6gC,GAAeO,MACnB56I,KAAMyf,OAAa5kB,SAAStC,EAAUqC,WAAWC,YAErD4sC,aAAchoB,OAEXzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAC/C8nG,KAAK,OAAQ,CACZ0W,GAAI6gC,GAAeQ,OACnB76I,KAAMyf,OAAa5kB,SAAStC,EAAUqC,WAAWC,YAErDivE,QAASrqD,OAEN5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClD8/I,YAAar7H,OAEV5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClDmuC,cAAe1pB,OAEZ5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACV7kB,IACgC,QAD7BgoG,GACF5gE,KAAO,IAAI/uC,MAAQu1C,QAAQ,YAAI,IAAAo6D,QAAA,EAA/BA,GAAiC79D,SACjC3sC,EAAUqC,WAAWsB,cAEtB4mG,KACC,CAAC,sBAAuB,YAAa,gBACrC,CACE03C,EACA1yF,EACAwqF,EACA7yH,IACG4yH,GAAamI,EAAa1yF,EAAWwqF,EAAS7yH,KAEvDgvG,cAAehvG,OAEZ1kB,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWmB,WAAY,iBAAkB,IACvElB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWY,eAClCu/I,SAAUt7H,OAAYqjF,KAAK,aAAc,CACvC0W,IAAI,EACJx5G,KAAMyf,OAAYggG,GAAGhgG,OAAaC,MAAM46H,OAE1CxyF,UAAWroC,OAAYqjF,KAAK,sBAAuB,CACjD0W,IAAI,EACJx5G,KAAMyf,OAEHggG,GAAGhgG,QACH2uF,KACC,sBACA,uCACAsgB,MAGN1H,aAAcvnG,SAEHu7H,GAAuCv7H,OAAaC,MAAM,CACrExtB,KAAMutB,OACN1X,YAAa0X,OAAYggG,GAAGhgG,OAAWolE,WAAWpqD,QAAQ,OAC1DigH,oBAAqBj7H,OACrBk7H,WAAYl7H,OACZowG,YAAapwG,OAEVzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAC/C8nG,KAAK,OAAQ,CACZ0W,GAAI6gC,GAAeO,MACnB56I,KAAMyf,OAAa5kB,SAAStC,EAAUqC,WAAWC,YAErD4sC,aAAchoB,OAEXzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAC/C8nG,KAAK,OAAQ,CACZ0W,GAAI6gC,GAAeQ,OACnB76I,KAAMyf,OAAa5kB,SAAStC,EAAUqC,WAAWC,YAErDivE,QAASrqD,OAEN5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClD8/I,YAAar7H,OAEV5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClDmuC,cAAe1pB,OAEZ5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAie,KACC,CAAC,sBAAuB,YAAa,gBACrC,CACE03C,EACA1yF,EACAwqF,EACA7yH,IACG4yH,GAAamI,EAAa1yF,EAAWwqF,EAAS7yH,KAEvDgvG,cAAehvG,OAEZ1kB,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWmB,WAAY,iBAAkB,IACvElB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWY,eAClCu/I,SAAUt7H,OAAYqjF,KAAK,aAAc,CACvC0W,IAAI,EACJx5G,KAAMyf,OAAYggG,GAAGhgG,OAAaC,MAAM46H,OAE1CxyF,UAAWroC,OAAYqjF,KAAK,sBAAuB,CACjD0W,IAAI,EACJx5G,KAAMyf,OAEHggG,GAAGhgG,QACH2uF,KACC,sBACA,uCACAsgB,MAGN1H,aAAcvnG,SAEHw7H,GAAgCx7H,OAAaC,MAAM,CAC9DksE,gBAAiBnsE,OACjBphB,OAAQohB,OACRunG,aAAcvnG,SAGHy7H,GAA6Bz7H,OAAaC,MAAM,CAC3DxtB,KAAMutB,OACNi7H,oBAAqBj7H,OACrB1X,YAAa0X,OAAYggG,GAAGhgG,OAAWolE,WAAWpqD,QAAQ,OAC1DmxD,gBAAiBnsE,OACjBphB,OAAQohB,OACRunG,aAAcvnG,OACd0pB,cAAe1pB,OAEZ5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAie,KACC,CAAC,sBAAuB,YAAa,gBACrC,CACE03C,EACA1yF,EACAwqF,EACA7yH,IACG4yH,GAAamI,EAAa1yF,EAAWwqF,EAAS7yH,KAEvDgvG,cAAehvG,OAEZ1kB,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWmB,WAAY,iBAAkB,IACvElB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWY,eAClCssD,UAAWroC,OAAYqjF,KAAK,sBAAuB,CACjD0W,IAAI,EACJx5G,KAAMyf,OAEHggG,GAAGhgG,QACH2uF,KACC,sBACA,uCACAsgB,QCqHOysB,OA1UoD5mJ,IAK5D,IAAD6mJ,EAAAC,EAAAC,EAAAC,EAAA,IAL8D,KAClEr7H,EAAI,iBACJ0tC,EAAgB,SAChBtwC,EAAQ,QACRizH,GACDh8I,EACC,MAAM,gBAAE0c,GAAoByhB,KACtB8oH,EAAkBt7H,EAAK05F,MAC3B,eACgB,OAAhBhsD,QAAgB,IAAhBA,GAA0B,QAAVwtF,EAAhBxtF,EAAkBmtF,gBAAQ,IAAAK,IAA1BA,EAA4BpoJ,UACR,OAAhB46D,QAAgB,IAAhBA,GAA0B,QAAVytF,EAAhBztF,EAAkBmtF,gBAAQ,IAAAM,OAAV,EAAhBA,EAA4BroJ,QAAS,GAGrCg6B,EAAajB,MACb,YAAErlB,GAAgBmD,IAElBsS,EAAU+D,EAAK/D,SAEf,OAAElC,EAAM,OAAEnnB,EAAM,OAAE0yF,GAAWi2D,aAA4B,CAC7Dt/H,UACA1oB,KAAM,aAGFohJ,EACJtE,IACgB,OAAhB3iF,QAAgB,IAAhBA,GAAsB,QAAN0tF,EAAhB1tF,EAAkBwI,YAAI,IAAAklF,OAAN,EAAhBA,EAAwBj9I,UAAWktD,GAAcupF,YACjC,OAAhBlnF,QAAgB,IAAhBA,GAAsB,QAAN2tF,EAAhB3tF,EAAkBwI,YAAI,IAAAmlF,OAAN,EAAhBA,EAAwBl9I,UAAWktD,GAAcwpF,UAEnD,OACEjvI,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,gBAAernB,SAChCa,cAACmnB,GAAS,CACR/oB,KAAK,eACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACThf,YAAY,UACZuf,kBAAc1qB,EACdyrB,SAAUA,EACVrmB,QAASipB,EAAK5d,OAAOmlC,aACrBhmB,WACEvB,EAAK5d,OAAOmlC,aAAevnB,EAAK5d,OAAOmlC,aAAa5yC,QAAU,SAKtEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAACmnB,GAAS,CACR/oB,KAAK,UACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACThf,YAAY,UACZuf,kBAAc1qB,EACdyrB,SAAUA,EACVrmB,QAASipB,EAAK5d,OAAOwnE,QACrBroD,WACEvB,EAAK5d,OAAOwnE,QAAU5pD,EAAK5d,OAAOwnE,QAAQj1E,QAAU,YAO9DiR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,kBAAiBrnB,SAClCa,cAAC8+E,GAAM,CACL+B,qBACE,uDAEF35D,aAAc,GACd9oB,KAAK,cACL0oB,QAAS+D,EAAK/D,QACdiB,QAASg9H,GAAcrvI,KAAK7Y,IAAI,CAC9BN,MAAOM,EACP2pB,MAAO3pB,MAETorB,SAAUA,EACVrmB,QAASipB,EAAK5d,OAAOw4I,YACrBv9H,aACE2C,EAAK5d,OAAOw4I,YAAc56H,EAAK5d,OAAOw4I,YAAYjmJ,QAAU,SAKpEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,iBAAgBrnB,SACjCa,cAAC4lF,GAAU,CACT5/E,QACEqL,EAAY2D,SACV+Y,GAAgB0C,gCACb+uH,EACD,KACA,IAAIzhJ,KAEVgpF,gBAAc,EACdC,QAAM,EACN5oF,KAAK,gBACLuJ,YAAamlC,OAAS8C,OAAO,cAC7B1oB,aAAc,KACdJ,QAAS+D,EAAK/D,QACdmB,SAAUA,IAAau3H,EACvB59I,QAASipB,EAAK5d,OAAO6mC,cACrB1nB,WACEvB,EAAK5d,OAAO6mC,cACRjpB,EAAK5d,OAAO6mC,cAAct0C,QAC1B,YAOdQ,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CACVC,MACE/V,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,wBACsB,IACtBa,cAAA,QAAMiT,MAAO,CAAE4yB,WAAY,KAAM1mC,SAAC,aAErCA,SAEDa,cAACmnB,GAAS,CACR/oB,KAAK,gBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,MACZgf,WAAS,EACTO,kBAAc1qB,EACdyrB,SAAUA,IAAau3H,EACvB59I,QAASipB,EAAK5d,OAAOmsH,cACrBhtG,WACEvB,EAAK5d,OAAOmsH,cACRvuG,EAAK5d,OAAOmsH,cAAc55H,QAC1B,WAOdiR,eAACmb,KAAI,CACHhb,WAAS,EACTF,UAAW2mG,KAAUzb,kBACrB/vE,UAAU,SAAQ1sB,SAAA,CAElBa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,kBAAiBrnB,SAClCa,cAAC8Y,KAAG,CAAA3Z,SACFa,cAAC8nB,GAAa,CACZ1pB,KAAM,aACN2pB,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,OAAO,GACvB,CAAEiqB,MAAO,KAAMjqB,OAAO,IAExB2qB,cAAc,EACde,SAAUA,EACVnB,QAAS+D,EAAK/D,kBAKnBq/H,GACD11I,eAACmb,KAAI,CACHG,MAAI,EACJnb,WAAS,EACT2b,GAAI,EACJoK,GAAI,GACJxjB,WAAW,WACXzC,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CAEtCylB,EAAOlP,KAAI,CAACqW,EAAMluB,KAAK,IAAAwoJ,EAAAC,EAAAC,EAAAC,EAAA,OACtBxmJ,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI94B,IAAU+mB,EAAOjnB,OAAS,EAAKE,EAAQ,EAAI,EAAI,GAAM,GACzD0uB,GAAI,EAAEptB,SAGNa,cAACumB,GAAW,CAACC,MAAK,WAAAnmB,OAAaxC,EAAQ,EAAC,gBAAesB,SACrDa,cAACmnB,GAAS,CACR/oB,KAAI,YAAAiC,OAAcxC,EAAK,YACvBquB,SAAUrB,EAAKsB,WACftvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,KACZgf,WAAS,EACTO,aAAc6E,EAAKm5H,OACnBj9H,SAAUA,EACVrmB,QACIipB,EAAK5d,OAAOy4I,YACe,QAA5BW,EAACx7H,EAAK5d,OAAOy4I,SAAS7nJ,UAAM,IAAAwoJ,IAA3BA,EAA6BnB,QAEjC94H,WACEvB,EAAK5d,OAAOy4I,UACe,QADPY,EACpBz7H,EAAK5d,OAAOy4I,SAAS7nJ,UAAM,IAAAyoJ,GAA3BA,EAA6BpB,OACE,QADIqB,EAC/B17H,EAAK5d,OAAOy4I,SAAS7nJ,UAAM,IAAA0oJ,GAAQ,QAARC,EAA3BD,EAA6BrB,cAAM,IAAAsB,OAAR,EAA3BA,EAAqChnJ,QACrC,QAGI,SAAAa,OAzBI,OAAJ0rB,QAAI,IAAJA,OAAI,EAAJA,EAAM9U,GAAE,KA0BjB,IAETjX,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI/R,EAAOjnB,OAAS,EAAI,EAAI,EAAG4uB,GAAI,EAAEptB,UAC5C8oB,GACAxX,eAACqI,KAAG,CAAC5F,QAAQ,OAAOk+G,GAAIz5F,EAAWX,OAAS,EAAI,EAAE73B,SAAA,CAC/CylB,EAAOjnB,OAAS,GACfqC,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAEt7F,SACTa,cAACqmB,KAAU,CACTX,QAASA,IAAMyqE,EAAOvrE,EAAOjnB,OAAS,GACtC+S,UAAW2mG,KAAUgW,kBAAkBluH,SAEvCa,cAACqlF,GAAU,CAACjxE,MAAM,gBAIxBpU,cAACqmB,KAAU,CACTX,QAASA,IAAMjoB,EAAO,CAAEynJ,OAAQ,KAChCx0I,UAAW2mG,KAAUgW,kBAAkBluH,SAEvCa,cAAC65E,GAAQ,CAACzlE,MAAM,UAAUf,MAAM,OAAOC,OAAO,sBAS5D7C,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAG+uE,GAAI,EAAEt7F,SAChBa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRmD,MAAM,UACNsR,QAASA,IACPjlB,OAAOmY,KACLgD,EAAgB1Y,EAAUgF,SAASI,0BACnC,UAGJqe,WAAS,EAAAxnB,SACV,+BAKLa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAG+uE,GAAI,EAAEt7F,SAChBa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRmD,MAAM,UACNsR,QAASA,IACPjlB,OAAOmY,KACLgD,EAAgB1Y,EAAUgF,SAASK,qBACnC,UAGJoe,WAAS,EAAAxnB,SACV,0BAKLa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAG+uE,GAAI,EAAEt7F,SAChBa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRmD,MAAM,UACNsR,QAASA,IACPjlB,OAAOmY,KACLgD,EACE1Y,EAAUgF,SAASM,uCAErB,UAGJme,WAAS,EAAAxnB,SACV,oDAOPa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,UAAUE,YAAY,EAAKvnB,SAC5Ca,cAACmnB,GAAS,CACR/oB,KAAK,kBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXC,KAAK,IACL3F,WAAS,EACThf,YAAY,2BACZuf,kBAAc1qB,EACdyrB,SAAUA,IAAaizH,EACvBt5I,QAASipB,EAAK5d,OAAOspF,gBACrBnqE,WACEvB,EAAK5d,OAAOspF,gBACR1rE,EAAK5d,OAAOspF,gBAAgB/2F,QAC5B,aAMb,EC3KQinJ,OArKkDvnJ,IAK1D,IAL2D,KAChE2rB,EAAI,SACJ5C,EAAQ,QACRizH,EAAO,WACPsE,GACDtgJ,EACC,MAAM,YAAEmS,GAAgBmD,IAExB,OACE/D,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,eAAcrnB,SAC/Ba,cAACmnB,GAAS,CACR/oB,KAAK,cACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACThf,YAAY,UACZuf,kBAAc1qB,EACdyrB,SAAUA,EACVrmB,QAASipB,EAAK5d,OAAOutH,YACrBpuG,WACEvB,EAAK5d,OAAOutH,YAAc3vG,EAAK5d,OAAOutH,YAAYh7H,QAAU,SAKpEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAACmnB,GAAS,CACR/oB,KAAK,UACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACThf,YAAY,gBACZuf,kBAAc1qB,EACdyrB,SAAUA,EACVrmB,QAASipB,EAAK5d,OAAOwnE,QACrBroD,WACEvB,EAAK5d,OAAOwnE,QAAU5pD,EAAK5d,OAAOwnE,QAAQj1E,QAAU,YAO9DiR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,kBAAiBrnB,SAClCa,cAAC8+E,GAAM,CACL+B,qBACE,uDAEF35D,aAAc,GACd9oB,KAAK,cACL0oB,QAAS+D,EAAK/D,QACdiB,QAASg9H,GAAcrvI,KAAK7Y,IAAI,CAC9BN,MAAOM,EACP2pB,MAAO3pB,MAETorB,SAAUA,EACVrmB,QAASipB,EAAK5d,OAAOw4I,YACrBv9H,aACE2C,EAAK5d,OAAOw4I,YAAc56H,EAAK5d,OAAOw4I,YAAYjmJ,QAAU,SAKpEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,iBAAgBrnB,SACjCa,cAAC4lF,GAAU,CACT5/E,QACEqL,EAAY2D,SACV+Y,GAAgB0C,gCACb+uH,EACD,KACA,IAAIzhJ,KAEVgpF,gBAAc,EACdC,QAAM,EACN5oF,KAAK,gBACL8oB,aAAc,KACdvf,YAAamlC,OAAS8C,OAAO,cAC7B9oB,QAAS+D,EAAK/D,QACdmB,SAAUA,IAAau3H,EACvB59I,QAASipB,EAAK5d,OAAO6mC,cACrB1nB,WACEvB,EAAK5d,OAAO6mC,cACRjpB,EAAK5d,OAAO6mC,cAAct0C,QAC1B,YAOdQ,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CACVC,MACE/V,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,uBACqB,IACrBa,cAAA,QAAMiT,MAAO,CAAE4yB,WAAY,KAAM1mC,SAAC,aAErCA,SAEDa,cAACmnB,GAAS,CACR/oB,KAAK,gBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACThf,YAAY,KACZuf,kBAAc1qB,EACdyrB,SAAUA,IAAau3H,EACvB59I,QAASipB,EAAK5d,OAAOmsH,cACrBhtG,WACEvB,EAAK5d,OAAOmsH,cACRvuG,EAAK5d,OAAOmsH,cAAc55H,QAC1B,WAOdQ,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,UAAUE,YAAY,EAAKvnB,SAC5Ca,cAACmnB,GAAS,CACR/oB,KAAK,kBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXC,KAAK,IACL3F,WAAS,EACThf,YAAY,2BACZuf,kBAAc1qB,EACdyrB,SAAUA,IAAaizH,EACvBt5I,QAASipB,EAAK5d,OAAOspF,gBACrBnqE,WACEvB,EAAK5d,OAAOspF,gBACR1rE,EAAK5d,OAAOspF,gBAAgB/2F,QAC5B,aAMb,ECqWQknJ,OA7ekBA,KAAO,IAADT,EAAAC,EAAAS,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACrC,MACEtpI,OAAO,mBACLu2C,EAAkB,iBAClBC,EAAgB,QAChBxf,EAAO,iBACP6jB,EAAgB,MAChBR,EAAK,WACLK,EACA1jB,SAAW1rC,OAAQs2I,GAAe,QAClC7yH,GACD,SACDy3C,EAAQ,aACRF,EAAY,cACZpB,EAAa,iBACbiC,EAAgB,oBAChBd,EAAmB,YACnBE,GACEwB,MAEE,QAAEy1E,GAAYD,KACduE,EACJtE,IACgB,OAAhB3iF,QAAgB,IAAhBA,GAAsB,QAAN0tF,EAAhB1tF,EAAkBwI,YAAI,IAAAklF,OAAN,EAAhBA,EAAwBj9I,UAAWktD,GAAcupF,YACjC,OAAhBlnF,QAAgB,IAAhBA,GAAsB,QAAN2tF,EAAhB3tF,EAAkBwI,YAAI,IAAAmlF,OAAN,EAAhBA,EAAwBl9I,UAAWktD,GAAcwpF,WAE7C,WAAEtrF,GAAeJ,GACrBC,EACAC,EACAxf,EAAQyf,mBACRzf,GAEI/c,EAAajB,MACb,WAAEvd,GAAeQ,MACjB,YAAEtI,GAAgBmD,IAClB+qI,EAAmBluI,EAAY2D,SACnC+Y,GAAgB0C,gCAEXhM,EAAQ+wG,GAAa/jH,mBAM1B8tI,EACIoG,GACAP,IAGAv6H,EAAOC,aAAyB,CACpCG,KAAM,WACNF,SAAUC,aAAYvG,MAGlB,qBAAEw3H,EAAoB,oBAAEI,GAAwBhB,GAAmB,CACvEE,mBAAuD,QAArCoL,EAAkB,OAAhBpuF,QAAgB,IAAhBA,GAAsB,QAANquF,EAAhBruF,EAAkBwI,YAAI,IAAA6lF,OAAN,EAAhBA,EAAwB5lF,mBAAW,IAAA2lF,IAAI,GAC3DrL,oBAAqB3qI,KAAOqiF,WAC5B0D,oBAAqB/lF,KAAOsiF,OAC5BvrE,UAAWwzH,EACXM,WAAkC,QAAxBqL,EAAkB,OAAhBtuF,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBzB,YAAI,IAAA+vF,IAAI,IAGlClH,GACwC,QAA5CmH,EAAiB,OAAhBvuF,QAAgB,IAAhBA,GAAsB,QAANwuF,EAAhBxuF,EAAkBwI,YAAI,IAAAgmF,GAAa,QAAbC,EAAtBD,EAAwB/lF,mBAAW,IAAAgmF,OAAnB,EAAhBA,EAAqCrpJ,cAAM,IAAAmpJ,IAAI,KAChDzK,IAAsB1+I,OAExBmV,qBAAU,KACJylD,GACEA,EAAiBuL,aAAe,EAClC0xD,EACEgqB,EACIqG,GACAD,IAGNpwB,EACE+pB,EACIoG,GACAP,IAIRv6H,EAAKu6B,MAAM,CACTo1E,YACmC,OAAjCjiE,EAAiBiiE,iBACbh+H,EACA+7D,EAAiBiiE,YACvBpoF,aACoC,OAAlCmmB,EAAiBnmB,kBACb51C,EACA+7D,EAAiBnmB,aACvB0B,cAAeykB,EAAiBzkB,cAChC2gC,QAASlc,EAAiBkc,QAC1BixE,SACEntF,EAAiBmtF,UAAYntF,EAAiBmtF,SAAS/nJ,OAAS,EAC5D,IAAI46D,EAAiBmtF,UACrB,CAAC,CAAER,OAAQ,KACjBO,YAAaltF,EAAiBktF,YAC9BH,WAAY/sF,EAAiBmtF,SACzBntF,EAAiBmtF,SAAS/nJ,OAAS,OACnCnB,EACJ+5F,gBAAiBh+B,EAAiBg+B,gBAClC6iC,cAAe7gE,EAAiB6gE,cAChCpwH,OAAwB,OAAhBuvD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBwI,KAAK/3D,OAC/Bq8I,oBACEjxF,GAAcmE,EAAiB9F,UAAU90D,SAAWy2D,EAAWz2D,OACjEd,KAAM07D,EAAiBnmB,aACnB4yG,GAAeQ,OACfR,GAAeO,MACnB9yF,UAAW2B,EACPA,EAAW1+C,KAAKkH,GAChB27C,EAAiB9F,UAAU/1C,MAAMiX,GAAMA,EAAE+f,WAAa92B,EAAE82B,WACpD92B,EAAE82B,UACD,IAEL,GACJhhC,YAAa0hD,EAAW1+C,KAAKkH,GAC3BA,EAAElK,YACE,IAAI3U,KAAK+uC,KAAOlwB,EAAElK,aAAak9B,OAAO,eACtC,IAAI7xC,KAAK,oBAIjBy3H,EACE+pB,EACIoG,GACAP,IAEN5gC,IACF,GACC,CAACjsD,EAAkBrE,EAAkBE,IAExC,MAAM6yF,EAAYp8H,EAAK05F,MACrB,OACgB,OAAhBhsD,QAAgB,IAAhBA,KAAkBiiE,YAAcwqB,GAAeO,MAAQP,GAAeQ,QAGlE0B,EAA2Br8H,EAAK05F,MACpC,uBACAhsD,MACqB,OAAhBrE,QAAgB,IAAhBA,KAAkB8B,qBACrBuC,EAAiB9F,UAAU90D,SAC3B+2C,EAAQyf,mBAAmBx2D,SAGzBwpJ,EAAiBt8H,EAAK05F,MAAM,gBAAiB,MAEnDzxG,qBAAU,KACJ+X,GAAQs8H,GACVt8H,EAAKyiF,QAAQ,gBACf,GACC,CAAC45C,EAA0BD,IAE9B,MAwBMG,EAAYA,CAACv8H,EAAuBq3B,KACxC,GAAIqW,GAAoBA,EAAiBuL,aAAe,EAAG,CAAC,IAADujF,EACzD,MAAM3zG,EAA2B,OAAhB6kB,QAAgB,IAAhBA,GAA8B,QAAd8uF,EAAhB9uF,EAAkB9F,UAAU,UAAE,IAAA40F,OAAd,EAAhBA,EAAgC3zG,SAEhC,IAAD4zG,EAAAC,EAAAC,EAYTC,EAZP,OAAIjI,EACK,CACL,IACKjnF,EACHwI,KAAMg/E,EAAiBl1H,EAAsB,OAAhB0tC,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBwI,MAC/Cw1B,gBAAqC,QAAtB+wD,EAAEz8H,EAAK0rE,uBAAe,IAAA+wD,IAAI,GACzCluB,cAAiC,QAApBmuB,EAAE18H,EAAKuuG,qBAAa,IAAAmuB,IAAI,EACrCzzG,cAAiC,QAApB0zG,EAAE38H,EAAKipB,qBAAa,IAAA0zG,IAAIjvF,EAAiBzkB,cACtD4T,WAAW,EACXhU,aAIG,CACL,IACK6kB,EACHwI,KAAMg/E,EAAiBl1H,EAAsB,OAAhB0tC,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBwI,MAC/Cw1B,gBAAqC,QAAtBkxD,EAAE58H,EAAK0rE,uBAAe,IAAAkxD,IAAI,GACzC//F,WAAW,EACXhU,YAIR,CAAO,CACL,MAAMg0G,EAvCejtB,EAAC5vG,EAAuBq3B,IAC3B,OAAhBgS,QAAgB,IAAhBA,KAAkB8B,mBACbnrC,EAAKw6H,qBAA6C,IAAtBjxF,EAAWz2D,OAC1Cy2D,EAAW1+C,KAAKkH,GAAMA,EAAE82B,WACxB7oB,EAAK4nC,UACH5nC,EAAK4nC,UAAUtxB,QAAQvkB,GAAMA,GAAK,IAClC,CAACslC,GAEF,CAACA,GA+Beu4E,CAAiB5vG,EAAMq3B,GAC5C,OAAOwlG,EAAahyI,KAClB,CAACg+B,EAAU71C,KAAK,IAAA8pJ,EAAAC,EAAAC,EAAAC,EAAA,MACb,CACChkF,aAA4C,QAAhC6jF,EAAkB,OAAhBpvF,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBuL,oBAAY,IAAA6jF,IAAI,EAChD1zG,cAA8C,QAAjC2zG,EAAkB,OAAhBrvF,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBtkB,qBAAa,IAAA2zG,IAAI,EAClD79E,OAAgC,QAA1B89E,EAAkB,OAAhBtvF,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBwR,cAAM,IAAA89E,IAAI,KACjCh9H,EACH66H,SACE76H,EAAKy6H,YAAcz6H,EAAK66H,UAAsB,IAAV7nJ,EAChC,IAAIgtB,EAAK66H,UACT,GACNhyG,SAAUA,EACVojB,KAA4B,QAAxBgxF,EAAkB,OAAhBvvF,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBzB,YAAI,IAAAgxF,IAAI,EAChC/mF,KAAMg/E,EAAiBl1H,EAAsB,OAAhB0tC,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBwI,MAChD,GAEP,GAGIg/E,EAAmBA,CACvB3oF,EACA4oF,KACmB,IAAD+H,EAAA7H,EAClB,MAAO,IACFF,EACHh3I,OAAyB,QAAnB++I,EAAE3wF,EAAWpuD,cAAM,IAAA++I,IAAI7xF,GAAc6/D,QAC3Cl5H,KAAgB,QAAZqjJ,EAAM,OAAJF,QAAI,IAAJA,OAAI,EAAJA,EAAMnjJ,YAAI,IAAAqjJ,IAAI,aACpBv4E,QAASvQ,EAAWoT,MAAQpT,EAAWoT,MAAMjuE,MAAY,OAAJyjJ,QAAI,IAAJA,OAAI,EAAJA,EAAMr4E,QAC3D3G,YAAaq7E,IACbphI,SAAUklI,EAAmB/oF,EAAY4oF,GAC1C,EAGGG,EAAqBA,CACzB/oF,EACA4oF,KAEA,MAAMplF,EAAQwlF,EAAkBhpF,GAChC,OAAQ,OAAJ4oF,QAAI,IAAJA,KAAM/kI,SACD2/C,EAAQ,IAAIolF,EAAK/kI,SAAU2/C,GAASolF,EAAK/kI,SAG3C2/C,EAAQ,CAACA,GAAS,EAAE,EAGvBwlF,EAAqBhpF,GACzBA,EAAWu6D,cAAgBv6D,EAAWu6D,aAAarkF,OAAO3vC,OAAS,EAC/D,CAAEkiD,QAASuX,EAAWu6D,mBACtBn1H,EAEAgoH,EAAYA,IACT35F,EAAKu6B,MAAM,CAChBo1E,iBAAah+H,EACb41C,kBAAc51C,EACds3C,cAAe,KACf2gC,aAASj4E,EACTkpJ,SAAU,CAAC,CAAER,OAAQ,KACrBO,iBAAajpJ,EACb8oJ,YAAY,EACZt8I,OAAQktD,GAAc6/D,QACtBx/B,qBAAiB/5F,EACjB48H,mBAAe58H,EACf6oJ,qBAAqB,EACrBxoJ,KAAMmoJ,GAAeQ,OACrB/yF,UAAW,GACX//C,YAAa0hD,EAAW1+C,KAAKkH,GAC3BA,EAAElK,YACE,IAAI3U,KAAK+uC,KAAOlwB,EAAElK,aAAak9B,OAAO,eACtC,IAAI7xC,KAAK,kBAKbiqJ,EAAiBtuI,mBACrB,SAAAuuI,EAAA,OACEx3I,eAAAgF,WAAA,CAAAtW,SAAA,CACG0rB,GACCupC,GACAA,EAAW1+C,KAAI,CAAC3C,EAAGlV,IACjBmC,cAAA,SAEE5B,KAAI,eAAAiC,OAAiBxC,EAAK,KAC1BhB,KAAK,SACLma,IAAK6T,EAAKsB,YAHLtuB,KAMXmC,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CACVI,WAAS,EACTH,MACE,0EACDrnB,SAEDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8Y,KAAG,CAAA3Z,SACFa,cAAC8nB,GAAa,CACZ1pB,KAAM,OACN2pB,QAAS,CACP,CAAEvB,MAAO,SAAUjqB,MAAO,GAC1B,CAAEiqB,MAAO,QAASjqB,MAAO,IAE3B2qB,aAAc,EACde,WACIswC,GAAoBA,EAAiBuL,aAAe,EAExDh9C,QAAS+D,EAAK/D,oBAOT,OAAhBotC,QAAgB,IAAhBA,KAAkB8B,qBACS,QAA1BiyF,EAAAvzG,EAAQyf,0BAAkB,IAAA8zF,OAAA,EAA1BA,EAA4BtqJ,QAAS,EACnCqC,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAClDo5D,GAAoBA,EAAiBuL,aAAe,EACrDrzD,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAA,SACE5B,KAAM,sBACNvB,KAAK,SACLma,IAAK6T,EAAKsB,aAEZnsB,cAAC8Y,KAAG,CAACzE,aAAc,EAAElV,SACnBsR,eAACO,IAAU,CAAA7R,SAAA,CAAC,YACA,IACVa,cAACu3H,GAAa,CACZnjE,WAAYmE,EAAiB9F,UAC7B29D,cAAc,SAInBh8D,EAAW1+C,KAAI,CAAC3C,EAAGlV,IAClBmC,cAAAyV,WAAA,CAAAtW,SACEa,cAAA,SACE5B,KAAI,aAAAiC,OAAexC,EAAK,KACxBhB,KAAK,SACLma,IAAK6T,EAAKsB,oBAMhB1b,eAAC8V,GAAW,CACVI,WAAS,EACTH,MAAK,0DAAAnmB,OACH4mJ,IAAcjC,GAAeQ,OAAS,SAAW,QAAO,KAE1D5jJ,QAASipB,EAAK5d,OAAOwlD,UAAUtzD,SAAA,CAE/Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAG+uE,GAAI,EAAEt7F,SAChBa,cAAC8nB,GAAa,CACZ1pB,KAAM,sBACN2pB,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,OAAO,GACvB,CAAEiqB,MAAO,KAAMjqB,OAAO,IAExB0rB,WACIswC,GAAoBA,EAAiBuL,aAAe,EAExD58C,cACEqxC,MACqB,OAAhBrE,QAAgB,IAAhBA,KAAkB8B,qBACrBuC,EAAiB9F,UAAU90D,SAC3B+2C,EAAQyf,mBAAmBx2D,QAG/BmpB,QAAS+D,EAAK/D,cAIpB9mB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAAyV,WAAA,CAAAtW,UACI+nJ,GACAlnJ,cAAC8Y,KAAG,CAACud,EAAG,EAAEl3B,SACRa,cAACgwH,GAAe,CACdv9D,UAAW2B,EACXttC,QAAS+D,EAAK/D,QACdmpG,SAAU,YACVhoG,WACIswC,GACFA,EAAiBuL,aAAe,EAElCp+C,QAASA,IAAMmF,EAAKyiF,QAAQ,yBAMtCttG,cAACkqB,KAAc,CAAA/qB,SACZ0rB,EAAK5d,OAAOwlD,UACT,wCACA,UAMdzyD,cAAAyV,WAAA,CAAAtW,SACEa,cAAA,SACEnD,KAAK,SACLuB,KAAM,sBACN4Y,IAAK6T,EAAKsB,eAIjB86H,IAAcjC,GAAeQ,OAC5BxlJ,cAAC8lJ,GAAoB,CACnBj7H,KAAMA,EACN0tC,iBAAkBA,EAClBtwC,WAAYswC,GAAoBA,EAAiBuL,aAAe,EAChEo3E,QAASA,IAGTl7I,cAACymJ,GAAmB,CAClB57H,KAAMA,EACN5C,WAAYswC,GAAoBA,EAAiBuL,aAAe,EAChEo3E,QAASA,EACTsE,WAAYA,IAIjBF,IAAkBrpF,GAAkByuD,UACnCj0G,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACy2B,KAAO,CAACxlB,QAAQ,WACjBR,eAACqI,KAAG,CAACuhB,UAAW,EAAEl7B,SAAA,CAChBa,cAACwwH,GAAS,CACR3lG,KAAMA,EACNk2C,KAAsB,OAAhBxI,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBwI,KACxBr5C,UAAWwzH,EACXtqB,SAAS,IAEX5wH,cAACi8I,EAAoB,YAI1B,GAEL,CAACgL,EAAWp8H,EAAM0tC,EAAkBnE,IAGtC,OACE3jD,eAACqI,KAAG,CAAC2hF,GAAI9iE,EAAWX,OAAS,EAAI,EAAE73B,SAAA,CACjCsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cA3SCR,IACpB,MAAM8vC,EAAUysF,EAAUv8H,EAAwB,OAAlBopC,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoB/J,OAAOxW,UAC3DmxB,EAAiBlK,GACjB6pD,IACArrG,EAAW,GAAD9Y,OAERwqB,EAAKhuB,OAASmoJ,GAAeQ,OAAS,SAAW,QAAO,uCAExDvtI,GAAYE,SAEd8rD,GAAa,IAkSTz4C,YAAU,EAAArsB,SAAA,CAET6oJ,EAEDhoJ,cAAC29I,GAAc,CACbC,YAAa7lF,EAAMp6D,OACnBy6D,WAAYA,EACZ8L,SAAUA,EACVF,aAAcA,EACdpB,cAAeA,EACfk7E,kBAAmBvlF,EACnBslF,gBAAiBA,KACf95E,OAAoBvnE,EAAU,EAEhCuhJ,mBAAoBtxH,EAAQttB,SAE5Ba,cAAC2lB,KAAM,CACL1U,QAAQ,YACRP,UAAW2mG,KAAUpxF,uBACrBppB,KAAK,SACLorB,UACGgsC,IACAppC,EAAK2B,UAAUE,UACd7B,EAAK2B,UAAUC,UAAYkzH,EAC9BxgJ,SAEAo5D,EAAmB,aAAe,iBAIzCv4D,cAACy+I,GAAe,CACdX,kBAAmBvlF,EACnBslF,gBAAiBA,KACf95E,OAAoBvnE,EAAU,MAG9B,ECnhBH,IAAK0rJ,GAAc,SAAdA,GAAc,OAAdA,IAAc,mBAAdA,IAAc,yBAAdA,CAAc,MAe1B,MAAMC,GAAmB/9H,OAEtBC,MAAM,CACL7D,MAAO4D,OACP7tB,MAAO6tB,SAER5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,UAErB4iJ,GAAyBh+H,OAAaC,MAAM,CACvDxtB,KAAMutB,OACNslB,KAAMy4G,GACNjzI,GAAIizI,GACJx4G,SAAUvlB,OAAW5kB,SAAStC,EAAUqC,WAAWC,UACnDqqC,OAAQzlB,OAAWqjF,KAAK,OAAQ,CAC9B0W,GAAI+jC,GAAeG,UACnB19I,KAAMyf,OAAW5kB,SAAStC,EAAUqC,WAAWC,cCbpC8iJ,OAZ8DppJ,IAGtE,IAHuE,aAC5EqpJ,EAAY,MACZ/hI,GACDtnB,EACC,OACEc,cAACgR,IAAU,CAAA7R,SAAA,GAAAkB,OAAKmmB,EAAK,OAAAnmB,OAAMkoJ,EAAa7yI,KACrC8yI,GAAW,IAAAnoJ,OACNmoJ,EAAYnuI,KAAI,KAAAha,OAAImoJ,EAAYA,YAAW,8BAClC,ECErB,MAMMC,GAAsBA,CAC1B58I,EACA61E,EACAgnE,IAEA78I,EAAKiyB,QACH,CAACyqH,EAAc1tI,IAZe8tI,EAChCJ,EACAK,EACAJ,IACII,EAAW,IAAIL,EAAcC,GAAe,IAAID,GAShDI,CACEJ,EACA7mE,EAAQ7mE,MACJ6tI,EAAoB7tI,IACtB6tI,EAAoB7tI,GAAiBld,OAAS,EAChD,CACE0c,KAAMQ,EAAgBR,KACtBmuI,YAAaE,EAAoB7tI,MAGvC,IAkFWguI,OA7EX3pJ,IAAe,IAAd,KAAE2M,GAAM3M,EACX,MAAM4pJ,EAAwBL,GAC5B58I,GACCgP,GACCA,EAAgBo1D,yBACjBp1D,GACC,CAAC,GAADxa,OACKwa,EAAgBkuI,gCAA8B,GAAA1oJ,OAC9Cwa,EAAgBmuI,kCAElB7nH,QAAQxN,GAAMA,EAAEh2B,OAAS,GAAW,SAANg2B,IAC9BrI,KAAK,OAEN29H,EAAoBR,GACxB58I,GACCgP,GACCA,EAAgBq1D,qBACjBr1D,GACC,CAAC,GAADxa,OACKwa,EAAgBquI,4BAA0B,GAAA7oJ,OAC1Cwa,EAAgBsuI,8BAElBhoH,QAAQxN,GAAMA,EAAEh2B,OAAS,GAAW,SAANg2B,IAC9BrI,KAAK,OAEN89H,EAAoBX,GACxB58I,GACCgP,GAA6CA,EAAgBs1D,gBAC7Dt1D,GACC,CAAC,GAADxa,OACKwa,EAAgBwuI,4BAA0B,GAAAhpJ,OAC1Cwa,EAAgByuI,8BAElBnoH,QAAQxN,GAAMA,EAAEh2B,OAAS,GAAW,SAANg2B,IAC9BrI,KAAK,OAGZ,OACEtrB,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAAA,MAAAtR,SAAA,CACG2pJ,EAAsBnrJ,OAAS,GAE9BqC,cAAA,MAAAb,SACEa,cAACupJ,GAAgC,CAC/BhB,aAAcO,EACdtiI,MAAM,sCAMXyiI,EAAkBtrJ,OAAS,GAE1BqC,cAAA,MAAAb,SACEa,cAACupJ,GAAgC,CAC/BhB,aAAcU,EACdziI,MAAM,qCAKX4iI,EAAkBzrJ,OAAS,GAE1BqC,cAAA,MAAAb,SACEa,cAACupJ,GAAgC,CAC/BhB,aAAca,EACd5iI,MAAM,6CAOV,ECjFV,MAAMgjI,GAAgCp/H,OAAaC,MAAM,CACvDsoB,OAAQvoB,OAEL5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QA0JtC8jJ,OArJXvqJ,IAOG,IAPF,aACH4jD,EAAY,mBACZC,EAAkB,UAClBr4B,EAAS,QACTC,EAAO,SACPkvG,EAAQ,WACR6vB,GACDxqJ,EACC,MAAM,WAAEia,GAAeQ,MAChBgwI,EAAcC,GAAmBn4I,mBAGrC,CACDo4I,aAASrtJ,EACTstJ,YAAQttJ,IAEJm7B,EAAajB,KAEb7L,EAAOC,aAAkC,CAC7CC,SAAUC,aAAYw+H,MAGxB12I,qBAAU,MACR,iBAEIiwC,GACAjW,KACGu3B,SAASv3B,KAAOiW,EAAmBR,eAAe66C,KAAKtwD,SACvDi9G,UAAY,GAEfH,EAAgB,CACdC,cAAeG,EACbC,EAAmBnnG,IAErBgnG,aAAcE,EACZC,EAAmBlnG,MAIvB6mG,EAAgB,CACdC,cAAeG,EACbC,EAAmBnnG,IAErBgnG,YAAQttJ,GAGb,CAvBD,EAuBI,GACH,CAACsmD,EAAcC,IAElB,MAAMinG,EAAwBl4I,UAG5B,IACE,GAAI6I,EAAMhd,OAAS,EAAG,CAEpB,aADsBic,GAAec,mBAAmBC,IACzCjF,KAAKw0I,IAAM,IACrBA,EAAOrvI,gBACVR,KAAM6vI,EAAO7vI,QAEjB,CACF,CAAE,MAAOzY,GACPuX,EAAW,yCAA0ClB,GAAY3N,MACnE,GAGI2/I,EAAsB9jG,IAAkB,IAAAgkG,EAAA,OACT,QADSA,EACtC,OAANhkG,QAAM,IAANA,OAAM,EAANA,EAAQsuB,QAAQzwD,MAAM,KAAKlnB,MAAM,UAAE,IAAAqtJ,IAAI,EAAE,EAM3C,OACEnqJ,cAACgsC,GAAM,CAACpzB,KAAM8R,EAAWC,QAASA,EAASna,SAAS,KAAIrR,SACtDsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cARCR,IAAoC,IAAD45F,EACvDilC,EAAsB,QAAZjlC,EAAC55F,EAAK8nB,cAAM,IAAA8xE,IAAI,GAAG,IAQzBj5F,YAAU,EAAArsB,SAAA,CAEVa,cAACwsC,GAAW,CAAArtC,SACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,uCAE3BsR,eAAC87B,GAAa,CAAAptC,SAAA,CACZa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,gDAI3Ba,cAACumB,GAAW,CAACC,MAAM,SAAQrnB,SACzBa,cAACmnB,GAAS,CACR/oB,KAAK,SACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACThf,YAAY,wBACZuf,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAO0lC,OACrBvmB,WAAYvB,EAAK5d,OAAO0lC,OAAS9nB,EAAK5d,OAAO0lC,OAAOnzC,QAAU,OAGlEQ,cAACgR,IAAU,CAAA7R,SAAC,sJAMXwqJ,EAAaE,SACZ7pJ,cAAC6oJ,GAA2B,CAACh9I,KAAM89I,EAAaE,UAEjDF,EAAaG,QACZ9pJ,cAAC6oJ,GAA2B,CAACh9I,KAAM89I,EAAaG,SAElDr5I,eAACqI,KAAG,CAAC3F,WAAW,aAAaD,QAAQ,OAAOk3I,QAAS,EAAEjrJ,SAAA,CACrDa,cAAC8Y,KAAG,CAACuhB,UAAW,IAAM0N,YAAa,EAAE5oC,SACnCa,cAACihG,GAAW,MAEdjhG,cAACgR,IAAU,CAAA7R,SAAC,oFAMhBa,cAACmsC,GAAa,CAAAhtC,SACZsR,eAACqI,KAAG,CACF5F,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACfx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CAEhCa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQE,OACxBqiB,QAASm0G,IAEX75H,cAAC8Y,KAAG,CAACG,GAAK0e,EAAWX,OAAa,EAAJ,EAAO6W,GAAIlW,EAAWX,OAAS,EAAI,EAAE73B,SACjEa,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQM,SACxB5G,KAAK,SACL6oB,QAASA,oBAMZ,ECmJE2kI,OApTkDnrJ,IAE1D,IAF2D,cAChEorJ,GACDprJ,EACC,MAAM,eACJgmD,EAAc,YACdhC,EAAW,aACXJ,EAAY,mBACZC,EAAkB,OAClBl/C,EAAM,MACNuhD,GACEZ,MACInzC,YAAawD,GAAoB7V,qBAAWmS,IAElDw7B,UAAW49G,EACX39G,UAAWoxG,EACXtzH,UAAWuzH,GACTxxG,MAEFE,UAAW69G,EACX59G,UAAW69G,EACX//H,UAAWggI,GACTj+G,MAEFE,UAAWg+G,EACX/9G,UAAWg+G,EACXlgI,UAAWmgI,GACTp+G,MACGq+G,EAAYC,GAAiBt5I,oBAAS,IACvC,WAAE0H,GAAeQ,MAGrB+D,OAAO,WACL06C,EAAU,MACVL,EACArjB,SAAS,mBACPyf,EAAkB,UAClBe,EAAS,cACTjhB,EAAa,gBACb4nB,GACD,mBACD5H,EAAkB,iBAClBC,EAAgB,QAChBznC,GACD,SACDy3C,EAAQ,aACRF,EAAY,cACZpB,EAAa,eACbuC,EAAc,YACdlB,GACEwB,MAEE,WAAErR,GAAeJ,GACrBC,EACAC,EACAC,GAGI62F,GACH9nG,IACAkR,GAAoB,OAANvwD,QAAM,IAANA,KAAQgsC,SACjBiT,KAAkBC,IAClBD,GAEFmoG,EAAgBA,CACpB9kG,EACA+kG,EACAv4G,KACI,IAADw4G,EAAAC,EAOH,OANAjlG,EAAS,IACJA,EACHw5D,SAAU,GACVh7D,UAAWumG,EAA+B,QAAjBC,EAAS,OAANtnJ,QAAM,IAANA,OAAM,EAANA,EAAQwnJ,cAAM,IAAAF,IAAI,GAAkB,QAAhBC,EAAS,OAANvnJ,QAAM,IAANA,OAAM,EAANA,EAAQ+hD,aAAK,IAAAwlG,IAAI,GACpEz4G,OAAQA,GAEH9D,aAAQsX,GAASrX,IACtBA,EAAMqmB,aAAermB,EAAMqmB,aAAaz/C,KAAmBurC,IAAG,IACzDA,EACHmU,8BAA+BhB,EAAW1+C,KACvC2gB,IAAC,CACAqd,SAAUrd,EAAEqd,SACZ1qC,OAAQs9F,GAAeyvB,eAG1B,GACH,EAGEu1B,EAAsBnlG,KACxBA,KACS,OAAT+O,QAAS,IAATA,MAAWx4C,MACV4lC,GACCA,EAAElQ,eAAiB+T,EAAO/T,cAC1BkQ,EAAE9P,aAAe2T,EAAO3T,YACxB8P,EAAEmyB,UAAYtuB,EAAOsuB,WAgHrB82E,EAAc54G,IAClBuS,OAAe1oD,GACXsmD,GACFqiB,EAAe8lF,EAAcnoG,GAAc,EAAOnQ,IAE1C,OAAN9uC,QAAM,IAANA,KAAQgsC,QAAUkT,GACpBoiB,EAAe8lF,EAAcloG,GAAoB,EAAMpQ,IAEzDyS,IACAklG,IACAnxI,EACE,4CACAlB,GAAYE,QACb,EAGH,OACE1H,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC29I,GAAc,CACbC,YAAa7lF,EAAMp6D,OACnBy6D,WAAYA,EACZ8L,SAAUA,EACVF,aAAcA,EACdpB,cAAeA,EACfm7E,mBAAoBtxH,EAAQttB,SAE5Ba,cAAC2lB,KAAM,CACL1U,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBppB,KAAK,SACLorB,UAAW+iI,GAAkBF,EAC7BplI,QArEgB5T,UACtB,IACEozC,OAAe1oD,GACf,MAAMgvJ,OApBmB15I,WAEvB,IAAD25I,EACH,IAAK3oG,EAAc,OAEnB,MAAMzO,EAA2ByO,EAAaP,cACxCjO,EAA0C,OAAlByO,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBR,cAC5CmpG,EAAuD,QAA5CD,EAAkB,OAAf5vF,QAAe,IAAfA,OAAe,EAAfA,EAAiBnmD,KAAKie,GAAMA,EAAEmoC,oBAAW,IAAA2vF,IAAI,GAEjE,aAAa34G,GAAmBoB,qBAC9Bw3G,EACAt3F,EAAW1+C,KAAK5K,GAAMA,EAAE4oC,WACxBW,EACAC,EACD,EAMiCq3G,GAChC,GAAIH,IAAsBz4I,IAAEC,QAAQw4I,GAKlC,OAJAtmG,EAAesmG,QACfryI,EAAW,UAAD9Y,OACEmrJ,EAAkBp5G,aAAY,oBAAA/xC,OAAmBmrJ,EAAkB9yC,kBAAiB,+CAKlG,GAAI51D,QAnFgBhxC,WACtBi5I,GAAc,GACd,MAAMa,EAAmBN,EAAmBxoG,GACtC+oG,EAAkBP,EAAmBvoG,GAE3C,GAAI6oG,GAAoBC,EAAiB,CACvC,MAAMC,EAAgBF,EAA+B,OAAZ9oG,QAAY,IAAZA,OAAY,EAAZA,EAActI,WAAa,GAC9DuxG,EAAeF,EACC,OAAlB9oG,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBvI,WACpB,GAWJ,OATIrhC,EADJyyI,GAAoBC,EACL,sBAADxrJ,OACcyrJ,EAAa,KAAAzrJ,OAAI0rJ,EAAY,kDAG1C,4BAAD1rJ,OACoByrJ,GAAazrJ,OAAG0rJ,EAAY,kDAHxD9zI,GAAY3N,OAMlBygJ,GAAc,IACP,CACT,CAAO,OACLjoG,SACOhQ,GAAmBiB,gBACxB+O,EAAa1Q,aACbgiB,EAAW1+C,KAAK2gB,GAAMA,EAAEqd,WACX,OAAbO,QAAa,IAAbA,IAAiB,IAUnB8O,SACOjQ,GAAmBiB,gBACxBgP,EAAmB3Q,aACnBgiB,EAAW1+C,KAAK2gB,GAAMA,EAAEqd,WACX,OAAbO,QAAa,IAAbA,IAAiB,IAXnB96B,EACE,yDACAlB,GAAY3N,OAEdygJ,GAAc,IACP,IAgBTA,GAAc,IACP,EAAI,EAgCkBiB,GAAoB,CAC7C,MAAMC,EAA4Bn/G,KAC/Bu3B,SAASv3B,KAAOgW,EAAaP,eAAe66C,KAAKtwD,SACjDi9G,UACCkC,EAA4B,GAC9Bp3I,EAAgBG,SACd+Y,GAAgBkC,gCAEd06H,IACAH,KAEa,OAAhBt2F,QAAgB,IAAhBA,MAAkBkO,aACnB6pF,GAA6B,IAC7BA,EAA4B,IAE5B1B,KAEAgB,IACAtnF,IAEJ,CACF,CAAE,MAAOriE,GACPuX,EAAW,0CACb,GAkC+Bha,SAExB2rJ,EAAa9qJ,cAACmU,IAAgB,CAACvX,KAAM,KAAS,iBAGlDkmD,GACCryC,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACu7B,GAAM,CACLpzB,KAAMqlI,EACNtzH,QAASqzH,EACTxtI,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAC,yCACba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,wCAI3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASs4H,IAEXh+I,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KACPs4H,IACAuN,IACAtnF,GAAa,UAKrBxzD,eAACu7B,GAAM,CACLpzB,KAAM8xI,EACN//H,QAAS8/H,EACTj6I,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAC,qCACba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,uIAM3Ba,cAACmsC,GAAa,CAAAhtC,SACZa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQC,GACxBsiB,QAAS+kI,SAKfzqJ,cAACypJ,GAAgC,CAC/B3mG,aAAcA,EACdC,mBAAoBA,EACpBr4B,UAAWmgI,EACXlgI,QAASigI,EACT/wB,SAAU+wB,EACVlB,WAAa/2G,IACXi4G,IACAW,EAAW54G,GACXsxB,GAAa,SAKpB,EClDQioF,IChSX,GAAO,GAAQ,GDgSJA,GAjQoCA,KACjD,MAAM,kBAAEzwI,GAAsB4hB,MAG5B3f,OAAO,iBAAEw2C,EAAgB,mBAAED,EAAkB,QAAEvf,IAC7C+wB,MAEE,WAAErR,GAAeJ,GACrBC,EACAC,EACAxf,EAAQyf,qBAGJ,cAAEhP,GAAkBX,KACpB7sB,EAAajB,KAEb7L,EAAOC,aAA2B,CACtCG,KAAM,WACNF,SAAUC,aAAYo9H,MAGxBt1I,qBAAU,QAAU,CAAC+X,EAAK2B,UAAUE,QAAS7B,EAAK/D,UAElD,MAAMqlI,EACJ15F,IAEA,GAAIA,EAAW,CACb,MAAM25F,EAAe35F,EAClBtxB,QAAQvkB,KAAQA,EAAElK,cAClBgD,KAAKkH,GAAMA,EAAElK,cAChB,GAAI05I,GAAgBA,EAAazuJ,OAAS,EAAG,CAC3C,MAAM0uJ,EAAc3P,GAAW0P,EAAc7P,GAAaI,KAC1D,OAAO,IAAI5+I,KAAK+uC,KAAOu/G,EAAY,IAAIz8G,OAAO,cAChD,CACF,CAEgB,EAqCZ08G,EAAwB7wI,EAC3B0lB,QAAQvkB,IAASA,EAAEyzD,aACnB36D,KAAKkH,IAAC,CACL4J,MAAO5J,EAAEvC,KACT9d,MAAOqgB,EAAEvC,SAGP4sI,EAAYp8H,EAAK05F,MAAM,OAAQ2jC,GAAeG,WAEpD,OACE53I,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC2hF,GAAI9iE,EAAWX,OAAS,EAAI,EAAE73B,SACjCsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAhDFvZ,UACfjO,EAAO6rC,MAAQ7rC,EAAOqR,IAAMrR,EAAO8rC,WACrCwV,EAAc,CACZzV,KAAM7rC,EAAO6rC,KAAKnzC,MAClB2Y,GAAIrR,EAAOqR,GAAG3Y,MACdozC,SAAU9rC,EAAO8rC,SACjBwS,WAA4B,OAAhB+R,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB/R,WAC9BD,QAA2B,OAAlB+R,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoB/J,OAAOxW,SACpC7D,OAA0B,OAAlBhsC,EAAOgsC,YAAkBrzC,EAAYqH,EAAOgsC,OACpD+V,MAAO/hD,EAAO+hD,MACdylG,OAAQxnJ,EAAOwnJ,OACf3zG,UAAW0c,EAAW1+C,KAAKkH,GAAMA,EAAEg4C,eACnCxR,qBAAsB+oG,EAAiC/3F,KAEzD+P,YAASC,SAAS,mBAAoB,CACpCC,SAAU,IACVC,MAAO,EACPC,OAAQ,mBAEZ,IA8BM/4C,YAAU,EAAArsB,SAAA,CAEVa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAG+uE,GAAI,EAAEt7F,SAChBa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SACrDa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAO,GAAGrnB,SAC/Ba,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC8nB,GAAa,CACZ1pB,KAAM,OACN2pB,QAAS,CACP,CAAEvB,MAAO,UAAWjqB,MAAO,GAC3B,CAAEiqB,MAAO,aAAcjqB,MAAO,IAEhC2qB,aAAc,EACdJ,QAAS+D,EAAK/D,QACd7P,GAAI,0CAMdxG,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,GACJpK,GAAI,EACJtZ,MAAO,CAAEc,aAAc4jB,EAAWX,OAAS,MAAQ,QAAS73B,SAE5Da,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAACk/E,GAAc,CACbn3D,QAASukI,EACTluJ,KAAK,OACLuJ,YAAY,OACZgf,WAAS,EACTvT,OAAO,SACP8T,aAAc,KACdtlB,QAASipB,EAAK5d,OAAOyiC,KACrBxnB,aACE2C,EAAK5d,OAAOyiC,KAAO7kB,EAAK5d,OAAOyiC,KAAKlwC,QAAU,GAEhDsnB,QAAS+D,EAAK/D,QACd7P,GAAI,gCACJgsE,eAAa,EACbspE,YAAU,QAIhBvsJ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,KAAIrnB,SACrBa,cAACk/E,GAAc,CACbn3D,QAASukI,EACTluJ,KAAK,KACLuJ,YAAY,KACZgf,WAAS,EACTvT,OAAO,SACP8T,aAAc,KACdtlB,QAASipB,EAAK5d,OAAOiI,GACrBgT,aAAc2C,EAAK5d,OAAOiI,GAAK2V,EAAK5d,OAAOiI,GAAG1V,QAAU,GACxDsnB,QAAS+D,EAAK/D,QACd7P,GAAI,8BACJgsE,eAAa,EACbspE,YAAU,WAKlB97I,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC4lF,GAAU,CACTmB,gBAAc,EACd9vE,GAAI,oCACJjR,QAAS,IAAIjI,KACbgI,QAAS+mC,OAASyG,IAAI,GAAI,OAAO1D,SACjCzxC,KAAK,WACL8oB,aAAc,IAAInpB,KAClB+oB,QAAS+D,EAAK/D,QACd7V,QAAQ,SACRmD,MAAM,gBAGT6yI,IAAciB,GAAeG,WAC5BroJ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC4lF,GAAU,CACTmB,gBAAc,EACd9vE,GAAI,kCACJ7Y,KAAK,SACL4H,QAAS,IAAIjI,KACbgI,QAAS+mC,OAASyG,IAAI,GAAI,OAAO1D,SACjC3oB,aAAc4lB,OAASyG,IAAI,EAAG,KAAKD,QAAQ,SAASzD,SACpD/oB,QAAS+D,EAAK/D,QACd7V,QAAQ,SACRmD,MAAM,oBAMG,OAAhB8/C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBupE,WACjBhtH,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,GACJpK,GAAI,EACJtZ,MAAO,CAAEc,aAAc4jB,EAAWX,OAAS,MAAQ,QAAS73B,SAE5Da,cAACumB,GAAW,CAACC,MAAM,iBAAiBE,YAAY,EAAKvnB,SACnDa,cAACmnB,GAAS,CACR/oB,KAAK,QACL6Y,GAAI,iCACJiV,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAO24C,MACrBx5B,WACEvB,EAAK5d,OAAO24C,MAAQ/6B,EAAK5d,OAAO24C,MAAMpmD,QAAU,SAKvDynJ,IAAciB,GAAeG,WAC5BroJ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,kBAAkBE,YAAY,EAAKvnB,SACpDa,cAACmnB,GAAS,CACR/oB,KAAK,SACL6Y,GAAI,kCACJiV,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,kBAAc1qB,EACdoF,QAASipB,EAAK5d,OAAOo+I,OACrBj/H,WACEvB,EAAK5d,OAAOo+I,OAASxgI,EAAK5d,OAAOo+I,OAAO7rJ,QAAU,YAShEQ,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTa,cAAC4rB,KAAI,CAAChb,WAAS,EAACs2B,eAAe,SAAQ/nC,SACrCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAG,OAAMptB,SAC1Ba,cAAC2lB,KAAM,CACL+jB,UAAW1pC,cAACy4E,GAAU,IACtBxnE,QAAQ,YACRmD,MAAM,YACN6T,UAAW4C,EAAK2B,UAAUE,UAAY0nC,EACtCztC,UAAWgR,EAAWX,OACtBn6B,KAAK,SAAQsC,SACd,uCAQXa,cAACwsJ,GAAsB,CAAClC,cAAeA,KA9LzCz/H,EAAKu6B,MAAM,CACT1V,KAAM,KACNx6B,GAAI,KACJy6B,cAAUnzC,EACVqzC,YAAQrzC,EACRopD,WAAOppD,EACP6uJ,YAAQ7uJ,EACRK,KAAM,GAuLmD,MACxD,EC3RP,SAAS,KAAiS,OAApR,GAAWqB,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASq2I,GAAevtJ,EAAMyX,GAC5B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,q7BACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,s7BACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,sSACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiB21I,IAClC,ICiQAC,OAjQf,SAAyB33I,GAAe,IAADimH,EAAA2xB,EAAAC,EAAAC,EAAAC,EAAAC,EACrC,MAAM,oBAAEC,EAAmB,IAAE11F,EAAG,aAAEuM,EAAY,UAAEe,EAAS,UAAEvM,GACzDtjD,GACK0jH,EAAmBC,GAAwBjnH,oBAAU,IAGtD,QAAEypI,GAAYD,KAEpB,OACExqI,eAACqI,KAAG,CAACs4G,GAAI,EAAEjyH,SAAA,CACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,QACzBsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgB/zB,WAAW,SAAQhU,SAAA,CAChEa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRsR,eAACO,IAAU,CAACN,UAAWkV,KAAWizG,mCAAmC15H,SAAA,CAAC,cACxDm4D,EAAIslD,mBAGnB/4C,GAAgBe,GACfn0D,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,EAbAm4D,IAAce,GAAaf,EAAIR,QAAkB,OAATuB,QAAS,IAATA,OAAS,EAATA,EAAWvB,MAczD3tC,CAASmuC,IACTt3D,cAACqmB,KAAU,CACTX,QAASA,IAAMm+C,EAAavM,GAC5B5mD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAGxB,QAAR0nH,EAAA1jE,EAAIyJ,YAAI,IAAAi6D,OAAA,EAARA,EAAUhyH,UAAWktD,GAAc8iE,cAClCh5H,cAACqmB,KAAU,CACTX,QAASA,IAAMgzG,EAAqBphE,EAAIR,MACxCpmD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,aAOzC7C,eAACmb,KAAI,CAAChb,WAAS,EAACuC,WAAW,SAAQhU,SAAA,CACjCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,YAGDsR,eAACmb,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAAA,CAEpDm4D,EAAIgqF,eAAe,KAAG,IACvBthJ,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAIwlD,WAAYltE,OAAO,8BAK7C5vC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDsR,eAACmb,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAAA,CAEpDm4D,EAAIiqF,gBAAgB,KAAG,IACxBvhJ,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAI2jE,YAAarrF,OAAO,8BAK9C5vC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,mBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDm4D,EAAI8hE,sBAKT4zB,GACAhtJ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,WAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpC,QAFoCwtJ,EAE5C,QAF4CC,EAEpDt1F,EAAIyJ,YAAI,IAAA6rF,OAAA,EAARA,EAAU5jJ,cAAM,IAAA2jJ,IAAIz2F,GAAc6/D,gBAMvB,QAAnB82B,EAAAv1F,EAAIi/B,uBAAe,IAAAs2D,OAAA,EAAnBA,EAAqBlvJ,QAAS,GAC7BqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,YAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAS,GAAArQ,OAAKulB,KAAWszG,+BAA8B,KAAA74H,OAAIulB,KAAWguG,gBAAiBz0H,SAEtFm4D,EAAIi/B,uBAKbv2F,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDm4D,EAAI+pF,eAIVnG,GACCl7I,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,qBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,UAEnC,QAAjB2tJ,EAAAx1F,EAAIyJ,KAAK9lD,gBAAQ,IAAA6xI,OAAA,EAAjBA,EAAmBnvJ,QAAS,EACzB25D,EAAIyJ,KAAK9lD,SAASvF,KAAKie,GACrBljB,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACO,IAAU,CAACC,QAAQ,YAAW9R,SAAA,CAAC,aACnB,IACV2tC,KAAOnZ,EAAE+6D,WACP9+C,OAAO,aACP6K,cAAe,IAAI,MAClB3N,KAAOnZ,EAAE+6D,WAAW9+C,OAAO,SAAS,MAAI,IAC3Cjc,EAAEkjE,iBAEL72F,cAAC8Y,KAAG,CAACs4G,GAAI,EAAEjyH,SAAEw0B,EAAEksB,eAGnB,oBAKZ7/C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,kBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,UAEhC,QAApB4tJ,EAAAz1F,EAAIyJ,KAAKC,mBAAW,IAAA+rF,OAAA,EAApBA,EAAsBpvJ,QAAS,EAC5B25D,EAAIyJ,KAAKC,YAAYtrD,KAAKjP,GACxBzG,cAACswF,GAAkB,CAEjB7tE,SAAUhc,EAAW4tF,aACrB9D,QAASA,IAC6B,IAAhC9pF,EAAWyhE,iBACN,IAAIjmE,SAASmJ,GAClBA,EAAQ3E,EAAWpC,WAGhBwjE,GAAYI,cACjBxhE,EAAWyhE,mBAEb,GAAA7nE,OAXMoG,EAAWyhE,qBAcvB,0BAMXtD,GACCn0D,eAACu7B,GAAM,CACLpzB,KAAM6/G,IAAsBnhE,EAAIR,KAChCnsC,QAASA,IAAM+tG,GAAsB,GACrCloH,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAC,mDAGba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMgzG,GAAsB,KAEvC14H,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IAAMk/C,EAAUtN,EAAIR,gBAO3C,EC1Cem2F,OArNf,SAA0Bl4I,GAAe,IAADimH,EAAA2xB,EAAAC,EAAAC,EAAAC,EAAAC,EACtC,MAAM,oBAAEC,EAAmB,IAAE11F,EAAG,aAAEuM,EAAY,UAAEe,EAAS,UAAEvM,GACzDtjD,GACK0jH,EAAmBC,GAAwBjnH,oBAAU,IAGtD,QAAEypI,GAAYD,KAEpB,OACExqI,eAACqI,KAAG,CAACs4G,GAAI,EAAEjyH,SAAA,CACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,QACzBsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgB/zB,WAAW,SAAQhU,SAAA,CAChEa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACgR,IAAU,CAACN,UAAWkV,KAAWizG,mCAAmC15H,SAAC,kBAIvE0kE,GAAgBe,GACfn0D,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,EAbAm4D,IAAce,GAAaf,EAAIR,QAAkB,OAATuB,QAAS,IAATA,OAAS,EAATA,EAAWvB,MAczD3tC,CAASmuC,IACTt3D,cAACqmB,KAAU,CACTX,QAASA,IAAMm+C,EAAavM,GAC5B5mD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAGxB,QAAR0nH,EAAA1jE,EAAIyJ,YAAI,IAAAi6D,OAAA,EAARA,EAAUhyH,UAAWktD,GAAc8iE,cAClCh5H,cAACqmB,KAAU,CACTX,QAASA,IAAMgzG,EAAqBphE,EAAIR,MACxCpmD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,aAOzC7C,eAACmb,KAAI,CAAChb,WAAS,EAACuC,WAAW,SAAQhU,SAAA,CACjCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,YAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAIwlD,WAAYltE,OAAO,6BAK7C5vC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAI2jE,YAAarrF,OAAO,8BAK5Co9G,GACAhtJ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,WAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpC,QAFoCwtJ,EAE5C,QAF4CC,EAEpDt1F,EAAIyJ,YAAI,IAAA6rF,OAAA,EAARA,EAAU5jJ,cAAM,IAAA2jJ,IAAIz2F,GAAc6/D,gBAMvB,QAAnB82B,EAAAv1F,EAAIi/B,uBAAe,IAAAs2D,OAAA,EAAnBA,EAAqBlvJ,QAAS,GAC7BqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,qBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAS,GAAArQ,OAAKulB,KAAWszG,+BAA8B,KAAA74H,OAAIulB,KAAWguG,gBAAiBz0H,SAEtFm4D,EAAIi/B,uBAKZ2kD,GACCl7I,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,qBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,UAEnC,QAAjB2tJ,EAAAx1F,EAAIyJ,KAAK9lD,gBAAQ,IAAA6xI,OAAA,EAAjBA,EAAmBnvJ,QAAS,EACzB25D,EAAIyJ,KAAK9lD,SAASvF,KAAKie,GACrBljB,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACO,IAAU,CAACC,QAAQ,YAAW9R,SAAA,CAAC,aACnB,IACV2tC,KAAOnZ,EAAE+6D,WACP9+C,OAAO,aACP6K,cAAe,IAAI,MAClB3N,KAAOnZ,EAAE+6D,WAAW9+C,OAAO,SAAS,MAAI,IAC3Cjc,EAAEkjE,iBAEL72F,cAAC8Y,KAAG,CAACs4G,GAAI,EAAEjyH,SAAEw0B,EAAEksB,eAGnB,oBAKZ7/C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,kBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,UAEhC,QAApB4tJ,EAAAz1F,EAAIyJ,KAAKC,mBAAW,IAAA+rF,OAAA,EAApBA,EAAsBpvJ,QAAS,EAC5B25D,EAAIyJ,KAAKC,YAAYtrD,KAAKie,GACxB3zB,cAACswF,GAAkB,CAEjB7tE,SAAUkR,EAAE0gE,aACZ9D,QAASA,IACgB,IAAvB58D,EAAEu0C,iBACE,IAAIjmE,SAASmJ,GAAYA,EAAQuoB,EAAEtvB,WACnCwjE,GAAYI,cAAct0C,EAAEu0C,mBACjC,GAAA7nE,OANOszB,EAAEu0C,qBASd,0BAMXtD,GACCn0D,eAACu7B,GAAM,CACLpzB,KAAM6/G,IAAsBnhE,EAAIR,KAChCnsC,QAASA,IAAM+tG,GAAsB,GACrCloH,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAC,mDAGba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMgzG,GAAsB,KAEvC14H,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IAAMk/C,EAAUtN,EAAIR,gBAO3C,ECyBeo2F,OA5Of,SAA0Bn4I,GAAe,IAADimH,EAAA2xB,EAAAC,EAAAC,EAAAC,EAAAC,EACtC,MAAM,oBAAEC,EAAmB,IAAE11F,EAAG,aAAEuM,EAAY,UAAEe,EAAS,UAAEvM,GACzDtjD,GACK0jH,EAAmBC,GAAwBjnH,oBAAU,IAGtD,QAAEypI,GAAYD,KAEpB,OACExqI,eAACqI,KAAG,CAACs4G,GAAI,EAAEjyH,SAAA,CACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,QACzBsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgB/zB,WAAW,SAAQhU,SAAA,CAChEa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACgR,IAAU,CAACN,UAAWkV,KAAWizG,mCAAmC15H,SAAC,kBAIvE0kE,GAAgBe,GACfn0D,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,EAbAm4D,IAAce,GAAaf,EAAIR,QAAkB,OAATuB,QAAS,IAATA,OAAS,EAATA,EAAWvB,MAczD3tC,CAASmuC,IACTt3D,cAACqmB,KAAU,CACTX,QAASA,IAAMm+C,EAAavM,GAC5B5mD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAGxB,QAAR0nH,EAAA1jE,EAAIyJ,YAAI,IAAAi6D,OAAA,EAARA,EAAUhyH,UAAWktD,GAAc8iE,cAClCh5H,cAACqmB,KAAU,CACTX,QAASA,IAAMgzG,EAAqBphE,EAAIR,MACxCpmD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,aAOzC7C,eAACmb,KAAI,CAAChb,WAAS,EAACuC,WAAW,SAAQhU,SAAA,CACjCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,eAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAIwlD,WAAYltE,OAAO,6BAK7C5vC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAI2jE,YAAarrF,OAAO,6BAK9C5vC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,uBAGDsR,eAACmb,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAAA,CAEpDm4D,EAAI8jE,kBAAkB,IAAE9jE,EAAI+jE,aAAat3C,uBAK9CipE,GACAhtJ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,WAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpC,QAFoCwtJ,EAE5C,QAF4CC,EAEpDt1F,EAAIyJ,YAAI,IAAA6rF,OAAA,EAARA,EAAU5jJ,cAAM,IAAA2jJ,IAAIz2F,GAAc6/D,gBAMvB,QAAnB82B,EAAAv1F,EAAIi/B,uBAAe,IAAAs2D,OAAA,EAAnBA,EAAqBlvJ,QAAS,GAC7BqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,YAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAS,GAAArQ,OAAKulB,KAAWszG,+BAA8B,KAAA74H,OAAIulB,KAAWguG,gBAAiBz0H,SAEtFm4D,EAAIi/B,uBAKZ2kD,GACCl7I,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,qBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,UAEnC,QAAjB2tJ,EAAAx1F,EAAIyJ,KAAK9lD,gBAAQ,IAAA6xI,OAAA,EAAjBA,EAAmBnvJ,QAAS,EACzB25D,EAAIyJ,KAAK9lD,SAASvF,KAAKie,GACrBljB,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACO,IAAU,CAACC,QAAQ,YAAW9R,SAAA,CAAC,aACnB,IACV2tC,KAAOnZ,EAAE+6D,WACP9+C,OAAO,aACP6K,cAAe,IAAI,MAClB3N,KAAOnZ,EAAE+6D,WAAW9+C,OAAO,SAAS,MAAI,IAC3Cjc,EAAEkjE,iBAEL72F,cAAC8Y,KAAG,CAACs4G,GAAI,EAAEjyH,SAAEw0B,EAAEksB,eAGnB,oBAKZ7/C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,kBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,UAEhC,QAApB4tJ,EAAAz1F,EAAIyJ,KAAKC,mBAAW,IAAA+rF,OAAA,EAApBA,EAAsBpvJ,QAAS,EAC5B25D,EAAIyJ,KAAKC,YAAYtrD,KAAKy3I,GACxBntJ,cAACswF,GAAkB,CAEjB7tE,SAAU0qI,EAAW94D,aACrB9D,QAASA,IACyB,IAAhC48D,EAAWjlF,iBACP,IAAIjmE,SAASmJ,GACXA,EAAQ+hJ,EAAW9oJ,WAErBwjE,GAAYI,cACVklF,EAAWjlF,mBAElB,GAAA7nE,OAVO8sJ,EAAWjlF,qBAavB,0BAMXtD,GACCn0D,eAACu7B,GAAM,CACLpzB,KAAM6/G,IAAsBnhE,EAAIR,KAChCnsC,QAASA,IAAM+tG,GAAsB,GACrCloH,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAC,mDAGba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMgzG,GAAsB,KAEvC14H,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IAAMk/C,EAAUtN,EAAIR,gBAO3C,ECFes2F,OAxOf,SAA0Br4I,GAAe,IAADimH,EAAA2xB,EAAAC,EAAAC,EAAAC,EAAAC,EACtC,MAAM,oBAAEC,EAAmB,IAAE11F,EAAG,aAAEuM,EAAY,UAAEe,EAAS,UAAEvM,GACzDtjD,GACK0jH,EAAmBC,GAAwBjnH,oBAAU,IAGtD,QAAEypI,GAAYD,KAEpB,OACExqI,eAACqI,KAAG,CAACs4G,GAAI,EAAEjyH,SAAA,CACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,QACzBsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgB/zB,WAAW,SAAQhU,SAAA,CAChEa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACgR,IAAU,CAACN,UAAWkV,KAAWizG,mCAAmC15H,SAAC,kBAIvE0kE,GAAgBe,GACfn0D,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,EAbAm4D,IAAce,GAAaf,EAAIR,QAAkB,OAATuB,QAAS,IAATA,OAAS,EAATA,EAAWvB,MAczD3tC,CAASmuC,IACTt3D,cAACqmB,KAAU,CACTX,QAASA,IAAMm+C,EAAavM,GAC5B5mD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAGxB,QAAR0nH,EAAA1jE,EAAIyJ,YAAI,IAAAi6D,OAAA,EAARA,EAAUhyH,UAAWktD,GAAc8iE,cAClCh5H,cAACqmB,KAAU,CACTX,QAASA,IAAMgzG,EAAqBphE,EAAIR,MACxCpmD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,aAOzC7C,eAACmb,KAAI,CAAChb,WAAS,EAACuC,WAAW,SAAQhU,SAAA,CACjCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,eAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAIwlD,WAAYltE,OAAO,6BAK7C5vC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAI2jE,YAAarrF,OAAO,6BAK9C5vC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,uBAGDsR,eAACmb,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAAA,CAEpDm4D,EAAI8jE,kBAAkB,IAAE9jE,EAAI+jE,aAAat3C,uBAK9CipE,GACAhtJ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,WAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpC,QAFoCwtJ,EAE5C,QAF4CC,EAEpDt1F,EAAIyJ,YAAI,IAAA6rF,OAAA,EAARA,EAAU5jJ,cAAM,IAAA2jJ,IAAIz2F,GAAc6/D,gBAMvB,QAAnB82B,EAAAv1F,EAAIi/B,uBAAe,IAAAs2D,OAAA,EAAnBA,EAAqBlvJ,QAAS,GAC7BqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAS,GAAArQ,OAAKulB,KAAWszG,+BAA8B,KAAA74H,OAAIulB,KAAWguG,gBAAiBz0H,SAEtFm4D,EAAIi/B,uBAKZ2kD,GACCl7I,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,qBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,UAEnC,QAAjB2tJ,EAAAx1F,EAAIyJ,KAAK9lD,gBAAQ,IAAA6xI,OAAA,EAAjBA,EAAmBnvJ,QAAS,EACzB25D,EAAIyJ,KAAK9lD,SAASvF,KAAKie,GACrBljB,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACO,IAAU,CAACC,QAAQ,YAAW9R,SAAA,CAAC,aACnB,IACV2tC,KAAOnZ,EAAE+6D,WACP9+C,OAAO,aACP6K,cAAe,IAAI,MAClB3N,KAAOnZ,EAAE+6D,WAAW9+C,OAAO,SAAS,MAAI,IAC3Cjc,EAAEkjE,iBAEL72F,cAAC8Y,KAAG,CAACs4G,GAAI,EAAEjyH,SAAEw0B,EAAEksB,eAGnB,oBAKZ7/C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,kBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,UAEhC,QAApB4tJ,EAAAz1F,EAAIyJ,KAAKC,mBAAW,IAAA+rF,OAAA,EAApBA,EAAsBpvJ,QAAS,EAC5B25D,EAAIyJ,KAAKC,YAAYtrD,KAAKie,GACxB3zB,cAACswF,GAAkB,CAEjB7tE,SAAUkR,EAAE0gE,aACZ9D,QAASA,IACgB,IAAvB58D,EAAEu0C,iBACE,IAAIjmE,SAASmJ,GAAYA,EAAQuoB,EAAEtvB,WACnCwjE,GAAYI,cAAct0C,EAAEu0C,mBACjC,GAAA7nE,OANOszB,EAAEu0C,qBASd,0BAMXtD,GACCn0D,eAACu7B,GAAM,CACLpzB,KAAM6/G,IAAsBnhE,EAAIR,KAChCnsC,QAASA,IAAM+tG,GAAsB,GACrCloH,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAC,mDAGba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMgzG,GAAsB,KAEvC14H,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IAAMk/C,EAAUtN,EAAIR,gBAO3C,ECEeu2F,OAxOf,SAA0Bt4I,GAAe,IAADimH,EAAA2xB,EAAAC,EAAAC,EAAAC,EAAAC,EACtC,MAAM,oBAAEC,EAAmB,IAAE11F,EAAG,aAAEuM,EAAY,UAAEe,EAAS,UAAEvM,GACzDtjD,GACK0jH,EAAmBC,GAAwBjnH,oBAAU,IAGtD,QAAEypI,GAAYD,KAEpB,OACExqI,eAACqI,KAAG,CAACs4G,GAAI,EAAEjyH,SAAA,CACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,QACzBsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgB/zB,WAAW,SAAQhU,SAAA,CAChEa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACgR,IAAU,CAACN,UAAWkV,KAAWizG,mCAAmC15H,SAAC,iBAIvE0kE,GAAgBe,GACfn0D,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,EAbAm4D,IAAce,GAAaf,EAAIR,QAAkB,OAATuB,QAAS,IAATA,OAAS,EAATA,EAAWvB,MAczD3tC,CAASmuC,IACTt3D,cAACqmB,KAAU,CACTX,QAASA,IAAMm+C,EAAavM,GAC5B5mD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAGxB,QAAR0nH,EAAA1jE,EAAIyJ,YAAI,IAAAi6D,OAAA,EAARA,EAAUhyH,UAAWktD,GAAc8iE,cAClCh5H,cAACqmB,KAAU,CACTX,QAASA,IAAMgzG,EAAqBphE,EAAIR,MACxCpmD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,aAOzC7C,eAACmb,KAAI,CAAChb,WAAS,EAACuC,WAAW,SAAQhU,SAAA,CACjCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,eAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAIwlD,WAAYltE,OAAO,6BAK7C5vC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAI2jE,YAAarrF,OAAO,6BAK9C5vC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,WAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDm4D,EAAIkkE,mBAKTwxB,GACAhtJ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,WAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpC,QAFoCwtJ,EAE5C,QAF4CC,EAEpDt1F,EAAIyJ,YAAI,IAAA6rF,OAAA,EAARA,EAAU5jJ,cAAM,IAAA2jJ,IAAIz2F,GAAc6/D,gBAMvB,QAAnB82B,EAAAv1F,EAAIi/B,uBAAe,IAAAs2D,OAAA,EAAnBA,EAAqBlvJ,QAAS,GAC7BqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAS,GAAArQ,OAAKulB,KAAWszG,+BAA8B,KAAA74H,OAAIulB,KAAWguG,gBAAiBz0H,SAEtFm4D,EAAIi/B,uBAKZ2kD,GACCl7I,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,qBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,UAEnC,QAAjB2tJ,EAAAx1F,EAAIyJ,KAAK9lD,gBAAQ,IAAA6xI,OAAA,EAAjBA,EAAmBnvJ,QAAS,EACzB25D,EAAIyJ,KAAK9lD,SAASvF,KAAKie,GACrBljB,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACO,IAAU,CAACC,QAAQ,YAAW9R,SAAA,CAAC,aACnB,IACV2tC,KAAOnZ,EAAE+6D,WACP9+C,OAAO,aACP6K,cAAe,IAAI,MAClB3N,KAAOnZ,EAAE+6D,WAAW9+C,OAAO,SAAS,MAAI,IAC3Cjc,EAAEkjE,iBAEL72F,cAAC8Y,KAAG,CAACs4G,GAAI,EAAEjyH,SAAEw0B,EAAEksB,eAGnB,oBAKZ7/C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,kBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,UAEhC,QAApB4tJ,EAAAz1F,EAAIyJ,KAAKC,mBAAW,IAAA+rF,OAAA,EAApBA,EAAsBpvJ,QAAS,EAC5B25D,EAAIyJ,KAAKC,YAAYtrD,KAAKie,GACxB3zB,cAACswF,GAAkB,CAEjB7tE,SAAUkR,EAAE0gE,aACZ9D,QAASA,IACgB,IAAvB58D,EAAEu0C,iBACE,IAAIjmE,SAASmJ,GAAYA,EAAQuoB,EAAEtvB,WACnCwjE,GAAYI,cAAct0C,EAAEu0C,mBACjC,GAAA7nE,OANOszB,EAAEu0C,qBASd,0BAMXtD,GACCn0D,eAACu7B,GAAM,CACLpzB,KAAM6/G,IAAsBnhE,EAAIR,KAChCnsC,QAASA,IAAM+tG,GAAsB,GACrCloH,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAC,mDAGba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMgzG,GAAsB,KAEvC14H,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IAAMk/C,EAAUtN,EAAIR,gBAO3C,EC3Kew2F,OAxE8BpuJ,IAMtC,IANuC,oBAC5C8tJ,EAAmB,KACnB13F,EAAI,aACJuO,EAAY,UACZe,EAAS,UACTvM,GACDn5D,EA+DC,OAAOc,cAAC8Y,KAAG,CAAA3Z,SAAM,OAAJm2D,QAAI,IAAJA,OAAI,EAAJA,EAAM5/C,KAAK4hD,GA9DFA,KACpB,OAAQA,EAAIokE,oBACV,IAAK,SACH,OACE17H,cAAC0sJ,GAAe,CAEdM,oBAAqBA,EACrB11F,IAAKA,EACLe,UAAWA,EACXwL,aAAcA,EACde,UAAWA,GALNtN,EAAIsM,OAQf,IAAK,UACH,OACE5jE,cAACitJ,GAAgB,CAEfD,oBAAqBA,EACrB11F,IAAKA,EACLe,UAAWA,EACXwL,aAAcA,EACde,UAAWA,GALNtN,EAAIsM,OAQf,IAAK,UACH,OACE5jE,cAACktJ,GAAgB,CAEfF,oBAAqBA,EACrB11F,IAAKA,EACLe,UAAWA,EACXwL,aAAcA,EACde,UAAWA,GALNtN,EAAIsM,OAQf,IAAK,UACH,OACE5jE,cAACotJ,GAAgB,CAEfJ,oBAAqBA,EACrB11F,IAAKA,EACLe,UAAWA,EACXwL,aAAcA,EACde,UAAWA,GALNtN,EAAIsM,OAQf,IAAK,aACH,OACE5jE,cAACqtJ,GAAgB,CAEfL,oBAAqBA,EACrB11F,IAAKA,EACLe,UAAWA,EACXwL,aAAcA,EACde,UAAWA,GALNtN,EAAIsM,OAQf,QACE,OAAO5jE,cAAAyV,WAAA,IACX,EAG8B83I,CAAaj2F,MAAY,ECqE5Ck2F,OA3I0DtuJ,IAElE,IAADuuJ,EAAAC,EAAAC,EAAAC,EAAA,IAFoE,WACxEx2F,GACDl4D,EACC,MAAO0hG,EAAUC,GAAepvF,oBAAS,IACnC,QAAEypI,GAAYD,KAEpB,OACExqI,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC6uE,GAAI,EAAExoF,SACTsR,eAACixB,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QAASA,IAAMm7E,GAAaD,GAC5B3vF,QAAQ,QACR6E,UAAU,SAAQ3W,SAAA,CACnB,QACOyhG,EAAW,OAAS,OAAO,oBAGpCA,GACCnwF,eAAAgF,WAAA,CAAAtW,SAAA,CACGi4D,EAAWhlB,cACV3hC,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,oBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,UAEjC,QAAnBsuJ,EAAAr2F,EAAWsuF,gBAAQ,IAAA+H,OAAA,EAAnBA,EAAqB9vJ,QAAS,EAAI,MAAQ,aAI7B,QAAnB+vJ,EAAAt2F,EAAWsuF,gBAAQ,IAAAgI,OAAA,EAAnBA,EAAqB/vJ,QAAS,GAC7BqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,2BAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDi4D,EAAWsuF,SACThwI,KAAKm4I,GAAO,GAAAxtJ,OAAQwtJ,EAAQ3I,OAAM,SAClC55H,KAAK,iBAOnB4vH,GACCl7I,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,qBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,UAE5B,QAAxBwuJ,EAAAv2F,EAAW2J,KAAK9lD,gBAAQ,IAAA0yI,OAAA,EAAxBA,EAA0BhwJ,QAAS,EAChCy5D,EAAW2J,KAAK9lD,SAASvF,KAAKmqC,GAC5BpvC,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACO,KAAU,CAACC,QAAQ,YAAW9R,SAAA,CAAC,aACnB,IACV2tC,KAAO+S,EAAQ6uC,WACb9+C,OAAO,eACP6K,cAAe,IAAI,MAClB3N,KAAO+S,EAAQ6uC,WAAW9+C,OAAO,SAAS,MAAI,IACjDiQ,EAAQg3C,iBAEX72F,cAAC8Y,KAAG,CAACs4G,GAAI,EAAEjyH,SAAE0gD,EAAQA,eAGzB,oBAKZ7/C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,kBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,UAEzB,QAA3ByuJ,EAAAx2F,EAAW2J,KAAKC,mBAAW,IAAA4sF,OAAA,EAA3BA,EAA6BjwJ,QAAS,EACnCy5D,EAAW2J,KAAKC,YAAYtrD,KAAKjP,GAC/BzG,cAACswF,GAAkB,CAEjB7tE,SAAUhc,EAAW4tF,aACrB9D,QAASA,IACyB,IAAhC9pF,EAAWyhE,iBACP,IAAIjmE,SAASmJ,GACXA,EAAQ3E,EAAWpC,WAErBwjE,GAAYI,cACVxhE,EAAWyhE,mBAElB,GAAA7nE,OAVOoG,EAAWyhE,qBAavB,4BAMb,ECyFQ4lF,OAzN4C5uJ,IAOpD,IAPqD,oBAC1D8tJ,EAAmB,iBACnBz0F,EAAgB,oBAChBwL,EAAmB,YACnBs2D,EAAW,aACXC,EAAY,UACZI,GACDx7H,EACC,MAAOu5H,EAAmBC,GAAwBjnH,oBAAU,GACtD8oH,EAAanjE,GACjBA,EAAWhlB,aAAY,UAAA/xC,OACT+2D,EAAWhlB,cAAY,SAAA/xC,OACxB+2D,EAAWojE,aAEpBrxG,EAAYiuC,GAChBmB,GAAoBnB,EAAWN,QAAyB,OAAhByB,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBzB,MAkB5D,OACE92D,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACqI,KAAG,CAAA3Z,SAAA,CACFa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBACf,OAATu7H,QAAS,IAATA,OAAS,EAATA,EAAWhlH,KAAI,CAAC0hD,EAAYv5D,KAAK,IAAAg9H,EAAAkzB,EAAAC,EAAAC,EAAA,OAChCx9I,eAACqI,KAAG,CAAqCs4G,GAAI,EAAEjyH,SAAA,CAC7CsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgB/zB,WAAW,SAAQhU,SAAA,CAChEa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACgR,IAAU,CACTN,UAAWkV,KAAWizG,mCAAmC15H,SAExDo7H,EAAUnjE,OAGdijE,GAAeC,GAAgBv2D,GAC9BtzD,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,EACNgqB,EAASiuC,IACTp3D,cAACqmB,KAAU,CACTX,QAASA,IAAMq+C,EAAoB3M,GACnC1mD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAGjB,QAAfunH,EAAAzjE,EAAW2J,YAAI,IAAA85D,OAAA,EAAfA,EAAiB7xH,UAAWktD,GAAc8iE,cACzC5hE,EAAWtjB,eACXhH,KAAOsqB,EAAWtjB,eAAiBhH,OAASsS,OAC1Cp/C,cAACqmB,KAAU,CACTX,QAASA,IAAMgzG,EAAqBthE,EAAWN,MAC/CpmD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,aAO3C7C,eAACmb,KAAI,CAAChb,WAAS,EAACuC,WAAW,SAAQhU,SAAA,CACjCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,SAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAGnDa,cAAC4nF,GAAQ,CACPhgF,KAAMwvD,EAAWtjB,cACjBlE,OAxEH,uBA+EP5vC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,YAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDi4D,EAAWqd,eAKlBz0E,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,oBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDi4D,EAAWquF,mBAKlBzlJ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,mBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDi4D,EAAWgiE,sBAKhB4zB,GACAhtJ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,WAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAE7B,QAF6B4uJ,EAErC,QAFqCC,EAEpD52F,EAAW2J,YAAI,IAAAitF,OAAA,EAAfA,EAAiBhlJ,cAAM,IAAA+kJ,IAAI73F,GAAc6/D,gBAMvB,QAA1Bk4B,EAAA72F,EAAWm/B,uBAAe,IAAA03D,OAAA,EAA1BA,EAA4BtwJ,QAAS,GACpCqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,YAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAS,GAAArQ,OAAKulB,KAAWszG,+BAA8B,KAAA74H,OAAIulB,KAAWguG,gBAAiBz0H,SAEtFi4D,EAAWm/B,uBAKpBv2F,cAACwtJ,GAAuB,CAACp2F,WAAYA,OAEtCkjE,GAAgBD,GACfr6H,cAAC45H,GAA0B,CAEzBhhH,KAAM6/G,IAAsBrhE,EAAWN,KACvC+iE,SAAUA,IAAMnB,GAAsB,GACtC/tG,QAASA,IAAM+tG,GAAsB,GACrCttG,SAAWP,GAvLHiwG,EAACjwG,EAAsBusC,KACvCijE,GAAeC,IACjB5B,GAAsB,GAClB7tG,EAAK4uG,gBAAgCj9H,IAAnBquB,EAAK4uG,UACzBY,EAAYjjE,EAAWN,MAENjsC,EAAK6uG,kBAAkBv4F,QAAQ5pB,GAAMA,GAAK,IAClD7B,KAAKg+B,GACZ4mF,EAAa,CAAExjE,KAAMM,EAAWN,KAAMpjB,SAAUA,MAGtD,EA6KconF,CAAcjwG,EAAMusC,GAEtBt3D,MAAK,8DACL2yD,UAAW2E,EAAW3E,UACtBqnE,kBAAkB,GATb1iE,EAAWN,QAWnB,GAAAz2D,OA3KU+2D,EAAWN,KAAI,KAAAz2D,OAAIxC,GA4K1B,QAGN,EC7KKqwJ,OA3DcA,CAC3B/5F,EACAhO,KAEA,MAAMgoG,EAAkBA,CACtBpwH,EACAC,KACI,IAADowH,EACH,MAAMxzF,EAAQ78B,EAAIrhB,MAAM+tD,GAAMA,EAAE/2B,WAAa1V,EAAK0V,WAmBlD,MAAO,IAlBQ3V,EAAIoD,QAAQspC,GAAMA,EAAE/2B,WAAa1V,EAAK0V,WACtCknB,EACX,IACKA,EACHyzF,SAAU,IAAIzzF,EAAMyzF,SAAUrwH,EAAKh1B,QACnCslJ,eAAgBvmD,EAAsB,IACjCntC,EAAMyzF,SACTrwH,EAAKh1B,UAGT,CACEulJ,WAEC,QAFSH,EAAEj6F,EAAmBz3C,MAC5BiX,GAAMA,EAAE+f,WAAa1V,EAAK0V,kBAC5B,IAAA06G,OAAA,EAFWA,EAETG,WACH76G,SAAU1V,EAAK0V,SACf26G,SAAU,CAACrwH,EAAKh1B,QAChBslJ,eAAgBvmD,EAAsB,CAAC/pE,EAAKh1B,UAExB,EAUtB++F,EAAyBsmD,GACxBA,EAASvpI,MAAMlI,GAAMA,IAAM0pF,GAAeyvB,UAG1Cs4B,EAASvpI,MAAMlI,GAAMA,IAAM0pF,GAAe0B,YAG1CqmD,EAASvpI,MAAMlI,GAAMA,IAAM0pF,GAAem5C,YAG1C4O,EAASvpI,MAAMlI,GAAMA,IAAM0pF,GAAe2B,WAIxC,aAHE,WAHA,YAHA,SAHA,YAeLx1C,EAxBuBtM,IACXA,EAAOgP,aACpBh0B,QAAQskB,GAAMA,EAAEqW,aAAe3V,EAAO2V,aACtCtJ,SAAS/M,GAAMA,EAAE2P,gCACLt3B,OAA2BqwH,EAAiB,IAoB3CK,CAAoBroG,GAEtC,MAAO,CAAEsM,YAAW,E,oBC8JPg8F,OAjMsDvvJ,IAG9D,IAADwvJ,EAAAz3C,EAAAC,EAAA,IAHgE,OACpE/wD,EAAM,SACNz+B,GAAW,GACZxoB,EACC,MAAO0hG,EAAUC,GAAepvF,oBAAS,IACnC,kBAAEgK,GAAsB4hB,MACxB,eAAE8nC,GAAmBM,MAEzB94B,UAAW8nE,EACX7nE,UAAW8nE,EACXhqF,UAAWiqF,GACTloE,MACGkiH,EAAaC,GAAkBn9I,wBACpCjV,GAEIk6I,EAAkBvwF,EAAOgP,aAAaz/C,KAC1C,CAACurC,EAAKpjD,KAAK,CACTA,MAAOA,EACP8C,OAAQ8a,EAAkBiB,MAAM+oC,GAAMA,EAAEprC,OAAS4mC,EAAItgD,SACrDkyD,YAAap3C,EAAkBiB,MAAM+oC,GAAMA,EAAEprC,OAAS4mC,EAAI4R,kBAIxDg8F,EAAqBA,KACzBn6C,IACAk6C,OAAepyJ,EAAU,EA4B3B,OACEiU,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC6uE,GAAI,EAAExoF,SACTsR,eAACixB,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QAASA,IAAMm7E,GAAaD,GAC5B3vF,QAAQ,QACR6E,UAAU,SAAQ3W,SAAA,CACnB,QACOyhG,EAAW,OAAS,OAAO,oBAGpCA,GACC5gG,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACW,QADXuvJ,EACRvoG,EAAOgP,oBAAY,IAAAu5F,OAAA,EAAnBA,EAAqBh5I,KAAI,CAACurC,EAAKpjD,KAAK,IAAAixJ,EAAAC,EAAAC,EAAAC,EAAA,OACnCx+I,eAACmb,KAAI,CAEHhb,WAAS,EACTF,UAAS,GAAArQ,OAAKsQ,KAAOsmI,oBAAmB,KAAA52I,OAAIsQ,KAAOumI,YAAa/3I,SAAA,CAEhEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOimI,aAAaz3I,SAC/Ca,cAAC4nF,GAAQ,CACPh4C,OAAO,oBACPhoC,KAAMq5C,EAAIsB,cACVuC,SAAgC,QAAxBgqG,EAAEpY,EAAgB74I,UAAM,IAAAixJ,GAAQ,QAARC,EAAtBD,EAAwBnuJ,cAAM,IAAAouJ,OAAR,EAAtBA,EAAgCppG,SAC1CmiC,2BAA2B,MAG/B9nF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOimI,aAAaz3I,SAC/Ca,cAAC4nF,GAAQ,CACPh4C,OAAO,oBACPhoC,KAAMq5C,EAAIi7E,YACVp3E,SAAgC,QAAxBkqG,EAAEtY,EAAgB74I,UAAM,IAAAmxJ,GAAa,QAAbC,EAAtBD,EAAwBn8F,mBAAW,IAAAo8F,OAAb,EAAtBA,EAAqCtpG,SAC/CmiC,2BAA2B,MAG/B9nF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACdtB,EAAQ,IAAM6pB,GACb1nB,cAACqmB,KAAU,CACTX,QAASA,KACPkpI,EAAe3tG,GACfwzD,GAAwB,EAE1B/jG,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,SAIrCtT,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOwmI,UAAUh4I,SAC3C8hD,EAAItgD,SAEPX,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOwmI,UAAUh4I,SAC3C8hD,EAAI4R,cAEP7yD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOwmI,UAAUh4I,SAC5C8hD,EAAIzG,aAEPx6C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOwmI,UAAUh4I,SAC5C8hD,EAAIkQ,eA3CFlQ,EAAI0R,cA6CJ,UAMjBliD,eAACu7B,GAAM,CACLpzB,KAAM+7F,EACNhqF,QAASkkI,EACTr+I,SAAS,KAAIrR,SAAA,CAEbsR,eAAC+7B,GAAW,CAAArtC,SAAA,CAAC,wDAC2C,OAExDsR,eAAC87B,GAAa,CAAAptC,SAAA,CACZsR,eAACmb,KAAI,CAEHhb,WAAS,EACTF,UAAS,GAAArQ,OAAKsQ,KAAOsmI,qBAAsB93I,SAAA,CAE3Ca,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOimI,aAAaz3I,SAC/Ca,cAAC4nF,GAAQ,CACPh4C,OAAO,oBACPhoC,KAAiB,OAAX+mJ,QAAW,IAAXA,OAAW,EAAXA,EAAapsG,cACnBuC,SAC+D,QADvDmyD,EACNx7F,EAAkBiB,MAAM+oC,GAAMA,EAAEprC,QAAoB,OAAXs0I,QAAW,IAAXA,OAAW,EAAXA,EAAahuJ,iBAAO,IAAAs2G,OAAA,EAA7DA,EACItxD,SAENmiC,2BAA2B,MAG/B9nF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOimI,aAAaz3I,SAC/Ca,cAAC4nF,GAAQ,CACPh4C,OAAO,oBACPhoC,KAAiB,OAAX+mJ,QAAW,IAAXA,OAAW,EAAXA,EAAazyB,YACnBp3E,SAC+D,QADvDoyD,EACNz7F,EAAkBiB,MAAM+oC,GAAMA,EAAEprC,QAAoB,OAAXs0I,QAAW,IAAXA,OAAW,EAAXA,EAAahuJ,iBAAO,IAAAu2G,OAAA,EAA7DA,EACIvxD,SAENmiC,2BAA2B,MAG/B9nF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOwmI,UAAUh4I,SAChC,OAAXwvJ,QAAW,IAAXA,OAAW,EAAXA,EAAahuJ,SAEhBX,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAGjmB,UAAWC,KAAOwmI,UAAUh4I,SAChC,OAAXwvJ,QAAW,IAAXA,OAAW,EAAXA,EAAa97F,cAEhB7yD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOwmI,UAAUh4I,SACjC,OAAXwvJ,QAAW,IAAXA,OAAW,EAAXA,EAAan0G,aAEhBx6C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIjmB,UAAWC,KAAOwmI,UAAUh4I,SACjC,OAAXwvJ,QAAW,IAAXA,OAAW,EAAXA,EAAax9F,eApCA,OAAXw9F,QAAW,IAAXA,OAAW,EAAXA,EAAah8F,eAuCpB3yD,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,qBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjB9oE,GAAG,gBACHxN,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPmpI,GAAoB,IAGxB7uJ,cAACssC,GAAY,CACXr1B,GAAG,iBACHxN,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IA9JS8wF,MAAO,IAAD7gG,EAAAu5I,EAChC,IAAIpvB,EAAa35E,EAAOgP,aAAanwC,WAClC2O,GAAMA,EAAEgnB,MAAkB,OAAXg0G,QAAW,IAAXA,OAAW,EAAXA,EAAah0G,MAAOhnB,EAAEhzB,QAAUguJ,EAAYhuJ,SAE1DwuJ,EAA0BhpG,EAAOgP,aAAah0B,QAChD,CAACxN,EAAGxd,IAAMA,EAAI2pH,IAEZsvB,EAAaD,EAAQrxH,QAAO,CAACC,EAAKw2B,EAAK12D,IAClCkgC,EAAI19B,OACC,IAAVxC,EAAW,GAAAwC,OAAMk0D,EAAI5zD,OAAM,KAAAN,OAAIk0D,EAAI1B,aAAW,IAAAxyD,OAASk0D,EAAI1B,eAE5D,IAECw8F,EAAUF,EAAQryJ,OAAO,GAAG,GAEhCqoE,EAAe,IACVhf,EACHsuB,QAAS26E,EACTlzB,YAAuC,QAA5BvmH,EAAa,QAAbu5I,EAAEG,EAAQC,WAAG,IAAAJ,IAAIG,EAAQ/3C,WAAG,IAAA3hG,IAAI05I,EAAQl4C,IACnDhiD,aAAc,IAAIg6F,KAGpBz6C,IACAk6C,OAAepyJ,EAAU,EAuIFg6G,aAIpB,E,0CClNP7S,KAAM4rD,OAAOnwG,MACbukD,KAAM4rD,OAAOzqG,MA6BE0qG,OAxBSA,CACtBC,EACAt1I,KAEA,MAAM,kBAAEsB,GAAsB4hB,KAExBqyH,EAAkBj0I,EAAkBiB,MACvCzC,GAAYA,EAAQI,OAASF,IAEhC,IAAIvS,EAAO+7F,KAAM8rD,GAAUrwG,MAC3B,YAAwB5iD,IAApBkzJ,EACK,CACL9nJ,OACA+nJ,UAAW,cAGf/nJ,EAAOA,EAAKq9C,GAAGyqG,EAAgB/pG,UAExB,CACL/9C,OACA+nJ,UAAU,QAADtvJ,OAAUuH,EAAKgoC,OAAO,KAAI,MACpC,ECzBH,MAWaggH,GAAa76I,GAGjB/U,cAAA,QAAMiT,MAFC,CAAEmB,MAAO,UAAWgiB,SAAU,WAElBj3B,SAAE4V,EAAMyO,SAErBqsI,OAhBO96I,IACpB,MAAM,KAAEnN,EAAI,YAAEuS,GAAgBpF,EACxB+6I,EAAeN,GAAgB5nJ,EAAMuS,GAE3C,OACE1J,eAAA,OAAKwC,MAAO,CAAEC,QAAS,OAAQ68I,IAAK,UAAW5wJ,SAAA,CAC7Ca,cAAA,QAAAb,SAAO2wJ,EAAaloJ,KAAKgoC,OAAO,uBAChC5vC,cAAC4vJ,GAAS,CAACpsI,OAAQssI,EAAaH,cAC5B,ECwBV,MAAMK,GAAyB5lI,OAAaC,MAAM,CAChDs6B,UAAWv6B,OAAazkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAuU1DsqJ,OApUwC/wJ,IAShD,IAADgxJ,EAAAC,EAAAl0B,EAAA,IATkD,oBACtD+wB,EAAmB,cACnBoD,EAAa,UACb9nD,EAAS,OACTniD,EAAM,cACN20E,EAAa,aACbu1B,EAAY,QACZv0B,GAAU,EAAK,SACfp0G,GAAW,GACZxoB,EACC,MAAOoxJ,EAAcC,GAAmB9+I,oBAAS,IAC1CimH,EAAUC,GAAelmH,oBAAS,IACnC,UAAEghD,GAAcy7F,GACpBkC,EAAc16I,KAAK2gB,IAAC,CAClBqd,SAAUrd,EAAEqd,SACZ66G,WAAW,GAADluJ,OAAKg2B,EAAE9jB,UAAS,KAAAlS,OAAIg2B,EAAE/jB,cAElC6zC,IAGI,aAAE96B,EAAY,OAAEpe,EAAM,SAAEkf,EAAQ,UAAEK,GACtC1B,aAA2B,CACzBC,SAAUC,aAAYglI,IACtB/kI,KAAM,aAGJ0M,EAAajB,KAwBb85H,EACJrqG,EAAO5D,eAAiBzV,KAAOqZ,EAAO5D,eAAiBzV,OAASsS,MAMlE,OACE3uC,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgB/zB,WAAW,SAAQhU,SAAA,CAChEa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRsR,eAACO,IAAU,CAACN,UAAWkV,KAAWizG,mCAAmC15H,SAAA,CAAC,UAC5DgnD,EAAO3L,gBAGlBsgF,GACCrqH,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,EACNu4H,IAAahwG,GAAYo0G,GAAW00B,GACpCxwJ,cAACqmB,KAAU,CACTX,QAASA,IAAMiyG,GAAY,GAC3BjnH,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAI/BoU,GAAY8oI,GACZxwJ,cAACqmB,KAAU,CACTX,QAASA,IAAM6qI,GAAgB,GAC/B7/I,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,aAOzC7C,eAACmb,KAAI,CAAChb,WAAS,EAACuC,WAAW,SAAQhU,SAAA,CACjCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,cAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC6vJ,GAAY,CACXjoJ,KAAMu+C,EAAO5D,cACbpoC,YAAagsC,EAAOgP,aAAa,GAAGx0D,gBAM5CX,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,YAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC6vJ,GAAY,CACXjoJ,KAAMu+C,EAAO+1E,YACb/hH,YACEgsC,EAAOgP,aAAahP,EAAOgP,aAAax3D,OAAS,GAC9Ck1D,qBAOb7yD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,YAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDgnD,EAAOsuB,eAKdz0E,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDgnD,EAAOw5D,iBAKZqtC,GACAhtJ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,WAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAGnC,QAHmC+wJ,EAEI,QAFJC,EAEpD19F,EAAU/1C,MAAME,GAAMA,EAAE82B,WAAa40D,EAAU50D,kBAAS,IAAAy8G,OAAA,EAAxDA,EACG7B,sBAAc,IAAA4B,IAAI5pD,GAAeyvB,eAK7CtlH,eAAA,QACEkX,aAAa,MACbyD,SAAUC,GAzKDvZ,UACXu+I,IACFA,EAAa,IAAKlqG,EAAQxB,UAAW95B,EAAK85B,YAC1CgzE,GAAY,GACd,IAsKMnsG,YAAU,EACVvY,MAAO,CAAEI,MAAO,QAASlU,SAAA,CAExB28H,GACC97H,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,QAGAu4H,EACC13H,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAACmnB,GAAS,CACR/oB,KAAK,YACLuJ,YAAY,eACZukB,SAAUC,EACVvqB,QAASqL,EAAO03C,UAChBv4B,WACEnf,EAAO03C,UAAY13C,EAAO03C,UAAUnlD,QAAU,GAEhD0nB,aAAoB,OAANi/B,QAAM,IAANA,OAAM,EAANA,EAAQxB,gBAK5B3kD,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpC,QAFoC88H,EAEpD91E,EAAOxB,iBAAS,IAAAs3E,IAAI,eASlC91E,EAAOxT,QAAUwT,EAAOxT,OAAOh1C,OAAS,GACvCqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,WAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDgnD,EAAOxT,cAKhB3yC,cAACyuJ,GAAqB,CACpBtoG,OAAQA,EACRz+B,SAAUA,IAAa8oI,IAGxB94B,GACCjnH,eAACqI,KAAG,CACF4S,GAAI,EACJmiB,GAAI,EACJ36B,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACfx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CAEhCa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRmD,MAAM,UACNsR,QAASA,KArOrBiyG,GAAY,EAqO+B,EAAAx4H,SAE9B+D,EAAUC,QAAQE,SAErBrD,cAAC8Y,KAAG,CACFG,GAAI0e,EAAWX,OAAS,EAAI,EAC5B6W,GAAIlW,EAAWX,OAAS,EAAI,EAAE73B,SAE9Ba,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoU,QAAQ,YACRmD,MAAM,UACN6T,UAAWuE,EAAUC,UAAYD,EAAUE,QAAQvtB,SAElD+D,EAAUC,QAAQK,yBAQ9Bs3H,GACC96H,cAAC45H,GAA0B,CAEzBhhH,KAAM03I,EACNz2B,SAAUA,IAAM02B,GAAgB,GAChC5lI,QAASA,IAAM4lI,GAAgB,GAC/BnlI,SAAWP,IACT0lI,GAAgB,GAChBz1B,EAAcjwG,EAAMs7B,EAAO,EAE7BrmD,MAAK,0DACL2yD,UAzRkBtM,IACLzpD,MAAMgzC,KACvB,IAAIgrB,IACFvU,EAAOgP,aACJh0B,QAAQ8f,GAAQA,EAAI6a,aAAe3V,EAAO2V,aAC1CtJ,SAASvR,GACRA,EAAImU,8BAA8B1/C,KAAK6kC,GAAMA,EAAE7G,eAKpDh+B,KAAKw0C,GAAwB,OAAbkmG,QAAa,IAAbA,OAAa,EAAbA,EAAe1zI,MAAM2Z,GAAMA,EAAEqd,WAAawW,MAC1D/oB,QAAQ9K,QAAY75B,IAAN65B,IA6QAokG,CAAiBt0E,GAC5B2zE,kBAAkB,GAVb3zE,EAAO2Q,QAaf,EChRQ25F,OAtE0DvxJ,IAUlE,IAVmE,oBACxE8tJ,EAAmB,QACnB/qG,EAAO,aACPq4E,EAAY,aACZuB,EAAY,aACZw0B,EAAY,cACZD,EAAa,UACb9nD,EAAS,QACTwzB,GAAU,EAAK,SACfp0G,GAAW,GACZxoB,EACC,MAAM47H,EAAgBA,CAACjwG,EAAsBs7B,KAC3C,GAAI01E,GAAgBvB,EAClB,GAAIzvG,EAAK4uG,gBAAgCj9H,IAAnBquB,EAAK4uG,UACzBoC,EAAa11E,EAAO2Q,UACf,CACL,MAAMqlE,EAAWtxG,EAAK6uG,kBAAkBv4F,QAAQ5pB,GAAMA,GAAK,IAC3D4kH,EAASx+H,SAAWyyJ,EAAczyJ,OAC9Bk+H,EAAa11E,EAAO2Q,MACpBqlE,EAASzmH,KAAKg+B,GACZ4mF,EAAa,CAAExjE,KAAM3Q,EAAO2Q,KAAMpjB,SAAUA,KAEpD,CACF,EAaIg9G,EAA0B,OAAPzuG,QAAO,IAAPA,OAAO,EAAPA,EAAS9gB,QAAQglB,GAVbwqG,EAC3B3vG,EACAsnD,MAEyBtnD,EAAKwR,SAC3BvR,GAAQA,EAAImU,gCAEW14C,MAAM2Z,GAAMA,EAAEqd,WAAa40D,EAAU50D,WAI/Di9G,CACExqG,EAAOgP,aAAah0B,QAAQskB,GAAMA,EAAEqW,aAAe3V,EAAO2V,aAC1DwsC,KAIJ,OACEtoG,cAAAyV,WAAA,CAAAtW,SACGuxJ,IAAoC,OAAhBA,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB/yJ,QAAS,GAC9C8S,eAACqI,KAAG,CAAA3Z,SAAA,CACFa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBACR,OAAhBuxJ,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBh7I,KAAI,CAACywC,EAAQtoD,IAC9BmC,cAAC8Y,KAAG,CAAiCs4G,GAAI,EAAEjyH,SACzCa,cAACiwJ,GAAc,CACbjD,oBAAqBA,EACrBoD,cAAeA,EACf9nD,UAAWA,EACXniD,OAAQA,EACR20E,cACER,GAAgBuB,EAAef,OAAgBt+H,EAEjD6zJ,aAAcA,EACdv0B,QAASA,EACTp0G,SAAUA,KACV,GAAArnB,OAZS8lD,EAAO2Q,KAAI,KAAAz2D,OAAIxC,UAiBjC,ECmJQ+yJ,OAzNgD1xJ,IAAgB,IAAD2xJ,EAAAC,EAAA,IAAd,MAAEz5F,GAAOn4D,EACvE,MAAO0hG,EAAUC,GAAepvF,oBAAS,IACnC,QAAEypI,GAAYD,KAEpB,OACExqI,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC6uE,GAAI,EAAExoF,SACTsR,eAACixB,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QAASA,IAAMm7E,GAAaD,GAC5B3vF,QAAQ,QACR6E,UAAU,SAAQ3W,SAAA,CACnB,QACOyhG,EAAW,OAAS,OAAO,oBAGpCA,GACCnwF,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,cAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDk4D,EAAMgmF,gBAIbr9I,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,oBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDk4D,EAAMk4B,eAAiB,MAAQ,YAItCvvF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,wBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDk4D,EAAMo4B,gBAAkB,MAAQ,YAIvCzvF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,sCAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDk4D,EAAMq4B,wBAA0B,MAAQ,YAI/C1vF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,6CAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDk4D,EAAMs4B,oBAAsB,MAAQ,YAI3C3vF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,wBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDk4D,EAAMu4B,mBAAqB,MAAQ,YAI1C5vF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,6BAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDk4D,EAAMw4B,eAAiB,MAAQ,YAIrCqrD,GACCl7I,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,qBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,UAEjC,QAAnB0xJ,EAAAx5F,EAAM0J,KAAK9lD,gBAAQ,IAAA41I,OAAA,EAAnBA,EAAqBlzJ,QAAS,EAC3B05D,EAAM0J,KAAK9lD,SAASvF,KAAKmqC,GACvBpvC,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACO,KAAU,CAACC,QAAQ,YAAW9R,SAAA,CAAC,aACnB,IACV2tC,KAAO+S,EAAQ6uC,WACb9+C,OAAO,aACP6K,cAAe,IAAI,MAClB3N,KAAO+S,EAAQ6uC,WAAW9+C,OAAO,SAAS,MAAI,IACjDiQ,EAAQg3C,iBAEX72F,cAAC8Y,KAAG,CAACs4G,GAAI,EAAEjyH,SAAE0gD,EAAQA,eAGzB,oBAKZ7/C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,kBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,UAE9B,QAAtB2xJ,EAAAz5F,EAAM0J,KAAKC,mBAAW,IAAA8vF,OAAA,EAAtBA,EAAwBnzJ,QAAS,EAC9B05D,EAAM0J,KAAKC,YAAYtrD,KAAKie,GAC1B3zB,cAACswF,GAAkB,CAEjB7tE,SAAUkR,EAAE0gE,aACZ9D,QAASA,IACgB,IAAvB58D,EAAEu0C,iBACE,IAAIjmE,SAASmJ,GACXA,EAAQuoB,EAAEtvB,WAEZwjE,GAAYI,cAAct0C,EAAEu0C,mBACjC,GAAA7nE,OAROszB,EAAEu0C,qBAWd,4BAMb,ECCQ6oF,OA1MkC7xJ,IAM1C,IAN2C,oBAChD8tJ,EAAmB,OACnBz3F,EAAM,eACNoO,EAAc,YACde,EAAW,YACXpM,GACDp5D,EACC,MAAOu5H,EAAmBC,GAAwBjnH,oBAAU,GAEtD0X,EAAYkuC,GAChBiB,GAAejB,EAAMP,QAAoB,OAAXwB,QAAW,IAAXA,OAAW,EAAXA,EAAaxB,MAEvC2oC,EAAa,cAEnB,OACEz/F,cAAC8Y,KAAG,CAAA3Z,SACK,OAANo2D,QAAM,IAANA,OAAM,EAANA,EAAQ7/C,KAAI,CAAC2hD,EAAOx5D,KAAK,IAAA86H,EAAAq4B,EAAAC,EAAAC,EAAA,OACxBzgJ,eAACqI,KAAG,CAAgCs4G,GAAI,EAAEjyH,SAAA,CACxCa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,UACzBsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgB/zB,WAAW,SAAQhU,SAAA,CAChEa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRsR,eAACO,IAAU,CACTN,UAAWkV,KAAWizG,mCAAmC15H,SAAA,CAC1D,SACQk4D,EAAMykC,aAGhBn4B,GAAkBe,GACjBj0D,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,EACNgqB,EAASkuC,IACTr3D,cAACqmB,KAAU,CACTX,QAASA,IAAMi+C,EAAetM,GAC9B3mD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,QAGtB,QAAVqlH,EAAAthE,EAAM0J,YAAI,IAAA43D,OAAA,EAAVA,EAAY3vH,UAAWktD,GAAc8iE,cACpC3hE,EAAM+lD,SACNtwE,KAAOuqB,EAAM+lD,SAAWtwE,OAASsS,OAC/Bp/C,cAACqmB,KAAU,CACTX,QAASA,IAAMgzG,EAAqBrhE,EAAMP,MAC1CpmD,UAAWqoH,KAAY1L,kBAAkBluH,SAEzCa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,aAO3C7C,eAACmb,KAAI,CAAChb,WAAS,EAACuC,WAAW,SAAQhU,SAAA,CACjCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,aAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC4nF,GAAQ,CAAChgF,KAAMyvD,EAAM+lD,QAASxtE,OAAQ6vD,WAK7Cz/F,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,cAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAErDa,cAAC4nF,GAAQ,CAAChgF,KAAMyvD,EAAM8hE,SAAUvpF,OAAQ6vD,WAK9Cz/F,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,SAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDk4D,EAAM0kC,YAKb/7F,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,yBAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAEpDk4D,EAAM+hE,sBAKX4zB,GACAhtJ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,WAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWszG,+BAA+B/5H,SAElC,QAFkC6xJ,EAE1C,QAF0CC,EAEpD55F,EAAM0J,YAAI,IAAAkwF,OAAA,EAAVA,EAAYjoJ,cAAM,IAAAgoJ,IAAI96F,GAAc6/D,gBAMvB,QAArBm7B,EAAA75F,EAAMk/B,uBAAe,IAAA26D,OAAA,EAArBA,EAAuBvzJ,QAAS,GAC/BqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAWkV,KAAWqzG,gCAAgC95H,SACvD,YAGDa,cAAC4rB,KAAI,CACHG,MAAI,EACJ4K,GAAI,EACJjmB,UAAS,GAAArQ,OAAKulB,KAAWszG,+BAA8B,KAAA74H,OAAIulB,KAAWguG,gBAAiBz0H,SAEtFk4D,EAAMk/B,uBAKfv2F,cAAC4wJ,GAAkB,CAACv5F,MAAOA,OAG5BqN,GACCj0D,eAACu7B,GAAM,CACLpzB,KAAM6/G,IAAsBphE,EAAMP,KAClCnsC,QAASA,IAAM+tG,GAAsB,GACrCloH,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAC,qDAGba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMgzG,GAAsB,KAEvC14H,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IAAMg/C,EAAYrN,EAAMP,gBAIxC,GAAAz2D,OAlLUg3D,EAAMP,KAAI,KAAAz2D,OAAIxC,GAmLrB,KAEJ,EC5BKszJ,OAnLgDjyJ,IAGxD,IAAD+1D,EAAAunE,EAAAxnE,EAAA0nE,EAAAC,EAAAC,EAAAC,EAAAE,EAAAC,EAAAo0B,EAAA30B,EAAA40B,EAAAC,EAAAC,EAAAC,EAAA10B,EAAA20B,EAAAx0B,EAAAy0B,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAH0D,UAC9D/pD,EAAS,cACT8nD,GACDlxJ,EACC,MACEwe,OAAO,iBACLw2C,EAAgB,QAChBxf,EAAO,iBACP6jB,EAAgB,UAChBF,EAAS,YACTC,GACD,eACDqL,EAAc,YACde,EAAW,aACXb,EAAY,UACZe,EAAS,oBACTb,EAAmB,iBACnBgB,EAAgB,uBAChBE,EAAsB,eACtBG,EAAc,qBACdnJ,EAAoB,eACpBkJ,GACEM,KAEEg1D,EAAoBrjE,IAAuB,IAAAk7F,EAAA,OACe,QADfA,EAClC,OAAblC,QAAa,IAAbA,OAAa,EAAbA,EAAe1zI,MAAM2Z,GAAMA,EAAEqd,WAAa0jB,EAAW1jB,kBAAS,IAAA4+G,IAAI,CAChE//I,UAAW,mBACXmhC,SAAU,EACVphC,SAAU,GACVsiD,aAAc,UACf,EAoBG8lE,EAAmB,OAAPhmF,QAAO,IAAPA,GAAoB,QAAbugB,EAAPvgB,EAAS8gB,mBAAW,IAAAP,OAAb,EAAPA,EACdn3B,QAnBc68F,CAAC58F,EAAsBC,IAChC6Q,aAAQ9Q,GAAM+Q,IACnB,MAAM8rF,EAAe78F,EAAI/Y,WAAWvZ,GAAMA,EAAEqrD,OAAS94B,EAAK84B,OAC1D,GAAI8jE,GAAgB,EAAG,CACrB,MAAMhgE,EAAQ78B,EAAI68F,GAClB9rF,EAAMnvC,OAAOi7H,EAAc,EAAG,IACzBhgE,EACHnI,UAAW,IAAImI,EAAMnI,UAAWgoE,EAAiBz8F,KAErD,MACE8Q,EAAMrvC,KAAK,IACNu+B,EACHy0B,UAAW,CAACgoE,EAAiBz8F,KAEjC,KAKmC,IACpCmD,QAAQi2B,GAAeA,EAAW3E,UAAUpxC,QAAQinF,IAAc,IAErE,OACE73F,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,kBAGf,QAA3Bq9H,EAAQ,OAAP9nF,QAAO,IAAPA,GAAkB,QAAXsgB,EAAPtgB,EAASwgB,iBAAS,IAAAF,OAAX,EAAPA,EAAoBr3D,cAAM,IAAA6+H,IAAI,GAAK,IACP,QAA7BE,EAAQ,OAAPhoF,QAAO,IAAPA,GAAoB,QAAbioF,EAAPjoF,EAAS8gB,mBAAW,IAAAmnE,OAAb,EAAPA,EAAsBh/H,cAAM,IAAA++H,IAAI,GAAK,GACrChC,GACAA,EAAU/8H,OAAS,IACG,QAAxBi/H,EAAQ,OAAPloF,QAAO,IAAPA,GAAe,QAARmoF,EAAPnoF,EAAS6gB,cAAM,IAAAsnE,OAAR,EAAPA,EAAiBl/H,cAAM,IAAAi/H,IAAI,GAAK,IACX,QAAtBG,EAAQ,OAAProF,QAAO,IAAPA,GAAa,QAANsoF,EAAPtoF,EAAS4gB,YAAI,IAAA0nE,OAAN,EAAPA,EAAer/H,cAAM,IAAAo/H,IAAI,GAAK,EAC7BtsH,eAAAgF,WAAA,CAAAtW,SAAA,EACmB,OAAhB+0D,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBtc,aACjB53C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,UACY,QAA3BiyJ,EAAQ,OAAP18G,QAAO,IAAPA,GAAkB,QAAX+nF,EAAP/nF,EAASwgB,iBAAS,IAAAunE,OAAX,EAAPA,EAAoB9+H,cAAM,IAAAyzJ,IAAI,GAAK,GACnC3gJ,eAACqI,KAAG,CAAA3Z,SAAA,CACFa,cAACywJ,GAAuB,CACtBzD,yBAC4BxwJ,IAA1Bk4C,EAAQT,eACkB,IAA1BS,EAAQT,cAEVgO,QAA0B,QAAnBovG,EAAE38G,EAAQwgB,iBAAS,IAAAm8F,OAAA,EAAjBA,EACLv0J,QACDwzE,MAAK,CAAC7F,EAAG8F,IACRzjC,KAAO29B,EAAEloB,eAAe66C,KAAK7sB,EAAEhuB,iBAEnC+lD,UAAWA,EACX8nD,cAAeA,EACft0B,UAA2B,OAAhB5nE,QAAgB,IAAhBA,MAAkBupE,UAC7B5B,aAAcz2D,EACdk1D,aAAcr+D,EACdo0F,aAAclrF,MAEG,OAAhBjR,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBoL,mBACU,QAA7BgyF,EAAQ,OAAP58G,QAAO,IAAPA,GAAoB,QAAb68G,EAAP78G,EAAS8gB,mBAAW,IAAA+7F,OAAb,EAAPA,EAAsB5zJ,cAAM,IAAA2zJ,IAAI,GAAK,GACtC52B,GACAA,EAAU/8H,OAAS,IACK,QAAxB6zJ,EAAQ,OAAP98G,QAAO,IAAPA,GAAe,QAARooF,EAAPpoF,EAAS6gB,cAAM,IAAAunE,OAAR,EAAPA,EAAiBn/H,cAAM,IAAA6zJ,IAAI,GAAK,IACX,QAAtBC,EAAQ,OAAP/8G,QAAO,IAAPA,GAAa,QAANuoF,EAAPvoF,EAAS4gB,YAAI,IAAA2nE,OAAN,EAAPA,EAAet/H,cAAM,IAAA8zJ,IAAI,GAAK,IAAMzxJ,cAACy2B,KAAO,UAKtC,OAAhBy9B,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBoL,mBACY,QAA7BoyF,EAAQ,OAAPh9G,QAAO,IAAPA,GAAoB,QAAbi9G,EAAPj9G,EAAS8gB,mBAAW,IAAAm8F,OAAb,EAAPA,EAAsBh0J,cAAM,IAAA+zJ,IAAI,GAAK,GACtCh3B,GACAA,EAAU/8H,OAAS,GACjBqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACqI,KAAG,CAAC+0B,GAAI,EAAE1uC,SAAA,CACTa,cAAC8tJ,GAAgB,CACfd,yBAC4BxwJ,IAA1Bk4C,EAAQT,eACkB,IAA1BS,EAAQT,cAEVskB,iBAAkBA,EAClBwL,oBAAqBA,EACrBu2D,aAAcr1D,EACdo1D,YAAat1D,EACb21D,UAAWA,EAAU59H,QAAQwzE,MAAK,CAAC7F,EAAG8F,KACpC,MAAMotD,EAAW7wF,KAAO29B,EAAE32B,eAAespD,KACvC7sB,EAAEz8B,eAEJ,OAAoB,IAAb6pF,EAAiBlzD,EAAE3T,KAAOyZ,EAAEzZ,KAAO6mE,CAAQ,OAG7B,QAAxBi0B,EAAQ,OAAPl9G,QAAO,IAAPA,GAAe,QAARm9G,EAAPn9G,EAAS6gB,cAAM,IAAAs8F,OAAR,EAAPA,EAAiBl0J,cAAM,IAAAi0J,IAAI,GAAK,GAAK5xJ,cAACy2B,KAAO,UAItC,OAAhBy9B,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBuL,aACjBz/D,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,UACS,QAAxB2yJ,EAAQ,OAAPp9G,QAAO,IAAPA,GAAe,QAARq9G,EAAPr9G,EAAS6gB,cAAM,IAAAw8F,OAAR,EAAPA,EAAiBp0J,cAAM,IAAAm0J,IAAI,GAAK,GAChCrhJ,eAACqI,KAAG,CAAC+0B,GAAI,EAAE1uC,SAAA,CACTa,cAAC+wJ,GAAW,CACV/D,yBAC4BxwJ,IAA1Bk4C,EAAQT,eACkB,IAA1BS,EAAQT,cAEVshB,OAAsB,QAAhBy8F,EAAEt9G,EAAQ6gB,cAAM,IAAAy8F,OAAA,EAAdA,EACJl1J,QACDwzE,MAAK,CAAC7F,EAAG8F,IAAMzjC,KAAO29B,EAAE2yC,SAAShgB,KAAK7sB,EAAE6sC,WAC3Cz5C,eAAgBA,EAChBe,YAAaA,EACbpM,YAAaA,KAEQ,QAAtB25F,EAAQ,OAAPv9G,QAAO,IAAPA,GAAa,QAANw9G,EAAPx9G,EAAS4gB,YAAI,IAAA48F,OAAN,EAAPA,EAAev0J,cAAM,IAAAs0J,IAAI,GAAK,GAAKjyJ,cAACy2B,KAAO,UAKpC,OAAhBy9B,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB0L,WACjB5/D,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,UACO,QAAtBgzJ,EAAQ,OAAPz9G,QAAO,IAAPA,GAAa,QAAN09G,EAAP19G,EAAS4gB,YAAI,IAAA88F,OAAN,EAAPA,EAAez0J,cAAM,IAAAw0J,IAAI,GAAK,GAC9BnyJ,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTa,cAACstJ,GAAS,CACRN,yBAC4BxwJ,IAA1Bk4C,EAAQT,eACkB,IAA1BS,EAAQT,cAEVqhB,KAAkB,QAAd+8F,EAAE39G,EAAQ4gB,YAAI,IAAA+8F,OAAA,EAAZA,EACFv1J,QACDwzE,MAAK,CAAC7F,EAAG8F,IAAMzjC,KAAO29B,EAAEqyC,YAAY1f,KAAK7sB,EAAEusC,cAC9Cj5C,aAAcA,EACde,UAAWA,EACXvM,UAAWA,WAQvBr4D,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACqI,KAAG,CAAC5F,QAAQ,OAAM/T,SAAA,CACjBa,cAACuyJ,GAAW,IACZvyJ,cAAC8Y,KAAG,CAACG,GAAI,EAAE9Z,SACTa,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,kCAK/B,EC9EIqzJ,OAvGgCA,KAC7C,MACE90I,OAAO,iBACLw2C,EAAgB,mBAChBD,EAAkB,QAClBvf,EAAO,MACPqjB,EAAK,WACLK,EAAU,QACV3rC,EAAO,kBACPqwC,GACD,SACDoH,EAAQ,aACRF,EAAY,cACZpB,EAAa,YACbJ,GACEiD,MAEE,WAAErR,EAAU,iBAAEW,GAAqBf,GACvCC,EACAC,EACAxf,EAAQyf,mBACRzf,IAEK8Z,EAAYikG,GAAUrhJ,IAAMK,SAAS,GACtCkmB,EAAajB,KAKnB,OACE12B,cAAC8Y,KAAG,CAAA3Z,SACD80D,GAAsBvf,GAAWwf,GAChCzjD,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACZw4B,EAAWX,QACVh3B,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTa,cAACw3H,GAAa,CACZpjE,WAAYW,EACZd,mBAAoBA,EACpBC,iBAAkBA,EAClBsR,YAAa9wB,EACbttB,UAAU,QAKlBpnB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACZ41D,EAAiBp3D,QAAU,GAC1BqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACk4F,KAAI,CACH37F,MAAOiyD,EACPv9C,QAAQ,aACRP,UAAWkV,KAAWuyE,OACtBluE,SA/BEyoI,CAACr1I,EAA8BgC,KACrDozI,EAAOpzI,EAAS,EA8B8BlgB,SAEzB41D,EAAiBr/C,KAAK4yF,GACrBtoG,cAACu4F,KAAG,CAEF/xE,MAAK,GAAAnmB,OAAKioG,EAAU/1F,UAAS,KAAAlS,OAAIioG,EAAUh2F,WADtCg2F,EAAU50D,gBAOzB1zC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SACf41D,EAAiBvG,IAChBxuD,cAACmxJ,GAAkB,CACjB7oD,UAAWvzC,EAAiBvG,GAC5B4hG,cAAeh8F,gBAQ7Bp0D,cAAC29I,GAAc,CACbC,YAAa7lF,EAAMp6D,OACnBy6D,WAAYA,EACZ8L,SAAUA,EACVF,aAAcA,EACdpB,cAAeA,EACfm7E,mBAAoBtxH,EAAQttB,SAE5BsR,eAACkV,KAAM,CACL1U,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBgC,SAAU60C,EACVp3C,QAASA,IAAM88C,IAAcrjE,SAAA,CAE5B29D,GAAqB98D,cAACmU,IAAgB,CAACvX,KAAM,MAC5CkgE,GAAqB,kBAK3B,EChGH,MAAM61F,GAA4B,CACvCC,yBAA0BxoI,OAEvB5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACV7kB,IAAIonC,OAASwG,QAAQ,OAAOzD,SAAU3sC,EAAUqC,WAAWS,SAC9D6sJ,yBAA0BzoI,OAEvB5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACVkjF,KACC,4BACA,CAAC99D,EAAuBlrB,IACtBkrB,GAAYlrB,EAAO/e,IAAIiqC,EAAUzsC,EAAUqC,WAAWS,WAE5D8sJ,yBAA0B1oI,OAEvB5kB,SAAStC,EAAUqC,WAAWC,UACjCutJ,yBAA0B3oI,OAEvB5kB,SAAStC,EAAUqC,WAAWC,UACjCwtJ,yBAA0B5oI,OAEvB5kB,SAAStC,EAAUqC,WAAWC,WAGtBytJ,GAAyBA,KACpC,IAAIxuI,EAAc,CAChByuI,mBAAoB9oI,OAAa5kB,SAAStC,EAAUqC,WAAWC,UAC/D2tJ,0BAA2B/oI,OAExB5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,KAAM4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OACjDC,QACC1C,EAAUqC,WAAWc,mBACrBnD,EAAUqC,WAAWW,cAEzBktJ,mBAAoBhpI,OAEjB5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,KAAM4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OACjDC,QACC1C,EAAUqC,WAAWc,mBACrBnD,EAAUqC,WAAWW,cAEzBmtJ,qBAAsBjpI,OAEnBzkB,IAAI,KAAM4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OACjDC,QAAQ1C,EAAUqC,WAAWc,mBAAoB,CAChD7G,QAAS0D,EAAUqC,WAAWW,aAC9BotJ,oBAAoB,IAErB9jE,WACAxoE,YAGL,OAAOoD,OAAaC,MAAM5F,EAAO,E,yBCvCpB8uI,OArB0Dr0J,IAGlE,IAHmE,QACxEM,EAAO,WACPg0J,GAAa,GACdt0J,EACC,MAAMy4B,EAAajB,KACnB,OACEjmB,eAACqI,KAAG,CACF+0B,GAAIlW,EAAWX,OAAS,EAAI,EAC5BtL,GAAIiM,EAAWX,OAAS,EAAI,EAC5B7jB,WAAW,aACXD,QAAQ,OACRxC,UAAWC,KAAO8iJ,iBAAiBt0J,SAAA,CAEnCa,cAAA,QAAM0Q,UAAWC,KAAO+iJ,qBACvBF,EAAaxzJ,cAAC20E,GAAU,IAAM30E,cAACihG,GAAW,IAC3CjhG,cAACgR,IAAU,CAACC,QAAQ,QAAQP,UAAWC,KAAOgjJ,sBAAsBx0J,SACjEK,MAEC,EC0JKo0J,OA3KiD10J,IAIzD,IAJ0D,KAC/D2rB,EAAI,aACJ3D,EAAY,SACZE,GACDloB,EACC,OACEuR,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,aAAaI,gBAAc,EAAAznB,SAC5Ca,cAACmnB,GAAS,CACRC,SAAUA,EACVhpB,KAAK,qBACL6Y,GAAE,GAAA5W,OAAK6mB,EAAamhC,YAAW,uBAC/Bn8B,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,aAAcA,EAAa3U,UAC3B3Q,QAASipB,EAAK5d,OAAO4mJ,mBACrBznI,WACEvB,EAAK5d,OAAO4mJ,mBACRhpI,EAAK5d,OAAO4mJ,mBAAmBr0J,QAC/B,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACmnB,GAAS,CACRC,SAAUA,EACVhpB,KAAK,qBACL6Y,GAAE,GAAA5W,OAAK6mB,EAAamhC,YAAW,uBAC/Bn8B,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,aAAcA,EAAa5U,SAC3B1Q,QAASipB,EAAK5d,OAAO6mJ,mBACrB1nI,WACEvB,EAAK5d,OAAO6mJ,mBACRjpI,EAAK5d,OAAO6mJ,mBAAmBt0J,QAC/B,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CACRC,SAAUA,EACVhpB,KAAK,qBACL6Y,GAAE,GAAA5W,OAAK6mB,EAAamhC,YAAW,uBAC/Bn8B,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,aAAcA,EAAa20E,aAC3Bj6F,QAASipB,EAAK5d,OAAO8mJ,mBACrB3nI,WACEvB,EAAK5d,OAAO8mJ,mBACRlpI,EAAK5d,OAAO8mJ,mBAAmBv0J,QAC/B,YAMdQ,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,UAAUI,gBAAc,EAAAznB,SACzCa,cAACmnB,GAAS,CACRC,SAAUA,EACVhpB,KAAK,qBACL6Y,GAAE,GAAA5W,OAAK6mB,EAAamhC,YAAW,uBAC/Bn8B,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,aAAcA,EAAa40E,QAC3Bl6F,QAASipB,EAAK5d,OAAO+mJ,mBACrB5nI,WACEvB,EAAK5d,OAAO+mJ,mBACRnpI,EAAK5d,OAAO+mJ,mBAAmBx0J,QAC/B,WAMdiR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,OAAOI,gBAAc,EAAAznB,SACtCa,cAACmnB,GAAS,CACRC,SAAUA,EACVhpB,KAAK,qBACL6Y,GAAE,GAAA5W,OAAK6mB,EAAamhC,YAAW,uBAC/Bn8B,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,aAAcA,EAAa60E,KAC3Bn6F,QAASipB,EAAK5d,OAAOgnJ,mBACrB7nI,WACEvB,EAAK5d,OAAOgnJ,mBACRppI,EAAK5d,OAAOgnJ,mBAAmBz0J,QAC/B,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,SAAQrnB,SACzBa,cAACmnB,GAAS,CACRlQ,GAAE,GAAA5W,OAAK6mB,EAAamhC,YAAW,uBAC/BjhC,SAAUA,EACVhpB,KAAK,qBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,aAAcA,EAAa80E,SAC3Bp6F,QAASipB,EAAK5d,OAAOinJ,mBACrB9nI,WACEvB,EAAK5d,OAAOinJ,mBACRrpI,EAAK5d,OAAOinJ,mBAAmB10J,QAC/B,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,QAAOrnB,SACxBa,cAACmnB,GAAS,CACRC,SAAUA,EACVhpB,KAAK,qBACL6Y,GAAE,GAAA5W,OAAK6mB,EAAamhC,YAAW,uBAC/Bn8B,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,aAAcA,EAAa+0E,MAC3Br6F,QAASipB,EAAK5d,OAAOknJ,mBACrB/nI,WACEvB,EAAK5d,OAAOknJ,mBACRtpI,EAAK5d,OAAOknJ,mBAAmB30J,QAC/B,cAMb,E,qBC8DQ40J,OA9MmDl1J,IAK3D,IAADm1J,EAAA,IAL6D,OACjEnqG,EAAM,UACNjC,EAAS,cACTqsG,EAAa,gBACblsG,GACDlpD,EACC,MAAOkoB,EAAUqyE,GAAehoF,oBAAS,IAClCmvF,EAAUC,GAAepvF,oBAAS,GACnCoZ,EAAOC,aAAwB,CACnCC,SAAUC,aAAYupI,IACtBtpI,KAAM,cAGN0hB,UAAW49G,EACX39G,UAAWoxG,EACXtzH,UAAWuzH,GACTxxG,MACG+2C,EAAkBC,GAAuBhyE,oBAAkB,GAC5DkmB,EAAajB,KAEnB5jB,qBAAU,KACR,IAAImV,EAIFA,GAHG4C,EAAK2B,UAAUC,SAGPjI,GAAuB+vI,GAAqB1pI,EAAKnG,WAE9D++D,EAAoBx7D,EAAS,GAC5B,CAAC4C,EAAK2B,UAAUE,QAAS7B,EAAK/D,QAAS+D,EAAK2B,YA2C/C,OACExsB,cAAAyV,WAAA,CAAAtW,SACEsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cA7CAA,CACnBmpI,EACAn3I,KAEK,OAALA,QAAK,IAALA,KAAO6vH,kBACP,IAAIhvH,EAAsB,CACxB49E,QAAS04D,EAAmBR,mBAC5Bj4D,KAAMy4D,EAAmBP,mBACzB1hJ,UAAWiiJ,EAAmBX,mBAC9BvhJ,SAAUkiJ,EAAmBV,mBAC7B73D,MAAOu4D,EAAmBL,mBAC1Bn4D,SAAUw4D,EAAmBN,mBAC7Br4D,aAAc24D,EAAmBT,mBAEjC1rG,YAAaJ,EAAUI,YACvBmW,UAAWvW,EAAUuW,UAErB9qB,SAAUwW,EAAOxW,UAEnB4gH,EAAcp2I,GACdu7E,GAAY,EAAK,IA0BbjuE,YAAU,EACV9a,UAAWC,KAAO8jJ,kBAAkBt1J,SAAA,CAEpCsR,eAAC+6F,KAAS,CACR5K,SAAUA,EACV32E,SAAUA,KACR42E,GAAaD,EAAS,EACtBzhG,SAAA,CAEFa,cAACyrG,KAAgB,CACfC,WAAYtkF,EAAWpnB,cAACwhG,KAAc,IAAM,GAC5C9wF,UAAS,GAAArQ,OAAKsQ,KAAO+jJ,eAAc,KAAAr0J,OACjCulB,KAAW+uI,8BAA6B,KAAAt0J,OACtCugG,EAAW,GAAKjwF,KAAOikJ,aAAcz1J,SAEzCa,cAACgR,IAAU,CACTN,UAAS,GAAArQ,OAAKsQ,KAAOkkJ,gBAAe,KAAAx0J,OAAIsQ,KAAOmkI,cAC/C7jI,QAAQ,KAAI9R,SAEZa,cAAC8Y,KAAG,CACFg8H,aAAa,SACb5hI,QAASykB,EAAWX,OAAS,OAAS,OAAO73B,SAE7Ca,cAACgR,IAAU,CAACN,UAAWkV,KAAWkvI,SAAS31J,SAAA,GAAAkB,OAChC,OAAT4nD,QAAS,IAATA,OAAS,EAATA,EAAW11C,UAAS,KAAAlS,OACT,OAAT4nD,QAAS,IAATA,GAAmB,QAAVosG,EAATpsG,EAAW31C,gBAAQ,IAAA+hJ,OAAV,EAATA,EAAqBr5H,6BAI/Bh7B,cAAC2rG,KAAgB,CACfj7F,UAAWkV,KAAW+uI,8BAA8Bx1J,SAEpDa,cAAA,OAAK0Q,UAAWkV,KAAWu1E,QAAQh8F,SACjCsR,eAAA,OAAKC,UAAWkV,KAAWw1E,eAAej8F,SAAA,CACxCa,cAAC4zJ,GAAmB,CAClB/oI,KAAMA,EACN3D,aAAc+gC,EACd7gC,SAAUA,IAEXA,EACC3W,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAC1Ba,cAAC0hC,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QApED86D,KACnB+pE,GAAkB,EAoEEt5I,QAAQ,QACR6E,UAAU,SAAQ3W,SACnB,qBAIHa,cAAC0hC,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QA1EDw/D,KACjBuU,GAAY,EAAM,EA0EAxoF,QAAQ,QACR6E,UAAU,SAAQ3W,SACnB,oBAKHsR,eAACqI,KAAG,CACF4S,GAAI,EACJxY,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SAAQ/nC,SAAA,CAEvBa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRmD,MAAM,UACNsR,QAvFCqvI,KACnBt7D,GAAY,GACZ5uE,EAAKw5H,cACLx5H,EAAKu6B,OAAO,EAoF4BjmD,SAErB+D,EAAUC,QAAQE,SAErBrD,cAAC8Y,KAAG,CACFG,GAAK0e,EAAWX,OAAa,EAAJ,EACzB6W,GAAIlW,EAAWX,OAAS,EAAI,EAAE73B,SAE9Ba,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoU,QAAQ,YACRmD,MAAM,UACN6T,SAAUu7D,EAAiBrkF,SAE1B+D,EAAUC,QAAQK,6BASnCiN,eAACu7B,GAAM,CACLpzB,KAAMqlI,EACNtzH,QAASqzH,EACTxtI,SAAS,KAAIrR,SAAA,CAEbsR,eAAC+7B,GAAW,CAAArtC,SAAA,CACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oCAGzBa,cAACgR,IAAU,CAACN,UAAU,WAAUvR,SAAA,GAAAkB,OAAK4nD,EAAU11C,UAAS,KAAAlS,OAAI4nD,EAAU31C,eAExEtS,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3Ba,cAACmsC,GAAa,CAACC,OAAK,EAAAjtC,SAClBsR,eAACqI,KAAG,CACF5F,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACfx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CAEhCa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASs4H,IAEXh+I,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAlIuBsvI,KACnC5sG,EAAgBH,EAAUI,aAC1B21F,GAAkB,gBAsIf,ECjEQiX,OAjKqC/1J,IAG7C,IAH8C,KACnD2rB,EAAI,aACJ3D,GACDhoB,EACC,OACEuR,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,aAAYrnB,SAC7Ba,cAACmnB,GAAS,CACR/oB,KAAK,qBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,UACZgf,WAAS,EACTO,aAAcA,EAAa3U,UAC3B3Q,QAASipB,EAAK5d,OAAO4mJ,mBACrBznI,WACEvB,EAAK5d,OAAO4mJ,mBACRhpI,EAAK5d,OAAO4mJ,mBAAmBr0J,QAC/B,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACmnB,GAAS,CACR/oB,KAAK,qBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,UACZgf,WAAS,EACTO,aAAcA,EAAa5U,SAC3B1Q,QAASipB,EAAK5d,OAAO6mJ,mBACrB1nI,WACEvB,EAAK5d,OAAO6mJ,mBACRjpI,EAAK5d,OAAO6mJ,mBAAmBt0J,QAC/B,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CACR/oB,KAAK,qBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,SACZgf,WAAS,EACTO,aAAcA,EAAa20E,aAC3Bj6F,QAASipB,EAAK5d,OAAO8mJ,mBACrB3nI,WACEvB,EAAK5d,OAAO8mJ,mBACRlpI,EAAK5d,OAAO8mJ,mBAAmBv0J,QAC/B,YAMdiR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,GAAIoK,GAAI,GAAGx3B,SACxBa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAACmnB,GAAS,CACR/oB,KAAK,qBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,mBACZgf,WAAS,EACTO,aAAcA,EAAa40E,QAC3Bl6F,QAASipB,EAAK5d,OAAO+mJ,mBACrB5nI,WACEvB,EAAK5d,OAAO+mJ,mBACRnpI,EAAK5d,OAAO+mJ,mBAAmBx0J,QAC/B,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAACmnB,GAAS,CACR/oB,KAAK,qBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,aACZgf,WAAS,EACTO,aAAcA,EAAa60E,KAC3Bn6F,QAASipB,EAAK5d,OAAOgnJ,mBACrB7nI,WACEvB,EAAK5d,OAAOgnJ,mBACRppI,EAAK5d,OAAOgnJ,mBAAmBz0J,QAC/B,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,SAAQrnB,SACzBa,cAACmnB,GAAS,CACR/oB,KAAK,qBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,SACZgf,WAAS,EACTO,aAAcA,EAAa80E,SAC3Bp6F,QAASipB,EAAK5d,OAAOinJ,mBACrB9nI,WACEvB,EAAK5d,OAAOinJ,mBACRrpI,EAAK5d,OAAOinJ,mBAAmB10J,QAC/B,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,QAAOrnB,SACxBa,cAACmnB,GAAS,CACR/oB,KAAK,qBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,eACZgf,WAAS,EACTO,aAAcA,EAAa+0E,MAC3Br6F,QAASipB,EAAK5d,OAAOknJ,mBACrB/nI,WACEvB,EAAK5d,OAAOknJ,mBACRtpI,EAAK5d,OAAOknJ,mBAAmB30J,QAC/B,cAMb,EC1IA,MAAM+0J,GAAsBnqI,OAAaC,MAAM,CACpD0pI,mBAAoB3pI,OAEjB5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClDkuJ,mBAAoBzpI,OAEjB5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDmuJ,mBAAoB1pI,OAEjB5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDwuJ,mBAAoB/pI,OAEjB5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClDquJ,mBAAoB5pI,OAEjB5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDuuJ,mBAAoB9pI,OAEjB5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClDsuJ,mBAAoB7pI,OAEjB5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAGvCuvJ,GAA+B,CAC1C7sG,YAAa,EACb3U,SAAU,EACVnhC,UAAW,GACXD,SAAU,GACVupF,aAAc,GACdC,QAAS,GACTE,SAAU,GACVD,KAAM,GACNE,MAAO,GACPz9B,WAAW,GAmPE22F,IC9TX,GAAO,GAAQ,GAAO,GD8TXA,GAzO2Cj2J,IAKnD,IAADk2J,EAAA,IALqD,OACzDlrG,EAAM,WACNmrG,EAAU,iBACV5oG,EAAgB,cAChB6oG,GAAgB,GACjBp2J,EACC,MAAOg0J,EAAoBqC,GAAyB9jJ,mBAAS,GACvDoZ,EAAOC,aAAwB,CACnCG,KAAM,WACNF,SAAUC,aAAYupI,OAGtB5nH,UAAW2sD,EACX1sD,UAAW+rD,EACXjuE,UAAWguE,GACTjsD,MACE,WAAEtzB,GAAeQ,MAChB6pE,EAAkBC,GAAuBhyE,oBAAkB,GAC5DkmB,EAAajB,KAEnB5jB,qBAAU,KACR,IAAImV,EAIFA,GAHG4C,EAAK2B,UAAUC,SAGPjI,GAAuB+vI,GAAqB1pI,EAAKnG,WAE9D++D,EAAoBx7D,EAAS,GAC5B,CAAC4C,EAAK2B,UAAUE,QAAS7B,EAAK/D,UAEjChU,qBAAU,KAENuiJ,GACAA,EAAW13J,OAAS,GACpB03J,EAAW34I,MAAM84I,GAAQA,EAAIh3F,aAE7B+2F,EACEF,EAAW34I,MAAM84I,GAAQA,EAAIh3F,YAAYnW,YAE7C,GACC,CAACgtG,IAEJ,MAWMf,EAAiBrsG,IACrB,IAAIwtG,EAEFA,EADExtG,EAAUI,YAAc,EACRR,GAAcK,gBAAgBD,GAE9BJ,GAAcG,gBAAgBC,GAGlDwtG,EACG9qJ,MAAM4gB,IACDA,IACFkhC,IACAtzC,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC/D,IAEDrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAG1C4oD,EAAmBC,IACvBR,GAAcO,gBAAgB8B,EAAOxW,SAAU2U,GAC5C19C,MAAM4gB,IACDA,IACFkhC,IACAtzC,EACEjW,EAAUuB,SAASC,QAAQE,YAC3BqT,GAAYE,SAEhB,IAEDrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EA+ChD,OACEiR,eAAAgF,WAAA,CAAAtW,SAAA,EACIm2J,GACAt1J,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,sBAK7Ca,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CACR1iE,GAAG,yCACHyO,QA9B0BgwI,KAHhCp8D,GAIY,EA6B6Bn6F,SACpC,gCAKDm2J,GAAiBD,GAAcA,EAAW13J,OAAS,GACnDqC,cAAAyV,WAAA,CAAAtW,SACEa,cAACumB,GAAW,CACVC,MAAM,oBACNC,YAAY,oEAAmEtnB,SAE/EsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC8+E,GAAM,CACL1rE,OAAO,SACP6D,GAAG,iCACH7Y,KAAK,gBACL2pB,QAASstI,EAAW3/I,KAAK8/I,IAAG,CAC1BhvI,MAAM,GAADnmB,OAAKm1J,EAAIjjJ,UAAS,KAAAlS,OAAIm1J,EAAIljJ,UAC/B/V,MAAOi5J,EAAIntG,gBAEb9rD,MAAO22J,EACPjpI,SA1Cd5M,IAKAk4I,EAAsBjxH,OAAOjnB,EAAMnH,OAAO3Z,OAAO,MAwCtC22J,KACwC,QADtBkC,EACjBC,EAAW34I,MAAM84I,GAAQA,EAAIh3F,mBAAU,IAAA42F,OAAA,EAAvCA,EAAyC/sG,cACzCroD,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW+vI,mBAAmBx2J,SAC5Ca,cAAC2lB,KAAM,CACL1O,GAAG,qCACHyO,QA1DmBkwI,KAvEN/pJ,QAwEP,CACpB6nC,SAAUwW,EAAOxW,SACjB2U,YAAa6qG,GAzEfrrG,GAAcM,uBAAuBt8C,GAClClB,MAAM4gB,IACDA,IACFkhC,IACAtzC,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC/D,IAEDrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAmEnC,EAuDcyR,QAAQ,YACRP,UAAWkV,KAAWK,uBAAuB9mB,SAE5C+D,EAAUC,QAAQI,sBAQjCvD,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACRk2J,GACCA,EAAW13J,OAAS,GACpB03J,EAAW3/I,KAAKuyC,GACdjoD,cAACo0J,GAAoB,CAEnBlqG,OAAQA,EACRjC,UAAWA,EACXG,gBAAiBA,EACjBksG,cAAeA,GAJVrsG,EAAUI,iBAQvB53C,eAAC4U,GAAM,CAACzM,KAAM8/E,EAAiB/tE,QAASguE,EAAWx5F,SAAA,CACjDa,cAACkmB,GAAW,CAACC,YAAawR,EAAWX,OAAS2hE,OAAan8F,EAAU2C,SAAC,6BAGtEsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cArHD48B,IACpB,IAAI/pC,EAAsB,CACxB49E,QAAS7zC,EAAU+rG,mBACnBj4D,KAAM9zC,EAAUgsG,mBAChB1hJ,UAAW01C,EAAU4rG,mBACrBvhJ,SAAU21C,EAAU6rG,mBACpBt1F,UAAWvW,EAAU4tG,kBACrBniH,SAAUuU,EAAU6tG,mBACpBztG,YAAaJ,EAAU8tG,mBACvB95D,MAAOh0C,EAAUksG,mBACjBn4D,SAAU/zC,EAAUisG,mBACpBr4D,aAAc5zC,EAAU8rG,oBAE1BO,EAAc,IACTY,MACAh3I,EACHw1B,SAAUwW,EAAOxW,WAEnBilD,GAAY,IAoGNntE,YAAU,EACV9a,UAAWkV,KAAWowI,cAAc72J,SAAA,CAEpCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAACi1J,GAAa,CAACpqI,KAAMA,EAAM3D,aAAcguI,OAE3Cl1J,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACylB,GAAkB,CACjBxO,GAAG,8CACHyO,QAASizE,EACThyE,WAAS,MAGb3mB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC+lB,GAAgB,CACf9O,GAAG,4CACHgR,SAAUu7D,EACV78D,WAAS,mBAOpB,ECzTP,SAAS,KAAiS,OAApR,GAAWzoB,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS6/I,GAAe/2J,EAAMyX,GAC5B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,iLACHN,KAAM,yBACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,gsNACHN,KAAM,WACH,KAAU,GAAqB,gBAAoB,OAAQ,CAC9DijE,GAAI,EACJC,GAAI,OACJC,GAAI,GACJE,GAAI,OACJ3iE,OAAQ,WACL,KAAU,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,iBAAkB,CACvHP,GAAI,gBACJ8iE,IAAK,QACLC,GAAI,QACJC,GAAI,QACJE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,YACI,gBAAoB,OAAQ,CAC3Cp1H,OAAQ,EACRo1H,UAAW,eAEf,CACA,MAAM,GAA0B,aAAiBqd,IAClC,IC9CX,GAAO,GAAQ,GD8CJ,IC7Cf,SAAS,KAAiS,OAApR,GAAW/3J,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS8/I,GAAYh3J,EAAMyX,GACzB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,0PACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,uaACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,0iBACHN,KAAM,WAEV,CACA,MAAM,GAA0B,aAAiBo/I,IAClC,ICnCX,GAAO,GAAQ,GDmCJ,IClCf,SAAS,KAAiS,OAApR,GAAWh4J,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS+/I,GAAiBj3J,EAAMyX,GAC9B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,4LACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,kOACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,6aACHN,KAAM,WAEV,CACA,MAAM,GAA0B,aAAiBq/I,IAClC,ICjCX,GAAO,GAAS,GAAU,GAAQ,GDiCvB,IChCf,SAAS,KAAiS,OAApR,GAAWj4J,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASggJ,GAAcl3J,EAAMyX,GAC3B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,iLACHN,KAAM,yBACH,KAAY,GAAuB,gBAAoB,SAAU,CACpEO,GAAI,QACJC,GAAI,QACJC,EAAG,QACHT,KAAM,aACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,QACJC,GAAI,QACJC,EAAG,QACHT,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,oNACHN,KAAM,aACH,KAAU,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,iBAAkB,CACvHG,GAAI,gBACJ8iE,IAAK,QACLC,GAAI,QACJC,GAAI,QACJE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,YACI,gBAAoB,OAAQ,CAC3Cp1H,OAAQ,EACRo1H,UAAW,aACK,gBAAoB,iBAAkB,CACtD3hI,GAAI,gBACJ8iE,GAAI,QACJC,GAAI,QACJC,GAAI,QACJE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,YACI,gBAAoB,OAAQ,CAC3Cp1H,OAAQ,EACRo1H,UAAW,eAEf,CACA,MAAM,GAA0B,aAAiBwd,IAClC,IC9DX,GAAO,GAAQ,GAAQ,GAAQ,GD8DpB,IC7Df,SAAS,KAAiS,OAApR,GAAWl4J,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASigJ,GAAYn3J,EAAMyX,GACzB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,iLACHN,KAAM,yBACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEoyB,QAAS,IACThyB,SAAU,UACVC,SAAU,UACVC,EAAG,2xCACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEoyB,QAAS,IACThyB,SAAU,UACVC,SAAU,UACVC,EAAG,+yCACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,0pCACHN,KAAM,WACH,KAAU,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,iBAAkB,CACvHG,GAAI,gBACJ8iE,IAAK,QACLC,GAAI,QACJC,GAAI,QACJE,GAAI,QACJw+D,cAAe,kBACD,gBAAoB,OAAQ,CAC1CC,UAAW,YACI,gBAAoB,OAAQ,CAC3Cp1H,OAAQ,EACRo1H,UAAW,eAEf,CACA,MAAM,GAA0B,aAAiByd,IAClC,ICiEAC,OApGwDp3J,IAA2C,IAA1C,KAAE2rB,EAAI,aAAE3D,EAAY,aAAEmlC,GAAcntD,EAC1G,OACEuR,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAGz2B,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACpEa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,eAAcrnB,SAC/Ba,cAAC8+E,GAAM,CACL53D,aAAcA,EAAaw3C,YAC3BtgE,KAAK,cACL0oB,QAAS+D,EAAK/D,QACdiB,QAASskC,EAAa32C,KAAK7Y,IAAI,CAC7BN,MAAOM,EACP2pB,MAAO3pB,MAET8K,YAAY,OACZ/F,QAASipB,EAAK5d,OAAOyxD,YACrBx2C,aAAc2C,EAAK5d,OAAOyxD,YAAc7zC,EAAK5d,OAAOyxD,YAAYl/D,QAAU,SAIhFQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACmnB,GAAS,CACR/oB,KAAK,WACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,kBACZgf,WAAS,EACTO,aAAcA,EAAa+2C,SAC3Br8D,QAASipB,EAAK5d,OAAOgxD,SACrB7xC,WAAYvB,EAAK5d,OAAOgxD,SAAWpzC,EAAK5d,OAAOgxD,SAASz+D,QAAU,SAIxEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,GAAIoK,GAAI,GAAGx3B,SACxBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CACR/oB,KAAK,UACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNzM,YAAY,kBACZgf,WAAS,EACTO,aAAcA,EAAao3C,QAC3B18D,QAASipB,EAAK5d,OAAOqxD,QACrBlyC,WAAYvB,EAAK5d,OAAOqxD,QAAUzzC,EAAK5d,OAAOqxD,QAAQ9+D,QAAU,YAKxEQ,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,kBAAiBrnB,SAClCsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAG/pF,UAAWkV,KAAW08F,OAAOnjH,SACvCa,cAAC8+E,GAAM,CACL53D,aAAcA,EAAa03C,eAAiB9xB,KAAO5lB,EAAa03C,gBAAgB+6C,QAAU,EAAI,GAC9Fv7G,KAAK,sBACL0oB,QAAS+D,EAAK/D,QACdH,WAAW,EACXoB,QAASrrB,MAAMgzC,KAAK,CAAE/xC,OAAQ,KAAM,CAACoV,EAAGoD,IAAMA,EAAI,IAAGT,KAAK6sG,IAAG,CAC3DhmH,MAAOgmH,EACP/7F,OAAQ,IAAM+7F,GAAKzlH,OAAO,OAE5B8E,QAASipB,EAAK5d,OAAOspJ,oBACrBruI,aAAc2C,EAAK5d,OAAOspJ,oBAAsBrzJ,EAAUqC,WAAWC,SAAW,SAItFxF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAAC8+E,GAAM,CACL53D,aAAcA,EAAa03C,eAAiB9xB,KAAO5lB,EAAa03C,gBAAgB32D,OAAS,GACzF7J,KAAK,qBACL0oB,QAAS+D,EAAK/D,QACdH,WAAW,EACXoB,QAASrrB,MAAMgzC,KAAK,CAAE/xC,OAAQ,KAAM,CAACoV,EAAGoD,IAAMA,EAAI22B,OAAS7kC,SAAQyN,KAAK6sG,IAAG,CACzEhmH,MAAOgmH,EACP/7F,MAAO+7F,EAAI/iG,eAEb5d,QAASipB,EAAK5d,OAAOupJ,mBACrBtuI,aAAc2C,EAAK5d,OAAOupJ,mBAAqBtzJ,EAAUqC,WAAWC,SAAW,kBAU1F,ECxEA,MAAMixJ,GAA+BrsI,OAAaC,MAAM,CAC7Dq0C,YAAat0C,OAAa5kB,SAAStC,EAAUqC,WAAWC,UAAUG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KACjH24D,QAASl0C,OAAa5kB,SAAStC,EAAUqC,WAAWC,UAAUG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAC9Gs4D,SAAU7zC,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BI,QAAQ1C,EAAUqC,WAAWgB,iBAAkBrD,EAAUqC,WAAWY,eACpEsnG,KAAK,cAAe,CACnB0W,GAAKzlD,GAAwC,YAAhBA,EAC7B/zD,KAAMyf,OAAazsB,OAAO,GAAI4oG,GAAarjG,EAAUqC,WAAWqB,YAAa,OAE9E6mG,KAAK,cAAe,CACnB0W,GAAKzlD,GAAwC,qBAAhBA,EAC7B/zD,KAAMyf,OAAazsB,OAAO,GAAI4oG,GAAarjG,EAAUqC,WAAWqB,YAAa,OAE9E6mG,KAAK,cAAe,CACnB0W,GAAKzlD,GAAwC,gBAAhBA,EAC7B/zD,KAAMyf,OAAazsB,OAAO,GAAI4oG,GAAarjG,EAAUqC,WAAWqB,YAAa,OAE9E6mG,KAAK,cAAe,CACnB0W,GAAKzlD,GAAwC,eAAhBA,EAC7B/zD,KAAMyf,OAAazsB,OAAO,GAAI4oG,GAAarjG,EAAUqC,WAAWqB,YAAa,OAE9E6mG,KAAK,cAAe,CACnB0W,GAAKzlD,GAAwC,SAAhBA,EAC7B/zD,KAAMyf,OAAazsB,OAAO,GAAI4oG,GAAarjG,EAAUqC,WAAWqB,YAAa,OAEjF2vJ,oBAAqBnsI,OAAa5kB,SAAStC,EAAUqC,WAAWC,UAChEgxJ,mBAAoBpsI,OAAaolE,aAGtBknE,GAAiD,CAC5DrmJ,OAAQ,EACRouD,cAAe,EACfR,SAAU,GACVK,QAAS,GACTM,oBAAgBpiE,EAChBkiE,YAAa,GACbF,WAAW,GAmNEm4F,OAhNsBA,KAAO,IAADC,EACzC,MAAOC,EAAsBC,GAA2BrlJ,mBAAS,IAC3D,WAAE0H,GAAeQ,KACjBge,EAAajB,MACXiW,UAAW2sD,EAAY1sD,UAAW+rD,EAAYjuE,UAAWguE,GAAoBjsD,MAGnF/uB,OACEyuC,aAAa,KAAE95C,EAAI,oBAAE0rD,GAAqB,aAC1C1R,GACD,iBACDI,GACEG,KACE/hC,EAAOC,aAAiC,CAC5CG,KAAM,WACNF,SAAUC,aAAYyrI,MAGxB3jJ,qBAAU,KACJirD,GAAuBA,EAAoBpgE,OAAS,GAAKogE,EAAoBrhD,MAAMq6I,GAAOA,EAAGv4F,aAC/Fs4F,EAAwB/4F,EAAoBrhD,MAAMq6I,GAAOA,EAAGv4F,YAAYC,cAC1E,GACC,CAACV,IAEJ,MA2CMi5F,EAA0BC,IAC9B,IAAIC,EAEFA,EADED,EAAmBx4F,cAAgB,EAC3B7vD,EAAYsB,yBAAyB+mJ,GAErCroJ,EAAYoB,yBAAyBinJ,GAGjDC,EACGvsJ,MAAM4gB,IACDA,IACFkhC,IACAtzC,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC/D,IAEDrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAG1C4Q,EAA4BquD,IAChC7vD,EAAYwB,yBAAyBiC,EAAKhC,OAAQouD,GAC/C9zD,MAAM4gB,IACDA,IACFkhC,IACAtzC,EAAWjW,EAAUuB,SAASC,QAAQE,YAAaqT,GAAYE,SACjE,IAEDrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAG1C23J,EAAqBl5F,IACzB,IACIm5F,EAAen5F,EAASnhE,MAAMmhE,EAAStgE,OAAS,EAAGsgE,EAAStgE,QAChE,MAAM,GAAN0C,OAFiB,QAEGA,OAAG+2J,EAAY,EAG/BC,EAAwBz4F,GAC5BA,EAAc,GAAAv+D,QAAO,KAAOysC,KAAO8xB,GAAgB+6C,QAAU,IAAI78G,OAAO,GAAE,KAAAuD,OAAIysC,KAAO8xB,GAAgB32D,QAAW,GAE5GqvJ,EAAmB54F,IACvB,OAAQA,GACN,IAAK,UACH,OAAO1+D,cAACu3J,GAAe,IACzB,IAAK,mBACH,OAAOv3J,cAACw3J,GAAY,IACtB,IAAK,cACH,OAAOx3J,cAACy3J,GAAiB,IAC3B,IAAK,aACH,OAAOz3J,cAAC03J,GAAc,IACxB,IAAK,OACH,OAAO13J,cAAC23J,GAAY,IACtB,QACE,OAAO33J,cAAAyV,WAAA,IACX,EAEF,OACEzV,cAAAyV,WAAA,CAAAtW,SACGkT,GAAQg6C,GACP57C,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,wBAI3Ca,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CAACj0D,QAnEFkyI,KACjBt+D,GAAY,EAkE2Bn6F,SAAC,oBAGjC4+D,GAAuBA,EAAoBpgE,OAAS,GACnDqC,cAAAyV,WAAA,CAAAtW,SACEa,cAACumB,GAAW,CAACC,MAAM,qBAAqBC,YAAY,6BAA4BtnB,SAC9EsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC8+E,GAAM,CACL1rE,OAAO,SACPhV,KAAK,4BACL2pB,QAASg2C,EAAoBroD,KAAKqhJ,IAAE,CAClCvwI,MACE/V,eAACqI,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,SAASzC,UAAWkV,KAAWiyI,cAAc14J,SAAA,CACzEm4J,EAAgBP,EAAGr4F,aACpBjuD,eAACqI,KAAG,CAACG,GAAI,EAAGnD,UAAU,OAAM3W,SAAA,CACzB43J,EAAGr4F,YAAY,IAAEy4F,EAAkBJ,EAAG94F,gBAI7C1hE,MAAOw6J,EAAGt4F,kBAEZliE,MAAOs6J,EACP5sI,SA9GlB5M,IAKAy5I,EAAwBxyH,OAAOjnB,EAAMnH,OAAO3Z,OAAO,MA4GpCs6J,KAAuE,QAAnDD,EAAK74F,EAAoBrhD,MAAMq6I,GAAOA,EAAGv4F,mBAAU,IAAAo4F,OAAA,EAA9CA,EAAgDn4F,gBACxEz+D,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW+vI,mBAAmBx2J,SAC5Ca,cAAC2lB,KAAM,CAACD,QA3HkBoyI,KAXRjsJ,QAYP,CAC3BwE,OAAQgC,EAAKhC,OACbouD,cAAeo4F,GAbjBjoJ,EAAYuB,6BAA6BtE,GACtClB,MAAM4gB,IACDA,IACFkhC,IACAtzC,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC/D,IAEDrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAOnC,EAuHwEyR,QAAQ,YAAYP,UAAWkV,KAAWK,uBAAuB9mB,SACtH+D,EAAUC,QAAQI,sBASjCvD,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACR4+D,GACCA,EAAoBpgE,OAAS,GAC7BogE,EAAoBroD,KAAKzF,GACvBjQ,cAAC+3J,GAAsB,CAErB1rG,aAAcA,EACd4qG,mBAAoBhnJ,EACpBknJ,kBAAmBA,EACnBE,qBAAsBA,EACtBL,uBAAwBA,EACxB5mJ,yBAA0BA,EAC1BknJ,gBAAiBA,GAPZrnJ,EAAYwuD,mBAWzBhuD,eAAC4U,GAAM,CAACzM,KAAM8/E,EAAiB/tE,QAASguE,EAAWx5F,SAAA,CACjDa,cAACkmB,GAAW,CAACC,YAAawR,EAAWX,OAAS2hE,OAAan8F,EAAU2C,SAAC,kBACtEsR,eAAA,QAAMkX,aAAa,MAAMyD,SAAUP,EAAKQ,cAvI5BgzC,IACpB24F,EAAuB,IAClBN,MACAr4F,EACHO,eAAgB,IAAI7gE,KAAKsgE,EAAQm4F,mBAAoBn4F,EAAQk4F,oBAAqB,GAClFlmJ,OAAQgC,EAAKhC,SAEfo8C,IACAtzC,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7DwgF,GAAY,IA8HgEntE,YAAU,EAAC9a,UAAWkV,KAAWowI,cAAc72J,SAAA,CACjHa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAACs2J,GAAsB,CAACzrI,KAAMA,EAAM3D,aAAcwvI,GAA2BrqG,aAAcA,MAE7FrsD,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACylB,GAAkB,CAACC,QAASizE,EAAYhyE,WAAS,MAEpD3mB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC+lB,GAAgB,CAACY,WAAS,EAACsB,UAAW4C,EAAK2B,UAAUE,2BAQnE,E,oBCxFQsrI,OAlLoE94J,IAMQ,IANP,KACE2rB,EAAI,aACJ3D,EAAY,aACZmlC,EAAY,SACZjlC,EAAQ,gBACRkwI,GACDp4J,EAEnF,MAAO+3J,EAAoBgB,GAAyBxmJ,wBAA0CjV,IACxF,WAAC2c,GAAcQ,KAErB7G,qBAAU,KACRmlJ,OAAsBz7J,EAAU,GAC/B,CAAC0qB,IAWJ,OACEzW,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,eAAcrnB,SAC9BioB,EACCpnB,cAACmnB,GAAS,CAERK,WAAY,CACVE,SAAUN,EACV1W,UAAWkV,KAAWsyI,wBACtBC,eAAgBn4J,cAACo4E,KAAc,CAC7B7kE,SAAS,QAAOpU,SAAEm4J,EAAgBpwI,EAAaw3C,gBAEnDx3C,aAAcA,EAAaw3C,YAC3B/3C,WAAS,EACTS,UAAQ,MAAA/mB,OATA6mB,EAAau3C,cAAa,KAAAp+D,OAAI6mB,EAAaw3C,cAYrD1+D,cAAC8+E,GAAM,CACL53D,aAAcA,EAAaw3C,YAC3BtgE,KAAK,cACL0oB,QAAS+D,EAAK/D,QACdiB,QAASskC,EAAa32C,KAAK7Y,IAAI,CAC7BN,MAAOM,EACP2pB,MACE/V,eAACqI,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,SAAQhU,SAAA,CACpCm4J,EAAgBz6J,GACjBmD,cAAC8Y,KAAG,CAACG,GAAI,EAAGnD,UAAU,OAAM3W,SACzBtC,WAKT+E,QAASipB,EAAK5d,OAAOyxD,YACrBx2C,aAAc2C,EAAK5d,OAAOyxD,YAAc7zC,EAAK5d,OAAOyxD,YAAYl/D,QAAU,SAKlFQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,kBAAiBrnB,SAClCa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4a,KAAKrhC,SAC7BioB,EACCpnB,cAACmnB,GAAS,CAERD,aAAY,GAAA7mB,QAAM,KAAOysC,KAAO5lB,EAAa03C,gBAAgB+6C,QAAU,IAAI78G,OAAO,GAAE,KAAAuD,OAAIysC,KAAO5lB,EAAa03C,gBAAgB32D,QAC5H0e,WAAS,EACTS,UAAQ,MAAA/mB,OAHA6mB,EAAau3C,cAAa,KAAAp+D,OAAI6mB,EAAa03C,iBAMrDnuD,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAG1jB,MAAO,CAACc,aAAc,QAAQ5U,SAC9Ca,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAG/pF,UAAWkV,KAAW08F,OAAOnjH,SACvCa,cAAC8+E,GAAM,CACL53D,aAAcA,EAAa03C,eAAiB9xB,KAAO5lB,EAAa03C,gBAAgB+6C,QAAU,EAAI,GAC9Fv7G,KAAK,sBACL0oB,QAAS+D,EAAK/D,QACdH,WAAW,EACXoB,QAASrrB,MAAMgzC,KAAK,CAAC/xC,OAAQ,KAAK,CAACoV,EAAGoD,IAAMA,EAAI,IAAGT,KAAK6sG,IAAG,CACzDhmH,MAAOgmH,EACP/7F,OAAQ,IAAM+7F,GAAKzlH,OAAO,aAKlCkD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAG1jB,MAAO,CAACa,YAAa,QAAQ3U,SAC7Ca,cAAC8+E,GAAM,CACL53D,aAAcA,EAAa03C,eAAiB9xB,KAAO5lB,EAAa03C,gBAAgB32D,OAAS,GACzF7J,KAAK,qBACL0oB,QAAS+D,EAAK/D,QACdH,WAAW,EACXoB,QAASrrB,MAAMgzC,KAAK,CAAC/xC,OAAQ,KAAK,CAACoV,EAAGoD,IAAMA,EAAI22B,OAAS7kC,SAAQyN,KAAK6sG,IAAG,CACvEhmH,MAAOgmH,EACP/7F,MAAO+7F,EAAI/iG,+BAW7B/O,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CACR/oB,KAAK,UACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,aAAcA,EAAao3C,QAC3B18D,QAASipB,EAAK5d,OAAOqxD,QACrBlyC,WAAYvB,EAAK5d,OAAOqxD,QAAUzzC,EAAK5d,OAAOqxD,QAAQ9+D,QAAU,GAChE4nB,SAAUA,QAIdA,EAmBApnB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5BsR,eAACqI,KAAG,CACFkqF,GAAI,CACF9vF,QAAS,OACTc,cAAe,MACfb,WAAY,SACZ+zB,eAAgB,cAChB/nC,SAAA,CACFa,cAACqmB,KAAU,CAACX,QA7IT0yI,KACXnB,GACJroJ,EAAYkB,4BAA4BoX,EAAau3C,eAAe9zD,MAAKu/I,IACvE+N,EAAsB/N,EAAO,IAC5BpnJ,OAAMlB,IACPD,QAAQC,MAAMA,GACduX,EAAW,yCAAyC,GACpD,EAsIyC/E,MAAO,YAAanB,MAAO,CAAC80B,YAAa,QAAQ5oC,SAC7E83J,EACCj3J,cAACq4J,KAAgB,IAAKr4J,cAACs4J,KAAY,MAEvCt4J,cAACmnB,GAAS,CACRtqB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,aAAc+vI,EAAqBA,EAAmBh5F,SAAQ,QAAA59D,OAAW6mB,EAAa+2C,UACtF72C,SAAUA,WAtClBpnB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACmnB,GAAS,CACR/oB,KAAK,WACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,aAAY,QAAA7mB,OAAU6mB,EAAa+2C,UACnCr8D,QAASipB,EAAK5d,OAAOgxD,SACrB7xC,WAAYvB,EAAK5d,OAAOgxD,SAAWpzC,EAAK5d,OAAOgxD,SAASz+D,QAAU,GAClE4nB,SAAUA,aAgCnB,ECcQ2wI,OA7KwD74J,IAOQ,IAPP,mBACE+3J,EAAkB,aAClB5qG,EAAY,kBACZ8qG,EAAiB,uBACjBH,EAAsB,yBACtB5mJ,EAAwB,gBACxBknJ,GACDp4J,EACvE,MAAOkoB,EAAUqyE,GAAehoF,oBAAS,GACnCoZ,EAAOC,aAAiC,CAACC,SAAUC,aAAYyrI,IAA+BxrI,KAAM,cACnG0hB,UAAW49G,EAAkB39G,UAAWoxG,EAAkBtzH,UAAWuzH,GAAyBxxG,MAC9F+2C,EAAkBC,GAAuBhyE,oBAAkB,GAC5DkmB,EAAajB,MAEZ6hI,EAAmBC,GAAwB/mJ,mBAASwlJ,GAE3DnkJ,qBAAU,KACR0lJ,EAAqBvB,EAAmB,GACvC,CAACA,IAEJnkJ,qBAAU,KACR,IAAImV,EAIFA,GAHG4C,EAAK2B,UAAUC,SAGPjI,GAAuBiyI,GAA8B5rI,EAAKnG,WAGvE++D,EAAoBx7D,EAAS,GAC5B,CAAC4C,EAAK2B,UAAUE,QAAS7B,EAAK/D,UAEjChU,qBAAU,KACR+X,EAAKu6B,MAAMmzG,EAAkB,GAC5B,CAACA,IAmCF,IAEGE,EAAc,SAAdA,GAAc,OAAdA,IAAc,eAAdA,IAAc,2BAAdA,IAAc,qBAAdA,CAAc,MA6BnB,OACEhoJ,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAAC+6F,KAAS,CAAArsG,SAAA,CACRa,cAACyrG,KAAgB,CAACC,WAAY1rG,cAACwhG,KAAc,IAAGriG,SAC9CsR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,SAASzC,UAAWkV,KAAWiyI,cAAc14J,SAAA,CACzEm4J,EAAgBiB,EAAkB75F,aACnCjuD,eAACqI,KAAG,CAACG,GAAI,EAAGnD,UAAU,OAAM3W,SAAA,CAC1BsR,eAACO,IAAU,CAAA7R,SAAA,CACRo5J,EAAkB75F,YAAY,IAAEy4F,EAAkBoB,EAAkBt6F,aArB7Dy6F,MACpB,OAX0BzB,KAC1B,IAAI0B,EAAa7rH,KAAOmqH,EAAmBr4F,gBAAgBw+B,KAAKtwD,OAAU,UAAU,GACpF,OAAI6rH,EAAa,GAAKA,EAAa,EAC1BF,EAAeG,WACbD,GAAc,EAChBF,EAAeI,QAEjBJ,EAAeK,IAAI,EAIlBC,CAAmBR,IACzB,KAAKE,EAAeG,WAClB,OAAO54J,cAACuzJ,GAAuB,CAAC/zJ,QAAQ,+BAE1C,KAAKi5J,EAAeI,QAClB,OAAO74J,cAACuzJ,GAAuB,CAAC/zJ,QAAQ,wBAAwBg0J,YAAU,IAE5E,KAAKiF,EAAeK,KAClB,OAAO94J,cAAAyV,WAAA,IACX,EAaWijJ,WAIP14J,cAAC2rG,KAAgB,CAACj7F,UAAWkV,KAAW+uI,8BAA8Bx1J,SACpEsR,eAAA,QAAMkX,aAAa,MAAMyD,SAAUP,EAAKQ,cA/E1B2tI,IACpBhC,EAAuB,IAClBuB,KACAS,EACHp6F,eAAgB,IAAI7gE,KAAKi7J,EAAqBxC,mBAAoBwC,EAAqBzC,oBAAqB,KAE9G98D,GAAY,EAAK,IAyEyDjuE,YAAU,EACxE9a,UAAWkV,KAAWe,UAAUxnB,SAAA,CACpCa,cAACg4J,GAA4B,CAC3BntI,KAAMA,EACN3D,aAAcqxI,EACdlsG,aAAcA,EACdjlC,SAAUA,EACVkwI,gBAAiBA,IAElBlwI,EACC3W,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAC1Ba,cAAC0hC,KAAI,CAACttB,MAAM,UAAUvX,KAAK,SAAS6oB,QAlF/B86D,KACnB+pE,GAAkB,EAiFuDt5I,QAAQ,QAC7D6E,UAAU,SAAQ3W,SAAC,qBAI3Ba,cAAC0hC,KAAI,CAACttB,MAAM,UAAUvX,KAAK,SAAS6oB,QA9E/Bw/D,KAEjBt2E,EAAYkB,4BAA6C,OAAjByoJ,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB95F,eACxD9zD,MAAMu/I,IACLsO,EAAqBtO,GACrBzwD,GAAY,EAAM,IACjB32F,OAAMlB,IACTD,QAAQC,MAAMA,GACd63F,GAAY,EAAK,GACjB,EAqEmExoF,QAAQ,QAC3D6E,UAAU,SAAQ3W,SAAC,oBAK3BsR,eAACqI,KAAG,CAAC4S,GAAI,EAAGxY,QAASykB,EAAWX,OAAS,QAAU,OAAQkQ,eAAe,SAAQ/nC,SAAA,CAChFa,cAAC2lB,KAAM,CAAC1U,QAAQ,WAAWmD,MAAM,UAAUsR,QA1EpCqvI,KACnByD,EAAqBvB,GACrBx9D,GAAY,GACZ5uE,EAAKw5H,aAAa,EAuE2DllJ,SAC9D+D,EAAUC,QAAQE,SAErBrD,cAAC8Y,KAAG,CAACG,GAAK0e,EAAWX,OAAa,EAAJ,EAAO6W,GAAIlW,EAAWX,OAAS,EAAI,EAAE73B,SACjEa,cAAC2lB,KAAM,CAAC9oB,KAAK,SAASoU,QAAQ,YAAYmD,MAAM,UACxC6T,SAAUu7D,EAAiBrkF,SAChC+D,EAAUC,QAAQK,2BAQjCiN,eAACu7B,GAAM,CAACpzB,KAAMqlI,EAAuBtzH,QAASqzH,EAAkBxtI,SAAS,KAAIrR,SAAA,CAC3EsR,eAAC+7B,GAAW,CAAArtC,SAAA,CACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oCACzBa,cAACgR,IAAU,CACTN,UAAU,WAAUvR,SAAA,GAAAkB,OAAKk4J,EAAkB75F,YAAW,KAAAr+D,OAAI82J,EAAkBoB,EAAkBt6F,gBAElGj+D,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3Ba,cAACmsC,GAAa,CAACC,OAAK,EAAAjtC,SAClBsR,eAACqI,KAAG,CAAC5F,QAASykB,EAAWX,OAAS,QAAU,OAAQkQ,eAAe,SAC9Dx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CACnCa,cAAC+/E,GAAkB,CAACt2E,KAAMvG,EAAUC,QAAQS,GAAI8hB,QAASs4H,IACzDh+I,cAACssC,GAAY,CAAC7iC,KAAMvG,EAAUC,QAAQQ,IAAK+hB,QArHPuzI,KAC5C7oJ,EAAyBmoJ,EAAkB95F,eAC3Cu/E,GAAkB,cAuHf,E,qBC/JA,MAAMkb,GAA2C9uI,OAAaC,MAAM,CACzEq0C,YAAat0C,OAAa5kB,SAAStC,EAAUqC,WAAWC,UAAUG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KACjH24D,QAASl0C,OAAa5kB,SAAStC,EAAUqC,WAAWC,UAAUG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAC9Gs4D,SAAU7zC,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BI,QAAQ1C,EAAUqC,WAAWgB,iBAAkBrD,EAAUqC,WAAWY,eACpEsnG,KAAK,cAAe,CACnB0W,GAAKzlD,GAAwC,YAAhBA,EAC7B/zD,KAAMyf,OAAa2uF,KAAK,MAAOxS,GAAarjG,EAAUqC,WAAWqB,YAAa,KAAM27G,GAAwB,KAAb,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAK5kH,SAAgC,MAAb,OAAH4kH,QAAG,IAAHA,OAAG,EAAHA,EAAK5kH,YAEvH8vG,KAAK,cAAe,CACnB0W,GAAKzlD,GAAwC,qBAAhBA,EAC7B/zD,KAAMyf,OAAa2uF,KAAK,MAAOxS,GAAarjG,EAAUqC,WAAWqB,YAAa,KAAM27G,GAAwB,KAAb,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAK5kH,SAAgC,MAAb,OAAH4kH,QAAG,IAAHA,OAAG,EAAHA,EAAK5kH,YAEvH8vG,KAAK,cAAe,CACnB0W,GAAKzlD,GAAwC,gBAAhBA,EAC7B/zD,KAAMyf,OAAa2uF,KAAK,MAAOxS,GAAarjG,EAAUqC,WAAWqB,YAAa,KAAM27G,GAAwB,KAAb,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAK5kH,SAAgC,MAAb,OAAH4kH,QAAG,IAAHA,OAAG,EAAHA,EAAK5kH,YAEvH8vG,KAAK,cAAe,CACnB0W,GAAKzlD,GAAwC,eAAhBA,EAC7B/zD,KAAMyf,OAAa2uF,KAAK,MAAOxS,GAAarjG,EAAUqC,WAAWqB,YAAa,KAAM27G,GAAwB,KAAb,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAK5kH,SAAgC,MAAb,OAAH4kH,QAAG,IAAHA,OAAG,EAAHA,EAAK5kH,YAEvH8vG,KAAK,cAAe,CACnB0W,GAAKzlD,GAAwC,SAAhBA,EAC7B/zD,KAAMyf,OAAa2uF,KAAK,MAAOxS,GAAarjG,EAAUqC,WAAWqB,YAAa,KAAM27G,GAAwB,KAAb,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAK5kH,SAAgC,MAAb,OAAH4kH,QAAG,IAAHA,OAAG,EAAHA,EAAK5kH,YAE1H44J,oBAAqBnsI,OAAa5kB,SAAStC,EAAUqC,WAAWC,UAChEgxJ,mBAAoBpsI,OAAaolE,aAGtB2pE,GAA6D,CACxE9oJ,OAAQ,EACRouD,cAAe,EACfR,SAAU,GACVK,QAAS,GACTM,oBAAgBpiE,EAChBkiE,YAAa,GACbF,WAAW,GAwQE46F,OAjQkEl6J,IAA0B,IAAzB,gBAAEm6J,GAAiBn6J,EACnG,QAAWuS,oBAAkB,IACvB,WAAE0H,GAAeQ,KACjBge,EAAajB,MACXiW,UAAW2sD,EAAY1sD,UAAW+rD,EAAYjuE,UAAWguE,GAAoBjsD,MAC9E+2C,EAAkBC,GAAuBhyE,oBAAkB,IAC3D6nJ,EAAaC,GAAkB9nJ,oBAAkB,IACjD+nJ,EAAeC,GAAoBhoJ,sBACnCioJ,EAAiBC,GAAsBloJ,oBAAkB,IAE9DiM,OAAO,mBAAEu2C,EAAkB,yBAAEoI,EAAwB,aAAEhQ,EAAY,QAAE3X,GAAS,wBAC9E6oB,EAAuB,4BACvBuB,GACE2G,KACE56C,EAAOC,aAAiC,CAC5CG,KAAM,WACNF,SAAUC,aAAYkuI,MAElBU,EAAeP,EAAgB90C,MAAM,6BAE3CzxG,qBAAU,KACR,IAAImV,EAAWzD,GAAuB00I,GAA0CruI,EAAKnG,aAAemG,EAAK2B,UAAUC,QACnHg3D,EAAoBx7D,EAAS,GAC5B,CAAC4C,EAAK2B,UAAUE,QAAS7B,EAAK/D,QAAS+D,EAAK2B,YAe/C1Z,qBAAU,KACR,IAAI+mJ,EAAY,KAIR,IAADlkJ,EAAA+pE,EAAAo6E,EAAAC,EAAAC,EAAAC,EAAAC,EAHHR,GAAmBF,GACrBK,EAAYL,EAAcv7F,SAC1B07F,GAAmB,IAEnBE,EACkB,IAAhBD,GAA2C,IAApBllH,EAAQspB,eAAkCxhE,GAAhBo9J,GAAmD,MAApBllH,EAAQspB,eAAoCxhE,GAAhBo9J,EACxG,GAG2F,QAHzFjkJ,EAEgG,QAFhG+pE,EACuF,QADvFo6E,EAC6E,QAD7EC,EACF9lG,EAAmB8J,oBAAoBrhD,MAAM2Z,GAAMA,EAAE4nC,WAAa27F,WAAa,IAAAG,OAAA,EAA/EA,EAAiF97F,gBAAQ,IAAA67F,IACD,QADCE,EAC3F/lG,EAAmB8J,oBAAoBrhD,MAAM2Z,GAAMA,EAAE4nC,YAA0B,OAAbu7F,QAAa,IAAbA,OAAa,EAAbA,EAAev7F,mBAAS,IAAA+7F,OAAA,EAA1FA,EAA4F/7F,gBAAQ,IAAAyhB,IACjB,QADiBu6E,EACpGhmG,EAAmB8J,oBAAoBrhD,MAAM2Z,GAAMA,EAAE4nC,WAAavpB,EAAQspB,kBAAS,IAAAi8F,OAAA,EAAnFA,EAAqFh8F,gBAAQ,IAAAtoD,IAC9B,QAD8BukJ,EAC7FjmG,EAAmB8J,oBAAoBrhD,MAAM2Z,GAAMA,EAAEmoC,mBAAU,IAAA07F,OAAA,EAA/DA,EAAiEj8F,SAEtD,MAAb47F,GACFR,EAAgB/wE,SAAS,4BAA6BuxE,EAAW,CAAEpoE,gBAAgB,EAAMy5B,aAAcmuC,EAAgB7sI,UAAUC,SACnI,GACC,CAACwnC,EAAoBulG,EAAeI,IAEvC,MAIMO,EAAmClD,IACvCD,EAAuBC,GAAoB,EAAK,EAG5CD,EAAyB,SAACC,GAA+E,IAADmD,EAAA,IAArCC,EAAwBjkJ,UAAAzY,OAAA,QAAAnB,IAAA4Z,UAAA,IAAAA,UAAA,GAC/F,GAAsB,OAAlB69C,QAAkB,IAAlBA,GAAwB,QAANmmG,EAAlBnmG,EAAoB5hD,YAAI,IAAA+nJ,GAAxBA,EAA0B/pJ,OAC5B,GAAIipJ,GAAee,EACjBv7F,EAA4Bm4F,GAE5B0C,GAAmB,GACnBF,EAAiBxC,GACjB99I,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,aACxD,CACL,IAAI++I,EAEFA,EADED,EAAmBx4F,cAAgB,EAC3B7vD,EAAYsB,yBAAyB+mJ,GAErCroJ,EAAYoB,yBAAyBinJ,GAGjDC,EACGvsJ,MAAM4gB,IACDA,IACFgyC,IACAk8F,EAAiBxC,GACjB99I,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC/D,IAEDrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UACvC,MAEAs/D,EAA4Bm4F,GAE5B0C,GAAmB,GACnBF,EAAiBxC,GACjB99I,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,QAEjE,EAEM/H,EAA4BquD,IAA2B,IAAD67F,EACpC,OAAlBrmG,QAAkB,IAAlBA,GAAwB,QAANqmG,EAAlBrmG,EAAoB5hD,YAAI,IAAAioJ,GAAxBA,EAA0BjqJ,QAC5BzB,EAAYwB,yBAAyB6jD,EAAmB5hD,KAAKhC,OAAQouD,GAClE9zD,MAAM4gB,IACDA,IACFgyC,IACApkD,EAAWjW,EAAUuB,SAASC,QAAQE,YAAaqT,GAAYE,SACjE,IAEDrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UACvC,EAGI23J,EAAqBl5F,IACzB,IACIm5F,EAAen5F,EAASnhE,MAAMmhE,EAAStgE,OAAS,EAAGsgE,EAAStgE,QAChE,MAAM,GAAN0C,OAFiB,QAEGA,OAAG+2J,EAAY,EAG/BC,EAAwBz4F,GAC5BA,EAAc,GAAAv+D,QAAO,KAAOysC,KAAO8xB,GAAgB+6C,QAAU,IAAI78G,OAAO,GAAE,KAAAuD,OAAIysC,KAAO8xB,GAAgB32D,QAAW,GAE5GqvJ,EAAmB54F,IACvB,OAAQA,GACN,IAAK,UACH,OAAO1+D,cAACu3J,GAAe,IACzB,IAAK,mBACH,OAAOv3J,cAACw3J,GAAY,IACtB,IAAK,cACH,OAAOx3J,cAACy3J,GAAiB,IAC3B,IAAK,aACH,OAAOz3J,cAAC03J,GAAc,IACxB,IAAK,OACH,OAAO13J,cAAC23J,GAAY,IACtB,QACE,OAAO33J,cAAAyV,WAAA,IACX,EAGF,OACEzV,cAAAyV,WAAA,CAAAtW,SACGktD,GACC57C,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CAACj0D,QAvFFkyI,KACjBt+D,GAAY,EAsF2Bn6F,SAAC,oBAGjC80D,EAAmB8J,qBAAuB9J,EAAmB8J,oBAAoBpgE,OAAS,GACzFqC,cAAAyV,WAAA,CAAAtW,SACEa,cAACumB,GAAW,CAACC,MAAM,qBAAqBC,YAAY,iDAAgDtnB,SAClGa,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC8+E,GAAM,CACL1rE,OAAO,SACPhV,KAAK,4BACL2pB,QAAS,CACP,CAAEvB,MAAO,iBAAkBjqB,MAAO,OAC/B03D,EAAmB8J,oBAAoBroD,KAAKqhJ,IAAE,CAC/CvwI,MACE/V,eAACqI,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,SAASzC,UAAWkV,KAAWiyI,cAAc14J,SAAA,CACzEm4J,EAAgBP,EAAGr4F,aACpBjuD,eAACqI,KAAG,CAACG,GAAI,EAAGnD,UAAU,OAAM3W,SAAA,CACzB43J,EAAGr4F,YAAY,IAAEy4F,EAAkBJ,EAAG94F,gBAI7C1hE,MAAOw6J,EAAG94F,cAGd/2C,aAAc0yI,EACd9yI,QAASuyI,EAAgBvyI,eAGxB,mBAAAzmB,OAxBoHu5J,MA6BjI55J,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACR80D,EAAmB8J,qBAClB9J,EAAmB8J,oBAAoBpgE,OAAS,GAChDs2D,EAAmB8J,oBAAoBroD,KAAKzF,GACtCA,EAAYwuD,iBAA0C,OAAxBpC,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0BoC,eAExDz+D,cAAC+3J,GAAsB,CAErB1rG,aAAcA,EACd4qG,mBAAoBhnJ,EACpBknJ,kBAAmBA,EACnBE,qBAAsBA,EACtBL,uBAAwBmD,EACxB/pJ,yBAA0BA,IAAM0uD,OAA4BtiE,GAC5D86J,gBAAiBA,GAPZrnJ,EAAYwuD,eAYnBz+D,cAAC+3J,GAAsB,CAErB1rG,aAAcA,EACd4qG,mBAAoBhnJ,EACpBknJ,kBAAmBA,EACnBE,qBAAsBA,EACtBL,uBAAwBA,EACxB5mJ,yBAA0BA,EAC1BknJ,gBAAiBA,GAPZrnJ,EAAYwuD,mBAa7BhuD,eAAC4U,GAAM,CAACzM,KAAM8/E,EAAiB/tE,QAASguE,EAAWx5F,SAAA,CACjDa,cAACkmB,GAAW,CAACC,YAAawR,EAAWX,OAAS2hE,OAAan8F,EAAU2C,SAAC,kBACtEsR,eAAA,QAAMkX,aAAa,MAAMyD,SAAUP,EAAKQ,cA5L5BgzC,IAAsC,IAAD0rD,EAAAwwC,EACzD,IAAIC,EAAc,IACbrB,MACA96F,EACHO,eAAgB,IAAI7gE,KAAKsgE,EAAQm4F,mBAAoBn4F,EAAQk4F,oBAAqB,GAClFlmJ,OAAwC,QAAlC05G,EAAoB,OAAlB91D,QAAkB,IAAlBA,GAAwB,QAANsmG,EAAlBtmG,EAAoB5hD,YAAI,IAAAkoJ,OAAN,EAAlBA,EAA0BlqJ,cAAM,IAAA05G,IAAI,GAE9CitC,EAAuBwD,GACvB7hE,IACA4gE,GAAe,GACfI,GAAmB,EAAK,IAkLoDnuI,YAAU,EAAC9a,UAAWkV,KAAWowI,cAAc72J,SAAA,CACjHsR,eAACqV,GAAa,CAAA3mB,SAAA,CACZa,cAACs2J,GAAsB,CAACzrI,KAAMA,EAAM3D,aAAciyI,GAAuC9sG,aAAcA,IACvG57C,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACZ80D,EAAmB5hD,MAClBrS,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC2hF,GAAQ,CACP1qE,GAAG,kCACHuP,MAAM,qCACNjqB,OAAO,EACP0tB,SAAWnf,GAAMyuJ,EAAezuJ,EAAEoL,OAAOwrE,SACzCA,QAAS43E,EACTllJ,MAAM,cAIX6/C,EAAmB5hD,MAAQgqD,GAC1B5rD,eAACqI,KAAG,CAAC3F,WAAW,SAASD,QAAQ,OAAM/T,SAAA,CACrCa,cAACihG,GAAW,IACZjhG,cAACgR,IAAU,CAACC,QAAQ,QAAQP,UAAWC,KAAOi7G,eAAezsH,SAAC,uDAOtEa,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACylB,GAAkB,CAACC,QAASizE,EAAYhyE,WAAS,MAEpD3mB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC+lB,GAAgB,CAACY,WAAS,EAACsB,SAAUu7D,qBAQnD,ECjOQi3E,OAtGwDv7J,IAIhE,IAJiE,oBACtEqjE,EAAmB,aACnBD,EAAY,eACZo4F,GACDx7J,EACC,MAAM,SAAEitB,EAAQ,OAAElf,EAAM,MAAEm4C,EAAK,UAAE54B,GAAc49E,eACzC93E,EAAQC,OACR6Y,EAAe1Y,aAAcJ,EAAMK,YAAY0Y,KAAK,OAS1D,OARAv4B,qBAAU,KACRsyC,EAAM,CACJ+tG,0BAA2B5wF,EAC3B6wF,mBAAoB9wF,EACpB+wF,qBAAsBqH,GACtB,GACD,CAACn4F,EAAqBD,EAAco4F,IAGrC16J,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CACVC,MAAM,4BACNC,YAAY,iCAAgCtnB,SAE5Ca,cAACmnB,GAAS,CACR/oB,KAAK,4BACL6Y,GAAG,4BACHtP,YAAY,kDACZukB,SAAUC,EACVtvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACN8S,aAAcq7C,EACd57C,WAAS,EACT/kB,QAASqL,EAAOs1D,oBAChBn2C,WACEnf,EAAOs1D,qBACP/1C,EAAUi8E,QAAQlmC,oBACdt1D,EAAOs1D,oBAAoB/iE,QAC3B,UAKV4rC,GAAgBprC,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,IACjCvsB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CACVC,MAAM,gBACNC,YAAY,iCAAgCtnB,SAE5Ca,cAACmnB,GAAS,CACR/oB,KAAK,qBACL6Y,GAAG,qBACHtP,YAAY,kDACZukB,SAAUC,EACVtvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACN8S,aAAco7C,EACd37C,WAAS,EACT/kB,QAASqL,EAAOq1D,aAChBl2C,WACEnf,EAAOq1D,cAAgB91C,EAAUi8E,QAAQnmC,aACrCr1D,EAAOq1D,aAAa9iE,QACpB,UAKV4rC,GAAgBprC,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,IACjCvsB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CACVC,MAAM,wBACNC,YAAY,iCAAgCtnB,SAE5Ca,cAACmnB,GAAS,CACR/oB,KAAK,uBACL6Y,GAAG,uBACHtP,YAAY,kDACZukB,SAAUC,EACVtvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACN8S,aAAcwzI,EACd/zI,WAAS,EACT/kB,QAASqL,EAAOytJ,eAChBtuI,WACEnf,EAAOytJ,gBAAkBluI,EAAUi8E,QAAQiyD,eACvCztJ,EAAOytJ,eAAel7J,QACtB,aAMb,EC6FQm7J,OA9LkDz7J,IAI1D,IAJ2D,KAChE2rB,EAAI,gBACJ+vI,EAAe,SACfxzI,GAAW,GACZloB,EACC,MAAM,SAAEitB,EAAQ,OAAElf,EAAM,QAAE6Z,EAAO,MAAEy9F,GAAU15F,EACvC8iF,EAAgB4W,EAAM,4BAK5B,OAJAzxG,qBAAU,KACR+X,EAAKy9D,SAAS,2BAA4BsyE,EAAgBjrH,SAAS,GAClE,CAACirH,IAGFnqJ,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC3BioB,EACCpnB,cAACmnB,GAAS,CACR5qB,MACEq+J,EAAgBjrH,UAChB7C,KAAO8tH,EAAgBjrH,UAAUC,OAAO,cAE1CxoB,UAAQ,IAGVpnB,cAAC4lF,GAAU,CACT5/E,QAAS,IAAIjI,KACbgpF,gBAAc,EACdC,QAAM,EACNr/E,YAAY,qBACZvJ,KAAK,2BACL6Y,GAAG,2BACH24B,OAAO,aACP9oB,QAASA,EACTI,aAAc0zI,EAAgBjrH,SAC9B/tC,QAASqL,EAAO2lJ,yBAChBxmI,WACInf,EAAO2lJ,yBACL3lJ,EAAO2lJ,yBAAyBpzJ,QAChC,SAMdQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SACzBioB,EACCpnB,cAACmnB,GAAS,CACR5qB,MACEq+J,EAAgB/qH,QAChB/C,KAAO8tH,EAAgB/qH,QAAQD,OAAO,cAExCxoB,UAAQ,IAGVpnB,cAAC4lF,GAAU,CACT5/E,QAAS2nG,EACT5mB,gBAAc,EACdC,QAAM,EACNr/E,YAAY,mBACZvJ,KAAK,2BACL6Y,GAAG,2BACH24B,OAAO,aACP9oB,QAASA,EACTI,aAAc0zI,EAAgB/qH,OAC9BjuC,QAASqL,EAAO4lJ,yBAChBzmI,WACInf,EAAO4lJ,yBACL5lJ,EAAO4lJ,yBAAyBrzJ,QAChC,SAMdQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,kBAAiBrnB,SAClCa,cAACmnB,GAAS,CACR/oB,KAAK,2BACL6Y,GAAG,2BACHtP,YAAY,mBACZukB,SAAUC,EACVtvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACN8S,aAAc0zI,EAAgB9+D,QAC9Bn1E,WAAS,EACTS,SAAUA,EACVxlB,QAASqL,EAAO6lJ,yBAChB1mI,WACEnf,EAAO6lJ,yBACH7lJ,EAAO6lJ,yBAAyBtzJ,QAChC,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAACmnB,GAAS,CACR/oB,KAAK,2BACL6Y,GAAG,2BACHtP,YAAY,aACZukB,SAAUC,EACVtvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACN8S,aAAc0zI,EAAgB7+D,KAC9Bp1E,WAAS,EACTS,SAAUA,EACVxlB,QAASqL,EAAO8lJ,yBAChB3mI,WACInf,EAAO8lJ,yBACL9lJ,EAAO8lJ,yBAAyBvzJ,QAChC,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACumB,GAAW,CAACC,MAAM,eAAcrnB,SAC/Ba,cAACmnB,GAAS,CACR/oB,KAAK,2BACL6Y,GAAG,2BACHtP,YAAY,cACZukB,SAAUC,EACVtvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACN8S,aAAc0zI,EAAgBC,YAC9Bl0I,WAAS,EACTS,SAAUA,EACVxlB,QAASqL,EAAO+lJ,yBAChB5mI,WACInf,EAAO+lJ,yBACL/lJ,EAAO+lJ,yBAAyBxzJ,QAChC,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,UAAUE,YAAaU,IAAY,EAAKjoB,SACxDioB,EACCpnB,cAACmnB,GAAS,CACR/oB,KAAK,2BACL8tB,SAAUC,EACV/Y,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXC,KAAK,IACL3F,WAAS,EACTS,UAAQ,EACR7qB,MAAOq+J,EAAgB/6G,QACvBj+C,QAASqL,EAAO6tJ,yBAChB1uI,WACInf,EAAO6tJ,yBACL7tJ,EAAO6tJ,yBAAyBt7J,QAChC,KAIRQ,cAACmnB,GAAS,CACR/oB,KAAK,2BACL8tB,SAAUC,EACV/Y,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAW,EACXC,KAAK,IACL3F,WAAS,EACTO,aAAc0zI,EAAgB/6G,QAC9Bj+C,QAASqL,EAAO6tJ,yBAChB1uI,WACInf,EAAO6tJ,yBACL7tJ,EAAO6tJ,yBAAyBt7J,QAChC,WAMT,EC2BIu7J,OArMkD77J,IAI1D,IAJ2D,gBAChE07J,EAAe,oBACfI,EAAmB,sBACnBC,GACD/7J,EACC,MAAMipB,EAAUmzE,MACTl0E,EAAUqyE,GAAehoF,oBAAS,IAClCmvF,EAAUC,GAAepvF,oBAAS,GACnCoZ,EAAOC,aAA8B,CACzCG,KAAM,WACNF,SAAUC,aAAYZ,OAAaC,MAAMsoI,KACzC99D,cAAe,CACb+9D,yBAA0BgI,EAAgBjrH,SAC1CkjH,yBAA0B+H,EAAgB/qH,OAC1CijH,yBAA0B8H,EAAgB9+D,QAC1Ci3D,yBAA0B6H,EAAgB7+D,KAC1C++D,yBAA0BF,EAAgB/6G,QAC1CmzG,yBAA0B4H,EAAgBC,gBAI5CluH,UAAW49G,EACX39G,UAAWoxG,EACXtzH,UAAWuzH,GACTxxG,KAEEy0D,EAAoBA,KACpBN,GACFnH,GAAY,GAEdoH,GAAaD,EAAS,EAyBxB,OACEnwF,eAAA,OAAKC,UAAWkV,KAAW0/C,KAAKnmE,SAAA,EAC5ByhG,GACAnwF,eAAA,OAAKC,UAAWkV,KAAWu1E,QAAQh8F,SAAA,CACjCa,cAAA,OAAK0Q,UAAWkV,KAAWw1E,eAAej8F,SACxCsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACmnB,GAAS,CACR5qB,MAAOuwC,KAAO8tH,EAAgBjrH,UAAUC,OACtC,cAEFxoB,UAAQ,QAIdpnB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAACmnB,GAAS,CACR5qB,MAAOuwC,KAAO8tH,EAAgB/qH,QAAQD,OAAO,cAC7CxoB,UAAQ,aAMlBpnB,cAACqmB,KAAU,CACT3V,UAAWmiB,aAAK1K,EAAQsW,OAAQ,CAC9B,CAACtW,EAAQszE,YAAamF,IAExBl7E,QAASw7E,EAAkB/hG,SAE3Ba,cAACwhG,KAAc,SAIrBxhG,cAAC8/B,KAAQ,CAACC,GAAI6gE,EAAU5gE,QAAS,EAAGC,eAAa,EAAA9gC,SAC/CsR,eAAA,OAAKC,UAAWkV,KAAWu1E,QAAQh8F,SAAA,CACjCa,cAAA,OAAK0Q,UAAWkV,KAAWw1E,eAAej8F,SACxCsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cA/DL3qB,IACpB+4F,GAAY,GACZuhE,EAAoB,IAAKJ,KAAoBl6J,GAAW,IA8D9C8qB,YAAU,EAAArsB,SAAA,CAEVa,cAAC26J,GAAmB,CAClBC,gBAAiBA,EACjB/vI,KAAMA,EACNzD,SAAUA,GAAS,GAAA/mB,OACX+mB,IAETA,EACC3W,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC2hF,GAAI,EAAGvnF,QAAQ,SAAQ/T,SAC1Ba,cAAC0hC,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QAzEC86D,KACnB+pE,GAAkB,EAyEAt5I,QAAQ,QACR6E,UAAU,SAAQ3W,SACnB,8BAIHa,cAAC0hC,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QA1ECw/D,KACjBuU,GAAY,EAAM,EA0EFxoF,QAAQ,QACR6E,UAAU,SAAQ3W,SACnB,6BAKDa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,SAASC,QAAS,EAAEhoC,SAAA,CACjDa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRmD,MAAM,UACNsR,QApFDqvI,KACnBt7D,GAAY,GACZ5uE,EAAKw5H,aAAa,EAkFwBllJ,SAErB+D,EAAUC,QAAQE,SAErBrD,cAAC8Y,KAAG,CAACG,GAAI,EAAE9Z,SACTa,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoU,QAAQ,YACRmD,MAAM,UACN6T,UAAW4C,EAAK2B,UAAUC,QAAQttB,SAEjC+D,EAAUC,QAAQK,0BAQnCxD,cAACqmB,KAAU,CACT3V,UAAWmiB,aAAK1K,EAAQsW,OAAQ,CAC9B,CAACtW,EAAQszE,YAAamF,IAExBl7E,QAASw7E,EAAkB/hG,SAE3Ba,cAACwhG,KAAc,MAEjB/wF,eAACu7B,GAAM,CACLpzB,KAAMqlI,EACNtzH,QAASqzH,EACTxtI,SAAS,KAAIrR,SAAA,CAEbsR,eAAC+7B,GAAW,CAAArtC,SAAA,CACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,+CAGzBsR,eAACO,IAAU,CAACN,UAAU,WAAUvR,SAAA,CAAC,OAC1B,IACLa,cAAC4nF,GAAQ,CAAChgF,KAAMgzJ,EAAgBjrH,SAAUC,OAAO,cAAe,IAAI,KACjE,IACH5vC,cAAC4nF,GAAQ,CAAChgF,KAAMgzJ,EAAgBjrH,SAAUC,OAAO,oBAGrD5vC,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASs4H,IAEXh+I,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAjJgCuzI,KAC5CgC,IACAjd,GAAkB,iBAqJZ,E,6DCtNV,MAAMkd,GAAU,CACd,OACA,OACA,SACA,YACA,SACA,OACA,SACA,SACA,QACA,aACA,OACA,QACA,SAkJaC,OA5HgCj8J,IAexC,IAfyC,KAC9Cd,EAAI,GACJ6Y,EAAE,aACFiQ,EAAY,MACZ9S,EAAQ,UAAS,OACjBhB,EAAS,OAAM,UACfuT,GAAY,EAAI,MAChB/kB,EAAK,MACL4kB,EAAK,aACL0B,EAAY,QACZpB,EAAO,SACP3nB,EAAQ,SACRi8J,EAAQ,iBACRC,KACGtmJ,GACJ7V,EACC,MAAMo8J,EAAeA,KACnB,GAAID,EAAkB,CACpB,MAAM9xH,EAAQ9oB,SAASC,cAAc,SAErC6oB,EAAMgyH,aAAa,OAAQ,QAC3BhyH,EAAMgyH,aAAa,SAAU,WAC7BhyH,EAAMtmB,QAENsmB,EAAMiyH,SAAW1pJ,UACf,GAAmB,MAAfy3B,EAAM8oD,MAAe,OACzB,MAAMV,EAAOpoD,EAAM8oD,MAAM,GACnBrmF,EAAW,IAAIxO,SAErBwO,EAASvO,OAAO,QAASk0F,GAGzB,MAAM8pE,EAAQL,EAASj+I,QAAQu+I,OAAOC,cAAa,GAYnD,IAAIr8D,EATJ87D,EAASj+I,QAAQu+I,OAAOE,YACtBH,EAAM59J,MACN,QAAQ,GAADwC,OACJC,6cAAYu7J,kBAAiB,uBAIlCT,EAASj+I,QAAQu+I,OAAOI,aAAaL,EAAM59J,MAAQ,GAGnD,IACEyhG,QAAiB+7D,EAAiBrvJ,EACpC,CAAC,QAECovJ,EAASj+I,QAAQu+I,OAAOK,WAAWN,EAAM59J,MAAO,GAI5CyhG,GAAYA,EAAS3hG,OAAS,GAChCy9J,EAASj+I,QAAQu+I,OAAOE,YAAYH,EAAM59J,MAAO,QAASyhG,EAE9D,EAEJ,GAGI08D,EAAUtiJ,mBACd,MACEuiJ,QAAS,CACPrrJ,UAAW,CACT,CAAC,CAAEhU,KAAM,CAAC,SAAS,EAAO,QAAS,UACnC,CAAC,OAAQ,SAAU,YAAa,UAChC,CAAC,CAAEilC,KAAM,WAAa,CAAEA,KAAM,WAC9B,CAAC,CAAEztB,MAAO,IAAM,CAAEV,WAAY,KAC9B,CAAC,OAAQ2nJ,EAAmB,QAAU,IACtC,CAAC,UAEHa,SAAUb,EAAmB,CAAEp7I,MAAOq7I,GAAiB,CAAC,GAE1Da,UAAW,CACTC,aAAa,MAGjB,IAGF,OACE3rJ,eAAC8V,KAEC,CACAI,UAAWA,EACXvT,OAAQA,EACRxR,MAAOA,EACP8O,UAAWC,KAAO0rJ,WAAWl9J,SAAA,CAE7Ba,cAACi4E,KAAU,CAAA94E,SAAEqnB,IACZM,EACC9mB,cAACgqB,KAAU,CACTrV,OAASI,GACP/U,cAACs8J,KAAa,CACZrlJ,GAAIA,GAAU7Y,EACdk0B,MAAM,OACN0pI,QAASA,EACTd,QAASA,MACLnmJ,EACJiC,IAAKokJ,IAGTt0I,QAASA,EACTI,aAAcA,EACd9oB,KAAMA,IAGR4B,cAACs8J,KAAa,CACZrlJ,GAAIA,GAAU7Y,EACd4Y,IAAKokJ,EACL1qJ,UAAWqE,EAAMrE,UACjBgX,SAAU3S,EAAMqS,SAChBkL,MAAM,OACN0pI,QAASA,EACTd,QAASA,MACLnmJ,IAGPnT,GAAS5B,cAACkqB,KAAc,CAAA/qB,SAAE+oB,MACf,E,qBCzBHq0I,OAnH4Cr9J,IAGpD,IAHqD,kBAC1Ds9J,EAAiB,qBACjBC,GACDv9J,EACC,MACEytC,UAAW49G,EACX39G,UAAWoxG,EACXtzH,UAAWuzH,GACTxxG,MAEGiwH,EAASC,GAAclrJ,mBAA0B,OACjDmrJ,EAAeC,GAAoBprJ,oBAAkB,IACtD,WAAE0H,GAAeQ,MAChBmjJ,EAAkBC,GAAuBtrJ,oBAAS,GAOzDqB,qBAAU,KACRkqJ,GAAc,GACb,IAEH,MAAMA,EAAelrJ,UACnBugE,GAAeC,UAAUpvE,EAAUmG,IAAIE,2BACpCoB,MAAM4gB,GAAWoxI,EAAWpxI,KAC5BzoB,OAAOlB,IACNuX,EAAWvX,EAAMpC,SACjBq9J,GAAiB,EAAK,GACtB,EAGN,OACE78J,cAAC8Y,KAAG,CAAC1F,OAAQ,EAAEjU,SACZy9J,EACC58J,cAACgR,IAAU,CAAA7R,SAAE+D,EAAUmG,IAAIC,gBAE3BmH,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACqI,KAAG,CAACkqF,GAAI,CAAE9vF,QAAS,QAAS/T,SAAA,CAC3Ba,cAACwhF,KAAgB,CACfv5D,UAAW60I,EACXh2I,QACE9mB,cAACi9J,KAAO,CACNn9J,MACEE,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAAC,yFAIjCA,SAEDa,cAAC8Y,KAAG,CAAA3Z,SACFa,cAAC2hF,KAAQ,CACP15D,UAAW60I,EACXp7E,QAAS86E,EACTvyI,SAAUA,IAAMwyI,GAAsBD,GACtCp+J,KAAK,mBAKbooB,MAAM,GACN9V,UAAWC,KAAOusJ,aAEpBzsJ,eAACO,IAAU,CAACC,QAAQ,YAAYgC,MAAO,CAAE4yB,WAAY,QAAS1mC,SAAA,CAC3D+D,EAAUsG,mBAAmBC,KAC9BzJ,cAAC0hC,KAAI,CAAC3e,KAAK,IAAI2C,QAnDGrI,IAC5BA,EAAMk7D,iBACNwkF,GAAoB,GACpBxS,GAAkB,EAgDqCprJ,SACnC,OAAPu9J,QAAO,IAAPA,OAAO,EAAPA,EAASt+J,aAIhBqS,eAACO,IAAU,CACTC,QAAQ,YACRgC,MAAO,CACL4yB,WAAY,OACZzK,WAAY,OACZf,UAAW,QACXl7B,SAAA,CAED,gBACDa,cAAC0hC,KAAI,CACH3e,KAAK,8GACL7M,OAAQ,SAAS/W,SAEhB,SAEF,oDAEHsR,eAACu7B,GAAM,CACLpzB,KAAMqlI,EACNtzH,QAASqzH,EACTxtI,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SAAEu9J,GAAWA,EAAQt+J,OACjC4B,cAACusC,GAAa,CAAAptC,SACZa,cAACm7J,GAAU,CACTzqJ,UAAWC,KAAOwsJ,eAClB/+J,KAAK,aACLgpB,UAAU,EACV7qB,MAAc,OAAPmgK,QAAO,IAAPA,OAAO,EAAPA,EAASr4J,YAGpBrE,cAACmsC,GAAa,CAAAhtC,SACZa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQC,GACxBsiB,QAASs4H,aAMf,EC/EV,MAAMof,GAAgD,CACpDztH,SAAU,IAAI5xC,KACd8xC,OAAQ,IAAI9xC,KACZ+9F,aAASt/F,EACTu/F,UAAMv/F,EACNq+J,iBAAar+J,EACbqjD,aAASrjD,GAqrBI6gK,OAlrB4CA,KAAO,IAADpV,EAAAqV,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC/D,MACEngJ,OAAO,aACLu6C,EAAY,WACZG,EAAU,MACVL,EAAK,mBACL9D,EAAkB,QAClBvf,EAAO,QACPjoB,GACD,wBACD8wC,EAAuB,SACvB2G,EAAQ,aACRF,EAAY,cACZpB,EAAa,iBACbhC,EAAgB,YAChBqD,GACEwB,MAGF94B,UAAW2sD,EACX1sD,UAAW+rD,EACXjuE,UAAWguE,GACTjsD,MACE,WAACtzB,GAAcQ,KACfge,EAAajB,MACZ8zB,EAAgBszG,GAAqBrsJ,mBAC1CwiD,EAAmB/J,SAEdvZ,EAAaotH,GAAkBtsJ,mBACP,QADew2I,EAC5CvzG,EAAQyf,mBAAmB,UAAE,IAAA8zF,OAAA,EAA7BA,EAA+Bv0G,WAE1BipB,EAAoBqhG,GAAyBvsJ,mBAClDijC,EAAQioB,qBAGHl4C,EAAQ+wG,GAAa/jH,mBAASwhJ,MAE/BgL,EAAqBx9I,IACzB,MAAMy8E,EAAepwD,KAAOrsB,EAASu8E,YAC/BM,EAAQxwD,OACd,OAAOowD,EAAa38B,SAAS+8B,EAAM,EAGrC,IAAI4gE,EAA2D,QAA7BZ,EAAG5oH,EAAQyf,0BAAkB,IAAAmpG,OAAA,EAA1BA,EAA4B5nJ,KAAKyoJ,IAAQ,IAAD1pG,EAAAs0D,EAAAq1C,EAAAC,EAAAC,EAC3E,IAAIC,EACmE,QADzD9pG,EACgB,QADhBs0D,EACZ90D,EAAmBU,iBAAS,IAAAo0D,OAAA,EAA5BA,EAA8BrsG,MAAMnF,GAAMA,EAAEm8B,WAAayqH,EAAGzqH,kBAAS,IAAA+gB,IACrER,EAAmB/J,OACrB,MAAO,IACFi0G,EACHt8F,WACEs8F,EAAGt8F,WAAa,EACZ08F,EAAWv8F,UAAUtlD,MAAMtF,GAAMA,EAAEyqD,aAAes8F,EAAGt8F,aAAeo8F,EAAkB7mJ,KAAM+mJ,EAAGt8F,WAAa,EACQ,QADPu8F,EACzF,QADyFC,EAC7GE,EAAWv8F,iBAAS,IAAAq8F,GAAoF,QAApFC,EAApBD,EAAsB3hJ,MAAMtF,GAAMA,EAAEonD,WAAgC,aAAnBpnD,EAAEmoF,eAAgC0+D,EAAkB7mJ,YAAG,IAAAknJ,OAApF,EAApBA,EAA0Gz8F,kBAAU,IAAAu8F,IAAI,EAC/H,IAGH,MAAOjqG,EAAoBqqG,GAAyB/sJ,mBAElDysJ,IACKt3F,EAAUwhD,GAAe32G,mBAAoB,CAAC,IAC9C4wD,EAAkBo8F,GAAuBhtJ,mBAE9C,KAEKitJ,EAAoBC,GAAyBltJ,mBAIjD,QAJyD8rJ,EAASppG,EACjD,OAAlBA,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBnvC,WACjBu1B,GAAMA,EAAE7G,WAAa/C,YAEvB,IAAA4sH,OAAA,EAJkEA,EAIhE17F,YAEL/uD,qBAAU,KACR,IAAI8rJ,EAAY3mG,EAAav7C,MAC1BohD,GAAOA,EAAG3b,aAAezN,EAAQyN,aAIpC,GAFAy8G,GAAax2C,EAAYw2C,GAErBlqH,EAAQ2tB,iBAAkB,CAC5B,IAAIw8F,EAA8B,GAClCnqH,EAAQ2tB,iBAAiBzkE,SAASkhK,IAChCD,EAAIp/J,KAAK,CACPmzJ,yBAA0BkM,EAAGnvH,SAC7BkjH,yBAA0BiM,EAAGjvH,OAC7BijH,yBAA0BgM,EAAGhjE,QAC7Bk3D,yBAA0B8L,EAAGjE,YAC7B9H,yBAA0B+L,EAAG/iE,KAC7B++D,yBAA0BgE,EAAGj/G,SAC7B,IAEJ4+G,EAAoB,IAAII,GAC1B,IACC,CAACnqH,EAAQ2tB,iBAAkB3tB,EAAQyN,aAEtC,MAAMt3B,EAAOC,aAA2B,CACtCG,KAAM,WACNF,SAAUC,aAAYvG,KAGlBs6I,EAAYl0I,EAAK05F,SAEhB/gC,EAAkBC,GAAuBhyE,oBAAkB,IAC3DutJ,EAA8BC,GACnCxtJ,oBAAkB,IACbytJ,GAAiBC,IAAsB1tJ,oBAAkB,GAC1D2tJ,GACJjrG,EACoB,OAAlBA,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBnvC,WAAWu1B,GAAMA,EAAE7G,WAAa/C,KAGxD79B,qBAAU,KACR,IAAImV,EACFzD,GAAuBC,EAAQoG,EAAKnG,aAClCmG,EAAK2B,UAAUC,UAAYyyI,GAC/Bj3I,EACEA,GACAksC,EAAmBhzB,QAAQoZ,GAAuB,IAAjBA,EAAEsnB,aAAkBlkE,OAAS,GAC9D0hK,MAA8BC,KAChC77E,EAAoBx7D,EAAS,GAC5B,CACD4C,EAAK2B,UAAUE,QACf7B,EAAK2B,UAAU+yI,YACfl9F,EACAx3C,EAAK2B,UAAUC,QACfhI,EACA0vC,IAGFrhD,qBAAU,KACR0iH,EAAUy9B,KAAyB,GAClC,CAACv+G,EAAQ6gB,OAAQ7gB,EAAQ4gB,KAAM5gB,EAAQ8gB,cAE1C1iD,qBAAU,KAAO,IAADk2G,EAAAG,EACd20C,EACuE,QADtD90C,EACa,QADbG,EACfl1D,EAAmBU,iBAAS,IAAAw0D,OAAA,EAA5BA,EAA8BzsG,MAAMnF,GAAMA,EAAEm8B,WAAa/C,WAAY,IAAAq4E,IACrE/0D,EAAmB/J,OACpB,GACA,CAACvZ,IAEJ79B,qBAAU,KAAO,IAADs2G,EAAAG,EACdu0C,EACuE,QADtD10C,EACa,QADbG,EACft1D,EAAmBU,iBAAS,IAAA40D,OAAA,EAA5BA,EAA8B7sG,MAAMnF,GAAMA,EAAEm8B,WAAa/C,WAAY,IAAAy4E,IACrEn1D,EAAmB/J,OACpB,GACA,CAAC+J,IAEJnhD,qBAAU,KACR,MAAM0sJ,EAAkBh1G,EAAewX,UAAUtlD,MAC9CtF,GAAMA,EAAEyqD,aAAeu9F,GAAcv9F,aAExC,GAAIu9F,GAAcv9F,WAAa,IAAM29F,EACnCC,GAA+B,EAAG9uH,QAC7B,IAAKuuH,GAAiB,CAC3B,MAAMQ,EAAqBl1G,EAAewX,UAAU7gC,QACjD9K,GAAyB,aAAnBA,EAAEkpE,eAELogE,EAAkBD,EAAmBhjJ,MAAM2Z,GAAMA,EAAEmoC,YACD,IAADohG,EAAAC,EAAvD,GAAiC,IAA7BT,GAAcv9F,YAAoB89F,EACpCF,GACyD,QAD3BG,EACe,QADfC,EAC5BH,EAAmBhjJ,MAAM2Z,GAAMA,EAAEmoC,mBAAU,IAAAqhG,OAAA,EAA3CA,EAA6Ch+F,kBAAU,IAAA+9F,IAAI,EAC3DjvH,EAGN,IACC,CAAC6Z,EAAewX,YAEnBlvD,qBAAU,KAKL,IAADgtJ,OADMtjK,IAFNy3D,EAAmBohG,WAAW34I,MAC3B84I,GAAQA,EAAIntG,cAAgB02G,EAAU7L,sBAGzCroI,EAAKy9D,SACH,qBACgC,QADZw3E,EACpB7rG,EAAmBohG,WAAW,UAAE,IAAAyK,OAAA,EAAhCA,EAAkCz3G,YAClC,CACE6iE,aAAa,EACbz5B,gBAAgB,GAGtB,GACC,CAACx9B,EAAmBohG,aAEvB,MAAMiK,GAA2BA,IACxBZ,GAAsB,EAGzBW,GAA2BA,KAAO,IAADxiC,EAAAC,EACrC,IAAIijC,GAAY,EACZC,GAAkB,EAsBtB,OArBc,QAAdnjC,EAAAnoF,EAAQ6gB,cAAM,IAAAsnE,GAAdA,EAAgBj/H,SAASof,IAClBA,EAAQ+jD,KAAK/3D,OAAOgM,SAAS,eAChCgrJ,GAAkB,EACpB,KAGAp5F,EAASxE,YACP1tB,EAAQ6gB,QAAqC,KAAb,QAAdunE,EAAApoF,EAAQ6gB,cAAM,IAAAunE,OAAA,EAAdA,EAAgBn/H,UAAgBqiK,IAEpDD,IAA6B,OAAhB19F,QAAgB,IAAhBA,KAAkBv9C,MAC5B6O,GACCA,EAAEi/H,0BACFj/H,EAAEk/H,0BACFl/H,EAAEm/H,0BACFn/H,EAAEo/H,0BACFp/H,EAAEq/H,0BACFr/H,EAAEm/H,yBAAyB5rD,UAAUvpG,OAAS,GAC9Cg2B,EAAEo/H,yBAAyB7rD,UAAUvpG,OAAS,GAC9Cg2B,EAAEq/H,yBAAyB9rD,UAAUvpG,OAAS,MAG7CoiK,CAAS,EAmDZN,GAAiCA,CAACljK,EAAYm3C,KAClD,MAAMusH,EAAWz1G,EAAewX,UAAUtlD,MAAK5R,GAAKA,EAAE+2D,YAActlE,IACpE,IAAK0jK,EAAU,OAEf,GAAIhC,EAAkBgC,IAAiC,aAApBA,EAASj3J,OAC1C,OAGF6hB,EAAK2B,UAAUC,SAAU,EACzB0yI,IAAmB,GACnB,IAAIe,EAA4B/rG,EAChC+rG,EACoB,OAAlB/rG,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBnvC,WAAWu1B,GAAMA,EAAE7G,WAAaA,KAChD,CACJA,SAAUA,EACVmuB,WAAYtlE,EACZ03C,cAAe,GAEjBuqH,EAAsB,IAAI0B,IAC1BvB,EAAsBpiK,EAAM,EAG9BuW,qBAAU,KAAO,IAADqtJ,EACd,MAAM/hE,EAIH,QAJa+hE,EAAGhsG,EACC,OAAlBA,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBnvC,WACjBu1B,GAAMA,EAAE7G,WAAa/C,YAEvB,IAAAwvH,OAAA,EAJgBA,EAIdt+F,WACL88F,EAAsBvgE,EAAW,GAChC,CAAC5zC,IAEJ,MAIM41G,GAAet1I,aAA8B,CACjDG,KAAM,WACNF,SAAUC,aAAYZ,OAAaC,MAAMsoI,OAG3C7/I,qBAAU,KACR,IAAImV,EAIFA,GAHGm4I,GAAa5zI,UAAUC,SAGfjI,GACT4F,OAAaC,MAAMsoI,IACnByN,GAAa17I,WAGjBu6I,EAAgCh3I,EAAS,GACxC,CAACm4I,GAAa5zI,UAAUE,QAAS0zI,GAAat5I,UAEjD,MAgCMu5I,GAAmB71G,EAAewX,UAAU7gC,QAAO/pB,GAAKA,EAAEyqD,aAAe68F,IAAoB,GAEnG,OACEjuJ,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAACiuG,KAAY,IAAKpjF,EAAI1rB,SACpBsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAxIFA,CACnBshG,EACAtvG,KAEA,GAAU,OAALA,QAAK,IAALA,MAAOijJ,uBAAwB,CAAC,IAADC,EAAAC,EAAAC,EAClC,IAAIC,EAAazsG,EAAmB8J,oBAAoBrhD,MACrD2Z,GAAMA,EAAE4nC,WAAa0uD,EAAYg0C,4BAGhCC,EAA4C,GAEhDv+F,EAAiBzkE,SAASkhK,IACxB,IAAI+B,EAA0C,CAC5ClxH,SAAUmvH,EAAGlM,yBACb/iH,OAAQivH,EAAGjM,yBACX/2D,QAASgjE,EAAGhM,yBACZ/2D,KAAM+iE,EAAG/L,yBACTlzG,QAASi/G,EAAGhE,yBACZD,YAAaiE,EAAG9L,0BAElB4N,EAAsBnhK,KAAKohK,EAAsB,IAGnD,IAAIt1I,EAAwB,CAC1B4oC,mBAAoBA,EACpBmN,mBAAoBqrD,EAAYumC,mBAChCv0F,OAA+B,QAAzB4hG,EAAY,OAAVG,QAAU,IAAVA,OAAU,EAAVA,EAAYhiG,mBAAW,IAAA6hG,IAAI,GACnChiG,QAA4B,QAArBiiG,EAAY,OAAVE,QAAU,IAAVA,OAAU,EAAVA,EAAYpiG,eAAO,IAAAkiG,IAAI,GAChCxiG,SAA8B,QAAtByiG,EAAY,OAAVC,QAAU,IAAVA,OAAU,EAAVA,EAAYziG,gBAAQ,IAAAwiG,IAAI,GAClC5hG,iBAA4B,OAAV6hG,QAAU,IAAVA,OAAU,EAAVA,EAAY9hG,eAC9B2D,oBAAqBoqD,EAAYwmC,0BACjC7wF,aAAcqqD,EAAYymC,mBAC1BsH,eAAgB/tC,EAAY0mC,qBAC5B12F,mBAAoBA,EACpB0F,iBAAkBu+F,GAGpBhgG,EAAiBr1C,GAEjBpS,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7D8rD,GACF,KAgGMz4C,YAAU,EACV9a,UAAW2mG,KAAU1wF,UAAUxnB,SAAA,CAE9Bu1C,EAAQyf,oBACPzf,EAAQyf,mBAAmBx2D,OAAS,GAClCqC,cAACk4F,KAAI,CACH37F,MAAOo0C,EACP1/B,QAAQ,aACRgZ,SAAUA,CAAC5M,EAAO9gB,IAAUwhK,EAAexhK,GAC3CmU,UAAW2mG,KAAUlf,OAAOh5F,SAE3Bu1C,EAAQyf,mBAAmBz+C,KAAKw0C,IAAY,IAADs/D,EAAAs3C,EAC1C,IAAIvC,EAGD,QAHW/0C,EACgB,QADhBs3C,EACZ7sG,EAAmBU,iBAAS,IAAAmsG,OAAA,EAA5BA,EAA8BpkJ,MAC3BnF,GAAMA,EAAEm8B,WAAawW,EAAOxW,kBAC9B,IAAA81E,IAAIv1D,EAAmB/J,OAC1B,OACElqD,cAACu4F,KAAG,CAEF/xE,MAAK,GAAAnmB,OACO,OAAVk+J,QAAU,IAAVA,OAAU,EAAVA,EAAYhsJ,UAAS,KAAAlS,OACT,OAAVk+J,QAAU,IAAVA,OAAU,EAAVA,EAAYjsJ,SAAS0oB,qBACzBz+B,MAAOgiK,EAAW7qH,UAJb6qH,EAAW7qH,SAKhB,MAKZjjC,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBsR,eAAC+6F,KAAS,CAAArsG,SAAA,CACRa,cAACyrG,KAAgB,CACfC,WAAY1rG,cAACwhG,KAAc,IAC3BvqF,GAAG,mBAAkB9X,SAErBsR,eAACqI,KAAG,CACFg8H,aAAa,SACb5hI,QAASykB,EAAWX,OAAS,OAAS,OAAO73B,SAAA,CAE7Ca,cAACgR,IAAU,CAAA7R,SAAC,sBACVmgK,QAA6C,OAAbF,SAAa,IAAbA,OAAev9F,aAClB,IAA7Bu9F,GAAcv9F,aACd7hE,cAACuzJ,GAAuB,CACtB/zJ,QAAQ,gCACRg0J,YAAU,SAKlBxzJ,cAAC2rG,KAAgB,CAAAxsG,SACfsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAK1sB,SAAA,CAC7Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CACVC,MAAM,WACNC,YAAY,kDAAiDtnB,SAE7Da,cAAC8+E,GAAM,CACL1rE,OAAO,SACPhV,KAAK,oBACL2iK,cAAY,EACZh5I,QAAiC,QAA1By1I,EAAEhzG,EAAewX,iBAAS,IAAAw7F,OAAA,EAAxBA,EACLr8H,QAAQ/pB,GAAyB,aAAnBA,EAAEmoF,cAA4C,aAAbnoF,EAAEpO,SAA0Bi1J,EAAkB7mJ,KAC9F1B,KAAKsrJ,IAAG,CACPx6I,MACE/V,eAACmb,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAGh0B,WAAW,WACjC+zB,eAAe,aAAY/nC,SAAA,CAC/Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC+/F,KAAgB,CAAC9gB,KAAG,EACH0gB,YAAaqhE,EAAIhhE,gBACjB/sF,MAAO,CAACoB,aAAc,eAE1CrU,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACP6hK,EAAI3sE,kBAGX93F,MAAOykK,EAAIn/F,eAEftlE,MAKK,QALAkhK,EACHtpG,EACoB,OAAlBA,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBnvC,WACjBu1B,GAAMA,EAAE7G,WAAa/C,YAEvB,IAAA8sH,OAAA,EAJHA,EAIK57F,WAEP53C,SAAW5M,IACToiJ,GACEpiJ,EAAMnH,OAAO3Z,MACbo0C,EACD,SAKgB,QAAxB+sH,EAAAlzG,EAAewX,iBAAS,IAAA07F,OAAA,EAAxBA,EAA0Bv8H,QAAQ/pB,GAAyB,aAAnBA,EAAEmoF,cAA4C,aAAbnoF,EAAEpO,SAA0Bi1J,EAAkB7mJ,KAAIzZ,QAAS,GACnIqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SACfkhK,IAAoBrgK,cAACw/F,GAAoB,CAAC/+E,SAAU4/I,eAM/D5vJ,eAACqI,KAAG,CACF5F,QACEy9B,KAA6C,QAAlCgtH,EAAKjpH,EAAQyf,mBAAmB,UAAE,IAAAwpG,OAAA,EAA7BA,EAA+BjqH,UAC3C,QACA,OACLv0C,SAAA,CAEDsR,eAAC+6F,KAAS,CAAArsG,SAAA,CACRa,cAACyrG,KAAgB,CACfC,WAAY1rG,cAACwhG,KAAc,IAC3BvqF,GAAG,mBAAkB9X,SAErBsR,eAACqI,KAAG,CACFg8H,aAAa,SACb5hI,QAASykB,EAAWX,OAAS,OAAS,OAAO73B,SAAA,CAE7Ca,cAACgR,IAAU,CAAA7R,SAAC,uBACV4/J,EAAU7L,oBACVlzJ,cAACuzJ,GAAuB,CACtB/zJ,QAAQ,iCACRg0J,YAAU,SAKlBxzJ,cAAC2rG,KAAgB,CAAAxsG,SACfsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAK1sB,SAAA,CAC7Ba,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CACVC,MAAM,oBACNC,YAAY,oEAAmEtnB,SAE/Ea,cAAC8+E,GAAM,CACL1rE,OAAO,SACP6D,GAAG,uCACH7Y,KAAK,qBACL2pB,QAASksC,EAAmBohG,WAAW3/I,KAAK8/I,IAAG,CAC7ChvI,MAAM,GAADnmB,OAAKm1J,EAAIjjJ,UAAS,KAAAlS,OAAIm1J,EAAIljJ,UAC/B/V,MAAOi5J,EAAIntG,gBAEbvhC,QAAS+D,EAAK/D,QACdI,aAC4B,QADhB02I,EACVlpH,EAAQ4sB,0BAAkB,IAAAs8F,IAGzB,QAHyBC,EAC1B5pG,EAAmBohG,WAAW34I,MAC3B2H,GAAMA,EAAEm6C,mBACV,IAAAq/F,OAAA,EAFDA,EAEGx1G,kBAKXroD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACm1J,GAAgB,CACfjrG,OAAQ+J,EAAmB/J,OAC3BmrG,WAAYphG,EAAmBohG,WAC/B5oG,iBAAkB8Q,EAClB+3F,eAAe,cAMzB7kJ,eAAC+6F,KAAS,CAAArsG,SAAA,CACRa,cAACyrG,KAAgB,CACfC,WAAY1rG,cAACwhG,KAAc,IAC3BvqF,GAAG,mBAAkB9X,SAErBa,cAAC8Y,KAAG,CACFg8H,aAAa,SACb5hI,QAASykB,EAAWX,OAAS,OAAS,OAAO73B,SAE7Ca,cAACgR,IAAU,CAAA7R,SAAC,4BAGhBa,cAAC2rG,KAAgB,CAAAxsG,SACfa,cAAC4rB,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAK1sB,SAC7Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACo5J,GAA8B,CAC7BC,gBAAiBxuI,GACZ,YAMfpa,eAAC+6F,KAAS,CAAC96F,UAAWuwJ,KAAOC,4BAA4B/hK,SAAA,CACvDa,cAACyrG,KAAgB,CACfC,WAAY1rG,cAACwhG,KAAc,IAC3BvqF,GAAG,sBAAqB9X,SAExBsR,eAACqI,KAAG,CACFg8H,aAAa,SACb5hI,QAASykB,EAAWX,OAAS,OAAS,OAAO73B,SAAA,CAE7Ca,cAACgR,IAAU,CAAA7R,SAAC,yBA7UpB4/J,EAAU5L,2BA+UAnzJ,cAACuzJ,GAAuB,CACtB/zJ,QAAQ,mCACRg0J,YAAU,SAKlBxzJ,cAAC2rG,KAAgB,CAAAxsG,SACfa,cAACy6J,GAAsB,CACrBl4F,oBAAqB7tB,EAAQ6tB,oBAC7BD,aAAc5tB,EAAQ4tB,aACtBo4F,eAAgBhmH,EAAQgmH,4BAMlC16J,cAAC29I,GAAc,CACbC,YAAa7lF,EAAMp6D,OACnBy6D,WAAYA,EACZ8L,SAAUA,EACVF,aAAcA,EACdpB,cAAeA,EACfm7E,mBAAoBtxH,EAAQttB,SAE5Ba,cAAC2lB,KAAM,CACL1U,QAAQ,YACRP,UAAW2mG,KAAUpxF,uBACrBppB,KAAK,SACLorB,SAAUu7D,IAAqB7mB,EAAmBx9D,SAEjD,wBAKTa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CACF5F,QACE+gD,EAAmB/J,OAAOxW,WAAa8W,EAAe9W,SAClD,QACA,OACLv0C,SAEDsR,eAAC+6F,KAAS,CAAArsG,SAAA,CACRa,cAACyrG,KAAgB,CACfC,WAAY1rG,cAACwhG,KAAc,IAC3BvqF,GAAG,0BAAyB9X,SAE5BsR,eAACqI,KAAG,CACFg8H,aAAa,SACb5hI,QAASykB,EAAWX,OAAS,OAAS,OAAO73B,SAAA,CAE7Ca,cAACgR,IAAU,CAACN,UAAW2mG,KAAUy9C,SAAS31J,SAAC,qBAG1CkgK,MACCr/J,cAACuzJ,GAAuB,CACtB/zJ,QAAQ,4DACRg0J,YAAU,SAKlB/iJ,eAACk7F,KAAgB,CAACj7F,UAAWuwJ,KAAOE,uBAAuBhiK,SAAA,CACzDa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CAACj0D,QAnUI07I,KAC3B9nE,GAAY,EAkUyCn6F,SAAC,6BAI5Ca,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,iFAKb,OAAhBkjE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB3sD,KAAI,CAAChV,EAAU7C,KAAW,IAADwjK,EAAAC,EAC1C,OACEthK,cAAC+6J,GAAmB,CAElBH,gBAAiB,CACfjrH,SAA2C,QAAnC0xH,EAAE3gK,EAASkyJ,gCAAwB,IAAAyO,IAAI,IAAItjK,KACnD8xC,OAAyC,QAAnCyxH,EAAE5gK,EAASmyJ,gCAAwB,IAAAyO,IAAI,IAAIvjK,KACjD+9F,QAASp7F,EAASoyJ,yBAClB/2D,KAAMr7F,EAASqyJ,yBACf8H,YAAan6J,EAASsyJ,yBACtBnzG,QAASn/C,EAASo6J,0BAEpBE,oBAAsBt6J,GAnUJ6gK,EAClC3G,EACA/8J,KAEA,IAAI2jK,EAA0Bn/F,EAAiB3sD,KAAI,CAACie,EAAG8tI,IACrD5jK,IAAU4jK,EAAS7G,EAAkBjnI,IAGvC8qI,EAAoB,IAAI+C,IACxB32I,EAAK2B,UAAUC,SAAU,EACzBtT,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,QAAQ,EA0TnDopJ,CAA4B7gK,EAAU7C,GAExCo9J,sBAAuBA,IA9SJp9J,KACnC4gK,EACEp8F,EAAiBlhC,QAAO,CAACxN,EAAG8tI,IAAW5jK,IAAU4jK,KAEnD52I,EAAK2B,UAAUC,SAAU,EACzBtT,EAAWjW,EAAUuB,SAASC,QAAQE,YAAaqT,GAAYE,QAAQ,EA0SrDupJ,CAA4B7jK,IAbzBA,EAeL,cAOdmC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACu8J,GAAsB,CACrBC,kBAAmB7/F,EACnB8/F,qBAAsBuB,MAG1BvtJ,eAAC4U,GAAM,CAACzM,KAAM8/E,EAAiB/tE,QAASguE,EAAWx5F,SAAA,CACjDa,cAACkmB,GAAW,CAACC,YAAawR,EAAWX,OAAS2hE,OAAan8F,EAAU2C,SAAC,2BAGtEsR,eAAA,QACEkX,aAAa,MACbyD,SAAUg1I,GAAa/0I,cA/UGuvI,IAE9B6D,EADEp8F,EACkB,IAAIA,EAAkBu4F,GAEtB,CAACA,IAEvBjiE,IACA9tE,EAAK2B,UAAUC,SAAU,EACzBtT,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,QAAQ,IAwU/DqT,YAAU,EACV9a,UAAW2mG,KAAU2+C,cAAc72J,SAAA,CAEnCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAAC26J,GAAmB,CAClB9vI,KAAMu1I,GACNxF,gBAAiBwC,OAGrBp9J,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUvrF,oBAAoB3sB,SAAA,CACvDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACylB,GAAkB,CAACC,QAASizE,EAAYhyE,WAAS,MAEpD3mB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAAC+lB,GAAgB,CACfY,WAAS,EACTsB,SAAU+2I,mBAOjB,E,qBCrbI2C,OA/QoDA,KAAO,IAAD3sG,EAAA4sG,EAAAC,EAAArlC,EAAAC,EAAA60B,EAAA30B,EAAA80B,EAAAx0B,EAAAu0B,EAAA10B,EAAAglC,EACvE,MACEpkJ,OAAO,YACLnM,EAAW,MACXwmD,EAAK,WACLK,EAAU,QACV1jB,EAAO,eACP+nB,EAAc,aACdxE,EAAY,mBACZhE,EAAkB,iBAClBC,GACD,cACD4O,EAAa,iBACbE,EAAgB,YAChBuC,EAAW,cACX3C,GACE6C,KACEluC,EAAUC,cACVG,EAAajB,MAEjBkW,UAAWoxG,EACXtzH,UAAWuzH,GACTxxG,MAEFE,UAAWo1H,EACXn1H,UAAWo1H,EACXt3I,UAAWu3I,GACTx1H,MAEE,YAACp7B,GAAemD,KAEhB,GAACyC,EAAE,KAAE8rD,EAAI,OAAEm/F,GAAUx9D,cAE3B5xF,qBAAU,MACJmlD,GAAiBwE,GAAmB6wD,MAAMr2G,IAC5CsuD,EAAYjhC,OAAOrtB,GACrB,GACC,CAACghD,IAEJnlD,qBAAU,KACJ4hC,EAAQytH,SACL9wJ,EAAY2D,SAAS+Y,GAAgB0C,gCACxC8G,EAAQsH,QAAQ,yBAA2B6V,EAAQT,eAEvD,GACC,CAACS,IAEJ5hC,qBAAU,KACR,GAAIilD,EAAMp6D,OAAS,IAAM8+D,IAAmB6wD,MAAMr2G,GAAK,CACrD,MAAMmrJ,EAAerqG,EAAMr7C,MACxBC,GACCA,EAAEve,KAAKq8C,cAAc5b,QAAQ,IAAK,OAC9B,OAAJkkC,QAAI,IAAJA,OAAI,EAAJA,EAAMtoB,cAAc5b,QAAQ,IAAK,OAEjCujI,GAAgBF,EAClBl/F,EAAiBo/F,EAAahkK,MAAO8jK,GAErCp/F,EAAc/K,EAAM/yC,WAAWrI,GAAMA,EAAEve,OAASs6D,GAAMwH,SAE1D,CAEqB,IAAjBnI,EAAMp6D,QAAgB2vH,MAAMr2G,IAAKsgB,EAAQ93B,KAAK,eAAe,GAChE,CAACs4D,EAAO0E,IAEX,MAqBM4lG,EAAiC,OAAP3tH,QAAO,IAAPA,GAAkB,QAAXsgB,EAAPtgB,EAASwgB,iBAAS,IAAAF,OAAX,EAAPA,EAAoBxC,SAAS/mD,IACpD,CACLwL,GAAIxL,EAAEqrD,KACN9iB,QAASt3C,MAAMgzC,KACb,IAAIgrB,IACFjvD,EAAE0pD,aACCh0B,QAAQskB,GAAMA,EAAEqW,aAAerwD,EAAEqwD,aACjCtJ,SAAS/M,GACRA,EAAE2P,8BAA8B5C,SAASjY,GAAMA,EAAE7G,mBAOvD4uH,EAAyC,OAAvBD,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBvkI,QAC/C,CAAC2sC,EAAG8F,IAAM9F,EAAI8F,EAAEv8B,QAAQr2C,QACxB,GAoBIu7E,GAAkC,QAAjB0oF,EAAA7pG,EAAMK,UAAW,IAAAwpG,OAAA,EAAjBA,EAAmBxjK,QAASs6D,GAAMwG,WACnD,iBAACnK,GAAoBf,GACzBC,EACAC,EACAxf,EAAQyf,mBACRzf,GAGF,OACEjkC,eAAAgF,WAAA,CAAAtW,SAAA,CACG80D,EAAmB/J,QACpB+N,GACA1mD,IACCkrD,EACC1E,EAAMp6D,OAAS,GACb8S,eAAAgF,WAAA,CAAAtW,SAAA,EACImuH,MAAMr2G,IACNy9B,EAAQT,eAAiBh9B,GACzBy9B,EAAQwN,SACR+R,EAAmB/J,OAAOxW,WAAagB,EAAQwN,SAE7CliD,cAAAyV,WAAA,IAEJhF,eAACqI,KAAG,CAAC4S,GAAI,GAAGvsB,SAAA,CACVsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAK1sB,SAAA,CAC7Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC+6I,WAAO,CAAC38I,KAAK,wBAAuBe,SACnCsR,eAACwoE,GAAW,CACVn5E,MACEwtH,MAAMr2G,GACF,qBAAoB,oBAAA5W,OACA4W,EAAE,QAAA5W,OAAO4zD,EAAmB/J,OAAO33C,UAAS,KAAAlS,OAAI4zD,EAAmB/J,OAAO53C,UAEpG4mE,eAAgBA,EAAe/5E,SAAA,CAE9Bw4B,EAAWX,SACO,QAAjB6qI,EAAA9pG,EAAMK,UAAW,IAAAypG,OAAA,EAAjBA,EAAmBzjK,QAASs6D,GAAMwH,QAChClgE,cAACqmB,KAAU,CACTX,QAASq8I,EACTrxJ,UAAWC,KAAO4xJ,aAAapjK,SAE/Ba,cAAC21B,KAAK,CACJvhB,MAAM,YACN1D,UAAWkV,KAAWiQ,MACtB5kB,QAAQ,WACR+4E,QAAQ,WACRp0D,cAC6B,QAA3B4mG,EAAQ,OAAP9nF,QAAO,IAAPA,GAAkB,QAAX+nF,EAAP/nF,EAASwgB,iBAAS,IAAAunE,OAAX,EAAPA,EAAoB9+H,cAAM,IAAA6+H,IAAI,IACF,QADG80B,EACxB,OAAP58G,QAAO,IAAPA,GAAoB,QAAbioF,EAAPjoF,EAAS8gB,mBAAW,IAAAmnE,OAAb,EAAPA,EAAsBh/H,cAAM,IAAA2zJ,IAAI,IACX,QADaG,EAC3B,OAAP/8G,QAAO,IAAPA,GAAa,QAANuoF,EAAPvoF,EAAS4gB,YAAI,IAAA2nE,OAAN,EAAPA,EAAet/H,cAAM,IAAA8zJ,IAAI,IACF,QADID,EACpB,OAAP98G,QAAO,IAAPA,GAAe,QAARooF,EAAPpoF,EAAS6gB,cAAM,IAAAunE,OAAR,EAAPA,EAAiBn/H,cAAM,IAAA6zJ,IAAI,GAC7BryJ,SAEDa,cAACwiK,GAAU,QAInB/xJ,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,SAAQ1sB,SAAA,CAChCa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACquH,GAAO,CACNj2D,WAAYA,EACZL,MAAOA,EACP+K,cAAeA,EACf2rD,WA/EjB12D,EAAMriD,KAAI,CAACqtD,EAAMllE,KAAW,IAAD++H,EAAAC,EAAAE,EAAAC,EAAAN,EAAAznE,EAChC,OAAQ8N,EAAK3kE,MACX,KAAKs6D,GAAMC,MACT,MAAO,CAAC96D,MAAOA,EAAOwxH,MAA8B,QAAzBuN,EAAS,OAAPloF,QAAO,IAAPA,GAAe,QAARmoF,EAAPnoF,EAAS6gB,cAAM,IAAAsnE,OAAR,EAAPA,EAAiBl/H,cAAM,IAAAi/H,IAAI,GAC1D,KAAKlkE,GAAMc,IACT,MAAO,CAAC37D,MAAOA,EAAOwxH,MAA4B,QAAvB0N,EAAS,OAAProF,QAAO,IAAPA,GAAa,QAANsoF,EAAPtoF,EAAS4gB,YAAI,IAAA0nE,OAAN,EAAPA,EAAer/H,cAAM,IAAAo/H,IAAI,GACxD,KAAKrkE,GAAMyB,qBACT,MAAO,CAACt8D,MAAOA,EAAOwxH,MAAkC,QAA7BqN,EAAqB,QAArBznE,EAAEvgB,EAAQ8gB,mBAAW,IAAAP,OAAA,EAAnBA,EAAqBt3D,cAAM,IAAA++H,IAAI,GAC9D,KAAKhkE,GAAMwG,UACT,MAAO,CAACrhE,MAAOA,EAAOwxH,MAAsB,OAAfizC,QAAe,IAAfA,IAAmB,GAClD,QACE,MAAO,CAACzkK,MAAOA,EAAOwxH,MAAO,GACjC,QAsEkBrvH,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SA5HlBsjK,MACpB,MAAMC,EAAmB3qG,EAAMK,GAE/B,OAAwB,OAAhBsqG,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBtkK,MACxB,KAAKs6D,GAAMC,MACT,OAAO34D,cAAC6+I,GAAS,IACnB,KAAKnmF,GAAMc,IACT,OAAOx5D,cAAC0jJ,GAAO,IACjB,KAAKhrF,GAAMyB,qBACT,OAAOn6D,cAAC0mJ,GAAc,IACxB,KAAKhuF,GAAMwG,UACT,OAAOl/D,cAACksJ,GAAY,IACtB,KAAKxzF,GAAMqH,cACT,OAAO//D,cAACq9J,GAAgB,IAC1B,KAAK3kG,GAAMwH,OACT,OAAOlgE,cAACwyJ,GAAU,IACpB,QACE,OAAOxyJ,cAAAyV,WAAA,IACX,EA2GuBgtJ,gBAMO,QAAjBX,EAAA/pG,EAAMK,UAAW,IAAA0pG,OAAA,EAAjBA,EAAmB1jK,QAASs6D,GAAMwH,OACjCvoC,EAAWX,OACTvmB,eAAC4U,GAAM,CAACzM,KAAMqpJ,EAAsB9iK,SAAA,CAClCa,cAACkmB,GAAW,CAACC,YAAa67I,EAAkB57I,UAAQ,EAAAjnB,SAAC,qBAGrDa,cAACu8H,GAAM,CAAC/D,YAAawpC,OAGvBhiK,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu8H,GAAM,OAIV5kG,EAAWX,QACZ+9B,GACAb,GACEl0D,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACw3H,GAAa,CACZpjE,WAAYW,EACZd,mBAAoBA,EACpBC,iBAAkBA,EAClBsR,YAAa9wB,EACbttB,UAAU,WAOrB8xD,GACCl5E,cAAAyV,WAAA,CAAAtW,SACEa,cAAC46I,GAAc,YAOzB56I,cAAC02E,KAAc,CAACtiE,MAAM,cAExB3D,eAACu7B,GAAM,CACLpzB,KAAMqlI,EACNtzH,QAASqzH,EACTxtI,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SACVa,cAACgR,KAAU,CAACC,QAAQ,KAAI9R,SAAC,sDAI3Ba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,KAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3Ba,cAACmsC,GAAa,CAACC,OAAK,EAAAjtC,SAClBsR,eAACqI,KAAG,CACF5F,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACfx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CAEhCa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASs4H,IAEXh+I,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASk9C,cAKhB,EC/JQ+/F,OAnIXzjK,IAAkE,IAAD02H,EAAAgtC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAttC,EAAAutC,EAAAttC,EAAAutC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAAhE,cAAElU,EAAa,UAAE9nD,EAAS,YAAE9iC,EAAW,iBAAEtR,GAAkBh1D,EAC9D,MAAMu7H,EAAoBrjE,IAAuB,IAAAk7F,EAAA,OACe,QADfA,EAClC,OAAblC,QAAa,IAAbA,OAAa,EAAbA,EAAe1zI,MAAM2Z,GAAMA,EAAEqd,WAAa0jB,EAAW1jB,kBAAS,IAAA4+G,IAAI,CAChE//I,UAAW,mBACXmhC,SAAU,EACVphC,SAAU,GACVsiD,aAAc,UACf,EAoBG8lE,EAAuB,OAAXl1D,QAAW,IAAXA,GAAwB,QAAbowD,EAAXpwD,EAAahQ,mBAAW,IAAAogE,OAAb,EAAXA,EACd93F,QAnBc68F,CAAC58F,EAAsBC,IAChC6Q,aAAQ9Q,GAAM+Q,IACnB,MAAM8rF,EAAe78F,EAAI/Y,WAAWvZ,GAAMA,EAAEqrD,OAAS94B,EAAK84B,OAC1D,GAAI8jE,GAAgB,EAAG,CACrB,MAAMhgE,EAAQ78B,EAAI68F,GAClB9rF,EAAMnvC,OAAOi7H,EAAc,EAAG,IACzBhgE,EACHnI,UAAW,IAAImI,EAAMnI,UAAWgoE,EAAiBz8F,KAErD,MACE8Q,EAAMrvC,KAAK,IACNu+B,EACHy0B,UAAW,CAACgoE,EAAiBz8F,KAEjC,KAKmC,IACpCmD,QAAQi2B,GAAeA,EAAW3E,UAAUpxC,QAAQinF,IAAc,IAErE,OACE73F,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,kBAGX,QAA/ByjK,EAAY,OAAXp9F,QAAW,IAAXA,GAAsB,QAAXq9F,EAAXr9F,EAAatQ,iBAAS,IAAA2tG,OAAX,EAAXA,EAAwBllK,cAAM,IAAAilK,IAAI,GAAK,IACP,QAAjCE,EAAY,OAAXt9F,QAAW,IAAXA,GAAwB,QAAbu9F,EAAXv9F,EAAahQ,mBAAW,IAAAutG,OAAb,EAAXA,EAA0BplK,cAAM,IAAAmlK,IAAI,GAAK,GACzCpoC,GACAA,EAAU/8H,OAAS,IACO,QAA5BqlK,EAAY,OAAXx9F,QAAW,IAAXA,GAAmB,QAARkwD,EAAXlwD,EAAajQ,cAAM,IAAAmgE,OAAR,EAAXA,EAAqB/3H,cAAM,IAAAqlK,IAAI,GAAK,IACX,QAA1BC,EAAY,OAAXz9F,QAAW,IAAXA,GAAiB,QAANmwD,EAAXnwD,EAAalQ,YAAI,IAAAqgE,OAAN,EAAXA,EAAmBh4H,cAAM,IAAAslK,IAAI,GAAK,EACjCxyJ,eAAAgF,WAAA,CAAAtW,SAAA,EACmB,OAAhB+0D,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBtc,aACjB53C,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,UACgB,QAA/B+jK,EAAY,OAAX19F,QAAW,IAAXA,GAAsB,QAAX29F,EAAX39F,EAAatQ,iBAAS,IAAAiuG,OAAX,EAAXA,EAAwBxlK,cAAM,IAAAulK,IAAI,GAAK,GACvCzyJ,eAACqI,KAAG,CAAA3Z,SAAA,CACFa,cAACywJ,GAAuB,CACtBzD,qBAAqB,EACrB/qG,QAA8B,QAAvBmhH,EAAE59F,EAAYtQ,iBAAS,IAAAkuG,OAAA,EAArBA,EACLtmK,QACDwzE,MAAK,CAAC7F,EAAG8F,IACRzjC,KAAO29B,EAAEloB,eAAe66C,KAAK7sB,EAAEhuB,iBAEnC+lD,UAAWA,EACX8nD,cAAeA,EACft0B,UAA2B,OAAhB5nE,QAAgB,IAAhBA,MAAkBupE,UAC7B/1G,UAAU,MAEO,OAAhBwsC,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBoL,mBACc,QAAjC+jG,EAAY,OAAX79F,QAAW,IAAXA,GAAwB,QAAb89F,EAAX99F,EAAahQ,mBAAW,IAAA8tG,OAAb,EAAXA,EAA0B3lK,cAAM,IAAA0lK,IAAI,GAAK,GAC1C3oC,GACAA,EAAU/8H,OAAS,IACS,QAA5B4lK,EAAY,OAAX/9F,QAAW,IAAXA,GAAmB,QAARg+F,EAAXh+F,EAAajQ,cAAM,IAAAiuG,OAAR,EAAXA,EAAqB7lK,cAAM,IAAA4lK,IAAI,GAAK,IACX,QAA1BE,EAAY,OAAXj+F,QAAW,IAAXA,GAAiB,QAANk+F,EAAXl+F,EAAalQ,YAAI,IAAAouG,OAAN,EAAXA,EAAmB/lK,cAAM,IAAA8lK,IAAI,GAAK,IAAMzjK,cAACy2B,KAAO,UAK1C,OAAhBy9B,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBoL,mBACgB,QAAjCqkG,EAAY,OAAXn+F,QAAW,IAAXA,GAAwB,QAAbo+F,EAAXp+F,EAAahQ,mBAAW,IAAAouG,OAAb,EAAXA,EAA0BjmK,cAAM,IAAAgmK,IAAI,GAAK,GAC1CjpC,GACAA,EAAU/8H,OAAS,GACjBqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACqI,KAAG,CAAC+0B,GAAI,EAAE1uC,SAAA,CACTa,cAAC8tJ,GAAgB,CACfd,qBAAqB,EACrBtyB,UAAWA,EAAU59H,QAAQwzE,MAAK,CAAC7F,EAAG8F,KACpC,MAAMotD,EAAW7wF,KAAO29B,EAAE32B,eAAespD,KACvC7sB,EAAEz8B,eAEJ,OAAoB,IAAb6pF,EAAiBlzD,EAAE3T,KAAOyZ,EAAEzZ,KAAO6mE,CAAQ,OAGzB,QAA5BkmC,EAAY,OAAXr+F,QAAW,IAAXA,GAAmB,QAARs+F,EAAXt+F,EAAajQ,cAAM,IAAAuuG,OAAR,EAAXA,EAAqBnmK,cAAM,IAAAkmK,IAAI,GAAK,GAAK7jK,cAACy2B,KAAO,UAI1C,OAAhBy9B,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBuL,aACjBz/D,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,UACa,QAA5B4kK,EAAY,OAAXv+F,QAAW,IAAXA,GAAmB,QAARw+F,EAAXx+F,EAAajQ,cAAM,IAAAyuG,OAAR,EAAXA,EAAqBrmK,cAAM,IAAAomK,IAAI,GAAK,GACpCtzJ,eAACqI,KAAG,CAAC+0B,GAAI,EAAE1uC,SAAA,CACTa,cAAC+wJ,GAAW,CACV/D,qBAAqB,EACrBz3F,OAA0B,QAApB0uG,EAAEz+F,EAAYjQ,cAAM,IAAA0uG,OAAA,EAAlBA,EACJnnK,QACDwzE,MAAK,CAAC7F,EAAG8F,IAAMzjC,KAAO29B,EAAE2yC,SAAShgB,KAAK7sB,EAAE6sC,cAElB,QAA1B8mD,EAAY,OAAX1+F,QAAW,IAAXA,GAAiB,QAAN2+F,EAAX3+F,EAAalQ,YAAI,IAAA6uG,OAAN,EAAXA,EAAmBxmK,cAAM,IAAAumK,IAAI,GAAK,GAAKlkK,cAACy2B,KAAO,UAKxC,OAAhBy9B,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB0L,WACjB5/D,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,UACW,QAA1BilK,EAAY,OAAX5+F,QAAW,IAAXA,GAAiB,QAAN6+F,EAAX7+F,EAAalQ,YAAI,IAAA+uG,OAAN,EAAXA,EAAmB1mK,cAAM,IAAAymK,IAAI,GAAK,GAClCpkK,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTa,cAACstJ,GAAS,CACRN,qBAAqB,EACrB13F,KAAsB,QAAlBgvG,EAAE9+F,EAAYlQ,YAAI,IAAAgvG,OAAA,EAAhBA,EACFxnK,QACDwzE,MAAK,CAAC7F,EAAG8F,IAAMzjC,KAAO29B,EAAEqyC,YAAY1f,KAAK7sB,EAAEusC,uBAQ1D98G,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTa,cAACgR,IAAU,CAACC,QAAQ,QAAQmD,MAAM,UAASjV,SAAC,+BAM7C,EChEIolK,OAnEsDrlK,IAK9D,IAL+D,WACpEk1D,EAAU,iBACVF,EAAgB,mBAChBD,EAAkB,YAClBuR,GACDtmE,EACC,MAAOsvD,EAAYikG,GAAUrhJ,IAAMK,SAAS,GACtCkmB,EAAajB,KAMnB,OACE12B,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACZw4B,EAAWX,QACVh3B,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTa,cAACw3H,GAAa,CACZpjE,WAAYA,EACZH,mBAAoBA,EACpBuR,YAAaA,EACbtR,iBAAkBA,EAClB9sC,UAAU,QAKlBpnB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACZi1D,EAAWz2D,OAAS,GACnBqC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACk4F,KAAI,CACH37F,MAAOiyD,EACPv9C,QAAQ,aACRP,UAAWkV,KAAWuyE,OACtBluE,SA7BMyoI,CAACr1I,EAA8BgC,KACrDozI,EAAOpzI,EAAS,EA4B0BlgB,SAEzBi1D,EAAW1+C,KAAI,CAAC4yF,EAAWzqG,IAC1BmC,cAACu4F,KAAG,CAEF/xE,MAAK,GAAAnmB,OAAKioG,EAAU/1F,UAAS,KAAAlS,OAAIioG,EAAUh2F,WADtCzU,SAOfmC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SACfi1D,EAAW5F,IACVxuD,cAAC2iK,GAA0B,CACzBr6D,UAAWl0C,EAAW5F,GACtB4hG,cAAeh8F,EACfoR,YAAaA,EACbtR,iBAAkBA,iBAQ5B,ECQKswG,IC3FX,GAAI,GD2FOA,GA9Ef,WACE,MAAM,kBACJ1+F,EAAiB,iBACjB5R,EAAgB,YAChBsR,EAAW,gBACX2B,EAAe,QACfnhD,EAAO,cACPigD,G3U6GFjnE,qBAAWunE,K2U3GL,WAAEnS,GAAeJ,GACrB8R,EACA5R,EACW,OAAXsR,QAAW,IAAXA,OAAW,EAAXA,EAAarR,qBAET,GAAEl9C,GAAOytF,cACT/sE,EAAajB,KAEnB5jB,qBAAU,KACHw6G,MAAMr2G,IACTkwD,EAAgB7iC,OAAOrtB,GACzB,GACC,IAEH,MAAMwtJ,EAA4C,OAAb,OAAbx+F,QAAa,IAAbA,OAAa,EAAbA,EAAej9D,QAEvC,OAAIgd,KAAaw/C,GAAeM,GAAqB5R,GAC5Cl0D,cAAC02E,KAAc,CAACtiE,MAAM,cAG3BqwJ,EACKzkK,cAACiV,IAAQ,CAACC,GAAG,eAGP,OAAXswD,QAAW,IAAXA,KAAa9d,UAEb1nD,cAACi5E,GAAW,CAACn5E,MAAM,qBAAoBX,SACrCsR,eAACsW,KAAS,CAAA5nB,SAAA,CAAC,mBACQqmE,EAAYvxB,cAAc,0BAOjDj0C,cAAC8Y,KAAG,CAAC4S,GAAI,GAAGvsB,SACVsR,eAACmb,KAAI,CAAChb,WAAS,EAACib,UAAU,MAAK1sB,SAAA,CAC7Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACi5E,GAAW,CACVn5E,MAAK,eAAAO,OAAiBmlE,EAAYvxB,cAAa,QAAA5zC,OAAOylE,EAAkB5b,OAAO33C,UAAS,KAAAlS,OAAIylE,EAAkB5b,OAAO53C,UAAWnT,SAEhIa,cAAC4rB,KAAI,CAAChb,WAAS,EAACib,UAAU,SAAQ1sB,SAChCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACukK,GAAyB,CACxBnwG,WAAYA,EACZH,mBAAoB6R,EACpBN,YAAaA,EACbtR,iBAAkBA,aAM1Bv8B,EAAWX,QACXh3B,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACw3H,GAAa,CACZpjE,WAAYA,EACZH,mBAAoB6R,EACpBN,YAAaA,EACbtR,iBAAkBA,EAClB9sC,UAAU,UAOxB,E,UCxFA,SAAS,KAAiS,OAApR,GAAWlpB,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASsuJ,GAAiBxlK,EAAMyX,GAC9B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,IACPC,OAAQ,IACRuD,QAAS,cACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAO,GAAkB,gBAAoB,IAAK,CAClE44I,SAAU,eACI,gBAAoB,OAAQ,CAC1CthI,EAAG,6rCACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,uxBACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,uTACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,ucACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,kXACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,k5BACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,m7BACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,0TACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,8nBACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,6VACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,0pBACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,yWACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,grBACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,4QACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,s1BACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oNACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,kNACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,gbACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,8aACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,gbACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,+aACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,6aACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,uaACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oNACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,i6BACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,8MACHN,KAAM,UACS,gBAAoB,OAAQ,CAC3CM,EAAG,wuBACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,gcACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,snBACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,4EACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,kRACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,4EACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,kRACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,21BACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,iNACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,ijBACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,6nBACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,4nBACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,ysBACHN,KAAM,YACS,gBAAoB,OAAQ,CAC3CM,EAAG,oZACHN,KAAM,cACF,KAAU,GAAqB,gBAAoB,OAAQ,KAAmB,gBAAoB,WAAY,CAClHG,GAAI,SACU,gBAAoB,OAAQ,CAC1C5D,MAAO,IACPC,OAAQ,IACRwD,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiB4tJ,IAClC,Q,qBCvHAC,OAxBsBA,IAEjC3kK,cAAAyV,WAAA,CAAAtW,SACEsR,eAACqI,KAAG,CACFud,EAAG,EACHy+G,aAAa,SACbjsH,UAAU,SACVnY,UAAWC,KAAOi0J,mBAAmBzlK,SAAA,CAErCa,cAAC6kK,GAAiB,IAClB7kK,cAAC8Y,KAAG,CAAC43F,GAAI,EAAG0gB,GAAI,EAAEjyH,SAChBa,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,UAASjV,SAAC,6CAI3Ca,cAACgR,IAAU,CAACC,QAAQ,QAAQP,UAAWC,KAAOm0J,qBAAqB3lK,SAAC,0E,OC0B7D4lK,OAhCf,SAA8BhwJ,GAC5B,MAAM,SAAEkG,EAAQ,OAAE+pJ,EAAM,QAAEr6I,GAAY5V,EAChC4iB,EAAajB,KAEnB,OACEjmB,eAAC4U,GAAM,CAACzM,KAAMosJ,EAAQr6I,QAASA,EAAQxrB,SAAA,CACrCa,cAACkmB,GAAW,CAACC,YAAawR,EAAWX,OAASrM,OAAUnuB,EAAU2C,SAAC,0BAInEa,cAAC8lB,GAAa,CAAA3mB,SACX8b,EAASvF,KAAK6hB,GACb9mB,eAAA,OAAkCC,UAAU,OAAMvR,SAAA,EACxC,OAAPo4B,QAAO,IAAPA,OAAO,EAAPA,EAASm3D,YACRj+E,eAAA,OAAKC,UAAU,uBAAsBvR,SAAA,CACnCa,cAAA,OAAAb,SAAa,OAAPo4B,QAAO,IAAPA,OAAO,EAAPA,EAASs/D,gBACfpmF,eAAA,OAAAtR,SAAA,CACEa,cAAC4nF,GAAQ,CAAChgF,KAAa,OAAP2vB,QAAO,IAAPA,OAAO,EAAPA,EAASm3D,UAAW9+C,OAAO,gBAAiB,IAC5D5vC,cAAC4nF,GAAQ,CAAChgF,KAAa,OAAP2vB,QAAO,IAAPA,OAAO,EAAPA,EAASm3D,UAAW9+C,OAAO,gBAIjD5vC,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC1Da,cAAA,OAAK0Q,UAAU,gBAAevR,SAAS,OAAPo4B,QAAO,IAAPA,OAAO,EAAPA,EAASsoB,cAX5B,OAAPtoB,QAAO,IAAPA,OAAO,EAAPA,EAAS2tI,qBAkB7B,EC2EeC,OAtGf,SAAqBpwJ,GAA4B,IAADimH,EAAA4xB,EAAAwY,EAC9C,MAAM,IAAE9tG,EAAG,YAAE0J,GAAgBjsD,GAG3B43B,UAAW2sD,EACX1sD,UAAW+rD,EACXjuE,UAAWguE,GACTjsD,KAEE44H,EAAkB,OAAH/tG,QAAG,IAAHA,GAAS,QAAN0jE,EAAH1jE,EAAKyJ,YAAI,IAAAi6D,OAAN,EAAHA,EAAW//G,SAASq1D,MACvC,CAACnzD,EAASi2H,IAASA,EAAK8xB,cAAgB/nJ,EAAQ+nJ,iBAG5C,QAAEhqB,GAAYD,KAEdqqB,EAAgBD,EAAa,GAEnC,OACE50J,eAACmb,KAAI,CACHhb,WAAS,EACTF,UAAWkV,KAAW2/I,sCAAsCpmK,SAAA,EAExD,OAAHm4D,QAAG,IAAHA,OAAG,EAAHA,EAAKi/B,kBACJ9lF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,aAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACtD,OAAHm4D,QAAG,IAAHA,OAAG,EAAHA,EAAKi/B,sBAKR,OAAHj/B,QAAG,IAAHA,GAAS,QAANs1F,EAAHt1F,EAAKyJ,YAAI,IAAA6rF,OAAN,EAAHA,EAAW3xI,SAAStd,QAAS,GAAKu9I,GACjCzqI,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,mBAI9DsR,eAAA,OAAKC,UAAU,YAAWvR,SAAA,EACV,OAAbmmK,QAAa,IAAbA,OAAa,EAAbA,EAAe52E,YACdj+E,eAAA,OAAKC,UAAU,uBAAsBvR,SAAA,CACnCa,cAAA,OAAAb,SAAmB,OAAbmmK,QAAa,IAAbA,OAAa,EAAbA,EAAezuE,gBACrBpmF,eAAA,OAAAtR,SAAA,CACEa,cAAC4nF,GAAQ,CACPhgF,KAAmB,OAAb09J,QAAa,IAAbA,OAAa,EAAbA,EAAe52E,UACrB9+C,OAAO,gBACN,IACH5vC,cAAC4nF,GAAQ,CAAChgF,KAAmB,OAAb09J,QAAa,IAAbA,OAAa,EAAbA,EAAe52E,UAAW9+C,OAAO,gBAIvD5vC,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC1Da,cAAA,OAAK0Q,UAAU,gBAAevR,SAAe,OAAbmmK,QAAa,IAAbA,OAAa,EAAbA,EAAezlH,gBAI/C,OAAHyX,QAAG,IAAHA,GAAS,QAAN8tG,EAAH9tG,EAAKyJ,YAAI,IAAAqkG,OAAN,EAAHA,EAAWnqJ,SAAStd,QAAS,GAC5BqC,cAAC2lB,KAAM,CACL/oB,KAAK,QACLwX,MAAM,UACNsR,QAASA,IAAM4zE,IACf5oF,UAAU,iBAAgBvR,SAC3B,4BAON6hE,EAAYrjE,OAAS,GACpB8S,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,kBAG9Da,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOuyJ,QAAQ,OAAMtmK,SAC/B6hE,EAAYtrD,KAAKjP,GAChBzG,cAAA,OAAAb,SACEa,cAACswF,GAAkB,CACjB7tE,SAAUhc,EAAW4tF,aACrB9D,QAASA,IACyB,IAAhC9pF,EAAWyhE,iBACP,IAAIjmE,SAASmJ,GACXA,EAAQ3E,EAAWpC,WAErBwjE,GAAYI,cAAcxhE,EAAWyhE,qBAE3C,GAAA7nE,OAVSoG,EAAWyhE,0BAgBhCloE,cAAC+kK,GAAoB,CACnB9pJ,SAAUoqJ,EACVL,OAAQtsE,EACR/tE,QAASguE,MAIjB,ECjCe+sE,OA1Ef,SAA0B3wJ,GAA4B,IAAD63I,EACnD,MAAM,IAAEt1F,EAAG,WAAEmoC,GAAe1qF,EAI5B,OACEtE,eAACqI,KAAG,CAACs4G,GAAI,EAAEjyH,SAAA,CACTa,cAACgR,IAAU,CAACN,UAAWkV,KAAWizG,mCAAmC15H,SAAC,eAGtEa,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACmb,KAAI,CACHhb,WAAS,EACTF,UAAWkV,KAAW2/I,sCAAsCpmK,SAAA,CAE5DsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,YAG9DsR,eAACqI,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAAA,CAC1Da,cAAA,OAAAb,SAAMm4D,EAAIgqF,iBACVthJ,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAIwlD,WAAYltE,OAAQ6vD,UAG5ChvF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,aAG9DsR,eAACqI,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAAA,CAC1Da,cAAA,OAAAb,SAAMm4D,EAAIiqF,kBACVvhJ,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAI2jE,YAAarrF,OAAQ6vD,UAG7ChvF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,mBAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACzDm4D,EAAIslD,mBAGTnsG,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,iBAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACzDm4D,EAAI+pF,aAIT5wI,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,WAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACjD,QADiDytJ,EACzDt1F,EAAIyJ,YAAI,IAAA6rF,OAAA,EAARA,EAAU5jJ,YAGfyH,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,mBAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACzDm4D,EAAI8hE,mBAITp5H,cAACmlK,GAAW,CAAC7tG,IAAKA,EAAK0J,YAhEP1J,KAAS,IAAAy1F,EAAA/xB,EAAA,OAA2B,QAA3B+xB,EAAQ,OAAHz1F,QAAG,IAAHA,GAAS,QAAN0jE,EAAH1jE,EAAKyJ,YAAI,IAAAi6D,OAAN,EAAHA,EAAWh6D,mBAAW,IAAA+rF,IAAI,EAAE,EAgEtB4Y,CAAeruG,YAK7D,ECxBesuG,OAhDf,SAA2B7wJ,GAA4B,IAAD63I,EACpD,MAAM,IAAEt1F,EAAG,WAAEmoC,GAAe1qF,EAI5B,OACEtE,eAACqI,KAAG,CAACs4G,GAAI,EAAEjyH,SAAA,CACTa,cAACgR,IAAU,CAACN,UAAWkV,KAAWizG,mCAAmC15H,SAAC,gBAGtEa,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACmb,KAAI,CACHhb,WAAS,EACTF,UAAWkV,KAAW2/I,sCAAsCpmK,SAAA,CAE5DsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,YAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC1Da,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAIwlD,WAAYltE,OAAQ6vD,SAG5ChvF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,aAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC1Da,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAI2jE,YAAarrF,OAAQ6vD,SAI7ChvF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,GAAGptB,SAAA,CACxBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,WAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACjD,QADiDytJ,EACzDt1F,EAAIyJ,YAAI,IAAA6rF,OAAA,EAARA,EAAU5jJ,YAIfhJ,cAACmlK,GAAW,CAAC7tG,IAAKA,EAAK0J,YAtCP1J,KAAS,IAAAy1F,EAAA/xB,EAAA,OAA2B,QAA3B+xB,EAAQ,OAAHz1F,QAAG,IAAHA,GAAS,QAAN0jE,EAAH1jE,EAAKyJ,YAAI,IAAAi6D,OAAN,EAAHA,EAAWh6D,mBAAW,IAAA+rF,IAAI,EAAE,EAsCtB4Y,CAAeruG,YAK7D,ECUeuuG,OAxDf,SAA2B9wJ,GAA4B,IAAD63I,EACpD,MAAM,IAAEt1F,EAAG,WAAEmoC,GAAe1qF,EAI5B,OACEtE,eAACqI,KAAG,CAACs4G,GAAI,EAAEjyH,SAAA,CACTa,cAACgR,IAAU,CAACN,UAAWkV,KAAWizG,mCAAmC15H,SAAC,gBAGtEa,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACmb,KAAI,CACHhb,WAAS,EACTF,UAAWkV,KAAW2/I,sCAAsCpmK,SAAA,CAE5DsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,eAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC1Da,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAIwlD,WAAYltE,OAAQ6vD,SAG5ChvF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,aAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC1Da,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAI2jE,YAAarrF,OAAQ6vD,SAI7ChvF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,WAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACjD,QADiDytJ,EACzDt1F,EAAIyJ,YAAI,IAAA6rF,OAAA,EAARA,EAAU5jJ,YAGfyH,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,uBAG9DsR,eAACqI,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAAA,CACzDm4D,EAAI8jE,kBAAkB,IAAE9jE,EAAI+jE,aAAat3C,oBAI9C/jF,cAACmlK,GAAW,CAAC7tG,IAAKA,EAAK0J,YA9CP1J,KAAS,IAAAy1F,EAAA/xB,EAAA,OAA2B,QAA3B+xB,EAAQ,OAAHz1F,QAAG,IAAHA,GAAS,QAAN0jE,EAAH1jE,EAAKyJ,YAAI,IAAAi6D,OAAN,EAAHA,EAAWh6D,mBAAW,IAAA+rF,IAAI,EAAE,EA8CtB4Y,CAAeruG,YAK7D,ECEewuG,OAxDf,SAA2B/wJ,GAA4B,IAAD63I,EACpD,MAAM,IAAEt1F,EAAG,WAAEmoC,GAAe1qF,EAI5B,OACEtE,eAACqI,KAAG,CAACs4G,GAAI,EAAEjyH,SAAA,CACTa,cAACgR,IAAU,CAACN,UAAWkV,KAAWizG,mCAAmC15H,SAAC,gBAGtEa,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACmb,KAAI,CACHhb,WAAS,EACTF,UAAWkV,KAAW2/I,sCAAsCpmK,SAAA,CAE5DsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,eAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC1Da,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAIwlD,WAAYltE,OAAQ6vD,SAG5ChvF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,aAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC1Da,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAI2jE,YAAarrF,OAAQ6vD,SAI7ChvF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,WAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACjD,QADiDytJ,EACzDt1F,EAAIyJ,YAAI,IAAA6rF,OAAA,EAARA,EAAU5jJ,YAGfyH,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,uBAG9DsR,eAACqI,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAAA,CACzDm4D,EAAI8jE,kBAAkB,IAAE9jE,EAAI+jE,aAAat3C,oBAI9C/jF,cAACmlK,GAAW,CAAC7tG,IAAKA,EAAK0J,YA9CP1J,KAAS,IAAAy1F,EAAA/xB,EAAA,OAA2B,QAA3B+xB,EAAQ,OAAHz1F,QAAG,IAAHA,GAAS,QAAN0jE,EAAH1jE,EAAKyJ,YAAI,IAAAi6D,OAAN,EAAHA,EAAWh6D,mBAAW,IAAA+rF,IAAI,EAAE,EA8CtB4Y,CAAeruG,YAK7D,ECEeyuG,OAxDf,SAA2BhxJ,GAA4B,IAAD63I,EACpD,MAAM,IAAEt1F,EAAG,WAAEmoC,GAAe1qF,EAI5B,OACEtE,eAACqI,KAAG,CAACs4G,GAAI,EAAEjyH,SAAA,CACTa,cAACgR,IAAU,CAACN,UAAWkV,KAAWizG,mCAAmC15H,SAAC,eAGtEa,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACmb,KAAI,CACHhb,WAAS,EACTF,UAAWkV,KAAW2/I,sCAAsCpmK,SAAA,CAE5DsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,eAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC1Da,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAIwlD,WAAYltE,OAAQ6vD,SAG5ChvF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,aAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC1Da,cAAC4nF,GAAQ,CAAChgF,KAAM0vD,EAAI2jE,YAAarrF,OAAQ6vD,SAG7ChvF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,mBAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACzDm4D,EAAIkkE,gBAIT/qH,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,GAAGptB,SAAA,CACxBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,WAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACjD,QADiDytJ,EACzDt1F,EAAIyJ,YAAI,IAAA6rF,OAAA,EAARA,EAAU5jJ,YAIfhJ,cAACmlK,GAAW,CAAC7tG,IAAKA,EAAK0J,YA9CP1J,KAAS,IAAAy1F,EAAA/xB,EAAA,OAA2B,QAA3B+xB,EAAQ,OAAHz1F,QAAG,IAAHA,GAAS,QAAN0jE,EAAH1jE,EAAKyJ,YAAI,IAAAi6D,OAAN,EAAHA,EAAWh6D,mBAAW,IAAA+rF,IAAI,EAAE,EA8CtB4Y,CAAeruG,YAK7D,ECGe0uG,OAtDgC9mK,IAAe,IAAd,KAAEo2D,GAAMp2D,EACtD,MAAMugG,EAAa,oBA6CnB,OACEhvF,eAACqI,KAAG,CAAA3Z,SAAA,CACFa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,QACxBm2D,EAAK5/C,KAAK4hD,GA9CQA,KACrB,OAAQA,EAAIokE,oBACV,IAAK,SACH,OACE17H,cAAC0lK,GAAgB,CAAiBpuG,IAAKA,EAAKmoC,WAAYA,GAAjCnoC,EAAIsM,OAE/B,IAAK,UACH,OACE5jE,cAAC4lK,GAAiB,CAEhBtuG,IAAKA,EACLmoC,WAAYA,GAFPnoC,EAAIsM,OAKf,IAAK,UACH,OACE5jE,cAAC6lK,GAAiB,CAEhBvuG,IAAKA,EACLmoC,WAAYA,GAFPnoC,EAAIsM,OAKf,IAAK,UACH,OACE5jE,cAAC8lK,GAAiB,CAEhBxuG,IAAKA,EACLmoC,WAAYA,GAFPnoC,EAAIsM,OAKf,IAAK,aACH,OACE5jE,cAAC+lK,GAAiB,CAEhBzuG,IAAKA,EACLmoC,WAAYA,GAFPnoC,EAAIsM,OAKf,QACE,OAAO5jE,cAAAyV,WAAA,IACX,EAMqBwwJ,CAAc3uG,OAC7B,E,OC/CK4uG,OAVf,SAAkBnxJ,GAChB,MAAM,KAAE2nB,EAAI,MAAElW,GAAUzR,EAExB,OACEtE,eAAA,OAAKC,UAAU,YAAWvR,SAAA,CACxBa,cAAA,QAAAb,SAAOu9B,IAAY,IAAElW,IAG3B,E,oBCSe2/I,OAhBgCjnK,IAAuB,IAAtB,OAAE8J,EAAM,KAAE5K,GAAMc,EAC9D,OACEuR,eAAA,OAAAtR,SAAA,CACEa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOc,cAAc,MAAMC,aAAa,SAAQ9U,SAC3Da,cAACkmK,GAAQ,CAACxpI,KAAM18B,cAAComK,KAAc,CAAChwI,SAAS,UAAY5P,MAAOpoB,MAE9D4B,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOc,cAAc,MAAMC,aAAa,SAAQ9U,SAC3Da,cAACkmK,GAAQ,CACPxpI,KAAM18B,cAACqmK,KAA0B,CAACjwI,SAAS,UAC3C5P,MAAOxd,QAGP,ECcKs9J,OAxB0CpnK,IAAoB,IAAnB,UAAEuzD,GAAWvzD,EACrE,OACEuR,eAACqI,KAAG,CAACpI,UAAWkV,KAAW2/I,sCAAsCpmK,SAAA,CAC/Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,cAG9Da,cAAC4rB,KAAI,CACHhb,WAAS,EACTqC,MAAO,CAAE88I,IAAK,QACdr/I,UAAWkV,KAAWq/I,iCAAiC9lK,SAEtDszD,EAAU/8C,KAAKi1D,IAAQ,IAAA47F,EAAAC,EAAA,OACtBxmK,cAAC4rB,KAAI,CAACG,MAAI,EAAqB4K,GAAI,GAAIE,GAAI,EAAGtK,GAAI,EAAEptB,SAClDa,cAACmmK,GAAc,CACb/nK,KAAmB,QAAfmoK,EAAE57F,EAASvsE,YAAI,IAAAmoK,IAAI,GACvBv9J,OAAuB,QAAjBw9J,EAAE77F,EAAS3hE,cAAM,IAAAw9J,IAAI,MAHf77F,EAASvsE,KAKlB,QAGP,ECmJKqoK,OA9I8CvnK,IAKtD,IALuD,YAC5Ds2D,EAAW,mBACXrB,EAAkB,WAClBvI,EAAU,KACV/uD,GACDqC,EACC,MAAMwnK,EAAsBC,GAC1BA,EAAUv0H,aAAe,SAAW,QAChCw0H,EAAmBD,IAA0B,IAAAE,EAAA,OAC3B,QAD2BA,EACjDF,EAAUv0H,oBAAY,IAAAy0H,IAAIF,EAAUnsC,WAAW,EAC3CssC,EAAal7G,EAAWk7G,WAsCxBC,EAA6B,OAAXvxG,QAAW,IAAXA,OAAW,EAAXA,EAAa13B,QApCrBkpI,CAACjpI,EAAwBw2B,KAAsB,IAAD65F,EAC5D,MAAMvwJ,EAAQkgC,EAAI/Y,WACfvZ,GACCA,EAAE2mC,eAAiBmiB,EAAIniB,cAAgB3mC,EAAE+uH,cAAgBjmE,EAAIimE,cAE3D/nE,EAAY50D,GAAS,EAAIkgC,EAAIlgC,GAAO40D,UAAY,GAChDw0G,EAEL,QAFoB7Y,EAAGj6F,EAAmBz3C,MACxC5R,GAAMA,EAAE4oC,WAAa6gB,EAAI7gB,kBAC3B,IAAA06G,OAAA,EAFuBA,EAErBG,WAKH,OAJI1wJ,GAAS,GACXkgC,EAAIp+B,OAAO9B,EAAO,GAGb,IACFkgC,EACH,CACE+lC,aAAcvP,EAAIuP,aAClBsxC,UAAW7gD,EAAIzgB,cACf2gC,QAASlgB,EAAIkgB,QACbriC,aAAcmiB,EAAIniB,aAClBooF,YAAajmE,EAAIimE,YACjB/nE,UAAWw0G,EACP,IACKx0G,EACH,CACEr0D,KAAM6oK,EACNj+J,OAAQurD,EAAIwM,KAAK/3D,OACjB89J,WAAYA,EACZlgG,SAAU/pE,IAGd,IAAI41D,IAEX,GAGqE,IAElE2E,EAAcv5D,IAA2C,OAAX23D,QAAW,IAAXA,IAAe,IAAI33D,GAEjEmjE,EAAenjE,IAAa,IAAA+vJ,EAAAsZ,EAAArsC,EAAA,OACI,QADJ+yB,EACf,QADesZ,EAChC9vG,EAAWv5D,UAAM,IAAAqpK,GAAM,QAANrsC,EAAjBqsC,EAAmBnmG,YAAI,IAAA85D,OAAN,EAAjBA,EAAyB75D,mBAAW,IAAA4sF,IAAI,EAAE,EAE5C,OACEn9I,eAACqI,KAAG,CAAA3Z,SAAA,CACFa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,gCACxB4nK,GACCA,EAAgBrxJ,KAAI,CAACixJ,EAAW9oK,KAAK,IAAAspK,EAAAC,EAAAC,EAAA,OACnC52J,eAACqI,KAAG,CAAiCs4G,GAAI,EAAG1lG,GAAI,EAAEvsB,SAAA,CAChDsR,eAACO,IAAU,CACTN,UAAWkV,KAAWizG,mCAAmC15H,SAAA,CAExDunK,EAAmBC,GAAW,UAAQ,IACtCC,EAAgBD,MAEnBl2J,eAACmb,KAAI,CACHhb,WAAS,EACTF,UAAWkV,KAAW2/I,sCAAsCpmK,SAAA,CAE5DsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CACF2hF,GAAI,EACJ/pF,UAAWkV,KAAW4/I,kCAAkCrmK,SACzD,cAGDa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC1Da,cAAC4nF,GAAQ,CAAChgF,KAAM++J,EAAUvxD,UAAWxlE,OAAQ,qBAIjDn/B,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CACF2hF,GAAI,EACJ/pF,UAAWkV,KAAW4/I,kCAAkCrmK,SACzD,YAGDa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACzDwnK,EAAUlyF,aAIfz0E,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACsnK,GAAgB,CAAC70G,UAAWk0G,EAAUl0G,eAGvB,QAAjB00G,EAAA/vG,EAAWv5D,UAAM,IAAAspK,OAAA,EAAjBA,EAAmB5wE,kBAClB9lF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,aAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACxC,QADwCioK,EACzDhwG,EAAWv5D,UAAM,IAAAupK,OAAA,EAAjBA,EAAmB7wE,sBAKP,QAAlB8wE,EAAArmG,EAAYnjE,UAAM,IAAAwpK,OAAA,EAAlBA,EAAoB1pK,QAAS,GAC5B8S,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,kBAG9Da,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOuyJ,QAAQ,OAAMtmK,SAC/B6hE,EAAYnjE,GAAO6X,KAAKjP,GACvBzG,cAAA,OAAAb,SACEa,cAACswF,GAAkB,CACjB7tE,SAAUhc,EAAW4tF,aACrB9D,QAASA,IACyB,IAAhC9pF,EAAWyhE,iBACP,IAAIjmE,SAASmJ,GACXA,EAAQ3E,EAAWpC,WAErBwjE,GAAYI,cACVxhE,EAAWyhE,qBAGnB,GAAA7nE,OAZSoG,EAAWyhE,+BAkB3B,kBAAA7nE,OA3EmBxC,GA4EtB,MAEN,ECzGK0pK,OApD0DroK,IAElE,IAFmE,UACxEuzD,GACDvzD,EAEC,MAAMsoK,EAAYA,CAACrsE,EAA2BnyF,IACrCmyF,EAAQkzD,SAASvpI,MAAMlI,GAAMA,IAAM5T,IAGtC++F,EACJ5M,IAEA,GAAKA,EAIL,OAAIqsE,EAAUrsE,EAASmL,GAAem5C,WAC7B,YAGL+nB,EAAUrsE,EAASmL,GAAe4C,UAC7B,aAGLs+D,EAAUrsE,EAASmL,GAAeyvB,SAC7B,YAGLyxC,EAAUrsE,EAASmL,GAAe0B,WAC7B,SAGLw/D,EAAUrsE,EAASmL,GAAe2B,UAC7B,gBADT,CAIgB,EAGlB,OACEjoG,cAAC4rB,KAAI,CAAChb,WAAS,EAACqC,MAAO,CAAEw0J,OAAQ,QAAStoK,SACvCszD,EAAU/8C,KAAKi1D,IAAQ,IAAA+8F,EAAAC,EAAA,OACtB3nK,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAGtK,GAAI,EAAEptB,SAC9Ba,cAACmmK,GAAc,CACb/nK,KAAyB,QAArBspK,EAAE/8F,EAAS4jF,kBAAU,IAAAmZ,IAAI,GAC7B1+J,OAAuC,QAAjC2+J,EAAE5/D,EAAsBp9B,UAAS,IAAAg9F,IAAI,MAHTh9F,EAASj3B,SAKxC,KAEJ,E,8BCxDX,MAAMk0H,GAAkB7yJ,IAKtB,MAAM,SAAE06I,EAAQ,YAAEt1I,EAAW,MAAElH,GAAU8B,EACnC+6I,EAAeN,GAAgBC,EAAUt1I,GACzC0tJ,EAAiB,IAAK50J,EAAOC,QAAS,OAAQ68I,IAAK,UACzD,OACEt/I,eAAA,OAAKwC,MAAO40J,EAAe1oK,SAAA,CACzBa,cAAA,QAAAb,SAAO2wJ,EAAaloJ,KAAKgoC,OAAO,WAChC5vC,cAAC4vJ,GAAS,CAACpsI,OAAQssI,EAAaH,cAC5B,EA4EKmY,OApEoB5oK,IAAe,IAAd,KAAE8hD,GAAM9hD,EAC1C,OACEc,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACR,OAAJ6hD,QAAI,IAAJA,OAAI,EAAJA,EAAMtrC,KAAKurC,GACVjhD,cAAC4rB,KAAI,CAEHG,MAAI,EACJ4K,GAAI,GACJjmB,UAAS,GAAArQ,OAAKsQ,KAAOsmI,oBAAmB,KAAA52I,OAAIsQ,KAAOumI,YAAa/3I,SAEhEsR,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfsR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOc,cAAc,SAAQ7U,SAAA,CACxCa,cAAA,OAAK0Q,UAAU,UAASvR,SAAE8hD,EAAItgD,SAC9B8P,eAAA,OAAKC,UAAU,MAAKvR,SAAA,CAClBa,cAAA,OAAAb,SACGqwJ,GAAgBvuG,EAAIsB,cAAetB,EAAItgD,QAAQiH,KAAKgoC,OACnD,iBAGJ5vC,cAAC4nK,GAAc,CACbnY,SAAUxuG,EAAIsB,cACdpoC,YAAa8mC,EAAItgD,iBAKzBX,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfsR,eAACqI,KAAG,CACF5F,QAAQ,OACRc,cAAc,SACdkzB,eAAe,SAAQ/nC,SAAA,CAEvBa,cAAA,OAAAb,SACEa,cAAA,KAAAb,SAAI8hD,EAAIzG,eAEVx6C,cAAA,OAAAb,SAAM8hD,EAAIkQ,kBAGdnxD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfsR,eAACqI,KAAG,CACF5F,QAAQ,OACRc,cAAc,SACdkzB,eAAe,WACfre,UAAU,MAAK1pB,SAAA,CAEfa,cAAA,OAAK0Q,UAAU,UAASvR,SAAE8hD,EAAI4R,cAC9BpiD,eAAA,OAAKC,UAAU,MAAKvR,SAAA,CAClBa,cAAA,OAAAb,SACGqwJ,GAAgBvuG,EAAIi7E,YAAaj7E,EAAI4R,aAAajrD,KAAKgoC,OACtD,iBAGJ5vC,cAAC4nK,GAAc,CACbnY,SAAUxuG,EAAIi7E,YACd/hH,YAAa8mC,EAAI4R,YACjB5/C,MAAO,CAAEi0B,eAAgB,0BAnD9B+Z,EAAI0R,kBA2DR,ECHIo1G,OA1E+B7oK,IAIvC,IAAD8oK,EAAAC,EAAAvZ,EAAA,IAJyC,OAC7CvoG,EAAM,gBACNuwF,EAAe,UACfjkF,GACDvzD,EACC,MAAM4J,EAAWq9C,EAAOsuB,QAAQzwD,MAAM,KAChCkkJ,EAA2B,QAAdF,EAAGl/J,EAAS,UAAE,IAAAk/J,IAAI,GAC/BG,EAAkD,QAAhCF,EAAGn/J,EAASA,EAASnL,OAAS,UAAE,IAAAsqK,IAAI,GACtDG,EAAiB5Y,GAAgBrpG,EAAO5D,cAAe2lH,GACvDG,EAAsB7Y,GAC1BrpG,EAAO+1E,YACPisC,GAGF,OACE13J,eAAA,OAAAtR,SAAA,CACEa,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAAEgnD,EAAO3L,aAExC/pC,eAACqI,KAAG,CACF5F,QAAQ,OACRg0B,eAAe,gBACflzB,cAAc,MACd65B,GAAI,EAAE1uC,SAAA,CAENsR,eAACqI,KAAG,CAAA3Z,SAAA,CACFa,cAAC8Y,KAAG,CAAA3Z,SACFa,cAACgR,IAAU,CAACN,UAAU,UAASvR,SAAE+oK,MAEnCloK,cAACgR,IAAU,CAACC,QAAQ,YAAYP,UAAU,MAAKvR,SAC5CipK,EAAexgK,KAAKgoC,OAAO,iBAE9Bn/B,eAACO,IAAU,CAACC,QAAQ,YAAYP,UAAU,OAAMvR,SAAA,CAC7CipK,EAAexgK,KAAKgoC,OAAO,SAAU,IACtC5vC,cAAC4vJ,GAAS,CAACpsI,OAAQ4kJ,EAAezY,kBAGtCl/I,eAACqI,KAAG,CAAC5F,QAAQ,OAAOc,cAAc,SAAS6U,UAAU,QAAO1pB,SAAA,CAC1Da,cAAC8Y,KAAG,CAAA3Z,SACFa,cAACgR,IAAU,CAACN,UAAU,UAASvR,SAAEgpK,MAGnCnoK,cAACgR,IAAU,CAACC,QAAQ,YAAYP,UAAU,MAAKvR,SAC5CkpK,EAAoBzgK,KAAKgoC,OAAO,iBAEnCn/B,eAACO,IAAU,CAACC,QAAQ,YAAYP,UAAU,OAAMvR,SAAA,CAC9Ca,cAAC4vJ,GAAS,CAACpsI,OAAQ6kJ,EAAoB1Y,YAAc,IACpD0Y,EAAoBzgK,KAAKgoC,OAAO,kBAKvCn/B,eAACqI,KAAG,CACFpI,UAAU,WACVwC,QAAQ,OACRc,cAAc,MACdf,MAAO,CAAE88I,IAAK,QAAS5wJ,SAAA,CAEvBa,cAACgR,IAAU,CAACN,UAAU,QAAOvR,SAAC,aAC9Ba,cAACgR,IAAU,CAACC,QAAQ,YAAYP,UAAU,QAAOvR,SAC9CgnD,EAAOw5D,cAIZ3/G,cAAC8Y,KAAG,CAAA3Z,SACFa,cAACunK,GAAuB,CAAC90G,UAAWA,OAGlB,QAAnBi8F,EAAAvoG,EAAOgP,oBAAY,IAAAu5F,OAAA,EAAnBA,EAAqB/wJ,QAAS,GAC7BqC,cAAC8nK,GAAS,CAAC9mH,KAAMmF,EAAOgP,aAAcmzG,UAAW5xB,MAE/C,ECmEK6xB,OAnI0CrpK,IAGlD,IAAD+2I,EAAAI,EAAAmyB,EAAAC,EAAA,IAHoD,OACxDtiH,EAAM,mBACNgO,GACDj1D,EACC,MAAM,UAAEuzD,GAAcy7F,GAAqB/5F,EAAoBhO,IACzD,kBAAE1qC,GAAsB4hB,KACxB1F,EAAajB,KASbggH,EAAkBvwF,EAAOgP,aAAaz/C,KAC1C,CAACurC,EAAKpjD,KAAK,CACTA,MAAOA,EACP8C,OAAQ8a,EAAkBiB,MAAM+oC,GAAMA,EAAEprC,OAAS4mC,EAAItgD,SACrDkyD,YAAap3C,EAAkBiB,MAAM+oC,GAAMA,EAAEprC,OAAS4mC,EAAI4R,kBAGxD5xB,EAAQ,CACZtgC,OAA0B,QAApBs1I,EAAES,EAAgB,UAAE,IAAAT,OAAA,EAAlBA,EAAoBt1I,OAC5BkyD,YAAwD,QAA7CwjF,EAAEK,EAAgBA,EAAgB/4I,OAAS,UAAE,IAAA04I,OAAA,EAA3CA,EAA6CxjF,aAOtD61G,EAAmBviH,EAAOgP,aAAamb,MAJlBq4F,CAACl+F,EAAiB8F,IACpCzjC,KAAO29B,EAAEloB,eAAe66C,KAAKtwD,KAAOyjC,EAAEhuB,kBAY/C,OACE9xC,eAAAgF,WAAA,CAAAtW,SAAA,CACGw4B,EAAWX,QACVh3B,cAAC+nK,GAAoB,CACnB5hH,OAAQA,EACRuwF,gBAAiBA,EACjBjkF,UAAWA,IAGd96B,EAAWR,MACV1mB,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACmb,KAAI,CACHhb,WAAS,EACTF,UAAWkV,KAAW2/I,sCAAsCpmK,SAAA,CAE5DsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,aAG9DsR,eAACqI,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAAA,CApDnDypK,EAACxzD,EAAiBC,KACvC,MAAMjY,EAAOtwD,KAAOu3B,SAASv3B,KAAOuoE,GAASjY,KAAKtwD,KAAOsoE,KACnDyzD,EAAQzrE,EAAKyrE,QAAQrpJ,WAAWspJ,SAAS,EAAG,KAC5CC,EAAU3rE,EAAK2rE,UAAUvpJ,WAAWspJ,SAAS,EAAG,KACtD,MAAM,GAANzoK,OAAUwoK,EAAK,KAAAxoK,OAAI0oK,EAAO,EAiDXH,CAAeziH,EAAO5D,cAAe4D,EAAO+1E,aAAa,WAI9DzrH,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,cAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC1Da,cAAC6vJ,GAAY,CACXjoJ,KAAMu+C,EAAO5D,cACbpoC,YAAyB,QAAdquJ,EAAEvnI,EAAMtgC,cAAM,IAAA6nK,OAAA,EAAZA,EAAcnuJ,YAKjC5J,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,YAI9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC1Da,cAAC6vJ,GAAY,CACXjoJ,KAAMu+C,EAAO+1E,YACb/hH,YAA8B,QAAnBsuJ,EAAExnI,EAAM4xB,mBAAW,IAAA41G,OAAA,EAAjBA,EAAmBpuJ,YAItC5J,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,YAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SA5DzD6pK,KACf,IAAIC,EAAeD,EAAWtzJ,KAAKurC,GAAQA,EAAItgD,SAC/C,MAAM0uJ,EAAoB,OAAV2Z,QAAU,IAAVA,OAAU,EAAVA,EAAYlsK,OAAO,GAAG,GAEtC,OADAmsK,EAAaxpK,KAAK4vJ,EAAQx8F,aACnBo2G,EAAa39I,KAAK,MAAM,EAyDhBmpD,CAAQi0F,QAIbj4J,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,aAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACzDgnD,EAAOw5D,cAIZlvG,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,cAG9Da,cAAC8Y,KAAG,CACF4S,GAAI,EACJhb,UAAWkV,KAAWq/I,iCAAiC9lK,SAEvDa,cAACunK,GAAuB,CAAC90G,UAAWA,cAK5CzyD,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8nK,GAAS,CAAC9mH,KAAM0nH,EAAkBJ,UAAW5xB,aAKrD,ECjHQwyB,OApB4DhqK,IAGpE,IAHqE,QAC1E+iD,EAAO,mBACPkS,GACDj1D,EACC,OACEuR,eAACqI,KAAG,CAAA3Z,SAAA,CACFa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBACxB8iD,EAAQvsC,KAAI,CAACywC,EAAQtoD,IACpB4S,eAACqI,KAAG,CAAwDs4G,GAAI,EAAEjyH,SAAA,CAChEa,cAACuoK,GAAe,CACdpiH,OAAQA,EACRgO,mBAAoBA,IAErBt2D,EAAQokD,EAAQtkD,OAAS,GAAKqC,cAACy2B,KAAO,MAAG,oBAAAp2B,OALdxC,EAAK,KAAAwC,OAAI8lD,EAAO2V,iBAQ5C,ECqFKqtG,OAzGoCjqK,IAAiB,IAAhB,OAAEq2D,GAAQr2D,EAC5D,MAAM8hE,EAAe3J,IAAa,IAAAy5F,EAAAn4B,EAAA,OAA6B,QAA7Bm4B,EAAU,OAALz5F,QAAK,IAALA,GAAW,QAANshE,EAALthE,EAAO0J,YAAI,IAAA43D,OAAN,EAALA,EAAa33D,mBAAW,IAAA8vF,IAAI,EAAE,EAErE,OACErgJ,eAACqI,KAAG,CAAA3Z,SAAA,CACFa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,UACxBo2D,EAAO7/C,KAAI,CAAC2hD,EAAOx5D,KAAK,IAAAozJ,EAAA,OACvBxgJ,eAACqI,KAAG,CAAiCs4G,GAAI,EAAEjyH,SAAA,CACzCsR,eAACO,IAAU,CAACN,UAAWkV,KAAWizG,mCAAmC15H,SAAA,CAAC,SAC7Dk4D,EAAMykC,QAAQ,MAAIzkC,EAAM0kC,QAEjC/7F,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACmb,KAAI,CACHhb,WAAS,EACTF,UAAWkV,KAAW2/I,sCAAsCpmK,SAAA,CAE5DsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,eAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACzDk4D,EAAMykC,aAIXrrF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,aAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC1Da,cAAC4nF,GAAQ,CAAChgF,KAAMyvD,EAAM+lD,QAASxtE,OAAO,qBAI1Cn/B,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,cAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC1Da,cAAC4nF,GAAQ,CAAChgF,KAAMyvD,EAAM8hE,SAAUvpF,OAAO,qBAI3Cn/B,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,SAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACzDk4D,EAAM0kC,UAIXtrF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,GAAGptB,SAAA,CACxBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,WAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SAC/C,QAD+C8xJ,EACzD55F,EAAM0J,YAAI,IAAAkwF,OAAA,EAAVA,EAAYjoJ,aAIX,OAALquD,QAAK,IAALA,OAAK,EAALA,EAAOk/B,kBACN9lF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,aAG9Da,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAWq/I,iCAAiC9lK,SACpD,OAALk4D,QAAK,IAALA,OAAK,EAALA,EAAOk/B,qBAKbv1B,EAAY3J,GAAO15D,OAAS,GAC3B8S,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAAC8Y,KAAG,CAACpI,UAAWkV,KAAW4/I,kCAAkCrmK,SAAC,kBAG9Da,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOuyJ,QAAQ,OAAMtmK,SAC/B6hE,EAAY3J,GAAO3hD,KAAKjP,GACvBzG,cAAA,OAAAb,SACEa,cAACswF,GAAkB,CACjB7tE,SAAUhc,EAAW4tF,aACrB9D,QAASA,IACyB,IAAhC9pF,EAAWyhE,iBACP,IAAIjmE,SAASmJ,GACXA,EAAQ3E,EAAWpC,WAErBwjE,GAAYI,cACVxhE,EAAWyhE,qBAGnB,GAAA7nE,OAZmB,OAAVoG,QAAU,IAAVA,OAAU,EAAVA,EAAYyhE,iCAmB/B,kBAAA7nE,OA3FoBxC,GA4FtB,MAEJ,E,2DC1EKurK,OA7Bf,SAAmBr0J,GACjB,MAAM,YAAEywD,GAAgBzwD,EAWxB,OACE/U,cAAA,OAAAb,SACEa,cAAC21B,KAAK,CACJvhB,MAAM,UACNwhB,cAZJu+B,EAaMqR,EAAY6jG,0BAXdl1G,EAAmBx2D,OAAS,EACxB,IAAN0C,OAAW8zD,EAAmBx2D,OAAS,GAElC,GASDwB,SAEFa,cAACkmK,GAAQ,CACP1/I,MAAOg/C,EAAYg1B,MACnB99D,KAAM18B,cAACspK,KAAM,CAAClzI,SAAS,gBAlB7B+9B,KAuBJ,ECReo1G,OApBSx0J,IACtB,MAAM,SAAEoU,EAAQ,aAAEyM,EAAY,SAAEz2B,GAAa4V,EAE7C,OAAKoU,EASHnpB,cAAA,OAAAb,SACEa,cAAC21B,KAAK,CAACvhB,MAAM,UAAUwhB,aAAcA,EAAc4zI,UAAQ,EAAArqK,SACxDA,MATHa,cAAA,OAAKiT,MAAO,CAAEi2B,QAAS,KAAO/pC,SAC5Ba,cAAC21B,KAAK,CAAAx2B,SAAEA,KAUN,E,sECuHKsqK,OAvHmB10J,IAChC,MAAM,KAAE20J,EAAI,KAAEC,EAAI,OAAEtmK,EAAM,WAAEumK,EAAU,YAAEC,GAAgB90J,EAAMrK,OACxDuI,EAAQ,CACZmoB,WAAY,QACZhF,SAAU,WAELpf,EAAK8yJ,GAAUr4J,mBAAmC,MACnDmH,EAAOy1E,QAAQr3E,GACf+yJ,GACHL,EAAKM,SAAWJ,EAAWI,SAAW3mK,EAAO2mK,SAAWL,EAAKK,OAO1DC,EAAsBA,CAC1B5sJ,EACA6sJ,KAEA7sJ,EAAM6vH,kBACNg9B,IACAJ,EAAO,KAAK,EAiBd,OACEr5J,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACqmB,KAAU,CACTzpB,KAAK,QACL8oB,QAhCqBrI,IACzBA,EAAM6vH,kBACN48B,EAAOzsJ,EAAM8sJ,cAAc,EA+BvBliJ,SAAU8hJ,EAAY5qK,SAEtBa,cAACoqK,KAAQ,MAEX35J,eAAC00F,KAAI,CAACzrE,SAAU1iB,EAAK4B,KAAMA,EAAM+R,QAvBhBtN,IACnBA,EAAM6vH,kBACN48B,EAAO,KAAK,EAqB4C3qK,SAAA,CACnDwqK,EAAKK,QACJv5J,eAACqqB,KAAQ,CACPpV,QAAUrI,GAAU4sJ,EAAoB5sJ,EAAOssJ,EAAKjkJ,SAASvmB,SAAA,CAE7Da,cAACk/B,KAAY,CAAA//B,SACXa,cAACqqK,KAAY,CAACj0I,SAAS,YAEzBp2B,cAACgR,IAAU,CAACC,QAAQ,UAAUgC,MAAOA,EAAM9T,SAAC,wBAM/CuqK,EAAKM,QACJv5J,eAACqqB,KAAQ,CACPpV,QAAUrI,GAAU4sJ,EAAoB5sJ,EAAOqsJ,EAAKhkJ,SAASvmB,SAAA,CAE7Da,cAACk/B,KAAY,CAAA//B,SACXa,cAACsqK,KAAkB,CAACl0I,SAAS,YAE/Bp2B,cAACgR,IAAU,CAACC,QAAQ,UAAUgC,MAAOA,EAAM9T,SAAC,wBAM/C0qK,EAAYG,QACXv5J,eAACqqB,KAAQ,CACPpV,QAAUrI,GAAU4sJ,EAAoB5sJ,EAAOwsJ,EAAYnkJ,SAASvmB,SAAA,CAEpEa,cAACk/B,KAAY,CAAA//B,SACXa,cAACuqK,KAAM,CAACn0I,SAAS,YAEnBp2B,cAACgR,IAAU,CAACC,QAAQ,UAAUgC,MAAOA,EAAM9T,SAAC,4BAM/CyqK,EAAWI,QACVv5J,eAACqqB,KAAQ,CACPpV,QAAUrI,GAAU4sJ,EAAoB5sJ,EAAOusJ,EAAWlkJ,SAASvmB,SAAA,CAEnEa,cAACk/B,KAAY,CAAA//B,SACXa,cAACwqK,KAAY,CAACp0I,SAAS,YAEzBp2B,cAACgR,IAAU,CAACC,QAAQ,UAAUgC,MAAOA,EAAM9T,SAAC,uBAhE/CkE,EAAO2mK,SAIVN,EAAKM,QAAUL,EAAKK,QAAUJ,EAAWI,QAAUH,EAAYG,SAkE7BhqK,cAACy2B,KAAO,IACvCpzB,EAAO2mK,QACNv5J,eAACqqB,KAAQ,CACPpV,QAAUrI,GAAU4sJ,EAAoB5sJ,EAAOha,EAAOqiB,SAASvmB,SAAA,CAE/Da,cAACk/B,KAAY,CAAA//B,SACXa,cAACyqK,KAAc,CAACr2J,MAAM,QAAQgiB,SAAS,YAEzCp2B,cAACgR,IAAU,CAACC,QAAQ,UAAUmD,MAAM,QAAQnB,MAAOA,EAAM9T,SAAC,+BAM/D,ECpFP,MAAMooG,GAA+Bn9E,OAAaC,MAAM,CACtD1X,MAAOyX,OAEJ5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDC,QACC1C,EAAUqC,WAAWc,mBACrBnD,EAAUqC,WAAWW,gBAwZZwkK,OA7Y0CxrK,IAKlD,IAADyrK,EAAA,IALoD,QACxDj2H,EAAO,KACP73C,EAAI,QACJ+tK,EAAO,aACPC,GACD3rK,EACC,MAAO0hG,EAAUC,GAAepvF,oBAAS,IAClCy4I,EAAQ4gB,GAAar5J,wBAC1BjV,IAEI,kBAAEqzD,EAAiB,WAAErC,GAAeuB,MACpC,qBAAEqhC,GAAyBH,KAC3B86E,EAA2B,OAAJluK,QAAI,IAAJA,KAAMulE,WAC/B,CACE,CACE1uB,SAAUgB,EAAQwN,QAClBqsG,WAAY75G,EAAQ8lD,QAGxB9lD,EAAQ20H,0BACN9xI,EAAUC,eAEdmV,UAAWi7D,EACXh7D,UAAWi7D,EACXn9E,UAAWo9E,GACTr7D,MAEFE,UAAW8nE,EACX7nE,UAAW8nE,EACXhqF,UAAWiqF,GACTloE,MACI9W,MAAOsiG,GAA2B5D,GACxC3/E,EAAQ1rC,QAGJ2uB,EAAajB,KAEb7L,EAAOC,aAAiC,CAC1C+pE,cAAc,CACVliF,MAAO+hC,EAAQ6tB,qBAEnBt3C,KAAM,MACNF,SAAUC,aAAYu8E,OAGpB,WAAEpuF,GAAeQ,MA+BhByzD,EAAWqqD,GAAgBhmH,mBAAoB,IACtDqB,qBAAU,KACR,GAAI4hC,EAAS,CACX,MAAM49C,EAAW59C,EAAQ20H,0BAA0B3zJ,KAAK2zD,GACtDxhB,GAAcC,QAAQuhB,EAAS31B,YAEjCzxC,QAAQsa,IAAI+1E,GACT3nF,MAAMqpC,IACLyjF,EAAazjF,EAAQ,IAEtBlxC,OAAM,IACLqW,EACE,0CACAlB,GAAY3N,QAGpB,IACC,CAACoqC,EAAQT,gBAEZnhC,qBAAU,KACH06C,GACHknD,GACF,GACC,CAAClnD,IAEJ,MAAMw9G,EAAgBl+H,KAAc,OAAP4H,QAAO,IAAPA,OAAO,EAAPA,EAASy3E,WAAW/uB,KAAKtwD,OAAU,SAAW,GAErE,SAAEG,EAAQ,QAAE+hD,GAAYH,GAC5B,CACE/hB,iBAAkBp4B,EAAQwN,QAC1BjO,cAAeS,EAAQT,gBAEzB,EACAm5B,EACAwhB,GAA0BM,oBAkBtB+7E,EAAcrjK,GAAeklC,KAAOllC,GAAMgoC,OAAO,eAEjDs7H,EAA0B77C,IAAyB,OAALA,QAAK,IAALA,IAAS,GAAK,EAE5D87C,EAAgD,CACpDzB,KAAM,CACJM,QAAQ,EACRtkJ,QAASA,KACP6R,EAAQ93B,KAAK,yBAADY,OAA0Bq0C,EAAQT,eAAgB,GAGlE01H,KAAM,CACJK,OAAQY,GAAWl2H,EAAQ1rC,SAAWitD,GAAkBmuD,YACxD1+F,QAASA,KACHmlJ,EACF77E,GAAW/hD,IAEX1V,EAAQ93B,KAAK,iBAADY,OAAkBq0C,EAAQT,cAAa,UACrD,GAGJ41H,YAAa,CACXG,QAAQ,EACRtkJ,QAASA,IAtCW5T,WACtB,MAAMkvD,QAIM/0D,EAAa,gCAAD5L,OAAiC4zC,IAC9B,IAAvB+sB,EAAYrjE,OAIhBqjE,EAAYpjE,SAAQkU,SAClBs+E,EAAqB3pF,EAAWwQ,GAAIxQ,EAAWrI,QAJ/C+a,EAAW,uBAKZ,EA0BgBiyJ,CAAgB12H,EAAQT,gBAEzC5wC,OAAQ,CACN2mK,OAAQY,EACRllJ,QAAS+uF,GAEXm1D,WAAY,CACVI,OAAQY,GAAWl2H,EAAQ22H,mBAAqBL,EAChDtlJ,QAASkiF,IAIb,OACEn3F,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAAC+6F,KAAS,CACR5K,SAAUA,EACV32E,SAAUA,KAvHT22E,GAAaspD,GAChBp3G,GAAmBK,eAAeuB,EAAQT,eACvCtpC,MAAMu/I,GAAW4gB,EAAU5gB,KAC3BpnJ,OAAO+/D,GAAQ1pD,EAAW0pD,EAAIrjE,WAEnCqhG,GAAaD,EAmHY,EAErBtjB,UAAW,EAAEn+E,SAAA,CAEba,cAACyrG,KAAgB,CACfC,WAAY1rG,cAACwhG,KAAc,CAAC9wF,UAAWC,KAAO26J,eAC9C56J,UAAWC,KAAOwqF,QAAQh8F,SAE1BsR,eAAA,OAAKC,UAAU,mBAAkBvR,SAAA,CAC/BsR,eAAA,OAAKC,UAAU,0BAAyBvR,SAAA,CACtCsR,eAAA,OAAKC,UAAS,QAAArQ,OAAUs3B,EAAWX,QAAU,UAAW73B,SAAA,CACtDsR,eAAA,OAAAtR,SAAA,CACEsR,eAAA,OAAAtR,SAAA,CACO,OAAJtC,QAAI,IAAJA,OAAI,EAAJA,EAAMuB,KAAK,IAACqS,eAAA,QAAAtR,SAAA,CAAM,QAAGu1C,EAAQT,oBAEhCj0C,cAAA,OAAAb,SACEa,cAACi4H,EAAsB,SAG3BxnH,eAAA,QAAMC,UAAU,cAAavR,SAAA,CAAC,WACpBa,cAAA,KAAAb,SAAI8rK,EAAWv2H,EAAQg6C,aAAe,MAAI,IAClD1uF,cAAA,KAAAb,SAAIu1C,EAAQi6C,kBAIhB3uF,cAACypK,GAAwB,CAAC/+J,OAAQygK,OAGpC16J,eAAA,OACEC,UAAS,0BAAArQ,OACPs3B,EAAWX,QAAU,UACpB73B,SAAA,CAEHsR,eAAA,OAAAtR,SAAA,CACEa,cAACopK,GAAS,CAAC5jG,YAAa9wB,IACxB10C,cAAA,OAAAb,SACEa,cAACkmK,GAAQ,CACPxpI,KAAM18B,cAACurK,KAAa,CAACn1I,SAAS,UAC9B5P,MAAK,GAAAnmB,OAAK4qK,EAAWv2H,EAAQy3E,WAAU,SAAA9rH,OAAQ4qK,EAC7Cv2H,EAAQ03E,iBAMhB37G,eAAA,OAAAtR,SAAA,CACEa,cAACupK,GAAc,CACbpgJ,SAAU+hJ,EAA8B,OAAPx2H,QAAO,IAAPA,OAAO,EAAPA,EAAS82H,eAC1C51I,aAAqB,OAAP8e,QAAO,IAAPA,OAAO,EAAPA,EAAS82H,cAAcrsK,SAErCa,cAACkmK,GAAQ,CAACxpI,KAAM18B,cAACyrK,KAAO,CAAC7uK,KAAM,KAAQ4pB,MAAM,iBAG/CxmB,cAACupK,GAAc,CACbpgJ,SAAU+hJ,EAA8B,OAAPx2H,QAAO,IAAPA,OAAO,EAAPA,EAASg3H,iBAC1C91I,aAAqB,OAAP8e,QAAO,IAAPA,OAAO,EAAPA,EAASg3H,gBAAgBvsK,SAEvCa,cAACkmK,GAAQ,CAACxpI,KAAM18B,cAACwlJ,KAAM,IAAKh/H,MAAM,uBAGpCxmB,cAACupK,GAAc,CACbpgJ,SAAU+hJ,EAA8B,OAAPx2H,QAAO,IAAPA,OAAO,EAAPA,EAASi3H,YAC1C/1I,aAAqB,OAAP8e,QAAO,IAAPA,OAAO,EAAPA,EAASi3H,WAAWxsK,SAElCa,cAACkmK,GAAQ,CAACxpI,KAAM18B,cAAC4rK,KAAK,IAAKplJ,MAAM,aAGnCxmB,cAACupK,GAAc,CACbpgJ,SAAU+hJ,EAA8B,OAAPx2H,QAAO,IAAPA,OAAO,EAAPA,EAASm3H,UAC1Cj2I,aAAqB,OAAP8e,QAAO,IAAPA,OAAO,EAAPA,EAASm3H,SAAS1sK,SAEhCa,cAACkmK,GAAQ,CAACxpI,KAAM18B,cAAC8rK,KAAQ,IAAKtlJ,MAAM,qBAM9CxmB,cAAC2rG,KAAgB,CAAC14F,MAAO,CAAEC,QAAS,SAAU/T,SAC3C+qJ,EACClqJ,cAAAyV,WAAA,CAAAtW,SACEsR,eAACqI,KAAG,CAAA3Z,SAAA,CACFa,cAACy2B,KAAO,CAAC/lB,UAAWC,KAAOo7J,UAC1B7hB,EAAOh1F,YACU,QAAhBy1G,EAAAzgB,EAAOh1F,iBAAS,IAAAy1G,OAAA,EAAhBA,EAAkBhtK,QAAS,IACvB,OAAJd,QAAI,IAAJA,OAAI,EAAJA,EAAM+6C,aACJ53C,cAACkpK,GAAwB,CACvBjnH,QAASioG,EAAOh1F,UACbp4D,QACAwzE,MAAK,CAAC7F,EAAG8F,IACRzjC,KAAO29B,EAAEloB,eAAe66C,KAAK7sB,EAAEhuB,iBAEnC4R,mBAAoB42G,EACpBn/G,WAAYwhB,EAAU,GACtBvwE,KAAU,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMuB,OAGjB8rJ,EAAO10F,aACN00F,EAAO10F,YAAY73D,OAAS,IACxB,OAAJd,QAAI,IAAJA,OAAI,EAAJA,EAAMyiE,kBACJt/D,cAACymK,GAAiB,CAChBjxG,YAAa00F,EAAO10F,YAAY14D,QAAQwzE,MAAK,CAAC7F,EAAG8F,KAC/C,MAAMotD,EAAW7wF,KAAO29B,EAAE32B,eAAespD,KACvC7sB,EAAEz8B,eAEJ,OAAoB,IAAb6pF,EAAiBlzD,EAAE3T,KAAOyZ,EAAEzZ,KAAO6mE,CAAQ,IAEpDxpE,mBAAoB42G,EACpBn/G,WAAYwhB,EAAU,GACtBvwE,KAAU,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMuB,OAGjB8rJ,EAAO30F,QACN20F,EAAO30F,OAAO53D,OAAS,IACnB,OAAJd,QAAI,IAAJA,OAAI,EAAJA,EAAM4iE,aACJz/D,cAACmpK,GAAY,CACX5zG,OAAQ20F,EAAO30F,OACZz4D,QACAwzE,MAAK,CAAC7F,EAAG8F,IAAMzjC,KAAO29B,EAAE2yC,SAAShgB,KAAK7sB,EAAE6sC,aAGhD8sC,EAAO50F,MAAQ40F,EAAO50F,KAAK33D,OAAS,IAAS,OAAJd,QAAI,IAAJA,OAAI,EAAJA,EAAM+iE,WAC9C5/D,cAACgmK,GAAU,CACT1wG,KAAM40F,EAAO50F,KACVx4D,QACAwzE,MAAK,CAAC7F,EAAG8F,IAAMzjC,KAAO29B,EAAEqyC,YAAY1f,KAAK7sB,EAAEusC,qBAMtD98G,cAAAyV,WAAA,CAAAtW,SACEa,cAAC02E,KAAc,CAACtiE,MAAM,qBAK9BpU,cAACgsC,GAAM,CACLpzB,KAAMkvF,EACNn9E,QAASk9E,EACTr3F,SAAS,KAAIrR,SAEbsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cA/PDR,IACpBioB,GAAmByB,YAAY,CAC7BN,cAAeS,EAAQT,cACvBthC,MAAOkY,EAAKlY,QAEXhI,MAAM4gB,IACDA,EACFpS,EAAW,mCAAoClB,GAAYE,SAE3DgB,EAAW,yBAA0BlB,GAAY3N,MACnD,IAEDxH,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WACrCqoG,GAAmB,IAmPbr8E,YAAU,EAAArsB,SAAA,CAEVa,cAACwsC,GAAW,CAAArtC,SAAC,kBACba,cAACusC,GAAa,CAAAptC,SACZa,cAACumB,GAAW,CACVC,MAAM,6BACNC,YAAY,iCAAgCtnB,SAE5Ca,cAACmnB,GAAS,CACR/oB,KAAK,QACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASipB,EAAK5d,OAAO0F,MACrByZ,WACEvB,EAAK5d,OAAO0F,OAASkY,EAAK2B,UAAUi8E,QAAQ91F,MACxCkY,EAAK5d,OAAO0F,MAAMnT,QAClB,SAKZQ,cAACmsC,GAAa,CAAAhtC,SACZsR,eAACqI,KAAG,CACF5F,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACfx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CAEhCa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQE,OACxBqiB,QAASmiF,IAEX7nG,cAAC8Y,KAAG,CACFG,GAAK0e,EAAWX,OAAa,EAAJ,EACzB6W,GAAIlW,EAAWX,OAAS,EAAI,EAAE73B,SAE9Ba,cAACsnG,GAAgB,CACf79F,KAAMvG,EAAUC,QAAQM,SACxB5G,KAAK,SACLorB,UAAW4C,EAAK2B,UAAUE,sBAOtCjc,eAACu7B,GAAM,CACLpzB,KAAM+7F,EACNhqF,QAAS+pF,EACTlkG,SAAS,KAAIrR,SAAA,CAEbsR,eAAC87B,GAAa,CAAAptC,SAAA,CACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,6CAGzBa,cAAC8Y,KAAG,CAAC43F,GAAI,EAAEvxG,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,uBAG7Ba,cAACmsC,GAAa,CAAAhtC,SACZsR,eAACqI,KAAG,CACF5F,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACfx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CAEhCa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPgvF,GAAwB,IAG5B10G,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KAAMsmJ,OA5TM/3H,EA4TkBS,EAAQT,mBA3TzD4b,EAAkB5b,GADaA,KA4TyC,cAKrE,ECjWQg4H,OAnF0C/sK,IAOlD,IAPmD,SACxD2uD,EAAQ,UACRqB,EAAS,QACTjC,EAAO,WACPO,EAAU,QACVo9G,EAAO,qBACPsB,GACDhtK,EACC,MAAM,MAAEwe,GAAU+nD,MACZ,YAAEp0D,GAAgBmD,IACxB,IAAIwhG,EAbG,IAAIF,gBAAgBtjF,cAAc3uB,QAczC,MAAM,gBAAEmpC,EAAe,eAAE5U,GAAmByU,MAEtC,aAAEs/H,GCrCK,SACbC,GAEA,MACE1uJ,OAAO,aAAEU,IACPqB,KAiBJ,MAAO,CAAE0sJ,aAfYA,IACP,OAAZ/tJ,QAAY,IAAZA,KAAc+jC,WACZniD,cAAC2lB,KAAM,CACL1O,GAAG,0BACHhG,QAAQ,WACRP,UAAWkV,KAAWC,sBACtBc,WAAS,EACTjB,QAASA,IAAM0mJ,EAAS,2BAA2BjtK,SACpD,uBAIDa,cAAAyV,WAAA,IAIN,CDc2B42J,CAAqBj0I,GAQ9C,OANAtlB,qBAAU,KACqB,SAAzBkjG,EAAM9pG,IAAI,YACZksB,GACF,GACC,CAAC49E,IAGFvlG,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACgtC,EAAe,IACdwgB,GAAkC,IAApBK,EAASlwD,SAAkB+f,EAAMu6C,aAC/Cj4D,cAAAyV,WAAA,CAAAtW,SACEa,cAAC02E,KAAc,CAACtiE,MAAM,gBAGxB3D,eAAAgF,WAAA,CAAAtW,SAAA,CACGkS,EAAY2D,SACX+Y,GAAgBiC,qCAEfk8I,GACClsK,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAEhoC,SAAA,CACzBa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,GAAItK,GAAI,EAAEptB,SAC/Ba,cAAC2lB,KAAM,CACL1O,GAAG,+BACHhG,QAAQ,YACR0V,WAAS,EACTjW,UAAWkV,KAAWK,uBACtBP,QAASA,IAAM0S,IAAiBj5B,SACjC,yBAIHa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,GAAItK,GAAI,EAAEptB,SAC/Ba,cAACmsK,EAAY,WAKF,IAApBt+G,EAASlwD,OACRqC,cAAC8Y,KAAG,CAAC6uE,GAAI,EAAG9+D,UAAU,SAAQ1pB,SAC5Ba,cAAC2kK,GAAkB,MAGrB3kK,cAACssK,KAAc,CACbC,WAAY1+G,EAASlwD,OACrBsvD,QAASA,EACTmmF,KAAMlkF,EACNs9G,OAAQxsK,cAAC02E,KAAc,CAACtiE,MAAM,cAAejV,SAE5C0uD,EAASn4C,KAAI,CAACg/B,EAAS72C,IACtBmC,cAAC0qK,GAAe,CAEdh2H,QAASA,EACT73C,KAAM6gB,EAAMu6C,aAAav7C,MACtBE,GAAMA,EAAEulC,aAAezN,EAAQyN,aAElCyoH,QAASA,EACTC,aAAcqB,GANTruK,YAahB,EEhFQ4uK,OApBXA,KACF,MAAM,SAAE5+G,EAAQ,WAAEL,EAAU,UAAEmC,EAAS,iBAAER,EAAgB,eAAEpB,GACzDgB,KAMF,OAJAj8C,qBAAU,KACR68C,EAAUtC,GAAsBuB,QAAQ,GACvC,IAGD5uD,cAACisK,GAAe,CACdp+G,SAAUA,EACVqB,UAAWC,EACXlC,QAASc,EACTP,WAAYA,EACZo9G,SAAS,EACTsB,sBAAsB,GACtB,ECISQ,OApBXA,KACF,MAAM,QAAEn1I,EAAO,WAAEi2B,EAAU,UAAEmC,EAAS,gBAAEP,EAAe,eAAEd,GACvDS,KAMF,OAJAj8C,qBAAU,KACR68C,EAAUtC,GAAsBs/G,QAAQ,GACvC,IAGD3sK,cAACisK,GAAe,CACdp+G,SAAUt2B,EACV23B,UAAWE,EACXnC,QAASqB,EACTd,WAAYA,EACZo9G,SAAS,EACTsB,sBAAsB,GACtB,ECFSU,OAjBwB,CACrC,CACEh3J,KAAM,+BACNxX,KAAM,UACNyX,OAAO,EACPC,UAAW9V,cAACysK,GAAwB,IACpC/3J,WAAYqZ,GAAgB+B,kCAE9B,CACEla,KAAM,uCACNxX,KAAM,UACNyX,OAAO,EACPC,UAAW9V,cAAC0sK,GAAwB,IACpCh4J,WAAYqZ,GAAgB+B,mCCFjB+8I,OAXqBA,IAEhC7sK,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,kBAAiBX,SAAA,CAClCa,cAAC83F,GAAO,CAACxiF,MAAOs3J,GAAsB70E,qBAAmB,IACzD/3F,cAACmV,EAAM,CAACG,MAAOs3J,GAAsBr3J,SAAS,yBC0BvCu3J,OAjC4BA,KACzC,MAAM,WAAE3zJ,GAAeQ,KA6BvB,OARA7G,qBAAU,KACRggC,GAAmBG,mBAChBtoC,MAAMmxC,IArBU67B,EAAC77B,EAAWh4B,KAC/B,MAAM3X,EAAMyrE,IAAIC,gBAAgB/7B,GAE1Bg8B,EAAer3D,SAASC,cAAc,KAC5Co3D,EAAa/0D,KAAO5W,EACpB2rE,EAAah1D,SAAWgB,GAAY,WAEpC,MAAMi0D,EAAeA,KACnBv+D,YAAW,KACTo+D,IAAII,gBAAgB7rE,GACpB2rE,EAAav6D,oBAAoB,QAASw6D,EAAa,GACtD,IAAI,EAGTD,EAAax6D,iBAAiB,QAASy6D,GAAc,GAErDD,EAAa70D,OAAO,EAMhB00D,CAAa77B,EAAM,oCAAoC,IAExDh5C,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,GAC7C,IAEIQ,cAAAyV,WAAA,GAAK,ECTCs3J,OApB0BA,KACvC,MAAM,SAAEl/G,EAAQ,WAAEL,EAAU,iBAAE2B,EAAgB,eAAEpB,G3VwHhD/uD,qBAAWwyE,I2VrHX,OACExxE,cAAAyV,WAAA,CAAAtW,SACEa,cAACi5E,GAAW,CAACn5E,MAAM,sBAAqBX,SACtCa,cAACisK,GAAe,CACdp+G,SAAUA,EACVqB,UAAWC,EACXlC,QAASc,EACTP,WAAYA,EACZo9G,SAAS,EACTsB,sBAAsB,OAGzB,EC4FQc,OAlGuBA,IAElCv8J,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACmV,EAAM,CACLG,MAAO,CACL,CACEM,KAAM,0BACNxX,KAAM,QACNyX,OAAO,EACPC,UAAW9V,cAACymH,GAAgB,IAC5B/xG,WAAYqZ,GAAgBiC,mCAE9B,CACEpa,KAAM,0CACNxX,KAAM,oBACNyX,OAAO,EACPC,UACE9V,cAACykD,GAAiB,CAAAtlD,SAChBa,cAAC2hK,GAAoB,MAGzBjtJ,WAAYqZ,GAAgBiC,mCAE9B,CACEpa,KAAM,kCACNxX,KAAM,iBACNyX,OAAO,EACPC,UAAW9V,cAAC8sK,GAAwB,IACpCp4J,WAAYqZ,GAAgBiC,oCAGhCza,SAAS,sBAEXvV,cAACmV,EAAM,CACLG,MAAO,CACL,CACEM,KAAM,+BACNxX,KAAM,kBACNyX,OAAO,EACPC,UACE9V,cAACgvD,GAAsB,CAAA7vD,SACrBa,cAACitK,GAAkB,MAGvBv4J,WAAYqZ,GAAgB+B,mCAGhCva,SAAS,iCAEXvV,cAACmV,EAAM,CACLG,MAAO,CACL,CACEM,KAAM,0BACNxX,KAAM,uBACNyX,OAAO,EACPC,UAAW9V,cAACqkH,GAAuB,IACnC3vG,WAAYqZ,GAAgBqC,wCAGhC7a,SAAS,4BAEXvV,cAACmV,EAAM,CACLG,MAAO,CACL,CACEM,KAAM,4BACNxX,KAAM,2BACNyX,OAAO,EACPC,UACE9V,cAACwmE,GAA0B,CAAArnE,SACzBa,cAACwkK,GAAsB,MAG3B9vJ,WAAYqZ,GAAgBsC,uCAGhC9a,SAAS,0BAGXvV,cAACmV,EAAM,CACLG,MAAO,CACL,CACEM,KAAM,mCACNxX,KAAM,sBACNyX,OAAO,EACPC,UACE9V,cAACyxE,GAA0B,CAAAtyE,SACzBa,cAAC+sK,GAAsB,MAG3Br4J,WAAYqZ,GAAgBgC,uCAGhCxa,SAAS,wCC1GV,IAAK23J,GAAe,SAAfA,GAAe,OAAfA,IAAe,6BAAfA,IAAe,mCAAfA,IAAe,mCAAfA,IAAe,iCAAfA,IAAe,6BAAfA,CAAe,MAiDZC,OA3BcA,CAACzvJ,EAAmBC,KAC/C,OAAQA,EAAO9gB,MACb,KAAKqwK,GAAgBE,YACnB,MAAO,IACF1vJ,EACHmuE,YAAY,EACZwhF,QAAQ,EACRp4I,OAAQtX,EAAOO,SAEnB,KAAKgvJ,GAAgBI,eACnB,MAAO,IAAK5vJ,EAAO6vJ,cAAe5vJ,EAAOO,SAC3C,KAAKgvJ,GAAgBM,eACnB,MAAO,IAAK9vJ,EAAOmuE,YAAY,EAAMwhF,QAAQ,GAC/C,KAAKH,GAAgBO,cACnB,MAAO,IAAK/vJ,EAAOmuE,YAAY,EAAOwhF,QAAQ,GAChD,KAAKH,GAAgBQ,YACnB,MAAO,IACFhwJ,EACHmuE,YAAY,EACZwhF,QAAQ,EACRE,cAAe,MAEnB,QACE,OAAO7vJ,EACX,ECvCK,MAAMe,GAA2B,CACtCwW,OAAQ,KACRs4I,cAAe,KACf1hF,YAAY,EACZwhF,QAAQ,GAWJM,GAAe7uK,wBAAc,CAAC,GAoGrB8uK,OAlGkB1uK,IAAmB,IAAlB,SAAEC,GAAUD,EAC5C,MAAOwe,EAAOwB,GAAYC,qBAAWguJ,GAAe1uJ,KAC9C,WAAEtF,GAAeQ,KACvB7G,qBAAU,KACRsiB,IAActyB,MAAMnB,QAAQC,MAAM,GACjC,IAEH,MAAMwzB,EAActjB,UAClBoN,EAAS,CAAEriB,KAAMqwK,GAAgBM,iBACjCh5I,GAAaC,SACV9pB,MAAMsqB,GACL/V,EAAS,CAAEriB,KAAMqwK,GAAgBE,YAAalvJ,QAAS+W,MAExDnyB,OAAOlB,IACNuX,EAAWvX,EAAMpC,SACjB0f,EAAS,CAAEriB,KAAMqwK,GAAgBO,eAAgB,GACjD,EAmEN,OACEztK,cAAC2tK,GAAa1tK,SAAQ,CACpB1D,MAAO,CACLmhB,QACAmwJ,YAxCej5I,IACnB1V,EAAS,CAAEriB,KAAMqwK,GAAgBI,eAAgBpvJ,QAAS0W,GAAQ,EAwC9Dk5I,SArCWA,KACf5uJ,EAAS,CACPriB,KAAMqwK,GAAgBI,eACtBpvJ,QAAS,CACP1e,aAAShD,EACT2sB,cAAU3sB,IAEZ,EA+BEuxK,YAtEen5I,IAEnB,IAAIo5I,EADJ9uJ,EAAS,CAAEriB,KAAMqwK,GAAgBM,iBAG/BQ,EADEtwJ,EAAM6vJ,cACO/4I,GAAaK,YAAY,IACnCnX,EAAM6vJ,iBACN34I,IAGUJ,GAAaG,YAAYC,GAG1Co5I,EACGrjK,MAAM4gB,IACDA,GACF6J,IAActyB,MAAMnB,QAAQC,MAC9B,IAED+I,MAAK,KACJwO,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7D+G,EAAS,CAAEriB,KAAMqwK,GAAgBQ,aAAc,IAEhD5qK,OAAOlB,IACNuX,EAAWvX,EAAMpC,SACjB0f,EAAS,CAAEriB,KAAMqwK,GAAgBO,eAAgB,GACjD,EA8CA34I,YA7BeF,IACfA,EAAMG,UACR7V,EAAS,CAAEriB,KAAMqwK,GAAgBM,iBACjCh5I,GAAaM,YAAYF,EAAMG,SAC5BpqB,MAAMo2B,IACL,IAAIA,EAGF,MAAM,IAAIz2B,MAAM,yBAFhB8qB,IAActyB,MAAMnB,QAAQC,MAG9B,IAED+I,MAAK,KACJwO,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7D+G,EAAS,CAAEriB,KAAMqwK,GAAgBQ,aAAc,IAEhD5qK,OAAOlB,IACNsd,EAAS,CAAEriB,KAAMqwK,GAAgBO,gBACjCt0J,EAAWvX,EAAMpC,QAAQ,IAE/B,GAWIL,SAEDA,GACqB,EAKrB,MAAM8uK,GAAkBA,IAAMjvK,qBAAW2uK,IC1H1Ch/J,GAAe,eAQNu/J,OANS,CACtBC,eAAgBA,IAA4BliK,EAAa,GAAD5L,OAAIsO,KAC5D4gC,cAAgBq3B,GACd36D,EAAe,GAAD5L,OAAIsO,GAAY,KAAKi4D,ICIhC,IAAKwnG,GAA+B,SAA/BA,GAA+B,OAA/BA,IAA+B,qDAA/BA,IAA+B,mDAA/BA,IAA+B,+CAA/BA,IAA+B,qCAA/BA,IAA+B,qDAA/BA,IAA+B,+CAA/BA,IAA+B,mDAA/BA,CAA+B,MA4BpC,MAAMC,GAA8BA,CACzC3wJ,EACAC,KAEA,OAAQA,EAAO9gB,MACb,KAAKuxK,GAAgCE,wBACnC,MAAO,IAAK5wJ,EAAOsI,SAAS,EAAMsoB,QAAQ,GAC5C,KAAK8/H,GAAgCG,uBACnC,MAAO,IAAK7wJ,EAAOsI,SAAS,GAC9B,KAAKooJ,GAAgCI,qBACnC,MAAO,IACF9wJ,EACHsI,SAAS,EACTsoB,QAAQ,EACRqJ,UAAWh6B,EAAOO,SAEtB,KAAKkwJ,GAAgCroG,gBACnC,MAAO,IAAKroD,EAAOw2C,iBAAkBv2C,EAAOO,SAC9C,KAAKkwJ,GAAgCK,wBACnC,MAAO,IAAK/wJ,EAAOwN,UAAU,GAC/B,KAAKkjJ,GAAgCM,qBACnC,MAAO,IACFhxJ,EACHw2C,sBAAkB13D,EAClB0uB,UAAU,EACVysB,UAAW9I,aAAQnxB,EAAMi6B,WAAY7I,IACnC,MAAMjxC,EAAQixC,EAAM9pB,WACjBrI,GAAMA,EAAEwlC,aAAexkC,EAAOO,QAAQikC,aAEzCrT,EAAMnvC,OAAO9B,EAAO,EAAG8f,EAAOO,QAAQ,KAG5C,KAAKkwJ,GAAgCO,uBACnC,MAAO,IAAKjxJ,EAAOw2C,sBAAkB13D,EAAW0uB,UAAU,GAC5D,QACE,OAAOxN,EACX,ECrDIuxB,GAA2C,CAC/C0I,UAAW,GACX3xB,SAAS,EACTsoB,QAAQ,EACRpjB,UAAU,EACVgpC,sBAAkB13D,GAGdoyK,GAA8Bx9J,IAAMtS,cACxC,CAAC,GA2EU+vK,GAAiCA,IAC5C7vK,qBAAW4vK,IAEEE,IC9GX,GAAO,GD8GIA,GA3EgC5vK,IAAmB,IAAlB,SAAEC,GAAUD,EAC1D,MAAOwe,EAAOwB,GAAYC,qBACxBkvJ,GACAp/H,KAEI,WAAE91B,GAAeQ,KAEjBw0J,EAAiB5uK,uBAAY,KACjC2f,EAAS,CAAEriB,KAAMuxK,GAAgCE,0BACjDJ,GAAgBC,iBACbxjK,MAAMzC,IACLgX,EAAS,CACPriB,KAAMuxK,GAAgCI,qBACtCtwJ,QAAShW,GACT,IAEHpF,OAAOlB,IACNsd,EAAS,CACPriB,KAAMuxK,GAAgCG,yBAExCp1J,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,GAC5C,GACH,CAAC6O,IAEEwtD,EAAiBpnE,uBAAaqnE,IAClC1nD,EAAS,CACPriB,KAAMuxK,GAAgCroG,gBACtC7nD,QAAS0oD,GACT,GACD,IAEGmoG,EAAiBxvK,uBACpByvK,IACC9vJ,EAAS,CACPriB,KAAMuxK,GAAgCK,0BAExCP,GAAgB3+H,cAAcy/H,GAC3BrkK,MAAMo2B,IACDA,GACF7hB,EAAS,CACPriB,KAAMuxK,GAAgCM,qBACtCxwJ,QAAS8wJ,IAEX71J,EAAW,iCAAkClB,GAAYE,UAEzDgB,EAAW,4BACb,IAEDrW,OAAOlB,IACNsd,EAAS,CACPriB,KAAMuxK,GAAgCO,yBAExCx1J,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,GAC5C,GAEN,CAAC6O,IAGH,OACEnZ,cAAC4uK,GAA4B3uK,SAAQ,CACnC1D,MAAO,IACFmhB,EACHqxJ,iBACAZ,iBACAxnG,kBACAxnE,SAEDA,GACoC,ECtG3C,SAAS,KAAiS,OAApR,GAAWjB,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS64J,GAAM/vK,EAAMyX,GACnB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,oHACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,6QACHN,KAAM,WAEV,CACA,MAAM,GAA0B,aAAiBm4J,IAClC,IC9BX,GAAO,GD8BI,IC7Bf,SAAS,KAAiS,OAApR,GAAW/wK,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS84J,GAAYhwK,EAAMyX,GACzB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,oHACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEI,SAAU,UACVC,SAAU,UACVC,EAAG,8MACHN,KAAM,WAEV,CACA,MAAM,GAA0B,aAAiBo4J,IAClC,ICoCAC,OAnD8BjwK,IAAwB,IAADkwK,EAAA,IAAtB,cAAEv6E,GAAe31F,EAC7D,MAAM,QAAE4nB,EAAO,OAAE7Z,GAAWm9F,eACtBjhF,EAAW0vE,aAAS,CACxB/xE,UACA1oB,KAAM,WACN8oB,aAAc2tE,EAAc1rE,WAG9B,OACEnpB,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAACm7J,GAAU,CACT/8J,KAAK,UACL0oB,QAASA,EACTI,aAAmC,QAAvBkoJ,EAAEv6E,EAAcr1F,eAAO,IAAA4vK,IAAI,GACvCxtK,QAASqL,EAAOzN,QAChB0oB,aAAcjb,EAAOzN,QAAUyN,EAAOzN,QAAQA,QAAU,SAI9DQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,SAAQrnB,SACzBa,cAAC8nB,GAAa,CACZ1pB,KAAK,WACLxB,KAAK,QACLmrB,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,OAAO,GACvB,CAAEiqB,MAAO,KAAMjqB,OAAO,IAExB2qB,aAAc2tE,EAAc1rE,SAC5BrC,QAASA,EACTllB,QAASqL,EAAOkc,SAChBjB,aAAcjb,EAAOkc,SAAWlc,EAAOkc,SAAS3pB,QAAU,SAI/D2pB,GACCnpB,cAAC8Y,KAAG,CAAA3Z,SACFa,cAACgR,IAAU,CAACoD,MAAM,QAAOjV,SAAC,6FAO/B,ECtCA,MAAMkwK,GAAkBjlJ,OAAaC,MAAM,CAChD7qB,QAAS4qB,OAEN5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDwjB,SAAUiB,OAAc5kB,SAAStC,EAAUqC,WAAWC,YAwEzC8pK,OArEkCA,KAC/C,MACE5xJ,OAAO,cAAE6vJ,EAAa,WAAE1hF,GAAY,YACpCkiF,EAAW,YACXF,GACEI,KAEEpjJ,EAAOC,aAAoB,CAC/BC,SAAUC,aAAYqkJ,IACtBpkJ,KAAM,WACN4pE,cAAe,CACbr1F,QAAsB,OAAb+tK,QAAa,IAAbA,OAAa,EAAbA,EAAe/tK,QACxB2pB,SAAuB,OAAbokJ,QAAa,IAAbA,OAAa,EAAbA,EAAepkJ,YAa7B,OACEnpB,cAAAyV,WAAA,CAAAtW,SACEsR,eAAC4U,GAAM,CAACzM,KAAuB,MAAjB20J,EAAuB5iJ,QAASA,IAAMkjJ,EAAY,MAAM1uK,SAAA,CACpEa,cAACkmB,GAAW,CAAA/mB,SAAC,UACba,cAACiuG,KAAY,IAAKpjF,EAAI1rB,SACpBsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAhBHR,IAChBA,EAAKrrB,cAA6BhD,IAAlBquB,EAAK1B,UACvB4kJ,EAAY,IACPljJ,IAGPgjJ,EAAY,KAAK,IAWTriJ,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACXouK,GAAiBvtK,cAACmvK,GAAS,CAACt6E,cAAe04E,MAE9CvtK,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CACjBkB,WAAS,EACTjB,QAASA,IAAMmoJ,EAAY,UAG/B7tK,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC+lB,GAAgB,CACfY,WAAS,EACT1P,GAAG,eACHgR,UACG4C,EAAK2B,UAAUC,UACf5B,EAAK2B,UAAUE,SAChBm/D,EAEF7lE,QAAS6lE,EACTpiF,KAAK,6BAQlB,EC4FQquG,OAnK8BA,KAC3C,MACEp6F,OAAO,OAAEuX,EAAM,WAAE42D,GAAY,YAC7BgiF,EAAW,SACXC,EAAQ,YACRh5I,GACEm5I,MAEG15D,EAAqBC,GAA0B/iG,mBACpD,OAGAk7B,UAAW8nE,EACX7nE,UAAW8nE,EACXhqF,UAAWiqF,GACTloE,KAgBEkuC,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,UACRytD,SAAU,UACV1xE,MAAO,MACP4xE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OAAK89E,EAAImI,SAAS3lF,QAAQq/B,QAAQ,WAAY,GAAG,GAEtE,CACEvH,OAAQ,SACRytD,SAAU,WACVC,eAAe,EACf3xE,MAAO,KACP4xE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAC8Y,KAAG,CAAA3Z,SACD69E,EAAImI,SAASh8D,SACZnpB,cAACuvK,GAAM,CAACl8J,MAAO,GAAIC,OAAQ,KAE3BtT,cAACwvK,GAAY,CAACn8J,MAAO,GAAIC,OAAQ,MAE/B,GAGV,CACEgkB,OAAQ,oBACRytD,SAAU,aACV1xE,MAAO,MACP4xE,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjBjvE,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASsqF,WAAY7/H,OAAO,cAAc,MAAI,IACjEotC,EAAImI,SAASuqF,aACb,GAGP,CACEp4I,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OACjB11F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAAC0hC,KAAI,CACH5rB,UAAU,SACV1B,MAAM,UACNsR,QAASA,IAAMmoJ,EAAY7wF,EAAImI,UAAUhmF,SAC1C,sBAGG,EAERkU,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjB71F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAAC0hC,KAAI,CACH5rB,UAAU,SACV1B,MAAM,UACNsR,QAASA,IA1EA5T,WACnB0iG,EAAuB5/E,GACvB6/E,GAAwB,EAwECj0B,CAAaxD,EAAImI,UAAUhmF,SAC3C,YAGG,EAERkU,MAAO,QAGX,IAEF,OACE5C,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CAAC1iE,GAAG,YAAYyO,QAASooJ,EAAS3uK,SAAC,mBAI/CsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACrD0sF,EACC7rF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC02E,KAAc,CAACtiE,MAAM,gBAGxBpU,cAAAyV,WAAA,CAAAtW,SACG81B,GAAUA,EAAOt3B,OAAS,EACzBqC,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAMopB,EACN2lD,YAAY,EACZC,aAAc,GACdO,iBAAiB,EACjB9K,MAAM,EACNwK,OAAK,IAGP7lD,GAAUj1B,cAAC64E,GAAQ,MAIzB74E,cAACsvK,GAAW,OAEd7+J,eAACu7B,GAAM,CACLpzB,KAAM+7F,EACNhqF,QAAS+pF,EACTlkG,SAAS,KAAIrR,SAAA,CAEbsR,eAAC87B,GAAa,CAAAptC,SAAA,CACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,uCAGzBa,cAAC8Y,KAAG,CAAC43F,GAAI,EAAEvxG,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,uBAG7BsR,eAAC07B,GAAa,CAAAhtC,SAAA,CACZa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPgvF,GAAwB,IAG5B10G,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KApIX6uF,IACJz/E,EAAYy/E,GACZC,EAAuB,YAGzBE,eAmIG,EC1GQi7D,OAzEmBA,KAChC,MAAM,SAAEznK,EAAQ,cAAEonC,GAAkBH,KAE9BwrC,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,UACRjkB,MAAO,MACP0xE,SAAU,WAEZ,CACEztD,OAAQ,eACRjkB,MAAO,MACP0xE,SAAU,cACVE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBc,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASyqF,aACT,GAGX,CACEt4I,OAAQ,OACRjkB,MAAO,MACP0xE,SAAU,OACVE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAE69E,EAAImI,SAAS/mF,MAAY,GAGtE,CACEk5B,OAAQ,WACRjkB,MAAO,MACP0xE,SAAU,YAEZ,CACEztD,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACy1F,KAAU,CACT/vE,QAASA,KACP4pB,EAAc,IAAK0tC,EAAImI,UAAW,EAClChmF,SAEFa,cAAC0hC,KAAI,CAACttB,MAAM,UAASjV,SAAC,wBAEpB,KAIZ,CAACmwC,IAGH,OACEtvC,cAAAyV,WAAA,CAAAtW,SACG+I,EAASvK,OAAS,EACjBqC,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAM3D,EACNrE,QAAQ,EACR+2E,YAAY,EACZC,aAAc,GACdO,iBAAiB,EACjB9K,MAAM,EACNwK,OAAK,IAGP96E,cAAC64E,GAAQ,KAEV,EClEA,MAAMg3F,GAAuBzlJ,OAAaC,MAAM,CACrD5D,YAAa2D,OAEV5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDiqK,YAAaxlJ,OAEV5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDpJ,MAAO6tB,OAAa5kB,SAAStC,EAAUqC,WAAWC,YCyFrCsqK,OA7F0C5wK,IAGlD,IAAD6wK,EAAAC,EAAAC,EAAA,IAHoD,QACxD/hI,EACArjB,MAAM,SAAEsB,EAAQ,OAAElf,EAAM,QAAE6Z,IAC3B5nB,EACC,MAAMmgB,EAAWw5E,aAAS,CACxB/xE,UACA1oB,KAAM,QACN8oB,aAAcgnB,EAAQ3xC,QAGxB,OACEkU,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACO,IAAU,CAAA7R,SAAA,CAAC,WACD,IACTa,cAACgR,IAAU,CAAC8E,UAAU,OAAO7E,QAAQ,YAAW9R,SAC7C+uC,EAAQgiI,eAIflwK,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACO,IAAU,CAAA7R,SAAA,CAAC,QACJ,IACNa,cAACgR,IAAU,CAAC8E,UAAU,OAAO7E,QAAQ,YAAW9R,SAC7C+uC,EAAQ9vC,YAIf4B,cAAC8Y,KAAG,CAACzE,aAAc,EAAElV,SACnBsR,eAACO,IAAU,CAAA7R,SAAA,CAAC,YACA,IACVa,cAACgR,IAAU,CAAC8E,UAAU,OAAO7E,QAAQ,YAAW9R,SAC7C+uC,EAAQa,gBAIft+B,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,eAAcrnB,SAC/Ba,cAACmnB,GAAS,CACR/oB,KAAK,cACL8tB,SAAUC,EACVjF,aAAiC,QAArB6oJ,EAAE7hI,EAAQ0hI,mBAAW,IAAAG,SAAIvzK,EACrC4W,OAAO,SACPzL,YAAY,aACZ/F,QAASqL,EAAO2iK,YAChBxjJ,WAAYnf,EAAO2iK,YAAc3iK,EAAO2iK,YAAYpwK,QAAU,SAKpEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,cAAarnB,SAC9Ba,cAACmnB,GAAS,CACR/oB,KAAK,cACL8tB,SAAUC,EACVjF,aAAiC,QAArB8oJ,EAAE9hI,EAAQznB,mBAAW,IAAAupJ,SAAIxzK,EACrC4W,OAAO,SACPzL,YAAY,sBACZ0kB,WAAW,EACXC,KAAM,EACN1qB,QAASqL,EAAOwZ,YAChB2F,WAAYnf,EAAOwZ,YAAcxZ,EAAOwZ,YAAYjnB,QAAU,SAKpEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,QAAOrnB,SACxBa,cAACmnB,GAAS,CACR/oB,KAAK,QACL8tB,SAAUC,EACVjF,aAA2B,QAAf+oJ,EAAE/hI,EAAQ3xC,aAAK,IAAA0zK,SAAIzzK,EAC/B4W,OAAO,SACPzL,YAAY,cACZ/F,QAASqL,EAAO1Q,MAChB6vB,WAAYnf,EAAO1Q,MAAQ0Q,EAAO1Q,MAAMiD,QAAU,SAIvD0uC,GAAWA,EAAQ3xC,QAAU8iB,GAC5Brf,cAAC8Y,KAAG,CAAA3Z,SACFa,cAACgR,IAAU,CAACoD,MAAM,QAAOjV,SAAC,yHAO/B,ECfQgxK,OAtE8CA,KAC3D,MAAM,gBAAEzhI,EAAe,SAAExjB,EAAQ,cAAEokB,EAAa,cAAEC,GAChDJ,MACI,WAAEh2B,GAAeQ,KAEjBkR,EAAOC,aAAyB,CACpCC,SAAUC,aAAY6kJ,IACtB5kJ,KAAM,WACN4pE,cAAe,CACbpuE,YAA4B,OAAfioB,QAAe,IAAfA,OAAe,EAAfA,EAAiBjoB,YAC9BlqB,MAAsB,OAAfmyC,QAAe,IAAfA,OAAe,EAAfA,EAAiBnyC,SAY5B,OACEyD,cAAAyV,WAAA,CAAAtW,SACEsR,eAAC4U,GAAM,CAACzM,OAAQ81B,EAAiB/jB,QAASA,IAAM2kB,OAAc9yC,GAAW2C,SAAA,CACvEa,cAACkmB,GAAW,CAAA/mB,SAAC,wBACbsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAdDR,IAChB6jB,GAAmB7jB,EAAKpE,aAAeoE,EAAK+kJ,aAAe/kJ,EAAKtuB,MAClEgzC,EAAc,IAAKb,KAAoB7jB,IAEvC1R,EAAW,0BACb,IAUMqS,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACXuvC,GACC1uC,cAAC8vK,GAAe,CAAC5hI,QAASQ,EAAiB7jB,KAAMA,MAGrD7qB,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CACjBkB,WAAS,EACTjB,QAASA,KACP4pB,OAAc9yC,EAAU,MAI9BwD,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC8vF,GAAY,CACXnpE,WAAS,EACT1P,GAAG,2BACHgR,UACG4C,EAAK2B,UAAUC,UACf5B,EAAK2B,UAAUE,SAChBxB,EAEFruB,KAAK,SACL6oB,QAASA,OACTjc,KAAK,WACLuc,QAASkF,kBAOpB,ECjDQklJ,OA3BgCA,KAC7C,MAAM,cAAE/gI,EAAa,QAAErpB,EAAO,OAAEsoB,GAAWa,KAM3C,OAJAr8B,qBAAU,KACRu8B,GAAe,GACd,CAACA,IAGFrvC,cAAAyV,WAAA,CAAAtW,SACEa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAYhU,SACzCa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SACrD6mB,IAAYsoB,EACXtuC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC02E,KAAc,CAACtiE,MAAM,gBAGxB3D,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC2vK,GAAe,IAChB3vK,cAACmwK,GAAiB,YAKzB,ECpBA,MAAME,GAA+BjmJ,OAAaC,MACvD,CACEjsB,KAAMgsB,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD8gB,YAAa2D,OAEV5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD87F,SAAUr3E,OAEPzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDwmH,UAAW/hG,OAERqjF,KAAK,WAAY2e,GAChBA,EACIhiG,OAEGolE,UAAS,GACTjlE,UAAU,oDACbH,OAAWolE,UAAS,KAE5B48B,QAAShiG,OAENqjF,KAAK,aAAa,CAAC0e,EAAwB1nG,IAC1C0nG,EACI1nG,EACG/e,IAAIymH,EAAW,wCACf5hG,UAAU,IACbH,OAAWolE,UAAS,KAEzBA,UAAS,IAEd,CAAC,CAAC,YAAa,aCkEF8gF,OAhGsCpxK,IAG9C,IAADqxK,EAAAC,EAAAC,EAAAC,EAAAllD,EAAA,IAHgD,SACpD5kD,EACA/7C,MAAM,QAAEyiF,EAAO,MAAEiX,EAAK,SAAEp4F,EAAQ,OAAElf,EAAM,QAAE6Z,IAC3C5nB,EACC,MAAMyxK,EAAiBpsD,EAAM,aACvBqsD,EAAersD,EAAM,WAO3B,OALAzxG,qBAAU,KACRw6F,EAAQ,aACRA,EAAQ,UAAU,GACjB,CAACqjE,EAAgBC,IAGlB5wK,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAACmnB,GAAS,CACR/oB,KAAK,OACL8tB,SAAUC,EACVjF,aAA2B,QAAfqpJ,EAAE3pG,EAASxoE,YAAI,IAAAmyK,SAAI/zK,EAC/B4W,OAAO,SACPzL,YAAY,aACZ/F,QAASqL,EAAO7O,KAChBguB,WAAYnf,EAAO7O,KAAO6O,EAAO7O,KAAKoB,QAAU,SAKtDQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,cAAarnB,SAC9Ba,cAACmnB,GAAS,CACR/oB,KAAK,cACL8tB,SAAUC,EACVjF,aAAkC,QAAtBspJ,EAAE5pG,EAASngD,mBAAW,IAAA+pJ,SAAIh0K,EACtC4W,OAAO,SACPzL,YAAY,sBACZ0kB,WAAW,EACXC,KAAM,EACN1qB,QAASqL,EAAOwZ,YAChB2F,WAAYnf,EAAOwZ,YAAcxZ,EAAOwZ,YAAYjnB,QAAU,SAKpEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACumB,GAAW,CAACC,MAAM,aAAYrnB,SAC7Ba,cAAC4lF,GAAU,CACTxnF,KAAK,YACL2oF,gBAAc,EACdC,QAAM,EACNlgE,QAASA,EACT8oB,OAAO,aACP1oB,aAAgC,QAApBupJ,EAAE7pG,EAASulD,iBAAS,IAAAskD,IAAI,KACpCr9J,OAAO,SACPxR,QAASqL,EAAOk/G,UAChB//F,WAAYnf,EAAOk/G,UAAYl/G,EAAOk/G,UAAU3sH,QAAU,SAKhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAAC4lF,GAAU,CACTxnF,KAAK,UACL4H,QAAS2qK,EACT5pF,gBAAc,EACdC,QAAM,EACNlgE,QAASA,EACT8oB,OAAO,aACP1oB,aAA8B,QAAlBwpJ,EAAE9pG,EAASwlD,eAAO,IAAAskD,IAAI,KAClCt9J,OAAO,SACPxR,QAASqL,EAAOm/G,QAChBhgG,WAAYnf,EAAOm/G,QAAUn/G,EAAOm/G,QAAQ5sH,QAAU,SAK5DQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CACR/oB,KAAK,WACL8tB,SAAUC,EACVjF,aAA+B,QAAnBskG,EAAE5kD,EAAS66B,gBAAQ,IAAA+pB,SAAIhvH,EACnC4W,OAAO,SACPzL,YAAY,wBACZ/F,QAASqL,EAAOw0F,SAChBr1E,WAAYnf,EAAOw0F,SAAWx0F,EAAOw0F,SAASjiG,QAAU,aAK/D,ECZQqxK,OA3E0CA,KACvD,MAAM,iBAAE38G,EAAgB,SAAEhpC,EAAQ,eAAEy7C,EAAc,eAAEooG,GAClDF,MACI,WAAE11J,GAAeQ,KAEjBkR,EAAOC,aAAiC,CAC5CC,SAAUC,aAAYqlJ,IACtBplJ,KAAM,WACN4pE,cAAe,CACbpuE,YAA6B,OAAhBytC,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBztC,YAC/BroB,KAAsB,OAAhB81D,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB91D,KACxBqjG,SAA0B,OAAhBvtC,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkButC,SAC5B0qB,UAA2B,OAAhBj4D,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBi4D,UAC7BC,QAAyB,OAAhBl4D,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBk4D,WAY/B,OACEpsH,cAAAyV,WAAA,CAAAtW,SACEsR,eAAC4U,GAAM,CACLzM,OAAQs7C,EACRvpC,QAASA,IAAMg8C,OAAenqE,GAAW2C,SAAA,CAEzCa,cAACkmB,GAAW,CAAA/mB,SAAC,sBACbsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAjBDR,IAChBqpC,GAAoBrpC,EAAKpE,aAAeoE,EAAKzsB,KAC/C2wK,EAAe,IAAK76G,KAAqBrpC,IAEzC1R,EAAW,0BACb,IAaMqS,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACX+0D,GACCl0D,cAACswK,GAAa,CAAC1pG,SAAU1S,EAAkBrpC,KAAMA,MAGrD7qB,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CACjBkB,WAAS,EACTjB,QAASA,KACPihD,OAAenqE,EAAU,MAI/BwD,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC8vF,GAAY,CACXnpE,WAAS,EACTsB,UACG4C,EAAK2B,UAAUC,UACf5B,EAAK2B,UAAUE,SAChBxB,EAEFruB,KAAK,SACL6oB,QAASA,OACTjc,KAAK,WACLuc,QAASkF,kBAOpB,ECPQ4lJ,OAzEsCA,KACnD,MAAM,UAAEn5H,EAAS,eAAEgvB,GAAmBkoG,KAEhCl0F,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,aACRjkB,MAAO,MACP0xE,SAAU,QAEZ,CACEztD,OAAQ,cACRjkB,MAAO,MACP0xE,SAAU,eAEZ,CACEztD,OAAQ,aACRjkB,MAAO,MACP4xE,KAAM/lF,IAAA,IAAA6xK,EAAA,IAAC,IAAE/zF,GAAU99E,EAAA,OACjBc,cAAC4nF,GAAQ,CAAChgF,KAA4B,QAAxBmpK,EAAE/zF,EAAImI,SAASgnC,iBAAS,IAAA4kD,IAAI,KAAMnhI,OAAO,aAAc,GAGzE,CACEtY,OAAQ,WACRjkB,MAAO,MACP4xE,KAAMtvE,IAAA,IAAAq7J,EAAA,IAAC,IAAEh0F,GAAUrnE,EAAA,OACjB3V,cAAC4nF,GAAQ,CAAChgF,KAA0B,QAAtBopK,EAAEh0F,EAAImI,SAASinC,eAAO,IAAA4kD,IAAI,KAAMphI,OAAO,aAAc,GAGvE,CACEtY,OAAQ,WACRjkB,MAAO,MACP0xE,SAAU,YAEZ,CACEztD,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACy1F,KAAU,CACT/vE,QAASA,KACPihD,EAAe,IAAKqW,EAAImI,UAAW,EACnChmF,SAEFa,cAAC0hC,KAAI,CAACttB,MAAM,UAASjV,SAAC,wBAEpB,KAIZ,IAEF,OACEa,cAAAyV,WAAA,CAAAtW,SACGw4C,EAAUh6C,OAAS,EAClBqC,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAM8rC,EACN9zC,QAAQ,EACR+2E,YAAY,EACZC,aAAc,GACdO,iBAAiB,EACjB9K,MAAM,EACNwK,OAAK,IAGP96E,cAAC64E,GAAQ,KAEV,EC3CQo4F,OA3BoDA,KACjE,MAAM,eAAE9C,EAAc,QAAEnoJ,EAAO,OAAEsoB,GAAWugI,KAM5C,OAJA/7J,qBAAU,KACRq7J,GAAgB,GACf,CAACA,IAGFnuK,cAAAyV,WAAA,CAAAtW,SACEa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAYhU,SACzCa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SACrD6mB,IAAYsoB,EACXtuC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC02E,KAAc,CAACtiE,MAAM,gBAGxB3D,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8wK,GAAa,IACd9wK,cAAC6wK,GAAe,YAKvB,ECYQK,OApC6B,CAC1C,CACEt7J,KAAM,gCACNxX,KAAM,UACNyX,OAAO,EACPC,UACE9V,cAACovC,GAAuB,CAAAjwC,SACtBa,cAACowK,GAAU,MAGf17J,WAAYqZ,GAAgBG,oCAE9B,CACEtY,KAAM,+BACNxX,KAAM,SACNyX,OAAO,EACPC,UACE9V,cAAC4tK,GAAc,CAAAzuK,SACba,cAAC83G,GAAS,MAGdpjG,WAAYqZ,GAAgBG,oCAE9B,CACEtY,KAAM,kCACNxX,KAAM,aACNyX,OAAO,EACPC,UACE9V,cAAC8uK,GAA4B,CAAA3vK,SAC3Ba,cAACixK,GAAoB,MAGzBv8J,WAAYqZ,GAAgBG,qCCtBjBijJ,ICrBX,GAAO,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GAAQ,GDqB5CA,GAd2BA,IAEtCnxK,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,uBAAsBX,SAAA,CACvCa,cAAC83F,GAAO,CAACxiF,MAAO47J,KAChBlxK,cAACmV,EAAM,CACLG,MAAO47J,GACP37J,SAAS,+B,gCCbnB,SAAS,KAAiS,OAApR,GAAWrX,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASg7J,GAAelyK,EAAMyX,GAC5B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,2HACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,2HACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,2CACHI,OAAQ,UACR+kB,YAAa,EACbi9C,cAAe,QACfC,eAAgB,WACb,KAAW,GAAsB,gBAAoB,OAAQ,CAChEriE,EAAG,+HACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,+HACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,uCACHI,OAAQ,UACR+kB,YAAa,EACbi9C,cAAe,QACfC,eAAgB,WACb,KAAW,GAAsB,gBAAoB,OAAQ,CAChEviE,SAAU,UACVC,SAAU,UACVC,EAAG,mkBACHN,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,2CACHI,OAAQ,UACR+kB,YAAa,EACbi9C,cAAe,QACfC,eAAgB,WAEpB,CACA,MAAM,GAA0B,aAAiB23F,IAClC,ICzDX,GAAO,GDyDI,ICxDf,SAAS,KAAiS,OAApR,GAAWlzK,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASi7J,GAAWnyK,EAAMyX,GACxB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,m9BACHN,KAAM,WACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChEM,EAAG,gZACHN,KAAM,WAEV,CACA,MAAM,GAA0B,aAAiBu6J,IAClC,ICHAC,OAnBsCpyK,IAI9C,IAJ+C,UACpDynB,EAAS,SACTxnB,KACG4V,GACJ7V,EACC,OACEc,cAAC2lB,KAAM,CACL1O,GAAIlC,EAAMkC,GAAKlC,EAAMkC,GAAKlC,EAAM3W,QAC5B2W,EACJX,MAAM,YACNnD,QAAQ,YACR0V,UAAWA,EACX+iB,UAAW1pC,cAACuxK,GAAW,IAAIpyK,SAE1BA,GACM,ECgCEqyK,OAxC+DtyK,IAGvE,IAHwE,KAC7E2rB,EAAI,aACJ3D,GACDhoB,EACC,OACEc,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgBC,QAAS,EAAEhoC,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,QAAOrnB,SACxBa,cAACmnB,GAAS,CACR/oB,KAAK,QACL8tB,SAAUrB,EAAKsB,SACfjF,aAAcA,EAAapnB,MAC3BjD,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNxS,QAASipB,EAAK5d,OAAOnN,MACrBssB,WAAYvB,EAAK5d,OAAOnN,MAAQ+qB,EAAK5d,OAAOnN,MAAMN,QAAU,SAIlEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAACm7J,GAAU,CACT/8J,KAAK,UACL0oB,QAAS+D,EAAK/D,QACdI,aAAcA,EAAa7iB,QAC3BzC,QAASipB,EAAK5d,OAAO5I,QACrB6jB,aACE2C,EAAK5d,OAAO5I,QAAUwmB,EAAK5d,OAAO5I,QAAQ7E,QAAU,aAM7D,EC/CP,MAAMmP,GAAe,sBA8BN8iK,OA5BgB,CAC7BvlK,IAAKA,IAAiCD,EAAa,GAAD5L,OAAIsO,GAAY,MAClEs/B,OAASmgC,GACPniE,EAAa,GAAD5L,OAAIsO,IAAgBy/D,GAClCsjG,cACExB,GAEAjkK,EAAc,GAAD5L,OAAIsO,GAAY,YAAYuhK,GAC3CyB,cACEzB,GAEAjkK,EAAa,GAAD5L,OAAIsO,GAAY,YAAYuhK,GAC1C0B,cAAgBC,GACd5lK,EAAgB,GAAD5L,OAAIsO,GAAY,aAAAtO,OAAYwxK,IAC7CC,oBACEC,GAEA9lK,EAAa,GAAD5L,OAAIsO,GAAY,kBAAkBojK,GAChDC,QAASA,IACP/lK,EAAa,GAAD5L,OAAIsO,GAAY,YAAY,CAAEukC,aAAc,SAC1DwT,aAAe16C,GACNC,EAAc,GAAD5L,OAAIsO,GAAY,UAAU3C,EAAU,CACtDjC,QAAS,CACP,eAAgB,0B,qBC4BjB,MAAMkoK,GAAmC7nJ,OAAaC,MAAM,CACjEvqB,MAAOsqB,OAEJ5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDtB,QAAS+lB,OAEN2uF,KACC,eACA71G,EAAUqC,WAAWC,UACpBjJ,GAAkD,MAA9B,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOsiC,QAAQ,WAAY,OAE5Cr5B,SAAStC,EAAUqC,WAAWC,YAGtB0sK,GAAyD,CACpEC,yBAA0B,EAC1BryK,MAAO,GACPuE,QAAS,GACT+tK,MAAO,IA8eMC,OA3euBA,KACpC,MAAOjkG,EAAUkkG,GAAe7gK,mBAAkC,OAC3D8gK,EAAiBC,GACtB/gK,mBAAyC,MACrCghK,EAAc3nJ,aAAiC,CACnDG,KAAM,MACNF,SAAUC,aAAYinJ,OAGtBtlI,UAAW+lI,EACX9lI,UAAW+lI,EACXjoJ,UAAWkoJ,GACTnmI,MACGomI,EAAqBC,GAA0BrhK,mBAAS,KAE7Dk7B,UAAWomI,EACXnmI,UAAWomI,EACXtoJ,UAAWuoJ,GACTxmI,MAEFE,UAAW8nE,EACX7nE,UAAW8nE,EACXhqF,UAAWiqF,GACTloE,MACE,WAAEtzB,GAAeQ,MAChBu5J,EAAiBC,GAAsB1hK,mBAAS,KAChD2hK,EAAeC,GAAoB5hK,mBAAS,KAC5C6hK,EAAuBC,GAA4B9hK,mBAAS,KAC5D+hK,EAAuBC,GAA4BhiK,oBAAS,IAC5DiiK,EAAwBC,GAA6BliK,oBAAS,GAErEqB,qBAAU,KACR8gK,IAAuB9wK,MAAMnB,QAAQC,MAAM,GAC1C,IAEH,MA4DM8vK,EAAgBA,KACpBc,EAAmB,MACnBO,GAAmB,EA6Dfc,EAAgC3D,IACpC,IAAI4D,EAEFA,EADEvB,EACed,GAAuBE,cAAc,IACjDY,KACArC,IAGYuB,GAAuBC,cAAcxB,GAGxD4D,EACGnpK,MAAM4gB,IACDA,GACFpS,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7Dy7J,IAAuB9wK,MAAMnB,QAAQC,QAErCuX,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WACtC,IAEDpC,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAG1Co0K,EAAuB9hK,UAC3B2/J,GAAuBvlK,MACpBvB,MAAM4gB,GAAW+mJ,EAAY/mJ,KAC7BzoB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAgChD,OAZAsT,qBAAU,KACR6gK,EACEL,IAA0BF,GAC0B,KAArC,OAAbA,QAAa,IAAbA,OAAa,EAAbA,EAAev0I,QAAQ,WAAY,IAAIlhC,QAC1C,GACA,CAAC21K,EAAuBF,IAE3BtgK,qBAAU,KACR2gK,GACGhB,EAAYjmJ,UAAUC,UAAYgmJ,EAAYjmJ,UAAUE,QAC1D,GACA,CAAC+lJ,EAAYjmJ,YAEdxsB,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,mBAAkBX,SAAA,CACnCa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAGxY,QAAQ,OAAOg0B,eAAe,WAAU/nC,SAClDa,cAACsxK,GAAa,CAACr6J,GAAG,kBAAkByO,QAjCxBquJ,KAClBtC,GAAuBO,UACpBrnK,MAAM4gB,IACL,GAAIA,GAAUA,EAAO3uB,KAAO,EAAG,CAC7B,MAAM+0F,EAAO,IAAIptE,KAAK,CAACgH,GAAS,qBAAsB,CACpD1uB,KAAM,oBAEFmoG,EAAUvkG,OAAOm3E,IAAIC,gBAAgB8Z,GAC3C,IAAI/hC,EAAMnvD,OAAOmY,OACL,OAARg3C,IACFA,EAAIlvD,SAASqiB,KAAOiiF,EAExB,KAEDliG,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAmBiBL,SAAC,sBAI3DivE,GACC39D,eAAC0vB,KAAI,CAAAhhC,SAAA,CACHa,cAACgR,IAAU,CACTC,QAAQ,KACRmD,MAAM,YACN1D,UAAWC,KAAOqjK,cAAc70K,SACjC,0BAGDsR,eAACmuB,KAAQ,CAAAz/B,SAAA,CACPa,cAACm/B,KAAY,CACXC,QAAS,GACT4F,UACEhlC,cAAA,QACEu2B,wBAAyB,CACvBC,OAAQ43C,EAAS6lG,yBAKzBj0K,cAACk0K,KAAuB,CAAA/0K,SACtBa,cAACqmB,KAAU,CACTpP,GAAG,qCACHyO,QAASA,KACP2tJ,EAAiBjlG,EAAS6lG,qBAC1BV,EAAyBnlG,EAAS6lG,qBAClCd,EAAmB,uBACnBL,EAAuB,yBACvBJ,GAAoB,EACpBvzK,SAEFa,cAAColF,GAAQ,WAIfplF,cAACgR,IAAU,CACTC,QAAQ,KACRmD,MAAM,YACN1D,UAAWC,KAAOqjK,cAAc70K,SACjC,cAGDsR,eAACmuB,KAAQ,CAAAz/B,SAAA,CACPa,cAACm/B,KAAY,CACXC,QAAS,GACT4F,UACEhlC,cAAA,QACEu2B,wBAAyB,CAAEC,OAAQ43C,EAAS+lG,eAIlDn0K,cAACk0K,KAAuB,CAAA/0K,SACtBa,cAACqmB,KAAU,CACTpP,GAAG,yBACHyO,QAASA,KACP2tJ,EAAiBjlG,EAAS+lG,WAC1BZ,EAAyBnlG,EAAS+lG,WAClChB,EAAmB,aACnBL,EAAuB,aACvBJ,GAAoB,EACpBvzK,SAEFa,cAAColF,GAAQ,cAMlBhX,GAAYA,EAAS2jG,SAASp0K,OAAS,GACtCqC,cAACo0K,KAAe,CAACC,UA9PN9oJ,IACjB,MAAM,OAAElV,EAAM,YAAEw8C,EAAW,OAAElgB,GAAWpnB,EAGxC,IAAKsnC,GAA0B,WAAXlgB,EAClB,OAGF,GACEkgB,EAAYyhH,cAAgBj+J,EAAOi+J,aACnCzhH,EAAYh1D,QAAUwY,EAAOxY,MAE7B,OAGF,GAAiB,OAAbuwE,GAAkD,IAA7BA,EAAS2jG,SAASp0K,OACzC,OAGF,MAAMo0K,EAAsC7zK,OAAO8F,OACjD,GACAoqE,EAAS2jG,UAEL7B,EAAU9hG,EAAS2jG,SAAS17J,EAAOxY,OACzCk0K,EAASpyK,OAAO0W,EAAOxY,MAAO,GAC9Bk0K,EAASpyK,OAAOkzD,EAAYh1D,MAAO,EAAGqyK,GAEtCoC,EAAY,IAAKlkG,EAAU2jG,SAAUA,IAErCA,EAASn0K,SAAQ,CAACsyK,EAAkC/5J,KAClD+5J,EAAQkC,MAAQj8J,EAAI,CAAC,IAGvBs7J,GAAuBK,oBAAoBC,GACxCpnK,MAAM4gB,IACDA,GACFqoJ,IAAuB9wK,MAAMnB,QAAQC,MACvC,IAEDkB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAuNFL,SACpCa,cAACu0K,KAAS,CAACD,YAAY,YAAWn1K,SAC9Bq1K,GACAx0K,cAACy0K,KAAO,CAACC,QAASF,EAASG,SAASx1K,SAClCsR,eAAC0vB,KAAI,CAAAhhC,SAAA,CACHa,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,0BAG3Ca,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CACR1iE,GAAG,sBACHyO,QAASgsJ,EAAcvyK,SACxB,oBAIFivE,EAAS2jG,SAASr8J,KAAI,CAACw6J,EAASryK,IAC/BmC,cAAC40K,KAAS,CAERC,YAAW,GAAAx0K,OAAK6vK,EAAQiC,0BACxBt0K,MAAOA,EAAMsB,SAEZA,CACC21K,EACAC,KAEA/0K,qBAACy0K,KAAO,CAACC,QAASI,EAAkBH,SAASx1K,SAC3CsR,eAACmuB,KAAQ,CACPo2I,eAAgB,IACXF,EAAkBG,kBAClBH,EAAkBI,gBACrBjiK,MAAO,KAnPfkiK,EAqPYJ,EAAkBI,WArPTC,EAsPTN,EAAkBG,eAAehiK,MAtPL,IAEzDmiK,KAECD,GAAc,CAChBzhK,WAAY,wBAuPY2hK,mBACEN,EAAkBI,WAAa,MAAQ,KAEzCr2I,QAAM,EAAA3/B,SAAA,CAENa,cAACk/B,KAAY,CAACxuB,UAAWC,KAAO2kK,SAASn2K,SACvCa,cAACu1K,GAAe,MAElBv1K,cAACm/B,KAAY,CACXzuB,UAAWC,KAAO7Q,MAClBs/B,QAAS8wI,EAAQpwK,MACjBklC,UACEhlC,cAAA,QACEu2B,wBAAyB,CACvBC,OAAQ05I,EAAQ7rK,aAKxBoM,eAACyjK,KAAuB,CAAA/0K,SAAA,CACtBa,cAACqmB,KAAU,CACTX,QAASA,KACP8sJ,EAAmBtC,GACnB6C,GAAmB,EACnB5zK,SAEFa,cAAColF,GAAQ,MAEXplF,cAACqmB,KAAU,CACTX,QAASA,KAhRlBwqJ,KACrBsC,EAAmBtC,GACnBz7D,GAAwB,EA+QQm9D,CAAc1B,EAAQ,EACtB/wK,SAEFa,cAACqlF,GAAU,cA7RtBmwF,IAACL,EAAqBC,CAkSpB,GA5DIlF,EAAQiC,4BA+DhBqC,EAAS7sK,qBAOtB8I,eAAC4U,GAAM,CAACzM,KAAMg6J,EAAyBjoJ,QAASgoJ,EAAmBxzK,SAAA,CACjEsR,eAACyV,GAAW,CAAA/mB,SAAA,CAAC,SACJ,IACN0zK,EAAoBl1K,OAAS,EAAIk1K,EAAsB,cAE1DpiK,eAAA,OAAKC,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAC3CsR,eAACqV,GAAa,CAAA3mB,SAAA,CACZa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAACm7J,GAAU,CACT/8J,KAAK,gBACL7B,MAAO62K,EACPnpJ,SArWmB5lB,IACjCgvK,EAAiBhvK,EAAQ,MAuWM,cAApB6uK,GACCziK,eAACO,IAAU,CAAA7R,SAAA,CAAC,SAAe,OAARivE,QAAQ,IAARA,OAAQ,EAARA,EAAUqnG,KAAKnqJ,KAAK,WAG3CtrB,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CACjBxO,GAAG,0BACHyO,QAASitJ,EACThsJ,WAAS,MAGb3mB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC+lB,GAAgB,CACf9O,GAAG,wBACHgR,SAAUyrJ,EACVhuJ,QAlSWgwJ,KAC3B,IAAIC,EAEFA,EADsB,cAApBzC,EACgBzB,GAAuBxjI,OAAO,IAC3CmgC,EACH+lG,UAAWf,IAGK3B,GAAuBxjI,OAAO,IAC3CmgC,EACH6lG,oBAAqBb,IAIzBuC,EACGhrK,MAAM4gB,IACDA,GACFpS,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7Dy7J,IAAuB9wK,MAAMnB,QAAQC,QAErCuX,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WACtC,IAEDpC,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WACrCmzK,GAAoB,EA2QJhsJ,WAAS,iBAOrBlW,eAAC4U,GAAM,CAACzM,KAAMq6J,EAAwBtoJ,QAASqoJ,EAAkB7zK,SAAA,CAC/Da,cAACkmB,GAAW,CAAA/mB,SACTozK,EAAkB,iBAAmB,kBAExC9hK,eAAA,QACEkX,aAAa,MACbyD,SAAUqnJ,EAAYpnJ,cArRH6kJ,IAC3B2D,EACEtB,EACIrC,EACA,IAAKgC,MAAkChC,IAE7C8C,GAAmB,IAgRXxnJ,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAACwxK,GAA0B,CACzB3mJ,KAAM4nJ,EACNvrJ,aAA6B,OAAfqrJ,QAAe,IAAfA,IAAmBL,OAGrClyK,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CACjBxO,GAAG,yBACHyO,QAASstJ,EACTrsJ,WAAS,MAGb3mB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC+lB,GAAgB,CACf9O,GAAG,uBACHgR,SAAUurJ,EACV7sJ,WAAS,iBAOrBlW,eAACu7B,GAAM,CACLpzB,KAAM+7F,EACNhqF,QAAS+pF,EACTlkG,SAAS,KAAIrR,SAAA,CAEbsR,eAAC+7B,GAAW,CAAArtC,SAAA,CACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oCAGzBa,cAACgR,IAAU,CAACN,UAAU,WAAUvR,SAAA,GAAAkB,OAAoB,OAAfkyK,QAAe,IAAfA,OAAe,EAAfA,EAAiBzyK,YAExDE,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjB9oE,GAAG,gCACHxN,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACP8sJ,EAAmB,MACnB99D,GAAwB,IAG5B10G,cAACssC,GAAY,CACXr1B,GAAG,6BACHxN,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QA9XuBkwJ,KAChB,OAAbxnG,GAAyC,OAApBmkG,IAEzBd,GAAuBG,cACrBW,EAAgBJ,0BAEfxnK,MAAM4gB,IACDA,GACFpS,EACEjW,EAAUuB,SAASC,QAAQE,YAC3BqT,GAAYE,SAEdy7J,IAAuB9wK,MAAMnB,QAAQC,QAErCuX,EAAWjW,EAAUuB,SAAS7C,MAAMuD,aACtC,IAEDrC,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAErCk1G,IAAwB,cAgXrB,EC5gBP,MAAMnH,GAAenjF,OAAaC,MAAM,CACtC9tB,MAAO6tB,OAEJ5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,YAG9BqwK,GAA2BzrJ,OAAaC,MAAM,CAClDjsB,KAAMgsB,OAEHzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDH,SAAStC,EAAUqC,WAAWC,UACjCswK,IAAK1rJ,OAEFzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDH,SAAStC,EAAUqC,WAAWC,UACjCuwK,KAAMxoE,GAAahjF,UAAUrnB,EAAUqC,WAAWC,UAClDwwK,KAAM5rJ,OAEHzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDH,SAAStC,EAAUqC,WAAWC,UACjCs/C,SAAUyoD,GAAahjF,UAAUrnB,EAAUqC,WAAWC,YA8QzCywK,OA3QgD/2K,IAIQ,IAADg3K,EAAAC,EAAA,IAJN,KACE97J,EAAI,YACJG,EAAW,YACX42B,GACDlyC,EAC/D,MAAOkoB,EAAUgvJ,GAAe3kK,oBAAkB,IAC5C,WAAC0H,GAAcQ,KACf6B,EAAY0gF,MACZ,YAAC7qF,GAAemD,IAEtB1B,qBAAU,KACRsjK,GAAY,EAAK,GAChB,CAAC57J,IAEJ,MAAMqQ,EAAOC,aAA0B,CACrCG,KAAM,WACNF,SAAUC,aAAY6qJ,MAiCxB,OACE71K,cAAAyV,WAAA,CAAAtW,SACKqc,EACD/K,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAe/nC,SAAA,CAC5Ca,cAACgR,KAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,wBAG1CioB,GACC/V,EAAY2D,SACV+Y,GAAgBM,4BAEhBruB,cAAC0hC,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QAASA,IAAM0wJ,GAAY,GAC3BnlK,QAAQ,QACR6E,UAAU,SAAQ3W,SACnB,gCAKPsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAvDH7Q,IAC+C,IAAD67J,EAA9D77J,EAAYu7J,MAAQv7J,EAAYw7J,MAAQx7J,EAAYsqC,UACtDlrC,GAAeW,kBAAkBF,EAAKogC,cAAe,CACnDr8C,KAAMoc,EAAYpc,KAClB29F,KAAMvhF,EAAYs7J,IAClBn2E,YAAanlF,EAAYu7J,KAAKx5K,MAC9BwL,QAASyS,EAAYu7J,KAAKvvJ,MAC1BwvJ,KAAMx7J,EAAYw7J,KAClBrwH,SAA8B,QAAtB0wH,EAAE77J,EAAYsqC,gBAAQ,IAAAuxH,OAAA,EAApBA,EAAsB95K,MAChC+5K,cAAe97J,EAAY87J,gBAEd3rK,MAAM4gB,IACDA,GACFpS,EACEjW,EAAUuB,SAASC,QAAQC,UAC3BsT,GAAYE,SAEdi5B,KAEAj4B,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WACtC,IAEDpC,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UACnD,IAiCQgsB,YAAU,EAAArsB,SAAA,CAEVsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,eAAcrnB,SAC9BioB,EACCpnB,cAACmnB,GAAS,CAAC/oB,KAAK,OAAO7B,MAAOie,EAAYpc,KAAMgpB,UAAQ,IAExDpnB,cAACmnB,GAAS,CACR/oB,KAAK,OACL6Y,GAAG,kBACHtP,YAAY,uBACZukB,SAAUrB,EAAKsB,SACfH,WAAY,CAACC,UAAW,KACxBpvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACN8S,aAAc1M,EAAYpc,KAC1BuoB,WAAS,EACT/kB,QAASipB,EAAK5d,OAAO7O,KACrBguB,WACEvB,EAAK5d,OAAO7O,KAAOysB,EAAK5d,OAAO7O,KAAKoB,QAAU,SAMxDQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACtBioB,EACCpnB,cAACmnB,GAAS,CACR/oB,KAAK,MACL7B,MAAOie,EAAYuhF,KACnB30E,SAAUA,IAGZpnB,cAACmnB,GAAS,CACR/oB,KAAK,MACL6Y,GAAG,kBACHtP,YAAY,eACZukB,SAAUrB,EAAKsB,SACfH,WAAY,CAACC,UAAW,KACxB/E,aAAc1M,EAAYuhF,KAC1Bl/F,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASipB,EAAK5d,OAAO6oK,IACrB1pJ,WACEvB,EAAK5d,OAAO6oK,IAAMjrJ,EAAK5d,OAAO6oK,IAAIt2K,QAAU,SAMtDQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SACzBioB,EACCpnB,cAACmnB,GAAS,CACR/oB,KAAK,OACL7B,MAAOie,EAAYzS,QACnBqf,UAAQ,IAGVpnB,cAACk/E,GAAc,CACb9gF,KAAK,OACL2pB,QAASvM,EAAU9F,KAAK3N,IAAO,CAC7BxL,MAAOwL,EAAQ43F,YACfn5E,MAAOze,EAAQ23F,gBAEjB54E,QAAS+D,EAAK/D,QACda,cAAc,EACdT,aAAc,CACZ3qB,MAAOie,EAAYmlF,YACnBn5E,MAAOhM,EAAYzS,SAErBqL,OAAO,SACPzL,YAAY,SACZ/F,QAASipB,EAAK5d,OAAO8oK,KACrB7tJ,aACE2C,EAAK5d,OAAO8oK,KACS,QADLG,EACXrrJ,EAAK5d,OAAO8oK,YAAI,IAAAG,OAAA,EAAjBA,EAA2B12K,QAC3B,SAMdQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACtBioB,EACCpnB,cAACmnB,GAAS,CAAC/oB,KAAK,OAAO7B,MAAOie,EAAYw7J,KAAM5uJ,UAAQ,IAExDpnB,cAAC8+E,GAAM,CACL53D,aAAc1M,EAAYw7J,KAC1B53K,KAAK,OACL0oB,QAAS+D,EAAK/D,QACdiB,QAAS7kB,EAAU4F,SAASC,MAAM2M,KAAKsgK,IAAI,CACzCz5K,MAAOy5K,EACPxvJ,MAAOwvJ,MAETp0K,QAASipB,EAAK5d,OAAO+oK,KACrB9tJ,aACE2C,EAAK5d,OAAO+oK,KAAOnrJ,EAAK5d,OAAO+oK,KAAKx2K,QAAU,SAMxDQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC3BioB,EACCpnB,cAACmnB,GAAS,CACR/oB,KAAK,WACL7B,MAAOie,EAAYmrC,SACnBv+B,UAAQ,IAGVpnB,cAACk/E,GAAc,CACb9gF,KAAK,WACL2pB,QAASk9B,MACNsxH,QACA7gK,KAAKovC,IAAQ,CACZvoD,MAAOuoD,EACPt+B,MAAOs+B,MAEXh+B,QAAS+D,EAAK/D,QACda,cAAc,EACdT,aAAc,CACZ3qB,MAAOie,EAAYmrC,SACnBn/B,MAAOhM,EAAYmrC,UAErBvyC,OAAO,SACPzL,YAAY,MACZ/F,QAASipB,EAAK5d,OAAO63C,SACrB58B,aACE2C,EAAK5d,OAAO63C,SACa,QADLqxH,EACftrJ,EAAK5d,OAAO63C,gBAAQ,IAAAqxH,OAAA,EAArBA,EAA+B32K,QAC/B,SAMdQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACZioB,EACCpnB,cAACumB,GAAW,CAACC,MAAM,eAAcrnB,SAC/Ba,cAACmnB,GAAS,CAAC/oB,KAAK,gBAAgB7B,MAAOie,EAAY87J,cAAgB,MAAQ,KAChElvJ,UAAQ,MAGrBpnB,cAACumB,GAAW,CAAApnB,SACVa,cAACqhF,GAAkB,CAACC,eAAe,MAAM96D,MAAM,eAC3BM,QAAS+D,EAAK/D,QACdo8D,eAAgB1oE,EAAY87J,cAC5Bl4K,KAAK,0BAOjCgpB,GACA3W,eAACqI,KAAG,CAAC4S,GAAI,EAAGxY,QAAQ,OAAOg0B,eAAe,SAAQ/nC,SAAA,CAChDa,cAAC2lB,KAAM,CAAC1U,QAAQ,WAAWmD,MAAM,UAAUsR,QApMtC8wJ,KACjBJ,GAAY,EAAK,EAmM0Dj3K,SAC5D+D,EAAUC,QAAQE,SAErBrD,cAAC8Y,KAAG,CAACG,GAAI,EAAE9Z,SACTa,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoU,QAAQ,YACRmD,MAAM,UACN6T,UACG4C,EAAK2B,UAAUC,UAAY5B,EAAK2B,UAAUE,QAC5CvtB,SAEA+D,EAAUC,QAAQK,yBAQ/BxD,cAAC02E,KAAc,CAACtiE,MAAM,eAEvB,E,oBC5SA,MAAMqiK,GAAmCrsJ,OAAaC,MAAM,CACjEqsJ,cAAetsJ,OAEZzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDC,QACC1C,EAAUqC,WAAWc,mBACrBnD,EAAUqC,WAAWwB,eAEzB4vK,aAAcvsJ,OAEXzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDC,QACC1C,EAAUqC,WAAWc,mBACrBnD,EAAUqC,WAAWwB,eAEzB6vK,aAAcxsJ,OAEXzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDC,QACC1C,EAAUqC,WAAWc,mBACrBnD,EAAUqC,WAAWwB,eAEzB8vK,kBAAmBzsJ,OAAc5kB,WACjCsxK,gBAAiB1sJ,OAAc5kB,WAC/BuxK,4BAA6B3sJ,OAE1BpS,WAAU,CAACosF,EAAGhW,IAAa,KAANA,EAAW,KAAOgW,IACvC5U,UAAS,GACZwnF,6BAA8B5sJ,OAE3BpS,WAAU,CAACosF,EAAGhW,IAAa,KAANA,EAAW,KAAOgW,IACvC5U,UAAS,GACZvf,uBAAwB7lD,OAAc5kB,WACtCujJ,+BAAgC3+H,OAE7BpS,WAAU,CAACosF,EAAGhW,IAAa,KAANA,EAAW,KAAOgW,IACvC5U,UAAS,GACZw5D,gCAAiC5+H,OAE9BpS,WAAU,CAACosF,EAAGhW,IAAa,KAANA,EAAW,KAAOgW,IACvC5U,UAAS,GACZynF,iBAAkB7sJ,OAEfzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDC,QACC1C,EAAUqC,WAAWc,mBACrBnD,EAAUqC,WAAWwB,eAEzBmpE,mBAAoB9lD,OAAc5kB,WAClC0jJ,2BAA4B9+H,OAEzBpS,WAAU,CAACosF,EAAGhW,IAAa,KAANA,EAAW,KAAOgW,IACvC5U,WACH25D,4BAA6B/+H,OAE1BpS,WAAU,CAACosF,EAAGhW,IAAa,KAANA,EAAW,KAAOgW,IACvC5U,WACHrf,cAAe/lD,OAAc5kB,WAC7B6jJ,2BAA4Bj/H,OAEzBpS,WAAU,CAACosF,EAAGhW,IAAa,KAANA,EAAW,KAAOgW,IACvC5U,WACH85D,4BAA6Bl/H,OAE1BpS,WAAU,CAACosF,EAAGhW,IAAa,KAANA,EAAW,KAAOgW,IACvC5U,WACH0nF,YAAa9sJ,OAAc5kB,WAC3B2xK,OAAQ/sJ,OACRgtJ,SAAUhtJ,OAEPqjF,KAAK,cAAe,CACnB0W,IAAI,EACJx5G,KAAMyf,OAAa5kB,SAAStC,EAAUqC,WAAWC,UACjD6xK,UAAWjtJ,OAAaolE,UAAS,KAElC9pF,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWG,IAAK,IAC9CC,IAAI,EAAG4gG,GAAarjG,EAAUqC,WAAWI,IAAK,IACjDsV,SAAUmP,OAAazkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACvE2xK,oBAAqBltJ,OAElBzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QAioBtC4xK,OA9nBwDr4K,IAIhE,IAJiE,gBACtE2b,EAAe,KACfR,EAAI,YACJ+2B,GACDlyC,EACC,MAAOkoB,EAAUqyE,GAAehoF,oBAAS,GACnCoZ,EAAOC,aAAiC,CAC5CG,KAAM,WACNF,SAAUC,aAAYyrJ,IACtB5hF,cAAe,CACbgiF,kBAAmBh8J,EAAgBg8J,kBACnCC,gBAAiBj8J,EAAgBi8J,gBACjC7mG,uBAAwBp1D,EAAgBo1D,uBACxCC,mBAAoBr1D,EAAgBq1D,mBACpCC,cAAet1D,EAAgBs1D,cAC/B+mG,YAAar8J,EAAgBq8J,YAC7BC,OAAQt8J,EAAgBs8J,UAI5BrkK,qBAAU,KACR2mF,GAAY,GACZ5uE,EAAKu6B,MAAMvqC,EAAgB,GAC1B,CAACA,EAAiBR,IAErB,MAkBMoxE,EAAe3gF,IAEnB,MAAMwgF,EAAWxgF,EAAEygF,MAAQzgF,EAAEygF,MAAQzgF,EAAE0gF,QAExB,MAAbF,GACa,KAAbA,GACa,KAAbA,GACa,KAAbA,GAEAxgF,EAAEytE,gBACJ,GAGI,WAAEp/D,GAAeQ,KAEvB,OACElJ,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAe/nC,SAAA,CAC5Ca,cAACgR,KAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,gBAG1CioB,GACCpnB,cAAC0hC,KAAI,CACHtjC,KAAK,2BACLgW,MAAM,UACNvX,KAAK,SACL6oB,QAASA,IAAM+zE,GAAY,GAC3BxoF,QAAQ,QACR6E,UAAU,SAAQ3W,SACnB,6BAKLsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAtDCR,IACpBjR,GAAegB,sBAAsBP,EAAM,IAAKQ,KAAoBgQ,IACjElgB,MAAM4gB,IACDA,GACFpS,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7Di5B,KAEAj4B,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WACtC,IAEDpC,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,IA6C1CgsB,YAAU,EAAArsB,SAAA,CAEVa,cAAC8Y,KAAG,CAAA3Z,SACFa,cAACgR,KAAU,CAAA7R,SACTa,cAAA,UAAAb,SAAQ,8BAIZa,cAAC8Y,KAAG,CAACud,EAAG,EAAEl3B,SACRsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAAApnB,SACVa,cAACqhF,GAAkB,CACjB76D,MAAM,qCACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,oBACL6pB,SAAUb,EACVhT,MAAM,UACN1D,UAAWC,KAAO6mK,oBAKxBx3K,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAAApnB,SACVa,cAACqhF,GAAkB,CACjB76D,MAAM,yCACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,kBACL6pB,SAAUb,EACVhT,MAAM,UACN1D,UAAWC,KAAO6mK,oBAKxBx3K,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,gCAA+BrnB,SAChDsR,eAACmb,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAEhoC,SAAA,CACzBa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACmnB,GAAS,CACRD,aAAcrM,EAAgBk8J,4BAC9Bl6K,KAAK,SACLwuF,WAAavgF,GAAM2gF,EAAY3gF,GAC/B4F,UAAW2mG,KAAUuN,YACrBx9F,SAAUA,EACVhpB,KAAK,8BACL8tB,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAO8pK,4BACrB3qJ,WACEvB,EAAK5d,OAAO8pK,4BACRlsJ,EAAK5d,OAAO8pK,4BAA4Bv3K,QACxC,GAENgoB,WAAY,CACVE,SAAUN,EACVyjB,aACE7qC,cAACo4E,KAAc,CACb7kE,SAAS,MACT7C,UAAW0W,EAAWzW,KAAO8mK,UAAY,UAMnDz3K,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACmnB,GAAS,CACRD,aACErM,EAAgBm8J,6BAElBn6K,KAAK,SACLwuF,WAAavgF,GAAM2gF,EAAY3gF,GAC/B4F,UAAW2mG,KAAUuN,YACrBx9F,SAAUA,EACVhpB,KAAK,+BACL8tB,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAO+pK,6BACrB5qJ,WACEvB,EAAK5d,OAAO+pK,6BACRnsJ,EAAK5d,OAAO+pK,6BAA6Bx3K,QACzC,GAENgoB,WAAY,CACVE,SAAUN,EACVyjB,aACE7qC,cAACo4E,KAAc,CACb7kE,SAAS,MACT7C,UAAW0W,EAAWzW,KAAO8mK,UAAY,GAAGt4K,SAC7C,uCAUfa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,IACfvsB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,8BAA6BrnB,SAC9Ca,cAACmnB,GAAS,CACRD,aAAcrM,EAAgB67J,cAC9BtvJ,SAAUA,EACVhpB,KAAK,gBACL8tB,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAOypK,cACrBtqJ,WACEvB,EAAK5d,OAAOypK,cACR7rJ,EAAK5d,OAAOypK,cAAcl3K,QAC1B,cAQhBQ,cAAC8Y,KAAG,CAAA3Z,SACFa,cAACgR,KAAU,CAAA7R,SACTa,cAAA,UAAAb,SAAQ,oBAIZa,cAAC8Y,KAAG,CAACud,EAAG,EAAEl3B,SACRsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAAApnB,SACVa,cAACqhF,GAAkB,CACjB76D,MAAM,0BACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,yBACL6pB,SAAUb,EACVhT,MAAM,UACN1D,UAAWC,KAAO6mK,oBAKxBx3K,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,mCAAkCrnB,SACnDsR,eAACmb,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAEhoC,SAAA,CACzBa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACmnB,GAAS,CACRD,aACErM,EAAgBkuI,+BAElBlsJ,KAAK,SACLwuF,WAAavgF,GAAM2gF,EAAY3gF,GAC/B4F,UAAW2mG,KAAUuN,YACrBx9F,SAAUA,EACVhpB,KAAK,iCACL8tB,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAO87I,+BACrB38H,WACEvB,EAAK5d,OAAO87I,+BACRl+H,EAAK5d,OAAO87I,+BAA+BvpJ,QAC3C,GAENgoB,WAAY,CACVE,SAAUN,EACVyjB,aACE7qC,cAACo4E,KAAc,CACb7kE,SAAS,MACT7C,UAAW0W,EAAWzW,KAAO8mK,UAAY,UAMnDz3K,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACmnB,GAAS,CACRD,aACErM,EAAgBmuI,gCAElBnsJ,KAAK,SACLwuF,WAAavgF,GAAM2gF,EAAY3gF,GAC/B4F,UAAW2mG,KAAUuN,YACrBx9F,SAAUA,EACVhpB,KAAK,kCACL8tB,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAO+7I,gCACrB58H,WACEvB,EAAK5d,OAAO+7I,gCACRn+H,EAAK5d,OAAO+7I,gCAAgCxpJ,QAC5C,GAENgoB,WAAY,CACVE,SAAUN,EACVyjB,aACE7qC,cAACo4E,KAAc,CACb7kE,SAAS,MACT7C,UAAW0W,EAAWzW,KAAO8mK,UAAY,GAAGt4K,SAC7C,uCAWfa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,uBAAsBrnB,SACvCa,cAACmnB,GAAS,CACRD,aAAcrM,EAAgBo8J,iBAC9B7vJ,SAAUA,EACVhpB,KAAK,mBACL8tB,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAOgqK,iBACrB7qJ,WACEvB,EAAK5d,OAAOgqK,iBACRpsJ,EAAK5d,OAAOgqK,iBAAiBz3K,QAC7B,cAQhBQ,cAAC8Y,KAAG,CAAA3Z,SACFa,cAACgR,KAAU,CAAA7R,SACTa,cAAA,UAAAb,SAAQ,gBAIZa,cAAC8Y,KAAG,CAACud,EAAG,EAAEl3B,SACRsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAAApnB,SACVa,cAACqhF,GAAkB,CACjB76D,MAAM,sBACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,qBACL6pB,SAAUb,EACVhT,MAAM,UACN1D,UAAWC,KAAO6mK,oBAKxBx3K,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,+BAA8BrnB,SAC/CsR,eAACmb,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAEhoC,SAAA,CACzBa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACmnB,GAAS,CACRD,aAAcrM,EAAgBquI,2BAC9BrsJ,KAAK,SACLwuF,WAAavgF,GAAM2gF,EAAY3gF,GAC/B4F,UAAW2mG,KAAUuN,YACrBx9F,SAAUA,EACVhpB,KAAK,6BACL8tB,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAOi8I,2BACrB98H,WACEvB,EAAK5d,OAAOi8I,2BACRr+H,EAAK5d,OAAOi8I,2BAA2B1pJ,QACvC,GAENgoB,WAAY,CACVE,SAAUN,EACVyjB,aACE7qC,cAACo4E,KAAc,CACb7kE,SAAS,MACT7C,UAAW0W,EAAWzW,KAAO8mK,UAAY,UAMnDz3K,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACmnB,GAAS,CACRD,aAAcrM,EAAgBsuI,4BAC9BtsJ,KAAK,SACLwuF,WAAavgF,GAAM2gF,EAAY3gF,GAC/B4F,UAAW2mG,KAAUuN,YACrBx9F,SAAUA,EACVhpB,KAAK,8BACL8tB,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAOk8I,4BACrB/8H,WACEvB,EAAK5d,OAAOk8I,4BACRt+H,EAAK5d,OAAOk8I,4BAA4B3pJ,QACxC,GAENgoB,WAAY,CACVE,SAAUN,EACVyjB,aACE7qC,cAACo4E,KAAc,CACb7kE,SAAS,MACT7C,UAAW0W,EAAWzW,KAAO8mK,UAAY,GAAGt4K,SAC7C,uCAWfa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,mBAAkBrnB,SACnCa,cAACmnB,GAAS,CACRD,aAAcrM,EAAgB87J,aAC9BvvJ,SAAUA,EACVhpB,KAAK,eACL8tB,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAO0pK,aACrBvqJ,WACEvB,EAAK5d,OAAO0pK,aACR9rJ,EAAK5d,OAAO0pK,aAAan3K,QACzB,cAQhBQ,cAAC8Y,KAAG,CAAA3Z,SACFa,cAACgR,KAAU,CAAA7R,SACTa,cAAA,UAAAb,SAAQ,gBAIZa,cAAC8Y,KAAG,CAACud,EAAG,EAAEl3B,SACRsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAAApnB,SACVa,cAACqhF,GAAkB,CACjB76D,MAAM,iBACNM,QAAS+D,EAAK/D,QACd1oB,KAAK,gBACL6pB,SAAUb,EACVhT,MAAM,UACN1D,UAAWC,KAAO6mK,oBAKxBx3K,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,+BAA8BrnB,SAC/CsR,eAACmb,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAEhoC,SAAA,CACzBa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACmnB,GAAS,CACRD,aAAcrM,EAAgBwuI,2BAC9BxsJ,KAAK,SACLwuF,WAAavgF,GAAM2gF,EAAY3gF,GAC/B4F,UAAW2mG,KAAUuN,YACrBx9F,SAAUA,EACVhpB,KAAK,6BACL8tB,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAOo8I,2BACrBj9H,WACEvB,EAAK5d,OAAOo8I,2BACRx+H,EAAK5d,OAAOo8I,2BAA2B7pJ,QACvC,GAENgoB,WAAY,CACVE,SAAUN,EACVyjB,aACE7qC,cAACo4E,KAAc,CACb7kE,SAAS,MACT7C,UAAW0W,EAAWzW,KAAO8mK,UAAY,UAMnDz3K,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACmnB,GAAS,CACRD,aAAcrM,EAAgByuI,4BAC9BzsJ,KAAK,SACLwuF,WAAavgF,GAAM2gF,EAAY3gF,GAC/B4F,UAAW2mG,KAAUuN,YACrBx9F,SAAUA,EACVhpB,KAAK,8BACL8tB,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAOq8I,4BACrBl9H,WACEvB,EAAK5d,OAAOq8I,4BACRz+H,EAAK5d,OAAOq8I,4BAA4B9pJ,QACxC,GAENgoB,WAAY,CACVE,SAAUN,EACVyjB,aACE7qC,cAACo4E,KAAc,CACb7kE,SAAS,MACT7C,UAAW0W,EAAWzW,KAAO8mK,UAAY,GAAGt4K,SAC7C,uCAWfa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,mBAAkBrnB,SACnCa,cAACmnB,GAAS,CACRD,aAAcrM,EAAgB+7J,aAC9BxvJ,SAAUA,EACVhpB,KAAK,eACL8tB,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAO2pK,aACrBxqJ,WACEvB,EAAK5d,OAAO2pK,aACR/rJ,EAAK5d,OAAO2pK,aAAap3K,QACzB,cAQhBQ,cAAC8Y,KAAG,CAAA3Z,SACFa,cAACgR,KAAU,CAAA7R,SACTa,cAAA,UAAAb,SAAQ,YAIZa,cAAC8Y,KAAG,CAACud,EAAG,EAAEl3B,SACRsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAAApnB,SACVa,cAACqhF,GAAkB,CACjBv6D,QAAS+D,EAAK/D,QACdN,MAAM,eACNpoB,KAAK,cACL6pB,SAAUb,EACVhT,MAAM,UACN1D,UAAWC,KAAO6mK,oBAKxBx3K,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,SAAQrnB,SACzBa,cAACmnB,GAAS,CACRD,aAAY,GAAA7mB,OAAKwa,EAAgBs8J,QACjCt6K,KAAK,SACLwuF,WAAavgF,GAAM2gF,EAAY3gF,GAC/B4F,UAAW2mG,KAAUuN,YACrBx9F,SAAUA,EACVhpB,KAAK,SACL8tB,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAOkqK,OACrB/qJ,WACEvB,EAAK5d,OAAOkqK,OAAStsJ,EAAK5d,OAAOkqK,OAAO33K,QAAU,SAK1DQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC1BioB,EACCpnB,cAACmnB,GAAS,CAAC5qB,MAAOse,EAAgBu8J,SAAUhwJ,UAAQ,IAEpDpnB,cAAC8+E,GAAM,CACL1rE,OAAO,OACPhV,KAAK,WACL8oB,aAAcrM,EAAgBu8J,SAC9BrvJ,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO,OACvB,CAAEiqB,MAAO,MAAOjqB,MAAO,QAEzB0rB,SAAUb,EACVN,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAOmqK,SACrBlvJ,aACE2C,EAAK5d,OAAOmqK,SAAWvsJ,EAAK5d,OAAOmqK,SAAS53K,QAAU,SAMhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,GAAGptB,SAChBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CACRD,aAAcrM,EAAgBI,SAC9BmM,SAAUA,EACVhpB,KAAK,WACLiuB,WAAW,EACXhF,MAAI,EACJiF,KAAM,EACNJ,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAOgO,SACrBmR,WACEvB,EAAK5d,OAAOgO,SAAW4P,EAAK5d,OAAOgO,SAASzb,QAAU,cAQlEQ,cAAC8Y,KAAG,CAAA3Z,SACFa,cAACgR,KAAU,CAAA7R,SACTa,cAAA,UAAAb,SAAQ,6BAIZa,cAAC8Y,KAAG,CAACud,EAAG,EAAEl3B,SACRa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,GAAGptB,SAChBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CACRD,aAAcrM,EAAgBy8J,oBAC9BlwJ,SAAUA,EACVhpB,KAAK,sBACLiuB,WAAW,EACXhF,MAAI,EACJiF,KAAM,EACNJ,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAOqqK,oBACrBlrJ,WACEvB,EAAK5d,OAAOqqK,oBACRzsJ,EAAK5d,OAAOqqK,oBAAoB93K,QAChC,cAQd4nB,GACA3W,eAACqI,KAAG,CAAC4S,GAAI,EAAGxY,QAAQ,OAAOg0B,eAAe,SAAQ/nC,SAAA,CAChDa,cAAC2lB,KAAM,CAAC1U,QAAQ,WAAWmD,MAAM,UAAUsR,QApkBlC8wJ,KACjB/8E,GAAY,GACZ5uE,EAAKu6B,MAAMvqC,EAAgB,EAkkB4C1b,SAC5D+D,EAAUC,QAAQE,SAErBrD,cAAC8Y,KAAG,CAACG,GAAI,EAAE9Z,SACTa,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoU,QAAQ,YACRmD,MAAM,UACN6T,UAAW4C,EAAK2B,UAAUC,UAAY5B,EAAK2B,UAAUE,QAAQvtB,SAE5D+D,EAAUC,QAAQK,wBAM5B,ECntBA,MAAMk0K,GAAmCttJ,OAAaC,MAAM,CACjEpP,SAAUmP,OAAazkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QAwG1DgyK,OArGwDz4K,IAIhE,IAJiE,gBACtE6b,EAAe,KACfV,EAAI,YACJ+2B,GACDlyC,EACC,MAAOkoB,EAAUqyE,GAAehoF,oBAAS,GACnCoZ,EAAOC,aAAiC,CAC5CG,KAAM,WACNF,SAAUC,aAAY0sJ,OAGlB,WAAEv+J,GAAeQ,KAEvB7G,qBAAU,KACR2mF,GAAY,GACZ5uE,EAAKu6B,MAAMrqC,EAAgB,GAC1B,CAACA,EAAiBV,IAoBrB,OACE5J,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAe/nC,SAAA,CAC5Ca,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,qBAG1CioB,GACCpnB,cAAC0hC,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACL6oB,QAASA,IAAM+zE,GAAY,GAC3BxoF,QAAQ,QACR6E,UAAU,SAAQ3W,SACnB,6BAKLsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAjCCR,IACpBjR,GAAekB,sBAAsBT,EAAM,IAAKU,KAAoB8P,IACjElgB,MAAM4gB,IACDA,GACFpS,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7Di5B,KAEAj4B,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WACtC,IAEDpC,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,IAwB1CgsB,YAAU,EAAArsB,SAAA,CAEVa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,GAAGptB,SAChBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CACRD,aAAcnM,EAAgBE,SAC9BmM,SAAUA,EACVC,MAAI,EACJjpB,KAAK,WACLiuB,WAAW,EACXC,KAAM,EACNJ,SAAUrB,EAAKsB,SACfvqB,QAASipB,EAAK5d,OAAOgO,SACrBmR,WACEvB,EAAK5d,OAAOgO,SAAW4P,EAAK5d,OAAOgO,SAASzb,QAAU,YAO9D4nB,GACA3W,eAACqI,KAAG,CAAC4S,GAAI,EAAGxY,QAAQ,OAAOg0B,eAAe,SAAQ/nC,SAAA,CAChDa,cAAC2lB,KAAM,CAAC1U,QAAQ,WAAWmD,MAAM,UAAUsR,QA/DlC8wJ,KACjB/8E,GAAY,GACZ5uE,EAAKu6B,MAAMrqC,EAAgB,EA6D4C5b,SAC5D+D,EAAUC,QAAQE,SAErBrD,cAAC8Y,KAAG,CAACG,GAAI,EAAE9Z,SACTa,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoU,QAAQ,YACRmD,MAAM,UACN6T,UAAW4C,EAAK2B,UAAUC,UAAY5B,EAAK2B,UAAUE,QAAQvtB,SAE5D+D,EAAUC,QAAQK,wBAM5B,EC2BQo0K,OApIuC14K,IAAe,IAADg3K,EAAAC,EAAA,IAAb,KAAEtrJ,GAAM3rB,EAC7D,MAAMsc,EAAY0gF,KAElB,OACEl8F,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,eAAcrnB,SAC/Ba,cAACmnB,GAAS,CACR/oB,KAAK,OACL6Y,GAAG,kBACH+U,WAAY,CACV/Y,MAAO,CAAEo2B,cAAe,aACxBpd,UAAW,GAEbtkB,YAAY,MACZukB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACN8S,kBAAc1qB,EACdmqB,WAAS,EACT/kB,QAASipB,EAAK5d,OAAOoN,KACrB+R,WAAYvB,EAAK5d,OAAOoN,KAAOwQ,EAAK5d,OAAOoN,KAAK7a,QAAU,SAKhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,eAAcrnB,SAC/Ba,cAACmnB,GAAS,CACR/oB,KAAK,OACL6Y,GAAG,kBACHtP,YAAY,uBACZukB,SAAUrB,EAAKsB,SACfH,WAAY,CAAEC,UAAW,KACzBpvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACN8S,kBAAc1qB,EACdmqB,WAAS,EACT/kB,QAASipB,EAAK5d,OAAO7O,KACrBguB,WAAYvB,EAAK5d,OAAO7O,KAAOysB,EAAK5d,OAAO7O,KAAKoB,QAAU,SAKhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAACmnB,GAAS,CACR/oB,KAAK,MACL6Y,GAAG,kBACHtP,YAAY,eACZukB,SAAUrB,EAAKsB,SACfH,WAAY,CAAEC,UAAW,KACzBpvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASipB,EAAK5d,OAAO6oK,IACrB1pJ,WAAYvB,EAAK5d,OAAO6oK,IAAMjrJ,EAAK5d,OAAO6oK,IAAIt2K,QAAU,SAK9DQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAACk/E,GAAc,CACb9gF,KAAK,OACL2pB,QAASvM,EAAU9F,KAAK3N,IAAO,CAC7BxL,MAAOwL,EAAQ43F,YACfn5E,MAAOze,EAAQ23F,gBAEjB54E,QAAS+D,EAAK/D,QACda,cAAc,EACdT,aAAc,KACd9T,OAAO,SACPzL,YAAY,SACZ/F,QAASipB,EAAK5d,OAAO8oK,KACrB7tJ,aACE2C,EAAK5d,OAAO8oK,KAAwB,QAApBG,EAAIrrJ,EAAK5d,OAAO8oK,YAAI,IAAAG,OAAA,EAAjBA,EAA2B12K,QAAU,SAMhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAAC8+E,GAAM,CACL53D,aAAc,GACd9oB,KAAK,OACL0oB,QAAS+D,EAAK/D,QACdiB,QAAS7kB,EAAU4F,SAASC,MAAM2M,KAAKsgK,IAAI,CACzCz5K,MAAOy5K,EACPxvJ,MAAOwvJ,MAETp0K,QAASipB,EAAK5d,OAAO+oK,KACrB9tJ,aAAc2C,EAAK5d,OAAO+oK,KAAOnrJ,EAAK5d,OAAO+oK,KAAKx2K,QAAU,SAKlEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACk/E,GAAc,CACb9gF,KAAK,WACL6Y,GAAG,gBACH8Q,QAASk9B,MACNsxH,QACA7gK,KAAKovC,IAAQ,CAAQvoD,MAAOuoD,EAAUt+B,MAAOs+B,MAChDh+B,QAAS+D,EAAK/D,QACda,cAAc,EACdT,aAAc,KACd9T,OAAO,SACPzL,YAAY,MACZ/F,QAASipB,EAAK5d,OAAO63C,SACrB58B,aACE2C,EAAK5d,OAAO63C,SACa,QADLqxH,EACftrJ,EAAK5d,OAAO63C,gBAAQ,IAAAqxH,OAAA,EAArBA,EAA+B32K,QAC/B,aAMb,ECrHP,MAAM+tG,GAAenjF,OAAaC,MAAM,CACtC9tB,MAAO6tB,OAEJ5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,YA4GrBqyK,OApGsC34K,IAG9C,IAH+C,UACpDwrB,EAAS,QACTC,GACDzrB,EACC,MAAM,WAAE8a,GAAeq3D,MACjB,SAAEnmD,EAAQ,SAAEpiB,GAAasoE,MACzB,WAAEj4D,GAAeQ,KAEjBm+J,EAAoB1tJ,OAAaC,MAAM,CAC3ChQ,KAAM+P,OAEH1kB,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWG,IAAK,IAC9CC,IAAI,EAAG4gG,GAAarjG,EAAUqC,WAAWI,IAAK,IAC9CH,SAAStC,EAAUqC,WAAWC,UAC9BuzG,KAAK,iBAAiB,mCAAqCwJ,IAC1Dz5G,EAAS4T,MAAM+tD,GAAMA,EAAEpwD,OAASkoG,MAEpCnkH,KAAMgsB,OAEHzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDH,SAAStC,EAAUqC,WAAWC,UACjCswK,IAAK1rJ,OAEFzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDH,SAAStC,EAAUqC,WAAWC,UACjCuwK,KAAMxoE,GAAahjF,UAAUrnB,EAAUqC,WAAWC,UAClDwwK,KAAM5rJ,OAEHzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDH,SAAStC,EAAUqC,WAAWC,UACjCs/C,SAAUyoD,GAAahjF,UAAUrnB,EAAUqC,WAAWC,YAiBlDqlB,EAAOC,aAAsB,CACjCC,SAAUC,aAAY8sJ,GACtB7sJ,KAAM,aAGR,OACEjrB,cAAAyV,WAAA,CAAAtW,SACEsR,eAAC4U,GAAM,CAACzM,KAAM8R,EAAWC,QAASA,IAAMA,IAAUxrB,SAAA,CAChDa,cAACkmB,GAAW,CAAA/mB,SAAC,mBACbsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAzBDxf,IAC0B,IAADksK,EAAzClsK,EAAKkqK,MAAQlqK,EAAKmqK,MAAQnqK,EAAKi5C,SACjC9qC,EAAW,CACT5b,KAAMyN,EAAKzN,KACX29F,KAAMlwF,EAAKiqK,IACXn2E,YAAa9zF,EAAKkqK,KAAKx5K,MACvBwL,QAAS8D,EAAKkqK,KAAKvvJ,MACnBwvJ,KAAMnqK,EAAKmqK,KACXrwH,SAAuB,QAAfoyH,EAAElsK,EAAKi5C,gBAAQ,IAAAizH,OAAA,EAAbA,EAAex7K,MACzB8d,KAAMxO,EAAKwO,KAAKogC,gBAEbthC,EAAW,yDAAyD,IAerEqS,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAAC43K,GAAc,CAAC/sJ,KAAMA,MAExB7qB,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CACjBkB,WAAS,EACTjB,QAASA,KACPiF,GAAS,MAIf3qB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC8vF,GAAY,CACXnpE,WAAS,EACT1P,GAAG,wBACHgR,UACG4C,EAAK2B,UAAUC,UACf5B,EAAK2B,UAAUE,SAChBxB,EAEFruB,KAAK,SACL6oB,QAASA,KACPiF,GAAS,EAEXlhB,KAAK,WACLuc,QAASkF,kBAOpB,ECoKQ8sJ,OArRgBA,KAC7B,MAAM,SAAElvK,EAAQ,QAAEkd,EAAO,OAAEsoB,EAAM,kCAAEqiC,GACjCS,MACI,eACJp2D,EAAc,gCACdm2D,EAA+B,iBAC/BD,EAAgB,cAChBh3D,GACEm3D,MACGxkD,EAAeC,GAAoBrb,oBAAS,IAE7C,YAAEJ,GAAgBmD,KAGtBm4B,UAAW49G,EACX39G,UAAWoxG,EACXtzH,UAAWuzH,GACTxxG,MAEGwrI,EAAiBC,GAAsBzmK,qBAcxCkpE,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CAAE4d,OAAQ,OAAQytD,SAAU,QAC5B,CACEztD,OAAQ,OACRytD,SAAU,QAEZ,CACEztD,OAAQ,eACRytD,SAAU,gBACVC,eAAe,EACfC,KAAM/lF,IAAmB,IAAlB,IAAE89E,GAAU99E,EACjB,OACEc,cAAC8Y,KAAG,CAAA3Z,SACD69E,EAAImI,SAASmxF,cACZt2K,cAACuvK,GAAM,CAACl8J,MAAO,GAAIC,OAAQ,KAE3BtT,cAACwvK,GAAY,CAACn8J,MAAO,GAAIC,OAAQ,MAE/B,GAIZ,CACEgkB,OAAQ,mBACRytD,SAAU,kBACVC,eAAe,EACfC,KAAMtvE,IAAmB,IAAlB,IAAEqnE,GAAUrnE,EACjB,OACE3V,cAAC8Y,KAAG,CAAA3Z,SACD69E,EAAImI,SAASlV,uBACZjwE,cAACuvK,GAAM,CAACl8J,MAAO,GAAIC,OAAQ,KAE3BtT,cAACwvK,GAAY,CAACn8J,MAAO,GAAIC,OAAQ,MAE/B,GAIZ,CACEgkB,OAAQ,eACRytD,SAAU,cACVC,eAAe,EACfC,KAAMvF,IAAmB,IAAlB,IAAE1C,GAAU0C,EACjB,OACE1/E,cAAC8Y,KAAG,CAAA3Z,SACD69E,EAAImI,SAASjV,mBACZlwE,cAACuvK,GAAM,CAACl8J,MAAO,GAAIC,OAAQ,KAE3BtT,cAACwvK,GAAY,CAACn8J,MAAO,GAAIC,OAAQ,MAE/B,GAIZ,CACEgkB,OAAQ,iBACRytD,SAAU,gBACVC,eAAe,EACfC,KAAMyQ,IAAmB,IAAlB,IAAE1Y,GAAU0Y,EACjB,OACE11F,cAAC8Y,KAAG,CAAA3Z,SACD69E,EAAImI,SAAShV,cACZnwE,cAACuvK,GAAM,CAACl8J,MAAO,GAAIC,OAAQ,KAE3BtT,cAACwvK,GAAY,CAACn8J,MAAO,GAAIC,OAAQ,MAE/B,GAIZ,CACEgkB,OAAQ,WACRytD,SAAU,WACVC,eAAe,EACfC,KAAM4Q,IAAmB,IAAlB,IAAE7Y,GAAU6Y,EACjB,MAAM,sBAAE9L,GAA0BJ,GAAW,CAC3C7pF,MAAO,kBACPvD,MAAOygF,EAAImI,SAASlqE,SACpB4uE,gBAAgB,EAChBJ,OAAQ33E,gBACAkJ,EAAegiE,EAAImI,SAAS9qE,KAAMwlC,EAAQ,IAGpD,OAAO7/C,cAAC+pF,EAAqB,GAAG,GAGpC,CACEzyD,OAAQ,GACRytD,SAAU,WACVC,eAAe,EACfC,KAAM6Q,IAAA,IAAC,IAAE9Y,GAAU8Y,EAAA,OACjB91F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACq6F,KAAO,CACNjmF,MAAM,UACNvX,KAAK,SACLoU,QAAQ,QACR6E,UAAU,SACV4P,QAASA,KACPyrD,EAAgC6L,EAAImI,SAAS,EAC7ChmF,SAED69E,EAAImI,SAAS9U,WAAa,WAAa,gBAEtC,EAERh9D,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMiR,IAAA,IAAC,IAAElZ,GAAUkZ,EAAA,OACjBl2F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACq6F,KAAO,CACNjmF,MAAM,UACNvX,KAAK,SACLiZ,UAAU,SACV4P,QAASA,KAlICrL,QAmIK2iE,EAAImI,SAAS9qE,KAlItC69J,EAAmB79J,GACnBkwI,GAiI2C,EAC/BprJ,SACH,YAGG,EAERkU,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMkR,IAAA,IAAC,IAAEnZ,GAAUmZ,EAAA,OACjBn2F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACq6F,KAAO,CACNjmF,MAAM,UACN0B,UAAW4rB,IACXxsB,GAAE,qBAAA7U,OAAuB28E,EAAImI,SAAS9qE,MAAOlb,SAC9C,cAGG,EAERkU,MAAO,SAGX,IAGF,OACE5C,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACu7B,GAAM,CACLpzB,KAAMqlI,EACNtzH,QAASqzH,EACTxtI,SAAS,KAAIrR,SAAA,CAEba,cAACusC,GAAa,CAAAptC,SACZsR,eAACO,IAAU,CAACC,QAAQ,KAAI9R,SAAA,CAAC,4CACmB84K,EAAgB,SAG9DxnK,eAAC07B,GAAa,CAAAhtC,SAAA,CACZa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQE,OACxBqiB,QAASs4H,IAEXh+I,cAACssC,GAAY,CACX5mB,QA9KcyyJ,KACjBF,IACL/9J,EAAc+9J,GACdC,OAAmB17K,GACnBwhJ,IAAkB,EA2KVv0I,KAAMvG,EAAUC,QAAQQ,YAI9B3D,cAACi5E,GAAW,CAACn5E,MAAM,mBAAkBX,UACjC6mB,GAAasoB,EACb79B,eAAAgF,WAAA,CAAAtW,SAAA,CACGkS,EAAY2D,SACX+Y,GAAgBM,4BAEhBruB,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CACR1iE,GAAG,cACHyO,QAASA,IAAMoH,GAAiB,GAAM3tB,SACvC,qBAKLa,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAM/C,EACNiyE,cAAe,CAAC,QAChBzK,MAAI,EACJzsE,QAAM,EACN+2E,YAAU,EACVC,aAAc,KAEhB76E,cAAC63K,GAAa,CACZntJ,UAAWmC,EACXlC,QAASA,IAAMmC,GAAiB,KAElCrc,eAACu7B,GAAM,CACLpzB,OAAQ+3D,EACRhmD,QAASA,IAAMwmD,OAAgC30E,GAC/CgU,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SACVsR,eAACO,IAAU,CAACC,QAAQ,KAAI9R,SAAA,CAAC,mBACN,IACiB,OAAjCwxE,QAAiC,IAAjCA,KAAmCN,WAChC,WACA,aAAc,IAAI,qBAI1BrwE,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMyrD,OAAgC30E,KAEhDm0E,GACC3wE,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IACPwrD,EACEP,EAAkCt2D,MACjCs2D,EAAkCN,uBASjDrwE,cAAC02E,KAAc,CAACtiE,MAAM,kBAGzB,ECrOQgkK,OAtDgDA,KAC7D,MAAM,KAAE/9J,GAASqqF,eACX,WAAEvrF,GAAeQ,MAChB0+J,EAAgBC,GAAqB7mK,qBACtC8lB,EAAUC,cAChB1kB,qBAAU,KACRylK,GAAqB,GACpB,IAEH,MAAMA,EAAsBA,KAC1B3+J,GAAea,kBAAkBJ,GAC9B1P,MAAM4gB,GAAW+sJ,EAAkB/sJ,KACnCzoB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAGhD,OACEQ,cAAAyV,WAAA,CAAAtW,SACEa,cAACi5E,GAAW,CACV39C,OACEt7B,cAAC0hC,KAAI,CACHhc,QAASA,IAAM6R,EAAQihJ,SACvB37K,KAAK,SACLoU,QAAQ,QACR6E,UAAU,SAAQ3W,SAElBa,cAAC+0G,GAAQ,MAGbj1G,MAAK,qBAAAO,OAAuBga,GAAOlb,SAElCk5K,GACC5nK,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACi2K,GAAkB,CACjB57J,KAAMA,EACN+2B,YAAamnI,EACb/9J,YAAa69J,EAAe79J,cAE9Bxa,cAACu3K,GAAsB,CACrBl9J,KAAMA,EACN+2B,YAAamnI,EACb19J,gBAAiBw9J,EAAex9J,kBAElC7a,cAAC23K,GAAsB,CACrBt9J,KAAMA,EACN+2B,YAAamnI,EACbx9J,gBAAiBs9J,EAAet9J,wBAKvC,E,qBC7CP,MAAM,uBAAC09J,IAA0Bn4K,6cAiFlBo4K,OA/EoCx5K,IAA6B,IAA5B,KAAE2rB,EAAI,aAAE3D,GAAchoB,EACxE,MACEwe,OAAO,MAAEhc,IACPimD,MACE,WAAExuC,GAAeQ,KAEjByhJ,EAA2Bl+I,mBAajC,OACEld,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgBC,QAAS,EAAEhoC,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAACmnB,GAAS,CACR/oB,KAAK,OACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,aAAcA,EAAa9oB,KAC3BwD,QAASipB,EAAK5d,OAAO7O,KACrBguB,WAAYvB,EAAK5d,OAAO7O,KAAOysB,EAAK5d,OAAO7O,KAAKoB,QAAU,SAIhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAAA,OAAK0Q,UAAWC,KAAO0rJ,WAAWl9J,SAChCa,cAACm7J,GAAU,CACTC,SAAUA,EACVC,iBAnCOvpJ,SACZy0C,GAAgBG,aAAa16C,GACjCrB,MAAM4gB,GACC,GAANlrB,OAAUo4K,IAAsBp4K,OAAGkrB,KAEpCzoB,OAAM,KACLqW,EAAW,+CACJ,MA6BC/a,KAAK,UACL0oB,QAAS+D,EAAK/D,QACdI,aAAcA,EAAa7iB,QAC3BzC,QAASipB,EAAK5d,OAAO5I,QACrB6jB,aACE2C,EAAK5d,OAAO5I,QAAUwmB,EAAK5d,OAAO5I,QAAQ7E,QAAU,WAM9DQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,QAAQE,YAAU,EAAAvnB,SACnCa,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACP,OAALuC,QAAK,IAALA,OAAK,EAALA,EAAOgU,KAAKikB,GACX35B,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC2hF,GAAQ,CACP1qE,GAAI0iB,EACJnT,MAAOmT,EACPzN,SAAUrB,EAAKsB,SACf/tB,KAAI,QACJ7B,MAAOo9B,EACPupD,eAAgBh8D,EAAaxlB,MAAMsT,SAAS2kB,GAC5CvlB,MAAM,aACN,GAAA/T,OATsBs5B,gBAgBnC,EC5DA,MAAMg/I,GAAqBvuJ,OAAaC,MAAM,CACnDjsB,KAAMgsB,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDtB,QAAS+lB,OAAa5kB,SAAStC,EAAUqC,WAAWC,YAGzCozK,GAA6B,CACxCnyH,WAAY,EACZroD,KAAM,GACNiG,QAAS,GACT3C,MAAO,IA4LMm3K,OAzLgBA,KAAO,IAADC,EAAAC,EAAAC,EACnC,MAAM,MAAEt7J,EAAK,SAAEwB,EAAQ,eAAEooC,EAAc,uBAAEG,GACvCE,MAEAhb,UAAW2sD,EACX1sD,UAAW+rD,EACXjuE,UAAWguE,GACTjsD,MAEFE,UAAW8nE,EACX7nE,UAAW8nE,EACXhqF,UAAWiqF,GACTloE,KACE5hB,EAAOC,aAAmB,CAC9BC,SAAUC,aAAY2tJ,IACtB1tJ,KAAM,cAEDu4D,EAAkBC,GAAuBhyE,oBAAkB,GAElEqB,qBAAU,KACR,IAAImV,EACFzD,GAAuBm0J,GAAoB9tJ,EAAKnG,aAC/CmG,EAAK2B,UAAUC,QAClBg3D,EAAoBx7D,EAAS,GAC5B,CAAC4C,EAAK2B,UAAUE,QAAS7B,EAAK/D,QAAS+D,EAAK2B,UAAUC,UAEzD,MAAMkuD,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,eACRytD,SAAU,aACV1xE,MAAO,OAET,CACEikB,OAAQ,OACRytD,SAAU,OACV1xE,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,UACVE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBuR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAAA,CAC/Da,cAACg/E,GAAe,CAACt5D,QAASA,IAAMw/D,EAAWlI,EAAImI,UAAUhmF,SACvDa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,OAE/BtT,cAAC8Y,KAAG,CAACG,GAAI,EAAE9Z,SACTa,cAACg/E,GAAe,CAACt5D,QAASA,IAAM86D,EAAaxD,EAAImI,UAAUhmF,SACzDa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,WAG/B,EAERD,MAAO,MACP2xE,eAAe,KAGnB,IAoBIE,EAAapzE,UACjBoN,EAAS,CAAEriB,KAAM8pD,GAAmBK,iBAAkB9oC,QAASsoC,IAC/D8yC,GAAY,EAGR9Y,EAAe1uE,UACnBoN,EAAS,CAAEriB,KAAM8pD,GAAmBK,iBAAkB9oC,QAASsoC,IAC/DiuD,GAAwB,EAG1B,OACEz0G,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,aAAYX,SAAA,CAC7Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CAAC1iE,GAAG,WAAWyO,QAnBf5T,UAChBoN,EAAS,CAAEriB,KAAM8pD,GAAmBK,iBAAkB9oC,QAAS,OAC/Do7E,GAAY,EAiBsCn6F,SAAC,sBAI9Cue,EAAMopC,WAAappC,EAAMopC,UAAUnpD,OAAS,GAC3CqC,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAM6R,EAAMopC,UACZwpB,MAAI,EACJwK,OAAK,QAKbrqE,eAAC4U,GAAM,CACLzM,KAAM8/E,EACN/tE,QAASguE,EACTqlB,WAAY,CAAE/qG,MAAO,CAAEI,MAAO,QAAUlU,SAAA,CAExCa,cAACkmB,GAAW,CAAA/mB,SACTue,EAAMupC,iBAAmB,mBAAqB,oBAEjDx2C,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAzDHm7B,IACpBc,EACE5pC,EAAMupC,iBAAmBT,EAAW,IAAKoyH,MAAoBpyH,IAE/DmyC,GAAY,IAsDJntE,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAAC04K,GAAY,CACX7tJ,KAAMA,EACN3D,aAAoC,QAAxB4xJ,EAAEp7J,EAAMupC,wBAAgB,IAAA6xH,IAAIF,OAG5C54K,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACylB,GAAkB,CACjBxO,GAAG,cACHyO,QAASA,IAAMizE,IACfhyE,WAAS,MAGb3mB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC+lB,GAAgB,CACf9O,GAAG,YACH0P,WAAS,EACTsB,SAAUu7D,iBAOtB/yE,eAACu7B,GAAM,CACLpzB,KAAM+7F,EACNhqF,QAAS+pF,EACTlkG,SAAS,KAAIrR,SAAA,CAEbsR,eAAC+7B,GAAW,CAAArtC,SAAA,CACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,sCAGzBa,cAACgR,IAAU,CAACN,UAAU,WAAUvR,SAAA,GAAAkB,OAA2B,QAA3B04K,EAAKr7J,EAAMupC,wBAAgB,IAAA8xH,OAAA,EAAtBA,EAAwBtyH,WAAU,OAAApmD,OAA4B,QAA5B24K,EAAMt7J,EAAMupC,wBAAgB,IAAA+xH,OAAA,EAAtBA,EAAwB56K,WAEvG4B,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjB9oE,GAAG,iBACHxN,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPxG,EAAS,CACPriB,KAAM8pD,GAAmBK,iBACzB9oC,QAAS,OAEXw2F,GAAwB,IAG5B10G,cAACssC,GAAY,CACXr1B,GAAG,kBACHxN,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KA5GnB+hC,SACAitD,iBAgHG,EC7KQukE,OA1CX/5K,IAA4E,IAA3E,gBAAEkmH,EAAe,oBAAEC,EAAmB,QAAEv+F,EAAO,SAAEq4D,KAAapqE,GAAO7V,EACxE,MAAM,WAAEia,GAAeQ,MAChBoO,EAASw9F,GAAc9zG,mBAAgB,KACvC2J,EAAYoqG,GAAiB/zG,mBAAiB,IAC/Cg0G,EAAsBX,GAAY1pG,EAAY,KACpDtI,qBACE,KACM2yG,GAAuBA,EAAoB9nH,QAAU,EACvD+nH,EAAgBD,GACP19F,EAAQpqB,OAAS,GAC1B4nH,EAAW,GACb,GAEF,CAACE,IAGH,MAIMC,EAAmBC,IACvBP,EAAgBO,GACbh7G,MAAMi7G,IACL,IAAIC,EAAaR,EAAsBA,EAAoBO,GAAQA,EACnEL,EAAWM,EAAW,IAEvB/iH,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAGhD,OACEQ,cAACk/E,GAAc,CACbn3D,QAASA,EACTjB,QAASA,EACT24D,cAAeA,CAAC30E,EAAGs5F,KAhBrBohB,EAgB6CphB,EAAG,KAC1CrvF,EACJoqE,SAAUA,EACVv9E,MAAOmT,EAAM9H,OACbib,aAAcnT,EAAMqX,YACpB,EC8GS8sJ,OAlJsDh6K,IAG9D,IAH+D,KACpE2rB,EAAI,aACJ3D,GACDhoB,EACC,MAAMyxK,EAAiB9lJ,EAAK05F,MAAM,YAMlC,OAJAzxG,qBAAU,KACR+X,EAAKy9D,SAAS,WAAYphE,EAAayoB,SAAS,GAC/C,CAACzoB,IAGFzW,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,gBAAernB,SAChCa,cAACi5K,GAA6B,CAC5B7zD,gBACEjvD,GAAyBG,6BAE3B+uD,oBAAsBpoD,GAA2BA,EACjD7+D,KAAK,eACL6Y,GAAG,gBACHtP,YAAY,uCACZ23E,eAAiBh2D,IAAY,IAAD6vJ,EAC1B,OAA2B,QAA3BA,EAAa,OAAN7vJ,QAAM,IAANA,OAAM,EAANA,EAAQ+8C,oBAAY,IAAA8yG,IAAI7vJ,CAAM,EAEvC+1D,aAAe/1D,IAAM,IAAA8vJ,EAAA,OAAyB,QAAzBA,EAAW,OAAN9vJ,QAAM,IAANA,OAAM,EAANA,EAAQ+8C,oBAAY,IAAA+yG,IAAI9vJ,CAAM,EACxD0kE,UAAU,eACVrnE,WAAS,EACTvT,OAAO,SACPuU,cAAc,EACdb,QAAS+D,EAAK/D,QACdI,aAAcA,EAAam/C,aAC3Bp5D,SACI4d,EAAK2B,UAAU+yI,YAAYl5F,gBAC3Bx7C,EAAK5d,OAAOo5D,aAEhBj6C,WACEvB,EAAK5d,OAAOo5D,aAAex7C,EAAK5d,OAAOo5D,aAAa7mE,QAAU,GAEhE+sJ,YAAU,EACVptE,UAAU,QAIhBn/E,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACumB,GAAW,CAACC,MAAM,aAAYrnB,SAC7Ba,cAAC4lF,GAAU,CACT5/E,QACE8mC,KAAO5lB,EAAayoB,UAAU5C,eAAe,IAAIhvC,KAAQ,OACrDmpB,EAAayoB,SACb,IAAI5xC,KAEVgpF,gBAAc,EACdC,QAAM,EACNr/E,YAAY,sBACZvJ,KAAK,WACL6Y,GAAG,oBACH24B,OAAO,aACP9oB,QAAS+D,EAAK/D,QACdI,aAAcA,EAAayoB,SAC3B/tC,QAASipB,EAAK5d,OAAO0iC,SACrBvjB,WACEvB,EAAK5d,OAAO0iC,SAAW9kB,EAAK5d,OAAO0iC,SAASnwC,QAAU,SAK9DQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAAC4lF,GAAU,CACT5/E,QAAS2qK,EACT5pF,gBAAc,EACdC,QAAM,EACNr/E,YAAY,oBACZvJ,KAAK,SACL6Y,GAAG,kBACH24B,OAAO,aACP9oB,QAAS+D,EAAK/D,QACdI,aAAcA,EAAa2oB,OAC3BjuC,QAASipB,EAAK5d,OAAO4iC,OACrBzjB,WAAYvB,EAAK5d,OAAO4iC,OAAShlB,EAAK5d,OAAO4iC,OAAOrwC,QAAU,SAIpEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CACR/oB,KAAK,gBACL6Y,GAAG,yBACHtP,YAAY,0BACZukB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACN8S,aAAcA,EAAamjG,cAC3B1jG,WAAS,EACT/kB,QAASipB,EAAK5d,OAAOo9G,cACrBj+F,WACEvB,EAAK5d,OAAOo9G,cAAgBx/F,EAAK5d,OAAOo9G,cAAc7qH,QAAU,SAKxEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,aAAaE,YAAU,EAAAvnB,SACxCa,cAACmnB,GAAS,CACR/oB,KAAK,YACL6Y,GAAG,qBACHtP,YAAY,sBACZukB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACN8S,aAAcA,EAAamyJ,UAC3B1yJ,WAAS,EACT/kB,QAASipB,EAAK5d,OAAOosK,UACrBjtJ,WACEvB,EAAK5d,OAAOosK,UAAYxuJ,EAAK5d,OAAOosK,UAAU75K,QAAU,SAKhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,QAAQE,YAAU,EAAAvnB,SACnCa,cAACmnB,GAAS,CACR/oB,KAAK,QACL6Y,GAAG,iBACHtP,YAAY,sBACZukB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACN8S,aAAcA,EAAamwC,MAC3B1wC,WAAS,EACT/kB,QAASipB,EAAK5d,OAAOoqD,MACrBjrC,WAAYvB,EAAK5d,OAAOoqD,MAAQxsC,EAAK5d,OAAOoqD,MAAM73D,QAAU,WAI7D,ECxHJ,MAAM85K,GAA8BlvJ,OAAaC,MAAM,CAC5Dg8C,aAAcj8C,OAEX5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAC/C4kB,UAAUrnB,EAAUqC,WAAWC,UAClCmqC,SAAUvlB,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACbslB,OAAQzlB,OAEL5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,WACAjlE,UAAU,IACb8/F,cAAejgG,OAEZ5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD0zK,UAAWjvJ,OAAazkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACxE0xD,MAAOjtC,OAAazkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QAGzD4zK,GAAyC,CACpD5iH,SAAU,EACV0P,aAAc,GACd12B,SAAU7C,KAAOsS,MAAM9L,QAAQ,OAAOzD,SACtCA,OAAQ/C,KAAOsS,MAAM9L,QAAQ,OAAOzD,SACpCw6E,cAAe,GACfgvD,UAAW,GACXhiH,MAAO,GACPluC,UAAU,GAgPGqwJ,OA7OoDt6K,IAE5D,IAADu6K,EAAAC,EAAAC,EAAA,IAF8D,YAClEhpI,GACDzxC,EACC,MAAM,MACJwe,EAAK,SACLwB,EAAQ,qBACRitD,EAAoB,iCACpBE,G9Y+CFrtE,qBAAW6sE,K8Y7CJhgE,EAAMg9F,GAAWp3F,sBAEtBk7B,UAAW2sD,EACX1sD,UAAW+rD,EACXjuE,UAAWguE,GACTjsD,MAEFE,UAAW8nE,EACX7nE,UAAW8nE,EACXhqF,UAAWiqF,GACTloE,KACE5hB,EAAOC,aAAyB,CACpCG,KAAM,WACNF,SAAUC,aAAYsuJ,MAGxBxmK,qBAAU,KACRoM,EAAS,CACPriB,KAAMquE,GAA4BQ,sBAClCxtD,QAASyyB,GACT,GACD,CAACA,IAEJ79B,qBAAU,KAEN69B,IACCg7B,GAAyBC,kBAE1Bi9B,EAAQnrF,EAAM2tD,wBAEdw9B,EAAQnrF,EAAM6tD,uBAChB,GACC,CAAC56B,EAAajzB,EAAM2tD,uBAAwB3tD,EAAM6tD,yBAErD,MAsCMoP,EAAUvpE,IAAMsI,SAAQ,KAC5B,IAAIkgK,EAAuB,CACzB,CACEtiJ,OAAQ,KACRytD,SAAU,WACV1xE,MAAO,MAET,CACEikB,OAAQ,OACRytD,SAAU,gBAEZ,CACEztD,OAAQ,OACRytD,SAAU,WACVE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjBlF,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,QACKa,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASx1C,SAAUC,OAAO,cAAe,IAClE5vC,cAAA,SAAM,MACHA,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASt1C,OAAQD,OAAO,gBAC9C,EAELv8B,MAAO,OAET,CACEikB,OAAQ,QACRytD,SAAU,SAEZ,CACEztD,OAAQ,WACRytD,SAAU,gBACVE,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAA,OAAK0Q,UAAWkV,KAAWkvI,SAAS31J,SACjC69E,EAAImI,SAASklC,eACV,EAERh3G,MAAO,OAET,CACEikB,OAAQ,aACRytD,SAAU,YACVE,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OACjB11F,cAAA,OAAK0Q,UAAWkV,KAAWkvI,SAAS31J,SAAE69E,EAAImI,SAASk0F,WAAgB,EAErEhmK,MAAO,QA6BX,OAxBEs9B,IACCg7B,GAAyBC,mBAE1BguG,EAAcn6K,KAAK,CACjB63B,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjBplF,eAACqI,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAAA,CAC/Da,cAACg/E,GAAe,CAACt5D,QAASA,IA9ET5T,WACzBoN,EAAS,CACPriB,KAAMquE,GAA4BM,yBAClCttD,QAASs4C,IAEX8iC,GAAY,EAyE4BugF,CAAmB78F,EAAImI,UAAUhmF,SAC/Da,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,OAE/BtT,cAAC8Y,KAAG,CAACG,GAAI,EAAE9Z,SACTa,cAACg/E,GAAe,CACdt5D,QAASA,IA3EU5T,WAC/BoN,EAAS,CACPriB,KAAMquE,GAA4BM,yBAClCttD,QAASs4C,IAEXi+C,GAAwB,EAsEGqlE,CAAyB98F,EAAImI,UAAUhmF,SAEtDa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,WAG/B,EAERD,MAAO,QAGJumK,CAAa,GACnB,CAACjpI,IAEJ,OACElgC,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CAAC1iE,GAAG,eAAeyO,QA3GT5T,UACxBoN,EAAS,CACPriB,KAAMquE,GAA4BM,yBAClCttD,QAAS,OAEXo7E,GAAY,EAsGgDn6F,SAAC,qBAK1D0M,GACC7L,cAAC6zE,GAAK,CAAC8G,QAASA,EAAS9uE,KAAMA,EAAM+uE,YAAU,EAACtK,MAAI,EAACwK,OAAK,IAG5DrqE,eAAC4U,GAAM,CAACzM,KAAM8/E,EAAiB/tE,QAASguE,EAAWx5F,SAAA,CACjDa,cAACkmB,GAAW,CAAA/mB,SACTue,EAAM+tD,uBAAyB,kBAAoB,mBAEtDh7D,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAnIDmrC,IACpB2V,EACEzuD,EAAM+tD,uBACFjV,EACA,IAAK+iH,MAA0B/iH,IAErCmiC,GAAY,IA8HNntE,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAACk5K,GAAqB,CACpBruJ,KAAMA,EACN3D,aAC8B,QADlBuyJ,EACV/7J,EAAM+tD,8BAAsB,IAAAguG,IAAIF,OAItCv5K,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CAACkB,WAAS,EAACjB,QAASizE,MAEzC34F,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC+lB,GAAgB,CACfY,WAAS,EACT1P,GAAG,gBACHgR,UAAW4C,EAAK2B,UAAUC,UAAY5B,EAAK2B,UAAUE,uBAOjEjc,eAACu7B,GAAM,CACLpzB,KAAM+7F,EACNhqF,QAAS+pF,EACTlkG,SAAS,KAAIrR,SAAA,CAEbsR,eAAC+7B,GAAW,CAAArtC,SAAA,CACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,yCAGzBa,cAACgR,IAAU,CAACN,UAAU,WAAUvR,SAAA,GAAAkB,OAAiC,QAAjCq5K,EAAKh8J,EAAM+tD,8BAAsB,IAAAiuG,OAAA,EAA5BA,EAA8B/iH,SAAQ,OAAAt2D,OAAkC,QAAlCs5K,EAAMj8J,EAAM+tD,8BAAsB,IAAAkuG,OAAA,EAA5BA,EAA8BtzG,mBAEjHrmE,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPxG,EAAS,CACPriB,KAAMquE,GAA4BM,yBAClCttD,QAAS,OAEXw2F,GAAwB,IAG5B10G,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KAxJjB2mD,SACAqoC,eA2JG,ECrRQqlE,OAzB2B,CACxC,CACEnkK,KAAM,8BACNxX,KAAM,UACNyX,OAAO,EACPC,UACE9V,cAACw5K,GAAoB,CACnB7oI,YAAag7B,GAAyBC,oBAG1Cl3D,WAAYqZ,GAAgBO,kCAE9B,CACE1Y,KAAM,8BACNxX,KAAM,UACNyX,OAAO,EACPC,UACE9V,cAACw5K,GAAoB,CACnB7oI,YAAag7B,GAAyBK,oBAG1Ct3D,WAAYqZ,GAAgBO,mCCRjB0rJ,OAdyBA,IAEpCh6K,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,qBAAoBX,SAAA,CACrCa,cAAC83F,GAAO,CAACxiF,MAAOykK,KAChB/5K,cAACmV,EAAM,CACLG,MAAOykK,GACPxkK,SAAS,6B,OCMc6U,OAAaC,MAAM,CAGlD,GCkDa4vJ,OA/DsBA,KACnC,MAAM,UAAEvrG,EAAS,eAAEU,GAAmBE,KAEhCqL,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,gBACRjkB,MAAO,MACP0xE,SAAU,eACVE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBc,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAAS+0F,cACT,GAGX,CACE5iJ,OAAQ,UACRjkB,MAAO,MACP0xE,SAAU,UACVE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAE69E,EAAImI,SAAS76D,SAAe,GAGzE,CACEgN,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACy1F,KAAU,CACT/vE,QAASA,KACP0pD,EAAe,IAAK4N,EAAImI,UAAW,EACnChmF,SAEFa,cAAC0hC,KAAI,CAACttB,MAAM,UAASjV,SAAC,wBAEpB,KAIZ,CAACiwE,IAGH,OACEpvE,cAAAyV,WAAA,CAAAtW,SACGuvE,EAAU/wE,OAAS,EAClBqC,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAM6iE,EACN7qE,QAAQ,EACR+2E,YAAY,EACZC,aAAc,GACdO,iBAAiB,EACjB9K,MAAM,EACNwK,OAAK,IAGP96E,cAAC64E,GAAQ,KAEV,ECzDA,MAAMshG,GAA0B/vJ,OAAaC,MAAM,CACxDqlB,KAAMtlB,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,KAAM4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OACjDC,QACC1C,EAAUqC,WAAWc,mBACrBnD,EAAUqC,WAAWW,cAEzBgP,GAAIkV,OAED5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,KAAM4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OACjDC,QACC1C,EAAUqC,WAAWc,mBACrBnD,EAAUqC,WAAWW,cAEzBk0K,GAAIhwJ,OAEDolE,WACA7pF,IAAI,KAAM4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OACjDC,QACC1C,EAAUqC,WAAWc,mBACrBnD,EAAUqC,WAAWW,cAEzBm0K,IAAKjwJ,OAEFolE,WACA7pF,IAAI,KAAM4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OACjDC,QACC1C,EAAUqC,WAAWc,mBACrBnD,EAAUqC,WAAWW,gBCwDZo0K,OAnF8Cp7K,IAGtD,IAADq7K,EAAAC,EAAAC,EAAAC,EAAA,IAHwD,SAC5DtsG,EACAvjD,MAAM,SAAEsB,EAAQ,OAAElf,IACnB/N,EACC,OACEuR,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAACzE,aAAc,EAAElV,SACnBsR,eAACO,IAAU,CAAA7R,SAAA,CAAC,iBACK,IACfa,cAACgR,IAAU,CAAC8E,UAAU,OAAO7E,QAAQ,YAAW9R,SAC7CivE,EAAS8rG,oBAIhBzpK,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CACVC,MAAM,OACNC,YAAY,iCAAgCtnB,SAE5Ca,cAACmnB,GAAS,CACR/oB,KAAK,OACL8tB,SAAUC,EACVjF,aAA2B,QAAfqzJ,EAAEnsG,EAAS1+B,YAAI,IAAA6qI,SAAI/9K,EAC/B4W,OAAO,SACPzL,YAAY,oBACZ/F,QAASqL,EAAOyiC,KAChBtjB,WAAYnf,EAAOyiC,KAAOziC,EAAOyiC,KAAKlwC,QAAU,SAItDQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,KAAKC,YAAY,iCAAgCtnB,SAClEa,cAACmnB,GAAS,CACR/oB,KAAK,KACL8tB,SAAUC,EACVjF,aAAyB,QAAbszJ,EAAEpsG,EAASl5D,UAAE,IAAAslK,SAAIh+K,EAC7B4W,OAAO,SACPzL,YAAY,oBACZ/F,QAASqL,EAAOiI,GAChBkX,WAAYnf,EAAOiI,GAAKjI,EAAOiI,GAAG1V,QAAU,SAIlDQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CACVC,MAAM,KACNC,YAAY,iCACZC,YAAY,EAAKvnB,SAEjBa,cAACmnB,GAAS,CACR/oB,KAAK,KACL8tB,SAAUC,EACVjF,aAAyB,QAAbuzJ,EAAErsG,EAASgsG,UAAE,IAAAK,SAAIj+K,EAC7B4W,OAAO,SACPzL,YAAY,oBACZ/F,QAASqL,EAAOmtK,GAChBhuJ,WAAYnf,EAAOmtK,GAAKntK,EAAOmtK,GAAG56K,QAAU,SAIlDQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CACVC,MAAM,MACNC,YAAY,iCACZC,YAAY,EAAKvnB,SAEjBa,cAACmnB,GAAS,CACR/oB,KAAK,MACL8tB,SAAUC,EACVjF,aAA0B,QAAdwzJ,EAAEtsG,EAASisG,WAAG,IAAAK,SAAIl+K,EAC9B4W,OAAO,SACPzL,YAAY,oBACZ/F,QAASqL,EAAOotK,IAChBjuJ,WAAYnf,EAAOotK,IAAMptK,EAAOotK,IAAI76K,QAAU,cAKrD,ECEQm7K,OA3EoDA,KACjE,MAAM,iBAAE/rG,EAAgB,SAAE1jD,EAAQ,eAAEkkD,EAAc,eAAEC,GAClDC,MACI,WAAEn2D,GAAeQ,KAEjBkR,EAAOC,aAA4B,CACvCC,SAAUC,aAAYmvJ,IACtBlvJ,KAAM,WACN4pE,cAAe,CACbnlD,KAAsB,OAAhBk/B,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBl/B,KACxBx6B,GAAoB,OAAhB05D,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB15D,GACtBklK,GAAoB,OAAhBxrG,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBwrG,GACtBC,IAAqB,OAAhBzrG,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkByrG,OAY3B,OACEr6K,cAAAyV,WAAA,CAAAtW,SACEsR,eAAC4U,GAAM,CACLzM,OAAQg2D,EACRjkD,QAASA,IAAMykD,OAAe5yE,GAAW2C,SAAA,CAEzCa,cAACkmB,GAAW,CAAA/mB,SAAC,mBACbsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAjBDR,IAChB+jD,GAAoB/jD,EAAK3V,IAAM2V,EAAK6kB,KACtC2/B,EAAe,IAAKT,KAAqB/jD,IAEzC1R,EAAW,2BACb,IAaMqS,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACXyvE,GACC5uE,cAACs6K,GAAiB,CAAClsG,SAAUQ,EAAkB/jD,KAAMA,MAGzD7qB,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CACjBkB,WAAS,EACTjB,QAASA,KACP0pD,OAAe5yE,EAAU,MAI/BwD,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC8vF,GAAY,CACXnpE,WAAS,EACT1P,GAAG,+BACHgR,UACG4C,EAAK2B,UAAUC,UACf5B,EAAK2B,UAAUE,SAChBxB,EAEFruB,KAAK,SACL6oB,QAASA,OACTjc,KAAK,WACLuc,QAASkF,kBAOpB,ECpDQ0vJ,OA7BsBA,KACnC,MAAM,QAAE50J,EAAO,OAAEsoB,EAAM,eAAE6gC,GAAmBG,KAM5C,OAJAx8D,qBAAU,KACRq8D,GAAgB,GACf,CAACA,IAGFnvE,cAAAyV,WAAA,CAAAtW,SACEa,cAACi5E,GAAW,CAACn5E,MAAM,kBAAiBX,SAClCa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAYhU,SACzCa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SACrD6mB,IAAYsoB,EACXtuC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC02E,KAAc,CAACtiE,MAAM,gBAGxB3D,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACi6K,GAAkB,IACnBj6K,cAAC26K,GAAoB,cAM9B,E,qBCuDQE,OA3EkC37K,IAA6B,IAAD47K,EAAA,IAA3B,KAAEjwJ,EAAI,aAAE3D,GAAchoB,EACtE,MAAM,WAAEia,GAAeQ,KAEjByhJ,EAA2Bl+I,mBAajC,OACEld,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgBC,QAAS,EAAEhoC,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAACmnB,GAAS,CACR/oB,KAAK,OACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,aAAcA,EAAa9oB,KAC3BwD,QAASipB,EAAK5d,OAAO7O,KACrBguB,WAAYvB,EAAK5d,OAAO7O,KAAOysB,EAAK5d,OAAO7O,KAAKoB,QAAU,SAIhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,cAAarnB,SAC9Ba,cAACmnB,GAAS,CACR/oB,KAAK,cACL8tB,SAAUrB,EAAKsB,SACfjF,aAAsC,QAA1B4zJ,EAAE5zJ,EAAaT,mBAAW,IAAAq0J,SAAIt+K,EAC1C4W,OAAO,SACPzL,YAAY,sBACZ0kB,WAAW,EACX1F,WAAS,EACT2F,KAAM,EACN1qB,QAASipB,EAAK5d,OAAOwZ,YACrB2F,WACEvB,EAAK5d,OAAOwZ,YAAcoE,EAAK5d,OAAOwZ,YAAYjnB,QAAU,SAKpEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAAA,OAAK0Q,UAAWC,KAAO0rJ,WAAWl9J,SAChCa,cAACm7J,GAAU,CACTC,SAAUA,EACVC,iBArDOvpJ,SACZugE,GAAe3rB,aAAa16C,GAChCrB,MAAM4gB,GACEA,IAERzoB,OAAM,KACLqW,EAAW,+CACJ,MA+CC/a,KAAK,UACL0oB,QAAS+D,EAAK/D,QACdI,aAAcA,EAAa7iB,QAC3BzC,QAASipB,EAAK5d,OAAO5I,QACrB6jB,aACE2C,EAAK5d,OAAO5I,QAAUwmB,EAAK5d,OAAO5I,QAAQ7E,QAAU,eAO/D,ECnDA,MAAMu7K,GAAoB3wJ,OAAaC,MAAM,CAClDjsB,KAAMgsB,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDtB,QAAS+lB,OAAa5kB,SAAStC,EAAUqC,WAAWC,YAGzCw1K,GAA2B,CACtC7nG,UAAW,EACX/0E,KAAM,GACNqoB,YAAa,GACbpiB,QAAS,IA2LI42K,OAxLWA,KAAO,IAADC,EAAAC,EAAAC,EAC9B,MAAM,MAAE19J,EAAK,SAAEwB,EAAQ,cAAE8zD,EAAa,sBAAEE,GzY4CHl0E,qBAAW6zE,KyYzC9ClmC,UAAW2sD,EACX1sD,UAAW+rD,EACXjuE,UAAWguE,GACTjsD,MAEFE,UAAW8nE,EACX7nE,UAAW8nE,EACXhqF,UAAWiqF,GACTloE,KACE5hB,EAAOC,aAAkB,CAC7BC,SAAUC,aAAY+vJ,IACtB9vJ,KAAM,cAEDu4D,EAAkBC,GAAuBhyE,oBAAkB,GAElEqB,qBAAU,KACR,IAAImV,EACFzD,GAAuBu2J,GAAmBlwJ,EAAKnG,aAC9CmG,EAAK2B,UAAUC,QAClBg3D,EAAoBx7D,EAAS,GAC5B,CAAC4C,EAAK2B,UAAUE,QAAS7B,EAAK/D,QAAS+D,EAAK2B,UAAUC,UAEzD,MAAMkuD,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,KACRytD,SAAU,YACV1xE,MAAO,OAET,CACEikB,OAAQ,OACRytD,SAAU,OACV1xE,MAAO,OAET,CACEikB,OAAQ,cACRytD,SAAU,eAEZ,CACEztD,OAAQ,GACRytD,SAAU,UACVE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBuR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAAA,CAC/Da,cAACg/E,GAAe,CAACt5D,QAASA,IAAMw/D,EAAWlI,EAAImI,UAAUhmF,SACvDa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,OAE/BtT,cAAC8Y,KAAG,CAACG,GAAI,EAAE9Z,SACTa,cAACg/E,GAAe,CAACt5D,QAASA,IAAM86D,EAAaxD,EAAImI,UAAUhmF,SACzDa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,WAG/B,EAERD,MAAO,MACP2xE,eAAe,KAGnB,IAoBIE,EAAapzE,UACjBoN,EAAS,CAAEriB,KAAM01E,GAAkBI,gBAAiBz0D,QAASw+I,IAC7DpjE,GAAY,EAGR9Y,EAAe1uE,UACnBoN,EAAS,CAAEriB,KAAM01E,GAAkBI,gBAAiBz0D,QAASw+I,IAC7DjoD,GAAwB,EAG1B,OACEz0G,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,YAAWX,SAAA,CAC5Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CAAC1iE,GAAG,UAAUyO,QAnBd5T,UAChBoN,EAAS,CAAEriB,KAAM01E,GAAkBI,gBAAiBz0D,QAAS,OAC7Do7E,GAAY,EAiBqCn6F,SAAC,qBAI7Cue,EAAMg1D,UAAYh1D,EAAMg1D,SAAS/0E,OAAS,GACzCqC,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC6zE,GAAK,CAAC8G,QAASA,EAAS9uE,KAAM6R,EAAMg1D,SAAUpC,MAAI,EAACwK,OAAK,QAI/DrqE,eAAC4U,GAAM,CACLzM,KAAM8/E,EACN/tE,QAASguE,EACTqlB,WAAY,CAAE/qG,MAAO,CAAEI,MAAO,QAAUlU,SAAA,CAExCa,cAACkmB,GAAW,CAAA/mB,SACTue,EAAMk1D,gBAAkB,kBAAoB,mBAE/CniE,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cApDHqxI,IACpB1pF,EACEt1D,EAAMk1D,gBAAkB8pF,EAAU,IAAKse,MAAmBte,IAE5D/jE,GAAY,IAiDJntE,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAAC66K,GAAW,CACVhwJ,KAAMA,EACN3D,aAAmC,QAAvBg0J,EAAEx9J,EAAMk1D,uBAAe,IAAAsoG,IAAIF,OAG3Ch7K,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACylB,GAAkB,CACjBxO,GAAG,aACHyO,QAASA,IAAMizE,IACfhyE,WAAS,MAGb3mB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC+lB,GAAgB,CACf9O,GAAG,WACH0P,WAAS,EACTsB,SAAUu7D,iBAOtB/yE,eAACu7B,GAAM,CACLpzB,KAAM+7F,EACNhqF,QAAS+pF,EACTlkG,SAAS,KAAIrR,SAAA,CAEbsR,eAAC+7B,GAAW,CAAArtC,SAAA,CACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,qCAGzBa,cAACgR,IAAU,CAACN,UAAU,WAAUvR,SAAA,GAAAkB,OAA0B,QAA1B86K,EAAKz9J,EAAMk1D,uBAAe,IAAAuoG,OAAA,EAArBA,EAAuBhoG,UAAS,OAAA9yE,OAA2B,QAA3B+6K,EAAM19J,EAAMk1D,uBAAe,IAAAwoG,OAAA,EAArBA,EAAuBh9K,WAEpG4B,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjB9oE,GAAG,gBACHxN,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPxG,EAAS,CACPriB,KAAM01E,GAAkBI,gBACxBz0D,QAAS,OAEXw2F,GAAwB,IAG5B10G,cAACssC,GAAY,CACXr1B,GAAG,iBACHxN,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KAvGnBwtD,SACAwhC,iBA2GG,EC1MP,MAAM2mE,GAA2CjqK,IAAMtS,cACrD,CAAC,GAgIUw8K,GAA8CA,IACzDt8K,qBAAWq8K,IAEEE,OAhI6Cr8K,IAAmB,IAAlB,SAAEC,GAAUD,EACvE,MAAM,WAAEia,GAAeQ,MAEhB6hK,EAAmBC,GAAwBhqK,mBAAqB,KAChE68B,EAAQotI,GAAajqK,oBAAS,IAC9BuU,EAASwhE,GAAc/1E,oBAAS,IAChCkqK,EAAUC,GAAenqK,oBAAS,IAClCoqK,EAAiBC,GAAsBrqK,wBAC5CjV,IAEKw2B,EAAY+oJ,GAAiBtqK,oBAAS,IACtCuqK,EAAkBC,GAAuBxqK,oBAAS,IAClDyqK,EAAiBC,GAAsB1qK,qBAMxC2qK,EAAyBA,KAC7B50F,GAAW,GACXma,GAAYE,uBACTl3F,MAAM4gB,IACLkwJ,EAAqBlwJ,EAAO,IAE7BzoB,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,IAE7CuI,SAAQ,KACP20E,GAAW,GACXk0F,GAAU,EAAK,GACf,EASA35E,EAAyB1nF,IACxBA,IACLmtE,GAAW,GACXma,GAAYI,sBAAsB1nF,GAC/B1P,MAAK,KACJyxK,IACAjjK,EAAW,GAAD9Y,OACLga,EAAI,wCACPpC,GAAYE,QACb,IAEFrV,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,IAE7CuI,SAAQ,KACPopK,GAAoB,GACpBz0F,GAAW,EAAM,IACjB,EAsBN,OACE/2E,eAAC4qK,GAAyCp7K,SAAQ,CAChD1D,MAAO,CACL8/K,kBAnEoBA,KACxBN,GAAc,EAAK,EAmEfvjD,YAAaA,IAAMujD,GAAc,GACjC/oJ,aACA6oJ,kBACAS,cAAgBv0K,GAAY+zK,EAAmB/zK,GAC/C4zK,WACA75E,mBA5BsBznF,IAC1BuhK,GAAY,GACZj6E,GAAYG,mBAAmBznF,GAC5B1P,MAAM4gB,IACL6wJ,IACAjjK,EAAW,GAAD9Y,OACLkrB,EAAOm0E,YAAW,kCACrBznF,GAAYE,SAEd4jK,GAAc,EAAM,IAErBj5K,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,IAE7CuI,SAAQ,KACP+oK,GAAY,EAAM,GAClB,EAaAW,6BAvDgCliK,IAC/BA,IACL8hK,EAAmB9hK,GACnB4hK,GAAoB,GAAK,EAqDrBl6E,wBACAy5E,oBACAx1J,UACAsoB,SACA8tI,0BACAj9K,SAAA,CAEFsR,eAACu7B,GAAM,CACLpzB,KAAMojK,EACNrxJ,QAASA,IAAMsxJ,GAAoB,GACnCzrK,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SACVsR,eAACO,IAAU,CAACC,QAAQ,KAAI9R,SAAA,CAAC,2BACE+8K,EAAgB,gCAG7Cl8K,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMu2J,GAAoB,KAErCj8K,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,IAAMq8E,EAAsBm6E,WAI1C/8K,IACiD,EClJjD,MAAMq9K,GAAmCpyJ,OAAaC,MAAM,CACjEhQ,KAAM+P,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,EAAG4gG,GAAarjG,EAAUqC,WAAWI,IAAK,IAC9CC,QAAQ,cAAe,CACtBpG,QAAS,2CC0BAi9K,OA1BXv9K,IAAoC,IAAjC2rB,MAAM,OAAE5d,EAAM,QAAE6Z,IAAW5nB,EAChC,MAAMsc,EAAY0gF,KAElB,OACEl8F,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAAC8+E,GAAM,CACL1gF,KAAK,OACL0oB,QAASA,EACTllB,QAASqL,EAAOoN,KAChBpJ,QAAQ,WACRiX,aAAcjb,EAAOoN,KAAOpN,EAAOoN,KAAK7a,QAAU,GAClDuoB,QAASvM,EAAU9F,KAAK3N,IAAO,CAC7BxL,MAAOwL,EAAQ43F,YACfn5E,MAAM,GAADnmB,OAAK0H,EAAQ43F,YAAW,OAAAt/F,OAAM0H,EAAQ23F,0BAMpD,ECqCQg9E,OAtDuCA,KACpD,MAAM,WAAE1pJ,EAAU,YAAEwlG,EAAW,SAAEmjD,EAAQ,mBAAE75E,GACzCw5E,KAEIzwJ,EAAOC,aAAwC,CACnDC,SAAUC,aAAYwxJ,IACtBvxJ,KAAM,aAOR,OACEjrB,cAAAyV,WAAA,CAAAtW,SACEsR,eAAC4U,GAAM,CAACzM,KAAMoa,EAAYrI,QAAS6tG,EAAYr5H,SAAA,CAC7Ca,cAACkmB,GAAW,CAAA/mB,SAAC,qBACbsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAVDR,IACpBi3E,EAAmBj3E,EAAKxQ,KAAK,IAUvBmR,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAACy8K,GAA+B,CAAC5xJ,KAAMA,MAEzC7qB,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CAACkB,WAAS,EAACjB,QAAS8yG,MAEzCx4H,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC8vF,GAAY,CACXnpE,WAAS,EACT1P,GAAG,2BACHgR,UACG4C,EAAK2B,UAAUC,UACf5B,EAAK2B,UAAUE,SAChBivJ,EAEF9+K,KAAK,SACL6oB,QAASA,OACTjc,KAAK,WACLuc,QAAS21J,kBAOpB,ECKQgB,OAlEqCA,KAClD,MAAM,kBAAEnB,EAAiB,6BAAEe,GACzBjB,KAEI3gG,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,eACRjkB,MAAO,MACP0xE,SAAU,cACVE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBc,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASwa,aACT,GAGX,CACEroE,OAAQ,OACRjkB,MAAO,MACP0xE,SAAU,cACVE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASua,aACT,GAGX,CACEpoE,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACy1F,KAAU,CACT/vE,QAASA,IACP62J,EAA6Bv/F,EAAImI,SAASwa,aAC3CxgG,SAEDa,cAAC0hC,KAAI,CAACttB,MAAM,UAASjV,SAAC,cAEpB,KAIZ,IAGF,OACEa,cAAAyV,WAAA,CAAAtW,SACGq8K,EAAkB79K,OAAS,EAC1BqC,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAM2vK,EACN33K,QAAQ,EACR+2E,YAAY,EACZC,aAAc,GACdO,iBAAiB,EACjB9K,MAAM,EACNwK,OAAK,IAGP96E,cAAC64E,GAAQ,KAEV,ECzBQ+jG,OAjCf,WACE,MAAM,kBAAEP,EAAiB,uBAAED,EAAsB,QAAEp2J,EAAO,OAAEsoB,GAC1DgtI,KAMF,OAJAxoK,qBAAU,KACRspK,GAAwB,GACvB,IAGD3rK,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CAAC1iE,GAAG,uBAAuByO,QAAS22J,EAAkBl9K,SAAC,6BAInEa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAYhU,SACzCa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SACrD6mB,IAAYsoB,EACXtuC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC02E,KAAc,CAACtiE,MAAM,gBAGxB3D,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC28K,GAAiC,IAClC38K,cAAC08K,GAAmC,aAOlD,ECdA,MAAMG,GAA2CzrK,IAAMtS,cACrD,CAAC,GAyKUg+K,GAA8CA,IACzD99K,qBAAW69K,IAEEE,OAzK6C79K,IAAmB,IAAlB,SAAEC,GAAUD,EACvE,MAAM,WAAEia,GAAeQ,MAEhBqjK,EAAmBC,GAAwBxrK,mBAEhD,KACK68B,EAAQotI,GAAajqK,oBAAS,IAC9BuU,EAASwhE,GAAc/1E,oBAAS,IAChCkqK,EAAUC,GAAenqK,oBAAS,IAClCyrK,EAAyBC,GAA8B1rK,wBAE5DjV,IACKw2B,EAAY+oJ,GAAiBtqK,oBAAS,IACtCuqK,EAAkBC,GAAuBxqK,oBAAS,IAClD2rK,EAAyBC,GAA8B5rK,qBAY9DqB,qBAAU,KAEHipK,IADAmB,EACmB,GACvB,CAACA,IAEJ,MAAMI,EAAyBA,KAC7B91F,GAAW,GACXma,GAAYK,uBACTr3F,MAAM4gB,IACL0xJ,EAAqB1xJ,EAAO,IAE7BzoB,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,IAE7CuI,SAAQ,KACP20E,GAAW,GACXk0F,GAAU,EAAK,GACf,EA4EN,OACEjrK,eAACosK,GAAyC58K,SAAQ,CAChD1D,MAAO,CACL8/K,kBAxGoBA,KACxBN,GAAc,EAAK,EAwGf95E,mBApDsBC,IACrBA,IACL05E,GAAY,GACZj6E,GAAYM,mBAAmBC,GAC5Bv3F,MAAM4gB,IACL+xJ,IACAnkK,EAAW,gBAAD9Y,OACQkrB,EAAOo0E,YAAW,cAClC1nF,GAAYE,SAEd4jK,GAAc,EAAM,IAErBj5K,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,IAE7CuI,SAAQ,KACP+oK,GAAY,EAAM,IAClB,EAoCAz5E,sBAjCyBD,IACxBA,GAAoBA,EAAgBq7E,0BACzC3B,GAAY,GACZj6E,GAAYQ,sBAAsBD,GAC/Bv3F,MAAM4gB,IACL+xJ,IACAnkK,EAAW,gBAAD9Y,OACQkrB,EAAOo0E,YAAW,cAClC1nF,GAAYE,SAEd4jK,GAAc,EAAM,IAErBj5K,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,IAE7CuI,SAAQ,KACP+oK,GAAY,EAAM,IAClB,EAiBApjD,YAdcA,KACd0kD,EACFC,OAA2B3gL,GAE3Bu/K,GAAc,EAChB,EAUI/oJ,aACA2oJ,WACAqB,oBACAQ,6BAnFgCvmK,IAC/BA,IACLomK,EAA2BpmK,GAC3BglK,GAAoB,GAAK,EAiFrBj2J,UACAsoB,SACAgvI,yBACAG,sBA/GyBv7E,IAC7Bi7E,EAA2Bj7E,EAAgB,EA+GvCg7E,2BACA/9K,SAAA,CAEFsR,eAACu7B,GAAM,CACLpzB,KAAMojK,EACNrxJ,QAASA,IAAMsxJ,GAAoB,GACnCzrK,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,iDAI3Ba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMu2J,GAAoB,KAErCj8K,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KAzGYzO,SAyGgBmmK,KAvG7C51F,GAAW,GACXma,GAAYS,sBAAsBnrF,GAC/BtM,MAAM4gB,IACDA,IACF+xJ,IACAnkK,EAAW,kCAAmClB,GAAYE,SAC5D,IAEDrV,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,IAE7CuI,SAAQ,KACPopK,GAAoB,GACpBz0F,GAAW,EAAM,IA0FiD,UAInEroF,IACiD,ECtKxD,MAAMu+K,GAAmCtsK,IAAMtS,cAC7C,CAAC,GAoKU6+K,GAAsCA,IACjD3+K,qBAAW0+K,IAEEE,OApKqC1+K,IAAmB,IAAlB,SAAEC,GAAUD,EAC/D,MAAM,WAAEia,GAAeQ,MAEhB+0D,EAAWmvG,GAAgBpsK,mBAA0B,KACrD68B,EAAQotI,GAAajqK,oBAAS,IAC9BuU,EAASwhE,GAAc/1E,oBAAS,IAChCkqK,EAAUC,GAAenqK,oBAAS,IAClCm9D,EAAkBkvG,GAAuBrsK,wBAE9CjV,IACKw2B,EAAY+oJ,GAAiBtqK,oBAAS,IACtCuqK,EAAkBC,GAAuBxqK,oBAAS,IAClDssK,EAAkBC,GAAuBvsK,qBAYhDqB,qBAAU,KAEHipK,IADAntG,EACmB,GACvB,CAACA,IAEJ,MAAMO,EAAiBA,KACrBqY,GAAW,GACXma,GAAYU,eACT13F,MAAM4gB,IACLsyJ,EAAatyJ,EAAO,IAErBzoB,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,IAE7CuI,SAAQ,KACP20E,GAAW,GACXk0F,GAAU,EAAK,GACf,EAyEN,OACEjrK,eAACitK,GAAiCz9K,SAAQ,CACxC1D,MAAO,CACL8/K,kBArGoBA,KACxBN,GAAc,EAAK,EAqGfz5E,YAjDel0B,IACdA,IACLwtG,GAAY,GACZj6E,GAAYW,YAAYl0B,GACrBzjE,MAAM4gB,IACL4jD,IACAh2D,EAAW,gBAAD9Y,OACQkrB,EAAOo0E,YAAW,cAClC1nF,GAAYE,SAEd4jK,GAAc,EAAM,IAErBj5K,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,IAE7CuI,SAAQ,KACP+oK,GAAY,EAAM,IAClB,EAiCAvsG,eA9BkBjB,IACjBA,GAAaA,EAAS6vG,yBAC3BrC,GAAY,GACZj6E,GAAYtyB,eAAejB,GACxBzjE,MAAM4gB,IACL4jD,IACAh2D,EAAW,gBAAD9Y,OACQkrB,EAAOo0E,YAAW,cAClC1nF,GAAYE,SAEd4jK,GAAc,EAAM,IAErBj5K,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,IAE7CuI,SAAQ,KACP+oK,GAAY,EAAM,IAClB,EAcApjD,YAXcA,KAClBslD,OAAoBthL,GACpBu/K,GAAc,EAAM,EAUhB/oJ,aACA2oJ,WACAjtG,YACAwvG,sBAhFyBjnK,IACxBA,IACL+mK,EAAoB/mK,GACpBglK,GAAoB,GAAK,EA8ErBj2J,UACAsoB,SACA6gC,iBACAC,eA5GkBhB,IACtB0vG,EAAoB1vG,EAAS,EA4GzBQ,oBACAzvE,SAAA,CAEFsR,eAACu7B,GAAM,CACLpzB,KAAMojK,EACNrxJ,QAASA,IAAMsxJ,GAAoB,GACnCzrK,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,yCAI3Ba,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,IAAMu2J,GAAoB,KAErCj8K,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KAtGKzO,SAsGgB8mK,KApGtCv2F,GAAW,GACXma,GAAYY,eAAetrF,GACxBtM,MAAM4gB,IACDA,IACF4jD,IACAh2D,EAAW,uBAAwBlB,GAAYE,SACjD,IAEDrV,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAASyY,GAAY3N,MAAM,IAE7CuI,SAAQ,KACPopK,GAAoB,GACpBz0F,GAAW,EAAM,IAuFmC,UAIrDroF,IACyC,EC7EjCg/K,OAxG6BA,KAC1C,MAAM,UAAEzvG,EAAS,sBAAEwvG,EAAqB,eAAE9uG,GACxCuuG,KAEIhjG,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,eACRjkB,MAAO,MACP0xE,SAAU,cACVE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBc,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASwa,aACT,GAGX,CACEroE,OAAQ,OACRjkB,MAAO,MACP0xE,SAAU,OACVE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAE69E,EAAImI,SAAStoF,MAAY,GAGtE,CACEy6B,OAAQ,WACRjkB,MAAO,MACP0xE,SAAU,UACVE,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjBjvE,eAAA,QAAMwC,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAA,CACpC4T,IAAEC,QAAQgqE,EAAImI,SAASi5F,UAAY,UACV,aAAzBphG,EAAImI,SAASi5F,SAA0B,WACd,eAAzBphG,EAAImI,SAASi5F,SAA4B,eACrC,GAGX,CACE9mJ,OAAQ,OACRjkB,MAAO,MACP0xE,SAAU,OACVE,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OACjB11F,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAE69E,EAAImI,SAASl6D,MAAY,GAGtE,CACEqM,OAAQ,YACRjkB,MAAO,MACP0xE,SAAU,WACVE,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjB71F,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAE69E,EAAImI,SAASk5F,UAAgB,GAG1E,CACE/mJ,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAM6Q,IAAA,IAAC,IAAE9Y,GAAU8Y,EAAA,OACjB91F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACy1F,KAAU,CAAC/vE,QAASA,IAAM0pD,EAAe4N,EAAImI,UAAUhmF,SACtDa,cAAC0hC,KAAI,CAACttB,MAAM,UAASjV,SAAC,wBAEpB,GAGV,CACEm4B,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMiR,IAAA,IAAC,IAAElZ,GAAUkZ,EAAA,OACjBl2F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACy1F,KAAU,CACT/vE,QAASA,IACPw4J,EAAsBlhG,EAAImI,SAAS84F,wBACpC9+K,SAEDa,cAAC0hC,KAAI,CAACttB,MAAM,UAASjV,SAAC,cAEpB,KAIZ,IAGF,OACEa,cAAAyV,WAAA,CAAAtW,SACGuvE,EAAU/wE,OAAS,EAClBqC,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAM6iE,EACN7qE,QAAQ,EACR+2E,YAAY,EACZC,aAAc,GACdO,iBAAiB,EACjB9K,MAAM,EACNwK,OAAK,IAGP96E,cAAC64E,GAAQ,KAEV,EC9GA,IAAKylG,GAAiB,SAAjBA,GAAiB,OAAjBA,EAAiB,UAAjBA,EAAiB,UAAjBA,EAAiB,UAAjBA,EAAiB,UAAjBA,CAAiB,MCAjBC,GAAiB,SAAjBA,GAAiB,OAAjBA,EAAiB,QAAjBA,EAAiB,UAAjBA,CAAiB,MAKjBC,GAAoB,SAApBA,GAAoB,OAApBA,EAAoB,WAApBA,EAAoB,oBAApBA,EAAoB,wBAApBA,CAAoB,MCLpBC,GAAqB,SAArBA,GAAqB,OAArBA,EAAqB,UAArBA,EAAqB,YAArBA,CAAqB,MCArBC,GAAgB,SAAhBA,GAAgB,OAAhBA,EAAgB,YAAhBA,EAAgB,wBAAhBA,EAAgB,wBAAhBA,EAAgB,sBAAhBA,EAAgB,0BAAhBA,EAAgB,0DAAhBA,EAAgB,sBAAhBA,EAAgB,sBAAhBA,EAAgB,0BAAhBA,EAAgB,kCAAhBA,EAAgB,gCAAhBA,EAAgB,gBAAhBA,EAAgB,4BAAhBA,EAAgB,kCAAhBA,EAAgB,kDAAhBA,EAAgB,kDAAhBA,EAAgB,UAAhBA,EAAgB,0BAAhBA,EAAgB,8BAAhBA,EAAgB,oBAAhBA,EAAgB,kCAAhBA,EAAgB,wBAAhBA,EAAgB,wBAAhBA,EAAgB,4BAAhBA,EAAgB,sBAAhBA,EAAgB,0BAAhBA,EAAgB,wBAAhBA,EAAgB,0BAAhBA,EAAgB,gCAAhBA,EAAgB,kBAAhBA,EAAgB,cAAhBA,EAAgB,oBAAhBA,EAAgB,8BAAhBA,EAAgB,sBAAhBA,EAAgB,kBAAhBA,EAAgB,kBAAhBA,EAAgB,kBAAhBA,EAAgB,kBAAhBA,EAAgB,sCAAhBA,EAAgB,gCAAhBA,EAAgB,4BAAhBA,EAAgB,kCAAhBA,EAAgB,kCAAhBA,EAAgB,kCAAhBA,EAAgB,kCAAhBA,CAAgB,MC6VbC,OAlUXz/K,IAGG,IAAD0/K,EAAA,IAHD,iBACHhwG,EACA/jD,MAAM,MAAE05F,EAAK,SAAEj8B,EAAQ,UAAE5jE,EAAS,SAAEyH,EAAQ,OAAElf,EAAM,QAAE6Z,IACvD5nB,EACG,MAAMsc,EAAY0gF,KAEZ2iF,EAAsBA,IACnB3gL,OAAOymB,OAAO+5J,IAejB56D,EAAeS,EAAM,QACrB65D,EAAU75D,EAAM,WAChB85D,EAAW95D,EAAM,YAgBzB,OAdEzxG,qBAAU,KACJgxG,IAAiBw6D,GAAkBQ,KAAKx2F,EAAS,OAAQ,KAAK,GACjE,CAACw7B,IAEJhxG,qBAAU,KACH87D,IACL0Z,EAAS,OAAQ1Z,EAAiB/xE,MAC9BkW,IAAEC,QAAQ47D,EAAiBwvG,SAC7B91F,EAAS,UAAWk2F,GAAqBO,SAEzCz2F,EAAS,UAAW1Z,EAAiBwvG,SACvC,GACC,CAACxvG,IAGJ5uE,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,UAAUhhB,UAAQ,EAAArG,SACnCa,cAAC8+E,GAAM,CACL1gF,KAAK,OACL8oB,aAA8B,OAAhB0nD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB+wB,YAChC74E,QAASA,EACTllB,QAASqL,EAAOoN,KAChBpJ,QAAQ,WACRiX,aAAcjb,EAAOoN,KAAOpN,EAAOoN,KAAK7a,QAAU,GAClDuoB,QAASvM,EAAU9F,KAAK3N,IAAO,CAC7BxL,MAAOwL,EAAQ43F,YACfn5E,MAAM,GAADnmB,OAAK0H,EAAQ43F,YAAW,OAAAt/F,OAAM0H,EAAQ23F,uBAKnD1/F,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAOhhB,UAAQ,EAAArG,SAChCa,cAAC8+E,GAAM,CACL1gF,KAAK,OACL8oB,aAA8B,OAAhB0nD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB/xE,KAChCiqB,QAASA,EACTllB,QAASqL,EAAOpQ,KAChBoU,QAAQ,WACRiX,aAAcjb,EAAOpQ,KAAOoQ,EAAOpQ,KAAK2C,QAAU,GAClDuoB,QAAS,CACP,CAACxrB,MAAO+hL,GAAkBU,IAAKx4J,MAAO83J,GAAkBU,KACxD,CAACziL,MAAO+hL,GAAkBQ,IAAKt4J,MAAO83J,GAAkBQ,KACxD,CAACviL,MAAO+hL,GAAkBW,IAAKz4J,MAAO83J,GAAkBW,KACxD,CAAC1iL,MAAO+hL,GAAkBY,IAAK14J,MAAO83J,GAAkBY,YAKhEl/K,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,GAAIoK,GAAI,GAAGx3B,SACxBa,cAACumB,GAAW,CAACC,MAAM,WAAWhhB,UAAQ,EAAArG,SACpCa,cAACgqB,KAAU,CACTo3D,GACE3wE,eAACi4E,KAAU,CAAC1L,KAAG,EAAC,aAAW,WAAW5+E,KAAK,UAASe,SAAA,CAClDa,cAACwhF,KAAgB,CACfjlF,MAAOiiL,GAAqBO,QAC5Bj4J,QAAS9mB,cAAC2oF,KAAK,IACfniE,MAAM,YAERxmB,cAACwhF,KAAgB,CACfjlF,MAAOiiL,GAAqBW,SAC5Br4J,QAAS9mB,cAAC2oF,KAAK,IACfniE,MAAM,aAERxmB,cAACwhF,KAAgB,CACfjlF,MAAOiiL,GAAqBY,WAC5Bt4J,QAAS9mB,cAAC2oF,KAAK,IACfniE,MAAM,kBAIZU,aAAuC,QAA3B03J,EAAkB,OAAhBhwG,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBwvG,eAAO,IAAAQ,IAAI,GAC3CxgL,KAAK,UACL0oB,QAASA,QAKM,QAAjBg9F,GAA0Bs6D,IAAYI,GAAqBY,YAC3Dp/K,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,OAAOhhB,UAAQ,EAAArG,SAChCa,cAAC8+E,GAAM,CACL1gF,KAAK,OACLoH,UAAQ,EACR0hB,cAAe48F,IAAgC,OAAhBl1C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB3jD,MACjDnE,QAASA,EACTllB,QAASqL,EAAOge,KAChBha,QAAQ,WACRiX,aAAcjb,EAAOge,KAAOhe,EAAOge,KAAKzrB,QAAU,GAClDuoB,QAAS,CACP,CAAExrB,MAAOgiL,GAAkBc,GAAI74J,MAAO+3J,GAAkBc,IACxD,CACE9iL,MAAOgiL,GAAkBe,IACzB94J,MAAO+3J,GAAkBe,YAQrCt/K,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAYhhB,UAAQ,EAAArG,SACrCa,cAAC8+E,GAAM,CACL1gF,KAAK,WACL8oB,aAA8B,OAAhB0nD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkByvG,SAChCv3J,QAASA,EACTllB,QAASqL,EAAOoxK,SAChBptK,QAAQ,WACRiX,aAAcjb,EAAOoxK,SAAWpxK,EAAOoxK,SAAS7+K,QAAU,GAC1DuoB,QAAS,CACP,CACExrB,MAAOkiL,GAAsBc,IAC7B/4J,MAAOi4J,GAAsBc,KAE/B,CACEhjL,MAAOkiL,GAAsBe,KAC7Bh5J,MAAOi4J,GAAsBe,eAOrB,OAAhB5wG,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkByvG,YAAaI,GAAsBe,MACrDnB,IAAaI,GAAsBe,OACjCx/K,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,0BAA0BhhB,UAAQ,EAAArG,SACnDa,cAAA,SACEgX,IAAKmV,EACL3mB,UAAQ,EACRsrF,OAAQ,QACRj0F,KAAK,OACLuB,KAAK,kBACD+tB,EAAS,wBAML,OAAhByiD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkByvG,YAAaI,GAAsBe,MACrDnB,IAAaI,GAAsBe,OACjCx/K,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,qCAAqChhB,UAAQ,EAAArG,SAC9Da,cAAA,SACEgX,IAAKmV,EACL3mB,UAAQ,EACRsrF,OAAQ,QACRj0F,KAAK,OACLuB,KAAK,4BACD+tB,EAAS,kCAML,OAAhByiD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkByvG,YAAaI,GAAsBc,KACrDlB,IAAaI,GAAsBc,MACjCv/K,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,sBAAsBhhB,UAAQ,EAAArG,SAC/Ca,cAACmnB,GAAS,CACR/oB,KAAK,mBACL8oB,aAA8B,OAAhB0nD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB6wG,iBAChCvzJ,SAAUC,EACVH,WAAY,CAAEtmB,IAAK,GACnB7I,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAOwyK,iBAChBrzJ,WACEnf,EAAOwyK,iBAAmBxyK,EAAOwyK,iBAAiBjgL,QAAU,WAOtD,OAAhBovE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkByvG,YAAaI,GAAsBc,KACrDlB,IAAaI,GAAsBc,MACjCv/K,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,iCAAiChhB,UAAQ,EAAArG,SAC1Da,cAACmnB,GAAS,CACR/oB,KAAK,6BACL8oB,aAA8B,OAAhB0nD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB8wG,2BAChCxzJ,SAAUC,EACVH,WAAY,CAAEtmB,IAAK,GACnB7I,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAOyyK,2BAChBtzJ,WACEnf,EAAOyyK,2BACHzyK,EAAOyyK,2BAA2BlgL,QAClC,WAOE,OAAhBovE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkByvG,YAAaI,GAAsBc,KACrDlB,IAAaI,GAAsBc,MACjC9uK,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,WAAWhhB,UAAQ,EAAArG,SACpCa,cAACmnB,GAAS,CACRkF,WAAS,EACTC,KAAM,EACNluB,KAAK,WACL8oB,aAA8B,OAAhB0nD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBR,SAChCliD,SAAUC,EACVtvB,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAOmhE,SAChBhiD,WAAYnf,EAAOmhE,SAAWnhE,EAAOmhE,SAAS5uE,QAAU,WAI5C,OAAhBovE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkByvG,YAAaI,GAAsBc,KACrDlB,IAAaI,GAAsBc,MACjC9uK,eAACmb,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SAAA,CACfa,cAACgR,IAAU,CAAA7R,SAAC,aACZa,cAAC8Y,KAAG,CAAC01E,UAAW,IAAKv7E,MAAO,CAAEiB,UAAW,QAAS/U,SAChDa,cAACmgC,KAAI,CAAAhhC,SACF0/K,IAAsBnpK,KAAK5K,GAC1B9K,cAACm/B,KAAY,CAEXwgJ,cAAeA,IA5PbC,KAC1B,MAAMtqE,EAAS,IAAAj1G,OAAOu/K,EAAO,KACvBC,EAAWn7J,EAAU,YAC3B4jE,EAAS,WAAYu3F,EAAWvqE,EAAY,OAAO,EAyPNwqE,CAAmBh1K,GACxCmI,MAAO,CAAE8sK,WAAY,QACrB/6I,UAAS,IAAA3kC,OAAMyK,EAAE0U,WAAU,MAHtB1U,cAUD,OAAhB8jE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkByvG,YAAaI,GAAsBc,KACrDlB,IAAaI,GAAsBc,MACjCv/K,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,sBAAsBhhB,UAAQ,EAAArG,SAC/Ca,cAACmnB,GAAS,CACRkF,WAAS,EACTC,KAAM,EACNluB,KAAK,qBACL8oB,aAA8B,OAAhB0nD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBoxG,mBAChC9zJ,SAAUC,EACVH,WAAY,CAAEtmB,IAAK,GACnB7I,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAO+yK,mBAChB5zJ,WACEnf,EAAO+yK,mBACH/yK,EAAO+yK,mBAAmBxgL,QAC1B,WAME,OAAhBovE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkByvG,YAAaI,GAAsBc,KACrDlB,IAAaI,GAAsBc,MACjC9uK,eAACmb,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SAAA,CACfa,cAACgR,IAAU,CAAA7R,SAAC,aACZa,cAAC8Y,KAAG,CAAC01E,UAAW,IAAKv7E,MAAO,CAAEiB,UAAW,QAAS/U,SAChDa,cAACmgC,KAAI,CAAAhhC,SACF0/K,IAAsBnpK,KAAK5K,GAC1B9K,cAACm/B,KAAY,CAEXwgJ,cAAeA,IAlSHC,KACpC,MAAMtqE,EAAS,IAAAj1G,OAAOu/K,EAAO,KACvBC,EAAWn7J,EAAU,sBAC3B4jE,EAAS,qBAAsBu3F,EAAWvqE,EAAY,OAAO,EA+RhB2qE,CAA6Bn1K,GAClDmI,MAAO,CAAE8sK,WAAY,QACrB/6I,UAAS,IAAA3kC,OAAMyK,EAAE0U,WAAU,MAHtB1U,mBAa1B,ECnUF,MAAMo1K,GAA2B91J,OAAaC,MAAM,CACzDhQ,KAAM+P,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,EAAG4gG,GAAarjG,EAAUqC,WAAWI,IAAK,IAC9CC,QAAQ,cAAe,CACtBpG,QAAS,yCAGb3C,KAAMutB,OAEH+1J,MAAMjiL,OAAOymB,OAAO25J,KACpB94K,SAAStC,EAAUqC,WAAWC,UAEjCylB,KAAMb,OACHqjF,KAAK,OAAQ,CACZ0W,GAAIm6D,GAAkBQ,IACtBn0K,KAAMyf,OAAaolE,WAAW4wF,cAAcp5J,WAC5CqwJ,UAAWjtJ,OAERqjF,KAAK,UAAW,CACf0W,GAAIq6D,GAAqBY,WACzBz0K,KAAMyf,OAAaolE,WAAW4wF,cAAcp5J,WAC5CqwJ,UAAWjtJ,OAER+1J,MAAMjiL,OAAOymB,OAAO45J,KACpB/4K,SAAStC,EAAUqC,WAAWC,cAIzC64K,SAAUj0J,OAEP+1J,MAAMjiL,OAAOymB,OAAO85J,KACpBj5K,SAAStC,EAAUqC,WAAWC,UAEjCi6K,iBAAkBr1J,OAEfolE,WACA4wF,cACA3yE,KAAK,WAAY,CAChB0W,GAAIs6D,GAAsBc,IAC1B50K,KAAMyf,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,UAAS,GACT9pF,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWoB,WAAY,IACrD4jB,UAAUrnB,EAAUqC,WAAWY,eAC/B6R,WAAWuqG,GAAS+K,MAAM/K,GAAO,KAAOA,MAG/Cm9D,2BAA4Bt1J,OAEzBolE,WACA4wF,cACA3yE,KAAK,WAAY,CAChB0W,GAAIs6D,GAAsBc,IAC1B50K,KAAMyf,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BgqF,UAAS,GACT9pF,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWoB,WAAY,IACrD4jB,UAAUrnB,EAAUqC,WAAWY,eAC/B6R,WAAWuqG,GAAS+K,MAAM/K,GAAO,KAAOA,MAG/Cn0C,SAAUhkD,OACPqjF,KAAK,WAAY,CAChB0W,GAAIs6D,GAAsBc,IAC1B50K,KAAMyf,OAAa5kB,WACnB6xK,UAAWjtJ,OAAapD,WAAWo5J,gBAEvCJ,mBAAoB51J,OAAaolE,WAAW4wF,gBCU/BC,OArF+BA,KAC5C,MAAM,WACJrtJ,EAAU,YACVwlG,EAAW,SACXmjD,EAAQ,YACRr5E,EAAW,eACXjzB,EAAc,iBACdT,GACE+uG,KAEE9yJ,EAAOC,aAA4B,CACvCC,SAAUC,aAAYk1J,IACtBj1J,KAAM,aA6BR,OACEjrB,cAAAyV,WAAA,CAAAtW,SACEsR,eAACu7B,GAAM,CAACpzB,KAAMoa,EAAYrI,QAAS6tG,EAAahoH,SAAU,KAAKrR,SAAA,CAC7Da,cAACkmB,GAAW,CAAA/mB,SAAC,sBACbsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAhCDxf,IAA8B,IAADy0K,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACjD,IAAKj2J,EAAK2B,UAAUE,QAAS,OAE7B,MAAMq0J,EAAM,CACVphF,YAAsB,QAAX2gF,EAAEz0K,EAAKwO,YAAI,IAAAimK,IAAI,GAC1Br1J,KAAe,QAAXs1J,EAAE10K,EAAKof,YAAI,IAAAs1J,IAAI,GACnBlC,SAAuB,QAAfmC,EAAE30K,EAAKwyK,gBAAQ,IAAAmC,IAAI,GAC3Bf,iBAAuC,QAAvBgB,EAAE50K,EAAK4zK,wBAAgB,IAAAgB,IAAI,EAC3CryG,SAAuB,QAAfsyG,EAAE70K,EAAKuiE,gBAAQ,IAAAsyG,IAAI,GAC3BhB,2BAA2D,QAAjCiB,EAAE90K,EAAK6zK,kCAA0B,IAAAiB,IAAI,EAC/DX,mBAA2C,QAAzBY,EAAE/0K,EAAKm0K,0BAAkB,IAAAY,IAAI,GAC/C/jL,KAAe,QAAXgkL,EAAEh1K,EAAKhP,YAAI,IAAAgkL,IAAI,GACnBzC,QAAqB,QAAd0C,EAAEj1K,EAAKuyK,eAAO,IAAA0C,IAAI,GACzBE,aAAcn1K,EAAKm1K,aAAen1K,EAAKm1K,aAAa,GAAK,KACzDC,uBAAwBp1K,EAAKo1K,uBACzBp1K,EAAKo1K,uBAAuB,GAC5B,MAGFryG,EACFS,EAAe,IAAKT,KAAqBmyG,IAEzCz+E,EAAYy+E,EACd,IAUMv1J,YAAU,EACV9a,UAAWkV,KAAW6F,kBACtBy1J,QAAQ,sBAAqB/hL,SAAA,CAE7Ba,cAACusC,GAAa,CAACt5B,MAAO,CAAE0tB,UAAW,UAAWxhC,SAC5Ca,cAACmhL,GAAyB,CACxBvyG,iBAAkBA,EAClB/jD,KAAMA,MAGV7qB,cAACmsC,GAAa,CAAAhtC,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC+/E,GAAkB,CAACp5D,WAAS,EAACjB,QAAS8yG,MAEzCx4H,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACssC,GAAY,CACX3lB,WAAS,EACTsB,UACG4C,EAAK2B,UAAUC,UACf5B,EAAK2B,UAAUE,SAChBivJ,EAEF9+K,KAAK,SACL6oB,QAASA,OACTjc,KAAK,WACLuc,QAAS21J,kBAOpB,ECtDQyF,OAlCf,WACE,MAAM,kBAAE/E,EAAiB,QAAEr2J,EAAO,OAAEsoB,EAAM,eAAE6gC,GAC1CwuG,KAMF,OAJA7qK,qBAAU,KACRq8D,GAAgB,GACf,IAGD1+D,eAACqI,KAAG,CAAC4S,GAAI,EAAEvsB,SAAA,CACTa,cAAC25E,GAAS,CACR1iE,GAAG,yBACHyO,QAASA,IAAM22J,IAAoBl9K,SACpC,mBAGDa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAYhU,SACzCa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SACrD6mB,IAAYsoB,EACXtuC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC02E,KAAc,CAACtiE,MAAM,gBAGxB3D,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACm+K,GAAyB,IAC1Bn+K,cAACqgL,GAA2B,aAO1C,ECmEegB,OArGqCA,KAClD,MAAM,kBACJrE,EAAiB,6BACjBQ,EAA4B,sBAC5BC,GACEX,KAEEniG,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,eACRjkB,MAAO,MACP0xE,SAAU,cACVE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBc,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASwa,aACT,GAGX,CACEroE,OAAQ,YACRjkB,MAAO,MACP0xE,SAAU,YACVE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASm8F,WACT,GAGX,CACEhqJ,OAAQ,iBACRjkB,MAAO,MACP0xE,SAAU,gBACVE,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC69E,EAAImI,SAASo8F,eACT,GAGX,CACEjqJ,OAAQ,UACRjkB,MAAO,MACP0xE,SAAU,SACVE,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OACjB11F,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SAAE69E,EAAImI,SAASq8F,QAAc,GAGxE,CACElqJ,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjB71F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACy1F,KAAU,CAAC/vE,QAASA,IAAM+3J,EAAsBzgG,EAAImI,UAAUhmF,SAC7Da,cAAC0hC,KAAI,CAACttB,MAAM,UAASjV,SAAC,wBAEpB,GAGV,CACEm4B,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAM6Q,IAAA,IAAC,IAAE9Y,GAAU8Y,EAAA,OACjB91F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACy1F,KAAU,CACT/vE,QAASA,IACP83J,EACExgG,EAAImI,SAASo4F,yBAEhBp+K,SAEDa,cAAC0hC,KAAI,CAACttB,MAAM,UAASjV,SAAC,cAEpB,KAIZ,IAGF,OACEa,cAAAyV,WAAA,CAAAtW,SACG69K,EAAkBr/K,OAAS,EAC1BqC,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAMmxK,EACNn5K,QAAQ,EACR+2E,YAAY,EACZC,aAAc,GACdO,iBAAiB,EACjB9K,MAAM,EACNwK,OAAK,IAGP96E,cAAC64E,GAAQ,KAEV,EC+MQ8lG,OArSXz/K,IAAuE,IAAtE,wBAAEg+K,EAAyBryJ,MAAM,SAAEsB,EAAQ,OAAElf,EAAM,QAAE6Z,IAAW5nB,EACnE,MAAMsc,EAAY0gF,KAElB,OACEl8F,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,UAAUhhB,UAAQ,EAAArG,SACnCa,cAAC8+E,GAAM,CACL1gF,KAAK,OACL8oB,aAAqC,OAAvBg2J,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBv9E,YACvC74E,QAASA,EACTllB,QAASqL,EAAOoN,KAChBpJ,QAAQ,WACRiX,aAAcjb,EAAOoN,KAAOpN,EAAOoN,KAAK7a,QAAU,GAClDuoB,QAASvM,EAAU9F,KAAK3N,IAAO,CAC7BxL,MAAOwL,EAAQ43F,YACfn5E,MAAM,GAADnmB,OAAK0H,EAAQ43F,YAAW,OAAAt/F,OAAM0H,EAAQ23F,uBAKnD1/F,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,iBAAiBhhB,UAAQ,EAAArG,SAC1Ca,cAACmnB,GAAS,CACR/oB,KAAK,gBACL8oB,aAAqC,OAAvBg2J,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBqE,cACvCr1J,SAAUC,EACVH,WAAY,CAAEtmB,IAAK,GACnB7I,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAOs0K,cAChBn1J,WACEnf,EAAOs0K,cAAgBt0K,EAAOs0K,cAAc/hL,QAAU,SAK9DQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACmnB,GAAS,CACR/oB,KAAK,YACL8oB,aAAqC,OAAvBg2J,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBoE,UACvCp1J,SAAUC,EACVH,WAAY,CAAEC,UAAW,KACzBpvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAOq0K,UAChBl1J,WAAYnf,EAAOq0K,UAAYr0K,EAAOq0K,UAAU9hL,QAAU,SAIhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,aAAYrnB,SAC7Ba,cAACmnB,GAAS,CACR/oB,KAAK,YACL8oB,aAAqC,OAAvBg2J,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBuE,UACvCv1J,SAAUC,EACVH,WAAY,CAAEC,UAAW,IACzBpvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAOw0K,UAChBr1J,WAAYnf,EAAOw0K,UAAYx0K,EAAOw0K,UAAUjiL,QAAU,SAIhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,MAAKrnB,SACtBa,cAACmnB,GAAS,CACR/oB,KAAK,MACL8oB,aAAqC,OAAvBg2J,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBwE,IACvCx1J,SAAUC,EACVH,WAAY,CAAEC,UAAW,IACzBpvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAOy0K,IAChBt1J,WAAYnf,EAAOy0K,IAAMz0K,EAAOy0K,IAAIliL,QAAU,SAIpDQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,iBAAgBrnB,SACjCa,cAACmnB,GAAS,CACR/oB,KAAK,eACL8oB,aAAqC,OAAvBg2J,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyByE,aACvCz1J,SAAUC,EACVH,WAAY,CAAEC,UAAW,IACzBpvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAO00K,aAChBv1J,WACEnf,EAAO00K,aAAe10K,EAAO00K,aAAaniL,QAAU,SAK5DQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,eAAcrnB,SAC/Ba,cAACmnB,GAAS,CACR/oB,KAAK,cACL8oB,aAAqC,OAAvBg2J,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyB0E,YACvC11J,SAAUC,EACVH,WAAY,CAAEC,UAAW,IACzBpvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAO20K,YAChBx1J,WAAYnf,EAAO20K,YAAc30K,EAAO20K,YAAYpiL,QAAU,SAIpEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,iBAAgBrnB,SACjCa,cAACmnB,GAAS,CACR/oB,KAAK,gBACL8oB,aAAqC,OAAvBg2J,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyB2E,cACvC31J,SAAUC,EACVH,WAAY,CAAEC,UAAW,IACzBpvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAO40K,cAChBz1J,WAAYnf,EAAO40K,cAAgB50K,EAAO40K,cAAcriL,QAAU,SAIxEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAACmnB,GAAS,CACR/oB,KAAK,SACL8oB,aAAqC,OAAvBg2J,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBsE,OACvCt1J,SAAUC,EACVH,WAAY,CAAEC,UAAW,IACzBpvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAOu0K,OAChBp1J,WAAYnf,EAAOu0K,OAASv0K,EAAOu0K,OAAOhiL,QAAU,SAI1DQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,iBAAgBrnB,SACjCa,cAACmnB,GAAS,CACR/oB,KAAK,eACL8oB,aAAqC,OAAvBg2J,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyB4E,aACvC51J,SAAUC,EACVH,WAAY,CAAEC,UAAW,IACzBpvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAO60K,aAChB11J,WACEnf,EAAO60K,aAAe70K,EAAO60K,aAAatiL,QAAU,SAK5DQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,qBAAoBrnB,SACrCa,cAACmnB,GAAS,CACR/oB,KAAK,mBACL8oB,aAAqC,OAAvBg2J,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyB6E,iBACvC71J,SAAUC,EACVH,WAAY,CAAEtmB,IAAK,GACnB7I,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAO80K,iBAChB31J,WACEnf,EAAO80K,iBAAmB90K,EAAO80K,iBAAiBviL,QAAU,SAKpEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,sBAAqBrnB,SACtCa,cAACmnB,GAAS,CACR/oB,KAAK,oBACL8oB,aAAqC,OAAvBg2J,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyB8E,kBACvC91J,SAAUC,EACVH,WAAY,CAAEtmB,IAAK,GACnB7I,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAO+0K,kBAChB51J,WACEnf,EAAO+0K,kBAAoB/0K,EAAO+0K,kBAAkBxiL,QAAU,SAKtEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,mBAAkBrnB,SACnCa,cAACmnB,GAAS,CACR/oB,KAAK,iBACL8oB,aAAqC,OAAvBg2J,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyB+E,eACvC/1J,SAAUC,EACVH,WAAY,CAAEtmB,IAAK,GACnB7I,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAOg1K,eAChB71J,WACEnf,EAAOg1K,eAAiBh1K,EAAOg1K,eAAeziL,QAAU,SAKhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,mBAAkBrnB,SACnCa,cAACmnB,GAAS,CACR/oB,KAAK,iBACL8oB,aAAqC,OAAvBg2J,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBgF,eACvCh2J,SAAUC,EACVH,WAAY,CAAEtmB,IAAK,GACnB7I,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAOi1K,eAChB91J,WACEnf,EAAOi1K,eAAiBj1K,EAAOi1K,eAAe1iL,QAAU,SAKhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,wBAAuBrnB,SACxCa,cAACmnB,GAAS,CACR/oB,KAAK,sBACL8oB,aAAqC,OAAvBg2J,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBiF,oBACvCj2J,SAAUC,EACVH,WAAY,CAAEtmB,IAAK,GACnB7I,KAAK,SACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT/kB,QAASqL,EAAOk1K,oBAChB/1J,WACEnf,EAAOk1K,oBAAsBl1K,EAAOk1K,oBAAoB3iL,QAAU,SAK1EQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAAApnB,SACVa,cAACqhF,GAAkB,CACjB76D,MAAM,6BACN08D,eAAuC,OAAvBg6F,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBkF,gBACzCt7J,QAASA,EACT1oB,KAAK,2BACLgW,MAAM,UACN1D,UAAWC,KAAO6mK,wBAKzB,EC7RA,MAAM6K,GAAmCj4J,OAAaC,MAAM,CACjEhQ,KAAM+P,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,EAAG4gG,GAAarjG,EAAUqC,WAAWI,IAAK,IAC9CC,QAAQ,cAAe,CACtBpG,QAAS,yCAGb+hL,cAAen3J,OAEZ1kB,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWoB,WAAY,IACrDnB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWY,eAElCm7K,UAAWl3J,OAERzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChD6pF,WACA4wF,cAEHqB,UAAWr3J,OAERzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAC/C6pF,WACA4wF,cAEHsB,IAAKt3J,OAEFzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAC/C6pF,WACA4wF,cACHuB,aAAcv3J,OAEXzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAC/C6pF,WACA4wF,cACHwB,YAAax3J,OAEVzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAC/C6pF,WACA4wF,cACHyB,cAAez3J,OAEZzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAC/C6pF,WACA4wF,cACHoB,OAAQp3J,OAELzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAC/C6pF,WACA4wF,cACH0B,aAAc13J,OAEXzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAC/C6pF,WACA4wF,cACH2B,iBAAkB33J,OAEfolE,WACA4wF,cACA16K,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWoB,WAAY,IACrD4jB,UAAUrnB,EAAUqC,WAAWY,eAC/B6R,WAAWuqG,GAAS+K,MAAM/K,GAAO,KAAOA,IAC3C4/D,oBAAqB/3J,OAElBolE,WACA4wF,cACA16K,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWoB,WAAY,IACrD4jB,UAAUrnB,EAAUqC,WAAWY,eAC/B6R,WAAWuqG,GAAS+K,MAAM/K,GAAO,KAAOA,IAC3Cy/D,kBAAmB53J,OAEhBolE,WACA4wF,cACA16K,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWoB,WAAY,IACrD4jB,UAAUrnB,EAAUqC,WAAWY,eAC/B6R,WAAWuqG,GAAS+K,MAAM/K,GAAO,KAAOA,IAC3C0/D,eAAgB73J,OAEbolE,WACA4wF,cACA16K,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWoB,WAAY,IACrD4jB,UAAUrnB,EAAUqC,WAAWY,eAC/B6R,WAAWuqG,GAAS+K,MAAM/K,GAAO,KAAOA,IAC3C2/D,eAAgB93J,OAEbolE,WACA4wF,cACA16K,IAAI,EAAG6gG,GAAarjG,EAAUqC,WAAWoB,WAAY,IACrD4jB,UAAUrnB,EAAUqC,WAAWY,eAC/B6R,WAAWuqG,GAAS+K,MAAM/K,GAAO,KAAOA,IAC3C+/D,yBAA0Bl4J,OAAcg2J,gBCP3BmC,OAxFuCA,KACpD,MAAM,WACJvvJ,EAAU,YACVwlG,EAAW,SACXmjD,EAAQ,mBACR15E,EAAkB,sBAClBE,EAAqB,wBACrB+6E,GACEJ,KAEEjyJ,EAAOC,aAAoC,CAC/CC,SAAUC,aAAYq3J,IACtBp3J,KAAM,aAgCR,OACEjrB,cAAAyV,WAAA,CAAAtW,SACEsR,eAAC4U,GAAM,CAACzM,KAAMoa,EAAYrI,QAAS6tG,EAAYr5H,SAAA,CAC7Ca,cAACkmB,GAAW,CAAA/mB,SAAC,uBACbsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAnCDxf,IACpB,IAAKgf,EAAK2B,UAAUE,QAAS,OAE7B,MAAMq0J,EAAM,CACVphF,YAAa9zF,EAAKwO,KAClBqnK,IAAK71K,EAAK61K,IACVC,aAAc91K,EAAK81K,aACnBH,OAAQ31K,EAAK21K,OACbM,aAAcj2K,EAAKi2K,aACnBR,UAAWz1K,EAAKy1K,UAChBC,cAAe11K,EAAK01K,cACpBa,gBAAiBv2K,EAAKy2K,yBACtBJ,eAAgBr2K,EAAKq2K,eACrBC,oBAAqBt2K,EAAKs2K,oBAC1BJ,iBAAkBl2K,EAAKk2K,iBACvBE,eAAgBp2K,EAAKo2K,eACrBD,kBAAmBn2K,EAAKm2K,kBACxBP,UAAW51K,EAAK41K,UAChBG,YAAa/1K,EAAK+1K,YAClBC,cAAeh2K,EAAKg2K,eAGlB3E,EACF/6E,EAAsB,IAAK+6E,KAA4B6D,IAEvD9+E,EAAmB8+E,EACrB,IAUMv1J,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAAC2+K,GAAiC,CAChCzB,wBAAyBA,EACzBryJ,KAAMA,MAGV7qB,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CAACkB,WAAS,EAACjB,QAAS8yG,MAEzCx4H,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC8vF,GAAY,CACXnpE,WAAS,EACT1P,GAAG,2BACHgR,UACG4C,EAAK2B,UAAUC,UACf5B,EAAK2B,UAAUE,SAChBivJ,EAEF9+K,KAAK,SACL6oB,QAASA,OACTjc,KAAK,WACLuc,QAAS21J,kBAOpB,EC1DQ6G,OAlCf,WACE,MAAM,QAAEx8J,EAAO,OAAEsoB,EAAM,uBAAEgvI,EAAsB,kBAAEjB,GAC/CS,KAMF,OAJAhqK,qBAAU,KACRwqK,GAAwB,GACvB,IAGD7sK,eAACqI,KAAG,CAAC4S,GAAI,EAAEvsB,SAAA,CACTa,cAAC25E,GAAS,CACR1iE,GAAG,yBACHyO,QAASA,IAAM22J,IAAoBl9K,SACpC,iCAGDa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,aAAYhU,SACzCa,cAAC4rB,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SACrD6mB,IAAYsoB,EACXtuC,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC02E,KAAc,CAACtiE,MAAM,gBAGxB3D,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACqhL,GAAiC,IAClCrhL,cAACuiL,GAAmC,aAOlD,ECIeE,OApC2B,CACxC,CACE7sK,KAAM,4BACNxX,KAAM,aACNyX,OAAO,EACPC,UACE9V,cAAC+8K,GAAyC,CAAA59K,SACxCa,cAACwiL,GAAiB,MAGtB9tK,WAAYqZ,GAAgBK,kCAE9B,CACExY,KAAM,2BACNxX,KAAM,YACNyX,OAAO,EACPC,UACE9V,cAAC49K,GAAiC,CAAAz+K,SAChCa,cAACohL,GAAgB,MAGrB1sK,WAAYqZ,GAAgBK,kCAE9B,CACExY,KAAM,oCACNxX,KAAM,qBACNyX,OAAO,EACPC,UACE9V,cAACu7K,GAAyC,CAAAp8K,SACxCa,cAAC48K,GAAwB,MAG7BloK,WAAYqZ,GAAgBK,mCC9BjBs0J,OATf,WACE,OACEjyK,eAACwoE,GAAW,CAACn5E,MAAM,qBAAoBX,SAAA,CACrCa,cAAC83F,GAAO,CAACxiF,MAAOmtK,KAChBziL,cAACmV,EAAM,CAACG,MAAOmtK,GAAyBltK,SAAS,qBAGvD,EC6BO,MAAMotK,GAA8Bv4J,OAAaC,MAAM,CAC5DsoB,OAAQvoB,OAEL5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QAGxCi9K,GAA+C,CAC1D/vI,SAAU,EACVF,OAAQ,GACRkwI,WAAW,GA2NEC,OAxN0BA,KAAO,IAADC,EAAAC,EAAAC,EAC7C,MAAM,MAAEvlK,EAAK,SAAEwB,EAAQ,aAAEizD,EAAY,qBAAEC,Gra4CvCpzE,qBAAWgzE,KqazCTrlC,UAAW2sD,EACX1sD,UAAW+rD,EACXjuE,UAAWguE,GACTjsD,MAEFE,UAAW8nE,EACX7nE,UAAW8nE,EACXhqF,UAAWiqF,GACTloE,KACE5hB,EAAOC,aAA4B,CACvCC,SAAUC,aAAY23J,IACtB13J,KAAM,cAEDu4D,EAAkBC,GAAuBhyE,oBAAkB,GAElEqB,qBAAU,KACR,IAAImV,EACFzD,GAAuBm+J,GAA6B93J,EAAKnG,aACxDmG,EAAK2B,UAAUC,QAClBg3D,EAAoBx7D,EAAS,GAC5B,CAAC4C,EAAK2B,UAAUE,QAAS7B,EAAK/D,QAAS+D,EAAK2B,UAAUC,UAEzD,MAAMkuD,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,KACRytD,SAAU,WACV1xE,MAAO,OAET,CACEikB,OAAQ,SACRytD,SAAU,SACV1xE,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,UACVE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBuR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAAA,CAC/Da,cAACg/E,GAAe,CAACt5D,QAASA,IAAMw/D,EAAWlI,EAAImI,UAAUhmF,SACvDa,cAAColF,GAAQ,CAAC/xE,MAAO,GAAIC,OAAQ,OAE/BtT,cAAC8Y,KAAG,CAACG,GAAI,EAAE9Z,SACR69E,EAAImI,SAAS09F,UACZ7iL,cAACg/E,GAAe,CAACt5D,QAASA,IAAM86D,EAAaxD,EAAImI,UAAUhmF,SACzDa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,OAGjCtT,cAAC8Y,KAAG,CAACzF,MAAO,GAAIC,OAAQ,SAGxB,EAERD,MAAO,MACP2xE,eAAe,KAGnB,IAyBIE,EAAapzE,UACjBoN,EAAS,CACPriB,KAAM80E,GAA6BG,cACnC5zD,QAASy0B,IAEX2mD,GAAY,EAGR9Y,EAAe1uE,UACnBoN,EAAS,CACPriB,KAAM80E,GAA6BG,cACnC5zD,QAASy0B,IAEX8hE,GAAwB,EAG1B,OACEz0G,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,uBAAsBX,SAAA,CACvCa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CAAC1iE,GAAG,mBAAmByO,QA5BvB5T,UAChBoN,EAAS,CACPriB,KAAM80E,GAA6BG,cACnC5zD,QAAS,OAEXo7E,GAAY,EAuB8Cn6F,SAAC,mBAItDue,EAAMu5B,SAAWv5B,EAAMu5B,QAAQt5C,OAAS,GACvCqC,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAM6R,EAAMu5B,QACZq5B,MAAI,EACJwK,OAAK,EACLF,YAAU,EACVC,aAAc,SAKtBpqE,eAAC4U,GAAM,CACLzM,KAAM8/E,EACN/tE,QAASguE,EACTqlB,WAAY,CAAE/qG,MAAO,CAAEI,MAAO,QAAUlU,SAAA,CAExCa,cAACkmB,GAAW,CAAA/mB,SACTue,EAAMq0D,eAAiB,gBAAkB,iBAE5CthE,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAtEHsnB,IACpBw/B,EACEz0D,EAAMq0D,eACF,IAAKr0D,EAAMq0D,kBAAmBp/B,GAC9B,IAAKiwI,MAA6BjwI,IAExCgmD,GAAY,IAiEJntE,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAAC4rB,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgBC,QAAS,EAAEhoC,SACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,SAAQrnB,SACzBa,cAACmnB,GAAS,CACR/oB,KAAK,SACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,aAAkC,QAAtB67J,EAAErlK,EAAMq0D,sBAAc,IAAAgxG,OAAA,EAApBA,EAAsBpwI,OACpC/wC,QAASipB,EAAK5d,OAAO0lC,OACrBvmB,WACEvB,EAAK5d,OAAO0lC,OAAS9nB,EAAK5d,OAAO0lC,OAAOnzC,QAAU,aAO9DQ,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACylB,GAAkB,CACjBxO,GAAG,sBACHyO,QAASA,IAAMizE,IACfhyE,WAAS,MAGb3mB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC+lB,GAAgB,CACf9O,GAAG,oBACH0P,WAAS,EACTsB,SAAUu7D,iBAOtB/yE,eAACu7B,GAAM,CACLpzB,KAAM+7F,EACNhqF,QAAS+pF,EACTlkG,SAAS,KAAIrR,SAAA,CAEbsR,eAAC+7B,GAAW,CAAArtC,SAAA,CACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,mCACzBa,cAACgR,IAAU,CAACN,UAAU,WAAUvR,SAAA,GAAAkB,OAAyB,QAAzB2iL,EAAKtlK,EAAMq0D,sBAAc,IAAAixG,OAAA,EAApBA,EAAsBnwI,SAAQ,OAAAxyC,OAA0B,QAA1B4iL,EAAMvlK,EAAMq0D,sBAAc,IAAAkxG,OAAA,EAApBA,EAAsBtwI,aAEjG3yC,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjB9oE,GAAG,yBACHxN,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPxG,EAAS,CACPriB,KAAM80E,GAA6BG,cACnC5zD,QAAS,OAEXw2F,GAAwB,IAG5B10G,cAACssC,GAAY,CACXr1B,GAAG,2BACHxN,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KArInB0sD,SACAsiC,iBAyIG,EC5NQwuE,OApC8BA,KAC3C,MAAOxmB,EAASC,GAAclrJ,mBAA0B,OACjDmrJ,EAAeC,GAAoBprJ,oBAAkB,IACtD,WAAE0H,GAAeQ,KAEvB7G,qBAAU,KACRkqJ,GAAc,GACb,IAEH,MAAMA,EAAelrJ,UACnBugE,GAAeC,UAAU,4BACtB3nE,MAAM4gB,GAAWoxI,EAAWpxI,KAC5BzoB,OAAOlB,IACNuX,EAAWvX,EAAMpC,SACjBq9J,GAAiB,EAAK,GACtB,EAGN,OACE78J,cAACi5E,GAAW,CAACn5E,MAAM,2BAA0BX,SAC1Cy9J,EACC58J,cAACgR,IAAU,CAAA7R,SAAC,6EAIVu9J,EACF18J,cAACgR,IAAU,CAACN,UAAWkV,KAAW6xF,mBAAmBt4G,SACnDa,cAAA,OAAKu2B,wBAAyB,CAAEC,OAAe,OAAPkmI,QAAO,IAAPA,OAAO,EAAPA,EAASr4J,aAGnDrE,cAACo3I,KAAQ,CAAC/jI,MAAO,OAAQC,OAAQ,OAEvB,ECrBlB,MAAM6vK,GAAsB/4J,OAAaC,MAAM,CAC7CxmB,OAAQumB,OAEL5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QAgMtCy9K,OA7LiBA,KAC9B,MAAM,SAAEj3J,EAAQ,OAAElf,EAAM,aAAEoe,EAAY,MAAEk5F,GAAUz5F,aAAQ,CACxDC,SAAUC,aAAYm4J,OAEjBt3K,EAAMg9F,GAAWp3F,sBAClB,WAAE0H,GAAeQ,MACjB,SAAEuF,GAAaO,KACf8X,EAAUC,cAEV6rJ,EAAsB9+D,EAAM,WAC3B++D,EAAkBC,GAAuBnyK,IAAMK,SAAS,IACxD+4C,EAAgBszG,GACrB1sJ,IAAMK,SAAgC,MAElC+xK,EAAkBnmK,IACtB,IAAIq2B,EAAWg4C,SAASruE,EAAMnH,OAAO3Z,OACrCgnL,EAAoB7vI,GACpB,IAAIwW,EAAa,OAAJr+C,QAAI,IAAJA,OAAI,EAAJA,EAAM6Q,MAAMiX,GAAMA,EAAE+f,WAAaA,IAC9CoqH,EAAwB,OAAN5zG,QAAM,IAANA,IAAU,KAAK,EAuB7B9xB,EAAkBjsB,IACtBorB,EAAQ93B,KAAK0M,EAAI,EAGbwuE,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,GACRytD,SAAU,WACV1xE,MAAO,KACP4xE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBc,cAAC2oF,KAAK,CAEJjH,QAAS4hG,IAAqBtmG,EAAImI,SAASzxC,SAC3CzpB,SAAUu5J,EACVjnL,MAAOygF,EAAImI,SAASzxC,SACpBt/B,MAAM,WAAS,GAAA/T,OAJPijL,EAAgB,KAAAjjL,OAAI28E,EAAImI,SAASzxC,UAKzC,GAGN,CACEpc,OAAQ,OACRytD,SAAU,WACV1xE,MAAO,MACP4xE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjBmxF,GAAoB9pB,EAAImI,SAAS/yE,SAAUixK,EAAY,GAE3D,CACE/rJ,OAAQ,WACRytD,SAAU,WACV1xE,MAAO,OAET,CACEikB,OAAQ,QACRytD,SAAU,aACV1xE,MAAO,OAET,CACEikB,OAAQ,yCACRytD,SAAU,UACVE,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACpC2nG,GAAoB9pB,EAAImI,SAASnxC,QAASqvI,IACtC,KAIb,CAACx3K,EAAMy3K,IAGT,OACEtjL,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,aAAYX,SAAA,CAC7Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAAC,2HAKlCa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTsR,eAACO,IAAU,CAACC,QAAQ,KAAI9R,SAAA,CAAC,yCACgB,SAG3Ca,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAA,QACE2nB,aAAa,MACbyD,SAAUC,GAvFErf,IAAmB,IAADy3K,EACtC57H,GAAcgB,+BACG,QAD2B46H,EAC1Cz3K,EAASnI,cAAM,IAAA4/K,OAAA,EAAfA,EAAiBx8E,YAAYC,WAE5Bv8F,MAAMiB,GAAai9F,EAAQj9F,KAC3B9I,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,IAmFtCgsB,YAAU,EAAArsB,SAEVsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACmnB,GAAS,CACRQ,aAAa,MACbvpB,KAAK,SACLuJ,YAAY,gBACZukB,SAAUC,EACVtvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACN8S,aAAc,GACdP,WAAS,EACT/kB,QAASqL,EAAOpJ,OAChBuoB,WAAYnf,EAAOpJ,OAASoJ,EAAOpJ,OAAOrE,QAAU,OAGxDQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACwmF,GAAY,CACXvvE,GAAG,2BACHpa,KAAK,SACLorB,WAEIo7J,GACAA,EAAYp8E,YAAYC,UAAUvpG,QAAU,GAE/CwB,SACF,2BAOR0M,GAAQA,EAAKlO,OAAS,EACrB8S,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAMA,EACN+uE,YAAU,EACVtK,MAAI,EACJ0K,YAAcgC,IACL,CACLt3D,QAASA,KACP89J,EAAe,CACbttK,OAAQ,CACN3Z,MAAOygF,EAAImI,SAASzxC,WAEtB,EAEJhjC,UAAU,GAADrQ,OAAKulB,KAAW89J,gBAG7B5oG,OAAK,IAEP96E,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,SAAS2G,GAAI,EAAE1uC,SAChDa,cAAC2lB,KAAM,CACL1O,GAAG,4BACHhG,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBgC,SAA+B,IAArBq7J,EACV59J,QA/IU5T,UACtBoN,EAAS,CACPriB,KAAM2gB,GAAuBQ,iBAC7BE,QAAShU,KAAK8H,UAAUw4C,KAE1BtrC,EAAS,CACPriB,KAAM2gB,GAAuBa,yBAC7BH,QAAS,SAEXka,EAAe,+BAA+B,EAsITj5B,SAC1B,oBAMY,KAAb,OAAJ0M,QAAI,IAAJA,OAAI,EAAJA,EAAMlO,SACJqC,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,UAKhB,ECnDP,SAAS8qG,GAAY5uK,GAA+B,IAADqmI,EACjD,MAAM,KAAEzpD,GAAS58E,GACV6D,EAAM6e,GAAWhmB,oBAAS,IAC1BhL,EAAY24F,GAAiB3tF,qBAM9BmyK,EAAajyF,IACjB,MACM2N,GADa7+F,OAAOm3E,KAAOn3E,OAAOyvF,WACZrY,gBAAgB8Z,GAC5CyN,EAAcE,GACd7nE,GAAQ,EAAK,EAGf,OAAKk6D,EAKHlhF,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAAC4V,KAAU,CACTpP,GAAE,GAAA5W,OAAS,OAAJsxF,QAAI,IAAJA,OAAI,EAAJA,EAAMvzF,MAEbxB,KAAK,QACL8T,UAAWC,KAAO8/E,yBAClB/qE,QAASA,IAAMisE,GAtBGA,KACtBiyF,EAAUjyF,EAAK,EAqBYoB,CAAepB,GAAMxyF,SAAA,CAE5Ca,cAAC2wF,GAAgB,IACjB3wF,cAAA,OAAAb,SAAgB,QAAhBi8I,EAAU,OAAJzpD,QAAI,IAAJA,OAAI,EAAJA,EAAMvzF,YAAI,IAAAg9I,IAAI,oBAEtB3qI,eAACu7B,KAAM,CACLx7B,SAAS,KACT1Q,MAAM,aACN8Y,KAAMA,EACN+R,QAASA,IAAM8M,GAAQ,GAAOt4B,SAAA,CAE9Ba,cAACwsC,KAAW,CAAArtC,SAAC,eACba,cAACusC,KAAa,CAAAptC,SACZa,cAAA,OAAKiT,MAAO,CAAEI,MAAO,QAAUxC,IAAKpK,YAvBnCzG,cAAAyV,WAAA,GA4BX,CAGeouK,OA5KgE3kL,IAUxE,IAVyE,KAC9EuK,EAAI,KACJrL,EAAI,YACJ0lL,EAAW,SACX18J,EAAQ,OACR0pE,EACAjmE,MAAM,SAAEy9D,EAAQ,OAAEr7E,EAAM,SAAEkf,GAAU,MACpC/X,EAAQ,UAAS,MACjBxS,EAAK,WACLwqB,GACDltB,EACC,MAAM,WAAEia,GAAeQ,MAEhB+D,EAAOi9F,GAAYlpG,mBAA2C,CACnE68B,QAAQ,EACRqjD,KAAM,OAGR7+E,qBAAU,KACJgxK,EACF58F,GAA2B8W,iCAAiC,CAC1Dn8B,WAAYiiH,EAAYjiH,WACxBnuB,SAAUowI,EAAYpwI,WAErB/oC,MAAMmxC,IACL,MAAM61C,EAAO,IAAIptE,KAAK,CAACu3B,GAAOgoI,EAAY1lL,MAC1Cu8G,EAAS,CAAErsE,QAAQ,EAAMqjD,KAAMA,GAAO,IAEvC7uF,OAAM,KACLqW,EAAW,yDACXwhG,EAAS,IAAKj9F,EAAO4wB,QAAQ,GAAO,IAGxCqsE,EAAS,IAAKj9F,EAAO4wB,QAAQ,GAC/B,GACC,IAQHx7B,qBAAU,KACJ4K,EAAMi0E,MAAQj0E,EAAMi0E,gBAAgBptE,MACtC+jE,EAASlqF,EARUi0F,KAErB,IADA,IAAI9hB,EAAI,IAAIwzG,eAAe,IAAIC,eAAiB,IAAIC,aAC3C9tK,EAAI,EAAG+tK,EAAM7xF,EAAM10F,OAAQwY,EAAI+tK,EAAK/tK,IAAKo6D,EAAEj7D,MAAMi+B,IAAI8+C,EAAMl8E,IACpE,OAAOo6D,EAAE8hB,KAAK,EAKG8xF,CAAc,CAACzmK,EAAMi0E,OAAQ,CAAEF,gBAAgB,GAChE,GACC,CAAC/zE,EAAMi0E,KAAMvzF,IAsChB,OACEqS,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWC,KAAO8hF,cAActzF,SAAA,CAC9CsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAAA,SACEioB,SAAUb,IAAa1J,EAAM4wB,OAC7BwiD,OAAQA,GAAU,IAClB95E,IAAKmV,EACLlV,GAAG,aACHpa,KAAK,OACLuB,KAAMA,EACN6U,MAAO,CAAEC,QAAS,QAClB+W,SAAW5M,IACT,MAAMs0E,EAAOt0E,EAAMnH,OAAOm8E,MAC1BsoB,EAAS,IAAKj9F,EAAOi0E,KAAe,OAATA,EAAgB,KAAOA,EAAK,IAAK,IAGhE3xF,cAAA,SAAOk4E,QAAQ,aAAY/4E,SACzBsR,eAAA,QAAAtR,SAAA,CACEa,cAAC2lB,KAAM,CACLsC,SAAUb,IAAa1J,EAAM4wB,OAC7Br9B,QAAQ,WACRmD,MAAOA,EACP1D,UAAWC,KAAOgiF,aAClB/1F,KAAK,QACLkZ,UAAU,OACV4zB,UAAW1pC,cAAC4yF,GAAc,CAACx+E,MAAOA,IAClCuS,WAAS,EAAAxnB,SAERsK,IAnDQwD,KACnB,GAAIrL,GAASwqB,EACX,OACEpsB,cAACkqB,KAAc,CAACtoB,OAAK,EAACqP,QAAQ,WAAU9R,SACrCitB,IAKP,IAAKnf,IAAWA,EAAO7O,GACrB,MAAO,GAET,MAAMgmL,EAAgBn3K,EAAO7O,GAAMoB,QAC/B,CAACyN,EAAO7O,GAAMoB,SACdtB,OAAOymB,OAAO1X,EAAO7O,IAAOsX,KAAK9T,GAAeA,EAAMpC,UAE1D,OAAO4kL,EAAc1uK,KAAI,CAAClW,EAAS3B,IACjCmC,cAACkqB,KAAc,CAACtoB,OAAK,EAACqP,QAAQ,WAAU9R,SACrCK,GAAO,GAAAa,OADuCb,EAAO,KAAAa,OAAIxC,KAG5D,EAiCOwmL,CAAYp3K,WAInBjN,cAAC2jL,GAAW,CAAChyF,KAAMj0E,EAAMi0E,SACpB,ECuHI2yF,OAlQf,SAAsBvvK,GAAe,IAADwvK,EAAAC,EAAArlF,EAAAslF,EAClC,MAAM,SAAEhkK,GAAa1L,GACf,SAAEoX,EAAQ,QAAErF,EAAO,SAAEwhE,EAAQ,MAAEi8B,EAAK,OAAEt3G,GAC1Cm9F,eACI5uF,EAAY0gF,KAEZwoF,EAAiBngE,EAAM,aAE7B,OACE9zG,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,gBAAernB,SAChCa,cAACmnB,GAAS,CACR/oB,KAAK,eACL8tB,SAAUC,EACV/Y,OAAO,SACPzL,YAAY,aACZ/F,QAASqL,EAAOonF,aAChBjoE,WAAYnf,EAAOonF,aAAepnF,EAAOonF,aAAa70F,QAAU,SAItEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,kBAAiBrnB,SAClCa,cAACmnB,GAAS,CACR/oB,KAAK,iBACL8tB,SAAUC,EACV/Y,OAAO,SACPzL,YAAY,aACZ/F,QAASqL,EAAO03K,eAChBv4J,WACEnf,EAAO03K,eAAiB13K,EAAO03K,eAAenlL,QAAU,SAKhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,aAAYrnB,SAC7Ba,cAACmnB,GAAS,CACR/oB,KAAK,YACL8tB,SAAUC,EACVlC,SAAWnf,GACTw9E,EAAS,YAAax9E,EAAEq/J,cAAc5tK,OAExC6W,OAAO,SACPzL,YAAY,UACZgf,WAAS,EACT/kB,QAASqL,EAAOsF,UAChB6Z,WAAYnf,EAAOsF,UAAYtF,EAAOsF,UAAU/S,QAAU,SAIhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACmnB,GAAS,CACR/oB,KAAK,WACL6rB,SAAWnf,GAAMw9E,EAAS,WAAYx9E,EAAEq/J,cAAc5tK,OACtD2vB,SAAUC,EACV/Y,OAAO,SACPzL,YAAY,UACZgf,WAAS,EACT/kB,QAASqL,EAAOqF,SAChB8Z,WAAYnf,EAAOqF,SAAWrF,EAAOqF,SAAS9S,QAAU,SAI9DQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACG,YAAU,EAACF,MAAM,cAAarnB,SACzCa,cAACmnB,GAAS,CACR/oB,KAAK,aACL6rB,SAAWnf,GACTw9E,EAAS,aAAcx9E,EAAEq/J,cAAc5tK,OAEzC2vB,SAAUC,EACV/Y,OAAO,SACPzL,YAAY,SACZgf,WAAS,EACT/kB,QAASqL,EAAOmzF,WAChBh0E,WAAYnf,EAAOmzF,WAAanzF,EAAOmzF,WAAW5gG,QAAU,SAIlEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,gBAAernB,SAChCa,cAAC4lF,GAAU,CACTmB,gBAAc,EACdC,QAAM,EACNjhF,QAAS+mC,OAAS+C,SAClB+0I,oBACG33K,EAAO6nD,WAAa5xD,EAAUqC,WAAWO,YAE5C++K,gBAAiB53K,EAAO6nD,WAAa5xD,EAAUqC,WAAWQ,QAC1D3H,KAAK,YACLgV,OAAO,SACPzL,YAAazE,EAAUyE,YAAYC,KACnCkf,QAASA,EACTI,aAAc,KACdtlB,QAASqL,EAAO6nD,UAChB1oC,WAAYnf,EAAO6nD,UAAY7nD,EAAO6nD,UAAUt1D,QAAU,SAIhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,gBAAernB,SAChCa,cAACmnB,GAAS,CACR/oB,KAAK,YACL6rB,SAAWnf,GACTw9E,EAAS,YAAax9E,EAAEq/J,cAAc5tK,OAExC2vB,SAAUC,EACVxkB,YAAY,aACZyL,OAAO,SACPuT,WAAS,EACT/kB,QAASqL,EAAOqzF,UAChBl0E,WAAYnf,EAAOqzF,UAAYrzF,EAAOqzF,UAAU9gG,QAAU,SAIhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,mBAAkBrnB,SAC7Ca,cAACk/E,GAAc,CACb9gF,KAAK,mBACL2pB,QAASvM,EAAU9F,KAAK3N,IACf,CACLxL,MAAOwL,EAAQ43F,YACfn5E,MAAOze,EAAQ23F,gBAGnB54E,QAASA,EACT1T,OAAO,SACPzL,YAAY,aACZ/F,QAASqL,EAAOozF,iBAChBn4E,aACEjb,EAAOozF,iBACqB,QADLkkF,EAClBt3K,EAAOozF,wBAAgB,IAAAkkF,OAAA,EAAxBA,EAAkC/kL,QAClC,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACG,YAAU,EAACF,MAAM,iBAAgBrnB,SAC5Ca,cAACmnB,GAAS,CACR/oB,KAAK,aACL6rB,SAAWnf,GACTw9E,EAAS,aAAcx9E,EAAEq/J,cAAc5tK,OAEzC2vB,SAAUC,EACVxkB,YAAY,WACZyL,OAAO,SACPuT,WAAS,EACT/kB,QAASqL,EAAOszF,WAChBn0E,WAAYnf,EAAOszF,WAAatzF,EAAOszF,WAAW/gG,QAAU,SAIlEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,cAAarnB,SACxCa,cAACk/E,GAAc,CACb9gF,KAAK,kBACLuJ,YAAY,aACZyL,OAAO,SACP2U,QAASvM,EAAU9F,KAAK3N,IAAO,CAC7BxL,MAAOwL,EAAQ43F,YACfn5E,MAAOze,EAAQ23F,gBAEjB54E,QAASA,EACTllB,QAASqL,EAAO+yF,gBAChB93E,aACEjb,EAAO+yF,gBACoB,QADLwkF,EACjBv3K,EAAO+yF,uBAAe,IAAAwkF,OAAA,EAAvBA,EAAiChlL,QACjC,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,GAAGptB,SACxBa,cAACumB,GAAW,CAACC,MAAM,SAASG,WAAS,EAAAxnB,SACnCa,cAACgqB,KAAU,CACTlD,QAASA,EACT1oB,KAAK,SACLuW,OAASmwK,GACP9kL,cAAC0oF,KAAU,IAAKo8F,EAAO9nG,KAAG,EAAA79E,SACvBi9F,GAAe1mF,KAAK22G,GACnBrsH,cAACwhF,KAAgB,CAEfjlF,MAAO8vH,EAAE9vH,MACTuqB,QAAS9mB,cAAC2oF,KAAK,CAACv0E,MAAM,YACtBoS,MAAO6lG,EAAE7lG,OAHJ6lG,EAAE7lG,iBAWrBxmB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,aAAYrnB,SAC7Ba,cAAC4lF,GAAU,CACTmB,gBAAc,EACdC,QAAM,EACNjhF,QAAS+mC,OAAS+C,SAClB+0I,oBACG33K,EAAOkzF,WAAaj9F,EAAUqC,WAAWO,YAE5C++K,gBAAiB53K,EAAOkzF,WAAaj9F,EAAUqC,WAAWQ,QAC1D3H,KAAK,YACLuJ,YAAazE,EAAUyE,YAAYC,KACnCwL,OAAO,SACP8T,aAAc,KACdJ,QAASA,EACTllB,QAASqL,EAAOkzF,UAChB/zE,WAAYnf,EAAOkzF,UAAYlzF,EAAOkzF,UAAU3gG,QAAU,SAIhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,cAAarnB,SAC9Ba,cAAC4lF,GAAU,CACTmB,gBAAc,EACdC,QAAM,EACN5oF,KAAK,aACLuJ,YAAazE,EAAUyE,YAAYC,KACnCwL,OAAO,SACP8T,aAAc,KACdJ,QAASA,EACTllB,QAASqL,EAAO83K,WAChB34J,WAAYnf,EAAO83K,WAAa93K,EAAO83K,WAAWvlL,QAAU,GAC5DwG,QAAS0+K,EACTp+F,gBACGr5E,EAAO83K,YACR7hL,EAAUqC,WAAWO,YAAc,+BAErC8+K,oBACG33K,EAAO83K,YAAc7hL,EAAUqC,WAAWO,kBAKnD9F,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC6jL,GAA0B,CACzBzlL,KAAK,OACLqL,KAAK,cACLohB,KAAM,CAAEsB,WAAUrF,UAAS7Z,SAAQs3G,QAAOj8B,YAC1CwI,OAAO,mCACPI,iBAAiB,EACjB4yF,YAAarjK,GAAY,CACvBriB,KAAuB,QAAnB+gG,EAAE1+E,EAASgC,gBAAQ,IAAA08E,IAAI,GAC3B6lF,IAAqB,QAAlBP,EAAEhkK,EAASwkK,eAAO,IAAAR,IAAI,GACzB5iH,WAAYphD,EAASohD,WACrBnuB,SAAUjzB,EAASizB,gBAM/B,EChRA,MAAMwxI,GAAc,gBAEPC,GAAuB/6J,OAAaC,MAAM,CACrDgqE,aAAcjqE,OAEX5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAClD6M,OAAQ4X,OAEL5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,EAAG4gG,GAAarjG,EAAUqC,WAAWI,IAAK,IACjD4M,UAAW6X,OAER5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDC,QAAQs/K,GAAa,wBACxB9kF,WAAYh2E,OAETolE,WACA4wF,cACAx6K,QAAQs/K,GAAa,CACpB1lL,QAAS,uBACT8zJ,oBAAoB,IAErB3tJ,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD2M,SAAU8X,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BI,QAAQs/K,GAAa,wBACrBv/K,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDmvD,UAAW1qC,OAER5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAImnC,OAAS+5C,MAAM,OAAOh3C,SAAU3sC,EAAUqC,WAAWQ,SACzDwkB,UAAUrnB,EAAUqC,WAAWO,aAClCw6F,UAAWl2E,OAER5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClD06F,iBAAkBj2E,OAEf5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,UAClC+6F,WAAYn2E,OAAazkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KACxEw6F,UAAW/1E,OAER5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAImnC,OAAS+5C,MAAM,OAAOh3C,SAAU3sC,EAAUqC,WAAWQ,SACzDwkB,UAAUrnB,EAAUqC,WAAWO,aAClCi/K,WAAY36J,OAET5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWO,aAC/BJ,IACC0kB,KAAQ,aACRlnB,EAAUqC,WAAWO,YAAc,gCAEvC6+K,eAAgBv6J,OAEb5kB,SAAStC,EAAUqC,WAAWC,UAC9BI,QAAQ,iBAAkB,kDAC1BD,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDq6F,gBAAiB51E,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,UAClCmsF,KAAMvnE,OAEH2uF,KAAK,YAAa,qCAAsCx8G,IAC3C,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOoB,QAAS,MAIhBynL,GAAuBh7J,OAAaC,MAAM,CACrDgqE,aAAcjqE,OAEX5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAClD6M,OAAQ4X,OAEL5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,EAAG4gG,GAAarjG,EAAUqC,WAAWI,IAAK,IACjD4M,UAAW6X,OAER5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDC,QAAQs/K,GAAa,wBACxB9kF,WAAYh2E,OAETolE,WACA4wF,cACAx6K,QAAQs/K,GAAa,CACpB1lL,QAAS,uBACT8zJ,oBAAoB,IAErB3tJ,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD2M,SAAU8X,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BI,QAAQs/K,GAAa,wBACrBv/K,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDmvD,UAAW1qC,OAER5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAImnC,OAAS+5C,MAAM,OAAOh3C,SAAU3sC,EAAUqC,WAAWQ,SACzDwkB,UAAUrnB,EAAUqC,WAAWO,aAClCw6F,UAAWl2E,OAER5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClD06F,iBAAkBj2E,OAEf5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,UAClC+6F,WAAYn2E,OAAazkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KACxEw6F,UAAW/1E,OAER5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAImnC,OAAS+5C,MAAM,OAAOh3C,SAAU3sC,EAAUqC,WAAWQ,SACzDwkB,UAAUrnB,EAAUqC,WAAWO,aAClCi/K,WAAY36J,OAET5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWO,aAC/BJ,IACC0kB,KAAQ,aACRlnB,EAAUqC,WAAWO,YAAc,gCAEvC6+K,eAAgBv6J,OAEb5kB,SAAStC,EAAUqC,WAAWC,UAC9BI,QAAQ,iBAAkB,kDAC1BD,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDq6F,gBAAiB51E,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,UAClCmsF,KAAMvnE,OAEH2uF,KAAK,YAAa,qCAAsCx8G,IAC3C,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOoB,QAAS,MAiHhB0nL,IA7G4Bj7J,OAAaC,MACpD,CACEk1E,aAAcn1E,OAEX5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAClD0uF,aAAcjqE,OAEX5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAClD6M,OAAQ4X,OAAaqjF,KAAK,eAAgB,CACxC0W,GAAK5kB,GAA0C,aAAjBA,EAC9B50F,KAAMyf,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,EAAG4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAEnD4M,UAAW6X,OAAaqjF,KAAK,eAAgB,CAC3C0W,GAAK5kB,GAA0C,aAAjBA,EAC9B50F,KAAMyf,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAChDC,QAAQs/K,GAAa,wCAE1B9kF,WAAYh2E,OAAaqjF,KAAK,eAAgB,CAC5C0W,GAAK5kB,GAA0C,aAAjBA,EAC9B50F,KAAMyf,OAEHxkB,QAAQs/K,GAAa,sCACrBv/K,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QAErD2M,SAAU8X,OAAaqjF,KAAK,eAAgB,CAC1C0W,GAAK5kB,GAA0C,aAAjBA,EAC9B50F,KAAMyf,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BI,QAAQs/K,GAAa,sCACrBv/K,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QAErDmvD,UAAW1qC,OAAWqjF,KAAK,eAAgB,CACzC0W,GAAK5kB,GAA0C,aAAjBA,EAC9B50F,KAAMyf,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAImnC,OAAS+5C,MAAM,OAAOh3C,SAAU3sC,EAAUqC,WAAWQ,SACzDwkB,UAAUrnB,EAAUqC,WAAWO,eAEpCq6F,UAAW/1E,OAAWqjF,KAAK,eAAgB,CACzC0W,GAAK5kB,GAA0C,aAAjBA,EAC9B50F,KAAMyf,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAImnC,OAAS+5C,MAAM,OAAOh3C,SAAU3sC,EAAUqC,WAAWQ,SACzDwkB,UAAUrnB,EAAUqC,WAAWO,eAEpCi/K,WAAY36J,OAAWqjF,KAAK,eAAgB,CAC1C0W,GAAK5kB,GAA0C,aAAjBA,EAC9B50F,KAAMyf,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWO,aAC/BJ,IACC0kB,KAAQ,aACRlnB,EAAUqC,WAAWO,YAAc,kCAGzCk6F,gBAAiB51E,OAAaqjF,KAAK,eAAgB,CACjD0W,GAAK5kB,GAA0C,aAAjBA,EAC9B50F,KAAMyf,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,YAEpC66F,iBAAkBj2E,OAAaqjF,KAAK,eAAgB,CAClD0W,GAAK5kB,GAA0C,aAAjBA,EAC9B50F,KAAMyf,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,YAEpCm/K,eAAgBv6J,OAAaqjF,KAAK,eAAgB,CAChD0W,GAAK5kB,GAA0C,aAAjBA,EAC9B50F,KAAMyf,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BI,QAAQ,iBAAkB,kDAC1BD,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QAErD26F,UAAWl2E,OAAaqjF,KAAK,eAAgB,CAC3C0W,GAAK5kB,GAA0C,aAAjBA,EAC9B50F,KAAMyf,OAEH5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAEpD46F,WAAYn2E,OAAaqjF,KAAK,eAAgB,CAC5C0W,GAAK5kB,GAA0C,aAAjBA,EAC9B50F,KAAMyf,OAAazkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAEpEgsF,KAAMvnE,OAEH2uF,KAAK,YAAa,qCAAsCx8G,IAC3C,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOoB,QAAS,KAG7B,IAGwBysB,OAAaC,MACrC,CACEgqE,aAAcjqE,OAEX5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAClDgsF,KAAMvnE,OAEH2uF,KAAK,YAAa,qCAAsCx8G,IAC3C,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOoB,QAAS,IAE3B2nL,SAAUl7J,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MAClDo/K,WAAY36J,OACT5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWO,aAClCk6F,gBAAiB51E,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,UAClC06F,eAAgB91E,OAEb5kB,SAAStC,EAAUqC,WAAWC,UAC9BI,QAAQ,iBAAkB,oCAC1BD,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAErD,KCtJa4/K,OAxGXrmL,IAA4C,IAA3C,MAAEsmL,EAAK,SAAE9xI,EAAQ,iBAAE+Y,GAAkBvtD,EACxC,MAAM,WAAEia,GAAeQ,KACjBge,EAAajB,KAEb7L,EAAOC,aAA8B,CACzCG,KAAM,WACNF,SAAUC,aAAYm6J,IACtBtwF,cAAe,CACbR,aAAc,GACdswF,eAAgB,GAChBrkF,UAAW,GACXD,sBAAkB7jG,EAClB+jG,WAAY,GACZ5O,UAAMn1F,EACN+V,UAAW,GACXD,SAAU,GACV8tF,WAAY,GACZ5tF,OAAQ,IACRwtF,qBAAiBxjG,KAgDrB,OACEiU,eAAC4U,GAAM,CAACzM,KAAM4sK,EAAM96J,UAAWC,QAASA,IAAM66J,EAAM54I,YAAYztC,SAAA,CAC9Da,cAACkmB,GAAW,CAACC,YAAawR,EAAWX,OAASwuJ,EAAM54I,eAAYpwC,EAAU2C,SAAC,mBAG3Ea,cAACiuG,KAAY,IAAKpjF,EAAI1rB,SACpBsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cApDD5K,IAAoC,IAADglK,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACvD,IAAIC,EAA+B,KAC/BxmK,EAASkxE,gBAAgBu1F,WAC3BD,EAAe,CACb5iL,QAASoc,EAASkxE,KAAK,GACvBlvE,SAAUhC,EAASkxE,KAAK,GAAGvzF,OAG3BqiB,EAASkxE,gBAAgBptE,OAC3B0iK,EAAe,CACb5iL,QAASoc,EAASkxE,KAClBlvE,SAAUhC,EAASkxE,KAAKvzF,OAG5B,MAAM+oL,EAA8C,CAClDzzI,SAAUA,EACV4sD,UAA6B,QAApBmlF,EAAEhlK,EAAS6/E,iBAAS,IAAAmlF,SAAIjpL,EACjCs4D,UAA6B,QAApB4wH,EAAEjlK,EAASq0C,iBAAS,IAAA4wH,SAAIlpL,EACjC+jG,WAAuC,QAA7BolF,EAAqB,QAArBC,EAAEnlK,EAAS8/E,kBAAU,IAAAqlF,OAAA,EAAnBA,EAAqBt4I,cAAM,IAAAq4I,SAAInpL,EAC3CwgG,WAA+B,QAArB6oF,EAAEplK,EAASskK,kBAAU,IAAAc,SAAIrpL,EACnC63F,aAA2C,QAA/ByxF,EAAuB,QAAvBC,EAAEtlK,EAAS4zE,oBAAY,IAAA0xF,OAAA,EAArBA,EAAuBz4I,cAAM,IAAAw4I,SAAItpL,EAC/C0jG,eAA+C,QAAjC8lF,EAAyB,QAAzBC,EAAExlK,EAASkkK,sBAAc,IAAAsB,OAAA,EAAvBA,EAAyB34I,cAAM,IAAA04I,SAAIxpL,EACnD+iG,aAAc,WACd5N,KAAMs1F,EACN10K,UAAqC,QAA5B2zK,EAAoB,QAApBC,EAAE1lK,EAASlO,iBAAS,IAAA4zK,OAAA,EAAlBA,EAAoB74I,cAAM,IAAA44I,SAAI1pL,EACzCgW,OAA+B,QAAzB4zK,EAAiB,QAAjBC,EAAE5lK,EAASjO,cAAM,IAAA6zK,OAAA,EAAfA,EAAiB/4I,cAAM,IAAA84I,SAAI5pL,EACnC2jG,UAA6B,QAApBmmF,EAAE7lK,EAAS0/E,iBAAS,IAAAmmF,SAAI9pL,EACjC8V,SAAmC,QAA3Bi0K,EAAmB,QAAnBC,EAAE/lK,EAASnO,gBAAQ,IAAAk0K,OAAA,EAAjBA,EAAmBl5I,cAAM,IAAAi5I,SAAI/pL,EACvC4jG,WAAuC,QAA7BqmF,EAAqB,QAArBC,EAAEjmK,EAAS2/E,kBAAU,IAAAsmF,OAAA,EAAnBA,EAAqBp5I,cAAM,IAAAm5I,SAAIjqL,EAC3C6jG,iBAA0D,QAA1CsmF,EAA2B,QAA3BC,EAAEnmK,EAAS4/E,wBAAgB,IAAAumF,GAAO,QAAPC,EAAzBD,EAA2BrqL,aAAK,IAAAsqL,OAAP,EAAzBA,EAAkCv5I,cAAM,IAAAq5I,SAAInqL,EAC9DwjG,gBAAwD,QAAzC8mF,EAA0B,QAA1BC,EAAEtmK,EAASu/E,uBAAe,IAAA+mF,GAAO,QAAPC,EAAxBD,EAA0BxqL,aAAK,IAAAyqL,OAAP,EAAxBA,EAAiC15I,cAAM,IAAAw5I,SAAItqL,GAG9D0qF,GAA2B2W,kBAAkBspF,GAC1Cx8K,MAAK,KACJ8hD,IACA+4H,EAAM54I,YACNzzB,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,QAAQ,IAEtErV,OAAM,KACLqW,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WAAW,GAC/C,IAYEsmB,YAAU,EACV9a,UAAWkV,KAAWowI,cAAc72J,SAAA,CAEpCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAACskL,GAAY,MAEftkL,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACylB,GAAkB,CACjBxO,GAAG,gFACHyO,QAAS8/J,EAAM54I,UACfjmB,WAAS,MAGb3mB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC+lB,GAAgB,CACf9O,GAAG,wEACH0P,WAAS,kBAOd,E,qBC1FN,MAAMygK,GAAoBh9J,OAAaC,MAAM,CAClDg9J,gBAAiBj9J,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD2hL,gBAAiBl9J,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClD4hL,gBAAiBn9J,OAEdzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClD6hL,gBAAiBp9J,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClD8hL,gBAAiBr9J,OAEdzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClD+hL,gBAAiBt9J,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,YAGvBmiL,GAAoBv9J,OAAaC,MAAM,CAClDu9J,gBAAiBx9J,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDkiL,gBAAiBz9J,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDmiL,gBAAiB19J,OAEdzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDoiL,gBAAiB39J,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAImnC,OAAS+C,SAAU3sC,EAAUqC,WAAWO,aAC5CykB,UAAUrnB,EAAUqC,WAAWO,aAClCkiL,eAAgB59J,OAEb5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,EAAG4gG,GAAarjG,EAAUqC,WAAWI,IAAK,IACjDsiL,gBAAiB79J,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,UAClCkiL,gBAAiBt9J,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,UAClC6hL,gBAAiBj9J,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD2hL,gBAAiBl9J,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClD4hL,gBAAiBn9J,OAEdzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClD6hL,gBAAiBp9J,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClD8hL,gBAAiBr9J,OAEdzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAquBrCuiL,OAttByChpL,IASjD,IAADshG,EAAAZ,EAAAy1C,EAAA8yC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IATmD,OACvDv+H,EAAM,oBACNw+H,GAAsB,EAAK,oBAC3BC,GAAsB,EAAK,iBAC3Bl8H,EAAgB,OAChBp8C,EAAM,OACNu4K,GAAS,EAAK,GACd3xK,EAAE,kBACF4xK,GAAoB,GACrB3pL,EACC,MAAMsc,EAAY0gF,MACX90E,EAAUgvJ,GAAe3kK,oBAAkB,IAC3Cq3K,EAA2BC,GAAgCt3K,wBAEhEjV,IACI,WAAE2c,GAAeQ,MACfizB,UAAWoxG,EAAkBtzH,UAAWuzH,GAC9CxxG,MACK+2C,EAAkBC,GAAuBhyE,oBAAkB,GAC5DkmB,EAAajB,MAEb,MAAEhZ,GAAUkvC,KACZo8H,EAAyB,MAATtrK,EAAgBA,EAAMyuC,YAAYwI,UAAY,KAE9Ds0H,EAAkB/+H,EAAOg/H,6BAA+B,EAAI,EAC5DC,EAAaj/H,EAAO2K,kBACnB6sB,EAAS0nG,GAAc33K,mBAC5By4C,EAAOg/H,8BAMHG,EAAcv+J,aAA0B,CAC5CG,KAAM,WACNF,SAAUC,aAAYo8J,MAGlBkC,EAAcx+J,aAAyB,CAC3CG,KAAM,WACNF,SAAUC,aAAY28J,MAGxB70K,qBAAU,KACR,GAAI61K,EAAqB,CACvB,MAAMl8J,EAAU48J,EAAY78J,UAAUC,QACtC,IAAIxE,EACFzD,GAAuB4iK,GAAmBiC,EAAY3kK,aACrD+H,EACHg3D,EAAoBx7D,EACtB,IACC,CAACohK,EAAY78J,UAAUE,QAAS28J,EAAYviK,UAE/ChU,qBAAU,KACR,GAAI41K,EAAqB,CACvB,MAAMj8J,EAAU68J,EAAY98J,UAAUC,QACtC,IAAIxE,EACFzD,GAAuBmjK,GAAmB2B,EAAY5kK,aACrD+H,EACHg3D,EAAoBx7D,EACtB,IACC,CAACqhK,EAAY98J,UAAUE,QAAS48J,EAAYxiK,UAkJ/C,OACErW,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAAA,QACEkX,aAAa,MACbyD,SACEs9J,EACIY,EAAYj+J,cAvDKk+J,IAA2C,IAADC,EAAAC,EAAAC,EAAAC,EACrE9hI,GAAc8B,wBAAwB,CACpCmyC,QAASytF,EAAqBlC,gBAC9BvyH,UAAWy0H,EAAqBxB,gBAChChsF,KAAMwtF,EAAqBjC,gBAC3B/0K,UAAWg3K,EAAqB3B,gBAChCt1K,SAAUi3K,EAAqB1B,gBAC/B+B,WAAYL,EAAqBzB,gBACjCt1K,OAAQ+2K,EAAqBvB,eAC7B/rF,MAAOstF,EAAqBhC,gBAC5BvrF,SAAUutF,EAAqB/B,gBAC/B9pK,MAAO6rK,EAAqB9B,gBAC5BznF,gBAA4D,QAA7CwpF,EAAsC,QAAtCC,EAAEF,EAAqBtB,uBAAe,IAAAwB,OAAA,EAApCA,EAAsCltL,aAAK,IAAAitL,SAAIhtL,EAChEsvH,cAA0D,QAA7C49D,EAAsC,QAAtCC,EAAEJ,EAAqB7B,uBAAe,IAAAiC,OAAA,EAApCA,EAAsCptL,aAAK,IAAAmtL,SAAIltL,EAC9Dk3C,SAAUwW,EAAOxW,WAEhB/oC,MAAM4gB,IACDA,GACFkhC,GAAoBA,IACpB2pH,GAAY,GACZj9J,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,WAE7Di+J,GAAY,GACZj9J,EAAWjW,EAAUuB,SAAS7C,MAAMsD,YACtC,IAEDpC,OAAM,KACLqW,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WAAW,GAC/C,IA4BMmkL,EAAYh+J,cAvJKw+J,IACG,IAADC,EAAAC,EA2BtBC,EAAAC,EA3BmB,IAAtB//H,EAAO48G,WAETj/G,GAAc4B,yBAAyB,CACrCqyC,QAAS+tF,EAAqBxC,gBAC9BtrF,KAAM8tF,EAAqBvC,gBAC3BrrF,MAAO4tF,EAAqBtC,gBAC5BvrF,SAAU6tF,EAAqBrC,gBAC/B9pK,MAAOmsK,EAAqBpC,gBAC5B37D,cAA0D,QAA7Cg+D,EAAsC,QAAtCC,EAAEF,EAAqBnC,uBAAe,IAAAqC,OAAA,EAApCA,EAAsCxtL,aAAK,IAAAutL,SAAIttL,EAC9Dk3C,SAAUwW,EAAOxW,WAEhB/oC,MAAM4gB,IACDA,GACFkhC,GAAoBA,IACpB2pH,GAAY,GACZj9J,EACEjW,EAAUuB,SAASC,QAAQC,UAC3BsT,GAAYE,WAGdi+J,GAAY,GACZj9J,EAAWjW,EAAUuB,SAAS7C,MAAMsD,YACtC,IAEDpC,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,KAGN,GAAnBypL,GAAwBvnG,IAEb,OAAbsnG,QAAa,IAAbA,KAAeprL,SAAS0kD,IAAO,IAAD4nI,EAAAC,EAC5BtiI,GAAcmC,mBAAmB,CAC/B8xC,QAAS+tF,EAAqBxC,gBAC9BtrF,KAAM8tF,EAAqBvC,gBAC3BrrF,MAAO4tF,EAAqBtC,gBAC5BvrF,SAAU6tF,EAAqBrC,gBAC/B9pK,MAAOmsK,EAAqBpC,gBAC5B37D,cAC6C,QADhCo+D,EACyB,QADzBC,EACXN,EAAqBnC,uBAAe,IAAAyC,OAAA,EAApCA,EAAsC5tL,aAAK,IAAA2tL,SAAI1tL,EACjDk3C,SAAU4O,EAAE5O,WAEX/oC,MAAM4gB,IACDA,GACFkhC,GAAoBA,IACpB2pH,GAAY,GACZj9J,EACEjW,EAAUuB,SAASC,QAAQC,UAC3BsT,GAAYE,SAEd+xC,EAAOg/H,6BAA+BxnG,EACtC75B,GAAcoC,aAAaC,KAE3BksH,GAAY,GACZj9J,EAAWjW,EAAUuB,SAAS7C,MAAMsD,YACtC,IAEDpC,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,GACzB,KAGO,GAAXkiF,GAAuC,GAAnBunG,IACtB/+H,EAAOg/H,8BAA+B,EACtCrhI,GAAcoC,aAAaC,IAG7BrC,GAAcmC,mBAAmB,CAC/B8xC,QAAS+tF,EAAqBxC,gBAC9BtrF,KAAM8tF,EAAqBvC,gBAC3BrrF,MAAO4tF,EAAqBtC,gBAC5BvrF,SAAU6tF,EAAqBrC,gBAC/B9pK,MAAOmsK,EAAqBpC,gBAC5B37D,cAA0D,QAA7Ck+D,EAAsC,QAAtCC,EAAEJ,EAAqBnC,uBAAe,IAAAuC,OAAA,EAApCA,EAAsC1tL,aAAK,IAAAytL,SAAIxtL,EAC9Dk3C,SAAUwW,EAAOxW,WAEhB/oC,MAAM4gB,IACDA,GACFkhC,GAAoBA,IACpB2pH,GAAY,GACZj9J,EACEjW,EAAUuB,SAASC,QAAQC,UAC3BsT,GAAYE,WAGdi+J,GAAY,GACZj9J,EAAWjW,EAAUuB,SAAS7C,MAAMsD,YACtC,IAEDpC,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,IAE/B,IA6DIgsB,YAAU,EAAArsB,SAAA,CAEVa,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,yBAGzCypL,GAAUF,GAAuBthK,GACjCpnB,cAAC0hC,KAAI,CACHzqB,GAAIA,EAAK,+BAA4Bza,EACrC4X,MAAM,UACNvX,KAAK,SACL6oB,QAASA,IAAM0wJ,GAAY,GAC3BnlK,QAAQ,QACR6E,UAAU,SACVpF,UAAWC,KAAOy5K,mBAAmBjrL,SAEpCioB,GAAYshK,GAAuB,6BAGxCj4K,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,aAAYrnB,SAC7Ba,cAACmnB,GAAS,CACR/oB,KAAK,kBACL8oB,aAAcgjC,EAAO33C,UACrB6U,YAAaA,GAAYshK,GACzB/gL,YAAY,UACZukB,SAAUo9J,EAAYn9J,SACtBvqB,QAAS0nL,EAAYr8K,OAAO26K,gBAC5Bx7J,WACEk9J,EAAYr8K,OAAO26K,gBACf0B,EAAYr8K,OAAO26K,gBAAgBpoL,QACnC,GAGNyX,GAAIA,EAAK,iBAAcza,GAAU,GAAA6D,OADzB6pD,EAAOxW,SAAQ,qBAAArzC,OAAoB6pD,EAAO33C,gBAKxDvS,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACmnB,GAAS,CACR/oB,KAAK,kBACL6Y,GAAIA,EAAK,uBAAoBza,EAC7BmL,YAAY,UACZuf,aAAcgjC,EAAO53C,SACrB8U,YAAaA,GAAYshK,GACzBx8J,SAAUo9J,EAAYn9J,SACtBvqB,QAAS0nL,EAAYr8K,OAAO46K,gBAC5Bz7J,WACEk9J,EAAYr8K,OAAO46K,gBACfyB,EAAYr8K,OAAO46K,gBAAgBroL,QACnC,GAGNkR,UAAW2mG,KAAUy9C,UAAS,GAAAz0J,OADtB6pD,EAAOxW,SAAQ,qBAAArzC,OAAoB6pD,EAAO53C,eAKxDtS,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CACVG,cAAYgiK,GAAwBthK,GACpCZ,MAAM,cAAarnB,SAEnBa,cAACmnB,GAAS,CACR/oB,KAAK,kBACL6Y,GAAIA,EAAK,uBAAoBza,EAC7BmL,YAAY,OACZuf,aAAcgjC,EAAO0/H,WACrBxiK,YAAaA,GAAYshK,GACzBx8J,SAAUo9J,EAAYn9J,SACtBvqB,QAAS0nL,EAAYr8K,OAAO66K,gBAC5B17J,WACEk9J,EAAYr8K,OAAO66K,gBACfwB,EAAYr8K,OAAO66K,gBAAgBtoL,QACnC,IACL,GAAAa,OACO6pD,EAAOxW,SAAQ,qBAAArzC,OAAoB6pD,EAAO0/H,iBAIxD5pL,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,gBAAernB,SACtCioB,IAAYshK,EACd1oL,cAACmnB,GAAS,CACR/oB,KAAK,kBACLuJ,YAAY,aACZsP,GAAIA,EAAK,uBAAoBza,EAC7BD,MACEuwC,KAAOod,EAAO4K,WAAWpoC,UACrBogB,KAAOod,EAAO4K,WACXllB,OAAO,aACP6K,cACH,GAENrzB,YAAaA,GAAYshK,KAG3B1oL,cAAC4lF,GAAU,CACT39D,SAAUb,EACVF,aAAcgjC,EAAO4K,UACrBiyB,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZyL,OAAO,OACPhV,KAAK,kBACL6Y,GAAIA,EAAK,uBAAoBza,EAC7BsqB,QAASwiK,EAAYxiK,QACrBllB,QAAS0nL,EAAYr8K,OAAO86K,gBAC5B37J,WACEk9J,EAAYr8K,OAAO86K,gBACfuB,EAAYr8K,OAAO86K,gBAAgBvoL,QACnC,SAMdQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,SAAQrnB,SAC/BioB,IAAYshK,EACd1oL,cAACmnB,GAAS,CACR/oB,KAAK,iBACLuJ,YAAY,SACZsP,GAAIA,EAAK,sBAAmBza,EAC5B0qB,aACuD,QAD3Cs5E,EACVpE,GAAe1/E,MAAM2vG,GAAMA,EAAE9vH,QAAU2tD,EAAO13C,gBAAO,IAAAguF,OAAA,EAArDA,EAAuDh6E,MAEzDY,YAAaA,GAAYshK,KAG3B1oL,cAAC8nB,GAAa,CACZ1pB,KAAK,iBACL6Y,GAAIA,EAAK,sBAAmBza,EAC5BI,KAAK,QACLmrB,QAASq0E,GACTl1E,aAAcgjC,EAAO13C,OACrBsU,QAASwiK,EAAYxiK,QACrBllB,QAAS0nL,EAAYr8K,OAAO+6K,eAC5B9/J,aACEohK,EAAYr8K,OAAO+6K,eACfsB,EAAYr8K,OAAO+6K,eAAexoL,QAClC,SAMdQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,cAAarnB,SACpCioB,IAAYshK,EACd1oL,cAACmnB,GAAS,CACR/oB,KAAK,kBACLuJ,YAAY,aACZsP,GAAIA,EAAK,uBAAoBza,EAC7B0qB,aAGG,QAHS04E,EACVpkF,EAAUkB,MACPjR,GAAMA,EAAEk0F,cAAgBz1C,EAAO81C,yBACjC,IAAAJ,OAAA,EAFDA,EAEGF,YAELt4E,YAAaA,GAAYshK,KAG3B1oL,cAACk/E,GAAc,CACb9gF,KAAK,kBACLuJ,YAAY,aACZsP,GAAIA,EAAK,uBAAoBza,EAC7BurB,QAASvM,EAAU9F,KAAK3N,IAAO,CAC7BxL,MAAOwL,EAAQ43F,YACfn5E,MAAOze,EAAQ23F,gBAEjB54E,QAASwiK,EAAYxiK,QACrBI,aAAc,CACZ3qB,MAEC,QAFI84I,EAAE75H,EAAUkB,MACdjR,GAAMA,EAAEk0F,cAAgBz1C,EAAO81C,yBACjC,IAAAq1C,OAAA,EAFMA,EAEJ11C,YACHn5E,MAEC,QAFI2hK,EAAE3sK,EAAUkB,MACdjR,GAAMA,EAAEk0F,cAAgBz1C,EAAO81C,yBACjC,IAAAmoF,OAAA,EAFMA,EAEJzoF,aAEL99F,QAAS0nL,EAAYr8K,OAAOg7K,gBAC5B//J,aACEohK,EAAYr8K,OAAOg7K,gBACoB,QADLG,EAC7BkB,EAAYr8K,OAAOg7K,uBAAe,IAAAG,OAAA,EAAnCA,EAA6C5oL,QAC7C,YAOhBiR,eAACmb,KAAI,CAAChb,WAAS,EAACmb,MAAI,EAAC4K,GAAI,GAAI0zJ,QAAQ,gBAAelrL,SAAA,CAClDa,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,yBAGzCypL,GACAD,IACCD,GACDthK,GACEpnB,cAAC0hC,KAAI,CACHzqB,GAAIA,EAAK,+BAA4Bza,EACrC4X,MAAM,UACNvX,KAAK,SACL6oB,QAASA,IAAM0wJ,GAAY,GAC3BnlK,QAAQ,QACR6E,UAAU,SACVpF,UAAWC,KAAOy5K,mBAAmBjrL,SAEpCioB,GAAYuhK,GAAuBhxJ,EAAWX,OAC7Ch3B,cAAColF,GAAQ,IAET,gCAKV30E,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,UAASrnB,SAC1Ba,cAACmnB,GAAS,CACR/oB,KAAK,kBACLuJ,YAAY,mBACZsP,GAAIA,EAAK,uBAAoBza,EAC7B0qB,aAAcgjC,EAAO4xC,QACrB10E,YACKA,IAAashK,GAAuBC,IAEzCz8J,SACEw8J,EACIY,EAAYn9J,SACZk9J,EAAYl9J,SAElBvqB,QAASynL,EAAYp8K,OAAOo6K,gBAC5Bj7J,WACEi9J,EAAYp8K,OAAOo6K,gBACfgC,EAAYp8K,OAAOo6K,gBAAgB7nL,QACnC,IACL,GAAAa,OACO6pD,EAAOxW,SAAQ,qBAAArzC,OAAoB6pD,EAAO4xC,cAIxD97F,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAACmnB,GAAS,CACR/oB,KAAK,kBACL6Y,GAAIA,EAAK,uBAAoBza,EAC7BmL,YAAY,aACZuf,aAAcgjC,EAAO6xC,KACrB30E,YACKA,IAAashK,GAAuBC,IAEzCz8J,SACEw8J,EACIY,EAAYn9J,SACZk9J,EAAYl9J,SAElBvqB,QAASynL,EAAYp8K,OAAOq6K,gBAC5Bl7J,WACEi9J,EAAYp8K,OAAOq6K,gBACf+B,EAAYp8K,OAAOq6K,gBAAgB9nL,QACnC,IACL,GAAAa,OACO6pD,EAAOxW,SAAQ,qBAAArzC,OAAoB6pD,EAAO6xC,WAIxD/7F,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,SAAQrnB,SACzBa,cAACmnB,GAAS,CACR/oB,KAAK,kBACL6Y,GAAIA,EAAK,uBAAoBza,EAC7BmL,YAAY,SACZuf,aAAcgjC,EAAO8xC,SACrB50E,YACKA,IAAashK,GAAuBC,IAEzCz8J,SACEw8J,EACIY,EAAYn9J,SACZk9J,EAAYl9J,SAElBvqB,QAASynL,EAAYp8K,OAAOu6K,gBAC5Bp7J,WACEi9J,EAAYp8K,OAAOu6K,gBACf6B,EAAYp8K,OAAOu6K,gBAAgBhoL,QACnC,IACL,GAAAa,OACO6pD,EAAOxW,SAAQ,qBAAArzC,OAAoB6pD,EAAO8xC,eAIxDh8F,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACnBioB,IAAashK,IAAuBC,EACtC3oL,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,uBAAsBrnB,SACjDa,cAACmnB,GAAS,CACR/oB,KAAK,gBACLuJ,YAAY,aACZsP,GAAIA,EAAK,qBAAkBza,EAC3BD,MAGG,QAHE8rL,EACH7sK,EAAUkB,MACPjR,GAAMA,EAAEk0F,cAAgBz1C,EAAO4hE,uBACjC,IAAAu8D,OAAA,EAFDA,EAEG3oF,YAELt4E,UAAQ,MAIZpnB,cAACumB,GAAW,CAACC,MAAM,uBAAsBrnB,SACvCa,cAACk/E,GAAc,CACb9gF,KAAK,kBACLuJ,YAAY,aACZsP,GAAIA,EAAK,uBAAoBza,EAC7BurB,QAASvM,EAAU9F,KAAK3N,IAAO,CAC7BxL,MAAOwL,EAAQ43F,YACfn5E,MAAOze,EAAQ23F,gBAEjB54E,QACE4hK,EACIY,EAAYxiK,QACZuiK,EAAYviK,QAElBI,aAAc,CACZ3qB,MAEC,QAFI+rL,EAAE9sK,EAAUkB,MACdjR,GAAMA,EAAEk0F,cAAgBz1C,EAAO4hE,uBACjC,IAAAw8D,OAAA,EAFMA,EAEJ3oF,YACHn5E,MAEC,QAFI+hK,EAAE/sK,EAAUkB,MACdjR,GAAMA,EAAEk0F,cAAgBz1C,EAAO4hE,uBACjC,IAAAy8D,OAAA,EAFMA,EAEJ7oF,aAEL99F,MACE8mL,IACMY,EAAYr8K,OAAOy6K,kBACnB2B,EAAYp8K,OAAOy6K,gBAE3Bx/J,aACEwgK,EACIY,EAAYr8K,OAAOy6K,gBACkB,QADHc,EAC/Bc,EAAYr8K,OAAOy6K,uBAAe,IAAAc,OAAA,EAAnCA,EAA6ChpL,QAC7C,GACF6pL,EAAYp8K,OAAOy6K,gBACgB,QADDe,EACjCY,EAAYp8K,OAAOy6K,uBAAe,IAAAe,OAAA,EAAnCA,EAA6CjpL,QAC7C,SAMdQ,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACG,YAAYU,EAAyBZ,MAAM,QAAOrnB,SAC7Da,cAACmnB,GAAS,CACR/oB,KAAK,kBACLuJ,YAAY,aACZsP,GAAIA,EAAK,uBAAoBza,EAC7B0qB,aAAcgjC,EAAOxsC,MACrB0J,YACKA,IAAashK,GAAuBC,IAEzCz8J,SACEw8J,EACIY,EAAYn9J,SACZk9J,EAAYl9J,SAElBvqB,QAASynL,EAAYp8K,OAAOw6K,gBAC5Br7J,WACEi9J,EAAYp8K,OAAOw6K,gBACf4B,EAAYp8K,OAAOw6K,gBAAgBjoL,QACnC,IACL,GAAAa,OACO6pD,EAAOxW,SAAQ,qBAAArzC,OAAoB6pD,EAAOxsC,YAIxD1d,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACG,YAAYU,EAAyBZ,MAAM,QAAOrnB,SAC7Da,cAACmnB,GAAS,CACR/oB,KAAK,kBACL6Y,GAAIA,EAAK,uBAAoBza,EAC7BmL,YAAY,eACZuf,aAAcgjC,EAAO+xC,MACrB70E,YACKA,IAAashK,GAAuBC,IAEzCz8J,SACEw8J,EACIY,EAAYn9J,SACZk9J,EAAYl9J,SAElBvqB,QAASynL,EAAYp8K,OAAOs6K,gBAC5Bn7J,WACEi9J,EAAYp8K,OAAOs6K,gBACf8B,EAAYp8K,OAAOs6K,gBAAgB/nL,QACnC,IACL,GAAAa,OACO6pD,EAAOxW,SAAQ,qBAAArzC,OAAoB6pD,EAAO+xC,YAKvD+sF,GACCA,EAAcrrL,OAAS,GACT,aAAdwrL,GACAN,GACE7oL,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAAC2hF,GAAQ,CACP1qE,GAAG,8BACHuP,MAAM,oDACN0F,SAAUm9J,EAAYl9J,SACtB/tB,KAAK,gCACL7B,MAAOmlF,EACPwB,eAAgBxB,EAChBz5D,YACKb,IAAashK,GAAuBC,IAEzCv0K,MAAM,UACN6V,SAzlBaqgK,KAC3BlB,GAAY1nG,EAAQ,SA6lBhB1hF,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,UACdwpL,GAAuBD,KACtBthK,EACCwhK,GACE5oL,cAAAyV,WAAA,CAAAtW,SACEa,cAAC0hC,KAAI,CACHzqB,GAAIA,EAAK,yCAAsCza,EAC/C4X,MAAM,UACNvX,KAAK,SACL6oB,QAASA,IAAM0wJ,GAAY,GAC3BnlK,QAAQ,QACR6E,UAAU,SAAQ3W,SAEjBupL,EACG,mBACA,+BAKVj4K,eAACqI,KAAG,CACF4S,GAAI,EACJxY,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SAAQ/nC,SAAA,CAEvBa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRmD,MAAM,UACN6C,GAAIA,EAAK,0BAAuBza,EAChCkpB,QAASA,KACP0wJ,GAAY,GACZkT,EAAYlkI,QACZikI,EAAYjkI,OAAO,EACnBjmD,SAED+D,EAAUC,QAAQE,SAErBrD,cAAC8Y,KAAG,CACFG,GAAK0e,EAAWX,OAAa,EAAJ,EACzB6W,GAAIlW,EAAWX,OAAS,EAAI,EAAE73B,SAE9Ba,cAAC2lB,KAAM,CACL1O,GAAIA,EAAK,wBAAqBza,EAC9BK,KAAK,SACLoU,QAAQ,YACRmD,MAAM,UACN6T,SAAUu7D,EAAiBrkF,SAE1B+D,EAAUC,QAAQK,yBAQjCiN,eAACu7B,GAAM,CACLpzB,KAAMqlI,EACNtzH,QAASqzH,EACTxtI,SAAS,KAAIrR,SAAA,CAEbsR,eAAC+7B,GAAW,CAAArtC,SAAA,CACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oCACzBsR,eAACO,IAAU,CAACN,UAAU,WAAUvR,SAAA,CACJ,OAAzB2pL,QAAyB,IAAzBA,OAAyB,EAAzBA,EAA2Bv2K,UAAW,IACb,OAAzBu2K,QAAyB,IAAzBA,OAAyB,EAAzBA,EAA2Bx2K,eAGhCtS,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxBqT,GAAIA,EAAK,0BAAuBza,EAChCkpB,QAASA,KACPs4H,IACA+qC,OAA6BvsL,EAAU,IAG3CwD,cAACssC,GAAY,CACXr1B,GAAIA,EAAK,2BAAwBza,EACjCiN,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KAhhBbojK,GAA6Bz4K,GAC/Bw3C,GAAcwB,YAAYh5C,EAAiC,OAAzBy4K,QAAyB,IAAzBA,OAAyB,EAAzBA,EAA2Bp1I,UAC1D/oC,MAAM4/K,IACL99H,GAAoBA,IACpBuxF,IACIusC,EAA2B,EAC7BpxK,EACEjW,EAAUuB,SAASC,QAAQE,YAC3BqT,GAAYE,SAGdgB,EAAWjW,EAAUuB,SAAS7C,MAAMuD,aACtC,IAEDrC,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAkgBD,YAInC,ECvwBQgrL,OA3Df,SAAsBz1K,GACpB,MAAM,UAACsoF,EAAS,UAAE7+B,EAAS,OAAEx1D,EAAM,YAAEyhL,EAAW,QAAE1iK,GAAWhT,GAEtD2kB,EAAUgxJ,GAAej5K,mBAA6B,MAMvD0U,EAAcA,KAClBukK,EAAY,KAAK,EAGbC,EAAmBhtK,IACvB8sK,EAAY9sK,GACZwI,GAAa,EAGTykJ,EAAiB,OAAP7iJ,QAAO,IAAPA,OAAO,EAAPA,EAAS/S,SAAS,QAC5B6tK,EAAmB,OAAP96J,QAAO,IAAPA,OAAO,EAAPA,EAAS/S,SAAS,UAC9B41K,EAAoB,OAAP7iK,QAAO,IAAPA,OAAO,EAAPA,EAAS/S,SAAS,YAC/B61K,GAAuB,OAAP9iK,QAAO,IAAPA,OAAO,EAAPA,EAAS/S,SAAS,iBAA6B,aAAXhM,EAE1D,OACEyH,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACqmB,KAAU,CAACX,QApBKrI,IACnBqtK,EAAYrtK,EAAM8sJ,cAAc,EAmBGhrK,SAC/Ba,cAACoqK,KAAQ,MAEX35J,eAAC00F,KAAI,CACHvsF,KAAMy1E,QAAQ30D,GACdA,SAAUA,EACV/O,QAASxE,EAAYhnB,SAAA,CAEpB0rL,GACCp6K,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC86B,KAAQ,CAAC7S,SAAUu2C,GAAa6+B,EAAW33E,QAASA,IAAMilK,EAAgB,WAAWxrL,SAAC,gBAEvFa,cAACy2B,KAAO,OAIXm0I,GACC5qK,cAAC86B,KAAQ,CAAC7S,SAAqB,aAAXjf,EACV0c,QAASA,IAAMilK,EAAgB,QAAQxrL,SAAC,SACnD0jL,GACC7iL,cAAC86B,KAAQ,CAACpV,QAASA,IAAMilK,EAAgB,UAAUxrL,SAAC,WAErDyrL,GACCn6K,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACy2B,KAAO,IACRz2B,cAAC86B,KAAQ,CAACpV,QAASA,IAAMilK,EAAgB,YAAYxrL,SAAC,qBAOlE,E,6BC5De2rL,OAVgBA,CAC7BtvK,EACAmkF,KACa,IAADC,EAAAy1C,EACZ,MAAO,CACL94I,MAA2D,QAAtDqjG,EAAEpkF,EAAUkB,MAAMjR,GAAMA,EAAEk0F,cAAgBA,WAAY,IAAAC,OAAA,EAApDA,EAAsDD,YAC7Dn5E,MAA2D,QAAtD6uH,EAAE75H,EAAUkB,MAAMjR,GAAMA,EAAEk0F,cAAgBA,WAAY,IAAA01C,OAAA,EAApDA,EAAsD31C,YAC9D,ECmKYqrF,OA5If,SAA8Bh2K,GAC5B,MAAM,SAAE0L,EAAQ,UAAEiK,EAAS,QAAEC,EAAO,SAAES,GAAarW,EAE7CyG,EAAY0gF,MACZ,WAAE/iF,GAAeQ,KACjBge,EAAajB,KAEbs0J,EAA2BhqB,IAAqD,IAADiqB,EACnF,MAAMC,EAAoBJ,GACxBtvK,EACAwlJ,EAAIhhE,iBAEAmrF,EAAqBL,GACzBtvK,EACAwlJ,EAAI3gE,kBAGN,MAAO,CACLhM,aAAc2sE,EAAI3sE,aAClBkL,aAAcyhE,EAAIzhE,aAClB/sF,OAAQwuJ,EAAIxuJ,OACZD,UAAWyuJ,EAAIzuJ,UACf6tF,WAAY4gE,EAAI5gE,WAChB9tF,SAAU0uJ,EAAI1uJ,SACdwiD,UAAWksG,EAAIlsG,UACfqrC,UAAW6gE,EAAI7gE,UACf4kF,WAAY/jB,EAAIhkE,WAChBgD,gBAAiBkrF,EACjBvG,eAAgB3jB,EAAI9gE,eACpBI,UAAW0gE,EAAI1gE,UACfC,WAAYygE,EAAIzgE,WAChBF,iBAAkB8qF,EAClB1oK,SAAsB,QAAdwoK,EAAEjqB,EAAIv+I,gBAAQ,IAAAwoK,IAAI,GAC3B,EAGGpgK,EAAOC,aAAQ,CACnBG,KAAM,WACNF,SAAUC,aAAYo6J,IACtBvwF,cAAem2F,EAAwBvqK,KA4DzC,OAzDA3N,qBAAU,KACJ4X,GACFG,EAAKu6B,MAAM4lI,EAAwBvqK,GACrC,GACC,CAACiK,IAsDF1qB,cAAAyV,WAAA,CAAAtW,SACEsR,eAAC4U,GAAM,CAACzM,KAAM8R,EAAWC,QAASA,EAAQxrB,SAAA,CACxCa,cAACkmB,GAAW,CAACC,YAAawR,EAAWX,OAASrM,OAAUnuB,EAAU2C,SAAC,oBAGnEa,cAACiuG,KAAY,IAAKpjF,EAAI1rB,SACpBsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cA5DH+/J,IAAwC,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC3D,IAAIxF,EACAmE,EAAaz5F,gBAAgBu1F,WAC/BD,EAAe,CACb5iL,QAAS+mL,EAAaz5F,KAAK,GAC3BlvE,SAAU2oK,EAAaz5F,KAAK,GAAGvzF,OAI/BgtL,EAAaz5F,gBAAgBptE,OAC/B0iK,EAAe,CACb5iL,QAAS+mL,EAAaz5F,KACtBlvE,SAAU2oK,EAAaz5F,KAAKvzF,OAIhC,MAAM+oL,EAA8C,CAClDzzI,SAAUjzB,EAASizB,SACnBmuB,WAAYphD,EAASohD,WACrB09B,aAAc9+E,EAAS8+E,aACvBe,UAAyC,QAAhC+qF,EAAwB,QAAxBC,EAAEF,EAAa9qF,iBAAS,IAAAgrF,OAAA,EAAtBA,EAAwBh+I,cAAM,IAAA+9I,SAAI7uL,EAC7Cs4D,UAAiC,QAAxBy2H,EAAEH,EAAat2H,iBAAS,IAAAy2H,SAAI/uL,EACrC+jG,WAA2C,QAAjCirF,EAAyB,QAAzBC,EAAEL,EAAa7qF,kBAAU,IAAAkrF,OAAA,EAAvBA,EAAyBn+I,cAAM,IAAAk+I,SAAIhvL,EAC/CwgG,WAAmC,QAAzB0uF,EAAEN,EAAarG,kBAAU,IAAA2G,SAAIlvL,EACvC63F,aAAuC,QAA3Bs3F,EAAEP,EAAa/2F,oBAAY,IAAAs3F,SAAInvL,EAC3C0jG,eAAmD,QAArC0rF,EAA6B,QAA7BC,EAAET,EAAazG,sBAAc,IAAAkH,OAAA,EAA3BA,EAA6Bv+I,cAAM,IAAAs+I,SAAIpvL,EACvD+V,UAAyC,QAAhCu5K,EAAwB,QAAxBC,EAAEX,EAAa74K,iBAAS,IAAAw5K,OAAA,EAAtBA,EAAwBz+I,cAAM,IAAAw+I,SAAItvL,EAC7CgW,OAA2B,QAArBw5K,EAAEZ,EAAa54K,cAAM,IAAAw5K,SAAIxvL,EAC/B2jG,UAAiC,QAAxB8rF,EAAEb,EAAajrF,iBAAS,IAAA8rF,SAAIzvL,EACrC8V,SAAuC,QAA/B45K,EAAuB,QAAvBC,EAAEf,EAAa94K,gBAAQ,IAAA65K,OAAA,EAArBA,EAAuB7+I,cAAM,IAAA4+I,SAAI1vL,EAC3C4jG,WAA2C,QAAjCgsF,EAAyB,QAAzBC,EAAEjB,EAAahrF,kBAAU,IAAAisF,OAAA,EAAvBA,EAAyB/+I,cAAM,IAAA8+I,SAAI5vL,EAC/C6jG,iBAAsD,QAAtCisF,EAA+B,QAA/BC,EAAEnB,EAAa/qF,wBAAgB,IAAAksF,OAAA,EAA7BA,EAA+BhwL,aAAK,IAAA+vL,SAAI9vL,EAC1DwjG,gBAAoD,QAArCwsF,EAA8B,QAA9BC,EAAErB,EAAaprF,uBAAe,IAAAysF,OAAA,EAA5BA,EAA8BlwL,aAAK,IAAAiwL,SAAIhwL,EACxDm1F,KAAMs1F,EACNyF,cAAUlwL,GAGZ0qF,GAA2B4W,eAAeqpF,GACvCx8K,MAAK,KACJwO,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC7DiT,GAAU,IAEXtoB,OAAOgI,IACW,MAAbA,EAAE9B,OACJmQ,EAAWrO,EAAEtL,SAEb2Z,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WACtC,GACA,IAaIsmB,YAAU,EACV9a,UAAWkV,KAAWowI,cAAc72J,SAAA,CAEpCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAACskL,GAAY,CAAC7jK,SAAUA,MAE1BzgB,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACylB,GAAkB,CACjBxO,GAAG,oEACHyO,QAASiF,EACThE,WAAS,MAGb3mB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC+lB,GAAgB,CACf9O,GAAG,mEACH0P,WAAS,EACTsB,UAAW4C,EAAK2B,UAAUC,0BAU9C,ECzCekgK,OAjHf,SAAkB53K,GAAe,IAADyvK,EAC9B,MAAM,SAAE/jK,GAAa1L,GACf,SAAEoX,EAAQ,QAAErF,EAAO,SAAEwhE,EAAQ,MAAEi8B,EAAK,OAAEt3G,EAAM,UAAEyX,GAAc0lF,eAC5D5uF,EAAY0gF,KAelB,OACEzrF,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,gBAAernB,SAChCa,cAACmnB,GAAS,CACR/oB,KAAK,eACL8tB,SAAUC,EACV/Y,OAAO,SACPzL,YAAY,aACZ/F,QAASqL,EAAOonF,aAChBjoE,WAAYnf,EAAOonF,aAAepnF,EAAOonF,aAAa70F,QAAU,SAItEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACmnB,GAAS,CACR/oB,KAAK,WACL8tB,SAAUC,EACV/Y,OAAO,SACPzL,YAAY,aACZ/F,QAASqL,EAAOq4K,SAChBl5J,WAAYnf,EAAOq4K,SAAWr4K,EAAOq4K,SAAS9lL,QAAU,SAI9DQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,iBAAgBrnB,SACjCa,cAACmnB,GAAS,CACR/oB,KAAK,iBACL6rB,SAAWnf,GACTw9E,EAAS,iBAAkBx9E,EAAEq/J,cAAc5tK,MAAM+wC,QAEnDphB,SAAUC,EACV/Y,OAAO,SACPzL,YAAY,iBACZ/F,QAASqL,EAAOizF,eAChB9zE,WACEnf,EAAOizF,eAAiBjzF,EAAOizF,eAAe1gG,QAAU,SAKhEQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,kBAAiBrnB,SAC5Ca,cAACk/E,GAAc,CACb9gF,KAAK,kBACLuJ,YAAY,aACZyL,OAAO,SACP2U,QAASvM,EAAU9F,KAAK3N,IAAO,CAC7BxL,MAAOwL,EAAQ43F,YACfn5E,MAAOze,EAAQ23F,gBAEjB54E,QAASA,EACTllB,QAASqL,EAAO+yF,gBAChB93E,aACEjb,EAAO+yF,gBACoB,QADLwkF,EACjBv3K,EAAO+yF,uBAAe,IAAAwkF,OAAA,EAAvBA,EAAiChlL,QACjC,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACC,MAAM,cAAarnB,SAC9Ba,cAAC4lF,GAAU,CACTmB,gBAAc,EACdC,QAAM,EACN5oF,KAAK,aACLuJ,YAAazE,EAAUyE,YAAYC,KACnCwL,OAAO,SACP8T,aAAc,KACdJ,QAASA,EACTllB,QAASqL,EAAO83K,WAChB34J,WAAYnf,EAAO83K,WAAa93K,EAAO83K,WAAWvlL,QAAU,GAC5DolL,oBACG33K,EAAO83K,YAAc7hL,EAAUqC,WAAWO,kBAKnD9F,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAAC6jL,GAA0B,CACzBzlL,KAAK,OACLqL,KAAK,cACLohB,KAAM,CAAEsB,WAAUrF,UAASwhE,WAAUi8B,QAAOt3G,SAAQyX,aACpDosE,OAAO,mCACPI,iBAAiB,EACjB4yF,YArGY8I,MAAO,IAADztF,EAAAslF,EACxB,GAAKhkK,EAIL,MAAO,CACLriB,KAAwB,QAApB+gG,EAAU,OAAR1+E,QAAQ,IAARA,OAAQ,EAARA,EAAUgC,gBAAQ,IAAA08E,IAAI,GAC5B6lF,IAAsB,QAAnBP,EAAU,OAARhkK,QAAQ,IAARA,OAAQ,EAARA,EAAUwkK,eAAO,IAAAR,IAAI,GAC1B5iH,WAAoB,OAARphD,QAAQ,IAARA,OAAQ,EAARA,EAAUohD,WACtBnuB,SAAkB,OAARjzB,QAAQ,IAARA,OAAQ,EAARA,EAAUizB,SACrB,EA2FkBk5I,SAKvB,ECReC,OA5Ff,SAA4B93K,GAC1B,MAAM,SAAE2+B,EAAQ,SAAEg5I,EAAQ,iBAAEjgI,EAAgB,SAAEotE,EAAQ,UAAEnvG,GAAc3V,EAChE4iB,EAAajB,MACb,WAAEvd,GAAeQ,KAEjBkR,EAAOC,aAA0B,CACrCG,KAAM,WACNF,SAAUC,aAAYq6J,IACtBxwF,cAAe,CACb0K,aAAc,OACd19B,WAAY,EACZnuB,WACA2gD,aAAc,GACd6L,eAAgB,GAChBvO,UAAMn1F,KAwCV,OACEiU,eAAC4U,GAAM,CAACzM,KAAM8R,EAAWC,QAASkvG,EAAS16H,SAAA,CACzCa,cAACkmB,GAAW,CAACC,YAAawR,EAAWX,OAAS6iG,OAAWr9H,EAAU2C,SAAC,eAGpEa,cAACiuG,KAAY,IAAKpjF,EAAI1rB,SACpBsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cA5CD5K,IAAgC,IAADolK,EAAAC,EAAAC,EAAA+G,EAAAC,EAAAjG,EAAAC,EAAAC,EAAAgG,EAAAC,EACnD,IAAIhG,EAA+B,KAC/BxmK,EAASkxE,gBAAgBu1F,WAC3BD,EAAe,CACb5iL,QAASoc,EAASkxE,KAAK,GACvBlvE,SAAUhC,EAASkxE,KAAK,GAAGvzF,OAG3BqiB,EAASkxE,gBAAgBptE,OAC3B0iK,EAAe,CACb5iL,QAASoc,EAASkxE,KAClBlvE,SAAUhC,EAASkxE,KAAKvzF,OAI5B8oF,GAA2B2W,kBAAkB,CAC3CnqD,SAAUA,EACVspD,WAA+B,QAArB6oF,EAAEplK,EAASskK,kBAAU,IAAAc,SAAIrpL,EACnC63F,aAA2C,QAA/ByxF,EAAuB,QAAvBC,EAAEtlK,EAAS4zE,oBAAY,IAAA0xF,OAAA,EAArBA,EAAuBz4I,cAAM,IAAAw4I,SAAItpL,EAC/C0jG,eAA+C,QAAjC4sF,EAAyB,QAAzBC,EAAEtsK,EAASy/E,sBAAc,IAAA6sF,OAAA,EAAvBA,EAAyBz/I,cAAM,IAAAw/I,SAAItwL,EACnD+iG,aAAc,OACd5N,KAAMs1F,EACNjnF,gBAAwD,QAAzC8mF,EAA0B,QAA1BC,EAAEtmK,EAASu/E,uBAAe,IAAA+mF,GAAO,QAAPC,EAAxBD,EAA0BxqL,aAAK,IAAAyqL,OAAP,EAAxBA,EAAiC15I,cAAM,IAAAw5I,SAAItqL,EAC5D8oL,SAAmC,QAA3B0H,EAAmB,QAAnBC,EAAExsK,EAAS6kK,gBAAQ,IAAA2H,OAAA,EAAjBA,EAAmB3/I,cAAM,IAAA0/I,SAAIxwL,EACvCkwL,aAEC/hL,MAAK,KACJ8hD,IACAotE,IACA1gH,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,QAAQ,IAEtErV,OAAM,KACLqW,EAAWjW,EAAUuB,SAAS7C,MAAMsD,WAAW,GAC/C,IAYEsmB,YAAU,EACV9a,UAAWkV,KAAWowI,cAAc72J,SAAA,CAEpCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAAC2sL,GAAQ,MAEX3sL,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACylB,GAAkB,CACjBxO,GAAG,6CACHyO,QAASm0G,EACTlzG,WAAS,MAGb3mB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC+lB,GAAgB,CACf9O,GAAG,qCACH0P,WAAS,kBAS3B,E,iCCzEeumK,OAlCf,SAAkBn4K,GAChB,MAAM,WAAEo4K,EAAU,YAAE1C,GAAgB11K,GAE7B2kB,EAAUgxJ,GAAej5K,mBAA6B,MAMvD0U,EAAcA,KAClBukK,EAAY,KAAK,EAGbC,EAAmBhtK,IACvB8sK,EAAY9sK,GACZwI,GAAa,EAGf,OACE1V,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACqmB,KAAU,CAACX,QAfKrI,IACnBqtK,EAAYrtK,EAAM8sJ,cAAc,EAcGhrK,SAC/Ba,cAACoqK,KAAQ,MAEX35J,eAAC00F,KAAI,CACHvsF,KAAMy1E,QAAQ30D,GACdA,SAAUA,EACV/O,QAASxE,EAAYhnB,SAAA,CAErBa,cAAC86B,KAAQ,CAAC7S,SAAyB,aAAfklK,EAA2BznK,QAASA,IAAMilK,EAAgB,QAAQxrL,SAAC,SACvFa,cAAC86B,KAAQ,CAACpV,QAASA,IAAMilK,EAAgB,UAAUxrL,SAAC,gBAI5D,EC+GeiuL,OA5Hf,SAA0Br4K,GACxB,MAAM,SAAE0L,EAAQ,UAAEiK,EAAS,QAAEC,EAAO,iBAAE8hC,GAAqB13C,GACrD,WAAEoE,GAAeQ,KACjBge,EAAajB,KACblb,EAAY0gF,KAEZioF,EAAiB9xF,IACrB,IAAI9hB,EAAI,IAAIwzG,eAAe,IAAIC,eAAiB,IAAIC,aAEpD,IAAK,IAAI9tK,EAAI,EAAG+tK,EAAM7xF,EAAM10F,OAAQwY,EAAI+tK,EAAK/tK,IAC3Co6D,EAAEj7D,MAAMi+B,IAAI8+C,EAAMl8E,IAGpB,OAAOo6D,EAAE8hB,KAAK,EAGV24F,EAA2BvqK,IAAsD,IAAD0+E,EAAA8tF,EAAAI,EACpF,MAAMnC,EAAoBJ,GAAuBtvK,EAAWiF,EAASu/E,iBAErE,MAAO,CACLE,eAAgBz/E,EAASy/E,eACzB6kF,WAAYtkK,EAASu8E,WACrBgD,gBAAiBkrF,EACjBx3I,SAAUjzB,EAASizB,SACnBg5I,SAAUjsK,EAASisK,SACnB7qH,WAAYphD,EAASohD,WACrBwyB,aAAc5zE,EAAS4zE,aACvBkL,aAAc9+E,EAAS8+E,aACvB98E,SAA2B,QAAnB08E,EAAE1+E,EAASgC,gBAAQ,IAAA08E,IAAI,GAC/BmmF,SAA2B,QAAnB2H,EAAExsK,EAAS6kK,gBAAQ,IAAA2H,IAAI,GAC/Bt7F,KAAMwyF,EAA2B,QAAbkJ,EAAA5sK,EAASkxE,YAAI,IAAA07F,GAAbA,EAAehpL,QAAU,CAACoc,EAASkxE,KAAKttF,SAAW,IACxE,EAGGwmB,EAAOC,aAAQ,CACnBG,KAAM,WACNF,SAAUC,aAAYq6J,IACtBxwF,cAAem2F,EAAwBvqK,KA8CzC,OA3CA3N,qBAAU,KACJ4X,GACFG,EAAKu6B,MAAM4lI,EAAwBvqK,GACrC,GACC,CAACiK,IAwCF1qB,cAAAyV,WAAA,CAAAtW,SACEsR,eAAC4U,GAAM,CAACzM,KAAM8R,EAAWC,QAASA,EAAQxrB,SAAA,CACxCa,cAACkmB,GAAW,CAACC,YAAawR,EAAWX,OAASrM,OAAUnuB,EAAU2C,SAAC,gBAGnEa,cAACiuG,KAAY,IAAKpjF,EAAI1rB,SACpBsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cA9CHrf,IAAgC,IAADshL,EAAAC,EACnD,IAAI57F,EACA3lF,EAAS2lF,gBAAgBu1F,WAC3Bv1F,EAAO,CACLttF,QAAS2H,EAAS2lF,KAAK,GACvBlvE,SAAUzW,EAAS2lF,KAAK,GAAGvzF,OAI3B4N,EAAS2lF,gBAAgBptE,OAC3BotE,EAAO,CACLttF,QAAS2H,EAAS2lF,KAClBlvE,SAAUzW,EAAS2lF,KAAKvzF,OAI5B,MAAMgE,EAA4C,IAC7Cqe,EACHu8E,WAAYhxF,EAAS+4K,WACrB1wF,aAAcroF,EAASqoF,aACvB6L,eAAuC,QAAzBotF,EAAEthL,EAASk0F,sBAAc,IAAAotF,OAAA,EAAvBA,EAAyBhgJ,OACzC0yD,gBAAyC,QAA1ButF,EAAEvhL,EAASg0F,uBAAe,IAAAutF,OAAA,EAAxBA,EAA0BhxL,MAC3C+oL,SAAUt5K,EAASs5K,SACnB3zF,QAGFzK,GAA2B4W,eAAe17F,GACvCuI,MAAK,KACJ8hD,IACAtzC,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,QAAQ,IAEtErV,OAAOgI,IACN,MAAMtL,EAAuB,MAAbsL,EAAE9B,OAAiB8B,EAAEtL,QAAU0D,EAAUuB,SAAS7C,MAAMsD,WACxEiU,EAAW3Z,EAAQ,GACnB,IAaIgsB,YAAU,EACV9a,UAAWkV,KAAWowI,cAAc72J,SAAA,CAEpCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAAC2sL,GAAQ,CAAClsK,SAAUA,MAEtBzgB,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACylB,GAAkB,CACjBxO,GAAG,iCACHyO,QAASiF,EACThE,WAAS,MAGb3mB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC+lB,GAAgB,CACf9O,GAAG,+BACH0P,WAAS,EACTsB,UAAW4C,EAAK2B,UAAUC,0BAU9C,EC9BA,SAAS+gK,GAAez4K,GAMtB,MAAM,KAAE6D,EAAI,QAAE+R,EAAO,KAAE8iK,EAAI,iBAAEhhI,GAAqB13C,EAC5C4iB,EAAajB,MACb,WAAEvd,GAAeQ,KAkBvB,OACElJ,eAACu7B,KAAM,CACLpzB,KAAMA,EACN+R,QAASA,EACTna,SAAS,KAAIrR,SAAA,CAEbsR,eAAC+7B,KAAW,CAAArtC,SAAA,CACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,uCAGzBa,cAACgR,IAAU,CAACN,UAAWkV,KAAWkvI,SAAS31J,SACxCsuL,EAAKp5F,kBAGVr0F,cAACusC,KAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3Ba,cAACmsC,KAAa,CAAAhtC,SACZsR,eAACqI,KAAG,CACF5F,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACfx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CAEhCa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPiF,GAAS,IAGb3qB,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KAAMq4E,OA/CDl8B,EA+CgB4rH,EAAK5rH,gBA9C3CqlB,GAA2B6W,eAAel8B,GACvCl3D,MAAM+iL,IACDA,EAAc,GAChBjhI,IACAtzC,EACEjW,EAAUuB,SAASC,QAAQE,YAC3BqT,GAAYE,SAEdwS,KAEAxR,EAAWjW,EAAUuB,SAAS7C,MAAMuD,aACtC,IAZkB08D,KA+CiC,WAM3D,CAEA,SAAS8rH,GAAW54K,GAClB,MAAM,SAAE0L,GAAa1L,GAEf,WAAEoE,GAAeQ,MAEhBf,EAAM6e,GAAWhmB,oBAAS,IAC1BhL,EAAY24F,GAAiB3tF,wBAA6BjV,GA4B3D6iG,EAAgD,QAAxC78E,GAAiB/B,EAASgC,UAMxC,OAJA3P,qBAAU,KACRssF,OAAc5iG,EAAU,GACvB,CAACikB,IAGFhQ,eAAA,OAAAtR,SAAA,CACEa,cAAC4tL,KAAM,CAACloK,QAASA,IAlCY5T,WAC3BrL,EACFgxB,GAAQ,GAIVyvD,GACG8W,iCAAiC,CAChCn8B,WAAYphD,EAASohD,WACrBnuB,SAAUjzB,EAASizB,WAEpB/oC,MAAMmxC,IACL,KAAIA,GAAQA,EAAKl/C,KAAO,GAMtB,MAAM0N,MAAM,GAADjK,OAAIoiB,EAAQ,wBANE,CACzB,MACM68E,GADa7+F,OAAOm3E,KAAOn3E,OAAOyvF,WACZrY,gBAAgB/7B,GAC5CsjD,EAAcE,GACd7nE,GAAQ,EACV,CAEA,IAED30B,OAAM,KACLqW,EAAWjW,EAAUuB,SAAS7C,MAAMqD,aAAa,GACjD,EAWqByrF,CAAyBjwE,EAASgC,UACvDxP,MAAO,CAAE46K,OAAQ,WAAY1uL,SAC7Ba,cAAC8tL,KAAU,MAEbr9K,eAACu7B,KAAM,CACLx7B,SAAS,KACT1Q,MAAK,GAAAO,OAAKogB,EAAS8+E,aAAY,eAC/B3mF,KAAMA,EACN+R,QAASA,IAAM8M,GAAQ,GAAOt4B,SAAA,CAE9Ba,cAACwsC,KAAW,CAAArtC,SAAC,oBACbsR,eAAC87B,KAAa,CAAAptC,SAAA,EACVkgG,GACAr/F,cAAA,OAAKiT,MAAO,CAAEI,MAAO,QAAUxC,IAAKpK,EAClCsK,IAAG,GAAA1Q,OAAKogB,EAAS8+E,aAAY,iBAGhCF,GACCr/F,cAACs+F,GAAqB,CAAC79E,SAAUA,YAM7C,CAEestK,OArNf,SAAkBh5K,GAChB,MAAM,MAAEi5K,EAAK,iBAAEvhI,GAAqB13C,GAE7Bk5K,EAAgBC,GAAqBz8K,wBAAqCjV,GAM3E2xL,EAAiBA,KACrB1hI,IACAyhI,OAAkB1xL,EAAU,EAI9B,OACEiU,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACmgC,KAAI,CAAAhhC,SACF6uL,EAAMt4K,KAAI+3K,IACTztL,qBAAAyV,WAAA,CAAAtW,SACEsR,eAACmuB,KAAQ,CAAAz/B,SAAA,CACPa,cAACouL,KAAc,CAAAjvL,SACba,cAAC2tL,GAAU,CAACltK,SAAUgtK,MAExBztL,cAACm/B,KAAY,CAACC,QACZp/B,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,gBAAehU,SAC5CsR,eAACqI,KAAG,CAAA3Z,SAAA,CACDsuL,EAAKztF,iBACJhgG,cAAC+/F,KAAgB,CAAC9gB,KAAG,EAAC0gB,YAAa8tF,EAAKztF,kBAC1ChgG,cAAC8Y,KAAG,CAAChD,UAAU,OACb7C,MAAO,CAAEmoB,WAAY,EAAG2M,YAAa,GAAI5oC,SAAEsuL,EAAKp5F,eAClDr0F,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAC7BsR,eAAA,SAAOwC,MAAO,CAAEmB,MAAO,WAAYjV,SAAA,CAAC,cAE/Ba,cAAA,UAAAb,UArBLyI,EAqByB6lL,EAAK/+F,eArBLlyF,IAAToL,EAAqB,GAAKklC,KAAOllC,GAAMgoC,OAAO,kBAqBZ,KAAG78B,IAAEC,QAAQy6K,EAAK9+F,YAAcl+E,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,MAAGa,cAAA,UAAAb,SAASsuL,EAAK9+F,yBAM3G3pD,UACEhlC,cAAA,OAAAb,SACEsR,eAACqI,KAAG,CAAC5F,QAAQ,OAAOuyJ,QAAS,EAAEtmK,SAAA,CAC7BsR,eAAA,QAAAtR,SAAA,CAAM,gBAAc2tC,KAAO2gJ,EAAKzwF,YAAYptD,OAAO,kBACnD5vC,cAACy8F,GAAkB,CAACzzF,OAAQykL,EAAKzkL,gBAIzChJ,cAACk0K,KAAuB,CAAA/0K,SACtBa,cAACktL,GAAQ,CAACC,WAAYM,EAAKzkL,OACzByhL,YAAc9sK,GA7CT0wK,EAAC1wK,EAAwB8vK,KAC5CS,EAAkB,CAAET,OAAM9vK,UAAS,EA4CI0wK,CAAa1wK,EAAQ8vK,SA9BrCA,EAAK5rH,cAPVj6D,KAyCb,MAEFqmL,GACCx9K,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACotL,GAAgB,CACf3sK,SAAUwtK,EAAeR,KACzB/iK,UAAqC,SAA1BujK,EAAetwK,OAC1BgN,QAASA,KACPujK,OAAkB1xL,EAAU,EAE9BiwD,iBAAkB0hI,IAEpBnuL,cAACwtL,GAAc,CACb50K,KAAgC,WAA1Bq1K,EAAetwK,OACrB8vK,KAAMQ,EAAeR,KACrB9iK,QAASA,KACPujK,OAAkB1xL,EAAU,EAE9BiwD,iBAAkB0hI,SAM9B,ECzEA,MAAM9tJ,GAAY9W,cAAY+I,IAAK,CACjCmM,OAAQ,CACNzmB,UAAW,eACXojB,WAAY,OACZlS,WAAYoJ,EAAMipE,YAAY3xF,OAAO,YAAa,CAChDy6D,SAAU/xC,EAAMipE,YAAYl3B,SAASm3B,YAGzCC,WAAY,CACVzjF,UAAW,kBAEbs2K,YAAa,CACX/lK,QAAS,OAwREgmK,OA7Qf,SAAsBx5K,GAA4B,IAADy5K,EAAAC,EAAA3I,EAAA4I,EAAAC,EAC/C,MAAM,SAAEluK,EAAQ,iBAAEgsC,EAAgB,qBAAEmiI,GAAyB75K,EACvDoT,EAAUkY,KACV7kB,EAAY0gF,KACZvkE,EAAajB,MACb,WAAEvd,GAAeQ,MAErBgzB,UAAW49G,EACX39G,UAAWoxG,EACXtzH,UAAWuzH,GACTxxG,MAGFE,UAAWkiJ,EACXjiJ,UAAWkiJ,EACXpkK,UAAWqkK,GACTtiJ,MAGFE,UAAWqiJ,EACXpiJ,UAAWqiJ,EACXvkK,UAAWwkK,GACTziJ,MAEGm0D,EAAUC,GAAepvF,oBAAS,GAEnCu8K,EAA8B,QAAzBQ,EAAiB,QAAjBC,EAAGhuK,EAASutK,aAAK,IAAAS,OAAA,EAAdA,EAAgB9wL,cAAM,IAAA6wL,IAAI,EAElC/uF,EAAc73F,IAClB,GAAKA,EAGL,OAAOklC,KAAOllC,GAAMgoC,OAAO,cAAc,EAGrC8vD,EAAeC,IAAyB,IAADC,EAC3C,OAAyD,QAAzDA,EAAOpkF,EAAUkB,MAAK5R,GAAKA,EAAE60F,cAAgBA,WAAY,IAAAC,OAAA,EAAlDA,EAAoDF,WAAW,EA6DxE,OACEjvF,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACovF,KAAI,CAAC5uF,QAAQ,WAAWgC,MAAOwN,EAAS+9C,UAAY,CAAEv0B,YAAa,WAAc,CAAC,EAAE9qC,SAAA,CACnFa,cAAC8/F,KAAU,CACThgG,MACE2Q,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACbsR,eAACmb,KAAI,CAACG,MAAI,EAACnb,WAAS,EAACu2B,QAAS,EAAGh0B,WAAW,SAAQhU,SAAA,CAClDa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC+/F,KAAgB,CAAC9gB,KAAG,EAAC0gB,YAAal/E,EAASu/E,gBAC1C/sF,MAAO,CAAEoB,aAAc,eAE3B5D,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,CACc,QADd2mL,EACPrlK,EAAS4zE,oBAAY,IAAAyxF,IAAI,mBAEzBrlK,EAAS+9C,WACRx+D,cAAC08F,KAAI,CAAC9/F,KAAK,QAAQ4pB,MAAM,UAAUpS,MAAM,UAAUnB,MAAO,CAAEmoB,WAAY,YAI9E3qB,eAACmb,KAAI,CAACG,MAAI,EAACnb,WAAS,EAACu2B,QAAS,EAAGh0B,WAAW,SAAS+zB,eAAe,aAAY/nC,SAAA,CAC9Ea,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACy8F,GAAkB,CAACzzF,OAAQyX,EAASzX,YAEjB,aAApByX,EAASzX,QAA6C,YAApByX,EAASzX,SAC3ChJ,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC+8F,GAAsB,CAACC,WAAYv8E,EAASu8E,kBAInDh9F,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAC7BsR,eAAA,SAAOwC,MAAO,CAAEmB,MAAO,WAAYjV,SAAA,CAAC,cAE/Ba,cAAA,UAAAb,UAxCCyI,EAwCmB6Y,EAASiuE,eAxCHlyF,IAAToL,EAAqB,GAAKklC,KAAOllC,GAAMgoC,OAAO,kBAwCd,KAAG78B,IAAEC,QAAQyN,EAASkuE,YAAcl+E,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,MAAGa,cAAA,UAAAb,SAASshB,EAASkuE,uBAKvHhxE,OACE3d,cAACwqL,GAAY,CACXziK,QAAS6mK,EAAuB,CAAC,QAAU,CAAC,OAAQ,SAAU,WAAY,eAC1EpwH,UAA6B,QAApBkwH,EAAEjuK,EAAS+9C,iBAAS,IAAAkwH,KAC7B1lL,OAAQyX,EAASzX,OACjByhL,YApEiB9sK,IAXCkkD,MAYb,YAAXlkD,IAZwBkkD,EAaLphD,EAASohD,WAZhCqlB,GAA2BgX,sBAAsBr8B,GAC9Cl3D,MAAM4gB,IACDA,IACFkhC,IACAtzC,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,SAC/D,IAEDrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,YAQtB,SAAXme,GACFkxK,IAGa,WAAXlxK,GACF4sI,IAGa,aAAX5sI,GACFqxK,GACF,EAsDU3xF,UAjDc4gE,MACxB,MAAM/gE,EAAepwD,KAAOrsB,EAASu8E,YAC/BM,EAAQxwD,OACd,OAAOowD,EAAa38B,SAAS+8B,EAAM,EA8Cd2gE,OAIjBj+J,cAACigG,KAAW,CAAChtF,MAAO,CAAE8V,WAAY,GAAI5pB,SACpCsR,eAACmb,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAEhoC,SAAA,CACzBa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,kBAAkBjqB,MAAOkkB,EAASy/E,mBAEzDlgG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,cAAcjqB,MAAOkjG,EAAWh/E,EAASu8E,gBAEhEh9F,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,aAAajqB,MAAOkjG,EAAWh/E,EAAS0/E,eAE/DngG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,aAAajqB,MAAOkkB,EAASlO,cAEpDvS,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,YAAYjqB,MAAOkkB,EAASnO,aAEnDtS,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,cAAcjqB,MAAOkkB,EAAS2/E,eAErDpgG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,aAAajqB,MAAOkjG,EAAWh/E,EAASq0C,eAE/D90D,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,mBACnBjqB,MAAOmjG,EAAYj/E,EAAS4/E,sBAEhCrgG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,gBAAgBjqB,MAAOkkB,EAAS6/E,cAEvDtgG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,iBAAiBjqB,MAAOkkB,EAAS8/E,eAExDvgG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,cAAcjqB,MAAOmjG,EAAYj/E,EAASu/E,qBAEjEhgG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,SAASjqB,MA9IpBiW,KAAoB,IAADguF,EACvC,OAEC,QAFDA,EAAOpE,GAAe1/E,MACnB4M,GAAWA,EAAO/sB,QAAUiW,WAC9B,IAAAguF,OAAA,EAFMA,EAEJh6E,KAAK,EA2IuCi6E,CAAahgF,EAASjO,YAE7D/B,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SAAA,CAC0B,QAAxCqjB,GAAiB/B,EAASgC,WACzBziB,cAACs+F,GAAqB,CAAC79E,SAAUA,IAEM,QAAxC+B,GAAiB/B,EAASgC,WACzBziB,cAACk/F,GAA0B,CAACz+E,SAAUA,YAO9ChQ,eAAC0+K,KAAW,CAACC,gBAAc,EAAAjwL,SAAA,GACtB6uL,GAAUhuL,cAAC08F,KAAI,CAACl2E,MAAK,GAAAnmB,OAAK2tL,EAAK,SAAS/6K,MAAO,CAAEmoB,WAAY,MAEhEp7B,cAACqmB,KAAU,CACTX,QAASA,IAAMm7E,GAAaD,GAC5B34E,SAAoB,IAAV+lK,EACV,gBAAeptF,EACf,aAAW,YACXlwF,UAAWmiB,aAAK1K,EAAQsW,OAAQ,CAC9B,CAACtW,EAAQszE,YAAamF,IACrBzhG,SAEHa,cAACqvL,KAAU,SAGfrvL,cAAC8/B,KAAQ,CAACC,GAAI6gE,EAASzhG,SACrBa,cAAC+tL,GAAQ,CAACC,MAAqB,QAAhBW,EAAEluK,EAASutK,aAAK,IAAAW,IAAI,GAAIliI,iBAAkBA,SAG7Dh8C,eAACu7B,KAAM,CACLpzB,KAAMqlI,EACNtzH,QAASqzH,EACTxtI,SAAS,KAAIrR,SAAA,CAEbsR,eAAC+7B,KAAW,CAAArtC,SAAA,CACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,uCAGzBa,cAACgR,IAAU,CAACN,UAAWkV,KAAWkvI,SAAS31J,SACxCshB,EAAS4zE,kBAGdr0F,cAACusC,KAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3Ba,cAACmsC,KAAa,CAAAhtC,SACZsR,eAACqI,KAAG,CACF5F,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACfx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CAEhCa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPs4H,GAAkB,IAGtBh+I,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KAAMq4E,OAvMHl8B,EAuMkBphD,EAASohD,gBAtMjDqlB,GAA2B6W,eAAel8B,GACvCl3D,MAAM2kL,IACDA,EAAqB,GACvB7iI,IACAtzC,EACEjW,EAAUuB,SAASC,QAAQE,YAC3BqT,GAAYE,UAGdgB,EAAWjW,EAAUuB,SAAS7C,MAAMuD,aACtC,IAXkB08D,KAuMuC,YAK3D7hE,cAAC+qL,GAAoB,CACnBtqK,SAAUA,EACViK,UAAWqkK,EACXpkK,QAASmkK,EACT1jK,SAAUA,KACRqhC,IACAqiI,GAAkB,IAGtB9uL,cAAC6sL,GAAkB,CACjBn5I,SAAUjzB,EAASizB,SACnBg5I,SAAUjsK,EAASohD,WACnBpV,iBAAkBA,EAClBotE,SAAUo1D,EACVvkK,UAAWwkK,OA9KGtnL,KAkLtB,ECvQe2nL,OAvD4CrwL,IAGpD,IAHqD,MAC1DgqD,EAAK,iBACLuD,GACDvtD,EACC,MAAMswL,EAAc/iJ,KACpB,OACEh8B,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACkoL,GAAiB,CAChBh+H,OAAQhB,EAAMgB,OACdy+H,qBAAqB,EACrBl8H,iBAAkBA,EAClBx1C,IAAE,EACF4xK,mBAAmB,IAGrB7oL,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,qBAG3Ca,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CACRj0D,QAAS8pK,EAAY7iJ,UAAUxtC,SAChC,qBAIHa,cAACulL,GAAsB,CACrBC,MAAOgK,EACP97I,SAAUwV,EAAMgB,OAAOxW,SACvB+Y,iBAAkBA,IAEpBzsD,cAAC4rB,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAEhoC,SACxB+pD,EAAMgB,OAAO8X,WACZ9Y,EAAMgB,OAAO8X,UAAUtsD,KAAK+K,GAExBzgB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAGhBa,cAACuuL,GAAY,CACX9tK,SAAUA,EACVizB,SAAUwV,EAAMgB,OAAOxW,SACvB+Y,iBAAkBA,KAClB,sCAAApsD,OANFogB,EAASohD,WAAU,KAAAxhE,OACftC,KAAKo/F,YAUnBn9F,cAACm1J,GAAgB,CACfjrG,OAAQhB,EAAMgB,OACdmrG,WAAYnsG,EAAMmsG,WAClB5oG,iBAAkBA,MAEnB,ECyCQgjI,OAjG6CvwL,IAErD,IAADwwL,EAAA,IAFuD,aAC3DC,GACDzwL,EACC,OACEuR,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,wBAG3CsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,iBAAgBrnB,SACjCa,cAACmnB,GAAS,CAAC5qB,MAAOozL,EAAa1zF,MAAO70E,UAAQ,QAGlDpnB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,QAAOrnB,SACxBa,cAACmnB,GAAS,CAAC5qB,MAAOozL,EAAah9K,MAAOyU,UAAQ,QAGlDpnB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACmnB,GAAS,CAAC5qB,MAAOozL,EAAaz7F,SAAU9sE,UAAQ,QAGrDpnB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACmnB,GAAS,CAAC5qB,MAAOozL,EAAaC,SAAUxoK,UAAQ,WAKvDpnB,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,yBAG3CsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAW2mG,KAAUzb,kBAAkBz8F,SAAA,CACrDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,cAAarnB,SAC9Ba,cAACmnB,GAAS,CAAC5qB,MAA8B,QAAzBmzL,EAAEC,EAAavsG,kBAAU,IAAAssG,OAAA,EAAvBA,EAAyBlwK,WAAY4H,UAAQ,QAGnEpnB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CAAC5qB,MAAOozL,EAAap8K,SAAU6T,UAAQ,QAGrDpnB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,QAAOrnB,SACxBa,cAACmnB,GAAS,CAAC5qB,MAAOozL,EAAaxkE,MAAO/jG,UAAQ,QAGlDpnB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CAAC5qB,MAAOozL,EAAaE,SAAUzoK,UAAQ,QAGrDpnB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,cAAarnB,SAC9Ba,cAACmnB,GAAS,CAAC5qB,MAAOozL,EAAa1vE,WAAY74F,UAAQ,QAGvDpnB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,kBAAiBrnB,SAClCa,cAACmnB,GAAS,CAAC5qB,MAAOozL,EAAaC,SAAUxoK,UAAQ,QAGrDpnB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CAAC5qB,MAAOozL,EAAaG,SAAU1oK,UAAQ,QAGrDpnB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACmnB,GAAS,CACR5qB,MACEozL,EAAa3lE,WACbl9E,KAAO6iJ,EAAa3lE,WAAWp6E,OAAO,aAAa6K,cAErDrzB,UAAQ,QAIdpnB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,EAAEx3B,SACtBa,cAACumB,GAAW,CAACC,MAAM,mBAAkBrnB,SACnCa,cAACmnB,GAAS,CACR5qB,MACEozL,EAAaI,WACbjjJ,KAAO6iJ,EAAaI,WAAWngJ,OAAO,aAAa6K,cAErDrzB,UAAQ,aAKf,ECmDQ4oK,OA1I0D9wL,IAGlE,IAHmE,aACxEgoB,EAAY,KACZ5jB,GACDpE,EACC,MAAM,SAAE0gB,GAAaG,KAEf8K,EAAOC,gBACNmlK,EAAgBC,GAAqBz+K,oBAAS,GAE/C0+K,EAAWtlK,EAAK05F,MAAM,YACtB6rE,EAAWvlK,EAAK05F,MAAM,YACtB8rE,EAAWxlK,EAAK05F,MAAM,YAE5BzxG,qBAAU,KAAO,IAADw9K,EAAAC,EAAAC,EACd,IAAIC,EAAgBN,EAAmB,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAU5zL,MAAQ,KAC7Cm0L,EAAgBN,EAAmB,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAU7zL,MAAQ,KAC7Co0L,EAAgBN,EAAmB,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAU9zL,MAAQ,KAG/Ck0L,KAAuC,QAA1BH,EAAKppK,EAAaipK,gBAAQ,IAAAG,OAAA,EAArBA,EAAuB/zL,QACzCm0L,KAAuC,QAA1BH,EAAKrpK,EAAakpK,gBAAQ,IAAAG,OAAA,EAArBA,EAAuBh0L,QACzCo0L,KAAuC,QAA1BH,EAAKtpK,EAAampK,gBAAQ,IAAAG,OAAA,EAArBA,EAAuBj0L,OAEzC2zL,GAAkB,GAElBA,GAAkB,EACpB,GACC,CAACC,EAAUC,EAAUC,EAAUnpK,IAYlC,OACElnB,cAAAyV,WAAA,CAAAtW,SACEsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cAdCk9B,IAA4C,IAADqoI,EAAAC,EAAAC,EAC/DxtL,EAAK,IACA4jB,KACAqhC,EACH4nI,SAA+B,QAAvBS,EAAEroI,EAAa4nI,gBAAQ,IAAAS,OAAA,EAArBA,EAAuBr0L,MACjC6zL,SAA+B,QAAvBS,EAAEtoI,EAAa6nI,gBAAQ,IAAAS,OAAA,EAArBA,EAAuBt0L,MACjC8zL,SAA+B,QAAvBS,EAAEvoI,EAAa8nI,gBAAQ,IAAAS,OAAA,EAArBA,EAAuBv0L,OACjC,IAQEivB,YAAU,EAAArsB,SAAA,CAEVa,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,6BAG1CygB,GACCnP,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACk/E,GAAc,CACb9gF,KAAK,WACL2pB,QAASnI,EAASlK,KAAKq7K,IAAO,CAC5Bx0L,MAAOw0L,EAAQ5+K,SACfqU,MAAOuqK,EAAQ3+K,aAEjB0U,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAOkjL,SACrBjoK,aACE2C,EAAK5d,OAAOkjL,SACRtlK,EAAK5d,OAAOkjL,SAAS5zL,MAAMiD,QAC3B,GAEN0nB,aAAcA,EAAaipK,eAIjCnwL,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACk/E,GAAc,CACb9gF,KAAK,WACL2pB,QAASnI,EAASlK,KAAKq7K,IAAO,CAC5Bx0L,MAAOw0L,EAAQ5+K,SACfqU,MAAOuqK,EAAQ3+K,aAEjB0U,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAOmjL,SACrBloK,aACE2C,EAAK5d,OAAOmjL,SACRvlK,EAAK5d,OAAOmjL,SAAS7zL,MAAMiD,QAC3B,GAEN0nB,aAAcA,EAAakpK,eAIjCpwL,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,YAAWrnB,SAC5Ba,cAACk/E,GAAc,CACb9gF,KAAK,WACL2pB,QAASnI,EAASlK,KAAKq7K,IAAO,CAC5Bx0L,MAAOw0L,EAAQ5+K,SACfqU,MAAOuqK,EAAQ3+K,aAEjB0U,QAAS+D,EAAK/D,QACdllB,QAASipB,EAAK5d,OAAOojL,SACrBnoK,aACE2C,EAAK5d,OAAOojL,SACRxlK,EAAK5d,OAAOojL,SAAS9zL,MAAMiD,QAC3B,GAEN0nB,aAAcA,EAAampK,eAIjCrwL,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CAACD,aAAcA,EAAaq3C,QAASn3C,UAAQ,QAG3DpnB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,gCAA+BrnB,SAChDa,cAACmnB,GAAS,CAACD,aAAcA,EAAaglG,SAAU9kG,UAAQ,WAK9DpnB,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,SAAQ/nC,SACzCa,cAAC2lB,KAAM,CACLsC,SAAUgoK,EACVpzL,KAAK,SACLoU,QAAQ,YACRP,UAAWkV,KAAWK,uBAAuB9mB,SAE5C+D,EAAUC,QAAQK,uBAM5B,ECpGQwtL,ICvDX,GAAS,GAAU,GAAU,GDuDlBA,GAhDmBA,KAAO,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACtC,MACE5zK,OACEyuC,aAAa,KAAE95C,IAChB,iBACDy5C,GACEc,MACE,SAAEhtC,GAAaG,KAErB,OACE/f,cAAAyV,WAAA,CAAAtW,SACGkT,GACC5B,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACyvL,GAAmB,CAACE,aAAct9K,IAClCuN,EAASjiB,OAAS,GACjBqC,cAACgwL,GAAuB,CACtB9oK,aAAc,CACZzkB,SAAU4P,EAAKF,SACfg+K,SAAU,CACR5zL,MAAO8V,EAAK89K,SACZ3pK,MAEc,QAFTyqK,EAC+C,QAD/CC,EACHtxK,EAASlD,MAAM2Z,GAAMA,EAAElkB,WAAaE,EAAK89K,kBAAS,IAAAe,OAAA,EAAlDA,EACI9+K,gBAAQ,IAAA6+K,IAAI,IAEpBb,SAAU,CACR7zL,MAAO8V,EAAK+9K,SACZ5pK,MAEc,QAFT2qK,EAC+C,QAD/CC,EACHxxK,EAASlD,MAAM2Z,GAAMA,EAAElkB,WAAaE,EAAK+9K,kBAAS,IAAAgB,OAAA,EAAlDA,EACIh/K,gBAAQ,IAAA++K,IAAI,IAEpBd,SAAU,CACR9zL,MAAO8V,EAAKg+K,SACZ7pK,MAEc,QAFT6qK,EAC+C,QAD/CC,EACH1xK,EAASlD,MAAM2Z,GAAMA,EAAElkB,WAAaE,EAAKg+K,kBAAS,IAAAiB,OAAA,EAAlDA,EACIl/K,gBAAQ,IAAAi/K,IAAI,IAEpB9yH,QAASlsD,EAAKksD,QACd2tD,SAAU75G,EAAKy9K,UAEjBxsL,KAAMwoD,QAKb,EClDP,SAAS,KAAiS,OAApR,GAAW5tD,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASm7K,GAAWryL,EAAMyX,GACxB,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAY,GAAuB,gBAAoB,SAAU,CACjFuX,GAAI,EACJC,GAAI,EACJC,EAAG,KACHC,OAAQ,UACR+kB,YAAa,MACV,KAAa,GAAwB,gBAAoB,SAAU,CACtEllB,GAAI,EACJC,GAAI,EACJC,EAAG,EACHT,KAAM,aACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,EACJC,GAAI,EACJC,EAAG,EACHT,KAAM,aACH,KAAa,GAAwB,gBAAoB,SAAU,CACtEO,GAAI,GACJC,GAAI,EACJC,EAAG,EACHT,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBy6K,IAClC,IC8HAC,OAnJoBA,KAAO,IAADh0B,EACvC,MAAOhzG,EAAgBszG,GAAqBrsJ,wBAE1CjV,IAEAkhB,OACEyuC,aAAa,UAAEwI,IAChB,iBACDlI,GACEG,KACEj1B,EAAajB,KACb84J,EAAc/iJ,KAEpB35B,qBAAU,KACR,GAAI6hD,EAAW,CACb,IAAI88H,EAAgB98H,EAAUj4C,MAC3BnF,GAAMA,EAAEm8B,YAA2B,OAAd8W,QAAc,IAAdA,OAAc,EAAdA,EAAgB9W,YAExCoqH,EAAkB2zB,EACpB,IACC,CAAC98H,IAEJ,MAAMgmB,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,aACRytD,SAAU,YACV1xE,MAAO,OAET,CACEikB,OAAQ,YACRytD,SAAU,WACVE,KAAM/lF,IAAA,IAAAwyL,EAAAC,EAAA,IAAC,IAAE30G,GAAU99E,EAAA,OACjBc,cAAA,QAAAb,SAAU,OAAH69E,QAAG,IAAHA,GAAa,QAAV00G,EAAH10G,EAAKmI,gBAAQ,IAAAusG,GAAU,QAAVC,EAAbD,EAAep/K,gBAAQ,IAAAq/K,OAApB,EAAHA,EAAyB32J,qBAA2B,EAE7D3nB,MAAO,OAET,CACEikB,OAAQ,WACRytD,SAAU,eACV1xE,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC9Dw4B,EAAWX,OACVh3B,cAACg/E,GAAe,CACd/nE,GAAE,kCAAA5W,OAAoC28E,EAAImI,SAASzxC,UACnDhuB,QAASA,KACPo4I,EAAkB9gF,EAAImI,SAAS,EAC/BhmF,SAEFa,cAAC4xL,GAAW,CAACv+K,MAAO,GAAIC,OAAQ,OAGhCtT,cAAC0hC,KAAI,CACHzqB,GAAE,GAAA5W,OAAK28E,EAAImI,SAASzxC,SAAQ,kBAC5Bt/B,MAAM,UACNvX,KAAK,SACL6oB,QAASA,KACPo4I,EAAkB9gF,EAAImI,SAAS,EAEjCl0E,QAAQ,QACR6E,UAAU,SAAQ3W,SACnB,sBAID,EAERkU,MAAO,SAGX,CAACskB,EAAWX,SAEd,OACEvmB,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,EACXqrD,GAAkBmK,GAClB30D,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAM8oD,EACNimB,YAAU,EACVtK,MAAI,EACJyK,cAAepjD,EAAWX,OAAS,CAAC,gBAAkB,GACtD8jD,OAAK,MAIVtwB,GACC/5C,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBsR,eAAA,OAAKC,UAAW2mG,KAAU8b,WAAWh0H,SAAA,CACnCa,cAAC0hC,KAAI,CACHhc,QAASA,IAAMo4I,OAAkBthK,GACjCK,KAAK,SACLoU,QAAQ,QACR6E,UAAU,SAAQ3W,SAElBa,cAAC+0G,GAAQ,MAEX/0G,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,kCAE9Ba,cAACkoL,GAAiB,CAChBh+H,OAAQM,EACRvzC,IAAE,EACF0xK,qBAAqB,EACrBl8H,iBAAkBA,EAClBo8H,mBAAmB,IAGrB7oL,cAACgR,IAAU,CAACC,QAAQ,KAAKmD,MAAM,YAAWjV,SAAC,qBAG3CsR,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CACRj0D,QAAS8pK,EAAY7iJ,UAAUxtC,SAChC,qBAIHa,cAACulL,GAAsB,CACrBC,MAAOgK,EACP97I,SAAU8W,EAAe9W,SACzB+Y,iBAAkBA,IAEpBzsD,cAAC4rB,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAEhoC,SACA,QADAq+J,EACxBhzG,EAAewX,iBAAS,IAAAw7F,OAAA,EAAxBA,EAA0B9nJ,KAAK+K,GAC9BzgB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACuuL,GAAY,CACX9tK,SAAUA,EACVizB,SAAU8W,EAAe9W,SACzB+Y,iBAAkBA,KAJEhsC,EAASohD,wBAYtC,ECvHJ,MAAMgwH,GAAoBznK,OAAaC,MAAM,CAClDynK,qBAAsB1nK,OAEnB5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDosL,qBAAsB3nK,OAEnB5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDqsL,qBAAsB5nK,OAEnBG,UAAUrnB,EAAUqC,WAAWC,UAC/BA,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAImnC,OAAS+C,SAAU3sC,EAAUqC,WAAWQ,WAGpCksL,GAAsB7nK,OAAaC,MAAM,CACpD6nK,eAAgB9nK,OAEb5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDwsL,eAAgB/nK,OAEb5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDysL,eAAgBhoK,OAEbzkB,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD0sL,eAAgBjoK,OAEb5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAImnC,OAAS+C,SAAU3sC,EAAUqC,WAAWO,aAC5CykB,UAAUrnB,EAAUqC,WAAWO,aAClCwsL,cAAeloK,OAEZ5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,EAAG4gG,GAAarjG,EAAUqC,WAAWI,IAAK,IACjD4sL,eAAgBnoK,OAEb5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,UAClCgtL,eAAgBpoK,OAEb5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD8sL,eAAgBroK,OAEb5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClD+sL,eAAgBtoK,OAEb5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,KAClDgtL,eAAgBvoK,OAEb5kB,SAAStC,EAAUqC,WAAWC,UAC9B+kB,UAAUrnB,EAAUqC,WAAWC,UAClCotL,eAAgBxoK,OAEbzkB,IAAI,GAAI4gG,GAAarjG,EAAUqC,WAAWI,IAAK,OAooBrCktL,OAjoBwC3zL,IAGhD,IAAD4zL,EAAAC,EAAAC,EAAAjsE,EAAAC,EAAA,IAHkD,OACtD32G,EAAM,iBACNo8C,GACDvtD,EACC,MAAM,WAAEia,GAAeQ,KACjBge,EAAajB,KACbhlB,EAAWN,IAAMpS,WAAWmS,IAC3B8hL,EAAaC,GAAkBzhL,wBACpCjV,IAEK22L,EAAeC,GAAoB3hL,mBAAiB,IACpD4hL,EAAgBC,GAAqB7hL,oBAAkB,IACvD8hL,EAA0BC,GAC/B/hL,oBAAkB,GACd+J,EAAY0gF,MAEhBvvD,UAAW8mJ,EACX7mJ,UAAW8mJ,EACXhpK,UAAWipK,GACTlnJ,KACEmnJ,EAAa9oK,aAA0B,CAC3CG,KAAM,WACNF,SAAUC,aAAY6mK,IACtBh9F,cAAe,CACbi9F,qBAAsB,GACtBC,qBAAsB,GACtBC,qBAAsB,QAGpB/mE,EAAengG,aAA4B,CAC/CG,KAAM,WACNF,SAAUC,aAAYinK,IACtBp9F,cAAe,CACbu9F,eAAgB,GAChBQ,eAAgB,GAChBL,oBAAgB/1L,EAChBm2L,oBAAgBn2L,EAChBq3L,eAAgB,GAChBvB,cAAen2F,GAAQE,KACvBm2F,eAAgB,GAChBC,eAAgB,GAChBC,eAAgB,MAIpB5/K,qBAAU,KACR,IAAImV,EAAWzD,GACbytK,GACAhnE,EAAavmG,WAEf8uK,EAA4BvrK,EAAS,GACpC,CAACgjG,EAAaz+F,UAAUE,QAASu+F,EAAankG,UAEjD,MA6DMgtK,EAAcA,KAClBJ,IACAN,EAAiB,GACjBF,OAAe12L,GACf82L,GAAkB,EAAM,EAGpBS,EAAkBH,EAAWrvE,QAEnC,OACE9zG,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CACR1iE,GAAG,kDACHyO,QAAS+tK,EAAct0L,SACxB,kBAIHa,cAACqlB,GAAM,CAACzM,KAAM+6K,EAAoBhpK,QAAS+oK,EAAcv0L,SACrDk0L,EAkPA5iL,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACkmB,GAAW,CACVC,YAAawR,EAAWX,OAAS08J,OAAgBl3L,EAAU2C,SAC5D,mBAGDsR,eAAA,QACEkX,aAAa,MACbyD,SAAU6/F,EAAa5/F,cA3UXnN,IAAiC,IAAD81K,EAAAC,EAAAC,EAAAC,EACtDtsI,GAAcoB,YAAY,CACxB54C,OAAQA,EACR64C,MAAO,IACFhrC,EACH49E,QAAS59E,EAAQs0K,eACjBz2F,KAAM79E,EAAQu0K,eACdlgL,UAAW2L,EAAQg0K,eACnB5/K,SAAU4L,EAAQi0K,eAClB3/K,OAAQ0L,EAAQo0K,cAChB1I,WAAY1rK,EAAQk0K,eACpBn2F,MAAO/9E,EAAQ00K,eACf52F,SAAU99E,EAAQw0K,eAClBh1K,MAAOQ,EAAQ21K,eACf7zF,gBAA8C,QAA/Bg0F,EAAwB,QAAxBC,EAAE/1K,EAAQq0K,sBAAc,IAAA0B,OAAA,EAAtBA,EAAwB13L,aAAK,IAAAy3L,SAAIx3L,EAClDsvH,cAA4C,QAA/BooE,EAAwB,QAAxBC,EAAEj2K,EAAQy0K,sBAAc,IAAAwB,OAAA,EAAtBA,EAAwB53L,aAAK,IAAA23L,SAAI13L,EAChDs4D,UAAWhoB,KAAO5uB,EAAQm0K,gBAAgB/+I,QAAQ,OAAOzD,YAG1DllC,MAAK,KACJ8hD,IACAqnI,IACA36K,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,QAAQ,IAEtErV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,IAqTpCgsB,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAA,SAAOiT,MAAO,CAAEC,QAAS,QAAUyU,aAAa,QAChD3nB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,aAAYrnB,SACvCa,cAACmnB,GAAS,CACR/oB,KAAK,iBACL8tB,SAAU++F,EAAa9+F,SACvBjF,aACsC,QAD1B4rK,EACViB,EAAgBjC,4BAAoB,IAAAgB,IAAI,GAE1C1/K,OAAO,SACPzL,YAAY,UACZ/F,QAASqpH,EAAah+G,OAAOilL,eAC7B9lK,WACE6+F,EAAah+G,OAAOilL,eAChBjnE,EAAah+G,OAAOilL,eAAe1yL,QACnC,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,YAAWrnB,SACtCa,cAACmnB,GAAS,CACR/oB,KAAK,iBACLuJ,YAAY,UACZuf,aACsC,QAD1B6rK,EACVgB,EAAgBhC,4BAAoB,IAAAgB,IAAI,GAE1C7mK,SAAU++F,EAAa9+F,SACvB/Y,OAAO,SACPxR,QAASqpH,EAAah+G,OAAOklL,eAC7B/lK,WACE6+F,EAAah+G,OAAOklL,eAChBlnE,EAAah+G,OAAOklL,eAAe3yL,QACnC,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,cAAcE,YAAU,EAAAvnB,SACnDa,cAACmnB,GAAS,CACR/oB,KAAK,iBACLuJ,YAAY,SACZukB,SAAU++F,EAAa9+F,SACvB/Y,OAAO,SACPxR,QAASqpH,EAAah+G,OAAOmlL,eAC7BhmK,WACE6+F,EAAah+G,OAAOmlL,eAChBnnE,EAAah+G,OAAOmlL,eAAe5yL,QACnC,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,gBAAernB,SAC1Ca,cAAC4lF,GAAU,CACTmB,gBAAc,EACdC,QAAM,EACNr/E,YAAY,aACZyL,OAAO,SACP8T,aACsC,QAD1B8rK,EACVe,EAAgB/B,4BAAoB,IAAAgB,IAAI,KAE1C50L,KAAK,iBACL0oB,QAASmkG,EAAankG,QACtBllB,QAASqpH,EAAah+G,OAAOolL,eAC7BjmK,WACE6+F,EAAah+G,OAAOolL,eAChBpnE,EAAah+G,OAAOolL,eAAe7yL,QACnC,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,GAAGptB,SACxBa,cAACumB,GAAW,CAACC,MAAM,SAASG,WAAS,EAAAxnB,SACnCa,cAACgqB,KAAU,CACTlD,QAASmkG,EAAankG,QACtB1oB,KAAK,gBACLuW,OAASmwK,GACP9kL,cAAC0oF,KAAU,IAAKo8F,EAAO9nG,KAAG,EAAA79E,SACvBi9F,GAAe1mF,KAAK22G,GACnBrsH,cAACwhF,KAAgB,CAEfjlF,MAAO8vH,EAAE9vH,MACTuqB,QAAS9mB,cAAC2oF,KAAK,CAACv0E,MAAM,YACtBoS,MAAO6lG,EAAE7lG,OAHJ6lG,EAAE7lG,iBAWrBxmB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,cAAarnB,SACxCa,cAACk/E,GAAc,CACb9gF,KAAK,iBACLgV,OAAO,SACPzL,YAAY,aACZogB,QAASvM,EAAU9F,KAAK3N,IAAiB,CACvCxL,MAAOwL,EAAQ43F,YACfn5E,MAAOze,EAAQ23F,gBAEjB54E,QAASmkG,EAAankG,QACtBllB,QAASqpH,EAAah+G,OAAOslL,eAC7BrqK,aACE+iG,EAAah+G,OAAOslL,eACmB,QADLxrE,EAC7BkE,EAAah+G,OAAOslL,sBAAc,IAAAxrE,OAAA,EAAnCA,EACIvnH,QACJ,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,UAASrnB,SACpCa,cAACmnB,GAAS,CACR/oB,KAAK,iBACLuJ,YAAY,kBACZyL,OAAO,SACP8Y,SAAU++F,EAAa9+F,SACvBvqB,QAASqpH,EAAah+G,OAAOulL,eAC7BpmK,WACE6+F,EAAah+G,OAAOulL,eAChBvnE,EAAah+G,OAAOulL,eAAehzL,QACnC,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,OAAMrnB,SACjCa,cAACmnB,GAAS,CACR/oB,KAAK,iBACLgV,OAAO,SACPzL,YAAY,aACZukB,SAAU++F,EAAa9+F,SACvBvqB,QAASqpH,EAAah+G,OAAOwlL,eAC7BrmK,WACE6+F,EAAah+G,OAAOwlL,eAChBxnE,EAAah+G,OAAOwlL,eAAejzL,QACnC,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,SAAQrnB,SACnCa,cAACmnB,GAAS,CACR/oB,KAAK,iBACLuJ,YAAY,SACZyL,OAAO,SACP8Y,SAAU++F,EAAa9+F,SACvBvqB,QAASqpH,EAAah+G,OAAOylL,eAC7BtmK,WACE6+F,EAAah+G,OAAOylL,eAChBznE,EAAah+G,OAAOylL,eAAelzL,QACnC,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,uBAAsBrnB,SACjDa,cAACk/E,GAAc,CACb9gF,KAAK,iBACLgV,OAAO,SACPzL,YAAY,aACZogB,QAASvM,EAAU9F,KAAK3N,IAAiB,CACvCxL,MAAOwL,EAAQ43F,YACfn5E,MAAOze,EAAQ23F,gBAEjB54E,QAASmkG,EAAankG,QACtBllB,QAASqpH,EAAah+G,OAAO0lL,eAC7BzqK,aACE+iG,EAAah+G,OAAO0lL,eACmB,QADL3rE,EAC7BiE,EAAah+G,OAAO0lL,sBAAc,IAAA3rE,OAAA,EAAnCA,EACIxnH,QACJ,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACD,YAAU,EAACF,MAAM,QAAOrnB,SAC7Ca,cAACmnB,GAAS,CACR/oB,KAAK,iBACLuJ,YAAY,aACZyL,OAAO,SACP8Y,SAAU++F,EAAa9+F,SACvBvqB,QAASqpH,EAAah+G,OAAO4mL,eAC7BznK,WACE6+F,EAAah+G,OAAO4mL,eAChB5oE,EAAah+G,OAAO4mL,eACpB,SAKZ7zL,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACD,YAAU,EAACF,MAAM,QAAOrnB,SAC7Ca,cAACmnB,GAAS,CACRxf,YAAY,mBACZvJ,KAAK,iBACLgV,OAAO,SACP8Y,SAAU++F,EAAa9+F,SACvBvqB,QAASqpH,EAAah+G,OAAO2lL,eAC7BxmK,WACE6+F,EAAah+G,OAAO2lL,eAChB3nE,EAAah+G,OAAO2lL,eAAepzL,QACnC,cAOhBQ,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC2lB,KAAM,CACL1O,GAAG,oDACH0P,WAAS,EACT1V,QAAQ,WACRP,UAAWkV,KAAWC,sBACtBH,QAASA,IAAM4tK,GAAkB,GAAOn0L,SACzC,oBAIHa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC+lB,GAAgB,CACf9O,GAAG,8CACH0P,WAAS,EACTsB,SAAUsrK,aAnPb,MA1PT9iL,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACkmB,GAAW,CACVC,YAAawR,EAAWX,OAAS08J,OAAgBl3L,EAAU2C,SAC5D,gBAGDsR,eAAA,QACEkX,aAAa,MACbyD,SAAUwoK,EAAWvoK,cA/DXnN,IACpBk1K,EAAiB,GACjBvrI,GAAckB,aAAa,CACzBqrI,eAAgBl2K,EAAQ4zK,qBAAqB7qF,YAAYC,UACzDmtF,cAAen2K,EAAQ6zK,qBAAqB9qF,YAAYC,UACxDotF,iBAAkBp2K,EAAQ8zK,uBAEzBrnL,MAAM4pL,IACLrB,EAAeqB,EAAO,IAEvBzxL,OAAM,IAAMqW,EAAW,0CAAyC,IAuDzDqS,YAAU,EAAArsB,SAAA,CAEVa,cAAC8lB,GAAa,CAAA3mB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAAA7R,SAEP,2HAINa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,kCAK7Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,aAAYrnB,SACvCa,cAACmnB,GAAS,CACR/oB,KAAK,uBACLgV,OAAO,SACPzL,YAAY,UACZukB,SAAU0nK,EAAWznK,SACrBvqB,QAASgyL,EAAW3mL,OAAO6kL,qBAC3B1lK,WACEwnK,EAAW3mL,OAAO6kL,qBACd8B,EAAW3mL,OAAO6kL,qBAAqBtyL,QACvC,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,YAAWrnB,SACtCa,cAACmnB,GAAS,CACR/oB,KAAK,uBACLgV,OAAO,SACPzL,YAAY,UACZukB,SAAU0nK,EAAWznK,SACrBvqB,QAASgyL,EAAW3mL,OAAO8kL,qBAC3B3lK,WACEwnK,EAAW3mL,OAAO8kL,qBACd6B,EAAW3mL,OAAO8kL,qBAAqBvyL,QACvC,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,gBAAernB,SAC1Ca,cAAC4lF,GAAU,CACTmB,gBAAc,EACdC,QAAM,EACN5zE,OAAO,SACPrN,QAAS+mC,OAAS+C,SAClB+0I,oBACGgP,EAAW3mL,OAAO+kL,sBACnB9uL,EAAUqC,WAAWO,YAEvB++K,gBACG+O,EAAW3mL,OAAO+kL,sBACnB9uL,EAAUqC,WAAWQ,QAEvB4B,YAAY,aACZvJ,KAAK,uBACL0oB,QAAS8sK,EAAW9sK,QACpBllB,QAASgyL,EAAW3mL,OAAO+kL,qBAC3B5lK,WACEwnK,EAAW3mL,OAAO+kL,qBACd4B,EAAW3mL,OAAO+kL,qBAAqBxyL,QACvC,cAOhBQ,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACylB,GAAkB,CACjBwC,SAA4B,IAAlBkrK,EACVl8K,GAAG,4CACHyO,QAASouK,EACTntK,WAAS,MAGb3mB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC+lB,GAAgB,CACf9O,GAAG,sCACHxN,KAAK,SACLkd,WAAS,EACTsB,UAAW2rK,EAAWpnK,UAAUE,mBA/FnC,GAqGNumK,GACCxiL,eAAA,OAAKC,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAC3CsR,eAACqV,GAAa,CAAA3mB,SAAA,CACZa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,+BAI3Ba,cAAC8Y,KAAG,CAAA3Z,SACFsR,eAACmb,KAAI,CAACG,MAAI,EAACnb,WAAS,EAAC+lB,GAAI,GAAGx3B,SAAA,CACzB8zL,EAAYt1L,OAAS,EACpBs1L,EAAYv9K,KAAK8+K,GAEbx0L,cAAA,OAEE0lB,QAASA,IAAM0tK,EAAiBoB,EAAG9gJ,UACnChjC,UAAWkV,KAAWuqF,sBAAsBhxG,SAE5CsR,eAACmb,KAAI,CACHG,MAAI,EACJnb,WAAS,EACTs2B,eAAe,gBACf/zB,WAAW,SACXg0B,QAAS,EACTz2B,UAAS,GAAArQ,OAAKulB,KAAWwqF,gBAAe,KAAA/vG,OACtC8yL,IAAkBqB,EAAG9gJ,UACrB9tB,KAAWyqF,wBACVlxG,SAAA,CAEHa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAAC2oF,KAAK,CACJjH,QAASyxG,IAAkBqB,EAAG9gJ,SAC9BzpB,SAAUA,IACRmpK,EAAiBoB,EAAG9gJ,UAEtBn3C,MAAOi4L,EAAG9gJ,SACVt1C,KAAI,sBAAAiC,OAAwBm0L,EAAG9gJ,UAC/Bt/B,MAAM,cAGV3D,eAACmb,KAAI,CACHG,MAAI,EACJnb,WAAS,EACTs2B,eAAe,gBACf/zB,WAAW,SACXg0B,QAAS,EACTxQ,GAAI,GAAGx3B,SAAA,CAEPa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBsR,eAACO,IAAU,CAACN,UAAWkV,KAAWkvI,SAAS31J,SAAA,CACxCq1L,EAAGjiL,UAAU,IAAEiiL,EAAGliL,cAGvBtS,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACgR,IAAU,CAAA7R,SACR2tC,KAAO0nJ,EAAG1/H,WACRllB,OAAO,aACP6K,yBA3CN+5I,EAAG9gJ,YAoDd1zC,cAAC64E,GAAQ,CAACC,UAAU,IAErBpnE,EAASL,YAAY2D,SACpB+Y,GAAgBsB,yCAEhBrvB,cAAA,OACE0lB,QAASA,IAAM0tK,GAAkB,GACjC1iL,UAAWkV,KAAWuqF,sBAAsBhxG,SAE5CsR,eAACmb,KAAI,CACHG,MAAI,EACJnb,WAAS,EACTs2B,eAAe,gBACf/zB,WAAW,SACXg0B,QAAS,EACTz2B,UAAS,GAAArQ,OAAKulB,KAAWwqF,gBAAe,KAAA/vG,QACnB,IAAnB8yL,GACAvtK,KAAWyqF,wBACVlxG,SAAA,CAEHa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAAC2oF,KAAK,CACJjH,SAA4B,IAAnByxG,EACTlpK,SAAUA,IAAMmpK,GAAkB,GAClC72L,OAAQ,EACR6B,KAAI,8BACJgW,MAAM,cAGVpU,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACgR,IAAU,CAACiC,MAAO,CAAEsV,QAAS,OAAQppB,SAAC,gDAUrDa,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACylB,GAAkB,CACjBxO,GAAG,oDACHgR,SAA4B,IAAlBkrK,EACVztK,QAASouK,EACTntK,WAAS,MAGb3mB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC+lB,GAAgB,CACf9O,GAAG,qDACHgR,SAA4B,IAAlBkrK,EACV1pL,KAAMvG,EAAUC,QAAQM,SACxBiiB,QAASA,MAhRN,IAAnBytK,EACFG,GAAkB,GAElBzrI,GAAcsB,UAAU94C,EAAQ8iL,GAC7BxoL,MAAM8pL,IACLhoI,IACAqnI,IACuB,IAAnBW,EACFt7K,EAAWjW,EAAUuB,SAAS7C,MAAMsD,YAEpCiU,EACEjW,EAAUuB,SAASC,QAAQC,UAC3BsT,GAAYE,QAEhB,IAEDrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAgQS,EAC5BmnB,WAAS,qBA8Q1B,ECjfQ+tK,OA1NYA,KACzB,MAAOvB,EAAeC,GAAoB3hL,wBACxCjV,IAEKm4L,EAA0BC,GAA+BnjL,wBAE9DjV,IAEAkhB,OACEyuC,aAAa,KAAE95C,IAChB,iBACDo6C,GACEG,MACE,WAAEzzC,GAAeQ,MAErBgzB,UAAW49G,EACX39G,UAAWoxG,EACXtzH,UAAWuzH,GACTxxG,KACE9U,EAAajB,KAEnB5jB,qBAAU,KACR,GAAIT,GAAQA,EAAKkiL,OAAQ,CACvB,IAAI9C,EAAgBp/K,EAAKkiL,OAAO73K,MAC7B2vG,GAAMA,EAAEniE,OAAOxW,YAA0B,OAAby/I,QAAa,IAAbA,OAAa,EAAbA,EAAejpI,OAAOxW,YAErD0/I,EAAiB3B,EACnB,IACC,CAACp/K,IAEJ,MA2BMsoE,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,aACRytD,SAAU,mBACVE,KAAM/lF,IAAA,IAAAwyL,EAAA,IAAC,IAAE10G,GAAU99E,EAAA,OACjBc,cAAA,QAAM0Q,UAAWkV,KAAWmzF,KAAK55G,SAC3B,OAAH69E,QAAG,IAAHA,GAAa,QAAV00G,EAAH10G,EAAKmI,gBAAQ,IAAAusG,OAAV,EAAHA,EAAexnI,OAAO33C,WAClB,EAETc,MAAO,OAET,CACEikB,OAAQ,YACRytD,SAAU,kBACV1xE,MAAO,MACP4xE,KAAMtvE,IAAA,IAAAk/K,EAAAC,EAAAC,EAAA,IAAC,IAAE/3G,GAAUrnE,EAAA,OACjB3V,cAAA,QAAAb,SAAU,OAAH69E,QAAG,IAAHA,GAAa,QAAV63G,EAAH73G,EAAKmI,gBAAQ,IAAA0vG,GAAQ,QAARC,EAAbD,EAAe3qI,cAAM,IAAA4qI,GAAU,QAAVC,EAArBD,EAAuBxiL,gBAAQ,IAAAyiL,OAA5B,EAAHA,EAAiC/5J,qBAA2B,GAGvE,CACE1D,OAAQ,gBACRytD,SAAU,mBACVE,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB5yC,KAAOkwC,EAAImI,SAASj7B,OAAO4K,WACxBllB,OAAO,aACP6K,aAAa,EAClBpnC,MAAO,OAET,CACEikB,OAAQ,GACRytD,SAAU,kBACVC,eAAe,EACfC,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OACjBjlF,eAACqI,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAAA,CAC/Da,cAACg/E,GAAe,CACd/nE,GAAE,kCAAA5W,OAAoC28E,EAAImI,SAASzxC,UACnDhuB,QAASA,KAhECwjC,QAiEK8zB,EAAImI,SAhE7ByvG,EAA4B1rI,GAC5BqhG,GA+DsC,EAC1BprJ,SAEFa,cAACqlF,GAAU,CAAChyE,MAAO,GAAIC,OAAQ,OAEjCtT,cAAC8Y,KAAG,CAACG,GAAI0e,EAAWX,OAAS,EAAI,EAAE73B,SAChCw4B,EAAWX,OACVh3B,cAACg/E,GAAe,CACd/nE,GAAE,+BAAA5W,OAAiC28E,EAAImI,SAASzxC,UAChDhuB,QAASA,KACP0tK,EAAiBp2G,EAAImI,SAAS,EAC9BhmF,SAEFa,cAAC4xL,GAAW,CAACv+K,MAAO,GAAIC,OAAQ,OAGlCtT,cAAC0hC,KAAI,CACHttB,MAAM,UACNvX,KAAK,SACLoa,GAAE,gCAAA5W,OAAkC28E,EAAImI,SAASzxC,UACjDhuB,QAASA,KACP0tK,EAAiBp2G,EAAImI,SAAS,EAEhCl0E,QAAQ,QACR6E,UAAU,SAAQ3W,SACnB,yBAKD,EAERkU,MAAO,SAGX,CAACskB,EAAWX,SAEd,OACEvmB,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,EACXg0L,GAAiB9gL,GAAQA,EAAKkiL,QAC9B9jL,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SAAA,CACvBa,cAAC6yL,GAAc,CACbxiL,OAAQgC,EAAKhC,OACbo8C,iBAAkBA,IAEnBp6C,EAAKkiL,OAAO52L,OAAS,EACpBqC,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAMwG,EAAKkiL,OACX35G,YAAU,EACVtK,MAAI,EACJyK,cAAepjD,EAAWX,OAAS,CAAC,oBAAsB,GAC1D8jD,OAAK,IAGP96E,cAACgR,IAAU,CAAA7R,SAAC,2CAIjBg0L,GACC1iL,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBsR,eAAA,OAAKC,UAAWkV,KAAWutG,WAAWh0H,SAAA,CACpCa,cAAC0hC,KAAI,CACHhc,QAASA,IAAM0tK,OAAiB52L,GAChCK,KAAK,SACLoU,QAAQ,QACR6E,UAAU,SAAQ3W,SAElBa,cAAC+0G,GAAQ,MAEX/0G,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,0BAE9Ba,cAACuvL,GAAgB,CACfrmI,MAAOiqI,EACP1mI,iBAAkBA,GAAiB,aAAApsD,OACjBtC,KAAKo/F,WAI7B1sF,eAACu7B,GAAM,CACLpzB,KAAMqlI,EACNtzH,QAASqzH,EACTxtI,SAAS,KAAIrR,SAAA,CAEbsR,eAAC+7B,GAAW,CAAArtC,SAAA,CACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,wCAGzBsR,eAACO,IAAU,CAACN,UAAU,WAAUvR,SAAA,CACL,OAAxBw1L,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0BzqI,OAAO33C,UAAW,IACpB,OAAxBoiL,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0BzqI,OAAO53C,eAGtCtS,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3Ba,cAACmsC,GAAa,CAACC,OAAK,EAAAjtC,SAClBsR,eAACqI,KAAG,CACF5F,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACfx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CAEhCa,cAAC+/E,GAAkB,CACjBt2E,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPs4H,IACA42C,OAA4Bp4L,EAAU,IAK1CwD,cAACssC,GAAY,CACX7iC,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KA5KfivK,GACF9sI,GAAcwB,YACZh3C,EAAKhC,OACmB,OAAxBskL,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0BzqI,OAAOxW,UAEhC/oC,MAAM4/K,IACL99H,IACAuxF,IACIusC,EAA2B,EAC7BpxK,EACEjW,EAAUuB,SAASC,QAAQE,YAC3BqT,GAAYE,SAGdgB,EAAWjW,EAAUuB,SAAS7C,MAAMuD,aACtC,IAEDrC,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UA2JC,cAMjC,E,sBC3IIw1L,OArFf,SAA4BjgL,GAC1B,MAAM,UAAEkgL,EAAS,MAAEjH,EAAK,SAAEkH,GAAangL,GAEhCogL,EAAcC,GAAmB3jL,wBAA6BjV,GAErE,GAAsB,KAAb,OAALwxL,QAAK,IAALA,OAAK,EAALA,EAAOrwL,QACT,OAAOqC,cAAAyV,WAAA,IAGT,MAIMm3B,EAAYA,KAChBwoJ,OAAgB54L,EAAU,EAiB5B,OACEiU,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CAAChb,WAAS,EAACqC,MAAO,CAAEonB,UAAW,IAAKl7B,SACvCa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBsR,eAACq9G,KAAK,CAACtjG,SAAS,UAASrrB,SAAA,CACvBa,cAACq1L,KAAU,CAAAl2L,SAAC,qBACZa,cAAA,KAAAb,SAAG,gEACHa,cAAA,MAAAb,SACG6uL,EAAMt4K,KAAK+3K,GACVztL,cAAA,MAAAb,SACEa,cAAC0hC,KAAI,CACH5rB,UAAU,SACV7E,QAAQ,QACRyU,QAASA,KAAM4vK,OAnCdj3F,EAmCwBovF,EAAK5rH,gBAlC9CuzH,EAAgB/2F,GADCA,KAmCyC,EAAAl/F,SAEzCsuL,EAAKp5F,gBANDo5F,EAAK5rH,uBAexBpxD,eAACu7B,KAAM,CAACpzB,OAAQu8K,EAAcxqK,QAASiiB,EAAUztC,SAAA,CAC/Ca,cAACwsC,KAAW,CAAArtC,SAAC,4BACbsR,eAAC0vB,KAAI,CAAAhhC,SAAA,CACF81L,EAAUv/K,KAAKuqJ,GACdxvJ,eAACmuB,KAAQ,CACPE,QAAM,EACNpZ,QAASA,KAAM6vK,OA5CGn3F,EA4CkB6hE,EAASp+F,gBA3ClDszH,IAILD,EAAS,SAAU,CAAEzH,KAAM0H,EAAcl1B,SAAU7hE,IACnDxxD,MAN4BwxD,KA4CuC,EAAAj/F,SAAA,CAEzDa,cAACouL,KAAc,CAAAjvL,SACba,cAAC4tL,KAAM,CAAC36K,MAAO,CAAEwV,gBAAiB,eAAgBtpB,SAChDa,cAAC+/F,KAAgB,CAAC9gB,KAAG,EAAC0gB,YAAasgE,EAASjgE,sBAGhDhgG,cAACm/B,KAAY,CAA2BC,QAAS6gI,EAAS5rE,cAAvC4rE,EAASp+F,cATfo+F,EAASp+F,cAY1BpxD,eAACmuB,KAAQ,CAAC42J,WAAS,EAAC12J,QAAM,EAACpZ,QA7CT+vK,KACxBP,EAAS,OACTtoJ,GAAW,EA2CiDztC,SAAA,CACpDa,cAACouL,KAAc,CAAAjvL,SACba,cAAC4tL,KAAM,CAAAzuL,SACLa,cAAC01L,KAAG,QAGR11L,cAACm/B,KAAY,CAACC,QAAQ,4BAMlC,EC0BA,SAASu2J,GAAa5gL,GACpB,MAAM,KAAC8sB,EAAI,SAAE6R,EAAQ,iBAAE+Y,GAAoB13C,EAE3C,OAAqB,KAAb,OAAJ8sB,QAAI,IAAJA,OAAI,EAAJA,EAAMlkC,QAENqC,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,6BAMhCa,cAAC4rB,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAEhoC,SACxB0iC,EAAKnsB,KAAK+K,GACTzgB,cAAC4rB,KAAI,CAA2BG,MAAI,EAAC4K,GAAI,GAAIG,GAAI,EAAE33B,SACjDa,cAACuuL,GAAY,CACX9tK,SAAUA,EACVizB,SAAUA,EACV+Y,iBAAkBA,KAJXhsC,EAASohD,eAU5B,CAEe+zH,OAhIf,WAA4C,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACzC,MACEx4K,OACEyuC,aAAa,OAACjC,IACf,iBACDuC,GACEG,KAEE4iI,EAAc/iJ,KACd0pJ,EAAU1pJ,KAEVwoJ,EAAwF,QAA/EY,EAAS,OAAN3rI,QAAM,IAANA,GAAiB,QAAX4rI,EAAN5rI,EAAQ8X,iBAAS,IAAA8zH,OAAX,EAANA,EAAmB30J,QAAOr2B,IAAC,IAAAsrL,EAAA,MAAsC,cAApB,QAAdA,EAAAtrL,EAAEy0F,oBAAY,IAAA62F,OAAA,EAAdA,EAAgB37I,cAA4B,WAAC,IAAAo7I,IAAI,GAE5F7H,EAAgF,QAA3E+H,EAAS,OAAN7rI,QAAM,IAANA,GAAiB,QAAX8rI,EAAN9rI,EAAQ8X,iBAAS,IAAAg0H,OAAX,EAANA,EAAmB70J,QAAOr2B,IAAC,IAAAurL,EAAA,MAAsC,UAApB,QAAdA,EAAAvrL,EAAEy0F,oBAAY,IAAA82F,OAAA,EAAdA,EAAgB57I,cAAwB,WAAC,IAAAs7I,IAAI,IAanFO,EAAkBC,GAAuB9kL,qBAOhD,OACEhB,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC6sL,GAAkB,CAACn5I,SAAoC,QAA5BuiJ,EAAkB,OAAhBK,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB5iJ,gBAAQ,IAAAuiJ,IAAI,EACxCvJ,SAAsC,QAA9BwJ,EAAkB,OAAhBI,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBz0H,kBAAU,IAAAq0H,IAAI,EAAGzpI,iBAAkBA,EAC/DotE,SAAUA,IAAM08D,OAAoB/5L,GACpCkuB,YAAa4rK,IAEjC7lL,eAACu7B,KAAM,CAACpzB,KAAMu9K,EAAQzrK,UAAWC,QAASA,IAAMwrK,EAAQvpJ,YAAYztC,SAAA,CAClEa,cAACwsC,KAAW,CAAArtC,SAAC,wCACba,cAACmgC,KAAI,CAAAhhC,SACF81L,EAAUv/K,KAAKuqJ,GACdxvJ,eAACmuB,KAAQ,CACCE,QAAM,EACNpZ,QAASA,KAAM6vK,OAlBLn3F,EAkB0B6hE,EAASp+F,WAjB/Ds0H,EAAQvpJ,iBACR2pJ,EAAoBtB,EAAUv4K,MAAK5R,GAAKA,EAAE+2D,aAAeu8B,KAF7BA,KAkB+C,EAAAj/F,SAAA,CAEjEa,cAACouL,KAAc,CAAAjvL,SACba,cAAC4tL,KAAM,CAAC36K,MAAO,CAACwV,gBAAiB,eAAetpB,SAC9Ca,cAAC+/F,KAAgB,CAAC9gB,KAAG,EAAC0gB,YAAasgE,EAASjgE,sBAGhDhgG,cAACm/B,KAAY,CAA2BC,QAAS6gI,EAAS5rE,cAAvC4rE,EAASp+F,cATfo+F,EAASp+F,mBAc7B3X,GACCz5C,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAEhoC,SAAA,CACzBa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC25E,GAAS,CAACj0D,QAAS8pK,EAAY7iJ,UAAUxtC,SAAC,qBAK3C81L,EAAUt3L,OAAS,GAAKqC,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SAChCa,cAAC25E,GAAS,CAACj0D,QAASywK,EAAQxpJ,UAAUxtC,SAAC,oBAO7Ca,cAACulL,GAAsB,CACrBC,MAAOgK,EACP97I,SAAUwW,EAAOxW,SACjB+Y,iBAAkBA,IAEpBzsD,cAAC4rB,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAEhoC,SACzBa,cAAC21L,GAAY,CAAC9zJ,KAAMozJ,EAAWvhJ,SAAUwW,EAAOxW,SAClC+Y,iBAAkBA,MAElCzsD,cAACg1L,GAAkB,CACjBC,UAAWA,EACXjH,MAAOA,EACPkH,SAxEqBsB,CAAC74K,EAA+BphB,KAC9C,QAAXohB,GACF6xK,EAAY7iJ,YAGC,WAAXhvB,GAAuBphB,IACzB2qF,GAA2BiX,SAAS5hG,EAAM0jK,SAAU1jK,EAAMkxL,MAC1DhhI,IACF,SAuEJ,ECnFegqI,OA/BmBA,KAChC,MACE/4K,OACEyuC,aAAa,OAAEjC,EAAM,WAAEmrG,EAAU,oBAAEt3F,IACpC,iBACDtR,GACEG,KAEJ,OACEn8C,eAAAgF,WAAA,CAAAtW,SAAA,CACG+qD,GACClqD,cAACkoL,GAAiB,CAChBh+H,OAAQA,EACRjzC,IAAE,EACF0xK,qBAAqB,EACrBl8H,iBAAkBA,EAClBo8H,mBAAmB,IAGtB3+H,GACClqD,cAACm1J,GAAgB,CACfjrG,OAAQA,EACRmrG,WAAYA,EACZ5oG,iBAAkBA,IAGrBsR,GAAuB/9D,cAAC22J,GAAkB,MAC1C,ECeQ+/B,OAtCgC,CAC7C,CACE9gL,KAAM,4BACNxX,KAAM,gBACNyX,OAAO,EACPC,UAAW9V,cAACy2L,GAAe,IAC3B/hL,WAAYqZ,GAAgBc,kCAE9B,CACEjZ,KAAM,+BACNxX,KAAM,mBACNyX,OAAO,EACPC,UAAW9V,cAAC41L,GAAkB,IAC9BlhL,WAAYqZ,GAAgBe,qCAE9B,CACElZ,KAAM,4BACNxX,KAAM,gBACNyX,OAAO,EACPC,UAAW9V,cAACgxL,GAAe,IAC3Bt8K,WAAYqZ,GAAgBgB,kCAE9B,CACEnZ,KAAM,6BACNxX,KAAM,iBACNyX,OAAO,EACPC,UAAW9V,cAACwxL,GAAgB,IAC5B98K,WAAYqZ,GAAgBiB,mCAE9B,CACEpZ,KAAM,sBACNxX,KAAM,SACNyX,OAAO,EACPC,UAAW9V,cAAC00L,GAAQ,IACpBhgL,WAAYqZ,GAAgBkB,6BCyBjB0nK,OAxD8BA,KAC3C,MACEj5K,OAAO,gBAAEO,IACPwB,MAEF/B,OACEyuC,aAAa,UAAEwI,KAEf/H,MACGiuC,EAAM+7F,GAAWnlL,mBAAmBilL,KACpCxtI,EAAO2tI,GAAYplL,mBAAwB,OAC5C,WAAE0H,GAAeQ,KAEvB7G,qBAAU,KACR,IAAIgkL,EAAUJ,GACV/hI,GAAkC,IAArBA,EAAUh3D,SACzBm5L,EAAUJ,GAA6Bv1J,QACpCvkB,GAAiB,+BAAXA,EAAEhH,QAGbghL,EAAQE,EAAQ,GACf,CAACniI,IAEJ7hD,qBAAU,KACR25C,GAAkB,GACjB,CAACxuC,IAEJ,MAAMwuC,EAAmBA,KACnBxuC,GACF4pC,GAAcmB,SAAS/qC,EAAgBy1B,UAAU,GAC9C/oC,MAAM4gB,GAAWsrK,EAAStrK,KAC1BzoB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UACvC,EAGF,OACEQ,cAAAyV,WAAA,CAAAtW,SACEa,cAACi5E,GAAW,CAACn5E,MAAK,qBAAAO,OAAsC,OAAf4d,QAAe,IAAfA,OAAe,EAAfA,EAAiB7L,UAAWjT,SACpC,QAAf,OAAf8e,QAAe,IAAfA,OAAe,EAAfA,EAAiB9L,UAChB1B,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC83F,GAAO,CAACxiF,MAAOulF,IAChB76F,cAACmV,EAAM,CAACG,MAAOulF,EAAMtlF,SAAS,oBAGhC2zC,GACElpD,cAACuvL,GAAgB,CACfrmI,MAAOA,EACPuD,iBAAkBA,OAKzB,ECOQsqI,OA7DmBA,KAChC,MACEr5K,OAAO,gBAAEO,IACPwB,MACE,YAAEpO,GAAgBmD,KAElB,gBAAEw4B,EAAe,eAAE5U,GAAmByU,KACtCtV,EAAUC,cAMhB,OACEx3B,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,aAAYX,SAAA,CAC7Ba,cAACgtC,EAAe,IAChBhtC,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTsR,eAACO,IAAU,CAAA7R,SAAA,CAAC,wBAC2B,OAAf8e,QAAe,IAAfA,OAAe,EAAfA,EAAiB7L,SAAS,mBAAY,IAC5C,OAAf6L,QAAe,IAAfA,OAAe,EAAfA,EAAiBiuG,SAAS,SAG/Bz7G,eAACmb,KAAI,CACHhb,WAAS,EACTimB,GAAI,GACJtK,GAAI,EACJ7b,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CAEzCkS,EAAY2D,SACX+Y,GAAgBiC,oCAEhBhwB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAE13B,SACvBa,cAAC2lB,KAAM,CACLgB,WAAS,EACT1P,GAAG,yBACHhG,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBP,QAASA,IAAM0S,IAAiBj5B,SACjC,yBAKLa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIE,GAAI,EAAE13B,SACvBa,cAAC2lB,KAAM,CACLgB,WAAS,EACT1P,GAAG,yBACHhG,QAAQ,WACRP,UAAWkV,KAAWC,sBACtBH,QAASA,KAAMsxK,OAzCD7qL,EAyCkB,oBAxC1CorB,EAAQ93B,KAAK0M,GADWA,KAyCkC,EAAAhN,SACjD,wCAMN,ECpBQ83L,OAtCuB,CACpC,CACErhL,KAAM,8BACNxX,KAAM,uBACNyX,OAAO,EACPC,UAAW9V,cAACy2L,GAAe,IAC3B/hL,WAAYqZ,GAAgBc,kCAE9B,CACEjZ,KAAM,iCACNxX,KAAM,mBACNyX,OAAO,EACPC,UAAW9V,cAAC41L,GAAkB,IAC9BlhL,WAAYqZ,GAAgBe,qCAE9B,CACElZ,KAAM,8BACNxX,KAAM,uBACNyX,OAAO,EACPC,UAAW9V,cAACgxL,GAAe,IAC3Bt8K,WAAYqZ,GAAgBgB,kCAE9B,CACEnZ,KAAM,+BACNxX,KAAM,iBACNyX,OAAO,EACPC,UAAW9V,cAACwxL,GAAgB,IAC5B98K,WAAYqZ,GAAgBiB,mCAE9B,CACEpZ,KAAM,wBACNxX,KAAM,SACNyX,OAAO,EACPC,UAAW9V,cAAC00L,GAAQ,IACpBhgL,WAAYqZ,GAAgBkB,6BCVjBioK,ICnCX,GAAO,GAAQ,GDmCJA,GA1BqBA,KAClC,MACEx5K,OACEyuC,aAAa,UAAEwI,KAEf/H,MACGiuC,EAAM+7F,GAAWnlL,mBAAmBwlL,IAU3C,OATAnkL,qBAAU,KACR,IAAIgkL,EAAUG,GACVtiI,GAAkC,IAArBA,EAAUh3D,SACzBm5L,EAAUG,GAAoB91J,QAC3BvkB,GAAiB,iCAAXA,EAAEhH,QAGbghL,EAAQE,EAAQ,GACf,CAACniI,IAEF30D,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,iBAAgBX,SAAA,CACjCa,cAAC83F,GAAO,CAACxiF,MAAOulF,IAChB76F,cAACmV,EAAM,CAACG,MAAOulF,EAAMtlF,SAAS,uBAE/B,EC9BP,SAAS,KAAiS,OAApR,GAAWrX,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAAS+gL,GAAqBj4L,EAAMyX,GAClC,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EoX,SAAU,UACVC,SAAU,UACVC,EAAG,ivBACHN,KAAM,UACN48C,YAAa,OACV,KAAW,GAAsB,gBAAoB,OAAQ,CAChEt8C,EAAG,oOACHN,KAAM,UACN48C,YAAa,OACV,KAAW,GAAsB,gBAAoB,OAAQ,CAChEt8C,EAAG,oOACHN,KAAM,UACN48C,YAAa,OAEjB,CACA,MAAM,GAA0B,aAAiByjI,IAClC,ICpCX,GDoCW,ICnCf,SAAS,KAAiS,OAApR,GAAWj5L,OAAO8F,OAAS9F,OAAO8F,OAAOiS,OAAS,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUzY,OAAQwY,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIrY,KAAOuY,EAAcnY,OAAOoY,UAAUC,eAAeC,KAAKH,EAAQvY,KAAQoY,EAAOpY,GAAOuY,EAAOvY,GAAU,CAAE,OAAOoY,CAAQ,EAAU,GAASO,MAAMtV,KAAMiV,UAAY,CAElV,SAASghL,GAAcl4L,EAAMyX,GAC3B,IAAI,MACF7W,EAAK,QACL8W,KACG7B,GACD7V,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtDmU,MAAO,GACPC,OAAQ,GACRuD,QAAS,YACTC,KAAM,OACNC,MAAO,6BACPC,IAAKL,EACL,kBAAmBC,GAClB7B,GAAQjV,EAAqB,gBAAoB,QAAS,CAC3DmX,GAAIL,GACH9W,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3EsX,EAAG,uXACHN,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBsgL,IAClC,Q,qBC8BR,MAAMC,GAAuBjtK,OAAaC,MAAM,CACrD9X,UAAW6X,OAER5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD2M,SAAU8X,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QAkrBtC2xL,OA/qBiBA,KAAO,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACpC,MAAM,WAAEz+K,GAAeQ,MAChBk+K,EAAWC,GAAgBrmL,mBAEhC,KAEAk7B,UAAW49G,EACX39G,UAAWoxG,EACXtzH,UAAWuzH,GACTxxG,MAEFE,UAAWorJ,EACXnrJ,UAAWorJ,EACXttK,UAAWutK,GACTxrJ,MAEFE,UAAWurJ,EACXtrJ,UAAWurJ,EACXztK,UAAW0tK,GACT3rJ,MAEFE,UAAW8mJ,EACX7mJ,UAAW8mJ,EACXhpK,UAAWipK,GACTlnJ,MACGrxB,EAAYoqG,GAAiB/zG,mBAAiB,KAC9C4mL,EAAgBC,GAAqB7mL,mBAAiB,KACtD0hL,EAAeC,GAAoB3hL,sBAGnC47D,EAAkBkrH,GAAuB9mL,sBAGzC+mL,EAAoBC,GAAyBhnL,mBAAiB,KAC9DinL,EAAgBC,GAAqBlnL,wBAE1CjV,IACKo8L,EAAoBC,GAAyBpnL,oBAAkB,IAC/DqnL,EAA6BC,GAClCtnL,oBAAkB,GACdmiL,EAAa9oK,aAAyB,CAC1CG,KAAM,WACNF,SAAUC,aAAYqsK,IACtBxiG,cAAe,CACbtiF,UAAW,GACXD,SAAU,MAIdQ,qBAAU,KACR,IAAImV,EAAWzD,GACb6yK,GACAzD,EAAWlvK,WAEbq0K,EAA+B9wK,EAAS,GACvC,CAAC2rK,EAAWpnK,UAAUE,QAASknK,EAAW9sK,UAE7C,MAAM4/D,EAAgB7iF,IACpBgkD,GAAc+B,gBAAgB/lD,GAC3B8G,MAAM4gB,IACL+sK,EAAkBz0L,GAElB,IAAIy/G,EAAiB,GAErB/3F,EAAO3tB,SAAS2Z,IAAO,IAADyhL,EACpB11E,EAAQ7jH,KAAK,CACXypD,MAAO3xC,EACP6xC,QAAS7xC,EAAE6xC,QACX6vI,UAAU,GAAD54L,OACPkX,EAAE68K,eAAc,KAAA/zL,OACC,QADD24L,EACdzhL,EAAE88K,qBAAa,IAAA2E,OAAA,EAAfA,EAAiBh+J,qBACrBk+J,aAAc3hL,EAAE4hL,YAChBhwK,SAAU5R,EAAE4R,WAEd5R,EAAE61D,UAAUxvE,SAASkN,IAAO,IAADsuL,EACzB91E,EAAQ7jH,KAAK,CACXypD,MAAO3xC,EACP6rE,WAAYt4E,EAAEs4E,WACd61G,UAAU,GAAD54L,OAAKkX,EAAE68K,eAAc,KAAA/zL,OAAIkX,EAAE88K,eACpC9wE,aAAa,GAADljH,OACVyK,EAAEuuL,kBAAiB,KAAAh5L,OACC,QADD+4L,EACjBtuL,EAAEwuL,wBAAgB,IAAAF,OAAA,EAAlBA,EAAoBp+J,qBACxB7R,SAAUre,EAAEyuL,iBACZC,2BAA4B1uL,EAAE0uL,2BAC9BnwH,SAAUv+D,GACV,GACF,IAEJgtL,EAAax0E,EAAQ,IAEtBxgH,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAG1Ci6L,EAAUA,KACd/yG,EAAa2xG,EAAe,EA8BxBqB,EAAkBA,KACtB1B,IACA5E,OAAiB52L,GACjB+7L,OAAoB/7L,GACpBi8L,EAAsB,IACtBgB,IACAtgL,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,QAAQ,EAGjEwhL,EAAaA,CAACzwI,EAA6BmgB,KAA0B,IAADuwH,EACxE,IAAIrwI,EAA8B,CAChCl5C,OAA4B,QAAtBupL,EAAU,OAARvwH,QAAQ,IAARA,OAAQ,EAARA,EAAU+Z,kBAAU,IAAAw2G,KAAK,EACjCxwI,QAASF,EAAME,QACfjgC,SAAUkgD,IAC0B,OAA9BA,EAASkwH,kBAA6BlwH,EAASkwH,oBAC5B,OAAnBrwI,EAAM//B,UAAqB+/B,EAAM//B,UACvCqvK,mBAAoBA,QAELh8L,IAAb6sE,EACFxhB,GAAcyB,0BAA0BC,GACrC5+C,MAAK,KACJ+uL,GAAiB,IAElB52L,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAErCqoD,GAAc2B,gBAAgBD,GAC3B5+C,MAAK,KACJ+uL,GAAiB,IAElB52L,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UACvC,EAwDIs0L,EAAcA,KAClBJ,IACAmF,GAAuB,GACvBF,OAAkBn8L,EAAU,EAGxBm+E,EAAUvpE,IAAMsI,SAAQ,IACD,CACzB,CACE4d,OAAQ,aACRytD,SAAU,YACV1xE,MAAO,MACP4xE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBc,cAAA,QAAMiT,MAAO,CAAEw1B,WAAY,WAAYtpC,SACnC69E,EAAImI,SAAS/B,WAEX,GADA0jB,GAAoB9pB,EAAImI,SAAS8zG,UAAWZ,IAE3C,GAGX,CACE/gK,OAAQ,gBACRytD,SAAU,eACVE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjBqnE,EAAImI,SAAS+zG,cACbpsJ,KAAOkwC,EAAImI,SAAS+zG,cAAcxsK,UAC9BogB,KAAOkwC,EAAImI,SAAS+zG,cACjBtpJ,OAAO,aACP6K,cACH,EAAE,EACRpnC,MAAO,OAET,CACEikB,OAAQ,uBACRytD,SAAU,eACV1xE,MAAO,MACP2xE,eAAe,EACfC,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjBonB,GAAoB9pB,EAAImI,SAASo+B,aAAc80E,EAAe,GAElE,CACE/gK,OAAQ,SACRytD,SAAU,mBACVE,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OACjBjlF,eAACqI,KAAG,CAAC5F,QAAQ,OAAM/T,SAAA,CAChB69E,EAAImI,SAAS/B,WACgB,OAA1BpG,EAAImI,SAASh8D,UAAqB6zD,EAAImI,SAASh8D,SAoB/C1Y,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC65L,GAAW,IACZ75L,cAAA,OAAK0Q,UAAWC,KAAOmpL,qBArBzBrpL,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC+5L,GAAc,IACd/8G,EAAImI,SAASq0G,4BACdx8G,EAAImI,SAASq0G,2BAA2B77L,OAAS,EAC/CqC,cAACqmB,KAAU,CACTX,QAASA,KACP0tK,EAAiBp2G,EAAImI,SAASj8B,OAC9BqvI,EAAoBv7G,EAAImI,SAAS9b,UACjC6uH,GAAwB,EAE1BxnL,UAAWC,KAAOmpL,gBAAgB36L,SAElCa,cAACkqF,GAAW,MAGdlqF,cAAA,OAAK0Q,UAAWC,KAAOmpL,qBAU7BrpL,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAA,OAAAb,SAC6B,OAA1B69E,EAAImI,SAASh8D,UAAqB6zD,EAAImI,SAASh8D,SAC9CnpB,cAAC65L,GAAW,IAEZ75L,cAAC+5L,GAAc,MAGnB/5L,cAAA,OAAK0Q,UAAWC,KAAOmpL,qBAG3B95L,cAAC8Y,KAAG,CAACG,GAAI,EAAE9Z,SACTa,cAAC0hC,KAAI,CAEHttB,MAAM,UACNvX,KAAK,SACL6oB,QAASA,KA7IOs0K,IAC5B9wI,EACAmgB,EADAngB,EA8IgB8zB,EAAImI,SAASj8B,MA7I7BmgB,EA8IgB2T,EAAImI,SAAS9b,SA5I7B+pH,EAAiBlqI,GACbmgB,GACFkvH,EAAoBlvH,GACc,OAA9BA,EAASkwH,kBAA6BlwH,EAASkwH,iBACjDxB,IAEA4B,EAAWzwI,EAAOmgB,IAGG,OAAnBngB,EAAM//B,UAAqB+/B,EAAM//B,SACnC4uK,IAEA4B,EAAWzwI,EAiIA,EAEHj4C,QAAQ,QACR6E,UAAU,SAAQ3W,SAES,OAA1B69E,EAAImI,SAASh8D,UAAqB6zD,EAAImI,SAASh8D,SAC5C,aACA,YAAU,kBAAA9oB,OAdS28E,EAAImI,SAASj8B,MAAME,QAAO,aAAA/oD,OAAY28E,EAAImI,SAASj8B,MAAME,QAAO,0BAiBvF,EAER/1C,MAAO,MACP2xE,eAAe,GAEjB,CACE1tD,OAAQ,GACRytD,SAAU,eACVE,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjB71F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAU/nC,UACf,OAA1B69E,EAAImI,SAASh8D,UAAqB6zD,EAAImI,SAASh8D,WAC/C6zD,EAAImI,SAAS/7B,SACXppD,cAAC2lB,KAAM,CACLvR,MAAM,YACNnD,QAAQ,OACRy4B,UAAW1pC,cAAC65E,GAAQ,IACpBn0D,QAASA,KACP0tK,EAAiBp2G,EAAImI,SAASj8B,OAC9BuqI,GAAe,EACft0L,SACH,2BAID,EAERkU,MAAO,MACP2xE,eAAe,GAEjB,CACE1tD,OAAQ,GACRytD,SAAU,cACVE,KAAM6Q,IAAA,IAAC,IAAE9Y,GAAU8Y,EAAA,OACjB91F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAU/nC,UACf,OAA1B69E,EAAImI,SAASh8D,UAAqB6zD,EAAImI,SAASh8D,WAC/C6zD,EAAImI,SAAS/7B,SACXppD,cAACg/E,GAAe,CACdt5D,QAASA,KACP0tK,EAAiBp2G,EAAImI,SAASj8B,OAC9BqhG,GAAkB,EAEpBtiI,UAAW+0D,EAAImI,SAASj8B,MAAM+wI,iBAAiB96L,SAE9C69E,EAAImI,SAASj8B,MAAM+wI,iBAClBj6L,cAACqlF,GAAU,IAEXrlF,cAACk6L,GAAkB,OAIvB,EAER7mL,MAAO,KACP2xE,eAAe,KAKlB,CAACqzG,EAAgBlF,EAAe9lH,IAQ7B8sH,EAAgCA,KACpCn8C,IACAo1C,OAAiB52L,EAAU,EAG7B,OACEiU,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACwoE,GAAW,CAACn5E,MAAM,mBAAkBX,SAAA,CACnCa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oDAI3Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,6CAK9Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACmnB,GAAS,CACRlQ,GAAG,mBACH1a,MAAO6e,EACP0rE,UA/BUh8E,IACR,UAAVA,EAAEhN,KAAmBsd,EAAWzd,QAAU,GAC5C+oF,EAAatrE,EACf,EA6BY6O,SAAWnf,GAAM06G,EAAc16G,EAAEoL,OAAO3Z,OACxCoL,YAAY,sBAGhB3H,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACwmF,GAAY,CACXvvE,GAAG,0BACHgR,SAAU7M,EAAWzd,OAAS,EAC9B+nB,QAASA,KACPghE,EAAatrE,EAAW,EACxBjc,SACH,oCAMN04L,GAAaA,EAAUl6L,OAAS,EAC/BqC,cAAC6zE,GAAK,CAAC8G,QAASA,EAAS9uE,KAAMgsL,EAAW/8G,OAAK,IAE/Cu9G,GACEr4L,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,SAMjBpoE,eAACu7B,GAAM,CACLpzB,KAAMqlI,EACNtzH,QAASqzH,EACTxtI,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAA,mCAAAkB,OACT,OAAb8yL,QAAa,IAAbA,OAAa,EAAbA,EAAeiB,eAAc,KAAA/zL,OACd,OAAb8yL,QAAa,IAAbA,GAA4B,QAAfoE,EAAbpE,EAAekB,qBAAa,IAAAkD,OAAf,EAAbA,EAA8Bv8J,yBAEpCh7B,cAACusC,GAAa,IACd97B,eAAC07B,GAAa,CAAAhtC,SAAA,CACZa,cAAC+/E,GAAkB,CACjB9oE,GAAE,oCACFyO,QAASy0K,IAEXn6L,cAACssC,GAAY,CACXr1B,GAAE,sCACFxN,KAAMvG,EAAUC,QAAQM,SACxBiiB,QAASA,KAjWbytK,GAAiBA,EAAc/pI,SACjCvB,GAAcgC,YAAyB,OAAbspI,QAAa,IAAbA,OAAa,EAAbA,EAAe/pI,SACtCz+C,MAAK,KACJqzI,IACAy7C,IACAtgL,EACEjW,EAAUuB,SAASC,QAAQE,YAC3BqT,GAAYE,QACb,IAEFrV,OAAOlB,IACNuX,EAAWvX,EAAMpC,SACjB26L,GAA+B,GAqVC,UAKpC1pL,eAACu7B,GAAM,CAACpzB,KAAMq/K,EAAqBttK,QAASqtK,EAAgBxnL,SAAS,KAAIrR,SAAA,CACvEa,cAACwsC,GAAW,CAAArtC,SACVsR,eAACO,IAAU,CAACC,QAAQ,KAAI9R,SAAA,CAAC,+BACmB,OAAbg0L,QAAa,IAAbA,OAAa,EAAbA,EAAeiB,eAAgB,IAC9C,OAAbjB,QAAa,IAAbA,GAA4B,QAAfqE,EAAbrE,EAAekB,qBAAa,IAAAmD,OAAf,EAAbA,EAA8Bx8J,oBAAqB,IACnDqyC,GAAgB,iBAAAhtE,OAEG,OAAhBgtE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBgsH,kBAAiB,KAAAh5L,OACjB,OAAhBgtE,QAAgB,IAAhBA,GAAkC,QAAlBoqH,EAAhBpqH,EAAkBisH,wBAAgB,IAAA7B,OAAlB,EAAhBA,EAAoCz8J,0BAG9CvqB,eAAC87B,GAAa,CAAAptC,SAAA,CACZa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,UAAUE,YAAU,IACjD1mB,cAACmnB,GAAS,CACRlQ,GAAE,+CACF1a,MAAOi8L,EACPvuK,SAAW5M,GAAUo7K,EAAsBp7K,EAAMnH,OAAO3Z,OACxD8vB,WAAS,EACTC,KAAM,OAGV7b,eAAC07B,GAAa,CAAAhtC,SAAA,CACZa,cAAC+/E,GAAkB,CACjB9oE,GAAE,8CACFyO,QAASA,KACPsyK,IACA5E,OAAiB52L,GACjB+7L,OAAoB/7L,EAAU,IAGlCwD,cAACssC,GAAY,CACXr1B,GAAE,gDACFxN,KAAMvG,EAAUC,QAAQM,SACxBiiB,QAASA,KArXbytK,GAAiBA,EAAc/pI,UAC7BikB,GAAoBA,EAAiB+V,WACvCu2G,EAAWxG,EAAe9lH,GAE1BssH,EAAWxG,GAkXe,UAM5B1iL,eAACu7B,GAAM,CACLpzB,KAAMw/K,EACNztK,QAASwtK,EACT3nL,SAAS,KAAIrR,SAAA,CAEba,cAACwsC,GAAW,CAAArtC,SACVsR,eAACO,IAAU,CAACC,QAAQ,KAAI9R,SAAA,CAAC,2CACkB,IAC3B,OAAbg0L,QAAa,IAAbA,OAAa,EAAbA,EAAeiB,eAAgB,IAClB,OAAbjB,QAAa,IAAbA,GAA4B,QAAfuE,EAAbvE,EAAekB,qBAAa,IAAAqD,OAAf,EAAbA,EAA8B18J,oBAAoB,OAAK,IACvC,OAAhBqyC,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBgsH,kBAAmB,IACrB,OAAhBhsH,QAAgB,IAAhBA,GAAkC,QAAlBsqH,EAAhBtqH,EAAkBisH,wBAAgB,IAAA3B,OAAlB,EAAhBA,EAAoC38J,yBAGzCvqB,eAAC87B,GAAa,CAAAptC,SAAA,CACZa,cAAC+mB,KAAS,CAAA5nB,SAAC,YACXa,cAAC8Y,KAAG,CAAC+0B,GAAI,EAAE1uC,SACTa,cAACgR,IAAU,CAAA7R,SACQ,OAAhBkuE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBmsH,kCAIzBx5L,cAACmsC,GAAa,CAAAhtC,SACZa,cAACssC,GAAY,CACX7iC,KAAK,QACLwN,GAAE,qDACFyO,QAASA,KACPyyK,IACAI,OAAoB/7L,GACpB42L,OAAiB52L,EAAU,SAMnCiU,eAAC4U,GAAM,CAACzM,KAAM+6K,EAAoBhpK,QAAS+oK,EAAcv0L,SAAA,CACvDa,cAACkmB,GAAW,CAAA/mB,SAAC,0BACbsR,eAAA,QACEkX,aAAa,MACbyD,SAAUwoK,EAAWvoK,cArWCnN,IAC5B26K,GAAuB,GACvB36K,EAAQ3L,UAAY2L,EAAQ3L,UAAU00F,YAAYC,UAClDhpF,EAAQ5L,SAAW4L,EAAQ5L,SAAS20F,YAAYC,UAChDr/C,GAAciC,gBAAgB5rC,GAC3BvT,MAAMyiE,IACLurH,EAAkBvrH,EAAU,IAE7BtqE,OAAM,IAAMqW,EAAW,yCAAwC,IA+V5DqS,YAAU,EAAArsB,SAAA,CAEVa,cAAC8lB,GAAa,CAAA3mB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAAA7R,SAAA,+BAAAkB,OAEM,OAAb8yL,QAAa,IAAbA,OAAa,EAAbA,EAAeiB,eAAc,KAAA/zL,OACd,OAAb8yL,QAAa,IAAbA,GAA4B,QAAfyE,EAAbzE,EAAekB,qBAAa,IAAAuD,OAAf,EAAbA,EAA8B58J,oBAAmB,2DAGzDh7B,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,4BAG7Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,aAAYrnB,SACvCa,cAACmnB,GAAS,CACRlQ,GAAE,6CACF7Y,KAAK,YACLuJ,YAAY,UACZyL,OAAO,SACP8Y,SAAU0nK,EAAWznK,SACrBvqB,QAASgyL,EAAW3mL,OAAOsF,UAC3B6Z,WACEwnK,EAAW3mL,OAAOsF,UACdqhL,EAAW3mL,OAAOsF,UAAU/S,QAC5B,SAKZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACumB,GAAW,CAACI,WAAS,EAACH,MAAM,YAAWrnB,SACtCa,cAACmnB,GAAS,CACRlQ,GAAE,4CACF7Y,KAAK,WACLuJ,YAAY,UACZyL,OAAO,SACP8Y,SAAU0nK,EAAWznK,SACrBvqB,QAASgyL,EAAW3mL,OAAOqF,SAC3B8Z,WACEwnK,EAAW3mL,OAAOqF,SACdshL,EAAW3mL,OAAOqF,SAAS9S,QAC3B,cAOhBQ,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CACjBwC,SAAU2wK,EAAqB,EAC/B3hL,GAAE,0CACFyO,QAASouK,EACTntK,WAAS,MAGb3mB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC+lB,GAAgB,CACf9O,GAAE,0CACFxN,KAAK,SACLkd,WAAS,EACTsB,SAAU6wK,aApEb,GA0ENJ,GACCjoL,eAAA,OAAKC,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAC3Ca,cAAC8lB,GAAa,CAAA3mB,SACZa,cAAC8Y,KAAG,CAAA3Z,SACFa,cAAC4rB,KAAI,CAACG,MAAI,EAACnb,WAAS,EAAC+lB,GAAI,GAAGx3B,SACzBu5L,EAAe/6L,OAAS,EACvB+6L,EAAehjL,KAAK8+K,GAEhBx0L,cAAA,OAEE0lB,QAASA,IAAMmzK,EAAsBrE,EAAGnkL,QACxCK,UAAWkV,KAAWuqF,sBAAsBhxG,SAE5CsR,eAACmb,KAAI,CACHG,MAAI,EACJnb,WAAS,EACTs2B,eAAe,gBACf/zB,WAAW,SACXg0B,QAAS,EACTz2B,UAAS,GAAArQ,OAAKulB,KAAWwqF,gBAAe,KAAA/vG,OACtCu4L,IAAuBpE,EAAGnkL,QAC1BuV,KAAWyqF,wBACVlxG,SAAA,CAEHa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAAC2oF,KAAK,CACJ1xE,GAAE,8BACFyqE,QAASk3G,IAAuBpE,EAAGnkL,OACnC4Z,SAAUA,IACR4uK,EAAsBrE,EAAGnkL,QAE3B9T,MAAOi4L,EAAGnkL,OACVjS,KAAI,sBAAAiC,OAAwBm0L,EAAGnkL,QAC/B+D,MAAM,cAGVpU,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACgR,IAAU,CAAA7R,SAAA,GAAAkB,OAAKm0L,EAAGjiL,UAAS,KAAAlS,OAAIm0L,EAAGliL,kBA5BlCkiL,EAAGnkL,UAmCdrQ,cAAC64E,GAAQ,CAACC,UAAU,UAK5B94E,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACylB,GAAkB,CACjBxO,GAAG,8BACHgR,SAAU2wK,EAAqB,EAC/BlzK,QAASouK,EACTntK,WAAS,MAGb3mB,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAAC+lB,GAAgB,CACf9O,GAAG,gCACHgR,SAAU2wK,EAAqB,EAC/BnvL,KAAMvG,EAAUC,QAAQM,SACxBiiB,QAASA,KAperBkzK,EAAqB,GAAKzF,GAAiBA,EAAc/pI,QAC3DvB,GAAcsB,UAAUyvI,EAAiC,OAAbzF,QAAa,IAAbA,OAAa,EAAbA,EAAe/pI,SACxDz+C,MAAM8pL,IACLgF,IACA3F,IACuB,IAAnBW,EACFt7K,EAAWjW,EAAUuB,SAAS7C,MAAMsD,YAEpCiU,EACEjW,EAAUuB,SAASC,QAAQC,UAC3BsT,GAAYE,QAEhB,IAEDrV,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAErC2Z,EAAW,uCAoduC,EACpCwN,WAAS,mBAQtB,E,qBC9gBQyzK,OAtM4Cl7L,IAGpD,IAADm7L,EAAAC,EAAAC,EAAA,IAHsD,aAC1DrzK,EAAY,WACZszK,GACDt7L,EACC,MAAMwS,EAAWN,IAAMpS,WAAWmS,IAE5B,QAAE2V,EAAO,SAAEqF,EAAQ,OAAElf,EAAM,MAAEm4C,GAAUglD,gBACtC1oG,EAAOqhH,GAAYtxG,mBAAkB,KAErCiM,EAAOi9F,GAAYvpG,IAAMK,SAAS,CACvCgB,UAAWyU,EAAazU,UACxB0W,SAAUjC,EAAaiC,YAGnB,WAAEhQ,GAAeQ,KAEvB7G,qBAAU,KACJoU,EAAa/X,UACfP,EAAYI,cACTrE,MAAMiB,GAAam3G,EAASn3G,KAC5B9I,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UACvC,GACC,IAEHsT,qBAAU,KACRsyC,EAAM,CACJmpG,WAAYrnI,EAAaqnI,WACzBplI,SAAUjC,EAAaiC,SACvB1W,UAAWyU,EAAazU,UACxBC,YAAawU,EAAazU,UAAYyU,EAAaxU,YAAc,KACjEuI,SAAUiM,EAAazU,UAAYyU,EAAajM,SAAW,KAC3D9L,SAAU,CACR5S,MAAO2qB,EAAa/X,SACpBqX,MAAOU,EAAa/X,UAEtBsrL,eAAgBvzK,EAAauzK,iBAG/B9/E,EAAS,CACPxxF,SAAUjC,EAAaiC,SACvB1W,UAAWyU,EAAazU,WACxB,GACD,CAACyU,IAEJ,MAAMgpF,EAAgB7yF,IACpBs9F,EAAS,IAAKj9F,EAAO,CAACL,EAAMnH,OAAO9X,MAAOif,EAAMnH,OAAOwrE,SAAU,EAGnE,OACE1hF,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACuC,WAAW,SAAQhU,SAAA,CACjCsR,eAACmb,KAAI,CAACG,MAAI,EAACnb,WAAS,EAAC+lB,GAAI,GAAGx3B,SAAA,CAC1Ba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACgR,IAAU,CAACN,UAAWC,KAAO+pL,eAAgBzpL,QAAQ,KAAI9R,SAAC,aAI7Da,cAAC4rB,KAAI,CAACG,MAAI,EAAC+K,GAAI,EAAGH,GAAI,GAAGx3B,SACvBa,cAACwhF,KAAgB,CACf16D,QACE9mB,cAACqhG,KAAM,CACL3f,QAAShkE,EAAMyL,SACf/qB,KAAK,WACL6rB,SAAUimF,EACV97F,MAAM,UACN8X,SAAUC,IAGd3F,MAAO9I,EAAMyL,SAAW,MAAQ,YAKtCnpB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACgR,IAAU,CAACC,QAAQ,KAAKP,UAAWC,KAAO+pL,eAAev7L,SAAC,cAI7Da,cAAC4rB,KAAI,CAAChb,WAAS,EAACmb,MAAI,EAAA5sB,SAClBsR,eAACmb,KAAI,CAACG,MAAI,EAAC+K,GAAI,EAAGH,GAAI,GAAGx3B,SAAA,CACvBa,cAACumB,GAAW,CAAApnB,SACVa,cAACwhF,KAAgB,CACf16D,QACE9mB,cAACqhG,KAAM,CACL3f,QAAShkE,EAAMjL,UACfwX,SAAUimF,EACV9xG,KAAK,YACLgW,MAAM,UACN8X,SAAUC,IAGd3F,MAAO9I,EAAMjL,UAAY,MAAQ,SAGpCiL,EAAMjL,WACLhC,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAGoK,GAAI,GAAGx3B,SACvBa,cAACumB,GAAW,CAACC,MAAM,yBAAwBrnB,SACzCa,cAAC4lF,GAAU,CACTmB,gBAAc,EACdC,QAAM,EACN/vE,GAAE,sBAAA5W,OAAwB6mB,EAAawsB,SAAQ,gBAC/Ct1C,KAAK,cACLwxC,OAAO,aACP9oB,QAASA,EACTI,aAAcA,EAAaxU,YAC3B9Q,QAASqL,EAAOyF,YAChB0Z,WACEnf,EAAOyF,YAAczF,EAAOyF,YAAYlT,QAAU,SAK1DQ,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACumB,GAAW,CAACC,MAAM,WAAUrnB,SAC3Ba,cAACmnB,GAAS,CACRlQ,GAAE,sBAAA5W,OAAwB6mB,EAAawsB,SAAQ,aAC/Ct1C,KAAK,WACLuJ,YAAY,2BACZukB,SAAUC,EACVtvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAS,EACTC,KAAM,EACNpF,aAAcA,EAAajM,SAC3B0L,WAAS,EACT/kB,QAASqL,EAAOgO,SAChBmR,WACEnf,EAAOgO,SAAWhO,EAAOgO,SAASzb,QAAU,iBAU3DkS,EAASL,YAAY2D,SACpB+Y,GAAgBwB,uCAEhBrI,EAAa/X,UACXsB,eAACmb,KAAI,CAACG,MAAI,EAAC+K,GAAI,EAAGH,GAAI,GAAGx3B,SAAA,CACvBa,cAACgR,IAAU,CAACN,UAAWC,KAAO0pB,UAAWppB,QAAQ,KAAI9R,SAAC,SAGtDa,cAACk/E,GAAc,CACb9gF,KAAK,WACLgV,OAAO,SACP0T,QAASA,EACTiB,QAASrmB,EAAMgU,KACZie,IAAC,CAAiBnN,MAAOmN,EAAExkB,SAAU5S,MAAOo3B,EAAExkB,aAEjD+X,aAAc,CACZ3qB,MAAO2qB,EAAa/X,SACpBqX,MAAOU,EAAa/X,UAEtBvN,QAASqL,EAAOkC,SAChB+Y,aAC0B,QADdmyK,EACK,QADLC,EACVrtL,EAAOkC,gBAAQ,IAAAmrL,OAAA,EAAfA,EAAiB96L,eAAO,IAAA66L,IAAmB,QAAnBE,EAAIttL,EAAOkC,gBAAQ,IAAAorL,OAAA,EAAfA,EAAiBh+L,MAAMiD,aAM5Dg7L,GACC/pL,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAACgR,IAAU,CAACN,UAAWC,KAAO0pB,UAAWppB,QAAQ,KAAI9R,SAAC,aAGtDa,cAACumB,GAAW,CAACC,MAAM,GAAErnB,SACnBa,cAACmnB,GAAS,CACR/oB,KAAK,iBACLuJ,YAAY,GACZukB,SAAUC,EACVtvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNiY,WAAS,EACTC,KAAM,EACNpF,aAAcA,EAAauzK,eAC3B9zK,WAAS,EACT/kB,QAASqL,EAAOwtL,eAChBruK,WACEnf,EAAOwtL,eAAiBxtL,EAAOwtL,eAAej7L,QAAU,cAOnE,ECrMA,MAAMm7L,GAAyBvwK,OAAaC,MAAM,CACvDlb,SAAUib,OAEPG,UAAUrnB,EAAUqC,WAAWC,UAC/B6kB,MAAM,CACL9tB,MAAO6tB,OAEJ5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QAEvD+M,YAAa0X,OAEVolE,WACAjlE,UAAU,IACV/D,MAAM,0BACNinF,KAAK,YAAa,CACjB0W,IAAI,EACJx5G,KAAMyf,OAEH5kB,SACC+gG,GACErjG,EAAUqC,WAAWE,cACrB,6BAIVwV,SAAUmP,OAEP5D,MAAM,YACNinF,KAAK,YAAa,CACjB0W,IAAI,EACJx5G,KAAMyf,OAEH5kB,SAAS+gG,GAAarjG,EAAUqC,WAAWE,cAAe,aAC1DE,IAAI,IAAM4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QAExD80L,eAAgBrwK,OAEbzkB,IAAI,IAAM4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QA2HvCi1L,OAxH0BA,KACvC,MACEl9K,OAAO,eAAE8sC,GAAgB,sBACzBiB,GACEM,MAEFruC,OAAO,gBAAEO,GAAiB,SAC1BiB,GACEO,MACGyH,EAAc0tF,GAAmBnjG,mBAA+B,MACjEoZ,EAAOC,aAAQ,CACnBG,KAAM,WACNF,SAAUC,aAAY2vK,OAElB,WAAExhL,GAAeQ,KACjBge,EAAajB,KAEnB5jB,qBAAU,KACa,IAAD+nL,EAAAC,EAAAC,EAAhBvwI,GACFoqD,EAAgB,CACdlhE,SAAyC,QAAjCmnJ,EAAgB,OAAdrwI,QAAc,IAAdA,OAAc,EAAdA,EAAgBN,OAAOxW,gBAAQ,IAAAmnJ,IAAI,EAC7CtsC,WAA0B,OAAd/jG,QAAc,IAAdA,OAAc,EAAdA,EAAgBn4C,KAAKE,UACjC4W,SAAuC,QAA/B2xK,EAAgB,OAAdtwI,QAAc,IAAdA,OAAc,EAAdA,EAAgBn4C,KAAK8W,gBAAQ,IAAA2xK,KACvCroL,UAA2C,QAAlCsoL,EAAgB,OAAdvwI,QAAc,IAAdA,OAAc,EAAdA,EAAgBN,OAAOz3C,iBAAS,IAAAsoL,KAC3CroL,YAA2B,OAAd83C,QAAc,IAAdA,OAAc,EAAdA,EAAgBN,OAAOx3C,YACpCuI,SAAwB,OAAduvC,QAAc,IAAdA,OAAc,EAAdA,EAAgBN,OAAOjvC,SACjC9L,SAAwB,OAAdq7C,QAAc,IAAdA,OAAc,EAAdA,EAAgBn4C,KAAKlD,SAC/BsrL,eAA8B,OAAdjwI,QAAc,IAAdA,OAAc,EAAdA,EAAgBN,OAAOuwI,gBAE3C,GACC,CAACjwI,IAuCJ,OACExqD,cAAAyV,WAAA,CAAAtW,SACEa,cAACiuG,KAAY,IAAKpjF,EAAI1rB,SACpBsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cA1CD2vK,IAA2B,IAADC,EAC9C,IAAIryI,EAAe,IACd1hC,EACHiC,SAAU6xK,EAAiB7xK,SAC3B1W,UAAWuoL,EAAiBvoL,UAC5BC,YAAasoL,EAAiBvoL,UAC1BuoL,EAAiBtoL,YACjB,KACJuI,SAAU+/K,EAAiBvoL,UAAYuoL,EAAiB//K,SAAW,KACnE9L,SAAU6rL,EAAiB7rL,SAAS5S,MACpCk+L,eAA+C,QAAjCQ,EAAED,EAAiBP,sBAAc,IAAAQ,IAAI,MAErD/zK,GACE2gC,GAAcc,mBAAmBC,GAC9Bj+C,MAAMiB,IACDA,GACEqS,GACFiB,EAAS,CACPriB,KAAM2gB,GAAuBQ,iBAC7BE,QAAShU,KAAK8H,UAAU,IACnBiM,EACHvL,YAAak2C,EAAal2C,YAC1BD,UAAWm2C,EAAan2C,cAI9B0G,EAAW,8BAA+BlB,GAAYE,UAEtDgB,EAAW,uBACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,IAE1BqT,SAAQ,IAAM44C,KAAwB,IASrCjgC,YAAU,EAAArsB,SAAA,CAEVa,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SACf+nB,GACClnB,cAACo6L,GAAgB,CACflzK,aAAcA,EACdszK,YAAY,QAKpB/pL,eAACqI,KAAG,CACF4S,GAAI,EACJmiB,GAAI,EACJ36B,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACfx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CAEhCa,cAAC2lB,KAAM,CACL1O,GAAG,8BACHhG,QAAQ,WACRP,UAAWkV,KAAWC,sBACtBH,QAASA,IAAM+lC,IAAwBtsD,SAEtC+D,EAAUC,QAAQE,SAErBrD,cAAC8Y,KAAG,CAACG,GAAI0e,EAAWX,OAAS,EAAI,EAAG6W,GAAIlW,EAAWX,OAAS,EAAI,EAAE73B,SAChEa,cAAC2lB,KAAM,CACL1O,GAAG,4BACHpa,KAAK,SACLoU,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBgC,UAAW4C,EAAK2B,UAAUE,UAAY7B,EAAK2B,UAAUC,QAAQttB,SAE5D+D,EAAUC,QAAQK,yBAM5B,ECpHQ03L,OAtDgCA,KAAO,IAADjK,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACnD,MACE5zK,OAAO,eAAE8sC,GAAgB,iBACzBsB,GACEC,MACE,SAAEnsC,GAAaG,KAErB,OACE/f,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SACfqrD,GAAkBA,EAAen4C,MAChC5B,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAACyvL,GAAmB,CAACE,aAAcnlI,EAAen4C,OAEjDuN,EAASjiB,OAAS,GACjBqC,cAACgwL,GAAuB,CACtB9oK,aAAc,CACZzkB,SAAU+nD,EAAen4C,KAAKF,SAC9Bg+K,SAAU,CACR5zL,MAAOiuD,EAAen4C,KAAK89K,SAC3B3pK,MAGa,QAHRyqK,EAGF,QAHEC,EACHtxK,EAASlD,MACN2Z,GAAMA,EAAElkB,WAAaq4C,EAAen4C,KAAK89K,kBAC3C,IAAAe,OAAA,EAFDA,EAEG9+K,gBAAQ,IAAA6+K,IAAI,IAEnBb,SAAU,CACR7zL,MAAOiuD,EAAen4C,KAAK+9K,SAC3B5pK,MAGa,QAHR2qK,EAGF,QAHEC,EACHxxK,EAASlD,MACN2Z,GAAMA,EAAElkB,WAAaq4C,EAAen4C,KAAK+9K,kBAC3C,IAAAgB,OAAA,EAFDA,EAEGh/K,gBAAQ,IAAA++K,IAAI,IAEnBd,SAAU,CACR9zL,MAAOiuD,EAAen4C,KAAKg+K,SAC3B7pK,MAGa,QAHR6qK,EAGF,QAHEC,EACH1xK,EAASlD,MACN2Z,GAAMA,EAAElkB,WAAaq4C,EAAen4C,KAAKg+K,kBAC3C,IAAAiB,OAAA,EAFDA,EAEGl/K,gBAAQ,IAAAi/K,IAAI,IAEnB9yH,QAAS/T,EAAen4C,KAAKksD,QAC7B2tD,SAAU1hE,EAAen4C,KAAKy9K,UAEhCxsL,KAAMwoD,YAOjB,ECxCP,MAAM6uI,GAAyBvwK,OAAaC,MAAM,CAChD3X,YAAa0X,OAEVolE,WACAjlE,UAAU,IACV/D,MAAM,0BACNinF,KAAK,YAAa,CACjB0W,IAAI,EACJx5G,KAAMyf,OAAW5kB,aAErByV,SAAUmP,OAEP5D,MAAM,YACNinF,KAAK,YAAa,CACjB0W,IAAI,EACJx5G,KAAMyf,OAEH5kB,WACAG,IAAI,IAAM4gG,GAAarjG,EAAUqC,WAAWI,IAAK,UAgI3Cw1L,OAxHoCj8L,IAAiB,IAAhB,OAAEgrD,GAAQhrD,EAC5D,MAAM,sBAAEusD,GAA0BM,MAC3B7kC,EAAc0tF,GAAmBnjG,mBAA+B,MACjEoZ,EAAOC,aAAQ,CACnBG,KAAM,WACNF,SAAUC,aAAY2vK,OAElB,WAAExhL,GAAeQ,MAChB6pE,EAAkBC,GAAuBhyE,oBAAkB,GAC5DkmB,EAAajB,KAEnB5jB,qBAAU,KACR,IAMImV,EANyB,CAAC,WAAY,aAAanD,MACpDggK,GAC2B,KAA1Bj6J,EAAKnG,UAAUogK,SACWtoL,IAA1BquB,EAAKnG,UAAUogK,IACW,OAA1Bj6J,EAAKnG,UAAUogK,MAIiC,GAAlD5mL,OAAOM,KAAKqsB,EAAK2B,UAAU+yI,aAAa5hK,OACR,IAADy9L,EAA7BvwK,EAAKnG,UAAU,eACjBuD,EACEA,KAEE4C,EAAKnG,UAAU,iBACW,QAA1B02K,EAAAvwK,EAAKnG,UAAU,mBAAW,IAAA02K,OAAA,EAA1BA,EAA4Bz9L,QAAS,IAG3C8lF,EAAoBx7D,GACpBtmB,QAAQiB,IAAI,aAAcqlB,EAAS,GAClC,CACD4C,EAAK/D,QACL+D,EAAK2B,UAAUE,QACfxuB,OAAOM,KAAKqsB,EAAK2B,UAAU+yI,aAAa5hK,SAG1CmV,qBAAU,KACR+X,EAAKu6B,MAAM,IAAKl+B,GAAe,GAC9B,CAACA,IAEJpU,qBAAU,KACK,IAADuoL,EAAAC,EAAAC,EAARrxI,GACF0qD,EAAgB,CACdlhE,SAA0B,QAAlB2nJ,EAAQ,OAANnxI,QAAM,IAANA,OAAM,EAANA,EAAQxW,gBAAQ,IAAA2nJ,IAAI,EAC9B9sC,WAAkB,OAANrkG,QAAM,IAANA,OAAM,EAANA,EAAQ33C,UACpB4W,SAA0B,QAAlBmyK,EAAQ,OAANpxI,QAAM,IAANA,OAAM,EAANA,EAAQ/gC,gBAAQ,IAAAmyK,KAC1B7oL,UAA4B,QAAnB8oL,EAAQ,OAANrxI,QAAM,IAANA,OAAM,EAANA,EAAQz3C,iBAAS,IAAA8oL,KAC5B7oL,YAAmB,OAANw3C,QAAM,IAANA,OAAM,EAANA,EAAQx3C,YACrBuI,SAAgB,OAANivC,QAAM,IAANA,OAAM,EAANA,EAAQjvC,UAEtB,GACC,CAACivC,IA0BJ,OACElqD,cAAAyV,WAAA,CAAAtW,SACEa,cAACiuG,KAAY,IAAKpjF,EAAI1rB,SACpBsR,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cA7BDu9B,IACpB1hC,GACE2gC,GAAcc,mBAAmB,IAC5BzhC,EACHiC,SAAUy/B,EAAaz/B,SACvB1W,UAAWm2C,EAAan2C,UACxBC,YAAak2C,EAAan2C,UAAYm2C,EAAal2C,YAAc,KACjEuI,SAAU2tC,EAAan2C,UAAYm2C,EAAa3tC,SAAW,OAE1DtQ,MAAMiB,IACDA,EACFuN,EACE,sCACAlB,GAAYE,SAGdgB,EAAW,sBACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,QAAQ,IAE1BqT,SAAQ,IAAM44C,KAAwB,IAQrCjgC,YAAU,EAAArsB,SAAA,CAET+nB,GACClnB,cAACo6L,GAAgB,CAAClzK,aAAcA,EAAcszK,YAAY,IAE5D/pL,eAACqI,KAAG,CACF4S,GAAI,EACJmiB,GAAI,EACJ36B,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACfx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CAEhCa,cAAC2lB,KAAM,CACL1U,QAAQ,WACRP,UAAWkV,KAAWC,sBACtBH,QAAS+lC,EAAsBtsD,SAE9B+D,EAAUC,QAAQE,SAErBrD,cAAC8Y,KAAG,CAACG,GAAI0e,EAAWX,OAAS,EAAI,EAAG6W,GAAIlW,EAAWX,OAAS,EAAI,EAAE73B,SAChEa,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoU,QAAQ,YACRP,UAAWkV,KAAWK,uBACtBgC,SAAUu7D,EAAiBrkF,SAE1B+D,EAAUC,QAAQK,yBAM5B,ECtGQg4L,OAhDiCA,KAC9C,MACE99K,OAAO,eAAE8sC,GAAgB,sBACzBiB,GACEM,KAEJ,OACE/rD,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACZqrD,GACCxqD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SACfqrD,EAAemK,UAAUj/C,KAAK+lL,GAE3BhrL,eAAC+6F,KAAS,CAAArsG,SAAA,CAKRa,cAACyrG,KAAgB,CACfC,WAAY1rG,cAACwhG,KAAc,IAC3B,gBAAc,kBACdvqF,GAAG,iBAAgB9X,SAEnBa,cAACgR,KAAU,CACTN,UAAW2mG,KAAUy9C,SAAS31J,SAAA,GAAAkB,OAC3Bo7L,EAASlpL,UAAS,KAAAlS,OAAIo7L,EAASnpL,SAAQ,OAAAjS,OAAMo7L,EAAS7mI,kBAE7D50D,cAAC2rG,KAAgB,CAAAxsG,SACfa,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACbsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAAA,CAChBa,cAACkoL,GAAiB,CAChBh+H,OAAQuxI,EACR9S,qBAAqB,EACrBl8H,iBAAkBhB,EAClBo9H,mBAAmB,IAErB7oL,cAACm7L,GAAY,CAACjxI,OAAQuxI,aAGT,sCAAAp7L,OAxBjBo7L,EAAS/nJ,SAAQ,KAAArzC,OACftC,KAAKo/F,aA6Bd,ECDIu+F,OAxC0BA,KACvC,MACEh+K,OAAO,eAAE8sC,GAAgB,sBACzBiB,GACEM,KAEJ,OACEt7C,eAAAgF,WAAA,CAAAtW,SAAA,CACGqrD,GAAkBA,EAAen4C,MAAQm4C,EAAen4C,KAAKhC,QAC5DrQ,cAAC6yL,GAAc,CACbxiL,OAAQm6C,EAAen4C,KAAKhC,OAC5Bo8C,iBAAkBhB,IAGrBjB,GACCA,EAAen4C,KAAKkiL,OAAO7+K,KAAK22G,GAE5B57G,eAAC+6F,KAAS,CAAArsG,SAAA,CACRa,cAACyrG,KAAgB,CAACC,WAAY1rG,cAACwhG,KAAc,IAAIriG,SAC/Ca,cAACgR,IAAU,CACTN,UAAW2mG,KAAUy9C,SAAS31J,SAAA,GAAAkB,OAC3BgsH,EAAEniE,OAAO33C,UAAS,KAAAlS,OAAIgsH,EAAEniE,OAAO53C,cAEtCtS,cAAC2rG,KAAgB,CAAAxsG,SACfa,cAACkoL,GAAiB,CAChBh+H,OAAQmiE,EAAEniE,OACVuC,iBAAkBhB,EAClBi9H,qBAAmB,EACnBE,QAAM,EACNv4K,OAAQm6C,EAAen4C,KAAKhC,OAC5Bw4K,mBAAmB,QAEJ,SAAAxoL,OAfIgsH,EAAEniE,OAAOxW,SAAQ,KAAArzC,OAAItC,KAAKo/F,YAmBxD,EClBQw+F,OAzBiCA,KAC9C,MACEj+K,OAAO,eAAE8sC,GAAgB,sBACzBiB,GACEM,KAEJ,OACE/rD,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SACfqrD,GACCxqD,cAACkoL,GAAiB,CAChBh+H,OAAQM,EAAeN,OACvBjzC,IAAE,EACF0xK,qBAAqB,EACrBl8H,iBAAkBhB,EAClBo9H,mBAAmB,SAK1B,EC1BA,IAAK+S,GAAc,SAAdA,GAAc,OAAdA,IAAc,6BAAdA,IAAc,6BAAdA,CAAc,MAyBXC,OAXYA,CAACn+K,EAAkBC,KAC5C,OAAQA,EAAO9gB,MACb,KAAK++L,GAAe70I,YAClB,MAAO,IAAKrpC,EAAOhc,MAAOic,EAAOO,SACnC,KAAK09K,GAAeE,YAClB,MAAO,IAAKp+K,EAAOq+K,aAAcp+K,EAAOO,SAC1C,QACE,OAAOR,EACX,ECdK,MAAMe,GAA0B,CACrC/c,MAAO,KACPq6L,aAAc,MAWVC,GAAcl9L,wBAAc,CAAC,GAwEpBm9L,OAtEgB/8L,IAAiB,IAAhB,SAACC,GAASD,EACxC,MAAOwe,EAAOwB,GAAYC,qBAAW08K,GAAap9K,KAC5C,WAACtF,GAAcQ,KAErB7G,qBAAU,KACRu0C,GAAY,GACX,IAEH,MAAMA,EAAav1C,UACjBlD,EAAYI,cACArE,MAAMjJ,GACLwd,EAAS,CAACriB,KAAM++L,GAAe70I,YAAa7oC,QAASxc,MAEtDoB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EA0CzD,OACEQ,cAACg8L,GAAY/7L,SAAQ,CACnB1D,MAAO,CACLmhB,QACAwB,WACAg9K,WA5CcviK,IAClB/qB,EAAYS,WAAW,IAAIqO,EAAMq+K,gBAAiBpiK,IACtChvB,MAAM4gB,IACDA,EACF87B,IAAax0C,SAAQ,IACnBsG,EAAWjW,EAAUuB,SAASC,QAAQC,UAAWsT,GAAYE,WAE/DgB,EAAW,mCACb,IAEDrW,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAmCnDgQ,WAnBcmqB,IAClB/qB,EAAYY,WAAWmqB,EAAKxqB,UAChBxE,MAAM+8C,IACDA,EACFL,IAAax0C,SAAQ,IACnBsG,EAAWjW,EAAUuB,SAASC,QAAQE,YAAaqT,GAAYE,WAEjEgB,EAAW,mCACb,IAEDrW,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,EAUnD+P,WAjCcoqB,IAClB/qB,EAAYW,WAAWoqB,GACXhvB,MAAM4gB,IACDA,EACF87B,IAAax0C,SAAQ,IACnBsG,EAAWjW,EAAUuB,SAASC,QAAQM,aAAciT,GAAYE,WAElEgB,EAAW,0BACb,IAEDrW,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,GAwBnDL,SAEDA,GACoB,EAMpB,MAAMg9L,GAAiBA,IAAMn9L,qBAAWg9L,ICbhCI,OArE4Bl9L,IAAuC,IAAtC,KAAE2rB,EAAI,aAAE3D,EAAY,SAAEm1K,GAAUn9L,EAC1E,OACEc,cAAAyV,WAAA,CAAAtW,SACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACs2B,eAAe,gBAAgBC,QAAS,EAAEhoC,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,OAAMrnB,SACvBa,cAACmnB,GAAS,CACR/oB,KAAK,WACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTS,UAAWi1K,EACXn1K,aAA0B,OAAZA,QAAY,IAAZA,OAAY,EAAZA,EAAc/X,SAC5BvN,QAASipB,EAAK5d,OAAOkC,SACrBid,WACEvB,EAAK5d,OAAOkC,SAAW0b,EAAK5d,OAAOkC,SAAS3P,QAAU,SAM9DQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,cAAarnB,SAC9Ba,cAACmnB,GAAS,CACR/oB,KAAK,kBACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACTO,aAA0B,OAAZA,QAAY,IAAZA,OAAY,EAAZA,EAAco1K,gBAC5B16L,QAASipB,EAAK5d,OAAOqvL,gBACrBlwK,WACEvB,EAAK5d,OAAOqvL,gBACRzxK,EAAK5d,OAAOqvL,gBAAgB98L,QAC5B,SAMZQ,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACumB,GAAW,CAACC,MAAM,gBAAernB,SAChCa,cAACmnB,GAAS,CACR/oB,KAAK,eACL8tB,SAAUrB,EAAKsB,SACftvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACT0F,WAAW,EACXnF,aAA0B,OAAZA,QAAY,IAAZA,OAAY,EAAZA,EAActU,aAC5BhR,QAASipB,EAAK5d,OAAO2F,aACrBwZ,WACEvB,EAAK5d,OAAO2F,aAAeiY,EAAK5d,OAAO2F,aAAapT,QAAU,aAMvE,EC1BA,MAAM+8L,GAAoBnyK,OAAaC,MAAM,CAClDlb,SAAUib,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnD22L,gBAAiBlyK,OAEd5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,MACnDiN,aAAcwX,OAEX5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QAGxC62L,GAAuBpyK,OAAaC,MAAM,CACrDlb,SAAUib,OAEP5kB,SAAStC,EAAUqC,WAAWC,UAC9BG,IAAI,IAAK4gG,GAAarjG,EAAUqC,WAAWI,IAAK,QAExC82L,GAAqB,CAChCttL,SAAU,GACVutL,gBAAiB,UACjBJ,gBAAiB,GACjB1pL,aAAc,IAsdD+pL,OAnd8Cz9L,IAAe,IAAD09L,EAAA,IAAb,KAAEvqL,GAAMnT,EACpE,MAAOmS,EAAawrL,GAAkBprL,mBAAwB,KACvDqrL,EAAiBC,GAAsBtrL,mBAA4B,KACnEoD,EAAiBmoL,GAAsBvrL,mBAAmB,KAC1DwrL,GAAiCxrL,wBAAkBjV,IAAT6V,IAE1ConL,EAASyD,GAAczrL,oBAAS,IACjC,WAAE0H,GAAeQ,KACjBkR,EAAOC,gBAENixK,EAAcoB,GAAmB1rL,mBAAS,KAC1CtC,EAAUiuL,GAAehsL,IAAMK,SAAS,MAEzC4rL,EAAwBv4E,GAAYi3E,EAAc,KAClDpkK,EAAajB,MAGjBiW,UAAW2sD,EACX1sD,UAAW+rD,EACXjuE,UAAWguE,GACTjsD,MAEFE,UAAW8nE,EACX7nE,UAAW8nE,EACXhqF,UAAWiqF,GACTloE,KAGE/qC,EAA+B,QAA1Bk7L,EADST,KACMz+K,MAAMhc,aAAK,IAAAk7L,IAAI,IAElCU,EAAWC,GAAgB9rL,mBAChC/P,EAAMgb,MAAMiX,GAAMA,EAAExkB,UAAY4sL,MAG5B,WAAEG,EAAU,WAAE1sL,EAAU,WAAED,GAAe4sL,MACxCqB,EAAkBC,GAAuBhsL,oBAAS,GACnDisL,EAAW5yK,aAAe,CAC9BC,SAAWyyK,EAEPxyK,aAAYwxK,IADZxxK,aAAYuxK,IAEhBtxK,KAAM,aAGF0yK,EAAoBlB,GAE1B3pL,qBAAU,KACRlE,EAAYK,oBACTtE,MAAMiB,GAAaixL,EAAejxL,KAClC9I,OAAOlB,GAAUuX,EAAWvX,EAAMpC,UAAS,GAC7C,IAEHsT,qBAAU,KACA,OAAJT,QAAI,IAAJA,KAAMF,WACRgrL,EAAgB9qL,EAAKlD,UACrByuL,EAAuBvrL,EAAKF,UAC9B,GACC,CAACE,IAGJS,qBAAU,KACQ,MAAZ3D,GAAgC,IAAZA,GACtBouL,EAAa77L,EAAMgb,MAAMiX,GAAMA,EAAExkB,UAAYA,IAC/C,GACC,CAACA,EAAUzN,IAEdoR,qBAAU,KACJuqL,GACFQ,GACF,GACC,CAACR,IAEJvqL,qBAAU,KACJ2mL,IACEwD,GAAiC5qL,GACnCurL,EAAuBvrL,EAAKF,UAC5B0Y,EAAK2B,UAAUC,SAAU,GAEzBoxK,IAEJ,GACC,CAACpE,IAEJ,MAAMoE,EAAyBA,KAC7BjvL,EAAYM,qBAAqBmuL,GAC9B1yL,MAAMiB,IACLmxL,EAAmBnxL,GACnBif,EAAK2B,UAAUC,SAAU,CAAK,IAE/B3pB,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAClCqT,SAAQ,IAAMqqL,GAAW,IAAO,EAG/BU,EAA0BE,IAC9BlvL,EAAYa,qBAAqBquL,GAC9BnzL,MAAMiB,GAAaoxL,EAAmBpxL,KACtC9I,OAAOlB,GAAUuX,EAAWvX,EAAMpC,WAClCqT,SAAQ,IAAMqqL,GAAW,IAAO,EAkHrC,OACEzsL,eAAAgF,WAAA,CAAAtW,SAAA,EACI89L,GACAxsL,eAAAgF,WAAA,CAAAtW,SAAA,CACEa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,2CAI3Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAAC25E,GAAS,CAAC1iE,GAAG,eAAeyO,QAASA,IAtC9B5T,WAChB2rL,GAAoB,GACpBnkG,GAAY,EAoCwChU,GAAYnmF,SAAC,eAK3DsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWg2E,kBAAkBz8F,SAAA,CACtDa,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACumB,GAAW,CAACC,MAAM,OAAOvT,MAAO,CAAE+V,cAAe,OAAQ7pB,SACxDa,cAACo/E,GAAY,CACXhhF,KAAK,OACLkhF,eAAiBh2D,GACfA,EAAOna,SAAWma,EAAOna,SAAW,GAEtCkwE,aAAe/1D,GAAWA,EAAOna,SACjC6+E,UAAU,WACV56E,OAAO,SACP2U,QAASrmB,EACTuoB,SAAUA,CAAC5M,EAAO9gB,KAChB4gM,EAAgB5gM,GAChB6gM,EAAY7gM,EAAM,EAEpBwhM,WAAoB,OAAR5uL,QAAQ,IAARA,IAAY,SAI7BkuL,GACC5sL,eAACqI,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,MAAKhU,SAAA,CAC5Da,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoa,GAAG,qBACHhG,QAAQ,YACRP,UAAWkV,KAAWo4K,8BACtBt4K,QAASA,IA3EN5T,WACjB2rL,GAAoB,GACpBF,EAAa77L,EAAMgb,MAAMiX,GAAMA,EAAExkB,UAAY4sL,KAC7CziG,GAAY,EAwEiBpU,GAAa/lF,SAE3B,cAEHa,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoa,GAAG,qBACHhG,QAAQ,YACRP,UAAWkV,KAAWo4K,8BACtBt4K,QAASA,IA1EJ5T,WACnByrL,EAAa77L,EAAMgb,MAAMiX,GAAMA,EAAExkB,UAAY4sL,KAC7CtnF,GAAwB,EAwEKj0B,GAAerhF,SAE7B,sBAKTa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC4rB,KAAI,CAACG,MAAI,EAACQ,GAAI,EAAEptB,SACfa,cAACgR,IAAU,CACTiC,MAAO,CAAE2yB,UAAW,SAAU5c,cAAe,QAAS7pB,SAE5C,OAATm+L,QAAS,IAATA,OAAS,EAATA,EAAWhB,sBAIjBe,IACkB,MAAhBtB,GAAwC,IAAhBA,IACvBtrL,eAACqI,KAAG,CAAC4S,GAAI,EAAEvsB,SAAA,CACTa,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,UACf,OAATm+L,QAAS,IAATA,OAAS,EAATA,EAAW1qL,eACV,8DAEJ5S,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SACZ,OAATm+L,QAAS,IAATA,OAAS,EAATA,EAAW1qL,uBAO1BnC,eAAA,QACEkX,aAAa,MACbyD,SAAUP,EAAKQ,cApMC4yK,IACpB,GAAIZ,EACF,GAAIJ,EAA+B,CAAC,IAADiB,EACjC,IAAIC,EAAgD,QAA7BD,EAAGD,EAAe5sL,mBAAW,IAAA6sL,IAAI,GAExDpB,EAAgBl/L,SAAS0kD,GACvB67I,EAAoBx+L,OAClBw+L,EAAoBn5K,WAAWla,GAAMA,IAAMw3C,EAAE87I,iBAC7C,KAIJ,IAAIC,EAAoBF,EAAoBzoL,KACzCie,IAAC,IAAA2qK,EAAA,MAAuB,CACvBjuL,OAAoB,QAAdiuL,EAAM,OAAJjsL,QAAI,IAAJA,OAAI,EAAJA,EAAMhC,cAAM,IAAAiuL,IAAI,EACxBF,eAAgBzqK,EACjB,IAEkC,IAAD4qK,EAApC,GAAiC,IAA7BF,EAAkB1gM,OACpB0gM,EAAkB5+L,KAAK,CACrB4Q,OAAoB,QAAdkuL,EAAM,OAAJlsL,QAAI,IAAJA,OAAI,EAAJA,EAAMhC,cAAM,IAAAkuL,IAAI,EACxBH,eAAgB,KAIpBxvL,EAAYgB,wBAAwByuL,GACjC1zL,MAAMiB,IACDA,GACFuN,EACE,mCACAlB,GAAYE,SAEd0lL,KAEA1kL,EAAW,4BACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,SACjB09L,GAAW,EAAK,GAEtB,KAAO,CACL,IAAIsB,EAAuC,GACvCP,GAAkBA,EAAe5sL,cACnCmtL,EAAoBP,EAAe5sL,YAAYqE,KAC5Cie,IAAC,CACAxkB,SAAUkuL,EACVe,eAAgBzqK,OAKW,IAA7B6qK,EAAkB7gM,QACpB6gM,EAAkB/+L,KAAK,CACrB0P,SAAUkuL,EACVe,eAAgB,KAIpBxvL,EAAYc,wBAAwB8uL,GACjC7zL,MAAMiB,IACDA,GACFuN,EACE,mCACAlB,GAAYE,SAEd0lL,KAEA1kL,EAAW,4BACb,IAEDrW,OAAOlB,IACNuX,EAAWvX,EAAMpC,SACjB09L,GAAW,EAAK,GAEtB,CACF,IAyHI1xK,YAAU,EAAArsB,SAAA,CAETk+L,GACChsL,GACAA,EACG8vB,QACExN,GACuB,MAAtBA,EAAE8qK,mBACD9qK,EAAE+qK,mBAAqBrB,GACA,MAAtB1pK,EAAE+qK,oBAEPhpL,KAAKie,GAEFljB,eAAC+6F,KAAS,CAAArsG,SAAA,CACRa,cAACyrG,KAAgB,CAACC,WAAY1rG,cAACwhG,KAAc,IAAIriG,SAC/Ca,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAEw0B,EAAEi8I,gBAE9B5vK,cAAC2rG,KAAgB,CAAAxsG,SACfa,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACZkS,EACE8vB,QACEvN,GACCA,EAAE6qK,mBAAqB9qK,EAAEyqK,iBACxBxqK,EAAE8qK,mBAAqBrB,GACA,MAAtBzpK,EAAE8qK,oBAEPhpL,KAAKke,IACJ,MAAM+qK,EAAmB7B,EAAgBh4K,MACtCvN,GAAMA,EAAE6mL,iBAAmBxqK,EAAEwqK,iBAEhC,IAAIQ,GAAmB,GAEpBD,GACD1B,IAEA2B,EAAmB/pL,EAAgBiQ,MAChC+5K,GAASA,IAASjrK,EAAEwqK,kBAGzB,MAAM9yF,EACJqzF,GAAoBC,EAEtB,OACE5+L,cAAC4rB,KAAI,CACHG,MAAI,EACJQ,GAAI,EAAEptB,SAGNa,cAAC2hF,GAAQ,CACP1qE,GAAI2c,EAAEwqK,eACN53K,MAAOoN,EAAEg8I,YACT1jJ,SAAUrB,EAAKsB,SACf/tB,KAAI,cACJ7B,MAAOq3B,EAAEwqK,eACTl7G,eAAgBooB,EAChBrjF,YACE02K,IACA1B,GAIF7oL,MAAM,aACN,GAAA/T,OAhBMg9L,GAAqBh9L,OAAGuzB,EAAEwqK,gBAAc/9L,OAAGirG,GAASjrG,OAAGo5L,GAiB1D,UAlDH9lK,EAAEyqK,kBA0DzBf,GACC5sL,eAACqI,KAAG,CACF4S,GAAI,EACJmiB,GAAI,EACJ36B,QAASykB,EAAWX,OAAS,QAAU,OACvCkQ,eAAe,SACfx2B,UAAWkV,KAAWe,UAAUxnB,SAAA,CAEhCa,cAAC2lB,KAAM,CACL9oB,KAAK,QACLoU,QAAQ,WACRgX,UAAW4C,EAAK2B,UAAUC,QAC1B/b,UAAWkV,KAAWC,sBACtBH,QAASA,IAAMw3K,GAAW,GAAM/9L,SAE/B+D,EAAUC,QAAQE,SAErBrD,cAAC8Y,KAAG,CAACG,GAAI0e,EAAWX,OAAS,EAAI,EAAG6W,GAAIlW,EAAWX,OAAS,EAAI,EAAE73B,SAChEa,cAAC2lB,KAAM,CACL9oB,KAAK,SACLoU,QAAQ,YACRgX,UAAW4C,EAAK2B,UAAUC,QAC1B/b,UAAWkV,KAAWK,uBAAuB9mB,SAE5C+D,EAAUC,QAAQK,sBAO7BiN,eAAC4U,GAAM,CACLzM,KAAM8/E,EACN/tE,QAASguE,EACTqlB,WAAY,CAAE/qG,MAAO,CAAEI,MAAO,QAAUlU,SAAA,CAExCa,cAACkmB,GAAW,CAAA/mB,SACTq+L,EAAmB,iBAAmB,eAEzC/sL,eAAA,QACEkX,aAAa,MACbyD,SAAUsyK,EAASryK,cAlNDsO,IACpB6jK,EACFtB,EAAWviK,IAEXpqB,EAAWoqB,GACXyjK,EAAY,MACZD,EAAgB,KAGlBxkG,GAAY,IA0MNntE,YAAU,EACV9a,UAAWkV,KAAW6F,kBAAkBtsB,SAAA,CAExCa,cAAC8lB,GAAa,CAAA3mB,SACZa,cAACo8L,GAAQ,CACPvxK,KAAM6yK,EACNrB,UAAWmB,EACXt2K,aAAcs2K,EAAmBF,EAAYK,MAGjD39L,cAACwlB,GAAa,CAAArmB,SACZsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACylB,GAAkB,CACjBxO,GAAG,cACHyO,QAASA,IAAMizE,IACfhyE,WAAS,MAGb3mB,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC+lB,GAAgB,CAAC9O,GAAG,wBAAwB0P,WAAS,iBAMhElW,eAACu7B,GAAM,CACLpzB,KAAM+7F,EACNhqF,QAAS+pF,EACTlkG,SAAS,KAAIrR,SAAA,CAEbsR,eAAC+7B,GAAW,CAAArtC,SAAA,CACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,sCAGzBa,cAACgR,IAAU,CAACN,UAAU,WAAUvR,SAAE48L,OAEpC/7L,cAACusC,GAAa,CAAAptC,SACZa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,oBAE3BsR,eAAC07B,GAAa,CAACC,OAAK,EAAAjtC,SAAA,CAClBa,cAAC+/E,GAAkB,CACjB9oE,GAAG,iBACHxN,KAAMvG,EAAUC,QAAQS,GACxB8hB,QAASA,KACPgvF,GAAwB,IAG5B10G,cAACssC,GAAY,CACXr1B,GAAG,kBACHxN,KAAMvG,EAAUC,QAAQQ,IACxB+hB,QAASA,KA5QjBlW,EA4Q2C8tL,GA3Q3C5oF,IACAyoF,EAAgB,SAChBC,EAAY,iBA6QT,EC1gBQ0B,OAhBwBA,KAAO,IAADC,EAAAC,EAC3C,MAAM,MAAEthL,GAAUquC,KAElB,OACE/rD,cAAAyV,WAAA,CAAAtW,SACEa,cAAC4rB,KAAI,CAAChb,WAAS,EAAAzR,SACba,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAGx3B,SAChBa,cAACi8L,GAAY,CAAA98L,SACXa,cAAC28L,GAAiB,CAACtqL,KAAgC,QAA5B0sL,EAAsB,QAAtBC,EAAEthL,EAAM8sC,sBAAc,IAAAw0I,OAAA,EAApBA,EAAsB3sL,YAAI,IAAA0sL,IAAI,cAI5D,EC0CQE,OA7CsB,CACnC,CACErpL,KAAM,yDACNxX,KAAM,gBACNyX,OAAO,EACPC,UAAW9V,cAACk/L,GAA4B,IACxCxqL,WAAYqZ,GAAgBoB,2CAE9B,CACEvZ,KAAM,yDACNxX,KAAM,gBACNyX,OAAO,EACPC,UAAW9V,cAACk7L,GAA4B,IACxCxmL,WAAYqZ,GAAgBoB,2CAE9B,CACEvZ,KAAM,0DACNxX,KAAM,iBACNyX,OAAO,EACPC,UAAW9V,cAACw7L,GAA6B,IACzC9mL,WAAYqZ,GAAgBoB,2CAE9B,CACEvZ,KAAM,mDACNxX,KAAM,SACNyX,OAAO,EACPC,UAAW9V,cAAC07L,GAAsB,IAClChnL,WAAYqZ,GAAgBqB,sCAE9B,CACExZ,KAAM,mDACNxX,KAAM,SACNyX,OAAO,EACPC,UAAW9V,cAAC46L,GAAsB,IAClClmL,WAAYqZ,GAAgBoB,2CAE9B,CACEvZ,KAAM,iDACNxX,KAAM,OACNyX,OAAO,EACPC,UAAW9V,cAAC8+L,GAAoB,IAChCpqL,WAAYqZ,GAAgBwB,uCC6CjB4vK,OArFqBA,KAClC,MAAM,SAAEzrJ,GAAagxD,cACfntE,EAAUC,eAEd9Z,OAAO,eAAE8sC,GAAgB,SACzBtrC,GACE6sC,MACG8uC,EAAM+7F,GAAWnlL,qBA6CxB,OA3CAqB,qBAAU,KACRoM,EAAS,CACPriB,KAAMwtD,GAA2BI,aACjCvsC,SAAU8gF,mBAAmBtrD,IAC7B,GACD,IAEH5gC,qBAAU,KACR,GAAI03C,GAAkBA,EAAemK,UAAW,CAC9C,IAAImiI,EAAUsI,GAEdxwL,EAAYa,qBAAqB+6C,EAAen4C,KAAKF,UAAUxH,MAC5D0G,IAEGm5C,EAAemK,WACqB,IAApCnK,EAAemK,UAAUh3D,SAEzBm5L,EAAUA,EAAQ31J,QACfvkB,GAEC,4DADAA,EAAEhH,QAKLvE,EAAYyT,MACVuR,GAAMA,IAAMtI,GAAgBuB,wCAG/BwnK,EAAUA,EAAQ31J,QACfvkB,GACY,qDAAXA,EAAEhH,QAERghL,EAAQ,IACHE,EAAQphL,KAAK6kC,IAAC,IACZA,EACH3kC,KAAM2kC,EAAE3kC,KAAKipB,QAAQ,YAAa6U,QAEpC,GAGR,IACC,CAAC8W,IAGFxqD,cAAAyV,WAAA,CAAAtW,SACG07F,GAAQrwC,GACPxqD,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CACV39C,OACE7qB,eAAA,OAAKC,UAAW2mG,KAAU8b,WAAWh0H,SAAA,CACnCa,cAAC0hC,KAAI,CACHzqB,GAAG,qBACHyO,QAASA,IAAM6R,EAAQ93B,KAAK,gCAC5B5C,KAAK,SACLoU,QAAQ,QACR6E,UAAU,SAAQ3W,SAElBa,cAAC+0G,GAAQ,MAEX/0G,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,2BAGhCW,MAAK,GAAAO,OAAmB,OAAdmqD,QAAc,IAAdA,OAAc,EAAdA,EAAgBN,OAAO33C,UAAS,KAAAlS,OAAkB,OAAdmqD,QAAc,IAAdA,OAAc,EAAdA,EAAgBN,OAAO53C,UAAWnT,SAAA,CAEhFa,cAAC83F,GAAO,CAACxiF,MAAOulF,IAChB76F,cAACmV,EAAM,CACLG,MAAOulF,EACPtlF,SAAQ,2BAAAlV,OAA6BqzC,EAAQ,oBAKpD,ECkOQ2rJ,OA9SkBA,KAC/B,MAAM,MAAE3hL,EAAK,SAAEwB,EAAQ,cAAE2sC,GAAkBE,MACpClgD,EAAMg9F,GAAWp3F,mBAAgB,KACjCw7D,EAAWktB,GAAgB1oF,oBAAS,GAE3CqB,qBAAU,KACR,IAAIwwG,EAAiB,GAErB5lG,EAAMs2B,QAAQp2C,SAASssD,IACrBo5D,EAAQ7jH,KAAK,CACX4Q,OAAQ65C,EAAO75C,OACfqjC,SAAUwW,EAAOxW,SACjBjxC,SAAUynD,EAAOznD,SACjB2gF,WAAYl5B,EAAOk5B,WACnBmgC,aAAcr5D,EAAOq5D,aACrBp0G,SAAU+6C,EAAO/6C,SACjBsD,UAAWy3C,EAAOz3C,UAClBC,YAAaw3C,EAAOx3C,YACpByW,SAAU+gC,EAAO/gC,SACjBm2K,kBAAmB,GACnBC,sBAAuB,GACvBC,UAAU,EACVrG,YAAajvI,EAAOivI,cAEtBjvI,EAAO8+H,cAAcprL,SAAS82D,IAC5B4uD,EAAQ7jH,KAAK,CACX4Q,OAAQ,GACR5N,SAAU,GACV2gF,WAAYl5B,EAAOk5B,WACnB1vC,SAAUwW,EAAOxW,SACjB6vE,aAAcr5D,EAAOq5D,aACrBp0G,SAAU+6C,EAAO/6C,SACjBsD,UAAWiiD,EAAajiD,UACxBC,YAAagiD,EAAahiD,YAC1ByW,SAAUurC,EAAavrC,SACvBm2K,kBAAmB5qI,EAAat2D,KAChCmhM,sBAAuB7qI,EAAaw3D,SACpCszE,UAAU,GACV,GACF,IAGJ32F,EAAQya,GAERnpB,GAAa,EAAM,GAClB,CAACz8E,EAAMs2B,UAEV,MAAM2mC,EAAUvpE,IAAMsI,SAAQ,IACD,CACzB,CACE4d,OAAQ,QACRytD,SAAU,aACVE,KAAM/lF,IAAA,IAAC,IAAE89E,GAAU99E,EAAA,OACjBc,cAAAyV,WAAA,CAAAtW,SAAG69E,EAAImI,SAASq6G,UAAYx/L,cAAAyV,WAAA,CAAAtW,SAAG69E,EAAImI,SAAS/B,cAAkB,EAEhE/vE,MAAO,OAET,CACEikB,OAAQ,WACRytD,SAAU,eACVE,KAAMtvE,IAAA,IAAC,IAAEqnE,GAAUrnE,EAAA,OACjB3V,cAAAyV,WAAA,CAAAtW,SACG69E,EAAImI,SAASq6G,UACZ14F,GACE9pB,EAAImI,SAASo+B,aACb7lG,EAAMotC,kBAET,GAGP,CACExzB,OAAQ,cACRytD,SAAU,cACVE,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OACjB1/E,cAAAyV,WAAA,CAAAtW,SACG69E,EAAImI,SAASg0G,YACZn5L,cAAC4nF,GAAQ,CAAChgF,KAAMo1E,EAAImI,SAASg0G,YAAavpJ,OAAO,cAEjD,IAED,GAGP,CACEtY,OAAQ,eACRytD,SAAU,WACVE,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OACjB11F,cAAAyV,WAAA,CAAAtW,SAAG69E,EAAImI,SAASq6G,UAAYx/L,cAAAyV,WAAA,CAAAtW,SAAG69E,EAAImI,SAASh2E,YAAgB,EAE9DkE,MAAO,OAET,CACEikB,OAAQ,gBACRytD,SAAU,oBACV1xE,MAAO,MACP4xE,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjBiR,GACE9pB,EAAImI,SAASm6G,kBACb5hL,EAAMotC,gBACP,GAEL,CACExzB,OAAQ,WACRytD,SAAU,wBACV1xE,MAAO,OAET,CACEikB,OAAQ,SACRytD,SAAU,WACVE,KAAM6Q,IAAA,IAAC,IAAE9Y,GAAU8Y,EAAA,OACjB91F,cAAA,OAAAb,SAAM69E,EAAImI,SAASh8D,SAAWnpB,cAACuvK,GAAM,IAAMvvK,cAAAyV,WAAA,KAAY,EAEzDpC,MAAO,MAET,CACEikB,OAAQ,UACRytD,SAAU,YACVE,KAAMiR,IAAA,IAAC,IAAElZ,GAAUkZ,EAAA,OACjBl2F,cAAA,OAAAb,SACG69E,EAAImI,SAASh8D,UACd6zD,EAAImI,SAAS1yE,WACbq6B,KAAOkwC,EAAImI,SAASzyE,aAAa4gC,QAAQ,QACvCxG,OAASwG,QAAQ,OACjBtzC,cAACuvK,GAAM,IAEPvvK,cAAAyV,WAAA,KAEE,EAERpC,MAAO,MAET,CACEikB,OAAQ,GACRytD,SAAU,UACVE,KAAMkR,IAAA,IAAC,IAAEnZ,GAAUmZ,EAAA,OACjBn2F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC9D69E,EAAImI,SAASzxC,UACZ1zC,cAACq6F,KAAO,CACNjmF,MAAM,UACN0B,UAAW4rB,IACXxsB,GAAE,2BAAA7U,OAA6BqoD,mBAC7Bs0B,EAAImI,SAASzxC,UACd,YAAWv0C,SACb,cAIC,EAERkU,MAAO,SAKV,CAACqK,EAAMotC,kBAWJ47B,EAAeA,KACnByT,GAAa,GACbtuC,EAAcnuC,EAAMktC,aACpB1rC,EAAS,CACPriB,KAAMwtD,GAA2BQ,sBACjC3sC,QAASR,EAAMktC,aACf,EASJ,OACE5qD,cAAAyV,WAAA,CAAAtW,SACEsR,eAACwoE,GAAW,CAACn5E,MAAM,cAAaX,SAAA,CAC9Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,4CAI3Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAAC,8GAKlCa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACmnB,GAAS,CACRQ,aAAa,MACb1Q,GAAG,qBACH1a,MAAOmhB,EAAMktC,YACbjjD,YAAY,0BACZm/E,UA9CUh8E,IAEV,UAAVA,EAAEhN,MACD4f,EAAMktC,YAAYjtD,QAAU,IAAM2vH,OAAO5vG,EAAMktC,eAEhD87B,GACF,EAyCYz8D,SA9BQnf,IACpBoU,EAAS,CACPriB,KAAMwtD,GAA2BM,iBACjCzsC,QAASpT,EAAEoL,OAAO3Z,OAClB,MA6BMyD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAACwmF,GAAY,CACXvvE,GAAG,4BACHgR,SACEvK,EAAMktC,YAAYjtD,OAAS,GAC1B+f,EAAMktC,YAAYjtD,OAAS,GAAK2vH,OAAO5vG,EAAMktC,aAEhDllC,QAASghE,EAAavnF,SACvB,yBAMPa,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTa,cAACgR,IAAU,CAACC,QAAQ,QAAO9R,SAAC,gBAE9Ba,cAAC8Y,KAAG,CAAC4S,GAAI,EAAEvsB,SACTsR,eAACmb,KAAI,CAAChb,WAAS,EAACF,UAAWkV,KAAWkG,oBAAoB3sB,SAAA,CACxDa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8+E,GAAM,CACL1gF,KAAK,YACLooB,MAAM,UACNvV,QAAQ,WACR8W,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO,OACvB,CAAEiqB,MAAO,MAAOjqB,OAAO,GACvB,CAAEiqB,MAAO,KAAMjqB,OAAO,IAExBA,MAAOmhB,EAAMjL,UACbwX,SAAWnf,IACToU,EAAS,CACPriB,KAAMwtD,GAA2BU,cACjC7sC,QAASpT,EAAEoL,OAAO3Z,OAClB,MAIRyD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8+E,GAAM,CACL1gF,KAAK,WACLooB,MAAM,SACNvV,QAAQ,WACR8W,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO,OACvB,CAAEiqB,MAAO,SAAUjqB,OAAO,GAC1B,CAAEiqB,MAAO,aAAcjqB,OAAO,IAEhCA,MAAOmhB,EAAMyL,SACbc,SAAWnf,IACToU,EAAS,CACPriB,KAAMwtD,GAA2BW,aACjC9sC,QAASpT,EAAEoL,OAAO3Z,OAClB,MAIRyD,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,GAAIpK,GAAI,EAAEptB,SACvBa,cAAC8+E,GAAM,CACL1gF,KAAK,WACLooB,MAAM,eACNvV,QAAQ,WACR8W,QAAS,CACP,CAAEvB,MAAO,MAAOjqB,MAAO,UACpBmhB,EAAMhc,MAAMgU,KAAK6B,IAAC,CACnBiP,MAAOjP,EAAEpI,SACT5S,MAAOgb,EAAEpI,cAGb5S,MAAOmhB,EAAMvO,SACb8a,SAAWnf,IACToU,EAAS,CACPriB,KAAMwtD,GAA2BY,aACjC/sC,QAASpT,EAAEoL,OAAO3Z,OAClB,WAMX0wE,EACCjtE,cAAC02E,KAAc,CAACtiE,MAAM,cACpBvI,GAAQA,EAAKlO,OAAS,EACxBqC,cAAC6zE,GAAK,CAAC8G,QAASA,EAAS9uE,KAAMA,EAAMivE,OAAK,IAE1Cp9D,EAAMotC,iBACJ9qD,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,aAAY/nC,SAC7Ca,cAAC64E,GAAQ,UAKhB,EC9RQ4mH,OA1BwCA,IAEnDz/L,cAAAyV,WAAA,CAAAtW,SACEa,cAACmV,EAAM,CACLG,MAAO,CACL,CACEM,KAAM,+BACNxX,KAAM,cACNyX,OAAO,EACPC,UAAW9V,cAACq/L,GAAc,IAC1B3qL,WACEqZ,GAAgBoB,2CAEpB,CACEvZ,KAAM,4CACNxX,KAAM,iBACNyX,OAAO,EACPC,UAAW9V,cAACm/L,GAAiB,UCR1BO,OAZyBA,IAEpC1/L,cAAAyV,WAAA,CAAAtW,SACEa,cAACi5E,GAAW,CAACn5E,MAAM,qBAAoBX,SACrCa,cAACi8L,GAAY,CAAA98L,SACXa,cAAC28L,GAAiB,UCkB5B,MAAMt8J,GAAY9W,cAAY+I,IAAK,CACjCmM,OAAQ,CACNzmB,UAAW,eACXojB,WAAY,OACZlS,WAAYoJ,EAAMipE,YAAY3xF,OAAO,YAAa,CAChDy6D,SAAU/xC,EAAMipE,YAAYl3B,SAASm3B,YAGzCC,WAAY,CACVzjF,UAAW,kBAEbs2K,YAAa,CACX/lK,QAAS,OAgJEo3K,OAtIf,SAAkB5qL,GAA4B,IAADy5K,EAAAC,EAAA3I,EAC3C,MACEn5I,UAAWizJ,EACXhzJ,UAAWizJ,EACXn1K,UAAWo1K,GACTrzJ,MAEE,SAAChsB,EAAQ,QAAEsH,EAAO,SAAEkC,GAAYlV,EAChCoT,EAAUkY,MAETugE,EAAUC,GAAepvF,oBAAS,GAEnCu8K,EAA8B,QAAzBQ,EAAiB,QAAjBC,EAAGhuK,EAASutK,aAAK,IAAAS,OAAA,EAAdA,EAAgB9wL,cAAM,IAAA6wL,IAAI,EAiBxC,OACE/9K,eAAAgF,WAAA,CAAAtW,SAAA,CACEsR,eAACovF,KAAI,CAAC5uF,QAAQ,WAAWgC,MAAOwN,EAAS+9C,UAAY,CAACv0B,YAAa,WAAa,CAAC,EAAE9qC,SAAA,CACjFa,cAAC8/F,KAAU,CACThgG,MACE2Q,eAACmb,KAAI,CAAChb,WAAS,EAAAzR,SAAA,CACbsR,eAACmb,KAAI,CAACG,MAAI,EAACnb,WAAS,EAACu2B,QAAS,EAAGh0B,WAAW,SAAQhU,SAAA,CAClDa,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC+/F,KAAgB,CAAC9gB,KAAG,EAAC0gB,YAAal/E,EAASu/E,gBAC1B/sF,MAAO,CAACoB,aAAc,eAE1C5D,eAACmb,KAAI,CAACG,MAAI,EAAA5sB,SAAA,CACc,QADd2mL,EACPrlK,EAAS4zE,oBAAY,IAAAyxF,IAAI,mBAEzBrlK,EAAS+9C,WACRx+D,cAAC08F,KAAI,CAAC9/F,KAAK,QAAQ4pB,MAAM,UAAUpS,MAAM,UAAUnB,MAAO,CAACmoB,WAAY,YAI7E3qB,eAACmb,KAAI,CAACG,MAAI,EAACnb,WAAS,EAACu2B,QAAS,EAAGh0B,WAAW,SAAS+zB,eAAe,aAAY/nC,SAAA,CAC9Ea,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAACy8F,GAAkB,CAACzzF,OAAQyX,EAASzX,WAElB,aAApByX,EAASzX,QACRhJ,cAAC4rB,KAAI,CAACG,MAAI,EAAA5sB,SACRa,cAAC+8F,GAAsB,CAACC,WAAYv8E,EAASu8E,kBAInDh9F,cAACgR,IAAU,CAACC,QAAQ,YAAW9R,SAC7BsR,eAAA,SAAOwC,MAAO,CAACmB,MAAO,WAAWjV,SAAA,CAAC,cAE7Ba,cAAA,UAAAb,UAxCCyI,EAwCmB6Y,EAASiuE,eAxCHlyF,IAAToL,EAAqB,GAAKklC,KAAOllC,GAAMgoC,OAAO,kBAwCd,KAAG78B,IAAEC,QAAQyN,EAASkuE,YAAcl+E,eAAAgF,WAAA,CAAAtW,SAAA,CAAE,MAAGa,cAAA,UAAAb,SAASshB,EAASkuE,uBAKvHhxE,OACE3d,cAACwqL,GAAY,CACXziK,QAASA,EACTy2C,WAAW,EACXx1D,OAAQyX,EAASzX,OACjByhL,YAhDa9sK,IACR,SAAXA,GACFiiL,GACF,MAkDI5/L,cAACigG,KAAW,CAAChtF,MAAO,CAAC8V,WAAY,GAAG5pB,SAClCsR,eAACmb,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAEhoC,SAAA,CACzBa,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,gBAAgBjqB,MAAOkkB,EAAS4zE,iBAEvDr0F,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,YAAYjqB,MAAOkkB,EAAS6kK,aAEnDtlL,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,iBAAiBjqB,MAAOkkB,EAASy/E,mBAGxDlgG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,kBAAkBjqB,MAAOkkB,EAASu/E,oBAEzDhgG,cAAC4rB,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SACfa,cAACu9F,GAAa,CAAC/2E,MAAM,cAAcjqB,MA9E3BqL,KAClB,GAAKA,EAGL,OAAOklC,KAAOllC,GAAMgoC,OAAO,cAAc,EA0EW6vD,CAAWh/E,EAASu8E,gBAEhEvsF,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SAAA,CAC0B,QAAxCqjB,GAAiB/B,EAASgC,WACzBziB,cAACs+F,GAAqB,CAAC79E,SAAUA,IAEM,QAAxC+B,GAAiB/B,EAASgC,WACzBziB,cAACk/F,GAA0B,CAACz+E,SAAUA,YAM9ChQ,eAAC0+K,KAAW,CAACC,gBAAc,EAAAjwL,SAAA,GACtB6uL,GAAUhuL,cAAC08F,KAAI,CAACl2E,MAAK,GAAAnmB,OAAK2tL,EAAK,SAAS/6K,MAAO,CAACmoB,WAAY,MAE/Dp7B,cAACqmB,KAAU,CACTX,QAASA,IAAMm7E,GAAaD,GAC5B34E,SAAoB,IAAV+lK,EACV,gBAAeptF,EACf,aAAW,YACXlwF,UAAWmiB,aAAK1K,EAAQsW,OAAQ,CAC9B,CAACtW,EAAQszE,YAAamF,IACrBzhG,SAEHa,cAACqvL,KAAU,YAIjBrvL,cAACotL,GAAgB,CACf3gI,iBAAkBA,KAChBxiC,IACA41K,GAAsB,EAExBl1K,QAASk1K,EACTn1K,UAAWo1K,EACXr/K,SAAUA,OA3GI7Y,KA+GtB,EC9Fem4L,OAtEf,SAA2ChrL,GACzC,MAAM,SAAE0L,EAAQ,SAAEwJ,GAAalV,GAExBtO,EAAY24F,GAAiB3tF,wBAA6BjV,IAC1DwjM,EAAgBC,GAAqBxuL,mBAAiB,KACtDyuL,EAAmBC,GAAwB1uL,oBAAS,IACpD7P,EAAOue,GAAY1O,wBAA6BjV,IAEjD,WAAE2c,GAAeQ,KAEjB+2E,EAA2B5+E,WAC1BsuL,GAAS35L,IAId05L,GAAqB,GACrBhgL,OAAS3jB,GACT0qF,GAA2B+W,mBAAmB,CAC5Cp8B,WAAYphD,EAASohD,WACrBnuB,SAAUjzB,EAASizB,WAElB/oC,MAAMiB,IACL,MAAQC,KAAMiwC,GAASlwC,EACvB,GAAIkwC,GAAQA,EAAKl/C,KAAO,EAAG,CACzB,MACM0iG,GADa7+F,OAAOm3E,KAAOn3E,OAAOyvF,WACZrY,gBAAgB/7B,GAC5CmkJ,EAAkBrhG,GAAsBhzF,IACxCwzF,EAAcE,EAChB,MACEn/E,EAAS,sBACX,IAEDrd,OAAM,KACLqW,EAAWjW,EAAUuB,SAAS7C,MAAMqD,aAAa,IAElD4N,SAAQ,IAAMstL,GAAqB,KAAO,EAG/CrtL,qBAAU,KACR49E,GAAyB,EAAK,GAC7B,IAEH,MAAM2O,EAA2B,QAAnB2gG,EAER1wF,EAAiBA,KACrBrlF,IACAymE,GAAyB,EAAK,EAGhC,OACE1wF,cAAA,OAAAb,SACEsR,eAACmb,KAAI,CAAChb,WAAS,EAACu2B,QAAS,EAAEhoC,SAAA,CACzBsR,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SAAA,CACY,aAA1BshB,EAAS8+E,cACRv/F,cAACuuL,GAAY,CAAC9tK,SAAUA,EAAUizB,SAAUjzB,EAASizB,SACnD+Y,iBAAkB6iD,EAAgBs/E,sBAAoB,IAC/B,SAA1BnuK,EAAS8+E,cACRv/F,cAAC2/L,GAAQ,CAACl/K,SAAUA,EAAUsH,QAAS,CAAC,QAASkC,SAAUqlF,OAE/D7+F,eAACmb,KAAI,CAACG,MAAI,EAAC4K,GAAI,EAAEx3B,SAAA,CACd+gM,GAAqBlgM,cAAC02E,KAAc,IACpC90E,GAAS5B,cAACgR,IAAU,CAACoD,MAAM,QAAOjV,SAAEyC,IACpC6E,IAAe44F,GAASr/F,cAAA,OAAKiT,MAAO,CAAEI,MAAO,QAAUxC,IAAKpK,IAC5DA,GAAc44F,GAASr/F,cAACs+F,GAAqB,CAAC79E,SAAUA,WAKnE,EC5DA,MAAM4/K,GAAmB,CACvB,CAAEhmL,KAAM,gCAAiCoM,YAAa,yCACtD,CAAEpM,KAAM,4BAA6BoM,YAAa,qCAClD,CAAEpM,KAAM,wBAAyBoM,YAAa,yCAC9C,CAAEpM,KAAM,oBAAqBoM,YAAa,qCAC1C,CAAEpM,KAAM,QAASoM,YAAa,UAoMjB65K,OAjMf,WACE,MAAOt6K,EAASm0E,GAAgB1oF,oBAAS,IAClCuwD,EAAWu+H,GAAgB9uL,mBAAiC,KAE7D,WAAE0H,GAAeQ,KAEjB6mL,EAAgBA,KACpBt5G,GACGwW,sBACA/yF,MAAMkB,IACL00L,EAAa10L,GACb,MAAM40L,EAAiB,OAANt2J,QAAM,IAANA,OAAM,EAANA,EAAQ03B,WACzB,GAAI4+H,EAAU,CACZ,MAAMnwE,EAAQzkH,EAAK6Q,MAAK5R,GAAKA,EAAE+2D,aAAe4+H,IAC1CnwE,GACFowE,EAAUpwE,EAEd,KACCxtH,OAAMgI,IACPnJ,QAAQC,MAAMkJ,GACdqO,EAAW,mCAAoClB,GAAY3N,MAAM,IAChEuI,SAAQ,IAAMsnF,GAAa,IAAO,EAGzCrnF,qBAAU,KACR0tL,GAAe,GACd,IAEH,MAAOr2J,EAAQu2J,GAAajvL,wBAA2CjV,GAEjEm+E,EAAUvpE,IAAMsI,SACpB,IAAM,CACJ,CACE4d,OAAQ,KACRytD,SAAU,aACV1xE,MAAO,MACP4xE,KAAM/lF,IAAA,IAAC,IAAC89E,GAAS99E,EAAA,OAAKc,cAAA,OAAKF,MAAOk9E,EAAImI,SAAStjB,WAAW1iE,SAAE69E,EAAImI,SAAStjB,YAAiB,GAE5F,CACEvqC,OAAQ,OACRytD,SAAU,gBAEZ,CACEztD,OAAQ,OACR2tD,KAAMtvE,IAAA,IAAAgrL,EAAAhP,EAAA,IAAC,IAAE30G,GAAUrnE,EAAA,SAAAtV,OAA8B,QAA9BsgM,EAAQ3jH,EAAImI,SAAS5yE,iBAAS,IAAAouL,IAAI,GAAE,KAAAtgM,OAAyB,QAAzBsxL,EAAI30G,EAAImI,SAAS7yE,gBAAQ,IAAAq/K,IAAI,GAAE,GAExF,CACEr6J,OAAQ,kBACRytD,SAAU,iBACVE,KAAMvF,IAAA,IAAC,IAAE1C,GAAU0C,EAAA,OAAKjvE,eAACqI,KAAG,CAAC5F,QAAQ,OAAOC,WAAW,SAASsyJ,QAAS,EAAEtmK,SAAA,CACzEa,cAAC+/F,KAAgB,CAAC9gB,KAAG,EACnB0gB,YAAa3iB,EAAImI,SAAS6a,kBAAoBhjB,EAAImI,SAAS+a,iBACzD,GAER,CACE5oE,OAAQ,gBACRytD,SAAU,YACVE,KAAMyQ,IAAA,IAAC,IAAE1Y,GAAU0Y,EAAA,OAAK5oD,KAAOkwC,EAAImI,SAASuJ,WAAW9+C,OAAO,mBAAmB,GAEnF,CACEtY,OAAQ,GACRytD,SAAU,YACVC,eAAe,EACfC,KAAM4Q,IAAA,IAAC,IAAE7Y,GAAU6Y,EAAA,OACjB71F,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOg0B,eAAe,WAAW/zB,WAAW,SAAQhU,SAC/Da,cAACy1F,KAAU,CACT/vE,QAASA,KACPg7K,EAAU,IAAK1jH,EAAImI,UAAmC,EACtDhmF,SAEFa,cAAC0hC,KAAI,CAACttB,MAAM,UAASjV,SAAC,gBAEpB,KAIZ,KAcKyhM,EAAkBC,GAAuBpvL,oBAAS,IAClDqvL,EAAeC,GAAoBtvL,wBAA6BjV,IAChEwkM,EAAiBC,GAAsBxvL,wBAA6BjV,GA2B3E,OACEiU,eAACwoE,GAAW,CAACn5E,MAAM,gCAA+BX,SAAA,CAChDa,cAAC8Y,KAAG,CAAC5F,QAAQ,OAAOc,cAAc,SAASyxJ,QAAS,EAAEtmK,SACpDa,cAAC6zE,GAAK,CACJ8G,QAASA,EACT9uE,KAAMm2D,EACN8Y,OAAK,EACLxK,MAAI,EACJtqD,QAASA,MAGbvV,eAACu7B,KAAM,CAACrlB,WAAW,EAAMnW,SAAS,KAAKoI,UAAiBpc,IAAX2tC,EAC3Cxf,QAASA,IAAM+1K,OAAUlkM,GAAW2C,SAAA,CACpCsR,eAAC+7B,KAAW,CAAArtC,SAAA,CAAQ,OAANgrC,QAAM,IAANA,OAAM,EAANA,EAAQo1D,aAAa,cAEnCv/F,cAACusC,KAAa,CAAAptC,SACXgrC,GACCnqC,cAAC+/L,GAAiC,CAACt/K,SAAU0pB,EAAQlgB,SAAUu2K,MAEnE/vL,eAAC07B,KAAa,CAAAhtC,SAAA,CACZa,cAAC2lB,KAAM,CAAC/oB,KAAK,QAAQwX,MAAM,YACzBsR,QAASA,KA7CjBm7K,GAAoB,EA6CoB,EAAA1hM,SAAC,WACnCa,cAAC2lB,KAAM,CAAC/oB,KAAK,QAAQwX,MAAM,UAAUnD,QAAS,YAC5CyU,QAASA,IA/DFjF,KACVA,GACLymE,GAA2ByW,gBAAgBl9E,EAASohD,YACjDl3D,MAAK,KACJ61L,IACArnL,EAAW,oCAAqClB,GAAYE,SAC5DuoL,OAAUlkM,EAAU,IAErBsG,OAAM,IAAMqW,EAAW,yCAA0ClB,GAAY3N,QAAO,EAuDhEqqC,CAAQxK,GAAQhrC,SAAC,kBAItCsR,eAACu7B,KAAM,CAACpzB,KAAMgoL,EACZj2K,QAASA,IAAMk2K,GAAoB,GAAO1hM,SAAA,CAC1Ca,cAACwsC,KAAW,CAAArtC,SACVa,cAACgR,IAAU,CAACC,QAAQ,KAAI9R,SAAC,qCAE3BsR,eAAC87B,KAAa,CAAAptC,SAAA,CACZa,cAAC0oF,KAAU,CAACz+D,SAAUnf,IACpB,MAAMuP,EAAOvP,EAAEq/J,cAAc5tK,MACvB2kM,EAAKb,GAAiB3jL,MAAK5R,GAAKA,EAAEuP,OAASA,IACjD0mL,EAAiB1mL,GAEf4mL,EADW,UAAT5mL,EACiB,GAEE,OAAF6mL,QAAE,IAAFA,OAAE,EAAFA,EAAIz6K,YACzB,EACAtnB,SACCkhM,GAAiB3qL,KAAI5K,GACpB9K,cAACwhF,KAAgB,CAAcjlF,MAAOuO,EAAEuP,KACtCmM,MAAO1b,EAAE2b,YAAaK,QAAS9mB,cAAC2oF,KAAK,KADhB79E,EAAEuP,UAKV,UAAlBymL,GACC9gM,cAACmnB,GAAS,CACR6E,WAAY,CAAEC,UAAW,KACzB7tB,KAAK,SACLvB,KAAK,OACLuW,OAAO,SACPnC,QAAQ,WACRmD,MAAM,UACNuS,WAAS,EACThf,YAAY,wBACZsiB,SAAUnf,GAAKm2L,EAAmBn2L,EAAEq/J,cAAc5tK,MAAM+wC,aAI9D78B,eAAC07B,KAAa,CAAAhtC,SAAA,CACZa,cAAC2lB,KAAM,CAAC/oB,KAAK,QAAQ8oB,QAASA,IAAMm7K,GAAoB,GAAO1hM,SAAC,WAChEa,cAAC2lB,KAAM,CAAC/oB,KAAK,QAAQwX,MAAM,YAAYnD,QAAS,YAC9CyU,QAASA,IAvFHjF,KACTA,IAEAugL,IAAmBjuL,IAAEC,QAAQguL,IAKlCH,GAAoB,GAEpB35G,GAA2B0W,eAAen9E,EAASohD,WAAYm/H,GAC5Dr2L,MAAK,KACJ61L,IACArnL,EAAW,oCAAqClB,GAAYE,SAC5DuoL,OAAUlkM,GACVukM,OAAiBvkM,EAAU,IAG5BsG,OAAM,IAAMqW,EAAW,0CAA2ClB,GAAY3N,UAd/E6O,EAAW,yCAc2E,EAqEjEjX,CAAOioC,GACtBliB,SAAUlV,IAAEC,QAAQguL,GAAiB7hM,SAAC,mBAKlD,ECoQegiM,OAxZa,CAC1B,CACEvrL,KAAM,iBACNxX,KAAM,iBACNyX,OAAO,EACPC,UACE9V,cAACusD,GAAqB,CAAAptD,SACpBa,cAACk3L,GAAiB,MAGtBxiL,WAAYqZ,GAAgBa,sBAE9B,CACEhZ,KAAM,gBACNxX,KAAM,eACNyX,OAAO,EACPC,UACE9V,cAACo9D,GAAmB,CAAAj+D,SAClBa,cAACgtK,GAAmB,MAGxBt4J,WAAYqZ,GAAgBiC,mCAG9B,CACEpa,KAAM,0BACNxX,KAAM,oBACNyX,OAAO,EACPC,UACE9V,cAACsrD,GAAwB,CAAAnsD,SACvBa,cAACy/L,GAAc,MAGnB/qL,WAAYqZ,GAAgBiC,mCAE9B,CACEpa,KAAM,yBACNxX,KAAM,aACNyX,OAAO,EACPC,UAAW9V,cAACs3L,GAAa,IACzB5iL,WAAYqZ,GAAgBqB,sCAE9B,CACExZ,KAAM,wBACNxX,KAAM,qBACNyX,OAAO,EACPC,UAAW9V,cAAC0/L,GAAqB,IACjChrL,WAAYqZ,GAAgBmB,wCAE9B,CACEtZ,KAAM,sBACNxX,KAAM,qBACNyX,OAAO,EACPC,UACE9V,cAAC8rE,GAAyB,CAAA3sE,SACxBa,cAACg6K,GAAqB,MAG1BtlK,WAAYqZ,GAAgBO,kCAE9B,CACE1Y,KAAM,aACNxX,KAAM,aACNyX,OAAO,EACPC,UAAW9V,cAACojL,GAAa,IACzB1uK,WAAYqZ,GAAgB0B,gCAE9B,CACE7Z,KAAM,eACNxX,KAAM,aACNyX,OAAO,EACPC,UAAW9V,cAAC+2L,GAAe,IAC3BriL,WAAYqZ,GAAgB0B,gCAE9B,CACE7Z,KAAM,oBACNxX,KAAM,mBACNyX,OAAO,EACPC,UAAW9V,cAACqyK,GAAmB,IAC/B39J,WAAYqZ,GAAgBQ,gCAE9B,CACE3Y,KAAM,gCACNxX,KAAM,oBACNyX,OAAO,EACPC,UAAW9V,cAACsgM,GAA+B,IAC3C5rL,WAAYqZ,GAAgBE,oCAE9B,CACErY,KAAM,eACNxX,KAAM,0BACNyX,OAAO,EACPC,UACE9V,cAACusD,GAAqB,CAACC,aAAa,EAAKrtD,SACvCa,cAAC22L,GAA0B,MAG/BjiL,WAAYqZ,GAAgB0B,gCAE9B,CACE7Z,KAAM,+BACNxX,KAAM,aACNyX,OAAO,EACPC,UAAW9V,cAAC22G,GAAqB,IACjCjiG,WAAYqZ,GAAgB4B,mCAE9B,CACE/Z,KAAM,oBACNxX,KAAM,kBACNyX,OAAO,EACPC,UACE9V,cAACgxE,GAAgB,CAAA7xE,SACfa,cAACg4K,GAAY,MAGjBtjK,WAAYqZ,GAAgBI,+BAE9B,CACEvY,KAAM,iBACNxX,KAAM,qBACNyX,OAAO,EACPC,UAAW9V,cAAC0iL,GAAQ,IACpBhuK,WAAYqZ,GAAgBK,kCAE9B,CACExY,KAAM,0BACNxX,KAAM,kBACNyX,OAAO,EACPC,UAAW9V,cAACo4K,GAAkB,IAC9B1jK,WAAYqZ,GAAgBI,+BAE9B,CACEvY,KAAM,qBACNxX,KAAM,YACNyX,OAAO,EACPC,UACE9V,cAAC8yE,GAAe,CAAA3zE,SACda,cAACi7K,GAAO,MAGZvmK,WAAYqZ,GAAgBU,yBAE9B,CACE7Y,KAAM,sBACNxX,KAAM,aACNyX,OAAO,EACPC,UACE9V,cAACmnD,GAAgB,CAAAhoD,SACfa,cAAC64K,GAAY,MAGjBnkK,WAAYqZ,GAAgBW,0BAE9B,CACE9Y,KAAM,mBACNxX,KAAM,kBACNyX,OAAO,EACPC,UACE9V,cAACkvE,GAA0B,CAAA/vE,SACzBa,cAAC46K,GAAkB,MAGvBlmK,WAAYqZ,GAAgBS,+BAE9B,CACE5Y,KAAM,oBACNxX,KAAM,uBACNyX,OAAO,EACPC,UACE9V,cAACiyE,GAA0B,CAAA9yE,SACzBa,cAAC8iL,GAAsB,MAG3BpuK,WAAYqZ,GAAgBY,oCAE9B,CACE/Y,KAAM,wBACNxX,KAAM,uBACNyX,OAAO,EACPC,UAAW9V,cAACmxK,GAAuB,IACnCz8J,WAAYqZ,GAAgBG,oCAE9B,CACEtY,KAAM,kBACNxX,KAAM,0BACNyX,OAAO,EACPC,UACE9V,cAACixC,GAAW,CAAA9xC,SACVa,cAAC26F,GAAO,MAGZjmF,WAAYqZ,GAAgB8C,sBAE9B,CACEjb,KAAM,yCACNxX,KAAM,iBACNyX,OAAO,EACPC,UACE9V,cAACgyD,GAAqB,CAAA7yD,SACpBa,cAACskG,GAAiB,MAGtB5vF,WAAYqZ,GAAgBgD,gCAE9B,CACEnb,KAAM,+CACNxX,KAAM,uBACNyX,OAAO,EACPC,UACE9V,cAACgyD,GAAqB,CAAA7yD,SACpBa,cAAC8pG,GAAsB,MAG3Bp1F,WAAYqZ,GAAgBiD,qCAE9B,CACEpb,KAAM,oBACNxX,KAAM,YACNyX,OAAO,EACPC,UACE9V,cAACsqE,GAAgB,CAAAnrE,SACfa,cAACi3F,GAAY,MAGjBviF,WAAYqZ,GAAgB2C,2BAE9B,CACE9a,KAAM,2BACNxX,KAAM,gBACNyX,OAAO,EACPC,UACE9V,cAACsqE,GAAgB,CAAAnrE,SACfa,cAAC6pG,GAAgB,MAGrBn1F,WAAYqZ,GAAgBoE,+BAG9B,CACEvc,KAAM,sBACNxX,KAAM,gBACNyX,OAAO,EACPC,UAAW9V,cAAC0oG,GAAgB,IAC5Bh0F,WAAYqZ,GAAgBmD,+BAE9B,CACEtb,KAAM,sBACNxX,KAAM,eACNyX,OAAO,EACPC,UACE9V,cAAC6tE,GAAgB,CAAA1uE,SACfa,cAACopG,GAAe,MAGpB10F,WAAYqZ,GAAgB+C,2BAE9B,CACElb,KAAM,0BACNxX,KAAM,eACNyX,OAAO,EACPC,UACE9V,cAAC82C,GAAmB,CAAA33C,SAClBa,cAAC02G,GAAe,MAGpBhiG,WAAYqZ,GAAgB2C,2BAE9B,CACE9a,KAAM,6BACNxX,KAAM,qBACNyX,OAAO,EACPC,UACE9V,cAAC+9C,GAAwB,CAAA5+C,SACvBa,cAAC4kF,GAAoB,MAGzBlwE,WAAYqZ,GAAgBoD,0BAE9B,CACEvb,KAAM,2BACNxX,KAAM,kBACNyX,OAAO,EACPC,UACE9V,cAAC4gD,GAAsB,CAAAzhD,SACrBa,cAACmqF,GAAkB,MAGvBz1E,WAAYqZ,GAAgBqD,wBAE9B,CACExb,KAAM,2BACNxX,KAAM,kBACNyX,OAAO,EACPC,UAAW9V,cAACulF,GAAkB,IAC9B7wE,WAAYqZ,GAAgBsD,wBAE9B,CACEzb,KAAM,2BACNxX,KAAM,kBACNyX,OAAO,EACPC,UAAW9V,cAACqnF,GAAkB,IAC9B3yE,WAAYqZ,GAAgBuD,wBAE9B,CACE1b,KAAM,0BACNxX,KAAM,iBACNyX,OAAO,EACPC,UACE9V,cAACg6C,GAAqB,CAAA76C,SACpBa,cAACq5E,GAAiB,MAGtB3kE,WAAYqZ,GAAgBwD,uBAE9B,CACE3b,KAAM,qBACNxX,KAAM,WACNyX,OAAO,EACPC,UACE9V,cAACs/C,GAAgB,CAAAngD,SACfa,cAACinF,GAAY,MAGjBvyE,WAAYqZ,GAAgByD,kBAE9B,CACE5b,KAAM,iBACNxX,KAAM,gBACNyX,OAAO,EACPC,UACI9V,cAAC8tF,GAAgB,IAErBp5E,WAAYqZ,GAAgB0D,wBAE9B,CACE7b,KAAM,0BACNxX,KAAM,2BACNyX,OAAO,EACPC,UAAW9V,cAACkjL,GAA0B,KAExC,CACEttK,KAAM,QACNxX,KAAM,OACNyX,OAAO,EACPC,UACE9V,cAACmnD,GAAgB,CAAAhoD,SACfa,cAACu3G,GAAQ,OAIf,CACE3hG,KAAM,mBACNxX,KAAM,YACNyX,OAAO,EACPC,UAAW9V,cAACi5G,GAAY,IACxBvkG,WAAYqZ,GAAgB4D,0BAE9B,CACE/b,KAAM,2BACNxX,KAAM,qBACNyX,OAAO,EACPC,UAAW9V,cAACyjH,GAAoB,IAChC/uG,WAAYqZ,GAAgBmE,kCAE9B,CACEtc,KAAM,yBACNxX,KAAM,eACNyX,OAAO,EACPC,UAAW9V,cAACmhH,GAAe,IAC3BzsG,WAAYqZ,GAAgB8D,6BAE9B,CACEjc,KAAM,6BACNxX,KAAM,oBACNyX,OAAO,EACPC,UAAW9V,cAAC07G,GAAyB,IACrChnG,WAAYqZ,GAAgB6D,iCAE9B,CACEhc,KAAM,sBACNxX,KAAM,qBACNyX,OAAO,EACPC,UAAW9V,cAACu6G,GAA2B,IACvC7lG,WAAYqZ,GAAgBiE,mCAE9B,CACEpc,KAAM,uBACNxX,KAAM,oBACNyX,OAAO,EACPC,UAAW9V,cAACmiH,GAAoB,IAChCztG,WAAYqZ,GAAgBgE,kCAE9B,CACEnc,KAAM,0BACNxX,KAAM,eACNyX,OAAO,EACPC,UAAW9V,cAACs+G,GAAgB,IAC5B5pG,WAAYqZ,GAAgB+D,8BAE9B,CACElc,KAAM,yBACNxX,KAAM,kBACNyX,OAAO,EACPC,UAAW9V,cAAC8iH,GAAqB,IACjCpuG,WAAYqZ,GAAgB+D,+BClehC,MAAMsvK,GAAoB,Y,uBCE1B,MAAMC,GAAW,aACXC,GAAkB,aAwCxB,SAASC,GAAgBC,GACvB7/L,QAAQ0wI,KAAK,yBAA0BmvD,GAtCnC,WAAY/gM,QACdghM,OAAOjjM,OAAOmM,MAAKG,GAAKA,EAAElN,SAAQ8jM,GAAaD,OAAOlzL,OAAOmzL,OAE/DjhM,OAAOC,SAASihM,SAqChBC,GAAiBJ,EACnB,CAOA,SAASI,GAAiBJ,GACxB7iL,aAAaW,QAAQgiL,GAAiBE,EACxC,CA4BeK,OA1Bf,WA1BuB/vL,WACrB,IACE,MAAMlG,QAAiBk2L,MAAMT,GAAU,CAACzgM,MAAO,aAE/C,aADmBgL,EAASm2L,QAChBP,OACd,CAAE,MAAO5/L,GACPD,QAAQC,MAAM,kCAAmCA,EACnD,CACgB,EAmBhBogM,GACGr3L,MAAMs3L,IACL,IAAKA,GAAelvL,IAAEC,QAAQivL,GAE5B,YADAtgM,QAAQ0wI,KAAK,MAADhyI,OAAOghM,GAAQ,mBAG7B,MAAMa,EAfGvjL,aAAaC,QAAQ0iL,IAgB9B,IAAKY,GAAiBnvL,IAAEC,QAAQkvL,GAG9B,OAFAvgM,QAAQ0wI,KAAK,gCACbuvD,GAAiBK,GAInBtgM,QAAQ4W,KAAK,GAADlY,OAAIghM,GAAQ,cAAcY,GACtCtgM,QAAQ4W,KAAK,mBAAoB2pL,IA5DvC,SAA8BC,EAAkBC,GAC9C,MAAMC,EAAmBF,EAASn+K,MAAM,KAAKtO,IAAI4uB,QAC3Cg+J,EAAmBF,EAASp+K,MAAM,KAAKtO,IAAI4uB,QAEjD,IAAK,IAAInuB,EAAI,EAAGA,EAAIksL,EAAO1kM,OAAQwY,IAAK,CACtC,MAAMosL,EAAOF,EAAOlsL,GACdqsL,EAAOF,EAAOnsL,IAAM,EAE1B,GAAIosL,EAAOC,EACT,OAAO,EACF,GAAID,EAAOC,EAChB,OAAO,CAEX,CAGA,OAAO,CACT,EA6CkCC,CAAqBR,EAAaC,IAErCX,GAAgBU,EAAY,IAEtDn/L,OAAOgI,IACNnJ,QAAQC,MAAM,mCAAoCkJ,EAAE,GAE1D,ECvBe43L,OApCOA,KACpB,MAAMrzG,EFjBC5uF,OAAOkiM,eAAe/jL,QAAQwiL,IE4BrC,M/nB2D4BwB,MAC5B,MAAM,OAACtjM,GAAUP,IAEX8jM,EAAa,CAAC,iBACdC,EAAoBA,CAAChlM,EAAavB,IACtCsmM,EAAW7tL,SAASlX,QAAOtB,EAAYD,EAEnCwmM,EAAkBxmM,GACtB2N,KAAK8H,UAAUzV,EAAOumM,EAAmB,GACrCE,EAAazjM,uBAAa6C,IAC9B9C,EAAO,YAADe,OAAa0iM,EAAe3gM,IAAW,GAC5C,IACG6gM,EAAc1jM,uBAAaqM,IAC/BtM,EAAO,aAADe,OAAc0iM,EAAen3L,IAAY,GAC9C,IACGs3L,EAAW3jM,uBAAaqC,IAC5BtC,EAAO,UAADe,OAAW0iM,EAAenhM,IAAS,GACxC,IAEG4I,EAAekP,mBACnB,MACEtX,QAAUA,IAAkB4gM,EAAW5gM,GAAUA,GACjDwJ,SAAWA,IAAmBq3L,EAAYr3L,GAAWA,GACrDhK,MAAQA,IAAgBshM,EAASthM,GAAQK,QAAQC,OAAON,OAE1D,CAACohM,EAAYC,EAAaC,IAG5BpwL,qBAAU,KAER,MAAMqwL,EAAiBz5L,EAASc,aAAapI,QAAQqI,IACnDD,EAAapI,QACboI,EAAa5I,OAGTwhM,EAAiB15L,EAASc,aAAaoB,SAASnB,IACpDD,EAAaoB,SACbpB,EAAa5I,OAEf,MAAO,KAEL8H,EAASc,aAAapI,QAAQihM,MAAMF,GACpCz5L,EAASc,aAAaoB,SAASy3L,MAAMD,EAAe,CACrD,GACA,CAAC54L,GAAc,E+nBjHlBo4L,GniBmEoCU,MACpC,MAAM,OAAChkM,GAAUP,IAEX8jM,EAAa,CAAC,iBACdC,EAAoBA,CAAChlM,EAAavB,IACtCsmM,EAAW7tL,SAASlX,QAAOtB,EAAYD,EAEnCwmM,EAAkBxmM,GACtB2N,KAAK8H,UAAUzV,EAAOumM,EAAmB,GACrCE,EAAazjM,uBAAa6C,IAC9B9C,EAAO,YAADe,OAAa0iM,EAAe3gM,IAAW,GAC5C,IACG6gM,EAAc1jM,uBAAaqM,IAC/BtM,EAAO,aAADe,OAAc0iM,EAAen3L,IAAY,GAC9C,IACGs3L,EAAW3jM,uBAAaqC,IAC5BtC,EAAO,UAADe,OAAW0iM,EAAenhM,IAAS,GACxC,IAEG4I,EAAekP,mBACnB,MACEtX,QAAUA,IAAkB4gM,EAAW5gM,GAAUA,GACjDwJ,SAAWA,IAAmBq3L,EAAYr3L,GAAWA,GACrDhK,MAAQA,IAAgBshM,EAASthM,GAAQK,QAAQC,OAAON,OAE1D,CAACohM,EAAYC,EAAaC,IAG5BpwL,qBAAU,KAER,MAAMqwL,EAAiB9qJ,GAAiB7tC,aAAapI,QAAQqI,IAC3DD,EAAapI,QACboI,EAAa5I,OAGTwhM,EAAiB/qJ,GAAiB7tC,aAAaoB,SAASnB,IAC5DD,EAAaoB,SACbpB,EAAa5I,OAEf,MAAO,KAELy2C,GAAiB7tC,aAAapI,QAAQihM,MAAMF,GAC5C9qJ,GAAiB7tC,aAAaoB,SAASy3L,MAAMD,EAAe,CAC7D,GACA,CAAC54L,GAAc,EmiB9GlB84L,GAEAxwL,qBAAU,KAAQ+uL,IAAc,GAAK,IAErC0B,aAAsBC,KAAgBvuL,SAAU,CAC9CwuL,OAAQ,iBACRv4L,UAAWnK,EAAsB2B,cAAcJ,gBAI/CtC,cAAC0jM,KAAqB,CAAAvkM,SACpBa,cAACsR,EAAmB,CAAAnS,SAClBa,cAAC+b,GAAwB,IAAKR,GAA4Bpc,SACxDa,cAACif,GAAoB,CAAA9f,SACnBa,cAAC2f,GAAgB,CAAAxgB,SACfsR,eAACkzL,IAAM,CAAAxkM,SAAA,CACJkwF,GAAervF,cAACiV,IAAQ,CAACC,GAAIm6E,IAC9B5+E,eAAC4wF,IAAM,CAAAliG,SAAA,CACLa,cAAC8U,IAAK,CAACe,OAAK,EAACD,KAAK,aAAaE,UAAWxF,IAC1CG,eAACoyB,GAAM,CAAA1jC,SAAA,CACLa,cAAC8U,IAAK,CAACe,OAAK,EAACD,KAAK,IAAIjB,OAAQA,IAAM3U,cAAC0tC,GAAQ,MAC7C1tC,cAACmV,EAAM,CAACG,MAAO6rL,GAAW3rL,YAAY,sBAQ9B,ECzCbouL,OAZUC,IACnBA,GAAeA,aAAuB72E,UACxC,+BAAqBriH,MAAKzL,IAAkD,IAAjD,OAAE4kM,EAAM,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,QAAEC,GAAShlM,EACpE4kM,EAAOD,GACPE,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAQL,EAAY,GAExB,E,SCKF,MACMM,GADcpjM,EAAsB2B,cACTxB,QAcjC,MAAMkjM,GAAWD,GAAariM,iBAC1BsiM,GAASzmM,OAAS,GACpBwmM,GAAaE,iBAAiBD,GAAS,IAGzCD,GAAaG,kBAAkBjnL,IAC7B,GAAIA,EAAMknL,YAAcC,KAAUC,eAAiBpnL,EAAMa,QAAS,CAChE,MACM5c,EADU+b,EAAMa,QACE5c,QACxB6iM,GAAaE,iBAAiB/iM,EAChC,KAGF2qC,IAASt3B,OACP3U,cAAC0kM,KAAY,CAACh7L,SAAUy6L,GAAahlM,SACjCa,cAACf,EAAqB,CAAAE,SACpBa,cAAC0iM,GAAG,QAGVjiL,SAASkkL,eAAe,SA9BpB,kBAAmBC,WACrBA,UAAUC,cAAcC,MACrBn6L,MAAMo6L,IACLA,EAAa1uE,YAAY,IAE1BvzH,OAAOlB,IACND,QAAQC,MAAMA,EAAMpC,QAAQ,IAiCpCokM,I,qBC1DAxnM,EAAOC,QAAU,CAAC,cAAgB,8CAA8C,UAAY,0C,qBCA5FD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,QAAU,0BAA0B,KAAO,uBAAuB,SAAW,2BAA2B,UAAY,4BAA4B,QAAU,0BAA0B,IAAM,sBAAsB,wBAA0B,0C,qBCA1wBD,EAAOC,QAAU,CAAC,aAAe,OAAO,QAAU,MAAM,aAAe,IAAI,aAAe,MAAM,aAAe,MAAM,aAAe,OAAO,aAAe,OAAO,aAAe,UAAU,eAAiB,UAAU,aAAe,OAAO,uBAAyB,OAAO,yBAA2B,UAAU,sBAAwB,UAAU,iBAAmB,kBAAkB,aAAe,UAAU,WAAa,UAAU,aAAe,UAAU,UAAY,UAAU,eAAiB,OAAO,gBAAkB,UAAU,YAAc,QAAQ,UAAY,yCAAyC,aAAe,4CAA4C,oBAAsB,mDAAmD,WAAa,0C","file":"static/js/main.b5aa8289.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"alternateRow\":\"TaskGrid_alternateRow__2ZXSo\",\"row\":\"TaskGrid_row__3S8_T\",\"iconButton\":\"TaskGrid_iconButton__1FsAq\",\"billingLabel\":\"TaskGrid_billingLabel__16ZG3\",\"vAligh\":\"TaskGrid_vAligh__3-OAt\",\"deleteIcon\":\"TaskGrid_deleteIcon__1wy3P\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"contactLocationDetails\":\"Steps_contactLocationDetails__1DfIi\",\"vAligh\":\"Steps_vAligh__vSGtx\",\"deleteIcon\":\"Steps_deleteIcon__nEQjh\",\"contactInformationAccordion\":\"Steps_contactInformationAccordion__3G_iW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"clickable\":\"Table_clickable__241f7\",\"show\":\"Table_show__2ZDZH\",\"number\":\"Table_number__1H9ZJ\",\"fixed\":\"Table_fixed__1dONA\",\"formControl\":\"Table_formControl__3d_bf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"stepButton\":\"Stepper_stepButton__7FIgo\",\"stepIcon\":\"Stepper_stepIcon__3ggTN\",\"stepIconActive\":\"Stepper_stepIconActive__2ObHt\",\"badge\":\"Stepper_badge__3qUoH\",\"mobileStepper\":\"Stepper_mobileStepper__1Os_w\",\"stepTitle\":\"Stepper_stepTitle__11ISn\",\"stepNumber\":\"Stepper_stepNumber__2IV0m\",\"arrow\":\"Stepper_arrow__2aK4E\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"listItem\":\"SideMenuItem_listItem__3AviB\",\"link\":\"SideMenuItem_link__2ONDj\",\"childLink\":\"SideMenuItem_childLink__38UvD\",\"activeLink\":\"SideMenuItem_activeLink__Hw-_y\",\"parentActiveLink\":\"SideMenuItem_parentActiveLink__3022z\",\"isActiveLinkGroup\":\"SideMenuItem_isActiveLinkGroup__1FHqN\",\"listItemButton\":\"SideMenuItem_listItemButton___su4Y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"DrawerTitle\":\"Drawer_DrawerTitle__12D0Z\",\"centered\":\"Drawer_centered__29h26\",\"DrawerContent\":\"Drawer_DrawerContent__1EQpN\",\"DrawerActions\":\"Drawer_DrawerActions__1n5X6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"root\":\"ReservationList_root__mUJol\",\"unstyled\":\"ReservationList_unstyled__33LT4\",\"reservationDateLabel\":\"ReservationList_reservationDateLabel__2FJzL\",\"reservationDate\":\"ReservationList_reservationDate__1TOfj\",\"summary\":\"ReservationList_summary__1coR9\",\"serviceChip\":\"ReservationList_serviceChip__1cSUi\",\"divider\":\"ReservationList_divider__2rzP3\",\"status\":\"ReservationList_status__1-2RK\",\"desktopButtonsBox\":\"ReservationList_desktopButtonsBox__2O3tt\",\"roundedIconButton\":\"ReservationList_roundedIconButton__3e9-3\",\"noReservationFound\":\"ReservationList_noReservationFound__3yhTP\",\"noReservationMessage\":\"ReservationList_noReservationMessage__2RQOR\",\"armAlertText\":\"ReservationList_armAlertText__1Pzpg\",\"armAlertContainer\":\"ReservationList_armAlertContainer__1hfuJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"error\":\"Snackbar_error__3Mbh1\",\"success\":\"Snackbar_success__2w6fL\",\"warning\":\"Snackbar_warning__24vpp\",\"info\":\"Snackbar_info__2pJqk\",\"content\":\"Snackbar_content__-f3yX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"root\":\"Layout_root__28PT1\",\"backgroundImage\":\"Layout_backgroundImage__25rlA\",\"backgroundImageHome\":\"Layout_backgroundImageHome__3ly6L\",\"rootHome\":\"Layout_rootHome__34YIp\",\"container\":\"Layout_container__2dk-C\",\"containerHome\":\"Layout_containerHome__31y7r\",\"containerTraveler\":\"Layout_containerTraveler__1at_l\",\"containerHomeTraveler\":\"Layout_containerHomeTraveler__2F8bv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"content\":\"PageContent_content__2p_hA\",\"title\":\"PageContent_title__3FkeL\",\"header\":\"PageContent_header__1yMaY\",\"cvFlightActive\":\"PageContent_cvFlightActive__10Zis\",\"withHeader\":\"PageContent_withHeader__u3NwR\",\"withoutHeader\":\"PageContent_withoutHeader__3U39f\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"header\":\"CateringDutyQuantity_header__2nJo7\",\"category\":\"CateringDutyQuantity_category__3UEY7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"gridContainer\":\"ARMTab_gridContainer__23jI-\",\"gridSection\":\"ARMTab_gridSection__1nhQr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"hr\":\"PassengerListPage_hr__1sESg\",\"armAlertText\":\"PassengerListPage_armAlertText__Gr_Hu\",\"armAlertLeftPadding\":\"PassengerListPage_armAlertLeftPadding__290VF\",\"armAlertContainer\":\"PassengerListPage_armAlertContainer__3w19u\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"emergencyCardForm\":\"EmergencyContactCard_emergencyCardForm__vaUIx\",\"accordionRoots\":\"EmergencyContactCard_accordionRoots__1QuEI\",\"notExpanded\":\"EmergencyContactCard_notExpanded__1usv8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"table\":\"CateringOrderCard_table__dTZTF\",\"sectionTd\":\"CateringOrderCard_sectionTd__3BEiE\",\"headerSector\":\"CateringOrderCard_headerSector__2WBI6\",\"header\":\"CateringOrderCard_header__3QfWe\",\"cell\":\"CateringOrderCard_cell__o8vfV\",\"acceptButton\":\"CateringOrderCard_acceptButton__3ZYCT\",\"acceptedButton\":\"CateringOrderCard_acceptedButton__2u2QA\",\"acceptRedButton\":\"CateringOrderCard_acceptRedButton__3_Ryw\",\"acceptOrangeButton\":\"CateringOrderCard_acceptOrangeButton__2ScX2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"downloadAttachmentButton\":\"FileDownloadButton_downloadAttachmentButton__3XSW7\",\"container\":\"FileDownloadButton_container__1gh9h\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"content\":\"Content_content__3I7m4\",\"fullWidth\":\"Content_fullWidth__2_BO7\",\"drawerOpen\":\"Content_drawerOpen__CFl_G\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"leg\":\"UpliftStationRouting_leg__1nYPc\",\"isPermanent\":\"UpliftStationRouting_isPermanent__1kTIC\",\"isCateringForThisFlight\":\"UpliftStationRouting_isCateringForThisFlight__1EAXW\",\"isStaticCatering\":\"UpliftStationRouting_isStaticCatering__2TVsD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"notApplicable\":\"BlockFlightSearchTab_notApplicable__3qhlz\",\"blockedRouting\":\"BlockFlightSearchTab_blockedRouting__1uFEt\",\"alternateRow\":\"BlockFlightSearchTab_alternateRow__1rG4y\",\"normalRow\":\"BlockFlightSearchTab_normalRow__3lWUF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"history\":\"AgentForm_history__217Sc\",\"agentAccordion\":\"AgentForm_agentAccordion__2eMTu\",\"historyTitle\":\"AgentForm_historyTitle__1zf1E\",\"historyExpand\":\"AgentForm_historyExpand__1ruGE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"ETicketTemplatePage_title__3_58T\",\"itemIcon\":\"ETicketTemplatePage_itemIcon__ocThU\",\"templateTitle\":\"ETicketTemplatePage_templateTitle__2fljT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AlignIconButton\":\"GuestListPage_AlignIconButton__44V-t\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"marginTop\":\"MemberAccessForm_marginTop__3OTOh\",\"noMarginBottom\":\"MemberAccessForm_noMarginBottom__3_fVV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"inline\":\"styles_inline__3pxYZ\",\"flex\":\"styles_flex__3IUhO\",\"block\":\"styles_block__3ejv2\",\"badge\":\"styles_badge__xCauB\",\"gridContainerDrawer\":\"styles_gridContainerDrawer__1otyD\",\"gridContainerPage\":\"styles_gridContainerPage__t3tGa\",\"formContainer\":\"styles_formContainer__1u_Oj\",\"label\":\"styles_label__22CrJ\",\"data\":\"styles_data__3xqQm\",\"inputNumber\":\"styles_inputNumber__2htZg\",\"marginBottomX3\":\"styles_marginBottomX3__1HHEK\",\"buttonTernaryContained\":\"styles_buttonTernaryContained__30-_H\",\"buttonRoleEditRemoveContained\":\"styles_buttonRoleEditRemoveContained__aH0JW\",\"buttonTernaryOutlined\":\"styles_buttonTernaryOutlined__27h23\",\"fullWidth\":\"styles_fullWidth__1J4AM\",\"card\":\"styles_card__3l1WW\",\"summary\":\"styles_summary__wZGck\",\"summaryContent\":\"styles_summaryContent__3kDzA\",\"ellipsis\":\"styles_ellipsis__KxWaR\",\"hidden\":\"styles_hidden__1IU5X\",\"invisible\":\"styles_invisible__2X-Qw\",\"checkboxOptions\":\"styles_checkboxOptions__1JWb5\",\"checkboxSelectedOption\":\"styles_checkboxSelectedOption__10t-b\",\"hideInputUnderlineAfter\":\"styles_hideInputUnderlineAfter__2mKWx\",\"clickableRow\":\"styles_clickableRow__QIgqW\",\"clickableDrawerOption\":\"styles_clickableDrawerOption__2OzBU\",\"colorTernary\":\"styles_colorTernary__3OQ3i\",\"drawerFormActions\":\"styles_drawerFormActions__3GnFS\",\"backButton\":\"styles_backButton__BIyNI\",\"fullAccordionFormAlignDetails\":\"styles_fullAccordionFormAlignDetails__1HQjW\",\"fullAccordionFormSummaryFormControl\":\"styles_fullAccordionFormSummaryFormControl__ApJyn\",\"selectorSaveButton\":\"styles_selectorSaveButton__LmFvg\",\"reverseIcon\":\"styles_reverseIcon__2ejcz\",\"roundedIconButton\":\"styles_roundedIconButton__1lXvA\",\"roundedDisabledIconButton\":\"styles_roundedDisabledIconButton__1qASS\",\"tabNav\":\"styles_tabNav__2DW-c\",\"smallTabNav\":\"styles_smallTabNav__3k4Xq\",\"reservationServiceCategory\":\"styles_reservationServiceCategory__bvUmE\",\"reservationServiceCategorySubTitle\":\"styles_reservationServiceCategorySubTitle__1VFn4\",\"reservationActiveServiceCategorySubTitle\":\"styles_reservationActiveServiceCategorySubTitle__3wclG\",\"reservationServiceCategory__container\":\"styles_reservationServiceCategory__container__2KVy4\",\"reservationServiceCategory__label\":\"styles_reservationServiceCategory__label__1pyQl\",\"reservationServiceCategory__info\":\"styles_reservationServiceCategory__info__i1Xhs\",\"reservationServiceCategoryLabel\":\"styles_reservationServiceCategoryLabel__1_TXe\",\"reservationServiceCategoryInfo\":\"styles_reservationServiceCategoryInfo__3wMbb\",\"autoCompleteTextField\":\"styles_autoCompleteTextField__1FB_C\",\"compactTable\":\"styles_compactTable__3A-5D\",\"backgroundAlternateRow\":\"styles_backgroundAlternateRow__ZHOlR\",\"backgroundRow\":\"styles_backgroundRow__3BvpH\",\"smallDialogActions\":\"styles_smallDialogActions__2rLCv\",\"InnerHtmlContainer\":\"styles_InnerHtmlContainer__1tU_-\",\"iconLink\":\"styles_iconLink__2xLe-\",\"iconRight\":\"styles_iconRight__ii4aB\",\"iconLeft\":\"styles_iconLeft__3nlMt\",\"paymentOption\":\"styles_paymentOption__3t7uk\",\"redCell\":\"styles_redCell__2k2y-\",\"tableClickableText\":\"styles_tableClickableText__J6jAp\",\"bigToggleButtons\":\"styles_bigToggleButtons__2pnqb\",\"alternateRow\":\"styles_alternateRow__OC0BQ\",\"row\":\"styles_row__Tia3K\",\"statusDefault\":\"styles_statusDefault__3Xgin\",\"statusApproved\":\"styles_statusApproved__mJXoI\",\"statusNotApproved\":\"styles_statusNotApproved__3Ebre\",\"statusWaiting\":\"styles_statusWaiting__3IgP8\",\"multilineLabel\":\"styles_multilineLabel__rfYvK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"info\":\"Basket_info__1U2ZF\",\"mainTitle\":\"Basket_mainTitle__3N7IO\",\"summaryTitle\":\"Basket_summaryTitle__-CAJr\",\"summaryExpand\":\"Basket_summaryExpand__14v5P\",\"emptyInfo\":\"Basket_emptyInfo__1jXYW\",\"category\":\"Basket_category__Qd9ae\",\"categorySubTitle\":\"Basket_categorySubTitle__24ML5\",\"categoryLabel\":\"Basket_categoryLabel__1bH2u\",\"categoryInfo\":\"Basket_categoryInfo__1yTp0\",\"content\":\"Basket_content__dGXau\",\"summary\":\"Basket_summary__1pTgx\",\"roundedIconButton\":\"Basket_roundedIconButton__3rcSY\",\"accordionSummary\":\"Basket_accordionSummary__2X8nv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"autoCompleteTextField\":\"TaskListPage_autoCompleteTextField__2ozBy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"control\":\"FormControl_control__2cr7g\",\"label\":\"FormControl_label__2y4pe\",\"optional\":\"FormControl_optional__2oR6W\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"warningLeftPadding\":\"AccordionWarningMessage_warningLeftPadding__2Qrpb\",\"warningExpirationText\":\"AccordionWarningMessage_warningExpirationText__2nd-V\",\"warningContainer\":\"AccordionWarningMessage_warningContainer__U4Axe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"readonly\":\"TextField_readonly__1bYqk\",\"readonlyWrap\":\"TextField_readonlyWrap__3cHGj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"tabNav\":\"Tabs_tabNav__4IQbE\",\"badge\":\"Tabs_badge__3oxo3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"ukuptrecord\":\"LegTravelerCard_ukuptrecord__2p8i-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"alternateRow\":\"PrintETicket_alternateRow__2GO-Q\",\"row\":\"PrintETicket_row__G471y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"withoutToolbar\":\"PersonalDataConditions_withoutToolbar__SIPQR\",\"conditions\":\"PersonalDataConditions_conditions__17KW9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"cardData2\":\"CVFlightDetails_cardData2__24Sx6\",\"scheduleData\":\"CVFlightDetails_scheduleData__1fDHO\",\"cardDetailContainer\":\"CVFlightDetails_cardDetailContainer__w_g3n\",\"cardDetail\":\"CVFlightDetails_cardDetail__xUrIH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"EditDocumentButton\":\"MemberInformation_EditDocumentButton__1PLB9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"header\":\"Header_header__3OWJr\",\"headerHome\":\"Header_headerHome__3gMyt\",\"btnUser\":\"Header_btnUser__2fwKM\",\"userName\":\"Header_userName__1nZwm\",\"userNameHomePage\":\"Header_userNameHomePage__3sMqO\",\"roleName\":\"Header_roleName__1EU6P\",\"roleNameHomePage\":\"Header_roleNameHomePage__2LzWL\",\"avatar\":\"Header_avatar__1YIU5\",\"iconButton\":\"Header_iconButton__9pSrB\",\"menu\":\"Header_menu__3X6U6\",\"connectedAsLabel\":\"Header_connectedAsLabel__15Y_F\",\"headerMobile\":\"Header_headerMobile__28xS9\",\"headerHomeMobile\":\"Header_headerHomeMobile__2FG_M\",\"helpIcon\":\"Header_helpIcon__qLLzr\",\"appBarTraveler\":\"Header_appBarTraveler__14T67\",\"alignedTexts\":\"Header_alignedTexts__JsAdL\",\"fullWidth\":\"Header_fullWidth__3Nial\",\"separator\":\"Header_separator__26--5\",\"title\":\"Header_title__eH3nO\",\"badge\":\"Header_badge__2l9NF\",\"popper\":\"Header_popper__2j06J\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"reviewSummaryContent\":\"ReviewSummary_reviewSummaryContent__2l7Hb\",\"reviewSummaryContentLabel\":\"ReviewSummary_reviewSummaryContentLabel__39HbM\",\"roundedIconButton\":\"ReviewSummary_roundedIconButton__2-_w8\",\"roundedDisabledIconButton\":\"ReviewSummary_roundedDisabledIconButton__3l3K0\",\"employeeAutoComplete\":\"ReviewSummary_employeeAutoComplete__3eRk3\",\"travelGroupActions\":\"ReviewSummary_travelGroupActions__22pH5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"flightCardRouting\":\"CVFlightCard_flightCardRouting__1D-yf\",\"card\":\"CVFlightCard_card__T94Pg\",\"cardLabel\":\"CVFlightCard_cardLabel__2xDRx\",\"cardData\":\"CVFlightCard_cardData__8n0FB\",\"cardData2\":\"CVFlightCard_cardData2__3LXFw\",\"scheduleData\":\"CVFlightCard_scheduleData__mjx7l\",\"cardDetailsContainer\":\"CVFlightCard_cardDetailsContainer__vcR3_\",\"cardDetailContainer\":\"CVFlightCard_cardDetailContainer__1_o4f\",\"cardDetail\":\"CVFlightCard_cardDetail__1TzW2\",\"selectFlightButton\":\"CVFlightCard_selectFlightButton__1eHO2\",\"cardContainerGrid\":\"CVFlightCard_cardContainerGrid__2djlA\",\"cardContainerGridSelected\":\"CVFlightCard_cardContainerGridSelected__2J1d7\",\"flightClosedText\":\"CVFlightCard_flightClosedText__3LtoK\",\"flightClosedContainer\":\"CVFlightCard_flightClosedContainer__3Uchx\",\"disabledCard\":\"CVFlightCard_disabledCard__1jdBQ\",\"viewButtons\":\"CVFlightCard_viewButtons__36VXg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"ForbiddenPage_container__2jEHs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reportIssue\":\"ReportIssue_reportIssue__3vt9f\"};","const isUndefined = (value) => value === undefined;\r\n\r\nconst isNull = (value) => value === null;\r\n\r\nconst isBoolean = (value) => typeof value === 'boolean';\r\n\r\nconst isObject = (value) => value === Object(value);\r\n\r\nconst isArray = (value) => Array.isArray(value);\r\n\r\nconst isDate = (value) => value instanceof Date;\r\n\r\nconst isBlob = (value) =>\r\n value &&\r\n typeof value.size === 'number' &&\r\n typeof value.type === 'string' &&\r\n typeof value.slice === 'function';\r\n\r\nconst isFile = (value) =>\r\n isBlob(value) &&\r\n typeof value.name === 'string' &&\r\n (typeof value.lastModifiedDate === 'object' ||\r\n typeof value.lastModified === 'number');\r\n\r\nconst serialize = (obj, cfg, fd, pre) => {\r\n cfg = cfg || {};\r\n\r\n cfg.indices = isUndefined(cfg.indices) ? false : cfg.indices;\r\n\r\n cfg.nullsAsUndefineds = isUndefined(cfg.nullsAsUndefineds)\r\n ? false\r\n : cfg.nullsAsUndefineds;\r\n\r\n cfg.booleansAsIntegers = isUndefined(cfg.booleansAsIntegers)\r\n ? false\r\n : cfg.booleansAsIntegers;\r\n\r\n cfg.allowEmptyArrays = isUndefined(cfg.allowEmptyArrays)\r\n ? false\r\n : cfg.allowEmptyArrays;\r\n\r\n fd = fd || new FormData();\r\n\r\n if (isUndefined(obj)) {\r\n return fd;\r\n } else if (isNull(obj)) {\r\n if (!cfg.nullsAsUndefineds) {\r\n fd.append(pre, '');\r\n }\r\n } else if (isBoolean(obj)) {\r\n if (cfg.booleansAsIntegers) {\r\n fd.append(pre, obj ? 1 : 0);\r\n } else {\r\n fd.append(pre, obj);\r\n }\r\n } else if (isArray(obj)) {\r\n if (obj.length) {\r\n obj.forEach((value, index) => {\r\n const key = pre + '[' + (cfg.indices ? index : '') + ']';\r\n\r\n serialize(value, cfg, fd, key);\r\n });\r\n } else if (cfg.allowEmptyArrays) {\r\n fd.append(pre + '[]', '');\r\n }\r\n } else if (isDate(obj)) {\r\n fd.append(pre, obj.toISOString());\r\n } else if (isObject(obj) && !isFile(obj) && !isBlob(obj)) {\r\n Object.keys(obj).forEach((prop) => {\r\n const value = obj[prop];\r\n\r\n if (isArray(value)) {\r\n while (prop.length > 2 && prop.lastIndexOf('[]') === prop.length - 2) {\r\n prop = prop.substring(0, prop.length - 2);\r\n }\r\n }\r\n\r\n const key = pre\r\n ? cfg.dotNotation\r\n ? pre + '.' + prop\r\n : pre + '[' + prop + ']'\r\n : prop;\r\n\r\n serialize(value, cfg, fd, key);\r\n });\r\n } else {\r\n fd.append(pre, obj);\r\n }\r\n\r\n return fd;\r\n};\r\n\r\nmodule.exports = {\r\n serialize,\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"formControl\":\"CateringOrderFilter_formControl__14JI7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageIcon\":\"NoResult_pageIcon__1RVwU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"svg\":\"TableIconButton_svg__1CfV4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"arrivalStation\":\"FlightSchedulePage_arrivalStation__B_Xm_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"SearchButton\":\"SearchButton_SearchButton__3GyM-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"card\":\"AllLegsCrewCard_card__2H1k5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"card\":\"LegCrewCard_card__ZC_p3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"iconButton\":\"WaitListGrid_iconButton__2dGcG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"autoCompleteTextField\":\"WaitingListPage_autoCompleteTextField__1Z8ST\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"iconButton\":\"NoShowConfirmed_iconButton__1SLB-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"iconButton\":\"WarningListGrid_iconButton__3rqPu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"boldFormControlTitle\":\"ReservationMailExchange_boldFormControlTitle__5fke4\",\"MuiFormLabel-root\":\"ReservationMailExchange_MuiFormLabel-root__HSVQv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"item\":\"Carousel_item__3196M\",\"container\":\"Carousel_container__3Fe2i\",\"slick-arrow\":\"Carousel_slick-arrow__XL6nN\",\"selectedItem\":\"Carousel_selectedItem__1JrIG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"container\":\"StepperActions_container__33miX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"expirationText\":\"ReservationPaymentInformations_expirationText__3qzdz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reactQuill\":\"ReactQuill_reactQuill__E863Z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"floatingPanel\":\"ReservationStepsPage_floatingPanel__3gb7w\",\"basketButton\":\"ReservationStepsPage_basketButton__3k-Az\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reactQuill\":\"HelpPageForm_reactQuill__1I8QT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"fieldContainer\":\"BookingSetupPage_fieldContainer__2KJU3\",\"subtitle\":\"BookingSetupPage_subtitle__3oLPh\",\"roundedIconButton\":\"BookingSetupPage_roundedIconButton__HDlEF\",\"deleteIcon\":\"BookingSetupPage_deleteIcon__qqw6s\",\"linkButton\":\"BookingSetupPage_linkButton__KQb87\",\"expirationText\":\"BookingSetupPage_expirationText__3feAY\",\"travelGroupActions\":\"BookingSetupPage_travelGroupActions__3yFi9\",\"gridContainerPage\":\"BookingSetupPage_gridContainerPage__26dzd\",\"formControlEllipsis\":\"BookingSetupPage_formControlEllipsis__q17tt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reactQuill\":\"EditWCMPage_reactQuill__1GbFK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reactQuill\":\"WCMPageForm_reactQuill__1qZMN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"pickerHeader\":\"CVFlightPicker_pickerHeader__1TFr3\",\"pickerHeaderMobile\":\"CVFlightPicker_pickerHeaderMobile__2qnqp\",\"pickerHeaderMobileLabel\":\"CVFlightPicker_pickerHeaderMobileLabel__2W-ct\",\"pickerHeaderMobileData\":\"CVFlightPicker_pickerHeaderMobileData__2c5GZ\",\"rotatedIcon\":\"CVFlightPicker_rotatedIcon__1TKOa\",\"disabledDay\":\"CVFlightPicker_disabledDay__1lp-U\",\"dayNumber\":\"CVFlightPicker_dayNumber__1wFUw\",\"numberOfFlights\":\"CVFlightPicker_numberOfFlights__1hh6m\",\"carouselCard\":\"CVFlightPicker_carouselCard__35122\",\"monthLabelContainer\":\"CVFlightPicker_monthLabelContainer__qp-aw\",\"monthLabel\":\"CVFlightPicker_monthLabel__2cu6f\",\"monthLabelUnderline\":\"CVFlightPicker_monthLabelUnderline__2j5xB\",\"cvFlightPicker\":\"CVFlightPicker_cvFlightPicker__2GOgE\",\"flightNotFound\":\"CVFlightPicker_flightNotFound__2CEYr\",\"noFlightMessage\":\"CVFlightPicker_noFlightMessage__MLO4O\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"drawerPaper\":\"SideMenu_drawerPaper__2UO80\",\"drawerClose\":\"SideMenu_drawerClose__FnEPI\",\"drawer\":\"SideMenu_drawer__3EQnO\",\"drawerContent\":\"SideMenu_drawerContent__24cwd\",\"littleLogo\":\"SideMenu_littleLogo__1K5qV\",\"logo\":\"SideMenu_logo__2xgtb\",\"miniBtnIntranet\":\"SideMenu_miniBtnIntranet__tOR2v\",\"drawerContentOpen\":\"SideMenu_drawerContentOpen__3gceC\",\"btnIntranet\":\"SideMenu_btnIntranet__3nKp7\",\"list\":\"SideMenu_list__3Pyx0\",\"bottomDrawerContainer\":\"SideMenu_bottomDrawerContainer__3-mbR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"downloadAttachmentButton\":\"FileUpload_downloadAttachmentButton__2Hj3n\",\"container\":\"FileUpload_container__2xrpy\",\"fileinput\":\"FileUpload_fileinput__1xt2_\",\"uploadbutton\":\"FileUpload_uploadbutton__1WY91\",\"vAligh\":\"FileUpload_vAligh__1PJeM\",\"spanFile\":\"FileUpload_spanFile__2xJ9K\",\"fileLink\":\"FileUpload_fileLink__7epn0\",\"error\":\"FileUpload_error__1HLQC\",\"mainContainer\":\"FileUpload_mainContainer__37ODQ\",\"deleteIcon\":\"FileUpload_deleteIcon__1iGmn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"EditDocumentButton\":\"ImmigrationDocumentCreationDrawer_EditDocumentButton__YIudx\",\"DocumentInfos\":\"ImmigrationDocumentCreationDrawer_DocumentInfos__x-M7a\",\"Header\":\"ImmigrationDocumentCreationDrawer_Header__3AKBL\",\"FileDownloadFormControlAlign\":\"ImmigrationDocumentCreationDrawer_FileDownloadFormControlAlign__3kXq6\",\"FormButtons\":\"ImmigrationDocumentCreationDrawer_FormButtons__1VErZ\",\"WarningExpiration\":\"ImmigrationDocumentCreationDrawer_WarningExpiration__lhfqU\",\"ExpiredDocument\":\"ImmigrationDocumentCreationDrawer_ExpiredDocument__3Nkvm\",\"FullWidth\":\"ImmigrationDocumentCreationDrawer_FullWidth__1paEZ\"};","import React, {createContext, useCallback, useContext} from 'react';\r\nimport {GlobalStorageState} from './GlobalStorageReducer';\r\n\r\nexport const InitialState: GlobalStorageState = {\r\n logs: [],\r\n};\r\n\r\nexport interface IGlobalStorageContext {\r\n AddLog: (message: string) => void;\r\n ClearLogs: () => void;\r\n GetLogs: () => string[];\r\n SetPageTile: (title: string) => void;\r\n GetPageTile: () => string;\r\n}\r\n\r\nconst GlobalStorageContext = createContext({} as IGlobalStorageContext);\r\n\r\nconst GlobalStorageProvider: React.FC = ({ children }) => {\r\n //const [state, dispatch] = useReducer(GlobalStorageReducer, InitialState);\r\n const logs: string[] = [];\r\n let pageTitle: string;\r\n const AddLog = useCallback((message: string) => {\r\n logs.push(message);\r\n // dispatch({ type: GlobalStorageActionType.ADD_LOG, payload: message });\r\n }, []);\r\n\r\n const ClearLogs = useCallback(() => {\r\n logs.splice(0, logs.length);\r\n }, []);\r\n\r\n const GetLogs = useCallback(() => logs, []);\r\n\r\n const SetPageTile = useCallback((title: string) => (pageTitle = title), []);\r\n const GetPageTile = useCallback(() => pageTitle, []);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useGlobalStorageContext = () => useContext(GlobalStorageContext);\r\n\r\nexport default GlobalStorageProvider;\r\n","export const msalConfig = {\r\n auth: {\r\n clientId: `${process.env.REACT_APP_CLIENT_ID}`,\r\n authority: `https://login.microsoftonline.com/${process.env.REACT_APP_TENANT_ID}`,\r\n redirectUri: window.location.origin,\r\n },\r\n cache: {\r\n cacheLocation: 'localStorage', // This configures where your cache will be stored\r\n storeAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n },\r\n};\r\n","import {AccountInfo, AuthenticationResult, PublicClientApplication, SilentRequest,} from '@azure/msal-browser';\r\nimport {msalConfig} from '../msal-config';\r\n\r\nexport class AuthenticationService {\r\n private static classInstance?: AuthenticationService;\r\n private postLogoutRedirectUrl = '/';\r\n\r\n public msalApp: PublicClientApplication;\r\n\r\n private constructor() {\r\n this.msalApp = new PublicClientApplication(msalConfig);\r\n }\r\n\r\n public retrieveRolesFromToken(): string[] {\r\n const account = this.getAccount();\r\n if (account) {\r\n const tokenResponse = account.idTokenClaims;\r\n if (tokenResponse) {\r\n return tokenResponse.roles as string[];\r\n }\r\n }\r\n return [];\r\n };\r\n\r\n public getAccount(): AccountInfo | undefined | null {\r\n if (this.msalApp === undefined) {\r\n console.error('MSAL service not initialized.');\r\n return undefined;\r\n }\r\n\r\n const currentAccounts = this.msalApp.getAllAccounts();\r\n if (currentAccounts === null) {\r\n console.error('No accounts detected');\r\n return null;\r\n }\r\n\r\n if (currentAccounts.length >= 1) {\r\n return currentAccounts[0];\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public async getTokenSilent(scopes: string[]): Promise {\r\n if (this.msalApp === undefined) {\r\n console.error('MSAL service not initialized.');\r\n return Promise.reject();\r\n }\r\n\r\n const account = this.getAccount();\r\n\r\n if (!account) {\r\n await this.signIn();\r\n return Promise.reject();\r\n }\r\n\r\n const request: SilentRequest = {\r\n account,\r\n scopes,\r\n };\r\n\r\n return this.msalApp.acquireTokenSilent(request);\r\n }\r\n\r\n public getUsername(): string {\r\n return this.getAccount()?.username ?? '';\r\n }\r\n\r\n public static getInstance() {\r\n if (!this.classInstance) {\r\n console.log('New MSAL Instance initialized');\r\n this.classInstance = new AuthenticationService();\r\n }\r\n\r\n return this.classInstance;\r\n }\r\n\r\n public signIn(): Promise {\r\n return this.msalApp.loginRedirect().catch((error: Error) => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n public signOut(): Promise {\r\n return this.msalApp\r\n .logoutRedirect({ postLogoutRedirectUri: this.postLogoutRedirectUrl })\r\n .catch((error: Error) => {\r\n console.error(error);\r\n });\r\n }\r\n}\r\n","const Constants = {\r\n buttons: {\r\n ok: 'OK',\r\n cancel: 'Cancel',\r\n save: 'Save',\r\n saveChange: 'Save change',\r\n saveChanges: 'Save changes',\r\n validate: 'Validate',\r\n showAll: 'Show All',\r\n yes: 'Yes',\r\n no: 'No',\r\n search: 'Search',\r\n continue: 'Continue',\r\n export: 'Export',\r\n assign: 'Assign',\r\n },\r\n titles: {\r\n confirmDelete: 'Confirm delete',\r\n confirmActivation: 'Confirm activation',\r\n appHeaderTitle: 'Applications Administration',\r\n },\r\n content: {\r\n reallyWantToDelete: 'Do you really want to delete this {0}?',\r\n reallyWantToActivate: 'Do you really want to activate this {0}?',\r\n noDataFound: 'No data found !',\r\n },\r\n messages: {\r\n success: {\r\n dataSaved: 'Data successfully saved',\r\n dataDeleted: 'Data successfully deleted',\r\n dataActivated: 'Data successfully activated',\r\n dataDeactivated: 'Data successfully deactivated',\r\n dataExported: 'Data successfully exported',\r\n dataInserted: 'Data successfully inserted',\r\n },\r\n error: {\r\n fetchingData: 'An error occurred while fetching data',\r\n savingData: 'An error occurred while saving data',\r\n deletingData: 'An error occurred while deleting data',\r\n activatingData: 'An error occurred while activating data',\r\n userPreferencesData: 'An error occurred while fetching User Preferences',\r\n insertCrewData:\r\n 'A special meal has already been defined for this crew member.',\r\n },\r\n },\r\n validation: {\r\n required: 'The field is mandatory!',\r\n requiredField: \"The field '{0}' is mandatory!\",\r\n min: 'The filled value must have at least {0} characters!',\r\n max: 'The filled value must have a maximum of {0} characters!',\r\n length: 'The filled value must have exactly {0} characters!',\r\n matches: 'The filled value is not valid for this field!',\r\n duplicateOfKey: 'This entry already exists!',\r\n invalidDate: 'Oops, invalid date format!',\r\n maxDate: 'The entered date is too far in the future',\r\n minDate: 'The entered date is too far in the past',\r\n invalidRangeDate: 'Oops, invalid Range: Start date must be before End date',\r\n invalidEmail: 'Oops, invalid email address',\r\n invalidNumber: 'The entered value is not a valid numeric value!',\r\n emailRegex: /^(([A-z0-9-_+\\.]+@[A-z0-9-_\\.]+\\.[A-z0-9]+)|({[A-z0-9\\.]+}))$/,\r\n emailMultipleRegex:\r\n /^((([A-z0-9-_+\\.]+@[A-z0-9-_\\.]+\\.[A-z0-9]+)|({[A-z0-9\\.]+}))[,;\\s]*)*$/,\r\n numericDecimalRegex: /^-?\\d*\\.?\\d*$/,\r\n numericOnlyRegex: /^[0-9]*$/,\r\n maxInt: 2147483647,\r\n attachment: 'The attachment is mandatory!',\r\n minNumeric: '{0} must be greater than or equal to {1}',\r\n maxNumeric: '{0} must be lower than or equal to {1}',\r\n paymentCard:\r\n 'Oops, invalid format. CC numbers are composed by {0} characters',\r\n minDateToday: 'Date must be equal to or greater than today',\r\n minDateAnotherField: 'Date must be equal to or greater than {0} date',\r\n multipleEmail:\r\n 'Text can only contain valid email adresses and semicolons in between',\r\n passengerBlocked:\r\n 'One of the passenger is blocked from traveling during the requested date',\r\n },\r\n roles: {\r\n Admin: 'Admin',\r\n Agent: 'Agent',\r\n CateringDepartmentUser: 'Catering Department User',\r\n CateringLuxairUser: 'Catering Luxair User',\r\n DepartureProcessing: 'Departure Processing',\r\n DeploymentAdmin: 'Deployment Admin',\r\n GuestRegistration: 'Guest Registration',\r\n OutstationAgent: 'Outstation Agent',\r\n Planner: 'Planner',\r\n Traveler: 'Traveler',\r\n },\r\n placeholder:{\r\n date: 'DD-MM-YYYY'\r\n },\r\n preferences: {\r\n global: 'Global',\r\n country: 'Country',\r\n company: 'Company',\r\n year: 'Year',\r\n },\r\n settings: {\r\n intranetLink: 'LINK.Intranet',\r\n contactUsMail: 'MAIL.ContactUs',\r\n CvPreferredHotelsLink: 'LINK.CvPreferedHotels',\r\n commercialFlightInfoLink: 'LINK.CommercialFlightInfo',\r\n checkFlightInfoLink: 'LINK.CheckFlighInfo',\r\n commercialFlightAdditionalDetailsLink:\r\n 'LINK.CommercialFlightAdditionalDetails',\r\n personalDataCondition: 'BOOKING.PersonalDataCondition',\r\n myIDTravel: 'LINK.MyIDTravel',\r\n timaticUrl: 'Timatic.Url',\r\n },\r\n externalSideMenus: {\r\n myIDTravel: 'My ID Travel',\r\n timatic: 'Timatic',\r\n },\r\n airports: {\r\n areas: ['Area 1', 'Area 2', 'Area 3'],\r\n },\r\n status: {\r\n deleted: 'Deleted',\r\n },\r\n armAlert: {\r\n warningText: 'An ARM exists for this flight',\r\n warningTextAlternative: 'Flight routing does no longer match with booking',\r\n },\r\n wcm: {\r\n retrieveError:\r\n 'Oops, Something went wrong, could not retrieve the contact informations.',\r\n titleForCargoluxCondition: 'Cargolux Conditions of Contract',\r\n },\r\n rulesAndConditions: {\r\n text: 'I have read, understood, will adhere to and comply with the applicable rules and conditions provided in the Corporate Travel Policies, as well as in the ',\r\n },\r\n};\r\n\r\nexport default Constants;\r\n","import axios, {\r\n AxiosError,\r\n AxiosRequestConfig,\r\n AxiosRequestHeaders,\r\n AxiosResponse,\r\n} from 'axios';\r\nimport {useCallback, useEffect, useMemo} from 'react';\r\n\r\nimport {useGlobalStorageContext} from '../context/GlobalStorage/GlobalStorageProvider';\r\nimport {AuthenticationService} from './AuthenticationService';\r\nimport Constants from '../utils/Constants';\r\nimport {\r\n AuthenticationResult,\r\n InteractionRequiredAuthError,\r\n} from '@azure/msal-browser';\r\n\r\nlet apiConfig = {\r\n baseURL: process.env.REACT_APP_API_BASE_URL,\r\n};\r\n\r\nif (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {\r\n apiConfig.baseURL = process.env.REACT_APP_API_BASE_URL ?? '';\r\n}\r\n\r\n\r\nconst instance = axios.create(apiConfig);\r\naxios.defaults.headers.common['Access-Control-Allow-Origin'] = window.location.host;\r\nexport default instance;\r\n\r\nconst scopes: string[] = JSON.parse(process.env.REACT_APP_ETRAVEL_SCOPES ?? '');\r\n\r\nexport class ResponseError extends Error {\r\n status?: number;\r\n\r\n constructor(message: string, status?: number) {\r\n super(message);\r\n this.status = status;\r\n }\r\n}\r\n\r\ninstance.interceptors.request.use((config) =>\r\n AuthenticationService.getInstance()\r\n .getTokenSilent(scopes)\r\n .then((authResult: AuthenticationResult) =>\r\n handleConfig(config, authResult)\r\n )\r\n .catch((e: InteractionRequiredAuthError) => {\r\n console.log(e);\r\n\r\n const authServiceInstance = AuthenticationService.getInstance();\r\n authServiceInstance.signIn();\r\n })\r\n .catch((e: AxiosError) => {\r\n const authServiceInstance = AuthenticationService.getInstance();\r\n const silentRequest = {\r\n scopes,\r\n loginHint: AuthenticationService.getInstance().getAccount()?.username,\r\n };\r\n console.log('SR: ', silentRequest);\r\n console.error('Authentication failed, try to ssoSilent:', e);\r\n authServiceInstance.msalApp\r\n .ssoSilent(silentRequest)\r\n .then((authResult: AuthenticationResult) =>\r\n handleConfig(config, authResult)\r\n );\r\n })\r\n);\r\n\r\nconst handleConfig = (\r\n config: AxiosRequestConfig,\r\n authResult: AuthenticationResult\r\n): Promise =>\r\n new Promise((resolve, reject) => {\r\n const token = authResult.accessToken;\r\n if (token === undefined) {\r\n reject(config);\r\n }\r\n resolve(assignBearerToken(config, token));\r\n });\r\n\r\nconst assignBearerToken = (config: AxiosRequestConfig, token: string) => {\r\n const bearerHeader = `Bearer ${token}`;\r\n const c = config;\r\n if (!c.headers) {\r\n c.headers = {\r\n Authorization: bearerHeader,\r\n } as AxiosRequestHeaders;\r\n } else {\r\n c.headers = {...c.headers, Authorization: bearerHeader};\r\n }\r\n\r\n return config;\r\n};\r\n\r\nexport const useAxiosLogger = () => {\r\n const {AddLog} = useGlobalStorageContext();\r\n\r\n const properties = ['Authorization'];\r\n const excludeProperties = (key: string, value: string) =>\r\n properties.includes(key) ? undefined : value;\r\n\r\n const stringifyValue = (value: any) =>\r\n JSON.stringify(value, excludeProperties, 2);\r\n const logRequest = useCallback((request: any) => {\r\n AddLog(`Request: ${stringifyValue(request)}`);\r\n }, []);\r\n const logResponse = useCallback((response: any) => {\r\n AddLog(`Response: ${stringifyValue(response)}`);\r\n }, []);\r\n const logError = useCallback((error: any) => {\r\n AddLog(`Error: ${stringifyValue(error)}`);\r\n }, []);\r\n\r\n const interceptors = useMemo(\r\n () => ({\r\n request: (request: any) => (logRequest(request), request),\r\n response: (response: any) => (logResponse(response), response),\r\n error: (error: any) => (logError(error), Promise.reject(error)),\r\n }),\r\n [logRequest, logResponse, logError]\r\n ); // create the interceptors\r\n\r\n useEffect(() => {\r\n // add request interceptors\r\n const reqInterceptor = instance.interceptors.request.use(\r\n interceptors.request,\r\n interceptors.error\r\n );\r\n // add response interceptors\r\n const resInterceptor = instance.interceptors.response.use(\r\n interceptors.response,\r\n interceptors.error\r\n );\r\n return () => {\r\n // remove all intercepts when done\r\n instance.interceptors.request.eject(reqInterceptor);\r\n instance.interceptors.response.eject(resInterceptor);\r\n };\r\n }, [interceptors]);\r\n};\r\n\r\nconst responseBody = (response: AxiosResponse) => response.data;\r\n\r\nfunction getFormData(object: any) {\r\n const formData = new FormData();\r\n Object.keys(object).forEach((key) => formData.append(key, object[key]));\r\n return formData;\r\n}\r\n\r\nexport const requests = {\r\n get: (url: string, config?: AxiosRequestConfig | undefined) =>\r\n instance\r\n .get(url, config)\r\n .then(responseBody)\r\n .catch((error) => {\r\n console.error(error);\r\n if (error.response?.data?.isBusinessException) {\r\n throw new ResponseError(\r\n error.response.data.message,\r\n error.response?.status\r\n );\r\n }\r\n if (!axios.isCancel(error)) {\r\n throw new ResponseError(Constants.messages.error.fetchingData);\r\n }\r\n }),\r\n postAsFormdata: (\r\n url: string,\r\n body: {},\r\n config?: AxiosRequestConfig | undefined\r\n ) =>\r\n instance\r\n .post(url, getFormData(body), {\r\n ...config,\r\n headers: {...config?.headers, 'content-type': 'multipart/form-data'},\r\n } as AxiosRequestConfig)\r\n .then(responseBody)\r\n .catch((error) => {\r\n if (error.response?.data?.isBusinessException) {\r\n throw new ResponseError(\r\n error.response.data.message,\r\n error.response?.status\r\n );\r\n }\r\n if (\r\n error.response?.data.title ===\r\n 'One or more validation errors occurred.'\r\n ) {\r\n const errors = error.response.data.errors;\r\n throw new ResponseError(\r\n errors[Object.keys(errors)[0]],\r\n error.response?.status\r\n );\r\n }\r\n if (!axios.isCancel(error)) {\r\n throw new ResponseError(Constants.messages.error.savingData);\r\n }\r\n }),\r\n putAsFormdata: (\r\n url: string,\r\n body: {},\r\n config?: AxiosRequestConfig | undefined\r\n ) =>\r\n instance\r\n .put(url, getFormData(body), {\r\n ...config,\r\n headers: {...config?.headers, 'content-type': 'multipart/form-data'},\r\n } as AxiosRequestConfig)\r\n .then(responseBody)\r\n .catch((error) => {\r\n if (error.response?.data?.isBusinessException) {\r\n throw new ResponseError(\r\n error.response.data.message,\r\n error.response?.status\r\n );\r\n }\r\n if (\r\n error.response?.data.title ===\r\n 'One or more validation errors occurred.'\r\n ) {\r\n const errors = error.response.data.errors;\r\n throw new ResponseError(\r\n errors[Object.keys(errors)[0]],\r\n error.response?.status\r\n );\r\n }\r\n if (!axios.isCancel(error)) {\r\n throw new ResponseError(Constants.messages.error.savingData);\r\n }\r\n }),\r\n\r\n post: (url: string, body: {}, config?: AxiosRequestConfig | undefined) =>\r\n instance\r\n .post(url, body, config)\r\n .then(responseBody)\r\n .catch((error) => {\r\n if (error.response?.data?.isBusinessException) {\r\n throw new ResponseError(\r\n error.response.data.message,\r\n error.response?.status\r\n );\r\n }\r\n if (\r\n error.response?.data.title ===\r\n 'One or more validation errors occurred.'\r\n ) {\r\n const errors = error.response.data.errors;\r\n throw new ResponseError(\r\n errors[Object.keys(errors)[0]],\r\n error.response?.status\r\n );\r\n }\r\n if (!axios.isCancel(error)) {\r\n throw new ResponseError(Constants.messages.error.savingData);\r\n }\r\n }),\r\n\r\n put: (url: string, body: any, config?: AxiosRequestConfig | undefined) =>\r\n instance\r\n .put(url, body, config)\r\n .then(responseBody)\r\n .catch((error) => {\r\n if (error.response?.data?.isBusinessException) {\r\n throw new ResponseError(\r\n error.response.data.message,\r\n error.response?.status\r\n );\r\n }\r\n if (\r\n error.response?.data.title ===\r\n 'One or more validation errors occurred.'\r\n ) {\r\n const errors = error.response.data.errors;\r\n throw new ResponseError(\r\n errors[Object.keys(errors)[0]],\r\n error.response?.status\r\n );\r\n }\r\n if (!axios.isCancel(error)) {\r\n throw new ResponseError(Constants.messages.error.savingData);\r\n }\r\n }),\r\n\r\n patch: (url: string, body?: any, config?: AxiosRequestConfig | undefined) =>\r\n instance\r\n .patch(url, body, config)\r\n .then(responseBody)\r\n .catch((error) => {\r\n if (error.response?.data?.isBusinessException) {\r\n throw new ResponseError(\r\n error.response.data.message,\r\n error.response?.status\r\n );\r\n }\r\n if (!axios.isCancel(error)) {\r\n throw new ResponseError(Constants.messages.error.savingData);\r\n }\r\n }),\r\n\r\n delete: (url: string, config?: AxiosRequestConfig | undefined) =>\r\n instance\r\n .delete(url, config)\r\n .then(responseBody)\r\n .catch((error) => {\r\n if (error.response?.data?.isBusinessException) {\r\n throw new ResponseError(\r\n error.response.data.message,\r\n error.response?.status\r\n );\r\n }\r\n if (!axios.isCancel(error)) {\r\n throw new ResponseError(Constants.messages.error.deletingData);\r\n }\r\n }),\r\n};\r\n","import {\r\n IDefaultPaymentInformationPayload\r\n} from '../components/PaymentInformation/PaymentInformation';\r\nimport IPaymentInformation from '../models/IPaymentInformation';\r\nimport IPermission from '../models/IPermission';\r\nimport IPermissionRole from '../models/IPermissionRole';\r\nimport IPermissionUser from '../models/IPermissionUser';\r\nimport IRole from '../models/IRole';\r\nimport IUser from '../models/IUser';\r\nimport IUserDetails from '../models/IUserDetails';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/Users';\r\n\r\nconst UserService = {\r\n getUserPermissions: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/permissions`),\r\n getUserDetails: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/details`),\r\n getAllPlanners: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/planners`),\r\n getAllRoles: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/application/roles`),\r\n getAllPermissions: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/application/permissions`),\r\n getPermissionsOfRole: (roleName: string): Promise =>\r\n requests.get(`${API_ENDPOINT}/role/permissions/`, {\r\n params: {\r\n roleName\r\n }\r\n }),\r\n updateRole: (roleInfo: IRole): Promise =>\r\n requests.post(`${API_ENDPOINT}/update`, roleInfo),\r\n insertRole: (roleInfo: IRole): Promise =>\r\n requests.post(`${API_ENDPOINT}/insert/`, roleInfo),\r\n deleteRole: (roleName: string): Promise =>\r\n requests.delete(`${API_ENDPOINT}/delete`, {\r\n params: {\r\n roleName\r\n }\r\n }),\r\n getPermissionsOfUser: (username: string): Promise =>\r\n requests.get(`${API_ENDPOINT}/user/permissions/${username}`),\r\n updatePermissionsOfRole: (\r\n permissionsRole: IPermissionRole[]\r\n ): Promise =>\r\n requests.put(`${API_ENDPOINT}/role/permissions`, permissionsRole),\r\n updatePermissionsOfUser: (\r\n permissionsUser: IPermissionUser[]\r\n ): Promise =>\r\n requests.put(`${API_ENDPOINT}/user/permissions`, permissionsUser),\r\n getPaymentInformationDetail: (paymentInformationId: number): Promise => requests.get(`${API_ENDPOINT}/paymentInformation/${paymentInformationId}`),\r\n createPaymentInformation: (\r\n paymentInfo: IPaymentInformation\r\n ): Promise =>\r\n requests.post(`${API_ENDPOINT}/paymentInformation`, paymentInfo),\r\n updatePaymentInformation: (\r\n paymentInfo: IPaymentInformation\r\n ): Promise =>\r\n requests.put(`${API_ENDPOINT}/paymentInformation`, paymentInfo),\r\n setDefaultPaymentInformation: (\r\n data: IDefaultPaymentInformationPayload\r\n ): Promise =>\r\n requests.put(`${API_ENDPOINT}/paymentInformation/default`, data),\r\n deletePaymentInformation: (\r\n userId: number,\r\n paymentInformationId: number\r\n ): Promise =>\r\n requests.delete(\r\n `${API_ENDPOINT}/${userId}/paymentInformation/${paymentInformationId}`\r\n ),\r\n};\r\n\r\nexport default UserService;\r\n","export default __webpack_public_path__ + \"static/media/logo.a935363e.png\";","import React from 'react';\r\nimport styles from './ForbiddenPage.module.scss';\r\nimport Container from '@material-ui/core/Container';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport logo from '../../assets/images/logo.png';\r\n\r\nconst ForbiddenPage: React.FC = () => {\r\n return (\r\n \r\n
\r\n \"\"\r\n \r\n Access Forbidden\r\n \r\n \r\n Please contact your administrator if you think you should have access\r\n to this resource.\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ForbiddenPage;\r\n","export default __webpack_public_path__ + \"static/media/cargolux-home_1.98128647.png\";","import React, { useContext, useEffect, useState } from 'react';\r\n\r\nimport IUserInfo from '../../models/IUserInfo';\r\nimport AuthorizationService from '../../services/UserService';\r\nimport { AuthenticationService } from '../../services/AuthenticationService';\r\nimport _ from 'lodash';\r\nimport ForbiddenPage from '../../pages/ForbiddenPage';\r\nimport { CircularProgress } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Background from '../../assets/images/cargolux-home_1.png';\r\n\r\nconst UserContext = React.createContext({\r\n permissions: {},\r\n} as IUserInfo);\r\n\r\nconst UserContextProvider: React.FC = ({ children }) => {\r\n const getUserPermissions = async () => {\r\n try {\r\n return await AuthorizationService.getUserDetails();\r\n } catch (error) {\r\n console.error('$Get user permissions: ' + JSON.stringify(error, null, 2));\r\n throw error;\r\n }\r\n };\r\n\r\n const [initialized, setInitialized] = useState(false);\r\n const [userInfo, setUserInfo] = useState({\r\n permissions: {},\r\n } as IUserInfo);\r\n\r\n const loadUserPermissions = () => {\r\n let instance = AuthenticationService.getInstance();\r\n let userAccount = instance.getAccount();\r\n\r\n if (!userAccount) {\r\n console.error('Account is null or empty. Authentication is required.');\r\n return;\r\n }\r\n\r\n getUserPermissions()\r\n .then((userDetails) => {\r\n if (!userDetails) {\r\n console.error('User details are empty');\r\n return;\r\n }\r\n\r\n let permissions = [\r\n ...userDetails.permissions,\r\n ...(instance.retrieveRolesFromToken() ?? []),\r\n ];\r\n\r\n setUserInfo({\r\n account: userAccount,\r\n userName: userAccount?.username,\r\n permissions: permissions ?? [],\r\n fullName: userDetails.user.fullName,\r\n lastName: userDetails.user.lastName,\r\n firstName: userDetails.user.firstName,\r\n gender: userDetails.gender,\r\n roleName: userDetails.user.roleName,\r\n isBlocked: userDetails.isBlocked,\r\n blockedFrom: userDetails.blockedFrom,\r\n email: userDetails.email,\r\n homepageText: userDetails.user.homepageText,\r\n });\r\n })\r\n .catch((e) => {\r\n console.error(e);\r\n })\r\n .finally(() => setInitialized(true));\r\n };\r\n\r\n useEffect(() => {\r\n loadUserPermissions();\r\n }, []);\r\n\r\n if (!initialized)\r\n return (\r\n \r\n \r\n \r\n \r\n Hold on, we are loading your information...\r\n \r\n \r\n \r\n );\r\n\r\n if (initialized && userInfo && _.isEmpty(userInfo?.permissions))\r\n return ;\r\n\r\n return (\r\n {children}\r\n );\r\n};\r\n\r\nexport { UserContext, UserContextProvider };\r\n\r\nexport const useUserContext = () => useContext(UserContext);\r\n","import React, {useContext} from 'react';\r\nimport {Redirect, Route, RouteProps} from 'react-router-dom';\r\n\r\nimport {UserContext} from '../../context/User/UserContext';\r\n\r\ninterface IPrivateRoute extends RouteProps {\r\n permission: string;\r\n}\r\n\r\nconst PrivateRoute: React.FC = ({\r\n permission,\r\n render,\r\n ...rest\r\n}) => {\r\n const { permissions: userPermissions } = useContext(UserContext);\r\n\r\n if (!render) {\r\n console.error('render prop in PrivateRoute is mandatory!');\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n userPermissions.includes(permission) ? (\r\n render(props)\r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n );\r\n};\r\n\r\nexport default PrivateRoute;\r\n","import React from 'react';\r\nimport {Redirect, Route} from 'react-router-dom';\r\n\r\nimport {useGlobalStorageContext} from '../../context/GlobalStorage/GlobalStorageProvider';\r\nimport IRoute from '../../models/IRoute';\r\nimport PrivateRoute from '../PrivateRoute/PrivateRoute';\r\n\r\ninterface RoutesProps {\r\n items: IRoute[];\r\n basePath?: string;\r\n mainRoutes?: boolean;\r\n}\r\n\r\nconst Routes: React.FC = ({\r\n items,\r\n basePath,\r\n mainRoutes = false,\r\n}) => {\r\n const { ClearLogs } = useGlobalStorageContext();\r\n\r\n return (\r\n <>\r\n {mainRoutes && console.log(`Private root in main routes`)}\r\n {items.map(({ path, exact, permission, component }: IRoute) => (\r\n \r\n {permission ? (\r\n {\r\n if (component) {\r\n if (mainRoutes) {\r\n // Clear storage\r\n ClearLogs();\r\n }\r\n return <>{component};\r\n } else {\r\n return undefined;\r\n }\r\n }}\r\n />\r\n ) : (\r\n {\r\n if (component) {\r\n if (mainRoutes) {\r\n // Clear storage\r\n ClearLogs();\r\n }\r\n return <>{component};\r\n } else {\r\n return undefined;\r\n }\r\n }}\r\n />\r\n )}\r\n \r\n ))}\r\n {basePath && (\r\n }\r\n />\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Routes;\r\n","var _path, _circle;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgErrorWhite(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.8081 3.69867C10.5689 3.45996 10.2433 3.32825 9.90543 3.33353C9.21605 3.3443 8.66554 3.91119 8.67498 4.60059V10.8164C8.66878 11.2671 8.90567 11.6862 9.29496 11.9133C9.68425 12.1405 10.1657 12.1405 10.555 11.9133C10.9443 11.6862 11.1812 11.2671 11.175 10.8164V4.60059C11.1796 4.26272 11.0472 3.93737 10.8081 3.69867ZM11.4582 14.6224C11.4582 13.7595 10.7587 13.0599 9.89573 13.0599C9.48134 13.0599 9.08391 13.2245 8.79089 13.5176C8.49787 13.8106 8.33325 14.208 8.33325 14.6224C8.33325 15.0368 8.49787 15.4342 8.79089 15.7272C9.08391 16.0203 9.48134 16.1849 9.89573 16.1849C10.3101 16.1849 10.7075 16.0203 11.0006 15.7272C11.2936 15.4342 11.4582 15.0368 11.4582 14.6224Z\",\n fill: \"white\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 9.5,\n stroke: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgErrorWhite);\nexport default __webpack_public_path__ + \"static/media/errorWhite.18cfb605.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgSuccess(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 32,\n height: 32,\n fill: \"url(#pattern0)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern0\",\n patternContentUnits: \"objectBoundingBox\",\n width: 1,\n height: 1\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#image0\",\n transform: \"scale(0.0119048)\"\n })), /*#__PURE__*/React.createElement(\"image\", {\n id: \"image0\",\n width: 84,\n height: 84,\n xlinkHref: \"data:image/png;base64,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\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSuccess);\nexport default __webpack_public_path__ + \"static/media/success.145a5d16.svg\";\nexport { ForwardRef as ReactComponent };","export enum MessageType {\r\n Success = 'success',\r\n Error = 'error',\r\n Warning = 'warning',\r\n Info = 'info',\r\n}\r\n","import React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport MuiSnackbar from '@material-ui/core/Snackbar';\r\nimport SnackbarContent from '@material-ui/core/SnackbarContent';\r\n\r\nimport {ReactComponent as ErrorIcon} from '../../../assets/icons/errorWhite.svg';\r\nimport {ReactComponent as SuccessIcon} from '../../../assets/icons/success.svg';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport styles from './Snackbar.module.scss';\r\n\r\ninterface ISnackbarProps {\r\n message: string;\r\n type: MessageType;\r\n}\r\n\r\nconst Snackbar: React.FC = ({ message, type }) => {\r\n let style = '';\r\n switch (type) {\r\n case MessageType.Error:\r\n style = styles.error;\r\n break;\r\n case MessageType.Success:\r\n style = styles.success;\r\n break;\r\n case MessageType.Warning:\r\n style = styles.warning;\r\n break;\r\n case MessageType.Info:\r\n style = styles.info;\r\n break;\r\n default:\r\n style = styles.info;\r\n }\r\n\r\n return (\r\n \r\n \r\n {type === MessageType.Success && }\r\n {type === MessageType.Error && (\r\n \r\n )}\r\n {message}\r\n \r\n }\r\n />\r\n \r\n );\r\n};\r\nexport default Snackbar;\r\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\r\n\r\nimport Snackbar from '../../components/commons/Snackbar';\r\nimport {MessageType} from '../../utils/MessageType';\r\n\r\ninterface ISnackbarContextProps {\r\n addMessage: (message: string, type?: MessageType) => void;\r\n}\r\n\r\nconst SnackbarContext = React.createContext({\r\n addMessage: () => {},\r\n});\r\n\r\nexport const SnackbarProvider: React.FC = ({ children }) => {\r\n const [message, setMessage] = useState('');\r\n const [type, setType] = useState(MessageType.Error);\r\n\r\n useEffect(() => {\r\n if (message !== '') {\r\n const timer = setTimeout(() => {\r\n setMessage('');\r\n setType(MessageType.Error);\r\n }, 5000);\r\n return () => clearTimeout(timer);\r\n }\r\n }, [message]);\r\n\r\n const addMessage = useCallback((message: string, type?: MessageType) => {\r\n setMessage(message);\r\n setType(type ?? MessageType.Error);\r\n }, []);\r\n\r\n const value = useMemo(() => {\r\n return { addMessage };\r\n }, [addMessage]);\r\n\r\n return (\r\n \r\n <>\r\n {message && }\r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SnackbarContext;\r\n","import {useContext} from 'react';\r\n\r\nimport SnackbarContext from '../context/Snackbar/SnackbarContext';\r\n\r\nconst useSnackbar = () => {\r\n return useContext(SnackbarContext);\r\n};\r\n\r\nexport default useSnackbar;\r\n","import {CancelToken} from 'axios';\r\n\r\nimport IAirportCreate from '../models/IAirportCreate';\r\nimport IAirportDetails from '../models/IAirportDetails';\r\nimport IAirportGeneralComments from '../models/IAirportGeneralComments';\r\nimport IAirportGeneralInfo from '../models/IAirportGeneralInfo';\r\nimport IAirportImmigrationInfo from '../models/IAirportImmigrationInfo';\r\nimport IAirportSummary from '../models/IAirportSummary';\r\nimport IAirportTimeZone from '../models/IAirportTimeZone';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/Airports';\r\n\r\nconst AirportService = {\r\n getSummaries: (cancelToken?: CancelToken): Promise =>\r\n requests.get(`${API_ENDPOINT}/summaries`, { cancelToken }),\r\n getTimeZones: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/timezones`),\r\n addAirport: (airport: IAirportCreate): Promise =>\r\n requests.post(`${API_ENDPOINT}`, airport),\r\n deleteAirport: (airportCode: string): Promise =>\r\n requests.delete(`${API_ENDPOINT}/${airportCode}`),\r\n activateAirport: (code: string) =>\r\n requests.patch(`${API_ENDPOINT}/${code}/activate`),\r\n deactivateAirport: (code: string) =>\r\n requests.patch(`${API_ENDPOINT}/${code}/deactivate`),\r\n updateGeneralInfo: (code: string, generalInfo: IAirportGeneralInfo) =>\r\n requests.patch(`${API_ENDPOINT}/${code}/generalInfo`, generalInfo),\r\n getAirportDetails: (code: string): Promise =>\r\n requests.get(`${API_ENDPOINT}/${code}`),\r\n getDetailsForCodes: (codes: string[]): Promise =>\r\n requests.get(`${API_ENDPOINT}?codes=${JSON.stringify(codes)}`),\r\n updateImmigrationInfo: (\r\n code: string,\r\n immigrationInfo: IAirportImmigrationInfo\r\n ): Promise =>\r\n requests.patch(`${API_ENDPOINT}/${code}/immigration`, immigrationInfo),\r\n updateGeneralComments: (\r\n code: string,\r\n generalComments: IAirportGeneralComments\r\n ): Promise =>\r\n requests.patch(`${API_ENDPOINT}/${code}/generalComments`, generalComments),\r\n updateComments: (code: string, comments: string): Promise =>\r\n requests.patch(`${API_ENDPOINT}/${code}/comments`, { comments }),\r\n};\r\n\r\nexport default AirportService;\r\n","//Model\r\nimport ICountry from '../models/ICountry';\r\n//API Service\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/Country';\r\n\r\n//! You Should not use the Service directly, call the useCountry Hook instead\r\nconst CountryService = {\r\n get: (): Promise => requests.get(`${API_ENDPOINT}/`),\r\n getBySearchText: (searchText: string): Promise =>\r\n requests.get(`${API_ENDPOINT}/${searchText}`),\r\n};\r\nexport default CountryService;\r\n","import IKeyValuePair from '../models/IKeyValuePair';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/Settings';\r\n\r\n//! You Should not use the Service directly, call the useCountry Hook instead\r\nconst CountryService = {\r\n getETravelSettings: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/category/ETRAVEL`),\r\n\r\n getNFSAMaxDaysInFuture: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/nfsa/maxDays`),\r\n};\r\nexport default CountryService;\r\n","import React, {useCallback, useEffect, useState} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IAirportTimeZone from '../../models/IAirportTimeZone';\r\nimport ICountry from '../../models/ICountry';\r\nimport IKeyValuePair from '../../models/IKeyValuePair';\r\nimport AirportService from '../../services/AirportService';\r\nimport CountryService from '../../services/CountryService';\r\nimport SettingsService from '../../services/SettingsService';\r\n\r\ninterface IClientAppContextProps {\r\n countries: ICountry[];\r\n airportsTimeZones: IAirportTimeZone[];\r\n settings: IKeyValuePair[];\r\n nfsaMaxDaysInFuture: number;\r\n isBusinessLoaded: boolean;\r\n getSettingValue: (key: string) => string | undefined;\r\n getAirportTimezoneByCode: (code: string) => IAirportTimeZone | undefined;\r\n}\r\n\r\nexport const ClientAppContextDefaultState: IClientAppContextProps = {\r\n countries: [],\r\n airportsTimeZones: [],\r\n settings: [],\r\n nfsaMaxDaysInFuture: 50,\r\n isBusinessLoaded: false,\r\n getSettingValue: () => undefined,\r\n getAirportTimezoneByCode: () => undefined,\r\n};\r\n\r\nconst ClientAppContext = React.createContext({\r\n ...ClientAppContextDefaultState,\r\n});\r\n\r\nconst ClientAppContextProvider: React.FC = ({\r\n children,\r\n}) => {\r\n const { addMessage } = useSnackbar();\r\n\r\n const [countries, setCountries] = useState([]);\r\n const [airportsTimeZones, setAirportsTimeZone] = useState(\r\n []\r\n );\r\n const [isLoaded, setIsLoaded] = useState(false);\r\n const [settings, setSettings] = useState([]);\r\n const [nfsaMaxDaysInFuture, setNfsaMaxDaysInFuture] = useState(50);\r\n\r\n useEffect(() => {\r\n getAllData();\r\n }, []);\r\n\r\n const getAllData = () => {\r\n Promise.all([\r\n CountryService.get(),\r\n SettingsService.getETravelSettings(),\r\n AirportService.getTimeZones(),\r\n SettingsService.getNFSAMaxDaysInFuture(),\r\n ])\r\n .then((response) => {\r\n setCountries(response[0]);\r\n setSettings(response[1]);\r\n setAirportsTimeZone(response[2]);\r\n setNfsaMaxDaysInFuture(response[3]);\r\n setIsLoaded(true);\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const getSettingValue = useCallback(\r\n (key: string) => settings.find((s) => s.key === key)?.value,\r\n [settings]\r\n );\r\n\r\n const getAirportTimezoneByCode = useCallback(\r\n (code: string) => airportsTimeZones?.find((t) => t.code === code),\r\n [airportsTimeZones]\r\n );\r\n\r\n const value = {\r\n countries,\r\n airportsTimeZones,\r\n settings,\r\n nfsaMaxDaysInFuture,\r\n isBusinessLoaded: isLoaded,\r\n };\r\n\r\n return (\r\n \r\n {isLoaded && children}\r\n \r\n );\r\n};\r\n\r\nexport { ClientAppContext, ClientAppContextProvider };\r\n","import {useEffect, useRef} from 'react';\r\n\r\ninterface EventHandler {\r\n (event: T): void;\r\n}\r\n\r\nexport function useWindowEvent<\r\n K extends keyof HTMLElementEventMap,\r\n H extends HTMLElementEventMap[K]\r\n>(key: K, handler: EventHandler, elem: HTMLElement): void;\r\nexport function useWindowEvent<\r\n K extends keyof WindowEventMap,\r\n H extends WindowEventMap[K]\r\n>(key: K, handler: EventHandler, elem?: Window): void;\r\n/**\r\n * Generic DOM hook for attaching a callback function to a specific event on a\r\n * target element.\r\n * @param eventName event to subscribe to\r\n * @param handler callback to invoke when the event occurs\r\n * @param element target element to listen to, default to window\r\n */\r\nexport function useWindowEvent(\r\n eventName: string,\r\n handler: EventHandler,\r\n element: Window | HTMLElement = window\r\n) {\r\n /**\r\n * Using the useRef hook allows us to make sure that the _instance_ of the\r\n * handler being passed is the same instance as the handler being used by\r\n * the event listener.\r\n *\r\n * Another reason for useRef is that consumption of the handler is a DOM\r\n * callback, which _may_ not be prioritized to happen in the same event loop\r\n * as the enclosed handler. This helps preserve the _reference_ to the handler\r\n * that the user has passed in during the JavaScript execution of the event\r\n * handler.\r\n *\r\n * See: https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/\r\n */\r\n const handlerRef = useRef();\r\n\r\n useEffect(() => {\r\n handlerRef.current = handler;\r\n }, [handler]);\r\n\r\n useEffect(() => {\r\n const eventListener: EventHandler = (event) =>\r\n handlerRef.current !== undefined ? handlerRef.current(event) : null;\r\n element.addEventListener(eventName, eventListener);\r\n\r\n return () => {\r\n element.removeEventListener(eventName, eventListener);\r\n };\r\n }, [eventName, element]);\r\n}\r\n","import IBlockFlightStorage from '../../models/BlockFlights/IBlockFlightStorage';\r\nimport IConnectAsItem from '../../models/IConnectAsItem';\r\nimport IReservation from '../../models/Reservation/IReservation';\r\n\r\nexport enum LocalStorageActionType {\r\n CONNECTED_MEMBER = 'connected-member',\r\n BOOKING_STEPS = 'booking-steps',\r\n SET_IS_BOOKING_CANCELLED = 'is-booking-cancelled',\r\n SET_BLOCK_FLIGHT_STORAGE = 'block-flight-storage',\r\n}\r\n\r\nexport interface LocalStorageState {\r\n connectedMember: IConnectAsItem | null;\r\n bookingSteps: IReservation | null;\r\n isBookingCancelled: string | null;\r\n blockFlightStorage: IBlockFlightStorage | null;\r\n}\r\n\r\nexport type LocalStorageAction =\r\n | { type: LocalStorageActionType.CONNECTED_MEMBER; payload: string | null }\r\n | { type: LocalStorageActionType.BOOKING_STEPS; payload: string | null }\r\n | {\r\n type: LocalStorageActionType.SET_IS_BOOKING_CANCELLED;\r\n payload: string | null;\r\n }\r\n | {\r\n type: LocalStorageActionType.SET_BLOCK_FLIGHT_STORAGE;\r\n payload: string | null;\r\n };\r\n\r\nexport const LocalStorageReducer = (\r\n state: LocalStorageState,\r\n action: LocalStorageAction\r\n) => {\r\n switch (action.type) {\r\n case LocalStorageActionType.CONNECTED_MEMBER:\r\n return {\r\n ...state,\r\n connectedMember: JSON.parse(action.payload ?? 'null'),\r\n };\r\n case LocalStorageActionType.BOOKING_STEPS:\r\n return { ...state, bookingSteps: JSON.parse(action.payload ?? 'null') };\r\n case LocalStorageActionType.SET_IS_BOOKING_CANCELLED:\r\n return {\r\n ...state,\r\n isBookingCancelled: JSON.parse(action.payload ?? 'null'),\r\n };\r\n case LocalStorageActionType.SET_BLOCK_FLIGHT_STORAGE:\r\n return {\r\n ...state,\r\n blockFlightStorage: JSON.parse(action.payload ?? 'null'),\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default LocalStorageReducer;\r\n","import React, {createContext, useContext, useEffect, useReducer} from 'react';\r\n\r\nimport {useWindowEvent} from '../../hooks/useWindowEvent';\r\nimport LocalStorageReducer, {\r\n LocalStorageAction,\r\n LocalStorageActionType,\r\n LocalStorageState,\r\n} from './LocalStorageReducer';\r\n\r\nexport const InitialState: LocalStorageState = {\r\n connectedMember: JSON.parse(\r\n localStorage.getItem(LocalStorageActionType.CONNECTED_MEMBER) ?? 'null'\r\n ),\r\n bookingSteps: JSON.parse(\r\n localStorage.getItem(LocalStorageActionType.BOOKING_STEPS) ?? 'null'\r\n ),\r\n isBookingCancelled:\r\n localStorage.getItem(LocalStorageActionType.SET_IS_BOOKING_CANCELLED) ??\r\n 'null',\r\n blockFlightStorage: JSON.parse(\r\n localStorage.getItem(LocalStorageActionType.SET_BLOCK_FLIGHT_STORAGE) ??\r\n 'null'\r\n ),\r\n};\r\n\r\nexport interface ILocalStorageContext {\r\n state: LocalStorageState;\r\n dispatch: React.Dispatch;\r\n}\r\n\r\nconst LocalStorageContext = createContext({} as ILocalStorageContext);\r\n\r\nconst LocalStorageProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(LocalStorageReducer, InitialState);\r\n\r\n const handler = (e: StorageEvent) => {\r\n if (e.storageArea === localStorage) {\r\n dispatch({ type: e.key as LocalStorageActionType, payload: e.newValue });\r\n }\r\n };\r\n\r\n // set up the event listener\r\n useWindowEvent('storage', handler);\r\n\r\n // update localStorage\r\n useEffect(() => {\r\n if (state.connectedMember) {\r\n localStorage.setItem(\r\n LocalStorageActionType.CONNECTED_MEMBER,\r\n JSON.stringify(state.connectedMember)\r\n );\r\n } else {\r\n localStorage.removeItem(LocalStorageActionType.CONNECTED_MEMBER);\r\n }\r\n }, [state.connectedMember]);\r\n\r\n useEffect(() => {\r\n if (state.bookingSteps) {\r\n localStorage.setItem(\r\n LocalStorageActionType.BOOKING_STEPS,\r\n JSON.stringify(state.bookingSteps)\r\n );\r\n } else {\r\n localStorage.removeItem(LocalStorageActionType.BOOKING_STEPS);\r\n }\r\n }, [state.bookingSteps]);\r\n\r\n useEffect(() => {\r\n if (state.isBookingCancelled) {\r\n localStorage.setItem(\r\n LocalStorageActionType.SET_IS_BOOKING_CANCELLED,\r\n state.isBookingCancelled.toString()\r\n );\r\n } else {\r\n localStorage.removeItem(LocalStorageActionType.SET_IS_BOOKING_CANCELLED);\r\n }\r\n }, [state.isBookingCancelled]);\r\n\r\n useEffect(() => {\r\n if (state.blockFlightStorage) {\r\n localStorage.setItem(\r\n LocalStorageActionType.SET_BLOCK_FLIGHT_STORAGE,\r\n JSON.stringify(state.blockFlightStorage)\r\n );\r\n } else {\r\n localStorage.removeItem(LocalStorageActionType.SET_BLOCK_FLIGHT_STORAGE);\r\n }\r\n }, [state.blockFlightStorage]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default LocalStorageProvider;\r\n\r\nexport const useLocalStorageContext = () => useContext(LocalStorageContext);\r\n","import React, {createContext, useContext, useEffect, useState} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IUser from '../../models/IUser';\r\nimport UserService from '../../services/UserService';\r\n\r\nexport interface IPlannersContext {\r\n refreshPlanners: () => void;\r\n planners: IUser[];\r\n}\r\n\r\nconst PlannersContext = createContext({} as IPlannersContext);\r\n\r\nconst PlannersProvider: React.FC = ({ children }) => {\r\n const [planners, setPlanners] = useState([]);\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n refreshPlanners();\r\n }, []);\r\n\r\n const refreshPlanners = () => {\r\n return UserService.getAllPlanners()\r\n .then((response) => {\r\n setPlanners(response);\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default PlannersProvider;\r\n\r\nexport const usePlannersContext = () => useContext(PlannersContext);\r\n","import html2canvas from 'html2canvas';\r\nimport {useState} from 'react';\r\n\r\ninterface IScreenshot {\r\n image: string;\r\n takeScreenshot: (node: any) => Promise;\r\n error: any;\r\n}\r\n\r\nconst useScreenshot = (): IScreenshot => {\r\n const [image, setImage] = useState('');\r\n const [error, setError] = useState(null);\r\n /**\r\n * convert html node to image\r\n * @param {HTMLElement} node\r\n */\r\n const takeScreenshot = (node: any) => {\r\n if (!node) {\r\n throw new Error('You should provide correct html node.');\r\n }\r\n return html2canvas(node)\r\n .then((canvas) => {\r\n const croppedCanvas = document.createElement('canvas');\r\n const croppedCanvasContext = croppedCanvas.getContext('2d');\r\n // init data\r\n const cropPositionTop = 0;\r\n const cropPositionLeft = 0;\r\n const cropWidth = canvas.width;\r\n const cropHeight = canvas.height;\r\n\r\n croppedCanvas.width = cropWidth;\r\n croppedCanvas.height = cropHeight;\r\n\r\n croppedCanvasContext?.drawImage(\r\n canvas,\r\n cropPositionLeft,\r\n cropPositionTop\r\n );\r\n\r\n const base64Image = croppedCanvas.toDataURL();\r\n\r\n setImage(base64Image);\r\n return base64Image;\r\n })\r\n .catch(setError);\r\n };\r\n\r\n return {\r\n image,\r\n takeScreenshot,\r\n error,\r\n };\r\n};\r\n\r\nexport default useScreenshot;\r\n","const FileService = {\r\n /**\r\n * Removes eventual mime prefix from a base64 string\r\n * @param { string } data The base64 string.\r\n *\r\n * @returns { string } Returns The cleaned base64 string.\r\n */\r\n removeBase64StringPrefix: (data: string): string => {\r\n if (data.startsWith('data:')) {\r\n return data.slice(data.indexOf(',') + 1);\r\n }\r\n return data;\r\n },\r\n\r\n getContentWithBase64StringPrefix: (extension?: string): string => {\r\n let prefix: any = 'data:';\r\n\r\n if (!extension) {\r\n extension = 'noExtension';\r\n }\r\n\r\n //data:application/pdf;base64,\r\n switch (extension) {\r\n case 'pdf':\r\n prefix += 'application/pdf';\r\n break;\r\n case 'png':\r\n prefix += 'image/png';\r\n break;\r\n case 'gif':\r\n prefix += 'image/gif';\r\n break;\r\n case 'xls':\r\n prefix += 'application/vnd.ms-excel';\r\n break;\r\n case 'xlsx':\r\n prefix +=\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\r\n break;\r\n case 'doc':\r\n prefix += 'application/msword';\r\n break;\r\n case 'docx':\r\n prefix +=\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\r\n break;\r\n case 'zip':\r\n prefix += 'application/zip';\r\n break;\r\n case 'rar':\r\n prefix += 'application/x-rar-compressed';\r\n break;\r\n case 'htm':\r\n case 'html':\r\n prefix += 'text/html';\r\n break;\r\n case 'txt':\r\n prefix += 'text/plain';\r\n break;\r\n case 'xml':\r\n prefix += 'application/xml';\r\n break;\r\n case 'csv':\r\n prefix += 'application/CSV';\r\n break;\r\n case 'noExtension':\r\n prefix += 'text/plain';\r\n break;\r\n }\r\n\r\n return prefix + ';base64,';\r\n },\r\n\r\n getContentType: (fileData: any): string => {\r\n const uint = new Uint8Array(fileData);\r\n let bytes: string[] = [];\r\n uint.forEach((byte) => {\r\n bytes.push(byte.toString(16));\r\n });\r\n let mimeType: string = ''; // = getContentMimetype(hex);\r\n return mimeType;\r\n },\r\n\r\n convertDataToBinary: (data: string, dataArray?: number[]) => {\r\n var base64 = FileService.removeBase64StringPrefix(data);\r\n var raw = window.atob(base64);\r\n var rawLength = raw.length;\r\n\r\n dataArray = new Array(rawLength);\r\n\r\n for (let i: number = 0; i < rawLength; i++) {\r\n dataArray[i] = raw.charCodeAt(i);\r\n }\r\n return dataArray;\r\n },\r\n isFileTypeAllowed: (extension: string): boolean => {\r\n let ret: boolean = false;\r\n\r\n switch (extension) {\r\n case 'pdf':\r\n case 'png':\r\n case 'gif':\r\n case 'xls':\r\n case 'csv':\r\n case 'xlsx':\r\n case 'doc':\r\n case 'docx':\r\n case 'zip':\r\n case 'rar':\r\n case 'txt':\r\n case 'htm':\r\n case 'xml':\r\n case '':\r\n ret = true;\r\n break;\r\n }\r\n return ret;\r\n },\r\n\r\n getFileExtension: (fileName: string): string => {\r\n if (fileName && fileName.lastIndexOf('.') > 0) {\r\n const fname = fileName.substring(fileName.lastIndexOf('.') + 1);\r\n return fname;\r\n }\r\n return '';\r\n },\r\n\r\n /**\r\n * Open file content\r\n * @param { data } data The object containing the file information.\r\n * @param { string } fileName The name of the file\r\n * @param { string } contentType The file content type\r\n * @param { string } file extension\r\n *\r\n * The way to open the file.\r\n */\r\n openFile(data: string, fileName: string, contentType?: string): void {\r\n var link = document.createElement('a');\r\n link.innerHTML = 'Download file';\r\n link.download = fileName;\r\n link.href = contentType ? contentType : '' + data;\r\n link.target = '_blank';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n },\r\n\r\n /**\r\n * Converts base64 string to Blob.\r\n * The performance can be improved by processing the byteCharacters in smaller slices, rather than all at once\r\n * by using a sliceSize (Default 512).\r\n *\r\n * @param {string} b64Data The string to convert to Blob.\r\n * @param {string} contentType The content type of the Blob.\r\n * @param {number} sliceSize The size of the slice used to process the byteCharacters.\r\n * @returns { Blob } The blob object.\r\n */\r\n b64toBlob(b64Data: string, contentType: string, sliceSize?: number): Blob {\r\n contentType = contentType || '';\r\n sliceSize = sliceSize || 512;\r\n\r\n // The atob function will decode a base64- encoded string into a new string with a character for each byte of the binary data.\r\n const byteCharacters = atob(b64Data);\r\n const byteArrays: any[] = [];\r\n\r\n // Each character's code point (charCode) will be the value of the byte. We can create an array of byte values by applying this\r\n // using the .charCodeAt method for each character in the string.\r\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n const slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n const byteNumbers = new Array(slice.length);\r\n for (let i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n\r\n // Converts this array of byte values into a real typed byte array by passing it to the Uint8Array constructor.\r\n const byteArray = new Uint8Array(byteNumbers);\r\n\r\n byteArrays.push(byteArray);\r\n }\r\n // Convert byteArrays to a Blob by wrapping it in an array passing it to the Blob constructor.\r\n return new Blob(byteArrays, { type: contentType });\r\n },\r\n\r\n dataURLtoFile(dataurl: string, filename: string): File {\r\n var arr = dataurl.split(',');\r\n var block = arr[0].match(/:(.*?);/);\r\n var mime = block != null ? block[1] : '';\r\n var bstr = atob(arr[1]);\r\n var n = bstr.length;\r\n var u8arr = new Uint8Array(n);\r\n\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n\r\n return new File([u8arr], filename, { type: mime });\r\n },\r\n};\r\n\r\nexport default FileService;\r\n","import {serialize} from './objectToFormData/objectToFormData';\r\n\r\n//! This function can't work with nested object due to yup's schema.describe() limitation\r\nexport default function isRequiredFieldMissing(\r\n schema: any,\r\n getValues: (key?: string) => {}\r\n) {\r\n let values: any = getValues();\r\n let fields: any = schema.describe().fields;\r\n return Object.keys(fields).some((key) => {\r\n if (\r\n fields[key].tests.findIndex(({ name }: any) => name === 'required') >=\r\n 0 &&\r\n (values[key] === undefined || values[key] === '' || values[key] === null)\r\n ) {\r\n return true;\r\n }\r\n });\r\n}\r\n\r\nexport function GetFormData(data: any) {\r\n const options = {\r\n /**\r\n * include array indices in FormData keys\r\n * defaults to false\r\n */\r\n indices: true,\r\n\r\n /**\r\n * treat null values like undefined values and ignore them\r\n * defaults to false\r\n */\r\n nullsAsUndefineds: false,\r\n\r\n /**\r\n * convert true or false to 1 or 0 respectively\r\n * defaults to false\r\n */\r\n booleansAsIntegers: false,\r\n\r\n /**\r\n * store arrays even if they're empty\r\n * defaults to false\r\n */\r\n allowEmptyArrays: true,\r\n dotNotation: true,\r\n };\r\n const formData = serialize(data, options);\r\n return formData;\r\n}\r\n","import IIssue from '../models/IIssue';\r\nimport {GetFormData} from '../utils/Forms';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/Issue';\r\n\r\nconst IssueService = {\r\n reportIssue: (issue: IIssue): Promise => {\r\n const formData = GetFormData(issue);\r\n return requests.post(`${API_ENDPOINT}`, formData, {\r\n headers: {\r\n 'content-type': 'multipart/form-data',\r\n },\r\n });\r\n },\r\n};\r\n\r\nexport default IssueService;\r\n","import React from 'react';\r\n\r\nimport MuiDrawer, {DrawerProps} from '@material-ui/core/Drawer';\r\n\r\nconst Drawer: React.FC = ({ anchor, children, ...props }) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nexport default Drawer;\r\n","import React from 'react';\r\n\r\nimport style from '../Drawer/Drawer.module.scss';\r\n\r\nconst DrawerActions: React.FC = ({ children }) => {\r\n return
{children}
;\r\n};\r\n\r\nexport default DrawerActions;\r\n","import React from 'react';\r\n\r\nimport Button, {ButtonProps} from '@material-ui/core/Button';\r\n\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\n\r\ninterface IDrawerCancelButtonProps extends ButtonProps {\r\n onClick: () => void;\r\n}\r\n\r\nconst DrawerCancelButton: React.FC = ({\r\n onClick,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {Constants.buttons.cancel}\r\n \r\n );\r\n};\r\n\r\nexport default DrawerCancelButton;\r\n","import React from 'react';\r\n\r\nimport style from './Drawer.module.scss';\r\n\r\nconst DrawerContent: React.FC = ({ children }) => {\r\n return
{children}
;\r\n};\r\n\r\nexport default DrawerContent;\r\n","import React from 'react';\r\n\r\nimport Button, {ButtonProps} from '@material-ui/core/Button';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\n\r\ninterface IDrawerSaveButtonProps extends ButtonProps {\r\n text?: string;\r\n loading?: boolean;\r\n}\r\n\r\nconst DrawerSaveButton: React.FC = ({\r\n text,\r\n loading,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {!!loading && }\r\n {!loading && `${text ? text : Constants.buttons.validate}`}\r\n \r\n );\r\n};\r\n\r\nexport default DrawerSaveButton;\r\n","import React from 'react';\r\n\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\n\r\nimport style from './Drawer.module.scss';\r\n\r\ninterface IDialogTitleProps {\r\n handleClose?(): void;\r\n\r\n centered?: boolean;\r\n}\r\n\r\nconst DrawerTitle: React.FC = ({\r\n handleClose,\r\n centered,\r\n children,\r\n}) => {\r\n return (\r\n
\r\n \r\n {children}\r\n {handleClose ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default DrawerTitle;\r\n","import React, {ReactNode} from 'react';\r\n\r\nimport MuiFormControl, {FormControlProps,} from '@material-ui/core/FormControl';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport styles from './FormControl.module.scss';\r\n\r\ninterface IFormControlProps extends FormControlProps {\r\n label?: string | ReactNode;\r\n description?: string;\r\n isOptional?: boolean;\r\n noAutoComplete?: boolean;\r\n}\r\n\r\nconst FormControl: React.FC = ({\r\n label,\r\n description,\r\n isOptional,\r\n children,\r\n fullWidth = true,\r\n noAutoComplete = false,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n <>\r\n {label && {label}}\r\n {/* //? this counters chrome's autocomplete */}\r\n {label && noAutoComplete && (\r\n {'noAutoComplete'}\r\n )}\r\n {isOptional && (\r\n \r\n Optional\r\n \r\n )}\r\n {description && {description}}\r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default FormControl;\r\n","import React from 'react';\r\n\r\nimport MuiTextField, {\r\n OutlinedTextFieldProps,\r\n StandardTextFieldProps,\r\n} from '@material-ui/core/TextField';\r\n\r\nimport styles from './TextField.module.scss';\r\n\r\ninterface IStandardTextFieldProps extends StandardTextFieldProps {\r\n readonly?: boolean;\r\n wrap?: boolean;\r\n defaultValue?: string | number;\r\n}\r\n\r\ninterface IOutlinedTextFieldProps extends OutlinedTextFieldProps {\r\n readonly?: boolean;\r\n wrap?: boolean;\r\n defaultValue?: string | number;\r\n}\r\n\r\n// @ts-ignore\r\nfunction getValue(props, defaultValue) {\r\n if (props.type === 'number') {\r\n return props.value;\r\n } else if (props.value) {\r\n return props.value;\r\n } else if (defaultValue) {\r\n return defaultValue;\r\n } else {\r\n return '-';\r\n }\r\n}\r\n\r\nconst TextField: React.FC<\r\n IStandardTextFieldProps | IOutlinedTextFieldProps\r\n> = ({\r\n readonly = false,\r\n wrap = false,\r\n defaultValue,\r\n fullWidth = true,\r\n ...props\r\n}) => {\r\n const style = wrap ? styles.readonlyWrap : styles.readonly;\r\n\r\n return (\r\n <>\r\n {readonly ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TextField;\r\n","import React from 'react';\r\nimport {Controller} from 'react-hook-form';\r\n\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport {makeStyles} from '@material-ui/core/styles';\r\nimport ToggleButton from '@material-ui/lab/ToggleButton';\r\nimport ToggleButtonGroup, {ToggleButtonGroupProps,} from '@material-ui/lab/ToggleButtonGroup';\r\n\r\nimport IOption from '../../../models/IOption';\r\n\r\nexport interface IToggleButtonsProps extends ToggleButtonGroupProps {\r\n name: string;\r\n options: IOption[];\r\n disabled?: boolean;\r\n control?: any;\r\n defaultValue?: any;\r\n error?: boolean;\r\n errorMessage?: React.ReactNode;\r\n size?: 'small' | 'medium';\r\n}\r\n\r\nconst ToggleButtons: React.FC = ({\r\n name,\r\n options: optionsProp,\r\n disabled,\r\n control,\r\n defaultValue,\r\n error = false,\r\n errorMessage = '',\r\n size = 'medium',\r\n ...rest\r\n}) => {\r\n\r\n const options = optionsProp ?? [];\r\n const initStyles = () => {\r\n let newObj = {\r\n primaryNav: {\r\n padding: '4px',\r\n width: '100%',\r\n borderRadius: '0px',\r\n backgroundColor: 'rgba(217, 224, 247, 0.5)',\r\n zIndex: 0,\r\n height: `${size === 'small' ? '40px' : '48px'}`,\r\n },\r\n b1: {\r\n background: 'transparent !important',\r\n float: 'left',\r\n padding: 0,\r\n textAlign: 'center',\r\n width: `${100 / options.length}%`,\r\n position: 'unset',\r\n border: '0px !important',\r\n margin: '0px !important',\r\n '&:first-child': {\r\n borderRadius: '3px 0 0 3px',\r\n },\r\n '&:last-child': {\r\n borderRadius: '0 3px 3px 0',\r\n },\r\n '& span:first-child': {\r\n display: 'block',\r\n paddingTop: '10px',\r\n paddingBottom: '10px',\r\n textDecoration: 'none',\r\n },\r\n '&$isActive': {\r\n '& span:first-child': {\r\n backgroundColor: 'transparent',\r\n transition: `all ${options.length * 0.25}s ease-out`,\r\n color: '#fff',\r\n },\r\n },\r\n },\r\n isActive: {},\r\n withindicator: {\r\n position: 'relative',\r\n '& $b1': {\r\n '&:last-child': {\r\n '&:before': {\r\n display: 'block',\r\n position: 'absolute',\r\n pointerEvents: 'none',\r\n transition: `all ${options.length * 0.25}s ease`,\r\n margin: '0px 4px',\r\n borderRadius: '4px',\r\n width: `calc((100% - 8px) / ${options.length})`,\r\n height: 'calc(100% - 8px)',\r\n backgroundColor: '#3d64d8',\r\n zIndex: '-1',\r\n },\r\n },\r\n },\r\n },\r\n } as any;\r\n options.map((option, index) => {\r\n newObj.b1 = {\r\n ...newObj.b1,\r\n ...{\r\n [`&:nth-child(${index})&$isActive ~ &:last-child:after`]: {\r\n content: '\"\"',\r\n left: `calc(((((100% - 8px)/${options.length}) * ${index - 1}) - ${\r\n 2 * (index - 1)\r\n }px)) !important`,\r\n },\r\n [`&:nth-child(${index})&$isActive ~ &:last-child:before`]: {\r\n content: '\"\"',\r\n left: `calc(((((100% - 8px)/${options.length}) * ${index - 1}) - ${\r\n 2 * (index - 1)\r\n }px)) !important`,\r\n },\r\n '&:last-child': {\r\n '&$isActive': {\r\n '&:before': {\r\n content: '\"\"',\r\n left: `calc(((100% - 8px) - ((100% - 8px)) / ${options.length})) !important`,\r\n },\r\n '&:after': {\r\n content: '\"\"',\r\n left: `calc(((100% - 8px) - ((100% - 8px)) / ${options.length})) !important`,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n });\r\n return makeStyles(newObj)(); // note that we execute the iife\r\n };\r\n\r\n const classes = initStyles();\r\n const tbg = (props: any) => (\r\n \r\n {options.map((opt, index) => (\r\n \r\n {opt.label}\r\n \r\n ))}\r\n \r\n );\r\n\r\n return (\r\n <>\r\n {control ? (\r\n \r\n tbg({\r\n ...props,\r\n onChange: (e: any, value: any) => {\r\n if (value !== null) {\r\n props.onChange(value);\r\n }\r\n },\r\n })\r\n }\r\n control={control}\r\n name={name}\r\n defaultValue={defaultValue}\r\n />\r\n ) : (\r\n tbg({})\r\n )}\r\n {error && {errorMessage}}\r\n \r\n );\r\n};\r\n\r\nexport default ToggleButtons;\r\n","import React, {useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Box, Typography} from '@material-ui/core';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport {useGlobalStorageContext} from '../../context/GlobalStorage/GlobalStorageProvider';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport FileService from '../../services/FileService';\r\nimport IssueService from '../../services/IssueService';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Constants from '../../utils/Constants';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport Drawer from '../commons/Drawer/Drawer';\r\nimport DrawerActions from '../commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../commons/Drawer/DrawerTitle';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport TextField from '../commons/TextField/TextField';\r\nimport ToggleButtons from '../commons/ToggleButtons/ToggleButtons';\r\n\r\ninterface IReportIssueDrawerProps {\r\n isVisible: boolean;\r\n onClose: () => void;\r\n screenshot: string;\r\n}\r\n\r\nexport interface IReportIssueForm {\r\n subject: string;\r\n description: string;\r\n severity: string;\r\n}\r\n\r\nconst ReportIssueSchema = yup.object().shape({\r\n subject: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n severity: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n});\r\nconst ReportIssueDrawer: React.FC = ({\r\n isVisible,\r\n onClose,\r\n screenshot,\r\n}) => {\r\n const { GetLogs, GetPageTile } = useGlobalStorageContext();\r\n\r\n const form = useForm({\r\n resolver: yupResolver(ReportIssueSchema),\r\n mode: 'onChange',\r\n });\r\n\r\n const { addMessage } = useSnackbar();\r\n const [updating, setUpdating] = useState(false);\r\n\r\n const handleSubmit = (formData: IReportIssueForm) => {\r\n setUpdating(true);\r\n let logs = GetLogs();\r\n\r\n IssueService.reportIssue({\r\n subject: formData.subject,\r\n description: formData.description,\r\n severity: formData.severity,\r\n data: new File([logs.join('\\n\\n')], 'attachment.txt', {\r\n type: 'text/plain',\r\n }),\r\n screenshot: FileService.dataURLtoFile(screenshot, 'screenshot.jpg'),\r\n })\r\n .then((result) => {\r\n result\r\n ? addMessage('Issue reported successfully', MessageType.Success)\r\n : addMessage(\"Couldn't report the issue\");\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n })\r\n .finally(() => {\r\n setUpdating(false);\r\n onClose();\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n onClose()}>\r\n Report Issue\r\n \r\n \r\n \r\n \r\n Use this form only on the page where you discover an issue\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n onClose();\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReportIssueDrawer;\r\n","import React, {useState} from 'react';\r\n\r\nimport Fab from '@material-ui/core/Fab';\r\nimport ContactMailIcon from '@material-ui/icons/ContactMail';\r\n\r\nimport useScreenshot from '../../hooks/useScreenshot';\r\nimport styles from './ReportIssue.module.scss';\r\nimport ReportIssueDrawer from './ReportIssueDrawer';\r\n\r\ninterface IReportIssueProps {\r\n contentRef: any;\r\n}\r\n\r\nconst ReportIssue: React.FC = ({ contentRef }) => {\r\n const [drawerVisible, setDrawerVisible] = useState(false);\r\n const { image, takeScreenshot } = useScreenshot();\r\n const getImage = () => takeScreenshot(contentRef.current);\r\n\r\n return (\r\n <>\r\n {\r\n //takeScreenshot(\"jpg\");\r\n getImage();\r\n setDrawerVisible(true);\r\n }}\r\n color=\"primary\"\r\n aria-label=\"Report Issue\"\r\n size={'small'}\r\n className={styles.reportIssue}\r\n >\r\n \r\n \r\n {\r\n setDrawerVisible(false);\r\n //clear();\r\n }}\r\n screenshot={image ?? ''}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default ReportIssue;\r\n","export enum LayoutActionType {\r\n SET_SELECTED_MENU_ITEM,\r\n SET_IS_MENU_OPEN,\r\n SET_FULLWIDTH,\r\n}\r\n\r\nexport interface LayoutState {\r\n selectedMenuItem: string;\r\n isMenuOpen: boolean;\r\n fullWidth: boolean;\r\n}\r\n\r\nexport type LayoutAction =\r\n | { type: LayoutActionType.SET_SELECTED_MENU_ITEM; payload: string }\r\n | { type: LayoutActionType.SET_IS_MENU_OPEN; payload: boolean }\r\n | { type: LayoutActionType.SET_FULLWIDTH; payload: boolean };\r\n\r\nexport const LayoutReducer = (state: LayoutState, action: LayoutAction) => {\r\n switch (action.type) {\r\n case LayoutActionType.SET_SELECTED_MENU_ITEM:\r\n return { ...state, selectedMenuItem: action.payload };\r\n case LayoutActionType.SET_IS_MENU_OPEN:\r\n return { ...state, isMenuOpen: action.payload };\r\n case LayoutActionType.SET_FULLWIDTH:\r\n return { ...state, fullWidth: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default LayoutReducer;\r\n","import React, {createContext, useContext, useReducer} from 'react';\r\n\r\nimport LayoutReducer, {LayoutAction, LayoutActionType, LayoutState,} from './LayoutReducer';\r\n\r\nexport const InitialState: LayoutState = {\r\n selectedMenuItem: '',\r\n isMenuOpen: false,\r\n fullWidth: false,\r\n};\r\n\r\nexport interface ILayoutContext {\r\n state: LayoutState;\r\n dispatch: React.Dispatch;\r\n openMenu: () => void;\r\n closeMenu: () => void;\r\n toggleMenu: () => void;\r\n setFullWidth: (value: boolean) => void;\r\n}\r\n\r\nconst LayoutContext = createContext({} as ILayoutContext);\r\n\r\nconst LayoutProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(LayoutReducer, InitialState);\r\n\r\n const openMenu = () => {\r\n dispatch({ type: LayoutActionType.SET_IS_MENU_OPEN, payload: true });\r\n };\r\n const closeMenu = () => {\r\n dispatch({ type: LayoutActionType.SET_IS_MENU_OPEN, payload: false });\r\n };\r\n const toggleMenu = () => {\r\n dispatch({\r\n type: LayoutActionType.SET_IS_MENU_OPEN,\r\n payload: !state.isMenuOpen,\r\n });\r\n };\r\n const setFullWidth = (value: boolean) => {\r\n dispatch({ type: LayoutActionType.SET_FULLWIDTH, payload: value });\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useLayoutContext = () => useContext(LayoutContext);\r\n\r\nexport default LayoutProvider;\r\n","const PermissionsList = {\r\n eTravelSettings: 'eTravel-Settings',\r\n eTravelImmigrationDocumentApproval: 'eTravel-ImmigrationDocument-Approval',\r\n eTravelSettingsApplicationSettings: 'eTravel-Settings-ApplicationSettings',\r\n eTravelSettingsAirportDetails: 'eTravel-Settings-AirportDetails',\r\n eTravelSettingsApisConfiguration: 'eTravel-Apis-Settings-Configuration',\r\n eTravelSettingsAirportAdd: 'eTravel-Settings-AirportAdd',\r\n eTravelSettingsTrainingCatalogue: 'eTravel-Settings-TrainingCatalogue',\r\n eTravelSettingsETicketTemplate: 'eTravel-Settings-eTicketTemplate',\r\n eTravelSettingsEMailTemplates: 'eTravel-Settings-EmailTemplates',\r\n eTravelSettingsWCMPages: 'eTravel-Settings-WCMPages',\r\n eTravelSettingsHelpPages: 'eTravel-Settings-HelpPages',\r\n eTravelSettingsBlockFlightsReasons: 'eTravel-Settings-BlockFlightsReasons',\r\n eTravelMyInformation: 'eTravel-MyInformation',\r\n eTravelMyInformationPersonalInfo: 'eTravel-MyInformation-PersonalInfo',\r\n eTravelMyInformationImmigrationData: 'eTravel-MyInformation-ImmigrationData',\r\n eTravelMyInformationEmployeeInfo: 'eTravel-MyInformation-EmployeeInfo',\r\n eTravelMyInformationFamilyMembers: 'eTravel-MyInformation-FamilyMembers',\r\n eTravelMyInformationGuests: 'eTravel-MyInformation-Guests',\r\n eTravelUserManagementRoleConfiguration:\r\n 'eTravel-UserManagement-RoleConfiguration',\r\n eTravelUserManagementMemberAdministration:\r\n 'eTravel-UserManagement-MemberAdministration',\r\n eTravelUserManagementGuestManagement:\r\n 'eTravel-UserManagement-GuestManagement',\r\n eTravelUserManagementGuestRegistration:\r\n 'eTravel-UserManagement-GuestRegistration',\r\n eTravelUserManagementGuestOwnership: 'eTravel-UserManagement-GuestOwnership',\r\n eTravelUserManagementUserPermissions:\r\n 'eTravel-UserManagement-UserPermissions',\r\n eTravelUserManagementImpersonationAll:\r\n 'eTravel-UserManagement-ImpersonationAll',\r\n eTravelUserManagementConnectAs: 'eTravel-UserManagement-ConnectAs',\r\n eTravelUserManagementImpersonationSpecific:\r\n 'eTravel-UserManagement-ImpersonationSpecific',\r\n eTravelFlightManagementDepartures: 'eTravel-FlightManagement-Departures',\r\n eTravelFlightManagementTimatic: 'eTravel-FlightManagement-Timatic',\r\n eTravelFlightManagementBlockFlights: 'eTravel-FlightManagement-BlockFlights',\r\n eTravelReservationMyReservations: 'eTravel-Reservation-MyReservations',\r\n eTravelReservationManageReservations:\r\n 'eTravel-Reservation-ManageReservations',\r\n eTravelReservationMakeReservation: 'eTravel-Reservation-MakeReservation',\r\n eTravelReservation72hrsBooking: 'eTravel-Reservation-72hrsBooking',\r\n eTravelReservationEditServices: 'eTravel-Reservation-EditServices',\r\n eTravelReservationDetailsFromPaxList:\r\n 'eTravel-Reservation-DetailsFromPaxList',\r\n eTravelReservationReservationApproval:\r\n 'eTravel-Reservation-ReservationApproval',\r\n eTravelReservationConsultReservation:\r\n 'eTravel-Reservation-ConsultReservation',\r\n eTravelReservationSendReservation: 'eTravel-Reservation-SendReservation',\r\n eTravelReservationMailsHistory: 'eTravel-Reservation-MailsHistory',\r\n eTravelReservationMyIDTravel: 'eTravel-Reservation-MyIDTravel',\r\n eTravelReservationPastBooking: 'eTravel-Reservation-Past-Booking',\r\n eTravelDailyTasksTaskList: 'eTravel-DailyTasks-TaskList',\r\n eTravelDailyTasksTaskListAllAssignation:\r\n 'eTravel-DailyTasks-TaskListAllAssignation',\r\n eTravelDailyTasksTaskListOutstationAssignation:\r\n 'eTravel-DailyTasks-TaskListOutstationAssignation',\r\n eTravelDailyTasksARM: 'eTravel-DailyTasks-ARM',\r\n eTravelDailyTasksWaitList: 'eTravel-DailyTasks-WaitList',\r\n eTravelDailyTasksPassengerList: 'eTravel-DailyTasks-PassengerList',\r\n eTravelDailyTasksPassengerListLight: 'eTravel-DailyTasks-PassengerListLight',\r\n eTravelDailyTasksPassengerListEmergency:\r\n 'eTravel-DailyTasks-PassengerListEmergency',\r\n eTravelDailyTasksPrintTickets: 'eTravel-DailyTasks-PrintTickets',\r\n cateringCrewSpecialMeals: 'catering-crew-special-meals',\r\n cateringUpliftStations: 'catering-uplift-stations',\r\n cateringFlightSchedule: 'catering-flight-schedule',\r\n cateringManualForecast: 'catering-manual-forecast',\r\n cateringCateringOrder: 'catering-catering-order',\r\n cateringForecast: 'catering-forecast',\r\n cateringDutyQuantities: 'catering-duty-quantities',\r\n eTravelReporting: 'eTravel-Reporting',\r\n eTravelReportingAuditLog: 'eTravel-Reporting-AuditLog',\r\n eTravelReportingNoShowConfirmed: 'eTravel-Reporting-NoShowConfirmed',\r\n eTravelReportingWarningList: 'eTravel-Reporting-WarningList',\r\n eTravelReportingTravelReport: 'eTravel-Reporting-TravelReport',\r\n eTravelReportingAccountingReport: 'eTravel-Reporting-AccountingReport',\r\n eTravelReportingAviationInsurance: 'eTravel-Reporting-AviationInsurance',\r\n eTravelReportingReportIssue: 'eTravel-Reporting-ReportIssue',\r\n eTravelReportingAuditLogSecurity: 'eTravel-Reporting-AuditLog-Security',\r\n eTravelDailyTasksRelatedTasks: 'eTravel-DailyTasks-Related-Tasks',\r\n eTravelReportingMemberByRole: 'eTravel-Reporting-MemberByRole',\r\n};\r\nexport default PermissionsList;\r\n","import clsx from 'clsx';\r\nimport React from 'react';\r\nimport {useLocation} from 'react-router-dom';\r\n\r\nimport {useTheme} from '@material-ui/core/styles';\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\n\r\nimport {useLayoutContext} from '../../context/LayoutProvider/LayoutProvider';\r\nimport styles from './Content.module.scss';\r\n\r\nconst Content: React.FC = ({ children }) => {\r\n const {\r\n state: { isMenuOpen, fullWidth },\r\n } = useLayoutContext();\r\n const theme = useTheme();\r\n const location = useLocation();\r\n const isLargeScreen = useMediaQuery(theme.breakpoints.up('lg'));\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default Content;\r\n","var _path, _circle;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgHelp(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 34,\n viewBox: \"0 0 20 34\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.1215 25.8318C8 25.8318 7.06542 24.8972 7.06542 23.7757V22.9533C6.91589 18.4673 9.94392 16.5234 12.1495 15.1028C14.5421 13.5701 15.8879 12.5607 15.8879 9.83178C15.8879 6.35514 13.3458 4.11215 9.42056 4.11215C8.48598 4.14953 4.11215 4.63551 4.11215 9.79439C4.11215 10.9159 3.17757 11.8505 2.05607 11.8505C0.934579 11.8505 0 10.9159 0 9.79439C0 2.20561 6.13084 0.0747664 9.34579 0H9.38318C15.6262 0 20 4.03738 20 9.83178C20 14.9533 16.7477 17.0467 14.3925 18.5794C12.1869 20 11.1402 20.785 11.215 22.8411C11.215 22.8785 11.215 22.8785 11.215 22.9159V23.7757C11.1776 24.9346 10.243 25.8318 9.1215 25.8318Z\",\n fill: \"#3D64D8\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 9.30839,\n cy: 31.3644,\n r: 2.35514,\n fill: \"#3D64D8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHelp);\nexport default __webpack_public_path__ + \"static/media/help.1aab4dc5.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgMail(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 21,\n viewBox: \"0 0 32 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.8863 12.3666C14.1437 12.5862 14.4716 12.7071 14.811 12.7071H16.6172C16.9569 12.7071 17.2855 12.5866 17.5426 12.3666L29.9479 1.82252C30.4543 1.39229 30.1501 0.563965 29.4856 0.563965H1.94262C1.27877 0.563965 0.974603 1.39194 1.48096 1.82252L13.8863 12.3666Z\",\n fill: \"#3D64D8\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 3.80044V18.8158C0 19.4563 0.776296 19.773 1.22433 19.3169L9.28586 11.0996L0.291591 3.66251C0.174955 3.56612 0 3.64993 0 3.80044Z\",\n fill: \"#3D64D8\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.4289 3.80044V18.8158C31.4289 19.4563 30.6519 19.773 30.2039 19.3169L22.1431 11.0996L31.1366 3.66251C31.2533 3.56612 31.4289 3.64993 31.4289 3.80044Z\",\n fill: \"#3D64D8\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.7145 12.3499L17.9054 14.4891C17.6435 14.7213 17.3062 14.8499 16.9559 14.8499H14.472C14.1217 14.8499 13.784 14.7213 13.5225 14.4891L10.7141 12.3499L2.85687 20.564H28.5717L20.7145 12.3499Z\",\n fill: \"#3D64D8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMail);\nexport default __webpack_public_path__ + \"static/media/mail.1decafae.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgMenu(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 20,\n viewBox: \"0 0 24 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.28579 2.57157C0.57598 2.57157 0 1.99559 0 1.28579C0 0.575574 0.57598 0 1.28579 0H22.7142C23.424 0 24 0.575574 24 1.28579C24 1.99559 23.424 2.57157 22.7142 2.57157H1.28579Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.28619 11.1442C0.575574 11.1442 0 10.5687 0 9.85805C0 9.14825 0.575574 8.57227 1.28579 8.57227H22.7138C23.4236 8.57227 23.9992 9.14825 23.9992 9.85805C23.9992 10.5683 23.4236 11.1438 22.7138 11.1438H1.28619V11.1442Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.28619 19.7142C0.575574 19.7142 0 19.1382 0 18.428C0 17.7182 0.575574 17.1426 1.28619 17.1426H22.7138C23.424 17.1426 24 17.7182 24 18.428C24 19.1382 23.424 19.7142 22.7138 19.7142H1.28619Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMenu);\nexport default __webpack_public_path__ + \"static/media/menu.6ad5e6b9.svg\";\nexport { ForwardRef as ReactComponent };","var _mask, _g;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgUserFemale(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 47,\n height: 47,\n viewBox: \"0 0 47 47\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _mask || (_mask = /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask0\",\n \"mask-type\": \"alpha\",\n maskUnits: \"userSpaceOnUse\",\n x: 0,\n y: 0,\n width: 47,\n height: 47\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M23.5 46.7908C36.4787 46.7908 47 36.3163 47 23.3954C47 10.4745 36.4787 0 23.5 0C10.5213 0 0 10.4745 0 23.3954C0 36.3163 10.5213 46.7908 23.5 46.7908Z\",\n fill: \"white\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask0)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M23.5 46.7908C36.4787 46.7908 47 36.3163 47 23.3954C47 10.4745 36.4787 0 23.5 0C10.5213 0 0 10.4745 0 23.3954C0 36.3163 10.5213 46.7908 23.5 46.7908Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M24.7622 27.1708C29.0179 27.1708 32.4678 23.0259 32.4678 17.9129C32.4678 12.7999 29.0179 8.65503 24.7622 8.65503C20.5065 8.65503 17.0565 12.7999 17.0565 17.9129C17.0565 23.0259 20.5065 27.1708 24.7622 27.1708ZM28.8374 30.6108H7.73218L4 43.2152H40.8036C40.8036 43.2152 35.0938 32.0491 33.9614 31.2523C32.8289 30.4554 28.8374 30.6108 28.8374 30.6108Z\",\n fill: \"#FFDECB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.82989 29.7265H28.9352C28.9352 29.7265 32.9267 29.5602 34.0591 30.4129C35.1915 31.2657 40.9013 43.2152 40.9013 43.2152C40.9013 43.2152 28.7172 48.2226 22.4995 48.2226C16.2819 48.2226 4.09772 43.2152 4.09772 43.2152L7.82989 29.7265Z\",\n fill: \"#CC0033\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M20.9332 19.5095H28.6864V30.0602C28.6864 30.0602 26.0079 34.6536 24.7157 34.6536C23.4235 34.6536 20.9332 30.0602 20.9332 30.0602V19.5095Z\",\n fill: \"#FFDECB\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M21.0439 25.5725C21.0439 25.5725 23.5914 27.039 24.8651 27.039C26.1388 27.039 28.6863 25.8099 28.6863 25.8099V26.7737C28.6863 26.7737 26.2523 27.9104 24.9837 27.9104C23.7151 27.9104 21.0439 26.7415 21.0439 26.7415V25.5725Z\",\n fill: \"#F6C4A9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M24.4511 5C30.6743 5 34.4562 10.0657 33.9933 16.8219C33.4175 25.226 28.649 29.0761 28.649 29.0761C28.649 29.0761 28.4224 25.8562 28.6061 25.7475C30.0223 24.9102 30.8519 22.66 31.538 20.2989C32.2096 17.9874 32.4552 17.2642 31.538 15.3704C31.538 15.3704 28.8893 14.4553 28.2802 13.8065C26.588 12.004 26.5367 10.3649 26.0853 10.0657C25.6339 9.7666 25.1296 11.9626 22.9537 13.4719C20.4518 15.2074 17.3441 15.181 17.1753 15.7808C17.0641 16.1761 17.4152 18.8785 17.6942 19.6617C17.9731 20.445 19.0102 24.3125 20.9833 25.5718C21.2579 25.747 21.2132 31.0694 21.0017 31.6828C20.7497 32.4132 19.8638 37.9433 17.6942 39.472C14.5513 41.6863 9.77376 39.8784 9.17799 39.472C2.64656 35.0166 7.06383 30.7301 9.90519 27.8234C11.3824 26.3121 7.96757 5 24.4511 5Z\",\n fill: \"#08284F\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUserFemale);\nexport default __webpack_public_path__ + \"static/media/userFemale.d7fe6cfd.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgUserMale(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 47,\n height: 47,\n viewBox: \"0 0 47 47\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M23.5 46.7908C36.4787 46.7908 47 36.3163 47 23.3954C47 10.4745 36.4787 0 23.5 0C10.5213 0 0 10.4745 0 23.3954C0 36.3163 10.5213 46.7908 23.5 46.7908Z\",\n fill: \"#FFBE6C\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M23.5 46.7908C36.4787 46.7908 47 36.3163 47 23.3954C47 10.4745 36.4787 0 23.5 0C10.5213 0 0 10.4745 0 23.3954C0 36.3163 10.5213 46.7908 23.5 46.7908Z\",\n fill: \"#FFBE6C\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M23.5 46.7908C36.4787 46.7908 47 36.3163 47 23.3954C47 10.4745 36.4787 0 23.5 0C10.5213 0 0 10.4745 0 23.3954C0 36.3163 10.5213 46.7908 23.5 46.7908Z\",\n fill: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.5716 34.0025C6.06276 32.7156 16.5351 29.7539 16.5351 29.7539H30.5232C30.5232 29.7539 40.2352 32.4499 41.4875 34.0025C41.759 34.3392 42.1342 35.3406 42.6132 37.007C43.1101 38.7357 34.6766 46.9986 23.5952 46.9986C12.5138 46.9986 4.65449 39.4944 4.91549 37.7099C5.22983 35.5608 5.44853 34.325 5.5716 34.0025Z\",\n fill: \"#D9E0F7\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.2139 22.1445H27.9978V32.2522H19.2139V22.1445Z\",\n fill: \"#FFDECB\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.214 18.1703C14.9213 18.1703 15.6778 17.1972 15.6778 15.6856C15.6778 14.174 15.3292 13.4004 13.8428 13.4004C12.3563 13.4004 11.637 13.8903 12.2416 15.6856C12.8462 17.4809 13.5067 18.1703 14.214 18.1703Z\",\n fill: \"#FFDECB\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M23.5222 26.9164C26.6692 26.9164 32.6797 20.9936 33.2999 15.9096C33.9201 10.8255 29.6461 5.22461 23.3797 5.22461C17.1133 5.22461 12.773 11.0547 13.4693 15.9096C14.1655 20.7645 20.3751 26.9164 23.5222 26.9164Z\",\n fill: \"#FFDECB\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M32.998 18.852C32.2907 18.852 31.5342 17.8788 31.5342 16.3672C31.5342 14.8556 31.8828 14.082 33.3692 14.082C34.8557 14.082 35.575 14.5719 34.9704 16.3672C34.3658 18.1625 33.7053 18.852 32.998 18.852Z\",\n fill: \"#FFDECB\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.7148 4.42899C20.6023 2.15695 27.7017 4.42899 27.7017 4.42899C27.7017 4.42899 30.5592 3.97626 31.6226 4.91828C35.7837 8.6044 33.6796 15.6721 33.6796 15.6721C33.6796 15.6721 31.3979 10.755 29.5937 9.35998C28.9947 8.89688 26.1677 10.0976 25.2522 9.40138C24.3366 8.70515 26.5202 8.21316 26.2409 7.89595C25.9617 7.57874 21.7937 9.40138 20.9924 9.07994C20.4736 8.87178 21.6846 7.75676 21.2142 7.89595C15.6373 9.54595 13.7193 15.5098 13.7193 15.5098C13.7193 15.5098 11.4927 7.48099 16.7148 4.42899Z\",\n fill: \"#543B00\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.3083 24.8379C19.3083 24.8379 22.6519 27.0462 23.6059 27.0462C24.5598 27.0462 27.9978 24.7578 27.9978 24.7578V25.7748C27.9978 25.7748 24.5513 27.9378 23.6059 27.9378C22.6604 27.9378 19.2139 25.7748 19.2139 25.7748L19.3083 24.8379Z\",\n fill: \"#F6C4A9\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M21.3599 32.3672H25.8305L24.4204 35.8387L25.1104 46.8075L21.7382 46.7825L22.6397 35.8387L21.3599 32.3672Z\",\n fill: \"#CC0033\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.1239 27.7109L23.7772 32.4601L21.1633 34.298L16.5903 29.4958L19.1239 27.7109Z\",\n fill: \"#D9E0F7\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M28.0884 27.7109L23.4351 32.4601L26.049 34.298L30.622 29.4958L28.0884 27.7109Z\",\n fill: \"#D9E0F7\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUserMale);\nexport default __webpack_public_path__ + \"static/media/userMale.ac7b938a.svg\";\nexport { ForwardRef as ReactComponent };","import IAlert from '../models/IAlert';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/Alerts';\r\n\r\nconst AlertService = {\r\n getAll: (): Promise => requests.get(`${API_ENDPOINT}`),\r\n getActiveAlerts: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/active`),\r\n createAlert: (alert: IAlert): Promise =>\r\n requests.post(`${API_ENDPOINT}`, alert),\r\n updateAlert: (alert: IAlert): Promise =>\r\n requests.put(`${API_ENDPOINT}`, alert),\r\n deleteAlert: (alertId: number): Promise =>\r\n requests.delete(`${API_ENDPOINT}/${alertId}`),\r\n};\r\n\r\nexport default AlertService;\r\n","import PopupState, {bindPopover, bindTrigger} from 'material-ui-popup-state';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport Badge from '@material-ui/core/Badge';\r\nimport Box from '@material-ui/core/Box';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Popover from '@material-ui/core/Popover';\r\nimport WarningRoundedIcon from '@material-ui/icons/WarningRounded';\r\n\r\nimport IAlert from '../../models/IAlert';\r\nimport AlertService from '../../services/AlertService';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\n\r\ninterface IAlertPopoverPopupProps {\r\n className?: any;\r\n}\r\n\r\nconst AlertPopoverPopup: React.FC = ({\r\n className,\r\n}) => {\r\n const [alerts, setAlerts] = useState([]);\r\n const [refreshInterval] = useState(3 * 60 * 1000); // 3 min\r\n\r\n const fetchAlerts = () => {\r\n AlertService.getActiveAlerts()\r\n .then((response) => setAlerts(response))\r\n .catch(() => setAlerts([]));\r\n };\r\n\r\n useEffect(() => {\r\n fetchAlerts();\r\n if (refreshInterval && refreshInterval > 0) {\r\n const interval = setInterval(fetchAlerts, refreshInterval);\r\n return () => clearInterval(interval);\r\n }\r\n }, [refreshInterval]);\r\n\r\n useEffect(() => {}, []);\r\n\r\n return (\r\n <>\r\n {alerts.length > 0 && (\r\n \r\n {(popupState) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {alerts.map((x) => (\r\n <>\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AlertPopoverPopup;\r\n","import useTheme from '@material-ui/core/styles/useTheme';\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\n\r\ntype IBreakpointKey =\r\n | 'xs'\r\n | 'sm'\r\n | 'md'\r\n | 'lg'\r\n | 'xl'\r\n | 'smdown'\r\n | 'mddown'\r\n | 'lgdown'\r\n | 'smup'\r\n | 'mdup'\r\n | 'lgup';\r\ntype IBreakpoint = Record;\r\n\r\nconst useBreakpoint = (): IBreakpoint => {\r\n const theme = useTheme();\r\n const xs = useMediaQuery(theme.breakpoints.only('xs'));\r\n const sm = useMediaQuery(theme.breakpoints.only('sm'));\r\n const md = useMediaQuery(theme.breakpoints.only('md'));\r\n const lg = useMediaQuery(theme.breakpoints.only('lg'));\r\n const xl = useMediaQuery(theme.breakpoints.only('xl'));\r\n\r\n return {\r\n xs,\r\n sm,\r\n md,\r\n lg,\r\n xl,\r\n smdown: xs || sm,\r\n mddown: xs || sm || md,\r\n lgdown: !xl,\r\n smup: !xs,\r\n mdup: md || lg || xl,\r\n lgup: lg || xl,\r\n };\r\n};\r\n\r\nexport default useBreakpoint;\r\n","import clsx from 'clsx';\r\nimport React, {useContext} from 'react';\r\nimport {useHistory, useLocation} from 'react-router-dom';\r\n\r\nimport {Typography} from '@material-ui/core';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport Box from '@material-ui/core/Box/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\r\nimport Grow from '@material-ui/core/Grow';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport MenuList from '@material-ui/core/MenuList';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Popper from '@material-ui/core/Popper';\r\nimport IconExpandLess from '@material-ui/icons/ExpandLess';\r\nimport IconExpandMore from '@material-ui/icons/ExpandMore';\r\nimport {ReactComponent as HelpIcon} from '../../assets/icons/help.svg';\r\nimport {ReactComponent as MailIcon} from '../../assets/icons/mail.svg';\r\nimport {ReactComponent as MenuIcon} from '../../assets/icons/menu.svg';\r\nimport {ReactComponent as UserFemaleIcon} from '../../assets/icons/userFemale.svg';\r\nimport {ReactComponent as UserMaleIcon} from '../../assets/icons/userMale.svg';\r\nimport AlertPopoverPopup from '../../components/Alerts/AlertPopoverPopup';\r\nimport {ClientAppContext} from '../../context/ClientAppContext/ClientAppContext';\r\nimport {useLayoutContext} from '../../context/LayoutProvider/LayoutProvider';\r\nimport {useLocalStorageContext} from '../../context/LocalStorageContext/LocalStorageContext';\r\nimport {LocalStorageActionType} from '../../context/LocalStorageContext/LocalStorageReducer';\r\nimport {UserContext} from '../../context/User/UserContext';\r\nimport useBreakpoint from '../../hooks/useBreakpoint';\r\nimport {AuthenticationService} from '../../services/AuthenticationService';\r\nimport Constants from '../../utils/Constants';\r\nimport PermissionsList from '../../utils/PermissionsList';\r\nimport styles from './Header.module.scss';\r\nimport {PhoneInTalk} from '@material-ui/icons';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\n\r\nconst Header: React.FC = () => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n const {\r\n toggleMenu,\r\n state: { fullWidth },\r\n } = useLayoutContext();\r\n const [open, setOpen] = React.useState(false);\r\n const anchorRef = React.useRef(null);\r\n const { fullName, permissions, roleName, gender } = useContext(UserContext);\r\n const breakpoint = useBreakpoint();\r\n\r\n const [openConnectedAs, setOpenConnectedAs] = React.useState(false);\r\n const anchorRefConnectedAs = React.useRef(null);\r\n\r\n const { state, dispatch } = useLocalStorageContext();\r\n const { getSettingValue } = useContext(ClientAppContext);\r\n\r\n const handleToggle = () => {\r\n setOpen((prevOpen) => !prevOpen);\r\n };\r\n\r\n const handleClose = (event: React.MouseEvent) => {\r\n if (\r\n anchorRef.current &&\r\n anchorRef.current.contains(event.target as HTMLElement)\r\n ) {\r\n return;\r\n }\r\n setOpen(false);\r\n };\r\n\r\n const handleToggleConnectedAs = () => {\r\n setOpenConnectedAs((prevOpen) => !prevOpen);\r\n };\r\n\r\n const handleCloseConnectedAs = (event: React.MouseEvent) => {\r\n if (\r\n anchorRefConnectedAs.current &&\r\n anchorRefConnectedAs.current.contains(event.target as HTMLElement)\r\n ) {\r\n return;\r\n }\r\n setOpenConnectedAs(false);\r\n };\r\n\r\n const handleRedirect = (url: string) => {\r\n history.push(url);\r\n setOpen(false);\r\n };\r\n\r\n const handleStopConnectAs = () => {\r\n dispatch({ type: LocalStorageActionType.CONNECTED_MEMBER, payload: null });\r\n dispatch({\r\n type: LocalStorageActionType.SET_IS_BOOKING_CANCELLED,\r\n payload: 'true',\r\n });\r\n handleRedirectConnectedAs('/');\r\n };\r\n\r\n const handleRedirectConnectedAs = (url: string) => {\r\n history.push(url);\r\n setOpenConnectedAs(false);\r\n setOpen(false);\r\n };\r\n\r\n const hasAvailableActions = () => {\r\n return permissions.includes(PermissionsList.eTravelMyInformation) ||\r\n permissions.includes(\r\n PermissionsList.eTravelUserManagementImpersonationAll\r\n ) ||\r\n permissions.includes(\r\n PermissionsList.eTravelUserManagementImpersonationSpecific\r\n ) ||\r\n (breakpoint.mddown && state.connectedMember)\r\n ? true\r\n : false;\r\n };\r\n\r\n const renderButtons = () => {\r\n return (\r\n <>\r\n \r\n {breakpoint.mddown ? (\r\n <>\r\n ) : (\r\n <>\r\n \r\n \r\n window.open(\r\n `mailto:${getSettingValue(\r\n Constants.settings.contactUsMail\r\n )}`\r\n )\r\n }\r\n >\r\n \r\n \r\n window.open(`/help`)}\r\n className={`${styles.iconButton} ${styles.helpIcon}`}\r\n >\r\n \r\n \r\n handleRedirect('/TravelEmergencyContact')}\r\n className={`${styles.iconButton} ${styles.helpIcon}`}\r\n >\r\n {/**/}\r\n \r\n \r\n \r\n )}\r\n <>\r\n {breakpoint.mddown ? (\r\n <>\r\n \r\n \r\n {state.connectedMember ? (\r\n \r\n {gender === 'F' ? : }\r\n \r\n ) : gender === 'F' ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {gender === 'F' ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {fullName}\r\n \r\n \r\n {roleName}\r\n \r\n \r\n {!open && (\r\n \r\n )}\r\n {open && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n {hasAvailableActions() && (\r\n \r\n {({ TransitionProps, placement }) => (\r\n \r\n \r\n \r\n \r\n {permissions.includes(\r\n PermissionsList.eTravelMyInformation\r\n ) && (\r\n handleRedirect('/myInformation/')}\r\n >\r\n My information\r\n \r\n )}\r\n {breakpoint.mddown && state.connectedMember ? (\r\n <>\r\n
\r\n \r\n handleRedirectConnectedAs('/information/')\r\n }\r\n >\r\n Information about{' '}\r\n {state.connectedMember.firstName\r\n .substring(0, 1)\r\n .toLocaleUpperCase()}\r\n {state.connectedMember.lastName\r\n .substring(0, 1)\r\n .toLocaleUpperCase()}\r\n \r\n \r\n handleRedirectConnectedAs('/connectAs')\r\n }\r\n >\r\n Change Profile\r\n \r\n handleStopConnectAs()}\r\n >\r\n Stop Connect as\r\n \r\n \r\n ) : (\r\n (permissions.includes(\r\n PermissionsList.eTravelUserManagementImpersonationAll\r\n ) ||\r\n permissions.includes(\r\n PermissionsList.eTravelUserManagementImpersonationSpecific\r\n )) && (\r\n handleRedirect('/connectAs')}\r\n >\r\n Connect as\r\n \r\n )\r\n )}\r\n \r\n AuthenticationService.getInstance().signOut()\r\n }\r\n >\r\n Logout\r\n \r\n
\r\n
\r\n
\r\n \r\n )}\r\n \r\n )}\r\n {!breakpoint.mddown &&\r\n state.connectedMember &&\r\n (permissions.includes(\r\n PermissionsList.eTravelUserManagementImpersonationAll\r\n ) ||\r\n permissions.includes(\r\n PermissionsList.eTravelUserManagementImpersonationSpecific\r\n )) && (\r\n <>\r\n \r\n {state.connectedMember?.gender === 'F' ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n Connected as\r\n \r\n \r\n {state.connectedMember?.fullName}\r\n \r\n \r\n {openConnectedAs ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {({ TransitionProps, placement }) => (\r\n \r\n \r\n \r\n \r\n \r\n handleRedirectConnectedAs('/information/')\r\n }\r\n >\r\n Information\r\n \r\n \r\n handleRedirectConnectedAs('/connectAs')\r\n }\r\n >\r\n Change Profile\r\n \r\n handleStopConnectAs()}\r\n >\r\n Stop Connect as\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n if (breakpoint.xs) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n eTravel\r\n {renderButtons()}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {renderButtons()}\r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n","var _path, _path2, _path3, _path4, _path5, _path6;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgContact(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 30,\n height: 29,\n viewBox: \"0 0 30 29\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.5856 16.8688C23.5856 12.3056 19.9904 8.57214 15.5655 8.57214H14.4593C10.0344 8.57214 6.43917 12.3056 6.43917 16.8688V25.7877C6.43917 26.6659 5.72722 27.3779 4.84898 27.3779H4.01932C3.59929 27.3779 3.25879 27.7184 3.25879 28.1384C3.25879 28.5584 3.59929 28.8989 4.01932 28.8989H26.0054C26.4255 28.8989 26.766 28.5584 26.766 28.1384C26.766 27.7184 26.4255 27.3779 26.0054 27.3779H25.1758C24.2975 27.3779 23.5856 26.6659 23.5856 25.7877V16.8688ZM11.2789 13.4119C12.5735 12.3022 14.1155 11.9964 15.0364 11.9156C15.4684 11.8778 15.8082 12.2631 15.7689 12.695C15.7327 13.0937 15.3837 13.3958 14.9851 13.4327C14.2563 13.5003 13.1152 13.7365 12.2468 14.5181C11.5545 15.2104 11.0547 16.1917 10.9082 17.3815C10.8588 17.7835 10.5357 18.1133 10.1307 18.1133C9.70503 18.1133 9.36587 17.7514 9.42447 17.3298C9.64676 15.7308 10.2058 14.3657 11.2789 13.4119Z\",\n fill: \"#3D64D8\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.7039 3.66435V0.760527C15.7039 0.340499 15.3634 0 14.9434 0C14.5234 0 14.1829 0.340499 14.1829 0.760527V3.66435C14.1829 4.08438 14.5234 4.42488 14.9434 4.42488C15.3634 4.42488 15.7039 4.08438 15.7039 3.66435Z\",\n fill: \"#3D64D8\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.01782 5.68075L7.5659 3.16603C7.35589 2.80229 6.89077 2.67767 6.52702 2.88768C6.16328 3.09769 6.03866 3.56282 6.24867 3.92656L7.70058 6.44127C7.9106 6.80502 8.37572 6.92964 8.73946 6.71963C9.10321 6.50961 9.22783 6.04449 9.01782 5.68075Z\",\n fill: \"#3D64D8\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.93386 9.97832L1.41914 8.52641C1.0554 8.3164 0.590277 8.44102 0.380263 8.80476C0.17025 9.16851 0.294872 9.63363 0.658616 9.84364L3.17333 11.2956C3.53707 11.5056 4.0022 11.3809 4.21221 11.0172C4.42222 10.6535 4.2976 10.1883 3.93386 9.97832Z\",\n fill: \"#3D64D8\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.4852 8.61423L25.9705 10.0661C25.6068 10.2762 25.4821 10.7413 25.6922 11.105C25.9022 11.4688 26.3673 11.5934 26.731 11.3834L29.2457 9.93147C29.6095 9.72145 29.7341 9.25633 29.5241 8.89259C29.3141 8.52884 28.849 8.40422 28.4852 8.61423Z\",\n fill: \"#3D64D8\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.719 2.92494L21.2671 5.43965C21.0571 5.80339 21.1817 6.26852 21.5455 6.47853C21.9092 6.68854 22.3743 6.56392 22.5843 6.20018L24.0362 3.68546C24.2463 3.32172 24.1216 2.8566 23.7579 2.64658C23.3942 2.43657 22.929 2.56119 22.719 2.92494Z\",\n fill: \"#3D64D8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgContact);\nexport default __webpack_public_path__ + \"static/media/contact.9cffed07.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgIntranet(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21,\n height: 21,\n viewBox: \"0 0 21 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.04132 9.25993C5.22857 5.45732 6.32599 2.30945 7.87962 0.769361C7.97362 0.676113 7.91546 0.557798 7.79113 0.586374C3.54534 1.56798 0.325283 5.22621 0.00242478 9.68757C-0.000583227 9.73068 -0.0334205 9.9633 0.273896 10.0275C1.31968 10.2451 3.90831 10.2195 4.36978 10.0656C4.91724 9.88359 5.02753 9.54318 5.04132 9.25993Z\",\n fill: \"#3D64D8\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.2915 9.25993C15.1043 5.45732 14.0069 2.30945 12.4532 0.769361C12.3592 0.676113 12.4174 0.557798 12.5417 0.586374C16.7875 1.56798 20.0076 5.22621 20.3304 9.68757C20.3334 9.73068 20.3663 9.9633 20.059 10.0275C19.0132 10.2451 16.4245 10.2195 15.9631 10.0656C15.4156 9.88359 15.3053 9.54318 15.2915 9.25993Z\",\n fill: \"#3D64D8\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.695 10.0286C9.33835 10.1568 10.9943 10.1568 12.6377 10.0286C13.2516 9.98072 13.8389 9.89956 14.2078 9.76345C14.6605 9.59651 14.5863 9.16135 14.5831 9.09568C14.3695 5.05895 13.0507 1.35911 11.3522 0.254677C11.2966 0.21808 10.9868 0 10.1663 0C9.3459 0 9.03607 0.21808 8.98042 0.254677C7.28191 1.35911 5.9634 5.05895 5.74959 9.09568C5.74633 9.16135 5.67213 9.59651 6.12483 9.76345C6.49372 9.89956 7.08109 9.98072 7.695 10.0286Z\",\n fill: \"#3D64D8\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.2915 11.7384C15.1043 15.541 14.0069 18.6889 12.4532 20.2295C12.3592 20.3222 12.4174 20.4405 12.5417 20.4119C16.7875 19.4308 20.0076 15.7721 20.3304 11.3107C20.3334 11.2681 20.3663 11.035 20.059 10.9713C19.0132 10.7533 16.4245 10.7788 15.9631 10.9327C15.4156 11.1152 15.3053 11.4556 15.2915 11.7384Z\",\n fill: \"#3D64D8\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.04132 11.7384C5.22857 15.541 6.32599 18.6889 7.87962 20.2295C7.97362 20.3222 7.91546 20.4405 7.79113 20.4119C3.54534 19.4308 0.325283 15.7721 0.00242478 11.3107C-0.000583227 11.2681 -0.0334205 11.035 0.273896 10.9713C1.31968 10.7533 3.90831 10.7788 4.36978 10.9327C4.91724 11.1152 5.02753 11.4556 5.04132 11.7384Z\",\n fill: \"#3D64D8\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.6546 10.9733C11.0001 10.8427 9.33254 10.8427 7.67805 10.9733C7.07029 11.0213 6.49033 11.1021 6.12483 11.237C5.67213 11.4044 5.74633 11.8391 5.74959 11.9053C5.9634 15.9415 7.28191 19.6413 8.98042 20.7458C9.03607 20.7824 9.3459 21.0004 10.1663 21.0004C10.9868 21.0004 11.2966 20.7824 11.3522 20.7458C13.0507 19.6413 14.3695 15.9415 14.5831 11.9053C14.5863 11.8391 14.6605 11.4044 14.2078 11.237C13.8423 11.1021 13.2624 11.0213 12.6546 10.9733Z\",\n fill: \"#3D64D8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgIntranet);\nexport default __webpack_public_path__ + \"static/media/intranet.50ac96a2.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgBooking(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21,\n height: 20,\n viewBox: \"0 0 21 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.5987 3.17152V8.95361C18.3603 9.27724 20.4962 11.6289 20.4747 14.4552C20.4747 17.5189 17.9935 20 14.9299 20C12.1036 20 9.75189 17.8425 9.42826 15.1025H1.85545C0.841424 15.1025 0 14.2826 0 13.247V3.14995C0 2.13592 0.819849 1.2945 1.85545 1.2945H4.16397V0.668824C4.16397 0.30205 4.46602 0 4.83279 0C5.19957 0 5.50162 0.30205 5.50162 0.668824V1.2945H10.0971V0.668824C10.0971 0.30205 10.3991 0 10.7659 0C11.1327 0 11.4347 0.30205 11.4347 0.668824V1.31607H13.7433C14.7573 1.31607 15.5987 2.13592 15.5987 3.17152ZM4.16398 2.63208H1.85546C1.57499 2.63208 1.33766 2.86941 1.33766 3.17146V5.43683H14.2826V3.17146C14.2826 2.86941 14.0453 2.63208 13.7433 2.63208H11.4347V3.25776C11.4347 3.62453 11.1327 3.92658 10.7659 3.92658C10.3991 3.92658 10.0971 3.62453 10.0971 3.25776V2.63208H5.50163V3.25776C5.50163 3.62453 5.19958 3.92658 4.83281 3.92658C4.46603 3.92658 4.16398 3.62453 4.16398 3.25776V2.63208ZM1.33766 13.2687V6.75304H14.2826V8.95369C11.7584 9.25574 9.7519 11.2622 9.44985 13.7865H1.85546C1.57499 13.7865 1.33766 13.5492 1.33766 13.2687ZM10.7228 14.4553C10.7228 16.7854 12.6214 18.684 14.9515 18.684C17.2816 18.684 19.1802 16.8069 19.1802 14.4768C19.1802 12.1468 17.2816 10.2482 14.9515 10.2482C12.6214 10.2482 10.7228 12.1252 10.7228 14.4553Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.7851 13.7865H15.5985V12.1899C15.5985 11.8232 15.2965 11.5211 14.9297 11.5211C14.5629 11.5211 14.2609 11.8232 14.2609 12.1899V14.4553C14.2609 14.8221 14.5629 15.1241 14.9297 15.1241H16.7851C17.1519 15.1241 17.454 14.8221 17.454 14.4553C17.454 14.0885 17.1519 13.7865 16.7851 13.7865Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBooking);\nexport default __webpack_public_path__ + \"static/media/booking.11e4f618.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/logo.73b8732d.svg\";","export default __webpack_public_path__ + \"static/media/mini-logo.aec5c89a.svg\";","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCatering(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 14,\n viewBox: \"0 0 20 14\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.001 7.56467C14.2685 6.32875 13.1174 5.41246 11.778 4.98628C11.4641 4.87974 11.1501 5.07152 11.0664 5.36984C10.9827 5.68948 11.1501 6.00911 11.4431 6.11566C12.5314 6.4566 13.4313 7.18111 14.0173 8.18263C14.122 8.37441 14.3103 8.45964 14.5196 8.45964C14.6242 8.45964 14.7289 8.43833 14.8126 8.37441C15.0637 8.22525 15.1475 7.86299 15.001 7.56467Z\",\n fill: \"#3D64D8\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.7939 10.4414C19.6683 10.2496 19.48 10.1431 19.2497 10.1431H18.0987C17.7847 6.05175 14.5618 2.77017 10.5435 2.49315V1.1933H11.5271C11.8411 1.1933 12.1131 0.937595 12.1131 0.596651C12.1131 0.277017 11.862 0 11.5271 0H8.38787C8.07394 0 7.80187 0.255708 7.80187 0.596651C7.80187 0.916286 8.05302 1.1933 8.38787 1.1933H9.37151V2.49315C5.35324 2.77017 2.13026 6.05175 1.81633 10.1431H0.64434C0.435056 10.1431 0.225771 10.2496 0.1002 10.4414C-0.0253704 10.6332 -0.0253705 10.8676 0.0583434 11.0594L1.29312 13.6377C1.39777 13.8508 1.62798 14 1.85819 14H17.994C18.2452 14 18.4545 13.8508 18.5591 13.6377L19.7939 11.0594C19.9404 10.8676 19.9195 10.6332 19.7939 10.4414ZM9.95751 3.64381C13.62 3.64381 16.6337 6.49921 16.9476 10.143H2.96741C3.28134 6.49921 6.29503 3.64381 9.95751 3.64381ZM2.29784 12.7214H17.6175L18.2453 11.4429H1.66999L2.29784 12.7214Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCatering);\nexport default __webpack_public_path__ + \"static/media/catering.d2a1cf3c.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _rect2, _rect3, _rect4, _rect5, _rect6, _rect7;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgDailyTask(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21,\n height: 18,\n viewBox: \"0 0 21 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 7.41248,\n y: 8,\n width: 13,\n height: 2,\n rx: 1\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 7.41248,\n y: 1,\n width: 13,\n height: 2,\n rx: 1\n })), _rect3 || (_rect3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 1.41248,\n width: 4,\n height: 4,\n rx: 1\n })), _rect4 || (_rect4 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 1.41248,\n y: 14,\n width: 4,\n height: 4,\n rx: 1\n })), _rect5 || (_rect5 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 1.41248,\n y: 10.0746,\n width: 6.19498,\n height: 1.5,\n rx: 0.75,\n transform: \"rotate(-55 1.41248 10.0746)\"\n })), _rect6 || (_rect6 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 1.2287,\n y: 7.26721,\n width: 3.42725,\n height: 1.5,\n rx: 0.75,\n transform: \"rotate(55 1.2287 7.26721)\"\n })), _rect7 || (_rect7 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 7.41248,\n y: 15,\n width: 13,\n height: 2,\n rx: 1\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDailyTask);\nexport default __webpack_public_path__ + \"static/media/dailyTask.fa566b5c.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgFlightManagement(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21,\n height: 20,\n viewBox: \"0 0 21 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.16781 9.67736C2.74414 8.69063 2.31833 7.70391 1.89466 6.71719C1.83444 6.5784 1.77423 6.4396 1.71616 6.30081C1.53121 6.62611 1.3441 6.95357 1.15915 7.27886C1.64304 7.27886 2.12907 7.27886 2.61296 7.27886C2.46026 7.21597 2.30972 7.15091 2.15703 7.08802C2.52908 7.48271 2.90113 7.8774 3.27319 8.27426C3.4904 8.5063 3.70976 8.73834 3.92697 8.96822C4.10332 9.15472 4.27752 9.31303 4.56355 9.30435C5.04743 9.28917 5.52916 9.26315 6.01305 9.24363C6.7636 9.2111 7.51201 9.18074 8.26257 9.14821C8.71419 9.1287 9.16367 9.11568 9.61529 9.09183C9.62174 9.09183 9.63035 9.09183 9.6368 9.09183C10.0325 9.07448 10.3981 8.6863 10.2583 8.26775C10.1723 8.00969 10.0863 7.75162 10.0002 7.49355C9.79594 6.8755 9.58948 6.25961 9.38518 5.64155C9.13571 4.89121 8.88624 4.14086 8.63677 3.39269C8.42171 2.74427 8.20665 2.09585 7.98944 1.44744C7.88406 1.13298 7.78944 0.814197 7.67546 0.504084C7.6733 0.499747 7.6733 0.49541 7.67115 0.491073C7.4647 0.766488 7.25609 1.03973 7.04963 1.31515C7.62384 1.31515 8.19805 1.31515 8.77226 1.31515C8.58731 1.20672 8.40021 1.10046 8.21525 0.992024C8.59591 1.51683 8.97872 2.04164 9.35937 2.56428C10.1357 3.63124 10.9099 4.6982 11.6863 5.76516C12.3186 6.63478 12.953 7.50657 13.5853 8.37618C13.6584 8.47594 13.7315 8.57787 13.8046 8.67762C13.8219 8.70148 13.8412 8.7275 13.8584 8.75136C13.8627 8.75569 13.867 8.7622 13.8692 8.76654C14.0133 8.96171 14.1767 9.08316 14.4283 9.09183C14.7746 9.10267 15.123 9.09183 15.4692 9.09183C16.5703 9.09183 17.6693 9.08966 18.7704 9.09183C18.8521 9.09183 18.936 9.09617 19.0177 9.10484C18.9596 9.09617 18.9037 9.08966 18.8456 9.08099C18.979 9.1005 19.1102 9.1352 19.2349 9.18725C19.1833 9.16556 19.1317 9.14388 19.0801 9.12219C19.1661 9.15906 19.25 9.2046 19.3295 9.25665C19.3338 9.25881 19.4005 9.30002 19.3983 9.30435C19.3983 9.30652 19.2672 9.19592 19.3338 9.25448C19.3725 9.28917 19.4112 9.3217 19.4478 9.35857C19.4801 9.3911 19.5123 9.42797 19.5424 9.46266C19.5768 9.50387 19.5984 9.56676 19.5016 9.40845C19.5145 9.42797 19.5295 9.44748 19.5424 9.467C19.5984 9.54941 19.6435 9.63832 19.6822 9.73157C19.6607 9.67953 19.6392 9.62748 19.6177 9.57543C19.6693 9.70121 19.7037 9.8335 19.7231 9.96795C19.7145 9.9094 19.708 9.85302 19.6994 9.79446C19.7166 9.93542 19.7166 10.0742 19.6994 10.213C19.708 10.1545 19.7145 10.0981 19.7231 10.0395C19.7037 10.174 19.6693 10.3063 19.6177 10.432C19.6392 10.38 19.6607 10.3279 19.6822 10.2759C19.6457 10.3626 19.6005 10.4472 19.5489 10.5275C19.5467 10.5318 19.5059 10.599 19.5016 10.5969C19.4994 10.5969 19.6091 10.4646 19.551 10.5318C19.5166 10.5708 19.4844 10.6099 19.4478 10.6467C19.4155 10.6793 19.379 10.7118 19.3446 10.7422C19.3037 10.7768 19.2414 10.7985 19.3983 10.7009C19.379 10.714 19.3596 10.7291 19.3403 10.7422C19.2586 10.7985 19.1704 10.8441 19.0779 10.8831C19.1295 10.8614 19.1811 10.8397 19.2327 10.8181C19.108 10.8701 18.9768 10.9048 18.8435 10.9243C18.9016 10.9156 18.9575 10.9091 19.0155 10.9005C18.8758 10.9178 18.7338 10.9135 18.5919 10.9135C18.3639 10.9135 18.1381 10.9135 17.9101 10.9135C17.2607 10.9135 16.609 10.9135 15.9595 10.9135C15.48 10.9135 15.0004 10.9135 14.5208 10.9135C14.4885 10.9135 14.4584 10.9135 14.4262 10.9135C14.1703 10.9221 14.0004 11.0501 13.8563 11.2518C13.8089 11.3168 13.7638 11.3819 13.7186 11.4491C13.1616 12.2407 12.6046 13.0322 12.0498 13.8238C11.2842 14.9146 10.5185 16.0032 9.75078 17.094C9.30776 17.7251 8.85398 18.3518 8.41741 18.9894C8.41096 18.9981 8.40451 19.0089 8.39806 19.0176C8.58301 18.9092 8.77011 18.8029 8.95506 18.6945C8.40881 18.6945 7.86256 18.6945 7.31631 18.6945C7.23888 18.6945 7.15931 18.6945 7.08189 18.6945C7.28835 18.9699 7.49696 19.2432 7.70341 19.5186C7.78729 19.2605 7.87116 19.0046 7.95503 18.7465C8.15934 18.1263 8.3615 17.5039 8.5658 16.8837C8.81097 16.1355 9.05614 15.3873 9.3013 14.6392C9.51421 13.9929 9.72497 13.3445 9.93788 12.6982C10.0411 12.3838 10.1551 12.0693 10.2476 11.7527C10.2497 11.7484 10.2497 11.7441 10.2519 11.7397C10.3895 11.3212 10.0282 10.933 9.63035 10.9156C9.25614 10.9005 8.88409 10.8831 8.50989 10.8679C7.76578 10.8354 7.02382 10.805 6.27972 10.7725C5.73132 10.7487 5.18507 10.727 4.63667 10.7031C4.59795 10.7009 4.55924 10.6966 4.52053 10.6988C4.31838 10.7031 4.14633 10.7985 4.01084 10.9417C3.82589 11.1368 3.64309 11.332 3.45814 11.5272C3.03017 11.9804 2.5979 12.4293 2.17638 12.8891C2.16778 12.8978 2.15918 12.9086 2.15058 12.9173C2.30327 12.8544 2.45381 12.7893 2.6065 12.7264C2.12262 12.7264 1.63659 12.7264 1.1527 12.7264C1.33765 13.0517 1.52475 13.3792 1.70971 13.7045C2.13337 12.7178 2.55919 11.731 2.98286 10.7443C3.04308 10.6055 3.10329 10.4667 3.16136 10.3279C3.23233 10.161 3.27534 10.0092 3.22587 9.82699C3.18501 9.67519 3.06888 9.51254 2.92909 9.43881C2.77855 9.35857 2.5979 9.31954 2.43231 9.37375C2.28391 9.42146 2.11187 9.52122 2.04735 9.67302C1.62368 10.6597 1.19787 11.6465 0.774199 12.6332C0.713982 12.772 0.653765 12.9108 0.595699 13.0496C0.501072 13.2708 0.468813 13.4876 0.595699 13.7067C0.709681 13.904 0.92474 14.0298 1.1527 14.0298C1.44733 14.0298 1.74412 14.0298 2.03875 14.0298C2.20219 14.0298 2.36349 14.0298 2.52693 14.0298C2.73339 14.0298 2.93124 13.9712 3.08179 13.8194C3.55276 13.3445 4.00009 12.8435 4.46032 12.3578C4.63021 12.1756 4.80226 11.9956 4.97216 11.8135C4.81947 11.8763 4.66892 11.9414 4.51623 12.0043C5.09259 12.0281 5.6711 12.0542 6.24746 12.078C7.16361 12.1171 8.07977 12.1561 8.99592 12.1951C9.20668 12.2038 9.41744 12.2125 9.62819 12.2212C9.42174 11.9457 9.21313 11.6725 9.00667 11.3971C8.9228 11.6551 8.83893 11.911 8.75505 12.1691C8.55075 12.7893 8.34859 13.4117 8.14428 14.032C7.89912 14.7801 7.65395 15.5283 7.40878 16.2765C7.19587 16.9227 6.98511 17.5711 6.77221 18.2174C6.66898 18.5318 6.555 18.8463 6.46252 19.1629C6.46037 19.1672 6.46037 19.1716 6.45822 19.1759C6.32488 19.5815 6.67758 20 7.07974 20C7.47975 20 7.87976 20 8.28192 20C8.48623 20 8.69054 20 8.89484 20C8.91205 20 8.92925 20 8.94646 20C9.19593 19.9935 9.37012 19.8742 9.51206 19.6769C9.51636 19.6704 9.52282 19.6617 9.52712 19.6552C9.84325 19.2128 10.1529 18.7639 10.4669 18.3193C11.0648 17.4692 11.6627 16.6191 12.2584 15.769C12.8519 14.9233 13.4455 14.0797 14.0412 13.2339C14.3487 12.7958 14.6692 12.3621 14.9681 11.9154C14.9724 11.9089 14.9767 11.9024 14.981 11.8959C14.7961 12.0043 14.609 12.1106 14.424 12.219C15.1724 12.219 15.9208 12.219 16.6692 12.219C17.1725 12.219 17.6736 12.219 18.1768 12.219C18.4284 12.219 18.6886 12.2342 18.9403 12.2125C19.4564 12.1669 19.9252 11.9718 20.3102 11.6161C20.6435 11.3082 20.893 10.8636 20.9661 10.4125C21.05 9.89422 20.9812 9.38026 20.7253 8.91617C20.5059 8.51931 20.1446 8.1745 19.7317 7.99234C19.4242 7.85788 19.1145 7.78415 18.7768 7.78198C18.6671 7.78198 18.5575 7.78198 18.4478 7.78198C17.9876 7.78198 17.5273 7.78198 17.0671 7.78198C16.2026 7.78198 15.3402 7.78198 14.4756 7.78198C14.4584 7.78198 14.4434 7.78198 14.4262 7.78198C14.6111 7.89041 14.7982 7.99668 14.9832 8.10511C14.7251 7.75162 14.4692 7.39597 14.2111 7.04248C13.6283 6.24009 13.0433 5.43553 12.4605 4.63314C11.8347 3.7722 11.2089 2.91126 10.5831 2.05031C10.1938 1.51466 9.80454 0.979013 9.41529 0.443363C9.38733 0.404328 9.35937 0.367461 9.33141 0.328426C9.18517 0.128913 9.01958 0.0074697 8.76151 0.000963832C8.70344 -0.00120479 8.64537 0.000963832 8.58731 0.000963832C8.11203 0.000963832 7.63674 0.000963832 7.16146 0.000963832C7.12275 0.000963832 7.08619 0.000963832 7.04748 0.000963832C6.64747 0.000963832 6.29047 0.419508 6.42596 0.82504C6.51198 1.08311 6.59801 1.34117 6.68403 1.59924C6.88834 2.2173 7.0948 2.83318 7.2991 3.45124C7.54857 4.20159 7.79804 4.95193 8.04751 5.7001C8.26257 6.34852 8.47763 6.99694 8.69484 7.64536C8.80022 7.95981 8.89484 8.2786 9.00882 8.58871C9.01097 8.59305 9.01097 8.59738 9.01312 8.60172C9.21958 8.32631 9.42819 8.05306 9.63465 7.77764C9.05829 7.8015 8.47978 7.82752 7.90342 7.85138C6.98726 7.89041 6.07111 7.92945 5.15496 7.96848C4.9442 7.97716 4.73344 7.98583 4.52268 7.99451C4.67537 8.0574 4.82592 8.12245 4.97861 8.18534C4.56569 7.74728 4.15278 7.30922 3.73987 6.87116C3.53341 6.65213 3.32695 6.4331 3.1205 6.21407C2.98071 6.06443 2.80436 5.97552 2.5936 5.96901C2.46241 5.96468 2.32908 5.96901 2.19789 5.96901C1.85165 5.96901 1.5054 5.96901 1.15915 5.96901C0.93119 5.96901 0.716131 6.09262 0.60215 6.29214C0.475266 6.51117 0.507524 6.72803 0.60215 6.94923C1.02582 7.93595 1.45164 8.92268 1.8753 9.9094C1.93552 10.0482 1.99574 10.187 2.0538 10.3258C2.11402 10.4646 2.30112 10.586 2.43876 10.625C2.5936 10.6684 2.79791 10.6489 2.93554 10.56C3.07318 10.4711 3.19362 10.3366 3.23233 10.1718C3.27319 9.99614 3.24093 9.84651 3.16781 9.67736Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFlightManagement);\nexport default __webpack_public_path__ + \"static/media/flightManagement.9bec95cc.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgMemberManagement(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 18,\n viewBox: \"0 0 20 18\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.89973 11.494C7.23773 11.494 5.05973 8.91741 5.05973 5.74699C5.05973 2.57657 7.23289 0 9.89973 0C12.5666 0 14.7397 2.57657 14.7397 5.74699C14.7397 8.91741 12.5666 11.494 9.89973 11.494ZM9.90034 1.43666C8.02726 1.43666 6.51234 3.35232 6.51234 5.7469C6.51234 8.14148 8.02726 10.0571 9.90034 10.0571C11.7734 10.0571 13.2883 8.14148 13.2883 5.7469C13.2883 3.35232 11.7734 1.43666 9.90034 1.43666ZM19.8 17.2842C19.8 11.4578 14.3719 10.847 14.3188 10.847C13.9187 10.8074 13.562 11.0959 13.5219 11.4912C13.4819 11.8865 13.7738 12.239 14.1739 12.2785C16.4205 12.5394 18.161 14.3434 18.3174 16.5732H1.48259C1.65377 14.3499 3.38676 12.5537 5.6261 12.2785C6.02617 12.239 6.31806 11.8865 6.27805 11.4912C6.23804 11.0959 5.88129 10.8074 5.48122 10.847C5.4281 10.847 0 11.4578 0 17.2842C0 17.6795 0.324321 18 0.72439 18H19.0756C19.4757 18 19.8 17.6795 19.8 17.2842Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMemberManagement);\nexport default __webpack_public_path__ + \"static/media/memberManagement.96d69cab.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgMonitoring(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.00092156 0.875459C-0.00479345 0.38867 0.391519 -0.00709774 0.877633 9.65557e-05C1.35384 0.00712734 1.73458 0.398593 1.72903 0.875459V17.4034C1.72903 17.8977 2.09945 18.2695 2.59309 18.2695H19.1257C19.6119 18.2638 20.0071 18.6606 19.9999 19.1474C19.9929 19.6242 19.6019 20.0055 19.1257 19.9999H2.59309C1.17197 19.9999 7.7372e-05 18.8265 7.7372e-05 17.4034C7.7372e-05 16.2682 5.80292e-05 15.1329 3.86863e-05 13.9976C-3.58433e-05 9.62318 -0.000110374 5.24872 0.00092156 0.875459ZM10.8033 3.72119C10.9049 3.34019 11.2508 3.07613 11.6446 3.07903V3.07902C12.0327 3.083 12.3706 3.34564 12.4707 3.72118L13.7246 8.39964L15.4113 5.47106C15.5475 5.2336 15.7878 5.07467 16.0593 5.04253C16.3309 5.0104 16.6016 5.10885 16.7893 5.30799L19.4295 8.1149C19.6477 8.33855 19.7284 8.66263 19.6406 8.96265C19.5529 9.26267 19.3104 9.49198 19.0062 9.5625C18.7021 9.63301 18.3836 9.53377 18.1731 9.30289L16.3269 7.34262L14.1768 11.0722C14.0014 11.3741 13.6619 11.5407 13.3162 11.4947C12.9704 11.4487 12.6862 11.1991 12.5956 10.8618L11.6387 7.28516L9.75363 14.3236C9.66211 14.6603 9.37746 14.9091 9.03183 14.9544C8.6862 14.9996 8.34726 14.8325 8.17234 14.5306L6.3666 11.4009L4.06724 13.7034C3.85042 13.9309 3.52742 14.0229 3.22346 13.9436C2.9195 13.8643 2.68239 13.6262 2.60403 13.3216C2.52567 13.017 2.6184 12.6938 2.84626 12.4773L5.94302 9.37978C6.13296 9.1899 6.40024 9.09919 6.66634 9.13427C6.93244 9.16936 7.16715 9.32627 7.30154 9.55891L8.62462 11.858L10.8033 3.72119Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMonitoring);\nexport default __webpack_public_path__ + \"static/media/monitoring.09b0a68b.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _rect2, _rect3, _rect4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgReporting(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 21,\n viewBox: \"0 0 22 21\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 1,\n y: 8.46423,\n width: 3.39286,\n height: 11.5357,\n rx: 1.69643,\n strokeWidth: 1.3\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 11.8573,\n y: 8.46423,\n width: 3.39286,\n height: 11.5357,\n rx: 1.69643,\n strokeWidth: 1.3\n })), _rect3 || (_rect3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 6.42841,\n y: 1,\n width: 3.39286,\n height: 19,\n rx: 1.69643,\n strokeWidth: 1.3\n })), _rect4 || (_rect4 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 17.2858,\n y: 1,\n width: 3.39286,\n height: 19,\n rx: 1.69643,\n strokeWidth: 1.3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgReporting);\nexport default __webpack_public_path__ + \"static/media/reporting.a8b85cb1.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgSetting(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 19,\n viewBox: \"0 0 19 19\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.6428 3.57094L15.1791 4.10719C15.3009 4.22906 15.5328 4.28375 15.6962 4.22906L16.5781 3.93438C16.7437 3.87812 16.925 3.88125 17.0875 3.94062C17.2531 3.99687 17.3937 4.10938 17.4875 4.25625C18.0688 5.17812 18.4906 6.19062 18.7312 7.25312C18.7687 7.425 18.75 7.60313 18.675 7.75938C18.6 7.91875 18.4719 8.04688 18.3156 8.125L17.4825 8.54156C17.3284 8.61875 17.2031 8.82125 17.2031 8.99375V9.75312C17.2031 9.92562 17.3284 10.1281 17.4825 10.2053L18.3156 10.6219C18.4719 10.7 18.6 10.8281 18.675 10.9875C18.75 11.1438 18.7687 11.325 18.7312 11.4937C18.4906 12.5562 18.0688 13.5687 17.4875 14.4906C17.3937 14.6375 17.2531 14.75 17.0875 14.8094C16.925 14.8687 16.7437 14.8687 16.5781 14.8156L15.6962 14.5209C15.5328 14.4662 15.3009 14.5209 15.1791 14.6428L14.6428 15.1791C14.5209 15.3009 14.4662 15.5328 14.5209 15.6962L14.8156 16.5781C14.8687 16.7437 14.8687 16.925 14.8094 17.0875C14.75 17.2531 14.6375 17.3937 14.4906 17.4875C13.5687 18.0688 12.5562 18.4906 11.4937 18.7312C11.325 18.7687 11.1438 18.75 10.9875 18.675C10.8281 18.6 10.7 18.4719 10.6219 18.3156L10.2053 17.4825C10.1281 17.3284 9.92562 17.2031 9.75312 17.2031H8.99375C8.82125 17.2031 8.61875 17.3284 8.54156 17.4825L8.125 18.3156C8.04688 18.4719 7.91875 18.6 7.75938 18.675C7.60313 18.75 7.425 18.7687 7.25312 18.7312C6.19062 18.4906 5.17812 18.0688 4.25625 17.4875C4.10938 17.3937 3.99687 17.2531 3.94062 17.0875C3.88125 16.925 3.87812 16.7437 3.93438 16.5781L4.22906 15.6962C4.28375 15.5328 4.22906 15.3009 4.10719 15.1791L3.57094 14.6428C3.44906 14.5209 3.21719 14.4662 3.05344 14.5206L2.16875 14.8156C2.00312 14.8687 1.825 14.8687 1.65937 14.8094C1.49375 14.75 1.35625 14.6375 1.2625 14.4906C0.678125 13.5687 0.259375 12.5562 0.01875 11.4937C-0.01875 11.325 0 11.1438 0.075 10.9875C0.15 10.8281 0.275 10.7 0.43125 10.6219L1.26437 10.2053C1.41844 10.1281 1.54375 9.92562 1.54375 9.75312V8.99375C1.54375 8.82125 1.41844 8.61875 1.26437 8.54156L0.43125 8.125C0.275 8.04688 0.15 7.91875 0.075 7.75938C0 7.60313 -0.01875 7.425 0.01875 7.25312C0.259375 6.19062 0.678125 5.17812 1.2625 4.25625C1.35625 4.10938 1.49375 3.99687 1.65937 3.94062C1.825 3.88125 2.00312 3.87812 2.16875 3.93438L3.05344 4.22937C3.21719 4.28375 3.44906 4.22906 3.57094 4.10719L4.10719 3.57094C4.22906 3.44906 4.28375 3.21719 4.22937 3.05344L3.93438 2.16875C3.87812 2.00312 3.88125 1.825 3.94062 1.65937C3.99687 1.49375 4.10938 1.35625 4.25625 1.2625C5.17812 0.678125 6.19062 0.259375 7.25312 0.01875C7.425 -0.01875 7.60313 0 7.75938 0.075C7.91875 0.15 8.04688 0.275 8.125 0.43125L8.54156 1.26437C8.61875 1.41844 8.82125 1.54375 8.99375 1.54375H9.75312C9.92562 1.54375 10.1281 1.41844 10.2053 1.26437L10.6219 0.43125C10.7 0.275 10.8281 0.15 10.9875 0.075C11.1438 0 11.325 -0.01875 11.4937 0.01875C12.5562 0.259375 13.5687 0.678125 14.4906 1.2625C14.6375 1.35625 14.75 1.49375 14.8094 1.65937C14.8687 1.825 14.8687 2.00312 14.8156 2.16875L14.5206 3.05344C14.4662 3.21719 14.5209 3.44906 14.6428 3.57094ZM12.8553 3.99283L14.7572 5.8947C14.879 6.01658 15.1109 6.07127 15.2743 6.01627L16.1725 5.71502C16.3359 5.66002 16.5343 5.73939 16.6153 5.89158C16.7062 6.06252 16.9 6.53127 16.9569 6.71408C17.0084 6.87877 16.9247 7.07502 16.7703 7.15189L15.9203 7.57627C15.7659 7.65314 15.6406 7.85564 15.6406 8.02814V10.7188C15.6406 10.8913 15.7659 11.0938 15.9203 11.1706L16.7703 11.595C16.9247 11.6719 17.0084 11.8681 16.9575 12.0328C16.9 12.2188 16.7062 12.6844 16.6153 12.8553C16.5343 13.0075 16.3359 13.0869 16.1722 13.0325L15.2747 12.7331C15.1109 12.6788 14.879 12.7335 14.7572 12.8553L12.8553 14.7572C12.7334 14.8791 12.6787 15.111 12.7331 15.2747L13.0325 16.1722C13.0869 16.336 13.0075 16.5344 12.8553 16.6153C12.6843 16.7063 12.2187 16.9 12.0328 16.9575C11.8681 17.0085 11.6718 16.9247 11.595 16.7703L11.1706 15.9203C11.0937 15.766 10.8912 15.6406 10.7187 15.6406H8.0281C7.8556 15.6406 7.6531 15.766 7.57623 15.9203L7.15185 16.7703C7.07497 16.9247 6.87872 17.0085 6.71404 16.9569C6.53122 16.9 6.06247 16.7063 5.89154 16.6153C5.73935 16.5344 5.65997 16.336 5.71497 16.1725L6.01622 15.2744C6.07122 15.111 6.01654 14.8791 5.89466 14.7572L3.99279 12.8553C3.87091 12.7335 3.63904 12.6785 3.47529 12.7331L2.57466 13.0325C2.41091 13.0872 2.21247 13.0075 2.13154 12.8553C2.0406 12.6844 1.84685 12.2188 1.69997 11.7344L2.82685 11.171C2.98091 11.0938 3.10622 10.8913 3.10622 10.7188V8.02814C3.10622 7.85564 2.98091 7.65314 2.82685 7.57595L1.97935 7.1522C1.82529 7.07502 1.74091 6.87845 1.79122 6.71377C1.84685 6.53127 2.0406 6.06252 2.13154 5.89158C2.21247 5.73939 2.41091 5.66002 2.57435 5.7147L3.4756 6.01658C3.63904 6.07127 3.87091 6.01658 3.99279 5.8947L5.89466 3.99283C6.01654 3.87095 6.07122 3.63908 6.01654 3.47564L5.71466 2.57439C5.65998 2.41095 5.73935 2.21252 5.89154 2.13158C6.06247 2.04064 6.53123 1.84689 6.71373 1.79127C6.87841 1.74095 7.07498 1.82533 7.15216 1.97939L7.57591 2.82689C7.6531 2.98096 7.8556 3.10627 8.0281 3.10627H10.7187C10.8912 3.10627 11.0937 2.98096 11.1709 2.82689L11.5947 1.97939C11.6719 1.82533 11.8684 1.74064 12.0334 1.79064C12.2187 1.84689 12.6843 2.04064 12.8553 2.13158C13.0075 2.21252 13.0872 2.41095 13.0325 2.5747L12.7331 3.47533C12.6784 3.63908 12.7334 3.87095 12.8553 3.99283Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.375 13.825C8.19375 13.825 7.05938 13.3563 6.225 12.5219C5.39063 11.6875 4.92188 10.5531 4.92188 9.375C4.92188 8.19375 5.39063 7.05938 6.225 6.225C7.05938 5.39063 8.19375 4.92188 9.375 4.92188C10.5531 4.92188 11.6875 5.39063 12.5219 6.225C13.3563 7.05938 13.825 8.19375 13.825 9.375C13.825 10.5531 13.3563 11.6875 12.5219 12.5219C11.6875 13.3563 10.5531 13.825 9.375 13.825ZM9.375 12.2625C8.60938 12.2625 7.87188 11.9594 7.33125 11.4187C6.7875 10.875 6.48438 10.1406 6.48438 9.375C6.48438 8.60938 6.7875 7.87188 7.33125 7.33125C7.87188 6.7875 8.60938 6.48438 9.375 6.48438C10.1406 6.48438 10.875 6.7875 11.4187 7.33125C11.9594 7.87188 12.2625 8.60938 12.2625 9.375C12.2625 10.1406 11.9594 10.875 11.4187 11.4187C10.875 11.9594 10.1406 12.2625 9.375 12.2625Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSetting);\nexport default __webpack_public_path__ + \"static/media/setting.8f54c4ea.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nimport {ReactComponent as BookingIcon} from '../assets/icons/booking.svg';\r\nimport {ReactComponent as CateringIcon} from '../assets/icons/catering.svg';\r\nimport {ReactComponent as DailyTaskIcon} from '../assets/icons/dailyTask.svg';\r\nimport {ReactComponent as FlightManagementIcon} from '../assets/icons/flightManagement.svg';\r\nimport {ReactComponent as MemberManagementIcon} from '../assets/icons/memberManagement.svg';\r\nimport {ReactComponent as MonitoringIcon} from '../assets/icons/monitoring.svg';\r\nimport {ReactComponent as ReportingIcon} from '../assets/icons/reporting.svg';\r\nimport {ReactComponent as SettingIcon} from '../assets/icons/setting.svg';\r\nimport IRoute from '../models/IRoute';\r\nimport Constants from '../utils/Constants';\r\nimport PermissionsList from '../utils/PermissionsList';\r\n\r\nconst SideMenuRoutes: IRoute[] = [\r\n {\r\n path: '/reservations',\r\n name: 'Reservations',\r\n exact: false,\r\n icon: ,\r\n items: [\r\n {\r\n path: '/reservations/myReservations',\r\n name: 'My Reservations',\r\n exact: false,\r\n items: [],\r\n permission: PermissionsList.eTravelReservationMyReservations,\r\n },\r\n {\r\n path: '/reservations/new',\r\n name: 'Make a Reservation',\r\n exact: false,\r\n items: [],\r\n sideMenuMatch: '/reservations/:id/steps',\r\n permission: PermissionsList.eTravelReservationMakeReservation,\r\n },\r\n {\r\n path: '/reservations/approvals',\r\n name: 'Reservation Approval',\r\n exact: true,\r\n items: [],\r\n permission: PermissionsList.eTravelReservationReservationApproval,\r\n },\r\n {\r\n path: '',\r\n name: Constants.externalSideMenus.myIDTravel,\r\n exact: true,\r\n items: [],\r\n isExternal: true,\r\n permission: PermissionsList.eTravelReservationMyIDTravel,\r\n },\r\n {\r\n path: '/reservations/manageReservations',\r\n name: 'Manage Reservations',\r\n exact: false,\r\n items: [],\r\n permission: PermissionsList.eTravelReservationManageReservations,\r\n },\r\n ],\r\n },\r\n {\r\n path: '/catering',\r\n name: 'Catering',\r\n icon: ,\r\n exact: false,\r\n items: [\r\n {\r\n path: '/catering/cateringOrder',\r\n name: 'Catering Order',\r\n exact: true,\r\n items: [],\r\n permission: PermissionsList.cateringCateringOrder,\r\n },\r\n {\r\n path: '/catering/upliftStations',\r\n name: 'Uplift Stations',\r\n exact: true,\r\n items: [],\r\n permission: PermissionsList.cateringUpliftStations,\r\n },\r\n {\r\n path: '/catering/crewSpecialMeals',\r\n name: 'Crew Special Meals',\r\n exact: true,\r\n items: [],\r\n permission: PermissionsList.cateringCrewSpecialMeals,\r\n },\r\n {\r\n path: '/catering/forecast',\r\n name: 'Forecast',\r\n exact: true,\r\n items: [],\r\n permission: PermissionsList.cateringForecast,\r\n },\r\n {\r\n path: '/catering/manualForecast',\r\n name: 'Manual Forecast',\r\n exact: true,\r\n items: [],\r\n permission: PermissionsList.cateringManualForecast,\r\n },\r\n {\r\n path: '/catering/crew',\r\n name: 'Crew List',\r\n exact: true,\r\n items: [],\r\n },\r\n {\r\n path: '/catering/flightSchedule',\r\n name: 'Flight Schedule',\r\n exact: true,\r\n items: [],\r\n permission: PermissionsList.cateringFlightSchedule,\r\n },\r\n {\r\n path: '/catering/duty',\r\n name: 'Catering Quantities',\r\n exact: true,\r\n items: [],\r\n permission: PermissionsList.cateringDutyQuantities,\r\n },\r\n ],\r\n },\r\n {\r\n path: '/dailyTasks',\r\n name: 'Daily Tasks',\r\n icon: ,\r\n exact: false,\r\n items: [\r\n {\r\n path: '/dailyTasks/passengers',\r\n name: 'Passenger List',\r\n items: [],\r\n permission: PermissionsList.eTravelDailyTasksPassengerList,\r\n },\r\n {\r\n path: '/dailyTasks/passengers-light',\r\n name: 'Passenger List Light',\r\n items: [],\r\n permission: PermissionsList.eTravelDailyTasksPassengerListLight,\r\n },\r\n {\r\n path: '/dailyTasks/arm',\r\n name: 'Aircraft Route Modified',\r\n items: [],\r\n permission: PermissionsList.eTravelDailyTasksARM,\r\n },\r\n {\r\n path: '/dailyTasks/tasks',\r\n name: 'Task List',\r\n items: [],\r\n permission: PermissionsList.eTravelDailyTasksTaskList,\r\n },\r\n {\r\n path: '/dailyTasks/tickets',\r\n name: 'Print Tickets',\r\n items: [],\r\n permission: PermissionsList.eTravelDailyTasksPrintTickets,\r\n },\r\n {\r\n path: '/dailyTasks/waiting',\r\n name: 'Waiting List',\r\n items: [],\r\n permission: PermissionsList.eTravelDailyTasksWaitList,\r\n },\r\n {\r\n path: '/dailyTasks/relatedTasks',\r\n name: 'Related Tasks',\r\n items: [],\r\n permission: PermissionsList.eTravelDailyTasksRelatedTasks,\r\n },\r\n {\r\n path: '/dailyTasks/confirmed',\r\n name: 'No show/Confirmed',\r\n items: [],\r\n },\r\n {\r\n path: '/dailyTasks/document-approval',\r\n name: 'Document Approval',\r\n items: [],\r\n permission: PermissionsList.eTravelImmigrationDocumentApproval,\r\n },\r\n ],\r\n },\r\n {\r\n path: '/flightManagement',\r\n name: 'Flight Management',\r\n icon: ,\r\n exact: false,\r\n items: [\r\n {\r\n path: '/flightManagement/graphicals',\r\n name: 'Graphicals',\r\n items: [],\r\n },\r\n {\r\n path: '/flightManagement/departures',\r\n name: 'Departures',\r\n items: [],\r\n permission: PermissionsList.eTravelFlightManagementDepartures,\r\n },\r\n {\r\n path: '',\r\n name: Constants.externalSideMenus.timatic,\r\n items: [],\r\n isExternal: true,\r\n permission: PermissionsList.eTravelFlightManagementTimatic,\r\n },\r\n {\r\n path: '/flightManagement/block',\r\n name: 'Block Flight',\r\n items: [],\r\n permission: PermissionsList.eTravelFlightManagementBlockFlights,\r\n },\r\n ],\r\n },\r\n {\r\n path: '/administration',\r\n name: 'Member Management',\r\n icon: ,\r\n exact: false,\r\n items: [\r\n {\r\n path: '/administration/members/list',\r\n name: 'Member List',\r\n exact: false,\r\n items: [],\r\n sideMenuMatch: '/administration/members/:memberId/details',\r\n permission: PermissionsList.eTravelUserManagementMemberAdministration,\r\n },\r\n {\r\n path: '/administration/guests',\r\n name: 'Guest Management',\r\n exact: true,\r\n items: [],\r\n permission: PermissionsList.eTravelUserManagementGuestManagement,\r\n },\r\n {\r\n path: '/administration/roles',\r\n name: 'Role Configuration',\r\n exact: true,\r\n items: [],\r\n permission: PermissionsList.eTravelUserManagementRoleConfiguration,\r\n },\r\n ],\r\n },\r\n {\r\n path: '/reporting',\r\n name: 'Reporting',\r\n icon: ,\r\n items: [\r\n {\r\n path: '/reporting/travelReport',\r\n name: 'Travel Report',\r\n items: [],\r\n permission: PermissionsList.eTravelReportingTravelReport,\r\n },\r\n {\r\n path: '/reporting/following',\r\n name: 'Generate the Following Report',\r\n items: [],\r\n },\r\n {\r\n path: '/reporting/aviation',\r\n name: 'Aviation Insurance',\r\n items: [],\r\n permission: PermissionsList.eTravelReportingAviationInsurance,\r\n },\r\n {\r\n path: '/reporting/accouting',\r\n name: 'Accounting Report',\r\n exact: true,\r\n items: [],\r\n permission: PermissionsList.eTravelReportingAccountingReport,\r\n },\r\n {\r\n path: '/reporting/audit',\r\n name: 'Audit Log',\r\n items: [],\r\n permission: PermissionsList.eTravelReportingAuditLog,\r\n },\r\n {\r\n path: '/reporting/auditsecurity',\r\n name: 'Audit Log Security',\r\n items: [],\r\n permission: PermissionsList.eTravelReportingAuditLogSecurity,\r\n },\r\n {\r\n path: '/reporting/warningList',\r\n name: 'Warning List',\r\n items: [],\r\n permission: PermissionsList.eTravelReportingWarningList,\r\n },\r\n {\r\n path: '/reporting/noshowConfirmed',\r\n name: 'No Show / Confirmed',\r\n items: [],\r\n permission: PermissionsList.eTravelReportingNoShowConfirmed,\r\n },\r\n {\r\n path: '/reporting/membersRole',\r\n name: 'Members by role',\r\n items: [],\r\n permission: PermissionsList.eTravelReportingTravelReport,\r\n },\r\n ],\r\n },\r\n {\r\n path: '/monitoring',\r\n name: 'Monitoring',\r\n icon: ,\r\n items: [\r\n {\r\n path: '/monitoring/session',\r\n name: 'Active Session',\r\n items: [],\r\n },\r\n {\r\n path: '/monitoring/schedule-reports',\r\n name: 'Schedule Reports',\r\n items: [],\r\n },\r\n {\r\n path: '/monitoring/aims',\r\n name: 'AIMS LDM',\r\n items: [],\r\n },\r\n {\r\n path: '/monitoring/workload',\r\n name: 'Work Load Analysis',\r\n items: [],\r\n },\r\n ],\r\n },\r\n {\r\n path: '/settings',\r\n name: 'Settings',\r\n icon: ,\r\n items: [\r\n {\r\n path: '/settings/airport',\r\n name: 'Airport Details',\r\n items: [],\r\n permission: PermissionsList.eTravelSettingsAirportDetails,\r\n },\r\n {\r\n path: '/settings/apis',\r\n name: 'APIS Configuration',\r\n items: [],\r\n permission: PermissionsList.eTravelSettingsApisConfiguration,\r\n },\r\n {\r\n path: '/settings/trainings',\r\n name: 'Training Catalogue',\r\n items: [],\r\n permission: PermissionsList.eTravelSettingsTrainingCatalogue,\r\n },\r\n {\r\n path: '/settings/eTicket',\r\n name: 'eTicket Template',\r\n items: [],\r\n permission: PermissionsList.eTravelSettingsETicketTemplate,\r\n },\r\n {\r\n path: '/settings/WCMPages',\r\n name: 'WCM Pages',\r\n items: [],\r\n permission: PermissionsList.eTravelSettingsWCMPages,\r\n },\r\n {\r\n path: '/settings/helpPages',\r\n name: 'Help Pages',\r\n items: [],\r\n permission: PermissionsList.eTravelSettingsHelpPages,\r\n },\r\n {\r\n path: '/settings/emails',\r\n name: 'Email Templates',\r\n items: [],\r\n permission: PermissionsList.eTravelSettingsEMailTemplates,\r\n },\r\n\r\n {\r\n path: '/settings/reasons',\r\n name: 'Block Flight Reasons',\r\n items: [],\r\n permission: PermissionsList.eTravelSettingsBlockFlightsReasons,\r\n },\r\n {\r\n path: '/settings/application',\r\n name: 'Application Settings',\r\n items: [],\r\n permission: PermissionsList.eTravelSettingsApplicationSettings,\r\n },\r\n ],\r\n },\r\n];\r\n\r\nexport default SideMenuRoutes;\r\n","import {useContext} from 'react';\r\nimport {ClientAppContext} from '../context/ClientAppContext/ClientAppContext';\r\n\r\nconst useClientAppContext = () => {\r\n return useContext(ClientAppContext);\r\n};\r\n\r\nexport default useClientAppContext;\r\n","import {useEffect, useState} from 'react';\r\n\r\nimport IRoute from '../models/IRoute';\r\nimport SideMenuRoutes from '../routes/SideMenuRoutes';\r\nimport Constants from '../utils/Constants';\r\nimport useClientAppContext from './useClientApp';\r\n\r\nconst useSideMenuRoutes = () => {\r\n const [routes, setRoutes] = useState([]);\r\n const { getSettingValue } = useClientAppContext();\r\n\r\n const resolveExternalPath = (externalRoute: IRoute): IRoute => {\r\n switch (externalRoute.name) {\r\n case Constants.externalSideMenus.myIDTravel:\r\n return {\r\n ...externalRoute,\r\n path: getSettingValue(Constants.settings.myIDTravel) ?? '',\r\n };\r\n\r\n case Constants.externalSideMenus.timatic:\r\n return {\r\n ...externalRoute,\r\n path: getSettingValue(Constants.settings.timaticUrl) ?? '',\r\n };\r\n default:\r\n return externalRoute;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const routes = SideMenuRoutes.map((root) => ({\r\n ...root,\r\n items: root.items?.reduce((acc: IRoute[], curr: IRoute) => {\r\n return curr.isExternal && curr.path === ''\r\n ? [...acc, resolveExternalPath(curr)]\r\n : [...acc, curr];\r\n }, []),\r\n }));\r\n\r\n setRoutes(routes);\r\n }, []);\r\n\r\n return { routes };\r\n};\r\n\r\nexport default useSideMenuRoutes;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {NavLink, useHistory, useLocation, useRouteMatch,} from 'react-router-dom';\r\n\r\nimport Collapse from '@material-ui/core/Collapse';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport {useTheme} from '@material-ui/core/styles';\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\n\r\nimport {useLayoutContext} from '../../context/LayoutProvider/LayoutProvider';\r\nimport styles from './SideMenuItem.module.scss';\r\n\r\ninterface ISideMenuItemProps {\r\n name: string;\r\n path: string;\r\n icon?: React.ReactElement;\r\n exact?: boolean;\r\n items?: ISideMenuItemProps[];\r\n childItem?: boolean;\r\n id?: string;\r\n clickAwayTs?: Date;\r\n sideMenuMatch?: string;\r\n isExternal?: boolean;\r\n}\r\n\r\nconst SideMenuItem: React.FC = ({\r\n name,\r\n path,\r\n sideMenuMatch,\r\n icon,\r\n exact,\r\n items,\r\n childItem,\r\n id,\r\n clickAwayTs,\r\n isExternal,\r\n}) => {\r\n const {\r\n state: { isMenuOpen },\r\n toggleMenu,\r\n } = useLayoutContext();\r\n const isExpandable = items && items.length > 0;\r\n const history = useHistory();\r\n const theme = useTheme();\r\n const isLargeScreen = useMediaQuery(theme.breakpoints.up('lg'));\r\n const location = useLocation();\r\n\r\n let match = useRouteMatch({\r\n path: path,\r\n strict: false,\r\n sensitive: true,\r\n });\r\n\r\n let sideMenuMatching = useRouteMatch({\r\n path: sideMenuMatch,\r\n strict: false,\r\n sensitive: true,\r\n });\r\n\r\n const [expand, setExpand] = useState(false);\r\n\r\n useEffect(() => {\r\n setExpand(!!match);\r\n }, [match, location, clickAwayTs]);\r\n\r\n const handleClick = () => {\r\n if (!isMenuOpen) {\r\n toggleMenu();\r\n } else if (!isLargeScreen && childItem) {\r\n toggleMenu();\r\n }\r\n if (!match) setExpand(!expand);\r\n };\r\n\r\n const handleLinkClick = () => {\r\n if (!isLargeScreen) {\r\n toggleMenu();\r\n }\r\n if (isExternal) {\r\n window.open(path, '_blank');\r\n } else {\r\n history.push(path);\r\n }\r\n };\r\n\r\n const MenuItemRoot = isExpandable ? (\r\n handleClick()}\r\n disableGutters\r\n >\r\n {icon && {icon}}\r\n {isMenuOpen && }\r\n \r\n ) : (\r\n !!match || !!sideMenuMatching}\r\n className={childItem ? `${styles.link} ${styles.childLink}` : undefined}\r\n activeClassName={styles.activeLink}\r\n onClick={handleLinkClick}\r\n >\r\n \r\n {icon && {icon}}\r\n {isMenuOpen && }\r\n \r\n \r\n );\r\n\r\n const MenuItemChildren = isExpandable ? (\r\n \r\n \r\n {items &&\r\n items.map((item) => (\r\n \r\n ))}\r\n \r\n \r\n ) : null;\r\n\r\n return (\r\n <>\r\n {MenuItemRoot}\r\n {MenuItemChildren}\r\n \r\n );\r\n};\r\n\r\nexport default SideMenuItem;\r\n","import clsx from 'clsx';\r\nimport React, {useContext, useEffect, useState} from 'react';\r\nimport {Link, useHistory} from 'react-router-dom';\r\nimport {Scrollbar} from 'react-scrollbars-custom';\r\n\r\nimport Button from '@material-ui/core/Button';\r\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport Hidden from '@material-ui/core/Hidden';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport List from '@material-ui/core/List';\r\nimport {createStyles, makeStyles} from '@material-ui/core/styles';\r\n\r\nimport {ReactComponent as ContactIcon} from '../../assets/icons/contact.svg';\r\nimport {ReactComponent as HelpIcon} from '../../assets/icons/help.svg';\r\nimport {ReactComponent as IntranetIcon} from '../../assets/icons/intranet.svg';\r\nimport {ReactComponent as MailIcon} from '../../assets/icons/mail.svg';\r\nimport logo from '../../assets/images/logo.svg';\r\nimport miniLogo from '../../assets/images/mini-logo.svg';\r\nimport {ClientAppContext} from '../../context/ClientAppContext/ClientAppContext';\r\nimport {useLayoutContext} from '../../context/LayoutProvider/LayoutProvider';\r\nimport {UserContext} from '../../context/User/UserContext';\r\nimport useBreakpoint from '../../hooks/useBreakpoint';\r\nimport useSideMenuRoutes from '../../hooks/useSideMenuRoutes';\r\nimport IRoute from '../../models/IRoute';\r\nimport Constants from '../../utils/Constants';\r\nimport styles from './SideMenu.module.scss';\r\nimport SideMenuItem from './SideMenuItem';\r\n\r\nconst drawerWidth = 256;\r\n\r\nconst useStyles = makeStyles(() =>\r\n createStyles({\r\n drawerOpen: {\r\n width: drawerWidth + 'px',\r\n top: 0,\r\n flex: '1 0 auto',\r\n height: '100%',\r\n display: 'flex',\r\n outline: 0,\r\n zIndex: 1200,\r\n position: 'fixed',\r\n overflowY: 'auto',\r\n flexDirection: 'column',\r\n },\r\n drawerClose: {\r\n overflowX: 'hidden',\r\n width: '68px',\r\n },\r\n })\r\n);\r\n\r\nconst SideMenu: React.FC = () => {\r\n const user = useContext(UserContext);\r\n const history = useHistory();\r\n const classes = useStyles();\r\n const { routes } = useSideMenuRoutes();\r\n const { getSettingValue } = React.useContext(ClientAppContext);\r\n const [clickAwayTs, setClickAwayTs] = useState(new Date());\r\n const breakpoint = useBreakpoint();\r\n const {\r\n state: { isMenuOpen },\r\n openMenu,\r\n closeMenu,\r\n toggleMenu,\r\n } = useLayoutContext();\r\n\r\n useEffect(() => {\r\n if (breakpoint.lgup) {\r\n openMenu();\r\n } else {\r\n closeMenu();\r\n }\r\n }, [breakpoint.lgup]);\r\n\r\n const routeAuthReducer = (res: IRoute[], curr: IRoute) =>\r\n curr.permission && !!user.permissions.find((p) => p === curr.permission)\r\n ? [...res, curr]\r\n : [...res];\r\n\r\n const AllowedRoutes = routes\r\n .map(\r\n (route) =>\r\n ({\r\n ...route,\r\n items: route.items?.reduce(routeAuthReducer, []),\r\n } as IRoute)\r\n )\r\n .filter((route) => route.items && route.items.length > 0);\r\n\r\n const handleRedirect = (url: string) => {\r\n history.push(url);\r\n closeMenu();\r\n };\r\n\r\n const drawer = (\r\n \r\n \r\n isMenuOpen && breakpoint.smdown && closeMenu()}\r\n >\r\n {isMenuOpen ? (\r\n \"eTravel\"\r\n ) : (\r\n \"eTravel\"\r\n )}\r\n \r\n \r\n {AllowedRoutes.map((route) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n
\r\n {!breakpoint.lgup &&\r\n (isMenuOpen ? (\r\n <>\r\n \r\n window.open(\r\n `mailto:${getSettingValue(\r\n Constants.settings.contactUsMail\r\n )}`\r\n )\r\n }\r\n >\r\n Mail\r\n \r\n window.open(`/help`)}\r\n >\r\n Help\r\n \r\n\r\n handleRedirect('/TravelEmergencyContact')}\r\n >\r\n Contact\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n window.open(\r\n `mailto:${getSettingValue(\r\n Constants.settings.contactUsMail\r\n )}`\r\n )\r\n }\r\n className={styles.miniBtnIntranet}\r\n >\r\n \r\n \r\n window.open(`/help`)}\r\n >\r\n \r\n \r\n handleRedirect('/TravelEmergencyContact')}\r\n >\r\n \r\n \r\n \r\n ))}\r\n {isMenuOpen ? (\r\n \r\n window.open(\r\n getSettingValue(Constants.settings.intranetLink),\r\n '_blank'\r\n )\r\n }\r\n >\r\n Intranet\r\n \r\n ) : (\r\n \r\n window.open(\r\n getSettingValue(Constants.settings.intranetLink),\r\n '_blank'\r\n )\r\n }\r\n className={styles.miniBtnIntranet}\r\n >\r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n );\r\n\r\n const container =\r\n window !== undefined ? () => window.document.body : undefined;\r\n\r\n const handleClickAway = () => {\r\n if (isMenuOpen && !breakpoint.lgup) {\r\n closeMenu();\r\n setClickAwayTs(new Date());\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {\r\n setClickAwayTs(new Date());\r\n toggleMenu();\r\n }}\r\n classes={{\r\n root: styles.drawer,\r\n paper: styles.drawerPaper,\r\n }}\r\n ModalProps={{\r\n keepMounted: true, // Better open performance on mobile.\r\n }}\r\n >\r\n {drawer}\r\n \r\n \r\n \r\n \r\n \r\n {drawer}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SideMenu;\r\n","import React, {useContext} from 'react';\r\nimport {useLocation} from 'react-router-dom';\r\n\r\nimport {useMediaQuery} from '@material-ui/core';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport {StylesProvider, ThemeProvider} from '@material-ui/core/styles';\r\n\r\nimport ReportIssue from '../../components/ReportIssue/ReportIssue';\r\nimport LayoutProvider from '../../context/LayoutProvider/LayoutProvider';\r\nimport {SnackbarProvider} from '../../context/Snackbar/SnackbarContext';\r\nimport {UserContext} from '../../context/User/UserContext';\r\nimport getTheme from '../../styles/theme';\r\nimport PermissionsList from '../../utils/PermissionsList';\r\nimport Content from '../Content/Content';\r\nimport Header from '../Header/Header';\r\nimport SideMenu from '../SideMenu';\r\nimport styles from './Layout.module.scss';\r\n\r\nconst Layout: React.FC = ({children}) => {\r\n const theme = getTheme();\r\n const location = useLocation();\r\n const { permissions } = useContext(UserContext);\r\n const divRef = React.useRef(null);\r\n const isSmartphone = useMediaQuery(theme.breakpoints.down('sm'));\r\n\r\n const layoutContent = (\r\n <>\r\n \r\n \r\n \r\n
\r\n \r\n {children}\r\n {permissions?.includes(PermissionsList.eTravelReportingReportIssue) &&\r\n !isSmartphone && }\r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {location.pathname === '/' && (\r\n \r\n )}{' '}\r\n {layoutContent}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Layout;\r\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _circle, _circle2, _circle3, _circle4, _circle5, _circle6, _circle7;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgWorldMap(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 570,\n height: 290,\n viewBox: \"0 0 570 290\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M132.531 26.2796C132.326 24.6598 131.912 23.0734 131.298 21.5603C131.14 20.9817 130.746 20.4963 130.212 20.2227C129.86 20.1309 129.49 20.1268 129.135 20.2106L123.602 21.0572C123.139 21.0783 122.696 21.2506 122.34 21.5477C121.619 22.3055 122.329 23.5257 122.307 24.5712C122.282 25.7469 121.237 26.7012 120.105 27.0169C118.948 27.2505 117.756 27.2357 116.606 26.9735L108.869 25.7713C111.148 25.0439 113.176 23.6905 114.722 21.8658C115.74 20.6597 116.282 18.4081 114.81 17.837C114.373 17.717 113.917 17.6804 113.467 17.7291C109.962 17.7563 107.203 14.8299 103.922 13.5973C99.6141 12.0837 94.8212 13.5125 92.0451 17.1379L96.1663 17.3366C96.554 17.3152 96.9385 17.4178 97.2641 17.6294C98.1672 18.3714 97.0443 19.7968 97.1716 20.9587C97.3369 22.4684 99.3414 22.7907 100.852 22.9434C102.363 23.096 104.28 24.3237 103.553 25.6572C95.959 28.2731 88.2307 20.5437 80.2549 21.4952C78.2363 21.736 76.3301 22.529 74.3593 23.0276C62.3199 26.0737 49.8734 17.9464 37.5745 19.6676C34.8403 20.1337 32.1531 20.8424 29.5446 21.7854C27.8708 22.335 26.1248 22.9289 24.9085 24.2036C23.6923 25.4782 23.2294 27.6581 24.3816 28.9909C21.2058 29.2525 18.0088 28.9486 14.9392 28.0934C16.63 29.0333 17.673 30.8211 17.6589 32.7556C12.7003 33.5641 7.87306 35.036 3.30692 37.1317C4.15914 38.5488 5.15453 39.8748 6.27745 41.0888L0 45.1217C2.12082 45.656 3.21734 48.548 1.984 50.3541C4.18305 49.3758 5.54592 46.8451 7.89743 46.332C9.43799 45.9958 11.0055 46.626 12.467 47.218C13.9285 47.8101 15.5347 48.3841 17.0476 47.9398C18.5606 47.4955 19.6765 45.5338 18.7151 44.2839C25.1817 42.3972 31.8648 41.353 38.5987 41.1774C39.1182 41.1122 39.6451 41.2122 40.1046 41.4632C40.9812 42.0713 40.7506 43.3849 40.7033 44.4508C40.6561 45.5166 41.4868 46.9174 42.4394 46.437C41.3187 47.4088 42.2768 49.2384 43.352 50.2604C44.4273 51.2823 45.7232 52.6925 45.065 54.0218C44.8931 54.3688 44.6017 54.6464 44.4364 54.9965C43.9485 56.0299 44.7232 57.2347 45.637 57.921C46.5508 58.6072 47.6702 59.0868 48.305 60.0372C48.9397 60.9875 48.6515 62.6509 47.5164 62.7836L44.2901 58.6872C43.1878 59.8302 42.4321 61.2623 42.1106 62.8173C45.5319 65.6141 46.0465 71.3067 43.1822 74.6717C41.7186 76.3913 39.6371 77.4362 37.8204 78.7774C36.0037 80.1187 34.3227 82.0287 34.3273 84.2868C34.3352 88.1882 34.0164 91.8127 35.4783 95.4297C38.1741 102.099 41.2865 108.593 44.7971 114.872C45.719 116.52 46.9104 118.328 48.778 118.612C46.4178 112.866 44.2931 107.03 42.404 101.106C43.6344 101.111 45.0563 101.208 45.7776 102.205C46.3749 103.031 46.2466 104.153 46.4322 105.155C46.6682 106.125 47.0619 107.051 47.5974 107.894L58.8682 127.971C59.8025 129.635 60.8743 131.421 62.66 132.095C63.8017 132.526 65.1225 132.445 66.1734 133.066C66.997 133.552 67.5518 134.415 68.3915 134.873C70.7657 136.168 74.0674 133.684 76.2862 135.231C76.9206 135.673 77.3242 136.375 77.9088 136.882C79.958 138.656 83.3197 137.469 85.6853 138.793C87.21 139.646 88.0001 141.352 88.8133 142.899C90.8503 146.772 94.1462 150.567 98.5117 150.875C99.883 150.972 101.284 150.712 102.624 151.017C103.964 151.322 105.284 152.492 105.069 153.85C104.7 156.177 105.85 158.726 105.541 161.063C104.979 165.319 98.9419 167.189 98.4233 171.45C98.3098 172.383 98.4875 173.346 98.2654 174.26C97.993 175.379 97.1524 176.29 96.8537 177.403C96.2876 179.511 97.7982 181.61 99.4577 183.028C101.117 184.447 103.097 185.67 104.004 187.656C104.963 189.754 104.492 192.202 104.804 194.488C105.484 199.479 109.796 203.179 114.232 205.565C115.584 206.292 117.035 206.996 117.91 208.257C119.052 209.903 118.939 212.073 119.32 214.039C120.254 218.856 124.308 222.824 124.424 227.729C124.505 231.215 122.568 234.378 121.41 237.667C119.214 244.045 119.905 251.062 123.303 256.889C124.168 258.351 125.204 259.73 125.817 261.315C126.91 264.144 126.555 267.359 127.563 270.219C128.896 274.001 132.557 277.124 132.207 281.118C133.869 284.57 137.54 286.267 141.231 287.294L147.847 289.136C149.113 289.488 150.437 289.844 151.727 289.588C153.017 289.333 154.248 288.262 154.214 286.948C150.97 286.216 147.622 285.438 144.948 283.461C142.274 281.484 140.442 277.964 141.456 274.797C141.927 273.328 142.928 271.633 141.976 270.419C141.431 269.724 140.435 269.543 139.82 268.909C138.862 267.92 139.191 266.259 139.88 265.067C140.569 263.875 141.565 262.809 141.843 261.46C142.131 259.915 141.427 258.354 140.08 257.546C141.306 257.082 142.422 256.367 143.354 255.445C144.215 254.461 144.613 252.945 143.935 251.827C145.947 252.082 148.322 252.207 149.642 250.669C150.697 249.44 150.624 247.603 150.208 246.038C149.791 244.474 149.087 242.954 149.065 241.335C153.705 241.555 158.356 241.397 162.97 240.863C162.303 238.616 160.787 236.717 158.743 235.569C160.833 235.215 162.737 232.713 163.397 230.699C164.057 228.684 163.889 226.49 163.481 224.41C163.324 223.875 163.302 223.309 163.418 222.763C163.654 222.013 164.39 221.555 165.072 221.164L175.446 215.206C176.065 214.896 176.626 214.481 177.105 213.981C178.192 212.704 178.031 210.777 177.474 209.196C176.918 207.614 176.026 206.127 175.812 204.464C175.171 199.49 180.495 195.922 182.291 191.241C182.996 189.403 183.14 187.406 183.277 185.443C183.423 183.335 183.434 180.886 181.815 179.527C180.263 178.224 177.838 178.515 176.214 177.304C174.726 176.193 174.212 174.036 172.586 173.138C171.108 172.324 169.257 172.842 167.614 172.459C164.721 171.784 162.901 168.45 159.947 168.142C158.28 167.967 156.394 168.782 155.028 167.812C153.824 166.956 153.776 165.237 153.547 163.778C152.725 159.135 149.097 155.496 144.456 154.658C142.738 154.383 140.867 154.488 139.405 153.543C137.925 152.587 137.246 150.797 136.083 149.472C134.209 147.338 131.258 146.58 128.493 145.93L117.246 143.286C115.25 142.816 112.676 142.567 111.605 144.316C111.288 144.982 111.063 145.688 110.937 146.415C110.114 149.112 107.645 150.971 104.825 151.016C103.882 149.408 102.355 148.226 100.563 147.718C99.4221 147.4 98.2014 147.365 97.1138 146.897C95.9166 146.313 95.0129 145.261 94.6152 143.99C94.2175 142.718 94.3609 141.339 95.0117 140.177C96.3447 137.803 95.9225 134.831 93.9812 132.923C92.0686 131.206 89.3019 130.791 86.7374 130.963C86.0657 129.497 87.1888 127.844 88.399 126.779C89.6092 125.714 91.0788 124.667 91.3424 123.076C91.7569 120.574 88.5647 118.674 86.141 119.42C83.7172 120.166 82.1703 122.52 81.1477 124.841C80.5609 126.172 80.0621 127.574 79.1366 128.697C78.2111 129.82 76.7207 130.624 75.311 130.263C73.3152 129.753 72.5445 127.382 72.1028 125.37C71.5101 122.671 70.914 119.934 71.0382 117.173C71.1624 114.412 72.0932 111.577 74.1291 109.708C77.4466 106.662 82.536 106.961 87.0134 107.447C85.9556 106.255 86.217 104.246 87.3488 103.125C88.5618 102.047 90.2286 101.637 91.8028 102.03C93.152 102.311 94.3674 103.038 95.2534 104.093C96.5257 105.645 96.8876 107.739 97.8493 109.5C98.811 111.261 100.973 112.762 102.743 111.818C104.272 111.002 104.515 108.882 104.134 107.191C103.754 105.501 102.946 103.857 103.084 102.129C103.347 98.8332 106.763 96.8492 109.778 95.4917C112.794 94.1343 116.246 92.3086 116.724 89.0367C116.74 88.3961 116.861 87.7625 117.081 87.1608C117.416 86.6294 117.881 86.1924 118.431 85.8913C127.231 80.0759 136.177 74.1895 146.235 71.0119C146.758 70.8466 146.819 71.0303 147.353 70.9008C148.099 70.4695 147.604 69.2762 146.889 68.7955C146.173 68.3148 145.217 67.9462 145.035 67.1035C144.902 66.4841 145.267 65.8758 145.362 65.2493C145.595 63.7097 143.753 62.2883 142.323 62.9038C141.515 61.8338 143.113 60.5906 144.406 60.2347C148.287 59.1665 152.272 58.5156 156.292 58.2931C156.755 58.2194 157.231 58.3002 157.644 58.5232C158.319 58.9908 158.233 60.0635 157.754 60.731C157.276 61.3985 156.532 61.8176 155.935 62.3824C154.607 63.6761 154.111 65.6018 154.648 67.3763C156.746 68.4437 159.027 69.5425 161.352 69.1665C163.676 68.7905 165.739 66.1791 164.646 64.0935C163.629 62.1514 160.573 61.7134 160.048 59.5848C159.432 57.0927 162.96 54.8762 162.165 52.4353C161.817 51.3662 160.752 50.7369 159.934 49.965C157.958 48.0278 157.375 45.0752 158.467 42.5324C155.765 43.0078 153 42.1425 151.051 40.2114C149.277 38.4211 147.861 35.5968 145.342 35.6769C143.03 35.7504 141.039 38.4474 138.878 37.6246C138.346 37.4222 137.785 37.0102 137.27 37.2516C136.928 37.4737 136.707 37.8408 136.67 38.2471C136.121 40.8734 137.066 43.8657 135.634 46.1351C134.077 48.6047 130.474 48.9471 128.586 51.1741C127.561 52.3829 127.163 54.0119 126.221 55.2864C125.279 56.5609 123.279 57.3712 122.149 56.2605C123.293 53.9079 122.66 51.0766 120.624 49.4347C119.574 48.7498 118.442 48.1994 117.255 47.7964C115.929 47.235 114.667 46.5318 113.492 45.6992C112.904 45.3441 112.425 44.8323 112.111 44.2211C111.862 43.4557 111.896 42.6265 112.205 41.8837C113.374 38.5335 116.302 36.1063 119.811 35.5797C121.317 35.3749 123.069 35.4471 124.065 34.3C124.592 33.693 124.869 32.7754 125.634 32.5289C126.124 32.4306 126.632 32.4931 127.083 32.7073L132.702 34.6852C133.329 34.9682 134.019 35.0823 134.704 35.0162C135.408 34.9214 135.92 34.2993 135.877 33.59C135.698 32.6568 134.262 32.209 134.393 31.2677C134.466 30.9627 134.63 30.6871 134.863 30.4772C138.969 26.1069 144.812 23.7993 150.797 24.185C151.506 25.3498 150.384 26.7292 149.451 27.7236C148.518 28.718 147.768 30.4947 148.896 31.2602C149.359 31.4963 149.873 31.6121 150.392 31.5971C151.776 31.7844 153.12 32.1922 154.375 32.805C156.317 33.6501 158.221 34.5747 160.088 35.5788C159.923 34.3476 159.766 33.0506 160.233 31.8995C160.699 30.7483 162.025 29.8453 163.184 30.2937C164.3 30.7257 164.873 32.204 166.062 32.3394C167.649 32.5201 168.275 30.1761 167.612 28.7233C166.949 27.2704 165.637 26.0539 165.528 24.4608C165.454 23.386 165.863 22.0531 165.005 21.4022C164.699 21.2069 164.352 21.0853 163.992 21.0471L142.555 17.1024C141.282 16.8681 139.443 17.0477 139.387 18.3407C139.355 19.0625 140 19.7766 139.714 20.4402C139.41 21.1485 138.408 21.0838 137.679 21.3343C136.548 21.723 135.98 23.0666 136.088 24.2581C136.287 25.442 136.746 26.5672 137.431 27.553C136.037 26.9699 133.926 26.8627 132.531 26.2796Z\",\n fill: \"#C7D3F4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M115.427 8.40657C112.658 7.49019 109.611 8.40257 107.802 10.6901C107.449 11.1549 107.152 11.7955 107.448 12.2988C107.872 13.0202 108.951 12.7352 109.747 12.4772C110.917 12.0593 112.19 12.0289 113.378 12.3905C114.125 12.6471 114.794 13.1006 115.545 13.3475C116.289 13.6589 117.145 13.5338 117.769 13.0224C118.284 12.497 118.316 11.6803 118.317 10.9445C118.39 10.4459 118.233 9.94127 117.892 9.57105C117.591 9.39704 117.254 9.29718 116.907 9.27977C116.13 9.13603 115.428 8.7258 114.922 8.11984\",\n fill: \"#C7D3F4\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.156 6.25457C122.541 6.22107 121.953 6.51063 121.604 7.01862C121.256 7.52661 121.197 8.17957 121.45 8.74155C122.379 8.99491 123.349 9.0582 124.303 8.92762C125.276 8.77655 126.063 8.0552 126.298 7.09888C125.175 7.30329 124.015 7.08191 123.047 6.47793\",\n fill: \"#C7D3F4\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M149.09 2.66039C146.562 3.19799 144.105 4.03238 141.772 5.14623C144.03 6.0141 145.456 8.25568 145.284 10.6685C145.185 11.1197 145.197 11.588 145.317 12.0338C145.586 12.6854 146.365 12.9298 147.05 13.0971C148.28 13.4714 149.564 13.6354 150.849 13.582C152.154 13.5137 153.337 12.7909 153.994 11.6603C154.18 11.1321 154.398 10.6158 154.648 10.1143C156.289 7.61493 161.164 10.6371 162.926 8.22138C163.547 7.37041 163.49 6.08947 164.299 5.41515C164.718 5.12137 165.203 4.93626 165.711 4.87648C169.254 4.17248 172.833 3.66272 176.432 3.34948C178.138 3.20108 180.361 2.58875 180.375 0.877056C173.951 -0.384444 167.291 0.511521 161.43 3.42566C159.318 4.48342 156.525 6.70843 154.491 5.30611C153.729 4.78105 153.767 3.36721 152.718 2.77679C151.647 2.17317 150.228 2.41867 149.09 2.66039Z\",\n fill: \"#C7D3F4\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M170.096 6.58948L173.111 7.16884C171.989 7.11911 170.899 7.5553 170.12 8.36595C169.342 9.17661 168.95 10.2832 169.045 11.4031C171.869 12.3464 174.947 11.4285 177.922 11.5538C180.896 11.6792 184.357 13.8038 183.849 16.7372C183.695 17.6242 183.183 18.5105 183.449 19.3703C183.636 19.9729 184.168 20.4006 184.468 20.9556C185.093 22.1121 184.593 23.575 183.804 24.6264C183.014 25.6777 181.953 26.5166 181.261 27.6339C179.537 30.4127 180.516 34.0053 181.543 37.1098C181.84 38.2828 182.388 39.3773 183.149 40.3177C184.67 41.9347 187.149 42.0753 189.368 42.1077C190.984 42.1313 192.834 42.0515 193.856 40.7998C195.19 39.1657 194.257 36.6161 195.135 34.6982C195.933 32.9564 197.965 32.2092 199.805 31.6792C203.178 30.7083 206.615 29.8828 209.804 28.4163C213.763 26.5952 217.463 23.7572 221.815 23.5228C223.036 23.457 224.287 23.6011 225.463 23.2666C226.639 22.9321 227.756 21.9153 227.667 20.696C227.591 19.6541 226.709 18.889 226.02 18.1036C225.332 17.3182 224.791 16.1105 225.424 15.2795L236.83 13.149C236.022 10.9455 235.392 8.04355 237.25 6.60929C237.92 6.0918 238.817 5.88497 239.388 5.25936C240.361 4.19307 239.872 2.35629 238.749 1.44948C237.626 0.542663 236.108 0.332154 234.669 0.212675C229.668 -0.202694 224.638 0.0717776 219.627 0.346458C209.831 0.883397 200.035 1.42033 190.24 1.95727C188.268 2.06536 185.991 1.90023 184.182 2.57298C182.651 3.14253 181.563 4.188 179.812 4.55532C176.579 5.23342 173.021 4.77456 170.096 6.58948Z\",\n fill: \"#C7D3F4\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M224.112 30.4224C223.805 30.3738 223.49 30.4451 223.234 30.6215C223.065 30.808 222.964 31.0467 222.949 31.2982C222.754 32.4082 222.986 33.5508 223.598 34.4971C224.233 35.4425 225.33 35.9689 226.465 35.8718C227.823 35.6987 228.823 34.5404 230.071 33.9752C231.995 33.1049 240.165 31.7482 234.514 28.695C232.566 27.6428 231.307 28.5716 229.772 29.2646C228.026 30.158 226.069 30.5583 224.112 30.4224Z\",\n fill: \"#C7D3F4\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M273.611 4.86518C272.951 5.13478 272.399 5.61532 272.041 6.23177C271.698 6.88187 271.926 7.68641 272.558 8.06092C272.805 8.15029 273.066 8.19174 273.328 8.18303L276.011 8.26319C277.151 8.29725 278.575 8.54001 278.881 9.63849C279.109 10.4541 278.6 11.5023 279.214 12.0851C279.477 12.2893 279.794 12.4129 280.127 12.4412C281.01 12.6682 281.933 12.698 282.83 12.5284C284.782 12.0047 283.757 10.8132 284.372 9.7522C285.312 8.12881 285.149 9.11153 286.807 8.18113C288.031 7.49402 289.613 6.24759 288.592 4.49634C286.815 1.45095 276.233 3.55689 273.611 4.86518Z\",\n fill: \"#C7D3F4\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M326.571 3.3354L325.013 3.54332C321.499 4.01217 317.966 4.48534 314.582 5.54043C316.047 6.11958 317.584 6.49668 319.15 6.66136C320.012 6.70363 320.869 6.82539 321.709 7.0251C323.204 7.47004 324.71 8.61902 326.154 8.03045C327.049 7.6655 327.341 6.73328 328.083 6.23922C328.595 5.89807 330.537 5.3459 330.754 5.00157C332.51 2.21788 327.92 3.15534 326.571 3.3354Z\",\n fill: \"#C7D3F4\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M333.413 10.4158C331.332 11.5795 329.401 12.9936 327.664 14.6265C326.932 15.3147 326.184 16.1705 326.25 17.1731C326.338 18.5055 327.758 19.2784 328.987 19.799L333.968 21.9078C334.573 21.0562 334.019 19.8806 333.395 19.0436C332.771 18.2067 332.028 17.2384 332.304 16.2313C332.619 15.082 334.021 14.6904 335.196 14.4924C337.11 14.1698 342.275 14.1957 341.654 11.1101C340.923 7.47443 335.335 9.34153 333.413 10.4158Z\",\n fill: \"#C7D3F4\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M332.411 216.162C331.937 217.535 331.892 219.152 332.712 220.35C333.632 221.695 335.474 222.196 337.068 221.855C338.655 221.433 340.069 220.524 341.112 219.255C342.066 218.192 342.85 216.989 343.438 215.688C344.259 213.66 344.838 211.543 345.162 209.379L346.709 201.26C347.054 199.445 347.041 193.882 343.706 195.694C342.795 196.189 340.685 200.099 339.73 201.208C338.009 203.206 337.781 205.145 336.875 207.566C335.741 210.598 333.46 213.125 332.411 216.162Z\",\n fill: \"#C7D3F4\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M508.57 257.714C507.479 257.288 506.42 256.784 505.401 256.205C504.38 259.013 503.836 261.973 503.794 264.961L511.262 260.736C512.386 260.1 513.659 259.217 513.635 257.926C513.656 257.601 513.497 257.291 513.222 257.118C513.056 257.051 512.875 257.03 512.699 257.056C511.591 257.149 510.581 257.694 509.537 258.072C508.492 258.451 507.271 258.652 506.312 258.089\",\n fill: \"#C7D3F4\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M547.966 260.222C547.146 260.445 546.345 260.733 545.571 261.082C543.857 261.954 542.691 263.61 541.149 264.758C539.673 265.857 537.897 266.461 536.153 267.047C535.64 267.501 535.875 268.414 536.432 268.812C537.031 269.153 537.718 269.307 538.405 269.256C540.216 269.296 542.125 269.313 543.712 268.438C544.606 267.858 545.443 267.194 546.211 266.455C548.067 264.907 550.295 263.885 552.501 262.898C553.304 262.595 554.046 262.151 554.693 261.587C556.079 260.222 556.176 258.115 554.178 257.65C552.563 257.275 549.503 259.725 547.966 260.222Z\",\n fill: \"#C7D3F4\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M565.372 248.852C565.553 246.949 564.851 245.067 563.465 243.748C563.445 245.628 563.388 247.631 562.331 249.185C561.577 250.293 560.396 251.041 559.571 252.096C558.745 253.151 558.379 254.824 559.347 255.75C559.966 256.221 560.72 256.48 561.497 256.49C563.424 256.717 565.655 256.844 567.007 255.451C567.745 254.691 568.103 253.566 569.003 253.007C569.338 252.866 569.638 252.652 569.879 252.38C570.251 251.79 569.66 251.011 568.996 250.798C568.331 250.586 567.599 250.686 566.931 250.484C566.263 250.281 565.651 249.53 565.993 248.923\",\n fill: \"#C7D3F4\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M534.435 179.926C533.424 180.172 532.377 180.234 531.344 180.109C529.628 179.793 528.293 178.5 526.908 177.44C523.615 174.933 519.612 173.534 515.474 173.445C511.711 173.374 507.912 174.394 504.215 173.682C504.456 175.026 505.606 176.033 506.832 176.632C508.059 177.231 509.413 177.532 510.645 178.119C512.619 179.068 514.184 180.696 515.054 182.706C515.451 183.633 515.701 184.641 516.302 185.45C517.531 187.103 519.86 187.466 521.916 187.331C524.596 187.155 527.396 186.384 529.889 187.383C531.797 188.147 533.162 189.816 534.755 191.114C536.347 192.412 538.591 193.376 540.42 192.439C536.521 191.177 533.895 187.526 533.94 183.428C535.733 183.593 540.9 183.529 540.622 180.481C540.386 177.898 535.975 179.647 534.435 179.926Z\",\n fill: \"#C7D3F4\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M510.97 200.941C511.288 199.194 513.03 197.651 512.488 195.961C512.113 194.792 510.757 194.214 509.529 194.185C508.302 194.157 507.096 194.522 505.868 194.557C505.069 194.514 504.269 194.526 503.471 194.591C501.035 194.991 499.533 197.545 497.236 198.453C495.84 199.005 494.272 198.9 492.82 199.282C489.523 200.148 487.438 203.263 485.133 205.774C481.41 209.814 476.56 212.642 471.211 213.893C469.337 214.327 467.322 214.605 465.832 215.822C463.86 217.434 463.374 220.198 462.935 222.707C461.723 229.637 459.869 236.44 457.399 243.028L465.226 244.028C466.714 244.218 468.256 244.404 469.69 243.963C470.732 243.57 471.719 243.044 472.626 242.399C476.112 240.235 480.014 238.826 484.078 238.265C486.128 237.984 488.277 237.932 490.2 238.694C492.124 239.456 493.774 241.184 493.935 243.246C495.63 242.719 497.477 243.168 498.741 244.415C499.966 245.664 500.769 247.266 501.035 248.995C501.241 250.066 501.448 251.349 502.441 251.798C503.252 252.165 504.182 251.77 505.069 251.699C508.078 251.458 510.575 254.967 513.533 254.363C516.705 253.715 517.483 248.964 520.578 248.013C522.355 247.466 524.848 248.131 525.7 246.477C526.45 245.02 524.953 243.339 525.107 241.707C525.297 239.698 527.667 238.845 529.494 237.988C535.793 235.032 538.782 226.555 535.73 220.303C533.921 216.598 530.363 213.682 529.706 209.612C529.2 206.481 530.435 202.83 528.438 200.365C527.423 199.112 525.703 198.42 525.099 196.924C524.719 195.982 524.872 194.914 524.667 193.919C524.462 192.924 523.594 191.884 522.612 192.141C519.761 192.89 518.851 201.698 517.324 203.839C515.003 207.092 510.239 204.949 510.97 200.941Z\",\n fill: \"#C7D3F4\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M458.265 183.254C457.291 182.981 456.227 182.712 455.293 183.102C454.359 183.493 453.814 184.863 454.563 185.544C460.426 185.315 466.324 185.088 472.136 185.885C478.833 186.802 485.461 189.074 492.187 188.405C488.345 187.272 484.439 186.366 480.491 185.691L473.906 184.433C472.139 184.063 470.354 183.788 468.559 183.607C464.802 183.297 461.959 184.29 458.265 183.254Z\",\n fill: \"#C7D3F4\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M464.134 162.836C463.647 162.795 463.045 162.76 462.793 163.178C462.552 163.578 462.828 164.106 462.698 164.555C462.522 165.167 461.719 165.324 461.087 165.24C460.455 165.157 459.772 164.957 459.212 165.262C458.629 165.66 458.378 166.396 458.598 167.067C458.826 167.716 459.197 168.307 459.681 168.795C460.51 169.839 461.453 170.785 462.494 171.616C464.509 173.103 467.238 173.82 468.507 175.979C468.686 176.398 468.962 176.768 469.311 177.06C469.92 177.446 470.714 177.152 471.37 176.853L473.669 175.802C474.084 175.653 474.453 175.401 474.744 175.071C475.269 174.358 474.947 173.345 474.506 172.577C474.065 171.809 473.501 171.015 473.595 170.135C473.764 168.565 475.782 167.965 476.612 166.622C477.448 165.268 476.904 163.524 477 161.936C477.113 160.078 478.28 157.662 476.402 156.274C474.806 155.094 473.281 156.184 472.135 157.486C469.719 160.233 468.576 163.206 464.134 162.836Z\",\n fill: \"#C7D3F4\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M478.09 135.082C478.875 136.585 480.512 137.482 481.368 138.946C482.296 140.532 482.19 142.582 483.196 144.12C484.229 145.697 486.307 146.535 486.886 148.329C487.519 150.289 486.084 152.67 487.228 154.381C487.659 154.947 488.307 155.306 489.016 155.371C489.724 155.436 490.427 155.202 490.954 154.724C491.957 153.632 491.907 151.94 490.841 150.91C490.164 150.293 489.192 150.026 488.627 149.305C488.332 148.889 488.136 148.411 488.053 147.908C487.745 146.458 487.794 144.954 488.197 143.526C488.348 143.164 488.387 142.765 488.307 142.38C488.053 141.641 487.051 141.588 486.348 141.245C484.751 140.466 484.79 138.212 485.069 136.457C484.883 137.626 480.722 135.639 480.286 134.977C479.421 133.662 479.892 131.127 479.72 129.674C477.851 130.574 477.131 133.244 478.09 135.082Z\",\n fill: \"#C7D3F4\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M436.166 158.206C435.398 157.346 434.241 156.447 433.212 156.965C432.426 157.361 432.21 158.448 432.518 159.272C432.893 160.072 433.471 160.761 434.193 161.269C436.339 163.039 438.65 164.636 440.522 166.694C443.872 170.375 445.647 175.343 449.291 178.735C450.023 179.521 450.993 180.046 452.052 180.229C453.113 180.328 454.305 179.649 454.427 178.589C454.528 177.717 453.92 176.936 453.325 176.29C451.91 174.75 450.36 173.333 449.024 171.725C448.407 171.107 448.019 170.297 447.925 169.428C447.918 168.562 448.708 167.656 449.547 167.87C448.526 167.609 447.77 165.909 446.272 165.589C445.02 165.322 444.717 166.097 443.227 165.458C440.386 164.24 438.156 160.434 436.166 158.206Z\",\n fill: \"#C7D3F4\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M502.933 74.4847C502.118 74.2425 501.317 73.9562 500.533 73.6272C498.423 72.9939 495.631 74.5447 495.913 76.7294C496.099 78.181 497.45 79.1596 498.196 80.4187C499.303 82.2859 499.008 84.6542 498.427 86.7453C498.284 87.3927 498.012 88.0049 497.628 88.5453C497.091 89.1159 496.449 89.5777 495.738 89.9053C492.889 91.503 490.376 93.6375 488.339 96.191C488.117 96.4268 487.963 96.7177 487.892 97.0333C487.791 97.7709 488.533 98.3082 488.952 98.9235C489.883 100.29 489.21 102.129 489.302 103.78C489.274 104.255 489.492 104.711 489.881 104.985C490.442 105.27 491.107 104.786 491.411 104.235C492.421 102.406 491.66 99.4699 493.554 98.588C493.913 98.4212 494.347 98.3509 494.586 98.0362C494.965 97.537 494.599 96.7978 494.791 96.2011C495.08 95.3051 496.305 95.2649 497.246 95.3047C498.865 95.3724 500.485 95.1568 502.031 94.6676C502.637 94.5235 503.188 94.2045 503.615 93.7504C504.181 93.0439 504.13 92.0392 504.017 91.141C503.451 86.6627 502.032 82.3342 499.838 78.3892C501.502 78.6017 503.312 78.7857 504.747 77.9188C505.551 77.4333 506.515 75.9815 506.116 74.9933C505.486 73.4307 504.347 74.746 502.933 74.4847Z\",\n fill: \"#C7D3F4\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M289.66 99.1135C289.859 100.181 290.055 101.306 289.705 102.334C289.355 103.362 288.254 104.221 287.215 103.906C286.408 103.662 285.942 102.851 285.369 102.232C282.184 98.793 274.996 100.784 273.028 96.5294C272.225 94.793 272.771 92.7126 272.223 90.8796C271.513 88.7005 269.418 87.2778 267.131 87.4199C266.116 87.5664 265.129 87.8612 264.2 88.2947C257.978 90.7866 251.446 92.4203 244.783 93.1511C243.517 93.2282 242.265 93.4561 241.053 93.8299C238.317 94.8217 236.448 97.3579 235.118 99.9459C233.787 102.534 232.805 105.336 231.022 107.635C229.148 110.052 226.521 111.744 224.071 113.574C223.127 114.182 222.341 115.006 221.778 115.977C221.247 117.068 221.277 118.336 221.318 119.548L221.819 134.271C221.883 136.165 221.964 138.127 222.812 139.821C223.87 141.938 225.961 143.324 227.411 145.193C228.892 147.114 229.663 149.488 229.594 151.912C229.563 152.887 229.466 154.04 230.225 154.652C230.687 154.951 231.228 155.107 231.778 155.098L251.694 156.728C255.197 157.015 259.08 157.486 261.367 160.155C262.446 161.415 263.314 163.227 264.967 163.362C265.676 163.42 266.366 163.129 267.076 163.072C268.865 162.931 270.438 164.289 271.43 165.785C272.932 168.066 273.613 170.789 273.363 173.508C273.2 175.215 272.671 176.874 272.557 178.585C272.123 185.094 277.641 190.749 277.748 197.272C277.811 201.108 275.989 204.693 274.214 208.095C277.08 212.437 274.733 218.218 275.874 223.294C276.956 228.109 280.971 231.879 281.972 236.712C282.43 238.924 282.456 241.647 284.407 242.787C285.263 243.204 286.213 243.394 287.163 243.339C292.898 243.407 298.568 242.116 303.708 239.572C306.12 238.375 308.621 236.588 309.042 233.928C309.382 231.782 308.294 229.383 309.401 227.514C310.706 225.312 314.049 225.487 315.968 223.793C319.083 221.047 316.654 215.808 317.916 211.851C319.05 208.295 322.955 206.406 324.891 203.214C325.652 201.841 326.199 200.36 326.511 198.821C327.398 195.144 327.95 191.394 328.16 187.618C328.212 185.323 328.381 183.033 328.667 180.756C330.754 167.791 343.571 159.11 347.732 146.655C348.13 145.466 348.316 143.881 347.258 143.208C346.631 142.909 345.919 142.834 345.243 142.997L336.062 144.155C334.922 144.299 333.713 144.433 332.666 143.959C331.619 143.486 330.868 142.161 331.424 141.155C332.983 138.33 329.775 134.761 328.35 131.866C324.513 124.072 319.943 116.661 314.702 109.732C314.366 109.376 314.156 108.919 314.104 108.433L316.709 108.52C315.83 105.363 314.378 101.91 311.312 100.755C309.584 100.105 307.671 100.33 305.827 100.43C300.547 100.719 294.886 99.9215 289.66 99.1135Z\",\n fill: \"#C7D3F4\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M305.832 27.9906C307.213 29.4579 308.762 31.0136 310.761 31.2694C314.292 31.7211 316.831 28.0697 318.447 24.898C318.572 26.5793 320.012 27.8561 321.696 27.7781C322.567 27.6315 323.399 27.3063 324.139 26.8229C331.135 22.9996 338.972 20.9738 346.944 20.9276C346.786 19.6768 347.597 18.5081 348.825 18.2201C350.446 17.8988 351.906 19.3002 352.688 20.756C353.47 22.2118 353.957 23.8992 355.2 24.9889C356.442 26.0786 358.847 26.0311 359.338 24.4531C359.809 22.9382 358.231 21.6463 356.92 20.7531C355.609 19.86 354.227 18.2069 355.11 16.8889C361.808 15.4061 368.548 13.9176 375.403 13.6229C376.57 13.6635 377.733 13.4632 378.819 13.0345C379.864 12.5215 380.695 11.3571 380.414 10.2271C377.354 10.9463 374.164 9.74286 372.341 7.18223C381.852 6.39736 391.968 5.72838 400.397 10.2037C401.409 12.3751 396.254 14.1817 397.633 16.1402C398.073 16.7648 398.954 16.8381 399.718 16.8523C405.576 16.961 411.467 17.0677 417.258 16.1833C419.375 15.8602 421.512 15.404 423.637 15.666C427.176 16.1025 430.203 18.4639 433.685 19.2338C435.102 19.5472 436.691 19.5578 437.886 18.7335C439.08 17.9093 439.594 16.0324 438.615 14.9609C441.893 11.7479 447.334 12.5442 451.659 14.0825C455.984 15.6207 460.081 18.1014 464.659 18.4442C467.941 18.6901 471.269 17.8072 474.512 18.3684C476.551 18.721 478.448 19.6278 480.44 20.1849C484.207 21.2385 488.193 21.0161 492.105 21.0668C502.086 21.2012 511.958 23.1629 521.232 26.8545C522.438 27.2473 523.544 27.9004 524.47 28.7676C525.333 29.6917 525.773 31.1277 525.193 32.2512L515.61 30.8509C516.512 32.6284 518.848 32.9313 520.745 33.5445C522.642 34.1577 524.609 36.2526 523.469 37.8882C521.414 37.2337 519.551 39.2888 518.513 41.1795C517.475 43.0703 516.209 45.3348 514.055 45.4499C512.126 45.5531 509.794 43.9107 508.536 45.3771C510.273 47.5684 511.761 49.9463 512.971 52.467C514.213 55.0548 515.098 58.3154 513.419 60.6437C513.155 61.0593 512.754 61.37 512.286 61.5223C510.915 61.8694 510.024 60.1921 509.041 59.1754C507.802 57.8943 505.928 57.5314 504.25 56.9306C502.572 56.3297 500.804 55.1478 500.673 53.3703C500.591 52.2645 501.175 51.2364 501.605 50.2143C502.328 48.4915 502.644 46.6253 502.529 44.7606C502.435 43.2604 502.014 41.6998 500.937 40.6516C499.859 39.6034 497.999 39.2709 496.843 40.2309C496.303 40.6789 495.87 41.3954 495.17 41.4222C493.931 41.4696 492.98 39.3106 491.984 40.0476C492.101 40.8329 491.938 41.6342 491.524 42.3116C488.551 44.8973 483.984 43.8034 480.151 44.7168C478.328 45.2384 476.583 46.0005 474.962 46.9829C474.356 47.2422 473.839 47.6754 473.479 48.2278C473 49.1576 473.528 50.3483 474.371 50.9665C475.266 51.515 476.271 51.858 477.314 51.9708C481.986 52.8558 486.727 54.2258 490.416 57.2271C494.105 60.2284 496.525 65.1897 495.357 69.8L486.142 60.995C486.492 64.692 486.691 68.3992 486.738 72.1166C486.798 72.8424 486.698 73.5725 486.446 74.2558C485.789 75.7068 484.009 76.195 482.449 76.5153C481.571 76.6821 480.806 77.2158 480.347 77.9822C479.888 78.7486 479.778 79.6747 480.045 80.5273C480.599 82.3341 481.981 83.7428 483.247 85.1465C484.512 86.5501 485.758 88.1454 485.923 90.0281C486.089 91.9108 484.669 94.0329 482.783 93.902C481.354 93.8027 480.294 92.5232 479.684 91.2267C479.074 89.9302 478.712 88.4858 477.796 87.3842C475.023 84.0497 468.796 85.4783 466.312 81.9235C465.025 83.3837 464.585 85.4062 465.15 87.2689C466.306 86.5456 467.888 87.2177 468.756 88.2687C469.624 89.3197 470.034 90.6672 470.715 91.8477C471.635 93.4406 473.099 94.8528 473.228 96.6878C473.194 97.3817 473.206 98.0771 473.263 98.7694C473.491 99.8813 474.431 100.68 475.082 101.609C476.598 103.771 476.524 106.742 475.546 109.196C474.569 111.649 472.813 113.7 471.075 115.687C468.037 119.159 464.938 122.611 461.337 125.494C460.31 126.316 459.213 127.125 458.573 128.276C457.933 129.426 457.9 131.04 458.884 131.915C458.18 131.95 456.918 132.297 456.215 132.332C455.967 129.509 455.914 126.673 456.054 123.843C453.277 122.51 450.287 126.08 450.646 129.14C451.004 132.199 453.217 134.654 454.792 137.301C455.944 139.236 456.8 141.493 456.416 143.713C456.031 145.932 454.05 147.979 451.806 147.784C448.237 147.472 446.744 142.348 443.209 141.762C442.898 141.689 442.57 141.721 442.279 141.854C441.754 142.142 441.663 142.844 441.634 143.442C441.489 146.376 441.364 149.426 442.509 152.131C444.185 156.088 448.513 159.412 447.605 163.612C442.714 161.339 440.171 155.853 439.016 150.585C437.862 145.316 437.669 139.785 435.599 134.804C434.028 136.818 430.724 135.153 429.288 133.04C427.927 131.036 427.089 128.719 425.768 126.688C424.447 124.658 422.424 122.84 420.004 122.728C417.467 122.611 415.267 124.352 413.332 125.997C411.741 127.349 410.107 128.755 409.177 130.625C407.824 133.346 408.178 136.554 408.113 139.592C408.042 142.876 407.346 146.342 405.107 148.746C402.869 151.151 398.737 151.989 396.268 149.821C394.978 148.69 394.354 147 393.798 145.377C391.118 137.556 388.887 129.588 387.114 121.513C386.699 123.356 385.08 125.731 383.534 124.646C383.187 124.354 382.906 123.992 382.709 123.583C379.825 118.695 374.484 115.763 369.088 114.005C363.692 112.247 358.014 111.427 352.678 109.495C349.687 108.412 346.831 106.989 344.165 105.255C342.78 107.289 342.623 109.919 343.756 112.103C344.939 114.199 347.618 115.412 349.911 114.679C351.096 114.301 352.097 113.478 353.272 113.072C354.448 112.666 356.026 112.865 356.54 113.998C357.033 115.082 356.289 116.394 356.658 117.526C357.22 119.25 359.82 119.383 360.729 120.952C361.406 122.119 360.849 123.67 359.883 124.612C358.917 125.554 357.628 126.07 356.449 126.726C352.623 128.854 349.902 132.486 346.558 135.312C343.214 138.138 338.496 140.201 334.511 138.388C335.461 133.578 329.731 130.046 328.677 125.258C328.33 123.682 328.51 122.008 328.015 120.472C327.297 118.248 325.325 116.719 323.706 115.034C319.74 110.86 317.629 105.26 317.852 99.5065C317.94 97.5275 318.303 95.5163 317.853 93.5873C317.402 91.6584 315.805 89.7914 313.826 89.8788C309.306 90.0785 303.611 90.4147 301.24 86.5616C300.394 85.1864 300.025 83.1723 301.249 82.1187C302.112 81.3754 303.386 81.4454 304.52 81.557L314.704 82.5588C317.086 82.7931 319.661 82.9865 321.705 81.7413C323.749 80.496 324.635 77.1906 322.742 75.7256C321.359 74.6551 318.882 74.7131 318.48 73.0112C318.145 71.5937 319.714 69.9854 318.866 68.8008C318.259 67.9514 316.893 68.187 316.065 68.8238C315.237 69.4605 314.637 70.3917 313.71 70.8738C312.085 71.7196 310.143 70.9147 308.395 70.3676C306.647 69.8206 304.303 69.7741 303.455 71.398C302.506 73.2141 304.296 75.5938 303.355 77.4136C302.11 79.8196 297.896 78.45 296.148 80.5195C294.143 82.8943 297.513 86.4354 296.837 89.4693C295.08 90.3391 292.996 90.2221 291.348 89.1609C289.724 88.0567 288.839 86.1496 289.044 84.1969C289.211 82.8322 289.923 81.439 289.446 80.1493C289.061 79.1066 288.014 78.4858 287.041 77.9481L277.144 72.4792C276.225 74.1838 277.387 76.2969 278.84 77.5771C280.292 78.8574 282.112 79.8216 283.066 81.5065C284.32 83.9297 283.469 86.9097 281.126 88.3063C280.839 88.5039 280.481 88.5665 280.145 88.4774C279.826 88.29 279.596 87.9813 279.508 87.6219C277.762 83.1533 275.14 78.7474 270.949 76.4131C266.757 74.0788 260.735 74.5587 257.986 78.491C257.333 79.425 256.895 80.4896 256.326 81.4771C253.305 86.7234 246.827 89.2077 240.775 89.0455C240.183 89.0782 239.594 88.9398 239.079 88.6468C238.101 87.9713 238.145 86.5378 238.294 85.3586L238.93 80.3542C239.057 79.3493 239.242 78.2385 240.037 77.6112C241.159 76.7269 242.776 77.285 244.204 77.2644C246.42 77.1607 248.334 75.683 248.996 73.5657C249.584 71.4386 248.946 69.1609 247.34 67.6481C246.685 67.0335 245.807 66.2614 246.153 65.4328C246.432 64.9688 246.902 64.6522 247.437 64.568C250.002 63.8232 252.712 63.628 255.233 62.7492C257.755 61.8704 260.201 60.0724 260.798 57.4694C260.981 56.6717 261.065 55.7054 261.781 55.3099C262.141 55.1581 262.527 55.0792 262.917 55.0778C265.751 54.6746 267.808 52.1744 267.658 49.3157C268.867 48.4712 270.56 49.0924 271.73 49.9907C272.899 50.8889 273.931 52.0757 275.354 52.4629C278.005 53.1845 280.567 50.837 283.315 50.8261C284.471 50.8215 285.667 51.2301 286.754 50.8383C287.856 50.4412 288.514 49.3441 289.36 48.5337C290.206 47.7232 291.69 47.2288 292.471 48.1019L291.806 43.1756C294.516 43.8601 297.389 43.3406 299.688 41.7506L291.092 38.8462C290.793 38.7715 290.517 38.6239 290.288 38.4165C289.664 37.7436 290.284 36.6949 290.792 35.93C292.008 34.1001 292.212 31.0857 290.213 30.1747C288.848 29.5528 287.282 30.2993 285.972 31.0295L279.699 34.5277C279.499 35.7202 280.958 36.3961 281.861 37.1993C282.98 38.1941 283.373 39.7744 282.849 41.1772C282.326 42.5801 280.994 43.5168 279.497 43.5351C280.334 44.6231 280.631 46.0325 280.304 47.3657L276.083 47.6692C275.609 47.7646 275.117 47.6685 274.713 47.402C274.262 47.0011 274.323 46.2984 274.219 45.7038C273.966 44.2685 272.561 43.2625 271.126 43.0045C269.692 42.7466 268.225 43.0772 266.804 43.4037C266.201 43.6207 265.539 43.6054 264.946 43.3608C264.607 43.1401 264.349 42.8143 264.211 42.4331C263.589 40.9233 264.171 39.1487 265.171 37.8575C266.171 36.5664 267.54 35.6225 268.77 34.5476C271.71 31.9677 273.87 28.6169 275.006 24.8739C277.33 23.9003 279.736 22.5774 282.06 21.6038C285.642 19.7899 289.66 19.0115 293.661 19.3561L301.53 19.5064C303.86 19.5509 306.253 19.6079 308.407 20.4962C310.562 21.3844 312.455 23.3056 312.603 25.6312C312.695 26.1664 312.504 26.7108 312.099 27.0722C311.795 27.2383 311.45 27.316 311.104 27.2965C308.931 27.3729 308.005 27.9143 305.832 27.9906Z\",\n fill: \"#C7D3F4\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M243.107 52.6537C243.733 52.0604 243.976 51.1664 243.735 50.3378C242.209 49.7489 240.481 50.0751 239.274 51.18C238.808 51.6515 238.406 52.1827 238.08 52.7596C237.045 54.4467 236.131 56.4619 236.73 58.3478C236.829 58.7632 237.091 59.1214 237.457 59.3415C237.725 59.4493 238.015 59.4946 238.303 59.4741C239.443 59.4726 240.581 59.4026 241.711 59.2644C242.406 59.1795 243.212 58.9834 243.481 58.3373C243.834 57.4881 242.98 56.5269 243.229 55.6417C243.392 55.2458 243.641 54.8904 243.956 54.6003C244.273 54.3041 244.432 53.8758 244.385 53.4445C244.284 53.0291 243.648 52.7935 243.419 53.1543\",\n fill: \"#C7D3F4\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M249.013 44.9957C248.001 44.7634 246.958 44.6979 245.925 44.8018C245.697 44.795 245.47 44.8465 245.267 44.9513C245.07 45.0965 244.928 45.3031 244.862 45.5386C244.409 46.9909 245.149 48.5472 246.56 49.1139C246.931 49.1992 247.287 49.342 247.613 49.5371C248.487 50.2148 247.93 51.6 248.095 52.6931C248.281 53.9205 249.469 54.9508 249.251 56.173C249.08 57.1358 248.051 57.8982 248.217 58.8621C248.39 59.8717 249.672 60.1751 250.693 60.2559C251.284 60.3595 251.894 60.2897 252.447 60.0549C253.001 59.6759 253.395 59.1049 253.553 58.4523C253.971 57.2079 254.147 55.895 254.071 54.5845C254.066 53.9884 253.917 53.4025 253.635 52.8773C253.327 52.4613 252.986 52.071 252.615 51.7103C250.659 49.4345 252.719 46.04 249.013 44.9957Z\",\n fill: \"#C7D3F4\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.8,\n d: \"M265.5 57.5C265.5 57.5 309.5 164.5 301 222\",\n stroke: \"#B8349A\",\n strokeWidth: 2\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.8,\n d: \"M265.5 57.5C265.5 57.5 339.5 69 355 114.5\",\n stroke: \"#B8349A\",\n strokeWidth: 2\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.8,\n d: \"M265.5 57.5C265.5 57.5 178.5 156 170 213.5\",\n stroke: \"#B8349A\",\n strokeWidth: 2\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.8,\n d: \"M265.5 57.5018C265.5 57.5018 183 36.9986 90 77.0002\",\n stroke: \"#B8349A\",\n strokeWidth: 2\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.8,\n d: \"M265.5 57.5078C265.5 57.5078 124 -2.00176 31 37.9999\",\n stroke: \"#B8349A\",\n strokeWidth: 2\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.8,\n d: \"M265.5 57.4991C265.5 57.4991 442 49 470.5 104.001\",\n stroke: \"#B8349A\",\n strokeWidth: 2\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 91.5641,\n cy: 78.5641,\n r: 6.56413,\n fill: \"#B8349A\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 28.5641,\n cy: 39.5641,\n r: 6.56413,\n fill: \"#B8349A\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 170.564,\n cy: 215.564,\n r: 6.56413,\n fill: \"#B8349A\"\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 266.564,\n cy: 59.5641,\n r: 6.56413,\n fill: \"#B8349A\"\n })), _circle5 || (_circle5 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 472.564,\n cy: 104.564,\n r: 6.56413,\n fill: \"#B8349A\"\n })), _circle6 || (_circle6 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 354.564,\n cy: 115.564,\n r: 6.56413,\n fill: \"#B8349A\"\n })), _circle7 || (_circle7 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 301.564,\n cy: 222.564,\n r: 6.56413,\n fill: \"#B8349A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWorldMap);\nexport default __webpack_public_path__ + \"static/media/world-map.b806fe3d.svg\";\nexport { ForwardRef as ReactComponent };","import {createTheme, ThemeOptions} from '@material-ui/core/styles';\r\nimport {AutocompleteClassKey} from '@material-ui/lab/Autocomplete';\r\nimport {ToggleButtonClassKey} from '@material-ui/lab/ToggleButton';\r\nimport {ToggleButtonGroupClassKey} from '@material-ui/lab/ToggleButtonGroup';\r\nimport {MuiPickersOverrides} from '@material-ui/pickers/typings/overrides';\r\n\r\nimport variables from './variables.module.scss';\r\n\r\ndeclare module '@material-ui/core/styles/overrides' {\r\n export interface ComponentNameToClassKey {\r\n MuiToggleButton: ToggleButtonClassKey;\r\n MuiToggleButtonGroup: ToggleButtonGroupClassKey;\r\n MuiAutocomplete: AutocompleteClassKey;\r\n }\r\n}\r\ndeclare module '@material-ui/core/styles/createPalette' {\r\n interface Palette {\r\n ternary: Palette['primary'];\r\n }\r\n\r\n interface PaletteOptions {\r\n ternary: PaletteOptions['primary'];\r\n }\r\n}\r\n\r\ntype overridesNameToClassKey = {\r\n [P in keyof MuiPickersOverrides]: keyof MuiPickersOverrides[P];\r\n};\r\n\r\ntype CustomType = {\r\n MuiPickersBasePicker: {\r\n pickerView: {\r\n maxWidth?: string;\r\n };\r\n };\r\n};\r\n\r\ndeclare module '@material-ui/core/styles/overrides' {\r\n interface ComponentNameToClassKey extends overridesNameToClassKey {}\r\n\r\n export interface ComponentNameToClassKey extends CustomType {}\r\n}\r\n\r\nexport default function getTheme(options?: ThemeOptions) {\r\n return createTheme({\r\n breakpoints: {\r\n values: {\r\n xs: Number(variables.breakpointXs),\r\n sm: Number(variables.breakpointSm),\r\n md: Number(variables.breakpointMd),\r\n lg: Number(variables.breakpointLg),\r\n xl: Number(variables.breakpointXl),\r\n },\r\n },\r\n palette: {\r\n type: 'light',\r\n primary: {\r\n main: variables.primaryColor,\r\n },\r\n secondary: {\r\n main: variables.secondaryColor,\r\n },\r\n ternary: {\r\n main: variables.ternaryColor,\r\n },\r\n background: {\r\n default: variables.defaultBackgroundColor,\r\n },\r\n action: {\r\n selected: variables.actionSelectedBackground,\r\n hover: variables.actionHoverBackground,\r\n },\r\n },\r\n typography: {\r\n fontFamily: 'Open Sans, sans-serif',\r\n h1: {\r\n fontFamily: 'Futura, sans-serif',\r\n fontStyle: 'normal',\r\n fontWeight: 500,\r\n fontSize: '28px',\r\n lineHeight: '28px',\r\n letterSpacing: '0.0375px',\r\n marginBottom: '8px',\r\n '@media (max-width: 600px)': {\r\n minHeight: '32px',\r\n fontSize: '20px',\r\n },\r\n },\r\n h2: {\r\n fontFamily: 'Futura, sans-serif',\r\n fontStyle: 'normal',\r\n fontWeight: 500,\r\n fontSize: '18px',\r\n lineHeight: '28px',\r\n letterSpacing: '0.0375px',\r\n marginBottom: '24px',\r\n marginTop: '8px',\r\n },\r\n h3: {\r\n fontFamily: 'Futura, sans-serif',\r\n fontStyle: 'normal',\r\n fontWeight: 500,\r\n fontSize: '22px',\r\n lineHight: '28px',\r\n letterSpacing: '0.0375px',\r\n },\r\n h4: {\r\n fontFamily: 'Open Sans',\r\n fontStyle: 'normal',\r\n fontWeight: 'bold',\r\n fontSize: '18px',\r\n lineHeight: '28px',\r\n letterSpacing: '0.0375px',\r\n },\r\n subtitle1: {\r\n fontFamily: 'Open Sans',\r\n fontStyle: 'normal',\r\n fontWeight: 600,\r\n fontSize: '16px',\r\n lineHeight: '28px',\r\n letterSpacing: '0.0375px',\r\n },\r\n subtitle2: {\r\n fontFamily: 'Open Sans',\r\n fontStyle: 'normal',\r\n fontWeight: 'normal',\r\n fontSize: '14px',\r\n lineHeight: '28px',\r\n letterSpacing: '0.0375px',\r\n },\r\n body1: {\r\n fontFamily: 'Open Sans',\r\n fontStyle: 'normal',\r\n fontWeight: 400,\r\n fontSize: '16px',\r\n lineHeight: '28px',\r\n letterSpacing: '0.0375px',\r\n },\r\n body2: {\r\n fontFamily: 'Open Sans',\r\n fontStyle: 'normal',\r\n fontWeight: 300,\r\n fontSize: '12px',\r\n lineHeight: '28px',\r\n letterSpacing: '0.0375px',\r\n },\r\n caption: {\r\n fontFamily: 'Open Sans',\r\n fontStyle: 'italic',\r\n fontWeight: 300,\r\n fontSize: '12px',\r\n lineHeight: '28px',\r\n letterSpacing: '0.0375px',\r\n },\r\n },\r\n overrides: {\r\n MuiTypography: {\r\n colorTextSecondary: {\r\n color: '#000000',\r\n },\r\n },\r\n MuiGrid: {\r\n 'spacing-xs-1': {\r\n width: '100%',\r\n margin: 0,\r\n padding: 0,\r\n },\r\n 'spacing-xs-2': {\r\n width: '100%',\r\n margin: 0,\r\n padding: 0,\r\n },\r\n 'spacing-xs-3': {\r\n width: '100%',\r\n margin: 0,\r\n padding: 0,\r\n },\r\n 'spacing-xs-4': {\r\n width: '100%',\r\n margin: 0,\r\n padding: 0,\r\n },\r\n 'spacing-xs-6': {\r\n width: '100%',\r\n // width: \"calc(100% + 24px)\",\r\n margin: 0,\r\n padding: 0,\r\n },\r\n },\r\n MuiDrawer: {\r\n paper: {\r\n borderRadius: '10px 0px 0px 10px',\r\n width: '30%',\r\n minWidth: '500px',\r\n '@media (max-width: 600px)': {\r\n borderRadius: '0px',\r\n width: '100%',\r\n minWidth: 'unset',\r\n },\r\n },\r\n },\r\n MuiDialog: {\r\n paper: {\r\n borderRadius: 0,\r\n },\r\n },\r\n MuiDialogTitle: {\r\n root: {\r\n padding: '40px 32px 0px 32px',\r\n '& h1': {\r\n fontFamily: 'Open Sans, sans-serif',\r\n fontStyle: 'normal',\r\n fontWeight: 700,\r\n fontSize: '20px',\r\n lineHeight: '28px',\r\n letterSpacing: '0.0375px',\r\n },\r\n '& .subtitle': {\r\n fontFamily: 'Open Sans, sans-serif',\r\n fontStyle: 'normal',\r\n fontWeight: 400,\r\n fontSize: '20px',\r\n lineHeight: '28px',\r\n letterSpacing: '0.0375px',\r\n },\r\n '& button': {\r\n padding: '0',\r\n float: 'right',\r\n },\r\n },\r\n },\r\n MuiDialogContent: {\r\n root: {\r\n padding: '32px !important',\r\n paddingBottom: 0,\r\n '& h1': {\r\n fontFamily: 'Open Sans, sans-serif',\r\n fontStyle: 'normal',\r\n fontWeight: 700,\r\n fontSize: '20px',\r\n lineHeight: '28px',\r\n letterSpacing: '0.0375px',\r\n },\r\n '& .subtitle': {\r\n fontFamily: 'Open Sans, sans-serif',\r\n fontStyle: 'normal',\r\n fontWeight: 400,\r\n fontSize: '20px',\r\n lineHeight: '28px',\r\n letterSpacing: '0.0375px',\r\n },\r\n '& h2': {\r\n fontFamily: 'Open Sans',\r\n fontStyle: 'normal',\r\n fontWeight: 'bold',\r\n fontSize: '18px',\r\n lineHeight: '28px',\r\n textAlign: 'center',\r\n letterSpacing: '0.0375px',\r\n margin: 0,\r\n },\r\n },\r\n },\r\n MuiDialogActions: {\r\n root: {\r\n padding: '32px',\r\n paddingTop: 0,\r\n justifyContent: 'center',\r\n\r\n '& button': {\r\n fontStyle: 'normal',\r\n fontWeight: 500,\r\n fontSize: '16px',\r\n lineHeight: '28px',\r\n letterSpacing: '0.0375px',\r\n marginTop: '16px',\r\n '@media (min-width: 600px)': {\r\n '&:nth-child(2n)': {\r\n marginLeft: '24px',\r\n },\r\n },\r\n },\r\n },\r\n spacing: {\r\n '& > :not(:first-child)': {\r\n marginLeft: '24px',\r\n },\r\n },\r\n },\r\n MuiListItem: {\r\n secondaryAction: {\r\n paddingRight: '104px',\r\n },\r\n },\r\n MuiListItemText: {\r\n root: {\r\n marginTop: '0px',\r\n marginBottom: '0px',\r\n },\r\n inset: {\r\n paddingLeft: 16,\r\n },\r\n secondary: {\r\n fontSize: '14px',\r\n fontWeight: 'normal',\r\n },\r\n },\r\n MuiListItemIcon: {\r\n root: {\r\n minWidth: 'inherit',\r\n },\r\n },\r\n MuiSnackbarContent: {\r\n root: {\r\n width: '100%',\r\n top: '0px',\r\n minHeight: '64px', //TODO add size from theme\r\n justifyContent: 'center',\r\n borderRadius: 0,\r\n padding: 0,\r\n },\r\n },\r\n MuiSnackbar: {\r\n root: {\r\n left: 0,\r\n },\r\n anchorOriginTopCenter: {\r\n width: '100%',\r\n top: 0,\r\n '@media (min-width: 600px)': {\r\n top: 0,\r\n },\r\n },\r\n },\r\n MuiCircularProgress: {\r\n colorPrimary: {\r\n color: '#ffffff',\r\n },\r\n },\r\n MuiFormHelperText: {\r\n root: {\r\n marginTop: '6px',\r\n fontSize: '11px',\r\n lineHeight: '15px',\r\n\r\n '&.Mui-error': {\r\n color: variables.lightErrorColor,\r\n },\r\n\r\n '& span': {\r\n color: variables.lightErrorColor,\r\n },\r\n },\r\n contained: {\r\n marginLeft: '0px',\r\n marginRight: '0px',\r\n },\r\n },\r\n MuiFormLabel: {\r\n root: {\r\n color: variables.primaryTextColor,\r\n fontStyle: 'normal',\r\n fontWeight: 'normal',\r\n fontSize: '1rem',\r\n lineHeight: '28px',\r\n\r\n '&.Mui-error': {\r\n color: variables.lightErrorColor,\r\n },\r\n },\r\n },\r\n MuiFormControl: {\r\n marginNormal: {\r\n marginTop: '0px',\r\n marginBottom: '24px',\r\n },\r\n },\r\n MuiInputLabel: {\r\n formControl: {\r\n color: 'rgba(0, 0, 0, 0.54)',\r\n },\r\n shrink: {\r\n color: variables.primaryTextColor,\r\n },\r\n },\r\n MuiSelect: {\r\n select: {\r\n padding: '6.5px 14px',\r\n '&:focus': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n },\r\n MuiTableCell: {\r\n root: {\r\n fontFamily: 'Open Sans',\r\n fontStyle: 'normal',\r\n fontWeight: 400,\r\n fontSize: '14px',\r\n lineHeight: '16px',\r\n letterSpacing: '0.02625px',\r\n borderBottom: '1px solid #D9E0F7',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n '& > a, .MuiLink-button, .MuiButton-label, .MuiLink-underlineHover': {\r\n fontFamily: 'Open Sans',\r\n fontStyle: 'normal',\r\n fontWeight: 400,\r\n fontSize: '14px',\r\n lineHeight: '16px',\r\n letterSpacing: '0.02625px',\r\n },\r\n },\r\n head: {\r\n fontStyle: 'normal',\r\n fontWeight: 'bold',\r\n fontSize: '14px',\r\n lineHeight: '19px',\r\n letterSpacing: '0.03px',\r\n overflow: 'unset',\r\n },\r\n },\r\n MuiTableRow: {\r\n head: {\r\n backgroundColor: '#F8F9FE',\r\n },\r\n },\r\n MuiTabs: {\r\n root: {\r\n minHeight: '43px',\r\n },\r\n flexContainer: {\r\n borderBottom: '3px solid #F9D8E2',\r\n width: '-webkit-fill-available',\r\n display: 'inline-flex',\r\n\r\n '@media (max-width: 600px)': {\r\n width: 'max-content',\r\n },\r\n },\r\n indicator: {\r\n backgroundColor: variables.ternaryColor,\r\n height: '3px',\r\n borderRadius: '10px',\r\n },\r\n },\r\n MuiTab: {\r\n root: {\r\n minHeight: '40px',\r\n },\r\n textColorInherit: {\r\n color: 'black',\r\n opacity: 1,\r\n },\r\n },\r\n MuiToggleButtonGroup: {\r\n root: {\r\n display: 'flex',\r\n backgroundColor: '#F8F9FE',\r\n paddingLeft: '4px',\r\n paddingRight: '4px',\r\n },\r\n },\r\n MuiToggleButton: {\r\n root: {\r\n marginTop: '4px',\r\n marginBottom: '4px',\r\n border: 0,\r\n paddingTop: '8px',\r\n paddingBottom: '8px',\r\n borderRadius: '4px',\r\n color: '#3D64D8',\r\n fontWeight: 600,\r\n fontStyle: 'normal',\r\n fontSize: '14px',\r\n lineHeight: '28px',\r\n textTransform: 'none',\r\n '&:hover': {\r\n borderRadius: '4px',\r\n },\r\n '&$selected': {\r\n backgroundColor: '#3D64D8',\r\n color: '#FFF',\r\n borderRadius: '4px',\r\n '&:hover': {\r\n backgroundColor: '#3D64D8',\r\n color: '#FFF',\r\n },\r\n },\r\n },\r\n },\r\n\r\n //-- clean from here\r\n MuiInputBase: {\r\n root: {\r\n padding: '0',\r\n },\r\n input: {\r\n fontWeight: 400,\r\n fontStyle: 'normal',\r\n fontSize: '16px',\r\n lineHeight: '28px',\r\n '&::-webkit-input-placeholder,&::placeholder': {\r\n color: '#A3B6EC',\r\n fontFamily: 'Open Sans',\r\n fontStyle: 'italic',\r\n fontWeight: '300',\r\n fontSize: '12px',\r\n opacity: 1,\r\n letterSpacing: '0.0375px',\r\n },\r\n },\r\n },\r\n MuiButton: {\r\n root: {\r\n borderRadius: '8px',\r\n textTransform: 'none',\r\n padding: '6px 16px',\r\n minWidth: '160px',\r\n boxSizing: 'border-box',\r\n '@media (max-width: 600px)': {\r\n width: '100%',\r\n },\r\n // boxShadow: \"0px 3px 3px 3px #F7F9FE\",\r\n },\r\n label: {\r\n fontSize: '16px',\r\n fontStyle: 'normal',\r\n fontFamily: 'Futura',\r\n fontWeight: 500,\r\n lineHeight: '28px',\r\n\r\n letterSpacing: '0.0375px',\r\n },\r\n startIcon: {\r\n marginRight: '16px',\r\n },\r\n outlined: {\r\n boxShadow: '2px 4px 4px -2px rgba(0, 0, 0, 0.25)',\r\n padding: '5px 15px',\r\n '&.Mui-disabled': {\r\n boxShadow: 'none',\r\n },\r\n },\r\n contained: {\r\n boxShadow: '2px 4px 4px -2px rgba(0, 0, 0, 0.25)',\r\n },\r\n },\r\n MuiStepConnector: {\r\n alternativeLabel: {\r\n bottom: '25%',\r\n top: 'auto',\r\n },\r\n line: {\r\n height: 4,\r\n border: 0,\r\n backgroundColor: '#F3E2F1',\r\n borderRadius: 1,\r\n borderColor: '#F3E2F1',\r\n },\r\n },\r\n MuiStepLabel: {\r\n label: {\r\n color: '#b8349a',\r\n fontWeight: 500,\r\n fontStyle: 'normal',\r\n fontSize: '14px',\r\n lineHeight: '28px',\r\n textTransform: 'uppercase',\r\n },\r\n active: {\r\n '&.MuiStepLabel-label': {\r\n fontWeight: '700',\r\n color: '#b8349a',\r\n },\r\n },\r\n alternativeLabel: {\r\n whiteSpace: 'nowrap',\r\n },\r\n },\r\n MuiCard: {\r\n root: {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n MuiAccordionDetails: {\r\n root: {\r\n padding: '0px',\r\n },\r\n },\r\n MuiOutlinedInput: {\r\n root: {\r\n '&.Mui-error .MuiOutlinedInput-notchedOutline': {\r\n borderColor: variables.lightErrorColor,\r\n },\r\n '&:hover .MuiOutlinedInput-notchedOutline': {\r\n borderColor: '#D9E0F7',\r\n },\r\n },\r\n multiline: {\r\n '@media (max-width: 600px)': {\r\n padding: '6px 14px',\r\n },\r\n },\r\n input: {\r\n padding: '10.5px 14px',\r\n zIndex: 10,\r\n },\r\n notchedOutline: {\r\n border: '2px solid',\r\n borderColor: '#D9E0F7 !important',\r\n background: 'rgba(248, 249, 254, 0.5)',\r\n borderRadius: '5px',\r\n },\r\n adornedEnd: {\r\n paddingRight: 0,\r\n },\r\n },\r\n MuiInput: {\r\n underline: {\r\n '&:before': {\r\n borderBottom: `1px solid ${variables.primaryColor}`,\r\n },\r\n '&:hover:not(.Mui-disabled):before': {\r\n borderBottom: `1px solid ${variables.primaryColor}`,\r\n },\r\n '&:after': {\r\n borderBottom: `1px solid ${variables.primaryColor}`,\r\n },\r\n },\r\n },\r\n MuiAutocomplete: {\r\n inputRoot: {\r\n '&&[class*=\"MuiOutlinedInput-root\"] $input': {\r\n padding: '1.5px 4px',\r\n },\r\n },\r\n endAdornment: {\r\n top: 'initial',\r\n },\r\n },\r\n MuiAccordion: {\r\n root: {\r\n boxShadow: '0px 2px 25px rgba(0, 0, 0, 0.05)',\r\n borderRadius: '5px',\r\n padding: '8px 16px',\r\n marginBottom: '24px',\r\n '&:before': {\r\n height: '0',\r\n },\r\n },\r\n },\r\n MuiAccordionSummary: {\r\n root: {\r\n marginBottom: '0px',\r\n '&.Mui-expanded': {\r\n minHeight: '48px',\r\n },\r\n padding: '0px',\r\n '&:Mui-focused': {\r\n backgroundColor: 'rgba(255, 255, 255, 0)',\r\n },\r\n },\r\n content: {\r\n marginBottom: '0px',\r\n margin: '0',\r\n display: 'inline-grid',\r\n width: '100%',\r\n '&.Mui-expanded': {\r\n margin: '0',\r\n },\r\n '&>h2': {\r\n margin: '0',\r\n },\r\n },\r\n },\r\n MuiIconButton: {\r\n root: {\r\n '&:hover': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n },\r\n MuiPickersDay: {\r\n daySelected: {\r\n backgroundColor: variables.secondaryColor,\r\n color: '#FFF !important',\r\n '&:hover': {\r\n backgroundColor: 'rgb(128, 36, 107) !important',\r\n color: '#FFF !important',\r\n },\r\n },\r\n },\r\n },\r\n ...options,\r\n });\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport MuiDialog, {DialogProps} from '@material-ui/core/Dialog';\r\n\r\nconst Dialog: React.FC = ({\r\n open,\r\n children,\r\n maxWidth = 'sm',\r\n fullWidth = true,\r\n keepMounted = false,\r\n ...props\r\n}) =>\r\n keepMounted === true ? (\r\n \r\n {children}\r\n \r\n ) : open ? (\r\n ReactDOM.createPortal(\r\n \r\n {children}\r\n ,\r\n document.body\r\n )\r\n ) : null;\r\n\r\nexport default Dialog;\r\n","import React from 'react';\r\n\r\nimport MuiDialogActions from '@material-ui/core/DialogActions';\r\n\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\n\r\nexport interface DialogActionsProps {\r\n children: any;\r\n small?: boolean;\r\n}\r\n\r\nconst DialogActions: React.FC = ({ children, small }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default DialogActions;\r\n","import React from 'react';\r\n\r\nimport {CircularProgress} from '@material-ui/core';\r\nimport Button, {ButtonProps} from '@material-ui/core/Button';\r\n\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\n\r\ninterface IDialogSaveButtonProps extends ButtonProps {\r\n onClick: () => void;\r\n text?: string;\r\n loading?: boolean;\r\n}\r\n\r\nconst DialogButton: React.FC = ({\r\n onClick,\r\n text = 'OK',\r\n loading,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {!!loading ? : text}\r\n \r\n );\r\n};\r\n\r\nexport default DialogButton;\r\n","import React from 'react';\r\n\r\nimport MuiDialogContent from '@material-ui/core/DialogContent';\r\n\r\ninterface IDialogContentProps {\r\n style?: React.CSSProperties;\r\n}\r\n\r\nconst DialogContent: React.FC = ({ style, children }) => {\r\n return {children};\r\n};\r\n\r\nexport default DialogContent;\r\n","import React from 'react';\r\n\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\n\r\ninterface IDialogTitleProps {\r\n handleClose?: () => void;\r\n}\r\n\r\nconst DialogTitle: React.FC = ({\r\n handleClose,\r\n children,\r\n}) => {\r\n return (\r\n \r\n {children}\r\n {handleClose ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default DialogTitle;\r\n","import {useCallback, useState} from 'react';\r\n\r\nexport interface IModalReturn {\r\n isVisible: boolean;\r\n showModal: () => void;\r\n hideModal: () => void;\r\n}\r\n\r\nexport const useModal = (): IModalReturn => {\r\n const [isVisible, setIsVisible] = useState(false);\r\n\r\n const showModal = useCallback(() => setIsVisible(true), []);\r\n const hideModal = useCallback(() => setIsVisible(false), []);\r\n\r\n return {\r\n isVisible,\r\n showModal,\r\n hideModal,\r\n };\r\n};\r\n","import moment from 'moment';\r\nimport React from 'react';\r\nimport {useHistory} from 'react-router-dom';\r\n\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport Dialog from '../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../components/commons/Dialog/DialogButton';\r\nimport DialogContent from '../components/commons/Dialog/DialogContent';\r\nimport DialogTitle from '../components/commons/Dialog/DialogTitle';\r\nimport {useLocalStorageContext} from '../context/LocalStorageContext/LocalStorageContext';\r\nimport {useUserContext} from '../context/User/UserContext';\r\nimport {useModal} from './useModal';\r\n\r\nexport default function useMakeAReservationAccess() {\r\n const {\r\n state: { connectedMember },\r\n } = useLocalStorageContext();\r\n const userInfo = useUserContext();\r\n const history = useHistory();\r\n const { showModal, hideModal, isVisible } = useModal();\r\n\r\n const isBlocked = () => {\r\n if (connectedMember) {\r\n if (\r\n connectedMember.isBlocked &&\r\n connectedMember.blockedFrom &&\r\n moment(connectedMember.blockedFrom).isSameOrBefore(moment(), 'day')\r\n ) {\r\n return true;\r\n }\r\n } else {\r\n if (\r\n userInfo.isBlocked &&\r\n userInfo.blockedFrom &&\r\n moment(userInfo.blockedFrom).isSameOrBefore(moment(), 'day')\r\n ) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n const handleRedirect = (redirect?: string) => {\r\n if (isBlocked()) {\r\n showModal();\r\n } else {\r\n history.push(redirect ?? '/reservations/new/setup');\r\n }\r\n };\r\n\r\n const IsBlockedDialog = () => {\r\n return (\r\n \r\n \r\n Access denied\r\n \r\n \r\n \r\n Your Login is denied, please contact the Travel Office at extension\r\n 3604.\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return { IsBlockedDialog, handleRedirect, isBlocked };\r\n}\r\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgSimpleArrow(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 13,\n height: 7,\n viewBox: \"0 0 13 7\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.77218 5.93099L12.0787 3.62444C12.2243 3.48008 12.3062 3.28356 12.3062 3.07856C12.3062 2.87356 12.2243 2.67704 12.0787 2.53268L9.77218 0.22613C9.57716 0.0311045 9.2929 -0.0450615 9.02649 0.0263227C8.76008 0.0977068 8.55199 0.305796 8.48061 0.572206C8.40922 0.838615 8.48539 1.12287 8.68041 1.3179L9.67992 2.30971L0.768956 2.30971C0.344333 2.30971 0.000106812 2.65394 0.000106812 3.07856C0.000106812 3.50318 0.344333 3.84741 0.768956 3.84741L9.67992 3.84741L8.68041 4.83922C8.53486 4.98359 8.45299 5.1801 8.45299 5.38511C8.45299 5.59011 8.53486 5.78663 8.68041 5.93099C8.82478 6.07654 9.02129 6.15841 9.2263 6.15841C9.4313 6.15841 9.62782 6.07654 9.77218 5.93099Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSimpleArrow);\nexport default __webpack_public_path__ + \"static/media/simpleArrow.45936da1.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\nimport {Link} from 'react-router-dom';\r\n\r\nimport {Button, Grid, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as ArrowIcon} from '../../assets/icons/simpleArrow.svg';\r\nimport useMakeAReservationAccess from '../../hooks/useMakeAReservationAccess';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport PermissionsList from '../../utils/PermissionsList';\r\nimport styles from './HomePage.module.scss';\r\n\r\nexport interface IHomePageMobileProps {\r\n fullName: string;\r\n permissions: string[];\r\n homepageText: string;\r\n}\r\n\r\nconst HomePageMobile: React.FC = ({\r\n fullName,\r\n permissions,\r\n homepageText,\r\n}) => {\r\n const { IsBlockedDialog, handleRedirect } = useMakeAReservationAccess();\r\n const displayHomePageText = () => {\r\n return homepageText && homepageText.split('\\n').length > 1 ? (\r\n homepageText\r\n .trim()\r\n .split('\\n')\r\n .map((text, index) => (\r\n \r\n {text}\r\n \r\n ))\r\n ) : (\r\n \r\n {homepageText}\r\n \r\n );\r\n };\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Welcome aboard {fullName}\r\n \r\n {displayHomePageText()}\r\n \r\n \r\n \r\n GO TO MY RESERVATIONS\r\n \r\n \r\n \r\n \r\n
\r\n {permissions.includes(\r\n PermissionsList.eTravelReservationMakeReservation\r\n ) && (\r\n handleRedirect()}\r\n style={{ marginBottom: '56px' }}\r\n >\r\n MAKE A RESERVATION\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default HomePageMobile;\r\n","import React from 'react';\r\nimport {Link} from 'react-router-dom';\r\n\r\nimport {useMediaQuery, useTheme} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as WorldMapIcon} from '../../assets/images/world-map.svg';\r\nimport {useUserContext} from '../../context/User/UserContext';\r\nimport useMakeAReservationAccess from '../../hooks/useMakeAReservationAccess';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Constants from '../../utils/Constants';\r\nimport PermissionsList from '../../utils/PermissionsList';\r\nimport styles from './HomePage.module.scss';\r\nimport HomePageMobile from './HomePageMobile';\r\n\r\nconst HomePage: React.FC = () => {\r\n const { fullName, permissions, roleName, homepageText } = useUserContext();\r\n const theme = useTheme();\r\n\r\n const isLargeScreen = useMediaQuery(theme.breakpoints.up('md'));\r\n const isSmallScreen = useMediaQuery(theme.breakpoints.down('sm'));\r\n\r\n const displayHomePageText = () => {\r\n return homepageText && homepageText.split('\\n').length > 1 ? (\r\n homepageText\r\n .trim()\r\n .split('\\n')\r\n .map((text, index) => (\r\n \r\n {text}\r\n \r\n ))\r\n ) : (\r\n \r\n {homepageText}\r\n \r\n );\r\n };\r\n\r\n const { IsBlockedDialog, handleRedirect } = useMakeAReservationAccess();\r\n\r\n return isSmallScreen ? (\r\n \r\n ) : (\r\n
\r\n
\r\n
\r\n {/* */}\r\n \r\n \r\n \r\n
\r\n \r\n Welcome aboard {fullName}\r\n \r\n {roleName !== Constants.roles.CateringDepartmentUser &&\r\n roleName !== Constants.roles.CateringLuxairUser &&\r\n displayHomePageText()}\r\n {roleName !== Constants.roles.CateringDepartmentUser &&\r\n roleName !== Constants.roles.CateringLuxairUser && (\r\n \r\n \r\n {permissions.includes(\r\n PermissionsList.eTravelReservationMyReservations\r\n ) && (\r\n \r\n \r\n GO TO MY RESERVATIONS\r\n \r\n \r\n )}\r\n {permissions.includes(\r\n PermissionsList.eTravelReservationMakeReservation\r\n ) && (\r\n \r\n handleRedirect()}\r\n >\r\n MAKE A RESERVATION\r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {/*
*/}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default HomePage;\r\n","import {IAppSetting} from '../models/Settings/IAppSetting';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/settings';\r\n\r\nconst AppSettingsService = {\r\n get: (): Promise => requests.get(`${API_ENDPOINT}/`),\r\n update: (setting: IAppSetting) => requests.put(`${API_ENDPOINT}/`, setting),\r\n};\r\nexport default AppSettingsService;\r\n","import produce from 'immer';\r\n\r\nimport {IAppSetting} from '../../../models/Settings/IAppSetting';\r\n\r\nexport interface IAppSettingsPageState {\r\n settings: IAppSetting[];\r\n loading: boolean;\r\n loaded: boolean;\r\n updating: boolean;\r\n selectedSetting?: IAppSetting;\r\n}\r\n\r\nexport enum AppSettingsPageActionTypes {\r\n FETCH_SETTINGS_STARTED,\r\n FETCH_SETTINGS_FAILED,\r\n FETCH_SETTINGS_DONE,\r\n SELECT_SETTING,\r\n UPDATE_SETTING_STARTED,\r\n UPDATE_SETTING_DONE,\r\n UPDATE_SETTING_FAILED,\r\n}\r\n\r\nexport type AppSettingsPageAction =\r\n | { type: AppSettingsPageActionTypes.FETCH_SETTINGS_STARTED }\r\n | { type: AppSettingsPageActionTypes.FETCH_SETTINGS_FAILED }\r\n | {\r\n type: AppSettingsPageActionTypes.FETCH_SETTINGS_DONE;\r\n payload: IAppSetting[];\r\n }\r\n | {\r\n type: AppSettingsPageActionTypes.SELECT_SETTING;\r\n payload: IAppSetting | undefined;\r\n }\r\n | { type: AppSettingsPageActionTypes.UPDATE_SETTING_STARTED }\r\n | { type: AppSettingsPageActionTypes.UPDATE_SETTING_FAILED }\r\n | {\r\n type: AppSettingsPageActionTypes.UPDATE_SETTING_DONE;\r\n payload: IAppSetting;\r\n };\r\n\r\nexport const AppSettingsPageReducer = (\r\n state: IAppSettingsPageState,\r\n action: AppSettingsPageAction\r\n): IAppSettingsPageState => {\r\n switch (action.type) {\r\n case AppSettingsPageActionTypes.FETCH_SETTINGS_STARTED:\r\n return { ...state, loading: true, loaded: false };\r\n case AppSettingsPageActionTypes.FETCH_SETTINGS_FAILED:\r\n return { ...state, loading: false };\r\n case AppSettingsPageActionTypes.FETCH_SETTINGS_DONE:\r\n return {\r\n ...state,\r\n loading: false,\r\n loaded: true,\r\n settings: action.payload,\r\n };\r\n case AppSettingsPageActionTypes.SELECT_SETTING:\r\n return { ...state, selectedSetting: action.payload };\r\n case AppSettingsPageActionTypes.UPDATE_SETTING_STARTED:\r\n return { ...state, updating: true };\r\n case AppSettingsPageActionTypes.UPDATE_SETTING_DONE:\r\n return {\r\n ...state,\r\n selectedSetting: undefined,\r\n updating: false,\r\n settings: produce(state.settings, (draft) => {\r\n const index = draft.findIndex(\r\n (s) =>\r\n s.name === action.payload.name &&\r\n s.category === action.payload.category\r\n );\r\n draft.splice(index, 1, action.payload);\r\n }),\r\n };\r\n case AppSettingsPageActionTypes.UPDATE_SETTING_FAILED:\r\n return { ...state, selectedSetting: undefined, updating: false };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import React, {useCallback, useContext, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport {IAppSetting} from '../../../models/Settings/IAppSetting';\r\nimport AppSettingsService from '../../../services/AppSettingService';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport {AppSettingsPageActionTypes, AppSettingsPageReducer, IAppSettingsPageState,} from './AppSettingsPageReducer';\r\n\r\nexport interface IAppSettingsPageContext {\r\n settings: IAppSetting[];\r\n loading: boolean;\r\n loaded: boolean;\r\n updating: boolean;\r\n selectedSetting?: IAppSetting;\r\n fetchSettings: () => void;\r\n selectSetting: (setting?: IAppSetting) => void;\r\n updateSetting: (setting: IAppSetting) => void;\r\n}\r\n\r\nconst initialState: IAppSettingsPageState = {\r\n settings: [],\r\n loading: false,\r\n loaded: false,\r\n updating: false,\r\n selectedSetting: undefined,\r\n};\r\n\r\nconst AppSettingsPageContext = React.createContext(\r\n {} as IAppSettingsPageContext\r\n);\r\n\r\nconst AppSettingsPageProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(AppSettingsPageReducer, initialState);\r\n const { addMessage } = useSnackbar();\r\n\r\n const fetchSettings = useCallback(() => {\r\n AppSettingsService.get()\r\n .then((settings) => {\r\n dispatch({\r\n type: AppSettingsPageActionTypes.FETCH_SETTINGS_DONE,\r\n payload: settings,\r\n });\r\n })\r\n .catch((error) => {\r\n dispatch({ type: AppSettingsPageActionTypes.FETCH_SETTINGS_FAILED });\r\n addMessage(error.message, MessageType.Error);\r\n });\r\n }, [addMessage]);\r\n\r\n const selectSetting = useCallback((setting?: IAppSetting) => {\r\n dispatch({\r\n type: AppSettingsPageActionTypes.SELECT_SETTING,\r\n payload: setting,\r\n });\r\n }, []);\r\n\r\n const updateSetting = useCallback(\r\n (setting: IAppSetting) => {\r\n dispatch({ type: AppSettingsPageActionTypes.UPDATE_SETTING_STARTED });\r\n AppSettingsService.update(setting)\r\n .then((res) => {\r\n if (res) {\r\n dispatch({\r\n type: AppSettingsPageActionTypes.UPDATE_SETTING_DONE,\r\n payload: setting,\r\n });\r\n addMessage('Setting updated successfully', MessageType.Success);\r\n } else {\r\n addMessage(\"Couldn't update setting\");\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch({ type: AppSettingsPageActionTypes.UPDATE_SETTING_FAILED });\r\n addMessage(error.message, MessageType.Error);\r\n });\r\n },\r\n [addMessage]\r\n );\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useAppSettingsPageContext = () =>\r\n useContext(AppSettingsPageContext);\r\n\r\nexport default AppSettingsPageProvider;\r\n","import moment, {Moment} from 'moment';\r\n\r\nimport IARM from '../models/IARM';\r\n//API Service\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/ARM';\r\n\r\nconst ARMService = {\r\n getReservations: (\r\n from: Moment | null,\r\n to: Moment | null\r\n ): Promise => {\r\n let fromDate = from\r\n ? from.format('YYYY-MM-DD HH:mm')\r\n : moment(new Date()).format('YYYY-MM-DD HH:mm');\r\n let toDate = to?.format('YYYY-MM-DD HH:mm');\r\n return requests.get(\r\n `${API_ENDPOINT}/reservations?fromDate=${fromDate}${\r\n toDate ? `&toDate=${toDate}` : ''\r\n }`\r\n );\r\n },\r\n getBlockedFlights: (\r\n from: Moment | null,\r\n to: Moment | null\r\n ): Promise => {\r\n let fromDate = from\r\n ? from.format('YYYY-MM-DD HH:mm')\r\n : moment(new Date()).format('YYYY-MM-DD HH:mm');\r\n let toDate = to?.format('YYYY-MM-DD HH:mm');\r\n return requests.get(\r\n `${API_ENDPOINT}/flights?fromDate=${fromDate}${\r\n toDate ? `&toDate=${toDate}` : ''\r\n }`\r\n );\r\n },\r\n updateComment: (arm: IARM): Promise =>\r\n requests.put(`${API_ENDPOINT}/comment/`, arm),\r\n check: (arm: IARM): Promise =>\r\n requests.put(`${API_ENDPOINT}/check/`, arm),\r\n resolve: (arm: IARM): Promise =>\r\n requests.put(`${API_ENDPOINT}/resolve`, arm),\r\n};\r\nexport default ARMService;\r\n","import {Moment} from 'moment';\r\n\r\nimport IARM from '../../models/IARM';\r\nimport ARMTabEnum from './ARMTabEnum';\r\n\r\nexport enum ARMActionType {\r\n FETCH_RESERVATIONS,\r\n FETCH_BLOCK_FLIGHTS,\r\n SELECTED_ARM,\r\n SELECTED_TAB,\r\n SELECTED_FROM_DATE,\r\n SELECTED_TO_DATE,\r\n}\r\n\r\nexport interface ARMState {\r\n selectedTab: ARMTabEnum;\r\n reservations: IARM[] | null;\r\n blockFlights: IARM[] | null;\r\n selectedARM: IARM | null;\r\n fromDate: Moment | null;\r\n toDate: Moment | null;\r\n}\r\n\r\nexport type ARMAction =\r\n | { type: ARMActionType.FETCH_RESERVATIONS; payload: IARM[] }\r\n | { type: ARMActionType.FETCH_BLOCK_FLIGHTS; payload: IARM[] }\r\n | { type: ARMActionType.SELECTED_ARM; payload: IARM | null }\r\n | { type: ARMActionType.SELECTED_TAB; payload: ARMTabEnum }\r\n | { type: ARMActionType.SELECTED_FROM_DATE; payload: Moment }\r\n | { type: ARMActionType.SELECTED_TO_DATE; payload: Moment };\r\n\r\nexport const ARMReducer = (state: ARMState, action: ARMAction) => {\r\n switch (action.type) {\r\n case ARMActionType.FETCH_RESERVATIONS:\r\n return { ...state, reservations: action.payload };\r\n case ARMActionType.FETCH_BLOCK_FLIGHTS:\r\n return { ...state, blockFlights: action.payload };\r\n case ARMActionType.SELECTED_ARM:\r\n return { ...state, selectedARM: action.payload };\r\n case ARMActionType.SELECTED_TAB:\r\n return { ...state, selectedTab: action.payload };\r\n case ARMActionType.SELECTED_FROM_DATE:\r\n return { ...state, fromDate: action.payload };\r\n case ARMActionType.SELECTED_TO_DATE:\r\n return { ...state, toDate: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default ARMReducer;\r\n","enum ARMTabEnum {\r\n RESERVATIONS,\r\n BLOCK_FLIGHTS,\r\n}\r\n\r\nexport default ARMTabEnum;\r\n","import moment from 'moment';\r\nimport React, {createContext, useContext, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IARM from '../../models/IARM';\r\nimport ARMService from '../../services/ARMService';\r\nimport Constants from '../../utils/Constants';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport ARMReducer, {ARMAction, ARMActionType, ARMState} from './ARMReducer';\r\nimport ARMTabEnum from './ARMTabEnum';\r\n\r\nexport const InitialState: ARMState = {\r\n selectedTab: ARMTabEnum.RESERVATIONS,\r\n reservations: null,\r\n blockFlights: null,\r\n selectedARM: null,\r\n fromDate: moment(),\r\n toDate: null,\r\n};\r\n\r\nexport interface IARMContext {\r\n state: ARMState;\r\n dispatch: React.Dispatch;\r\n updateComment: (arm: IARM) => void;\r\n check: (arm: IARM) => void;\r\n resolve: (arm: IARM) => void;\r\n fetchReservations: () => void;\r\n fetchBlockFlights: () => void;\r\n}\r\n\r\nconst ARMContext = createContext({} as IARMContext);\r\n\r\nconst ARMProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(ARMReducer, InitialState);\r\n const { addMessage } = useSnackbar();\r\n\r\n const fetchReservations = async () => {\r\n if (state.fromDate) {\r\n ARMService.getReservations(state.fromDate, state.toDate)\r\n .then((result) =>\r\n dispatch({ type: ARMActionType.FETCH_RESERVATIONS, payload: result })\r\n )\r\n .catch((error) => {\r\n dispatch({ type: ARMActionType.FETCH_RESERVATIONS, payload: [] });\r\n addMessage(error.message);\r\n });\r\n }\r\n };\r\n\r\n const fetchBlockFlights = async () => {\r\n if (state.fromDate) {\r\n ARMService.getBlockedFlights(state.fromDate, state.toDate)\r\n .then((result) =>\r\n dispatch({ type: ARMActionType.FETCH_BLOCK_FLIGHTS, payload: result })\r\n )\r\n .catch((error) => {\r\n dispatch({ type: ARMActionType.FETCH_RESERVATIONS, payload: [] });\r\n addMessage(error.message);\r\n });\r\n }\r\n };\r\n\r\n const refreshData = async () => {\r\n if (state.selectedTab == ARMTabEnum.RESERVATIONS) {\r\n fetchReservations();\r\n } else {\r\n fetchBlockFlights();\r\n }\r\n };\r\n\r\n const updateComment = (arm: IARM) => {\r\n ARMService.updateComment({ ...state.selectedARM, ...arm })\r\n .then((result) => {\r\n if (result) {\r\n refreshData();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n } else {\r\n addMessage('Cannot update the ARM comment.');\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const check = (arm: IARM) => {\r\n ARMService.check({ ...state.selectedARM, ...arm })\r\n .then((result) => {\r\n if (result) {\r\n refreshData();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n } else {\r\n addMessage('Cannot check the selected ARM.');\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const resolve = (arm: IARM) => {\r\n ARMService.resolve({ ...state.selectedARM, ...arm })\r\n .then((result) => {\r\n if (result) {\r\n refreshData();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n } else {\r\n addMessage('Cannot validate the selected ARM.');\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default ARMProvider;\r\n\r\nexport const useARMContext = () => useContext(ARMContext);\r\n","import {Moment} from 'moment';\r\n\r\nimport IBlockedFlight from '../models/BlockFlights/IBlockedFlight';\r\nimport IBlockFlightAirports from '../models/BlockFlights/IBlockFlightAirports';\r\nimport IBlockFlightCarrier from '../models/BlockFlights/IBlockFlightCarrier';\r\nimport IBlockFlightComment from '../models/BlockFlights/IBlockFlightComment';\r\nimport IBlockFlightNumber from '../models/BlockFlights/IBlockFlightNumber';\r\nimport IBlockFlightReason from '../models/BlockFlights/IBlockFlightReason';\r\nimport IBlockFlightTail from '../models/BlockFlights/IBlockFlightTail';\r\nimport IFlightRouting from '../models/BlockFlights/IFlightRouting';\r\nimport IRelationType from '../models/BlockFlights/IRelationType';\r\nimport IWarning from '../models/IWarning';\r\n//API Service\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/BlockFlight';\r\n\r\nconst BlockFlightService = {\r\n getRelations: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/relations`),\r\n saveCountryAirports: (data: IBlockFlightAirports): Promise =>\r\n requests.post(`${API_ENDPOINT}/country`, data),\r\n deleteCountryAirports: (blockedFlightId: number): Promise =>\r\n requests.delete(`${API_ENDPOINT}/country/${blockedFlightId}`),\r\n getBlockedCountryAirports: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/country`),\r\n saveCarrierCode: (data: IBlockFlightCarrier): Promise =>\r\n requests.post(`${API_ENDPOINT}/carrier`, data),\r\n deleteCarrierCode: (blockedFlightId: number): Promise =>\r\n requests.delete(`${API_ENDPOINT}/carrier/${blockedFlightId}`),\r\n getBlockedCarrierCodes: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/carrier`),\r\n saveTailNumber: (data: IBlockFlightTail): Promise =>\r\n requests.post(`${API_ENDPOINT}/tail`, data),\r\n deleteTailNumber: (blockedFlightId: number): Promise =>\r\n requests.delete(`${API_ENDPOINT}/tail/${blockedFlightId}`),\r\n getBlockedTailNumbers: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/tail`),\r\n getAutoCompleteComments: (\r\n searchText: string\r\n ): Promise =>\r\n requests.get(`${API_ENDPOINT}/autocomplete/${searchText}`),\r\n getRoutingByFlightNumber: (flightNumber: string): Promise =>\r\n requests.get(`${API_ENDPOINT}/routings/${flightNumber}`),\r\n saveFlightNumber: (data: IBlockFlightNumber[]): Promise =>\r\n requests.post(`${API_ENDPOINT}/flightNumber`, data),\r\n deleteFlightNumber: (blockedFlightId: number): Promise =>\r\n requests.delete(`${API_ENDPOINT}/flightNumber/${blockedFlightId}`),\r\n getBlockedFlightNumbers: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/flightNumber`),\r\n getBlockedFlights: (\r\n flightNumber: string,\r\n flightDate: Moment | null\r\n ): Promise => {\r\n return requests.get(\r\n `${API_ENDPOINT}/search/${flightNumber}${\r\n flightDate\r\n ? `?flightDate=${flightDate?.format('YYYY-MM-DD HH:mm')}`\r\n : ''\r\n }`\r\n );\r\n },\r\n getBlockFlightReasons: (): Promise => {\r\n return requests.get(`${API_ENDPOINT}/reasons`);\r\n },\r\n saveBlockedFlightReason: (reason: IBlockFlightReason): Promise => {\r\n return requests.post(`${API_ENDPOINT}/reasons`, reason);\r\n },\r\n deleteBlockedFlightReason: (reasonId: number): Promise => {\r\n return requests.delete(`${API_ENDPOINT}/reasons/${reasonId}`);\r\n },\r\n};\r\nexport default BlockFlightService;\r\n","import {CancelToken} from 'axios';\r\nimport moment from 'moment';\r\n\r\nimport IMember from '../models/IMember';\r\nimport {IOverlappingFlightForReservation} from '../models/IOverlappingFlightForReservation';\r\nimport IStatus from '../models/IStatus';\r\nimport {ICVFlightPassengerSummary} from '../models/Reservation/ICVFlightPassengerSummary';\r\nimport IReservation from '../models/Reservation/IReservation';\r\nimport IReservationETicket from '../models/Reservation/IReservationETicket';\r\nimport IReservationSummary from '../models/Reservation/IReservationSummary';\r\nimport {IReservationMailExchange, ISendReservationSummary,} from '../models/Reservation/ISendReservationSummary';\r\nimport ITripType from '../models/Reservation/ITripType';\r\nimport {GetFormData} from '../utils/Forms';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/Reservations';\r\n\r\nconst ReservationService = {\r\n getAllTripTypes: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/TripTypes`),\r\n getServiceStatuses: (cancelToken?: CancelToken): Promise =>\r\n requests.get(`${API_ENDPOINT}/servicestatuses`, { cancelToken }),\r\n getConditionsPdf: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/conditionsPdf`, { responseType: 'blob' }),\r\n getReservation: (id: number): Promise =>\r\n requests.get(`${API_ENDPOINT}/${id}`),\r\n consultReservation: (id: number): Promise =>\r\n requests.get(`${API_ENDPOINT}/consult/${id}`),\r\n getReservationSummaries: (): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/summaries?dateFrom=${moment()\r\n .startOf('day')\r\n .toISOString()}&dateTo=${moment()\r\n .startOf('day')\r\n .add(100, 'year')\r\n .toISOString()}`\r\n ),\r\n getReservationHistory: (): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/summaries?dateFrom=${moment()\r\n .startOf('day')\r\n .add(-1, 'year')\r\n .toISOString()}&dateTo=${moment()\r\n .startOf('day')\r\n .toISOString()}&direction=DESC`\r\n ),\r\n getReservationSummariesForMember: (\r\n memberId: number\r\n ): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/summaries/members/${memberId}?dateFrom=${moment()\r\n .startOf('day')\r\n .toISOString()}&dateTo=${moment()\r\n .startOf('day')\r\n .add(100, 'year')\r\n .toISOString()}`\r\n ),\r\n getReservationsGuestPlanner: (): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/summaries/members/GuestPlanner?dateFrom=${moment()\r\n .startOf('day')\r\n .toISOString()}&dateTo=${moment()\r\n .startOf('day')\r\n .add(100, 'year')\r\n .toISOString()}`\r\n ),\r\n getReservationHistoryForMember: (\r\n memberId: number\r\n ): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/summaries/members/${memberId}?dateFrom=${moment()\r\n .startOf('day')\r\n .add(-1, 'year')\r\n .toISOString()}&dateTo=${moment()\r\n .startOf('day')\r\n .toISOString()}&direction=DESC`\r\n ),\r\n getCVFlightPassengerSummariesForDepartureDate: (\r\n departureDate: Date\r\n ): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/flights/summary/${departureDate.toISOString()}`\r\n ),\r\n hasBookedFlight: (\r\n flightNumber: string,\r\n members: number[],\r\n reservationId: number\r\n ): Promise =>\r\n requests.post(`${API_ENDPOINT}/hasbooked`, {\r\n flightNumber,\r\n members,\r\n reservationId,\r\n }),\r\n hasOverlappingFlight: (\r\n excludeCVIds: number[],\r\n memberIds: number[],\r\n departureFlightDeparture: Date,\r\n returnFlightDeparture?: Date\r\n ): Promise =>\r\n requests.post(`${API_ENDPOINT}/hasOverlappingFlight`, {\r\n excludeCVIds,\r\n memberIds,\r\n departureFlightDeparture,\r\n returnFlightDeparture,\r\n }),\r\n sendETicket: (eTicket: IReservationETicket): Promise =>\r\n requests.post(`${API_ENDPOINT}/regenerateeticket`, eTicket),\r\n sendETicketForMember: (\r\n eTicket: IReservationETicket,\r\n memberId: number\r\n ): Promise =>\r\n requests.post(`${API_ENDPOINT}/eticket/${memberId}`, eTicket),\r\n create: (booking: IReservation): Promise => {\r\n const formData = GetFormData(booking);\r\n return requests.post(`${API_ENDPOINT}`, formData, {\r\n headers: {\r\n 'content-type': 'multipart/form-data',\r\n },\r\n });\r\n },\r\n update: (booking: IReservation): Promise => {\r\n const formData = GetFormData(booking);\r\n return requests.put(`${API_ENDPOINT}`, formData, {\r\n headers: {\r\n 'content-type': 'multipart/form-data',\r\n },\r\n });\r\n },\r\n approve: (reservationId: number): Promise =>\r\n requests.patch(`${API_ENDPOINT}/${reservationId}/approve`),\r\n reject: (reservationId: number, message: string): Promise =>\r\n requests.patch(`${API_ENDPOINT}/${reservationId}/reject`, {\r\n rejectMessage: message,\r\n }),\r\n delete: (reservationId: number): Promise =>\r\n requests.delete(`${API_ENDPOINT}/${reservationId}`),\r\n getReservationExchanges: (\r\n reservationId: number\r\n ): Promise =>\r\n requests.get(`${API_ENDPOINT}/${reservationId}/exchanges`),\r\n exchangePostReply: (\r\n reservationId: number,\r\n exchangeId: number,\r\n reply: string\r\n ): Promise =>\r\n requests.post(\r\n `${API_ENDPOINT}/${reservationId}/exchanges/${exchangeId}/reply`,\r\n { reply: reply }\r\n ),\r\n sendSummary: (\r\n reservationId: number,\r\n summaryConfig: ISendReservationSummary\r\n ) =>\r\n requests.post(\r\n `${API_ENDPOINT}/${reservationId}/sendsummary`,\r\n summaryConfig\r\n ),\r\n getPlannerMembers: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/plannermembers`),\r\n};\r\nexport default ReservationService;\r\n","enum BlockFlightTabEnum {\r\n CREATE,\r\n RULES,\r\n SEARCH,\r\n}\r\n\r\nexport enum BlockFlightRuleEnum {\r\n COUNTRY_AIRPORT,\r\n CARRIER_CODE,\r\n TAIL_NUMBER,\r\n FLIGHT_NUMBER,\r\n}\r\n\r\nexport default BlockFlightTabEnum;\r\n","import {Moment} from 'moment';\r\n\r\nimport IBlockFlightAirports from '../../models/BlockFlights/IBlockFlightAirports';\r\nimport IBlockFlightCarrier from '../../models/BlockFlights/IBlockFlightCarrier';\r\nimport IBlockFlightNumber from '../../models/BlockFlights/IBlockFlightNumber';\r\nimport IBlockFlightTail from '../../models/BlockFlights/IBlockFlightTail';\r\nimport IOption from '../../models/IOption';\r\nimport BlockFlightTabEnum, {BlockFlightRuleEnum} from './BlockFlightEnums';\r\n\r\nexport enum BlockFlightActionType {\r\n SELECTED_CREATE_RULE,\r\n SELECTED_RULES_RULE,\r\n SELECTED_TAB,\r\n SELECTED_FROM_DATE,\r\n SELECTED_TO_DATE,\r\n SELECTED_SEARCH_FLIGHT_NUMBER,\r\n SELECTED_SEARCH_FLIGHT_DATE,\r\n BLOCKED_COUNTRIES_AIRPORTS,\r\n BLOCKED_CARRIER_CODES,\r\n BLOCKED_TAIL_NUMBERS,\r\n BLOCKED_FLIGHT_NUMBERS,\r\n}\r\n\r\nexport interface BlockFlightState {\r\n selectedTab: BlockFlightTabEnum | null;\r\n ruleOptions: IOption[];\r\n selectedCreateRule: BlockFlightRuleEnum | null;\r\n selectedRulesRule: BlockFlightRuleEnum | null;\r\n fromDate: Moment | null;\r\n toDate: Moment | null;\r\n searchFlightNumber: string;\r\n searchFlightDate: Moment | null;\r\n blockedCountriesAirports: IBlockFlightAirports[] | null;\r\n blockedCarrierCodes: IBlockFlightCarrier[] | null;\r\n blockedTailNumbers: IBlockFlightTail[] | null;\r\n blockedFlightNumbers: IBlockFlightNumber[] | null;\r\n}\r\n\r\nexport type BlockFlightAction =\r\n | {\r\n type: BlockFlightActionType.SELECTED_CREATE_RULE;\r\n payload: BlockFlightRuleEnum;\r\n }\r\n | {\r\n type: BlockFlightActionType.SELECTED_RULES_RULE;\r\n payload: BlockFlightRuleEnum;\r\n }\r\n | { type: BlockFlightActionType.SELECTED_TAB; payload: BlockFlightTabEnum }\r\n | { type: BlockFlightActionType.SELECTED_FROM_DATE; payload: Moment }\r\n | { type: BlockFlightActionType.SELECTED_TO_DATE; payload: Moment }\r\n | {\r\n type: BlockFlightActionType.SELECTED_SEARCH_FLIGHT_NUMBER;\r\n payload: string;\r\n }\r\n | {\r\n type: BlockFlightActionType.SELECTED_SEARCH_FLIGHT_DATE;\r\n payload: Moment | null;\r\n }\r\n | {\r\n type: BlockFlightActionType.BLOCKED_COUNTRIES_AIRPORTS;\r\n payload: IBlockFlightAirports[];\r\n }\r\n | {\r\n type: BlockFlightActionType.BLOCKED_CARRIER_CODES;\r\n payload: IBlockFlightCarrier[];\r\n }\r\n | {\r\n type: BlockFlightActionType.BLOCKED_TAIL_NUMBERS;\r\n payload: IBlockFlightTail[];\r\n }\r\n | {\r\n type: BlockFlightActionType.BLOCKED_FLIGHT_NUMBERS;\r\n payload: IBlockFlightNumber[];\r\n };\r\n\r\nexport const BlockFlightReducer = (\r\n state: BlockFlightState,\r\n action: BlockFlightAction\r\n) => {\r\n switch (action.type) {\r\n case BlockFlightActionType.SELECTED_CREATE_RULE:\r\n return { ...state, selectedCreateRule: action.payload };\r\n case BlockFlightActionType.SELECTED_RULES_RULE:\r\n return { ...state, selectedRulesRule: action.payload };\r\n case BlockFlightActionType.SELECTED_TAB:\r\n return { ...state, selectedTab: action.payload };\r\n case BlockFlightActionType.SELECTED_FROM_DATE:\r\n return { ...state, fromDate: action.payload };\r\n case BlockFlightActionType.SELECTED_TO_DATE:\r\n return { ...state, toDate: action.payload };\r\n case BlockFlightActionType.SELECTED_SEARCH_FLIGHT_NUMBER:\r\n return { ...state, searchFlightNumber: action.payload };\r\n case BlockFlightActionType.SELECTED_SEARCH_FLIGHT_DATE:\r\n return { ...state, searchFlightDate: action.payload };\r\n case BlockFlightActionType.BLOCKED_COUNTRIES_AIRPORTS:\r\n return { ...state, blockedCountriesAirports: action.payload };\r\n case BlockFlightActionType.BLOCKED_CARRIER_CODES:\r\n return { ...state, blockedCarrierCodes: action.payload };\r\n case BlockFlightActionType.BLOCKED_TAIL_NUMBERS:\r\n return { ...state, blockedTailNumbers: action.payload };\r\n case BlockFlightActionType.BLOCKED_FLIGHT_NUMBERS:\r\n return { ...state, blockedFlightNumbers: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default BlockFlightReducer;\r\n","import React, {createContext, useContext, useEffect, useReducer, useState,} from 'react';\r\nimport {useHistory} from 'react-router-dom';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IBlockFlightAirports from '../../models/BlockFlights/IBlockFlightAirports';\r\nimport IBlockFlightCarrier from '../../models/BlockFlights/IBlockFlightCarrier';\r\nimport IBlockFlightNumber from '../../models/BlockFlights/IBlockFlightNumber';\r\nimport IBlockFlightReason from '../../models/BlockFlights/IBlockFlightReason';\r\nimport IBlockFlightTail from '../../models/BlockFlights/IBlockFlightTail';\r\nimport IRelationType from '../../models/BlockFlights/IRelationType';\r\nimport ITripType from '../../models/Reservation/ITripType';\r\nimport BlockFlightService from '../../services/BlockFlightService';\r\nimport ReservationService from '../../services/ReservationService';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport {useLocalStorageContext} from '../LocalStorageContext/LocalStorageContext';\r\nimport {LocalStorageActionType} from '../LocalStorageContext/LocalStorageReducer';\r\nimport BlockFlightTabEnum, {BlockFlightRuleEnum} from './BlockFlightEnums';\r\nimport BlockFlightReducer, {BlockFlightAction, BlockFlightActionType, BlockFlightState,} from './BlockFlightReducer';\r\n\r\nexport const InitialState: BlockFlightState = {\r\n selectedTab: null,\r\n ruleOptions: [\r\n {\r\n label: 'Country and airport',\r\n value: BlockFlightRuleEnum.COUNTRY_AIRPORT,\r\n },\r\n { label: 'Carrier code', value: BlockFlightRuleEnum.CARRIER_CODE },\r\n { label: 'Tail number', value: BlockFlightRuleEnum.TAIL_NUMBER },\r\n { label: 'Flight number', value: BlockFlightRuleEnum.FLIGHT_NUMBER },\r\n ],\r\n selectedCreateRule: null,\r\n selectedRulesRule: null,\r\n fromDate: null,\r\n toDate: null,\r\n searchFlightNumber: '',\r\n searchFlightDate: null,\r\n blockedCountriesAirports: null,\r\n blockedCarrierCodes: null,\r\n blockedTailNumbers: null,\r\n blockedFlightNumbers: null,\r\n};\r\n\r\nexport interface IBlockFlightContext {\r\n state: BlockFlightState;\r\n dispatch: React.Dispatch;\r\n relationTypes: IRelationType[];\r\n cvTripTypes: ITripType[];\r\n saveCountryAirports: (blockFlight: IBlockFlightAirports) => void;\r\n deleteCountryAirports: (blockFlightId: number) => void;\r\n saveCarrierCode: (blockFlight: IBlockFlightCarrier) => void;\r\n deleteCarrierCode: (blockFlightId: number) => void;\r\n saveTailNumber: (blockFlight: IBlockFlightTail) => void;\r\n deleteTailNumber: (blockFlightId: number) => void;\r\n saveFlightNumber: (blockFlights: IBlockFlightNumber[]) => void;\r\n deleteFlightNumber: (blockFlightId: number) => void;\r\n reasons: IBlockFlightReason[];\r\n}\r\n\r\nconst BlockFlightContext = createContext({} as IBlockFlightContext);\r\n\r\nconst BlockFlightProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(BlockFlightReducer, InitialState);\r\n const [relationTypes, setRelationTypes] = useState([]);\r\n const [reasons, setReasons] = useState([]);\r\n const [cvTripTypes, setCVTripTypes] = useState([]);\r\n const { addMessage } = useSnackbar();\r\n const history = useHistory();\r\n const localStorage = useLocalStorageContext();\r\n\r\n useEffect(() => {\r\n let createRule: BlockFlightRuleEnum = localStorage.state.blockFlightStorage\r\n ?.blockFlightRule as BlockFlightRuleEnum;\r\n let editRulesRule: BlockFlightRuleEnum = localStorage.state\r\n .blockFlightStorage?.editRulesRule as BlockFlightRuleEnum;\r\n if (createRule !== state.selectedCreateRule) {\r\n dispatch({\r\n type: BlockFlightActionType.SELECTED_CREATE_RULE,\r\n payload: createRule,\r\n });\r\n }\r\n if (editRulesRule !== state.selectedRulesRule) {\r\n dispatch({\r\n type: BlockFlightActionType.SELECTED_RULES_RULE,\r\n payload: editRulesRule,\r\n });\r\n }\r\n\r\n BlockFlightService.getRelations()\r\n .then((relations) => setRelationTypes(relations))\r\n .catch((error) => addMessage(error.message));\r\n\r\n ReservationService.getAllTripTypes()\r\n .then((tripTypes) =>\r\n setCVTripTypes(tripTypes.filter((x) => x.isCVFlight))\r\n )\r\n .catch((error) => addMessage(error.message));\r\n\r\n BlockFlightService.getBlockFlightReasons()\r\n .then((reasons) => setReasons(reasons))\r\n .catch((error) => addMessage(error.message));\r\n }, []);\r\n\r\n useEffect(() => {\r\n localStorage.dispatch({\r\n type: LocalStorageActionType.SET_BLOCK_FLIGHT_STORAGE,\r\n payload: JSON.stringify({\r\n blockFlightRule: state.selectedCreateRule,\r\n editRulesRule: state.selectedRulesRule,\r\n }),\r\n });\r\n\r\n switch (state.selectedRulesRule) {\r\n case BlockFlightRuleEnum.COUNTRY_AIRPORT:\r\n if (state.blockedCountriesAirports == null) {\r\n fetchCountryAirports();\r\n }\r\n break;\r\n case BlockFlightRuleEnum.CARRIER_CODE:\r\n if (state.blockedCarrierCodes == null) {\r\n fetchCarrierCodes();\r\n }\r\n break;\r\n case BlockFlightRuleEnum.TAIL_NUMBER:\r\n if (state.blockedTailNumbers == null) {\r\n fetchTailNumbers();\r\n }\r\n break;\r\n case BlockFlightRuleEnum.FLIGHT_NUMBER:\r\n if (state.blockedFlightNumbers == null) {\r\n fetchFlightNumbers();\r\n }\r\n break;\r\n }\r\n }, [state.selectedCreateRule, state.selectedRulesRule]);\r\n\r\n const saveCountryAirports = async (blockFlight: IBlockFlightAirports) => {\r\n BlockFlightService.saveCountryAirports(blockFlight)\r\n .then((result) => {\r\n if (result.isSuccess) {\r\n fetchCountryAirports();\r\n\r\n if (result.message && result.message.length > 0) {\r\n addMessage(result.message, MessageType.Warning);\r\n } else {\r\n addMessage('Block Flight saved successfully', MessageType.Success);\r\n }\r\n\r\n dispatch({\r\n type: BlockFlightActionType.SELECTED_RULES_RULE,\r\n payload: BlockFlightRuleEnum.COUNTRY_AIRPORT,\r\n });\r\n\r\n if (state.selectedTab !== BlockFlightTabEnum.RULES) {\r\n history.push('/flightManagement/block/rules');\r\n }\r\n } else {\r\n addMessage('Cannot save Block Flight');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const deleteCountryAirports = async (blockedFlightId: number) => {\r\n BlockFlightService.deleteCountryAirports(blockedFlightId)\r\n .then((result) => {\r\n if (result) {\r\n fetchCountryAirports();\r\n addMessage(\r\n 'Blocked Flight deleted successfully',\r\n MessageType.Success\r\n );\r\n } else {\r\n addMessage('Cannot save Block Flight');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const fetchCountryAirports = async () => {\r\n BlockFlightService.getBlockedCountryAirports().then((result) => {\r\n dispatch({\r\n type: BlockFlightActionType.BLOCKED_COUNTRIES_AIRPORTS,\r\n payload: result,\r\n });\r\n });\r\n };\r\n\r\n const saveCarrierCode = async (blockFlight: IBlockFlightCarrier) => {\r\n BlockFlightService.saveCarrierCode(blockFlight)\r\n .then((result) => {\r\n if (result) {\r\n fetchCarrierCodes();\r\n\r\n addMessage('Block Flight saved successfully', MessageType.Success);\r\n\r\n dispatch({\r\n type: BlockFlightActionType.SELECTED_RULES_RULE,\r\n payload: BlockFlightRuleEnum.CARRIER_CODE,\r\n });\r\n\r\n if (state.selectedTab !== BlockFlightTabEnum.RULES) {\r\n history.push('/flightManagement/block/rules');\r\n }\r\n } else {\r\n addMessage('Cannot save Block Flight');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const deleteCarrierCode = async (blockedFlightId: number) => {\r\n BlockFlightService.deleteCarrierCode(blockedFlightId)\r\n .then((result) => {\r\n if (result) {\r\n fetchCarrierCodes();\r\n addMessage(\r\n 'Blocked Flight deleted successfully',\r\n MessageType.Success\r\n );\r\n } else {\r\n addMessage('Cannot save Block Flight');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const fetchCarrierCodes = async () => {\r\n BlockFlightService.getBlockedCarrierCodes().then((result) => {\r\n dispatch({\r\n type: BlockFlightActionType.BLOCKED_CARRIER_CODES,\r\n payload: result,\r\n });\r\n });\r\n };\r\n\r\n const saveTailNumber = async (blockFlight: IBlockFlightTail) => {\r\n BlockFlightService.saveTailNumber(blockFlight)\r\n .then((result) => {\r\n if (result) {\r\n fetchTailNumbers();\r\n\r\n addMessage('Block Flight saved successfully', MessageType.Success);\r\n\r\n dispatch({\r\n type: BlockFlightActionType.SELECTED_RULES_RULE,\r\n payload: BlockFlightRuleEnum.TAIL_NUMBER,\r\n });\r\n\r\n if (state.selectedTab !== BlockFlightTabEnum.RULES) {\r\n history.push('/flightManagement/block/rules');\r\n }\r\n } else {\r\n addMessage('Cannot save Block Flight');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const deleteTailNumber = async (blockedFlightId: number) => {\r\n BlockFlightService.deleteTailNumber(blockedFlightId)\r\n .then((result) => {\r\n if (result) {\r\n fetchTailNumbers();\r\n addMessage(\r\n 'Blocked Flight deleted successfully',\r\n MessageType.Success\r\n );\r\n } else {\r\n addMessage('Cannot save Block Flight');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const fetchTailNumbers = async () => {\r\n BlockFlightService.getBlockedTailNumbers().then((result) => {\r\n dispatch({\r\n type: BlockFlightActionType.BLOCKED_TAIL_NUMBERS,\r\n payload: result,\r\n });\r\n });\r\n };\r\n\r\n const saveFlightNumber = async (blockFlights: IBlockFlightNumber[]) => {\r\n BlockFlightService.saveFlightNumber(blockFlights)\r\n .then((result) => {\r\n if (result) {\r\n fetchFlightNumbers();\r\n\r\n addMessage('Block Flight saved successfully', MessageType.Success);\r\n\r\n dispatch({\r\n type: BlockFlightActionType.SELECTED_RULES_RULE,\r\n payload: BlockFlightRuleEnum.FLIGHT_NUMBER,\r\n });\r\n\r\n if (state.selectedTab !== BlockFlightTabEnum.RULES) {\r\n history.push('/flightManagement/block/rules');\r\n }\r\n } else {\r\n addMessage('Cannot save Block Flight');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const deleteFlightNumber = async (blockedFlightId: number) => {\r\n BlockFlightService.deleteFlightNumber(blockedFlightId)\r\n .then((result) => {\r\n if (result) {\r\n fetchFlightNumbers();\r\n addMessage(\r\n 'Blocked Flight deleted successfully',\r\n MessageType.Success\r\n );\r\n } else {\r\n addMessage('Cannot save Block Flight');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const fetchFlightNumbers = async () => {\r\n BlockFlightService.getBlockedFlightNumbers().then((result) => {\r\n dispatch({\r\n type: BlockFlightActionType.BLOCKED_FLIGHT_NUMBERS,\r\n payload: result,\r\n });\r\n });\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightProvider;\r\n\r\nexport const useBlockFlightContext = () => useContext(BlockFlightContext);\r\n","import axios, {\r\n AxiosError,\r\n AxiosRequestConfig,\r\n AxiosRequestHeaders,\r\n AxiosResponse,\r\n} from 'axios';\r\nimport {useCallback, useEffect, useMemo} from 'react';\r\n\r\nimport {useGlobalStorageContext} from '../context/GlobalStorage/GlobalStorageProvider';\r\nimport {AuthenticationService} from './AuthenticationService';\r\nimport Constants from '../utils/Constants';\r\nimport {\r\n AuthenticationResult,\r\n InteractionRequiredAuthError,\r\n} from '@azure/msal-browser';\r\n\r\nlet apiConfig = {\r\n baseURL: process.env.REACT_APP_CATERING_API_URL,\r\n};\r\n\r\nif (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {\r\n apiConfig.baseURL = process.env.REACT_APP_CATERING_API_URL ?? '';\r\n}\r\n\r\nconst cateringInstance = axios.create(apiConfig);\r\nexport default cateringInstance;\r\n\r\nconst scopes: string[] = JSON.parse(process.env.REACT_APP_CATERING_SCOPES ?? '');\r\n\r\nexport class ResponseError extends Error {\r\n status?: number;\r\n\r\n constructor(message: string, status?: number) {\r\n super(message);\r\n this.status = status;\r\n }\r\n}\r\n\r\ncateringInstance.interceptors.request.use((config) =>\r\n AuthenticationService.getInstance()\r\n .getTokenSilent(scopes)\r\n .then((authResult: AuthenticationResult) =>\r\n handleConfig(config, authResult)\r\n )\r\n .catch((e: InteractionRequiredAuthError) => {\r\n console.log(e);\r\n })\r\n .catch((e: AxiosError) => {\r\n const authServiceInstance = AuthenticationService.getInstance();\r\n const silentRequest = {\r\n scopes,\r\n loginHint: AuthenticationService.getInstance().getAccount()?.username,\r\n };\r\n console.log('SR: ', silentRequest);\r\n console.error('Authentication failed, try to ssoSilent:', e);\r\n authServiceInstance.msalApp\r\n .ssoSilent(silentRequest)\r\n .then((authResult: AuthenticationResult) =>\r\n handleConfig(config, authResult)\r\n )\r\n .catch((error: AxiosError) => {\r\n console.error('Could not ssoSilent: ', error);\r\n });\r\n })\r\n);\r\n\r\nconst handleConfig = (\r\n config: AxiosRequestConfig,\r\n authResult: AuthenticationResult\r\n): Promise =>\r\n new Promise((resolve, reject) => {\r\n const token = authResult.accessToken;\r\n if (token === undefined) {\r\n reject(config);\r\n }\r\n resolve(assignBearerToken(config, token));\r\n });\r\n\r\nconst assignBearerToken = (config: AxiosRequestConfig, token: string) => {\r\n const bearerHeader = `Bearer ${token}`;\r\n const c = config;\r\n if (!c.headers) {\r\n c.headers = {\r\n Authorization: bearerHeader,\r\n } as AxiosRequestHeaders;\r\n } else {\r\n c.headers = {...c.headers, Authorization: bearerHeader};\r\n }\r\n\r\n return config;\r\n};\r\n\r\nexport const useCateringAxiosLogger = () => {\r\n const {AddLog} = useGlobalStorageContext();\r\n\r\n const properties = ['Authorization'];\r\n const excludeProperties = (key: string, value: string) =>\r\n properties.includes(key) ? undefined : value;\r\n\r\n const stringifyValue = (value: any) =>\r\n JSON.stringify(value, excludeProperties, 2);\r\n const logRequest = useCallback((request: any) => {\r\n AddLog(`Request: ${stringifyValue(request)}`);\r\n }, []);\r\n const logResponse = useCallback((response: any) => {\r\n AddLog(`Response: ${stringifyValue(response)}`);\r\n }, []);\r\n const logError = useCallback((error: any) => {\r\n AddLog(`Error: ${stringifyValue(error)}`);\r\n }, []);\r\n\r\n const interceptors = useMemo(\r\n () => ({\r\n request: (request: any) => (logRequest(request), request),\r\n response: (response: any) => (logResponse(response), response),\r\n error: (error: any) => (logError(error), Promise.reject(error)),\r\n }),\r\n [logRequest, logResponse, logError]\r\n ); // create the interceptors\r\n\r\n useEffect(() => {\r\n // add request interceptors\r\n const reqInterceptor = cateringInstance.interceptors.request.use(\r\n interceptors.request,\r\n interceptors.error\r\n );\r\n // add response interceptors\r\n const resInterceptor = cateringInstance.interceptors.response.use(\r\n interceptors.response,\r\n interceptors.error\r\n );\r\n return () => {\r\n // remove all intercepts when done\r\n cateringInstance.interceptors.request.eject(reqInterceptor);\r\n cateringInstance.interceptors.response.eject(resInterceptor);\r\n };\r\n }, [interceptors]);\r\n};\r\n\r\nconst responseBody = (response: AxiosResponse) => response.data;\r\n\r\nexport const cateringRequests = {\r\n get: (url: string, config?: AxiosRequestConfig | undefined) =>\r\n cateringInstance\r\n .get(url, config)\r\n .then(responseBody)\r\n .catch((error: AxiosError) => {\r\n console.error(error);\r\n throw new ResponseError(\r\n error.response?.data,\r\n error.response?.status\r\n );\r\n if (!axios.isCancel(error)) {\r\n throw new ResponseError(Constants.messages.error.fetchingData);\r\n }\r\n }),\r\n\r\n post: (url: string, body: {}, config?: AxiosRequestConfig | undefined) =>\r\n cateringInstance\r\n .post(url, body, config)\r\n .then(responseBody)\r\n .catch((error: AxiosError) => {\r\n if (!axios.isCancel(error)) {\r\n throw new ResponseError(Constants.messages.error.savingData);\r\n }\r\n throw new ResponseError(\r\n error?.response?.data,\r\n error?.response?.status\r\n );\r\n }),\r\n\r\n put: (url: string, body: any, config?: AxiosRequestConfig | undefined) =>\r\n cateringInstance\r\n .put(url, body, config)\r\n .then(responseBody)\r\n .catch((error: AxiosError) => {\r\n if (!axios.isCancel(error)) {\r\n throw new ResponseError(Constants.messages.error.savingData);\r\n }\r\n throw new ResponseError(\r\n error?.response?.data,\r\n error?.response?.status\r\n );\r\n }),\r\n\r\n delete: (url: string, config?: AxiosRequestConfig | undefined) =>\r\n cateringInstance\r\n .delete(url, config)\r\n .then(responseBody)\r\n .catch((error: AxiosError) => {\r\n if (!axios.isCancel(error)) {\r\n throw new ResponseError(Constants.messages.error.deletingData);\r\n }\r\n throw new ResponseError(\r\n error?.response?.data,\r\n error?.response?.status\r\n );\r\n }),\r\n};\r\n","import ICateringOrder from '../models/CateringOrder/ICateringOrder';\r\nimport ICateringOrderExtended from '../models/CateringOrder/ICateringOrderExtended';\r\nimport ICateringQuantity from '../models/CateringOrder/ICateringQuantity';\r\nimport IAcceptCateringOrder from '../models/CateringOrder/IAcceptCateringOrder';\r\nimport IUpdateCateringQuantity from '../models/CateringOrder/IUpdateCateringQuantity';\r\nimport { cateringRequests } from \"./ApiCateringService\";\r\n\r\nconst API_ENDPOINT = '/api/catering-order';\r\nconst QUANTITY_ENDPOINT = '/api/Quantity';\r\nconst BASE_URL = process.env.REACT_APP_CATERING_API_URL;\r\n\r\nconst CateringOrderService = {\r\n getCateringOrder: (date?: string): Promise =>\r\n cateringRequests.get(`${API_ENDPOINT}`, {\r\n params: {fromDate: date},\r\n baseURL: BASE_URL,\r\n }),\r\n saveCateringOrder: (\r\n cateringOrder: IAcceptCateringOrder\r\n ): Promise =>\r\n cateringRequests.post(`${API_ENDPOINT}/accept`, cateringOrder, {\r\n baseURL: BASE_URL,\r\n }),\r\n exportCateringOrder: (date?: string): Promise =>\r\n cateringRequests.get(`${API_ENDPOINT}/export`, {\r\n params: {fromDate: date},\r\n baseURL: BASE_URL,\r\n responseType: 'blob',\r\n }),\r\n getDutyQuantities: (): Promise =>\r\n cateringRequests.get(`${QUANTITY_ENDPOINT}`, {baseURL: BASE_URL}),\r\n saveDutyQuantities: (\r\n dutyQuantities: IUpdateCateringQuantity[]\r\n ): Promise =>\r\n cateringRequests.put(\r\n `${QUANTITY_ENDPOINT}`,\r\n {mappings: dutyQuantities},\r\n {baseURL: BASE_URL}\r\n ),\r\n};\r\nexport default CateringOrderService;\r\n","import ICateringOrderExtended from '../../../models/CateringOrder/ICateringOrderExtended';\r\n\r\nexport enum CateringOrderActionType {\r\n SET_CATERINGORDER,\r\n SET_SELECTED_CATERINGORDER_LINE,\r\n SET_LOADING,\r\n SET_CARD_LOADING,\r\n SET_HAS_RESULT,\r\n SET_DATA_FETCHED,\r\n SET_FILTER,\r\n}\r\n\r\nexport interface CateringOrderState {\r\n cateringOrder: ICateringOrderExtended[];\r\n selectedCateringOrderLine: ICateringOrderExtended | null;\r\n loading: boolean;\r\n cardLoading: boolean;\r\n hasResult: boolean;\r\n dataFetched: boolean;\r\n filter: string;\r\n}\r\n\r\nexport type CateringOrderAction =\r\n | {\r\n type: CateringOrderActionType.SET_CATERINGORDER;\r\n payload: ICateringOrderExtended[];\r\n }\r\n | {\r\n type: CateringOrderActionType.SET_LOADING;\r\n payload: boolean;\r\n }\r\n | {\r\n type: CateringOrderActionType.SET_CARD_LOADING;\r\n payload: boolean;\r\n }\r\n | {\r\n type: CateringOrderActionType.SET_FILTER;\r\n payload: string;\r\n }\r\n | {\r\n type: CateringOrderActionType.SET_HAS_RESULT;\r\n payload: boolean;\r\n }\r\n | {\r\n type: CateringOrderActionType.SET_DATA_FETCHED;\r\n payload: boolean;\r\n }\r\n | {\r\n type: CateringOrderActionType.SET_SELECTED_CATERINGORDER_LINE;\r\n payload: ICateringOrderExtended | null;\r\n };\r\n\r\nexport const CateringOrderReducer = (\r\n state: CateringOrderState,\r\n action: CateringOrderAction\r\n) => {\r\n switch (action.type) {\r\n case CateringOrderActionType.SET_CATERINGORDER:\r\n return {\r\n ...state,\r\n cateringOrder: action.payload,\r\n };\r\n case CateringOrderActionType.SET_LOADING:\r\n return {\r\n ...state,\r\n loading: action.payload,\r\n };\r\n case CateringOrderActionType.SET_CARD_LOADING:\r\n return {\r\n ...state,\r\n cardLoading: action.payload,\r\n };\r\n case CateringOrderActionType.SET_FILTER:\r\n return {\r\n ...state,\r\n filter: action.payload,\r\n };\r\n case CateringOrderActionType.SET_HAS_RESULT:\r\n return {\r\n ...state,\r\n hasResult: action.payload,\r\n };\r\n case CateringOrderActionType.SET_DATA_FETCHED:\r\n return {\r\n ...state,\r\n dataFetched: action.payload,\r\n };\r\n case CateringOrderActionType.SET_SELECTED_CATERINGORDER_LINE:\r\n return {\r\n ...state,\r\n selectedCateringOrderLine: action.payload,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default CateringOrderReducer;\r\n","import _ from 'lodash';\r\nimport React, {createContext, useContext, useEffect, useReducer, useState,} from 'react';\r\n\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport ICateringOrder from '../../../models/CateringOrder/ICateringOrder';\r\nimport ICateringOrderExtended from '../../../models/CateringOrder/ICateringOrderExtended';\r\nimport CateringOrderService from '../../../services/CateringOrderService';\r\nimport Constants from '../../../utils/Constants';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport CateringOrderReducer, {\r\n CateringOrderAction,\r\n CateringOrderActionType,\r\n CateringOrderState,\r\n} from './CateringOrderReducer';\r\nimport IAcceptCateringOrder from '../../../models/CateringOrder/IAcceptCateringOrder';\r\n\r\nexport const InitialState: CateringOrderState = {\r\n cateringOrder: [],\r\n selectedCateringOrderLine: null,\r\n loading: false,\r\n cardLoading: false,\r\n hasResult: false,\r\n dataFetched: false,\r\n filter: '',\r\n};\r\n\r\nexport interface ICateringOrderContextProps {\r\n state: CateringOrderState;\r\n dispatch: React.Dispatch;\r\n fetchCateringOrder: () => void;\r\n saveCateringOrder: (cateringOrder: ICateringOrder) => void;\r\n exportCateringOrder: () => Promise;\r\n}\r\n\r\nconst CateringOrderContext = createContext({} as ICateringOrderContextProps);\r\n\r\nconst CateringOrderProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(CateringOrderReducer, InitialState);\r\n const [originalCateringOrder, setOriginalCateringOrder] = useState<\r\n ICateringOrderExtended[]\r\n >([]);\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n fetchCateringOrder();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const filteredCateringOrder = getFilteredCateringOrder(\r\n originalCateringOrder\r\n );\r\n dispatch({\r\n type: CateringOrderActionType.SET_CATERINGORDER,\r\n payload: filteredCateringOrder,\r\n });\r\n }, [state.filter]);\r\n\r\n const fetchCateringOrder = () => {\r\n dispatch({ type: CateringOrderActionType.SET_LOADING, payload: true });\r\n CateringOrderService.getCateringOrder()\r\n .then((cateringOrders) => {\r\n setOriginalCateringOrder(cateringOrders);\r\n const filteredCateringOrder = getFilteredCateringOrder(cateringOrders);\r\n dispatch({\r\n type: CateringOrderActionType.SET_CATERINGORDER,\r\n payload: filteredCateringOrder,\r\n });\r\n dispatch({\r\n type: CateringOrderActionType.SET_DATA_FETCHED,\r\n payload: true,\r\n });\r\n dispatch({\r\n type: CateringOrderActionType.SET_HAS_RESULT,\r\n payload: filteredCateringOrder.length > 0,\r\n });\r\n dispatch({ type: CateringOrderActionType.SET_LOADING, payload: false });\r\n })\r\n .catch((error) => {\r\n dispatch({ type: CateringOrderActionType.SET_LOADING, payload: false });\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const getFilteredCateringOrder = (\r\n cateringOrder: ICateringOrderExtended[]\r\n ) => {\r\n if (state.filter === '') {\r\n return cateringOrder;\r\n }\r\n let filteredCateringOrder = [...cateringOrder];\r\n if (state.filter !== '') {\r\n filteredCateringOrder = filteredCateringOrder.filter((m) =>\r\n m.flightDesc.toUpperCase().includes(state.filter.toUpperCase()) || m.flightNumber.toUpperCase().includes(state.filter.toUpperCase())\r\n );\r\n }\r\n return filteredCateringOrder;\r\n };\r\n\r\n const saveCateringOrder = (cateringOrder: ICateringOrder) => {\r\n dispatch({ type: CateringOrderActionType.SET_CARD_LOADING, payload: true });\r\n const acceptOrder = {\r\n departureDate: cateringOrder.etd,\r\n flightNumber: cateringOrder.flightNumber,\r\n } as IAcceptCateringOrder;\r\n CateringOrderService.saveCateringOrder(acceptOrder)\r\n .then((cateringOrder) => {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n const newCateringOrder = _.cloneDeep(originalCateringOrder);\r\n for (let i = 0; i < newCateringOrder.length; i++) {\r\n let elt = newCateringOrder[i];\r\n if (\r\n elt.cateringOrderId === cateringOrder.cateringOrderId ||\r\n (elt.flightDesc === cateringOrder.flightDesc &&\r\n elt.flightDate === cateringOrder.flightDate)\r\n ) {\r\n elt.cateringOrderId = cateringOrder.cateringOrderId;\r\n elt.isAccepted = cateringOrder.isAccepted;\r\n elt.tailNumberChanged = cateringOrder.tailNumberChanged;\r\n elt.etdChanged = cateringOrder.etdChanged;\r\n elt.routingChanged = cateringOrder.routingChanged;\r\n\r\n elt.cateringOrderForLegs.forEach((sector) => {\r\n const cateringOrderSector =\r\n cateringOrder.cateringOrderForLegs.find(\r\n (s) => s.sector === sector.sector\r\n );\r\n if (cateringOrderSector) {\r\n sector.cateringOrderLegId =\r\n cateringOrderSector.cateringOrderLegId;\r\n sector.cateringOrderId = cateringOrderSector.cateringOrderId;\r\n sector.crewNormOnBoardChanged =\r\n cateringOrderSector.crewNormOnBoardChanged;\r\n sector.crewVgOnBoardChanged =\r\n cateringOrderSector.crewVgOnBoardChanged;\r\n sector.crewGfNlOnBoardChanged =\r\n cateringOrderSector.crewGfNlOnBoardChanged;\r\n sector.crewGfNlVgOnBoardChanged =\r\n cateringOrderSector.crewGfNlVgOnBoardChanged;\r\n sector.paxOnBoardChanged =\r\n cateringOrderSector.paxOnBoardChanged;\r\n sector.dutyChanged = cateringOrderSector.dutyChanged;\r\n }\r\n });\r\n }\r\n }\r\n setOriginalCateringOrder(newCateringOrder);\r\n const filteredCateringOrder =\r\n getFilteredCateringOrder(newCateringOrder);\r\n dispatch({\r\n type: CateringOrderActionType.SET_CATERINGORDER,\r\n payload: filteredCateringOrder,\r\n });\r\n dispatch({\r\n type: CateringOrderActionType.SET_CARD_LOADING,\r\n payload: false,\r\n });\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const exportCateringOrder = async () => {\r\n try {\r\n const blob = await CateringOrderService.exportCateringOrder();\r\n if (blob && blob.size > 0) {\r\n addMessage(\r\n Constants.messages.success.dataExported,\r\n MessageType.Success\r\n );\r\n }\r\n return blob;\r\n } catch (error) {\r\n addMessage(error.message);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default CateringOrderProvider;\r\n\r\nexport const useCateringOrderContext = () => useContext(CateringOrderContext);\r\n","import ICrew from '../models/CrewSpecialMeals/ICrew';\r\nimport ICrewSpecialMeal from '../models/CrewSpecialMeals/ICrewSpecialMeal';\r\nimport ICrewSpecialMealExtended from '../models/CrewSpecialMeals/ICrewSpecialMealExtended';\r\nimport IExportCrewSpecialMeal from '../models/CrewSpecialMeals/IExportCrewSpecialMeal';\r\nimport IMealType from '../models/CrewSpecialMeals/IMealType';\r\nimport ICreateSpecialMeal from '../models/CrewSpecialMeals/ICreateSpecialMeal';\r\nimport { cateringRequests } from './ApiCateringService';\r\n\r\nconst API_SPECIAL_MEAL_ENDPOINT = '/api/special-meal';\r\nconst API_CREW_ENDPOINT = '/api/crew';\r\nconst BASE_URL = process.env.REACT_APP_CATERING_API_URL;\r\n\r\nconst CrewSpecialMealService = {\r\n getCrewSpecialMeals: (): Promise =>\r\n cateringRequests.get(`${API_SPECIAL_MEAL_ENDPOINT}`, { baseURL: BASE_URL }),\r\n getCrews: (): Promise =>\r\n cateringRequests.get(API_CREW_ENDPOINT, { baseURL: BASE_URL }),\r\n getCrewsWithoutMeals: (): Promise =>\r\n cateringRequests.get(`${API_CREW_ENDPOINT}/without-special-meal`, {\r\n baseURL: BASE_URL,\r\n }),\r\n getMealTypes: (): Promise =>\r\n cateringRequests.get(`${API_SPECIAL_MEAL_ENDPOINT}/meal-types`, {\r\n baseURL: BASE_URL,\r\n }),\r\n createCrewSpecialMeal: (\r\n crewSpecialMeal: ICrewSpecialMeal\r\n ): Promise =>\r\n cateringRequests.post(API_SPECIAL_MEAL_ENDPOINT, crewSpecialMeal, {\r\n baseURL: BASE_URL,\r\n }),\r\n insertCrewAndCrewSpecialMeal: (\r\n crew: ICreateSpecialMeal\r\n ): Promise =>\r\n cateringRequests.post(`${API_SPECIAL_MEAL_ENDPOINT}`, crew, {\r\n baseURL: BASE_URL,\r\n }),\r\n updateCrewSpecialMeal: (\r\n crewSpecialMeal: ICrewSpecialMeal\r\n ): Promise =>\r\n cateringRequests.put(API_SPECIAL_MEAL_ENDPOINT, crewSpecialMeal, {\r\n baseURL: BASE_URL,\r\n }),\r\n deleteCrewSpecialMeal: (crewCode: string): Promise =>\r\n cateringRequests.delete(`${API_SPECIAL_MEAL_ENDPOINT}/${crewCode}`, {\r\n baseURL: BASE_URL,\r\n }),\r\n exportCrewSpecialMeals: (\r\n exportMeals: IExportCrewSpecialMeal\r\n ): Promise =>\r\n cateringRequests.post(`${API_SPECIAL_MEAL_ENDPOINT}/export`, exportMeals, {\r\n baseURL: BASE_URL,\r\n }),\r\n};\r\nexport default CrewSpecialMealService;\r\n","import ICrew from '../../../models/CrewSpecialMeals/ICrew';\r\nimport ICrewSpecialMealExtended from '../../../models/CrewSpecialMeals/ICrewSpecialMealExtended';\r\nimport IMealType from '../../../models/CrewSpecialMeals/IMealType';\r\nimport IOption from '../../../models/IOption';\r\n\r\nexport enum CrewSpecialMealsActionType {\r\n SET_CREWSPECIALMEALS,\r\n SET_CREWS,\r\n SET_CREWS_WITHOUT_MEALS,\r\n SET_MEALTYPES,\r\n SET_SELECTED_CREWSPECIALMEAL,\r\n SET_LOADING,\r\n SET_HAS_RESULT,\r\n SET_DATA_FETCHED,\r\n SET_FILTERED_CREWCODE,\r\n}\r\n\r\nexport interface CrewSpecialMealsState {\r\n crewSpecialMeals: ICrewSpecialMealExtended[];\r\n crews: ICrew[];\r\n crewsWithoutMeals: ICrew[];\r\n mealTypes: IMealType[];\r\n selectedCrewSpecialMeal: ICrewSpecialMealExtended | null;\r\n loading: boolean;\r\n hasResult: boolean;\r\n dataFetched: boolean;\r\n filteredCrewCode: IOption;\r\n}\r\n\r\nexport type CrewSpecialMealsAction =\r\n | {\r\n type: CrewSpecialMealsActionType.SET_CREWSPECIALMEALS;\r\n payload: ICrewSpecialMealExtended[];\r\n }\r\n | {\r\n type: CrewSpecialMealsActionType.SET_CREWS;\r\n payload: ICrew[];\r\n }\r\n | {\r\n type: CrewSpecialMealsActionType.SET_CREWS_WITHOUT_MEALS;\r\n payload: ICrew[];\r\n }\r\n | {\r\n type: CrewSpecialMealsActionType.SET_MEALTYPES;\r\n payload: IMealType[];\r\n }\r\n | {\r\n type: CrewSpecialMealsActionType.SET_LOADING;\r\n payload: boolean;\r\n }\r\n | {\r\n type: CrewSpecialMealsActionType.SET_HAS_RESULT;\r\n payload: boolean;\r\n }\r\n | {\r\n type: CrewSpecialMealsActionType.SET_DATA_FETCHED;\r\n payload: boolean;\r\n }\r\n | {\r\n type: CrewSpecialMealsActionType.SET_SELECTED_CREWSPECIALMEAL;\r\n payload: ICrewSpecialMealExtended | null;\r\n }\r\n | {\r\n type: CrewSpecialMealsActionType.SET_FILTERED_CREWCODE;\r\n payload: IOption;\r\n };\r\n\r\nexport const CrewSpecialMealsReducer = (\r\n state: CrewSpecialMealsState,\r\n action: CrewSpecialMealsAction\r\n) => {\r\n switch (action.type) {\r\n case CrewSpecialMealsActionType.SET_CREWSPECIALMEALS:\r\n return {\r\n ...state,\r\n crewSpecialMeals: action.payload,\r\n };\r\n case CrewSpecialMealsActionType.SET_CREWS_WITHOUT_MEALS:\r\n return {\r\n ...state,\r\n crewsWithoutMeals: action.payload,\r\n };\r\n case CrewSpecialMealsActionType.SET_CREWS:\r\n return {\r\n ...state,\r\n crews: action.payload,\r\n };\r\n case CrewSpecialMealsActionType.SET_MEALTYPES:\r\n return {\r\n ...state,\r\n mealTypes: action.payload,\r\n };\r\n case CrewSpecialMealsActionType.SET_LOADING:\r\n return {\r\n ...state,\r\n loading: action.payload,\r\n };\r\n case CrewSpecialMealsActionType.SET_HAS_RESULT:\r\n return {\r\n ...state,\r\n hasResult: action.payload,\r\n };\r\n case CrewSpecialMealsActionType.SET_DATA_FETCHED:\r\n return {\r\n ...state,\r\n dataFetched: action.payload,\r\n };\r\n case CrewSpecialMealsActionType.SET_SELECTED_CREWSPECIALMEAL:\r\n return {\r\n ...state,\r\n selectedCrewSpecialMeal: action.payload,\r\n };\r\n case CrewSpecialMealsActionType.SET_FILTERED_CREWCODE:\r\n return {\r\n ...state,\r\n filteredCrewCode: action.payload,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default CrewSpecialMealsReducer;\r\n","import React, {createContext, useContext, useEffect, useReducer, useState,} from 'react';\r\n\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport ICrewSpecialMeal from '../../../models/CrewSpecialMeals/ICrewSpecialMeal';\r\nimport ICrewSpecialMealExtended from '../../../models/CrewSpecialMeals/ICrewSpecialMealExtended';\r\nimport IExportCrewSpecialMeal from '../../../models/CrewSpecialMeals/IExportCrewSpecialMeal';\r\nimport CrewSpecialMealService from '../../../services/CrewSpecialMealService';\r\nimport Constants from '../../../utils/Constants';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport CrewSpecialMealsReducer, {\r\n CrewSpecialMealsAction,\r\n CrewSpecialMealsActionType,\r\n CrewSpecialMealsState,\r\n} from './CrewSpecialMealsReducer';\r\nimport {ResponseError} from '../../../services/ApiService';\r\nimport ICreateSpecialMeal from '../../../models/CrewSpecialMeals/ICreateSpecialMeal';\r\n\r\nexport const InitialState: CrewSpecialMealsState = {\r\n crewSpecialMeals: [],\r\n crews: [],\r\n crewsWithoutMeals: [],\r\n mealTypes: [],\r\n selectedCrewSpecialMeal: null,\r\n loading: false,\r\n hasResult: false,\r\n dataFetched: false,\r\n filteredCrewCode: { label: 'All', value: 'All' },\r\n};\r\n\r\nexport interface ICrewSpecialMealsContextProps {\r\n state: CrewSpecialMealsState;\r\n validationError: string | undefined;\r\n clearValidationErrors: () => void;\r\n dispatch: React.Dispatch;\r\n createCrewSpecialMeal: (crewSpecialMeal: ICrewSpecialMeal) => void;\r\n updateCrewSpecialMeal: (crewSpecialMeal: ICrewSpecialMeal) => void;\r\n deleteCrewSpecialMeal: (crewCode: string) => void;\r\n exportCrewSpecialMeals: (exportMeals: IExportCrewSpecialMeal) => void;\r\n insertCrewAndCrewSpecialMeal: (\r\n crewSpecialMeal: ICreateSpecialMeal\r\n ) => Promise;\r\n}\r\n\r\nconst CrewSpecialMealsContext = createContext(\r\n {} as ICrewSpecialMealsContextProps\r\n);\r\n\r\nconst CrewSpecialMealsProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(CrewSpecialMealsReducer, InitialState);\r\n const { addMessage } = useSnackbar();\r\n const [originalMeals, setOriginalMeals] = useState<\r\n ICrewSpecialMealExtended[]\r\n >([]);\r\n\r\n const [validationError, setValidationError] = useState(\r\n undefined\r\n );\r\n\r\n useEffect(() => {\r\n fetchCrewSpecialMeals();\r\n fetchCrews();\r\n fetchCrewsWithoutMeals();\r\n fetchMealTypes();\r\n }, []);\r\n\r\n useEffect(() => {\r\n const filteredMeals = getFilteredMeals(originalMeals);\r\n dispatch({\r\n type: CrewSpecialMealsActionType.SET_CREWSPECIALMEALS,\r\n payload: filteredMeals,\r\n });\r\n }, [state.filteredCrewCode]);\r\n\r\n const fetchCrewSpecialMeals = () => {\r\n dispatch({ type: CrewSpecialMealsActionType.SET_LOADING, payload: true });\r\n CrewSpecialMealService.getCrewSpecialMeals()\r\n .then((meals) => {\r\n setOriginalMeals(meals);\r\n const filteredMeals = getFilteredMeals(meals);\r\n dispatch({\r\n type: CrewSpecialMealsActionType.SET_CREWSPECIALMEALS,\r\n payload: filteredMeals,\r\n });\r\n dispatch({\r\n type: CrewSpecialMealsActionType.SET_DATA_FETCHED,\r\n payload: true,\r\n });\r\n dispatch({\r\n type: CrewSpecialMealsActionType.SET_HAS_RESULT,\r\n payload: filteredMeals.length > 0,\r\n });\r\n dispatch({\r\n type: CrewSpecialMealsActionType.SET_LOADING,\r\n payload: false,\r\n });\r\n })\r\n .catch((error) => {\r\n dispatch({\r\n type: CrewSpecialMealsActionType.SET_LOADING,\r\n payload: false,\r\n });\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const fetchCrews = () => {\r\n CrewSpecialMealService.getCrews()\r\n .then((crews) =>\r\n dispatch({ type: CrewSpecialMealsActionType.SET_CREWS, payload: crews })\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const fetchCrewsWithoutMeals = () => {\r\n CrewSpecialMealService.getCrewsWithoutMeals()\r\n .then((crews) =>\r\n dispatch({\r\n type: CrewSpecialMealsActionType.SET_CREWS_WITHOUT_MEALS,\r\n payload: crews,\r\n })\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const fetchMealTypes = () => {\r\n CrewSpecialMealService.getMealTypes()\r\n .then((mealTypes) =>\r\n dispatch({\r\n type: CrewSpecialMealsActionType.SET_MEALTYPES,\r\n payload: mealTypes,\r\n })\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const getFilteredMeals = (meals: ICrewSpecialMealExtended[]) => {\r\n if (!state.filteredCrewCode || state.filteredCrewCode.label === 'All') {\r\n return meals;\r\n }\r\n let filteredMeals = [...meals];\r\n if (state.filteredCrewCode.label !== 'All') {\r\n filteredMeals = filteredMeals.filter(\r\n (specialMeal) => specialMeal.crew?.code === state.filteredCrewCode.value\r\n );\r\n }\r\n return filteredMeals;\r\n };\r\n\r\n const createCrewSpecialMeal = (crewSpecialMeal: ICrewSpecialMeal) => {\r\n CrewSpecialMealService.createCrewSpecialMeal(crewSpecialMeal)\r\n .then(() => {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n fetchCrewSpecialMeals();\r\n fetchCrewsWithoutMeals();\r\n })\r\n .catch((error: ResponseError) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const insertCrewAndCrewSpecialMeal = (\r\n crewSpecialMeal: ICreateSpecialMeal\r\n ): Promise => {\r\n setValidationError(undefined);\r\n return CrewSpecialMealService.insertCrewAndCrewSpecialMeal(crewSpecialMeal)\r\n .then(() => {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n fetchCrews();\r\n fetchCrewSpecialMeals();\r\n fetchCrewsWithoutMeals();\r\n return true;\r\n })\r\n .catch((error: ResponseError) => {\r\n console.log('error: ',error.status);\r\n if (error.status === 409) {\r\n const message = `The person with code ${crewSpecialMeal.crew.code} already exists`;\r\n setValidationError(message);\r\n addMessage(message);\r\n } else {\r\n addMessage(error.message);\r\n }\r\n return false;\r\n });\r\n };\r\n const updateCrewSpecialMeal = (crewSpecialMeal: ICrewSpecialMeal) => {\r\n setValidationError(undefined);\r\n CrewSpecialMealService.updateCrewSpecialMeal(crewSpecialMeal)\r\n .then((updated) => {\r\n if (updated) {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n fetchCrewSpecialMeals();\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const deleteCrewSpecialMeal = (crewCode: string) => {\r\n CrewSpecialMealService.deleteCrewSpecialMeal(crewCode)\r\n .then((deleted) => {\r\n if (deleted) {\r\n addMessage(\r\n Constants.messages.success.dataDeleted,\r\n MessageType.Success\r\n );\r\n fetchCrewSpecialMeals();\r\n fetchCrewsWithoutMeals();\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const exportCrewSpecialMeals = (exportMeals: IExportCrewSpecialMeal) => {\r\n CrewSpecialMealService.exportCrewSpecialMeals(exportMeals)\r\n .then((exported) => {\r\n if (exported) {\r\n addMessage(\r\n Constants.messages.success.dataExported,\r\n MessageType.Success\r\n );\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const clearValidationErrors = () => setValidationError(undefined);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default CrewSpecialMealsProvider;\r\n\r\nexport const useCrewSpecialMealsContext = () =>\r\n useContext(CrewSpecialMealsContext);\r\n","import {Moment} from 'moment';\r\n\r\nimport ICateringOrderExtended from '../../../models/CateringOrder/ICateringOrderExtended';\r\n\r\nexport enum ForecastActionType {\r\n SET_CATERINGORDER,\r\n SET_LOADING,\r\n SET_HAS_RESULT,\r\n SET_DATA_FETCHED,\r\n SET_DATE,\r\n}\r\n\r\nexport interface ForecastState {\r\n cateringOrder: ICateringOrderExtended[];\r\n loading: boolean;\r\n hasResult: boolean;\r\n dataFetched: boolean;\r\n date: Moment | null;\r\n}\r\n\r\nexport type ForecastAction =\r\n | {\r\n type: ForecastActionType.SET_CATERINGORDER;\r\n payload: ICateringOrderExtended[];\r\n }\r\n | {\r\n type: ForecastActionType.SET_LOADING;\r\n payload: boolean;\r\n }\r\n | {\r\n type: ForecastActionType.SET_HAS_RESULT;\r\n payload: boolean;\r\n }\r\n | {\r\n type: ForecastActionType.SET_DATA_FETCHED;\r\n payload: boolean;\r\n }\r\n | {\r\n type: ForecastActionType.SET_DATE;\r\n payload: Moment | null;\r\n };\r\n\r\nexport const ForecastReducer = (\r\n state: ForecastState,\r\n action: ForecastAction\r\n) => {\r\n switch (action.type) {\r\n case ForecastActionType.SET_CATERINGORDER:\r\n return {\r\n ...state,\r\n cateringOrder: action.payload,\r\n };\r\n case ForecastActionType.SET_LOADING:\r\n return {\r\n ...state,\r\n loading: action.payload,\r\n };\r\n case ForecastActionType.SET_HAS_RESULT:\r\n return {\r\n ...state,\r\n hasResult: action.payload,\r\n };\r\n case ForecastActionType.SET_DATA_FETCHED:\r\n return {\r\n ...state,\r\n dataFetched: action.payload,\r\n };\r\n case ForecastActionType.SET_DATE:\r\n return {\r\n ...state,\r\n date: action.payload,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default ForecastReducer;\r\n","import moment from 'moment';\r\nimport React, {createContext, useContext, useEffect, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport Constants from '../../../utils/Constants';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport ForecastReducer, {ForecastAction, ForecastActionType, ForecastState,} from './ForecastReducer';\r\nimport CateringOrderService from '../../../services/CateringOrderService';\r\n\r\nexport const InitialState: ForecastState = {\r\n cateringOrder: [],\r\n loading: false,\r\n hasResult: false,\r\n dataFetched: false,\r\n date: moment.utc(),\r\n};\r\n\r\nexport interface IForecastContextProps {\r\n state: ForecastState;\r\n dispatch: React.Dispatch;\r\n fetchCateringOrder: () => void;\r\n exportCateringOrder: () => Promise;\r\n}\r\n\r\nconst ForecastContext = createContext({} as IForecastContextProps);\r\n\r\nconst ForecastProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(ForecastReducer, InitialState);\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n fetchCateringOrder();\r\n }, []);\r\n\r\n const fetchCateringOrder = () => {\r\n dispatch({ type: ForecastActionType.SET_LOADING, payload: true });\r\n CateringOrderService.getCateringOrder(\r\n state.date!.startOf('day').toISOString()\r\n )\r\n .then((cateringOrder) => {\r\n dispatch({\r\n type: ForecastActionType.SET_CATERINGORDER,\r\n payload: cateringOrder,\r\n });\r\n dispatch({ type: ForecastActionType.SET_DATA_FETCHED, payload: true });\r\n dispatch({\r\n type: ForecastActionType.SET_HAS_RESULT,\r\n payload: cateringOrder.length > 0,\r\n });\r\n dispatch({ type: ForecastActionType.SET_LOADING, payload: false });\r\n })\r\n .catch((error) => {\r\n dispatch({ type: ForecastActionType.SET_LOADING, payload: false });\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const exportCateringOrder = async () => {\r\n try {\r\n const blob = await CateringOrderService.exportCateringOrder(\r\n state.date!.startOf('day').toISOString()\r\n );\r\n if (blob && blob.size > 0) {\r\n addMessage(\r\n Constants.messages.success.dataExported,\r\n MessageType.Success\r\n );\r\n }\r\n return blob;\r\n } catch (error) {\r\n addMessage(error.message);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default ForecastProvider;\r\n\r\nexport const useForecastContext = () => useContext(ForecastContext);\r\n","import IUpliftStation from '../models/UpliftStations/IUpliftStation';\r\nimport IUpliftStationComment from '../models/UpliftStations/IUpliftStationComment';\r\nimport IUpliftStationExtended from '../models/UpliftStations/IUpliftStationExtended';\r\nimport {cateringRequests} from \"./ApiCateringService\";\r\n\r\nconst API_ENDPOINT = '/api/catering-routes';\r\nconst CONFIG_ENDPOINT = '/api/uplift-configuration';\r\nconst COMMENT_ENDPOINT = '/api/uplift-comment';\r\nconst BASE_URL = process.env.REACT_APP_CATERING_API_URL;\r\n\r\nconst UpliftStationService = {\r\n getUpliftStations: (\r\n fromDate: string,\r\n toDate: string\r\n ): Promise =>\r\n cateringRequests.get(`${API_ENDPOINT}?fromDate=${fromDate}&toDate=${toDate}`, {\r\n baseURL: BASE_URL,\r\n }),\r\n updateUpliftStation: (upliftStation: IUpliftStation): Promise =>\r\n cateringRequests.post(`${CONFIG_ENDPOINT}`, upliftStation, { baseURL: BASE_URL }),\r\n updateUpliftStationComment: (\r\n comment: IUpliftStationComment\r\n ): Promise =>\r\n cateringRequests.post(`${COMMENT_ENDPOINT}`, comment, { baseURL: BASE_URL }),\r\n exportUpliftStations: (fromDate: string, toDate: string): Promise =>\r\n cateringRequests.get(\r\n `${API_ENDPOINT}/export?fromDate=${fromDate}&toDate=${toDate}`,\r\n {\r\n responseType: 'blob',\r\n baseURL: BASE_URL,\r\n }\r\n ),\r\n};\r\nexport default UpliftStationService;\r\n","import {Moment} from 'moment';\r\n\r\nimport IUpliftStationExtended from '../../../models/UpliftStations/IUpliftStationExtended';\r\nimport IUpliftStationRoutingLeg from '../../../models/UpliftStations/IUpliftStationRoutingLeg';\r\n\r\nexport enum UpliftStationsActionType {\r\n SET_UPLIFTSTATIONS,\r\n SET_UPLIFTSTATIONTYPES,\r\n SET_SELECTED_UPLIFTSTATION,\r\n SET_SELECTED_ROUTINGLEG,\r\n SET_LOADING,\r\n SET_HAS_RESULT,\r\n SET_DATA_FETCHED,\r\n SET_FROMDATE,\r\n SET_TODATE,\r\n}\r\n\r\nexport interface UpliftStationsState {\r\n upliftStations: IUpliftStationExtended[];\r\n upliftStationTypes: string[];\r\n selectedUpliftStation: IUpliftStationExtended | null;\r\n selectedRoutingLeg: IUpliftStationRoutingLeg | null;\r\n loading: boolean;\r\n hasResult: boolean;\r\n dataFetched: boolean;\r\n fromDate: Moment | null;\r\n toDate: Moment | null;\r\n}\r\n\r\nexport type UpliftStationsAction =\r\n | {\r\n type: UpliftStationsActionType.SET_UPLIFTSTATIONS;\r\n payload: IUpliftStationExtended[];\r\n }\r\n | {\r\n type: UpliftStationsActionType.SET_UPLIFTSTATIONTYPES;\r\n payload: string[];\r\n }\r\n | {\r\n type: UpliftStationsActionType.SET_LOADING;\r\n payload: boolean;\r\n }\r\n | {\r\n type: UpliftStationsActionType.SET_HAS_RESULT;\r\n payload: boolean;\r\n }\r\n | {\r\n type: UpliftStationsActionType.SET_DATA_FETCHED;\r\n payload: boolean;\r\n }\r\n | {\r\n type: UpliftStationsActionType.SET_SELECTED_UPLIFTSTATION;\r\n payload: IUpliftStationExtended | null;\r\n }\r\n | {\r\n type: UpliftStationsActionType.SET_SELECTED_ROUTINGLEG;\r\n payload: IUpliftStationRoutingLeg | null;\r\n }\r\n | {\r\n type: UpliftStationsActionType.SET_FROMDATE;\r\n payload: Moment | null;\r\n }\r\n | {\r\n type: UpliftStationsActionType.SET_TODATE;\r\n payload: Moment | null;\r\n };\r\n\r\nexport const UpliftStationsReducer = (\r\n state: UpliftStationsState,\r\n action: UpliftStationsAction\r\n) => {\r\n switch (action.type) {\r\n case UpliftStationsActionType.SET_UPLIFTSTATIONS:\r\n return {\r\n ...state,\r\n upliftStations: action.payload,\r\n };\r\n case UpliftStationsActionType.SET_UPLIFTSTATIONTYPES:\r\n return {\r\n ...state,\r\n upliftStationTypes: action.payload,\r\n };\r\n case UpliftStationsActionType.SET_LOADING:\r\n return {\r\n ...state,\r\n loading: action.payload,\r\n };\r\n case UpliftStationsActionType.SET_HAS_RESULT:\r\n return {\r\n ...state,\r\n hasResult: action.payload,\r\n };\r\n case UpliftStationsActionType.SET_DATA_FETCHED:\r\n return {\r\n ...state,\r\n dataFetched: action.payload,\r\n };\r\n case UpliftStationsActionType.SET_SELECTED_UPLIFTSTATION:\r\n return {\r\n ...state,\r\n selectedUpliftStation: action.payload,\r\n };\r\n case UpliftStationsActionType.SET_SELECTED_ROUTINGLEG:\r\n return {\r\n ...state,\r\n selectedRoutingLeg: action.payload,\r\n };\r\n case UpliftStationsActionType.SET_FROMDATE:\r\n return {\r\n ...state,\r\n fromDate: action.payload,\r\n };\r\n case UpliftStationsActionType.SET_TODATE:\r\n return {\r\n ...state,\r\n toDate: action.payload,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default UpliftStationsReducer;\r\n","import _ from 'lodash';\r\nimport moment from 'moment';\r\nimport React, {createContext, useContext, useEffect, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IUpliftStation from '../../../models/UpliftStations/IUpliftStation';\r\nimport IUpliftStationComment from '../../../models/UpliftStations/IUpliftStationComment';\r\nimport UpliftStationService from '../../../services/UpliftStationService';\r\nimport Constants from '../../../utils/Constants';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport UpliftStationsReducer, {\r\n UpliftStationsAction,\r\n UpliftStationsActionType,\r\n UpliftStationsState,\r\n} from './UpliftStationsReducer';\r\n\r\nexport const InitialState: UpliftStationsState = {\r\n upliftStations: [],\r\n upliftStationTypes: [],\r\n selectedUpliftStation: null,\r\n selectedRoutingLeg: null,\r\n loading: false,\r\n hasResult: false,\r\n dataFetched: false,\r\n fromDate: moment.utc(),\r\n toDate: moment.utc().add(7, 'days'),\r\n};\r\n\r\nexport interface IUpliftStationsContextProps {\r\n state: UpliftStationsState;\r\n dispatch: React.Dispatch;\r\n fetchUpliftStations: () => void;\r\n updateUpliftStation: (upliftStation: IUpliftStation) => void;\r\n updateUpliftStationComment: (upliftStation: IUpliftStationComment) => void;\r\n exportUpliftStations: () => Promise;\r\n}\r\n\r\nconst UpliftStationsContext = createContext({} as IUpliftStationsContextProps);\r\n\r\nconst UpliftStationsProvider: React.FC = ({children}) => {\r\n const [state, dispatch] = useReducer(UpliftStationsReducer, InitialState);\r\n const {addMessage} = useSnackbar();\r\n\r\n useEffect(() => {\r\n fetchUpliftStations();\r\n }, []);\r\n\r\n const fetchUpliftStations = () => {\r\n dispatch({type: UpliftStationsActionType.SET_LOADING, payload: true});\r\n UpliftStationService.getUpliftStations(\r\n state.fromDate!.startOf('day').toISOString(),\r\n state.toDate!.startOf('day').toISOString()\r\n )\r\n .then((stations) => {\r\n stations.forEach(\r\n (x) =>\r\n (x.legsToString = x.legs\r\n .map((leg: any) => `${leg.flightDescription}`)\r\n .join(' '))\r\n );\r\n dispatch({\r\n type: UpliftStationsActionType.SET_UPLIFTSTATIONS,\r\n payload: stations,\r\n });\r\n dispatch({\r\n type: UpliftStationsActionType.SET_DATA_FETCHED,\r\n payload: true,\r\n });\r\n dispatch({\r\n type: UpliftStationsActionType.SET_HAS_RESULT,\r\n payload: stations.length > 0,\r\n });\r\n dispatch({\r\n type: UpliftStationsActionType.SET_LOADING,\r\n payload: false,\r\n });\r\n })\r\n .catch((error) => {\r\n dispatch({\r\n type: UpliftStationsActionType.SET_LOADING,\r\n payload: false,\r\n });\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const updateUpliftStationComment = (\r\n upliftStationComment: IUpliftStationComment\r\n ) => {\r\n UpliftStationService.updateUpliftStationComment(upliftStationComment)\r\n .then((updated) => {\r\n if (updated) {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n const updatedStations = _.cloneDeep(state.upliftStations);\r\n\r\n const station = updatedStations.find(\r\n (station) =>\r\n station.firstLegFlightNumber ===\r\n upliftStationComment.flightNumber &&\r\n station.firstLegFlightDate === upliftStationComment.flightDate\r\n );\r\n if (station) {\r\n station.comment = upliftStationComment.comment;\r\n }\r\n dispatch({\r\n type: UpliftStationsActionType.SET_UPLIFTSTATIONS,\r\n payload: updatedStations,\r\n });\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const updateUpliftStation = (upliftStation: IUpliftStation) => {\r\n UpliftStationService.updateUpliftStation(upliftStation)\r\n .then((updated) => {\r\n if (updated) {\r\n\r\n fetchUpliftStations();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n } else {\r\n addMessage(Constants.messages.error.savingData, MessageType.Error);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const exportUpliftStations = async () => {\r\n try {\r\n const blob = await UpliftStationService.exportUpliftStations(\r\n state.fromDate!.startOf('day').toISOString(),\r\n state.toDate!.startOf('day').toISOString()\r\n );\r\n addMessage(Constants.messages.success.dataExported, MessageType.Success);\r\n return blob;\r\n } catch (error) {\r\n addMessage(error.message);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default UpliftStationsProvider;\r\n\r\nexport const useUpliftStationsContext = () => useContext(UpliftStationsContext);\r\n","import IFlightDeparture from '../models/IFlightDeparture';\r\nimport IFlightSchedule from '../models/IFlightSchedule';\r\nimport ITripDetails from '../models/ITripDetails';\r\nimport { cateringRequests } from './ApiCateringService';\r\nimport { requests } from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/Flights';\r\nconst BASE_URL = process.env.REACT_APP_API_BASE_URL;\r\nconst CATERING_URL = process.env.REACT_APP_CATERING_API_URL;\r\n\r\nconst FlightService = {\r\n getDepartures: (station: string): Promise =>\r\n requests.get(`${API_ENDPOINT}/departures/${station}`, {\r\n baseURL: BASE_URL,\r\n }),\r\n getFlights: (from: string, to: string, date: Date) =>\r\n cateringRequests.get(\r\n `${API_ENDPOINT}/trip/${from}/${to}?date=${date.toISOString()}`\r\n ),\r\n getFlightSchedule: (): Promise =>\r\n cateringRequests.get('api/flight-schedule', { baseURL: CATERING_URL }),\r\n getFlightsWithBlockedReason: (tripDetails: ITripDetails) =>\r\n requests.post(`${API_ENDPOINT}/trip`, tripDetails, { baseURL: BASE_URL }),\r\n};\r\n\r\nexport default FlightService;\r\n","import ICVFlight from '../models/ICVFlight';\r\nimport IFlightSeats from '../models/Reservation/IFlightSeats';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/Seats';\r\n\r\nconst SeatsService = {\r\n compute: (\r\n flights: ICVFlight[],\r\n ownerId: number,\r\n tripTypeId: number\r\n ): Promise =>\r\n requests.post(`${API_ENDPOINT}/compute/${ownerId}/${tripTypeId}`, flights),\r\n};\r\n\r\nexport default SeatsService;\r\n","import produce from 'immer';\r\nimport moment from 'moment';\r\n\r\nimport ICVFlight from '../../models/ICVFlight';\r\nimport {ICVFlightsSearch} from '../../models/Reservation/ICVFlightSearch';\r\nimport IFlightSeats from '../../models/Reservation/IFlightSeats';\r\nimport Constants from '../../utils/Constants';\r\nimport {ICVFlightFilter} from './CVFlightsContext';\r\nimport {IOverlappingFlightForReservation} from '../../models/IOverlappingFlightForReservation';\r\n\r\nexport enum CVFlightsActionTypes {\r\n SET_OVERLAPPING_FLIGHT = 'set-overlapping-flight',\r\n FETCH_FLIGHTS_STARTED = 'fetch-flights-started',\r\n FETCH_FLIGHTS_FAILED = 'fetch-flights-failed',\r\n FETCH_FLIGHTS_DONE = 'fetch-flights-done',\r\n FETCH_RETURN_FLIGHTS_STARTED = 'fetch-return-flights-started',\r\n FETCH_RETURN_FLIGHTS_FAILED = 'fetch-return-flights-failed',\r\n FETCH_RETURN_FLIGHTS_DONE = 'fetch-return-flights-done',\r\n RESET = 'reset',\r\n FILTER_FLIGHTS = 'filter-flights',\r\n FILTER_RETURN_FLIGHTS = 'filter-return-flights',\r\n PICK_FLIGHT = 'pick-flight',\r\n PICK_RETURN_FLIGHT = 'pick-return-flight',\r\n ENSURE_FLIGHT = 'ensure-flight',\r\n ENSURE_RETURN_FLIGHT = 'ensure-return-flight',\r\n FETCH_SEATS_STARTED = 'fetch-seats-started',\r\n FETCH_SEATS_FAILED = 'fetch-seats-failed',\r\n FETCH_SEATS_DONE = 'fetch-seats-done',\r\n}\r\n\r\nexport interface ICVFlightsState {\r\n overlapping?: IOverlappingFlightForReservation;\r\n flights: ICVFlight[];\r\n filteredFlights: ICVFlight[];\r\n returnFlights: ICVFlight[];\r\n filteredReturnFlights: ICVFlight[];\r\n pickedFlight?: ICVFlight;\r\n pickedReturnFlight?: ICVFlight;\r\n filter?: ICVFlightFilter;\r\n fetchingFlights: boolean;\r\n fetchingReturnFlights: boolean;\r\n errorMessage?: string;\r\n search?: ICVFlightsSearch;\r\n seats: IFlightSeats[];\r\n}\r\n\r\nexport type CVFlightsAction =\r\n | {\r\n type: CVFlightsActionTypes.SET_OVERLAPPING_FLIGHT;\r\n payload: IOverlappingFlightForReservation | undefined;\r\n }\r\n | {\r\n type: CVFlightsActionTypes.FETCH_FLIGHTS_STARTED;\r\n payload: ICVFlightsSearch;\r\n }\r\n | {\r\n type: CVFlightsActionTypes.FETCH_FLIGHTS_FAILED;\r\n payload: string;\r\n }\r\n | {\r\n type: CVFlightsActionTypes.FETCH_FLIGHTS_DONE;\r\n payload: { flights: ICVFlight[]; search: ICVFlightsSearch };\r\n }\r\n | { type: CVFlightsActionTypes.FETCH_RETURN_FLIGHTS_STARTED }\r\n | {\r\n type: CVFlightsActionTypes.FETCH_RETURN_FLIGHTS_FAILED;\r\n payload: string;\r\n }\r\n | {\r\n type: CVFlightsActionTypes.FETCH_RETURN_FLIGHTS_DONE;\r\n payload: { flights: ICVFlight[]; search: ICVFlightsSearch };\r\n }\r\n | { type: CVFlightsActionTypes.RESET }\r\n | { type: CVFlightsActionTypes.FILTER_FLIGHTS; payload: ICVFlight[] }\r\n | { type: CVFlightsActionTypes.FILTER_RETURN_FLIGHTS; payload: ICVFlight[] }\r\n | { type: CVFlightsActionTypes.PICK_FLIGHT; payload: ICVFlight | undefined }\r\n | {\r\n type: CVFlightsActionTypes.PICK_RETURN_FLIGHT;\r\n payload: ICVFlight | undefined;\r\n }\r\n | { type: CVFlightsActionTypes.ENSURE_FLIGHT; payload: Date | undefined }\r\n | {\r\n type: CVFlightsActionTypes.ENSURE_RETURN_FLIGHT;\r\n payload: Date | undefined;\r\n }\r\n | { type: CVFlightsActionTypes.FETCH_SEATS_STARTED }\r\n | { type: CVFlightsActionTypes.FETCH_SEATS_FAILED; payload: string }\r\n | { type: CVFlightsActionTypes.FETCH_SEATS_DONE; payload: IFlightSeats[] };\r\n\r\nexport const updatePassengerBlockedStatusOnFlights = (\r\n flights: ICVFlight[],\r\n blockedFrom?: Date\r\n): ICVFlight[] => {\r\n return blockedFrom\r\n ? flights.map((f) =>\r\n moment(f.departureTime) >= moment(blockedFrom)\r\n ? ({\r\n ...f,\r\n isBlocked: true,\r\n blockedReason: Constants.validation.passengerBlocked,\r\n } as ICVFlight)\r\n : f\r\n )\r\n : flights;\r\n};\r\n\r\nexport const CVFlightsReducer = (\r\n state: ICVFlightsState,\r\n action: CVFlightsAction\r\n) => {\r\n switch (action.type) {\r\n case CVFlightsActionTypes.FETCH_FLIGHTS_STARTED:\r\n return {\r\n ...state,\r\n fetchingFlights: true,\r\n errorMessage: undefined,\r\n search: action.payload,\r\n pickedFlight: undefined,\r\n pickedReturnFlight: undefined,\r\n };\r\n case CVFlightsActionTypes.FETCH_FLIGHTS_FAILED:\r\n return { ...state, fetchingFlights: false, errorMessage: action.payload };\r\n case CVFlightsActionTypes.SET_OVERLAPPING_FLIGHT:\r\n return { ...state, overlapping: action.payload };\r\n case CVFlightsActionTypes.FETCH_FLIGHTS_DONE:\r\n return {\r\n ...state,\r\n fetchingFlights: false,\r\n flights: updatePassengerBlockedStatusOnFlights(\r\n action.payload.flights,\r\n action.payload.search?.passengerBlockedFrom\r\n ),\r\n };\r\n case CVFlightsActionTypes.FETCH_RETURN_FLIGHTS_STARTED:\r\n return { ...state, fetchingReturnFlights: true, errorMessage: undefined };\r\n case CVFlightsActionTypes.FETCH_RETURN_FLIGHTS_FAILED:\r\n return {\r\n ...state,\r\n fetchingReturnFlights: false,\r\n errorMessage: action.payload,\r\n };\r\n case CVFlightsActionTypes.FETCH_RETURN_FLIGHTS_DONE:\r\n return {\r\n ...state,\r\n fetchingReturnFlights: false,\r\n returnFlights: updatePassengerBlockedStatusOnFlights(\r\n action.payload.flights,\r\n action.payload.search?.passengerBlockedFrom\r\n ),\r\n };\r\n case CVFlightsActionTypes.FETCH_SEATS_STARTED:\r\n return { ...state, errorMessage: undefined };\r\n case CVFlightsActionTypes.FETCH_SEATS_FAILED:\r\n return { ...state, errorMessage: action.payload };\r\n case CVFlightsActionTypes.FETCH_SEATS_DONE:\r\n return {\r\n ...state,\r\n seats: produce(state.seats, (draft) => {\r\n const keep = draft.filter(\r\n (s) =>\r\n !action.payload.some((p) => p.flightNumber === s.flightNumber)\r\n );\r\n return [...keep, ...action.payload];\r\n }),\r\n };\r\n case CVFlightsActionTypes.RESET:\r\n return {\r\n ...state,\r\n flights: [],\r\n returnFlights: [],\r\n seats: [],\r\n search: undefined,\r\n pickedFlight: undefined,\r\n pickedReturnFlight: undefined,\r\n };\r\n case CVFlightsActionTypes.FILTER_FLIGHTS:\r\n return {\r\n ...state,\r\n filteredFlights: action.payload,\r\n };\r\n case CVFlightsActionTypes.FILTER_RETURN_FLIGHTS:\r\n return {\r\n ...state,\r\n filteredReturnFlights: action.payload,\r\n };\r\n case CVFlightsActionTypes.PICK_FLIGHT:\r\n return {\r\n ...state,\r\n overlapping: undefined,\r\n pickedFlight: action.payload,\r\n };\r\n case CVFlightsActionTypes.PICK_RETURN_FLIGHT:\r\n return {\r\n ...state,\r\n overlapping: undefined,\r\n pickedReturnFlight: action.payload,\r\n };\r\n case CVFlightsActionTypes.ENSURE_FLIGHT:\r\n return {\r\n ...state,\r\n pickedFlight:\r\n !state.pickedFlight ||\r\n moment(state.pickedFlight.departureTime) < moment(action.payload)\r\n ? undefined\r\n : state.pickedFlight,\r\n };\r\n case CVFlightsActionTypes.ENSURE_RETURN_FLIGHT:\r\n return {\r\n ...state,\r\n pickedReturnFlight:\r\n !state.pickedReturnFlight ||\r\n moment(state.pickedReturnFlight.departureTime) <\r\n moment(action.payload)\r\n ? undefined\r\n : state.pickedReturnFlight,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import moment from 'moment';\r\nimport React, {useContext, useReducer} from 'react';\r\n\r\nimport useClientAppContext from '../../hooks/useClientApp';\r\nimport ICVFlight from '../../models/ICVFlight';\r\nimport {ICVFlightsSearch} from '../../models/Reservation/ICVFlightSearch';\r\nimport IFlightSeats from '../../models/Reservation/IFlightSeats';\r\nimport FlightService from '../../services/FlightService';\r\nimport SeatsService from '../../services/SeatsService';\r\nimport {CVFlightsActionTypes, CVFlightsReducer, ICVFlightsState,} from './CVFlightsReducer';\r\nimport {IOverlappingFlightForReservation} from '../../models/IOverlappingFlightForReservation';\r\n\r\nexport interface ICVFlightsContext {\r\n overlapping?: IOverlappingFlightForReservation;\r\n setOverlapping: (overlapping?: IOverlappingFlightForReservation) => void;\r\n search?: ICVFlightsSearch;\r\n flights: ICVFlight[];\r\n filteredFlights: ICVFlight[];\r\n returnFlights: ICVFlight[];\r\n filteredReturnFlights: ICVFlight[];\r\n fetchingFlights: boolean;\r\n fetchingReturnFlights: boolean;\r\n pickedFlight?: ICVFlight;\r\n pickedReturnFlight?: ICVFlight;\r\n seats: IFlightSeats[];\r\n searchFlights: (search: ICVFlightsSearch) => void;\r\n reset: () => void;\r\n filterFlights: (filter: ICVFlightFilter) => void;\r\n filterReturnFlights: (filter: ICVFlightFilter) => void;\r\n pickFlight: (flight: ICVFlight | undefined) => void;\r\n pickReturnFlight: (flight: ICVFlight | undefined) => void;\r\n ensureFlight: (minDate?: Date) => void;\r\n ensureReturnFlight: (minDate?: Date) => void;\r\n}\r\n\r\nexport interface ICVFlightFilter {\r\n date?: Date;\r\n}\r\n\r\nconst initialState: ICVFlightsState = {\r\n overlapping: undefined,\r\n search: undefined,\r\n flights: [],\r\n filteredFlights: [],\r\n returnFlights: [],\r\n filteredReturnFlights: [],\r\n pickedFlight: undefined,\r\n pickedReturnFlight: undefined,\r\n filter: undefined,\r\n fetchingFlights: false,\r\n fetchingReturnFlights: false,\r\n seats: [],\r\n};\r\n\r\nconst CVFlightsContext = React.createContext({} as ICVFlightsContext);\r\n\r\nconst CVFlightsProvider: React.FC = ({ children }) => {\r\n const { airportsTimeZones } = useClientAppContext();\r\n const [state, dispatch] = useReducer(CVFlightsReducer, initialState);\r\n\r\n const searchFlights = async (search: ICVFlightsSearch) => {\r\n dispatch({\r\n type: CVFlightsActionTypes.FETCH_FLIGHTS_STARTED,\r\n payload: search,\r\n });\r\n FlightService.getFlightsWithBlockedReason({\r\n from: search.from,\r\n to: search.to,\r\n date: search.fromDate,\r\n tripTypeId: search.tripTypeId,\r\n relationTypes: search.relations,\r\n })\r\n .then((flights) =>\r\n dispatch({\r\n type: CVFlightsActionTypes.FETCH_FLIGHTS_DONE,\r\n payload: { flights, search },\r\n })\r\n )\r\n .catch((error) =>\r\n dispatch({\r\n type: CVFlightsActionTypes.FETCH_FLIGHTS_FAILED,\r\n payload: error,\r\n })\r\n );\r\n\r\n if (search.toDate) {\r\n dispatch({ type: CVFlightsActionTypes.FETCH_RETURN_FLIGHTS_STARTED });\r\n FlightService.getFlightsWithBlockedReason({\r\n from: search.to,\r\n to: search.from,\r\n date: search.toDate,\r\n tripTypeId: search.tripTypeId,\r\n relationTypes: search.relations,\r\n })\r\n .then((flights) =>\r\n dispatch({\r\n type: CVFlightsActionTypes.FETCH_RETURN_FLIGHTS_DONE,\r\n payload: { flights, search },\r\n })\r\n )\r\n .catch((error) =>\r\n dispatch({\r\n type: CVFlightsActionTypes.FETCH_RETURN_FLIGHTS_FAILED,\r\n payload: error,\r\n })\r\n );\r\n }\r\n };\r\n\r\n const computeSeats = (\r\n flights: ICVFlight[],\r\n tripTypeId?: number,\r\n ownerId?: number,\r\n awbNumber?: string\r\n ) => {\r\n if (tripTypeId && ownerId) {\r\n dispatch({ type: CVFlightsActionTypes.FETCH_SEATS_STARTED });\r\n const fullFlights = flights.map((f) =>\r\n awbNumber ? { ...f, awbNumber: awbNumber } : f\r\n );\r\n SeatsService.compute(fullFlights, ownerId, tripTypeId)\r\n .then((seats) =>\r\n dispatch({\r\n type: CVFlightsActionTypes.FETCH_SEATS_DONE,\r\n payload: seats,\r\n })\r\n )\r\n .catch((error) =>\r\n dispatch({\r\n type: CVFlightsActionTypes.FETCH_SEATS_FAILED,\r\n payload: error,\r\n })\r\n );\r\n }\r\n };\r\n\r\n const reset = () => {\r\n dispatch({ type: CVFlightsActionTypes.RESET });\r\n };\r\n\r\n const filterFlights = (filter: ICVFlightFilter) => {\r\n const timezone = airportsTimeZones.find(\r\n (l) => l.code === state.search?.from\r\n );\r\n const filteredFlights = filterByDeparture(\r\n state.flights,\r\n filter.date,\r\n timezone?.timeZone\r\n );\r\n dispatch({\r\n type: CVFlightsActionTypes.FILTER_FLIGHTS,\r\n payload: filteredFlights,\r\n });\r\n computeSeats(\r\n filteredFlights,\r\n state.search?.tripTypeId,\r\n state.search?.ownerId,\r\n state.search?.awbIn\r\n );\r\n };\r\n\r\n const filterReturnFlights = (filter: ICVFlightFilter) => {\r\n const timezone = airportsTimeZones.find((l) => l.code === state.search?.to);\r\n const filteredFlights = filterByDeparture(\r\n state.returnFlights,\r\n filter.date,\r\n timezone?.timeZone\r\n );\r\n dispatch({\r\n type: CVFlightsActionTypes.FILTER_RETURN_FLIGHTS,\r\n payload: filteredFlights,\r\n });\r\n computeSeats(\r\n filteredFlights,\r\n state.search?.tripTypeId,\r\n state.search?.ownerId,\r\n state.search?.awbIn\r\n );\r\n };\r\n\r\n const pickFlight = (flight: ICVFlight | undefined) => {\r\n dispatch({ type: CVFlightsActionTypes.PICK_FLIGHT, payload: flight });\r\n };\r\n\r\n const pickReturnFlight = (flight: ICVFlight | undefined) => {\r\n dispatch({\r\n type: CVFlightsActionTypes.PICK_RETURN_FLIGHT,\r\n payload: flight,\r\n });\r\n };\r\n\r\n const ensureFlight = (minDate?: Date) => {\r\n dispatch({ type: CVFlightsActionTypes.ENSURE_FLIGHT, payload: minDate });\r\n };\r\n\r\n const ensureReturnFlight = (minDate?: Date) => {\r\n dispatch({\r\n type: CVFlightsActionTypes.ENSURE_RETURN_FLIGHT,\r\n payload: minDate,\r\n });\r\n };\r\n\r\n const setOverlapping = (overlapping?: IOverlappingFlightForReservation) => {\r\n dispatch({\r\n type: CVFlightsActionTypes.SET_OVERLAPPING_FLIGHT,\r\n payload: overlapping,\r\n });\r\n };\r\n\r\n const getLocalDepartureDate = (f: ICVFlight, timezone?: string) =>\r\n timezone\r\n ? moment(f.departureTime).clone().tz(timezone).format('YYYY-MM-DD')\r\n : moment(f.departureTime).format('YYYY-MM-DD');\r\n\r\n const filterByDeparture = (\r\n flights: ICVFlight[],\r\n date?: Date,\r\n timezone?: string\r\n ) => {\r\n return date\r\n ? flights.filter(\r\n (f) =>\r\n getLocalDepartureDate(f, timezone) ===\r\n moment(date).format('YYYY-MM-DD')\r\n )\r\n : flights;\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useCVFlightsContext = () => useContext(CVFlightsContext);\r\n\r\nexport default CVFlightsProvider;\r\n","import IHelpPage from '../models/IHelpPage';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/HelpPages';\r\n\r\nconst HelpPageService = {\r\n getAll: (): Promise => requests.get(`${API_ENDPOINT}`),\r\n create: (helpPage: IHelpPage): Promise =>\r\n requests.post(`${API_ENDPOINT}`, helpPage),\r\n update: (helpPage: IHelpPage): Promise =>\r\n requests.put(`${API_ENDPOINT}`, helpPage),\r\n delete: (helpPageId: number): Promise =>\r\n requests.delete(`${API_ENDPOINT}/${helpPageId}`),\r\n getAllRoles: (): Promise => requests.get(`${API_ENDPOINT}/roles`),\r\n saveNewImage: (formData: FormData): Promise => {\r\n return requests.post(`${API_ENDPOINT}/image`, formData, {\r\n headers: {\r\n 'content-type': 'multipart/form-data',\r\n },\r\n });\r\n },\r\n};\r\n\r\nexport default HelpPageService;\r\n","import IHelpPage from '../../models/IHelpPage';\r\n\r\nexport enum HelpPageActionType {\r\n FETCH_HELP_PAGES,\r\n FETCH_ROLES,\r\n SELECT_HELP_PAGE,\r\n}\r\n\r\nexport interface HelpPageState {\r\n helpPages: IHelpPage[] | null;\r\n roles: string[] | null;\r\n selectedHelpPage: IHelpPage | null;\r\n}\r\n\r\nexport type HelpPageAction =\r\n | { type: HelpPageActionType.FETCH_HELP_PAGES; payload: IHelpPage[] }\r\n | { type: HelpPageActionType.FETCH_ROLES; payload: string[] }\r\n | { type: HelpPageActionType.SELECT_HELP_PAGE; payload: IHelpPage | null };\r\n\r\nexport const HelpPageReducer = (\r\n state: HelpPageState,\r\n action: HelpPageAction\r\n) => {\r\n switch (action.type) {\r\n case HelpPageActionType.FETCH_HELP_PAGES:\r\n return { ...state, helpPages: action.payload };\r\n case HelpPageActionType.FETCH_ROLES:\r\n return { ...state, roles: action.payload };\r\n case HelpPageActionType.SELECT_HELP_PAGE:\r\n return { ...state, selectedHelpPage: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default HelpPageReducer;\r\n","import React, {createContext, useContext, useEffect, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IHelpPage from '../../models/IHelpPage';\r\nimport HelpPageService from '../../services/HelpPageService';\r\nimport Constants from '../../utils/Constants';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport HelpPageReducer, {HelpPageAction, HelpPageActionType, HelpPageState,} from './HelpPageReducer';\r\n\r\nexport const InitialState: HelpPageState = {\r\n helpPages: null,\r\n roles: null,\r\n selectedHelpPage: null,\r\n};\r\n\r\nexport interface IHelpPageContext {\r\n state: HelpPageState;\r\n dispatch: React.Dispatch;\r\n submitHelpPage: (helpPage: IHelpPage) => void;\r\n deleteSelectedHelpPage: () => void;\r\n}\r\n\r\nconst HelpPageContext = createContext({} as IHelpPageContext);\r\n\r\nconst HelpPageProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(HelpPageReducer, InitialState);\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n fetchHelpPages().catch(console.error);\r\n fetchRoles().catch(console.error);\r\n }, []);\r\n\r\n const fetchHelpPages = async () => {\r\n HelpPageService.getAll()\r\n .then((helpPages) =>\r\n dispatch({\r\n type: HelpPageActionType.FETCH_HELP_PAGES,\r\n payload: helpPages,\r\n })\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const fetchRoles = async () => {\r\n HelpPageService.getAllRoles()\r\n .then((roles) =>\r\n dispatch({ type: HelpPageActionType.FETCH_ROLES, payload: roles })\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const submitHelpPage = (helPage: IHelpPage) => {\r\n let helpPagePromise: Promise;\r\n if (state.selectedHelpPage) {\r\n helpPagePromise = HelpPageService.update({\r\n ...state.selectedHelpPage,\r\n ...helPage,\r\n });\r\n } else {\r\n helpPagePromise = HelpPageService.create(helPage);\r\n }\r\n\r\n helpPagePromise\r\n .then((result) => {\r\n if (result) {\r\n fetchHelpPages().catch(console.error);\r\n }\r\n })\r\n .then(() =>\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success)\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const deleteSelectedHelpPage = () => {\r\n if (state.selectedHelpPage) {\r\n HelpPageService.delete(state.selectedHelpPage.helpPageId)\r\n .then((isDeleted) => {\r\n if (isDeleted) {\r\n fetchHelpPages().catch(console.error);\r\n } else {\r\n addMessage('Cannot delete the selected help page.');\r\n }\r\n })\r\n .then(() =>\r\n addMessage(\r\n Constants.messages.success.dataDeleted,\r\n MessageType.Success\r\n )\r\n )\r\n .catch((error) => addMessage(error.message));\r\n }\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default HelpPageProvider;\r\n\r\nexport const useHelpPageContext = () => useContext(HelpPageContext);\r\n","import IConnectAsItem from '../models/IConnectAsItem';\r\nimport IContactInfo from '../models/IContactInfo';\r\nimport IDefaultNextOfKin from '../models/IDefaultNextOfKin';\r\nimport IEmployeeLink from '../models/IEmployeeLink';\r\nimport IEmployeeSearch from '../models/IEmployeeSearch';\r\nimport IGuest from '../models/IGuest';\r\nimport IGuestAdministration from '../models/IGuestAdministration';\r\nimport IGuestCreationPayload from '../models/IGuestCreationPayload';\r\nimport IGuestMapping from '../models/IGuestMapping';\r\nimport IGuestSearch from '../models/IGuestSearch';\r\nimport IMember from '../models/IMember';\r\nimport IMemberAccess from '../models/IMemberAccess';\r\nimport IMemberInfo from '../models/IMemberInfo';\r\nimport IMemberInformation from '../models/IMemberInformation';\r\nimport IMemberItem from '../models/IMemberItem';\r\nimport INextOfKin from '../models/INextOfKin';\r\nimport IOrganisationInformation from '../models/IOrganisationInformation';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/Members';\r\nconst GUEST = '/guest';\r\n\r\nconst MemberService = {\r\n get: (): Promise => requests.get(`${API_ENDPOINT}`),\r\n getById: (id: number): Promise =>\r\n requests.get(`${API_ENDPOINT}/${id}`),\r\n getInformationById: (\r\n id: number,\r\n active?: boolean\r\n ): Promise =>\r\n active\r\n ? requests.get(`${API_ENDPOINT}/information/${id}?active=${active}`)\r\n : requests.get(`${API_ENDPOINT}/information/${id}`),\r\n createNextOfKin: (nextOfKin: INextOfKin): Promise =>\r\n requests.post(`${API_ENDPOINT}/nextOfKin`, nextOfKin),\r\n updateNextOfKin: (nextOfKin: INextOfKin): Promise =>\r\n requests.put(`${API_ENDPOINT}/nextOfKin`, nextOfKin),\r\n updateDefaultNextOfKin: (data: IDefaultNextOfKin): Promise =>\r\n requests.put(`${API_ENDPOINT}/nextOfKin/default`, data),\r\n deleteNextOfKin: (memberId: number, nextOfKinId: number): Promise =>\r\n requests.delete(`${API_ENDPOINT}/nextOfKin/${nextOfKinId}/${memberId}`),\r\n updateOrganisationInformation: (\r\n organisation: IOrganisationInformation\r\n ): Promise =>\r\n requests.put(`${API_ENDPOINT}/organization/`, organisation),\r\n getPaymentTypes: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/paymentTypes`),\r\n getMemberListBySearch: (search: string): Promise =>\r\n requests.get(`${API_ENDPOINT}/search/${encodeURIComponent(search)}`),\r\n updateMemberAccess: (memberAccess: IMemberAccess): Promise =>\r\n requests.put(`${API_ENDPOINT}/access`, memberAccess),\r\n getAuthorizedImpersonationList: (\r\n searchText: string\r\n ): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/impersonation/${encodeURIComponent(searchText)}`\r\n ),\r\n getImpersonationForMember: (memberId: number): Promise =>\r\n requests.get(`${API_ENDPOINT}/impersonation/member/${memberId}`),\r\n searchGuests: (search: IGuestSearch): Promise =>\r\n requests.post(`${API_ENDPOINT}${GUEST}/search`, search),\r\n getGuest: (id: number, active?: boolean): Promise =>\r\n active\r\n ? requests.get(`${API_ENDPOINT}${GUEST}/${id}?active=${active}`)\r\n : requests.get(`${API_ENDPOINT}${GUEST}/${id}`),\r\n createGuest: (guest: IGuestCreationPayload): Promise =>\r\n requests.post(`${API_ENDPOINT}${GUEST}/add`, guest),\r\n linkGuest: (userId: number, guestId: number): Promise =>\r\n requests.post(`${API_ENDPOINT}${GUEST}/${guestId}/link/${userId}`, {}),\r\n unlinkGuest: (userId: number, guestId: number): Promise =>\r\n requests.delete(`${API_ENDPOINT}${GUEST}/${guestId}/unlink/${userId}`),\r\n unlinkAllEmployeesOfGuest: (guestMapping: IGuestMapping): Promise =>\r\n requests.put(`${API_ENDPOINT}${GUEST}/link/all`, guestMapping),\r\n updateGuestLink: (guestMapping: IGuestMapping): Promise =>\r\n requests.put(`${API_ENDPOINT}${GUEST}/link`, guestMapping),\r\n updateGuestsContactInfos: (infos: IContactInfo): Promise =>\r\n requests.put(`${API_ENDPOINT}${GUEST}/contactInfos`, infos),\r\n updateGuestsMemberInfos: (infos: IMemberInfo): Promise =>\r\n requests.put(`${API_ENDPOINT}${GUEST}/memberInfos`, infos),\r\n searchAllGuests: (searchText: string): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}${GUEST}/search/${encodeURIComponent(searchText)}`\r\n ),\r\n deleteGuest: (guestId: number): Promise =>\r\n requests.delete(`${API_ENDPOINT}${GUEST}/${guestId}`),\r\n searchEmployees: (search: IEmployeeSearch): Promise =>\r\n requests.post(`${API_ENDPOINT}/employee/search`, search),\r\n searchEmployeesAndGuests: (search: string): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/employeesAndGuests/${encodeURIComponent(search)}`\r\n ),\r\n updateContactInfos: (infos: IContactInfo): Promise =>\r\n requests.put(`${API_ENDPOINT}/contactInfos`, infos),\r\n updateMember: (member: IMember): Promise =>\r\n requests.put(`${API_ENDPOINT}/member/update`, member),\r\n searchByRole: (searchRole: string): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/searchByRole/${encodeURIComponent(searchRole)}`\r\n ),\r\n};\r\n\r\nexport default MemberService;\r\n","import IMemberInformation from '../../models/IMemberInformation';\r\nimport IMemberItem from '../../models/IMemberItem';\r\nimport IRole from '../../models/IRole';\r\n\r\nexport type ALL = 'ALL';\r\n\r\nexport enum MemberManagementActionType {\r\n SELECTED_MEMBER,\r\n SET_MEMBERID,\r\n SET_MEMBERS,\r\n SET_SEARCH_VALUE,\r\n SET_LAST_SEARCH_VALUE,\r\n SET_ISBLOCKED,\r\n SET_ISACTIVE,\r\n SET_ROLENAME,\r\n SET_ROLES,\r\n SET_SEARCH_IS_DONE,\r\n}\r\n\r\nexport interface MemberManagementState {\r\n selectedMember: IMemberInformation | null;\r\n memberId?: number;\r\n members: IMemberItem[];\r\n searchValue: string;\r\n lastSearchValue: string;\r\n isBlocked: boolean | ALL;\r\n isActive: boolean | ALL;\r\n roleName: string | ALL;\r\n roles: IRole[];\r\n searchIsDone: boolean;\r\n}\r\n\r\nexport type MemberManagementAction =\r\n | {\r\n type: MemberManagementActionType.SELECTED_MEMBER;\r\n payload: IMemberInformation | null;\r\n }\r\n | { type: MemberManagementActionType.SET_MEMBERID; payload: number }\r\n | { type: MemberManagementActionType.SET_MEMBERS; payload: IMemberItem[] }\r\n | { type: MemberManagementActionType.SET_SEARCH_VALUE; payload: string }\r\n | { type: MemberManagementActionType.SET_LAST_SEARCH_VALUE; payload: string }\r\n | { type: MemberManagementActionType.SET_ISBLOCKED; payload: boolean | ALL }\r\n | { type: MemberManagementActionType.SET_ISACTIVE; payload: boolean | ALL }\r\n | { type: MemberManagementActionType.SET_ROLENAME; payload: string | ALL }\r\n | { type: MemberManagementActionType.SET_ROLES; payload: IRole[] }\r\n | { type: MemberManagementActionType.SET_SEARCH_IS_DONE; payload: boolean };\r\n\r\nexport const MemberManagementReducer = (\r\n state: MemberManagementState,\r\n action: MemberManagementAction\r\n) => {\r\n switch (action.type) {\r\n case MemberManagementActionType.SELECTED_MEMBER:\r\n return { ...state, selectedMember: action.payload };\r\n case MemberManagementActionType.SET_MEMBERID:\r\n return { ...state, memberId: action.payload };\r\n case MemberManagementActionType.SET_MEMBERS:\r\n return { ...state, members: action.payload };\r\n case MemberManagementActionType.SET_SEARCH_VALUE:\r\n return { ...state, searchValue: action.payload };\r\n case MemberManagementActionType.SET_LAST_SEARCH_VALUE:\r\n return { ...state, lastSearchValue: action.payload };\r\n case MemberManagementActionType.SET_ISBLOCKED:\r\n return { ...state, isBlocked: action.payload };\r\n case MemberManagementActionType.SET_ISACTIVE:\r\n return { ...state, isActive: action.payload };\r\n case MemberManagementActionType.SET_ROLENAME:\r\n return { ...state, roleName: action.payload };\r\n case MemberManagementActionType.SET_ROLES:\r\n return { ...state, roles: action.payload };\r\n case MemberManagementActionType.SET_SEARCH_IS_DONE:\r\n return { ...state, searchIsDone: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default MemberManagementReducer;\r\n","import React, {createContext, useContext, useEffect, useReducer, useState,} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IMemberItem from '../../models/IMemberItem';\r\nimport IOrganisationInformation from '../../models/IOrganisationInformation';\r\nimport MemberService from '../../services/MemberService';\r\nimport UserService from '../../services/UserService';\r\nimport Constants from '../../utils/Constants';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport MemberManagementReducer, {\r\n MemberManagementAction,\r\n MemberManagementActionType,\r\n MemberManagementState,\r\n} from './MemberManagementReducer';\r\n\r\nexport const InitialState: MemberManagementState = {\r\n selectedMember: null,\r\n members: [],\r\n memberId: undefined,\r\n searchValue: '',\r\n lastSearchValue: '',\r\n isBlocked: 'ALL',\r\n isActive: 'ALL',\r\n roleName: 'ALL',\r\n roles: [],\r\n searchIsDone: false,\r\n};\r\n\r\nexport interface IMemberManagementContext {\r\n state: MemberManagementState;\r\n dispatch: React.Dispatch;\r\n refreshSelectedMember: () => void;\r\n searchMembers: (search: string) => void;\r\n saveOrganisation: (organisation: IOrganisationInformation) => void;\r\n}\r\n\r\nconst MemberManagementContext = createContext({} as IMemberManagementContext);\r\n\r\nconst MemberManagementProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(MemberManagementReducer, InitialState);\r\n const [originalMembers, setOriginalMembers] = useState([]);\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n fetchRoles();\r\n }, []);\r\n\r\n useEffect(() => {\r\n refreshSelectedMember();\r\n }, [state.memberId]);\r\n\r\n useEffect(() => {\r\n const filteredMembers = getFilteredMembers(originalMembers);\r\n dispatch({\r\n type: MemberManagementActionType.SET_MEMBERS,\r\n payload: filteredMembers,\r\n });\r\n }, [state.isBlocked, state.isActive, state.roleName]);\r\n\r\n const refreshSelectedMember = async () => {\r\n if (state.memberId) {\r\n MemberService.getInformationById(state.memberId)\r\n .then((memberInfo) =>\r\n dispatch({\r\n type: MemberManagementActionType.SELECTED_MEMBER,\r\n payload: memberInfo,\r\n })\r\n )\r\n .catch((error) => addMessage(error.message));\r\n }\r\n };\r\n\r\n const fetchRoles = async () => {\r\n UserService.getAllRoles()\r\n .then((roles) =>\r\n dispatch({ type: MemberManagementActionType.SET_ROLES, payload: roles })\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const searchMembers = async (search: string) => {\r\n MemberService.getMemberListBySearch(search)\r\n .then((members) => {\r\n setOriginalMembers(members);\r\n const filteredMembers = getFilteredMembers(members);\r\n dispatch({\r\n type: MemberManagementActionType.SET_MEMBERS,\r\n payload: filteredMembers,\r\n });\r\n dispatch({\r\n type: MemberManagementActionType.SET_SEARCH_IS_DONE,\r\n payload: true,\r\n });\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const saveOrganisation = (organisation: IOrganisationInformation) => {\r\n MemberService.updateOrganisationInformation(organisation)\r\n .then((result) => {\r\n if (result) {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n refreshSelectedMember();\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const getFilteredMembers = (members: IMemberItem[]) => {\r\n if (\r\n state.isBlocked === 'ALL' &&\r\n state.isActive === 'ALL' &&\r\n state.roleName === 'ALL'\r\n ) {\r\n return members;\r\n }\r\n let filteredMembers = [...members];\r\n if (state.isBlocked !== 'ALL') {\r\n filteredMembers = filteredMembers.filter(\r\n (m) => m.isBlocked === state.isBlocked\r\n );\r\n }\r\n if (state.isActive !== 'ALL') {\r\n filteredMembers = filteredMembers.filter(\r\n (m) => m.isActive === state.isActive\r\n );\r\n }\r\n if (state.roleName !== 'ALL') {\r\n filteredMembers = filteredMembers.filter(\r\n (m) => m.roleName === state.roleName\r\n );\r\n }\r\n return filteredMembers;\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default MemberManagementProvider;\r\n\r\nexport const useMemberManagementContext = () =>\r\n useContext(MemberManagementContext);\r\n","import IMemberInformation from '../../models/IMemberInformation';\r\n\r\nexport enum MyInformationActionType {\r\n FETCH_INFORMATIONS,\r\n FETCH_PAYMENT_TYPES,\r\n}\r\n\r\nexport interface MyInformationState {\r\n information: IMemberInformation;\r\n paymentTypes: string[];\r\n}\r\n\r\nexport type MyInformationAction =\r\n | {\r\n type: MyInformationActionType.FETCH_INFORMATIONS;\r\n payload: IMemberInformation;\r\n }\r\n | { type: MyInformationActionType.FETCH_PAYMENT_TYPES; payload: string[] };\r\n\r\nexport const MyInformationReducer = (\r\n state: MyInformationState,\r\n action: MyInformationAction\r\n) => {\r\n switch (action.type) {\r\n case MyInformationActionType.FETCH_INFORMATIONS:\r\n return { ...state, information: action.payload };\r\n case MyInformationActionType.FETCH_PAYMENT_TYPES:\r\n return { ...state, paymentTypes: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default MyInformationReducer;\r\n","import React, {createContext, useContext, useEffect, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IMemberInformation from '../../models/IMemberInformation';\r\nimport IOrganisationInformation from '../../models/IOrganisationInformation';\r\nimport MemberService from '../../services/MemberService';\r\nimport Constants from '../../utils/Constants';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport {useLocalStorageContext} from '../LocalStorageContext/LocalStorageContext';\r\nimport MyInformationReducer, {\r\n MyInformationAction,\r\n MyInformationActionType,\r\n MyInformationState,\r\n} from './MyInformationReducer';\r\n\r\nexport const InitialState: MyInformationState = {\r\n information: {} as IMemberInformation,\r\n paymentTypes: [],\r\n};\r\n\r\nexport interface IMyInformationContext {\r\n state: MyInformationState;\r\n dispatch: React.Dispatch;\r\n fetchInformation: () => void;\r\n saveOrganisation: (organisation: IOrganisationInformation) => void;\r\n}\r\n\r\nconst MyInformationContext = createContext({} as IMyInformationContext);\r\n\r\ninterface IMyInformationContextProps {\r\n connectedAs?: boolean;\r\n}\r\n\r\nconst MyInformationProvider: React.FC = ({\r\n connectedAs,\r\n children,\r\n}) => {\r\n const {\r\n state: { connectedMember },\r\n } = useLocalStorageContext();\r\n const [state, dispatch] = useReducer(MyInformationReducer, InitialState);\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n fetchInformation();\r\n fetchPaymentTypes();\r\n }, []);\r\n\r\n const fetchInformation = async () => {\r\n if (connectedAs && connectedMember) {\r\n if (connectedMember.userName && connectedMember.memberId) {\r\n MemberService.getInformationById(connectedMember.memberId)\r\n .then((information) =>\r\n dispatch({\r\n type: MyInformationActionType.FETCH_INFORMATIONS,\r\n payload: { ...information },\r\n })\r\n )\r\n .catch((error) => addMessage(error.message));\r\n }\r\n } else {\r\n MemberService.get()\r\n .then((information) =>\r\n dispatch({\r\n type: MyInformationActionType.FETCH_INFORMATIONS,\r\n payload: { ...information },\r\n })\r\n )\r\n .catch((error) => addMessage(error.message));\r\n }\r\n };\r\n const fetchPaymentTypes = async () => {\r\n MemberService.getPaymentTypes()\r\n .then((types) =>\r\n dispatch({\r\n type: MyInformationActionType.FETCH_PAYMENT_TYPES,\r\n payload: types,\r\n })\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const saveOrganisation = (organisation: IOrganisationInformation) => {\r\n MemberService.updateOrganisationInformation(organisation)\r\n .then((result) => {\r\n if (result) {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n fetchInformation();\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default MyInformationProvider;\r\n\r\nexport const useMyInformationContext = () => useContext(MyInformationContext);\r\n","export interface IPaginated {\r\n data: T[];\r\n hasPrevious: boolean;\r\n hasMore: boolean;\r\n pageSize: number;\r\n}\r\n\r\nexport const Paginate = (\r\n items: Array,\r\n page: number,\r\n pageSize: number\r\n) => {\r\n const nextPage = items.slice((page - 1) * pageSize, page * pageSize);\r\n const total = Math.floor(items.length / pageSize) + 1;\r\n return {\r\n data: nextPage,\r\n hasPrevious: page > 1,\r\n hasMore: page < total,\r\n pageSize,\r\n } as IPaginated;\r\n};\r\n","import IReservationSummary from '../../models/Reservation/IReservationSummary';\r\nimport {IPaginated} from '../../models/Utils/IPaginated';\r\n\r\nexport enum MyReservationsActionTypes {\r\n FETCH_BOOKINGS_STARTED = 'fetch-bookings-started',\r\n FETCH_BOOKINGS_FAILED = 'fetch-bookings-failed',\r\n FETCH_BOOKINGS_DONE = 'fetch-bookings-done',\r\n FETCH_HISTORY_STARTED = 'fetch-history-started',\r\n FETCH_HISTORY_FAILED = 'fetch-history-failed',\r\n FETCH_HISTORY_DONE = 'fetch-history-done',\r\n SWITCH_TAB = 'switch-tab',\r\n FETCH_TRIP_TYPES_DONE = 'fetch-trip-types-done',\r\n FETCH_NEXT_BOOKINGS = 'fetch-next-bookings',\r\n FETCH_NEXT_HISTORY = 'fetch-next-history',\r\n REMOVE_RESERVATION_STARTED = 'remove-resa-started',\r\n REMOVE_RESERVATION_DONE = 'remove-resa-done',\r\n REMOVE_RESERVATION_FAILED = 'remove-resa-failed',\r\n}\r\n\r\nexport enum MyReservationsTabEnum {\r\n CURRENT = 1,\r\n HISTORY = 2,\r\n}\r\n\r\nexport interface IMyReservationsState {\r\n currentTab: MyReservationsTabEnum;\r\n bookings: IReservationSummary[];\r\n bookingsData: IReservationSummary[];\r\n bookingPage: number;\r\n hasMoreBooking: boolean;\r\n history: IReservationSummary[];\r\n historyData: IReservationSummary[];\r\n historyPage: number;\r\n hasMoreHistory: boolean;\r\n isFetching: boolean;\r\n errorMessage?: string;\r\n armNotificationId?: null;\r\n}\r\n\r\nexport type MyReservationsAction =\r\n | { type: MyReservationsActionTypes.FETCH_BOOKINGS_STARTED }\r\n | {\r\n type: MyReservationsActionTypes.FETCH_BOOKINGS_FAILED;\r\n payload: string;\r\n }\r\n | {\r\n type: MyReservationsActionTypes.FETCH_BOOKINGS_DONE;\r\n payload: IReservationSummary[];\r\n }\r\n | { type: MyReservationsActionTypes.FETCH_HISTORY_STARTED }\r\n | {\r\n type: MyReservationsActionTypes.FETCH_HISTORY_FAILED;\r\n payload: string;\r\n }\r\n | {\r\n type: MyReservationsActionTypes.FETCH_HISTORY_DONE;\r\n payload: IReservationSummary[];\r\n }\r\n | { type: MyReservationsActionTypes.SWITCH_TAB; payload: number }\r\n | {\r\n type: MyReservationsActionTypes.FETCH_NEXT_BOOKINGS;\r\n payload: IPaginated;\r\n }\r\n | {\r\n type: MyReservationsActionTypes.FETCH_NEXT_HISTORY;\r\n payload: IPaginated;\r\n }\r\n | { type: MyReservationsActionTypes.REMOVE_RESERVATION_DONE; payload: number }\r\n | { type: MyReservationsActionTypes.REMOVE_RESERVATION_STARTED }\r\n | { type: MyReservationsActionTypes.REMOVE_RESERVATION_FAILED };\r\n\r\nexport const MyReservationReducer = (\r\n state: IMyReservationsState,\r\n action: MyReservationsAction\r\n) => {\r\n switch (action.type) {\r\n case MyReservationsActionTypes.FETCH_BOOKINGS_STARTED:\r\n return { ...state, isFetching: true, errorMessage: undefined };\r\n case MyReservationsActionTypes.FETCH_BOOKINGS_FAILED:\r\n return { ...state, isFetching: false, errorMessage: action.payload };\r\n case MyReservationsActionTypes.FETCH_BOOKINGS_DONE:\r\n return { ...state, isFetching: false, bookingsData: action.payload };\r\n case MyReservationsActionTypes.FETCH_NEXT_BOOKINGS:\r\n return {\r\n ...state,\r\n bookings: [...state.bookings, ...action.payload.data],\r\n bookingPage: state.bookingPage + 1,\r\n hasMoreBooking: action.payload.hasMore,\r\n };\r\n case MyReservationsActionTypes.FETCH_HISTORY_STARTED:\r\n return { ...state, isFetching: true, errorMessage: undefined };\r\n case MyReservationsActionTypes.FETCH_HISTORY_FAILED:\r\n return { ...state, isFetching: false, errorMessage: action.payload };\r\n case MyReservationsActionTypes.FETCH_HISTORY_DONE:\r\n return { ...state, isFetching: false, historyData: action.payload };\r\n case MyReservationsActionTypes.FETCH_NEXT_HISTORY:\r\n return {\r\n ...state,\r\n history: [...state.history, ...action.payload.data],\r\n historyPage: state.historyPage + 1,\r\n hasMoreHistory: action.payload.hasMore,\r\n };\r\n case MyReservationsActionTypes.SWITCH_TAB:\r\n return { ...state, currentTab: action.payload };\r\n case MyReservationsActionTypes.REMOVE_RESERVATION_DONE:\r\n return {\r\n ...state,\r\n bookingsData: state.bookingsData.filter(\r\n (d) => d.reservationId !== action.payload\r\n ),\r\n bookingPage: 1,\r\n bookings: [],\r\n isFetching: false,\r\n };\r\n case MyReservationsActionTypes.REMOVE_RESERVATION_FAILED:\r\n return { ...state, isFetching: false };\r\n case MyReservationsActionTypes.REMOVE_RESERVATION_STARTED:\r\n return { ...state, isFetching: true };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default MyReservationReducer;\r\n","import React, {useContext, useEffect, useMemo, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IReservationSummary from '../../models/Reservation/IReservationSummary';\r\nimport {Paginate} from '../../models/Utils/IPaginated';\r\nimport ReservationService from '../../services/ReservationService';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport {useLocalStorageContext} from '../LocalStorageContext/LocalStorageContext';\r\nimport MyReservationsReducer, {\r\n IMyReservationsState,\r\n MyReservationsActionTypes,\r\n MyReservationsTabEnum,\r\n} from './MyReservationsReducer';\r\n\r\nexport interface IMyReservationsContext {\r\n connectedAs?: boolean;\r\n bookings: IReservationSummary[];\r\n hasMoreBooking: boolean;\r\n history: IReservationSummary[];\r\n hasMoreHistory: boolean;\r\n isFetching: boolean;\r\n errorMessage?: string;\r\n LoadNextBookings: () => void;\r\n LoadNextHistory: () => void;\r\n selectTab: (tab: MyReservationsTabEnum) => void;\r\n removeReservation: (reservationId: number) => void;\r\n}\r\n\r\nconst PAGE_SIZE: number = 10;\r\n\r\nconst initialState: IMyReservationsState = {\r\n currentTab: MyReservationsTabEnum.CURRENT,\r\n bookings: [],\r\n bookingsData: [],\r\n bookingPage: 1,\r\n hasMoreBooking: false,\r\n history: [],\r\n historyData: [],\r\n historyPage: 1,\r\n hasMoreHistory: false,\r\n errorMessage: undefined,\r\n isFetching: false,\r\n armNotificationId: null,\r\n};\r\n\r\nconst MyReservationsContext = React.createContext({} as IMyReservationsContext);\r\n\r\nconst MyReservationsProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(MyReservationsReducer, initialState);\r\n const { addMessage } = useSnackbar();\r\n const {\r\n state: { connectedMember },\r\n } = useLocalStorageContext();\r\n\r\n useEffect(() => {\r\n if (state.errorMessage) addMessage(state.errorMessage);\r\n }, [state.errorMessage]);\r\n\r\n useEffect(() => {\r\n (async function fetch() {\r\n await fetchData();\r\n })();\r\n }, [state.currentTab]);\r\n\r\n useEffect(() => LoadNextBookings(), [state.bookingsData]);\r\n useEffect(() => LoadNextHistory(), [state.historyData]);\r\n\r\n // DUDE WTF IS THIS CODE\r\n const fetchData = async () =>\r\n state.currentTab === MyReservationsTabEnum.CURRENT\r\n ? state.bookings?.length > 0\r\n ? Promise.resolve()\r\n : fetchBookings()\r\n : state.history?.length > 0\r\n ? Promise.resolve()\r\n : fetchHistory();\r\n\r\n const fetchBookings = async () => {\r\n dispatch({ type: MyReservationsActionTypes.FETCH_BOOKINGS_STARTED });\r\n (connectedMember === null\r\n ? ReservationService.getReservationSummaries()\r\n : ReservationService.getReservationSummariesForMember(\r\n connectedMember.memberId\r\n )\r\n )\r\n .then((bookings) =>\r\n dispatch({\r\n type: MyReservationsActionTypes.FETCH_BOOKINGS_DONE,\r\n payload: bookings,\r\n })\r\n )\r\n .catch((error) =>\r\n dispatch({\r\n type: MyReservationsActionTypes.FETCH_BOOKINGS_FAILED,\r\n payload: error,\r\n })\r\n );\r\n };\r\n\r\n const LoadNextBookings = () => {\r\n if (state.bookingsData?.length > 0) {\r\n dispatch({\r\n type: MyReservationsActionTypes.FETCH_NEXT_BOOKINGS,\r\n payload: Paginate(state.bookingsData, state.bookingPage, PAGE_SIZE),\r\n });\r\n }\r\n };\r\n\r\n const fetchHistory = async () => {\r\n dispatch({ type: MyReservationsActionTypes.FETCH_HISTORY_STARTED });\r\n (connectedMember === null\r\n ? ReservationService.getReservationHistory()\r\n : ReservationService.getReservationHistoryForMember(\r\n connectedMember.memberId\r\n )\r\n )\r\n .then((bookings) =>\r\n dispatch({\r\n type: MyReservationsActionTypes.FETCH_HISTORY_DONE,\r\n payload: bookings,\r\n })\r\n )\r\n .catch((error) =>\r\n dispatch({\r\n type: MyReservationsActionTypes.FETCH_HISTORY_FAILED,\r\n payload: error,\r\n })\r\n );\r\n };\r\n\r\n const LoadNextHistory = () => {\r\n if (state.historyData?.length > 0) {\r\n dispatch({\r\n type: MyReservationsActionTypes.FETCH_NEXT_HISTORY,\r\n payload: Paginate(state.historyData, state.historyPage, PAGE_SIZE),\r\n });\r\n }\r\n };\r\n\r\n const selectTab = (tab: MyReservationsTabEnum) => {\r\n dispatch({ type: MyReservationsActionTypes.SWITCH_TAB, payload: tab });\r\n };\r\n\r\n const removeReservation = (reservationId: number) => {\r\n dispatch({\r\n type: MyReservationsActionTypes.REMOVE_RESERVATION_STARTED,\r\n });\r\n ReservationService.delete(reservationId)\r\n .then((result) => {\r\n if (result) {\r\n dispatch({\r\n type: MyReservationsActionTypes.REMOVE_RESERVATION_DONE,\r\n payload: reservationId,\r\n });\r\n addMessage('Reservation removed with success', MessageType.Success);\r\n } else {\r\n addMessage(\"Couldn't delete the reservation\");\r\n dispatch({\r\n type: MyReservationsActionTypes.REMOVE_RESERVATION_FAILED,\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n dispatch({\r\n type: MyReservationsActionTypes.REMOVE_RESERVATION_FAILED,\r\n });\r\n });\r\n };\r\n\r\n const value = useMemo(\r\n () => ({\r\n ...state,\r\n LoadNextBookings,\r\n LoadNextHistory,\r\n selectTab,\r\n removeReservation,\r\n }),\r\n [state]\r\n );\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useMyReservationsContext = () => useContext(MyReservationsContext);\r\n\r\nexport default MyReservationsProvider;\r\n","import IPassengerList from '../models/DailyTasks/PassengerList/IPassengerList';\r\nimport IPassengerListLight from '../models/DailyTasks/PassengerList/IPassengerListLight';\r\nimport IPassengerUpdateComment from '../models/DailyTasks/PassengerList/IPassengerUpdateComment';\r\nimport IPassengerUpdateIsClosed from '../models/DailyTasks/PassengerList/IPassengerUpdateIsClosed';\r\nimport IPassengerUpdateIsConfirmed from '../models/DailyTasks/PassengerList/IPassengerUpdateIsConfirmed';\r\nimport IPassengerUpdateIsEmergency from '../models/DailyTasks/PassengerList/IPassengerUpdateIsEmergency';\r\nimport IPassengerUpdateIsOnboard from '../models/DailyTasks/PassengerList/IPassengerUpdateIsOnboard';\r\nimport IARM from '../models/IARM';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = '/api/Passengers';\r\n\r\nconst PassengerService = {\r\n getPassengerList: (\r\n flightDesc: string,\r\n flightDate: string,\r\n status: string\r\n ): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}?flightDesc=${flightDesc}&flightDate=${flightDate}&status=${status}`\r\n ),\r\n getPassengerListLight: (\r\n flightDesc: string,\r\n flightDate: string,\r\n status: string\r\n ): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/light?flightDesc=${flightDesc}&flightDate=${flightDate}&status=${status}`\r\n ),\r\n updateComment: (comment: IPassengerUpdateComment): Promise =>\r\n requests.post(`${API_ENDPOINT}/comment`, comment),\r\n updateIsConfirmed: (\r\n confirmed: IPassengerUpdateIsConfirmed\r\n ): Promise => requests.post(`${API_ENDPOINT}/confirmed`, confirmed),\r\n updateIsEmergency: (\r\n emergency: IPassengerUpdateIsEmergency\r\n ): Promise => requests.post(`${API_ENDPOINT}/emergency`, emergency),\r\n updateIsOnBoard: (onboard: IPassengerUpdateIsOnboard): Promise =>\r\n requests.post(`${API_ENDPOINT}/onboard`, onboard),\r\n updateIsClosed: (closed: IPassengerUpdateIsClosed): Promise =>\r\n requests.post(`${API_ENDPOINT}/closed`, closed),\r\n print: (\r\n flightDesc: string,\r\n flightDate: string,\r\n status: string,\r\n leg: string,\r\n fullVersion: boolean\r\n ): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/print?flightDesc=${flightDesc}&flightDate=${flightDate}&status=${status}&leg=${leg}&fullVersion=${fullVersion}`,\r\n {\r\n responseType: 'blob',\r\n }\r\n ),\r\n getFlightArmAlert: (\r\n flightDesc: string,\r\n flightDate: string\r\n ): Promise =>\r\n requests.get(`${API_ENDPOINT}/armAlert/${flightDesc}/${flightDate}`),\r\n};\r\nexport default PassengerService;\r\n","import {Moment} from 'moment';\r\n\r\nimport IFlightCrewsLeg from '../../models/DailyTasks/PassengerList/IFlightCrewsLeg';\r\nimport IFlightTravelersLeg from '../../models/DailyTasks/PassengerList/IFlightTravelersLeg';\r\nimport IPassengerList from '../../models/DailyTasks/PassengerList/IPassengerList';\r\nimport IPassengerListCrew from '../../models/DailyTasks/PassengerList/IPassengerListCrew';\r\nimport IPassengerListLight from '../../models/DailyTasks/PassengerList/IPassengerListLight';\r\nimport IPassengerListTraveler from '../../models/DailyTasks/PassengerList/IPassengerListTraveler';\r\n\r\nexport interface IPassengerFilter {\r\n flightDesc: string;\r\n flightDate: Moment | null;\r\n status: 'Confirmed' | 'Wait list';\r\n}\r\n\r\nexport enum PassengerListActionType {\r\n SET_PASSENGER_LIST,\r\n SET_PASSENGER_LIST_LIGHT,\r\n SET_FLIGHT_TRAVELERS,\r\n SET_FLIGHT_TRAVELERS_LEGS,\r\n SET_FILTERS,\r\n SET_LOADING,\r\n SET_HAS_RESULT,\r\n SET_DATA_FETCHED,\r\n SET_IS_EMERGENCY,\r\n SET_LEGS,\r\n SET_IS_EXIST_ARM_NOTIF,\r\n}\r\n\r\nexport interface PassengerListState {\r\n flightCrews: IPassengerListCrew[];\r\n flightTravelers: IPassengerListTraveler[];\r\n flightCrewsLegs: IFlightCrewsLeg[];\r\n flightTravelersLegs: IFlightTravelersLeg[];\r\n filters: IPassengerFilter;\r\n loading: boolean;\r\n hasResult: boolean;\r\n dataFetched: boolean;\r\n isEmergency: boolean;\r\n legs: string[];\r\n passengerListLight: IPassengerListLight[];\r\n tailNumber?: string;\r\n isExistArmAlert: boolean;\r\n}\r\n\r\nexport type PassengerListAction =\r\n | {\r\n type: PassengerListActionType.SET_PASSENGER_LIST;\r\n payload: IPassengerList;\r\n }\r\n | {\r\n type: PassengerListActionType.SET_PASSENGER_LIST_LIGHT;\r\n payload: IPassengerListLight[];\r\n }\r\n | {\r\n type: PassengerListActionType.SET_FLIGHT_TRAVELERS;\r\n payload: IPassengerListTraveler[];\r\n }\r\n | {\r\n type: PassengerListActionType.SET_FLIGHT_TRAVELERS_LEGS;\r\n payload: IFlightTravelersLeg[];\r\n }\r\n | {\r\n type: PassengerListActionType.SET_FILTERS;\r\n payload: IPassengerFilter;\r\n }\r\n | {\r\n type: PassengerListActionType.SET_LOADING;\r\n payload: boolean;\r\n }\r\n | {\r\n type: PassengerListActionType.SET_HAS_RESULT;\r\n payload: boolean;\r\n }\r\n | {\r\n type: PassengerListActionType.SET_DATA_FETCHED;\r\n payload: boolean;\r\n }\r\n | {\r\n type: PassengerListActionType.SET_IS_EMERGENCY;\r\n payload: boolean;\r\n }\r\n | {\r\n type: PassengerListActionType.SET_LEGS;\r\n payload: string[];\r\n }\r\n | {\r\n type: PassengerListActionType.SET_IS_EXIST_ARM_NOTIF;\r\n payload: boolean;\r\n };\r\n\r\nexport const PassengerListReducer = (\r\n state: PassengerListState,\r\n action: PassengerListAction\r\n) => {\r\n switch (action.type) {\r\n case PassengerListActionType.SET_PASSENGER_LIST:\r\n return {\r\n ...state,\r\n flightCrews: action.payload.flightCrews,\r\n flightTravelers: action.payload.flightTravelers,\r\n flightCrewsLegs: action.payload.flightCrewsLegs,\r\n flightTravelersLegs: action.payload.flightTravelersLegs,\r\n tailNumber: action.payload.tailNumber,\r\n };\r\n case PassengerListActionType.SET_PASSENGER_LIST_LIGHT:\r\n return {\r\n ...state,\r\n passengerListLight: action.payload,\r\n };\r\n case PassengerListActionType.SET_FLIGHT_TRAVELERS:\r\n return {\r\n ...state,\r\n flightTravelers: action.payload,\r\n };\r\n case PassengerListActionType.SET_FLIGHT_TRAVELERS_LEGS:\r\n return {\r\n ...state,\r\n flightTravelersLegs: action.payload,\r\n };\r\n case PassengerListActionType.SET_FILTERS:\r\n return {\r\n ...state,\r\n filters: action.payload,\r\n };\r\n case PassengerListActionType.SET_LOADING:\r\n return {\r\n ...state,\r\n loading: action.payload,\r\n };\r\n case PassengerListActionType.SET_HAS_RESULT:\r\n return {\r\n ...state,\r\n hasResult: action.payload,\r\n };\r\n case PassengerListActionType.SET_DATA_FETCHED:\r\n return {\r\n ...state,\r\n dataFetched: action.payload,\r\n };\r\n case PassengerListActionType.SET_IS_EMERGENCY:\r\n return {\r\n ...state,\r\n isEmergency: action.payload,\r\n };\r\n case PassengerListActionType.SET_LEGS:\r\n return {\r\n ...state,\r\n legs: action.payload,\r\n };\r\n case PassengerListActionType.SET_IS_EXIST_ARM_NOTIF:\r\n return {\r\n ...state,\r\n isExistArmAlert: action.payload,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default PassengerListReducer;\r\n","import _ from 'lodash';\r\nimport React, {createContext, useContext, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IPassengerUpdateComment from '../../models/DailyTasks/PassengerList/IPassengerUpdateComment';\r\nimport IPassengerUpdateIsClosed from '../../models/DailyTasks/PassengerList/IPassengerUpdateIsClosed';\r\nimport IPassengerUpdateIsConfirmed from '../../models/DailyTasks/PassengerList/IPassengerUpdateIsConfirmed';\r\nimport IPassengerUpdateIsOnboard from '../../models/DailyTasks/PassengerList/IPassengerUpdateIsOnboard';\r\nimport PassengerService from '../../services/PassengerService';\r\nimport Constants from '../../utils/Constants';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport PassengerListReducer, {\r\n IPassengerFilter,\r\n PassengerListAction,\r\n PassengerListActionType,\r\n PassengerListState,\r\n} from './PassengerListReducer';\r\n\r\nexport const InitialState: PassengerListState = {\r\n flightCrews: [],\r\n flightTravelers: [],\r\n flightCrewsLegs: [],\r\n flightTravelersLegs: [],\r\n filters: { flightDesc: '', flightDate: null, status: 'Confirmed' },\r\n loading: false,\r\n hasResult: false,\r\n dataFetched: false,\r\n isEmergency: false,\r\n legs: [],\r\n passengerListLight: [],\r\n isExistArmAlert: false,\r\n};\r\n\r\nexport interface IPassengerListContextProps {\r\n state: PassengerListState;\r\n dispatch: React.Dispatch;\r\n fetchPassengerList: (filters: IPassengerFilter) => void;\r\n fetchPassengerListLight: (filters: IPassengerFilter) => void;\r\n updateIsEmergency: (emergency: boolean) => void;\r\n updateIsConfirmed: (confirmed: IPassengerUpdateIsConfirmed) => void;\r\n updateComment: (comment: IPassengerUpdateComment) => void;\r\n updateIsOnBoard: (onboard: IPassengerUpdateIsOnboard) => void;\r\n updateIsClosed: (closed: IPassengerUpdateIsClosed) => void;\r\n}\r\n\r\nconst PassengerListContext = createContext({} as IPassengerListContextProps);\r\n\r\nconst PassengerListProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(PassengerListReducer, InitialState);\r\n const { addMessage } = useSnackbar();\r\n\r\n const fetchPassengerList = (filters: IPassengerFilter) => {\r\n dispatch({ type: PassengerListActionType.SET_LOADING, payload: true });\r\n dispatch({ type: PassengerListActionType.SET_FILTERS, payload: filters });\r\n PassengerService.getPassengerList(\r\n filters.flightDesc.toUpperCase(),\r\n filters.flightDate!.startOf('day').toISOString(),\r\n filters.status\r\n )\r\n .then((passengerList) => {\r\n dispatch({\r\n type: PassengerListActionType.SET_PASSENGER_LIST,\r\n payload: passengerList,\r\n });\r\n dispatch({\r\n type: PassengerListActionType.SET_DATA_FETCHED,\r\n payload: true,\r\n });\r\n dispatch({\r\n type: PassengerListActionType.SET_IS_EMERGENCY,\r\n payload:\r\n passengerList.flightTravelers.length > 0\r\n ? passengerList.flightTravelers[0].isEmergency\r\n : false,\r\n });\r\n dispatch({\r\n type: PassengerListActionType.SET_HAS_RESULT,\r\n payload: passengerList.legs.length > 0,\r\n });\r\n dispatch({\r\n type: PassengerListActionType.SET_LEGS,\r\n payload: passengerList.legs,\r\n });\r\n\r\n dispatch({ type: PassengerListActionType.SET_LOADING, payload: false });\r\n\r\n PassengerService.getFlightArmAlert(\r\n filters.flightDesc.toUpperCase(),\r\n filters.flightDate!.startOf('day').toISOString()\r\n )\r\n .then((armAlert) => {\r\n dispatch({\r\n type: PassengerListActionType.SET_IS_EXIST_ARM_NOTIF,\r\n payload:\r\n passengerList.flightTravelers.length > 0 &&\r\n armAlert?.length > 0,\r\n });\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n })\r\n .catch((error) => {\r\n dispatch({ type: PassengerListActionType.SET_LOADING, payload: false });\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const fetchPassengerListLight = (filters: IPassengerFilter) => {\r\n dispatch({ type: PassengerListActionType.SET_LOADING, payload: true });\r\n dispatch({ type: PassengerListActionType.SET_FILTERS, payload: filters });\r\n PassengerService.getPassengerListLight(\r\n filters.flightDesc.toUpperCase(),\r\n filters.flightDate!.startOf('day').toISOString(),\r\n filters.status\r\n )\r\n .then((passengerListLight) => {\r\n dispatch({\r\n type: PassengerListActionType.SET_PASSENGER_LIST_LIGHT,\r\n payload: passengerListLight,\r\n });\r\n dispatch({\r\n type: PassengerListActionType.SET_DATA_FETCHED,\r\n payload: true,\r\n });\r\n dispatch({\r\n type: PassengerListActionType.SET_HAS_RESULT,\r\n payload: passengerListLight.length > 0,\r\n });\r\n dispatch({ type: PassengerListActionType.SET_LOADING, payload: false });\r\n })\r\n .catch((error) => {\r\n dispatch({ type: PassengerListActionType.SET_LOADING, payload: false });\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const updateIsEmergency = (emergency: boolean) => {\r\n PassengerService.updateIsEmergency({\r\n flightDesc: state.filters.flightDesc,\r\n flightDate: state.filters.flightDate!.startOf('day').toISOString(),\r\n })\r\n .then((result) => {\r\n if (result) {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n dispatch({\r\n type: PassengerListActionType.SET_IS_EMERGENCY,\r\n payload: emergency,\r\n });\r\n } else {\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n })\r\n .catch(() => {\r\n addMessage(Constants.messages.error.savingData);\r\n });\r\n };\r\n\r\n const updateIsConfirmed = (confirmed: IPassengerUpdateIsConfirmed) => {\r\n PassengerService.updateIsConfirmed(confirmed)\r\n .then((result) => {\r\n if (result) {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n\r\n let flightTravelersCopy = _.cloneDeep(state.flightTravelers);\r\n flightTravelersCopy.forEach((ft) => {\r\n if (\r\n ft.memberId === confirmed.memberId &&\r\n ft.reservationId === confirmed.reservationId\r\n ) {\r\n ft.isConfirmed = confirmed.isConfirmed;\r\n }\r\n });\r\n dispatch({\r\n type: PassengerListActionType.SET_FLIGHT_TRAVELERS,\r\n payload: flightTravelersCopy,\r\n });\r\n\r\n let flightTravelersLegsCopy = _.cloneDeep(state.flightTravelersLegs);\r\n flightTravelersLegsCopy\r\n .flatMap((f) => f.travelers)\r\n .forEach((ftl) => {\r\n if (\r\n ftl.memberId === confirmed.memberId &&\r\n ftl.reservationId === confirmed.reservationId\r\n ) {\r\n ftl.isConfirmed = confirmed.isConfirmed;\r\n }\r\n });\r\n dispatch({\r\n type: PassengerListActionType.SET_FLIGHT_TRAVELERS_LEGS,\r\n payload: flightTravelersLegsCopy,\r\n });\r\n } else {\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n })\r\n .catch(() => {\r\n addMessage(Constants.messages.error.savingData);\r\n });\r\n };\r\n\r\n const updateComment = (comment: IPassengerUpdateComment) => {\r\n PassengerService.updateComment(comment)\r\n .then((result) => {\r\n if (result) {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n\r\n let flightTravelersCopy = _.cloneDeep(state.flightTravelers);\r\n flightTravelersCopy.forEach((ft) => {\r\n if (\r\n ft.memberId === comment.memberId &&\r\n ft.reservationId === comment.reservationId\r\n ) {\r\n ft.comment = comment.comment;\r\n }\r\n });\r\n dispatch({\r\n type: PassengerListActionType.SET_FLIGHT_TRAVELERS,\r\n payload: flightTravelersCopy,\r\n });\r\n\r\n let flightTravelersLegsCopy = _.cloneDeep(state.flightTravelersLegs);\r\n flightTravelersLegsCopy\r\n .flatMap((f) => f.travelers)\r\n .forEach((ftl) => {\r\n if (\r\n ftl.memberId === comment.memberId &&\r\n ftl.reservationId === comment.reservationId\r\n ) {\r\n ftl.comment = comment.comment;\r\n }\r\n });\r\n dispatch({\r\n type: PassengerListActionType.SET_FLIGHT_TRAVELERS_LEGS,\r\n payload: flightTravelersLegsCopy,\r\n });\r\n } else {\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n })\r\n .catch(() => {\r\n addMessage(Constants.messages.error.savingData);\r\n });\r\n };\r\n\r\n const updateIsOnBoard = (onboard: IPassengerUpdateIsOnboard) => {\r\n PassengerService.updateIsOnBoard(onboard)\r\n .then((result) => {\r\n if (result) {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n\r\n let flightTravelersLegsCopy = _.cloneDeep(state.flightTravelersLegs);\r\n flightTravelersLegsCopy\r\n .flatMap((f) => f.travelers)\r\n .forEach((ftl) => {\r\n if (\r\n ftl.memberId === onboard.memberId &&\r\n ftl.cvFlightLegId === onboard.cvFlightLegId &&\r\n ftl.reservationId === onboard.reservationId\r\n ) {\r\n ftl.isOnBoard = onboard.isOnBoard;\r\n }\r\n });\r\n dispatch({\r\n type: PassengerListActionType.SET_FLIGHT_TRAVELERS_LEGS,\r\n payload: flightTravelersLegsCopy,\r\n });\r\n } else {\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n })\r\n .catch(() => {\r\n addMessage(Constants.messages.error.savingData);\r\n });\r\n };\r\n\r\n const updateIsClosed = (closed: IPassengerUpdateIsClosed) => {\r\n PassengerService.updateIsClosed(closed)\r\n .then((result) => {\r\n if (result) {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n\r\n let flightTravelersLegsCopy = _.cloneDeep(state.flightTravelersLegs);\r\n flightTravelersLegsCopy\r\n .filter((f) => f.leg === `${closed.origin} - ${closed.destination}`)\r\n .flatMap((f) => f.travelers)\r\n .forEach((ftl) => {\r\n ftl.isClosed = closed.isClosed;\r\n });\r\n dispatch({\r\n type: PassengerListActionType.SET_FLIGHT_TRAVELERS_LEGS,\r\n payload: flightTravelersLegsCopy,\r\n });\r\n } else {\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n })\r\n .catch(() => {\r\n addMessage(Constants.messages.error.savingData);\r\n });\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default PassengerListProvider;\r\n\r\nexport const usePassengerListContext = () => useContext(PassengerListContext);\r\n","var _path, _path2, _circle, _circle2, _path3, _path4, _path5, _path6, _circle3, _circle4, _path7;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCar(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 37,\n height: 27,\n viewBox: \"0 0 37 27\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.1449 26.636H33.492C33.892 26.636 34.2166 26.3198 34.2166 25.9301V22.4004H28.4204V25.9301C28.4204 26.3198 28.745 26.636 29.1449 26.636Z\",\n fill: \"#B8349A\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.80251 25.9301V22.4004H3.00635V25.9301C3.00635 26.3198 3.33093 26.636 3.73087 26.636H8.07799C8.47792 26.636 8.80251 26.3198 8.80251 25.9301Z\",\n fill: \"#B8349A\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 29.2006,\n cy: 15.3773,\n r: 1.8949,\n fill: \"white\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8.02234,\n cy: 15.3773,\n r: 1.8949,\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.1465 17.2754L13.2404 20.1124C13.4625 20.6877 13.9996 21.0652 14.5973 21.0652H22.8485C23.4462 21.0652 23.9833 20.6877 24.2054 20.1124L25.2993 17.2754H12.1465Z\",\n fill: \"#F8F9FE\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M30.1253 3.20074L31.7646 9.6546V8.80268C31.7646 7.9405 32.3964 7.24217 33.1765 7.24217H35.2943C35.684 7.24217 36.0002 7.59173 36.0002 8.02243V8.80268C36.0002 9.66486 35.3684 10.3632 34.5883 10.3632H32.2733L33.1081 11.459C33.6829 12.2136 33.9935 13.131 33.9935 14.0737V22.0632C33.9935 22.8658 33.3332 23.5158 32.5179 23.5158H4.48192C3.66666 23.5158 3.00634 22.8658 3.00634 22.0632V14.0737C3.00634 13.131 3.31695 12.2129 3.89169 11.459L4.72651 10.3632H2.41188C1.63182 10.3632 1 9.66486 1 8.80268V8.02243C1 7.59173 1.31626 7.24217 1.70594 7.24217H3.82377C4.60384 7.24217 5.23565 7.9405 5.23565 8.80268V9.65302L6.87383 3.20074C7.20289 1.90717 8.38335 1 9.7372 1H27.2626C28.6165 1 29.7969 1.90717 30.1253 3.20074Z\",\n fill: \"white\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.7646 9.6546L31.28 9.7777L32.2646 9.6546H31.7646ZM30.1253 3.20074L29.6406 3.32375L29.6407 3.32384L30.1253 3.20074ZM32.2733 10.3632V9.86318H31.2638L31.8756 10.6662L32.2733 10.3632ZM33.1081 11.459L33.5059 11.156L33.5059 11.156L33.1081 11.459ZM3.89169 11.459L4.28932 11.7621L4.28942 11.762L3.89169 11.459ZM4.72651 10.3632L5.12424 10.6662L5.73601 9.86318H4.72651V10.3632ZM5.23565 9.65302H4.73565L5.72028 9.77606L5.23565 9.65302ZM6.87383 3.20074L6.38927 3.07748L6.38921 3.0777L6.87383 3.20074ZM32.2492 9.53151L30.6099 3.07765L29.6407 3.32384L31.28 9.7777L32.2492 9.53151ZM31.2646 8.80268V9.6546H32.2646V8.80268H31.2646ZM33.1765 6.74217C32.0743 6.74217 31.2646 7.71261 31.2646 8.80268H32.2646C32.2646 8.16838 32.7184 7.74217 33.1765 7.74217V6.74217ZM35.2943 6.74217H33.1765V7.74217H35.2943V6.74217ZM36.5002 8.02243C36.5002 7.36384 36.006 6.74217 35.2943 6.74217V7.74217C35.3619 7.74217 35.5002 7.81961 35.5002 8.02243H36.5002ZM36.5002 8.80268V8.02243H35.5002V8.80268H36.5002ZM34.5883 10.8632C35.6905 10.8632 36.5002 9.89274 36.5002 8.80268H35.5002C35.5002 9.43697 35.0464 9.86318 34.5883 9.86318V10.8632ZM32.2733 10.8632H34.5883V9.86318H32.2733V10.8632ZM33.5059 11.156L32.671 10.0602L31.8756 10.6662L32.7104 11.762L33.5059 11.156ZM34.4935 14.0737C34.4935 13.0208 34.1465 11.9972 33.5059 11.156L32.7104 11.7619C33.2192 12.4301 33.4935 13.2411 33.4935 14.0737H34.4935ZM34.4935 22.0632V14.0737H33.4935V22.0632H34.4935ZM32.5179 24.0158C33.6019 24.0158 34.4935 23.1493 34.4935 22.0632H33.4935C33.4935 22.5823 33.0644 23.0158 32.5179 23.0158V24.0158ZM4.48192 24.0158H32.5179V23.0158H4.48192V24.0158ZM2.50634 22.0632C2.50634 23.1493 3.39794 24.0158 4.48192 24.0158V23.0158C3.93539 23.0158 3.50634 22.5823 3.50634 22.0632H2.50634ZM2.50634 14.0737V22.0632H3.50634V14.0737H2.50634ZM3.49406 11.1558C2.85323 11.9964 2.50634 13.0209 2.50634 14.0737H3.50634C3.50634 13.241 3.78067 12.4293 4.28932 11.7621L3.49406 11.1558ZM4.32879 10.0602L3.49396 11.156L4.28942 11.762L5.12424 10.6662L4.32879 10.0602ZM2.41188 10.8632H4.72651V9.86318H2.41188V10.8632ZM0.5 8.80268C0.5 9.89274 1.30977 10.8632 2.41188 10.8632V9.86318C1.95387 9.86318 1.5 9.43697 1.5 8.80268H0.5ZM0.5 8.02243V8.80268H1.5V8.02243H0.5ZM1.70594 6.74217C0.994214 6.74217 0.5 7.36384 0.5 8.02243H1.5C1.5 7.81961 1.63831 7.74217 1.70594 7.74217V6.74217ZM3.82377 6.74217H1.70594V7.74217H3.82377V6.74217ZM5.73565 8.80268C5.73565 7.71261 4.92588 6.74217 3.82377 6.74217V7.74217C4.28179 7.74217 4.73565 8.16838 4.73565 8.80268H5.73565ZM5.73565 9.65302V8.80268H4.73565V9.65302H5.73565ZM6.38921 3.0777L4.75103 9.52997L5.72028 9.77606L7.35846 3.32378L6.38921 3.0777ZM9.7372 0.5C8.15941 0.5 6.77585 1.55775 6.38927 3.07748L7.3584 3.324C7.62993 2.25659 8.60729 1.5 9.7372 1.5V0.5ZM27.2626 0.5H9.7372V1.5H27.2626V0.5ZM30.6099 3.07774C30.2241 1.55773 28.8404 0.5 27.2626 0.5V1.5C28.3926 1.5 29.3698 2.25661 29.6406 3.32375L30.6099 3.07774Z\",\n fill: \"#B8349A\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.9635 9.86139H7.48338L9.06699 3.56321C9.06699 3.5632 9.06699 3.56319 9.067 3.56319C9.17434 3.13641 9.55883 2.83594 10.006 2.83594H27.4402C27.8874 2.83594 28.2719 3.13642 28.3792 3.56321L28.3792 3.56324L29.9635 9.86139Z\",\n fill: \"white\",\n stroke: \"#B8349A\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 29.2006,\n cy: 15.3773,\n r: 1.8949,\n fill: \"#B8349A\"\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8.02234,\n cy: 15.3773,\n r: 1.8949,\n fill: \"#B8349A\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.2559 17.6738L13.2406 19.9018C13.4628 20.4771 13.9998 20.8546 14.5976 20.8546H22.8488C23.4465 20.8546 23.9836 20.4771 24.2057 19.9018L25.1791 17.6738H18.7175H12.2559Z\",\n fill: \"#B8349A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCar);\nexport default __webpack_public_path__ + \"static/media/car.4fdf58aa.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _circle, _circle2, _path3, _path4, _path5, _path6, _circle3, _circle4, _path7;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCarSelected(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 37,\n height: 27,\n viewBox: \"0 0 37 27\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.1449 26.636H33.492C33.892 26.636 34.2166 26.3198 34.2166 25.9301V22.4004H28.4204V25.9301C28.4204 26.3198 28.745 26.636 29.1449 26.636Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.80251 25.9301V22.4004H3.00635V25.9301C3.00635 26.3198 3.33093 26.636 3.73087 26.636H8.07799C8.47792 26.636 8.80251 26.3198 8.80251 25.9301Z\",\n fill: \"white\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 29.2006,\n cy: 15.3773,\n r: 1.8949,\n fill: \"white\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8.02234,\n cy: 15.3773,\n r: 1.8949,\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.1465 17.2754L13.2404 20.1124C13.4625 20.6877 13.9996 21.0652 14.5973 21.0652H22.8485C23.4462 21.0652 23.9833 20.6877 24.2054 20.1124L25.2993 17.2754H12.1465Z\",\n fill: \"#F8F9FE\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M30.1253 3.20074L31.7646 9.6546V8.80268C31.7646 7.9405 32.3964 7.24217 33.1765 7.24217H35.2943C35.684 7.24217 36.0002 7.59173 36.0002 8.02243V8.80268C36.0002 9.66486 35.3684 10.3632 34.5883 10.3632H32.2733L33.1081 11.459C33.6829 12.2136 33.9935 13.131 33.9935 14.0737V22.0632C33.9935 22.8658 33.3332 23.5158 32.5179 23.5158H4.48192C3.66666 23.5158 3.00634 22.8658 3.00634 22.0632V14.0737C3.00634 13.131 3.31695 12.2129 3.89169 11.459L4.72651 10.3632H2.41188C1.63182 10.3632 1 9.66486 1 8.80268V8.02243C1 7.59173 1.31626 7.24217 1.70594 7.24217H3.82377C4.60384 7.24217 5.23565 7.9405 5.23565 8.80268V9.65302L6.87383 3.20074C7.20289 1.90717 8.38335 1 9.7372 1H27.2626C28.6165 1 29.7969 1.90717 30.1253 3.20074Z\",\n fill: \"white\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.7646 9.6546L31.28 9.7777L32.2646 9.6546H31.7646ZM30.1253 3.20074L29.6406 3.32375L29.6407 3.32384L30.1253 3.20074ZM32.2733 10.3632V9.86318H31.2638L31.8756 10.6662L32.2733 10.3632ZM33.1081 11.459L33.5059 11.156L33.5059 11.156L33.1081 11.459ZM3.89169 11.459L4.28932 11.7621L4.28942 11.762L3.89169 11.459ZM4.72651 10.3632L5.12424 10.6662L5.73601 9.86318H4.72651V10.3632ZM5.23565 9.65302H4.73565L5.72028 9.77606L5.23565 9.65302ZM6.87383 3.20074L6.38927 3.07748L6.38921 3.0777L6.87383 3.20074ZM32.2492 9.53151L30.6099 3.07765L29.6407 3.32384L31.28 9.7777L32.2492 9.53151ZM31.2646 8.80268V9.6546H32.2646V8.80268H31.2646ZM33.1765 6.74217C32.0743 6.74217 31.2646 7.71261 31.2646 8.80268H32.2646C32.2646 8.16838 32.7184 7.74217 33.1765 7.74217V6.74217ZM35.2943 6.74217H33.1765V7.74217H35.2943V6.74217ZM36.5002 8.02243C36.5002 7.36384 36.006 6.74217 35.2943 6.74217V7.74217C35.3619 7.74217 35.5002 7.81961 35.5002 8.02243H36.5002ZM36.5002 8.80268V8.02243H35.5002V8.80268H36.5002ZM34.5883 10.8632C35.6905 10.8632 36.5002 9.89274 36.5002 8.80268H35.5002C35.5002 9.43697 35.0464 9.86318 34.5883 9.86318V10.8632ZM32.2733 10.8632H34.5883V9.86318H32.2733V10.8632ZM33.5059 11.156L32.671 10.0602L31.8756 10.6662L32.7104 11.762L33.5059 11.156ZM34.4935 14.0737C34.4935 13.0208 34.1465 11.9972 33.5059 11.156L32.7104 11.7619C33.2192 12.4301 33.4935 13.2411 33.4935 14.0737H34.4935ZM34.4935 22.0632V14.0737H33.4935V22.0632H34.4935ZM32.5179 24.0158C33.6019 24.0158 34.4935 23.1493 34.4935 22.0632H33.4935C33.4935 22.5823 33.0644 23.0158 32.5179 23.0158V24.0158ZM4.48192 24.0158H32.5179V23.0158H4.48192V24.0158ZM2.50634 22.0632C2.50634 23.1493 3.39794 24.0158 4.48192 24.0158V23.0158C3.93539 23.0158 3.50634 22.5823 3.50634 22.0632H2.50634ZM2.50634 14.0737V22.0632H3.50634V14.0737H2.50634ZM3.49406 11.1558C2.85323 11.9964 2.50634 13.0209 2.50634 14.0737H3.50634C3.50634 13.241 3.78067 12.4293 4.28932 11.7621L3.49406 11.1558ZM4.32879 10.0602L3.49396 11.156L4.28942 11.762L5.12424 10.6662L4.32879 10.0602ZM2.41188 10.8632H4.72651V9.86318H2.41188V10.8632ZM0.5 8.80268C0.5 9.89274 1.30977 10.8632 2.41188 10.8632V9.86318C1.95387 9.86318 1.5 9.43697 1.5 8.80268H0.5ZM0.5 8.02243V8.80268H1.5V8.02243H0.5ZM1.70594 6.74217C0.994214 6.74217 0.5 7.36384 0.5 8.02243H1.5C1.5 7.81961 1.63831 7.74217 1.70594 7.74217V6.74217ZM3.82377 6.74217H1.70594V7.74217H3.82377V6.74217ZM5.73565 8.80268C5.73565 7.71261 4.92588 6.74217 3.82377 6.74217V7.74217C4.28179 7.74217 4.73565 8.16838 4.73565 8.80268H5.73565ZM5.73565 9.65302V8.80268H4.73565V9.65302H5.73565ZM6.38921 3.0777L4.75103 9.52997L5.72028 9.77606L7.35846 3.32378L6.38921 3.0777ZM9.7372 0.5C8.15941 0.5 6.77585 1.55775 6.38927 3.07748L7.3584 3.324C7.62993 2.25659 8.60729 1.5 9.7372 1.5V0.5ZM27.2626 0.5H9.7372V1.5H27.2626V0.5ZM30.6099 3.07774C30.2241 1.55773 28.8404 0.5 27.2626 0.5V1.5C28.3926 1.5 29.3698 2.25661 29.6406 3.32375L30.6099 3.07774Z\",\n fill: \"white\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.9635 9.86139H7.48338L9.06699 3.56321C9.06699 3.5632 9.06699 3.56319 9.067 3.56319C9.17434 3.13641 9.55883 2.83594 10.006 2.83594H27.4402C27.8874 2.83594 28.2719 3.13642 28.3792 3.56321L28.3792 3.56324L29.9635 9.86139Z\",\n fill: \"#B8349A\",\n stroke: \"#B8349A\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 29.2006,\n cy: 15.3773,\n r: 1.8949,\n fill: \"#B8349A\"\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8.02234,\n cy: 15.3773,\n r: 1.8949,\n fill: \"#B8349A\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.2559 17.6738L13.2406 19.9018C13.4628 20.4771 13.9998 20.8546 14.5976 20.8546H22.8488C23.4465 20.8546 23.9836 20.4771 24.2057 19.9018L25.1791 17.6738H18.7175H12.2559Z\",\n fill: \"#B8349A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCarSelected);\nexport default __webpack_public_path__ + \"static/media/carSelected.f69023d0.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _ellipse, _ellipse2, _path9;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCommercial(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 40,\n height: 45,\n viewBox: \"3 3 44 45\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.1363 22.3482L23.1939 30.4873C23.4061 30.7727 23.8196 30.81 24.0799 30.5673L24.7711 29.9227C25.116 29.6011 25.2397 29.1061 25.0855 28.6597L21.5027 18.2765L17.1363 22.3482Z\",\n fill: \"#B8349A\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.2456 14.7809L8.13765 10.4825C7.7031 10.2975 7.20113 10.386 6.85575 10.7081L6.16455 11.3527C5.90431 11.5953 5.91263 12.0104 6.18249 12.2421L13.8792 18.8526L18.2456 14.7809Z\",\n fill: \"#B8349A\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M23.9214 9.48806C23.9096 9.49901 23.898 9.51005 23.8865 9.52118L10.3717 22.124L10.3717 22.1237L7.31055 20.9832C6.88646 20.8252 6.4096 20.9204 6.07907 21.2287L5.41974 21.8435C5.14422 22.1004 5.17263 22.545 5.47837 22.7652L8.33087 24.8141C8.2568 25.482 8.46354 26.177 8.9578 26.7071C9.45188 27.2369 10.1305 27.4916 10.8017 27.4645L12.6474 30.4543C12.8453 30.7751 13.2872 30.834 13.5628 30.5771L14.2221 29.9623C14.5531 29.6536 14.6809 29.185 14.5529 28.7509L13.6287 25.6176L13.6285 25.6177L27.1792 12.9814L27.1789 12.981C28.1434 12.0815 28.1961 10.5705 27.2966 9.60592C26.3971 8.64132 24.886 8.58855 23.9214 9.48806Z\",\n fill: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.8865 9.52118L24.2276 9.88693L24.2347 9.88006L23.8865 9.52118ZM10.3717 22.124L9.87669 22.0533L9.67646 23.456L10.7127 22.4897L10.3717 22.124ZM10.3717 22.1237L10.8667 22.1944L10.9236 21.7958L10.5463 21.6552L10.3717 22.1237ZM7.31055 20.9832L7.48512 20.5146L7.48512 20.5146L7.31055 20.9832ZM5.47837 22.7652L5.18617 23.1709L5.18668 23.1713L5.47837 22.7652ZM8.33087 24.8141L8.82782 24.8692L8.86005 24.5785L8.62256 24.408L8.33087 24.8141ZM10.8017 27.4645L11.2272 27.2019L11.0736 26.9532L10.7816 26.9649L10.8017 27.4645ZM12.6474 30.4543L13.073 30.1918L13.0729 30.1917L12.6474 30.4543ZM14.5529 28.7509L15.0325 28.6095L15.0325 28.6094L14.5529 28.7509ZM13.6287 25.6176L14.1082 25.4762L13.9945 25.0906L13.5935 25.1189L13.6287 25.6176ZM13.6285 25.6177L13.2875 25.252L12.2539 26.2158L13.6637 26.1164L13.6285 25.6177ZM27.1792 12.9814L27.5202 13.3471L27.8859 13.0061L27.5449 12.6404L27.1792 12.9814ZM27.1789 12.981L26.8379 12.6154L26.4723 12.9564L26.8132 13.322L27.1789 12.981ZM24.2347 9.88006C24.2438 9.87122 24.253 9.86244 24.2624 9.85373L23.5804 9.12238C23.5662 9.13558 23.5522 9.14888 23.5384 9.1623L24.2347 9.88006ZM10.7127 22.4897L24.2275 9.88686L23.5455 9.1555L10.0307 21.7583L10.7127 22.4897ZM9.87673 22.0531L9.87669 22.0533L10.8667 22.1947L10.8667 22.1944L9.87673 22.0531ZM7.13598 21.4517L10.1971 22.5923L10.5463 21.6552L7.48512 20.5146L7.13598 21.4517ZM6.42006 21.5944C6.61209 21.4153 6.88935 21.3598 7.13598 21.4517L7.48512 20.5146C6.88358 20.2905 6.20712 20.4256 5.73807 20.863L6.42006 21.5944ZM5.76074 22.2092L6.42006 21.5944L5.73807 20.863L5.07874 21.4778L5.76074 22.2092ZM5.77058 22.3594C5.72027 22.3232 5.71614 22.2508 5.76074 22.2092L5.07874 21.4778C4.57229 21.9501 4.62498 22.7667 5.18617 23.1709L5.77058 22.3594ZM8.62256 24.408L5.77007 22.3591L5.18668 23.1713L8.03918 25.2202L8.62256 24.408ZM9.32348 26.3661C8.93278 25.9471 8.76913 25.3984 8.82782 24.8692L7.83392 24.7589C7.74446 25.5655 7.9943 26.407 8.59212 27.0481L9.32348 26.3661ZM10.7816 26.9649C10.2497 26.9864 9.71404 26.7849 9.32348 26.3661L8.59212 27.0481C9.18973 27.6889 10.0113 27.9968 10.8219 27.9641L10.7816 26.9649ZM13.0729 30.1917L11.2272 27.2019L10.3763 27.7272L12.222 30.717L13.0729 30.1917ZM13.2218 30.2114C13.1765 30.2536 13.1048 30.2434 13.073 30.1918L12.2219 30.7168C12.5859 31.3068 13.3979 31.4145 13.9038 30.9428L13.2218 30.2114ZM13.8811 29.5966L13.2218 30.2114L13.9038 30.9428L14.5631 30.3279L13.8811 29.5966ZM14.0733 28.8924C14.1478 29.1449 14.0734 29.4172 13.8811 29.5966L14.5631 30.3279C15.0327 29.89 15.2141 29.225 15.0325 28.6095L14.0733 28.8924ZM13.1491 25.7591L14.0733 28.8924L15.0325 28.6094L14.1082 25.4762L13.1491 25.7591ZM13.6637 26.1164L13.6638 26.1164L13.5935 25.1189L13.5933 25.1189L13.6637 26.1164ZM26.8382 12.6157L13.2875 25.252L13.9695 25.9833L27.5202 13.3471L26.8382 12.6157ZM26.8132 13.322L26.8135 13.3224L27.5449 12.6404L27.5446 12.64L26.8132 13.322ZM26.9309 9.94692C27.6421 10.7095 27.6004 11.9042 26.8379 12.6154L27.5199 13.3467C28.6863 12.2588 28.7501 10.4314 27.6623 9.26492L26.9309 9.94692ZM24.2624 9.85373C25.025 9.14256 26.2198 9.18428 26.9309 9.94692L27.6623 9.26492C26.5745 8.09837 24.7469 8.03455 23.5804 9.12238L24.2624 9.85373Z\",\n fill: \"#B8349A\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.5771 35.1606H25.9671L22.731 44.1669H24.3409L27.5771 35.1606Z\",\n fill: \"#B8349A\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.6154 44.1669H36.0054L32.7693 35.1606H34.3793L37.6154 44.1669Z\",\n fill: \"#B8349A\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.0284 23.0382H24.9716C24.2734 23.0382 23.6471 23.451 23.3966 24.0768L21.1122 29.777C21.0381 29.9627 21 30.1599 21 30.3587V39.7774C21 40.6717 21.7555 41.3972 22.6872 41.3972H37.3122C38.2445 41.3972 39 40.6717 39 39.7774V30.3587C39 30.1599 38.9619 29.9627 38.8878 29.777L36.6034 24.0768C36.3529 23.451 35.7266 23.0382 35.0284 23.0382Z\",\n fill: \"white\",\n stroke: \"#B8349A\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.2609 22H27.4188C27.2094 22 27.0183 22.1182 26.9249 22.3055L26.5249 23.105H33.1548L32.7548 22.3055C32.6614 22.1182 32.4703 22 32.2609 22Z\",\n fill: \"#B8349A\"\n })), _ellipse || (_ellipse = /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 24.462,\n cy: 36.8936,\n rx: 1.38462,\n ry: 1.38558,\n fill: \"#B8349A\"\n })), _ellipse2 || (_ellipse2 = /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 35.5382,\n cy: 36.8936,\n rx: 1.38462,\n ry: 1.38558,\n fill: \"#B8349A\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.022 30.1384V31.3933H23.2097V30.1384C23.2097 30.0295 23.2295 29.9205 23.2691 29.8164L24.4676 26.6577L24.9459 25.3885C25.0891 25.0144 25.4593 24.7634 25.8737 24.7634H34.3586C34.7729 24.7634 35.1431 25.0144 35.2858 25.3885L35.7642 26.6577L36.9631 29.8164C37.0022 29.9205 37.022 30.0295 37.022 30.1384Z\",\n fill: \"#B8349A\",\n stroke: \"#B8349A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCommercial);\nexport default __webpack_public_path__ + \"static/media/commercial.5b7d398e.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _ellipse, _ellipse2, _path5, _path6;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCommercialSelected(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 44,\n height: 45,\n viewBox: \"3 3 44 45\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.5771 35.1606H29.9671L26.731 44.1669H28.3409L31.5771 35.1606Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.6154 44.1669H40.0054L36.7693 35.1606H38.3793L41.6154 44.1669Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.0284 23.0382H28.9716C28.2734 23.0382 27.6471 23.451 27.3966 24.0768L25.1122 29.777C25.0381 29.9627 25 30.1599 25 30.3587V39.7774C25 40.6717 25.7555 41.3972 26.6872 41.3972H41.3122C42.2445 41.3972 43 40.6717 43 39.7774V30.3587C43 30.1599 42.9619 29.9627 42.8878 29.777L40.6034 24.0768C40.3529 23.451 39.7266 23.0382 39.0284 23.0382Z\",\n fill: \"#B8349A\",\n stroke: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.2609 22H31.4188C31.2094 22 31.0183 22.1182 30.9249 22.3055L30.5249 23.105H37.1548L36.7548 22.3055C36.6614 22.1182 36.4703 22 36.2609 22Z\",\n fill: \"white\"\n })), _ellipse || (_ellipse = /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 28.462,\n cy: 36.8936,\n rx: 1.38462,\n ry: 1.38558,\n fill: \"white\"\n })), _ellipse2 || (_ellipse2 = /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 39.5382,\n cy: 36.8936,\n rx: 1.38462,\n ry: 1.38558,\n fill: \"white\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.022 30.1384V31.3933H27.2097V30.1384C27.2097 30.0295 27.2295 29.9205 27.2691 29.8164L28.4676 26.6577L28.9459 25.3885C29.0891 25.0144 29.4593 24.7634 29.8737 24.7634H38.3586C38.7729 24.7634 39.1431 25.0144 39.2858 25.3885L39.7642 26.6577L40.9631 29.8164C41.0022 29.9205 41.022 30.0295 41.022 30.1384Z\",\n fill: \"white\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M27.8398 12.981L27.839 12.9817L27.8397 12.9825L14.2902 25.6175L15.214 28.7494C15.3421 29.1834 15.2142 29.6521 14.8832 29.9607L14.2239 30.5755C13.9484 30.8324 13.5065 30.7735 13.3086 30.4527L11.4638 27.4644C10.7925 27.4915 10.1138 27.2368 9.61971 26.7069C9.12568 26.1771 8.91891 25.4825 8.99269 24.8149L6.13948 22.7655C5.83374 22.5453 5.80534 22.1008 6.08085 21.8439L6.74015 21.229C7.07068 20.9208 7.54753 20.8255 7.9716 20.9835L11.0327 22.1241L11.0325 22.1249L24.5328 9.53571C24.5491 9.51963 24.5657 9.50374 24.5825 9.48803C25.5471 8.58856 27.0582 8.64133 27.9576 9.6059C28.8571 10.5705 28.8043 12.0816 27.8398 12.981ZM18.9068 14.7805L8.79913 10.4822C8.36459 10.2973 7.86264 10.3858 7.51727 10.7078L6.82608 11.3524C6.56586 11.595 6.57417 12.0101 6.84403 12.2417L14.5405 18.8521L18.9068 14.7805ZM17.7974 22.3475L23.8548 30.4864C24.0671 30.7717 24.4806 30.809 24.7408 30.5663L25.432 29.9218C25.7769 29.6001 25.9006 29.1052 25.7464 28.6588L22.1637 18.2759L17.7974 22.3475Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCommercialSelected);\nexport default __webpack_public_path__ + \"static/media/commercialSelected.b7d3ea56.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCvFlight(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 49,\n height: 49,\n viewBox: \"0 0 49 49\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.3978 29.774L31.4682 40.6176C31.751 40.9978 32.3019 41.0474 32.6486 40.7241L33.5695 39.8654C34.029 39.4368 34.1939 38.7774 33.9884 38.1826L29.2151 24.3494L23.3978 29.774Z\",\n fill: \"#B8349A\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.8757 19.6922L11.4091 13.9656C10.8302 13.7191 10.1614 13.837 9.70128 14.2661L8.78041 15.1249C8.4337 15.4482 8.44478 16.0012 8.80432 16.3098L19.0585 25.1169L24.8757 19.6922Z\",\n fill: \"#B8349A\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M36.7778 17.2948L36.7773 17.2944C38.0623 16.096 38.1325 14.0828 36.9342 12.7978C35.7358 11.5127 33.7225 11.4424 32.4374 12.6408C32.4218 12.6553 32.4063 12.67 32.391 12.6849L14.3855 29.4753L14.3855 29.475L10.3072 27.9554C9.74219 27.7449 9.10687 27.8719 8.66651 28.2825L7.7881 29.1016C7.42103 29.4439 7.45888 30.0362 7.86622 30.3295L11.6665 33.0592C11.5679 33.9491 11.8433 34.8751 12.5018 35.5812C13.16 36.2871 14.0641 36.6265 14.9584 36.5904L17.4174 40.5736C17.6811 41.001 18.2698 41.0795 18.6369 40.7372L19.5153 39.9181C19.9562 39.5069 20.1266 38.8825 19.956 38.3042L18.7247 34.1298L18.7244 34.1298L36.7778 17.2948Z\",\n fill: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.7773 17.2944L36.4363 16.9287L36.0707 17.2697L36.4116 17.6354L36.7773 17.2944ZM36.7778 17.2948L37.1188 17.6605L37.4844 17.3195L37.1434 16.9538L36.7778 17.2948ZM32.391 12.6849L32.7321 13.0506L32.7392 13.0437L32.391 12.6849ZM14.3855 29.4753L13.8905 29.4044L13.6892 30.8082L14.7265 29.841L14.3855 29.4753ZM14.3855 29.475L14.8804 29.5459L14.9376 29.1471L14.5601 29.0064L14.3855 29.475ZM10.3072 27.9554L10.4818 27.4869L10.4818 27.4869L10.3072 27.9554ZM8.66651 28.2825L9.00751 28.6482L8.66651 28.2825ZM7.7881 29.1016L7.4471 28.736L7.7881 29.1016ZM7.86622 30.3295L7.57402 30.7353L7.57453 30.7356L7.86622 30.3295ZM11.6665 33.0592L12.1635 33.1143L12.1957 32.8237L11.9582 32.6531L11.6665 33.0592ZM14.9584 36.5904L15.3839 36.3278L15.2303 36.079L14.9382 36.0908L14.9584 36.5904ZM17.4174 40.5736L17.8429 40.3111L17.8429 40.311L17.4174 40.5736ZM18.6369 40.7372L18.9779 41.1029L18.6369 40.7372ZM19.5153 39.9181L19.1743 39.5524L19.5153 39.9181ZM19.956 38.3042L20.4356 38.1627L19.956 38.3042ZM18.7247 34.1298L19.2042 33.9884L19.0903 33.602L18.6885 33.6311L18.7247 34.1298ZM18.7244 34.1298L18.3834 33.7642L17.3466 34.731L18.7606 34.6285L18.7244 34.1298ZM36.4116 17.6354L36.4121 17.6358L37.1434 16.9538L37.143 16.9534L36.4116 17.6354ZM36.5685 13.1388C37.5785 14.2219 37.5193 15.9187 36.4363 16.9287L37.1184 17.66C38.6052 16.2733 38.6865 13.9438 37.2998 12.4568L36.5685 13.1388ZM32.7784 13.0064C33.8615 11.9964 35.5584 12.0556 36.5685 13.1388L37.2998 12.4568C35.9131 10.9697 33.5835 10.8884 32.0964 12.2751L32.7784 13.0064ZM32.7392 13.0437C32.7521 13.0312 32.7652 13.0188 32.7784 13.0064L32.0964 12.2751C32.0784 12.2919 32.0605 12.3089 32.0429 12.326L32.7392 13.0437ZM14.7265 29.841L32.732 13.0505L32.05 12.3192L14.0445 29.1097L14.7265 29.841ZM13.8906 29.404L13.8905 29.4044L14.8804 29.5463L14.8804 29.5459L13.8906 29.404ZM10.1326 28.424L14.2109 29.9435L14.5601 29.0064L10.4818 27.4869L10.1326 28.424ZM9.00751 28.6482C9.30936 28.3667 9.74507 28.2796 10.1326 28.424L10.4818 27.4869C9.7393 27.2103 8.90439 27.377 8.32551 27.9168L9.00751 28.6482ZM8.1291 29.4673L9.00751 28.6482L8.32551 27.9168L7.4471 28.736L8.1291 29.4673ZM8.15843 29.9238C8.00652 29.8144 7.99296 29.5943 8.1291 29.4673L7.4471 28.736C6.84911 29.2936 6.91124 30.2579 7.57402 30.7353L8.15843 29.9238ZM11.9582 32.6531L8.15791 29.9234L7.57453 30.7356L11.3748 33.4653L11.9582 32.6531ZM12.8675 35.2402C12.3125 34.6451 12.0802 33.8655 12.1635 33.1143L11.1696 33.0041C11.0555 34.0327 11.374 35.105 12.1361 35.9222L12.8675 35.2402ZM14.9382 36.0908C14.1834 36.1213 13.4222 35.8351 12.8675 35.2402L12.1361 35.9222C12.8979 36.7391 13.9449 37.1317 14.9786 37.09L14.9382 36.0908ZM17.8429 40.311L15.3839 36.3278L14.5329 36.8531L16.9919 40.8363L17.8429 40.311ZM18.2959 40.3715C18.1591 40.4991 17.9405 40.4693 17.8429 40.3111L16.9919 40.8361C17.4216 41.5327 18.3805 41.6599 18.9779 41.1029L18.2959 40.3715ZM19.1743 39.5524L18.2959 40.3715L18.9779 41.1029L19.8563 40.2837L19.1743 39.5524ZM19.4764 38.4457C19.5935 38.8425 19.4766 39.2705 19.1743 39.5524L19.8563 40.2837C20.4358 39.7433 20.6597 38.9226 20.4356 38.1627L19.4764 38.4457ZM18.2451 34.2713L19.4764 38.4457L20.4356 38.1627L19.2042 33.9884L18.2451 34.2713ZM18.7606 34.6285L18.7608 34.6285L18.6885 33.6311L18.6883 33.6312L18.7606 34.6285ZM36.4368 16.9292L18.3834 33.7642L19.0654 34.4955L37.1188 17.6605L36.4368 16.9292Z\",\n fill: \"#B8349A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCvFlight);\nexport default __webpack_public_path__ + \"static/media/cvFlight.422c229a.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCvFlightSelected(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 49,\n height: 49,\n viewBox: \"0 0 49 49\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M36.2117 17.2959L36.2107 17.2968L36.2116 17.2978L18.1583 34.1327L19.3892 38.3055C19.5598 38.8838 19.3894 39.5082 18.9484 39.9194L18.07 40.7386C17.7029 41.0809 17.1141 41.0024 16.8504 40.575L14.3924 36.5934C13.498 36.6295 12.5937 36.2902 11.9353 35.5841C11.2771 34.8783 11.0016 33.9527 11.0999 33.0632L7.29831 30.3326C6.89095 30.0392 6.8531 29.4469 7.22019 29.1046L8.09864 28.2855C8.53903 27.8748 9.17438 27.7478 9.73941 27.9584L13.818 29.478L13.8178 29.4791L31.8055 12.7053C31.8272 12.6839 31.8492 12.6627 31.8717 12.6418C33.1569 11.4433 35.1703 11.5137 36.3687 12.7988C37.5672 14.084 37.4969 16.0974 36.2117 17.2959ZM24.3094 19.6935L10.842 13.9665C10.263 13.72 9.59423 13.8379 9.13406 14.267L8.21314 15.1258C7.86641 15.4492 7.87749 16.0022 8.23704 16.3108L18.4918 25.1184L24.3094 19.6935ZM22.8313 29.7757L30.9022 40.6199C31.1849 41.0001 31.7359 41.0497 32.0826 40.7264L33.0035 39.8676C33.4631 39.439 33.628 38.7795 33.4225 38.1848L28.6489 24.3507L22.8313 29.7757Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCvFlightSelected);\nexport default __webpack_public_path__ + \"static/media/cvFlightSelected.c534b5a7.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _circle;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgHotel(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 34,\n height: 30,\n viewBox: \"0 0 34 30\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 28.8959V5.39685L17 5.39733L32.9622 5.39685V28.8959H1Z\",\n fill: \"white\",\n stroke: \"#B8349A\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.5 3V0.500002L17.0189 0.500072L32.5 0.500002V3H1.5Z\",\n fill: \"#B8349A\",\n stroke: \"#B8349A\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.50098 4.5V1L4.75127 1.00007L5.00098 1V4.5H4.50098Z\",\n stroke: \"#B8349A\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29 4.5V1L29.2503 1.00007L29.5 1V4.5H29Z\",\n stroke: \"#B8349A\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.5002 8.90454H29.5002V13.263H24.5002V8.90454Z\",\n fill: \"white\",\n fillOpacity: 0.7,\n stroke: \"#B8349A\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.33667 16.4982H9.33667V20.7356H4.33667V16.4982Z\",\n fill: \"white\",\n fillOpacity: 0.7,\n stroke: \"#B8349A\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.5002 16.4982H29.5002V20.7356H24.5002V16.4982Z\",\n fill: \"white\",\n fillOpacity: 0.7,\n stroke: \"#B8349A\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.33667 8.95703H9.33667V13.1944H4.33667V8.95703Z\",\n fill: \"white\",\n fillOpacity: 0.7,\n stroke: \"#B8349A\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.0007 8.45703H13.5007V8.95703V13.1944V13.6944H14.0007H20.5007H21.0007V13.1944V8.95703V8.45703H20.5007H14.0007Z\",\n fill: \"white\",\n fillOpacity: 0.7,\n stroke: \"#B8349A\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.4995 19.9984H19.9995V28.4984H14.4995V19.9984Z\",\n fill: \"#B8349A\",\n stroke: \"#B8349A\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 17.2495,\n cy: 19.7506,\n r: 2.75,\n fill: \"#B8349A\",\n stroke: \"#B8349A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHotel);\nexport default __webpack_public_path__ + \"static/media/hotel.d248a815.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _circle;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgHotelSelected(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 34,\n height: 30,\n viewBox: \"0 0 34 30\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 28.8959V5.39685L17 5.39733L32.9622 5.39685V28.8959H1Z\",\n fill: \"#B8349A\",\n stroke: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.5 3V0.500002L17.0189 0.500072L32.5 0.500002V3H1.5Z\",\n fill: \"white\",\n stroke: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.50098 4.5V1L4.75127 1.00007L5.00098 1V4.5H4.50098Z\",\n stroke: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29 4.5V1L29.2503 1.00007L29.5 1V4.5H29Z\",\n stroke: \"white\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.5002 8.90454H29.5002V13.263H24.5002V8.90454Z\",\n stroke: \"white\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.33667 16.4982H9.33667V20.7356H4.33667V16.4982Z\",\n stroke: \"white\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.5002 16.4982H29.5002V20.7356H24.5002V16.4982Z\",\n stroke: \"white\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.33667 8.95703H9.33667V13.1944H4.33667V8.95703Z\",\n stroke: \"white\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.0007 8.45703H13.5007V8.95703V13.1944V13.6944H14.0007H20.5007H21.0007V13.1944V8.95703V8.45703H20.5007H14.0007Z\",\n stroke: \"white\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.4995 19.9984H19.9995V28.4984H14.4995V19.9984Z\",\n fill: \"white\",\n stroke: \"white\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 17.2495,\n cy: 19.7506,\n r: 2.75,\n fill: \"white\",\n stroke: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHotelSelected);\nexport default __webpack_public_path__ + \"static/media/hotelSelected.032791c4.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgPersonalData(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 39,\n viewBox: \"0 0 25 39\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.5514 25.1794H11.4486C5.67776 25.1794 1 29.7972 1 35.4941C1 36.9634 2.20695 38.1538 3.69429 38.1538H21.3057C22.7941 38.1538 24 36.9623 24 35.4941C24 29.7972 19.3222 25.1794 13.5514 25.1794Z\",\n fill: \"#B8349A\",\n stroke: \"#B8349A\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.35889 14.2172C3.35889 9.16919 7.45191 4.53845 12.4999 4.53845C17.5479 4.53845 21.6409 9.16919 21.6409 14.2172C21.6409 19.2652 17.5479 22.8205 12.4999 22.8205C7.45191 22.8205 3.35889 19.2652 3.35889 14.2172Z\",\n fill: \"white\",\n stroke: \"#B8349A\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.6075 3.16239C15.6304 3.16239 15.1207 1 10.6545 1C6.92174 1 4.4343 2.93642 4.4343 5.32479C4.4343 5.87079 4.6311 6.39085 4.97739 6.87198C3.98048 7.8537 3.35889 9.21817 3.35889 10.7308V13.9744C4.65261 13.9744 5.81083 13.1678 6.26466 11.9493L7.47557 8.70136C8.85963 9.29386 10.6115 9.64957 12.5214 9.64957C14.5088 9.64957 16.1692 9.25494 17.5103 8.6646L18.7362 11.9504C19.189 13.1678 20.3472 13.9744 21.6409 13.9744V10.7308C21.6409 9.26142 21.0538 7.93263 20.1063 6.95739C21.9593 5.1745 22.1389 3.16239 20.6075 3.16239Z\",\n fill: \"white\",\n stroke: \"#B8349A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPersonalData);\nexport default __webpack_public_path__ + \"static/media/personalData.0a5d3e29.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgPersonalDataSelected(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 39,\n viewBox: \"0 0 25 39\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.5514 25.1794H11.4486C5.67776 25.1794 1 29.7972 1 35.4941C1 36.9634 2.20695 38.1538 3.69429 38.1538H21.3057C22.7941 38.1538 24 36.9623 24 35.4941C24 29.7972 19.3222 25.1794 13.5514 25.1794Z\",\n fill: \"white\",\n stroke: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.35889 14.2172C3.35889 9.16919 7.45191 4.53845 12.4999 4.53845C17.5479 4.53845 21.6409 9.16919 21.6409 14.2172C21.6409 19.2652 17.5479 22.8205 12.4999 22.8205C7.45191 22.8205 3.35889 19.2652 3.35889 14.2172Z\",\n fill: \"#B8349A\",\n stroke: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.6075 3.16239C15.6304 3.16239 15.1207 1 10.6545 1C6.92174 1 4.4343 2.93642 4.4343 5.32479C4.4343 5.87079 4.6311 6.39085 4.97739 6.87198C3.98048 7.8537 3.35889 9.21817 3.35889 10.7308V13.9744C4.65261 13.9744 5.81083 13.1678 6.26466 11.9493L7.47557 8.70136C8.85963 9.29386 10.6115 9.64957 12.5214 9.64957C14.5088 9.64957 16.1692 9.25494 17.5103 8.6646L18.7362 11.9504C19.189 13.1678 20.3472 13.9744 21.6409 13.9744V10.7308C21.6409 9.26142 21.0538 7.93263 20.1063 6.95739C21.9593 5.1745 22.1389 3.16239 20.6075 3.16239Z\",\n fill: \"#B8349A\",\n stroke: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPersonalDataSelected);\nexport default __webpack_public_path__ + \"static/media/personalDataSelected.46dc798b.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgReview(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 28,\n height: 37,\n viewBox: \"0 0 28 37\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.94057 1.01162C1.87151 1.01162 1 1.88313 1 2.95219V34.0594C1 35.1285 1.87151 36 2.94057 36H25.2978C26.3669 36 27.2384 35.1285 27.2384 34.0594V10.0056L17.8609 1H2.94057V1.01162Z\",\n fill: \"white\",\n stroke: \"#B8349A\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.2499 10.0172H19.8246C18.7555 10.0172 17.884 9.14573 17.884 8.07667V1.0116L27.2499 10.0172Z\",\n fill: \"#B8349A\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M24.5078 12.6782C24.5078 13.0152 24.2405 13.2825 23.9035 13.2825H4.48621C4.14922 13.2825 3.88196 13.0152 3.88196 12.6782C3.88196 12.3412 4.14922 12.074 4.48621 12.074H23.9035C24.2405 12.0623 24.5078 12.3412 24.5078 12.6782ZM24.5072 15.8622C24.5072 16.1991 24.2399 16.4664 23.9029 16.4664H4.4856C4.14861 16.4664 3.88135 16.1991 3.88135 15.8622C3.88135 15.5252 4.14861 15.2579 4.4856 15.2579H23.9029C24.2399 15.2579 24.5072 15.5252 24.5072 15.8622ZM23.9029 19.4993C24.2399 19.4993 24.5072 19.232 24.5072 18.895C24.5072 18.558 24.2399 18.2908 23.9029 18.2908H4.4856C4.14861 18.2908 3.88135 18.558 3.88135 18.895C3.88135 19.232 4.14861 19.4993 4.4856 19.4993H23.9029ZM24.5072 22.079C24.5072 22.416 24.2399 22.6833 23.9029 22.6833H4.4856C4.14861 22.6833 3.88135 22.416 3.88135 22.079C3.88135 21.742 4.14861 21.4748 4.4856 21.4748H23.9029C24.2399 21.4748 24.5072 21.742 24.5072 22.079ZM4.4856 24.6587H14.6533C14.9902 24.6587 15.2575 24.9259 15.2575 25.2629C15.2575 25.5999 14.9902 25.8672 14.6533 25.8672H4.4856C4.14861 25.8672 3.88135 25.5999 3.88135 25.2629C3.88135 24.9259 4.14861 24.6587 4.4856 24.6587Z\",\n fill: \"#B8349A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgReview);\nexport default __webpack_public_path__ + \"static/media/review.b5a0196c.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgReviewSelected(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 28,\n height: 37,\n viewBox: \"0 0 28 37\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.94057 1.01162C1.87151 1.01162 1 1.88313 1 2.95219V34.0594C1 35.1285 1.87151 36 2.94057 36H25.2978C26.3669 36 27.2384 35.1285 27.2384 34.0594V10.0056L17.8609 1H2.94057V1.01162Z\",\n fill: \"#B8349A\",\n stroke: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.2499 10.0173H19.8246C18.7555 10.0173 17.884 9.14579 17.884 8.07673V1.01166L27.2499 10.0173Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M24.5078 12.6783C24.5078 13.0153 24.2405 13.2825 23.9035 13.2825H4.48621C4.14922 13.2825 3.88196 13.0153 3.88196 12.6783C3.88196 12.3413 4.14922 12.074 4.48621 12.074H23.9035C24.2405 12.0624 24.5078 12.3413 24.5078 12.6783ZM24.5072 15.8622C24.5072 16.1992 24.2399 16.4665 23.9029 16.4665H4.4856C4.14861 16.4665 3.88135 16.1992 3.88135 15.8622C3.88135 15.5252 4.14861 15.258 4.4856 15.258H23.9029C24.2399 15.258 24.5072 15.5252 24.5072 15.8622ZM23.9029 19.4993C24.2399 19.4993 24.5072 19.2321 24.5072 18.8951C24.5072 18.5581 24.2399 18.2908 23.9029 18.2908H4.4856C4.14861 18.2908 3.88135 18.5581 3.88135 18.8951C3.88135 19.2321 4.14861 19.4993 4.4856 19.4993H23.9029ZM24.5072 22.0791C24.5072 22.4161 24.2399 22.6833 23.9029 22.6833H4.4856C4.14861 22.6833 3.88135 22.4161 3.88135 22.0791C3.88135 21.7421 4.14861 21.4748 4.4856 21.4748H23.9029C24.2399 21.4748 24.5072 21.7421 24.5072 22.0791ZM4.4856 24.6587H14.6533C14.9902 24.6587 15.2575 24.926 15.2575 25.263C15.2575 25.6 14.9902 25.8672 14.6533 25.8672H4.4856C4.14861 25.8672 3.88135 25.6 3.88135 25.263C3.88135 24.926 4.14861 24.6587 4.4856 24.6587Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgReviewSelected);\nexport default __webpack_public_path__ + \"static/media/reviewSelected.842fb6ca.svg\";\nexport { ForwardRef as ReactComponent };","import _ from 'lodash';\r\nimport {useEffect, useState} from 'react';\r\n\r\nimport IMemberInformation from '../models/IMemberInformation';\r\nimport IPassenger from '../models/Reservation/IPassenger';\r\nimport IReservation from '../models/Reservation/IReservation';\r\nimport IReservationMember from '../models/Reservation/IReservationMember';\r\nimport ITripType from '../models/Reservation/ITripType';\r\n\r\nexport default function useReservationPassengers(\r\n memberInformations?: IMemberInformation,\r\n selectedTripType?: ITripType,\r\n reservationMembers?: IReservationMember[],\r\n booking?: IReservation\r\n) {\r\n const [passengers, setPassengers] = useState([] as IPassenger[]);\r\n\r\n const familyReducer = (acc: IPassenger[], cur: IReservationMember) => {\r\n const familyMember =\r\n memberInformations?.member?.memberId === cur.memberId\r\n ? memberInformations.member\r\n : memberInformations?.relatives?.find(\r\n (r) => r.memberId === cur.memberId\r\n );\r\n\r\n return familyMember\r\n ? [\r\n ...acc,\r\n {\r\n firstName: familyMember.firstName,\r\n lastName: familyMember.lastName,\r\n memberId: familyMember.memberId,\r\n relationName: familyMember.relationTypeName,\r\n birthDate: familyMember.birthDate,\r\n blockedFrom: familyMember.blockedFrom,\r\n },\r\n ]\r\n : [...acc];\r\n };\r\n\r\n const canDisplayTraveler = (memberId: number) => {\r\n const result = booking?.cvFlights?.some((x) =>\r\n x.cvFlightLegs.some((y) =>\r\n y.reservationCVFlightLegMembers.some((z) => z.memberId == memberId)\r\n )\r\n );\r\n if (result) {\r\n return true;\r\n }\r\n\r\n if (!_.isEmpty(booking?.cars)) {\r\n return true;\r\n }\r\n\r\n if (!_.isEmpty(booking?.hotels)) {\r\n return true;\r\n }\r\n\r\n return booking?.commercials?.some((x) => x.memberId == memberId);\r\n };\r\n\r\n const activePassengers = passengers.filter((p) =>\r\n canDisplayTraveler(p.memberId)\r\n );\r\n\r\n useEffect(() => {\r\n if (memberInformations && selectedTripType) {\r\n const passengers =\r\n selectedTripType?.multiplePassengers && reservationMembers\r\n ? reservationMembers.reduce(familyReducer, [])\r\n : [\r\n {\r\n firstName: memberInformations?.member?.firstName,\r\n lastName: memberInformations?.member?.lastName,\r\n memberId: memberInformations?.member?.memberId,\r\n relationName: memberInformations?.member?.relationTypeName,\r\n birthDate: memberInformations?.member?.birthDate,\r\n blockedFrom: memberInformations?.member?.blockedFrom,\r\n },\r\n ];\r\n\r\n setPassengers(passengers);\r\n }\r\n }, [memberInformations, selectedTripType, reservationMembers]);\r\n\r\n return { passengers, activePassengers };\r\n}\r\n","export enum ReservationStatus {\r\n Approved = 'Approved',\r\n NotApproved = 'Not Approved',\r\n WaitingForApproval = 'Waiting for approval',\r\n}\r\n\r\nexport enum ServiceStatus {\r\n NeedToCancel = 'Need to Cancel',\r\n NeedToBook = 'Need to Book',\r\n Request = 'Request',\r\n WaitingOnTraveler = 'Waiting on Traveler',\r\n Processed = 'Processed',\r\n Cancelled = 'Cancelled',\r\n WaitingConfirmationNumber = 'Waiting for Confirmation Number',\r\n Access = 'Access',\r\n NeedToCancelAccess = 'Need to Cancel Access',\r\n}\r\n","import ITraining from '../models/ITraining';\r\nimport ITrainingCourse from '../models/ITrainingCourse';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/Training';\r\n\r\nconst TrainingCatalogueService = {\r\n getCurrentTrainingCourses: (): Promise =>\r\n requests.get(`${API_ENDPOINT}`),\r\n getHistoryTrainingCourses: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/history`),\r\n getAutoCompleteTrainingsName: (searchText: string): Promise =>\r\n requests.get(`${API_ENDPOINT}/autocomplete/${searchText}`),\r\n createTrainingCourse: (\r\n trainingCourse: ITrainingCourse\r\n ): Promise =>\r\n requests.post(`${API_ENDPOINT}`, trainingCourse),\r\n updateTrainingCourse: (\r\n trainingCourse: ITrainingCourse\r\n ): Promise =>\r\n requests.put(`${API_ENDPOINT}`, trainingCourse),\r\n deactivateTrainingCourse: (courseId: number): Promise =>\r\n requests.put(`${API_ENDPOINT}/deactivate`, courseId, {\r\n headers: { 'Content-Type': 'application/json' },\r\n }),\r\n};\r\n\r\nexport default TrainingCatalogueService;\r\n","import ICVFlight from '../../models/ICVFlight';\r\nimport IMemberInformation from '../../models/IMemberInformation';\r\nimport IPaymentInformation from '../../models/IPaymentInformation';\r\nimport ITrainingCourse from '../../models/ITrainingCourse';\r\nimport {IPersonalData} from '../../models/Reservation/Forms/IPersonalDataForm';\r\nimport ICar from '../../models/Reservation/ICar';\r\nimport ICommercial, {ICommercialUI,} from '../../models/Reservation/ICommercial';\r\nimport IHotel from '../../models/Reservation/IHotel';\r\nimport IReservation, {IReservationGeneralInfo,} from '../../models/Reservation/IReservation';\r\nimport IStep from '../../models/Reservation/IStep';\r\nimport ITripType from '../../models/Reservation/ITripType';\r\nimport {ReservationState} from './ReservationReducer';\r\n\r\nexport enum ReservationActionType {\r\n SET_BOOKING,\r\n SET_STEPS,\r\n SET_ALL_TRIP_TYPES,\r\n SET_SELECTED_TRIP_TYPE,\r\n SET_ACTIVE_STEP,\r\n SET_MEMBER_INFORMATIONS,\r\n SET_ACTIVE_HOTEL,\r\n UPSERT_HOTEL,\r\n REMOVE_HOTEL,\r\n SET_ACTIVE_CAR,\r\n UPSERT_CAR,\r\n REMOVE_CAR,\r\n SET_ACTIVE_COMMERCIAL,\r\n UPSERT_COMMERCIAL,\r\n REMOVE_COMMERCIAL,\r\n REMOVE_COMMERCIAL_MEMBER,\r\n SET_INITIALIZED,\r\n UPSERT_CVFLIGHT,\r\n REMOVE_CVFLIGHT,\r\n REMOVE_CVFLIGHT_MEMBER,\r\n RESET,\r\n SET_IS_CANCELLED,\r\n SET_TEMPORARY_RESERVATION_CARD,\r\n SET_PERSONAL_DATA,\r\n SET_ALL_PAYMENT_TYPES,\r\n LOAD_BOOKING_STARTED,\r\n LOAD_BOOKING_DONE,\r\n LOAD_BOOKING_FAILED,\r\n SAVE_RESA_STARTED,\r\n SAVE_RESA_DONE,\r\n SET_TRAININGS,\r\n UPDATE_GENERAL_INFO,\r\n}\r\n\r\nexport type ReservationAction =\r\n | {\r\n type: ReservationActionType.SET_INITIALIZED;\r\n payload: boolean;\r\n }\r\n | {\r\n type: ReservationActionType.SET_BOOKING;\r\n payload: IReservation;\r\n }\r\n | {\r\n type: ReservationActionType.SET_STEPS;\r\n payload: IStep[];\r\n }\r\n | {\r\n type: ReservationActionType.SET_ALL_TRIP_TYPES;\r\n payload: ITripType[];\r\n }\r\n | {\r\n type: ReservationActionType.SET_SELECTED_TRIP_TYPE;\r\n payload: ITripType;\r\n }\r\n | {\r\n type: ReservationActionType.SET_ACTIVE_STEP;\r\n payload: number;\r\n }\r\n | {\r\n type: ReservationActionType.SET_MEMBER_INFORMATIONS;\r\n payload: IMemberInformation;\r\n }\r\n | {\r\n type: ReservationActionType.SET_ACTIVE_HOTEL;\r\n payload?: IHotel | null;\r\n }\r\n | {\r\n type: ReservationActionType.UPSERT_HOTEL;\r\n payload: IHotel;\r\n }\r\n | {\r\n type: ReservationActionType.REMOVE_HOTEL;\r\n payload: number;\r\n }\r\n | {\r\n type: ReservationActionType.SET_ACTIVE_CAR;\r\n payload?: ICar | null;\r\n }\r\n | {\r\n type: ReservationActionType.UPSERT_CAR;\r\n payload: ICar;\r\n }\r\n | {\r\n type: ReservationActionType.REMOVE_CAR;\r\n payload: number;\r\n }\r\n | {\r\n type: ReservationActionType.SET_ACTIVE_COMMERCIAL;\r\n payload?: ICommercialUI | null;\r\n }\r\n | {\r\n type: ReservationActionType.UPSERT_COMMERCIAL;\r\n payload: ICommercial[];\r\n }\r\n | {\r\n type: ReservationActionType.REMOVE_COMMERCIAL;\r\n payload: number;\r\n }\r\n | {\r\n type: ReservationActionType.REMOVE_COMMERCIAL_MEMBER;\r\n payload: { uiId: number; memberId: number };\r\n }\r\n | {\r\n type: ReservationActionType.UPSERT_CVFLIGHT;\r\n payload: ICVFlight;\r\n }\r\n | {\r\n type: ReservationActionType.REMOVE_CVFLIGHT;\r\n payload: number;\r\n }\r\n | {\r\n type: ReservationActionType.REMOVE_CVFLIGHT_MEMBER;\r\n payload: { uiId: number; memberId: number };\r\n }\r\n | {\r\n type: ReservationActionType.RESET;\r\n payload: ReservationState;\r\n }\r\n | {\r\n type: ReservationActionType.SET_IS_CANCELLED;\r\n payload: boolean;\r\n }\r\n | {\r\n type: ReservationActionType.SET_TEMPORARY_RESERVATION_CARD;\r\n payload: IPaymentInformation | undefined;\r\n }\r\n | {\r\n type: ReservationActionType.SET_PERSONAL_DATA;\r\n payload: IPersonalData;\r\n }\r\n | {\r\n type: ReservationActionType.SET_ALL_PAYMENT_TYPES;\r\n payload: string[];\r\n }\r\n | {\r\n type: ReservationActionType.LOAD_BOOKING_STARTED;\r\n }\r\n | {\r\n type: ReservationActionType.LOAD_BOOKING_DONE;\r\n payload: IReservation;\r\n }\r\n | {\r\n type: ReservationActionType.LOAD_BOOKING_FAILED;\r\n payload: string;\r\n }\r\n | {\r\n type: ReservationActionType.SAVE_RESA_STARTED;\r\n }\r\n | {\r\n type: ReservationActionType.SAVE_RESA_DONE;\r\n }\r\n | {\r\n type: ReservationActionType.SET_TRAININGS;\r\n payload: ITrainingCourse[];\r\n }\r\n | {\r\n type: ReservationActionType.UPDATE_GENERAL_INFO;\r\n payload: IReservationGeneralInfo;\r\n };\r\n","import produce from 'immer';\r\n\r\nimport ICVFlight, {ICVFlightLeg, IReservationCVFlightLegMember,} from '../../models/ICVFlight';\r\nimport IMemberInformation from '../../models/IMemberInformation';\r\nimport IPaymentInformation from '../../models/IPaymentInformation';\r\nimport ITrainingCourse from '../../models/ITrainingCourse';\r\nimport ICar from '../../models/Reservation/ICar';\r\nimport {ICommercialUI} from '../../models/Reservation/ICommercial';\r\nimport IHotel from '../../models/Reservation/IHotel';\r\nimport IReservation from '../../models/Reservation/IReservation';\r\nimport IStep from '../../models/Reservation/IStep';\r\nimport ITripType from '../../models/Reservation/ITripType';\r\nimport {ReservationAction, ReservationActionType} from './ReservationActions';\r\nimport {Steps} from './ReservationProvider';\r\n\r\nexport interface ReservationState {\r\n initialized: boolean;\r\n booking: IReservation;\r\n steps: IStep[];\r\n allTripTypes: ITripType[];\r\n selectedTripType?: ITripType;\r\n activeStep: number;\r\n memberInformations: IMemberInformation;\r\n activeHotel?: IHotel | null;\r\n activeCar?: ICar | null;\r\n activeCommercial?: ICommercialUI | null;\r\n isCancelled: boolean;\r\n temporaryReservationCard?: IPaymentInformation;\r\n paymentTypes: string[];\r\n loadingBooking: boolean;\r\n isDirty: boolean;\r\n savingReservation: boolean;\r\n trainings: ITrainingCourse[];\r\n}\r\n\r\nconst nextUiId = (items: any[]): number => {\r\n return items.length > 0\r\n ? Math.max.apply(\r\n Math,\r\n items.map((x) => x.uiId)\r\n ) + 1\r\n : 1;\r\n};\r\n\r\nconst removeCvFlightMember = (\r\n flight: ICVFlight,\r\n memberId: number\r\n): ICVFlight => {\r\n return {\r\n ...flight,\r\n cvFlightLegs: flight.cvFlightLegs.map((leg) => ({\r\n ...leg,\r\n reservationCVFlightLegMembers: leg.reservationCVFlightLegMembers.reduce<\r\n IReservationCVFlightLegMember[]\r\n >(\r\n (acc, curr) => (curr.memberId === memberId ? [...acc] : [...acc, curr]),\r\n []\r\n ),\r\n })),\r\n };\r\n};\r\n\r\nexport const setUids = (booking: IReservation): IReservation => {\r\n const reservationWithUid = produce(booking, (draft) => {\r\n draft.cvFlights = draft.cvFlights?.map((flight, index) => ({\r\n ...flight,\r\n uiId: index + 1,\r\n }));\r\n draft.commercials = draft.commercials?.map((commercial, index) => ({\r\n ...commercial,\r\n uiId: index + 1,\r\n }));\r\n draft.hotels = draft.hotels?.map((hotel, index) => ({\r\n ...hotel,\r\n uiId: index + 1,\r\n }));\r\n draft.cars = draft.cars?.map((car, index) => ({...car, uiId: index + 1}));\r\n });\r\n\r\n return reservationWithUid;\r\n};\r\n\r\nexport const ReservationReducer = (\r\n state: ReservationState,\r\n action: ReservationAction\r\n) => {\r\n switch (action.type) {\r\n case ReservationActionType.SET_INITIALIZED:\r\n return {...state, initialized: action.payload};\r\n case ReservationActionType.SET_BOOKING:\r\n return {...state, booking: action.payload};\r\n case ReservationActionType.SET_STEPS:\r\n return {...state, steps: action.payload, initialized: true};\r\n case ReservationActionType.SET_ALL_TRIP_TYPES:\r\n return {...state, allTripTypes: action.payload};\r\n case ReservationActionType.SET_SELECTED_TRIP_TYPE:\r\n return {\r\n ...state,\r\n selectedTripType: action.payload,\r\n };\r\n case ReservationActionType.SET_ACTIVE_STEP:\r\n return {\r\n ...state,\r\n activeStep: action.payload,\r\n activeCar: null,\r\n activeHotel: null,\r\n activeCommercial: null,\r\n };\r\n case ReservationActionType.SET_MEMBER_INFORMATIONS:\r\n return {...state, memberInformations: action.payload};\r\n case ReservationActionType.SET_ACTIVE_HOTEL:\r\n return {\r\n ...state,\r\n activeHotel: action.payload,\r\n activeStep: state.steps.findIndex((s) => s.name === Steps.HOTEL),\r\n activeCommercial: null,\r\n activeCar: null,\r\n };\r\n case ReservationActionType.UPSERT_HOTEL:\r\n return {\r\n ...state,\r\n activeHotel: null,\r\n booking: produce(state.booking, (draft) => {\r\n const entryIndex =\r\n state.booking.hotels?.findIndex(\r\n (h) => h.uiId === action.payload.uiId\r\n ) ?? -1;\r\n draft.hotels\r\n ? entryIndex !== -1\r\n ? (draft.hotels[entryIndex] = action.payload)\r\n : draft.hotels.push({\r\n ...action.payload,\r\n uiId: nextUiId(state.booking.hotels ?? []),\r\n })\r\n : (draft.hotels = [\r\n {\r\n ...action.payload,\r\n uiId: nextUiId(state.booking.hotels ?? []),\r\n },\r\n ]);\r\n }),\r\n isDirty: true,\r\n };\r\n case ReservationActionType.REMOVE_HOTEL:\r\n return {\r\n ...state,\r\n activeHotel:\r\n state.activeHotel?.uiId === action.payload ? null : state.activeHotel,\r\n booking: produce(state.booking, (draft) => {\r\n const entryIndex =\r\n state.booking.hotels?.findIndex((h) => h.uiId === action.payload) ??\r\n -1;\r\n if (entryIndex !== -1) draft.hotels?.splice(entryIndex, 1);\r\n }),\r\n isDirty: true,\r\n };\r\n case ReservationActionType.SET_ACTIVE_CAR:\r\n return {\r\n ...state,\r\n activeCar: action.payload,\r\n activeStep: state.steps.findIndex((s) => s.name === Steps.CAR),\r\n activeCommercial: null,\r\n activeHotel: null,\r\n };\r\n case ReservationActionType.UPSERT_CAR:\r\n return {\r\n ...state,\r\n activeCar: null,\r\n booking: produce(state.booking, (draft) => {\r\n const entryIndex =\r\n state.booking.cars?.findIndex(\r\n (h) => h.uiId === action.payload.uiId\r\n ) ?? -1;\r\n draft.cars\r\n ? entryIndex !== -1\r\n ? (draft.cars[entryIndex] = action.payload)\r\n : draft.cars.push({\r\n ...action.payload,\r\n uiId: nextUiId(state.booking.cars ?? []),\r\n })\r\n : (draft.cars = [\r\n {...action.payload, uiId: nextUiId(state.booking.cars ?? [])},\r\n ]);\r\n }),\r\n isDirty: true,\r\n };\r\n case ReservationActionType.REMOVE_CAR:\r\n return {\r\n ...state,\r\n activeCar:\r\n state.activeCar?.uiId === action.payload ? null : state.activeCar,\r\n booking: produce(state.booking, (draft) => {\r\n const entryIndex =\r\n state.booking.cars?.findIndex((h) => h.uiId === action.payload) ??\r\n -1;\r\n if (entryIndex !== -1) draft.cars?.splice(entryIndex, 1);\r\n }),\r\n isDirty: true,\r\n };\r\n case ReservationActionType.SET_ACTIVE_COMMERCIAL:\r\n return {\r\n ...state,\r\n activeCommercial: action.payload,\r\n activeStep: state.steps.findIndex(\r\n (s) => s.name === Steps.COMMERCIAL_TRANSPORT\r\n ),\r\n activeCar: null,\r\n activeHotel: null,\r\n };\r\n case ReservationActionType.UPSERT_COMMERCIAL:\r\n return {\r\n ...state,\r\n activeCommercial: null,\r\n booking: produce(state.booking, (draft) => {\r\n const uiId = action.payload[0]?.uiId;\r\n if (uiId > 0) {\r\n draft.commercials = draft.commercials?.filter(\r\n (c) => c.uiId !== uiId\r\n );\r\n draft.commercials\r\n ? (draft.commercials = [...draft.commercials, ...action.payload])\r\n : (draft.commercials = [...action.payload]);\r\n } else {\r\n const nextId = nextUiId(\r\n Array.from(\r\n new Set(\r\n state.booking.commercials?.map((c) => {\r\n return {...c, memberId: 0};\r\n })\r\n )\r\n ) ?? []\r\n );\r\n const entries = action.payload.map((entry) => ({\r\n ...entry,\r\n uiId: nextId,\r\n }));\r\n draft.commercials\r\n ? (draft.commercials = [...draft.commercials, ...entries])\r\n : (draft.commercials = [...entries]);\r\n }\r\n }),\r\n isDirty: true,\r\n };\r\n case ReservationActionType.REMOVE_COMMERCIAL:\r\n return {\r\n ...state,\r\n activeCommercial:\r\n state.activeCommercial?.uiId === action.payload\r\n ? null\r\n : state.activeCommercial,\r\n booking: produce(state.booking, (draft) => {\r\n draft.commercials = draft.commercials?.filter(\r\n (c) => c.uiId !== action.payload\r\n );\r\n }),\r\n isDirty: true,\r\n };\r\n case ReservationActionType.REMOVE_COMMERCIAL_MEMBER:\r\n return {\r\n ...state,\r\n activeCommercial:\r\n state.activeCommercial?.uiId === action.payload.uiId\r\n ? null\r\n : state.activeCommercial,\r\n booking: produce(state.booking, (draft) => {\r\n draft.commercials = draft.commercials?.filter(\r\n (c) =>\r\n c.uiId !== action.payload.uiId ||\r\n c.memberId !== action.payload.memberId\r\n );\r\n }),\r\n isDirty: true,\r\n };\r\n case ReservationActionType.UPSERT_CVFLIGHT:\r\n return {\r\n ...state,\r\n booking: produce(state.booking, (draft) => {\r\n const entryIndex =\r\n state.booking.cvFlights?.findIndex(\r\n (h) => h.uiId === action.payload.uiId\r\n ) ?? -1;\r\n draft.cvFlights\r\n ? entryIndex !== -1\r\n ? (draft.cvFlights[entryIndex] = action.payload)\r\n : draft.cvFlights.push({\r\n ...action.payload,\r\n uiId: nextUiId(state.booking.cvFlights ?? []),\r\n })\r\n : (draft.cvFlights = [\r\n {\r\n ...action.payload,\r\n uiId: nextUiId(state.booking.cvFlights ?? []),\r\n },\r\n ]);\r\n }),\r\n isDirty: true,\r\n };\r\n case ReservationActionType.REMOVE_CVFLIGHT:\r\n return {\r\n ...state,\r\n booking: produce(state.booking, (draft) => {\r\n const entryIndex =\r\n state.booking.cvFlights?.findIndex(\r\n (h) => h.uiId === action.payload\r\n ) ?? -1;\r\n if (entryIndex !== -1) {\r\n const currentCVFlight = state.booking.cvFlights?.at(entryIndex);\r\n currentCVFlight?.cvFlightLegs\r\n .flatMap((x) => x.reservationCVFlightLegMembers)\r\n .map((x) => {\r\n if (draft.removedCVMember === undefined) {\r\n draft.removedCVMember = [];\r\n }\r\n draft.removedCVMember.push({\r\n cvFlightId: currentCVFlight.cvFlightId,\r\n memberId: x.memberId,\r\n });\r\n });\r\n\r\n draft.cvFlights?.splice(entryIndex, 1);\r\n }\r\n }),\r\n isDirty: true,\r\n };\r\n case ReservationActionType.REMOVE_CVFLIGHT_MEMBER:\r\n return {\r\n ...state,\r\n booking: produce(state.booking, (draft) => {\r\n if (draft.cvFlights) {\r\n const index = draft.cvFlights.findIndex(\r\n (f) => f.uiId === action.payload.uiId\r\n );\r\n const currentCVFlight = state.booking.cvFlights?.at(index);\r\n if (currentCVFlight) {\r\n if (draft.removedCVMember === undefined) {\r\n draft.removedCVMember = [];\r\n }\r\n draft.removedCVMember.push({\r\n cvFlightId: currentCVFlight?.cvFlightId,\r\n memberId: action.payload.memberId,\r\n });\r\n }\r\n\r\n draft.reservationMembers = draft.reservationMembers.filter(e => e.memberId !== action.payload.memberId);\r\n\r\n draft.cvFlights.splice(\r\n index,\r\n 1,\r\n removeCvFlightMember(\r\n draft.cvFlights[index],\r\n action.payload.memberId\r\n )\r\n );\r\n }\r\n }),\r\n isDirty: true,\r\n };\r\n default:\r\n return state;\r\n case ReservationActionType.RESET:\r\n return {...action.payload};\r\n case ReservationActionType.SET_IS_CANCELLED:\r\n return {...state, isCancelled: action.payload};\r\n case ReservationActionType.SET_TEMPORARY_RESERVATION_CARD:\r\n return {...state, temporaryReservationCard: action.payload};\r\n case ReservationActionType.SET_PERSONAL_DATA:\r\n return {\r\n ...state,\r\n booking: {...state.booking, ...action.payload},\r\n isDirty: true,\r\n };\r\n case ReservationActionType.SET_ALL_PAYMENT_TYPES:\r\n return {...state, paymentTypes: action.payload};\r\n case ReservationActionType.LOAD_BOOKING_STARTED:\r\n return {...state, loadingBooking: true, initialized: false};\r\n case ReservationActionType.LOAD_BOOKING_DONE:\r\n return {\r\n ...state,\r\n loadingBooking: false,\r\n booking: {...setUids(action.payload), conditionsAccepted: true}, //in edit we have already accepted the condition\r\n activeHotel: null,\r\n activeCommercial: null,\r\n activeCar: null,\r\n };\r\n case ReservationActionType.LOAD_BOOKING_FAILED:\r\n return {...state, loadingBooking: false};\r\n case ReservationActionType.SAVE_RESA_STARTED:\r\n return {...state, savingReservation: true};\r\n case ReservationActionType.SAVE_RESA_DONE:\r\n return {...state, savingReservation: false};\r\n case ReservationActionType.SET_TRAININGS:\r\n return {...state, trainings: action.payload};\r\n case ReservationActionType.UPDATE_GENERAL_INFO:\r\n return {...state, booking: {...state.booking, ...action.payload}};\r\n }\r\n};\r\n\r\nexport default ReservationReducer;\r\n","import moment from 'moment';\r\nimport React, {createContext, useContext, useEffect, useMemo, useReducer,} from 'react';\r\nimport {useHistory} from 'react-router-dom';\r\nimport {scroller} from 'react-scroll';\r\n\r\nimport {ReactComponent as CarIcon} from '../../assets/icons/stepper/car.svg';\r\nimport {ReactComponent as CarSelectedIcon} from '../../assets/icons/stepper/carSelected.svg';\r\nimport {ReactComponent as CommercialIcon} from '../../assets/icons/stepper/commercial.svg';\r\nimport {ReactComponent as CommercialSelectedIcon} from '../../assets/icons/stepper/commercialSelected.svg';\r\nimport {ReactComponent as FlightIcon} from '../../assets/icons/stepper/cvFlight.svg';\r\nimport {ReactComponent as FlightSelectedIcon} from '../../assets/icons/stepper/cvFlightSelected.svg';\r\nimport {ReactComponent as HotelIcon} from '../../assets/icons/stepper/hotel.svg';\r\nimport {ReactComponent as HotelSelectedIcon} from '../../assets/icons/stepper/hotelSelected.svg';\r\nimport {ReactComponent as PersonalDataIcon} from '../../assets/icons/stepper/personalData.svg';\r\nimport {ReactComponent as PersonalDataSelectedIcon} from '../../assets/icons/stepper/personalDataSelected.svg';\r\nimport {ReactComponent as ReviewIcon} from '../../assets/icons/stepper/review.svg';\r\nimport {ReactComponent as ReviewSelectedIcon} from '../../assets/icons/stepper/reviewSelected.svg';\r\nimport useBreakpoint from '../../hooks/useBreakpoint';\r\nimport useReservationPassengers from '../../hooks/useReservationPassengers';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport ICVFlight from '../../models/ICVFlight';\r\nimport IMemberExtended from '../../models/IMemberExtended';\r\nimport IMemberInformation from '../../models/IMemberInformation';\r\nimport IPaymentInformation from '../../models/IPaymentInformation';\r\nimport {IPersonalData} from '../../models/Reservation/Forms/IPersonalDataForm';\r\nimport ICar from '../../models/Reservation/ICar';\r\nimport ICommercial, {ICommercialUI,} from '../../models/Reservation/ICommercial';\r\nimport IHotel from '../../models/Reservation/IHotel';\r\nimport IReservation, {IReservationGeneralInfo,} from '../../models/Reservation/IReservation';\r\nimport IReservationMember from '../../models/Reservation/IReservationMember';\r\nimport IStep from '../../models/Reservation/IStep';\r\nimport {ReservationStatus} from '../../models/Reservation/ReservationEnum';\r\nimport MemberService from '../../services/MemberService';\r\nimport ReservationService from '../../services/ReservationService';\r\nimport TrainingCatalogueService from '../../services/TrainingCatalogueService';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport {useLocalStorageContext} from '../LocalStorageContext/LocalStorageContext';\r\nimport {LocalStorageActionType} from '../LocalStorageContext/LocalStorageReducer';\r\nimport {ReservationAction, ReservationActionType} from './ReservationActions';\r\nimport ReservationReducer, {ReservationState as ReservationState,} from './ReservationReducer';\r\n\r\nexport enum Steps {\r\n SETUP = 'Setup',\r\n CV_FLIGHT = 'CV Flight',\r\n COMMERCIAL_TRANSPORT = 'Flight/Train',\r\n HOTEL = 'Hotel',\r\n CAR = 'Car',\r\n PERSONAL_DATA = 'Personal Data',\r\n REVIEW = 'Finish',\r\n}\r\n\r\nexport const InitialState: ReservationState = {\r\n initialized: false,\r\n booking: {} as IReservation,\r\n steps: [],\r\n activeStep: 0,\r\n allTripTypes: [],\r\n selectedTripType: undefined,\r\n memberInformations: {} as IMemberInformation,\r\n activeHotel: null,\r\n activeCar: null,\r\n activeCommercial: null,\r\n isCancelled: false,\r\n temporaryReservationCard: undefined,\r\n paymentTypes: [],\r\n loadingBooking: false,\r\n isDirty: false,\r\n savingReservation: false,\r\n trainings: [],\r\n};\r\n\r\nexport interface IReservationContext {\r\n state: ReservationState;\r\n dispatch: React.Dispatch;\r\n saveSetup: (setup: any) => void;\r\n saveToLocalStorage: () => void;\r\n saveBooking: () => void;\r\n setActiveStep: (step: number) => void;\r\n setActiveService: (stepName: string, serviceId: number) => void;\r\n nextStep: () => void;\r\n previousStep: () => void;\r\n cancelBooking: () => void;\r\n setActiveHotel: (hotel?: IHotel | null) => void;\r\n upsertHotel: (entry: IHotel) => void;\r\n removeHotel: (id: number) => void;\r\n setActiveCar: (car?: ICar | null) => void;\r\n upsertCar: (car: ICar) => void;\r\n removeCar: (id: number) => void;\r\n setActiveCommercial: (commercial?: ICommercialUI | null) => void;\r\n upsertCommercial: (commercialEntries: ICommercial[]) => void;\r\n removeCommercial: (commercialUiId: number) => void;\r\n removeCommercialMember: (commercialMember: {\r\n uiId: number;\r\n memberId: number;\r\n }) => void;\r\n upsertCvFlight: (flight: ICVFlight) => void;\r\n removeCvFlight: (id: number) => void;\r\n removeCvFlightMember: (member: { uiId: number; memberId: number }) => void;\r\n setIsCancelled: () => void;\r\n fetchMemberInformations: () => void;\r\n setTemporaryReservationCard: (card: IPaymentInformation | undefined) => void;\r\n savePersonalData: (personalData: IPersonalData) => void;\r\n validatePersonalData: (personalData: IPersonalData) => string;\r\n loadBooking: (id: number) => void;\r\n scrollToTop: () => void;\r\n updateGeneralInfo: (infos: IReservationGeneralInfo) => void;\r\n}\r\n\r\nconst ReservationContext = createContext({} as IReservationContext);\r\n\r\nconst ReservationProvider: React.FC = ({ children }) => {\r\n const {\r\n state: { connectedMember, bookingSteps, isBookingCancelled },\r\n dispatch: localStorageDispatch,\r\n } = useLocalStorageContext();\r\n\r\n const [state, dispatch] = useReducer(ReservationReducer, InitialState);\r\n const { addMessage } = useSnackbar();\r\n const history = useHistory();\r\n const { passengers } = useReservationPassengers(\r\n state.memberInformations,\r\n state.selectedTripType,\r\n state.booking.reservationMembers\r\n );\r\n const breakpoint = useBreakpoint();\r\n\r\n useEffect(() => {\r\n fetchAllTripTypes();\r\n fetchPaymentTypes();\r\n }, []);\r\n\r\n useEffect(() => {\r\n setInitialized(false);\r\n fetchMemberInformations();\r\n }, [connectedMember]);\r\n\r\n useEffect(() => {\r\n if (state.booking) {\r\n if (\r\n (state.booking?.reservationId === 0 ||\r\n state.booking?.courseId !== null) &&\r\n state.trainings.length === 0\r\n ) {\r\n fetchTrainings();\r\n }\r\n if (state.selectedTripType?.tripTypeId !== state.booking?.tripTypeId) {\r\n setInitialized(false);\r\n let selectedType = state.allTripTypes.find(\r\n (tt) => tt.tripTypeId === state.booking.tripTypeId\r\n );\r\n selectedType &&\r\n dispatch({\r\n type: ReservationActionType.SET_SELECTED_TRIP_TYPE,\r\n payload: selectedType,\r\n });\r\n } else {\r\n setInitialized(true); // we did not need to refresh steps (same trip type), intialization is done\r\n }\r\n if (\r\n state.memberInformations &&\r\n state.memberInformations.paymentInformations &&\r\n state.booking.ccNumber &&\r\n state.memberInformations.paymentInformations.find(\r\n (p) => p.cbNumber === state.booking.ccNumber\r\n ) === undefined\r\n ) {\r\n let payment: IPaymentInformation = {\r\n cbNumber: state.booking.ccNumber,\r\n cbOwner: state.booking.ccOwner,\r\n isDefault: true,\r\n paymentInfoId: 0,\r\n paymentType: state.booking.ccType,\r\n userId: state.memberInformations?.user?.userId ?? 0,\r\n expirationDate: state.booking.ccExpirationDate,\r\n };\r\n setTemporaryReservationCard(payment);\r\n }\r\n // Save booking in local storage\r\n saveToLocalStorage();\r\n }\r\n }, [state.booking]);\r\n\r\n useEffect(() => {\r\n if (state.selectedTripType) {\r\n initiateSteps();\r\n }\r\n }, [state.selectedTripType]);\r\n\r\n const initiateSteps = () => {\r\n let initialisedSteps: IStep[] = []; // = state.steps;\r\n if (\r\n //state.booking.setup &&\r\n state.selectedTripType\r\n ) {\r\n state.selectedTripType.isCVFlight &&\r\n initialisedSteps.push({\r\n name: Steps.CV_FLIGHT,\r\n icon: ,\r\n selectedIcon: ,\r\n });\r\n state.selectedTripType.allowCommercial &&\r\n initialisedSteps.push({\r\n name: Steps.COMMERCIAL_TRANSPORT,\r\n icon: ,\r\n selectedIcon: ,\r\n });\r\n state.selectedTripType.allowHotel &&\r\n initialisedSteps.push({\r\n name: Steps.HOTEL,\r\n icon: ,\r\n selectedIcon: ,\r\n });\r\n state.selectedTripType.allowCar &&\r\n initialisedSteps.push({\r\n name: Steps.CAR,\r\n icon: ,\r\n selectedIcon: ,\r\n });\r\n }\r\n initialisedSteps.push({\r\n name: Steps.PERSONAL_DATA,\r\n icon: ,\r\n selectedIcon: ,\r\n });\r\n initialisedSteps.push({\r\n name: Steps.REVIEW,\r\n icon: ,\r\n selectedIcon: ,\r\n });\r\n\r\n dispatch({\r\n type: ReservationActionType.SET_STEPS,\r\n payload: initialisedSteps,\r\n });\r\n\r\n setInitialized(true);\r\n };\r\n\r\n useEffect(() => {\r\n fetchMemberInformations();\r\n }, [state.temporaryReservationCard]);\r\n\r\n const setInitialized = (value: boolean) => {\r\n dispatch({\r\n type: ReservationActionType.SET_INITIALIZED,\r\n payload: value,\r\n });\r\n };\r\n\r\n const fetchMemberInformations = async () => {\r\n if (connectedMember) {\r\n if (connectedMember.userName) {\r\n MemberService.getInformationById(connectedMember?.memberId, true)\r\n .then((information) => {\r\n let filtered = {\r\n ...information,\r\n relatives: information.relatives?.filter(\r\n (member: IMemberExtended) =>\r\n (member.isActive === true || member.isActive === null) &&\r\n (!(\r\n member.isBlocked &&\r\n moment(member.blockedFrom).isBefore(moment())\r\n ) ||\r\n member.isBlocked === null)\r\n ),\r\n };\r\n if (state.temporaryReservationCard) {\r\n filtered.paymentInformations = [\r\n ...filtered.paymentInformations,\r\n state.temporaryReservationCard,\r\n ];\r\n }\r\n dispatch({\r\n type: ReservationActionType.SET_MEMBER_INFORMATIONS,\r\n payload: { ...filtered },\r\n });\r\n })\r\n .catch((error) => addMessage(error.message));\r\n } else {\r\n //this is a guest !\r\n MemberService.getGuest(connectedMember?.memberId, true)\r\n .then((information) => {\r\n let filtered: any = {\r\n ...information,\r\n paymentInformations: [],\r\n relatives: [],\r\n };\r\n if (state.temporaryReservationCard) {\r\n filtered.paymentInformations = [\r\n ...filtered.paymentInformations,\r\n state.temporaryReservationCard,\r\n ];\r\n }\r\n dispatch({\r\n type: ReservationActionType.SET_MEMBER_INFORMATIONS,\r\n payload: filtered as IMemberInformation,\r\n });\r\n })\r\n .catch((error) => addMessage(error.message));\r\n }\r\n } else {\r\n MemberService.get()\r\n .then((information) => {\r\n let filtered = {\r\n ...information,\r\n relatives: information.relatives?.filter(\r\n (member: IMemberExtended) =>\r\n (member.isActive === true || member.isActive === null) &&\r\n (!(\r\n member.isBlocked &&\r\n moment(member.blockedFrom).isBefore(moment())\r\n ) ||\r\n member.isBlocked === null)\r\n ),\r\n };\r\n if (state.temporaryReservationCard) {\r\n filtered.paymentInformations = [\r\n ...filtered.paymentInformations,\r\n state.temporaryReservationCard,\r\n ];\r\n }\r\n dispatch({\r\n type: ReservationActionType.SET_MEMBER_INFORMATIONS,\r\n payload: { ...filtered },\r\n });\r\n })\r\n .catch((error) => addMessage(error.message));\r\n }\r\n };\r\n\r\n const fetchAllTripTypes = async () => {\r\n ReservationService.getAllTripTypes()\r\n .then((result) => {\r\n if (result) {\r\n dispatch({\r\n type: ReservationActionType.SET_ALL_TRIP_TYPES,\r\n payload: result,\r\n });\r\n loadFromStorage();\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const fetchPaymentTypes = async () => {\r\n MemberService.getPaymentTypes()\r\n .then((result) => {\r\n if (result) {\r\n dispatch({\r\n type: ReservationActionType.SET_ALL_PAYMENT_TYPES,\r\n payload: result,\r\n });\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const fetchTrainings = () => {\r\n TrainingCatalogueService.getCurrentTrainingCourses()\r\n .then((result) => {\r\n if (result) {\r\n dispatch({\r\n type: ReservationActionType.SET_TRAININGS,\r\n payload: [...result],\r\n });\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const saveSetup = (setup: any) => {\r\n dispatch({\r\n type: ReservationActionType.SET_BOOKING,\r\n payload: { ...setup },\r\n });\r\n };\r\n\r\n const savePersonalData = (personalData: IPersonalData) => {\r\n dispatch({\r\n type: ReservationActionType.SET_PERSONAL_DATA,\r\n payload: personalData,\r\n });\r\n };\r\n\r\n const saveToLocalStorage = () => {\r\n const commercialsWithoutAttachments = state.booking.commercials?.reduce(\r\n (acc: ICommercial[], curr) => {\r\n return curr\r\n ? [...acc, { ...curr, task: { ...curr.task, attachments: [] } }]\r\n : acc;\r\n },\r\n []\r\n );\r\n const hotelsWithoutAttachments = state.booking.hotels?.reduce(\r\n (acc: IHotel[], curr) => {\r\n return curr\r\n ? [...acc, { ...curr, task: { ...curr.task, attachments: [] } }]\r\n : acc;\r\n },\r\n []\r\n );\r\n const carsWithoutAttachments = state.booking.cars?.reduce(\r\n (acc: ICar[], curr) => {\r\n return curr\r\n ? [...acc, { ...curr, task: { ...curr.task, attachments: [] } }]\r\n : acc;\r\n },\r\n []\r\n );\r\n\r\n const bookingWithoutAttachments = {\r\n ...state.booking,\r\n commercials: commercialsWithoutAttachments,\r\n hotels: hotelsWithoutAttachments,\r\n cars: carsWithoutAttachments,\r\n };\r\n localStorageDispatch({\r\n type: LocalStorageActionType.BOOKING_STEPS,\r\n payload: JSON.stringify(bookingWithoutAttachments),\r\n });\r\n };\r\n\r\n const loadFromStorage = () => {\r\n if (isBookingCancelled && isBookingCancelled !== 'null') {\r\n localStorageDispatch({\r\n type: LocalStorageActionType.BOOKING_STEPS,\r\n payload: 'null',\r\n });\r\n localStorageDispatch({\r\n type: LocalStorageActionType.SET_IS_BOOKING_CANCELLED,\r\n payload: 'false',\r\n });\r\n } else {\r\n if (bookingSteps && bookingSteps.tripTypeId) {\r\n dispatch({\r\n type: ReservationActionType.SET_BOOKING,\r\n payload: bookingSteps,\r\n });\r\n } else {\r\n setInitialized(true);\r\n }\r\n }\r\n setInitialized(true);\r\n };\r\n\r\n const validatePersonalData = (personalData: IPersonalData): string => {\r\n if (!validateImmigrationDocuments(personalData.reservationMembers))\r\n return buildPersonalDataMessage('Immigration document(s) not defined');\r\n if (personalData.emergencyContactId === 0)\r\n return buildPersonalDataMessage('Emergency contact not defined');\r\n if (!validateContactLocation(personalData))\r\n return buildPersonalDataMessage('Contact location not defined');\r\n if (!validateContactInformation(personalData))\r\n return buildPersonalDataMessage('Contact information not defined');\r\n if (connectedMember === null && !personalData.conditionsAccepted)\r\n return buildPersonalDataMessage('You must first accept the conditions');\r\n return '';\r\n };\r\n\r\n const buildPersonalDataMessage = (specific: string) => {\r\n const baseMessage = 'You must first fill up your personal data: ';\r\n return `${baseMessage} ${specific}`;\r\n };\r\n\r\n const validateImmigrationDocuments = (\r\n reservationMembers: IReservationMember[]\r\n ) => {\r\n const validateDocument = (memberId: number, documentId: number) => {\r\n const member =\r\n state.memberInformations.relatives?.find(\r\n (r) => r.memberId === memberId\r\n ) ?? state.memberInformations.member;\r\n return (\r\n documentId > 0 &&\r\n member.documents.find((d) => d.documentId === documentId)\r\n );\r\n };\r\n return reservationMembers.every((member) =>\r\n validateDocument(member.memberId, member.documentId)\r\n );\r\n };\r\n\r\n const validateContactLocation = (personalData: IPersonalData) => {\r\n const isMandatory =\r\n state.selectedTripType?.isBusiness &&\r\n (state.booking?.hotels?.length ?? 0) === 0;\r\n if (isMandatory) {\r\n return (\r\n personalData.contactLocations &&\r\n personalData.contactLocations.length > 0\r\n );\r\n }\r\n return true;\r\n };\r\n\r\n const validateContactInformation = (personalData: IPersonalData) => {\r\n return personalData.emailPrimary && personalData.emailTicketDelivery;\r\n };\r\n\r\n const validateContext = (): boolean => {\r\n if (\r\n (!state.booking.cvFlights || state.booking.cvFlights.length === 0) &&\r\n (!state.booking.commercials || state.booking.commercials.length === 0) &&\r\n (!state.booking.hotels || state.booking.hotels.length === 0) &&\r\n (!state.booking.cars || state.booking.cars.length === 0)\r\n ) {\r\n addMessage(\r\n 'You basket is empty, please add something first',\r\n MessageType.Error\r\n );\r\n return false;\r\n }\r\n const personalDataValidation = validatePersonalData({ ...state.booking });\r\n if (personalDataValidation.length > 0) {\r\n addMessage(personalDataValidation, MessageType.Error);\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const saveBooking = () => {\r\n dispatch({ type: ReservationActionType.SAVE_RESA_STARTED });\r\n if (validateContext()) {\r\n const data = {\r\n ...state.booking,\r\n ownerId: state.memberInformations.member.memberId,\r\n } as IReservation;\r\n const promise =\r\n state.booking.reservationId > 0\r\n ? ReservationService.update(data)\r\n : ReservationService.create({\r\n ...data,\r\n status: ReservationStatus.WaitingForApproval,\r\n });\r\n promise\r\n .then((result) => {\r\n dispatch({ type: ReservationActionType.SAVE_RESA_DONE });\r\n result\r\n ? addMessage('Reservation saved', MessageType.Success)\r\n : addMessage(\"Reservation couldn't be saved\", MessageType.Error);\r\n cancelBooking();\r\n })\r\n .catch((err) => {\r\n dispatch({ type: ReservationActionType.SAVE_RESA_DONE });\r\n addMessage(err.message, MessageType.Error);\r\n });\r\n } else {\r\n dispatch({ type: ReservationActionType.SAVE_RESA_DONE });\r\n }\r\n };\r\n\r\n const setActiveStep = (step: number) => {\r\n dispatch({ type: ReservationActionType.SET_ACTIVE_STEP, payload: step });\r\n };\r\n\r\n const setActiveService = (stepName: string, serviceId: number) => {\r\n switch (stepName) {\r\n case Steps.HOTEL:\r\n const hotel = state.booking?.hotels?.find(\r\n (h) => h.hotelId === serviceId\r\n );\r\n if (hotel) setActiveHotel(hotel);\r\n break;\r\n case Steps.CAR:\r\n const car = state.booking?.cars?.find((h) => h.carId === serviceId);\r\n if (car) setActiveCar(car);\r\n break;\r\n case Steps.COMMERCIAL_TRANSPORT:\r\n const commercial = state.booking?.commercials?.find(\r\n (h) => h.commercialId === serviceId\r\n );\r\n if (commercial)\r\n setActiveCommercial({\r\n ...commercial,\r\n travelers: [\r\n passengers.find((p) => p.memberId === commercial.memberId) ?? {\r\n firstName: 'member not found',\r\n memberId: 0,\r\n lastName: '',\r\n relationName: 'unknown',\r\n },\r\n ],\r\n });\r\n break;\r\n default:\r\n setActiveStep(state.steps.findIndex((s) => s.name === Steps.REVIEW));\r\n }\r\n };\r\n\r\n const previousStep = () => {\r\n dispatch({\r\n type: ReservationActionType.SET_ACTIVE_STEP,\r\n payload: state.activeStep - 1,\r\n });\r\n scrollToTop();\r\n };\r\n\r\n const nextStep = () => {\r\n dispatch({\r\n type: ReservationActionType.SET_ACTIVE_STEP,\r\n payload: state.activeStep + 1,\r\n });\r\n scrollToTop();\r\n };\r\n\r\n const scrollToTop = () => {\r\n scroller.scrollTo('scroller-current-step', {\r\n duration: 800,\r\n delay: 0,\r\n smooth: 'easeInOutQuart',\r\n offset: breakpoint.smdown ? -72 : 0,\r\n });\r\n };\r\n\r\n const cancelBooking = () => {\r\n localStorageDispatch({\r\n type: LocalStorageActionType.BOOKING_STEPS,\r\n payload: 'null',\r\n });\r\n let resetPayload = {\r\n ...InitialState,\r\n paymentTypes: state.paymentTypes,\r\n allTripTypes: state.allTripTypes,\r\n memberInformations: state.memberInformations,\r\n initialized: true,\r\n };\r\n dispatch({ type: ReservationActionType.RESET, payload: resetPayload });\r\n localStorageDispatch({\r\n type: LocalStorageActionType.SET_IS_BOOKING_CANCELLED,\r\n payload: 'false',\r\n });\r\n history.push('/reservations/myReservations');\r\n };\r\n\r\n const setActiveHotel = (hotel?: IHotel | null) => {\r\n dispatch({ type: ReservationActionType.SET_ACTIVE_HOTEL, payload: hotel });\r\n };\r\n\r\n const setActiveCar = (car?: ICar | null) => {\r\n dispatch({ type: ReservationActionType.SET_ACTIVE_CAR, payload: car });\r\n };\r\n\r\n const setActiveCommercial = (commercial?: ICommercialUI | null) => {\r\n dispatch({\r\n type: ReservationActionType.SET_ACTIVE_COMMERCIAL,\r\n payload: commercial,\r\n });\r\n };\r\n\r\n const upsertHotel = (hotel: IHotel) => {\r\n dispatch({ type: ReservationActionType.UPSERT_HOTEL, payload: hotel });\r\n };\r\n\r\n const removeHotel = (id: number) => {\r\n dispatch({ type: ReservationActionType.REMOVE_HOTEL, payload: id });\r\n };\r\n\r\n const upsertCar = (car: ICar) => {\r\n dispatch({ type: ReservationActionType.UPSERT_CAR, payload: car });\r\n };\r\n\r\n const removeCar = (id: number) => {\r\n dispatch({ type: ReservationActionType.REMOVE_CAR, payload: id });\r\n };\r\n\r\n const upsertCommercial = (commercialEntries: ICommercial[]) => {\r\n dispatch({\r\n type: ReservationActionType.UPSERT_COMMERCIAL,\r\n payload: commercialEntries,\r\n });\r\n };\r\n\r\n const removeCommercial = (commercialUiId: number) => {\r\n dispatch({\r\n type: ReservationActionType.REMOVE_COMMERCIAL,\r\n payload: commercialUiId,\r\n });\r\n };\r\n\r\n const removeCommercialMember = (commercialMember: {\r\n uiId: number;\r\n memberId: number;\r\n }) => {\r\n dispatch({\r\n type: ReservationActionType.REMOVE_COMMERCIAL_MEMBER,\r\n payload: commercialMember,\r\n });\r\n };\r\n\r\n const upsertCvFlight = (flight: ICVFlight) => {\r\n dispatch({ type: ReservationActionType.UPSERT_CVFLIGHT, payload: flight });\r\n };\r\n\r\n const removeCvFlight = (id: number) => {\r\n dispatch({ type: ReservationActionType.REMOVE_CVFLIGHT, payload: id });\r\n };\r\n\r\n const removeCvFlightMember = (member: { uiId: number; memberId: number }) => {\r\n dispatch({\r\n type: ReservationActionType.REMOVE_CVFLIGHT_MEMBER,\r\n payload: member,\r\n });\r\n };\r\n\r\n const setIsCancelled = () => {\r\n localStorageDispatch({\r\n type: LocalStorageActionType.SET_IS_BOOKING_CANCELLED,\r\n payload: 'true',\r\n });\r\n dispatch({ type: ReservationActionType.SET_IS_CANCELLED, payload: true });\r\n };\r\n\r\n const setTemporaryReservationCard = (\r\n card: IPaymentInformation | undefined\r\n ) => {\r\n dispatch({\r\n type: ReservationActionType.SET_TEMPORARY_RESERVATION_CARD,\r\n payload: card,\r\n });\r\n };\r\n\r\n const updateGeneralInfo = (infos: IReservationGeneralInfo) => {\r\n dispatch({\r\n type: ReservationActionType.UPDATE_GENERAL_INFO,\r\n payload: infos,\r\n });\r\n };\r\n\r\n const loadBooking = (id: number) => {\r\n dispatch({ type: ReservationActionType.LOAD_BOOKING_STARTED });\r\n ReservationService.getReservation(id)\r\n .then((reservation) => {\r\n dispatch({\r\n type: ReservationActionType.LOAD_BOOKING_DONE,\r\n payload: reservation,\r\n });\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n dispatch({\r\n type: ReservationActionType.LOAD_BOOKING_FAILED,\r\n payload: error,\r\n });\r\n });\r\n };\r\n\r\n const value = useMemo(\r\n () => ({\r\n state,\r\n dispatch,\r\n saveBooking,\r\n saveSetup,\r\n saveToLocalStorage,\r\n setActiveStep,\r\n setActiveService,\r\n nextStep,\r\n previousStep,\r\n cancelBooking,\r\n setActiveHotel,\r\n upsertHotel,\r\n removeHotel,\r\n setActiveCar,\r\n upsertCar,\r\n removeCar,\r\n setActiveCommercial,\r\n upsertCommercial,\r\n removeCommercial,\r\n removeCommercialMember,\r\n upsertCvFlight,\r\n removeCvFlight,\r\n removeCvFlightMember,\r\n setIsCancelled,\r\n fetchMemberInformations,\r\n setTemporaryReservationCard,\r\n savePersonalData,\r\n validatePersonalData,\r\n loadBooking,\r\n scrollToTop,\r\n updateGeneralInfo,\r\n }),\r\n [state]\r\n );\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default ReservationProvider;\r\n\r\nexport const useReservationContext = () => useContext(ReservationContext);\r\n","import moment from 'moment';\r\n\r\nimport IMemberInformation from '../../models/IMemberInformation';\r\nimport ITrainingCourse from '../../models/ITrainingCourse';\r\nimport IReservation from '../../models/Reservation/IReservation';\r\nimport ITripType from '../../models/Reservation/ITripType';\r\nimport {ResponseError} from '../../services/ApiService';\r\nimport {setUids} from '../ReservationProvider/ReservationReducer';\r\n\r\nexport interface ReservationConsultState {\r\n loading: boolean;\r\n responseError?: ResponseError;\r\n reservation?: IReservation;\r\n selectedTripType?: ITripType;\r\n ownerInformations?: IMemberInformation;\r\n}\r\n\r\nexport enum ReservationConsultActionType {\r\n LOAD_RESERVATION_STARTED,\r\n LOAD_RESERVATION_DONE,\r\n LOAD_RESERVATION_FAILED,\r\n FETCH_OWNER_INFO_DONE,\r\n SELECT_TRIPTYPE,\r\n SET_TRAINING_DETAILS,\r\n}\r\n\r\nexport type ReservationConsultAction =\r\n | {\r\n type: ReservationConsultActionType.LOAD_RESERVATION_STARTED;\r\n }\r\n | {\r\n type: ReservationConsultActionType.LOAD_RESERVATION_DONE;\r\n payload: IReservation;\r\n }\r\n | {\r\n type: ReservationConsultActionType.LOAD_RESERVATION_FAILED;\r\n payload: ResponseError;\r\n }\r\n | {\r\n type: ReservationConsultActionType.FETCH_OWNER_INFO_DONE;\r\n payload: IMemberInformation;\r\n }\r\n | { type: ReservationConsultActionType.SELECT_TRIPTYPE; payload?: ITripType }\r\n | {\r\n type: ReservationConsultActionType.SET_TRAINING_DETAILS;\r\n payload: ITrainingCourse;\r\n };\r\n\r\nexport const ReservationConsultReducer = (\r\n state: ReservationConsultState,\r\n action: ReservationConsultAction\r\n) => {\r\n switch (action.type) {\r\n case ReservationConsultActionType.FETCH_OWNER_INFO_DONE:\r\n return { ...state, ownerInformations: action.payload };\r\n case ReservationConsultActionType.SELECT_TRIPTYPE:\r\n return { ...state, selectedTripType: action.payload };\r\n case ReservationConsultActionType.LOAD_RESERVATION_STARTED:\r\n return { ...state, loading: true, responseError: undefined };\r\n case ReservationConsultActionType.LOAD_RESERVATION_FAILED:\r\n return { ...state, loading: false, responseError: action.payload };\r\n case ReservationConsultActionType.LOAD_RESERVATION_DONE:\r\n return {\r\n ...state,\r\n reservation: { ...setUids(action.payload) },\r\n responseError: undefined,\r\n loading: false,\r\n };\r\n case ReservationConsultActionType.SET_TRAINING_DETAILS:\r\n return {\r\n ...state,\r\n reservation: state.reservation\r\n ? {\r\n ...state.reservation,\r\n trainingName: action.payload?.trainingName ?? '',\r\n trainingDate: `From ${moment(action.payload?.fromDate).format(\r\n 'DD-MM-YYYY'\r\n )} To ${moment(action.payload?.toDate).format('DD-MM-YYYY')}`,\r\n }\r\n : undefined,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default ReservationConsultReducer;\r\n","import React, {createContext, useContext, useEffect, useMemo, useReducer,} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IMemberInformation from '../../models/IMemberInformation';\r\nimport IReservation from '../../models/Reservation/IReservation';\r\nimport ITripType from '../../models/Reservation/ITripType';\r\nimport {ResponseError} from '../../services/ApiService';\r\nimport MemberService from '../../services/MemberService';\r\nimport ReservationService from '../../services/ReservationService';\r\nimport {useReservationContext} from '../ReservationProvider/ReservationProvider';\r\nimport ReservationConsultReducer, {\r\n ReservationConsultActionType,\r\n ReservationConsultState,\r\n} from './ReservationConsultReducer';\r\n\r\nexport const InitialState: ReservationConsultState = {\r\n loading: false,\r\n reservation: undefined,\r\n selectedTripType: undefined,\r\n ownerInformations: undefined,\r\n responseError: undefined,\r\n};\r\n\r\nexport interface IReservationConsultContext {\r\n loading: boolean;\r\n reservation?: IReservation;\r\n selectedTripType?: ITripType;\r\n ownerInformations?: IMemberInformation;\r\n responseError?: ResponseError;\r\n loadReservation: (id: number) => void;\r\n}\r\n\r\nconst ReservationConsultContext = createContext(\r\n {} as IReservationConsultContext\r\n);\r\n\r\nconst ReservationConsultProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(ReservationConsultReducer, InitialState);\r\n const { addMessage } = useSnackbar();\r\n\r\n const {\r\n state: { allTripTypes, trainings },\r\n } = useReservationContext();\r\n\r\n useEffect(() => {\r\n if (\r\n state.reservation?.tripTypeId &&\r\n allTripTypes &&\r\n allTripTypes.length > 0\r\n ) {\r\n selectTripType(state.reservation.tripTypeId);\r\n const tripType = allTripTypes.find(\r\n (t) => t.tripTypeId === state.reservation?.tripTypeId\r\n );\r\n fetchOwnerInformations(state.reservation.ownerId, tripType!.isGuest);\r\n }\r\n }, [state.reservation, allTripTypes]);\r\n\r\n useEffect(() => {\r\n if (state.reservation?.courseId) {\r\n let selectedTraining = trainings?.find(\r\n (t) => t.courseId === state.reservation?.courseId\r\n );\r\n selectedTraining &&\r\n dispatch({\r\n type: ReservationConsultActionType.SET_TRAINING_DETAILS,\r\n payload: selectedTraining,\r\n });\r\n }\r\n }, [trainings, state.reservation?.courseId]);\r\n\r\n const loadReservation = (id: number) => {\r\n dispatch({ type: ReservationConsultActionType.LOAD_RESERVATION_STARTED });\r\n ReservationService.consultReservation(id)\r\n .then((reservation) => {\r\n dispatch({\r\n type: ReservationConsultActionType.LOAD_RESERVATION_DONE,\r\n payload: reservation,\r\n });\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n dispatch({\r\n type: ReservationConsultActionType.LOAD_RESERVATION_FAILED,\r\n payload: error,\r\n });\r\n });\r\n };\r\n\r\n const fetchOwnerInformations = (ownerId: number, isGuest: boolean) => {\r\n const query = isGuest\r\n ? MemberService.getGuest(ownerId)\r\n : MemberService.getInformationById(ownerId);\r\n\r\n query\r\n .then((inf) =>\r\n dispatch({\r\n type: ReservationConsultActionType.FETCH_OWNER_INFO_DONE,\r\n payload: { ...inf } as any as IMemberInformation,\r\n })\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const selectTripType = (tripTypeId: number) => {\r\n dispatch({\r\n type: ReservationConsultActionType.SELECT_TRIPTYPE,\r\n payload: allTripTypes.find((t) => t.tripTypeId === tripTypeId),\r\n });\r\n };\r\n\r\n const value = useMemo(\r\n () => ({\r\n ...state,\r\n loadReservation,\r\n }),\r\n [state]\r\n );\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default ReservationConsultProvider;\r\n\r\nexport const useReservationConsultContext = () =>\r\n useContext(ReservationConsultContext);\r\n","import {CancelToken} from 'axios';\r\n\r\nimport IAgent from '../models/DailyTasks/TaskList/IAgent';\r\nimport ITaskExtended, {ITaskFilter,} from '../models/DailyTasks/TaskList/ITaskExtended';\r\nimport IMember from '../models/IMember';\r\nimport {GetFormData} from '../utils/Forms';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/Tasks';\r\n\r\nconst filterQueryString = (filter: ITaskFilter) => {\r\n const acc = [];\r\n acc.push(`agentId=${filter.agentId ?? ''}`);\r\n acc.push(`station=${filter.station ?? ''}`);\r\n acc.push(`status=${filter.status ?? ''}`);\r\n acc.push(`travelerId=${filter.travelerId ?? ''}`);\r\n acc.push(`type=${filter.type ?? ''}`);\r\n return acc.length > 0 ? acc.join('&') : '';\r\n};\r\n\r\nconst TaskService = {\r\n getTasks: (filter: ITaskFilter): Promise =>\r\n requests.get(`${API_ENDPOINT}?${filterQueryString(filter)}`),\r\n getAgents: (cancelToken?: CancelToken): Promise =>\r\n requests.get(`${API_ENDPOINT}/agents`, { cancelToken }),\r\n getTravelers: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/travelers`),\r\n getAttachment: (taskAttachmentId: number): Promise =>\r\n requests.get(`${API_ENDPOINT}/attachment/${taskAttachmentId}`, {\r\n responseType: 'blob',\r\n }),\r\n update: (task: ITaskExtended): Promise => {\r\n const formData = GetFormData(task);\r\n formData.forEach((value, key) => {\r\n if (key.endsWith('[content]')) {\r\n var newKey = key.replace('[content]', '.content');\r\n formData.delete(key);\r\n if (value) formData.append(newKey, value);\r\n }\r\n });\r\n return requests.put(`${API_ENDPOINT}`, formData, {\r\n headers: {\r\n 'content-type': 'multipart/form-data',\r\n },\r\n });\r\n },\r\n getRelatedTasks: (filter: ITaskFilter): Promise =>\r\n requests.get(`${API_ENDPOINT}/relatedTasks?${filterQueryString(filter)}`),\r\n};\r\nexport default TaskService;\r\n","import produce from 'immer';\r\n\r\nimport IAgent from '../../models/DailyTasks/TaskList/IAgent';\r\nimport ITaskExtended, {ITaskFilter,} from '../../models/DailyTasks/TaskList/ITaskExtended';\r\nimport IMember from '../../models/IMember';\r\nimport IMemberInformation from '../../models/IMemberInformation';\r\nimport IStatus from '../../models/IStatus';\r\n\r\nexport interface TaskListState {\r\n employee?: IMemberInformation;\r\n tasks: ITaskExtended[];\r\n currentFilter?: ITaskFilter;\r\n fetchingTasks: boolean;\r\n agents: IAgent[];\r\n travelers: IMember[];\r\n tasksTravelers: IMember[];\r\n status: IStatus[];\r\n fetchingContextData: boolean;\r\n selectedTask?: ITaskExtended;\r\n updating: boolean;\r\n filterableStatus: IStatus[];\r\n plannerMembers: IMember[];\r\n relatedTasks: ITaskExtended[];\r\n fetchingRelatedTasks: boolean;\r\n}\r\n\r\nconst HidedTaskStatus = ['Cancelled'];\r\n\r\nexport enum TaskListActionType {\r\n FETCH_TASKS_STARTED,\r\n FETCH_TASKS_DONE,\r\n FETCH_TASKS_FAILED,\r\n FETCH_CONTEXT_DATA_STARTED,\r\n FETCH_CONTEXT_DATA_DONE,\r\n FETCH_CONTEXT_DATA_FAILED,\r\n SELECT_TASK,\r\n UPDATE_TASK_STARTED,\r\n UPDATE_TASK_DONE,\r\n UPDATE_TASK_FAILED,\r\n FETCH_RELATEDTASKS_STARTED,\r\n FETCH_RELATEDTASKS_DONE,\r\n FETCH_RELATEDTASKS_FAILED,\r\n}\r\n\r\nexport type TaskListAction =\r\n | {\r\n type: TaskListActionType.FETCH_TASKS_STARTED;\r\n payload: ITaskFilter;\r\n }\r\n | {\r\n type: TaskListActionType.FETCH_TASKS_DONE;\r\n payload: ITaskExtended[];\r\n }\r\n | {\r\n type: TaskListActionType.FETCH_TASKS_FAILED;\r\n }\r\n | {\r\n type: TaskListActionType.FETCH_CONTEXT_DATA_STARTED;\r\n }\r\n | {\r\n type: TaskListActionType.FETCH_CONTEXT_DATA_DONE;\r\n payload: [IAgent[], IMember[], IStatus[], IMemberInformation, IMember[]];\r\n }\r\n | {\r\n type: TaskListActionType.FETCH_CONTEXT_DATA_FAILED;\r\n }\r\n | {\r\n type: TaskListActionType.SELECT_TASK;\r\n payload?: ITaskExtended;\r\n }\r\n | {\r\n type: TaskListActionType.UPDATE_TASK_STARTED;\r\n }\r\n | {\r\n type: TaskListActionType.UPDATE_TASK_DONE;\r\n payload: ITaskExtended;\r\n }\r\n | {\r\n type: TaskListActionType.UPDATE_TASK_FAILED;\r\n }\r\n | {\r\n type: TaskListActionType.FETCH_RELATEDTASKS_STARTED;\r\n payload: ITaskFilter;\r\n }\r\n | {\r\n type: TaskListActionType.FETCH_RELATEDTASKS_DONE;\r\n payload: ITaskExtended[];\r\n }\r\n | {\r\n type: TaskListActionType.FETCH_RELATEDTASKS_FAILED;\r\n };\r\n\r\nexport const TaskListReducer = (\r\n state: TaskListState,\r\n action: TaskListAction\r\n) => {\r\n switch (action.type) {\r\n case TaskListActionType.FETCH_TASKS_STARTED:\r\n return { ...state, fetchingTasks: true, currentFilter: action.payload };\r\n case TaskListActionType.FETCH_TASKS_DONE:\r\n return {\r\n ...state,\r\n fetchingTasks: false,\r\n tasks: action.payload,\r\n tasksTravelers: state.travelers.filter((t) =>\r\n action.payload?.some((task) => task.service.travelerId === t.memberId)\r\n ),\r\n };\r\n case TaskListActionType.FETCH_TASKS_FAILED:\r\n return { ...state, fetchingTasks: false };\r\n case TaskListActionType.FETCH_CONTEXT_DATA_STARTED:\r\n return { ...state, fetchingContextData: true };\r\n case TaskListActionType.FETCH_CONTEXT_DATA_DONE:\r\n return {\r\n ...state,\r\n fetchingContextData: false,\r\n agents: action.payload[0],\r\n travelers: action.payload[1],\r\n status: action.payload[2],\r\n employee: action.payload[3],\r\n plannerMembers: action.payload[4],\r\n filterableStatus: action.payload[2].filter(\r\n (x) => !HidedTaskStatus.some((hided) => hided === x.name)\r\n ),\r\n };\r\n case TaskListActionType.FETCH_CONTEXT_DATA_FAILED:\r\n return { ...state, fetchingContextData: false };\r\n case TaskListActionType.SELECT_TASK:\r\n return { ...state, selectedTask: action.payload };\r\n case TaskListActionType.UPDATE_TASK_STARTED:\r\n return { ...state, updating: true };\r\n case TaskListActionType.UPDATE_TASK_FAILED:\r\n return { ...state, updating: false, selectedTask: undefined };\r\n case TaskListActionType.UPDATE_TASK_DONE:\r\n return {\r\n ...state,\r\n updating: false,\r\n selectedTask: undefined,\r\n tasks: produce(state.tasks, (draft) => {\r\n const index = draft.findIndex(\r\n (x) => x.taskId === action.payload.taskId\r\n );\r\n if (index >= 0) {\r\n HidedTaskStatus.some((hided) => hided === action.payload.status)\r\n ? draft.splice(index, 1)\r\n : draft.splice(index, 1, action.payload);\r\n }\r\n }),\r\n };\r\n case TaskListActionType.FETCH_RELATEDTASKS_STARTED:\r\n return {\r\n ...state,\r\n fetchingRelatedTasks: true,\r\n currentFilter: action.payload,\r\n };\r\n case TaskListActionType.FETCH_RELATEDTASKS_DONE:\r\n return {\r\n ...state,\r\n fetchingRelatedTasks: false,\r\n relatedTasks: action.payload,\r\n tasksTravelers: state.travelers.filter((t) =>\r\n action.payload?.some((task) => task.service.travelerId === t.memberId)\r\n ),\r\n };\r\n case TaskListActionType.FETCH_RELATEDTASKS_FAILED:\r\n return { ...state, fetchingRelatedTasks: false };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import React, {createContext, useContext, useEffect, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport ITaskExtended, {ITaskFilter,} from '../../models/DailyTasks/TaskList/ITaskExtended';\r\nimport MemberService from '../../services/MemberService';\r\nimport ReservationService from '../../services/ReservationService';\r\nimport TaskService from '../../services/TaskService';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport {TaskListActionType, TaskListReducer, TaskListState,} from './TaskListReducer';\r\n\r\nexport interface ITaskListProviderProps {}\r\n\r\nexport interface ITaskListContext {\r\n state: TaskListState;\r\n fetchTasks: (filter: ITaskFilter) => void;\r\n selectTask: (task?: ITaskExtended) => void;\r\n updateTask: (updateTask: ITaskExtended) => void;\r\n fetchRelatedTasks: (filter: ITaskFilter) => void;\r\n}\r\n\r\nexport const InitialState: TaskListState = {\r\n employee: undefined,\r\n tasks: [],\r\n selectedTask: undefined,\r\n currentFilter: undefined,\r\n fetchingTasks: false,\r\n updating: false,\r\n fetchingContextData: false,\r\n agents: [],\r\n travelers: [],\r\n tasksTravelers: [],\r\n status: [],\r\n filterableStatus: [],\r\n plannerMembers: [],\r\n relatedTasks: [],\r\n fetchingRelatedTasks: false,\r\n};\r\n\r\nconst TaskListContext = createContext({} as ITaskListContext);\r\n\r\nconst TaskListProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(TaskListReducer, InitialState);\r\n const { addMessage } = useSnackbar();\r\n\r\n const fetchContextData = () => {\r\n dispatch({ type: TaskListActionType.FETCH_CONTEXT_DATA_STARTED });\r\n Promise.all([\r\n TaskService.getAgents(),\r\n TaskService.getTravelers(),\r\n ReservationService.getServiceStatuses(),\r\n MemberService.get(),\r\n ReservationService.getPlannerMembers(),\r\n ])\r\n .then(([agents, travelers, status, member, plannerMembers]) => {\r\n dispatch({\r\n type: TaskListActionType.FETCH_CONTEXT_DATA_DONE,\r\n payload: [agents, travelers, status, member, plannerMembers],\r\n });\r\n })\r\n .catch((error) => {\r\n dispatch({ type: TaskListActionType.FETCH_CONTEXT_DATA_FAILED });\r\n addMessage(error.message, MessageType.Error);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n fetchContextData();\r\n }, []);\r\n\r\n const fetchTasks = (filter: ITaskFilter) => {\r\n dispatch({ type: TaskListActionType.FETCH_TASKS_STARTED, payload: filter });\r\n TaskService.getTasks(filter)\r\n .then((tasks) => {\r\n tasks.forEach((t) => {\r\n let agent = state.agents.find((a) => +a.memberId === +t.agentId!);\r\n t.agentFullName = agent\r\n ? `${agent.firstName} ${agent.lastName}`\r\n : t.agentId === null\r\n ? ''\r\n : `Unauthorized Agent`;\r\n let traveler = state.travelers.find(\r\n (x) => +x.memberId === +t.service.travelerId!\r\n );\r\n t.service.travelerFullName = traveler\r\n ? `${traveler.firstName} ${traveler.lastName}`\r\n : '';\r\n });\r\n dispatch({ type: TaskListActionType.FETCH_TASKS_DONE, payload: tasks });\r\n })\r\n .catch((error) => {\r\n dispatch({ type: TaskListActionType.FETCH_TASKS_FAILED });\r\n addMessage(error.message, MessageType.Error);\r\n });\r\n };\r\n\r\n const selectTask = (task?: ITaskExtended) =>\r\n dispatch({ type: TaskListActionType.SELECT_TASK, payload: task });\r\n\r\n const updateTask = (updatedTask: ITaskExtended) => {\r\n dispatch({ type: TaskListActionType.UPDATE_TASK_STARTED });\r\n TaskService.update(updatedTask)\r\n .then((result: ITaskExtended) => {\r\n let agent = state.agents.find((a) => +a.memberId === +result.agentId!);\r\n result.agentFullName = agent\r\n ? `${agent.firstName} ${agent.lastName}`\r\n : result.agentId === null\r\n ? ''\r\n : `Unauthorized Agent`;\r\n let traveler = state.travelers.find(\r\n (x) => +x.memberId === +result.service.travelerId!\r\n );\r\n result.service.travelerFullName = traveler\r\n ? `${traveler.firstName} ${traveler.lastName}`\r\n : '';\r\n\r\n if (result) {\r\n addMessage('Task updated successfully', MessageType.Success);\r\n dispatch({\r\n type: TaskListActionType.UPDATE_TASK_DONE,\r\n payload: result,\r\n });\r\n } else {\r\n addMessage('Failed to update Task', MessageType.Error);\r\n dispatch({ type: TaskListActionType.UPDATE_TASK_FAILED });\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(`Failed to update Task: ${error}`, MessageType.Error);\r\n dispatch({ type: TaskListActionType.UPDATE_TASK_FAILED });\r\n });\r\n };\r\n const fetchRelatedTasks = (filter: ITaskFilter) => {\r\n dispatch({\r\n type: TaskListActionType.FETCH_RELATEDTASKS_STARTED,\r\n payload: filter,\r\n });\r\n TaskService.getRelatedTasks(filter)\r\n .then((relatedTasks) => {\r\n relatedTasks.forEach((t) => {\r\n let agent = state.agents.find((a) => +a.memberId === +t.agentId!);\r\n t.agentFullName = agent\r\n ? `${agent.firstName} ${agent.lastName}`\r\n : t.agentId === null\r\n ? ''\r\n : `Unauthorized Agent`;\r\n let traveler = state.travelers.find(\r\n (x) => +x.memberId === +t.service.travelerId!\r\n );\r\n t.service.travelerFullName = traveler\r\n ? `${traveler.firstName} ${traveler.lastName}`\r\n : '';\r\n });\r\n dispatch({\r\n type: TaskListActionType.FETCH_RELATEDTASKS_DONE,\r\n payload: relatedTasks,\r\n });\r\n })\r\n .catch((error) => {\r\n dispatch({ type: TaskListActionType.FETCH_RELATEDTASKS_FAILED });\r\n addMessage(error.message, MessageType.Error);\r\n });\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default TaskListProvider;\r\n\r\nexport const useTaskListContext = () => useContext(TaskListContext);\r\n","import ITrainingCourse from '../../models/ITrainingCourse';\r\nimport TrainingCatalogueTabEnum from './TrainingCatalogueTabEnum';\r\n\r\nexport enum TrainingCatalogueActionType {\r\n FETCH_CURRENT_TRAININGS,\r\n FETCH_HISTORY_TRAININGS,\r\n SELECTED_TRAINING_COURSE,\r\n SELECTED_TRAINING_TAB,\r\n}\r\n\r\nexport interface TrainingCatalogueState {\r\n selectedTab: TrainingCatalogueTabEnum;\r\n currentTrainingCourses: ITrainingCourse[] | null;\r\n historyTrainingCourses: ITrainingCourse[] | null;\r\n selectedTrainingCourse: ITrainingCourse | null;\r\n}\r\n\r\nexport type TrainingCatalogueAction =\r\n | {\r\n type: TrainingCatalogueActionType.FETCH_CURRENT_TRAININGS;\r\n payload: ITrainingCourse[];\r\n }\r\n | {\r\n type: TrainingCatalogueActionType.FETCH_HISTORY_TRAININGS;\r\n payload: ITrainingCourse[];\r\n }\r\n | {\r\n type: TrainingCatalogueActionType.SELECTED_TRAINING_COURSE;\r\n payload: ITrainingCourse | null;\r\n }\r\n | {\r\n type: TrainingCatalogueActionType.SELECTED_TRAINING_TAB;\r\n payload: TrainingCatalogueTabEnum;\r\n };\r\n\r\nexport const TrainingCatalogueReducer = (\r\n state: TrainingCatalogueState,\r\n action: TrainingCatalogueAction\r\n) => {\r\n switch (action.type) {\r\n case TrainingCatalogueActionType.FETCH_CURRENT_TRAININGS:\r\n return { ...state, currentTrainingCourses: action.payload };\r\n case TrainingCatalogueActionType.FETCH_HISTORY_TRAININGS:\r\n return { ...state, historyTrainingCourses: action.payload };\r\n case TrainingCatalogueActionType.SELECTED_TRAINING_COURSE:\r\n return { ...state, selectedTrainingCourse: action.payload };\r\n case TrainingCatalogueActionType.SELECTED_TRAINING_TAB:\r\n return { ...state, selectedTab: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default TrainingCatalogueReducer;\r\n","enum TrainingCatalogueTabEnum {\r\n CURRENT_TRAININGS,\r\n HISTORY_TRAININGS,\r\n}\r\n\r\nexport default TrainingCatalogueTabEnum;\r\n","import React, {createContext, useContext, useEffect, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport ITrainingCourse from '../../models/ITrainingCourse';\r\nimport TrainingCatalogueService from '../../services/TrainingCatalogueService';\r\nimport Constants from '../../utils/Constants';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport TrainingCatalogueReducer, {\r\n TrainingCatalogueAction,\r\n TrainingCatalogueActionType,\r\n TrainingCatalogueState,\r\n} from './TrainingCatalogueReducer';\r\nimport TrainingCatalogueTabEnum from './TrainingCatalogueTabEnum';\r\n\r\nexport const InitialState: TrainingCatalogueState = {\r\n selectedTab: TrainingCatalogueTabEnum.CURRENT_TRAININGS,\r\n currentTrainingCourses: null,\r\n historyTrainingCourses: null,\r\n selectedTrainingCourse: null,\r\n};\r\n\r\nexport interface ITrainingCatalogueContext {\r\n state: TrainingCatalogueState;\r\n dispatch: React.Dispatch;\r\n submitTrainingCourse: (trainingCourse: ITrainingCourse) => void;\r\n deactivateSelectedTrainingCourse: () => void;\r\n}\r\n\r\nconst TrainingCatalogueContext = createContext({} as ITrainingCatalogueContext);\r\n\r\nconst TrainingCatalogueProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(TrainingCatalogueReducer, InitialState);\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n fetchCurrentTrainings().catch(console.error);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (\r\n state.selectedTab ===\r\n (TrainingCatalogueTabEnum.HISTORY_TRAININGS as TrainingCatalogueTabEnum) &&\r\n state.historyTrainingCourses === null\r\n ) {\r\n fetchHistoryTrainings().catch(console.error);\r\n }\r\n }, [state.selectedTab]);\r\n\r\n const fetchCurrentTrainings = async () => {\r\n TrainingCatalogueService.getCurrentTrainingCourses()\r\n .then((trainingsCourse) =>\r\n dispatch({\r\n type: TrainingCatalogueActionType.FETCH_CURRENT_TRAININGS,\r\n payload: trainingsCourse,\r\n })\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const fetchHistoryTrainings = async () => {\r\n TrainingCatalogueService.getHistoryTrainingCourses()\r\n .then((trainingsCourse) =>\r\n dispatch({\r\n type: TrainingCatalogueActionType.FETCH_HISTORY_TRAININGS,\r\n payload: trainingsCourse,\r\n })\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const submitTrainingCourse = (trainingCourse: ITrainingCourse) => {\r\n let trainingPromise: Promise;\r\n if (state.selectedTrainingCourse) {\r\n trainingPromise = TrainingCatalogueService.updateTrainingCourse({\r\n ...state.selectedTrainingCourse,\r\n ...trainingCourse,\r\n });\r\n } else {\r\n trainingPromise =\r\n TrainingCatalogueService.createTrainingCourse(trainingCourse);\r\n }\r\n\r\n trainingPromise\r\n .then((result) => {\r\n if (result) {\r\n fetchCurrentTrainings().catch(console.error);\r\n }\r\n })\r\n .then(() =>\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success)\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const deactivateSelectedTrainingCourse = () => {\r\n if (state.selectedTrainingCourse) {\r\n TrainingCatalogueService.deactivateTrainingCourse(\r\n state.selectedTrainingCourse.courseId\r\n )\r\n .then((isDeactivated) => {\r\n if (isDeactivated) {\r\n addMessage(\r\n Constants.messages.success.dataDeactivated,\r\n MessageType.Success\r\n );\r\n fetchCurrentTrainings().catch(console.error);\r\n } else {\r\n addMessage('Cannot deactivate the selected training course.');\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n }\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default TrainingCatalogueProvider;\r\n\r\nexport const useTrainingCatalogueContext = () =>\r\n useContext(TrainingCatalogueContext);\r\n","import IWaitListItem from '../models/DailyTasks/WaitList/IWaitListItem';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/WaitList';\r\n\r\nconst SeatsService = {\r\n getWaitList: (\r\n flightDesc?: string,\r\n flightDate?: Date\r\n ): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}?flightDesc=${flightDesc ?? ''}&flightDate=${\r\n flightDate?.toISOString() ?? ''\r\n }`\r\n ),\r\n updateComment: (\r\n reservationId: number,\r\n cvFlightLegId: number,\r\n memberId: number,\r\n comment: string\r\n ) =>\r\n requests.patch(`${API_ENDPOINT}/comment`, {\r\n reservationId,\r\n cvFlightLegId,\r\n memberId,\r\n comment,\r\n }),\r\n};\r\n\r\nexport default SeatsService;\r\n","import produce from 'immer';\r\n\r\nimport IWaitListItem from '../../models/DailyTasks/WaitList/IWaitListItem';\r\nimport IMember from '../../models/IMember';\r\n\r\ntype Employee = { label: string; value: number };\r\n\r\nexport interface WaitListState {\r\n isLoading: boolean;\r\n waitListItems: IWaitListItem[];\r\n filteredItems: IWaitListItem[];\r\n plannerMembers: IMember[];\r\n employees: Employee[];\r\n selectedEmployee?: number;\r\n}\r\n\r\nexport enum WaitListActionType {\r\n FETCH_CONTEXT_STARTED,\r\n FETCH_CONTEXT_DONE,\r\n FETCH_CONTEXT_FAILED,\r\n FETCH_WAITLIST_STARTED,\r\n FETCH_WAITLIST_DONE,\r\n FETCH_WAITLIST_FAILED,\r\n UPDATE_COMMENT,\r\n SELECT_EMPLOYEE,\r\n}\r\n\r\nexport type WaitListAction =\r\n | { type: WaitListActionType.FETCH_CONTEXT_STARTED }\r\n | {\r\n type: WaitListActionType.FETCH_CONTEXT_DONE;\r\n payload: [IMember[], IWaitListItem[]];\r\n }\r\n | { type: WaitListActionType.FETCH_CONTEXT_FAILED }\r\n | { type: WaitListActionType.FETCH_WAITLIST_STARTED }\r\n | { type: WaitListActionType.FETCH_WAITLIST_DONE; payload: IWaitListItem[] }\r\n | { type: WaitListActionType.FETCH_WAITLIST_FAILED }\r\n | { type: WaitListActionType.UPDATE_COMMENT; payload: IWaitListItem }\r\n | { type: WaitListActionType.SELECT_EMPLOYEE; payload: number | undefined };\r\n\r\nconst extractEmployees = (waitListItems: IWaitListItem[]) => {\r\n return waitListItems.reduce(reduceEmployees, []);\r\n};\r\n\r\nconst reduceEmployees = (acc: Employee[], curr: IWaitListItem) =>\r\n acc.find((w) => w.value === curr.reservationOwner)\r\n ? acc\r\n : [\r\n ...acc,\r\n {\r\n label: `${curr.firstName} ${curr.lastName}`,\r\n value: curr.reservationOwner,\r\n },\r\n ];\r\n\r\nexport const WaitListReducer = (\r\n state: WaitListState,\r\n action: WaitListAction\r\n): WaitListState => {\r\n switch (action.type) {\r\n case WaitListActionType.FETCH_CONTEXT_STARTED:\r\n return { ...state, isLoading: true };\r\n case WaitListActionType.FETCH_CONTEXT_DONE:\r\n return {\r\n ...state,\r\n isLoading: false,\r\n plannerMembers: action.payload[0],\r\n waitListItems: action.payload[1],\r\n filteredItems: action.payload[1],\r\n employees: extractEmployees(action.payload[1]),\r\n selectedEmployee: undefined,\r\n };\r\n case WaitListActionType.FETCH_CONTEXT_FAILED:\r\n return { ...state, isLoading: false };\r\n case WaitListActionType.FETCH_WAITLIST_STARTED:\r\n return { ...state, isLoading: true };\r\n case WaitListActionType.FETCH_WAITLIST_DONE:\r\n return {\r\n ...state,\r\n isLoading: false,\r\n waitListItems: action.payload,\r\n filteredItems: action.payload,\r\n employees: extractEmployees(action.payload),\r\n selectedEmployee: undefined,\r\n };\r\n case WaitListActionType.FETCH_WAITLIST_FAILED:\r\n return { ...state, isLoading: false };\r\n case WaitListActionType.UPDATE_COMMENT:\r\n return {\r\n ...state,\r\n isLoading: false,\r\n waitListItems: produce(state.waitListItems, (draft) => {\r\n const index = draft.findIndex(\r\n (x) =>\r\n x.memberId === action.payload.memberId &&\r\n x.cvFlightLegId === action.payload.cvFlightLegId\r\n );\r\n if (index >= 0) {\r\n draft.splice(index, 1, action.payload);\r\n }\r\n }),\r\n filteredItems: produce(state.filteredItems, (draft) => {\r\n const index = draft.findIndex(\r\n (x) =>\r\n x.memberId === action.payload.memberId &&\r\n x.cvFlightLegId === action.payload.cvFlightLegId\r\n );\r\n if (index >= 0) {\r\n draft.splice(index, 1, action.payload);\r\n }\r\n }),\r\n };\r\n case WaitListActionType.SELECT_EMPLOYEE:\r\n return {\r\n ...state,\r\n selectedEmployee: action.payload,\r\n filteredItems: action.payload\r\n ? state.waitListItems.filter(\r\n (w) => w.reservationOwner === action.payload\r\n )\r\n : state.waitListItems,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import React, {createContext, useContext, useEffect, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IWaitListFilter from '../../models/DailyTasks/WaitList/IWaitListFilter';\r\nimport IWaitListItem from '../../models/DailyTasks/WaitList/IWaitListItem';\r\nimport ReservationService from '../../services/ReservationService';\r\nimport WaitListService from '../../services/WaitListService';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport {WaitListActionType, WaitListReducer, WaitListState,} from './WaitListReducer';\r\n\r\nexport interface IWaitListContext {\r\n state: WaitListState;\r\n fetchWaitList: (filter: IWaitListFilter) => void;\r\n selectEmployee: (employee?: number) => void;\r\n updateComment: (item: IWaitListItem, comment: string) => void;\r\n}\r\n\r\nexport const InitialState: WaitListState = {\r\n isLoading: false,\r\n waitListItems: [],\r\n plannerMembers: [],\r\n employees: [],\r\n selectedEmployee: undefined,\r\n filteredItems: [],\r\n};\r\n\r\nconst WaitListContext = createContext({} as IWaitListContext);\r\n\r\nconst WaitListProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(WaitListReducer, InitialState);\r\n const { addMessage } = useSnackbar();\r\n\r\n const fetchContextData = () => {\r\n dispatch({ type: WaitListActionType.FETCH_CONTEXT_STARTED });\r\n\r\n Promise.all([\r\n ReservationService.getPlannerMembers(),\r\n WaitListService.getWaitList(),\r\n ])\r\n .then(([plannerMembers, waitListItems]) => {\r\n dispatch({\r\n type: WaitListActionType.FETCH_CONTEXT_DONE,\r\n payload: [plannerMembers, waitListItems],\r\n });\r\n })\r\n .catch((error) => {\r\n dispatch({ type: WaitListActionType.FETCH_CONTEXT_FAILED });\r\n addMessage(error.message, MessageType.Error);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n fetchContextData();\r\n }, []);\r\n\r\n const fetchWaitList = (filter: IWaitListFilter) => {\r\n dispatch({ type: WaitListActionType.FETCH_WAITLIST_STARTED });\r\n\r\n WaitListService.getWaitList(filter.flightDesc, filter.flightDate?.toDate())\r\n .then((waitListItems) => {\r\n dispatch({\r\n type: WaitListActionType.FETCH_WAITLIST_DONE,\r\n payload: waitListItems,\r\n });\r\n })\r\n .catch((error) => {\r\n dispatch({ type: WaitListActionType.FETCH_WAITLIST_FAILED });\r\n addMessage(error.message, MessageType.Error);\r\n });\r\n };\r\n\r\n const selectEmployee = (employee?: number) =>\r\n dispatch({ type: WaitListActionType.SELECT_EMPLOYEE, payload: employee });\r\n\r\n const updateComment = (item: IWaitListItem, comment: string) => {\r\n WaitListService.updateComment(\r\n item.reservationId,\r\n item.cvFlightLegId,\r\n item.memberId,\r\n comment\r\n )\r\n .then((res) => {\r\n if (res) {\r\n dispatch({\r\n type: WaitListActionType.UPDATE_COMMENT,\r\n payload: { ...item, comment: comment },\r\n });\r\n addMessage('Comment updated successfully', MessageType.Success);\r\n } else {\r\n addMessage(\"Couln't update comment\");\r\n }\r\n })\r\n .catch((error) => addMessage(error?.message));\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default WaitListProvider;\r\n\r\nexport const useWaitListContext = () => useContext(WaitListContext);\r\n","import {IEmailTemplate} from '../models/Settings/IEmailTemplate';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/EmailTemplates';\r\n\r\nconst EmailTemplateService = {\r\n get: (): Promise => requests.get(`${API_ENDPOINT}/`),\r\n update: (template: IEmailTemplate): Promise =>\r\n requests.put(`${API_ENDPOINT}`, {\r\n ...template,\r\n subject: '',\r\n body: '',\r\n }), //cleaning subject and body to avoid WAF restrictions\r\n};\r\n\r\nexport default EmailTemplateService;\r\n","import produce from 'immer';\r\n\r\nimport {IEmailTemplate} from '../../../models/Settings/IEmailTemplate';\r\n\r\nexport interface IEmailTemplatesPageState {\r\n templates: IEmailTemplate[];\r\n loading: boolean;\r\n loaded: boolean;\r\n updating: boolean;\r\n selectedTemplate: IEmailTemplate | undefined;\r\n}\r\n\r\nexport enum EmailTemplatesPageActionTypes {\r\n FETCH_TEMPLATES_STARTED,\r\n FETCH_TEMPLATES_FAILED,\r\n FETCH_TEMPLATES_DONE,\r\n SELECT_TEMPLATE,\r\n UPDATE_TEMPLATE_STARTED,\r\n UPDATE_TEMPLATE_DONE,\r\n UPDATE_TEMPLATE_FAILED,\r\n}\r\n\r\nexport type EmailTemplatesPageAction =\r\n | { type: EmailTemplatesPageActionTypes.FETCH_TEMPLATES_STARTED }\r\n | { type: EmailTemplatesPageActionTypes.FETCH_TEMPLATES_FAILED }\r\n | {\r\n type: EmailTemplatesPageActionTypes.FETCH_TEMPLATES_DONE;\r\n payload: IEmailTemplate[];\r\n }\r\n | {\r\n type: EmailTemplatesPageActionTypes.SELECT_TEMPLATE;\r\n payload: IEmailTemplate | undefined;\r\n }\r\n | { type: EmailTemplatesPageActionTypes.UPDATE_TEMPLATE_STARTED }\r\n | { type: EmailTemplatesPageActionTypes.UPDATE_TEMPLATE_FAILED }\r\n | {\r\n type: EmailTemplatesPageActionTypes.UPDATE_TEMPLATE_DONE;\r\n payload: IEmailTemplate;\r\n };\r\n\r\nexport const EmailTemplatesPageReducer = (\r\n state: IEmailTemplatesPageState,\r\n action: EmailTemplatesPageAction\r\n): IEmailTemplatesPageState => {\r\n switch (action.type) {\r\n case EmailTemplatesPageActionTypes.FETCH_TEMPLATES_STARTED:\r\n return { ...state, loading: true, loaded: false };\r\n case EmailTemplatesPageActionTypes.FETCH_TEMPLATES_FAILED:\r\n return { ...state, loading: false };\r\n case EmailTemplatesPageActionTypes.FETCH_TEMPLATES_DONE:\r\n return {\r\n ...state,\r\n loading: false,\r\n loaded: true,\r\n templates: action.payload,\r\n };\r\n case EmailTemplatesPageActionTypes.SELECT_TEMPLATE:\r\n return { ...state, selectedTemplate: action.payload };\r\n case EmailTemplatesPageActionTypes.UPDATE_TEMPLATE_STARTED:\r\n return { ...state, updating: true };\r\n case EmailTemplatesPageActionTypes.UPDATE_TEMPLATE_DONE:\r\n return {\r\n ...state,\r\n selectedTemplate: undefined,\r\n updating: false,\r\n templates: produce(state.templates, (draft) => {\r\n const index = draft.findIndex(\r\n (s) => s.emailTemplateId === action.payload.emailTemplateId\r\n );\r\n draft.splice(index, 1, action.payload);\r\n }),\r\n };\r\n case EmailTemplatesPageActionTypes.UPDATE_TEMPLATE_FAILED:\r\n return { ...state, selectedTemplate: undefined, updating: false };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import React, {useCallback, useContext, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport {IEmailTemplate} from '../../../models/Settings/IEmailTemplate';\r\nimport EmailTemplateService from '../../../services/EmailTemplatesService';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport {\r\n EmailTemplatesPageActionTypes,\r\n EmailTemplatesPageReducer,\r\n IEmailTemplatesPageState,\r\n} from './EmailTemplatesPageReducer';\r\n\r\nexport interface IEmailTemplatesPageContext {\r\n templates: IEmailTemplate[];\r\n loading: boolean;\r\n loaded: boolean;\r\n updating: boolean;\r\n selectedTemplate?: IEmailTemplate;\r\n fetchTemplates: () => void;\r\n selectTemplate: (setting?: IEmailTemplate) => void;\r\n updateTemplate: (setting: IEmailTemplate) => void;\r\n}\r\n\r\nconst initialState: IEmailTemplatesPageState = {\r\n templates: [],\r\n loading: false,\r\n loaded: false,\r\n updating: false,\r\n selectedTemplate: undefined,\r\n};\r\n\r\nconst EmailTemplatesContext = React.createContext(\r\n {} as IEmailTemplatesPageContext\r\n);\r\n\r\nconst EmailTemplatesPageProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(EmailTemplatesPageReducer, initialState);\r\n const { addMessage } = useSnackbar();\r\n\r\n const fetchTemplates = useCallback(() => {\r\n EmailTemplateService.get()\r\n .then((templates) => {\r\n dispatch({\r\n type: EmailTemplatesPageActionTypes.FETCH_TEMPLATES_DONE,\r\n payload: templates,\r\n });\r\n })\r\n .catch((error) => {\r\n dispatch({\r\n type: EmailTemplatesPageActionTypes.FETCH_TEMPLATES_FAILED,\r\n });\r\n addMessage(error.message, MessageType.Error);\r\n });\r\n }, [addMessage]);\r\n\r\n const selectTemplate = useCallback((setting?: IEmailTemplate) => {\r\n dispatch({\r\n type: EmailTemplatesPageActionTypes.SELECT_TEMPLATE,\r\n payload: setting,\r\n });\r\n }, []);\r\n\r\n const updateTemplate = useCallback(\r\n (template: IEmailTemplate) => {\r\n dispatch({ type: EmailTemplatesPageActionTypes.UPDATE_TEMPLATE_STARTED });\r\n EmailTemplateService.update(template)\r\n .then((res) => {\r\n if (res) {\r\n dispatch({\r\n type: EmailTemplatesPageActionTypes.UPDATE_TEMPLATE_DONE,\r\n payload: template,\r\n });\r\n addMessage('Template updated successfully', MessageType.Success);\r\n } else {\r\n addMessage(\"Couldn't update template\");\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch({\r\n type: EmailTemplatesPageActionTypes.UPDATE_TEMPLATE_FAILED,\r\n });\r\n addMessage(error.message, MessageType.Error);\r\n });\r\n },\r\n [addMessage]\r\n );\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default EmailTemplatesPageProvider;\r\n\r\nexport const useEmailTemplatesPageContext = () =>\r\n useContext(EmailTemplatesContext);\r\n","import produce from 'immer';\r\n\r\nimport IAirportCreate from '../../models/IAirportCreate';\r\nimport IAirportSummary from '../../models/IAirportSummary';\r\n\r\nexport interface IAirportsState {\r\n loading: boolean;\r\n updating: boolean;\r\n loaded: boolean;\r\n airports: IAirportSummary[];\r\n selectedAirportToToggleActiveFlag?: IAirportSummary;\r\n}\r\n\r\nexport enum AirportActionTypes {\r\n ADD_AIRPORT_STARTED,\r\n ADD_AIRPORT_DONE,\r\n ADD_AIRPORT_FAILED,\r\n LOAD_AIRPORT_STARTED,\r\n LOAD_AIRPORT_FAILED,\r\n LOAD_AIRPORT_DONE,\r\n SELECT_AIRPORT,\r\n SELECT_AIRPORT_TO_TOGGLE_ACTIVE_FLAG,\r\n TOGGLE_ACTIVE_FLAG,\r\n UPDATE_AIRPORT_COMMENT,\r\n AIRPORT_DELETED,\r\n}\r\n\r\nexport type AirportAction =\r\n | { type: AirportActionTypes.ADD_AIRPORT_DONE; payload: IAirportCreate }\r\n | { type: AirportActionTypes.AIRPORT_DELETED; airportCode: string }\r\n | { type: AirportActionTypes.ADD_AIRPORT_STARTED }\r\n | { type: AirportActionTypes.ADD_AIRPORT_FAILED }\r\n | { type: AirportActionTypes.LOAD_AIRPORT_DONE; payload: IAirportSummary[] }\r\n | { type: AirportActionTypes.LOAD_AIRPORT_FAILED }\r\n | { type: AirportActionTypes.LOAD_AIRPORT_STARTED }\r\n | {\r\n type: AirportActionTypes.SELECT_AIRPORT_TO_TOGGLE_ACTIVE_FLAG;\r\n payload?: IAirportSummary;\r\n }\r\n | {\r\n type: AirportActionTypes.UPDATE_AIRPORT_COMMENT;\r\n payload: { comments: string; airportCode: string };\r\n }\r\n | { type: AirportActionTypes.TOGGLE_ACTIVE_FLAG; payload: string };\r\n\r\nconst AirportReducer = (\r\n state: IAirportsState,\r\n action: AirportAction\r\n): IAirportsState => {\r\n switch (action.type) {\r\n case AirportActionTypes.LOAD_AIRPORT_STARTED:\r\n return { ...state, loading: true };\r\n case AirportActionTypes.LOAD_AIRPORT_FAILED:\r\n return { ...state, loading: false };\r\n case AirportActionTypes.LOAD_AIRPORT_DONE:\r\n return {\r\n ...state,\r\n loading: false,\r\n loaded: true,\r\n airports: action.payload,\r\n };\r\n case AirportActionTypes.ADD_AIRPORT_STARTED:\r\n return { ...state, updating: true };\r\n case AirportActionTypes.ADD_AIRPORT_FAILED:\r\n return { ...state, updating: false };\r\n case AirportActionTypes.ADD_AIRPORT_DONE:\r\n return {\r\n ...state,\r\n updating: false,\r\n airports: [\r\n ...state.airports,\r\n {\r\n ...action.payload,\r\n apisIn: false,\r\n apisOut: false,\r\n immigrationInformation: false,\r\n transitInformation: false,\r\n trafficRights: false,\r\n tsaRights: false,\r\n isInactive: false,\r\n comments: '',\r\n },\r\n ].sort((a, b) => a.code.localeCompare(b.code)),\r\n };\r\n case AirportActionTypes.AIRPORT_DELETED:\r\n return {\r\n ...state,\r\n updating: false,\r\n airports: [\r\n ...state.airports.filter((e) => e.code !== action.airportCode),\r\n ].sort((a, b) => a.code.localeCompare(b.code)),\r\n };\r\n case AirportActionTypes.SELECT_AIRPORT_TO_TOGGLE_ACTIVE_FLAG:\r\n return { ...state, selectedAirportToToggleActiveFlag: action.payload };\r\n case AirportActionTypes.TOGGLE_ACTIVE_FLAG:\r\n return produce(state, (draft) => {\r\n const entryIndex = draft.airports.findIndex(\r\n (a) => a.code === action.payload\r\n );\r\n if (entryIndex > -1) {\r\n draft.airports[entryIndex].isInactive =\r\n !draft.airports[entryIndex].isInactive;\r\n }\r\n draft.selectedAirportToToggleActiveFlag = undefined;\r\n });\r\n case AirportActionTypes.UPDATE_AIRPORT_COMMENT:\r\n return produce(state, (draft) => {\r\n const entryIndex = draft.airports.findIndex(\r\n (a) => a.code === action.payload.airportCode\r\n );\r\n if (entryIndex > -1) {\r\n draft.airports[entryIndex].comments = action.payload.comments;\r\n }\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default AirportReducer;\r\n","import axios from 'axios';\r\nimport React, {useContext, useEffect, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IAirportCreate from '../../models/IAirportCreate';\r\nimport IAirportSummary from '../../models/IAirportSummary';\r\nimport AirportService from '../../services/AirportService';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport AirportReducer, {AirportActionTypes, IAirportsState,} from './AirportsReducer';\r\n\r\nexport interface IAirportsContext {\r\n loading: boolean;\r\n updating: boolean;\r\n loaded: boolean;\r\n airports: IAirportSummary[];\r\n selectedAirportToToggleActiveFlag?: IAirportSummary;\r\n}\r\n\r\nexport interface IAirportsDispatchContext {\r\n addAirport: (airport: IAirportCreate) => void;\r\n deleteAirport: (airportCode: string) => void;\r\n toggleActiveFlag: (airportCode: string, isActive: boolean) => void;\r\n selectAirportToToggleActiveFlag: (airport?: IAirportSummary) => void;\r\n updateComments: (airportCode: string, comments: string) => void;\r\n}\r\n\r\nconst initialState = {\r\n loaded: false,\r\n loading: false,\r\n updating: false,\r\n airports: [],\r\n selectedAirportToToggleActiveFlag: undefined,\r\n} as IAirportsState;\r\n\r\nconst AirportsContext = React.createContext({} as IAirportsContext);\r\nconst AirportsDispatchContext = React.createContext(\r\n {} as IAirportsDispatchContext\r\n);\r\n\r\nconst AirportsProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(AirportReducer, initialState);\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n const cancelToken = axios.CancelToken.source();\r\n\r\n dispatch({ type: AirportActionTypes.LOAD_AIRPORT_STARTED });\r\n AirportService.getSummaries(cancelToken.token)\r\n .then((result) => {\r\n dispatch({\r\n type: AirportActionTypes.LOAD_AIRPORT_DONE,\r\n payload: result,\r\n });\r\n })\r\n .catch((error) => {\r\n dispatch({ type: AirportActionTypes.LOAD_AIRPORT_FAILED });\r\n addMessage(error.message);\r\n });\r\n\r\n return () => {\r\n cancelToken.cancel('Operation cancelled');\r\n };\r\n }, [addMessage]);\r\n\r\n const addAirport = (airport: IAirportCreate) => {\r\n dispatch({ type: AirportActionTypes.ADD_AIRPORT_STARTED });\r\n AirportService.addAirport(airport)\r\n .then((result) => {\r\n if (result) {\r\n dispatch({\r\n type: AirportActionTypes.ADD_AIRPORT_DONE,\r\n payload: airport,\r\n });\r\n addMessage(`Airport ${airport.code} added`, MessageType.Success);\r\n } else {\r\n addMessage(\"Couldn't add the airport\");\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch({ type: AirportActionTypes.ADD_AIRPORT_FAILED });\r\n addMessage(error?.message);\r\n });\r\n };\r\n\r\n const deleteAirport = (airportCode: string) => {\r\n AirportService.deleteAirport(airportCode)\r\n .then((result) => {\r\n if (result) {\r\n dispatch({ type: AirportActionTypes.AIRPORT_DELETED, airportCode });\r\n addMessage(`Airport ${airportCode} was removed`, MessageType.Success);\r\n } else {\r\n addMessage('Could not delete airport');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error?.message);\r\n });\r\n };\r\n\r\n const selectAirportToToggleActiveFlag = (airport?: IAirportSummary) =>\r\n dispatch({\r\n type: AirportActionTypes.SELECT_AIRPORT_TO_TOGGLE_ACTIVE_FLAG,\r\n payload: airport,\r\n });\r\n\r\n const toggleActiveFlag = (airportCode: string, isActive: boolean) => {\r\n const activateAction = isActive\r\n ? AirportService.deactivateAirport\r\n : AirportService.activateAirport;\r\n activateAction(airportCode)\r\n .then((res) => {\r\n if (res) {\r\n dispatch({\r\n type: AirportActionTypes.TOGGLE_ACTIVE_FLAG,\r\n payload: airportCode,\r\n });\r\n addMessage(\r\n `Airport ${airportCode} ${isActive ? 'deactivated' : 'activated'}`,\r\n MessageType.Success\r\n );\r\n } else {\r\n addMessage(`Couldn't ${isActive ? 'deactivate' : 'activate'}`);\r\n }\r\n })\r\n .catch((err) => addMessage(err.message));\r\n };\r\n\r\n const updateComments = (airportCode: string, comments: string) => {\r\n AirportService.updateComments(airportCode, comments)\r\n .then((response) => {\r\n if (response) {\r\n dispatch({\r\n type: AirportActionTypes.UPDATE_AIRPORT_COMMENT,\r\n payload: { comments, airportCode },\r\n });\r\n addMessage(\r\n `Comment for airport ${airportCode} updated`,\r\n MessageType.Success\r\n );\r\n } else {\r\n addMessage(\"Couldn't update the comment\");\r\n }\r\n })\r\n .catch((err) => addMessage(err.message));\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AirportsProvider;\r\nexport const useAirportsContext = () => useContext(AirportsContext);\r\nexport const useAirportsDispatchContext = () =>\r\n useContext(AirportsDispatchContext);\r\n","import IReservationSummary from '../../models/Reservation/IReservationSummary';\r\nimport {IPaginated} from '../../models/Utils/IPaginated';\r\nimport IMemberInformation from '../../models/IMemberInformation';\r\n\r\nexport enum ManageReservationsActionTypes {\r\n FETCH_BOOKINGS_STARTED = 'fetch-bookings-started',\r\n FETCH_BOOKINGS_FAILED = 'fetch-bookings-failed',\r\n FETCH_BOOKINGS_DONE = 'fetch-bookings-done',\r\n FETCH_TRIP_TYPES_DONE = 'fetch-trip-types-done',\r\n FETCH_NEXT_BOOKINGS = 'fetch-next-bookings',\r\n REMOVE_RESERVATION_STARTED = 'remove-resa-started',\r\n REMOVE_RESERVATION_DONE = 'remove-resa-done',\r\n REMOVE_RESERVATION_FAILED = 'remove-resa-failed',\r\n FETCH_CONTEXT_DATA_STARTED = 'fetch-context-data-started',\r\n FETCH_CONTEXT_DATA_DONE = 'fetch-context-data-done',\r\n SET_ALL_TRIP_TYPES = 'set-all-trip-type',\r\n}\r\n\r\nexport interface IManageReservationsState {\r\n user: IMemberInformation | null;\r\n bookings: IReservationSummary[];\r\n bookingsData: IReservationSummary[];\r\n bookingPage: number;\r\n hasMoreBooking: boolean;\r\n isFetching: boolean;\r\n errorMessage?: string;\r\n}\r\n\r\nexport type ManageReservationsAction =\r\n | { type: ManageReservationsActionTypes.FETCH_BOOKINGS_STARTED }\r\n | {\r\n type: ManageReservationsActionTypes.FETCH_BOOKINGS_FAILED;\r\n payload: string;\r\n }\r\n | {\r\n type: ManageReservationsActionTypes.FETCH_CONTEXT_DATA_STARTED;\r\n }\r\n | {\r\n type: ManageReservationsActionTypes.FETCH_CONTEXT_DATA_DONE;\r\n payload: [IMemberInformation];\r\n }\r\n | {\r\n type: ManageReservationsActionTypes.FETCH_BOOKINGS_DONE;\r\n payload: IReservationSummary[];\r\n }\r\n | {\r\n type: ManageReservationsActionTypes.FETCH_NEXT_BOOKINGS;\r\n payload: IPaginated;\r\n }\r\n | {\r\n type: ManageReservationsActionTypes.REMOVE_RESERVATION_DONE;\r\n payload: number;\r\n }\r\n | { type: ManageReservationsActionTypes.REMOVE_RESERVATION_STARTED }\r\n | { type: ManageReservationsActionTypes.REMOVE_RESERVATION_FAILED };\r\n\r\nexport const ManagerReservationsReducer = (\r\n state: IManageReservationsState,\r\n action: ManageReservationsAction\r\n) => {\r\n switch (action.type) {\r\n case ManageReservationsActionTypes.FETCH_BOOKINGS_STARTED:\r\n return { ...state, isFetching: true, errorMessage: undefined };\r\n case ManageReservationsActionTypes.FETCH_BOOKINGS_FAILED:\r\n return { ...state, isFetching: false, errorMessage: action.payload };\r\n case ManageReservationsActionTypes.FETCH_BOOKINGS_DONE:\r\n return { ...state, isFetching: false, bookingsData: action.payload };\r\n case ManageReservationsActionTypes.FETCH_NEXT_BOOKINGS:\r\n return {\r\n ...state,\r\n bookings: [...state.bookings, ...action.payload.data],\r\n bookingPage: state.bookingPage + 1,\r\n hasMoreBooking: action.payload.hasMore,\r\n };\r\n case ManageReservationsActionTypes.REMOVE_RESERVATION_DONE:\r\n return {\r\n ...state,\r\n bookingsData: state.bookingsData.filter(\r\n (d) => d.reservationId !== action.payload\r\n ),\r\n bookingPage: 1,\r\n bookings: [],\r\n isFetching: false,\r\n };\r\n case ManageReservationsActionTypes.REMOVE_RESERVATION_FAILED:\r\n return { ...state, isFetching: false };\r\n case ManageReservationsActionTypes.REMOVE_RESERVATION_STARTED:\r\n return { ...state, isFetching: true };\r\n case ManageReservationsActionTypes.FETCH_CONTEXT_DATA_STARTED:\r\n return { ...state, fetchingContextData: true };\r\n case ManageReservationsActionTypes.FETCH_CONTEXT_DATA_DONE:\r\n return {\r\n ...state,\r\n fetchingContextData: false,\r\n user: action.payload[0],\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default ManagerReservationsReducer;\r\n","import React, {useContext, useEffect, useMemo, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IReservationSummary from '../../models/Reservation/IReservationSummary';\r\nimport {Paginate} from '../../models/Utils/IPaginated';\r\nimport ReservationService from '../../services/ReservationService';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport ManageReservationsReducer, {\r\n IManageReservationsState,\r\n ManageReservationsActionTypes,\r\n} from './ManageReservationsReducer';\r\n\r\nexport interface IManageReservationsContext {\r\n bookings: IReservationSummary[];\r\n hasMoreBooking: boolean;\r\n isFetching: boolean;\r\n errorMessage?: string;\r\n LoadNextBookings: () => void;\r\n removeReservation: (reservationId: number) => void;\r\n}\r\n\r\nconst PAGE_SIZE: number = 10;\r\n\r\nconst initialState: IManageReservationsState = {\r\n user: null,\r\n bookings: [],\r\n bookingsData: [],\r\n bookingPage: 1,\r\n hasMoreBooking: false,\r\n errorMessage: undefined,\r\n isFetching: false,\r\n};\r\n\r\nconst ManageReservationsContext = React.createContext(\r\n {} as IManageReservationsContext\r\n);\r\n\r\nconst ManageReservationsProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(ManageReservationsReducer, initialState);\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n if (state.errorMessage) addMessage(state.errorMessage);\r\n }, [state.errorMessage]);\r\n\r\n useEffect(() => {\r\n (async function fetch() {\r\n await fetchData();\r\n })();\r\n }, []);\r\n\r\n useEffect(() => LoadNextBookings(), [state.bookingsData]);\r\n\r\n const fetchData = async () => {\r\n fetchBookings();\r\n };\r\n\r\n const fetchBookings = async () => {\r\n dispatch({ type: ManageReservationsActionTypes.FETCH_BOOKINGS_STARTED });\r\n ReservationService.getReservationsGuestPlanner()\r\n .then((bookings) =>\r\n dispatch({\r\n type: ManageReservationsActionTypes.FETCH_BOOKINGS_DONE,\r\n payload: bookings,\r\n })\r\n )\r\n .catch((error) =>\r\n dispatch({\r\n type: ManageReservationsActionTypes.FETCH_BOOKINGS_FAILED,\r\n payload: error,\r\n })\r\n );\r\n };\r\n\r\n const LoadNextBookings = () => {\r\n if (state.bookingsData?.length > 0) {\r\n dispatch({\r\n type: ManageReservationsActionTypes.FETCH_NEXT_BOOKINGS,\r\n payload: Paginate(state.bookingsData, state.bookingPage, PAGE_SIZE),\r\n });\r\n }\r\n };\r\n\r\n const removeReservation = (reservationId: number) => {\r\n dispatch({\r\n type: ManageReservationsActionTypes.REMOVE_RESERVATION_STARTED,\r\n });\r\n ReservationService.delete(reservationId)\r\n .then((result) => {\r\n if (result) {\r\n dispatch({\r\n type: ManageReservationsActionTypes.REMOVE_RESERVATION_DONE,\r\n payload: reservationId,\r\n });\r\n addMessage('Reservation removed with success', MessageType.Success);\r\n } else {\r\n addMessage(\"Couldn't delete the reservation\");\r\n dispatch({\r\n type: ManageReservationsActionTypes.REMOVE_RESERVATION_FAILED,\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n dispatch({\r\n type: ManageReservationsActionTypes.REMOVE_RESERVATION_FAILED,\r\n });\r\n });\r\n };\r\n\r\n const value = useMemo(\r\n () => ({\r\n ...state,\r\n LoadNextBookings,\r\n removeReservation,\r\n }),\r\n [state]\r\n );\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useManageReservationsContext = () =>\r\n useContext(ManageReservationsContext);\r\n\r\nexport default ManageReservationsProvider;\r\n","import IBlockFlightReason from '../../../models/BlockFlights/IBlockFlightReason';\r\n\r\nexport enum BlockFlightSettingActionType {\r\n FETCH_REASONS,\r\n SELECT_REASON,\r\n}\r\n\r\nexport interface BlockFlightSettingState {\r\n reasons: IBlockFlightReason[] | null;\r\n selectedReason: IBlockFlightReason | null;\r\n}\r\n\r\nexport type BlockFlightSettingAction =\r\n | {\r\n type: BlockFlightSettingActionType.FETCH_REASONS;\r\n payload: IBlockFlightReason[];\r\n }\r\n | {\r\n type: BlockFlightSettingActionType.SELECT_REASON;\r\n payload: IBlockFlightReason | null;\r\n };\r\n\r\nexport const BlockFlightSettingReducer = (\r\n state: BlockFlightSettingState,\r\n action: BlockFlightSettingAction\r\n) => {\r\n switch (action.type) {\r\n case BlockFlightSettingActionType.FETCH_REASONS:\r\n return { ...state, reasons: action.payload };\r\n case BlockFlightSettingActionType.SELECT_REASON:\r\n return { ...state, selectedReason: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default BlockFlightSettingReducer;\r\n","import React, {createContext, useContext, useEffect, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IBlockFlightReason from '../../../models/BlockFlights/IBlockFlightReason';\r\nimport BlockFlightService from '../../../services/BlockFlightService';\r\nimport Constants from '../../../utils/Constants';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport BlockFlightSettingReducer, {\r\n BlockFlightSettingAction,\r\n BlockFlightSettingActionType,\r\n BlockFlightSettingState,\r\n} from './BlockFlightSettingReducer';\r\n\r\nexport const InitialState: BlockFlightSettingState = {\r\n reasons: null,\r\n selectedReason: null,\r\n};\r\n\r\nexport interface IBlockFlightSettingContext {\r\n state: BlockFlightSettingState;\r\n dispatch: React.Dispatch;\r\n submitReason: (reason: IBlockFlightReason) => void;\r\n deleteSelectedReason: () => void;\r\n}\r\n\r\nconst BlockFlightSettingContext = createContext(\r\n {} as IBlockFlightSettingContext\r\n);\r\n\r\nconst BlockFlightSettingProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(BlockFlightSettingReducer, InitialState);\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n fetchReasons().catch(console.error);\r\n }, []);\r\n\r\n const fetchReasons = async () => {\r\n BlockFlightService.getBlockFlightReasons()\r\n .then((reasons) =>\r\n dispatch({\r\n type: BlockFlightSettingActionType.FETCH_REASONS,\r\n payload: reasons,\r\n })\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const submitReason = (reason: IBlockFlightReason) => {\r\n BlockFlightService.saveBlockedFlightReason(reason)\r\n .then((result) => {\r\n if (result) {\r\n fetchReasons().catch(console.error);\r\n }\r\n })\r\n .then(() =>\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success)\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const deleteSelectedReason = () => {\r\n if (state.selectedReason) {\r\n BlockFlightService.deleteBlockedFlightReason(\r\n state.selectedReason.reasonId\r\n )\r\n .then((isDeleted) => {\r\n if (isDeleted) {\r\n fetchReasons().catch(console.error);\r\n } else {\r\n addMessage('Cannot delete the selected reason.');\r\n }\r\n })\r\n .then(() =>\r\n addMessage(\r\n Constants.messages.success.dataDeleted,\r\n MessageType.Success\r\n )\r\n )\r\n .catch((error) => addMessage(error.message));\r\n }\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightSettingProvider;\r\n\r\nexport const useBlockFlightSettingContext = () =>\r\n useContext(BlockFlightSettingContext);\r\n","import IWCMPage from '../models/IWCMPage';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/wcmPages';\r\n\r\nconst WCMPageService = {\r\n get: (): Promise => requests.get(`${API_ENDPOINT}/`),\r\n getByName: (name: string): Promise =>\r\n requests.get(`${API_ENDPOINT}/name/${name}`),\r\n getAll: (): Promise => requests.get(`${API_ENDPOINT}/`),\r\n update: (page: IWCMPage): Promise =>\r\n requests.put(`${API_ENDPOINT}`, page),\r\n create: (page: IWCMPage): Promise =>\r\n requests.put(`${API_ENDPOINT}`, page),\r\n delete: (id: number): Promise =>\r\n requests.delete(`${API_ENDPOINT}/${id}`),\r\n saveNewImage: (formData: FormData): Promise => {\r\n return requests.post(`${API_ENDPOINT}/image`, formData, {\r\n headers: {\r\n 'content-type': 'multipart/form-data',\r\n },\r\n });\r\n },\r\n};\r\n\r\nexport default WCMPageService;\r\n","import IWCMPage from '../../../models/IWCMPage';\r\n\r\nexport enum WCMPageActionType {\r\n FETCH_WCM_PAGES,\r\n SELECT_WCM_PAGE,\r\n}\r\n\r\nexport interface WCMPageState {\r\n WCMPages: IWCMPage[] | null;\r\n selectedWCMPage: IWCMPage | null;\r\n}\r\n\r\nexport type WCMPageAction =\r\n | { type: WCMPageActionType.FETCH_WCM_PAGES; payload: IWCMPage[] }\r\n | { type: WCMPageActionType.SELECT_WCM_PAGE; payload: IWCMPage | null };\r\n\r\nexport const WCMPageReducer = (state: WCMPageState, action: WCMPageAction) => {\r\n switch (action.type) {\r\n case WCMPageActionType.FETCH_WCM_PAGES:\r\n return { ...state, WCMPages: action.payload };\r\n case WCMPageActionType.SELECT_WCM_PAGE:\r\n return { ...state, selectedWCMPage: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default WCMPageReducer;\r\n","import React, {createContext, useContext, useEffect, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IWCMPage from '../../../models/IWCMPage';\r\nimport WCMPageService from '../../../services/WCMPageService';\r\nimport Constants from '../../../utils/Constants';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport WCMPageReducer, {WCMPageAction, WCMPageActionType, WCMPageState,} from './WCMPageReducer';\r\n\r\nexport const InitialState: WCMPageState = {\r\n WCMPages: null,\r\n selectedWCMPage: null,\r\n};\r\n\r\nexport interface IWCMPageContext {\r\n state: WCMPageState;\r\n dispatch: React.Dispatch;\r\n submitWCMPage: (WCMPage: IWCMPage) => void;\r\n deleteSelectedWCMPage: () => void;\r\n}\r\n\r\nconst WCMPageContext = createContext({} as IWCMPageContext);\r\n\r\nconst WCMPageProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(WCMPageReducer, InitialState);\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n fetchWCMPages();\r\n }, []);\r\n\r\n const fetchWCMPages = async () => {\r\n WCMPageService.getAll()\r\n .then((WCMPages) =>\r\n dispatch({ type: WCMPageActionType.FETCH_WCM_PAGES, payload: WCMPages })\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const submitWCMPage = (helPage: IWCMPage) => {\r\n let WCMPagePromise: Promise;\r\n if (state.selectedWCMPage) {\r\n WCMPagePromise = WCMPageService.update({\r\n ...state.selectedWCMPage,\r\n ...helPage,\r\n });\r\n } else {\r\n WCMPagePromise = WCMPageService.create(helPage);\r\n }\r\n\r\n WCMPagePromise.then((result) => {\r\n if (result) {\r\n fetchWCMPages();\r\n }\r\n })\r\n .then(() =>\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success)\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const deleteSelectedWCMPage = () => {\r\n if (state.selectedWCMPage) {\r\n WCMPageService.delete(state.selectedWCMPage.wcmPageId)\r\n .then((isDeleted) => {\r\n if (isDeleted) {\r\n fetchWCMPages();\r\n } else {\r\n addMessage('Cannot delete the selected help page.');\r\n }\r\n })\r\n .then(() =>\r\n addMessage(\r\n Constants.messages.success.dataDeleted,\r\n MessageType.Success\r\n )\r\n )\r\n .catch((error) => addMessage(error.message));\r\n }\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default WCMPageProvider;\r\n\r\nexport const useWCMPageContext = () => useContext(WCMPageContext);\r\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgDanger(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10 0.031653C4.48949 0.0316254 0.0174424 4.48952 0 10C0 15.5228 4.47715 20 10 20C15.5228 20 20 15.5228 20 10C20 4.47715 15.5228 0 10 0V0.031653ZM9.98042 3.78159C10.3183 3.77631 10.6439 3.90802 10.8831 4.14673C11.1222 4.38543 11.2546 4.71078 11.2499 5.04865V11.2645C11.2561 11.7151 11.0193 12.1342 10.63 12.3614C10.2407 12.5885 9.75924 12.5885 9.36995 12.3614C8.98065 12.1342 8.74377 11.7151 8.74997 11.2645V5.04865C8.74053 4.35925 9.29104 3.79236 9.98042 3.78159ZM11.5332 15.0705C11.5332 14.2076 10.8336 13.508 9.97071 13.508C9.55631 13.508 9.15889 13.6726 8.86587 13.9657C8.57285 14.2587 8.40823 14.6561 8.40823 15.0705C8.40823 15.4849 8.57285 15.8823 8.86587 16.1753C9.15889 16.4684 9.55631 16.633 9.97071 16.633C10.3851 16.633 10.7825 16.4684 11.0755 16.1753C11.3686 15.8823 11.5332 15.4849 11.5332 15.0705Z\",\n fill: \"#CC0033\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDanger);\nexport default __webpack_public_path__ + \"static/media/danger.6270077c.svg\";\nexport { ForwardRef as ReactComponent };","import moment from 'moment';\r\nimport React from 'react';\r\n\r\nimport {Grid} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\n\r\nimport {ReactComponent as DangerIcon} from '../../../assets/icons/danger.svg';\r\nimport {\r\n useCateringOrderContext\r\n} from '../../../context/catering/CateringOrderProvider/CateringOrderProvider';\r\nimport {\r\n CateringOrderActionType\r\n} from '../../../context/catering/CateringOrderProvider/CateringOrderReducer';\r\nimport ICateringOrderExtended from '../../../models/CateringOrder/ICateringOrderExtended';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport styles from './CateringOrderCard.module.scss';\r\n\r\ninterface ICateringOrderCardProps {\r\n data: ICateringOrderExtended;\r\n isForecast?: boolean;\r\n}\r\n\r\nconst CateringOrderCard: React.FC = ({\r\n data,\r\n isForecast = false,\r\n }) => {\r\n const {state, dispatch, saveCateringOrder} = useCateringOrderContext();\r\n\r\n const handleAccept = () => {\r\n dispatch({\r\n type: CateringOrderActionType.SET_SELECTED_CATERINGORDER_LINE,\r\n payload: data,\r\n });\r\n const cateringOrderToSave = {\r\n cateringOrderId: data.cateringOrderId ?? 0,\r\n flightNumber: data.flightNumber,\r\n flightDesc: data.flightDesc,\r\n flightDate: data.flightDate,\r\n routing: data.routing,\r\n tailNumber: data.tailNumber,\r\n etd: data.etd ?? data.std,\r\n isAccepted: true,\r\n routingChanged: false,\r\n tailNumberChanged: false,\r\n etdChanged: false,\r\n cateringOrderForLegs: data.cateringOrderForLegs.map((s) => ({\r\n cateringOrderLegId: s.cateringOrderLegId ?? 0,\r\n cateringOrderId: s.cateringOrderId ?? 0,\r\n sector: s.sector,\r\n crewNormOnBoard: s.crewOnBoard.norm,\r\n crewVgOnBoard: s.crewOnBoard.vg,\r\n crewGfNlOnBoard: s.crewOnBoard.gfNl,\r\n crewGfNlVgOnBoard: s.crewOnBoard.gfNlVg,\r\n paxOnBoard: s.paxOnBoard,\r\n crewNormOnBoardChanged: false,\r\n crewVgOnBoardChanged: false,\r\n crewGfNlOnBoardChanged: false,\r\n crewGfNlVgOnBoardChanged: false,\r\n paxOnBoardChanged: false,\r\n dutyChanged: false,\r\n })),\r\n };\r\n saveCateringOrder(cateringOrderToSave);\r\n };\r\n\r\n const hasChanges = () => {\r\n for (let i = 0; i < data.cateringOrderForLegs?.length; i++) {\r\n if (\r\n data.cateringOrderForLegs[i].dutyChanged ||\r\n data.cateringOrderForLegs[i].crewNormOnBoardChanged ||\r\n data.cateringOrderForLegs[i].crewVgOnBoardChanged ||\r\n data.cateringOrderForLegs[i].crewGfNlOnBoardChanged ||\r\n data.cateringOrderForLegs[i].crewGfNlVgOnBoardChanged ||\r\n data.cateringOrderForLegs[i].paxOnBoardChanged ||\r\n data.routingChanged || data.tailNumberChanged\r\n ) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n const getButtonStyle = () => {\r\n if (data.tailNumberChanged || data.etdChanged) return styles.acceptRedButton;\r\n if (hasChanges()) return styles.acceptOrangeButton;\r\n\r\n if (data.canBeAccepted) {\r\n if (data.isAccepted) {\r\n return styles.acceptedButton;\r\n } else return styles.acceptButton;\r\n }\r\n if (data.isAccepted) {\r\n return styles.acceptedButton;\r\n }\r\n }\r\n\r\n const getButtonText = () => {\r\n if (data.tailNumberChanged || data.etdChanged) return 'ACCEPT';\r\n if (hasChanges()) return 'ACCEPT';\r\n\r\n if (data.canBeAccepted && !data.isAccepted) return 'ACCEPT';\r\n if (!data.canBeAccepted && !data.isAccepted) return 'ACCEPT';\r\n\r\n return 'ACCEPTED';\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n DUTY\r\n \r\n \r\n {moment(data.etd ?? data.std).hour() < 9\r\n ? 'HOT BREAKFAST + HOT MEALS'\r\n : 'HOT MEALS'}\r\n \r\n \r\n SALADS\r\n \r\n \r\n HOT SNACKS\r\n \r\n \r\n SANDWICHES\r\n \r\n \r\n FRESH FRUIT BOWL\r\n \r\n \r\n SOFT DRINKS\r\n
\r\n 0.33cl\r\n
\r\n \r\n WATER PLAIN\r\n
\r\n 1.5L\r\n
\r\n \r\n WATER SPARK\r\n
\r\n 1L\r\n
\r\n \r\n FRUIT JUICE\r\n
\r\n 1L\r\n
\r\n \r\n FRESH MILK\r\n
\r\n 0.33L\r\n
\r\n \r\n CREW ON BOARD\r\n \r\n \r\n PAX ON BOARD\r\n \r\n
\r\n
\r\n \r\n {data.cateringOrderForLegs?.length === 0 && (\r\n <>\r\n \r\n \r\n Routing : {data.routing}\r\n \r\n \r\n Sector : No sector\r\n \r\n \r\n Flight: {data.flightDesc}\r\n \r\n \r\n ETD: {moment(data.etd ?? data.std).format('DDMMMYYYY HH:mm').toUpperCase()}\r\n \r\n \r\n A/C Rg.: {data.tailNumber}\r\n \r\n \r\n \r\n \r\n NO CREW FOUND FOR THIS FLIGHT !!\r\n \r\n \r\n \r\n )}\r\n {data.incompleteDataFromCrewService && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n An error for this flight has been detected. The calculations\r\n can be distorted.\r\n \r\n \r\n \r\n \r\n )}\r\n {data.cateringOrderForLegs.map((sector, i) => (\r\n \r\n \r\n \r\n {i === 0 && `Routing : ${data.routing}`}\r\n \r\n \r\n Sector : {sector.sector}\r\n \r\n \r\n {i === 0 && `Flight: ${data.flightNumber}`}\r\n \r\n \r\n {i === 0 &&\r\n `ETD: ${moment(data.etd ?? data.std)\r\n .format('DDMMMYYYY HH:mm')\r\n .toUpperCase()}`}\r\n \r\n \r\n {i === 0 && `A/C Rg.: ${data.tailNumber}`}\r\n \r\n \r\n\r\n \r\n \r\n {!sector.duty ? '-' : sector.duty?.code}\r\n \r\n \r\n {sector.isMoreThan18Hours ? '18:00+' : (<>\r\n {moment(sector.duty?.min, 'HH:mm:ss').format('HH:mm').toString()}\r\n
\r\n {moment(sector.duty?.max, 'HH:mm:ss').format('HH:mm').toString()}\r\n )\r\n }\r\n\r\n
\r\n \r\n NORM\r\n
\r\n {moment(data.etd ?? data.std).hour() < 9\r\n ? `${sector.hotBreakfast.norm}+${sector.hotMeals.norm}`\r\n : sector.hotMeals.norm}\r\n
\r\n \r\n VL\r\n
\r\n {moment(data.etd ?? data.std).hour() < 9\r\n ? `${sector.hotBreakfast.vg}+${sector.hotMeals.vg}`\r\n : sector.hotMeals.vg}\r\n
\r\n \r\n GF/NL\r\n
\r\n {moment(data.etd ?? data.std).hour() < 9\r\n ? `${sector.hotBreakfast.gfNl}+${sector.hotMeals.gfNl}`\r\n : sector.hotMeals.gfNl}\r\n
\r\n \r\n GF/NL/VG\r\n
\r\n {moment(data.etd ?? data.std).hour() < 9\r\n ? `${sector.hotBreakfast.gfNlVg}+${sector.hotMeals.gfNlVg}`\r\n : sector.hotMeals.gfNlVg}\r\n
\r\n \r\n PAX\r\n
\r\n {moment(data.etd ?? data.std).hour() < 9\r\n ? `${sector.hotBreakfast.pax}+${sector.hotMeals.pax}`\r\n : sector.hotMeals.pax}\r\n
\r\n \r\n NORM\r\n
\r\n {sector.salads.norm}\r\n
\r\n \r\n VL\r\n
\r\n {sector.salads.vg}\r\n
\r\n \r\n GF/NL\r\n
\r\n {sector.salads.gfNl}\r\n
\r\n \r\n GF/NL/VG\r\n
\r\n {sector.salads.gfNlVg}\r\n
\r\n \r\n PAX\r\n
\r\n {sector.salads.pax}\r\n
\r\n \r\n NORM\r\n
\r\n {sector.hotSnacks.norm}\r\n
\r\n \r\n VL\r\n
\r\n {sector.hotSnacks.vg}\r\n
\r\n \r\n GF/NL\r\n
\r\n {sector.hotSnacks.gfNl}\r\n
\r\n \r\n GF/NL/VG\r\n
\r\n {sector.hotSnacks.gfNlVg}\r\n
\r\n \r\n PAX\r\n
\r\n {sector.hotSnacks.pax}\r\n
\r\n \r\n NORM\r\n
\r\n {sector.sandwiches.norm}\r\n
\r\n \r\n VL\r\n
\r\n {sector.sandwiches.vg}\r\n
\r\n \r\n GF/NL\r\n
\r\n {sector.sandwiches.gfNl}\r\n
\r\n \r\n GF/NL/VG\r\n
\r\n {sector.sandwiches.gfNlVg}\r\n
\r\n \r\n PAX\r\n
\r\n {sector.sandwiches.pax}\r\n
\r\n \r\n {sector.freshFruit}\r\n \r\n \r\n {sector.softDrinks}\r\n \r\n \r\n {sector.waterPlain}\r\n \r\n \r\n {sector.waterSpark}\r\n \r\n \r\n {sector.fruitJuice}\r\n \r\n \r\n {sector.freshMilk}\r\n \r\n \r\n NORM\r\n
\r\n {sector.crewOnBoard.norm}\r\n \r\n \r\n VL\r\n
\r\n {sector.crewOnBoard.vg}\r\n \r\n \r\n GF/NL\r\n
\r\n {sector.crewOnBoard.gfNl}\r\n \r\n \r\n GF/NL/VG\r\n
\r\n {sector.crewOnBoard.gfNlVg}\r\n \r\n \r\n {sector.paxOnBoard}\r\n \r\n
\r\n
\r\n ))}\r\n {!isForecast && (\r\n \r\n \r\n {state.cardLoading &&\r\n state.selectedCateringOrderLine &&\r\n state.selectedCateringOrderLine.cateringOrderId ===\r\n data.cateringOrderId &&\r\n state.selectedCateringOrderLine.flightDesc === data.flightDesc &&\r\n state.selectedCateringOrderLine.flightDate === data.flightDate ? (\r\n \r\n ) : (\r\n \r\n \r\n {getButtonText()}\r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CateringOrderCard;\r\n","import moment from 'moment';\r\nimport React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Input from '@material-ui/core/Input';\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport ClearIcon from '@material-ui/icons/Clear';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\nimport RefreshIcon from '@material-ui/icons/Refresh';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\n\r\nimport {useCateringOrderContext} from '../../../context/catering/CateringOrderProvider/CateringOrderProvider';\r\nimport {CateringOrderActionType} from '../../../context/catering/CateringOrderProvider/CateringOrderReducer';\r\nimport styles from './CateringOrderFilter.module.scss';\r\n\r\ninterface ICateringOrderFilterProps {}\r\n\r\nconst CateringOrderFilter: React.FC = () => {\r\n const { state, dispatch, exportCateringOrder, fetchCateringOrder } =\r\n useCateringOrderContext();\r\n\r\n const handleMouseDownSearchFilter = (\r\n event: React.MouseEvent\r\n ) => {\r\n event.preventDefault();\r\n };\r\n const handleClickSearchFilter = () => {\r\n dispatch({ type: CateringOrderActionType.SET_FILTER, payload: '' });\r\n };\r\n const handleExport = async () => {\r\n const blob = await exportCateringOrder();\r\n if (blob && blob.size > 0) {\r\n downloadBlob(\r\n blob,\r\n `Catering Order ${moment\r\n .tz('Europe/Luxembourg')\r\n .format('DD MMM YY')\r\n .toUpperCase()}.xlsx`\r\n );\r\n }\r\n };\r\n\r\n const downloadBlob = (blob: Blob, filename: string) => {\r\n const url = URL.createObjectURL(blob);\r\n\r\n const downloadLink = document.createElement('a');\r\n downloadLink.href = url;\r\n downloadLink.download = filename || 'download';\r\n\r\n const clickHandler = () => {\r\n setTimeout(() => {\r\n URL.revokeObjectURL(url);\r\n downloadLink.removeEventListener('click', clickHandler);\r\n }, 150);\r\n };\r\n\r\n downloadLink.addEventListener('click', clickHandler, false);\r\n\r\n downloadLink.click();\r\n };\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n Search Flight Number\r\n {\r\n dispatch({\r\n type: CateringOrderActionType.SET_FILTER,\r\n payload: e.target.value || '',\r\n });\r\n }}\r\n endAdornment={\r\n \r\n \r\n {state.filter ? : }\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n {' '}\r\n Export excel\r\n \r\n }\r\n onClick={() => fetchCateringOrder()}\r\n >\r\n Refresh\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CateringOrderFilter;\r\n","var _path, _path2, _path3, _path4, _path5;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgNoResult(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 48,\n height: 49,\n viewBox: \"0 0 48 49\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.0873 32.8109L32.6334 29.2648L48 44.6309L44.454 48.1771L29.0873 32.8109Z\",\n fill: \"#616161\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.8956 0C15.3537 0 10.0388 2.20149 6.12017 6.12017C2.20149 10.0388 0 15.3537 0 20.8956C0 26.4374 2.20149 31.7523 6.12017 35.671C10.0388 39.5896 15.3537 41.7911 20.8956 41.7911C26.4374 41.7911 31.7523 39.5896 35.671 35.671C39.5896 31.7523 41.7911 26.4374 41.7911 20.8956C41.7911 15.3537 39.5896 10.0388 35.671 6.12017C31.7523 2.20149 26.4374 0 20.8956 0Z\",\n fill: \"#666C7E\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.1782 39.9245L39.7242 36.3783L47.9986 44.6524L44.4525 48.1986L36.1782 39.9245Z\",\n fill: \"#666C7E\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.8956 4.17911C16.4621 4.17911 12.2102 5.9403 9.07527 9.07524C5.94033 12.2102 4.17914 16.4621 4.17914 20.8956C4.17914 25.329 5.94033 29.5809 9.07527 32.7159C12.2102 35.8508 16.4621 37.612 20.8956 37.612C25.3291 37.612 29.581 35.8508 32.7159 32.7159C35.8508 29.5809 37.612 25.329 37.612 20.8956C37.612 16.4621 35.8508 12.2102 32.7159 9.07524C29.581 5.9403 25.3291 4.17911 20.8956 4.17911Z\",\n fill: \"#3294B1\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.8807 13.3732C27.5822 10.6568 24.4479 9.19406 21.1046 9.19406C17.7613 9.19406 14.418 10.6568 12.3284 13.3732C11.9105 14 11.9105 14.6269 12.5374 15.2538C13.1643 15.6717 13.7911 15.6717 14.418 15.0448C16.0896 12.9553 18.5971 11.9105 21.3135 11.9105C24.0299 11.9105 26.5374 13.1642 28.2091 15.0448C28.418 15.2538 28.8359 15.4627 29.2538 15.4627C29.4628 15.4627 29.8807 15.4627 30.0897 15.2538C30.2986 14.8359 30.2986 14 29.8807 13.3732Z\",\n fill: \"#DCF1F8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNoResult);\nexport default __webpack_public_path__ + \"static/media/noResult.fe8477dd.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as NoResultIcon} from '../../../assets/icons/noResult.svg';\r\nimport styles from './NoResult.module.scss';\r\n\r\ninterface INoResultProps {\r\n isDrawer?: boolean;\r\n text?: string;\r\n}\r\n\r\nconst NoResult: React.FC = ({\r\n isDrawer = false,\r\n text = 'Sorry, we couldn’t find any matches',\r\n}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {text}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NoResult;\r\n","import React, {useEffect} from 'react';\r\n\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {useGlobalStorageContext} from '../../context/GlobalStorage/GlobalStorageProvider';\r\nimport styles from './PageContent.module.scss';\r\n\r\ninterface IPageContentProps {\r\n title: string;\r\n header?: JSX.Element;\r\n cvFlightActive?: boolean;\r\n}\r\n\r\nconst PageContent: React.FC = ({\r\n title,\r\n header,\r\n children,\r\n cvFlightActive,\r\n}) => {\r\n const { SetPageTile } = useGlobalStorageContext();\r\n\r\n useEffect(() => {\r\n SetPageTile(title);\r\n }, [title]);\r\n\r\n return (\r\n \r\n {header &&
{header}
}\r\n \r\n {title}\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default PageContent;\r\n","import React, {useEffect} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\n\r\nimport CateringOrderCard from '../../../components/cateringOrder/CateringOrderCard/CateringOrderCard';\r\nimport CateringOrderFilter from '../../../components/cateringOrder/CateringOrderFilter/CateringOrderFilter';\r\nimport NoResult from '../../../components/commons/NoResult/NoResult';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport {useCateringOrderContext} from '../../../context/catering/CateringOrderProvider/CateringOrderProvider';\r\nimport {useLayoutContext} from '../../../context/LayoutProvider/LayoutProvider';\r\n\r\nconst CateringOrderPage: React.FC = () => {\r\n const { setFullWidth } = useLayoutContext();\r\n const { state } = useCateringOrderContext();\r\n\r\n useEffect(() => {\r\n setFullWidth(true);\r\n return () => {\r\n setFullWidth(false);\r\n };\r\n }, []);\r\n return (\r\n \r\n {state.loading && }\r\n {!state.loading && (\r\n <>\r\n {state.dataFetched && (\r\n <>\r\n {state.hasResult ? (\r\n <>\r\n \r\n {state.cateringOrder.map((c, i) => (\r\n \r\n ))}\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CateringOrderPage;\r\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgDelete(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 21,\n viewBox: \"0 0 20 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.96367 0L19.7851 2.76676C19.7851 2.76676 20.7087 5.59805 18.7266 12.8854C16.8652 19.2238 12.9227 20.5533 9.9428 20.5533C9.95533 20.5542 3.55948 20.8477 1.22549 12.9185C-0.774619 4.28691 0.275517 3.32056 0.275517 3.32056L9.96367 0ZM9.88465 19.5913C9.88465 19.5913 15.7858 20.018 17.8006 12.6201C19.1888 7.65325 19.0241 4.46785 18.9272 3.52558L9.99124 1.00859L0.986266 4.09479C0.904721 4.61874 0.814508 6.58449 2.16257 12.6959C4.25482 19.8844 9.88465 19.5913 9.88465 19.5913Z\",\n fill: \"#A3B6EC\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.7622 10.3347L13.3206 7.72912C13.5068 7.53938 13.5039 7.23439 13.3142 7.04819C13.1244 6.86198 12.8194 6.86455 12.6332 7.05461L10.0873 9.64768L7.54145 7.05461C7.35525 6.86455 7.05026 6.86166 6.86052 7.04819C6.67078 7.23471 6.66789 7.53938 6.8541 7.72912L9.4125 10.3347L6.85442 12.9403C6.66789 13.1301 6.67078 13.435 6.86084 13.6212C6.95459 13.7134 7.07626 13.7593 7.19826 13.7593C7.32282 13.7593 7.44771 13.7111 7.54178 13.6151L10.0877 11.0221L12.6335 13.6151C12.7279 13.7111 12.8525 13.7593 12.9771 13.7593C13.0987 13.7593 13.2207 13.7134 13.3145 13.6212C13.5042 13.435 13.5071 13.1301 13.3209 12.9403L10.7622 10.3347Z\",\n fill: \"#A3B6EC\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDelete);\nexport default __webpack_public_path__ + \"static/media/delete.ed2b7d4e.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgEdit(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 22,\n viewBox: \"0 0 22 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M20.0553 2.15C20.0553 2.15 22.0629 4.22349 20.2249 6.44417L7.84463 18.8241C7.84463 18.8241 7.31549 19.3293 6.84449 19.5427C6.84449 19.5427 4.62234 20.5623 2.14629 21.0223C2.14629 21.0223 1.53546 21.2059 1.28819 20.9167L1.15167 20.7809C1.15167 20.7809 0.884161 20.5609 1.05968 19.8919C1.05968 19.8919 2.16947 15.4708 3.14164 14.499L16.0371 1.6525C16.0371 1.6525 17.9689 -0.105643 20.0553 2.15Z\",\n stroke: \"#A3B6EC\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.2202 2.86328L19.0305 6.67542\",\n stroke: \"#A3B6EC\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.10742 14.5703L7.57367 18.0358\",\n stroke: \"#A3B6EC\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEdit);\nexport default __webpack_public_path__ + \"static/media/edit.96445a9e.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgPlus(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 8C16 8.41212 15.6848 8.72727 15.2727 8.72727H8.72727V15.2727C8.72727 15.6848 8.41212 16 8 16C7.58788 16 7.27273 15.6848 7.27273 15.2727V8.72727H0.727273C0.315152 8.72727 0 8.41212 0 8C0 7.58788 0.315152 7.27273 0.727273 7.27273H7.27273V0.727273C7.27273 0.315152 7.58788 0 8 0C8.41212 0 8.72727 0.315152 8.72727 0.727273V7.27273H15.2727C15.6848 7.27273 16 7.58788 16 8Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlus);\nexport default __webpack_public_path__ + \"static/media/plus.fb5c6042.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nimport Button, {ButtonProps} from '@material-ui/core/Button';\r\n\r\nimport {ReactComponent as PlusIcon} from '../../../assets/icons/plus.svg';\r\n\r\nexport interface IAddButtonProps extends ButtonProps {}\r\n\r\nconst AddButton: React.FC = ({\r\n fullWidth,\r\n children,\r\n ...props\r\n}) => {\r\n return (\r\n }\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default AddButton;\r\n","var _path, _line;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgPagingFirst(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.4286 2.35L12.3648 10L19.4286 17.65L17.2539 20L8.00002 10L17.2539 0L19.4286 2.35Z\",\n fill: \"#A3B6EC\"\n })), _line || (_line = /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.5,\n y1: 20,\n x2: 2.5,\n stroke: \"#A3B6EC\",\n strokeWidth: 3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPagingFirst);\nexport default __webpack_public_path__ + \"static/media/pagingFirst.257ab8c6.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _line;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgPagingLast(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 21,\n viewBox: \"0 0 20 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0 18.5325L7.417 10.5L0 2.4675L2.2834 0L12 10.5L2.2834 21L0 18.5325Z\",\n fill: \"#A3B6EC\"\n })), _line || (_line = /*#__PURE__*/React.createElement(\"line\", {\n x1: 17.5,\n y1: 1,\n x2: 17.5,\n y2: 21,\n stroke: \"#A3B6EC\",\n strokeWidth: 3\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPagingLast);\nexport default __webpack_public_path__ + \"static/media/pagingLast.57cb8252.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgPagingNext(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 21,\n viewBox: \"0 0 12 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0 18.5325L7.417 10.5L0 2.4675L2.2834 0L12 10.5L2.2834 21L0 18.5325Z\",\n fill: \"#A3B6EC\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPagingNext);\nexport default __webpack_public_path__ + \"static/media/pagingNext.1ca8a51b.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgPagingPrevious(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 20,\n viewBox: \"0 0 12 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.4286 2.35L4.36478 10L11.4286 17.65L9.25392 20L1.71661e-05 10L9.25392 0L11.4286 2.35Z\",\n fill: \"#A3B6EC\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPagingPrevious);\nexport default __webpack_public_path__ + \"static/media/pagingPrevious.df5ce0ed.svg\";\nexport { ForwardRef as ReactComponent };","import clsx from 'clsx';\r\nimport React, {ReactNode, useEffect, useState} from 'react';\r\nimport {useExpanded, useGlobalFilter, usePagination, useRowSelect, useSortBy, useTable,} from 'react-table';\r\n\r\nimport {LinearProgress} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box/Box';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Input from '@material-ui/core/Input';\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport MenuItem from '@material-ui/core/MenuItem/MenuItem';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Select from '@material-ui/core/Select/Select';\r\nimport MuiTable from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';\r\nimport ArrowUpwardIcon from '@material-ui/icons/ArrowUpward';\r\nimport ClearIcon from '@material-ui/icons/Clear';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\n\r\nimport {ReactComponent as FirstPage} from '../../../assets/icons/pagingFirst.svg';\r\nimport {ReactComponent as LastPage} from '../../../assets/icons/pagingLast.svg';\r\nimport {ReactComponent as NavigateNext} from '../../../assets/icons/pagingNext.svg';\r\nimport {ReactComponent as NavigatePrevious} from '../../../assets/icons/pagingPrevious.svg';\r\nimport styles from './Table.module.scss';\r\n\r\nfunction GlobalFilter({ globalFilter, setGlobalFilter, gotoPage }: any) {\r\n const handleMouseDownSearchFilter = (\r\n event: React.MouseEvent\r\n ) => {\r\n event.preventDefault();\r\n };\r\n const handleClickSearchFilter = () => {\r\n setGlobalFilter('');\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Search in table\r\n {\r\n setGlobalFilter(e.target.value || undefined); // Set undefined to remove the filter entirely\r\n if (gotoPage) gotoPage(0);\r\n }}\r\n endAdornment={\r\n \r\n \r\n {globalFilter ? : }\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport interface ITableProps {\r\n columns: any[];\r\n data: any[];\r\n search?: boolean;\r\n sort?: boolean;\r\n pagination?: boolean;\r\n itemsPerPage?: number;\r\n expand?: boolean;\r\n hiddenColumns?: string[];\r\n getRowProps?: (row: any) => void;\r\n getCellProps?: (cell: any) => void;\r\n renderRowSubComponent?: (row: any) => ReactNode;\r\n onSelectedRows?: (rows: any[]) => void;\r\n fixed?: boolean;\r\n loading?: boolean;\r\n className?: string;\r\n resetPageOnData?: boolean;\r\n}\r\n\r\n// Create a default prop getter\r\nconst defaultPropGetter = () => ({});\r\n\r\nconst Table: React.FC = ({\r\n columns,\r\n data,\r\n search = false,\r\n sort = false,\r\n expand = false,\r\n pagination = false,\r\n itemsPerPage = 10,\r\n fixed = false,\r\n hiddenColumns,\r\n getRowProps = defaultPropGetter,\r\n getCellProps = defaultPropGetter,\r\n renderRowSubComponent,\r\n onSelectedRows,\r\n loading,\r\n className,\r\n resetPageOnData,\r\n}) => {\r\n const [records, setRecords] = useState(data);\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n rows,\r\n prepareRow,\r\n setGlobalFilter,\r\n setHiddenColumns,\r\n visibleColumns,\r\n selectedFlatRows,\r\n page,\r\n canPreviousPage,\r\n canNextPage,\r\n pageOptions,\r\n pageCount,\r\n gotoPage,\r\n nextPage,\r\n previousPage,\r\n setPageSize,\r\n state: { pageIndex, pageSize, globalFilter },\r\n } = useTable(\r\n {\r\n columns,\r\n data: records,\r\n autoResetExpanded: false,\r\n initialState: { pageIndex: 0 },\r\n autoResetPage: false,\r\n autoResetGlobalFilter: false,\r\n },\r\n search ? useGlobalFilter : () => {},\r\n sort ? useSortBy : () => {},\r\n pagination ? usePagination : () => {},\r\n expand ? useExpanded : () => {},\r\n useRowSelect\r\n );\r\n\r\n useEffect(() => {\r\n if (pagination && itemsPerPage) {\r\n setPageSize(itemsPerPage);\r\n }\r\n }, [itemsPerPage]);\r\n\r\n React.useEffect(() => {\r\n onSelectedRows && onSelectedRows(selectedFlatRows);\r\n }, [selectedFlatRows]);\r\n\r\n useEffect(() => {\r\n setRecords(data);\r\n if (hiddenColumns) {\r\n setHiddenColumns(hiddenColumns);\r\n }\r\n resetPageOnData && gotoPage(0);\r\n }, [data, hiddenColumns]);\r\n\r\n const renderRow = (row: any) => {\r\n return (\r\n \r\n {}}\r\n className={row.depth === 0 ? styles.tableRow : styles.innerRow}\r\n {...row.getRowProps(getRowProps(row))}\r\n >\r\n {row.cells.map((cell: any, index: number) => (\r\n \r\n {cell.render('Cell')}\r\n \r\n ))}\r\n \r\n {row.isExpanded && renderRowSubComponent ? (\r\n \r\n \r\n {renderRowSubComponent && renderRowSubComponent({ row })}\r\n \r\n \r\n ) : null}\r\n \r\n );\r\n };\r\n\r\n const renderBody = () => {\r\n return !!loading ? (\r\n <>\r\n ) : (\r\n \r\n {pagination\r\n ? page.map((row: any) => {\r\n prepareRow(row);\r\n\r\n return renderRow(row);\r\n })\r\n : rows.map((row: any) => {\r\n prepareRow(row);\r\n\r\n return renderRow(row);\r\n })}\r\n \r\n );\r\n };\r\n\r\n const renderTable = () => {\r\n return (\r\n <>\r\n \r\n \r\n {headerGroups.map((headerGroup, index) => (\r\n \r\n {headerGroup.headers.map((column) => {\r\n const headerProps = sort\r\n ? column.getHeaderProps(\r\n column.getSortByToggleProps({\r\n title: undefined,\r\n })\r\n )\r\n : column.getHeaderProps();\r\n\r\n return (\r\n \r\n {column.render('Header')}\r\n {sort && (\r\n \r\n {column.isSorted ? (\r\n column.isSortedDesc ? (\r\n \r\n ) : (\r\n \r\n )\r\n ) : (\r\n ''\r\n )}\r\n \r\n )}\r\n \r\n );\r\n })}\r\n \r\n ))}\r\n \r\n {renderBody()}\r\n \r\n {!!loading && }\r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n {search ? (\r\n \r\n ) : null}\r\n {renderTable()}\r\n {pagination && rows.length > itemsPerPage && (\r\n \r\n \r\n gotoPage(0)} disabled={!canPreviousPage}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {pageOptions.map((x) =>\r\n pageIndex === x ? (\r\n {x + 1}\r\n ) : (\r\n gotoPage(x)}>\r\n {x + 1}\r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n gotoPage(pageCount - 1)}\r\n disabled={!canNextPage}\r\n >\r\n \r\n \r\n \r\n \r\n {\r\n setPageSize(Number(e.target.value));\r\n }}\r\n className={styles.show}\r\n >\r\n {[10, 25, 50].map((pageSize) => (\r\n \r\n Show {pageSize}\r\n \r\n ))}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\nexport default Table;\r\n","import React from 'react';\r\n\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\nimport styles from './TableIconButton.module.scss';\r\n\r\nconst TableIconButton: React.FC<{\r\n id?: string;\r\n children: any;\r\n onClick?: () => void;\r\n onMouseDown?: (event: React.MouseEvent) => void;\r\n disabled?: boolean;\r\n}> = ({ children, onClick, onMouseDown, disabled, ...props }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default TableIconButton;\r\n","/* eslint-disable */\r\nimport React from 'react';\r\nimport {Control, Controller} from 'react-hook-form';\r\n\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport TextField, {TextFieldProps} from '@material-ui/core/TextField';\r\nimport Autocomplete, {AutocompleteProps} from '@material-ui/lab/Autocomplete';\r\n\r\nimport IOption from '../../../models/IOption';\r\n\r\ninterface ISearchcompleteProps\r\n extends Omit<\r\n AutocompleteProps,\r\n 'renderInput' | 'options' | 'freeSolo'\r\n > {\r\n name: string;\r\n label?: string;\r\n options: IOption[];\r\n errorMessage?: React.ReactNode;\r\n margin?: 'none' | 'dense' | 'normal' | undefined;\r\n defaultValue?: any;\r\n control?: Control;\r\n error?: boolean;\r\n placeholder?: string;\r\n variant?: any;\r\n freeSolo?: boolean;\r\n}\r\n\r\nconst Searchcomplete: React.FC = ({\r\n name,\r\n label,\r\n defaultValue,\r\n color = 'primary',\r\n margin = 'none',\r\n fullWidth = true,\r\n options,\r\n error,\r\n errorMessage,\r\n control,\r\n placeholder,\r\n variant = 'standard',\r\n freeSolo,\r\n ...rest\r\n}) => {\r\n return (\r\n \r\n {control ? (\r\n (\r\n <>\r\n option.label}\r\n getOptionLabel={(option: any) => option.label}\r\n getOptionSelected={(option: any, value: any) => {\r\n return option?.value === value?.value;\r\n }}\r\n renderInput={(params: TextFieldProps) => (\r\n \r\n )}\r\n onChange={(e: any, data: any) => {\r\n onChange(data);\r\n }}\r\n {...rest}\r\n {...props}\r\n freeSolo={!!freeSolo}\r\n onInputChange={(e, data) => {\r\n rest.onInputChange && rest.onInputChange(e, data, 'input');\r\n !!freeSolo && onChange(data);\r\n return data;\r\n }}\r\n />\r\n \r\n )}\r\n onChange={([, data]: any) => data}\r\n name={name}\r\n control={control}\r\n defaultValue={defaultValue}\r\n />\r\n ) : (\r\n option.label}\r\n getOptionLabel={(option: any) => option.label}\r\n getOptionSelected={(option: any, value: any) => {\r\n return option?.value === value?.value;\r\n }}\r\n renderInput={(params: TextFieldProps) => (\r\n \r\n )}\r\n {...rest}\r\n />\r\n )}\r\n\r\n {error && {errorMessage}}\r\n \r\n );\r\n};\r\n\r\nexport default Searchcomplete;\r\n","import React from 'react';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {useCrewSpecialMealsContext} from '../../../context/catering/CrewSpecialMealsProvider/CrewSpecialMealsProvider';\r\nimport {CrewSpecialMealsActionType} from '../../../context/catering/CrewSpecialMealsProvider/CrewSpecialMealsReducer';\r\nimport IOption from '../../../models/IOption';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Searchcomplete from '../../commons/Searchcomplete/Searchcomplete';\r\n\r\ninterface ICrewSpecialMealCrewFilterProps {}\r\n\r\nconst CrewSpecialMealCrewFilter: React.FC<\r\n ICrewSpecialMealCrewFilterProps\r\n> = () => {\r\n const { state, dispatch } = useCrewSpecialMealsContext();\r\n return (\r\n <>\r\n Filter by\r\n \r\n \r\n \r\n !state.crewsWithoutMeals\r\n .map((c) => `${c.code}-${c.firstname}-${c.lastname}`)\r\n .includes(`${c.code}-${c.firstname}-${c.lastname}`)\r\n )\r\n .map((crew) => ({\r\n label: `${crew.firstname} ${crew.lastname}`,\r\n value: crew.code,\r\n })),\r\n ]}\r\n onChange={(event, value) => {\r\n dispatch({\r\n type: CrewSpecialMealsActionType.SET_FILTERED_CREWCODE,\r\n payload: value as IOption,\r\n });\r\n }}\r\n fullWidth\r\n value={state.filteredCrewCode}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CrewSpecialMealCrewFilter;\r\n","import React from 'react';\r\n\r\nimport Button, {ButtonProps} from '@material-ui/core/Button';\r\n\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\n\r\ninterface IDialogCancelButtonProps extends ButtonProps {\r\n text?: string;\r\n onClick: () => void;\r\n}\r\n\r\nconst DialogCancelButton: React.FC = ({\r\n onClick,\r\n text,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {text ? text : Constants.buttons.cancel}\r\n \r\n );\r\n};\r\n\r\nexport default DialogCancelButton;\r\n","import React from 'react';\r\n\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {useCrewSpecialMealsContext} from '../../../context/catering/CrewSpecialMealsProvider/CrewSpecialMealsProvider';\r\nimport {IModalReturn} from '../../../hooks/useModal';\r\nimport Constants from '../../../utils/Constants';\r\nimport Dialog from '../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../commons/Dialog/DialogTitle';\r\n\r\ninterface ICrewSpecialMealDeleteDialogProps {\r\n dialog: IModalReturn;\r\n}\r\n\r\nconst CrewSpecialMealDeleteDialog: React.FC<\r\n ICrewSpecialMealDeleteDialogProps\r\n> = ({ dialog }) => {\r\n const { state, deleteCrewSpecialMeal } = useCrewSpecialMealsContext();\r\n\r\n const handleDelete = () => {\r\n if (state.selectedCrewSpecialMeal) {\r\n deleteCrewSpecialMeal(state.selectedCrewSpecialMeal.crew?.code);\r\n }\r\n dialog.hideModal();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n You are going to delete a special meal for a crew\r\n \r\n {`${\r\n state.selectedCrewSpecialMeal?.crew?.firstname\r\n } ${state.selectedCrewSpecialMeal?.crew?.lastname.toUpperCase()} - ${\r\n state.selectedCrewSpecialMeal?.mealType.description\r\n }`}\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n \r\n handleDelete()}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CrewSpecialMealDeleteDialog;\r\n","import React from 'react';\r\nimport {Control, Controller} from 'react-hook-form';\r\n\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport MuiSelect, {SelectProps} from '@material-ui/core/Select';\r\nimport {makeStyles, Theme} from '@material-ui/core/styles';\r\n\r\nimport IOption from '../../../models/IOption';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n menuItemRoot: {\r\n '&$menuItemSelected, &$menuItemSelected:focus, &$menuItemSelected:hover': {\r\n backgroundColor: theme.palette.action.selected,\r\n },\r\n },\r\n menuItemSelected: {},\r\n}));\r\n\r\ninterface ISelectProps extends Omit {\r\n name: string;\r\n options: IOption[];\r\n noOptionsLabel: string;\r\n errorMessage?: React.ReactNode;\r\n margin?: 'none' | 'dense' | 'normal' | undefined;\r\n defaultValue?: any;\r\n control?: Control;\r\n formControlClassName?: string;\r\n}\r\n\r\nconst Select: React.FC = ({\r\n name,\r\n defaultValue,\r\n variant = 'outlined',\r\n color = 'primary',\r\n margin = 'none',\r\n fullWidth = true,\r\n error,\r\n label,\r\n options,\r\n noOptionsLabel,\r\n errorMessage,\r\n control,\r\n formControlClassName,\r\n ...props\r\n}) => {\r\n const classes = useStyles();\r\n const inputLabel = React.useRef(null);\r\n const [labelWidth, setLabelWidth] = React.useState(0);\r\n\r\n React.useEffect(() => {\r\n setLabelWidth(inputLabel.current!.offsetWidth);\r\n }, []);\r\n\r\n const selectOptions = () => {\r\n if (!options.length || options.length === 0) {\r\n return (\r\n \r\n No Option Available\r\n \r\n );\r\n\r\n }\r\n return options.map((option: any) => {\r\n return (\r\n \r\n {option.label}\r\n \r\n );\r\n });\r\n };\r\n\r\n const select = (\r\n \r\n {selectOptions()}\r\n \r\n );\r\n\r\n return (\r\n \r\n {label}\r\n {control ? (\r\n \r\n ) : (\r\n select\r\n )}\r\n {error && {errorMessage}}\r\n \r\n );\r\n};\r\n\r\nexport default Select;\r\n","import React from 'react';\r\nimport {Controller} from 'react-hook-form';\r\n\r\nimport MuiCheckbox, {CheckboxProps} from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\n\r\ninterface ICheckboxProps extends CheckboxProps {\r\n label?: string;\r\n labelPlacement?: 'end' | 'start' | 'top' | 'bottom';\r\n className?: string;\r\n}\r\n\r\nconst Checkbox: React.FC = ({\r\n label,\r\n labelPlacement = 'end',\r\n className,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n }\r\n label={label}\r\n labelPlacement={labelPlacement}\r\n className={className}\r\n />\r\n );\r\n};\r\n\r\ninterface ICheckboxControlledProps extends CheckboxProps {\r\n label?: string;\r\n labelPlacement?: 'end' | 'start' | 'top' | 'bottom';\r\n className?: string;\r\n control: any;\r\n name: string;\r\n}\r\n\r\nexport const CheckboxControlled: React.FC = ({\r\n label,\r\n labelPlacement = 'end',\r\n className,\r\n control,\r\n name,\r\n ...props\r\n}) => {\r\n return (\r\n (\r\n renderProps.onChange(e.target.checked)}\r\n checked={renderProps.value}\r\n {...props}\r\n />\r\n }\r\n label={label}\r\n labelPlacement={labelPlacement}\r\n className={className}\r\n />\r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default Checkbox;\r\n","import React, {useState} from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport ICrew from '../../../models/CrewSpecialMeals/ICrew';\r\nimport ICrewSpecialMeal from '../../../models/CrewSpecialMeals/ICrewSpecialMeal';\r\nimport {ICrewSpecialMealForm} from '../../../models/CrewSpecialMeals/ICrewSpecialMealForm';\r\nimport IMealType from '../../../models/CrewSpecialMeals/IMealType';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport Searchcomplete from '../../commons/Searchcomplete/Searchcomplete';\r\nimport Select from '../../commons/Select/Select';\r\nimport TextField from '../../commons/TextField';\r\nimport Checkbox from '../../commons/Checkbox/Checkbox';\r\n\r\ninterface ICrewSpecialMealFormProps {\r\n form: UseFormMethods;\r\n validationError: string | undefined;\r\n defaultValue: ICrewSpecialMeal;\r\n crews: ICrew[];\r\n crewsWithoutMeals: ICrew[];\r\n mealTypes: IMealType[];\r\n isNew: boolean;\r\n checkBoxValue: any;\r\n}\r\n\r\nconst CrewSpecialMealForm: React.FC = ({\r\n form,\r\n validationError,\r\n defaultValue,\r\n crews,\r\n crewsWithoutMeals,\r\n mealTypes,\r\n isNew,\r\n checkBoxValue,\r\n}) => {\r\n const getDefaultCrew = () => {\r\n if (!defaultValue.crewCode) {\r\n return null;\r\n }\r\n const crew = crews.find((c) => c.code === defaultValue.crewCode);\r\n if (crew) {\r\n return { label: crew.firstname + ' ' + crew.lastname, value: crew.code };\r\n }\r\n return null;\r\n };\r\n\r\n const [isNewCrew, setIsNewCrew] = useState(false);\r\n const newCrewFrom = () => {\r\n setIsNewCrew(!isNewCrew);\r\n checkBoxValue(!isNewCrew);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n ({\r\n label: `${crew.firstname} ${crew.lastname.toUpperCase()}`,\r\n value: crew.code,\r\n }))}\r\n name=\"crewCode\"\r\n placeholder=\"Martine Smith\"\r\n fullWidth\r\n margin=\"normal\"\r\n defaultValue={getDefaultCrew()}\r\n error={!!form.errors.crewCode}\r\n errorMessage={\r\n form.errors.crewCode ? (form.errors.crewCode as any)?.message : ''\r\n }\r\n control={form.control}\r\n id={'crew_member'}\r\n autoHighlight\r\n disabled={!isNew || isNewCrew}\r\n />\r\n \r\n \r\n \r\n {isNew && (\r\n \r\n newCrewFrom()}\r\n />\r\n \r\n )}\r\n\r\n {isNewCrew && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n ({\r\n label: mealType.description,\r\n value: mealType.code,\r\n }))}\r\n error={!!form.errors.mealTypeCode}\r\n errorMessage={\r\n form.errors.mealTypeCode ? form.errors.mealTypeCode.message : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CrewSpecialMealForm;\r\n","import React, {useEffect, useMemo, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport {useCrewSpecialMealsContext} from '../../../context/catering/CrewSpecialMealsProvider/CrewSpecialMealsProvider';\r\nimport {IModalReturn} from '../../../hooks/useModal';\r\nimport ICrewSpecialMeal from '../../../models/CrewSpecialMeals/ICrewSpecialMeal';\r\nimport {ICrewSpecialMealForm} from '../../../models/CrewSpecialMeals/ICrewSpecialMealForm';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport Drawer from '../../commons/Drawer/Drawer';\r\nimport DrawerActions from '../../commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../../commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../../commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../../commons/Drawer/DrawerTitle';\r\nimport CrewSpecialMealForm from '../CrewSpecialMealForm/CrewSpecialMealForm';\r\nimport ICrewSpecialMealExtended from '../../../models/CrewSpecialMeals/ICrewSpecialMealExtended';\r\nimport ICreateSpecialMeal from '../../../models/CrewSpecialMeals/ICreateSpecialMeal';\r\n\r\nexport const DefaultCrewSpecialMeal: ICrewSpecialMeal = {\r\n crewCode: '',\r\n mealTypeCode: '',\r\n};\r\n\r\ninterface ICrewSpecialMealDrawerProps {\r\n drawer: IModalReturn;\r\n}\r\n\r\nconst CrewSpecialMealDrawer: React.FC = ({\r\n drawer,\r\n}) => {\r\n const {\r\n state,\r\n createCrewSpecialMeal,\r\n updateCrewSpecialMeal,\r\n insertCrewAndCrewSpecialMeal,\r\n clearValidationErrors,\r\n validationError,\r\n } = useCrewSpecialMealsContext();\r\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(true);\r\n const [isNewCrewMember, setIsNewCrewMember] = useState();\r\n\r\n const onCheckBoxChange = (check: boolean) => {\r\n setIsNewCrewMember(check);\r\n };\r\n\r\n const onDrawerClose = () => {\r\n clearValidationErrors();\r\n drawer.hideModal();\r\n };\r\n\r\n const CrewSpecialMealFormSchema = useMemo(() => {\r\n var schema: any = {};\r\n if (isNewCrewMember) {\r\n schema = {\r\n firstName: yup.string().required(Constants.validation.required),\r\n lastName: yup.string().required(Constants.validation.required),\r\n code: yup.string().required(Constants.validation.required),\r\n rank: yup.string().required(Constants.validation.required),\r\n employeeId: yup.string().required(Constants.validation.required),\r\n mealTypeCode: yup.string().required(Constants.validation.required),\r\n };\r\n } else {\r\n schema = {\r\n crewCode: yup\r\n .object()\r\n .shape({\r\n label: yup.string(),\r\n value: yup.string(),\r\n })\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n mealTypeCode: yup.string().required(Constants.validation.required),\r\n };\r\n }\r\n return yup.object().shape(schema);\r\n }, [isNewCrewMember]);\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(CrewSpecialMealFormSchema),\r\n });\r\n\r\n useEffect(() => {\r\n const disabled = !(form.formState.isValid && form.formState.isDirty);\r\n setIsSubmitDisabled(disabled);\r\n }, [form.formState.isValid, form.control]);\r\n\r\n const handleSubmit = (formData: ICrewSpecialMealForm) => {\r\n clearValidationErrors();\r\n\r\n if (state.selectedCrewSpecialMeal) {\r\n updateCrewSpecialMeal({\r\n crewCode: state.selectedCrewSpecialMeal.crew?.code,\r\n mealTypeCode: formData.mealTypeCode,\r\n });\r\n drawer.hideModal();\r\n } else {\r\n if (isNewCrewMember) {\r\n const existing = state.crewSpecialMeals.find(\r\n (c) =>\r\n (c.crew.firstname == formData?.firstName &&\r\n c.crew.lastname == formData?.lastName) || c.crew.code?.toLowerCase() === formData?.code?.toLowerCase()\r\n );\r\n\r\n if (existing) {\r\n form.setError('code', {message: Constants.messages.error.insertCrewData});\r\n } else {\r\n const crew = {\r\n crew: {\r\n firstname: formData.firstName,\r\n lastname: formData.lastName,\r\n code: formData.code,\r\n rank: formData.rank,\r\n employeeId: formData.employeeId,\r\n },\r\n mealTypeCode: formData.mealTypeCode,\r\n } as ICreateSpecialMeal;\r\n insertCrewAndCrewSpecialMeal(crew).then((inserted) => {\r\n if (inserted) drawer.hideModal();\r\n });\r\n }\r\n } else {\r\n createCrewSpecialMeal({\r\n crewCode: formData.crewCode?.value,\r\n mealTypeCode: formData.mealTypeCode,\r\n });\r\n drawer.hideModal();\r\n }\r\n }\r\n };\r\n\r\n const getFormDefaultValue = (\r\n selectedMeal: ICrewSpecialMealExtended | null\r\n ) => {\r\n if (selectedMeal) {\r\n return {\r\n crewCode: selectedMeal.crew?.code,\r\n mealTypeCode: selectedMeal.mealType.code,\r\n };\r\n }\r\n return DefaultCrewSpecialMeal;\r\n };\r\n\r\n return (\r\n \r\n \r\n {state.selectedCrewSpecialMeal\r\n ? 'Modify special meal for a crew'\r\n : 'Add a special meal for a crew'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CrewSpecialMealDrawer;\r\n","import React, {ChangeEvent, useEffect, useState} from 'react';\r\n\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {useCrewSpecialMealsContext} from '../../../context/catering/CrewSpecialMealsProvider/CrewSpecialMealsProvider';\r\nimport {useUserContext} from '../../../context/User/UserContext';\r\nimport {IModalReturn} from '../../../hooks/useModal';\r\nimport Constants from '../../../utils/Constants';\r\nimport Dialog from '../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../commons/Dialog/DialogTitle';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport TextField from '../../commons/TextField/TextField';\r\n\r\ninterface ICrewSpecialMealExportDialogProps {\r\n dialog: IModalReturn;\r\n}\r\n\r\nconst CrewSpecialMealExportDialog: React.FC<\r\n ICrewSpecialMealExportDialogProps\r\n> = ({ dialog }) => {\r\n const { exportCrewSpecialMeals } = useCrewSpecialMealsContext();\r\n const userContext = useUserContext();\r\n const [recipient, setRecipient] = useState('');\r\n\r\n useEffect(() => {\r\n setRecipient(userContext.email);\r\n }, []);\r\n\r\n const handleChange = (event: ChangeEvent) => {\r\n setRecipient(event.target.value);\r\n };\r\n const handleExport = () => {\r\n exportCrewSpecialMeals({ recipients: recipient.split(';') });\r\n dialog.hideModal();\r\n };\r\n\r\n return (\r\n \r\n \r\n Export special meals\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CrewSpecialMealExportDialog;\r\n","import React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../assets/icons/delete.svg';\r\nimport {ReactComponent as EditIcon} from '../../../assets/icons/edit.svg';\r\nimport AddButton from '../../../components/commons/AddButton/AddButton';\r\nimport NoResult from '../../../components/commons/NoResult/NoResult';\r\nimport Table from '../../../components/commons/Table/Table';\r\nimport TableIconButton from '../../../components/commons/TableIconButton/TableIconButton';\r\nimport CrewSpecialMealCrewFilter\r\n from '../../../components/crewSpecialMeal/CrewSpecialMealCrewFilter/CrewSpecialMealCrewFilter';\r\nimport CrewSpecialMealDeleteDialog\r\n from '../../../components/crewSpecialMeal/CrewSpecialMealDeleteDialog/CrewSpecialMealDeleteDialog';\r\nimport CrewSpecialMealDrawer from '../../../components/crewSpecialMeal/CrewSpecialMealDrawer/CrewSpecialMealDrawer';\r\nimport CrewSpecialMealExportDialog\r\n from '../../../components/crewSpecialMeal/CrewSpecialMealExportDialog/CrewSpecialMealExportDialog';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport {useCrewSpecialMealsContext} from '../../../context/catering/CrewSpecialMealsProvider/CrewSpecialMealsProvider';\r\nimport {CrewSpecialMealsActionType} from '../../../context/catering/CrewSpecialMealsProvider/CrewSpecialMealsReducer';\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport ICrewSpecialMealExtended from '../../../models/CrewSpecialMeals/ICrewSpecialMealExtended';\r\n\r\ninterface ICrewSpecialMealsPageProps {}\r\n\r\nconst CrewSpecialMealsPage: React.FC = () => {\r\n const { state, dispatch } = useCrewSpecialMealsContext();\r\n const drawer = useModal();\r\n const deleteDialog = useModal();\r\n const exportDialog = useModal();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Crew code',\r\n accessor: 'crew.code',\r\n width: '20%',\r\n },\r\n {\r\n Header: 'Firstname',\r\n accessor: 'crew.firstname',\r\n },\r\n {\r\n Header: 'Lastname',\r\n accessor: 'crew.lastname',\r\n },\r\n {\r\n Header: 'Meal type',\r\n accessor: 'mealType.description',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n handleEdit(row.original)}>\r\n \r\n \r\n \r\n handleDelete(row.original)}>\r\n \r\n \r\n \r\n \r\n ),\r\n width: '12%',\r\n },\r\n ],\r\n []\r\n );\r\n\r\n const handleAdd = () => {\r\n dispatch({\r\n type: CrewSpecialMealsActionType.SET_SELECTED_CREWSPECIALMEAL,\r\n payload: null,\r\n });\r\n drawer.showModal();\r\n };\r\n\r\n const handleEdit = async (crewSpecialMeal: ICrewSpecialMealExtended) => {\r\n dispatch({\r\n type: CrewSpecialMealsActionType.SET_SELECTED_CREWSPECIALMEAL,\r\n payload: crewSpecialMeal,\r\n });\r\n drawer.showModal();\r\n };\r\n\r\n const handleDelete = async (crewSpecialMeal: ICrewSpecialMealExtended) => {\r\n dispatch({\r\n type: CrewSpecialMealsActionType.SET_SELECTED_CREWSPECIALMEAL,\r\n payload: crewSpecialMeal,\r\n });\r\n deleteDialog.showModal();\r\n };\r\n\r\n const handleExport = () => {\r\n exportDialog.showModal();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Add a special meal for a crew\r\n \r\n\r\n \r\n {' '}\r\n Export excel\r\n \r\n \r\n \r\n {state.loading && }\r\n {!state.loading && (\r\n <>\r\n {state.dataFetched && (\r\n <>\r\n {state.hasResult ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CrewSpecialMealsPage;\r\n","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport {Box, Typography} from '@material-ui/core';\r\n\r\nimport Table from '../../../components/commons/Table/Table';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IFlightSchedule from '../../../models/IFlightSchedule';\r\nimport FlightService from '../../../services/FlightService';\r\nimport styles from './FlightSchedulePage.module.scss';\r\n\r\nconst FlightSchedulePage: React.FC = () => {\r\n const [schedule, setSchedule] = useState([]);\r\n const { addMessage } = useSnackbar();\r\n useEffect(() => {\r\n FlightService.getFlightSchedule()\r\n .then((result) => setSchedule(result))\r\n .catch((error) => addMessage(error.message));\r\n }, []);\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Flight Number',\r\n accessor: 'flightNumber',\r\n // width: \"16%\",\r\n },\r\n {\r\n Header: 'Routing',\r\n accessor: 'routing',\r\n Cell: ({ row }: any) => {\r\n return (\r\n \r\n {`${row.original.origin} - `}\r\n \r\n {row.original.destination}\r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'Aircraft reg.',\r\n accessor: 'registrationNumber',\r\n },\r\n {\r\n Header: 'STD',\r\n accessor: 'std',\r\n Cell: ({ row }: any) =>\r\n row.original.std &&\r\n moment(row.original.std).tz('Europe/Luxembourg').format('DD.HH:mm'),\r\n },\r\n {\r\n Header: 'ETD',\r\n accessor: 'etd',\r\n Cell: ({ row }: any) =>\r\n row.original.etd &&\r\n moment(row.original.etd).tz('Europe/Luxembourg').format('DD.HH:mm'),\r\n width: '10%',\r\n },\r\n ],\r\n []\r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Departure times are shown in local LUXEMBOURG time\r\n \r\n \r\n {schedule &&
}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default FlightSchedulePage;\r\n","import moment, {Moment} from 'moment-timezone';\r\nimport React, {useEffect, useState} from 'react';\r\nimport {Control, Controller} from 'react-hook-form';\r\n\r\nimport MomentUtils from '@date-io/moment';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport {KeyboardDatePicker, KeyboardDatePickerProps, MuiPickersUtilsProvider,} from '@material-ui/pickers';\r\nimport {MaterialUiPickersDate} from '@material-ui/pickers/typings/date';\r\n\r\nmoment.tz.setDefault('UTC');\r\n\r\ninterface IDatePickerProps\r\n extends Omit {\r\n name: string;\r\n control?: Control;\r\n value?: Moment | null;\r\n onChange?: (date: MaterialUiPickersDate) => void;\r\n minDate?: Date | null;\r\n displayMinDateMessage?: boolean;\r\n}\r\n\r\nconst DatePicker: React.FC = ({\r\n error,\r\n helperText,\r\n color,\r\n control,\r\n name,\r\n defaultValue,\r\n value,\r\n onChange,\r\n fullWidth = true,\r\n variant = 'inline',\r\n margin = 'normal',\r\n inputVariant = 'outlined',\r\n format = 'DD-MM-YYYY',\r\n minDate,\r\n displayMinDateMessage = true,\r\n ...props\r\n}) => {\r\n const [selectedValue, setSelectedValue] = useState(null);\r\n\r\n useEffect(() => {\r\n setSelectedValue(value ?? null);\r\n }, [value]);\r\n\r\n return (\r\n \r\n \r\n {control ? (\r\n {\r\n setSelectedValue(e);\r\n }}\r\n value={selectedValue}\r\n error={\r\n error || (selectedValue !== null && !selectedValue.isValid())\r\n }\r\n minDate={\r\n minDate == null ? moment('01/01/0001', 'DD-MM-YYYY') : minDate\r\n }\r\n minDateMessage={\r\n displayMinDateMessage ? (\r\n \r\n Date should not be before {moment(minDate).format(format)}\r\n \r\n ) : (\r\n ''\r\n )\r\n }\r\n autoComplete=\"off\"\r\n {...props}\r\n />\r\n }\r\n defaultValue={defaultValue}\r\n name={name}\r\n control={control}\r\n />\r\n ) : (\r\n {\r\n setSelectedValue(e);\r\n onChange && onChange(e);\r\n }}\r\n value={selectedValue}\r\n error={error}\r\n minDate={\r\n minDate == null ? moment('01/01/0001', 'DD-MM-YYYY') : minDate\r\n }\r\n minDateMessage={\r\n displayMinDateMessage ? (\r\n \r\n Date should not be before {moment(minDate).format(format)}\r\n \r\n ) : (\r\n ''\r\n )\r\n }\r\n autoComplete=\"off\"\r\n {...props}\r\n />\r\n )}\r\n \r\n {error && {helperText}}\r\n \r\n );\r\n};\r\n\r\nexport default DatePicker;\r\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgSearch(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"white\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M13.4528 14.5566C12.8405 15.076 12.1517 15.5054 11.4024 15.8154C8.44388 17.0389 4.79302 16.3475 2.48884 14.1374C-0.0271416 11.7243 -0.746302 7.65189 0.842251 4.52342C2.20383 1.84323 5.09756 0.0291121 8.17677 0C8.21229 0 8.24781 0 8.28334 0C12.0795 0.0361205 15.6596 2.94706 16.3625 6.71707C16.7983 9.05439 16.0707 11.5324 14.5822 13.3921L19.817 18.5953C20.377 19.1822 19.554 20.5763 18.6664 19.7391L13.4528 14.5566ZM8.18725 1.61621C5.16173 1.64478 2.332 3.92658 1.72158 6.88927C1.11089 9.85304 2.841 13.1255 5.64578 14.3053C8.74018 15.6073 12.7395 14.1317 14.219 11.0817C16.1029 7.19737 13.188 1.72403 8.35917 1.61729C8.30196 1.61648 8.24447 1.61621 8.18725 1.61621Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSearch);\nexport default __webpack_public_path__ + \"static/media/search.fd505204.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nimport Button, {ButtonProps} from '@material-ui/core/Button';\r\n\r\nimport {ReactComponent as SearchIcon} from '../../../assets/icons/search.svg';\r\nimport styles from './SearchButton.module.scss';\r\n\r\ninterface ISearchButtonProps extends ButtonProps {}\r\n\r\nconst SearchButton: React.FC = ({\r\n fullWidth,\r\n children,\r\n ...props\r\n}) => {\r\n return (\r\n }\r\n {...props}\r\n className={styles.SearchButton}\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default SearchButton;\r\n","import moment from 'moment';\r\nimport React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\n\r\nimport {useForecastContext} from '../../../context/catering/ForecastProvider/ForecastProvider';\r\nimport {ForecastActionType} from '../../../context/catering/ForecastProvider/ForecastReducer';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport DatePicker from '../../commons/DatePicker/DatePicker';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport SearchButton from '../../commons/SearchButton/SearchButton';\r\n\r\ninterface IForecastSearchProps {}\r\n\r\nconst ForecastSearch: React.FC = () => {\r\n const { state, dispatch, fetchCateringOrder, exportCateringOrder } =\r\n useForecastContext();\r\n const handleSearch = () => {\r\n fetchCateringOrder();\r\n };\r\n\r\n const onKeyDownHandler = (e: React.KeyboardEvent) => {\r\n if (\r\n e.key === 'Enter' &&\r\n state.date !== null &&\r\n state.date.isValid() &&\r\n state.date.isBetween(\r\n moment().utc().startOf('day').add(-4, 'days'),\r\n moment().utc().endOf('day').add(+4, 'days'),\r\n null,\r\n '[]'\r\n )\r\n ) {\r\n handleSearch();\r\n }\r\n };\r\n\r\n const handleExport = async () => {\r\n const blob = await exportCateringOrder();\r\n if (blob && blob.size > 0) {\r\n downloadBlob(\r\n blob,\r\n `Forecast_${state.date!.format('DDMMMYYY').toUpperCase()}.xlsx`\r\n );\r\n }\r\n };\r\n\r\n const downloadBlob = (blob: Blob, filename: string) => {\r\n const url = URL.createObjectURL(blob);\r\n\r\n const downloadLink = document.createElement('a');\r\n downloadLink.href = url;\r\n downloadLink.download = filename || 'download';\r\n\r\n const clickHandler = () => {\r\n setTimeout(() => {\r\n URL.revokeObjectURL(url);\r\n downloadLink.removeEventListener('click', clickHandler);\r\n }, 150);\r\n };\r\n\r\n downloadLink.addEventListener('click', clickHandler, false);\r\n\r\n downloadLink.click();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n dispatch({ type: ForecastActionType.SET_DATE, payload: date })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Search flights\r\n \r\n \r\n \r\n \r\n\r\n \r\n {' '}\r\n Export excel\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ForecastSearch;\r\n","import React, {useEffect} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\n\r\nimport CateringOrderCard from '../../../components/cateringOrder/CateringOrderCard/CateringOrderCard';\r\nimport NoResult from '../../../components/commons/NoResult/NoResult';\r\nimport ForecastSearch from '../../../components/forecast/ForecastSearch/ForecastSearch';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport {useForecastContext} from '../../../context/catering/ForecastProvider/ForecastProvider';\r\nimport {useLayoutContext} from '../../../context/LayoutProvider/LayoutProvider';\r\n\r\nconst ForecastPage: React.FC = () => {\r\n const { setFullWidth } = useLayoutContext();\r\n const { state } = useForecastContext();\r\n\r\n useEffect(() => {\r\n setFullWidth(true);\r\n return () => {\r\n setFullWidth(false);\r\n };\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n {state.loading && }\r\n {!state.loading && (\r\n <>\r\n {state.dataFetched && (\r\n <>\r\n {state.hasResult ? (\r\n <>\r\n {state.cateringOrder.map((c, i) => (\r\n \r\n ))}\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ForecastPage;\r\n","import IManualForecast from '../models/IManualForecast';\r\nimport {cateringRequests} from \"./ApiCateringService\";\r\n\r\nconst API_ENDPOINT = '/api/catering-order/send';\r\nconst BASE_URL = process.env.REACT_APP_CATERING_API_URL;\r\n\r\nconst ImmigrationDocumentService = {\r\n sendManualForecastsByEmail: (\r\n manualForecast: IManualForecast\r\n ): Promise =>\r\n cateringRequests.post(`${API_ENDPOINT}`, manualForecast, { baseURL: BASE_URL }),\r\n};\r\n\r\nexport default ImmigrationDocumentService;\r\n","import moment from 'moment';\r\nimport React, {useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Box} from '@material-ui/core';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport DatePicker from '../../../components/commons/DatePicker/DatePicker';\r\nimport FormControl from '../../../components/commons/FormControl/';\r\nimport TextField from '../../../components/commons/TextField';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport useClientAppContext from '../../../hooks/useClientApp';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IManualForecast, {IManualForecastForm,} from '../../../models/IManualForecast';\r\nimport ManualForecastService from '../../../services/ManualForecastService';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nconst ManualForecastPage: React.FC = () => {\r\n const { addMessage } = useSnackbar();\r\n const { nfsaMaxDaysInFuture } = useClientAppContext();\r\n\r\n const ManualForecastFormSchema = yup.object().shape({\r\n date: yup\r\n .date()\r\n .min(\r\n moment().startOf('day').add(-5, 'days').toDate(),\r\n Constants.validation.minDate\r\n )\r\n .max(\r\n moment().endOf('day').add(+nfsaMaxDaysInFuture, 'days').toDate(),\r\n Constants.validation.maxDate\r\n ),\r\n emails: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .matches(\r\n Constants.validation.emailMultipleRegex,\r\n Constants.validation.multipleEmail\r\n ),\r\n });\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(ManualForecastFormSchema),\r\n });\r\n const [loading, setLoading] = useState(false);\r\n\r\n const handleSubmit = (data: IManualForecastForm) => {\r\n let manualForecast: IManualForecast = {\r\n date: moment(data.date).format('YYYY-MM-DD').toString(),\r\n emails: data.emails.trim(),\r\n };\r\n setLoading(true);\r\n ManualForecastService.sendManualForecastsByEmail(manualForecast)\r\n .then(() => {\r\n addMessage('Email successfully sent', MessageType.Success);\r\n })\r\n .catch(() => {\r\n addMessage('Error occurred during sending email', MessageType.Error);\r\n })\r\n .finally(() => {\r\n form.reset({\r\n emails: '',\r\n date: moment().toDate(),\r\n });\r\n setLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Separate emails by a semicolon
\r\n \r\n
\r\n
\r\n \r\n \r\n {loading ? 'Sending...' : 'Send Catering Order'}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ManualForecastPage;\r\n","import moment from 'moment';\r\nimport React, {CSSProperties} from 'react';\r\n\r\nexport interface IDateTimeProps {\r\n date?: Date | null;\r\n full?: boolean;\r\n format?: string;\r\n timezone?: string;\r\n indicateMissingConversion?: boolean;\r\n style?: CSSProperties;\r\n}\r\n\r\nconst DateTime: React.FC = ({\r\n style,\r\n date,\r\n full,\r\n format,\r\n timezone,\r\n indicateMissingConversion: mandatoryTimezone = false,\r\n}) => {\r\n const localHelper = () =>\r\n timezone ? moment(date).tz(timezone) : moment(date);\r\n\r\n if (date && format) {\r\n return (\r\n \r\n {mandatoryTimezone && (!timezone || timezone.length === 0) ? (\r\n <>{localHelper().format(format).toUpperCase()}Z\r\n ) : (\r\n <>{localHelper().format(format).toUpperCase()}\r\n )}\r\n \r\n );\r\n }\r\n\r\n const dateContent = date\r\n ? full\r\n ? localHelper().format('DDMMMYYYY HH:mm').toUpperCase()\r\n : localHelper().format('DD/MM HH:mm')\r\n : 'N/A';\r\n\r\n return (\r\n \r\n {mandatoryTimezone && (!timezone || timezone.length === 0) ? (\r\n <>{dateContent}Z\r\n ) : (\r\n <>{dateContent}\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default DateTime;\r\n","export type SelectOption = {\r\n value: string;\r\n label: string;\r\n};\r\n\r\nconst StationTypeSelectOptions = [\r\n { value: 'PermanentCater', label: 'Permanent' },\r\n { value: 'FlightOnlyCater', label: 'This flight only' },\r\n { value: 'PermanentUncater', label: 'Uncater permanent' },\r\n { value: 'FlightOnlyUncater', label: 'Uncater this flight only' },\r\n];\r\n\r\nexport type StationTypeSelectOption = (typeof StationTypeSelectOptions)[number];\r\n//eslint-disable-next-line @typescript-eslint/no-namespace\r\nexport namespace StationTypeSelectOption {\r\n export const all = (): StationTypeSelectOption[] =>\r\n StationTypeSelectOptions.map((option) => option);\r\n}\r\n","import React, {useEffect} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {useUpliftStationsContext} from '../../../context/catering/UpliftStationsProvider/UpliftStationsProvider';\r\nimport {IModalReturn} from '../../../hooks/useModal';\r\nimport IUpliftStationRoutingLeg from '../../../models/UpliftStations/IUpliftStationRoutingLeg';\r\nimport Constants from '../../../utils/Constants';\r\nimport Dialog from '../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../commons/Dialog/DialogTitle';\r\nimport {StationTypeSelectOption} from './StationTypeSelectOption';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\n\r\ninterface IUpliftStationDialogProps {\r\n dialog: IModalReturn;\r\n routingLeg: IUpliftStationRoutingLeg;\r\n}\r\n\r\nconst UpliftStationDialog: React.FC = ({\r\n dialog,\r\n routingLeg,\r\n}) => {\r\n const { updateUpliftStation } = useUpliftStationsContext();\r\n const [value, setValue] = React.useState('');\r\n\r\n useEffect(() => {\r\n setValue(routingLeg.upliftStationType);\r\n }, [routingLeg]);\r\n\r\n const handleChange = (event: React.ChangeEvent) => {\r\n setValue((event.target as HTMLInputElement).value);\r\n };\r\n const handleUpdate = () => {\r\n updateUpliftStation({\r\n flightNumber: routingLeg.flightNumber,\r\n flightDate: routingLeg.flightDate,\r\n station: routingLeg.station,\r\n upliftStationType: value,\r\n });\r\n dialog.hideModal();\r\n };\r\n\r\n return (\r\n \r\n Catering Station\r\n \r\n Station: {routingLeg.station}\r\n \r\n Flight: {routingLeg.carrier}\r\n {routingLeg.flightNumberOnly}/\r\n \r\n \r\n \r\n \r\n {StationTypeSelectOption.all().map((type) => (\r\n }\r\n label={type.label}\r\n />\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default UpliftStationDialog;\r\n","import clsx from 'clsx';\r\nimport React, {useState} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\n\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport IUpliftStationExtended from '../../../models/UpliftStations/IUpliftStationExtended';\r\nimport IUpliftStationRoutingLeg from '../../../models/UpliftStations/IUpliftStationRoutingLeg';\r\nimport UpliftStationDialog from '../UpliftStationDialog/UpliftStationDialog';\r\nimport styles from './UpliftStationRouting.module.scss';\r\n\r\ninterface IUpliftStationRoutingProps {\r\n upliftStation: IUpliftStationExtended;\r\n}\r\n\r\nconst UpliftStationRouting: React.FC = ({\r\n upliftStation,\r\n}) => {\r\n const dialog = useModal();\r\n const [routingLeg, setRoutingLeg] = useState(\r\n null\r\n );\r\n\r\n const handleClick = (leg: IUpliftStationRoutingLeg) => {\r\n setRoutingLeg(leg);\r\n dialog.showModal();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {upliftStation.legs.map((leg, i) => (\r\n handleClick(leg)}\r\n >\r\n {leg.flightDescription}\r\n \r\n ))}\r\n \r\n {routingLeg && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default UpliftStationRouting;\r\n","import React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\n\r\nimport {useUpliftStationsContext} from '../../../context/catering/UpliftStationsProvider/UpliftStationsProvider';\r\nimport {UpliftStationsActionType} from '../../../context/catering/UpliftStationsProvider/UpliftStationsReducer';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport DatePicker from '../../commons/DatePicker/DatePicker';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport SearchButton from '../../commons/SearchButton/SearchButton';\r\n\r\ninterface IUpliftStationSearchProps {}\r\n\r\nconst UpliftStationSearch: React.FC = () => {\r\n const { state, dispatch, fetchUpliftStations, exportUpliftStations } =\r\n useUpliftStationsContext();\r\n const handleSearch = () => {\r\n fetchUpliftStations();\r\n };\r\n\r\n const onKeyDownHandler = (e: React.KeyboardEvent) => {\r\n if (\r\n e.key === 'Enter' &&\r\n state.fromDate !== null &&\r\n state.fromDate.isValid() &&\r\n state.toDate !== null &&\r\n state.toDate.isValid()\r\n ) {\r\n handleSearch();\r\n }\r\n };\r\n\r\n const handleExport = async () => {\r\n const blob = await exportUpliftStations();\r\n\r\n if (blob && blob.size > 0) {\r\n downloadBlob(\r\n blob,\r\n `UpliftStationReport_${state\r\n .fromDate!.format('DDMMMYYY')\r\n .toUpperCase()}_${state\r\n .toDate!.format('DDMMMYYY')\r\n .toUpperCase()}.xlsx`\r\n );\r\n }\r\n };\r\n\r\n const downloadBlob = (blob: Blob, filename: string) => {\r\n const url = URL.createObjectURL(blob);\r\n\r\n const downloadLink = document.createElement('a');\r\n downloadLink.href = url;\r\n downloadLink.download = filename || 'download';\r\n\r\n const clickHandler = () => {\r\n setTimeout(() => {\r\n URL.revokeObjectURL(url);\r\n downloadLink.removeEventListener('click', clickHandler);\r\n }, 150);\r\n };\r\n\r\n downloadLink.addEventListener('click', clickHandler, false);\r\n\r\n downloadLink.click();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n date &&\r\n dispatch({\r\n type: UpliftStationsActionType.SET_FROMDATE,\r\n payload: date,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n dispatch({\r\n type: UpliftStationsActionType.SET_TODATE,\r\n payload: date,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Search flights\r\n \r\n \r\n \r\n \r\n\r\n \r\n {' '}\r\n Export excel\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default UpliftStationSearch;\r\n","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgComment(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0 9.89899C0 15.3661 4.47715 19.798 10 19.798C15.5191 19.7891 19.991 15.3624 20 9.89899C20 4.43193 15.5228 0 10 0C4.47715 0 0 4.43193 0 9.89899ZM1.0204 9.88889C1.0204 4.97969 5.0407 1 9.99999 1C14.956 1.00779 18.9717 4.98292 18.9796 9.88889C18.9796 14.7981 14.9593 18.7778 9.99999 18.7778C5.0407 18.7778 1.0204 14.7981 1.0204 9.88889Z\",\n fill: \"#A3B6EC\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.5104 10.3968H4.5063C4.22452 10.3968 3.99609 10.1707 3.99609 9.89177C3.99609 9.61284 4.22452 9.38672 4.5063 9.38672H15.5104C15.7922 9.38672 16.0206 9.61284 16.0206 9.89177C16.0206 10.1707 15.7922 10.3968 15.5104 10.3968Z\",\n fill: \"#A3B6EC\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.5104 6.35776H4.5063C4.22452 6.35776 3.99609 6.13164 3.99609 5.85271C3.99609 5.57378 4.22452 5.34766 4.5063 5.34766H15.5104C15.7922 5.34766 16.0206 5.57378 16.0206 5.85271C16.0206 6.13164 15.7922 6.35776 15.5104 6.35776Z\",\n fill: \"#A3B6EC\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.5063 14.4398H8.58793C8.86971 14.4398 9.09813 14.2137 9.09813 13.9347C9.09813 13.6558 8.86971 13.4297 8.58793 13.4297H4.5063C4.22452 13.4297 3.99609 13.6558 3.99609 13.9347C3.99609 14.2137 4.22452 14.4398 4.5063 14.4398ZM10.2203 14.44H10.4244C10.7061 14.44 10.9346 14.2139 10.9346 13.935C10.9346 13.656 10.7061 13.4299 10.4244 13.4299H10.2203C9.9385 13.4299 9.71007 13.656 9.71007 13.935C9.71007 14.2139 9.9385 14.44 10.2203 14.44Z\",\n fill: \"#A3B6EC\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgComment);\nexport default __webpack_public_path__ + \"static/media/comment.3e791948.svg\";\nexport { ForwardRef as ReactComponent };","import React, {useState} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nimport Dialog from '../../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../../components/commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../components/commons/Dialog/DialogCancelButton';\r\nimport DialogTitle from '../../components/commons/Dialog/DialogTitle';\r\nimport useBreakpoint from '../../hooks/useBreakpoint';\r\nimport {IModalReturn} from '../../hooks/useModal';\r\nimport Constants from '../../utils/Constants';\r\nimport DialogContent from '../commons/Dialog/DialogContent';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\n\r\ninterface IDialogCommentProps {\r\n modalActions: IModalReturn;\r\n title: string;\r\n label?: string;\r\n value?: string;\r\n onSave: (comment: string) => void;\r\n size?: number;\r\n readonly?: boolean;\r\n}\r\n\r\nconst DialogComment: React.FC = ({\r\n modalActions,\r\n title,\r\n value,\r\n onSave,\r\n label = 'Comment',\r\n readonly = false,\r\n}) => {\r\n const breakpoint = useBreakpoint();\r\n const [comment, setComment] = useState(value ?? '');\r\n\r\n const handleChange = (e: React.ChangeEvent) => {\r\n setComment(e.target.value);\r\n };\r\n const handleClick = () => {\r\n onSave(comment!);\r\n };\r\n return (\r\n <>\r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!readonly && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DialogComment;\r\n","import clsx from 'clsx';\r\nimport React from 'react';\r\n\r\nimport Badge from '@material-ui/core/Badge';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\nimport {ReactComponent as CommentIcon} from '../assets/icons/comment.svg';\r\nimport DialogComment from '../components/DialogComment/DialogComment';\r\nimport baseStyles from '../styles/styles.module.scss';\r\nimport {useModal} from './useModal';\r\n\r\ninterface Props {\r\n title: string;\r\n label?: string;\r\n value?: string;\r\n onSave: (comment: string) => void;\r\n size?: number;\r\n numericalBadge?: boolean;\r\n badgeClassName?: string;\r\n readonly?: boolean;\r\n}\r\n\r\nexport default function useComment({\r\n title,\r\n value,\r\n onSave,\r\n label = 'Comment',\r\n badgeClassName,\r\n size = 24,\r\n numericalBadge = false,\r\n readonly = false,\r\n}: Props) {\r\n const { showModal, hideModal, isVisible } = useModal();\r\n const handleValidate = (comment: string) => {\r\n onSave(comment);\r\n hideModal();\r\n };\r\n\r\n const CommentIconWithDialog = () => {\r\n return (\r\n <>\r\n {(!readonly || value) && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n };\r\n\r\n return { CommentIconWithDialog };\r\n}\r\n","import React, {useEffect} from 'react';\r\n\r\nimport DateTime from '../../../components/commons/DateTime/DateTime';\r\nimport Table from '../../../components/commons/Table/Table';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport UpliftStationRouting\r\n from '../../../components/upliftStations/UpliftStationRouting/UpliftStationRouting';\r\nimport UpliftStationSearch\r\n from '../../../components/upliftStations/UpliftStationSearch/UpliftStationSearch';\r\nimport {\r\n useUpliftStationsContext\r\n} from '../../../context/catering/UpliftStationsProvider/UpliftStationsProvider';\r\nimport {useLayoutContext} from '../../../context/LayoutProvider/LayoutProvider';\r\nimport useComment from '../../../hooks/useComment';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\n\r\nconst UpliftStationsPage: React.FC = () => {\r\n const {state, updateUpliftStationComment} = useUpliftStationsContext();\r\n const {setFullWidth} = useLayoutContext();\r\n\r\n useEffect(() => {\r\n setFullWidth(true);\r\n return () => {\r\n setFullWidth(false);\r\n };\r\n }, []);\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Flight Date',\r\n accessor: 'flightDate',\r\n Cell: ({row}: any) => (\r\n \r\n ),\r\n width: '8%',\r\n },\r\n {\r\n Header: 'Day',\r\n accessor: 'day',\r\n width: '5%',\r\n },\r\n {\r\n Header: 'Flight No',\r\n accessor: 'firstLegFlightNumberLabel',\r\n width: '8%',\r\n },\r\n {\r\n Header: 'Routing',\r\n accessor: 'routing',\r\n },\r\n {\r\n Header: 'Route',\r\n accessor: 'legs',\r\n Cell: ({row}: any) => (\r\n \r\n ),\r\n disabledSort: true,\r\n },\r\n {\r\n Header: 'LegsToString',\r\n accessor: 'legsToString',\r\n disabledSort: false,\r\n },\r\n {\r\n Header: 'Comments',\r\n accessor: 'comment',\r\n width: '6%',\r\n Cell: ({row}: any) => {\r\n const {CommentIconWithDialog} = useComment({\r\n title: 'Uplift station comment',\r\n value: row.original.comment,\r\n numericalBadge: true,\r\n size: 24,\r\n onSave: (comment: string) => {\r\n updateUpliftStationComment({\r\n flightNumber: row.original.firstLegFlightNumber,\r\n flightDate: row.original.firstLegFlightDate,\r\n comment: comment,\r\n });\r\n },\r\n });\r\n return ;\r\n },\r\n disabledSort: true,\r\n },\r\n ],\r\n [state]\r\n );\r\n\r\n return (\r\n \r\n \r\n {\r\n if (row.id % 2 === 0) {\r\n return {\r\n className: `${baseStyles.backgroundRow}`,\r\n };\r\n } else {\r\n return {\r\n className: `${baseStyles.backgroundAlternateRow}`,\r\n };\r\n }\r\n }}\r\n />\r\n\r\n \r\n );\r\n};\r\n\r\nexport default UpliftStationsPage;\r\n","import React, {useEffect, useRef, useState} from 'react';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TextField from '../../commons/TextField';\r\n\r\ninterface ICateringDutyQuantityCellProps {\r\n isSaving: boolean;\r\n category: string;\r\n dutyCode: string;\r\n quantity: number;\r\n itemId: string;\r\n onChange: (newQuantity: number, itemId: string, dutyCode: string, category: string) => void;\r\n}\r\n\r\nconst CHARCODE_CARRIAGE_RETURN = 13;\r\nconst CHARCODE_PLUS = 43;\r\nconst CHARCODE_HYPEN = 45;\r\nconst CHARCODE_UPPER_E = 69;\r\nconst CHARCODE_LOWER_E = 101;\r\n\r\nconst CateringDutyQuantityCell: React.FC = ({\r\n category,\r\n quantity,\r\n itemId,\r\n dutyCode,\r\n onChange, isSaving\r\n}) => {\r\n const [localQuantity, setLocalQuantity] = useState(quantity);\r\n const [isReadOnly, setIsReadOnly] = useState(true);\r\n\r\n const numericOnly = (e: any) => {\r\n // restrict e,+,-,E characters in input type number\r\n const charCode = e.which ? e.which : e.keyCode;\r\n if (charCode == CHARCODE_CARRIAGE_RETURN) {\r\n setIsReadOnly(true);\r\n }\r\n if (\r\n charCode === CHARCODE_LOWER_E ||\r\n charCode === CHARCODE_UPPER_E ||\r\n charCode === CHARCODE_HYPEN ||\r\n charCode === CHARCODE_PLUS\r\n ) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n const inputQuantity = useRef(null);\r\n\r\n useEffect(() => {\r\n if (isReadOnly && quantity !== localQuantity) {\r\n onChange(localQuantity, itemId, dutyCode, category);\r\n }\r\n if (!isReadOnly) {\r\n inputQuantity.current?.select();\r\n }\r\n }, [isReadOnly]);\r\n\r\n return (\r\n \r\n {\r\n setIsReadOnly(false);\r\n }}\r\n onBlur={() => {\r\n setIsReadOnly(true);\r\n }}\r\n type=\"number\"\r\n onKeyPress={(e) => numericOnly(e)}\r\n onChange={(e) => setLocalQuantity(parseInt(e.target.value))}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default CateringDutyQuantityCell;\r\n","import React, {useEffect, useState} from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Constants from '../../../utils/Constants';\r\nimport CateringDutyQuantityCell from '../CateringDutyQuantityCell/CateringDutyQuantityCell';\r\nimport styles from './CateringDutyQuantity.module.scss';\r\nimport {Box, CircularProgress} from '@material-ui/core';\r\nimport CateringOrderService from \"../../../services/CateringOrderService\";\r\nimport ICateringDutyQuantity, {\r\n CateringItemAssignmentCategory\r\n} from \"../../../models/CateringOrder/ICateringQuantity\";\r\nimport IUpdateCateringQuantity, {\r\n UpdateCateringAssignment\r\n} from \"../../../models/CateringOrder/IUpdateCateringQuantity\";\r\nimport {MessageType} from \"../../../utils/MessageType\";\r\nimport useSnackbar from \"../../../hooks/useSnackbar\";\r\nimport _ from \"lodash\";\r\n\r\ninterface IDutyRow {\r\n categoryId: string;\r\n categoryName: string;\r\n quantities: IDutyItemRow[];\r\n rowSpan: number;\r\n}\r\n\r\ninterface IDutyItemRow {\r\n itemId: string;\r\n name: string;\r\n quantities: IDutyQuantityRow[];\r\n category: string;\r\n}\r\n\r\ninterface IDutyQuantityRow {\r\n dutyCode: string;\r\n quantity: number;\r\n}\r\n\r\nconst CateringDutyQuantity: React.FC = () => {\r\n const [dutyQuantities, setDutyQuantities] = useState([]);\r\n const [processing, setProcessing] = useState(false);\r\n const {addMessage} = useSnackbar();\r\n\r\n const fetchDutyQuantities = async () => {\r\n setProcessing(true);\r\n CateringOrderService.getDutyQuantities()\r\n .then((quantities) => {\r\n setDutyQuantities(quantities);\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n }).finally(() => {\r\n setProcessing(false);\r\n });\r\n };\r\n\r\n const mapQuantitiesToUpdate = (\r\n dutyQuantities: ICateringDutyQuantity[]\r\n ): IUpdateCateringQuantity[] => {\r\n const updateQuantities = [] as IUpdateCateringQuantity[];\r\n\r\n dutyQuantities.map((dutyQuantity) => {\r\n const updateQuantity: IUpdateCateringQuantity = {\r\n dutyCode: dutyQuantity.dutyDuration.code,\r\n items: mapItems(dutyQuantity.itemsPerAssignmentCategory),\r\n };\r\n updateQuantities.push(updateQuantity);\r\n });\r\n\r\n return updateQuantities;\r\n };\r\n\r\n const mapItems = (\r\n itemsPerAssignmentCategory: CateringItemAssignmentCategory[]\r\n ): UpdateCateringAssignment[] => {\r\n const res: UpdateCateringAssignment[] = [];\r\n itemsPerAssignmentCategory.forEach((e) => {\r\n const mapped = e.items.map((item) => {\r\n return {\r\n quantity: item.quantity,\r\n cateringItemId: item.cateringItemId,\r\n assignmentCategory: e.category,\r\n } as UpdateCateringAssignment;\r\n });\r\n res.push(...mapped);\r\n });\r\n\r\n return res;\r\n };\r\n\r\n const saveDutyQuantities = async () => {\r\n\r\n setProcessing(true);\r\n CateringOrderService.saveDutyQuantities(\r\n mapQuantitiesToUpdate(dutyQuantities)\r\n )\r\n .then(() => {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n fetchDutyQuantities();\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n }).finally(() => {\r\n setProcessing(false);\r\n });\r\n };\r\n\r\n const [headers, setHeaders] = useState([]);\r\n const [subHeaders, setSubHeaders] = useState([]);\r\n const [rows, setRows] = useState([]);\r\n\r\n useEffect(() => {\r\n fetchDutyQuantities();\r\n }, []);\r\n\r\n useEffect(() => {\r\n let dutyCodes = dutyQuantities.map(\r\n (dutyQuantity) => dutyQuantity.dutyDuration.code\r\n );\r\n setHeaders(dutyCodes);\r\n setSubHeaders(\r\n dutyQuantities.map(\r\n (dutyQuantity) =>\r\n dutyQuantity.dutyDuration.label\r\n )\r\n );\r\n\r\n let myRows: IDutyRow[] = [];\r\n dutyQuantities.forEach((duty) => {\r\n duty.itemsPerAssignmentCategory.forEach((itemAssignment) => {\r\n itemAssignment.items.forEach((cateringAssignment) => {\r\n let foundCategory = myRows.find(\r\n (dutyRow) => dutyRow.categoryName == itemAssignment.category\r\n );\r\n if (foundCategory) {\r\n let foundItem = foundCategory.quantities.find(\r\n (dutyItemRow) => dutyItemRow.itemId == cateringAssignment.item.id\r\n );\r\n if (foundItem) {\r\n foundItem.quantities = [\r\n ...foundItem.quantities,\r\n {\r\n dutyCode: cateringAssignment.dutyDurationCode,\r\n quantity: cateringAssignment.quantity,\r\n },\r\n ];\r\n } else {\r\n foundCategory.quantities = [\r\n ...foundCategory.quantities,\r\n {\r\n category: itemAssignment.category,\r\n itemId: cateringAssignment.item.id,\r\n name: cateringAssignment.item.name,\r\n quantities: [\r\n {\r\n dutyCode: cateringAssignment.dutyDurationCode,\r\n quantity: cateringAssignment.quantity,\r\n },\r\n ],\r\n },\r\n ];\r\n }\r\n } else {\r\n let quantities: IDutyItemRow[] = [\r\n {\r\n category: itemAssignment.category,\r\n itemId: cateringAssignment.item.id,\r\n name: cateringAssignment.item.name,\r\n quantities: [\r\n {\r\n dutyCode: cateringAssignment.dutyDurationCode,\r\n quantity: cateringAssignment.quantity,\r\n },\r\n ],\r\n },\r\n ];\r\n myRows.push({\r\n categoryId: cateringAssignment.cateringItemId,\r\n categoryName: itemAssignment.category,\r\n quantities: quantities,\r\n rowSpan: itemAssignment.items.length + 1,\r\n });\r\n }\r\n });\r\n });\r\n });\r\n setRows(myRows);\r\n }, [dutyQuantities]);\r\n\r\n\r\n const onChange = (quantity: number, itemId: string, dutyCode: string, category: string) => {\r\n const newState = _.cloneDeep(dutyQuantities);\r\n const matchingCategoryAssignments = newState\r\n .flatMap(e => e.itemsPerAssignmentCategory)\r\n .filter(iac => iac.category === category);\r\n const item = matchingCategoryAssignments.flatMap(e => e.items)\r\n .find(i => i.cateringItemId === itemId && i.dutyDurationCode === dutyCode);\r\n\r\n if (item) {\r\n item.quantity = quantity;\r\n }\r\n\r\n setDutyQuantities(newState);\r\n }\r\n\r\n return (\r\n <>\r\n {dutyQuantities && dutyQuantities.length > 0 && (\r\n <>\r\n \r\n {\r\n fetchDutyQuantities();\r\n }}\r\n >\r\n {Constants.buttons.cancel}\r\n \r\n \r\n {\r\n saveDutyQuantities();\r\n }}\r\n >\r\n {processing &&\r\n }\r\n {Constants.buttons.saveChanges}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {headers.map((header) => (\r\n \r\n {`Duty ${header}`}\r\n \r\n ))}\r\n \r\n \r\n {subHeaders.map((header) => (\r\n \r\n {header}\r\n \r\n ))}\r\n \r\n \r\n \r\n {rows.map((row) => {\r\n return (\r\n <>\r\n \r\n \r\n Per{row.categoryName}\r\n \r\n \r\n\r\n {row.quantities.map((item) => {\r\n return (\r\n <>\r\n \r\n \r\n {item.name}\r\n \r\n {item.quantities.map((quantity) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n })}\r\n \r\n
\r\n
\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CateringDutyQuantity;\r\n","import React from 'react';\r\n\r\nimport CateringDutyQuantity from '../../../components/cateringOrder/CateringDutyQuantity/CateringDutyQuantity';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\n\r\ninterface IDutyQuantityPageProps {}\r\n\r\nconst DutyQuantityPage: React.FC = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DutyQuantityPage;\r\n","import React, {useEffect} from 'react';\r\n\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete, {AutocompleteProps, AutocompleteRenderInputParams,} from '@material-ui/lab/Autocomplete';\r\n\r\nexport interface IAutoCompleteProps\r\n extends Omit, 'renderInput'> {\r\n options: any[];\r\n getOptionLabel: (option: any) => string;\r\n renderOption: (option: any) => string;\r\n valueProp: string;\r\n renderInput?: (params: AutocompleteRenderInputParams) => React.ReactNode;\r\n name: string;\r\n margin?: 'none' | 'dense' | 'normal' | undefined;\r\n defaultValue?: any;\r\n onChange?: (event: any, value: any) => any;\r\n color?: 'primary' | 'secondary' | undefined;\r\n variant?: 'outlined' | 'standard' | 'filled' | undefined;\r\n fullWidth?: boolean;\r\n errors?: any;\r\n helperText?: string;\r\n formControlClassName?: string;\r\n disabled?: boolean;\r\n setValue?: any;\r\n register?: any;\r\n placeholder?: string;\r\n unmatchedValue?: any;\r\n}\r\n\r\nconst AutoComplete: React.FC = ({\r\n options,\r\n getOptionLabel,\r\n renderOption,\r\n valueProp,\r\n renderInput,\r\n name,\r\n defaultValue,\r\n onChange,\r\n variant = 'outlined',\r\n color = 'primary',\r\n margin = 'normal',\r\n fullWidth = true,\r\n errors,\r\n helperText,\r\n formControlClassName,\r\n disabled = false,\r\n freeSolo,\r\n setValue,\r\n register,\r\n placeholder,\r\n unmatchedValue,\r\n ...props\r\n}) => {\r\n useEffect(() => {\r\n if (register) {\r\n register(name);\r\n if (defaultValue && setValue) {\r\n setValue(name, defaultValue[valueProp] ?? defaultValue);\r\n }\r\n }\r\n }, [register]);\r\n\r\n const input = (\r\n {\r\n setValue &&\r\n setValue(\r\n name,\r\n value ? (value[valueProp] ? value[valueProp] : value) : undefined\r\n );\r\n onChange &&\r\n onChange(\r\n event,\r\n value ? (value[valueProp] ? value[valueProp] : value) : undefined\r\n );\r\n }}\r\n getOptionSelected={(option: any, value: any) => {\r\n return option[valueProp] === value[valueProp] || option === value;\r\n }}\r\n freeSolo={freeSolo}\r\n openOnFocus={true}\r\n fullWidth={fullWidth}\r\n disabled={disabled}\r\n defaultValue={\r\n options.find((o) => o[valueProp] === defaultValue)\r\n ? options.find((o) => o[valueProp] === defaultValue)[valueProp]\r\n : defaultValue\r\n }\r\n renderInput={(params) => {\r\n return renderInput ? (\r\n renderInput(params)\r\n ) : (\r\n {\r\n setValue && setValue(name, unmatchedValue ?? event.target.value);\r\n onChange && onChange(event, unmatchedValue ?? event.target.value);\r\n }}\r\n />\r\n );\r\n }}\r\n {...props}\r\n />\r\n );\r\n\r\n return (\r\n <>\r\n {register ? (\r\n \r\n {input}\r\n \r\n ) : (\r\n input\r\n )}\r\n \r\n );\r\n};\r\nexport default AutoComplete;\r\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgAttachedFileLighter(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.1302 8.68702L17.2048 20.6936C17.23 21.2708 16.9965 21.8533 16.5198 22.2533C15.7061 22.936 14.4929 22.8299 13.8102 22.0162C13.5205 21.671 13.3729 21.2539 13.3609 20.8361L13.4331 6.8359C13.4446 5.86249 13.8652 4.89965 14.6691 4.22508C16.1335 2.99628 18.3172 3.18733 19.546 4.65175C20.047 5.24884 20.3121 5.96488 20.3506 6.68752L20.4609 23.4652C20.3733 24.7766 19.7721 26.0513 18.686 26.9627C16.5704 28.7378 13.417 28.4619 11.6418 26.3464C11.0047 25.5871 10.6314 24.6936 10.5131 23.7783L10.7318 9.70458\",\n stroke: \"#A3B6EC\",\n strokeWidth: 1.5\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAttachedFileLighter);\nexport default __webpack_public_path__ + \"static/media/attachedFileLighter.061ea284.svg\";\nexport { ForwardRef as ReactComponent };","/* eslint-disable */\r\nimport React, { useState } from 'react';\r\n\r\nimport { Box, Paper, TextField, Typography } from '@material-ui/core';\r\n\r\nimport Dialog from '../../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../../components/commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../components/commons/Dialog/DialogCancelButton';\r\nimport DialogTitle from '../../components/commons/Dialog/DialogTitle';\r\nimport useBreakpoint from '../../hooks/useBreakpoint';\r\nimport { IModalReturn } from '../../hooks/useModal';\r\nimport { IComment } from '../../models/IComment';\r\nimport Constants from '../../utils/Constants';\r\nimport DateTime from '../commons/DateTime/DateTime';\r\nimport DialogContent from '../commons/Dialog/DialogContent';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\n\r\ninterface IDialogMultiCommentProps {\r\n modalActions: IModalReturn;\r\n history: IComment[];\r\n title: string;\r\n label?: string;\r\n value?: string;\r\n onSave: (comment: string) => void;\r\n size?: number;\r\n}\r\n\r\nconst DialogMultiComment: React.FC = ({\r\n modalActions,\r\n history,\r\n title,\r\n value,\r\n onSave,\r\n label = 'Comment',\r\n size = 20,\r\n}) => {\r\n const breakpoint = useBreakpoint();\r\n const [comment, setComment] = useState(value ?? '');\r\n\r\n const handleChange = (e: React.ChangeEvent) => {\r\n setComment(e.target.value);\r\n };\r\n const handleClick = () => {\r\n onSave(comment!);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {title}\r\n \r\n {history && history.length > 0 && (\r\n \r\n \r\n {history.map((historyComment, index) => (\r\n \r\n \r\n \r\n Created on{' '}\r\n {' '}\r\n at{' '}\r\n {' '}\r\n by {historyComment.createdBy}\r\n \r\n \r\n \r\n {historyComment.comment}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DialogMultiComment;\r\n","import {useEffect, useState} from 'react';\r\nimport {useHistory} from 'react-router-dom';\r\n\r\nimport {useLocalStorageContext} from '../context/LocalStorageContext/LocalStorageContext';\r\nimport {LocalStorageActionType} from '../context/LocalStorageContext/LocalStorageReducer';\r\nimport {useUserContext} from '../context/User/UserContext';\r\nimport IMember from '../models/IMember';\r\nimport {IRedirectLink} from '../models/Utils/IRedirectLink';\r\nimport MemberService from '../services/MemberService';\r\nimport PermissionsList from '../utils/PermissionsList';\r\nimport useSnackbar from './useSnackbar';\r\n\r\nexport interface IReservationRedirectInfo {\r\n reservationId: number;\r\n reservationOwner: number;\r\n type?: string;\r\n serviceId?: number;\r\n taskId?: number;\r\n}\r\n\r\nexport enum ReservationRedirectOrigin {\r\n TaskList = 'taskList',\r\n Tickets = 'tickets',\r\n WarningList = 'warninglist',\r\n NoShowConfirmed = 'noShowConfirmed',\r\n WaitList = 'waitlist',\r\n ManageReservations = 'manageReservations',\r\n RelatedTasks = 'relatedTasks',\r\n}\r\n\r\nexport function useDecodeRedirectOrigin() {\r\n const decode = (origin: string): IRedirectLink | undefined => {\r\n switch (origin) {\r\n case ReservationRedirectOrigin.TaskList:\r\n return { path: '/dailyTasks/tasks', label: 'Return to task list' };\r\n case ReservationRedirectOrigin.Tickets:\r\n return { path: '/dailyTasks/tickets', label: 'Return to tickets' };\r\n case ReservationRedirectOrigin.WaitList:\r\n return { path: '/dailyTasks/waiting', label: 'Return to Wait list' };\r\n case ReservationRedirectOrigin.WarningList:\r\n return {\r\n path: '/reporting/warninglist',\r\n label: 'Return to Warning list',\r\n };\r\n case ReservationRedirectOrigin.NoShowConfirmed:\r\n return {\r\n path: '/reporting/noshowConfirmed',\r\n label: 'Return to No show/confirmed',\r\n };\r\n case ReservationRedirectOrigin.ManageReservations:\r\n return {\r\n path: '/reservations/manageReservations',\r\n label: 'Return to Manage Reservations',\r\n };\r\n case ReservationRedirectOrigin.RelatedTasks:\r\n return {\r\n path: '/dailyTasks/relatedTasks',\r\n label: 'Return to Related Tasks',\r\n };\r\n default:\r\n return undefined;\r\n }\r\n };\r\n\r\n return { decode };\r\n}\r\n\r\nexport default function useReservationRedirect(\r\n resaInfo: IReservationRedirectInfo,\r\n toReview: boolean,\r\n plannerMembers: IMember[],\r\n origin: string\r\n) {\r\n const { dispatch } = useLocalStorageContext();\r\n const history = useHistory();\r\n const { addMessage } = useSnackbar();\r\n const { permissions } = useUserContext();\r\n const [allowed, setAllowed] = useState(false);\r\n\r\n useEffect(() => {\r\n if (\r\n !permissions.includes(\r\n PermissionsList.eTravelUserManagementImpersonationAll\r\n )\r\n ) {\r\n if (\r\n permissions.includes(\r\n PermissionsList.eTravelUserManagementImpersonationSpecific\r\n )\r\n ) {\r\n if (origin === ReservationRedirectOrigin.ManageReservations) {\r\n MemberService.getById(resaInfo.reservationOwner).then((t) => {\r\n var isSame = t.memberId === resaInfo.reservationOwner;\r\n setAllowed(isSame);\r\n });\r\n } else {\r\n setAllowed(\r\n plannerMembers.findIndex(\r\n (x) => x.memberId === resaInfo.reservationOwner\r\n ) > -1\r\n );\r\n }\r\n } else {\r\n setAllowed(false);\r\n }\r\n } else {\r\n setAllowed(true);\r\n }\r\n }, [permissions]);\r\n\r\n const taskTypeDecode =\r\n resaInfo.type === 'Commercial' ? 'flighttrain' : resaInfo.type;\r\n const redirectUrl = toReview\r\n ? `/reservations/${resaInfo.reservationId}/steps/${\r\n taskTypeDecode\r\n ? `${taskTypeDecode}?origin=${origin}`\r\n : `origin=${origin}`\r\n }`\r\n : `/reservations/${resaInfo.reservationId}/steps/${taskTypeDecode}/${resaInfo.serviceId}?origin=${origin}`;\r\n\r\n const redirect = async () => {\r\n try {\r\n const selectedMember = await MemberService.getImpersonationForMember(\r\n resaInfo.reservationOwner\r\n );\r\n dispatch({\r\n type: LocalStorageActionType.CONNECTED_MEMBER,\r\n payload: JSON.stringify({ ...selectedMember }),\r\n });\r\n history.push(redirectUrl);\r\n } catch (error) {\r\n addMessage(`Couldn't redirect to reservation`);\r\n }\r\n };\r\n\r\n return { redirect, allowed };\r\n}\r\n","import * as yup from 'yup';\r\n\r\nexport interface ITaskForm {\r\n type: string;\r\n agent?: { label: string; value: number };\r\n status: string;\r\n file?: File | null;\r\n guaranteeGiven: boolean;\r\n cargoluxInvoice: boolean;\r\n invoicePaidUponCheckout: boolean;\r\n invoiceToBeAttached: boolean;\r\n prepaidReservation: boolean;\r\n prepaidVoucher: boolean;\r\n}\r\n\r\nexport const TaskFormSchema = yup.object().shape({\r\n guaranteeGiven: yup.bool().nullable(),\r\n cargoluxInvoice: yup.bool().nullable(),\r\n invoicePaidUponCheckout: yup.bool().nullable(),\r\n invoiceToBeAttached: yup.bool().nullable(),\r\n prepaidReservation: yup.bool().nullable(),\r\n prepaidVoucher: yup.bool().nullable(),\r\n});\r\n","import React from 'react';\r\n\r\nimport {CircularProgress} from '@material-ui/core';\r\nimport Button, {ButtonProps} from '@material-ui/core/Button';\r\n\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\n\r\ninterface IDrawerSaveButtonProps extends ButtonProps {\r\n onClick: () => void;\r\n text?: string;\r\n loading?: boolean;\r\n}\r\n\r\nconst DrawerButton: React.FC = ({\r\n onClick,\r\n text = 'OK',\r\n loading,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {!!loading && }\r\n {!loading && `${text}`}\r\n \r\n );\r\n};\r\n\r\nexport default DrawerButton;\r\n","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgDeleteBin(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 21,\n viewBox: \"0 0 20 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.0956 2.86102H13.4941V2.41182C13.4941 1.07981 12.4143 0 11.0823 0H8.9177C7.58569 0 6.50588 1.07981 6.50588 2.41182V2.86102H0.904432C0.404928 2.86102 0 3.26595 0 3.76545C0 4.26495 0.404928 4.66988 0.904432 4.66988H2.69822L2.71932 16.126C2.71932 18.2905 4.47401 20.0452 6.63853 20.0452H13.3615C15.526 20.0452 17.2807 18.2905 17.2807 16.126L17.3018 4.66988H19.0956C19.5951 4.66988 20 4.26495 20 3.76545C20 3.26595 19.5951 2.86102 19.0956 2.86102ZM8.31463 2.41143C8.31463 2.07842 8.58458 1.80847 8.91758 1.80847H11.0822C11.4152 1.80847 11.6851 2.07842 11.6851 2.41143V2.86063H8.31463V2.41143ZM13.3615 18.2245C14.5271 18.2245 15.4719 17.2796 15.4719 16.1141L15.493 4.65798H4.50716L4.52827 16.1141C4.52827 17.2796 5.4731 18.2245 6.63861 18.2245H13.3615Z\",\n fill: \"#A3B6EC\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.19105 7.46094C7.69155 7.46094 7.28662 7.86587 7.28662 8.36537V14.3648C7.28662 14.8643 7.69155 15.2692 8.19105 15.2692C8.69056 15.2692 9.09548 14.8643 9.09548 14.3648V8.36537C9.09548 7.86587 8.69056 7.46094 8.19105 7.46094Z\",\n fill: \"#A3B6EC\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.8092 7.46094C11.3097 7.46094 10.9048 7.86587 10.9048 8.36537V14.3648C10.9048 14.8643 11.3097 15.2692 11.8092 15.2692C12.3087 15.2692 12.7136 14.8643 12.7136 14.3648V8.36537C12.7136 7.86587 12.3087 7.46094 11.8092 7.46094Z\",\n fill: \"#A3B6EC\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDeleteBin);\nexport default __webpack_public_path__ + \"static/media/deleteBin.f46cb7ac.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgAttachedFile(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.1302 8.68702L17.2048 20.6936C17.23 21.2708 16.9965 21.8533 16.5198 22.2533C15.7061 22.936 14.4929 22.8299 13.8102 22.0162C13.5205 21.671 13.3729 21.2539 13.3609 20.8361L13.4331 6.8359C13.4446 5.86249 13.8652 4.89965 14.6691 4.22508C16.1335 2.99628 18.3172 3.18733 19.546 4.65175C20.047 5.24884 20.3121 5.96488 20.3506 6.68752L20.4609 23.4652C20.3733 24.7766 19.7721 26.0513 18.686 26.9627C16.5704 28.7378 13.417 28.4619 11.6418 26.3464C11.0047 25.5871 10.6314 24.6936 10.5131 23.7783L10.7318 9.70458\",\n stroke: \"#3D64D8\",\n strokeWidth: 1.5\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAttachedFile);\nexport default __webpack_public_path__ + \"static/media/attachedFile.1b37f436.svg\";\nexport { ForwardRef as ReactComponent };","import TaskService from '../services/TaskService';\r\n\r\nconst useBlobDownload = () => {\r\n function downloadBlob(blob: Blob, filename: string): void {\r\n const link = document.createElement('a');\r\n const url = window.URL || window.webkitURL;\r\n // create a blobURI pointing to our Blob\r\n link.href = url.createObjectURL(blob);\r\n link.download = filename || 'download';\r\n // some browser needs the anchor to be in the doc\r\n document.body.append(link);\r\n link.click();\r\n link.remove();\r\n // in case the Blob uses a lot of memory\r\n setTimeout(() => url.revokeObjectURL(link.href), 1500);\r\n }\r\n\r\n const downloadByAttachment = async (\r\n attachmentId: number,\r\n filename: string\r\n ) => {\r\n const blob = await TaskService.getAttachment(attachmentId);\r\n downloadBlob(blob, filename);\r\n };\r\n\r\n return {downloadByAttachment, downloadBlob};\r\n};\r\nexport default useBlobDownload;\r\n","import React from 'react';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport {ReactComponent as AttachedFileIcon} from '../../../assets/icons/attachedFile.svg';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport Constants from '../../../utils/Constants';\r\nimport styles from './FileDownloadButton.module.scss';\r\nimport useBlobDownload from '../../../utils/Downloads';\r\n\r\ninterface IFileUploadProps {\r\n key?: string;\r\n getFile: (getFileArgument?: any) => Promise;\r\n fileName: string;\r\n getFileArgument?: any;\r\n id?: string;\r\n}\r\n\r\nconst FileDownloadButton: React.FC = ({\r\n key,\r\n getFile,\r\n fileName,\r\n getFileArgument,\r\n id,\r\n}) => {\r\n const { addMessage } = useSnackbar();\r\n const { downloadBlob } = useBlobDownload();\r\n\r\n const handleDownloadAttachment = async (fileName: string) => {\r\n getFile(getFileArgument)\r\n .then((blob) => {\r\n if (blob && blob.size > 0) {\r\n downloadBlob(blob, `${fileName}`);\r\n }else throw Error(`${fileName} download was empty`);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n addMessage(Constants.messages.error.fetchingData)\r\n });\r\n };\r\n\r\n return (\r\n
\r\n handleDownloadAttachment(fileName)}\r\n >\r\n \r\n
{fileName ?? 'Unnamed File'}
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default FileDownloadButton;\r\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgUploadFile(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 21,\n viewBox: \"0 0 20 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M18.3066 12.9705C19.3969 11.873 20.0061 10.387 20 8.84006V8.4787C19.8205 6.19712 18.3138 4.2354 16.1557 3.47349C14.7756 0.871514 11.8255 -0.485748 8.95159 0.159081C6.0777 0.803909 3.99027 3.29147 3.85412 6.23366C1.56021 6.4454 -0.145942 8.44842 0.00987492 10.7468C0.219279 13.0184 2.15009 14.741 4.43076 14.691H6.16067C6.58529 14.691 6.92952 14.3468 6.92952 13.9222C6.92952 13.4975 6.58529 13.1533 6.16067 13.1533H4.43076C2.96558 13.183 1.71759 12.0948 1.54757 10.6392C1.51173 10.0459 1.67105 9.45726 2.00119 8.96308C2.5005 8.2164 3.3403 7.76908 4.23855 7.77136L4.5384 7.78674C4.77034 7.81448 5.00232 7.73527 5.16885 7.57146C5.33546 7.40633 5.41757 7.17417 5.39182 6.941V6.61809C5.38155 4.27781 6.99674 2.24383 9.2785 1.72365C11.5603 1.20348 13.8974 2.33644 14.9025 4.44993C14.9997 4.64608 15.1758 4.7915 15.3869 4.84973C17.0914 5.3266 18.3185 6.81455 18.4623 8.57865V8.8785C18.4623 10.0123 18.0119 11.0996 17.2102 11.9012C16.4085 12.7029 15.3212 13.1533 14.1875 13.1533H13.8492C13.4245 13.1533 13.0803 13.4975 13.0803 13.9222C13.0803 14.3468 13.4245 14.691 13.8492 14.691H14.1875C15.7344 14.6869 17.2163 14.068 18.3066 12.9705ZM10.5508 7.99433L12.8573 10.3009C13.0029 10.4452 13.0848 10.6418 13.0848 10.8468C13.0848 11.0518 13.0029 11.2483 12.8573 11.3926C12.713 11.5382 12.5165 11.6201 12.3115 11.6201C12.1065 11.6201 11.9099 11.5382 11.7656 11.3926L10.7738 10.3931V19.3041C10.7738 19.7287 10.4295 20.073 10.0049 20.073C9.58029 20.073 9.23606 19.7287 9.23606 19.3041V10.3931L8.24425 11.3926C8.04922 11.5877 7.76497 11.6638 7.49856 11.5925C7.23215 11.5211 7.02406 11.313 6.95268 11.0466C6.88129 10.7802 6.95746 10.4959 7.15248 10.3009L9.45903 7.99433C9.6034 7.84878 9.79991 7.76691 10.0049 7.76691C10.2099 7.76691 10.4064 7.84878 10.5508 7.99433Z\",\n fill: \"#3D64D8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUploadFile);\nexport default __webpack_public_path__ + \"static/media/uploadFile.b4127cc5.svg\";\nexport { ForwardRef as ReactComponent };","/* eslint-disable */\r\nimport React, { ChangeEvent, useEffect, useState } from 'react';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport Button from '@material-ui/core/Button';\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\nimport { ReactComponent as AttachedFileIcon } from '../../../assets/icons/attachedFile.svg';\r\nimport { ReactComponent as DeleteIcon } from '../../../assets/icons/deleteBin.svg';\r\nimport { ReactComponent as UploadFileIcon } from '../../../assets/icons/uploadFile.svg';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IFile from '../../../models/IFile';\r\nimport FileService from '../../../services/FileService';\r\nimport styles from './FileUpload.module.scss';\r\nimport IImmigrationDocument from '../../../models/IImmigrationDocument';\r\n\r\ninterface IFileUploadProps {\r\n text: string;\r\n name: string;\r\n readonly?: boolean;\r\n accept?: string;\r\n multiple?: boolean;\r\n color?: 'primary' | 'secondary';\r\n form: any;\r\n onFileChange?: (currentFiles: IFile[], newFiles: IFile[]) => void;\r\n onFileDelete?: (index: number) => void;\r\n error?: boolean;\r\n helperText?: React.ReactNode;\r\n useOriginalFile?: boolean;\r\n immigrationDocument?: IImmigrationDocument;\r\n}\r\n\r\nconst FileUpload: React.FC = ({\r\n text,\r\n name,\r\n readonly,\r\n accept,\r\n multiple = false,\r\n form: { control, setValue, errors },\r\n onFileChange,\r\n onFileDelete,\r\n color = 'primary',\r\n error,\r\n helperText,\r\n useOriginalFile = false,\r\n immigrationDocument,\r\n}) => {\r\n const { addMessage } = useSnackbar();\r\n const fileFromImmigrationDocument: IFile | undefined = immigrationDocument && {\r\n fileName: immigrationDocument.fileName,\r\n content: '',\r\n }\r\n const [currentFiles, setCurrentFiles] = useState(fileFromImmigrationDocument ? [fileFromImmigrationDocument] : []);\r\n const [fileList, setFileList] = useState([]);\r\n\r\n useEffect(() => {\r\n if (currentFiles) {\r\n if (useOriginalFile) {\r\n multiple\r\n ? setValue(name, fileList, { shouldValidate: true })\r\n : setValue(name, fileList[0], { shouldValidate: true });\r\n } else {\r\n multiple\r\n ? setValue(name, currentFiles, { shouldValidate: true })\r\n : setValue(name, currentFiles[0], { shouldValidate: true });\r\n }\r\n }\r\n }, [currentFiles]);\r\n\r\n // function to read file as binary and return\r\n const getFileFromInput = (file: File): Promise => {\r\n return new Promise(function (resolve, reject) {\r\n const reader = new FileReader();\r\n reader.onerror = reject;\r\n reader.onload = function () {\r\n let base64String = reader.result?.toString();\r\n resolve({ fileName: file.name, content: base64String ?? '' });\r\n };\r\n reader.readAsDataURL(file); // Read to base64.\r\n });\r\n };\r\n\r\n const manageUploadedFile = (files: IFile[]) => {\r\n if (onFileChange) {\r\n onFileChange(currentFiles ?? [], files);\r\n }\r\n multiple\r\n ? setCurrentFiles([...(currentFiles ?? []), ...files])\r\n : setCurrentFiles([files[0]]);\r\n };\r\n\r\n const handleFileChange = async (event: ChangeEvent) => {\r\n try {\r\n event.persist();\r\n if (event.target && event.target.files && event.target.files.length > 0) {\r\n const files: FileList = event.target.files;\r\n setCurrentFiles([]);\r\n\r\n let promises: Promise[] = [];\r\n let newFiles: File[] = [];\r\n for (let i = 0; i < files.length; i++) {\r\n let file = files.item(i);\r\n if (file) {\r\n newFiles.push(file);\r\n promises.push(getFileFromInput(file));\r\n }\r\n }\r\n\r\n setFileList(newFiles);\r\n\r\n Promise.all(promises)\r\n .then((values) => manageUploadedFile(values))\r\n .catch(function (reason) {\r\n console.log(`Error during upload ${reason}`);\r\n event.target.value = ''; // to allow upload of same file if error occurs\r\n });\r\n }\r\n } catch (error) {\r\n addMessage(error.message);\r\n }\r\n };\r\n\r\n const handleFileChangeV2 = async (event: ChangeEvent) => {\r\n try {\r\n event.persist();\r\n if (event.target.files && event.target.files?.length > 0)\r\n setValue(name, event.target.files[0], { shouldValidate: true });\r\n } catch (error) {\r\n addMessage(error.message);\r\n }\r\n };\r\n\r\n const handleViewFile = async (file: IFile) => {\r\n FileService.openFile(file.content, file.fileName);\r\n };\r\n\r\n const handleRemoveDocument = async (index: number) => {\r\n if (onFileDelete) {\r\n onFileDelete(index);\r\n }\r\n let allProofs: IFile[] = currentFiles ?? [];\r\n allProofs.splice(index, 1);\r\n setCurrentFiles([...allProofs]);\r\n\r\n // fix\r\n let allFileProofs: File[] = fileList ?? [];\r\n allFileProofs.splice(index, 1);\r\n setFileList([...allFileProofs]);\r\n };\r\n\r\n return (\r\n (\r\n \r\n {!readonly && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {currentFiles &&\r\n currentFiles.map((file: IFile, index: number) => (\r\n \r\n \r\n handleViewFile(file)}\r\n >\r\n \r\n
{file?.fileName ?? 'Unnamed File'}
\r\n \r\n
\r\n {!readonly && (\r\n \r\n handleRemoveDocument(index)}\r\n >\r\n \r\n \r\n \r\n )}\r\n
\r\n ))}\r\n
\r\n \r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default FileUpload;\r\n","import React, {Dispatch, SetStateAction} from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../assets/icons/deleteBin.svg';\r\nimport {useTaskListContext} from '../../../context/TaskList/TaskListProvider';\r\nimport {useUserContext} from '../../../context/User/UserContext';\r\nimport {ITaskForm} from '../../../models/DailyTasks/TaskList/Forms/ITaskForm';\r\nimport {ITaskAttachment} from '../../../models/DailyTasks/TaskList/ITask';\r\nimport ITaskExtended from '../../../models/DailyTasks/TaskList/ITaskExtended';\r\nimport TaskService from '../../../services/TaskService';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\nimport Checkbox from '../../commons/Checkbox/Checkbox';\r\nimport FileDownloadButton from '../../commons/FileDownloadButton/FileDownloadButton';\r\nimport FileUpload from '../../commons/FileUpload/FileUpload';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport Searchcomplete from '../../commons/Searchcomplete/Searchcomplete';\r\nimport Select from '../../commons/Select/Select';\r\nimport styles from './TaskGrid.module.scss';\r\n\r\nexport interface ITaskFormProps {\r\n form: UseFormMethods;\r\n existingAttachments: ITaskAttachment[];\r\n resolveTraveler: (memberId: number) => string;\r\n onFileChanged: (hasFile: boolean) => void;\r\n setExistingAttachments: Dispatch>;\r\n}\r\n\r\nconst TaskForm: React.FC = ({\r\n form,\r\n existingAttachments,\r\n resolveTraveler,\r\n onFileChanged,\r\n setExistingAttachments,\r\n}) => {\r\n const {\r\n state: { employee, agents, status, selectedTask },\r\n } = useTaskListContext();\r\n const { permissions } = useUserContext();\r\n const outStationed =\r\n permissions.includes(\r\n PermissionsList.eTravelDailyTasksTaskListOutstationAssignation\r\n ) &&\r\n !permissions.includes(\r\n PermissionsList.eTravelDailyTasksTaskListAllAssignation\r\n );\r\n\r\n const defaultAssignation = (task: ITaskExtended) => {\r\n const assignation = agents.find((x) => x.memberId === task.agentId);\r\n return assignation\r\n ? {\r\n label: `${assignation.firstName} ${assignation.lastName}`,\r\n value: assignation.memberId,\r\n }\r\n : null;\r\n };\r\n\r\n const handleRemoveDocument = (attachmentId: number) =>\r\n setExistingAttachments(\r\n existingAttachments.filter((a) => a.taskAttachmentId !== attachmentId)\r\n );\r\n\r\n return (\r\n <>\r\n {selectedTask && (\r\n <>\r\n \r\n \r\n Reservation number{' '}\r\n \r\n {selectedTask.reservationId}\r\n \r\n \r\n \r\n \r\n \r\n Task:{' '}\r\n \r\n {selectedTask.type === 'Commercial'\r\n ? 'Flight/train'\r\n : selectedTask.type}\r\n \r\n \r\n \r\n \r\n \r\n Traveler:{' '}\r\n \r\n {resolveTraveler(+selectedTask.service.travelerId)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ({\r\n value: status.name,\r\n label: status.name,\r\n }))}\r\n error={!!form.errors.status}\r\n errorMessage={\r\n form.errors.status ? form.errors.status.message : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n x.outStationed &&\r\n x.station === employee?.user.mailing1\r\n )\r\n .map((agent) => ({\r\n label: `${agent.firstName} ${agent.lastName}`,\r\n value: agent.memberId,\r\n }))\r\n : agents.map((agent) => ({\r\n label: `${agent.firstName} ${agent.lastName}`,\r\n value: agent.memberId,\r\n }))\r\n }\r\n name=\"agent\"\r\n placeholder=\"Martine Smith\"\r\n fullWidth\r\n margin=\"normal\"\r\n defaultValue={defaultAssignation(selectedTask)}\r\n error={!!form.errors.agent}\r\n errorMessage={\r\n form.errors.agent ? form.errors.agent.value?.message : ''\r\n }\r\n control={form.control}\r\n id={'task_update_assignation'}\r\n autoHighlight\r\n />\r\n \r\n \r\n \r\n \r\n \r\n <>\r\n \r\n onFileChanged(true)}\r\n onFileDelete={() => onFileChanged(false)}\r\n useOriginalFile={true}\r\n />\r\n \r\n {existingAttachments.map((attachment, index) => (\r\n \r\n \r\n \r\n \r\n TaskService.getAttachment(\r\n attachment.taskAttachmentId\r\n )\r\n }\r\n />\r\n \r\n \r\n \r\n handleRemoveDocument(\r\n attachment.taskAttachmentId\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {selectedTask.type === 'Hotel' && (\r\n \r\n \r\n \r\n Billing\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TaskForm;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Grid} from '@material-ui/core';\r\n\r\nimport {useTaskListContext} from '../../../context/TaskList/TaskListProvider';\r\nimport {ITaskForm, TaskFormSchema,} from '../../../models/DailyTasks/TaskList/Forms/ITaskForm';\r\nimport {ITaskAttachment} from '../../../models/DailyTasks/TaskList/ITask';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Drawer from '../../commons/Drawer/Drawer';\r\nimport DrawerActions from '../../commons/Drawer/DrawerActions';\r\nimport DrawerButton from '../../commons/Drawer/DrawerButton';\r\nimport DrawerCancelButton from '../../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../../commons/Drawer/DrawerContent';\r\nimport DrawerTitle from '../../commons/Drawer/DrawerTitle';\r\nimport TaskForm from './TaskForm';\r\n\r\nexport interface ITaskGridDrawerProps {\r\n isVisible: boolean;\r\n resolveTraveler: (memberId: number) => string;\r\n}\r\n\r\nconst TaskGridDrawer: React.FC = ({\r\n isVisible,\r\n resolveTraveler,\r\n}) => {\r\n const {\r\n state: { updating, selectedTask },\r\n updateTask,\r\n selectTask,\r\n } = useTaskListContext();\r\n\r\n const [fileAdded, setFileAdded] = useState(false);\r\n const [existingAttachments, setExistingAttachments] = useState<\r\n ITaskAttachment[]\r\n >(selectedTask?.attachments ?? []);\r\n\r\n useEffect(\r\n () => setExistingAttachments(selectedTask?.attachments ?? []),\r\n [selectedTask]\r\n );\r\n\r\n const form = useForm({\r\n resolver: yupResolver(TaskFormSchema),\r\n mode: 'onChange',\r\n defaultValues: {\r\n type: undefined,\r\n agent: undefined,\r\n status: undefined,\r\n file: null,\r\n },\r\n });\r\n\r\n const handleSubmit = (taskForm: ITaskForm) => {\r\n if (selectedTask)\r\n updateTask({\r\n ...selectedTask,\r\n status: taskForm.status,\r\n agentId: taskForm.agent?.value,\r\n attachments: taskForm.file\r\n ? [\r\n ...existingAttachments,\r\n {\r\n documentName: taskForm.file?.name,\r\n content: taskForm.file,\r\n taskAttachmentId: 0,\r\n },\r\n ]\r\n : existingAttachments,\r\n service:\r\n selectedTask.type === 'Hotel'\r\n ? {\r\n ...selectedTask.service,\r\n cargoluxInvoice: taskForm.cargoluxInvoice,\r\n guaranteeGiven: taskForm.guaranteeGiven,\r\n invoicePaidUponCheckout: taskForm.invoicePaidUponCheckout,\r\n invoiceToBeAttached: taskForm.invoiceToBeAttached,\r\n prepaidReservation: taskForm.prepaidReservation,\r\n prepaidVoucher: taskForm.prepaidVoucher,\r\n }\r\n : selectedTask.service,\r\n });\r\n setFileAdded(false);\r\n };\r\n\r\n return (\r\n <>\r\n selectTask(undefined)}>\r\n Task List - Actions\r\n \r\n \r\n setFileAdded(hasFile)}\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n selectTask(undefined);\r\n setFileAdded(false);\r\n }}\r\n />\r\n \r\n \r\n {}}\r\n text=\"VALIDATE\"\r\n loading={updating}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TaskGridDrawer;\r\n","import React from 'react';\r\n\r\nimport {Badge, ButtonBase, Link} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\n\r\nimport {ReactComponent as AttachmentIcon} from '../../../assets/icons/attachedFileLighter.svg';\r\nimport {useTaskListContext} from '../../../context/TaskList/TaskListProvider';\r\nimport {useUserContext} from '../../../context/User/UserContext';\r\nimport useComment from '../../../hooks/useComment';\r\nimport useMultiComment from '../../../hooks/useMultiComment';\r\nimport useReservationRedirect, {ReservationRedirectOrigin,} from '../../../hooks/useReservationRedirect';\r\nimport {ITaskComment} from '../../../models/DailyTasks/TaskList/ITask';\r\nimport ITaskExtended from '../../../models/DailyTasks/TaskList/ITaskExtended';\r\nimport {IComment} from '../../../models/IComment';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport NoResult from '../../commons/NoResult';\r\nimport Table from '../../commons/Table/Table';\r\nimport styles from './TaskGrid.module.scss';\r\nimport TaskGridDrawer from './TaskGridDrawer';\r\n\r\ntype colorMap = { reservationId: number; alternate: boolean };\r\n\r\nconst TaskGrid: React.FC = () => {\r\n const { permissions } = useUserContext();\r\n const {\r\n state: {\r\n agents,\r\n travelers,\r\n tasks,\r\n fetchingTasks,\r\n selectedTask,\r\n plannerMembers,\r\n },\r\n selectTask,\r\n updateTask,\r\n } = useTaskListContext();\r\n\r\n const alternateColorMapping = tasks.reduce(\r\n (acc: colorMap[], curr: ITaskExtended) => {\r\n return acc.some((el) => el.reservationId === curr.reservationId)\r\n ? acc\r\n : [\r\n ...acc,\r\n {\r\n reservationId: curr.reservationId,\r\n alternate:\r\n acc.length === 0 ? false : !acc[acc.length - 1].alternate,\r\n },\r\n ];\r\n },\r\n []\r\n );\r\n\r\n const resolveTraveler = (memberId: number) => {\r\n const entry = travelers.find((t) => +t.memberId === +memberId);\r\n return entry ? `${entry.firstName} ${entry.lastName}` : '';\r\n };\r\n\r\n const resolveAgent = (memberId: number) => {\r\n const entry = agents.find((t) => +t.memberId === +memberId);\r\n return entry\r\n ? `${entry.firstName} ${entry.lastName}`\r\n : memberId === null\r\n ? ''\r\n : `Unauthorized Agent`;\r\n };\r\n\r\n const getStatusLabel = (taskExtended: ITaskExtended) => {\r\n const label = (\r\n \r\n {taskExtended.status}\r\n \r\n );\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {taskExtended.tripType}\r\n \r\n \r\n );\r\n };\r\n\r\n const isVacationReservation = (res: ITaskExtended) =>\r\n res.tripType === 'Vacation';\r\n const getFontWeight = (res: ITaskExtended) =>\r\n isVacationReservation(res) ? 'bold' : '';\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'ID',\r\n accessor: 'taskId',\r\n },\r\n {\r\n Header: 'Res. N.',\r\n accessor: 'reservationId',\r\n width: '7%',\r\n Cell: ({ row }: any) => {\r\n const { redirect, allowed } = useReservationRedirect(\r\n {\r\n serviceId: row.original.service.id,\r\n taskId: row.original.taskId,\r\n reservationOwner: row.original.reservationOwner,\r\n reservationId: row.original.reservationId,\r\n type: row.original.type,\r\n },\r\n true,\r\n plannerMembers,\r\n ReservationRedirectOrigin.TaskList\r\n );\r\n return (\r\n <>\r\n {allowed ? (\r\n \r\n \r\n {\r\n \r\n {row.original.reservationId}\r\n \r\n }\r\n \r\n \r\n ) : (\r\n \r\n {row.original.reservationId}\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'Creation Date',\r\n accessor: 'createdOn',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n width: '12%',\r\n },\r\n {\r\n Header: 'Task',\r\n width: '12%',\r\n accessor: 'type',\r\n Cell: ({ row }: any) => {\r\n const { redirect, allowed } = useReservationRedirect(\r\n {\r\n serviceId: row.original.service.id,\r\n taskId: row.original.taskId,\r\n reservationOwner: row.original.reservationOwner,\r\n reservationId: row.original.reservationId,\r\n type: row.original.type,\r\n },\r\n false,\r\n plannerMembers,\r\n ReservationRedirectOrigin.TaskList\r\n );\r\n const type =\r\n row.original.type === 'Commercial'\r\n ? 'Flight/train'\r\n : row.original.type;\r\n return (\r\n <>\r\n {allowed ? (\r\n \r\n \r\n \r\n {type}\r\n \r\n \r\n \r\n ) : (\r\n \r\n {type}\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'Departure Date',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n width: '12%',\r\n accessor: 'departureDate',\r\n },\r\n {\r\n Header: 'Traveler',\r\n width: '14%',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.service.travelerFullName}\r\n \r\n ),\r\n accessor: 'service.travelerFullName',\r\n },\r\n {\r\n Header: 'Status',\r\n accessor: 'status',\r\n Cell: ({ row }: any) => getStatusLabel(row.original),\r\n },\r\n {\r\n Header: 'Assignation',\r\n width: '12%',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.agentFullName}\r\n \r\n ),\r\n accessor: 'agentFullName',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'attachments',\r\n width: '6%',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) =>\r\n row.original.attachments?.length > 0 ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n ),\r\n },\r\n {\r\n Header: 'T',\r\n accessor: 'travelerComment',\r\n width: '6%',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => {\r\n const { CommentIconWithDialog } = useComment({\r\n title: \"Traveler's comment\",\r\n value: row.original.service.travelerComment,\r\n badgeClassName: styles.iconButton,\r\n numericalBadge: true,\r\n size: 25,\r\n onSave: (comment: string) => {\r\n updateTask({\r\n ...row.original,\r\n service: { ...row.original.service, travelerComment: comment },\r\n });\r\n },\r\n });\r\n return ;\r\n },\r\n },\r\n {\r\n Header: 'A',\r\n accessor: 'comments',\r\n width: '6%',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => {\r\n const comments = row.original.comments as ITaskComment[] | undefined;\r\n const { CommentIconWithDialog } = useMultiComment({\r\n history:\r\n comments?.map((taskComment) => ({\r\n comment: taskComment.comment,\r\n createdBy: taskComment.createdByName!,\r\n createdOn: taskComment.createdOn!,\r\n })) ?? [],\r\n title: \"Agent's comments\",\r\n value: '',\r\n size: 25,\r\n iconButtonClassName: styles.iconButton,\r\n onSave: (comment: string) => {\r\n updateTask({\r\n ...row.original,\r\n comments: [...row.original.comments, { comment: comment }],\r\n });\r\n },\r\n });\r\n return ;\r\n },\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n {\r\n selectTask({ ...row.original } as ITaskExtended);\r\n }}\r\n >\r\n See more or edit\r\n \r\n \r\n ),\r\n width: '12%',\r\n },\r\n ],\r\n [resolveAgent, resolveTraveler, selectTask, updateTask]\r\n );\r\n return (\r\n <>\r\n {tasks && travelers && plannerMembers && tasks.length > 0 ? (\r\n <>\r\n {\r\n if (\r\n alternateColorMapping.find(\r\n (x) => +x.reservationId === +row.original.reservationId\r\n )?.alternate\r\n ) {\r\n return {\r\n className: `${styles.alternateRow}`,\r\n };\r\n } else {\r\n return {\r\n className: `${styles.row}`,\r\n };\r\n }\r\n }}\r\n loading={fetchingTasks}\r\n >\r\n \r\n \r\n ) : (\r\n tasks?.length === 0 && (\r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TaskGrid;\r\n","import clsx from 'clsx';\r\nimport React from 'react';\r\n\r\nimport Badge from '@material-ui/core/Badge';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\nimport {ReactComponent as CommentIcon} from '../assets/icons/comment.svg';\r\nimport DialogMultiComment from '../components/DialogComment/DialogMultiComment';\r\nimport {IComment} from '../models/IComment';\r\nimport baseStyles from '../styles/styles.module.scss';\r\nimport {useModal} from './useModal';\r\n\r\ninterface Props {\r\n title: string;\r\n label?: string;\r\n history: IComment[];\r\n value?: string;\r\n onSave: (comment: string) => void;\r\n size?: number;\r\n iconButtonClassName?: string;\r\n badgeClassName?: string;\r\n}\r\n\r\nexport default function useMultiComment({\r\n title,\r\n history,\r\n value,\r\n onSave,\r\n label = 'Comment',\r\n iconButtonClassName,\r\n badgeClassName,\r\n size = 20,\r\n}: Props) {\r\n const { showModal, hideModal, isVisible } = useModal();\r\n const handleValidate = (comment: string) => {\r\n onSave(comment);\r\n hideModal();\r\n };\r\n\r\n const CommentIconWithDialog = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return { CommentIconWithDialog };\r\n}\r\n","import React, {useCallback, useEffect, useState} from 'react';\r\n\r\nimport {Box, Grid, LinearProgress, TextField, Typography,} from '@material-ui/core';\r\n\r\nimport Autocomplete from '../../../components/commons/AutoComplete/AutoComplete';\r\nimport Select from '../../../components/commons/Select/Select';\r\nimport TaskGrid from '../../../components/DailyTasks/TaskList/TaskGrid';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport {useTaskListContext} from '../../../context/TaskList/TaskListProvider';\r\nimport {useUserContext} from '../../../context/User/UserContext';\r\nimport {ITaskFilter} from '../../../models/DailyTasks/TaskList/ITaskExtended';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\nimport styles from './TaskListPage.module.scss';\r\n\r\nconst TaskListPage: React.FC = () => {\r\n const {\r\n state: {\r\n agents,\r\n tasksTravelers,\r\n fetchingContextData,\r\n filterableStatus,\r\n employee,\r\n },\r\n fetchTasks,\r\n } = useTaskListContext();\r\n const { permissions } = useUserContext();\r\n const outStationed =\r\n permissions.includes(\r\n PermissionsList.eTravelDailyTasksTaskListOutstationAssignation\r\n ) &&\r\n !permissions.includes(\r\n PermissionsList.eTravelDailyTasksTaskListAllAssignation\r\n );\r\n\r\n const [filter, setFilter] = useState({\r\n agentId: permissions.includes(\r\n PermissionsList.eTravelDailyTasksTaskListAllAssignation\r\n )\r\n ? employee?.member.memberId ?? undefined\r\n : undefined,\r\n station: undefined,\r\n type: undefined,\r\n travelerId: undefined,\r\n });\r\n\r\n const fetchBusinesses = useCallback(() => {\r\n if (employee) fetchTasks(filter);\r\n }, [filter, employee]);\r\n\r\n useEffect(() => {\r\n fetchBusinesses();\r\n }, [filter]);\r\n\r\n useEffect(() => {\r\n if (\r\n employee &&\r\n permissions.includes(\r\n PermissionsList.eTravelDailyTasksTaskListAllAssignation\r\n )\r\n ) {\r\n setFilter({ ...filter, agentId: employee?.member.memberId });\r\n } else if (employee && outStationed) {\r\n setFilter({\r\n ...filter,\r\n agentId: employee?.member.memberId,\r\n station: employee?.user?.mailing1 ?? undefined,\r\n });\r\n } else {\r\n setFilter({ ...filter, agentId: undefined });\r\n }\r\n }, [employee, permissions]);\r\n\r\n const availableStations = Array.from(\r\n new Set(agents.map((agent) => agent.station))\r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Manage member reservations services. You can filter data in the\r\n table below with these filters\r\n \r\n \r\n \r\n Filter by\r\n \r\n {fetchingContextData ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n x.outStationed &&\r\n x.station === employee?.user.mailing1\r\n )\r\n .map((agent) => ({\r\n label: `${agent.firstName} ${agent.lastName}`,\r\n value: agent.memberId,\r\n })),\r\n ]\r\n : [\r\n { label: 'All', value: -1 },\r\n { label: 'No assignation', value: 0 },\r\n ...agents.map((agent) => ({\r\n label: `${agent.firstName} ${agent.lastName}`,\r\n value: agent.memberId,\r\n })),\r\n ]\r\n }\r\n value={filter.agentId ?? -1}\r\n onChange={(event) => {\r\n setFilter({\r\n ...filter,\r\n agentId:\r\n event.target.value === -1\r\n ? undefined\r\n : (event.target.value as number),\r\n });\r\n }}\r\n />\r\n \r\n \r\n option.label}\r\n renderOption={(option) => option.label}\r\n valueProp=\"value\"\r\n margin=\"normal\"\r\n renderInput={(params) => (\r\n \r\n )}\r\n options={[\r\n { label: 'All', value: -1 },\r\n ...tasksTravelers.map((traveler) => ({\r\n label: `${traveler.firstName} ${traveler.lastName}`,\r\n value: traveler.memberId,\r\n })),\r\n ]}\r\n onChange={(event, value) => {\r\n setFilter({\r\n ...filter,\r\n travelerId:\r\n value === -1 ? undefined : (value as number),\r\n });\r\n }}\r\n fullWidth\r\n defaultValue={{ label: 'All', value: -1 }}\r\n />\r\n \r\n \r\n {\r\n setFilter({\r\n ...filter,\r\n type:\r\n event.target.value === 'ALL'\r\n ? undefined\r\n : (event.target.value as string),\r\n });\r\n }}\r\n />\r\n \r\n \r\n ({\r\n label: status.name,\r\n value: status.name,\r\n })),\r\n ]}\r\n value={filter.status ?? 'ALL'}\r\n onChange={(event) => {\r\n setFilter({\r\n ...filter,\r\n status:\r\n event.target.value === 'ALL'\r\n ? undefined\r\n : (event.target.value as string),\r\n });\r\n }}\r\n />\r\n \r\n {!outStationed && (\r\n \r\n ({\r\n label: station,\r\n value: station,\r\n })),\r\n ]}\r\n value={filter.station ?? 'ALL'}\r\n onChange={(event) => {\r\n setFilter({\r\n ...filter,\r\n station:\r\n event.target.value === 'ALL'\r\n ? undefined\r\n : (event.target.value as string),\r\n });\r\n }}\r\n />\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default TaskListPage;\r\n","import {useEffect, useState} from 'react';\r\n\r\nconst useWindowSize = () => {\r\n // Initialize state with undefined width/height so server and client renders match\r\n // Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/\r\n const [windowSize, setWindowSize] = useState({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n });\r\n\r\n useEffect(() => {\r\n // Handler to call on window resize\r\n function handleResize() {\r\n // Set window width/height to state\r\n setWindowSize({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n });\r\n }\r\n\r\n // Add event listener\r\n window.addEventListener('resize', handleResize);\r\n\r\n // Call handler right away so state gets updated with initial window size\r\n handleResize();\r\n\r\n // Remove event listener on cleanup\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, []); // Empty array ensures that effect is only run on mount\r\n\r\n return windowSize;\r\n};\r\n\r\nexport default useWindowSize;\r\n","import React, {useContext, useEffect, useRef, useState} from 'react';\r\nimport {Link, useLocation} from 'react-router-dom';\r\n\r\nimport Tab from '@material-ui/core/Tab';\r\nimport Tabs from '@material-ui/core/Tabs';\r\n\r\nimport {UserContext} from '../../../context/User/UserContext';\r\nimport useWindowSize from '../../../hooks/useWindowSize';\r\nimport IRoute from '../../../models/IRoute';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\n\r\ninterface NavTabsProps {\r\n items: IRoute[];\r\n isTooSmallForMobile?: boolean;\r\n}\r\n\r\nconst NavTabs: React.FC = ({\r\n items,\r\n isTooSmallForMobile = false,\r\n}) => {\r\n const divRef = useRef(null);\r\n const [size, setSize] = useState(0);\r\n const location = useLocation();\r\n const { permissions: userPermissions } = useContext(UserContext);\r\n\r\n const windowSize = useWindowSize();\r\n useEffect(() => {\r\n if (divRef.current) {\r\n setSize(divRef.current.clientWidth);\r\n }\r\n }, [windowSize]);\r\n\r\n return (\r\n
\r\n i.path).includes(location.pathname)\r\n ? location.pathname\r\n : items[0].path\r\n }\r\n className={`${baseStyles.tabNav} ${\r\n isTooSmallForMobile && baseStyles.smallTabNav\r\n }`}\r\n variant=\"scrollable\"\r\n style={{ width: size + 'px' }}\r\n // style={{ width: `calc(${size}px - ${breakpoint.mddown && breakpoint.smup ? 34 : 0}px)` }}\r\n >\r\n {items.map((item) => {\r\n if (!item.permission) {\r\n return (\r\n \r\n );\r\n } else {\r\n if (userPermissions.includes(item.permission)) {\r\n return (\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n })}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default NavTabs;\r\n","import React from 'react';\r\n\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\ninterface IDisplayControlProps {\r\n label: string;\r\n value?: string;\r\n}\r\n\r\nconst DisplayControl: React.FC = ({ label, value }) => {\r\n return (\r\n <>\r\n \r\n {label}\r\n \r\n \r\n {value}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default DisplayControl;\r\n","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\nimport {Controller, useWatch} from 'react-hook-form';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport DisplayControl from '../../../../components/commons/DisplayControl/DisplayControl';\r\nimport Drawer from '../../../../components/commons/Drawer/Drawer';\r\nimport DrawerActions from '../../../../components/commons/Drawer/DrawerActions';\r\nimport DrawerButton from '../../../../components/commons/Drawer/DrawerButton';\r\nimport DrawerCancelButton from '../../../../components/commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../../../../components/commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../../../../components/commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../../../../components/commons/Drawer/DrawerTitle';\r\nimport FormControl from '../../../../components/commons/FormControl/FormControl';\r\nimport TextField from '../../../../components/commons/TextField/TextField';\r\nimport IARM from '../../../../models/IARM';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\nimport styles from './ARMTab.module.scss';\r\n\r\ninterface IARMDrawerProps {\r\n selectedARM: IARM | null;\r\n isVisibleDrawer: boolean;\r\n hideDrawer: () => void;\r\n form: any;\r\n handleSubmit: (formData: any) => void;\r\n readOnly: boolean;\r\n}\r\n\r\nconst ARMDrawer: React.FC = ({\r\n selectedARM,\r\n isVisibleDrawer,\r\n hideDrawer,\r\n form,\r\n handleSubmit,\r\n readOnly,\r\n}) => {\r\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(true);\r\n const watchStatus = useWatch({\r\n control: form.control,\r\n name: 'status',\r\n });\r\n\r\n useEffect(() => {\r\n setIsSubmitDisabled(watchStatus === selectedARM?.status);\r\n }, [watchStatus]);\r\n return (\r\n \r\n \r\n {selectedARM?.reservationId\r\n ? `ARM for Reservation number ${selectedARM?.reservationId}`\r\n : 'ARM for blocked flight'}\r\n \r\n \r\n \r\n \r\n \r\n Summary about reservation\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Description about ARM\r\n \r\n \r\n {selectedARM?.description.split('\\n').map((item, idx) => {\r\n return (\r\n \r\n {item}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {readOnly ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n }\r\n label=\"Mark as checked\"\r\n disabled={readOnly || !selectedARM?.canBeChecked}\r\n />\r\n }\r\n label=\"Resolve\"\r\n disabled={readOnly || !selectedARM?.canBeResolved}\r\n />\r\n \r\n }\r\n name=\"status\"\r\n control={form.control}\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {!readOnly ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ARMDrawer;\r\n","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport {Link} from 'react-router-dom';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as EditIcon} from '../../../../assets/icons/edit.svg';\r\nimport DatePicker from '../../../../components/commons/DatePicker/DatePicker';\r\nimport DateTime from '../../../../components/commons/DateTime/DateTime';\r\nimport FormControl from '../../../../components/commons/FormControl/FormControl';\r\nimport NoResult from '../../../../components/commons/NoResult/NoResult';\r\nimport SearchButton from '../../../../components/commons/SearchButton/SearchButton';\r\nimport Select from '../../../../components/commons/Select/Select';\r\nimport Table from '../../../../components/commons/Table/Table';\r\nimport TableIconButton from '../../../../components/commons/TableIconButton/TableIconButton';\r\nimport {useARMContext} from '../../../../context/ARM/ARMProvider';\r\nimport {ARMActionType} from '../../../../context/ARM/ARMReducer';\r\nimport ARMTabEnum from '../../../../context/ARM/ARMTabEnum';\r\nimport {useUserContext} from '../../../../context/User/UserContext';\r\nimport useComment from '../../../../hooks/useComment';\r\nimport {useModal} from '../../../../hooks/useModal';\r\nimport IARM from '../../../../models/IARM';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport PermissionsList from '../../../../utils/PermissionsList';\r\nimport ARMDrawer from './ARMDrawer';\r\n\r\ninterface IARMBlockFlightTabProps {}\r\n\r\ninterface IARMForm {\r\n status: string;\r\n}\r\n\r\nconst ARMBlockFlightTab: React.FC = () => {\r\n const {\r\n state: { selectedARM, blockFlights, fromDate, toDate },\r\n dispatch,\r\n check,\r\n resolve,\r\n updateComment,\r\n fetchBlockFlights,\r\n } = useARMContext();\r\n const [filtredData, setFiltredData] = useState([]);\r\n const {\r\n showModal: showDrawer,\r\n hideModal: hideDrawer,\r\n isVisible: isVisibleDrawer,\r\n } = useModal();\r\n const [filtredStatus, setFiltredStatus] = useState('New');\r\n const form = useForm({ mode: 'onChange' });\r\n const [readOnly, setReadOnly] = useState(true);\r\n const userContext = useUserContext();\r\n\r\n useEffect(() => {\r\n dispatch({\r\n type: ARMActionType.SELECTED_TAB,\r\n payload: ARMTabEnum.BLOCK_FLIGHTS,\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n setReadOnly(selectedARM?.status !== 'New');\r\n }, [selectedARM]);\r\n\r\n useEffect(() => {\r\n let localFiltredData = [...(blockFlights ?? [])];\r\n\r\n if (filtredStatus && filtredStatus !== 'ALL') {\r\n localFiltredData = localFiltredData.filter(\r\n (x) => x.status === filtredStatus\r\n );\r\n }\r\n\r\n setFiltredData(localFiltredData);\r\n }, [blockFlights, filtredStatus]);\r\n\r\n const handleEditARM = async (arm: IARM) => {\r\n form.reset({\r\n status: arm.status,\r\n });\r\n\r\n dispatch({ type: ARMActionType.SELECTED_ARM, payload: arm });\r\n showDrawer();\r\n };\r\n\r\n const handleSearch = () => {\r\n fetchBlockFlights();\r\n };\r\n\r\n const handleSubmit = (formData: IARMForm) => {\r\n if (selectedARM) {\r\n if (formData.status === 'Checked') {\r\n check({ ...selectedARM, status: formData.status });\r\n } else if (formData.status === 'Resolved') {\r\n resolve({ ...selectedARM, status: formData.status });\r\n }\r\n hideDrawer();\r\n }\r\n };\r\n\r\n const handleValidate = async (arm: IARM) => {\r\n updateComment(arm);\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Flight N.',\r\n accessor: 'flightDesc',\r\n Cell: ({ row }: any) => {\r\n if (\r\n userContext &&\r\n userContext.permissions.includes(\r\n PermissionsList.eTravelFlightManagementBlockFlights\r\n )\r\n ) {\r\n return (\r\n \r\n {row.original.flightDesc}\r\n \r\n );\r\n }\r\n return row.original.flightDesc;\r\n },\r\n width: '10%',\r\n },\r\n {\r\n Header: 'Flight Date',\r\n accessor: 'flightDate',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n width: '10%',\r\n },\r\n {\r\n Header: 'Status',\r\n accessor: 'status',\r\n width: '10%',\r\n },\r\n {\r\n Header: 'Notification date',\r\n accessor: 'createdOn',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n width: '10%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'comment',\r\n Cell: ({ row }: any) => {\r\n const { CommentIconWithDialog } = useComment({\r\n title: 'ARM comment',\r\n value: row.original.comment,\r\n numericalBadge: true,\r\n onSave: (comment: string) => {\r\n handleValidate({ ...row.original, comment: comment });\r\n },\r\n // size: 50,\r\n });\r\n return ;\r\n },\r\n width: '1%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n handleEditARM(row.original)}>\r\n \r\n \r\n \r\n ),\r\n width: '5%',\r\n },\r\n ],\r\n [fromDate, toDate]\r\n );\r\n\r\n const onKeyDownHandler = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' && fromDate?.isValid()) {\r\n handleSearch();\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n What Flight Date your search concerned?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n date &&\r\n dispatch({\r\n type: ARMActionType.SELECTED_FROM_DATE,\r\n payload: date,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n dispatch({\r\n type: ARMActionType.SELECTED_TO_DATE,\r\n payload: date ?? undefined,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Search ARM\r\n \r\n \r\n \r\n \r\n \r\n \r\n Filter by\r\n \r\n \r\n \r\n \r\n {\r\n setFiltredStatus(e.target.value as string);\r\n }}\r\n />\r\n \r\n \r\n \r\n {filtredData && filtredData.length > 0 ? (\r\n \r\n ) : (\r\n blockFlights != null &&\r\n filtredData?.length === 0 && (\r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ARMBlockFlightTab;\r\n","import {useHistory} from 'react-router-dom';\r\n\r\nimport {useUserContext} from '../context/User/UserContext';\r\nimport PermissionsList from '../utils/PermissionsList';\r\n\r\nexport interface IPassengerListRedirectInfo {\r\n flightDesc: string;\r\n flightDate: Date;\r\n}\r\n\r\nexport default function usePassengerListRedirect(\r\n redirectInfo: IPassengerListRedirectInfo\r\n) {\r\n const { permissions } = useUserContext();\r\n const history = useHistory();\r\n\r\n const allowed = permissions.includes(\r\n PermissionsList.eTravelDailyTasksPassengerList\r\n );\r\n\r\n const redirectUrl = `/dailyTasks/passengers/${\r\n redirectInfo.flightDesc\r\n }/${redirectInfo.flightDate.toISOString()}`;\r\n\r\n const redirect = () => {\r\n history.push(redirectUrl);\r\n };\r\n\r\n return { allowed, redirect };\r\n}\r\n","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\n\r\nimport {ButtonBase, Link} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport LinearProgress from '@material-ui/core/LinearProgress/LinearProgress';\r\nimport MuiLink from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as EditIcon} from '../../../../assets/icons/edit.svg';\r\nimport DatePicker from '../../../../components/commons/DatePicker/DatePicker';\r\nimport DateTime from '../../../../components/commons/DateTime/DateTime';\r\nimport FormControl from '../../../../components/commons/FormControl/FormControl';\r\nimport NoResult from '../../../../components/commons/NoResult/NoResult';\r\nimport SearchButton from '../../../../components/commons/SearchButton/SearchButton';\r\nimport Select from '../../../../components/commons/Select/Select';\r\nimport Table from '../../../../components/commons/Table/Table';\r\nimport TableIconButton from '../../../../components/commons/TableIconButton/TableIconButton';\r\nimport {useARMContext} from '../../../../context/ARM/ARMProvider';\r\nimport {ARMActionType} from '../../../../context/ARM/ARMReducer';\r\nimport ARMTabEnum from '../../../../context/ARM/ARMTabEnum';\r\nimport useARMRedirect from '../../../../hooks/useARMRedirect';\r\nimport useComment from '../../../../hooks/useComment';\r\nimport {useModal} from '../../../../hooks/useModal';\r\nimport usePassengerListRedirect from '../../../../hooks/usePassengerListRedirect';\r\nimport IARM from '../../../../models/IARM';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport ARMDrawer from './ARMDrawer';\r\n\r\ninterface IARMReservationTabProps {}\r\n\r\ninterface IARMForm {\r\n status: string;\r\n}\r\n\r\nconst ARMReservationTab: React.FC = () => {\r\n const {\r\n state: { selectedARM, reservations, fromDate, toDate },\r\n dispatch,\r\n check,\r\n resolve,\r\n updateComment,\r\n fetchReservations,\r\n } = useARMContext();\r\n\r\n const [filtredData, setFiltredData] = useState([]);\r\n const {\r\n showModal: showDrawer,\r\n hideModal: hideDrawer,\r\n isVisible: isVisibleDrawer,\r\n } = useModal();\r\n const [filtredType, setFiltredType] = useState('ALL');\r\n const [filtredStatus, setFiltredStatus] = useState('New');\r\n const form = useForm({ mode: 'onChange' });\r\n const [readOnly, setReadOnly] = useState(true);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n dispatch({\r\n type: ARMActionType.SELECTED_TAB,\r\n payload: ARMTabEnum.RESERVATIONS,\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n setReadOnly(selectedARM?.status !== 'New');\r\n }, [selectedARM]);\r\n\r\n useEffect(() => {\r\n let localFiltredData = [...(reservations ?? [])];\r\n\r\n if (filtredType && filtredType !== 'ALL') {\r\n localFiltredData = localFiltredData.filter((x) => x.type === filtredType);\r\n }\r\n if (filtredStatus && filtredStatus !== 'ALL') {\r\n localFiltredData = localFiltredData.filter(\r\n (x) => x.status === filtredStatus\r\n );\r\n }\r\n setFiltredData(localFiltredData);\r\n setIsLoading(false);\r\n }, [reservations, filtredType, filtredStatus]);\r\n\r\n const handleEditARM = async (arm: IARM) => {\r\n form.reset({\r\n status: arm.status,\r\n });\r\n\r\n dispatch({ type: ARMActionType.SELECTED_ARM, payload: arm });\r\n showDrawer();\r\n };\r\n\r\n const handleSearch = () => {\r\n setIsLoading(true);\r\n fetchReservations();\r\n };\r\n\r\n const handleSubmit = (formData: IARMForm) => {\r\n if (selectedARM) {\r\n if (formData.status === 'Checked') {\r\n check({ ...selectedARM, status: formData.status });\r\n } else if (formData.status === 'Resolved') {\r\n resolve({ ...selectedARM, status: formData.status });\r\n }\r\n hideDrawer();\r\n }\r\n };\r\n\r\n const handleValidate = async (arm: IARM) => {\r\n updateComment(arm);\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Res. N.',\r\n accessor: 'reservationId',\r\n width: '7%',\r\n Cell: ({ row }: any) => {\r\n const { redirect } = useARMRedirect(row.original.reservationId);\r\n return (\r\n \r\n {row.original.reservationId}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'Flight N.',\r\n accessor: 'flightDesc',\r\n Cell: ({ row }: any) => {\r\n const { redirect, allowed } = usePassengerListRedirect({\r\n flightDesc: row.original.flightDesc,\r\n flightDate: moment(row.original.flightDate).startOf('day').toDate(),\r\n });\r\n return (\r\n <>\r\n {allowed ? (\r\n \r\n \r\n \r\n {row.original.flightDesc}\r\n \r\n \r\n \r\n ) : (\r\n \r\n {row.original.flightDesc}\r\n \r\n )}\r\n \r\n );\r\n },\r\n width: '8%',\r\n },\r\n {\r\n Header: 'Flight Date',\r\n accessor: 'flightDate',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n width: '10%',\r\n },\r\n {\r\n Header: 'Traveler',\r\n accessor: 'owner',\r\n width: '22%',\r\n Cell: ({ row }: any) => (\r\n <>\r\n {row.original.owner && row.original.owner?.split(',').length > 0 ? (\r\n row.original.owner?.split(',').map((x: any) => (\r\n <>\r\n \r\n {x}\r\n \r\n
\r\n \r\n ))\r\n ) : (\r\n \r\n {row.original.owner}\r\n \r\n )}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Type',\r\n accessor: 'type',\r\n },\r\n {\r\n Header: 'Status',\r\n accessor: 'status',\r\n width: '10%',\r\n },\r\n {\r\n Header: 'Notification date',\r\n accessor: 'createdOn',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n width: '10%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'comment',\r\n Cell: ({ row }: any) => {\r\n const { CommentIconWithDialog } = useComment({\r\n title: 'ARM comment',\r\n value: row.original.comment,\r\n numericalBadge: true,\r\n onSave: (comment: string) => {\r\n handleValidate({ ...row.original, comment: comment });\r\n },\r\n // size: 50,\r\n });\r\n return ;\r\n },\r\n width: '1%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n handleEditARM(row.original)}>\r\n \r\n \r\n \r\n ),\r\n width: '5%',\r\n },\r\n ],\r\n [fromDate, toDate]\r\n );\r\n\r\n const onKeyDownHandler = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' && fromDate?.isValid()) {\r\n handleSearch();\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n What Flight Date your search concerned?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n date &&\r\n dispatch({\r\n type: ARMActionType.SELECTED_FROM_DATE,\r\n payload: date,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n dispatch({\r\n type: ARMActionType.SELECTED_TO_DATE,\r\n payload: date ?? undefined,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Search ARM\r\n \r\n \r\n \r\n \r\n \r\n \r\n Filter by\r\n \r\n \r\n \r\n \r\n {\r\n setFiltredType(e.target.value as string);\r\n }}\r\n />\r\n \r\n \r\n {\r\n setFiltredStatus(e.target.value as string);\r\n }}\r\n />\r\n \r\n \r\n \r\n {isLoading && }\r\n {filtredData && filtredData.length > 0 ? (\r\n \r\n ) : (\r\n reservations != null &&\r\n filtredData?.length === 0 && (\r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ARMReservationTab;\r\n","import {useHistory} from 'react-router-dom';\r\n\r\nimport {useLocalStorageContext} from '../context/LocalStorageContext/LocalStorageContext';\r\nimport {LocalStorageActionType} from '../context/LocalStorageContext/LocalStorageReducer';\r\nimport MemberService from '../services/MemberService';\r\nimport ReservationService from '../services/ReservationService';\r\nimport useSnackbar from './useSnackbar';\r\n\r\nexport default function useARMRedirect(reservationId: number) {\r\n const { dispatch } = useLocalStorageContext();\r\n const history = useHistory();\r\n const { addMessage } = useSnackbar();\r\n\r\n const redirectUrl = `/reservations/${reservationId}/steps/`;\r\n\r\n const redirect = async () => {\r\n ReservationService.getReservation(reservationId)\r\n .then(async (res) => {\r\n if (res.isDeleted) {\r\n addMessage('This reservation has been deleted !');\r\n } else {\r\n const selectedMember = await MemberService.getImpersonationForMember(\r\n res.ownerId\r\n );\r\n dispatch({\r\n type: LocalStorageActionType.CONNECTED_MEMBER,\r\n payload: JSON.stringify({ ...selectedMember }),\r\n });\r\n history.push(redirectUrl);\r\n }\r\n })\r\n .catch(() => {\r\n addMessage('This reservation does not exist');\r\n });\r\n };\r\n return { redirect };\r\n}\r\n","import React from 'react';\r\n\r\nimport IRoute from '../models/IRoute';\r\nimport ARMBlockFlightTab from '../pages/dailyTasks/ARM/ARMTab/ARMBlockFlightTab';\r\nimport ARMReservationTab from '../pages/dailyTasks/ARM/ARMTab/ARMReservationTab';\r\nimport PermissionsList from '../utils/PermissionsList';\r\n\r\nconst ARMRoutes: IRoute[] = [\r\n {\r\n path: '/dailyTasks/arm/reservations',\r\n name: 'Reservations',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelDailyTasksARM,\r\n },\r\n {\r\n path: '/dailyTasks/arm/block',\r\n name: 'ARM for blocked flight',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelDailyTasksARM,\r\n },\r\n];\r\n\r\nexport default ARMRoutes;\r\n","import React from 'react';\r\n\r\nimport NavTabs from '../../../components/commons/NavTabs/NavTabs';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport Routes from '../../../components/Routes/Routes';\r\nimport ARMRoutes from '../../../routes/ARMRoutes';\r\n\r\ninterface IARMPageProps {}\r\n\r\nconst ARMPage: React.FC = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ARMPage;\r\n","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgPrint(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.85713 4.28571H8.99998C8.88632 4.28571 8.77731 4.33086 8.69694 4.41123C8.61656 4.4916 8.57141 4.60061 8.57141 4.71428C8.57141 4.82794 8.61656 4.93695 8.69694 5.01732C8.77731 5.0977 8.88632 5.14285 8.99998 5.14285H9.85713C9.97079 5.14285 10.0798 5.0977 10.1602 5.01732C10.2405 4.93695 10.2857 4.82794 10.2857 4.71428C10.2857 4.60061 10.2405 4.4916 10.1602 4.41123C10.0798 4.33086 9.97079 4.28571 9.85713 4.28571Z\",\n fill: \"#B8349A\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.71432 7.71429H4.28575C4.17208 7.71429 4.06308 7.75945 3.9827 7.83982C3.90233 7.92019 3.85718 8.0292 3.85718 8.14287C3.85718 8.25653 3.90233 8.36554 3.9827 8.44591C4.06308 8.52628 4.17208 8.57144 4.28575 8.57144H7.71432C7.82798 8.57144 7.93699 8.52628 8.01737 8.44591C8.09774 8.36554 8.14289 8.25653 8.14289 8.14287C8.14289 8.0292 8.09774 7.92019 8.01737 7.83982C7.93699 7.75945 7.82798 7.71429 7.71432 7.71429Z\",\n fill: \"#B8349A\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.7143 2.57143H9.85714V1.28571C9.85677 0.944837 9.72119 0.618028 9.48015 0.37699C9.23912 0.135953 8.91231 0.000374348 8.57143 0H3.42857C3.08769 0.000374348 2.76088 0.135953 2.51985 0.37699C2.27881 0.618028 2.14323 0.944837 2.14286 1.28571V2.57143H1.28571C0.944837 2.5718 0.618028 2.70738 0.37699 2.94842C0.135953 3.18946 0.000374348 3.51627 0 3.85714V8.14286C0.000374348 8.48374 0.135953 8.81054 0.37699 9.05158C0.618028 9.29262 0.944837 9.4282 1.28571 9.42857H2.14286V10.7143C2.14323 11.0552 2.27881 11.382 2.51985 11.623C2.76088 11.864 3.08769 11.9996 3.42857 12H8.57143C8.91231 11.9996 9.23912 11.864 9.48015 11.623C9.72119 11.382 9.85677 11.0552 9.85714 10.7143V9.42857H10.7143C11.0552 9.4282 11.382 9.29262 11.623 9.05158C11.864 8.81054 11.9996 8.48374 12 8.14286V3.85714C11.9996 3.51627 11.864 3.18946 11.623 2.94842C11.382 2.70738 11.0552 2.5718 10.7143 2.57143ZM3 1.28571C3.0001 1.17208 3.04529 1.06313 3.12564 0.982781C3.20599 0.902431 3.31494 0.857245 3.42857 0.857143H8.57143C8.68506 0.857245 8.79401 0.902431 8.87436 0.982781C8.95471 1.06313 8.9999 1.17208 9 1.28571V2.57143H3V1.28571ZM9 10.7143C8.9999 10.8279 8.95471 10.9369 8.87436 11.0172C8.79401 11.0976 8.68506 11.1428 8.57143 11.1429H3.42857C3.31494 11.1428 3.20599 11.0976 3.12564 11.0172C3.04529 10.9369 3.0001 10.8279 3 10.7143V6.85714H9V10.7143ZM11.1429 8.14286C11.1428 8.25649 11.0976 8.36544 11.0172 8.44579C10.9369 8.52614 10.8279 8.57133 10.7143 8.57143H9.85714V6.42857C9.85714 6.31491 9.81199 6.2059 9.73162 6.12553C9.65125 6.04515 9.54224 6 9.42857 6H2.57143C2.45776 6 2.34876 6.04515 2.26838 6.12553C2.18801 6.2059 2.14286 6.31491 2.14286 6.42857V8.57143H1.28571C1.17208 8.57133 1.06313 8.52614 0.982781 8.44579C0.902431 8.36544 0.857245 8.25649 0.857143 8.14286V3.85714C0.857245 3.74351 0.902431 3.63456 0.982781 3.55421C1.06313 3.47386 1.17208 3.42867 1.28571 3.42857H10.7143C10.8279 3.42867 10.9369 3.47386 11.0172 3.55421C11.0976 3.63456 11.1428 3.74351 11.1429 3.85714V8.14286Z\",\n fill: \"#B8349A\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.71432 9.42859H4.28575C4.17208 9.42859 4.06308 9.47374 3.9827 9.55411C3.90233 9.63449 3.85718 9.7435 3.85718 9.85716C3.85718 9.97082 3.90233 10.0798 3.9827 10.1602C4.06308 10.2406 4.17208 10.2857 4.28575 10.2857H7.71432C7.82798 10.2857 7.93699 10.2406 8.01737 10.1602C8.09774 10.0798 8.14289 9.97082 8.14289 9.85716C8.14289 9.7435 8.09774 9.63449 8.01737 9.55411C7.93699 9.47374 7.82798 9.42859 7.71432 9.42859Z\",\n fill: \"#B8349A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPrint);\nexport default __webpack_public_path__ + \"static/media/print.2882969d.svg\";\nexport { ForwardRef as ReactComponent };","import React, {useState} from 'react';\r\n\r\nimport Badge from '@material-ui/core/Badge';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport MuiTabs from '@material-ui/core/Tabs';\r\n\r\nimport ITab from '../../../models/ITab';\r\nimport styles from './Tabs.module.scss';\r\n\r\ninterface ITabsProps {\r\n tabs: ITab[];\r\n}\r\n\r\nconst Tabs: React.FC = ({ tabs }) => {\r\n const [activeTab, setActiveTab] = useState(0);\r\n\r\n const handleValueChange = (\r\n event: React.ChangeEvent<{}>,\r\n newValue: number\r\n ) => {\r\n setActiveTab(newValue);\r\n };\r\n\r\n return (\r\n <>\r\n {tabs.length > 0 && (\r\n <>\r\n \r\n {tabs.map((tab) =>\r\n tab.badge ? (\r\n \r\n {tab.label}\r\n \r\n }\r\n />\r\n ) : (\r\n \r\n )\r\n )}\r\n \r\n {tabs[activeTab].content}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Tabs;\r\n","import clsx from 'clsx';\r\nimport React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport IPassengerListCrew from '../../../models/DailyTasks/PassengerList/IPassengerListCrew';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport styles from './AllLegsCrewCard.module.scss';\r\n\r\ninterface IAllLegsCrewCardProps {\r\n crews: IPassengerListCrew[];\r\n}\r\n\r\nconst AllLegsCrewCard: React.FC = ({ crews }) => {\r\n const breakpoint = useBreakpoint();\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n {crews.map((crew, index) => (\r\n \r\n \r\n \r\n \r\n \r\n K0\r\n \r\n \r\n \r\n {crew.firstName} {crew.lastName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Category\r\n \r\n \r\n \r\n {crew.rank}\r\n \r\n \r\n \r\n \r\n \r\n {crew.legs.map((l, i) => (\r\n \r\n \r\n {l}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default AllLegsCrewCard;\r\n","var _path, _circle;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgWarningSecondary(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.8081 3.69867C10.569 3.45996 10.2434 3.32825 9.90549 3.33353C9.21611 3.3443 8.6656 3.91119 8.67504 4.60059V10.8164C8.66884 11.2671 8.90573 11.6862 9.29502 11.9133C9.68432 12.1405 10.1657 12.1405 10.555 11.9133C10.9443 11.6862 11.1812 11.2671 11.175 10.8164V4.60059C11.1796 4.26272 11.0473 3.93737 10.8081 3.69867ZM11.4583 14.6224C11.4583 13.7595 10.7587 13.0599 9.89579 13.0599C9.4814 13.0599 9.08397 13.2245 8.79095 13.5176C8.49793 13.8106 8.33331 14.208 8.33331 14.6224C8.33331 15.0368 8.49793 15.4342 8.79095 15.7272C9.08397 16.0203 9.4814 16.1849 9.89579 16.1849C10.3102 16.1849 10.7076 16.0203 11.0006 15.7272C11.2937 15.4342 11.4583 15.0368 11.4583 14.6224Z\",\n fill: \"#b8349a\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 9.5,\n stroke: \"#b8349a\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWarningSecondary);\nexport default __webpack_public_path__ + \"static/media/warningSecondary.a9a15bf5.svg\";\nexport { ForwardRef as ReactComponent };","import {createStyles, makeStyles, Theme} from '@material-ui/core/styles';\r\n\r\nexport const useCollapseCardIconStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n expand: {\r\n color: '#A3B6EC',\r\n transform: 'rotate(0deg)',\r\n marginLeft: 'auto',\r\n transition: theme.transitions.create('transform', {\r\n duration: theme.transitions.duration.shortest,\r\n }),\r\n '&:hover, &.Mui-focusVisible': {\r\n backgroundColor: 'rgba(248, 249, 254, 0.5)',\r\n },\r\n },\r\n expandOpen: {\r\n transform: 'rotate(180deg)',\r\n },\r\n })\r\n);\r\n","import React from 'react';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport INextOfKin from '../../../models/INextOfKin';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport TextField from '../../commons/TextField/TextField';\r\n\r\ninterface IEmergencyContactInfoProps {\r\n emergencyContact: INextOfKin;\r\n memberId: number;\r\n}\r\n\r\nconst EmergencyContactInfo: React.FC = ({\r\n emergencyContact,\r\n memberId,\r\n}) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EmergencyContactInfo;\r\n","import { useContext } from 'react';\r\n\r\nimport { ClientAppContext } from '../context/ClientAppContext/ClientAppContext';\r\n\r\nconst useCountries = () => {\r\n const clientAppContext = useContext(ClientAppContext);\r\n return clientAppContext.countries;\r\n};\r\nexport default useCountries;\r\n","export enum Genders {\r\n Male = 'M',\r\n Female = 'F',\r\n Undisclosed = 'U',\r\n Unspecified = 'X'\r\n}\r\n\r\nexport const GendersOptions = [\r\n {label: 'Male', value: Genders.Male},\r\n {label: 'Female', value: Genders.Female},\r\n {label: 'Undisclosed', value: Genders.Undisclosed},\r\n {label: 'Unspecified', value: Genders.Unspecified},\r\n]\r\n","import { AccessTime, CheckCircle, HighlightOff, ErrorOutline } from \"@material-ui/icons\";\r\nimport { Chip } from \"@material-ui/core\";\r\nimport React from \"react\";\r\n\r\nexport type DocumentStatus = 'Verified' | 'Pending' | 'Rejected';\r\n\r\ntype Props = {\r\n status?: DocumentStatus;\r\n}\r\nfunction DocumentStatusChip(props: Props): JSX.Element {\r\n const { status } = props;\r\n\r\n if (status === 'Verified') {\r\n return } style={{ color: '#047857', backgroundColor: '#D1FAE5', borderColor: '#047857' }} />\r\n }\r\n\r\n if (status === 'Rejected') {\r\n return } style={{color: '#991B1B', backgroundColor: '#FEE2E2', borderColor: '#991B1B' }} />\r\n }\r\n\r\n if (status === 'Pending') {\r\n return } style={{color: '#B45309', backgroundColor: '#FEF3C7', borderColor: '#B45309' }} />\r\n }\r\n\r\n return } />\r\n}\r\n\r\nexport default DocumentStatusChip;\r\n","import React from 'react';\r\nimport { Chip } from '@material-ui/core';\r\nimport moment from 'moment';\r\nimport { AccessTime } from '@material-ui/icons';\r\n\r\ntype Props = {\r\n expireDate: Date;\r\n}\r\n\r\nfunction PassportExpirationChip(props: Props) {\r\n const { expireDate } = props;\r\n\r\n const isWithin6Month = (): boolean => {\r\n const expireMoment = moment(expireDate);\r\n const now = moment();\r\n const diff = expireMoment.diff(now, 'month', true);\r\n return diff > 0 && diff < 6;\r\n };\r\n\r\n const isExpired = (): boolean => {\r\n const expireMoment = moment(expireDate);\r\n const today = moment();\r\n return expireMoment.isBefore(today);\r\n };\r\n\r\n if (isWithin6Month()) {\r\n return }\r\n style={{ color: '#B45309', backgroundColor: '#FEF3C7', borderColor: '#B45309' }} />;\r\n }\r\n\r\n if (isExpired()) {\r\n return }\r\n style={{ color: '#991B1B', backgroundColor: '#FEE2E2', borderColor: '#991B1B' }} />;\r\n }\r\n\r\n return <>;\r\n}\r\n\r\nexport default PassportExpirationChip;\r\n","import { TextField } from \"@material-ui/core\";\r\nimport React from \"react\";\r\n\r\ntype Props = {\r\n label: string;\r\n value?: string;\r\n}\r\nfunction ReadOnlyLabel(props: Props) {\r\n const { label, value } = props;\r\n\r\n let normalizedValue = value;\r\n\r\n if (value === \"\" || value === undefined || value === null) {\r\n normalizedValue = \"-\";\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default ReadOnlyLabel;\r\n","import IImmigrationDocument from '../models/IImmigrationDocument';\r\nimport { GetFormData } from '../utils/Forms';\r\nimport instance, { requests } from './ApiService';\r\nimport IFileV2 from '../models/IFileV2';\r\nimport { AxiosResponse } from 'axios';\r\n\r\nconst API_ENDPOINT = 'api/ImmigrationDocuments';\r\n\r\nexport type CreateImmigrationDocumentRequest = {\r\n memberId: number;\r\n documentName: string;\r\n documentType: string;\r\n gender?: string;\r\n firstName?: string;\r\n middleName?: string;\r\n lastName?: string;\r\n birthDate?: Date;\r\n issueDate?: Date;\r\n expireDate: Date;\r\n nationalityCode: string;\r\n documentNumber: string;\r\n birthCity?: string;\r\n birthState?: string;\r\n birthCountryCode?: string;\r\n visaType?: string;\r\n file: IFileV2 | null;\r\n parentId?: number;\r\n};\r\n\r\nexport type UpdateImmigrationDocumentRequest = {\r\n memberId: number;\r\n documentId: number;\r\n documentName: string;\r\n documentType: string;\r\n gender: string;\r\n firstName: string;\r\n middleName: string;\r\n lastName: string;\r\n birthDate: Date;\r\n issueDate: Date;\r\n expireDate: Date;\r\n nationalityCode: string;\r\n documentNumber: string;\r\n birthCity: string;\r\n birthState: string;\r\n birthCountryCode: string;\r\n visaType?: string;\r\n file?: IFileV2;\r\n parentId?: number;\r\n};\r\n\r\nconst ImmigrationDocumentService = {\r\n getMemberDocuments: (memberId: number): Promise =>\r\n requests.get(`${API_ENDPOINT}/${memberId}`),\r\n\r\n getPendingDocuments: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/pending`),\r\n\r\n approveDocument: (documentId: number): Promise =>\r\n requests.putAsFormdata(`${API_ENDPOINT}/approve`, { documentId }),\r\n\r\n rejectDocument: (documentId: number, reason: string): Promise =>\r\n requests.putAsFormdata(`${API_ENDPOINT}/reject`, { documentId, reason }),\r\n\r\n createNewDocument: (\r\n document: CreateImmigrationDocumentRequest\r\n ): Promise => {\r\n const formData = GetFormData(document);\r\n\r\n return requests.post(`${API_ENDPOINT}`, formData, {\r\n headers: {\r\n 'content-type': 'multipart/form-data',\r\n },\r\n });\r\n },\r\n\r\n updateDocument: (document: UpdateImmigrationDocumentRequest): Promise => {\r\n const formData = GetFormData(document);\r\n\r\n return requests.put(`${API_ENDPOINT}`, formData, {\r\n headers: {\r\n 'content-type': 'multipart/form-data',\r\n },\r\n });\r\n },\r\n\r\n deleteDocument: (documentId: number): Promise =>\r\n requests.delete(`${API_ENDPOINT}/${documentId}`),\r\n\r\n getImmigrationDocumentAttachment: (payload: any): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/${payload.memberId}/attachment/${payload.documentId}`,\r\n { responseType: 'blob' }\r\n ),\r\n\r\n getAxiosAttachment: (payload: any): Promise> => {\r\n return instance.get(\r\n `${API_ENDPOINT}/${payload.memberId}/attachment/${payload.documentId}`,\r\n { responseType: 'blob' }\r\n );\r\n },\r\n\r\n updateDefaultDocument: (documentId: number): Promise =>\r\n requests.put(`${API_ENDPOINT}/default/${documentId}`, {}),\r\n\r\n linkVisa: (passportId: number, visaId: number) =>\r\n requests.post(`${API_ENDPOINT}/link/${passportId}/${visaId}`, {}),\r\n};\r\n\r\nexport default ImmigrationDocumentService;\r\n","import FileDownloadButton from \"./commons/FileDownloadButton/FileDownloadButton\";\r\nimport IImmigrationDocument from \"../models/IImmigrationDocument\";\r\nimport React from \"react\";\r\nimport ImmigrationDocumentService from \"../services/ImmigrationDocumentService\";\r\n\r\ntype Props = {\r\n document: IImmigrationDocument;\r\n}\r\nfunction PdfFileDowloadButtton(props: Props) {\r\n const { document } = props;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default PdfFileDowloadButtton;\r\n","import { AxiosResponse } from \"axios\";\r\n\r\nfunction getMimeType(base64String: string): string {\r\n const header = base64String.split(',')[0];\r\n\r\n const mimeType = header.match(/:(.*?);/)?.[1] ?? '';\r\n return mimeType;\r\n}\r\n\r\nfunction getFileNameFromContentDisposition(contentDisposition: string) {\r\n // Regular expression to match the filename\r\n const fileNameMatch = contentDisposition.match(/filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/);\r\n const fileNameStarMatch = contentDisposition.match(/filename\\*=UTF-8''([^;\\n]*)/);\r\n\r\n let fileName = null;\r\n\r\n if (fileNameStarMatch != null && fileNameStarMatch[1]) {\r\n // Decode the filename* value\r\n fileName = decodeURIComponent(fileNameStarMatch[1]);\r\n } else if (fileNameMatch != null && fileNameMatch[1]) {\r\n // Extract the filename value\r\n fileName = fileNameMatch[1].replace(/['\"]/g, ''); // Remove any surrounding quotes\r\n }\r\n\r\n return fileName;\r\n}\r\n\r\nexport function getFileExtension(filePath: string): string {\r\n if (!filePath) {\r\n return '';\r\n }\r\n const parts = filePath.split('.');\r\n return parts.length > 1 ? parts.pop() ?? '' : '';\r\n}\r\n\r\nexport function getFileTypeFromHeader(response: AxiosResponse): string {\r\n const contentDisposition = response.headers['content-disposition'];\r\n const filePath = getFileNameFromContentDisposition(contentDisposition);\r\n const fileType = getFileExtension(filePath ?? '');\r\n return fileType;\r\n}\r\n\r\nexport default getMimeType;\r\n","import React, { useEffect, useState } from 'react';\r\nimport IImmigrationDocument from \"../../models/IImmigrationDocument\";\r\nimport styles from \"../commons/FileDownloadButton/FileDownloadButton.module.scss\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport { ReactComponent as AttachedFileIcon } from '../../assets/icons/attachedFile.svg';\r\nimport Constants from \"../../utils/Constants\";\r\nimport useSnackbar from \"../../hooks/useSnackbar\";\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n DialogTitle,\r\n LinearProgress\r\n} from \"@material-ui/core\";\r\nimport ImmigrationDocumentService from \"../../services/ImmigrationDocumentService\";\r\nimport PdfFileDowloadButtton from '../PdfFileDownloadButton';\r\nimport { getFileExtension } from '../../utils/get-mime-type';\r\n\r\ntype Props = {\r\n document: IImmigrationDocument;\r\n}\r\n\r\nfunction ImmigrationDocumentPreview(props: Props): JSX.Element {\r\n const { document } = props;\r\n\r\n const { addMessage } = useSnackbar();\r\n\r\n const [open, setOpen] = useState(false);\r\n const [attachment, setAttachment] = useState(undefined);\r\n const [loading, setIsLoading] = useState(false);\r\n\r\n const handleDownloadAttachment = async (fileName: string) => {\r\n if (attachment) {\r\n setOpen(true);\r\n return;\r\n }\r\n setIsLoading(true);\r\n\r\n ImmigrationDocumentService\r\n .getImmigrationDocumentAttachment({\r\n documentId: document.documentId,\r\n memberId: document.memberId\r\n })\r\n .then((blob) => {\r\n if (blob && blob.size > 0) {\r\n const urlCreator = window.URL || window.webkitURL;\r\n const imageUrl = urlCreator.createObjectURL(blob);\r\n setAttachment(imageUrl);\r\n setOpen(true);\r\n } else {\r\n throw Error(`${fileName} download was empty`);\r\n }\r\n })\r\n .catch(() => {\r\n addMessage(Constants.messages.error.fetchingData);\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n useEffect(() => {\r\n setAttachment(undefined);\r\n }, [document]);\r\n\r\n const isPdf = getFileExtension(document.fileName) === 'pdf';\r\n\r\n return (\r\n
\r\n handleDownloadAttachment(document.fileName)}\r\n >\r\n \r\n
{document.fileName ?? 'Unnamed File'}
\r\n \r\n {loading && }\r\n setOpen(false)}\r\n >\r\n {document.documentType} Attachment\r\n \r\n {!isPdf && (\r\n {`${document.documentType}\r\n )}\r\n\r\n {isPdf && (\r\n \r\n )}\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default ImmigrationDocumentPreview;\r\n","import React from 'react';\r\nimport moment from 'moment';\r\n\r\nimport { Card, CardContent, CardHeader, Grid } from '@material-ui/core';\r\nimport ReactCountryFlag from 'react-country-flag';\r\nimport IImmigrationDocument from '../../../../models/IImmigrationDocument';\r\nimport useCountries from '../../../../hooks/useCountries';\r\nimport { GendersOptions } from '../../../../utils/Genders';\r\nimport DocumentStatusChip\r\n from '../../../../pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/DocumentStatusChip';\r\nimport PassportExpirationChip\r\n from '../../../../pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/PassportExpirationChip';\r\nimport ReadOnlyLabel\r\n from '../../../../pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/ReadOnlyLabel';\r\nimport ImmigrationDocumentPreview from '../../../ImmigrationDocument/ImmigrationDocumentPreview';\r\n\r\ntype Props = {\r\n document: IImmigrationDocument;\r\n}\r\n\r\nfunction PassportReadonlyCard(props: Props) {\r\n const { document } = props;\r\n const countries = useCountries();\r\n\r\n const dateFormat = (date?: Date) => {\r\n if (!date) {\r\n return undefined;\r\n }\r\n return moment(date).format('DD MMM YYYY');\r\n };\r\n\r\n const countryName = (countryCode: string) => {\r\n return countries.find(e => e.countryCode === countryCode)?.countryName;\r\n };\r\n\r\n const genderChoice = (gender: string) => {\r\n return GendersOptions.find(\r\n (option) => option.value === gender,\r\n )?.label;\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {document.documentName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {document.status === 'Verified' &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n )}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default PassportReadonlyCard;\r\n","import clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Collapse from '@material-ui/core/Collapse';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport MuiLink from '@material-ui/core/Link';\r\nimport Switch from '@material-ui/core/Switch';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nimport { ReactComponent as WarningIcon } from '../../../assets/icons/warningSecondary.svg';\r\nimport { usePassengerListContext } from '../../../context/PassengerListProvider/PassengerListProvider';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport useComment from '../../../hooks/useComment';\r\nimport IPassengerListTraveler from '../../../models/DailyTasks/PassengerList/IPassengerListTraveler';\r\nimport { useCollapseCardIconStyles } from '../../../styles/collapseCardIcon';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport EmergencyContactInfo from '../EmergencyContactInfo/EmergencyContactInfo';\r\nimport { Link } from 'react-router-dom';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\nimport { useUserContext } from '../../../context/User/UserContext';\r\nimport PassportReadonlyCard from '../../Reservation/Steps/personalData/PassportReadonlyCard';\r\n\r\ninterface IAllLegsTravelerCardProps {\r\n traveler: IPassengerListTraveler;\r\n readonly?: boolean;\r\n}\r\n\r\nconst AllLegsTravelerCard: React.FC = ({\r\n traveler,\r\n readonly = false,\r\n}) => {\r\n const breakpoint = useBreakpoint();\r\n const passengerListContext = usePassengerListContext();\r\n const classes = useCollapseCardIconStyles();\r\n const [expanded, setExpanded] = useState(false);\r\n const userContext = useUserContext();\r\n\r\n const [comment, setComment] = useState('');\r\n useEffect(() => {\r\n setComment(traveler.comment);\r\n }, [traveler.comment]);\r\n\r\n const { CommentIconWithDialog } = useComment({\r\n title: 'Passenger comment',\r\n value: comment,\r\n onSave: (comment: string) => {\r\n passengerListContext.updateComment({\r\n reservationId: traveler.reservationId,\r\n cvFlightId: traveler.cvFlightId,\r\n memberId: traveler.memberId,\r\n comment: comment,\r\n });\r\n },\r\n numericalBadge: true,\r\n size: 24,\r\n });\r\n\r\n const [confirmation, setConfirmation] = useState(false);\r\n\r\n const isChild =\r\n traveler.birthDate === null\r\n ? false\r\n : moment().diff(traveler.birthDate, 'years', false) <= 12;\r\n\r\n const Warning = (message: string) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n setConfirmation(traveler.isConfirmed);\r\n }, [traveler.isConfirmed]);\r\n\r\n const handleConfirmationChange = (\r\n event: React.ChangeEvent\r\n ) => {\r\n const confirmed = event.target.checked;\r\n passengerListContext.updateIsConfirmed({\r\n reservationId: traveler.reservationId,\r\n cvFlightId: traveler.cvFlightId,\r\n memberId: traveler.memberId,\r\n isConfirmed: confirmed,\r\n });\r\n };\r\n\r\n const handleExpandClick = () => {\r\n setExpanded(!expanded);\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {traveler.priorityName}\r\n \r\n \r\n \r\n {traveler.firstName} {traveler.lastName}\r\n \r\n \r\n \r\n \r\n {isChild && (\r\n \r\n {Warning('Child')}\r\n \r\n )}\r\n {traveler.isGroom && (\r\n \r\n {Warning('Groom')}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n Reservation\r\n \r\n \r\n {userContext &&\r\n (userContext.permissions.includes(\r\n PermissionsList.eTravelReservationConsultReservation\r\n ) ||\r\n userContext.permissions.includes(\r\n PermissionsList.eTravelReservationDetailsFromPaxList\r\n ) ||\r\n userContext.permissions.includes(\r\n PermissionsList.eTravelUserManagementImpersonationSpecific\r\n )) ? (\r\n \r\n \r\n \r\n {traveler.reservationId}\r\n \r\n \r\n \r\n ) : (\r\n \r\n {traveler.reservationId}\r\n \r\n )}\r\n \r\n\r\n {traveler.awbNumber && (\r\n <>\r\n \r\n \r\n AWB\r\n \r\n \r\n \r\n {traveler.awbNumber}\r\n \r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n \r\n Reconfirmed\r\n \r\n \r\n }\r\n label={confirmation ? 'Yes' : 'No'}\r\n />\r\n \r\n \r\n \r\n \r\n {traveler.legs.map((l, index) => (\r\n \r\n \r\n \r\n {l}\r\n \r\n \r\n \r\n {passengerListContext.state.flightTravelersLegs\r\n .find((f) => f.leg === l)\r\n ?.travelers.find(\r\n (t) => t.memberId === traveler.memberId\r\n )?.isOnBoard\r\n ? 'Onboard'\r\n : 'Not onboard'}\r\n \r\n \r\n ))}\r\n \r\n \r\n {breakpoint.smup ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n See {expanded ? ' less ' : ' more '} information\r\n \r\n \r\n )}\r\n \r\n
\r\n {breakpoint.smup ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Additional information\r\n \r\n \r\n \r\n Emergency contact\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default AllLegsTravelerCard;\r\n","import clsx from 'clsx';\r\nimport React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport IFlightCrewsLegCrew from '../../../models/DailyTasks/PassengerList/IFlightCrewsLegCrew';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport styles from './LegCrewCard.module.scss';\r\n\r\ninterface ILegCrewCardProps {\r\n crews?: IFlightCrewsLegCrew[];\r\n}\r\n\r\nconst LegCrewCard: React.FC = ({ crews }) => {\r\n const breakpoint = useBreakpoint();\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n {crews &&\r\n crews.map((crew, index) => (\r\n \r\n \r\n \r\n \r\n \r\n K0\r\n \r\n \r\n \r\n {crew.firstName} {crew.lastName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Category\r\n \r\n \r\n \r\n {crew.rank}\r\n \r\n \r\n \r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default LegCrewCard;\r\n","//Model\r\nimport ICountry from '../models/ICountry';\r\n//API Service\r\nimport {requests} from './ApiService';\r\nimport {IApisCountryProperty} from '../models/IApisCountryProperty';\r\nimport {IApisTemplate} from '../models/IApisTemplate';\r\nimport {CancelToken} from \"axios\";\r\nimport {ApisDirectResponse} from \"../models/DailyTasks/ApisDirectResponse\";\r\n\r\nconst API_ENDPOINT = 'api/apis';\r\n\r\nconst ApisService = {\r\n getApisDirectResponses: (reservationId: number, memberId: number, cvFlightLegId: number, cancelToken?: CancelToken): Promise =>\r\n requests.get(`${API_ENDPOINT}/responses?reservationId=${reservationId}&memberId=${memberId}&cvFlightLegId=${cvFlightLegId}`, { cancelToken }),\r\n getSchengenCountries: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/schengen-countries`),\r\n addSchengenCountry: (code: string): Promise =>\r\n requests.post(`${API_ENDPOINT}/schengen-countries`, { code }),\r\n deleteSchengenCountry: (code: string): Promise =>\r\n requests.delete(`${API_ENDPOINT}/schengen-countries/${code}`),\r\n\r\n getCountryProperties: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/country-properties`),\r\n addCountryProperty: (\r\n countryProperty: IApisCountryProperty\r\n ): Promise =>\r\n requests.post(`${API_ENDPOINT}/country-properties`, countryProperty),\r\n updateCountryProperty: (\r\n countryProperty: IApisCountryProperty\r\n ): Promise =>\r\n requests.put(`${API_ENDPOINT}/country-properties`, countryProperty),\r\n deleteCountryProperty: (id: number): Promise =>\r\n requests.delete(`${API_ENDPOINT}/country-properties/${id}`),\r\n\r\n getTemplates: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/templates`),\r\n addTemplate: (template: IApisTemplate): Promise =>\r\n requests.postAsFormdata(`${API_ENDPOINT}/templates`, template),\r\n updateTemplate: (template: IApisTemplate): Promise =>\r\n requests.putAsFormdata(`${API_ENDPOINT}/templates`, template),\r\n deleteTemplate: (id: number): Promise =>\r\n requests.delete(`${API_ENDPOINT}/templates/${id}`),\r\n};\r\nexport default ApisService;\r\n","import React, {useEffect, useState} from 'react';\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport {Chip, CircularProgress} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport styles from \"./LegTravelerCard.module.scss\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport dayjs from \"dayjs\";\r\nimport IPassengerExtended from \"../../../models/DailyTasks/PassengerList/IPassengerExtended\";\r\nimport _ from \"lodash\";\r\nimport useSnackbar from \"../../../hooks/useSnackbar\";\r\nimport {ApisDirectResponse} from \"../../../models/DailyTasks/ApisDirectResponse\";\r\nimport ApisService from \"../../../services/ApisService\";\r\n\r\ntype Props = {\r\n traveler: IPassengerExtended;\r\n destination: string;\r\n origin: string;\r\n}\r\n\r\nfunction DirectApisApiResponse(props: Props) {\r\n const {traveler, destination, origin} = props;\r\n\r\n const {addMessage} = useSnackbar();\r\n\r\n const [apisResponse, setApisResponse] = useState([]);\r\n const [loadingApisResponse, setLoadingApisResponse] = useState(false);\r\n\r\n useEffect(() => {\r\n setLoadingApisResponse(true);\r\n\r\n ApisService.getApisDirectResponses(traveler.reservationId, traveler.memberId, traveler.cvFlightLegId)\r\n .then((res) => {\r\n if (_.isEmpty(res)) return;\r\n\r\n let tmp = res.filter(e => e.origin === origin && e.destination === destination);\r\n tmp = _.orderBy(tmp, e => e.receivedOn, 'desc');\r\n if (tmp.length > 0) setApisResponse(tmp);\r\n })\r\n .catch(() => {\r\n addMessage('Could not load responses from authorities. Please contact travel office.');\r\n })\r\n .finally(() => {\r\n setLoadingApisResponse(false);\r\n });\r\n\r\n }, [traveler]);\r\n\r\n const getLatestOfEach = () => {\r\n const sourceSystems = _.uniq(apisResponse.map(e => e.sourceSystem));\r\n const result = [];\r\n\r\n for (const sourceSystem of sourceSystems) {\r\n // Get latest one for each of the systems\r\n const latest = _.orderBy(apisResponse.filter(e => e.sourceSystem === sourceSystem), e => e.receivedOn, 'desc')[0];\r\n result.push(latest);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n return (\r\n \r\n \r\n Direct APIS Response\r\n \r\n {loadingApisResponse && }\r\n\r\n {!apisResponse && !loadingApisResponse &&\r\n No responses\r\n yet}\r\n {getLatestOfEach().map((apisResponse) =>\r\n <>\r\n \r\n \r\n\r\n \r\n \r\n {apisResponse.responseCode}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n {apisResponse.responseDescription}\r\n {!_.isEmpty(apisResponse.responseText) && <>\r\n
\r\n {apisResponse.responseText}\r\n }\r\n
\r\n \r\n {dayjs(apisResponse.receivedOn).format(\"DD MMM YYYY HH:mm\")}\r\n \r\n
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\nexport default DirectApisApiResponse;\r\n","import clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Collapse from '@material-ui/core/Collapse';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport MuiLink from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nimport { ReactComponent as WarningIcon } from '../../../assets/icons/warningSecondary.svg';\r\nimport {\r\n usePassengerListContext\r\n} from '../../../context/PassengerListProvider/PassengerListProvider';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport ToggleButtons from '../../../components/commons/ToggleButtons/ToggleButtons';\r\nimport useComment from '../../../hooks/useComment';\r\nimport IPassengerExtended from '../../../models/DailyTasks/PassengerList/IPassengerExtended';\r\nimport { useCollapseCardIconStyles } from '../../../styles/collapseCardIcon';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport EmergencyContactInfo from '../EmergencyContactInfo/EmergencyContactInfo';\r\nimport { Link } from 'react-router-dom';\r\nimport { useUserContext } from '../../../context/User/UserContext';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\nimport './LegTravelerCard.scss';\r\nimport DirectApisApiResponse from \"./DirectApisApiResponse\";\r\nimport './LegTravelerCard.scss';\r\nimport useSnackbar from \"../../../hooks/useSnackbar\";\r\nimport PassportReadonlyCard from '../../Reservation/Steps/personalData/PassportReadonlyCard';\r\n\r\ninterface ILegTravelerCardProps {\r\n traveler: IPassengerExtended;\r\n leg: string;\r\n readonly?: boolean;\r\n}\r\n\r\nconst iataCodeRegex = /([A-Z]{3})/g;\r\n\r\nconst LegTravelerCard: React.FC = ({\r\n traveler,\r\n readonly = false,\r\n leg,\r\n }) => {\r\n const breakpoint = useBreakpoint();\r\n const passengerListContext = usePassengerListContext();\r\n const classes = useCollapseCardIconStyles();\r\n const [expanded, setExpanded] = useState(false);\r\n const userContext = useUserContext();\r\n\r\n const [comment, setComment] = useState('');\r\n\r\n useEffect(() => {\r\n setComment(traveler.comment);\r\n }, [traveler.comment]);\r\n\r\n console.log(traveler.isOnBoard);\r\n const {CommentIconWithDialog} = useComment({\r\n title: 'Passenger comment',\r\n value: comment,\r\n onSave: (comment: string) => {\r\n passengerListContext.updateComment({\r\n reservationId: traveler.reservationId,\r\n cvFlightId: traveler.cvFlightId,\r\n memberId: traveler.memberId,\r\n comment: comment,\r\n });\r\n },\r\n numericalBadge: true,\r\n size: 24,\r\n });\r\n\r\n const {addMessage} = useSnackbar();\r\n\r\n const [origin, setOrigin] = useState(undefined);\r\n const [destination, setDestination] = useState(undefined);\r\n\r\n useEffect(() => {\r\n const stationRes = leg.match(iataCodeRegex);\r\n if (stationRes) {\r\n if (stationRes.length >= 2) {\r\n const origin = stationRes[0];\r\n const destination = stationRes[1];\r\n setOrigin(origin);\r\n setDestination(destination);\r\n }\r\n }\r\n }, [leg]);\r\n\r\n\r\n\r\n const handleIsOnBoardChange = (isOnboard: boolean) => {\r\n passengerListContext.updateIsOnBoard({\r\n reservationId: traveler.reservationId,\r\n cvFlightLegId: traveler.cvFlightLegId,\r\n memberId: traveler.memberId,\r\n isOnBoard: isOnboard,\r\n });\r\n };\r\n\r\n const handleOnBoardStatusChange = (newStatus: boolean) => {\r\n handleIsOnBoardChange(newStatus);\r\n };\r\n\r\n const handleExpandClick = () => {\r\n setExpanded(!expanded);\r\n };\r\n\r\n const isChild =\r\n traveler.birthDate === null\r\n ? false\r\n : moment().diff(traveler.birthDate, 'years', false) <= 12;\r\n\r\n const Warning = (message: string) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {traveler.priorityName}\r\n \r\n \r\n \r\n {traveler.firstName} {traveler.lastName}\r\n \r\n \r\n {isChild || traveler.isGroom &&\r\n \r\n \r\n {isChild && (\r\n \r\n {Warning('Child')}\r\n \r\n )}\r\n {traveler.isGroom && (\r\n \r\n {Warning('Groom')}\r\n \r\n )}\r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n Reservation\r\n \r\n \r\n {(userContext &&\r\n (userContext.permissions.includes(\r\n PermissionsList.eTravelReservationConsultReservation\r\n ) ||\r\n userContext.permissions.includes(\r\n PermissionsList.eTravelReservationDetailsFromPaxList\r\n ))) ||\r\n userContext.permissions.includes(\r\n PermissionsList.eTravelUserManagementImpersonationSpecific\r\n ) ? (\r\n \r\n \r\n \r\n {traveler.reservationId}\r\n \r\n \r\n \r\n ) : (\r\n \r\n {traveler.reservationId}\r\n \r\n )}\r\n \r\n {traveler.awbNumber && (\r\n <>\r\n \r\n \r\n AWB\r\n \r\n \r\n \r\n {traveler.awbNumber}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n Reconfirmed:{' '}\r\n \r\n \r\n {traveler.isConfirmed ? 'YES' : 'NO'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n handleOnBoardStatusChange(v)}\r\n />\r\n \r\n \r\n \r\n {breakpoint.mdup ? (\r\n \r\n
\r\n \r\n
\r\n
\r\n ) : (\r\n \r\n \r\n See {expanded ? ' less ' : ' more '} information\r\n \r\n \r\n\r\n )}\r\n
\r\n\r\n\r\n
\r\n {breakpoint.smup ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n\r\n {destination && origin && }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Additional information\r\n \r\n \r\n \r\n Emergency Contact\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default LegTravelerCard;\r\n","var _path, _circle;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgWarning(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.8081 3.69867C10.569 3.45996 10.2434 3.32825 9.90549 3.33353C9.21611 3.3443 8.6656 3.91119 8.67504 4.60059V10.8164C8.66884 11.2671 8.90573 11.6862 9.29502 11.9133C9.68432 12.1405 10.1657 12.1405 10.555 11.9133C10.9443 11.6862 11.1812 11.2671 11.175 10.8164V4.60059C11.1796 4.26272 11.0473 3.93737 10.8081 3.69867ZM11.4583 14.6224C11.4583 13.7595 10.7587 13.0599 9.89579 13.0599C9.4814 13.0599 9.08397 13.2245 8.79095 13.5176C8.49793 13.8106 8.33331 14.208 8.33331 14.6224C8.33331 15.0368 8.49793 15.4342 8.79095 15.7272C9.08397 16.0203 9.4814 16.1849 9.89579 16.1849C10.3102 16.1849 10.7076 16.0203 11.0006 15.7272C11.2937 15.4342 11.4583 15.0368 11.4583 14.6224Z\",\n fill: \"#CC0033\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 9.5,\n stroke: \"#CC0033\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWarning);\nexport default __webpack_public_path__ + \"static/media/warning.18e103e8.svg\";\nexport { ForwardRef as ReactComponent };","import PopupState, {bindMenu, bindTrigger} from 'material-ui-popup-state';\r\nimport moment, {Moment} from 'moment';\r\nimport React, {useState} from 'react';\r\nimport {useParams} from 'react-router-dom';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport Menu from '@material-ui/core/Menu';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Switch from '@material-ui/core/Switch';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport {MaterialUiPickersDate} from '@material-ui/pickers/typings/date';\r\n\r\nimport {ReactComponent as PrintIcon} from '../../../../assets/icons/print.svg';\r\nimport DatePicker from '../../../../components/commons/DatePicker/DatePicker';\r\nimport FormControl from '../../../../components/commons/FormControl/FormControl';\r\nimport NoResult from '../../../../components/commons/NoResult/NoResult';\r\nimport SearchButton from '../../../../components/commons/SearchButton/SearchButton';\r\nimport Tabs from '../../../../components/commons/Tabs/Tabs';\r\nimport TextField from '../../../../components/commons/TextField/TextField';\r\nimport ToggleButtons from '../../../../components/commons/ToggleButtons/ToggleButtons';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport AllLegsCrewCard from '../../../../components/passengerList/AllLegsCrewCard/AllLegsCrewCard';\r\nimport AllLegsTravelerCard from '../../../../components/passengerList/AllLegsTravelerCard/AllLegsTravelerCard';\r\nimport LegCrewCard from '../../../../components/passengerList/LegCrewCard/LegCrewCard';\r\nimport LegTravelerCard from '../../../../components/passengerList/LegTravelerCard/LegTravelerCard';\r\nimport {usePassengerListContext} from '../../../../context/PassengerListProvider/PassengerListProvider';\r\nimport {useUserContext} from '../../../../context/User/UserContext';\r\nimport useBreakpoint from '../../../../hooks/useBreakpoint';\r\nimport PassengerService from '../../../../services/PassengerService';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport PermissionsList from '../../../../utils/PermissionsList';\r\nimport styles from './PassengerListPage.module.scss';\r\nimport {ReactComponent as WarningIcon} from '../../../../assets/icons/warning.svg';\r\nimport Constants from '../../../../utils/Constants';\r\n\r\nconst PassengerListPage: React.FC = () => {\r\n const userContext = useUserContext();\r\n const breakpoint = useBreakpoint();\r\n var { fDesc, fDate } = useParams();\r\n const [flightDesc, setFlightDesc] = useState(fDesc ?? '');\r\n const [flightDate, setFlightDate] = useState(\r\n fDate ? moment(fDate, 'YYYY-MM-DD') ?? null : moment(new Date(), 'YYYY-MM-DD')\r\n );\r\n const [status, setStatus] = useState<'Confirmed' | 'Wait list'>('Confirmed');\r\n\r\n const passengerListContext = usePassengerListContext();\r\n\r\n const handleFlightDescChange = (e: React.ChangeEvent) => {\r\n setFlightDesc(e.target.value);\r\n };\r\n\r\n const handleFlightDateChange = (e: MaterialUiPickersDate) => {\r\n setFlightDate(e ? (e.isValid() ? moment(e.toDate()) : null) : null);\r\n };\r\n\r\n const handleStatusChange = (event: any, newStatus: any) => {\r\n if (newStatus) {\r\n setStatus(newStatus);\r\n if (flightDesc.trim() !== '' && flightDate && flightDate.isValid()) {\r\n passengerListContext.fetchPassengerList({\r\n flightDesc,\r\n flightDate,\r\n status: newStatus,\r\n });\r\n }\r\n }\r\n };\r\n\r\n const handleSearchPassenger = () => {\r\n passengerListContext.fetchPassengerList({ flightDesc, flightDate, status });\r\n };\r\n\r\n const handleIsEmergencyChange = (\r\n event: React.ChangeEvent\r\n ) => {\r\n const emergency = event.target.checked;\r\n passengerListContext.updateIsEmergency(emergency);\r\n };\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent) => {\r\n if (\r\n e.key === 'Enter' &&\r\n flightDesc.trim() !== '' &&\r\n flightDate &&\r\n flightDate.isValid()\r\n ) {\r\n handleSearchPassenger();\r\n }\r\n };\r\n\r\n const handleIsOnClosedClick = (\r\n origin: string,\r\n destination: string,\r\n isClosed: boolean\r\n ) => {\r\n passengerListContext.updateIsClosed({\r\n flightDesc: passengerListContext.state.filters.flightDesc,\r\n flightDate: passengerListContext.state.filters\r\n .flightDate!.startOf('day')\r\n .toISOString(),\r\n origin: origin,\r\n destination: destination,\r\n isClosed: isClosed,\r\n });\r\n };\r\n\r\n const print = (leg: string, fullVersion: boolean) => {\r\n PassengerService.print(\r\n passengerListContext.state.filters.flightDesc,\r\n passengerListContext.state.filters\r\n .flightDate!.startOf('day')\r\n .toISOString(),\r\n passengerListContext.state.filters.status,\r\n leg,\r\n fullVersion\r\n ).then((result) => {\r\n if (result && result.size > 0) {\r\n const file = new File([result], 'passengerList.pdf', {\r\n type: 'application/pdf',\r\n });\r\n var fileURL = window.URL.createObjectURL(file);\r\n let tab = window.open();\r\n if (tab !== null) {\r\n tab.location.href = fileURL;\r\n }\r\n }\r\n });\r\n // .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const printButton = (leg: string) => {\r\n return (\r\n \r\n \r\n {(popupState) => (\r\n \r\n \r\n {' '}\r\n Print passenger list\r\n \r\n \r\n {\r\n print(leg, false);\r\n popupState.close();\r\n }}\r\n >\r\n Light version\r\n \r\n {\r\n print(leg, true);\r\n popupState.close();\r\n }}\r\n >\r\n Full version\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n };\r\n\r\n const missingCarrier =\r\n flightDesc.length > 0 && !flightDesc.toUpperCase().match(/^\\w{2}\\d{4}/gm);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Search passenger list\r\n \r\n \r\n \r\n \r\n\r\n {passengerListContext.state.isExistArmAlert && (\r\n \r\n \r\n \r\n \r\n {Constants.armAlert.warningTextAlternative}\r\n \r\n \r\n )}\r\n\r\n {passengerListContext.state.loading && (\r\n \r\n )}\r\n {!passengerListContext.state.loading && (\r\n <>\r\n {userContext.permissions.includes(\r\n PermissionsList.eTravelDailyTasksPassengerListEmergency\r\n ) &&\r\n passengerListContext.state.hasResult && (\r\n \r\n \r\n \r\n Emergency\r\n \r\n \r\n \r\n }\r\n label={passengerListContext.state.isEmergency ? 'Yes' : 'No'}\r\n />\r\n \r\n )}\r\n {passengerListContext.state.dataFetched && (\r\n <>\r\n {passengerListContext.state.hasResult ? (\r\n ({\r\n label: l,\r\n content: (\r\n <>\r\n \r\n \r\n \r\n \r\n {passengerListContext.state.tailNumber}\r\n \r\n \r\n \r\n \r\n {passengerListContext.state.filters.status ===\r\n 'Confirmed' &&\r\n !(\r\n passengerListContext.state.flightCrewsLegs.find(\r\n (f) =>\r\n f.origin + ' - ' + f.destination === l\r\n )?.crews.length! === 0 &&\r\n passengerListContext.state.flightTravelersLegs.filter(\r\n (f) => f.leg === l\r\n ).length === 0\r\n ) &&\r\n printButton(l)}\r\n \r\n \r\n {passengerListContext.state.flightTravelersLegs\r\n .find((f) => f.leg === l)\r\n ?.travelers.map((t) => (\r\n f.leg === l)\r\n .flatMap((f) => f.travelers)[0].isClosed\r\n }\r\n />\r\n ))}\r\n\r\n {passengerListContext.state.flightCrewsLegs.find(\r\n (f) => f.origin + ' - ' + f.destination === l\r\n )?.crews &&\r\n passengerListContext.state.flightCrewsLegs.find(\r\n (f) => f.origin + ' - ' + f.destination === l\r\n )?.crews.length! > 0 &&\r\n passengerListContext.state.flightTravelersLegs.find(\r\n (f) => f.leg === l\r\n )?.travelers &&\r\n passengerListContext.state.flightTravelersLegs.find(\r\n (f) => f.leg === l\r\n )?.travelers.length! > 0 && (\r\n
\r\n )}\r\n {passengerListContext.state.flightCrewsLegs.find(\r\n (f) => f.origin + ' - ' + f.destination === l\r\n )?.crews &&\r\n passengerListContext.state.flightCrewsLegs.find(\r\n (f) => f.origin + ' - ' + f.destination === l\r\n )?.crews.length! > 0 && (\r\n \r\n f.origin + ' - ' + f.destination === l\r\n )?.crews\r\n }\r\n />\r\n )}\r\n {passengerListContext.state.flightCrewsLegs.find(\r\n (f) => f.origin + ' - ' + f.destination === l\r\n )?.crews.length! === 0 &&\r\n passengerListContext.state.flightTravelersLegs.filter(\r\n (f) => f.leg === l\r\n ).length === 0 &&\r\n passengerListContext.state.filters.status ===\r\n 'Confirmed' && (\r\n \r\n \r\n The crew is not yet defined.\r\n \r\n \r\n )}\r\n {passengerListContext.state.flightCrewsLegs.find(\r\n (f) => f.origin + ' - ' + f.destination === l\r\n )?.crews.length! === 0 &&\r\n passengerListContext.state.flightTravelersLegs.filter(\r\n (f) => f.leg === l\r\n ).length === 0 &&\r\n passengerListContext.state.filters.status ===\r\n 'Wait list' && (\r\n \r\n \r\n No passenger found.\r\n \r\n \r\n )}\r\n\r\n {passengerListContext.state.filters.status ===\r\n 'Confirmed' &&\r\n passengerListContext.state.flightTravelersLegs\r\n .filter((f) => f.leg === l)\r\n .flatMap((f) => f.travelers).length > 0 && (\r\n \r\n \r\n handleIsOnClosedClick(\r\n l.split(' - ')[0],\r\n l.split(' - ')[1],\r\n !passengerListContext.state.flightTravelersLegs\r\n .filter((f) => f.leg === l)\r\n .flatMap((f) => f.travelers)[0].isClosed\r\n )\r\n }\r\n >\r\n {passengerListContext.state.flightTravelersLegs\r\n .filter((f) => f.leg === l)\r\n .flatMap((f) => f.travelers)[0].isClosed\r\n ? 'Open '\r\n : 'Close '}\r\n leg\r\n \r\n \r\n )}\r\n \r\n ),\r\n badge: `${\r\n passengerListContext.state.flightTravelersLegs\r\n .filter((x) => x.leg === l)\r\n .reduce((n, acc) => acc.travelers.length + n, 0) +\r\n passengerListContext.state.flightCrewsLegs\r\n .filter((x) => x.origin + ' - ' + x.destination === l)\r\n .reduce((n, acc) => acc.crews.length + n, 0)\r\n }`,\r\n })),\r\n {\r\n label: 'All Legs',\r\n content: (\r\n <>\r\n \r\n \r\n \r\n \r\n {passengerListContext.state.tailNumber}\r\n \r\n \r\n \r\n \r\n {passengerListContext.state.filters.status ===\r\n 'Confirmed' && printButton('all')}\r\n \r\n \r\n\r\n {passengerListContext.state.flightTravelers.map(\r\n (t) => (\r\n \r\n )\r\n )}\r\n {passengerListContext.state.flightCrews.length > 0 &&\r\n passengerListContext.state.flightTravelers.length >\r\n 0 &&
}\r\n {passengerListContext.state.flightCrews.length >\r\n 0 && (\r\n \r\n )}\r\n \r\n ),\r\n },\r\n ]}\r\n />\r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default PassengerListPage;\r\n","export enum CVFlightStatus {\r\n Request = 'Request',\r\n Confirmed = 'Confirmed',\r\n WaitList = 'Wait list',\r\n Ticketed = 'Ticketed',\r\n Cancelled = 'Cancelled',\r\n}\r\n","import React from 'react';\r\n\r\nexport default function formatString(text: string, ...args: any[]): string {\r\n return text.replace(/(\\{\\d+\\})/g, function (a) {\r\n return args[+a.substr(1, a.length - 2) || 0];\r\n });\r\n}\r\n\r\nexport function getNormalizedString(text: string): string {\r\n return text?.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n}\r\n\r\nexport function highlightSearchText(\r\n text: string,\r\n searchText: string\r\n): JSX.Element {\r\n let normalizedText = getNormalizedString(text);\r\n let normalizedSearch = getNormalizedString(searchText?.trimStart().trimEnd());\r\n let findIndex = normalizedText\r\n ?.toUpperCase()\r\n .indexOf(normalizedSearch?.toUpperCase());\r\n let firstIndex = 0;\r\n let lastIndex = 0;\r\n var components = [];\r\n while (findIndex >= 0) {\r\n lastIndex = findIndex + normalizedSearch.length;\r\n components.push(\r\n <>\r\n {text.substring(firstIndex, findIndex)}\r\n \r\n {text.substring(findIndex, lastIndex)}\r\n \r\n \r\n );\r\n findIndex = normalizedText\r\n ?.toUpperCase()\r\n .indexOf(normalizedSearch?.toUpperCase(), lastIndex);\r\n firstIndex = lastIndex;\r\n if (findIndex < 0) {\r\n components.push(<>{text.substring(lastIndex)});\r\n return <>{components};\r\n }\r\n }\r\n return <>{text};\r\n}\r\n","import React from 'react';\r\n\r\nimport Button, {ButtonProps} from '@material-ui/core/Button';\r\n\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\n\r\ninterface IDialogSaveButtonProps extends ButtonProps {\r\n text?: string;\r\n}\r\n\r\nconst DialogSaveButton: React.FC = ({\r\n text,\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {text ?? Constants.buttons.save}\r\n \r\n );\r\n};\r\n\r\nexport default DialogSaveButton;\r\n","import produce from 'immer';\r\nimport React, {useState, useEffect} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Box, ButtonBase, LinearProgress, Link} from '@material-ui/core';\r\n\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport usReservationRedirect, {ReservationRedirectOrigin,} from '../../../hooks/useReservationRedirect';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport {CVFlightStatus} from '../../../models/Enum';\r\nimport IMember from '../../../models/IMember';\r\nimport {ICVFlightPassengerSummary} from '../../../models/Reservation/ICVFlightPassengerSummary';\r\nimport ReservationService from '../../../services/ReservationService';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport formatString from '../../../utils/Strings';\r\nimport Dialog from '../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../commons/Dialog/DialogActions';\r\nimport DialogCancelButton from '../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../commons/Dialog/DialogContent';\r\nimport DialogSaveButton from '../../commons/Dialog/DialogSaveButton';\r\nimport DialogTitle from '../../commons/Dialog/DialogTitle';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport Table from '../../commons/Table/Table';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport styles from './PrintETicket.module.scss';\r\n\r\nexport interface IPrintETicketGridProps {\r\n flightPassengerSummaries: ICVFlightPassengerSummary[];\r\n plannerMembers: IMember[];\r\n}\r\n\r\ntype eticketRow = {\r\n reservationId: number;\r\n email: string;\r\n status: string | undefined;\r\n statusList: string[];\r\n passenger: string;\r\n passengerId: number;\r\n reservationOwner: number;\r\n};\r\ntype colorMap = { reservationId: number; alternate: boolean };\r\n\r\ninterface IReservationETicketForm {\r\n email: string;\r\n}\r\n\r\nconst ReservationETicketFormSchema = yup.object().shape({\r\n email: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150))\r\n .matches(\r\n Constants.validation.emailMultipleRegex,\r\n Constants.validation.invalidEmail\r\n ),\r\n});\r\n\r\nconst PrintETicketGrid: React.FC = ({\r\n flightPassengerSummaries,\r\n plannerMembers,\r\n }) => {\r\n const [selectedItem, setSelectedItem] = useState(\r\n undefined\r\n );\r\n const breakpoint = useBreakpoint();\r\n const {addMessage} = useSnackbar();\r\n\r\n const {\r\n showModal: showETicketDialog,\r\n hideModal: hideETicketDialog,\r\n isVisible: isVisibleETicketDialog,\r\n } = useModal();\r\n\r\n const form = useForm({\r\n defaultValues: {\r\n email: selectedItem?.email\r\n },\r\n mode: 'all',\r\n resolver: yupResolver(ReservationETicketFormSchema),\r\n });\r\n\r\n useEffect(() => {\r\n form.reset({\r\n email: selectedItem?.email\r\n });\r\n }, [selectedItem]);\r\n\r\n const computeTravelerStatus = (status: string[]) => {\r\n if (!status || status.length === 0) {\r\n return undefined;\r\n }\r\n\r\n if (!status.some((t) => t !== CVFlightStatus.Confirmed)) {\r\n return 'C';\r\n }\r\n if (!status.some((t) => t !== CVFlightStatus.Ticketed)) {\r\n return 'T';\r\n }\r\n\r\n return 'WL';\r\n };\r\n\r\n const gridData = flightPassengerSummaries.reduce(\r\n (acc: eticketRow[], curr: ICVFlightPassengerSummary) => {\r\n const index = acc.findIndex(\r\n (r) =>\r\n r.reservationId === curr.reservationId &&\r\n r.passengerId === curr.memberId\r\n );\r\n if (index > -1) {\r\n return produce(acc, (draft) => {\r\n draft.splice(index, 1, {\r\n reservationId: curr.reservationId,\r\n email: curr.emailTicketDelivery,\r\n status: computeTravelerStatus([\r\n ...draft[index].statusList,\r\n ...curr.legStatus,\r\n ]),\r\n passenger: `${curr.lastName} ${curr.firstName}`,\r\n passengerId: curr.memberId,\r\n statusList: [...draft[index].statusList, ...curr.legStatus],\r\n reservationOwner: curr.reservationOwner,\r\n });\r\n });\r\n } else {\r\n return [\r\n ...acc,\r\n {\r\n reservationId: curr.reservationId,\r\n email: curr.emailTicketDelivery,\r\n status: computeTravelerStatus(curr.legStatus),\r\n passenger: `${curr.lastName} ${curr.firstName}`,\r\n passengerId: curr.memberId,\r\n statusList: curr.legStatus,\r\n reservationOwner: curr.reservationOwner,\r\n },\r\n ];\r\n }\r\n },\r\n []\r\n );\r\n\r\n const alternateColorMapping = gridData.reduce(\r\n (acc: colorMap[], curr: eticketRow) => {\r\n return acc.some((el) => el.reservationId === curr.reservationId)\r\n ? acc\r\n : [\r\n ...acc,\r\n {\r\n reservationId: curr.reservationId,\r\n alternate:\r\n acc.length === 0 ? false : !acc[acc.length - 1].alternate,\r\n },\r\n ];\r\n },\r\n []\r\n );\r\n\r\n const handleTicketSubmit = (form: IReservationETicketForm) => {\r\n if (selectedItem) {\r\n ReservationService.sendETicketForMember(\r\n {\r\n reservationId: selectedItem.reservationId,\r\n email: form.email,\r\n },\r\n selectedItem.passengerId\r\n )\r\n .then((result) => {\r\n if (result) {\r\n hideETicketDialog();\r\n\r\n addMessage('The eTicket is sent successfully', MessageType.Success);\r\n hideETicketDialog();\r\n } else {\r\n addMessage('Sending eTicket failed', MessageType.Error);\r\n }\r\n })\r\n .catch((error) => {\r\n hideETicketDialog();\r\n addMessage(error.message);\r\n });\r\n } else {\r\n addMessage('Someting went wrong, please try again', MessageType.Error);\r\n hideETicketDialog();\r\n }\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Res. N.',\r\n accessor: 'reservationId',\r\n width: '12%',\r\n Cell: ({row}: any) => {\r\n const {redirect, allowed} = usReservationRedirect(\r\n {...row.original},\r\n true,\r\n plannerMembers,\r\n ReservationRedirectOrigin.Tickets\r\n );\r\n return (\r\n <>\r\n {allowed ? (\r\n \r\n \r\n \r\n {row.original.reservationId}\r\n \r\n \r\n \r\n ) : (\r\n \r\n {row.original.reservationId}\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'Status',\r\n accessor: 'status',\r\n width: '8%',\r\n },\r\n {\r\n Header: 'Passenger Name',\r\n width: '25%',\r\n accessor: 'passenger',\r\n },\r\n {\r\n Header: 'Email',\r\n accessor: 'email',\r\n width: '25%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({row}: any) => (\r\n <>\r\n \r\n {\r\n setSelectedItem({...row.original});\r\n showETicketDialog();\r\n }}\r\n >\r\n Send eTicket\r\n \r\n \r\n \r\n ),\r\n width: '25%',\r\n },\r\n ],\r\n []\r\n );\r\n\r\n return (\r\n <>\r\n {gridData.length > 0 ? (\r\n {\r\n if (\r\n alternateColorMapping.find(\r\n (x) => +x.reservationId === +row.original.reservationId\r\n )?.alternate\r\n ) {\r\n return {\r\n className: `${styles.alternateRow}`,\r\n };\r\n } else {\r\n return {\r\n className: `${styles.row}`,\r\n };\r\n }\r\n }}\r\n >\r\n ) : (\r\n \r\n )}\r\n\r\n {selectedItem && \r\n \r\n Send eTicket by email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default PrintETicketGrid;\r\n","import moment, {Moment} from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport {Box, Grid, LinearProgress} from '@material-ui/core';\r\nimport {MaterialUiPickersDate} from '@material-ui/pickers/typings/date';\r\n\r\nimport DatePicker from '../../../components/commons/DatePicker/DatePicker';\r\nimport FormControl from '../../../components/commons/FormControl/FormControl';\r\nimport NoResult from '../../../components/commons/NoResult/NoResult';\r\nimport SearchButton from '../../../components/commons/SearchButton/SearchButton';\r\nimport PrintETicketGrid from '../../../components/DailyTasks/PrintETicket/PrintETicketGrid';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IMember from '../../../models/IMember';\r\nimport {ICVFlightPassengerSummary} from '../../../models/Reservation/ICVFlightPassengerSummary';\r\nimport ReservationService from '../../../services/ReservationService';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\n\r\ntype PrintETicketData = {\r\n summaries: ICVFlightPassengerSummary[];\r\n plannerMembers: IMember[];\r\n};\r\n\r\nconst PrintETicketPage: React.FC = () => {\r\n const [hasSearch, setHasSearch] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [data, setData] = useState({\r\n summaries: [],\r\n plannerMembers: [],\r\n });\r\n const breakpoint = useBreakpoint();\r\n const [departureDate, setDepartureDate] = useState(null);\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n ReservationService.getPlannerMembers()\r\n .then((members) => setData({ ...data, plannerMembers: members }))\r\n .catch((error) => addMessage(error.message));\r\n }, []);\r\n\r\n const handleSearch = () => {\r\n setHasSearch(true);\r\n if (departureDate && departureDate != null) {\r\n setIsLoading(true);\r\n ReservationService.getCVFlightPassengerSummariesForDepartureDate(\r\n departureDate.toDate()\r\n )\r\n .then((summaries) => {\r\n setIsLoading(false);\r\n setData({ ...data, summaries: summaries });\r\n })\r\n .catch((error) => {\r\n setIsLoading(false);\r\n addMessage(error.message);\r\n });\r\n }\r\n };\r\n\r\n const handleDepartureDateChange = (e: MaterialUiPickersDate) => {\r\n setDepartureDate(\r\n e ? (e.isValid() ? moment(e.toDate()).startOf('day') : null) : null\r\n );\r\n setHasSearch(false);\r\n setData({ summaries: [], plannerMembers: [] });\r\n };\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' && departureDate && departureDate.isValid()) {\r\n handleSearch();\r\n }\r\n };\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Search eTickets\r\n \r\n \r\n \r\n \r\n {isLoading || !data.plannerMembers ? (\r\n \r\n ) : data && data.summaries.length == 0 ? (\r\n hasSearch ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )\r\n ) : (\r\n <>\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PrintETicketPage;\r\n","import React from 'react';\r\n\r\nimport {Box, ButtonBase, LinearProgress, Link} from '@material-ui/core';\r\n\r\nimport {useWaitListContext} from '../../context/WaitList/WaitListProvider';\r\nimport useComment from '../../hooks/useComment';\r\nimport useReservationRedirect, {ReservationRedirectOrigin,} from '../../hooks/useReservationRedirect';\r\nimport DateTime from '../commons/DateTime/DateTime';\r\nimport Table from '../commons/Table/Table';\r\nimport styles from './WaitListGrid.module.scss';\r\n\r\nexport interface IWaitListGridProps {}\r\n\r\nconst WaitListGrid: React.FC = () => {\r\n const {\r\n state: { filteredItems, plannerMembers },\r\n updateComment,\r\n } = useWaitListContext();\r\n\r\n const data = filteredItems.map((item) => ({\r\n ...item,\r\n travelerFullName: `${item.firstName} ${item.lastName}`,\r\n leg: `${item.origin} - ${item.destination}`,\r\n }));\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Flight N.',\r\n width: '10%',\r\n accessor: 'flightDesc',\r\n },\r\n {\r\n Header: 'Flight Date',\r\n accessor: 'flightDate',\r\n width: '12%',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Res. N.',\r\n accessor: 'reservationId',\r\n width: '10%',\r\n Cell: ({ row }: any) => {\r\n const { redirect, allowed } = useReservationRedirect(\r\n { ...row.original },\r\n true,\r\n plannerMembers,\r\n ReservationRedirectOrigin.WaitList\r\n );\r\n return (\r\n <>\r\n {allowed ? (\r\n \r\n \r\n \r\n {row.original.reservationId}\r\n \r\n \r\n \r\n ) : (\r\n \r\n {row.original.reservationId}\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'Leg',\r\n width: '12%',\r\n accessor: 'leg',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.origin} - {row.original.destination}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Traveler',\r\n width: '15%',\r\n accessor: 'travelerFullName',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.firstName} {row.original.lastName}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Phone',\r\n width: '15%',\r\n accessor: 'phone',\r\n Cell: ({ row }: any) => (\r\n {row.original.phone}\r\n ),\r\n },\r\n {\r\n Header: 'Waitlist Date',\r\n width: '15%',\r\n accessor: 'waitlistDate',\r\n Cell: ({ row }: any) =>\r\n row.original.waitlistDate ? (\r\n \r\n ) : (\r\n <>\r\n ),\r\n },\r\n {\r\n Header: 'Priority',\r\n width: '7%',\r\n accessor: 'priority',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n width: '6%',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => {\r\n const { CommentIconWithDialog } = useComment({\r\n title: 'Comment',\r\n value: row.original.comment,\r\n badgeClassName: styles.iconButton,\r\n numericalBadge: true,\r\n size: 25,\r\n onSave: (comment: string) => {\r\n updateComment({ ...row.original }, comment);\r\n },\r\n });\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'reservationOwner',\r\n accessor: 'reservationOwner',\r\n width: '0%',\r\n disableSortBy: true,\r\n },\r\n ],\r\n [plannerMembers]\r\n );\r\n\r\n return (\r\n <>\r\n {data && data.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default WaitListGrid;\r\n","import moment, {Moment} from 'moment';\r\nimport React, {useState} from 'react';\r\n\r\nimport {TextField, Typography} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport {MaterialUiPickersDate} from '@material-ui/pickers/typings/date';\r\n\r\nimport Autocomplete from '../../../components/commons/AutoComplete/AutoComplete';\r\nimport DatePicker from '../../../components/commons/DatePicker/DatePicker';\r\nimport FormControl from '../../../components/commons/FormControl/FormControl';\r\nimport NoResult from '../../../components/commons/NoResult/NoResult';\r\nimport SearchButton from '../../../components/commons/SearchButton/SearchButton';\r\nimport TextFieldCommon from '../../../components/commons/TextField/TextField';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport WaitListGrid from '../../../components/WaitList/WaitListGrid';\r\nimport {useWaitListContext} from '../../../context/WaitList/WaitListProvider';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport styles from './WaitingListPage.module.scss';\r\n\r\ntype SearchCriterion = {\r\n flightDate: Moment | null;\r\n flightDesc: string;\r\n};\r\n\r\nconst WaitingListPage: React.FC = () => {\r\n const {\r\n state: {\r\n isLoading,\r\n waitListItems,\r\n filteredItems,\r\n employees,\r\n selectedEmployee,\r\n },\r\n fetchWaitList,\r\n selectEmployee,\r\n } = useWaitListContext();\r\n const breakpoint = useBreakpoint();\r\n const [searchCriterion, setSearchCriterion] = useState({\r\n flightDate: null,\r\n flightDesc: '',\r\n });\r\n\r\n const handleSearch = () => {\r\n fetchWaitList({ ...searchCriterion });\r\n };\r\n\r\n const validSearchCriterion =\r\n searchCriterion.flightDate &&\r\n searchCriterion.flightDate !== null &&\r\n searchCriterion.flightDate.isValid() &&\r\n searchCriterion.flightDesc &&\r\n searchCriterion.flightDesc!.trim().length > 0;\r\n\r\n const validDate = (e: MaterialUiPickersDate): Moment | null =>\r\n e ? (e.isValid() ? moment(e.toDate()).startOf('day') : null) : null;\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' && validSearchCriterion) {\r\n handleSearch();\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n The reservations on the waiting list for the next 50 days\r\n \r\n \r\n \r\n \r\n You can search by flight number and date. You can also filters by\r\n reservation owner.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setSearchCriterion({\r\n ...searchCriterion,\r\n flightDesc: e.target.value,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n setSearchCriterion({\r\n ...searchCriterion,\r\n flightDate: validDate(e),\r\n });\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n Search wait list\r\n \r\n \r\n {waitListItems && waitListItems.length > 0 && (\r\n \r\n \r\n option.label}\r\n renderOption={(option) => option.label}\r\n valueProp=\"value\"\r\n margin=\"normal\"\r\n renderInput={(params) => (\r\n \r\n )}\r\n options={[{ label: 'All', value: -1 }, ...employees]}\r\n onChange={(event, value) => {\r\n selectEmployee(+value === -1 ? undefined : +value);\r\n }}\r\n fullWidth\r\n value={\r\n employees.find((x) => x.value === selectedEmployee) ?? {\r\n label: 'All',\r\n value: -1,\r\n }\r\n }\r\n />\r\n \r\n \r\n )}\r\n \r\n \r\n {isLoading && }\r\n {!isLoading && filteredItems.length > 0 ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default WaitingListPage;\r\n","import React from 'react';\r\n\r\nimport {Badge, ButtonBase, Link} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\n\r\nimport {ReactComponent as AttachmentIcon} from '../../../assets/icons/attachedFileLighter.svg';\r\nimport {useTaskListContext} from '../../../context/TaskList/TaskListProvider';\r\nimport {useUserContext} from '../../../context/User/UserContext';\r\nimport useComment from '../../../hooks/useComment';\r\nimport useReservationRedirect, {ReservationRedirectOrigin,} from '../../../hooks/useReservationRedirect';\r\nimport ITaskExtended from '../../../models/DailyTasks/TaskList/ITaskExtended';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport NoResult from '../../commons/NoResult';\r\nimport Table from '../../commons/Table/Table';\r\nimport TaskGridDrawer from './TaskGridDrawer';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport styles from './TaskGrid.module.scss';\r\n\r\ntype colorMap = { reservationId: number; alternate: boolean };\r\n\r\nconst RelatedTasksGrid: React.FC = () => {\r\n const { permissions } = useUserContext();\r\n const {\r\n state: {\r\n agents,\r\n travelers,\r\n relatedTasks,\r\n fetchingRelatedTasks,\r\n selectedTask,\r\n plannerMembers,\r\n },\r\n selectTask,\r\n updateTask,\r\n } = useTaskListContext();\r\n\r\n const alternateColorMapping = relatedTasks.reduce(\r\n (acc: colorMap[], curr: ITaskExtended) => {\r\n return acc.some((el) => el.reservationId === curr.reservationId)\r\n ? acc\r\n : [\r\n ...acc,\r\n {\r\n reservationId: curr.reservationId,\r\n alternate:\r\n acc.length === 0 ? false : !acc[acc.length - 1].alternate,\r\n },\r\n ];\r\n },\r\n []\r\n );\r\n\r\n const resolveTraveler = (memberId: number) => {\r\n const entry = travelers.find((t) => +t.memberId === +memberId);\r\n return entry ? `${entry.firstName} ${entry.lastName}` : '';\r\n };\r\n\r\n const resolveAgent = (memberId: number) => {\r\n const entry = agents.find((t) => +t.memberId === +memberId);\r\n return entry\r\n ? `${entry.firstName} ${entry.lastName}`\r\n : memberId === null\r\n ? ''\r\n : `Unauthorized Agent`;\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'ID',\r\n accessor: 'taskId',\r\n },\r\n {\r\n Header: 'Res. N.',\r\n accessor: 'reservationId',\r\n width: '7%',\r\n Cell: ({ row }: any) => {\r\n const { redirect, allowed } = useReservationRedirect(\r\n {\r\n serviceId: row.original.service.id,\r\n taskId: row.original.taskId,\r\n reservationOwner: row.original.reservationOwner,\r\n reservationId: row.original.reservationId,\r\n type: row.original.type,\r\n },\r\n true,\r\n plannerMembers,\r\n ReservationRedirectOrigin.RelatedTasks\r\n );\r\n return (\r\n <>\r\n {allowed ? (\r\n \r\n \r\n \r\n {row.original.reservationId}\r\n \r\n \r\n \r\n ) : (\r\n \r\n {row.original.reservationId}\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'Creation Date',\r\n accessor: 'createdOn',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n width: '12%',\r\n },\r\n {\r\n Header: 'Task',\r\n width: '10%',\r\n accessor: 'type',\r\n Cell: ({ row }: any) => {\r\n const { redirect, allowed } = useReservationRedirect(\r\n {\r\n serviceId: row.original.service.id,\r\n taskId: row.original.taskId,\r\n reservationOwner: row.original.reservationOwner,\r\n reservationId: row.original.reservationId,\r\n type: row.original.type,\r\n },\r\n false,\r\n plannerMembers,\r\n ReservationRedirectOrigin.TaskList\r\n );\r\n const type =\r\n row.original.type === 'Commercial'\r\n ? 'Flight/train'\r\n : row.original.type;\r\n return (\r\n <>\r\n {allowed ? (\r\n \r\n \r\n {type}\r\n \r\n \r\n ) : (\r\n {type}\r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'Departure Date',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n width: '12%',\r\n accessor: 'departureDate',\r\n },\r\n {\r\n Header: 'Traveler',\r\n width: '14%',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.service.travelerFullName}\r\n \r\n ),\r\n accessor: 'service.travelerFullName',\r\n },\r\n {\r\n Header: 'Status',\r\n accessor: 'status',\r\n width: '12%',\r\n Cell: ({ row }: any) => (\r\n {row.original.status}\r\n ),\r\n },\r\n {\r\n Header: 'Assignation',\r\n width: '12%',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.agentFullName}\r\n \r\n ),\r\n accessor: 'agentFullName',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'attachments',\r\n width: '6%',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) =>\r\n row.original.attachments?.length > 0 ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n ),\r\n },\r\n {\r\n Header: 'T',\r\n accessor: 'travelerComment',\r\n width: '6%',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => {\r\n const { CommentIconWithDialog } = useComment({\r\n title: \"Traveler's comment\",\r\n value: row.original.service.travelerComment,\r\n badgeClassName: styles.iconButton,\r\n numericalBadge: true,\r\n size: 25,\r\n onSave: (comment: string) => {\r\n updateTask({\r\n ...row.original,\r\n service: { ...row.original.service, travelerComment: comment },\r\n });\r\n },\r\n });\r\n return ;\r\n },\r\n },\r\n ],\r\n [resolveAgent, resolveTraveler, selectTask, updateTask]\r\n );\r\n return (\r\n <>\r\n {relatedTasks &&\r\n travelers &&\r\n plannerMembers &&\r\n relatedTasks?.length > 0 ? (\r\n <>\r\n {\r\n if (\r\n alternateColorMapping?.find(\r\n (x) => +x.reservationId === +row.original.reservationId\r\n )?.alternate\r\n ) {\r\n return {\r\n className: `${styles.alternateRow}`,\r\n };\r\n } else {\r\n return {\r\n className: `${styles.row}`,\r\n };\r\n }\r\n }}\r\n loading={fetchingRelatedTasks}\r\n >\r\n \r\n \r\n ) : (\r\n relatedTasks?.length === 0 && (\r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default RelatedTasksGrid;\r\n","import React, {useCallback, useEffect, useState} from 'react';\r\n\r\nimport {Box, Grid, LinearProgress, TextField, Typography,} from '@material-ui/core';\r\n\r\nimport Autocomplete from '../../../components/commons/AutoComplete/AutoComplete';\r\nimport Select from '../../../components/commons/Select/Select';\r\nimport RelatedTasksGrid from '../../../components/DailyTasks/TaskList/RelatedTasksGrid';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport {useTaskListContext} from '../../../context/TaskList/TaskListProvider';\r\nimport {useUserContext} from '../../../context/User/UserContext';\r\nimport {ITaskFilter} from '../../../models/DailyTasks/TaskList/ITaskExtended';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\nimport styles from '../taskList/TaskListPage.module.scss';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\n\r\nconst RelatedTasksPage: React.FC = () => {\r\n const {\r\n state: {\r\n agents,\r\n tasksTravelers,\r\n fetchingContextData,\r\n filterableStatus,\r\n employee,\r\n },\r\n fetchRelatedTasks,\r\n } = useTaskListContext();\r\n const { permissions } = useUserContext();\r\n const outStationed =\r\n permissions.includes(\r\n PermissionsList.eTravelDailyTasksTaskListOutstationAssignation\r\n ) &&\r\n !permissions.includes(\r\n PermissionsList.eTravelDailyTasksTaskListAllAssignation\r\n );\r\n\r\n const [filter, setFilter] = useState({\r\n agentId: 0,\r\n station: undefined,\r\n type: undefined,\r\n travelerId: undefined,\r\n });\r\n\r\n const fetchBusinesses = useCallback(() => {\r\n if (employee) fetchRelatedTasks(filter);\r\n }, [filter, employee]);\r\n\r\n useEffect(() => {\r\n fetchBusinesses();\r\n }, [filter]);\r\n\r\n useEffect(() => {\r\n if (\r\n employee &&\r\n permissions.includes(\r\n PermissionsList.eTravelDailyTasksTaskListAllAssignation\r\n )\r\n ) {\r\n setFilter({ ...filter, agentId: 0 });\r\n } else if (employee && outStationed) {\r\n setFilter({\r\n ...filter,\r\n agentId: 0,\r\n station: employee?.user?.mailing1 ?? undefined,\r\n });\r\n } else {\r\n setFilter({ ...filter, agentId: undefined });\r\n }\r\n }, [employee, permissions]);\r\n\r\n const availableStations = Array.from(\r\n new Set(agents.map((agent) => agent.station))\r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Manage member reservations services. You can filter data in the\r\n table below with these filters\r\n \r\n \r\n \r\n Filter by\r\n \r\n {fetchingContextData ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n ({\r\n label: `${agent.firstName} ${agent.lastName}`,\r\n value: agent.memberId,\r\n })),\r\n ]}\r\n value={filter.agentId ?? -1}\r\n onChange={(event) => {\r\n setFilter({\r\n ...filter,\r\n agentId:\r\n event.target.value === -1\r\n ? undefined\r\n : (event.target.value as number),\r\n });\r\n }}\r\n />\r\n \r\n \r\n option.label}\r\n renderOption={(option) => option.label}\r\n valueProp=\"value\"\r\n margin=\"normal\"\r\n renderInput={(params) => (\r\n \r\n )}\r\n options={[\r\n { label: 'All', value: -1 },\r\n ...tasksTravelers.map((traveler) => ({\r\n label: `${traveler.firstName} ${traveler.lastName}`,\r\n value: traveler.memberId,\r\n })),\r\n ]}\r\n onChange={(event, value) => {\r\n setFilter({\r\n ...filter,\r\n travelerId:\r\n value === -1 ? undefined : (value as number),\r\n });\r\n }}\r\n fullWidth\r\n defaultValue={{ label: 'All', value: -1 }}\r\n />\r\n \r\n \r\n {\r\n setFilter({\r\n ...filter,\r\n type:\r\n event.target.value === 'ALL'\r\n ? undefined\r\n : (event.target.value as string),\r\n });\r\n }}\r\n />\r\n \r\n \r\n ({\r\n label: status.name,\r\n value: status.name,\r\n })),\r\n ]}\r\n value={filter.status ?? 'ALL'}\r\n onChange={(event) => {\r\n setFilter({\r\n ...filter,\r\n status:\r\n event.target.value === 'ALL'\r\n ? undefined\r\n : (event.target.value as string),\r\n });\r\n }}\r\n />\r\n \r\n {!outStationed && (\r\n \r\n ({\r\n label: station,\r\n value: station,\r\n })),\r\n ]}\r\n value={filter.station ?? 'ALL'}\r\n onChange={(event) => {\r\n setFilter({\r\n ...filter,\r\n station:\r\n event.target.value === 'ALL'\r\n ? undefined\r\n : (event.target.value as string),\r\n });\r\n }}\r\n />\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default RelatedTasksPage;\r\n","import moment, {Moment} from 'moment';\r\nimport React, {useState} from 'react';\r\nimport {useParams} from 'react-router-dom';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport {MaterialUiPickersDate} from '@material-ui/pickers/typings/date';\r\n\r\nimport DatePicker from '../../../../components/commons/DatePicker/DatePicker';\r\nimport FormControl from '../../../../components/commons/FormControl/FormControl';\r\nimport NoResult from '../../../../components/commons/NoResult/NoResult';\r\nimport SearchButton from '../../../../components/commons/SearchButton/SearchButton';\r\nimport Tabs from '../../../../components/commons/Tabs/Tabs';\r\nimport TextField from '../../../../components/commons/TextField/TextField';\r\nimport ToggleButtons from '../../../../components/commons/ToggleButtons/ToggleButtons';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport {usePassengerListContext} from '../../../../context/PassengerListProvider/PassengerListProvider';\r\nimport useBreakpoint from '../../../../hooks/useBreakpoint';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\n\r\nconst PassengerListLightPage: React.FC = () => {\r\n const breakpoint = useBreakpoint();\r\n var { fDesc, fDate } = useParams();\r\n const [flightDesc, setFlightDesc] = useState(fDesc ?? '');\r\n const [flightDate, setFlightDate] = useState(\r\n fDate ? moment(fDate, 'YYYY-MM-DD') ?? null : null\r\n );\r\n const [status, setStatus] = useState<'Confirmed' | 'Wait list'>('Confirmed');\r\n\r\n const { state, fetchPassengerListLight } = usePassengerListContext();\r\n\r\n const handleFlightDescChange = (e: React.ChangeEvent) => {\r\n setFlightDesc(e.target.value);\r\n };\r\n\r\n const handleFlightDateChange = (e: MaterialUiPickersDate) => {\r\n setFlightDate(e ? (e.isValid() ? moment(e.toDate()) : null) : null);\r\n };\r\n\r\n const handleStatusChange = (event: any, newStatus: any) => {\r\n if (newStatus) {\r\n setStatus(newStatus);\r\n if (flightDesc.trim() !== '' && flightDate && flightDate.isValid()) {\r\n fetchPassengerListLight({ flightDesc, flightDate, status: newStatus });\r\n }\r\n }\r\n };\r\n\r\n const handleSearchPassenger = () => {\r\n fetchPassengerListLight({ flightDesc, flightDate, status });\r\n };\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent) => {\r\n if (\r\n e.key === 'Enter' &&\r\n flightDesc.trim() !== '' &&\r\n flightDate &&\r\n flightDate.isValid()\r\n ) {\r\n handleSearchPassenger();\r\n }\r\n };\r\n\r\n const missingCarrier =\r\n flightDesc.length > 0 && !flightDesc.toUpperCase().match(/^\\w{2}\\d{4}/gm);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Search passenger list\r\n \r\n \r\n \r\n \r\n {state.loading && }\r\n {!state.loading && (\r\n <>\r\n {state.dataFetched && (\r\n <>\r\n {state.hasResult ? (\r\n ({\r\n label: legInfo.leg,\r\n content: (\r\n <>\r\n \r\n \r\n {legInfo.tailNumber}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Total PAX:\r\n \r\n \r\n {' '}\r\n {legInfo.passengerCount}{' '}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Total Crew:\r\n \r\n \r\n {' '}\r\n {legInfo.crewCount}{' '}\r\n \r\n \r\n \r\n \r\n {legInfo.crewCount === 0 &&\r\n legInfo.passengerCount === 0 &&\r\n state.filters.status === 'Confirmed' && (\r\n \r\n \r\n The crew is not yet defined.\r\n \r\n \r\n )}\r\n {legInfo.crewCount === 0 &&\r\n legInfo.passengerCount === 0 &&\r\n state.filters.status === 'Wait list' && (\r\n \r\n \r\n No passenger found.\r\n \r\n \r\n )}\r\n \r\n ),\r\n badge: `${legInfo.passengerCount + legInfo.crewCount}`,\r\n })),\r\n ]}\r\n />\r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PassengerListLightPage;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useFormContext} from 'react-hook-form';\r\n\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nimport IRelationType from '../../../models/BlockFlights/IRelationType';\r\nimport Checkbox from '../../commons/Checkbox/Checkbox';\r\n\r\ninterface IBlockFlightRelationsCardProps {\r\n relationType: IRelationType;\r\n onValidateForm: () => void;\r\n defaultValues: any;\r\n readOnly?: boolean;\r\n}\r\n\r\nconst BlockFlightRelationsCard: React.FC = ({\r\n relationType,\r\n onValidateForm,\r\n defaultValues,\r\n readOnly = false,\r\n}) => {\r\n const { getValues, register, setValue } = useFormContext();\r\n const [checkAllFrom, setCheckAllFrom] = useState(false);\r\n const [checkAllTo, setCheckAllTo] = useState(false);\r\n const [checkAllTransit, setCheckAllTransit] = useState(false);\r\n const [isTriggeredByCheckAllFrom, setIsTriggeredByCheckAllFrom] =\r\n useState(false);\r\n const [isTriggeredByCheckAllTo, setIsTriggeredByCheckAllTo] = useState(false);\r\n const [isTriggeredByCheckAllTransit, setIsTriggeredByCheckAllTransit] =\r\n useState(false);\r\n const [refreshKey, setRefreshKey] = useState('');\r\n const [firstRender, setFirstRender] = useState(true);\r\n\r\n useEffect(() => {\r\n if (firstRender) {\r\n if (defaultValues) {\r\n defaultValues['from'].length === relationType.tripTypes.length\r\n ? handleOnCheckAll(true, 'from')\r\n : setValue(\r\n `relations.${relationType.name}.from`,\r\n defaultValues['from']\r\n );\r\n defaultValues['to'].length === relationType.tripTypes.length\r\n ? handleOnCheckAll(true, 'to')\r\n : setValue(`relations.${relationType.name}.to`, defaultValues['to']);\r\n defaultValues['transit'].length === relationType.tripTypes.length\r\n ? handleOnCheckAll(true, 'transit')\r\n : setValue(\r\n `relations.${relationType.name}.transit`,\r\n defaultValues['transit']\r\n );\r\n }\r\n setFirstRender(false);\r\n }\r\n }, [defaultValues]);\r\n\r\n useEffect(() => {\r\n if (isTriggeredByCheckAllFrom) {\r\n if (!checkAllFrom) {\r\n setValue(`relations.${relationType.name}.from`, []);\r\n }\r\n\r\n setRefreshKey(`${checkAllFrom}_from`);\r\n setIsTriggeredByCheckAllFrom(false);\r\n }\r\n onValidateForm();\r\n }, [checkAllFrom]);\r\n\r\n useEffect(() => {\r\n if (isTriggeredByCheckAllTo) {\r\n if (!checkAllTo) {\r\n setValue(`relations.${relationType.name}.to`, []);\r\n }\r\n\r\n setRefreshKey(`${checkAllTo}_to`);\r\n setIsTriggeredByCheckAllTo(false);\r\n }\r\n onValidateForm();\r\n }, [checkAllTo]);\r\n\r\n useEffect(() => {\r\n if (isTriggeredByCheckAllTransit) {\r\n if (!checkAllTransit) {\r\n setValue(`relations.${relationType.name}.transit`, []);\r\n }\r\n\r\n setRefreshKey(`${checkAllTransit}_transit`);\r\n setIsTriggeredByCheckAllTransit(false);\r\n }\r\n onValidateForm();\r\n }, [checkAllTransit]);\r\n\r\n const isChecked = (tripTypeId: number, columnName: string) => {\r\n switch (columnName) {\r\n case 'from':\r\n if (checkAllFrom) return true;\r\n break;\r\n\r\n case 'to':\r\n if (checkAllTo) return true;\r\n break;\r\n\r\n case 'transit':\r\n if (checkAllTransit) return true;\r\n break;\r\n }\r\n\r\n let values = getValues(\r\n `relations.${relationType.name}.${columnName}`\r\n );\r\n return values ? values.includes(`${tripTypeId}`) : false;\r\n };\r\n\r\n const handleOnCheckAll = async (checked: boolean, columnName: string) => {\r\n switch (columnName) {\r\n case 'from':\r\n setCheckAllFrom(checked);\r\n setIsTriggeredByCheckAllFrom(true);\r\n break;\r\n\r\n case 'to':\r\n setCheckAllTo(checked);\r\n setIsTriggeredByCheckAllTo(true);\r\n break;\r\n\r\n case 'transit':\r\n setCheckAllTransit(checked);\r\n setIsTriggeredByCheckAllTransit(true);\r\n break;\r\n }\r\n };\r\n\r\n const handleOnchageFrom = async (tripId: number, checked: boolean) => {\r\n setCheckAllFrom(false);\r\n setRefreshKey(`${tripId}_${checked}_from`);\r\n onValidateForm();\r\n };\r\n\r\n const handleOnchageTo = async (tripId: number, checked: boolean) => {\r\n setCheckAllTo(false);\r\n setRefreshKey(`${tripId}_${checked}_to`);\r\n onValidateForm();\r\n };\r\n\r\n const handleOnchageTransit = async (tripId: number, checked: boolean) => {\r\n setCheckAllTransit(false);\r\n setRefreshKey(`${tripId}_${checked}_transit`);\r\n onValidateForm();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n }>\r\n {relationType.name}\r\n \r\n \r\n \r\n \r\n \r\n Travel Type\r\n From\r\n To\r\n Transit\r\n \r\n \r\n \r\n \r\n All\r\n \r\n handleOnCheckAll(checked, 'from')}\r\n />\r\n \r\n \r\n handleOnCheckAll(checked, 'to')}\r\n />\r\n \r\n \r\n \r\n handleOnCheckAll(checked, 'transit')\r\n }\r\n />\r\n \r\n \r\n {relationType.tripTypes.map((y) => {\r\n return (\r\n \r\n {y.name}\r\n \r\n \r\n handleOnchageFrom(y.tripTypeId, checked)\r\n }\r\n />\r\n \r\n \r\n \r\n handleOnchageTo(y.tripTypeId, checked)\r\n }\r\n />\r\n \r\n \r\n \r\n handleOnchageTransit(y.tripTypeId, checked)\r\n }\r\n />\r\n \r\n \r\n );\r\n })}\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightRelationsCard;\r\n","import moment, {Moment} from 'moment';\r\nimport React, {useEffect, useMemo, useState} from 'react';\r\nimport {FormProvider, useForm, useWatch} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {useMediaQuery, useTheme} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {useBlockFlightContext} from '../../../context/BlockFlight/BlockFlightProvider';\r\nimport useClientAppContext from '../../../hooks/useClientApp';\r\nimport IBlockFlightAirports from '../../../models/BlockFlights/IBlockFlightAirports';\r\nimport IOption from '../../../models/IOption';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport formatString from '../../../utils/Strings';\r\nimport Checkbox from '../../commons/Checkbox/Checkbox';\r\nimport DatePicker from '../../commons/DatePicker/DatePicker';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport Searchcomplete from '../../commons/Searchcomplete/Searchcomplete';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport ToggleButtons from '../../commons/ToggleButtons/ToggleButtons';\r\nimport BlockFlightRelationsCard from './BlockFlightRelationsCard';\r\n\r\ninterface IBlockFlightAirportsProps {\r\n defaultValue: IBlockFlightAirportsForm;\r\n isUpdate?: boolean;\r\n readOnly?: boolean;\r\n handleSubmit: (blockFlight: IBlockFlightAirports) => void;\r\n}\r\n\r\nexport interface IBlockFlightAirportsForm {\r\n blockedFlightId: number;\r\n country?: IOption;\r\n fromDate: Moment | null;\r\n toDate: Moment | null;\r\n reason: IOption | null;\r\n comment?: string;\r\n airports?: string[] | string;\r\n relations?: any;\r\n}\r\n\r\nconst BlockFlightAirports: React.FC = ({\r\n defaultValue,\r\n isUpdate,\r\n readOnly = false,\r\n handleSubmit,\r\n}) => {\r\n const { countries, airportsTimeZones } = useClientAppContext();\r\n const { relationTypes, reasons } = useBlockFlightContext();\r\n const [allAirports, setAllAirports] = useState(\r\n defaultValue.airports\r\n ? defaultValue.airports?.length > 0\r\n ? false\r\n : true\r\n : undefined\r\n );\r\n const [isDisabled, setIsDisabled] = useState(true);\r\n const [refreshValidation, setRefreshValidation] = useState(false);\r\n const [isReadOnlyLocal, setIsReadOnlyLocal] = useState(readOnly);\r\n const [isUpdateLocal, setIsUpdateLocal] = useState(isUpdate);\r\n\r\n const theme = useTheme();\r\n const isSmartphone = useMediaQuery(theme.breakpoints.down('sm'));\r\n\r\n useEffect(() => {\r\n if (isUpdate) {\r\n // Trigger the validation of the form during the update to display any errors\r\n form.trigger();\r\n }\r\n setIsUpdateLocal(isUpdate);\r\n }, [isUpdate]);\r\n\r\n const optionSchema = yup.object().shape({\r\n value: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n });\r\n\r\n const blockFlightAirportsFormSchema = useMemo(() => {\r\n var schema: any = {};\r\n if (isUpdateLocal && defaultValue.fromDate) {\r\n let minDate = moment(defaultValue.fromDate).isSameOrBefore(\r\n new Date(),\r\n 'day'\r\n )\r\n ? defaultValue.fromDate\r\n : moment().startOf('day');\r\n schema = {\r\n country: yup\r\n .object()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n fromDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .min(\r\n minDate.toDate(),\r\n formatString(\r\n Constants.validation.minDateAnotherField,\r\n minDate.format('DD-MM-YYYY')\r\n )\r\n ),\r\n toDate: yup\r\n .date()\r\n .nullable()\r\n .typeError('')\r\n .when('fromDate', (fromDate: Date | null, yup: yup.DateSchema) =>\r\n fromDate\r\n ? yup.min(\r\n fromDate,\r\n formatString(Constants.validation.minDateAnotherField, 'From')\r\n )\r\n : yup\r\n ),\r\n reason: optionSchema.typeError(Constants.validation.required),\r\n };\r\n } else {\r\n schema = {\r\n country: yup\r\n .object()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n fromDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .min(\r\n moment(new Date()).startOf('d')?.toDate(),\r\n Constants.validation.minDateToday\r\n ),\r\n toDate: yup\r\n .date()\r\n .nullable()\r\n .typeError('')\r\n .when('fromDate', (fromDate: Date | null, yup: yup.DateSchema) =>\r\n fromDate\r\n ? yup.min(\r\n fromDate,\r\n formatString(Constants.validation.minDateAnotherField, 'From')\r\n )\r\n : yup\r\n ),\r\n reason: optionSchema.typeError(Constants.validation.required),\r\n };\r\n }\r\n return yup.object().shape(schema);\r\n }, [isUpdateLocal]);\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(blockFlightAirportsFormSchema),\r\n });\r\n const watchFromDate = useWatch({\r\n control: form.control,\r\n name: 'fromDate',\r\n defaultValue: defaultValue.fromDate?.toDate(),\r\n });\r\n const watchCountry = useWatch({\r\n control: form.control,\r\n name: 'country',\r\n defaultValue: defaultValue.country,\r\n });\r\n\r\n const onSubmit = async (blockFlightForm: IBlockFlightAirportsForm) => {\r\n let listAirports: string[] | undefined;\r\n if (blockFlightForm.airports) {\r\n if (Array.isArray(blockFlightForm.airports)) {\r\n listAirports = blockFlightForm.airports;\r\n } else {\r\n listAirports = [blockFlightForm.airports];\r\n }\r\n }\r\n\r\n handleSubmit({\r\n ...defaultValue,\r\n fromDate:\r\n blockFlightForm.fromDate &&\r\n moment(blockFlightForm.fromDate).startOf('d'),\r\n toDate:\r\n blockFlightForm.toDate && moment(blockFlightForm.toDate).endOf('d'),\r\n reason: blockFlightForm.reason?.value,\r\n comment: blockFlightForm.comment,\r\n countryCode: blockFlightForm.country?.value,\r\n airports: listAirports,\r\n relations: blockFlightForm.relations,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n validateForm();\r\n }, [\r\n refreshValidation,\r\n watchCountry,\r\n watchFromDate,\r\n allAirports,\r\n form.formState.isValid,\r\n ]);\r\n\r\n const validateForm = () => {\r\n if (\r\n refreshValidation ||\r\n (watchCountry &&\r\n watchFromDate &&\r\n moment(watchFromDate).isValid() &&\r\n allAirports !== undefined &&\r\n form.formState.isValid)\r\n ) {\r\n let values = form.getValues();\r\n let isSaveVisible: boolean = allAirports ? allAirports : false;\r\n\r\n if (allAirports === false && values?.airports) {\r\n isSaveVisible = values.airports.length > 0;\r\n }\r\n\r\n if (values?.relations) {\r\n let rel = Object.values(values.relations);\r\n isSaveVisible =\r\n isSaveVisible &&\r\n (rel.some((r: any) => r.from.length > 0) ||\r\n rel.some((r: any) => r.to.length > 0) ||\r\n rel.some((r: any) => r.transit.length > 0));\r\n }\r\n\r\n setIsDisabled(!isSaveVisible);\r\n } else {\r\n setIsDisabled(true);\r\n }\r\n setRefreshValidation(false);\r\n };\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {isReadOnlyLocal ? (\r\n \r\n ) : (\r\n ({\r\n value: country.countryCode,\r\n label: country.countryName,\r\n }))}\r\n control={form.control}\r\n margin=\"normal\"\r\n defaultValue={defaultValue.country}\r\n placeholder=\"Luxembourg\"\r\n error={!!form.errors.country}\r\n errorMessage={\r\n form.errors.country\r\n ? (form.errors.country as any)?.message\r\n : ''\r\n }\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {isReadOnlyLocal ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {isReadOnlyLocal ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {isReadOnlyLocal ? (\r\n \r\n ) : (\r\n ({\r\n value: reason.reason,\r\n label: reason.reason,\r\n }))}\r\n control={form.control}\r\n margin=\"normal\"\r\n defaultValue={defaultValue.reason}\r\n placeholder=\"Type or select an existing reason\"\r\n error={!!form.errors.reason}\r\n errorMessage={\r\n form.errors.reason\r\n ? (form.errors.reason as any)?.message\r\n : ''\r\n }\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {isReadOnlyLocal ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {watchCountry && (\r\n \r\n \r\n {isReadOnlyLocal ? (\r\n \r\n {defaultValue.airports?.length === 0 && (\r\n \r\n )}\r\n \r\n ) : (\r\n \r\n Blocking concerned all or a part of airports of the\r\n country?\r\n \r\n )}\r\n \r\n \r\n )}\r\n {watchCountry && !isReadOnlyLocal && (\r\n \r\n setAllAirports(value)}\r\n />\r\n \r\n )}\r\n {allAirports === false && (\r\n \r\n {airportsTimeZones\r\n .filter(\r\n (x) =>\r\n x.countryCode === watchCountry?.value && !x.isInactive\r\n )\r\n .map((y) => (\r\n \r\n setRefreshValidation(true)}\r\n />\r\n \r\n ))}\r\n \r\n )}\r\n {watchCountry && (\r\n \r\n {allAirports !== undefined && relationTypes && (\r\n \r\n {isReadOnlyLocal ? (\r\n \r\n Parameters by travel types for relation type\r\n \r\n ) : (\r\n \r\n Please, select blocked parameters by travel types for\r\n relation type you want\r\n \r\n )}\r\n \r\n )}\r\n\r\n {allAirports !== undefined &&\r\n relationTypes &&\r\n relationTypes.map((x) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n )}\r\n \r\n {isReadOnlyLocal ? (\r\n <>\r\n \r\n \r\n {\r\n setIsReadOnlyLocal(false);\r\n setIsUpdateLocal(true);\r\n }}\r\n >\r\n Edit this master rule\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n Validate blocking\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightAirports;\r\n","import moment, {Moment} from 'moment';\r\nimport React, {useCallback, useEffect, useState} from 'react';\r\nimport {useWatch} from 'react-hook-form';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport {useBlockFlightContext} from '../../../context/BlockFlight/BlockFlightProvider';\r\nimport IOption from '../../../models/IOption';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Checkbox from '../../commons/Checkbox/Checkbox';\r\nimport DatePicker from '../../commons/DatePicker/DatePicker';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport Searchcomplete from '../../commons/Searchcomplete/Searchcomplete';\r\nimport TextField from '../../commons/TextField/TextField';\r\n\r\ninterface ICommentTravelTypesForm {\r\n fromDate: Moment | null;\r\n toDate: Moment | null;\r\n reason?: string;\r\n comment?: string;\r\n travelTypes?: string[];\r\n}\r\n\r\ninterface ICommentTravelTypesProps {\r\n onRefreshValidate: () => void;\r\n form: any;\r\n defaultValues: ICommentTravelTypesForm;\r\n groupName?: string;\r\n readOnly?: boolean;\r\n isException?: boolean;\r\n}\r\n\r\nconst CommentTravelTypes: React.FC = ({\r\n onRefreshValidate,\r\n form,\r\n defaultValues,\r\n groupName,\r\n readOnly = false,\r\n isException = false,\r\n}) => {\r\n const { cvTripTypes, reasons } = useBlockFlightContext();\r\n const [checkAll, setCheckAll] = useState(\r\n cvTripTypes.length === defaultValues.travelTypes?.length\r\n );\r\n const watchFromDate = useWatch({\r\n control: form.control,\r\n name: groupName ? `fromDate_${groupName}` : 'fromDate',\r\n });\r\n const [firstRender, setFirstRender] = useState(true);\r\n\r\n useEffect(() => {\r\n if (firstRender) {\r\n form.setValue(\r\n groupName ? `travelTypes_${groupName}` : 'travelTypes',\r\n defaultValues.travelTypes\r\n );\r\n setFirstRender(false);\r\n }\r\n }, [groupName, defaultValues]);\r\n\r\n useEffect(() => {\r\n if (isException) {\r\n let fromName = groupName ? `fromDate_${groupName}` : 'fromDate';\r\n let toName = groupName ? `toDate_${groupName}` : 'toDate';\r\n form.register({ name: fromName, type: 'Moment' });\r\n form.register({ name: toName, type: 'Moment' });\r\n form.setValue(fromName, defaultValues.fromDate);\r\n form.setValue(toName, defaultValues.toDate);\r\n }\r\n }, [isException]);\r\n\r\n const handleOnCheckAll = async (checked: boolean) => {\r\n setCheckAll(checked);\r\n if (!checked) {\r\n form.setValue(groupName ? `travelTypes_${groupName}` : 'travelTypes', []);\r\n }\r\n onRefreshValidate();\r\n };\r\n\r\n const isChecked = (tripTypeId: string) => {\r\n let travelTypes = form.getValues(\r\n groupName ? `travelTypes_${groupName}` : 'travelTypes'\r\n );\r\n return travelTypes?.includes(tripTypeId) || checkAll;\r\n };\r\n\r\n const handleOnChange = async () => {\r\n setCheckAll(false);\r\n onRefreshValidate();\r\n };\r\n\r\n const resolveReasonOption = useCallback(\r\n (value: string | undefined): IOption | undefined => {\r\n const reason = reasons.find((x) => x.reason === value);\r\n return reason && { value: reason.reason, label: reason.reason };\r\n },\r\n [reasons]\r\n );\r\n return (\r\n <>\r\n \r\n \r\n \r\n {readOnly || isException ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {readOnly || isException ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {readOnly ? (\r\n \r\n ) : (\r\n ({\r\n value: reason.reason,\r\n label: reason.reason,\r\n }))}\r\n control={form.control}\r\n margin=\"normal\"\r\n defaultValue={resolveReasonOption(defaultValues.reason) ?? null}\r\n placeholder=\"Type or select an existing reason\"\r\n error={\r\n form.errors[groupName ? `reason_${groupName}` : 'reason']\r\n }\r\n errorMessage={\r\n form.errors[groupName ? `reason_${groupName}` : 'reason']\r\n ? form.errors[groupName ? `reason_${groupName}` : 'reason']\r\n .message\r\n : ''\r\n }\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {readOnly ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n handleOnCheckAll(checked)}\r\n />\r\n \r\n {cvTripTypes.map((y) => (\r\n \r\n handleOnChange()}\r\n />\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CommentTravelTypes;\r\n","import moment, {Moment} from 'moment';\r\nimport React, {useEffect, useMemo, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {useMediaQuery, useTheme} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport IBlockFlightCarrier from '../../../models/BlockFlights/IBlockFlightCarrier';\r\nimport IOption from '../../../models/IOption';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport formatString from '../../../utils/Strings';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport CommentTravelTypes from '../Common/CommentTravelTypes';\r\n\r\ninterface IBlockFlightCarrierCodeProps {\r\n defaultValue: IBlockFlightCarrierCodeForm;\r\n isUpdate?: boolean;\r\n readOnly?: boolean;\r\n handleSubmit: (blockFlight: IBlockFlightCarrier) => void;\r\n}\r\n\r\nexport interface IBlockFlightCarrierCodeForm {\r\n blockedFlightId: number;\r\n carrierCode?: string;\r\n fromDate: Moment | null;\r\n toDate: Moment | null;\r\n reason: IOption | null;\r\n comment?: string;\r\n travelTypes?: string[];\r\n}\r\n\r\nconst BlockFlightCarrierCode: React.FC = ({\r\n defaultValue,\r\n isUpdate,\r\n readOnly = false,\r\n handleSubmit,\r\n}) => {\r\n const [refreshValidation, setRefreshValidation] = useState(false);\r\n const [isDisabled, setIsDisabled] = useState(true);\r\n const [isReadOnlyLocal, setIsReadOnlyLocal] = useState(readOnly);\r\n const [isUpdateLocal, setIsUpdateLocal] = useState(isUpdate);\r\n\r\n const theme = useTheme();\r\n const isSmartphone = useMediaQuery(theme.breakpoints.down('sm'));\r\n\r\n useEffect(() => {\r\n if (isUpdate) {\r\n // Trigger the validation of the form during the update to display any errors\r\n form.trigger().catch(console.error);\r\n }\r\n setIsUpdateLocal(isUpdate);\r\n }, [isUpdate]);\r\n\r\n const optionSchema = yup.object().shape({\r\n value: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n });\r\n const blockFlightCarrierCodeFormSchema = useMemo(() => {\r\n let schema: any;\r\n if (isUpdateLocal && defaultValue.fromDate) {\r\n let minDate = moment(defaultValue.fromDate).isSameOrBefore(\r\n new Date(),\r\n 'day'\r\n )\r\n ? defaultValue.fromDate\r\n : moment().startOf('day');\r\n schema = {\r\n carrierCode: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .length(2, formatString(Constants.validation.length, 2)),\r\n fromDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .min(\r\n minDate.toDate(),\r\n formatString(\r\n Constants.validation.minDateAnotherField,\r\n minDate.format('DD-MM-YYYY')\r\n )\r\n ),\r\n toDate: yup\r\n .date()\r\n .nullable()\r\n .typeError('')\r\n .when('fromDate', (fromDate: Date | null, schema: any) =>\r\n fromDate\r\n ? schema.min(\r\n fromDate,\r\n formatString(Constants.validation.minDateAnotherField, 'From')\r\n )\r\n : schema\r\n ),\r\n reason: optionSchema.typeError(Constants.validation.required),\r\n };\r\n } else {\r\n schema = {\r\n carrierCode: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .length(2, formatString(Constants.validation.length, 2)),\r\n fromDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .min(\r\n moment(new Date()).startOf('d')?.toDate(),\r\n Constants.validation.minDateToday\r\n ),\r\n toDate: yup\r\n .date()\r\n .nullable()\r\n .typeError('')\r\n .when('fromDate', (fromDate: Date | null, schema: any) =>\r\n fromDate\r\n ? schema.min(\r\n fromDate,\r\n formatString(Constants.validation.minDateAnotherField, 'From')\r\n )\r\n : schema\r\n ),\r\n reason: optionSchema.typeError(Constants.validation.required),\r\n comment: yup\r\n .string()\r\n .max(500, formatString(Constants.validation.max, 500)),\r\n };\r\n }\r\n return yup.object().shape(schema);\r\n }, [isUpdateLocal]);\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(blockFlightCarrierCodeFormSchema),\r\n defaultValues: defaultValue,\r\n });\r\n\r\n const onSubmit = async (blockFlightForm: IBlockFlightCarrierCodeForm) => {\r\n handleSubmit({\r\n ...defaultValue,\r\n carrierCode: blockFlightForm.carrierCode ?? '',\r\n reason: blockFlightForm.reason?.value ?? '',\r\n comment: blockFlightForm.comment ?? '',\r\n fromDate:\r\n blockFlightForm.fromDate &&\r\n moment(blockFlightForm.fromDate).startOf('d'),\r\n toDate:\r\n blockFlightForm.toDate && moment(blockFlightForm.toDate).endOf('d'),\r\n tripTypeIds: blockFlightForm.travelTypes\r\n ? blockFlightForm.travelTypes.map((n) => +n)\r\n : [],\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n validateForm();\r\n }, [refreshValidation, form.formState.isValid]);\r\n\r\n const validateForm = () => {\r\n let travelTypes = form.getValues('travelTypes');\r\n\r\n setIsDisabled(\r\n !(form.formState.isValid && travelTypes && travelTypes?.length > 0)\r\n );\r\n if (refreshValidation) {\r\n setRefreshValidation(false);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setRefreshValidation(true)}\r\n form={form}\r\n defaultValues={{\r\n fromDate: defaultValue.fromDate,\r\n toDate: defaultValue.toDate,\r\n reason: defaultValue.reason?.value,\r\n comment: defaultValue.comment,\r\n travelTypes: defaultValue.travelTypes,\r\n }}\r\n />\r\n \r\n \r\n {isReadOnlyLocal ? (\r\n <>\r\n \r\n \r\n {\r\n setIsReadOnlyLocal(false);\r\n setIsUpdateLocal(true);\r\n }}\r\n >\r\n Edit this master rule\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n Validate blocking\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightCarrierCode;\r\n","import moment from 'moment';\r\nimport React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport IFlightRouting from '../../../models/BlockFlights/IFlightRouting';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\n\r\ninterface IFlightRoutingCardProps {\r\n flightRouting: IFlightRouting;\r\n selectedRouting: string;\r\n handleChange: (value: string) => void;\r\n}\r\n\r\nconst FlightRoutingCard: React.FC = ({\r\n flightRouting,\r\n selectedRouting,\r\n handleChange,\r\n}) => {\r\n return (\r\n handleChange(flightRouting.routing)}\r\n >\r\n \r\n \r\n handleChange(e.target.value)}\r\n value={flightRouting.routing}\r\n />\r\n \r\n \r\n {flightRouting.routing}\r\n \r\n For information, here are the next flight dates\r\n \r\n {flightRouting.flightDates.map((x) => (\r\n \r\n {moment(x).format('DDMMMYYYY').toUpperCase()}\r\n \r\n ))}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default FlightRoutingCard;\r\n","import React from 'react';\r\n\r\nimport {useMediaQuery, useTheme} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport IFlightRouting from '../../../models/BlockFlights/IFlightRouting';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport FlightRoutingCard from '../Common/FlightRoutingCard';\r\n\r\ninterface IBlockFlightNumberStep1Props {\r\n flightRoutings: IFlightRouting[];\r\n selectedRouting: string;\r\n handleChange: (value: string) => void;\r\n handleNextStep: () => void;\r\n}\r\n\r\nconst BlockFlightNumberStep1: React.FC = ({\r\n flightRoutings,\r\n selectedRouting,\r\n handleChange,\r\n handleNextStep,\r\n}) => {\r\n const theme = useTheme();\r\n const isSmartphone = useMediaQuery(theme.breakpoints.down('sm'));\r\n return (\r\n <>\r\n Step 1/3\r\n \r\n Select the routing you want to block for this flight.\r\n \r\n You could select specific(s) leg(s) after\r\n \r\n \r\n {flightRoutings.map((x) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {\r\n handleNextStep();\r\n }}\r\n >\r\n {Constants.buttons.continue}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightNumberStep1;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\n\r\nimport {useMediaQuery, useTheme} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport ILegRouting from '../../../models/BlockFlights/ILegRouting';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport Checkbox from '../../commons/Checkbox/Checkbox';\r\n\r\ninterface IBlockFlightNumberStep2Props {\r\n routingLegs: ILegRouting[];\r\n selectedLegs: ILegRouting[];\r\n handleNextStep: (legs: ILegRouting[]) => void;\r\n handlePreviousStep: () => void;\r\n}\r\n\r\ninterface IFormLeg {\r\n legs: string[];\r\n}\r\n\r\nconst BlockFlightNumberStep2: React.FC = ({\r\n routingLegs,\r\n selectedLegs,\r\n handlePreviousStep,\r\n handleNextStep,\r\n}) => {\r\n const form = useForm();\r\n const [isDisabled, setIsDisabled] = useState(true);\r\n const [refreshValidation, setRefreshValidation] = useState(false);\r\n\r\n const theme = useTheme();\r\n const isSmartphone = useMediaQuery(theme.breakpoints.down('sm'));\r\n\r\n useEffect(() => {\r\n if (selectedLegs.length > 0) {\r\n if (selectedLegs.length === routingLegs.length) {\r\n setCheckAll(true);\r\n } else {\r\n form.setValue(\r\n 'legs',\r\n selectedLegs.map((x) => x.formattedValue)\r\n );\r\n }\r\n setRefreshValidation(true);\r\n }\r\n }, [selectedLegs]);\r\n\r\n useEffect(() => {\r\n if (refreshValidation) {\r\n let values = form.getValues();\r\n setIsDisabled(values.legs.length === 0);\r\n setRefreshValidation(false);\r\n }\r\n }, [refreshValidation]);\r\n\r\n const handleSubmit = (formLeg: IFormLeg) => {\r\n if (formLeg.legs.length > 0) {\r\n let legs = routingLegs.filter((x) =>\r\n formLeg.legs.includes(x.formattedValue)\r\n );\r\n handleNextStep(legs);\r\n }\r\n };\r\n\r\n const [checkAll, setCheckAll] = useState(false);\r\n\r\n const isChecked = (legRouting: string) => {\r\n let values = form.getValues();\r\n return values.legs?.includes(legRouting) || checkAll;\r\n };\r\n\r\n const handleCheckAll = (checked: boolean) => {\r\n setCheckAll(checked);\r\n if (!checked) {\r\n form.setValue('legs', []);\r\n }\r\n setRefreshValidation(true);\r\n };\r\n const handleOnChange = async () => {\r\n setCheckAll(false);\r\n setRefreshValidation(true);\r\n };\r\n\r\n return (\r\n \r\n Step 2/3\r\n \r\n Select specific(s) leg(s) you want to block for this flight.\r\n \r\n \r\n \r\n {routingLegs.map((y) => {\r\n return (\r\n \r\n ,\r\n checked: boolean\r\n ) => {\r\n y.formattedValue === 'All legs'\r\n ? handleCheckAll(checked)\r\n : handleOnChange();\r\n }}\r\n />\r\n \r\n );\r\n })}\r\n \r\n \r\n {\r\n handlePreviousStep();\r\n }}\r\n >\r\n Previous Step\r\n \r\n \r\n \r\n {Constants.buttons.continue}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightNumberStep2;\r\n","import moment, {Moment} from 'moment';\r\nimport React, {useEffect, useMemo, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {useMediaQuery, useTheme} from '@material-ui/core';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nimport IBlockFlightNumber from '../../../models/BlockFlights/IBlockFlightNumber';\r\nimport ILegRouting from '../../../models/BlockFlights/ILegRouting';\r\nimport IOption from '../../../models/IOption';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport formatString from '../../../utils/Strings';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport CommentTravelTypes from '../Common/CommentTravelTypes';\r\n\r\ninterface IBlockFlightNumberStep3Props {\r\n flightNumber: string;\r\n routingLegs: ILegRouting[];\r\n selectedLegs: ILegRouting[];\r\n defaultValue: IBlockFlightNumberLegForm;\r\n handlePreviousStep?: () => void;\r\n isUpdate?: boolean;\r\n readonly?: boolean;\r\n handleValidate?: (blockFlights: IBlockFlightNumber[]) => void;\r\n flightDate?: Date;\r\n fullRouting: string;\r\n isException?: boolean;\r\n}\r\n\r\nexport interface IBlockFlightNumberLegForm {\r\n fromDate: Moment | null;\r\n toDate: Moment | null;\r\n reason: IOption | null;\r\n comment?: string;\r\n travelTypes?: string[];\r\n}\r\n\r\nconst BlockFlightNumberStep3: React.FC = ({\r\n flightNumber,\r\n routingLegs,\r\n selectedLegs,\r\n defaultValue,\r\n handlePreviousStep,\r\n isUpdate = false,\r\n readonly = false,\r\n handleValidate,\r\n flightDate,\r\n fullRouting,\r\n isException = false,\r\n}) => {\r\n const [isDisabled, setIsDisabled] = useState(true);\r\n const [refreshValidation, setRefreshValidation] = useState(false);\r\n const [isUpdateLocal, setIsUpdateLocal] = useState(isUpdate);\r\n const [isReadOnlyLocal, setIsReadOnlyLocal] = useState(readonly);\r\n const [isExceptionLocal, setIsExceptionLocal] = useState(isException);\r\n const isAllLegs = routingLegs.length === selectedLegs.length;\r\n\r\n const theme = useTheme();\r\n const isSmartphone = useMediaQuery(theme.breakpoints.down('sm'));\r\n\r\n const optionSchema = yup.object().shape({\r\n value: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n });\r\n const blockFlightNumberFormSchema = useMemo(() => {\r\n var schema: any = {};\r\n if (isAllLegs) {\r\n let minDate =\r\n defaultValue.fromDate &&\r\n moment(defaultValue.fromDate).isSameOrBefore(new Date(), 'day')\r\n ? defaultValue.fromDate\r\n : moment().startOf('day');\r\n isUpdateLocal && defaultValue.fromDate\r\n ? (schema['fromDate'] = yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .min(\r\n minDate.toDate(),\r\n formatString(\r\n Constants.validation.minDateAnotherField,\r\n minDate.format('DD-MM-YYYY')\r\n )\r\n ))\r\n : (schema['fromDate'] = yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .min(\r\n moment(new Date()).startOf('d')?.toDate(),\r\n Constants.validation.minDateToday\r\n ));\r\n schema['toDate'] = yup\r\n .date()\r\n .nullable()\r\n .typeError('')\r\n .when('fromDate', (fromDate: Date | null, schema: any) =>\r\n fromDate\r\n ? schema.min(\r\n fromDate,\r\n formatString(Constants.validation.minDateAnotherField, 'From')\r\n )\r\n : schema\r\n );\r\n schema['reason'] = optionSchema.typeError(Constants.validation.required);\r\n } else {\r\n let minDate =\r\n defaultValue.fromDate &&\r\n moment(defaultValue.fromDate).isSameOrBefore(new Date(), 'day')\r\n ? defaultValue.fromDate\r\n : moment().startOf('day');\r\n\r\n selectedLegs.forEach((leg) => {\r\n let groupName = `${leg.departureStation}_${leg.arrivalStation}`;\r\n isUpdateLocal && defaultValue.fromDate\r\n ? (schema[`fromDate_${groupName}`] = yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .min(\r\n minDate.toDate(),\r\n formatString(\r\n Constants.validation.minDateAnotherField,\r\n minDate.format('DD-MM-YYYY')\r\n )\r\n ))\r\n : (schema[`fromDate_${groupName}`] = yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .min(\r\n moment(new Date()).startOf('d')?.toDate(),\r\n Constants.validation.minDateToday\r\n ));\r\n schema[`toDate_${groupName}`] = yup\r\n .date()\r\n .nullable()\r\n .typeError('')\r\n .when(`fromDate_${groupName}`, (fromDate: Date | null, schema: any) =>\r\n fromDate\r\n ? schema.min(\r\n fromDate,\r\n formatString(Constants.validation.minDateAnotherField, 'From')\r\n )\r\n : schema\r\n );\r\n schema[`reason_${groupName}`] = optionSchema.typeError(\r\n Constants.validation.required\r\n );\r\n });\r\n }\r\n return yup.object().shape(schema);\r\n }, [isUpdateLocal]);\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(blockFlightNumberFormSchema),\r\n });\r\n\r\n useEffect(() => {\r\n if (isUpdate) {\r\n // Trigger the validation of the form during the update to display any errors\r\n form.trigger();\r\n }\r\n setIsUpdateLocal(isUpdate);\r\n }, [isUpdate]);\r\n\r\n useEffect(() => {\r\n setIsReadOnlyLocal(readonly);\r\n }, [readonly]);\r\n\r\n useEffect(() => {\r\n if (isException) {\r\n setIsReadOnlyLocal(false);\r\n setIsUpdateLocal(true);\r\n }\r\n setIsExceptionLocal(isException);\r\n }, [isException]);\r\n\r\n useEffect(() => {\r\n validateForm();\r\n }, [refreshValidation, form.formState.isValid]);\r\n\r\n const validateForm = () => {\r\n let enableSave = false;\r\n if (form.formState.isValid) {\r\n if (isAllLegs) {\r\n let travelTypes = form.getValues('travelTypes');\r\n enableSave = travelTypes ? travelTypes?.length > 0 : false;\r\n } else {\r\n for (let leg of selectedLegs) {\r\n let groupName = `${leg.departureStation}_${leg.arrivalStation}`;\r\n let values: any = form.getValues();\r\n enableSave = values[`travelTypes_${groupName}`]\r\n ? values[`travelTypes_${groupName}`]?.length > 0\r\n : false;\r\n if (!enableSave) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n setIsDisabled(!(form.formState.isValid && enableSave));\r\n\r\n if (refreshValidation) {\r\n setRefreshValidation(false);\r\n }\r\n };\r\n\r\n const handleSubmit = async (\r\n blockFlightForm: IBlockFlightNumberLegForm | any\r\n ) => {\r\n if (handleValidate) {\r\n let flightNumbers: IBlockFlightNumber[];\r\n if (isAllLegs) {\r\n flightNumbers = [\r\n {\r\n flightDesc: flightNumber,\r\n routing: fullRouting,\r\n reason: blockFlightForm.reason?.value ?? '',\r\n comment: blockFlightForm.comment ?? '',\r\n fromDate:\r\n blockFlightForm.fromDate &&\r\n moment(blockFlightForm.fromDate).startOf('d'),\r\n toDate:\r\n blockFlightForm.toDate &&\r\n moment(blockFlightForm.toDate).endOf('d'),\r\n tripTypeIds: blockFlightForm.travelTypes\r\n ? blockFlightForm.travelTypes.map((n: any) => +n)\r\n : [],\r\n isAll: true,\r\n isException: isExceptionLocal,\r\n },\r\n ];\r\n } else {\r\n flightNumbers = selectedLegs.map(\r\n (x): IBlockFlightNumber => ({\r\n flightDesc: flightNumber,\r\n routing: `${x.departureStation} ${x.arrivalStation}`,\r\n reason:\r\n blockFlightForm[\r\n `reason_${x.departureStation}_${x.arrivalStation}`\r\n ]?.value ?? '',\r\n comment:\r\n blockFlightForm[\r\n `comment_${x.departureStation}_${x.arrivalStation}`\r\n ] ?? '',\r\n fromDate:\r\n blockFlightForm[\r\n `fromDate_${x.departureStation}_${x.arrivalStation}`\r\n ] &&\r\n moment(\r\n blockFlightForm[\r\n `fromDate_${x.departureStation}_${x.arrivalStation}`\r\n ]\r\n ).startOf('d'),\r\n toDate:\r\n blockFlightForm[\r\n `toDate_${x.departureStation}_${x.arrivalStation}`\r\n ] &&\r\n moment(\r\n blockFlightForm[\r\n `toDate_${x.departureStation}_${x.arrivalStation}`\r\n ]\r\n ).endOf('d'),\r\n tripTypeIds: blockFlightForm[\r\n `travelTypes_${x.departureStation}_${x.arrivalStation}`\r\n ]\r\n ? blockFlightForm[\r\n `travelTypes_${x.departureStation}_${x.arrivalStation}`\r\n ].map((n: any) => +n)\r\n : [],\r\n isAll: false,\r\n isException: isExceptionLocal,\r\n })\r\n );\r\n }\r\n handleValidate(\r\n isExceptionLocal\r\n ? flightNumbers.map((x) => ({ ...x, blockedFlightId: 0 }))\r\n : flightNumbers\r\n );\r\n }\r\n };\r\n\r\n return (\r\n \r\n {isUpdateLocal || isReadOnlyLocal ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n Step 3/3\r\n \r\n Please, complete form by leg to validate blocking\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {isAllLegs ? (\r\n \r\n \r\n {fullRouting}\r\n \r\n \r\n setRefreshValidation(true)}\r\n form={form}\r\n defaultValues={{\r\n fromDate:\r\n isExceptionLocal && flightDate\r\n ? moment(flightDate)\r\n : defaultValue.fromDate,\r\n toDate:\r\n isExceptionLocal && flightDate\r\n ? moment(flightDate)\r\n : defaultValue.toDate,\r\n reason: defaultValue.reason?.value,\r\n comment: defaultValue.comment,\r\n travelTypes: defaultValue.travelTypes,\r\n }}\r\n isException={isExceptionLocal}\r\n />\r\n \r\n \r\n ) : (\r\n selectedLegs.map((x) => {\r\n return (\r\n \r\n 1 && \r\n }\r\n >\r\n {x.formattedValue}\r\n \r\n \r\n setRefreshValidation(true)}\r\n form={form}\r\n defaultValues={{\r\n fromDate:\r\n isExceptionLocal && flightDate\r\n ? moment(flightDate)\r\n : defaultValue.fromDate,\r\n toDate:\r\n isExceptionLocal && flightDate\r\n ? moment(flightDate)\r\n : defaultValue.toDate,\r\n reason: defaultValue.reason?.value,\r\n comment: defaultValue.comment,\r\n travelTypes: defaultValue.travelTypes,\r\n }}\r\n groupName={`${x.departureStation}_${x.arrivalStation}`}\r\n isException={isExceptionLocal}\r\n />\r\n \r\n \r\n );\r\n })\r\n )}\r\n \r\n {isReadOnlyLocal ? (\r\n \r\n \r\n {\r\n setIsReadOnlyLocal(false);\r\n setIsUpdateLocal(true);\r\n }}\r\n >\r\n Edit this master rule\r\n \r\n \r\n {\r\n setIsReadOnlyLocal(false);\r\n setIsUpdateLocal(true);\r\n setIsExceptionLocal(true);\r\n }}\r\n >\r\n Create an exception for this flight\r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n {!isUpdateLocal && (\r\n {\r\n handlePreviousStep && handlePreviousStep();\r\n }}\r\n >\r\n Previous Step\r\n \r\n )}\r\n \r\n \r\n Validate blocking\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightNumberStep3;\r\n","import React, {useState} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\n\r\nimport {useBlockFlightContext} from '../../../context/BlockFlight/BlockFlightProvider';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IBlockFlightNumber from '../../../models/BlockFlights/IBlockFlightNumber';\r\nimport IFlightRouting from '../../../models/BlockFlights/IFlightRouting';\r\nimport ILegRouting from '../../../models/BlockFlights/ILegRouting';\r\nimport BlockFlightService from '../../../services/BlockFlightService';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport NoResult from '../../commons/NoResult/NoResult';\r\nimport SearchButton from '../../commons/SearchButton/SearchButton';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport BlockFlightNumberStep1 from './BlockFlightNumberStep1';\r\nimport BlockFlightNumberStep2 from './BlockFlightNumberStep2';\r\nimport BlockFlightNumberStep3 from './BlockFlightNumberStep3';\r\n\r\ninterface IBlockFlightFlightNumberProps {}\r\n\r\nenum BlockFlightNumberStep {\r\n STEP_1,\r\n STEP_2,\r\n STEP_3,\r\n}\r\n\r\nconst BlockFlightFlightNumber: React.FC = () => {\r\n const [flightNumber, setFlightNumber] = useState('');\r\n const [flightRoutings, setFlightRoutings] = useState(\r\n null\r\n );\r\n const [selectedRouting, setSelectedRouting] = useState('');\r\n const [selectedLegs, setSelectedLegs] = useState([]);\r\n const [routingLegs, setRoutingLegs] = useState([]);\r\n const [activeStep, setActiveStep] = useState(BlockFlightNumberStep.STEP_1);\r\n const [waitResponse, setWaitResponse] = useState(false);\r\n const { addMessage } = useSnackbar();\r\n const { saveFlightNumber } = useBlockFlightContext();\r\n\r\n const handleSearch = async () => {\r\n resetData();\r\n setWaitResponse(true);\r\n BlockFlightService.getRoutingByFlightNumber(flightNumber)\r\n .then((result) => setFlightRoutings(result))\r\n .catch((error) => addMessage(error.message))\r\n .finally(() => setWaitResponse(false));\r\n };\r\n\r\n const resetData = () => {\r\n setActiveStep(BlockFlightNumberStep.STEP_1);\r\n setSelectedRouting('');\r\n };\r\n\r\n const handleSelectedRoutingChange = (value: string) => {\r\n setSelectedRouting(value);\r\n var stations = value.split(' ');\r\n setSelectedLegs([]);\r\n let legs = flightRoutings?.find((x) => x.routing === value)?.legs;\r\n setRoutingLegs(\r\n legs\r\n ? [\r\n {\r\n arrivalStation: stations[stations.length - 1],\r\n departureStation: stations[0],\r\n formattedValue: 'All legs',\r\n },\r\n ...legs,\r\n ]\r\n : []\r\n );\r\n };\r\n\r\n const gotoNextStep = () => {\r\n switch (activeStep) {\r\n case BlockFlightNumberStep.STEP_1:\r\n setActiveStep(BlockFlightNumberStep.STEP_2);\r\n break;\r\n case BlockFlightNumberStep.STEP_2:\r\n setActiveStep(BlockFlightNumberStep.STEP_3);\r\n break;\r\n }\r\n };\r\n\r\n const gotoPreviousStep = () => {\r\n switch (activeStep) {\r\n case BlockFlightNumberStep.STEP_2:\r\n setActiveStep(BlockFlightNumberStep.STEP_1);\r\n break;\r\n case BlockFlightNumberStep.STEP_3:\r\n setActiveStep(BlockFlightNumberStep.STEP_2);\r\n break;\r\n }\r\n };\r\n\r\n const validateBlocking = (blockFlights: IBlockFlightNumber[]) => {\r\n saveFlightNumber(blockFlights);\r\n };\r\n\r\n const onKeyDownHandler = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter') {\r\n handleSearch();\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n setFlightNumber(e.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Search Flight number\r\n \r\n \r\n \r\n \r\n \r\n {waitResponse && }\r\n {flightRoutings && flightRoutings.length > 0 ? (\r\n \r\n \r\n {activeStep === BlockFlightNumberStep.STEP_1 ? (\r\n \r\n ) : activeStep === BlockFlightNumberStep.STEP_2 ? (\r\n {\r\n setSelectedLegs(legs);\r\n gotoNextStep();\r\n }}\r\n />\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n ) : (\r\n flightRoutings?.length === 0 && (\r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightFlightNumber;\r\n","import moment, {Moment} from 'moment';\r\nimport React, {useEffect, useMemo, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {useMediaQuery, useTheme} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport IBlockFlightTail from '../../../models/BlockFlights/IBlockFlightTail';\r\nimport IOption from '../../../models/IOption';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport formatString from '../../../utils/Strings';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport CommentTravelTypes from '../Common/CommentTravelTypes';\r\n\r\ninterface IBlockFlightTailNumberProps {\r\n defaultValue: IBlockFlightTailNumberForm;\r\n isUpdate?: boolean;\r\n readOnly?: boolean;\r\n handleSubmit: (blockFlight: IBlockFlightTail) => void;\r\n}\r\n\r\nexport interface IBlockFlightTailNumberForm {\r\n blockedFlightId: number;\r\n tailNumber?: string;\r\n fromDate: Moment | null;\r\n toDate: Moment | null;\r\n reason: IOption | null;\r\n comment?: string;\r\n travelTypes?: string[];\r\n}\r\n\r\nconst BlockFlightTailNumber: React.FC = ({\r\n defaultValue,\r\n isUpdate = false,\r\n readOnly = false,\r\n handleSubmit,\r\n}) => {\r\n const [refreshValidation, setRefreshValidation] = useState(false);\r\n const [isDisabled, setIsDisabled] = useState(true);\r\n const [isReadOnlyLocal, setIsReadOnlyLocal] = useState(readOnly);\r\n const [isUpdateLocal, setIsUpdateLocal] = useState(isUpdate);\r\n\r\n const theme = useTheme();\r\n const isSmartphone = useMediaQuery(theme.breakpoints.down('sm'));\r\n\r\n useEffect(() => {\r\n if (isUpdate) {\r\n // Trigger the validation of the form during the update to display any errors\r\n form.trigger();\r\n }\r\n setIsUpdateLocal(isUpdate);\r\n }, [isUpdate]);\r\n\r\n const optionSchema = yup.object().shape({\r\n value: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n });\r\n\r\n const blockFlightTailNumberFormSchema = useMemo(() => {\r\n var schema: any = {};\r\n if (isUpdateLocal && defaultValue.fromDate) {\r\n let minDate = moment(defaultValue.fromDate).isSameOrBefore(\r\n new Date(),\r\n 'day'\r\n )\r\n ? defaultValue.fromDate\r\n : moment().startOf('day');\r\n schema = {\r\n tailNumber: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(10, formatString(Constants.validation.max, 10)),\r\n fromDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .min(\r\n minDate.toDate(),\r\n formatString(\r\n Constants.validation.minDateAnotherField,\r\n minDate.format('DD-MM-YYYY')\r\n )\r\n ),\r\n toDate: yup\r\n .date()\r\n .nullable()\r\n .typeError('')\r\n .when('fromDate', (fromDate: Date | null, schema: any) =>\r\n fromDate\r\n ? schema.min(\r\n fromDate,\r\n formatString(Constants.validation.minDateAnotherField, 'From')\r\n )\r\n : schema\r\n ),\r\n reason: optionSchema.typeError(Constants.validation.required),\r\n };\r\n } else {\r\n schema = {\r\n tailNumber: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(10, formatString(Constants.validation.max, 10)),\r\n fromDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .min(\r\n moment(new Date()).startOf('d')?.toDate(),\r\n Constants.validation.minDateToday\r\n ),\r\n toDate: yup\r\n .date()\r\n .nullable()\r\n .typeError('')\r\n .when('fromDate', (fromDate: Date | null, schema: any) =>\r\n fromDate\r\n ? schema.min(\r\n fromDate,\r\n formatString(Constants.validation.minDateAnotherField, 'From')\r\n )\r\n : schema\r\n ),\r\n reason: optionSchema.typeError(Constants.validation.required),\r\n };\r\n }\r\n return yup.object().shape(schema);\r\n }, [isUpdateLocal]);\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(blockFlightTailNumberFormSchema),\r\n });\r\n\r\n const onSubmit = async (blockFlightForm: IBlockFlightTailNumberForm) => {\r\n handleSubmit({\r\n ...defaultValue,\r\n tailNumber: blockFlightForm.tailNumber ?? '',\r\n reason: blockFlightForm.reason?.value ?? '',\r\n comment: blockFlightForm.comment ?? '',\r\n fromDate:\r\n blockFlightForm.fromDate &&\r\n moment(blockFlightForm.fromDate).startOf('d'),\r\n toDate:\r\n blockFlightForm.toDate && moment(blockFlightForm.toDate).endOf('d'),\r\n tripTypeIds: blockFlightForm.travelTypes\r\n ? blockFlightForm.travelTypes.map((n) => +n)\r\n : [],\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n validateForm();\r\n }, [refreshValidation, form.formState.isValid]);\r\n\r\n const validateForm = () => {\r\n let travelTypes = form.getValues('travelTypes');\r\n\r\n setIsDisabled(\r\n !(form.formState.isValid && travelTypes && travelTypes?.length > 0)\r\n );\r\n if (refreshValidation) {\r\n setRefreshValidation(false);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setRefreshValidation(true)}\r\n form={form}\r\n defaultValues={{\r\n fromDate: defaultValue.fromDate,\r\n toDate: defaultValue.toDate,\r\n reason: defaultValue.reason?.value,\r\n comment: defaultValue.comment,\r\n travelTypes: defaultValue.travelTypes,\r\n }}\r\n />\r\n \r\n \r\n {isReadOnlyLocal ? (\r\n <>\r\n \r\n \r\n {\r\n setIsReadOnlyLocal(false);\r\n setIsUpdateLocal(true);\r\n }}\r\n >\r\n Edit this master rule\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n Validate blocking\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightTailNumber;\r\n","import React, {useEffect} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport BlockFlightAirports from '../../../../components/BlockFlights/Airports/BlockFlightAirports';\r\nimport BlockFlightCarrierCode from '../../../../components/BlockFlights/CarrierCode/BlockFlightCarrierCode';\r\nimport BlockFlightFlightNumber from '../../../../components/BlockFlights/FlightNumber/BlockFlightFlightNumber';\r\nimport BlockFlightTailNumber from '../../../../components/BlockFlights/TailNumber/BlockFlightTailNumber';\r\nimport ToggleButtons from '../../../../components/commons/ToggleButtons/ToggleButtons';\r\nimport BlockFlightTabEnum, {BlockFlightRuleEnum,} from '../../../../context/BlockFlight/BlockFlightEnums';\r\nimport {useBlockFlightContext} from '../../../../context/BlockFlight/BlockFlightProvider';\r\nimport {BlockFlightActionType} from '../../../../context/BlockFlight/BlockFlightReducer';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\n\r\ninterface IBlockFlightCreateTabProps {}\r\n\r\nconst BlockFlightCreateTab: React.FC = () => {\r\n const {\r\n state: { ruleOptions, selectedCreateRule },\r\n dispatch,\r\n saveCountryAirports,\r\n saveCarrierCode,\r\n saveTailNumber,\r\n } = useBlockFlightContext();\r\n\r\n useEffect(() => {\r\n dispatch({\r\n type: BlockFlightActionType.SELECTED_TAB,\r\n payload: BlockFlightTabEnum.CREATE,\r\n });\r\n }, []);\r\n\r\n const handleOnChangeRule = async (\r\n event: React.MouseEvent,\r\n value: any\r\n ) => {\r\n if (value !== null) {\r\n dispatch({\r\n type: BlockFlightActionType.SELECTED_CREATE_RULE,\r\n payload: value,\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n By which rule do you want to block flights?\r\n \r\n \r\n \r\n \r\n \r\n {selectedCreateRule == BlockFlightRuleEnum.COUNTRY_AIRPORT ? (\r\n \r\n ) : selectedCreateRule == BlockFlightRuleEnum.CARRIER_CODE ? (\r\n \r\n ) : selectedCreateRule == BlockFlightRuleEnum.TAIL_NUMBER ? (\r\n \r\n ) : (\r\n selectedCreateRule == BlockFlightRuleEnum.FLIGHT_NUMBER && (\r\n \r\n )\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightCreateTab;\r\n","var _g, _path, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgBack(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 40,\n height: 40,\n viewBox: \"0 0 40 40\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_d)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 20,\n cy: 20,\n r: 20,\n fill: \"#B8349A\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M25.4287 12.35L18.3649 20L25.4287 27.65L23.254 30L14.0001 20L23.254 10L25.4287 12.35Z\",\n fill: \"white\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_d\",\n x: 0,\n y: 0,\n width: 40,\n height: 40,\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 }), /*#__PURE__*/React.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"erode\",\n in: \"SourceAlpha\",\n result: \"effect1_dropShadow\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 2,\n dy: 2\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow\",\n result: \"shape\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBack);\nexport default __webpack_public_path__ + \"static/media/back.74eab1f9.svg\";\nexport { ForwardRef as ReactComponent };","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Link from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as BackIcon} from '../../../assets/icons/back.svg';\r\nimport {useBlockFlightContext} from '../../../context/BlockFlight/BlockFlightProvider';\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport IBlockFlightAirports from '../../../models/BlockFlights/IBlockFlightAirports';\r\nimport Constants from '../../../utils/Constants';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport Dialog from '../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../commons/Dialog/DialogContent';\r\nimport Table from '../../commons/Table/Table';\r\nimport BlockFlightAirports, {IBlockFlightAirportsForm,} from './BlockFlightAirports';\r\n\r\ninterface IBlockFlightRulesAirportsProps {}\r\n\r\nconst BlockFlightRulesAirports: React.FC<\r\n IBlockFlightRulesAirportsProps\r\n> = () => {\r\n const {\r\n state: { blockedCountriesAirports },\r\n deleteCountryAirports,\r\n saveCountryAirports,\r\n } = useBlockFlightContext();\r\n const [data, setData] = useState(\r\n blockedCountriesAirports ?? []\r\n );\r\n const [selectedRow, setSelectedRow] = useState(\r\n null\r\n );\r\n\r\n const [selectedRowToDelete, setSelectedRowToDelete] =\r\n useState(null);\r\n const {\r\n showModal: showConfirmationDialog,\r\n hideModal: hideConfirmationDialog,\r\n isVisible: isVisibleConfirmationDialog,\r\n } = useModal();\r\n\r\n const [defaultValue, setDefaultValue] = useState({\r\n blockedFlightId: 0,\r\n fromDate: null,\r\n toDate: null,\r\n airports: [],\r\n reason: null,\r\n comment: undefined,\r\n });\r\n\r\n useEffect(() => {\r\n setData(blockedCountriesAirports ?? []);\r\n setSelectedRow(null);\r\n }, [blockedCountriesAirports]);\r\n\r\n const handleEdit = async (blockedFlight: IBlockFlightAirports) => {\r\n setSelectedRow(blockedFlight);\r\n\r\n setDefaultValue({\r\n blockedFlightId: blockedFlight.blockedFlightId,\r\n country: {\r\n label: blockedFlight.countryName,\r\n value: blockedFlight.countryCode,\r\n },\r\n airports: blockedFlight.airports,\r\n fromDate: blockedFlight.fromDate && moment(blockedFlight.fromDate),\r\n toDate: blockedFlight.toDate && moment(blockedFlight.toDate),\r\n relations: blockedFlight.relations,\r\n reason: { value: blockedFlight.reason, label: blockedFlight.reason },\r\n comment: blockedFlight.comment,\r\n });\r\n };\r\n\r\n const handleDelete = async (blockedFlight: IBlockFlightAirports) => {\r\n setSelectedRowToDelete(blockedFlight);\r\n showConfirmationDialog();\r\n };\r\n\r\n const handleConfirmDeleteBlockedFlight = () => {\r\n if (selectedRowToDelete) {\r\n deleteCountryAirports(selectedRowToDelete?.blockedFlightId);\r\n setSelectedRowToDelete(null);\r\n }\r\n\r\n hideConfirmationDialog();\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Country',\r\n accessor: 'countryName',\r\n width: '14%',\r\n },\r\n {\r\n Header: 'Aiports',\r\n accessor: 'airports',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n <>\r\n {row.original.airports && row.original.airports?.length > 0 ? (\r\n row.original.airports.map((x: any) => (\r\n \r\n {x}\r\n \r\n ))\r\n ) : (\r\n \r\n All airports\r\n \r\n )}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Blocked’ period',\r\n accessor: 'fromDate',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n <>\r\n From {' '}\r\n
\r\n {row.original.toDate ? (\r\n <>\r\n To {' '}\r\n \r\n ) : (\r\n ' (no end date)'\r\n )}\r\n \r\n ),\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n handleEdit(row.original)}\r\n >\r\n See more or edit\r\n \r\n \r\n ),\r\n width: '11%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'deleteKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n handleDelete(row.original)}\r\n >\r\n Delete\r\n \r\n \r\n ),\r\n width: '11%',\r\n },\r\n ],\r\n []\r\n );\r\n return (\r\n <>\r\n \r\n {selectedRow === null ? (\r\n \r\n ) : (\r\n <>\r\n setSelectedRow(null)}\r\n type=\"button\"\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n You are going to delete this rule\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n \r\n {\r\n hideConfirmationDialog();\r\n }}\r\n />\r\n handleConfirmDeleteBlockedFlight()}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightRulesAirports;\r\n","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Link from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as BackIcon} from '../../../assets/icons/back.svg';\r\nimport {useBlockFlightContext} from '../../../context/BlockFlight/BlockFlightProvider';\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport IBlockFlightCarrier from '../../../models/BlockFlights/IBlockFlightCarrier';\r\nimport Constants from '../../../utils/Constants';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport Dialog from '../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../commons/Dialog/DialogContent';\r\nimport Table from '../../commons/Table/Table';\r\nimport BlockFlightCarrierCode, {IBlockFlightCarrierCodeForm,} from './BlockFlightCarrierCode';\r\n\r\ninterface IBlockFlightRulesCarrierCodeProps {}\r\n\r\nconst BlockFlightRulesCarrierCode: React.FC<\r\n IBlockFlightRulesCarrierCodeProps\r\n> = () => {\r\n const {\r\n cvTripTypes,\r\n state: { blockedCarrierCodes },\r\n deleteCarrierCode,\r\n saveCarrierCode,\r\n } = useBlockFlightContext();\r\n const [data, setData] = useState(\r\n blockedCarrierCodes ?? []\r\n );\r\n\r\n const [selectedRow, setSelectedRow] = useState(\r\n null\r\n );\r\n const [selectedRowToDelete, setSelectedRowToDelete] =\r\n useState(null);\r\n const {\r\n showModal: showConfirmationDialog,\r\n hideModal: hideConfirmationDialog,\r\n isVisible: isVisibleConfirmationDialog,\r\n } = useModal();\r\n const [defaultValue, setDefaultValue] = useState(\r\n {\r\n blockedFlightId: 0,\r\n carrierCode: '',\r\n fromDate: null,\r\n toDate: null,\r\n reason: null,\r\n comment: '',\r\n travelTypes: [],\r\n }\r\n );\r\n\r\n useEffect(() => {\r\n setData(blockedCarrierCodes ?? []);\r\n setSelectedRow(null);\r\n }, [blockedCarrierCodes]);\r\n\r\n const handleEdit = async (blockedFlight: IBlockFlightCarrier) => {\r\n setSelectedRow(blockedFlight);\r\n\r\n setDefaultValue({\r\n blockedFlightId: blockedFlight.blockedFlightId,\r\n carrierCode: blockedFlight.carrierCode,\r\n fromDate: blockedFlight.fromDate && moment(blockedFlight.fromDate),\r\n toDate: blockedFlight.toDate && moment(blockedFlight.toDate),\r\n reason: { value: blockedFlight.reason, label: blockedFlight.reason },\r\n comment: blockedFlight.comment,\r\n travelTypes: blockedFlight.tripTypeIds.map((x) => `${x}`),\r\n });\r\n };\r\n\r\n const handleDelete = async (blockedFlight: IBlockFlightCarrier) => {\r\n setSelectedRowToDelete(blockedFlight);\r\n showConfirmationDialog();\r\n };\r\n\r\n const handleConfirmDeleteBlockedFlight = () => {\r\n if (selectedRowToDelete) {\r\n deleteCarrierCode(selectedRowToDelete?.blockedFlightId);\r\n setSelectedRowToDelete(null);\r\n }\r\n\r\n hideConfirmationDialog();\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Carrier code',\r\n accessor: 'carrierCode',\r\n width: '14%',\r\n },\r\n {\r\n Header: 'Blocked’ period',\r\n accessor: 'fromDate',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n <>\r\n From {' '}\r\n
\r\n {row.original.toDate ? (\r\n <>\r\n To {' '}\r\n \r\n ) : (\r\n ' (no end date)'\r\n )}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Travel type concerned',\r\n accessor: 'ripTypeIds',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => {\r\n let tripTypes: number[] = row.original.tripTypeIds;\r\n let allTrip = false;\r\n if (tripTypes.length > 1) {\r\n allTrip = cvTripTypes.every((x) =>\r\n tripTypes.includes(x.tripTypeId)\r\n );\r\n }\r\n return (\r\n <>\r\n {tripTypes.length === 1\r\n ? cvTripTypes.find((x) => x.tripTypeId === tripTypes[0])?.name\r\n : allTrip\r\n ? 'All travel type'\r\n : `Multiple (${tripTypes.length})`}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n handleEdit(row.original)}\r\n >\r\n See more or edit\r\n \r\n \r\n ),\r\n width: '11%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'deleteKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n handleDelete(row.original)}\r\n >\r\n Delete\r\n \r\n \r\n ),\r\n width: '11%',\r\n },\r\n ],\r\n [cvTripTypes]\r\n );\r\n return (\r\n <>\r\n \r\n {selectedRow === null ? (\r\n \r\n ) : (\r\n <>\r\n setSelectedRow(null)}\r\n type=\"button\"\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n You are going to delete this rule\r\n \r\n {`Carrier code: ${selectedRowToDelete?.carrierCode}`}\r\n \r\n Are you sure?\r\n \r\n \r\n \r\n {\r\n hideConfirmationDialog();\r\n }}\r\n />\r\n handleConfirmDeleteBlockedFlight()}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightRulesCarrierCode;\r\n","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Link from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as BackIcon} from '../../../assets/icons/back.svg';\r\nimport {useBlockFlightContext} from '../../../context/BlockFlight/BlockFlightProvider';\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport IBlockFlightNumber from '../../../models/BlockFlights/IBlockFlightNumber';\r\nimport ILegRouting from '../../../models/BlockFlights/ILegRouting';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport Dialog from '../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../commons/Dialog/DialogContent';\r\nimport Table from '../../commons/Table/Table';\r\nimport BlockFlightNumberStep3, {IBlockFlightNumberLegForm,} from './BlockFlightNumberStep3';\r\n\r\ninterface IBlockFlightRulesFlightNumberProps {}\r\n\r\nconst BlockFlightRulesFlightNumber: React.FC<\r\n IBlockFlightRulesFlightNumberProps\r\n> = () => {\r\n const {\r\n cvTripTypes,\r\n saveFlightNumber,\r\n state: { blockedFlightNumbers },\r\n deleteFlightNumber,\r\n } = useBlockFlightContext();\r\n\r\n const [data, setData] = useState(\r\n blockedFlightNumbers ?? []\r\n );\r\n const [selectedLegs, setSelectedLegs] = useState([]);\r\n const [routingLegs, setRoutingLegs] = useState([]);\r\n const [selectedRow, setSelectedRow] = useState(\r\n null\r\n );\r\n\r\n const [selectedRowToDelete, setSelectedRowToDelete] =\r\n useState(null);\r\n const {\r\n showModal: showConfirmationDialog,\r\n hideModal: hideConfirmationDialog,\r\n isVisible: isVisibleConfirmationDialog,\r\n } = useModal();\r\n\r\n const [defaultValue, setDefaultValue] = useState({\r\n fromDate: null,\r\n toDate: null,\r\n reason: null,\r\n comment: '',\r\n travelTypes: [],\r\n });\r\n\r\n useEffect(() => {\r\n setData(blockedFlightNumbers ?? []);\r\n setSelectedRow(null);\r\n }, [blockedFlightNumbers]);\r\n\r\n const handleEdit = async (blockedFlight: IBlockFlightNumber) => {\r\n setSelectedRow(blockedFlight);\r\n\r\n setDefaultValue({\r\n fromDate: blockedFlight.fromDate && moment(blockedFlight.fromDate),\r\n toDate: blockedFlight.toDate && moment(blockedFlight.toDate),\r\n reason: { value: blockedFlight.reason, label: blockedFlight.reason },\r\n comment: blockedFlight.comment,\r\n travelTypes: blockedFlight.tripTypeIds.map((x) => `${x}`),\r\n });\r\n\r\n let stations = blockedFlight.routing.split(' ');\r\n let legs: ILegRouting[] = [];\r\n for (var i = 0; i < stations.length - 1; i++) {\r\n let departure = stations[i];\r\n let arrival = stations[i + 1];\r\n let formatted = `${departure} - ${arrival}`;\r\n legs = [\r\n ...legs,\r\n ...[\r\n {\r\n departureStation: departure,\r\n arrivalStation: arrival,\r\n formattedValue: formatted,\r\n },\r\n ],\r\n ];\r\n }\r\n\r\n if (blockedFlight.isAll) {\r\n setRoutingLegs(legs);\r\n setSelectedLegs(legs);\r\n } else {\r\n setSelectedLegs(legs);\r\n }\r\n };\r\n\r\n const validateBlocking = (blockFlights: IBlockFlightNumber[]) => {\r\n if (selectedRow) {\r\n saveFlightNumber(\r\n blockFlights.map(\r\n (x): IBlockFlightNumber => ({\r\n ...selectedRow,\r\n fromDate: x.fromDate,\r\n toDate: x.toDate,\r\n reason: x.reason,\r\n comment: x.comment,\r\n tripTypeIds: x.tripTypeIds,\r\n isAll: x.isAll,\r\n isException: x.isException,\r\n })\r\n )\r\n );\r\n }\r\n };\r\n\r\n const handleDelete = async (blockedFlight: IBlockFlightNumber) => {\r\n setSelectedRowToDelete(blockedFlight);\r\n showConfirmationDialog();\r\n };\r\n\r\n const handleConfirmDeleteBlockedFlight = () => {\r\n if (selectedRowToDelete?.blockedFlightId) {\r\n deleteFlightNumber(selectedRowToDelete?.blockedFlightId);\r\n\r\n setSelectedRowToDelete(null);\r\n }\r\n\r\n hideConfirmationDialog();\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Flight number',\r\n accessor: 'flightDesc',\r\n width: '14%',\r\n },\r\n {\r\n Header: 'Routing',\r\n accessor: 'routing',\r\n },\r\n {\r\n Header: 'Blocked’ period',\r\n accessor: 'fromDate',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n <>\r\n From {' '}\r\n
\r\n {row.original.toDate ? (\r\n <>\r\n To {' '}\r\n \r\n ) : (\r\n ' (no end date)'\r\n )}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Travel type concerned',\r\n accessor: 'ripTypeIds',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => {\r\n let tripTypes: number[] = row.original.tripTypeIds;\r\n let allTrip = false;\r\n if (tripTypes.length > 1) {\r\n allTrip = cvTripTypes.every((x) =>\r\n tripTypes.includes(x.tripTypeId)\r\n );\r\n }\r\n return (\r\n <>\r\n {tripTypes.length === 1\r\n ? cvTripTypes.find((x) => x.tripTypeId === tripTypes[0])?.name\r\n : allTrip\r\n ? 'All travel type'\r\n : `Multiple (${tripTypes.length})`}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n handleEdit(row.original)}\r\n >\r\n See more or edit\r\n \r\n \r\n ),\r\n width: '11%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'deleteKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n handleDelete(row.original)}\r\n >\r\n Delete\r\n \r\n \r\n ),\r\n width: '11%',\r\n },\r\n ],\r\n [cvTripTypes]\r\n );\r\n return (\r\n <>\r\n \r\n {selectedRow === null ? (\r\n \r\n ) : (\r\n <>\r\n setSelectedRow(null)}\r\n type=\"button\"\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n You are going to delete this rule\r\n \r\n {`Flight number: ${selectedRowToDelete?.flightDesc}`}\r\n \r\n Are you sure?\r\n \r\n \r\n \r\n {\r\n hideConfirmationDialog();\r\n }}\r\n />\r\n handleConfirmDeleteBlockedFlight()}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightRulesFlightNumber;\r\n","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Link from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as BackIcon} from '../../../assets/icons/back.svg';\r\nimport {useBlockFlightContext} from '../../../context/BlockFlight/BlockFlightProvider';\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport IBlockFlightTail from '../../../models/BlockFlights/IBlockFlightTail';\r\nimport Constants from '../../../utils/Constants';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport Dialog from '../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../commons/Dialog/DialogContent';\r\nimport Table from '../../commons/Table/Table';\r\nimport BlockFlightTailNumber, {IBlockFlightTailNumberForm,} from './BlockFlightTailNumber';\r\n\r\ninterface IBlockFlightRulesTailNumberProps {}\r\n\r\nconst BlockFlightRulesTailNumber: React.FC<\r\n IBlockFlightRulesTailNumberProps\r\n> = () => {\r\n const {\r\n cvTripTypes,\r\n state: { blockedTailNumbers },\r\n deleteTailNumber,\r\n saveTailNumber,\r\n } = useBlockFlightContext();\r\n const [data, setData] = useState(\r\n blockedTailNumbers ?? []\r\n );\r\n const [selectedRow, setSelectedRow] = useState(null);\r\n const [selectedRowToDelete, setSelectedRowToDelete] =\r\n useState(null);\r\n const {\r\n showModal: showConfirmationDialog,\r\n hideModal: hideConfirmationDialog,\r\n isVisible: isVisibleConfirmationDialog,\r\n } = useModal();\r\n\r\n const [defaultValue, setDefaultValue] = useState({\r\n blockedFlightId: 0,\r\n tailNumber: '',\r\n fromDate: null,\r\n toDate: null,\r\n reason: null,\r\n comment: '',\r\n travelTypes: [],\r\n });\r\n\r\n useEffect(() => {\r\n setData(blockedTailNumbers ?? []);\r\n setSelectedRow(null);\r\n }, [blockedTailNumbers]);\r\n\r\n const handleEdit = async (blockedFlight: IBlockFlightTail) => {\r\n setSelectedRow(blockedFlight);\r\n\r\n setDefaultValue({\r\n blockedFlightId: blockedFlight.blockedFlightId,\r\n tailNumber: blockedFlight.tailNumber,\r\n fromDate: blockedFlight.fromDate && moment(blockedFlight.fromDate),\r\n toDate: blockedFlight.toDate && moment(blockedFlight.toDate),\r\n reason: { value: blockedFlight.reason, label: blockedFlight.reason },\r\n comment: blockedFlight.comment,\r\n travelTypes: blockedFlight.tripTypeIds.map((x) => `${x}`),\r\n });\r\n };\r\n\r\n const handleDelete = async (blockedFlight: IBlockFlightTail) => {\r\n setSelectedRowToDelete(blockedFlight);\r\n showConfirmationDialog();\r\n };\r\n\r\n const handleConfirmDeleteBlockedFlight = () => {\r\n if (selectedRowToDelete) {\r\n deleteTailNumber(selectedRowToDelete?.blockedFlightId);\r\n setSelectedRowToDelete(null);\r\n }\r\n\r\n hideConfirmationDialog();\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Tail number',\r\n accessor: 'tailNumber',\r\n width: '14%',\r\n },\r\n {\r\n Header: 'Blocked’ period',\r\n accessor: 'fromDate',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n <>\r\n From {' '}\r\n
\r\n {row.original.toDate ? (\r\n <>\r\n To {' '}\r\n \r\n ) : (\r\n ' (no end date)'\r\n )}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Travel type concerned',\r\n accessor: 'ripTypeIds',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => {\r\n let tripTypes: number[] = row.original.tripTypeIds;\r\n let allTrip = false;\r\n if (tripTypes.length > 1) {\r\n allTrip = cvTripTypes.every((x) =>\r\n tripTypes.includes(x.tripTypeId)\r\n );\r\n }\r\n return (\r\n <>\r\n {tripTypes.length === 1\r\n ? cvTripTypes.find((x) => x.tripTypeId === tripTypes[0])?.name\r\n : allTrip\r\n ? 'All travel type'\r\n : `Multiple (${tripTypes.length})`}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n handleEdit(row.original)}\r\n >\r\n See more or edit\r\n \r\n \r\n ),\r\n width: '11%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'deleteKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n handleDelete(row.original)}\r\n >\r\n Delete\r\n \r\n \r\n ),\r\n width: '11%',\r\n },\r\n ],\r\n [cvTripTypes]\r\n );\r\n return (\r\n <>\r\n \r\n {selectedRow === null ? (\r\n \r\n ) : (\r\n <>\r\n setSelectedRow(null)}\r\n type=\"button\"\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n You are going to delete this rule\r\n \r\n {`Tail number: ${selectedRowToDelete?.tailNumber}`}\r\n \r\n Are you sure?\r\n \r\n \r\n \r\n {\r\n hideConfirmationDialog();\r\n }}\r\n />\r\n handleConfirmDeleteBlockedFlight()}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightRulesTailNumber;\r\n","import React, {useEffect} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport BlockFlightRulesAirports from '../../../../components/BlockFlights/Airports/BlockFlightRulesAirports';\r\nimport BlockFlightRulesCarrierCode from '../../../../components/BlockFlights/CarrierCode/BlockFlightRulesCarrierCode';\r\nimport BlockFlightRulesFlightNumber\r\n from '../../../../components/BlockFlights/FlightNumber/BlockFlightRulesFlightNumber';\r\nimport BlockFlightRulesTailNumber from '../../../../components/BlockFlights/TailNumber/BlockFlightRulesTailNumber';\r\nimport ToggleButtons from '../../../../components/commons/ToggleButtons/ToggleButtons';\r\nimport BlockFlightTabEnum, {BlockFlightRuleEnum,} from '../../../../context/BlockFlight/BlockFlightEnums';\r\nimport {useBlockFlightContext} from '../../../../context/BlockFlight/BlockFlightProvider';\r\nimport {BlockFlightActionType} from '../../../../context/BlockFlight/BlockFlightReducer';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\n\r\ninterface IBlockFlightRulesTabProps {}\r\n\r\nconst BlockFlightRulesTab: React.FC = () => {\r\n const {\r\n state: { ruleOptions, selectedRulesRule },\r\n dispatch,\r\n } = useBlockFlightContext();\r\n\r\n useEffect(() => {\r\n dispatch({\r\n type: BlockFlightActionType.SELECTED_TAB,\r\n payload: BlockFlightTabEnum.RULES,\r\n });\r\n }, []);\r\n\r\n const handleOnChangeRule = async (\r\n event: React.MouseEvent,\r\n value: any\r\n ) => {\r\n if (value !== null) {\r\n dispatch({\r\n type: BlockFlightActionType.SELECTED_RULES_RULE,\r\n payload: value,\r\n });\r\n }\r\n };\r\n return (\r\n <>\r\n \r\n \r\n What kind of rules are you looking for?\r\n \r\n \r\n \r\n \r\n \r\n {selectedRulesRule === BlockFlightRuleEnum.COUNTRY_AIRPORT ? (\r\n \r\n ) : selectedRulesRule === BlockFlightRuleEnum.CARRIER_CODE ? (\r\n \r\n ) : selectedRulesRule === BlockFlightRuleEnum.TAIL_NUMBER ? (\r\n \r\n ) : (\r\n selectedRulesRule === BlockFlightRuleEnum.FLIGHT_NUMBER && (\r\n \r\n )\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightRulesTab;\r\n","var _circle, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgNotApplicable(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 28,\n viewBox: \"0 0 24 28\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12,\n cy: 14,\n r: 12,\n fill: \"#CC0033\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.2314 18H9.30762L6.20215 12.5996H6.1582C6.22005 13.5534 6.25098 14.2337 6.25098 14.6406V18H4.89844V10.8613H6.80762L9.9082 16.208H9.94238C9.89355 15.2803 9.86914 14.6243 9.86914 14.2402V10.8613H11.2314V18ZM17.4408 18L16.9232 16.3008H14.3207L13.8031 18H12.1723L14.6918 10.832H16.5424L19.0717 18H17.4408ZM16.5619 15.0312C16.0834 13.4915 15.8132 12.6208 15.7514 12.4189C15.6928 12.2171 15.6505 12.0576 15.6244 11.9404C15.517 12.3571 15.2094 13.3874 14.7016 15.0312H16.5619Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNotApplicable);\nexport default __webpack_public_path__ + \"static/media/notApplicable.c85595c4.svg\";\nexport { ForwardRef as ReactComponent };","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport IBlockedFlight from '../../../models/BlockFlights/IBlockedFlight';\r\nimport IBlockFlightAirports from '../../../models/BlockFlights/IBlockFlightAirports';\r\nimport IBlockFlightCarrier from '../../../models/BlockFlights/IBlockFlightCarrier';\r\nimport IBlockFlightNumber from '../../../models/BlockFlights/IBlockFlightNumber';\r\nimport IBlockFlightTail from '../../../models/BlockFlights/IBlockFlightTail';\r\nimport ILegRouting from '../../../models/BlockFlights/ILegRouting';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport BlockFlightAirports from '../Airports/BlockFlightAirports';\r\nimport BlockFlightCarrierCode from '../CarrierCode/BlockFlightCarrierCode';\r\nimport BlockFlightNumberStep3 from '../FlightNumber/BlockFlightNumberStep3';\r\nimport BlockFlightTailNumber from '../TailNumber/BlockFlightTailNumber';\r\n\r\ninterface IBlockFlightViewProps {\r\n blockedFlight: IBlockedFlight;\r\n saveFlightNumber: (blockFlights: IBlockFlightNumber[]) => void;\r\n saveAirports: (blockFlight: IBlockFlightAirports) => void;\r\n saveCarrierCode: (blockFlight: IBlockFlightCarrier) => void;\r\n saveTailNumber: (blockFlight: IBlockFlightTail) => void;\r\n}\r\n\r\nconst BlockFlightView: React.FC = ({\r\n blockedFlight,\r\n saveFlightNumber,\r\n saveAirports,\r\n saveCarrierCode,\r\n saveTailNumber,\r\n}) => {\r\n const [selectedLegs, setSelectedLegs] = useState([]);\r\n const [routingLegs, setRoutingLegs] = useState([]);\r\n\r\n useEffect(() => {\r\n if (blockedFlight.blockedRouting) {\r\n let stations = blockedFlight.blockedRouting.split(' ');\r\n let legs: ILegRouting[] = [];\r\n for (var i = 0; i < stations.length - 1; i++) {\r\n let departure = stations[i];\r\n let arrival = stations[i + 1];\r\n let formatted = `${departure} - ${arrival}`;\r\n legs = [\r\n ...legs,\r\n ...[\r\n {\r\n departureStation: departure,\r\n arrivalStation: arrival,\r\n formattedValue: formatted,\r\n },\r\n ],\r\n ];\r\n }\r\n\r\n if (blockedFlight.isAll) {\r\n setRoutingLegs(legs);\r\n setSelectedLegs(legs);\r\n } else {\r\n setSelectedLegs(legs);\r\n }\r\n }\r\n }, [blockedFlight.blockedRouting]);\r\n\r\n const validateBlocking = (blockFlights: IBlockFlightNumber[]) => {\r\n saveFlightNumber(\r\n blockFlights.map(\r\n (x): IBlockFlightNumber => ({\r\n ...blockedFlight,\r\n routing: blockedFlight.blockedRouting,\r\n blockedFlightId: x.isException ? 0 : blockedFlight.blockedFlightId,\r\n fromDate: x.fromDate,\r\n toDate: x.toDate,\r\n reason: x.reason,\r\n comment: x.comment,\r\n tripTypeIds: x.tripTypeIds,\r\n isAll: x.isAll,\r\n isException: x.isException,\r\n })\r\n )\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n {blockedFlight.flightDesc ? (\r\n <>\r\n \r\n \r\n \r\n `${x}`),\r\n }}\r\n readonly\r\n isException={blockedFlight.isException}\r\n handleValidate={validateBlocking}\r\n />\r\n \r\n \r\n \r\n \r\n ) : blockedFlight.tailNumber ? (\r\n `${x}`),\r\n }}\r\n readOnly\r\n handleSubmit={saveTailNumber}\r\n />\r\n ) : blockedFlight.carrierCode ? (\r\n `${x}`),\r\n }}\r\n readOnly\r\n handleSubmit={saveCarrierCode}\r\n />\r\n ) : blockedFlight.countryCode ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightView;\r\n","import {useLocation} from 'react-router-dom';\r\n\r\nexport default function useQuery() {\r\n return new URLSearchParams(useLocation().search);\r\n}\r\n","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport Link from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as BackIcon} from '../../../../assets/icons/back.svg';\r\nimport {ReactComponent as NotApplicable} from '../../../../assets/icons/notApplicable.svg';\r\nimport BlockFlightView from '../../../../components/BlockFlights/Common/BlockFlightView';\r\nimport DatePicker from '../../../../components/commons/DatePicker/DatePicker';\r\nimport DateTime from '../../../../components/commons/DateTime/DateTime';\r\nimport Dialog from '../../../../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../../../../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../../components/commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../../components/commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../../components/commons/Dialog/DialogContent';\r\nimport FormControl from '../../../../components/commons/FormControl/FormControl';\r\nimport NoResult from '../../../../components/commons/NoResult/NoResult';\r\nimport SearchButton from '../../../../components/commons/SearchButton/SearchButton';\r\nimport Table from '../../../../components/commons/Table/Table';\r\nimport TextField from '../../../../components/commons/TextField/TextField';\r\nimport BlockFlightTabEnum from '../../../../context/BlockFlight/BlockFlightEnums';\r\nimport {useBlockFlightContext} from '../../../../context/BlockFlight/BlockFlightProvider';\r\nimport {BlockFlightActionType} from '../../../../context/BlockFlight/BlockFlightReducer';\r\nimport {useModal} from '../../../../hooks/useModal';\r\nimport useQuery from '../../../../hooks/useQuery';\r\nimport useSnackbar from '../../../../hooks/useSnackbar';\r\nimport IBlockedFlight from '../../../../models/BlockFlights/IBlockedFlight';\r\nimport IBlockFlightAirports from '../../../../models/BlockFlights/IBlockFlightAirports';\r\nimport IBlockFlightCarrier from '../../../../models/BlockFlights/IBlockFlightCarrier';\r\nimport IBlockFlightNumber from '../../../../models/BlockFlights/IBlockFlightNumber';\r\nimport IBlockFlightTail from '../../../../models/BlockFlights/IBlockFlightTail';\r\nimport BlockFlightService from '../../../../services/BlockFlightService';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\nimport {MessageType} from '../../../../utils/MessageType';\r\nimport styles from './BlockFlightSearchTab.module.scss';\r\n\r\ninterface IBlockFlightSearchTabProps {}\r\n\r\ntype colorMap = { flightDate: Date; alternate: boolean };\r\n\r\nconst BlockFlightSearchTab: React.FC = () => {\r\n const {\r\n state: { searchFlightNumber, searchFlightDate },\r\n dispatch,\r\n cvTripTypes,\r\n } = useBlockFlightContext();\r\n const [data, setData] = useState(null);\r\n const [selectedRow, setSelectedRow] = useState(null);\r\n const [selectedRowToDelete, setSelectedRowToDelete] =\r\n useState(null);\r\n const {\r\n showModal: showConfirmationDialog,\r\n hideModal: hideConfirmationDialog,\r\n isVisible: isVisibleConfirmationDialog,\r\n } = useModal();\r\n const [waitResponse, setWaitResponse] = useState(false);\r\n\r\n const query = useQuery();\r\n const flightDesc = query.get('flightDesc');\r\n const flighDate = query.get('flightDate');\r\n\r\n useEffect(() => {\r\n dispatch({\r\n type: BlockFlightActionType.SELECTED_SEARCH_FLIGHT_NUMBER,\r\n payload: flightDesc ?? '',\r\n });\r\n dispatch({\r\n type: BlockFlightActionType.SELECTED_SEARCH_FLIGHT_DATE,\r\n payload: flighDate ? moment(flighDate) : null,\r\n });\r\n }, [flightDesc, flighDate]);\r\n\r\n const { addMessage } = useSnackbar();\r\n\r\n const alternateColorMapping = data?.reduce(\r\n (acc: colorMap[], curr: IBlockedFlight) => {\r\n return acc.some((el) => el.flightDate === curr.flightDate)\r\n ? acc\r\n : [\r\n ...acc,\r\n {\r\n flightDate: curr.flightDate,\r\n alternate:\r\n acc.length === 0 ? false : !acc[acc.length - 1].alternate,\r\n },\r\n ];\r\n },\r\n []\r\n );\r\n\r\n useEffect(() => {\r\n dispatch({\r\n type: BlockFlightActionType.SELECTED_TAB,\r\n payload: BlockFlightTabEnum.SEARCH,\r\n });\r\n }, []);\r\n\r\n const handleSearch = async () => {\r\n setWaitResponse(true);\r\n setSelectedRow(null);\r\n BlockFlightService.getBlockedFlights(searchFlightNumber, searchFlightDate)\r\n .then((blockedFlights) => setData(blockedFlights))\r\n .catch((error) => addMessage(error.message))\r\n .finally(() => setWaitResponse(false));\r\n };\r\n\r\n const handleSeeMore = async (blockedFlight: IBlockedFlight) => {\r\n setSelectedRow(blockedFlight);\r\n };\r\n\r\n const handleDelete = async (blockedFlight: IBlockedFlight) => {\r\n setSelectedRowToDelete(blockedFlight);\r\n showConfirmationDialog();\r\n };\r\n\r\n const handleConfirmDelete = async () => {\r\n if (selectedRowToDelete?.blockedFlightId) {\r\n deleteFlightNumber(selectedRowToDelete?.blockedFlightId);\r\n }\r\n\r\n hideConfirmationDialog();\r\n };\r\n\r\n const saveFlightNumber = async (blockFlights: IBlockFlightNumber[]) => {\r\n BlockFlightService.saveFlightNumber(blockFlights)\r\n .then((result) => {\r\n if (result) {\r\n handleSearch();\r\n addMessage('Block Flight saved successfully', MessageType.Success);\r\n setSelectedRow(null);\r\n } else {\r\n addMessage('Cannot save Block Flight');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const deleteFlightNumber = async (blockedFlightId: number) => {\r\n BlockFlightService.deleteFlightNumber(blockedFlightId)\r\n .then((result) => {\r\n if (result) {\r\n handleSearch();\r\n addMessage(\r\n 'Blocked Flight deleted successfully',\r\n MessageType.Success\r\n );\r\n setSelectedRowToDelete(null);\r\n } else {\r\n addMessage('Cannot save Block Flight');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const saveAirports = async (blockFlight: IBlockFlightAirports) => {\r\n BlockFlightService.saveCountryAirports(blockFlight)\r\n .then((result) => {\r\n if (result) {\r\n handleSearch();\r\n addMessage('Block Flight saved successfully', MessageType.Success);\r\n setSelectedRow(null);\r\n } else {\r\n addMessage('Cannot save Block Flight');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const saveCarrierCode = async (blockFlight: IBlockFlightCarrier) => {\r\n BlockFlightService.saveCarrierCode(blockFlight)\r\n .then((result) => {\r\n if (result) {\r\n handleSearch();\r\n addMessage('Block Flight saved successfully', MessageType.Success);\r\n setSelectedRow(null);\r\n } else {\r\n addMessage('Cannot save Block Flight');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const saveTailNumber = async (blockFlight: IBlockFlightTail) => {\r\n BlockFlightService.saveTailNumber(blockFlight)\r\n .then((result) => {\r\n if (result) {\r\n handleSearch();\r\n addMessage('Block Flight saved successfully', MessageType.Success);\r\n setSelectedRow(null);\r\n } else {\r\n addMessage('Cannot save Block Flight');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n accessor: 'notApplicable',\r\n Cell: ({ row }: any) => row.original.notApplicable && ,\r\n width: '4%',\r\n disableSortBy: true,\r\n },\r\n {\r\n Header: 'Flight date',\r\n accessor: 'flightDate',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n width: '12%',\r\n },\r\n {\r\n Header: 'Flight routing',\r\n accessor: 'routing',\r\n },\r\n {\r\n Header: 'Blocked description',\r\n accessor: 'description',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) =>\r\n row.original.description.split('\\n').map((item: any, idx: any) => {\r\n let routing = item.split('Routing: ');\r\n return (\r\n \r\n {routing?.length == 2 ? (\r\n <>\r\n Routing:{' '}\r\n {routing[1]}\r\n \r\n ) : (\r\n item\r\n )}\r\n \r\n );\r\n }),\r\n },\r\n {\r\n Header: 'Blocked’ period',\r\n accessor: 'fromDate',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n <>\r\n From {' '}\r\n
\r\n {row.original.toDate ? (\r\n <>\r\n To {' '}\r\n \r\n ) : (\r\n ' (no end date)'\r\n )}\r\n \r\n ),\r\n width: '14%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'deleteKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.isException && (\r\n handleDelete(row.original)}\r\n >\r\n Delete this exception\r\n \r\n )}\r\n \r\n ),\r\n width: '9%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.notApplicable ? (\r\n <>\r\n ) : (\r\n handleSeeMore(row.original)}\r\n >\r\n See more\r\n \r\n )}\r\n \r\n ),\r\n width: '10%',\r\n },\r\n ],\r\n [cvTripTypes]\r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n dispatch({\r\n type: BlockFlightActionType.SELECTED_SEARCH_FLIGHT_NUMBER,\r\n payload: e.target.value,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n dispatch({\r\n type: BlockFlightActionType.SELECTED_SEARCH_FLIGHT_DATE,\r\n payload: date ?? null,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Search Flight number\r\n \r\n \r\n \r\n \r\n \r\n {waitResponse && }\r\n\r\n {selectedRow ? (\r\n <>\r\n setSelectedRow(null)}\r\n type=\"button\"\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n \r\n \r\n \r\n \r\n ) : (\r\n data && (\r\n <>\r\n {data.length === 0 ? (\r\n \r\n \r\n \r\n ) : (\r\n {\r\n let classes = '';\r\n if (row.original.notApplicable) {\r\n classes = styles.notApplicable;\r\n }\r\n\r\n if (\r\n alternateColorMapping?.find(\r\n (x) => x.flightDate === row.original.flightDate\r\n )?.alternate\r\n ) {\r\n classes = `${classes} ${styles.alternateRow}`;\r\n } else {\r\n classes = `${classes} ${styles.normalRow}`;\r\n }\r\n\r\n return {\r\n className: classes,\r\n };\r\n }}\r\n />\r\n )}\r\n \r\n )\r\n )}\r\n\r\n \r\n \r\n \r\n You are going to delete this rule\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n \r\n {\r\n hideConfirmationDialog();\r\n }}\r\n />\r\n handleConfirmDelete()}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightSearchTab;\r\n","import React from 'react';\r\n\r\nimport IRoute from '../models/IRoute';\r\nimport BlockFlightCreateTab from '../pages/flightManagement/BlockFlightPage/BlockFlightTab/BlockFlightCreateTab';\r\nimport BlockFlightRulesTab from '../pages/flightManagement/BlockFlightPage/BlockFlightTab/BlockFlightRulesTab';\r\nimport BlockFlightSearchTab from '../pages/flightManagement/BlockFlightPage/BlockFlightTab/BlockFlightSearchTab';\r\nimport PermissionsList from '../utils/PermissionsList';\r\n\r\nconst BlockFlightRoutes: IRoute[] = [\r\n {\r\n path: '/flightManagement/block/new',\r\n name: 'Create Block Flights',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelFlightManagementBlockFlights,\r\n },\r\n {\r\n path: '/flightManagement/block/rules',\r\n name: 'Edit Rules',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelFlightManagementBlockFlights,\r\n },\r\n {\r\n path: '/flightManagement/block/search',\r\n name: 'Search Block Flight',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelFlightManagementBlockFlights,\r\n },\r\n];\r\n\r\nexport default BlockFlightRoutes;\r\n","import React from 'react';\r\n\r\nimport NavTabs from '../../../components/commons/NavTabs/NavTabs';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport Routes from '../../../components/Routes/Routes';\r\nimport BlockFlightRoutes from '../../../routes/BlockFlightRoutes';\r\n\r\ninterface IBlockFlightPageProps {}\r\n\r\nconst BlockFlightPage: React.FC = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightPage;\r\n","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport {Box, Typography} from '@material-ui/core';\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\nimport LinearProgress from '@material-ui/core/LinearProgress/LinearProgress';\r\n\r\nimport FormControl from '../../../../components/commons/FormControl/FormControl';\r\nimport NoResult from '../../../../components/commons/NoResult/NoResult';\r\nimport Searchcomplete from '../../../../components/commons/Searchcomplete/Searchcomplete';\r\nimport Table from '../../../../components/commons/Table/Table';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport useClientAppContext from '../../../../hooks/useClientApp';\r\nimport useSnackbar from '../../../../hooks/useSnackbar';\r\nimport IFlightDeparture from '../../../../models/IFlightDeparture';\r\nimport IOption from '../../../../models/IOption';\r\nimport FlightService from '../../../../services/FlightService';\r\nimport baseStyle from '../../../../styles/styles.module.scss';\r\n\r\nconst DeparturesFromLUXPage: React.FC = () => {\r\n const { airportsTimeZones } = useClientAppContext();\r\n const [departures, setDepartures] = useState(null);\r\n const [waitResponse, setWaitResponse] = useState(false);\r\n const [timezone, setTimezone] = useState('Europe/Luxembourg');\r\n\r\n const [selectedStation, setSelectedStation] = useState({\r\n label: 'LUX',\r\n value: 'LUX',\r\n });\r\n const { addMessage } = useSnackbar();\r\n useEffect(() => {\r\n if (selectedStation) {\r\n setWaitResponse(true);\r\n setTimezone(\r\n airportsTimeZones.find((x) => x.code === selectedStation.value)\r\n ?.timeZone ?? 'Europe/Luxembourg'\r\n );\r\n FlightService.getDepartures(selectedStation?.value)\r\n .then((result) => setDepartures(result))\r\n .catch((error) => addMessage(error.message))\r\n .finally(() => setWaitResponse(false));\r\n }\r\n }, [selectedStation]);\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Date',\r\n accessor: 'date',\r\n Cell: ({ row }: any) =>\r\n moment(row.original.date)\r\n .tz(timezone)\r\n .format('DDMMMYYYY')\r\n .toUpperCase(),\r\n width: '14%',\r\n },\r\n {\r\n Header: 'Flight Number',\r\n accessor: 'flightNumber',\r\n width: '16%',\r\n },\r\n {\r\n Header: 'Dep-Arr',\r\n accessor: 'routing',\r\n },\r\n {\r\n Header: 'Tail Number',\r\n accessor: 'tailNumber',\r\n },\r\n {\r\n Header: 'STD',\r\n accessor: 'std',\r\n Cell: ({ row }: any) =>\r\n row.original.std &&\r\n moment(row.original.std).tz(timezone).format('HH:mm'),\r\n },\r\n {\r\n Header: 'STA',\r\n accessor: 'sta',\r\n Cell: ({ row }: any) =>\r\n row.original.sta &&\r\n moment(row.original.sta).tz(timezone).format('HH:mm'),\r\n },\r\n {\r\n Header: 'ETD',\r\n accessor: 'etd',\r\n Cell: ({ row }: any) => {\r\n let diffDays: number =\r\n moment(row.original.etd).tz(timezone).date() -\r\n moment(row.original.std).tz(timezone).date();\r\n return (\r\n row.original.etd && (\r\n <>\r\n {moment(row.original.etd).tz(timezone).format('HH:mm')}{' '}\r\n {diffDays !== 0 && (\r\n \r\n {diffDays > 0 ? `+${diffDays}` : diffDays}\r\n \r\n )}\r\n \r\n )\r\n );\r\n },\r\n },\r\n {\r\n Header: 'ETA',\r\n accessor: 'eta',\r\n Cell: ({ row }: any) => {\r\n let diffDays: number =\r\n moment(row.original.eta).tz(timezone).date() -\r\n moment(row.original.sta).tz(timezone).date();\r\n return (\r\n row.original.eta && (\r\n <>\r\n {moment(row.original.eta).tz(timezone).format('HH:mm')}{' '}\r\n {diffDays !== 0 && (\r\n \r\n {diffDays > 0 ? `+${diffDays}` : diffDays}\r\n \r\n )}\r\n \r\n )\r\n );\r\n },\r\n width: '6%',\r\n },\r\n ],\r\n [timezone]\r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Departure times are shown in local station time\r\n \r\n \r\n\r\n \r\n \r\n \r\n !!!t.isInactive)\r\n .map((t) => ({ label: t.code, value: t.code }))}\r\n name=\"from\"\r\n placeholder=\"From\"\r\n style={{ width: '150px' }}\r\n value={selectedStation}\r\n onChange={(e, option) => {\r\n if (option?.value != selectedStation?.value) {\r\n setSelectedStation(option);\r\n }\r\n }}\r\n autoHighlight\r\n />\r\n \r\n \r\n \r\n {waitResponse && }\r\n\r\n {departures && (\r\n <>\r\n {departures.length === 0 ? (\r\n \r\n \r\n \r\n ) : (\r\n
\r\n )}\r\n \r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default DeparturesFromLUXPage;\r\n","import React from 'react';\r\n\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nimport PageContent from '../../components/PageContent/PageContent';\r\nimport {useHelpPageContext} from '../../context/HelpPageProvider/HelpPageProvider';\r\nimport {useUserContext} from '../../context/User/UserContext';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\n\r\nconst HelpPage: React.FC = () => {\r\n const { state } = useHelpPageContext();\r\n const userContext = useUserContext();\r\n\r\n return (\r\n \r\n {state?.helpPages\r\n ?.filter((x) => x.roles.indexOf(userContext.roleName) !== -1)\r\n .map((x) => {\r\n return (\r\n \r\n }>\r\n {x.name}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n};\r\nexport default HelpPage;\r\n","import {Moment} from 'moment';\r\n\r\nimport IAlertAuditLog from '../models/AuditLog/IAlertAuditLog';\r\nimport IResevationAuditLog from '../models/AuditLog/IResevationAuditLog';\r\nimport ISecurityAuditLog from '../models/AuditLog/ISecurityAuditLog';\r\n//API Service\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/AuditLog';\r\n\r\nconst AuditLogService = {\r\n getReservationsAuditLogs: (\r\n reservationId: number,\r\n from: Moment | null,\r\n to: Moment | null\r\n ): Promise => {\r\n let fromDate = from?.format('YYYY-MM-DD HH:mm');\r\n let toDate = to?.format('YYYY-MM-DD HH:mm');\r\n return requests.get(\r\n `${API_ENDPOINT}/reservations/${reservationId}/${\r\n fromDate ? `?fromDate=${fromDate}` : ''\r\n }${toDate ? `&toDate=${toDate}` : ''}`\r\n );\r\n },\r\n getAlertsAuditLogs: (\r\n from: Moment | null,\r\n to: Moment | null\r\n ): Promise => {\r\n let fromDate = from?.format('YYYY-MM-DD HH:mm');\r\n let toDate = to?.format('YYYY-MM-DD HH:mm');\r\n return requests.get(\r\n `${API_ENDPOINT}/alerts/?fromDate=${fromDate}${\r\n toDate ? `&toDate=${toDate}` : ''\r\n }`\r\n );\r\n },\r\n getSecurityAuditLogs: (\r\n country: string,\r\n from: Moment | null,\r\n to: Moment | null\r\n ): Promise => {\r\n let fromDate = from?.format('YYYY-MM-DD HH:mm');\r\n let toDate = to?.format('YYYY-MM-DD HH:mm');\r\n if (country)\r\n return requests.get(\r\n `${API_ENDPOINT}/security/${country}/${\r\n fromDate ? `?fromDate=${fromDate}` : ''\r\n }${toDate ? `&toDate=${toDate}` : ''}`\r\n );\r\n return requests.get(\r\n `${API_ENDPOINT}/security/${fromDate ? `?fromDate=${fromDate}` : ''}${\r\n toDate ? `&toDate=${toDate}` : ''\r\n }`\r\n );\r\n },\r\n};\r\nexport default AuditLogService;\r\n","import moment, {Moment} from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport {Typography} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport MuiLink from '@material-ui/core/Link';\r\nimport {MaterialUiPickersDate} from '@material-ui/pickers/typings/date';\r\nimport DatePicker from '../../../../components/commons/DatePicker/DatePicker';\r\nimport DateTime from '../../../../components/commons/DateTime/DateTime';\r\nimport DisplayControl from '../../../../components/commons/DisplayControl/DisplayControl';\r\nimport Drawer from '../../../../components/commons/Drawer/Drawer';\r\nimport DrawerActions from '../../../../components/commons/Drawer/DrawerActions';\r\nimport DrawerButton from '../../../../components/commons/Drawer/DrawerButton';\r\nimport DrawerContent from '../../../../components/commons/Drawer/DrawerContent';\r\nimport DrawerTitle from '../../../../components/commons/Drawer/DrawerTitle';\r\nimport FormControl from '../../../../components/commons/FormControl/FormControl';\r\nimport NoResult from '../../../../components/commons/NoResult/NoResult';\r\nimport SearchButton from '../../../../components/commons/SearchButton/SearchButton';\r\nimport Table from '../../../../components/commons/Table';\r\nimport {useModal} from '../../../../hooks/useModal';\r\nimport useSnackbar from '../../../../hooks/useSnackbar';\r\nimport IAlertAuditLog from '../../../../models/AuditLog/IAlertAuditLog';\r\nimport AuditLogService from '../../../../services/AuditLogService';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\n\r\ninterface IAlertsTabProps {}\r\n\r\nconst AlertsTab: React.FC = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [fromDate, setFromDate] = useState(null);\r\n const [toDate, setToDate] = useState(null);\r\n const [isSearchDisabled, setIsSearchDisabled] = useState(true);\r\n const [data, setData] = useState(null);\r\n const [selectedLog, setSelectedLog] = useState(null);\r\n const {\r\n showModal: showDrawer,\r\n hideModal: hideDrawer,\r\n isVisible: isVisibleDrawer,\r\n } = useModal();\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n if (\r\n fromDate?.isValid() &&\r\n (toDate == null || toDate.isSameOrAfter(fromDate))\r\n ) {\r\n setIsSearchDisabled(false);\r\n } else {\r\n setIsSearchDisabled(true);\r\n }\r\n }, [fromDate, toDate]);\r\n\r\n const handleSearch = () => {\r\n setIsLoading(true);\r\n\r\n AuditLogService.getAlertsAuditLogs(fromDate, toDate)\r\n .then((result) => setData(result))\r\n .catch((error) => addMessage(error.message))\r\n .finally(() => setIsLoading(false));\r\n };\r\n\r\n const handleDisplayLog = async (auditLog: IAlertAuditLog) => {\r\n setSelectedLog(auditLog);\r\n showDrawer();\r\n };\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter') {\r\n handleSearch();\r\n }\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'ID',\r\n accessor: 'key',\r\n width: '7%',\r\n },\r\n {\r\n Header: 'Message',\r\n accessor: 'message',\r\n width: '40%',\r\n Cell: ({ row }: any) => row.original.message.replace(/<[^>]+>/g, ''),\r\n },\r\n {\r\n Header: 'Date',\r\n accessor: 'createdAt',\r\n Cell: ({ row }: any) => {\r\n return (\r\n \r\n );\r\n },\r\n width: '15%',\r\n },\r\n {\r\n Header: 'User name',\r\n accessor: 'userName',\r\n width: '20%',\r\n },\r\n {\r\n Header: 'Action',\r\n accessor: 'action',\r\n width: '10%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n {\r\n handleDisplayLog(row.original);\r\n }}\r\n >\r\n See more\r\n \r\n \r\n ),\r\n width: '8%',\r\n },\r\n ],\r\n []\r\n );\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n setFromDate(date ? date.startOf('d') : null)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setToDate(date ? date.endOf('d') : null)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Search logs\r\n \r\n \r\n \r\n \r\n \r\n {isLoading && }\r\n {!isLoading &&\r\n data &&\r\n (data.length > 0 ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n Audit details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n {selectedLog?.description.split('\\n').map((item, idx) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AlertsTab;\r\n","import {Moment} from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport {Typography} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport MuiLink from '@material-ui/core/Link';\r\nimport {MaterialUiPickersDate} from '@material-ui/pickers/typings/date';\r\n\r\nimport DatePicker from '../../../../components/commons/DatePicker/DatePicker';\r\nimport DateTime from '../../../../components/commons/DateTime/DateTime';\r\nimport DisplayControl from '../../../../components/commons/DisplayControl/DisplayControl';\r\nimport Drawer from '../../../../components/commons/Drawer/Drawer';\r\nimport DrawerActions from '../../../../components/commons/Drawer/DrawerActions';\r\nimport DrawerButton from '../../../../components/commons/Drawer/DrawerButton';\r\nimport DrawerContent from '../../../../components/commons/Drawer/DrawerContent';\r\nimport DrawerTitle from '../../../../components/commons/Drawer/DrawerTitle';\r\nimport FormControl from '../../../../components/commons/FormControl/FormControl';\r\nimport NoResult from '../../../../components/commons/NoResult/NoResult';\r\nimport SearchButton from '../../../../components/commons/SearchButton/SearchButton';\r\nimport Table from '../../../../components/commons/Table';\r\nimport TextField from '../../../../components/commons/TextField/TextField';\r\nimport {useModal} from '../../../../hooks/useModal';\r\nimport useSnackbar from '../../../../hooks/useSnackbar';\r\nimport IResevationAuditLog from '../../../../models/AuditLog/IResevationAuditLog';\r\nimport AuditLogService from '../../../../services/AuditLogService';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\n\r\ninterface IReservationsTabProps {}\r\n\r\ntype colorMap = { reservationNumber: number; alternate: boolean };\r\nconst ReservationsTab: React.FC = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [reservationNumber, setReservationNumber] = useState('');\r\n const [fromDate, setFromDate] = useState(null);\r\n const [toDate, setToDate] = useState(null);\r\n const [isSearchDisabled, setIsSearchDisabled] = useState(true);\r\n const [data, setData] = useState(null);\r\n const [selectedLog, setSelectedLog] = useState(\r\n null\r\n );\r\n const {\r\n showModal: showDrawer,\r\n hideModal: hideDrawer,\r\n isVisible: isVisibleDrawer,\r\n } = useModal();\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n if (\r\n (reservationNumber.trim()?.length > 0 || fromDate?.isValid()) &&\r\n (toDate == null || toDate.isSameOrAfter(fromDate))\r\n ) {\r\n setIsSearchDisabled(false);\r\n } else {\r\n setIsSearchDisabled(true);\r\n }\r\n }, [reservationNumber, fromDate, toDate]);\r\n\r\n const handleReservationNumberChange = (\r\n e: React.ChangeEvent\r\n ) => {\r\n const regex = /^[0-9]*$/;\r\n if (\r\n e.target.value?.length < 20 &&\r\n (e.target.value?.length === 0 || regex.test(e.target.value))\r\n ) {\r\n setReservationNumber(e.target.value);\r\n }\r\n };\r\n\r\n const handleSearch = () => {\r\n setIsLoading(true);\r\n var reservationId =\r\n reservationNumber.length > 0 ? parseInt(reservationNumber) : 0;\r\n\r\n AuditLogService.getReservationsAuditLogs(reservationId, fromDate, toDate)\r\n .then((result) => setData(result))\r\n .catch((error) => addMessage(error.message))\r\n .finally(() => setIsLoading(false));\r\n };\r\n\r\n const handleDisplayLog = async (auditLog: IResevationAuditLog) => {\r\n setSelectedLog(auditLog);\r\n showDrawer();\r\n };\r\n\r\n const alternateColorMapping = data?.reduce(\r\n (acc: colorMap[], curr: IResevationAuditLog) => {\r\n return acc.some((el) => el.reservationNumber === curr.reservationNumber)\r\n ? acc\r\n : [\r\n ...acc,\r\n {\r\n reservationNumber: curr.reservationNumber,\r\n alternate:\r\n acc.length === 0 ? false : !acc[acc.length - 1].alternate,\r\n },\r\n ];\r\n },\r\n []\r\n );\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter') {\r\n handleSearch();\r\n }\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Reservation N.',\r\n accessor: 'reservationNumber',\r\n width: '6%',\r\n },\r\n {\r\n Header: 'Date',\r\n accessor: 'createdAt',\r\n Cell: ({ row }: any) => {\r\n return (\r\n \r\n );\r\n },\r\n width: '7%',\r\n },\r\n {\r\n Header: 'User name',\r\n accessor: 'userName',\r\n width: '10%',\r\n },\r\n {\r\n Header: 'Table',\r\n accessor: 'table',\r\n width: '10%',\r\n },\r\n {\r\n Header: 'Action',\r\n accessor: 'action',\r\n width: '5%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n {\r\n handleDisplayLog(row.original);\r\n }}\r\n >\r\n See more\r\n \r\n \r\n ),\r\n width: '5%',\r\n },\r\n ],\r\n []\r\n );\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setFromDate(date ? date.startOf('d') : null)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setToDate(date ? date.endOf('d') : null)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Search logs\r\n \r\n \r\n \r\n \r\n \r\n {isLoading && }\r\n {!isLoading &&\r\n data &&\r\n (data.length > 0 ? (\r\n {\r\n if (\r\n alternateColorMapping?.find(\r\n (x) =>\r\n +x.reservationNumber === +row.original.reservationNumber\r\n )?.alternate\r\n ) {\r\n return {\r\n className: `${baseStyles.alternateRow}`,\r\n };\r\n } else {\r\n return {\r\n className: `${baseStyles.row}`,\r\n };\r\n }\r\n }}\r\n />\r\n ) : (\r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n \r\n Audit log for Reservation number {selectedLog?.reservationNumber}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Travelers\r\n \r\n \r\n {selectedLog?.travelers.split(',').map((item, idx) => {\r\n return (\r\n \r\n {item}\r\n \r\n );\r\n })}\r\n \r\n \r\n Description\r\n \r\n \r\n {selectedLog?.description.split('\\n').map((item, idx) => {\r\n return (\r\n \r\n {item}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReservationsTab;\r\n","import React from 'react';\r\n\r\nimport IRoute from '../models/IRoute';\r\nimport AlertsTab from '../pages/reporting/auditLog/AlertsTab';\r\nimport ReservationsTab from '../pages/reporting/auditLog/ReservationsTab';\r\nimport PermissionsList from '../utils/PermissionsList';\r\n\r\nconst AlertLogRoutes: IRoute[] = [\r\n {\r\n path: '/reporting/audit/reservations',\r\n name: 'Reservations',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelReportingAuditLog,\r\n },\r\n {\r\n path: '/reporting/audit/alerts',\r\n name: 'Alerts',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelReportingAuditLog,\r\n },\r\n];\r\n\r\nexport default AlertLogRoutes;\r\n","import React from 'react';\r\n\r\nimport NavTabs from '../../../components/commons/NavTabs/NavTabs';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport Routes from '../../../components/Routes/Routes';\r\nimport AuditlogRoutes from '../../../routes/AuditLogRoutes';\r\n\r\ninterface IAuditLogPageProps {}\r\n\r\nconst AuditLogPage: React.FC = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AuditLogPage;\r\n","import React from 'react';\r\nimport {Link} from 'react-router-dom';\r\n\r\nimport {LinearProgress} from '@material-ui/core';\r\nimport MuiLink from '@material-ui/core/Link';\r\n\r\nimport {useUserContext} from '../../../context/User/UserContext';\r\nimport {IAviationInsuranceItem} from '../../../models/Reports/IAviationInsuranceItem';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\nimport Table from '../../commons/Table/Table';\r\n\r\nexport interface IAviationInsuranceGridProps {\r\n data: IAviationInsuranceItem[];\r\n}\r\n\r\nconst AviationinsuranceGrid: React.FC = ({\r\n data,\r\n}) => {\r\n const { permissions } = useUserContext();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Res. N.',\r\n accessor: 'reservationId',\r\n width: '33%',\r\n Cell: ({ row }: any) => {\r\n if (\r\n permissions &&\r\n permissions.includes(\r\n PermissionsList.eTravelReservationConsultReservation\r\n )\r\n ) {\r\n return (\r\n \r\n \r\n {row.original.reservationId}\r\n \r\n \r\n );\r\n }\r\n return row.original.reservationId;\r\n },\r\n },\r\n {\r\n Header: 'PAX',\r\n width: '33%',\r\n accessor: 'pax',\r\n },\r\n {\r\n Header: 'Carrier',\r\n width: '33%',\r\n accessor: 'carrierCode',\r\n },\r\n ],\r\n []\r\n );\r\n\r\n return (\r\n <>\r\n {data.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AviationinsuranceGrid;\r\n","import IPriority from '../models/IPriority';\r\nimport ITraveler from '../models/ITraveler';\r\nimport IAccountingReportMail from '../models/Reports/IAccountingReportMail';\r\nimport {IAviationInsuranceItem} from '../models/Reports/IAviationInsuranceItem';\r\nimport INoShowConfirmedItem from '../models/Reports/INoShowConfirmedItem';\r\nimport {IPassengersToBeInvoicedItem} from '../models/Reports/IPassengersToBeInvoicedItem';\r\nimport {ISpecialFeesItem} from '../models/Reports/ISpecialFeesItem';\r\nimport ITravelReport, {ITravelReportSearch,} from '../models/Reports/ITravelReport';\r\nimport {IWarningListItem} from '../models/Reports/IWarningListItem';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/Reporting';\r\n\r\nconst ReportingService = {\r\n getWarningListReport: (\r\n fromDate: Date,\r\n type: string,\r\n toDate?: Date\r\n ): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/warninglist?from=${fromDate.toISOString()}&type=${type}${\r\n toDate ? `&to=${toDate.toISOString()}` : ''\r\n }`\r\n ),\r\n getNoShowConfirmedReport: (\r\n fromDate: Date,\r\n toDate: Date,\r\n type: string,\r\n onLoad?: string,\r\n offLoad?: string\r\n ): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/noshowConfirmed?from=${fromDate.toISOString()}&type=${type}&to=${toDate.toISOString()}&onLoad=${\r\n onLoad ?? ''\r\n }&offLoad=${offLoad ?? ''}`\r\n ),\r\n getAviationInsuranceReport: (\r\n fromDate: Date,\r\n toDate: Date\r\n ): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/aviationInsurance?from=${fromDate.toISOString()}&to=${toDate.toISOString()}`\r\n ),\r\n getPassengersToBeInvoicedReport: (\r\n month: number,\r\n year: number\r\n ): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/accounting/passengersToBeInvoiced?month=${month}&year=${year}`\r\n ),\r\n sendPassengersToBeInvoicedReport: (\r\n mail: IAccountingReportMail\r\n ): Promise =>\r\n requests.post(\r\n `${API_ENDPOINT}/accounting/passengersToBeInvoiced/mail`,\r\n mail\r\n ),\r\n getSpecialFeesReport: (\r\n month: number,\r\n year: number\r\n ): Promise =>\r\n requests.get(\r\n `${API_ENDPOINT}/accounting/specialFees?month=${month}&year=${year}`\r\n ),\r\n sendSpecialFeesReport: (mail: IAccountingReportMail): Promise =>\r\n requests.post(`${API_ENDPOINT}/accounting/specialFees/mail`, mail),\r\n getTravelReport: (\r\n searchReport: ITravelReportSearch\r\n ): Promise => {\r\n return requests.post(`${API_ENDPOINT}/travelReport`, searchReport);\r\n },\r\n exportTravelReport: (searchReport: ITravelReportSearch): Promise => {\r\n return requests.post(`${API_ENDPOINT}/travelReport/export`, searchReport, {\r\n responseType: 'blob',\r\n });\r\n },\r\n getTravelers: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/travelers`),\r\n getPriorities: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/priorities`),\r\n};\r\nexport default ReportingService;\r\n","import moment, {Moment} from 'moment';\r\nimport React, {useState} from 'react';\r\n\r\nimport {Box, Grid, LinearProgress, Typography} from '@material-ui/core';\r\nimport {MaterialUiPickersDate} from '@material-ui/pickers/typings/date';\r\n\r\nimport DatePicker from '../../../components/commons/DatePicker/DatePicker';\r\nimport FormControl from '../../../components/commons/FormControl/FormControl';\r\nimport NoResult from '../../../components/commons/NoResult/NoResult';\r\nimport SearchButton from '../../../components/commons/SearchButton/SearchButton';\r\nimport Select from '../../../components/commons/Select/Select';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport AviationInsuranceGrid from '../../../components/Reporting/AviationInsurance/AviationInsuranceGrid';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport {IAviationInsuranceItem} from '../../../models/Reports/IAviationInsuranceItem';\r\nimport ReportingService from '../../../services/ReportingService';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\n\r\nenum CarrierCode {\r\n ALL = 'ALL',\r\n CV = 'CV',\r\n CVI = 'CVI',\r\n}\r\n\r\ntype SearchCriterion = {\r\n fromDate: Moment | null;\r\n toDate: Moment | null;\r\n carrierCode: CarrierCode;\r\n};\r\n\r\ntype AviationInsuranceState = {\r\n data: IAviationInsuranceItem[];\r\n filteredData: IAviationInsuranceItem[];\r\n isLoading: boolean;\r\n hasSearch: boolean;\r\n searchCriterion: SearchCriterion;\r\n};\r\n\r\nconst initialSearchCriterion = {\r\n fromDate: null,\r\n toDate: null,\r\n carrierCode: CarrierCode.ALL,\r\n};\r\nconst initialState = {\r\n data: [],\r\n filteredData: [],\r\n isLoading: false,\r\n hasSearch: false,\r\n searchCriterion: initialSearchCriterion,\r\n};\r\n\r\nconst AviationInsuranceReportPage: React.FC = () => {\r\n const [state, setState] = useState(initialState);\r\n const breakpoint = useBreakpoint();\r\n const { addMessage } = useSnackbar();\r\n\r\n const handleSearch = () => {\r\n if (validSearchCriterion) {\r\n setState({ ...state, isLoading: true });\r\n ReportingService.getAviationInsuranceReport(\r\n state.searchCriterion.fromDate!.toDate(),\r\n state.searchCriterion.toDate!.toDate()\r\n )\r\n .then((data) => {\r\n setState({\r\n ...state,\r\n isLoading: false,\r\n data: data,\r\n filteredData: data,\r\n hasSearch: true,\r\n searchCriterion: {\r\n ...state.searchCriterion,\r\n carrierCode: CarrierCode.ALL,\r\n },\r\n });\r\n })\r\n .catch((error) => {\r\n setState({ ...state, isLoading: false, hasSearch: true });\r\n addMessage(error.message);\r\n });\r\n }\r\n };\r\n\r\n const validSearchCriterion =\r\n state.searchCriterion.fromDate !== null &&\r\n state.searchCriterion.toDate !== null &&\r\n state.searchCriterion.fromDate < state.searchCriterion.toDate;\r\n\r\n const validDate = (e: MaterialUiPickersDate): Moment | null =>\r\n e ? (e.isValid() ? moment(e.toDate()).startOf('day') : null) : null;\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' && validSearchCriterion) {\r\n handleSearch();\r\n }\r\n };\r\n\r\n const CVCount = state.filteredData.reduce(\r\n (acc, curr) =>\r\n acc +\r\n (curr.carrierCode === CarrierCode.CV ||\r\n curr.carrierCode === CarrierCode.ALL\r\n ? curr.pax\r\n : 0),\r\n 0\r\n );\r\n\r\n const CVICount = state.filteredData.reduce(\r\n (acc, curr) =>\r\n acc +\r\n (curr.carrierCode === CarrierCode.CVI ||\r\n curr.carrierCode === CarrierCode.ALL\r\n ? curr.pax\r\n : 0),\r\n 0\r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setState({\r\n ...state,\r\n hasSearch: false,\r\n searchCriterion: {\r\n ...state.searchCriterion,\r\n fromDate: validDate(e),\r\n },\r\n data: [],\r\n });\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n setState({\r\n ...state,\r\n hasSearch: false,\r\n searchCriterion: {\r\n ...state.searchCriterion,\r\n toDate: validDate(e),\r\n },\r\n data: [],\r\n });\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n Search reservation\r\n \r\n \r\n \r\n \r\n\r\n {state.isLoading ? (\r\n \r\n ) : state.data && state.data.length === 0 ? (\r\n state.hasSearch ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )\r\n ) : (\r\n <>\r\n \r\n \r\n Filter by\r\n \r\n \r\n {\r\n const nextVal = e.target.value as CarrierCode;\r\n setState({\r\n ...state,\r\n searchCriterion: {\r\n ...state.searchCriterion,\r\n carrierCode: nextVal,\r\n },\r\n filteredData: state.data.filter(\r\n (item) =>\r\n nextVal === CarrierCode.ALL ||\r\n item.carrierCode === nextVal\r\n ),\r\n });\r\n }}\r\n />\r\n \r\n \r\n \r\n {CVCount > 0 && (\r\n \r\n \r\n \r\n Total PAX on CV Flights:\r\n \r\n {CVCount}\r\n \r\n \r\n )}\r\n {CVICount > 0 && (\r\n \r\n \r\n \r\n Total PAX on CVI Flights:\r\n \r\n {CVICount}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AviationInsuranceReportPage;\r\n","import moment from 'moment';\r\nimport React from 'react';\r\n\r\nimport {ButtonBase, LinearProgress, Link} from '@material-ui/core';\r\n\r\nimport {useUserContext} from '../../../context/User/UserContext';\r\nimport useComment from '../../../hooks/useComment';\r\nimport usePassengerListRedirect from '../../../hooks/usePassengerListRedirect';\r\nimport useReservationRedirect, {ReservationRedirectOrigin,} from '../../../hooks/useReservationRedirect';\r\nimport IPassengerUpdateComment from '../../../models/DailyTasks/PassengerList/IPassengerUpdateComment';\r\nimport IMember from '../../../models/IMember';\r\nimport INoShowConfirmedItem from '../../../models/Reports/INoShowConfirmedItem';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport Table from '../../commons/Table/Table';\r\nimport styles from './NoShowConfirmed.module.scss';\r\n\r\nexport interface INoShowConfirmedGridProps {\r\n plannerMembers: IMember[];\r\n data: INoShowConfirmedItem[];\r\n type: string;\r\n onUpdateComment: (comment: IPassengerUpdateComment) => void;\r\n}\r\n\r\nconst NoShowConfirmedGrid: React.FC = ({\r\n data,\r\n plannerMembers,\r\n type,\r\n onUpdateComment,\r\n}) => {\r\n const { permissions } = useUserContext();\r\n const canUpdateComment = permissions.includes(\r\n PermissionsList.eTravelDailyTasksPassengerList\r\n );\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Date',\r\n width: '12%',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Flight Number',\r\n width: '12%',\r\n Cell: ({ row }: any) => {\r\n const { redirect, allowed } = usePassengerListRedirect({\r\n flightDesc: row.original.flightDesc,\r\n flightDate: moment(row.original.etd).startOf('day').toDate(),\r\n });\r\n return (\r\n <>\r\n {allowed ? (\r\n \r\n \r\n \r\n {row.original.flightDesc}\r\n \r\n \r\n \r\n ) : (\r\n \r\n {row.original.flightDesc}\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'Res. N.',\r\n accessor: 'reservationId',\r\n width: '12%',\r\n Cell: ({ row }: any) => {\r\n const { redirect, allowed } = useReservationRedirect(\r\n { ...row.original },\r\n true,\r\n plannerMembers,\r\n ReservationRedirectOrigin.NoShowConfirmed\r\n );\r\n return (\r\n <>\r\n {allowed ? (\r\n \r\n \r\n \r\n {row.original.reservationId}\r\n \r\n \r\n \r\n ) : (\r\n \r\n {row.original.reservationId}\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'Leg',\r\n width: '12%',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.origin} - {row.original.destination}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Traveler',\r\n width: '22%',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.firstName} {row.original.lastName}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Phone',\r\n width: '18%',\r\n Cell: ({ row }: any) => (\r\n {row.original.phone}\r\n ),\r\n },\r\n {\r\n Header: 'Comments',\r\n width: '12%',\r\n Cell: ({ row }: any) => {\r\n const { CommentIconWithDialog } = useComment({\r\n title: type,\r\n value: row.original.comment,\r\n badgeClassName: styles.iconButton,\r\n numericalBadge: true,\r\n size: 25,\r\n readonly: !canUpdateComment,\r\n onSave: (comment: string) => {\r\n onUpdateComment({\r\n reservationId: row.original.reservationId,\r\n cvFlightId: row.original.cvFlightId,\r\n memberId: row.original.memberId,\r\n comment: comment,\r\n });\r\n },\r\n });\r\n return ;\r\n },\r\n },\r\n ],\r\n []\r\n );\r\n\r\n return (\r\n <>\r\n {data.length > 0 ? (\r\n
\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default NoShowConfirmedGrid;\r\n","import _ from 'lodash';\r\nimport moment, {Moment} from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport {Box, Grid, LinearProgress} from '@material-ui/core';\r\nimport {MaterialUiPickersDate} from '@material-ui/pickers/typings/date';\r\n\r\nimport DatePicker from '../../../components/commons/DatePicker/DatePicker';\r\nimport FormControl from '../../../components/commons/FormControl/FormControl';\r\nimport NoResult from '../../../components/commons/NoResult/NoResult';\r\nimport SearchButton from '../../../components/commons/SearchButton/SearchButton';\r\nimport TextField from '../../../components/commons/TextField/TextField';\r\nimport ToggleButtons from '../../../components/commons/ToggleButtons/ToggleButtons';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport NoShowConfirmedGrid from '../../../components/Reporting/NoShowConfirmed/NoShowConfirmedGrid';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IPassengerUpdateComment from '../../../models/DailyTasks/PassengerList/IPassengerUpdateComment';\r\nimport IMember from '../../../models/IMember';\r\nimport INoShowConfirmedItem from '../../../models/Reports/INoShowConfirmedItem';\r\nimport PassengerService from '../../../services/PassengerService';\r\nimport ReportingService from '../../../services/ReportingService';\r\nimport ReservationService from '../../../services/ReservationService';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport {MessageType} from '../../../utils/MessageType';\r\n\r\nenum ReportType {\r\n NO_SHOW = 'noshow',\r\n NOT_CONFIRMED = 'notconfirmed',\r\n}\r\n\r\ntype SearchCriterion = {\r\n fromDate: Moment | null;\r\n toDate: Moment | null;\r\n reportType: ReportType;\r\n onLoad?: string;\r\n offLoad?: string;\r\n};\r\n\r\ntype NoShowConfirmedState = {\r\n data: INoShowConfirmedItem[];\r\n plannerMembers: IMember[];\r\n isLoading: boolean;\r\n hasSearch: boolean;\r\n searchCriterion: SearchCriterion;\r\n};\r\n\r\nconst initialSearchCriterion = {\r\n fromDate: null,\r\n toDate: null,\r\n reportType: ReportType.NO_SHOW,\r\n};\r\nconst initialState = {\r\n data: [],\r\n isLoading: false,\r\n hasSearch: false,\r\n searchCriterion: initialSearchCriterion,\r\n plannerMembers: [],\r\n};\r\n\r\nconst NoShowConfirmedReportPage: React.FC = () => {\r\n const [state, setState] = useState(initialState);\r\n const breakpoint = useBreakpoint();\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n ReservationService.getPlannerMembers()\r\n .then((members) => setState({ ...state, plannerMembers: members }))\r\n .catch((error) => addMessage(error.message));\r\n }, []);\r\n\r\n const handleSearch = () => {\r\n if (validSearchCriterion) {\r\n setState({ ...state, isLoading: true });\r\n ReportingService.getNoShowConfirmedReport(\r\n state.searchCriterion.fromDate!.toDate(),\r\n state.searchCriterion.toDate!.toDate(),\r\n state.searchCriterion.reportType,\r\n state.searchCriterion.onLoad,\r\n state.searchCriterion.offLoad\r\n )\r\n .then((data) => {\r\n setState({ ...state, isLoading: false, data: data, hasSearch: true });\r\n })\r\n .catch((error) => {\r\n setState({ ...state, isLoading: false, hasSearch: true });\r\n addMessage(error.message);\r\n });\r\n }\r\n };\r\n\r\n const handleUpdateComment = (comment: IPassengerUpdateComment) => {\r\n PassengerService.updateComment(comment)\r\n .then((result) => {\r\n if (result) {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n\r\n let dataCopy = _.cloneDeep(state.data);\r\n dataCopy.forEach((x) => {\r\n if (\r\n x.memberId === comment.memberId &&\r\n x.reservationId === comment.reservationId\r\n ) {\r\n x.comment = comment.comment;\r\n }\r\n });\r\n setState({ ...state, data: dataCopy });\r\n } else {\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n })\r\n .catch(() => {\r\n addMessage(Constants.messages.error.savingData);\r\n });\r\n };\r\n const validSearchCriterion =\r\n state.searchCriterion.fromDate !== null &&\r\n state.searchCriterion.toDate !== null &&\r\n state.searchCriterion.fromDate < state.searchCriterion.toDate;\r\n\r\n const validDate = (e: MaterialUiPickersDate): Moment | null =>\r\n e ? (e.isValid() ? moment(e.toDate()).startOf('day') : null) : null;\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' && validSearchCriterion) {\r\n handleSearch();\r\n }\r\n };\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setState({\r\n ...state,\r\n hasSearch: false,\r\n searchCriterion: {\r\n ...state.searchCriterion,\r\n fromDate: validDate(e),\r\n },\r\n data: [],\r\n });\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n setState({\r\n ...state,\r\n hasSearch: false,\r\n searchCriterion: {\r\n ...state.searchCriterion,\r\n toDate: validDate(e),\r\n },\r\n data: [],\r\n });\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setState({\r\n ...state,\r\n hasSearch: false,\r\n searchCriterion: {\r\n ...state.searchCriterion,\r\n onLoad: e.target.value,\r\n },\r\n data: [],\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setState({\r\n ...state,\r\n hasSearch: false,\r\n searchCriterion: {\r\n ...state.searchCriterion,\r\n offLoad: e.target.value,\r\n },\r\n data: [],\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setState({\r\n ...state,\r\n hasSearch: false,\r\n searchCriterion: {\r\n ...state.searchCriterion,\r\n reportType: value,\r\n },\r\n data: [],\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n Search travelers\r\n \r\n \r\n \r\n \r\n {state.isLoading ? (\r\n \r\n ) : state.data && state.data.length === 0 ? (\r\n state.hasSearch ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default NoShowConfirmedReportPage;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {Controller} from 'react-hook-form';\r\n\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport MuiSelect from '@material-ui/core/Select';\r\n\r\nimport Checkbox from '../Checkbox';\r\n\r\nconst MultiSelect: React.FC = ({ ...props }) => {\r\n const {\r\n required,\r\n label,\r\n name,\r\n onChange,\r\n onBlur,\r\n value,\r\n options,\r\n variant = 'outlined',\r\n color = 'primary',\r\n margin = 'none',\r\n fullWidth = true,\r\n defaultValue,\r\n control,\r\n formControlClassName,\r\n ...other\r\n } = props;\r\n const id = `sel_${name}`;\r\n const inputLabel = React.useRef(null);\r\n const [labelWidth, setLabelWidth] = useState(0);\r\n const [tempValue, setTempValue] = useState([]);\r\n const [checkboxState, setCheckboxState] = useState(defaultValue);\r\n\r\n useEffect(() => {\r\n setLabelWidth(inputLabel.current!.offsetWidth);\r\n }, []);\r\n\r\n useEffect(() => {\r\n value && setTempValue(value);\r\n }, [value]);\r\n\r\n const handleOnBlur = () => {\r\n if (onBlur) {\r\n onBlur(tempValue);\r\n }\r\n };\r\n\r\n const watchedValue = control?.watchInternal(name);\r\n useEffect(() => {\r\n setCheckboxState(watchedValue);\r\n }, [watchedValue]);\r\n return (\r\n \r\n {label}\r\n\r\n {control ? (\r\n {\r\n return values\r\n .map((v) => options.find((o: any) => o.value === v)?.label)\r\n .join(', ');\r\n }}\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n {...other}\r\n >\r\n {options.map((item: any) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n }\r\n control={control}\r\n defaultValue={defaultValue}\r\n name={name}\r\n onClick={(event: React.ChangeEvent<{ value: unknown }>) => {\r\n if (event.target.value) {\r\n let selectedValues: string[] = event.target.value as string[];\r\n let newValue =\r\n selectedValues.length == 0 ||\r\n (selectedValues.includes('All') && checkboxState?.length > 1)\r\n ? ['All']\r\n : selectedValues.filter((x) => x != 'All');\r\n control.setValue(name, newValue);\r\n }\r\n return event.target.value;\r\n }}\r\n />\r\n ) : (\r\n setTempValue(event.target.value)\r\n }\r\n value={tempValue}\r\n required={required}\r\n inputProps={{\r\n name,\r\n id: `input_${id}`,\r\n }}\r\n MenuProps={{\r\n onExited: handleOnBlur,\r\n getContentAnchorEl: null,\r\n }}\r\n renderValue={(values: any[]) => {\r\n return values\r\n .map((v) => options.find((o: any) => o.value === v)?.label)\r\n .join(', ');\r\n }}\r\n //eslint-disable-next-line react/jsx-props-no-spreading\r\n {...other}\r\n >\r\n {options.map((item: any) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n )}\r\n \r\n );\r\n};\r\nexport default MultiSelect;\r\n","import React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ITravelReportCar} from '../../../models/Reports/ITravelReport';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport Table from '../../commons/Table/Table';\r\n\r\ninterface ITravelReportCarProps {\r\n cars: ITravelReportCar[];\r\n}\r\n\r\ntype ColorMap = { key: any; alternate: boolean };\r\n\r\nconst TravelReportCar: React.FC = ({ cars }) => {\r\n const alternateColorMapping = cars?.reduce(\r\n (acc: ColorMap[], curr: ITravelReportCar) => {\r\n return acc.some((el) => el.key === curr.rentalCompany)\r\n ? acc\r\n : [\r\n ...acc,\r\n {\r\n key: curr.rentalCompany,\r\n alternate:\r\n acc.length === 0 ? false : !acc[acc.length - 1].alternate,\r\n },\r\n ];\r\n },\r\n []\r\n );\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Pick Up date',\r\n accessor: 'pickUpDate',\r\n width: '20%',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Pick Up location',\r\n accessor: 'pickUpLocation',\r\n },\r\n {\r\n Header: 'Car type',\r\n accessor: 'carType',\r\n width: '25%',\r\n },\r\n {\r\n Header: 'Status',\r\n accessor: 'status',\r\n width: '18%',\r\n },\r\n ],\r\n []\r\n );\r\n return (\r\n \r\n Car\r\n {\r\n if (\r\n alternateColorMapping &&\r\n alternateColorMapping.find(\r\n (x) => x.key === row.original.rentalCompany\r\n )?.alternate\r\n ) {\r\n return {\r\n className: `${baseStyles.backgroundAlternateRow}`,\r\n };\r\n } else {\r\n return {\r\n className: `${baseStyles.backgroundRow}`,\r\n };\r\n }\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default TravelReportCar;\r\n","import React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ITravelReportCVFlight} from '../../../models/Reports/ITravelReport';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport Table from '../../commons/Table/Table';\r\n\r\ninterface ITravelReportCVFightProps {\r\n cvFlights: ITravelReportCVFlight[];\r\n}\r\n\r\ntype ColorMap = { key: any; alternate: boolean };\r\n\r\nconst TravelReportCVFight: React.FC = ({\r\n cvFlights,\r\n}) => {\r\n const alternateColorMapping = cvFlights?.reduce(\r\n (acc: ColorMap[], curr: ITravelReportCVFlight) => {\r\n return acc.some((el) => el.key === curr.cvFlight)\r\n ? acc\r\n : [\r\n ...acc,\r\n {\r\n key: curr.cvFlight,\r\n alternate:\r\n acc.length === 0 ? false : !acc[acc.length - 1].alternate,\r\n },\r\n ];\r\n },\r\n []\r\n );\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Priority',\r\n accessor: 'priority',\r\n width: '20%',\r\n },\r\n {\r\n Header: 'Flight N.',\r\n accessor: 'cvFlight',\r\n },\r\n {\r\n Header: 'Dep. date',\r\n accessor: 'flightDate',\r\n width: '18%',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Onload',\r\n accessor: 'onload',\r\n width: '16%',\r\n },\r\n {\r\n Header: 'Offload',\r\n accessor: 'offload',\r\n width: '16%',\r\n },\r\n {\r\n Header: 'Status',\r\n accessor: 'status',\r\n width: '18%',\r\n },\r\n ],\r\n []\r\n );\r\n return (\r\n \r\n CV Flight\r\n {\r\n if (\r\n alternateColorMapping &&\r\n alternateColorMapping.find((x) => x.key === row.original.cvFlight)\r\n ?.alternate\r\n ) {\r\n return {\r\n className: `${baseStyles.backgroundAlternateRow}`,\r\n };\r\n } else {\r\n return {\r\n className: `${baseStyles.backgroundRow}`,\r\n };\r\n }\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default TravelReportCVFight;\r\n","import React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ITravelReportHotel} from '../../../models/Reports/ITravelReport';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport Table from '../../commons/Table/Table';\r\n\r\ninterface ITravelReportHotelProps {\r\n hotels: ITravelReportHotel[];\r\n}\r\n\r\ntype ColorMap = { key: any; alternate: boolean };\r\n\r\nconst TravelReportHotel: React.FC = ({ hotels }) => {\r\n const alternateColorMapping = hotels?.reduce(\r\n (acc: ColorMap[], curr: ITravelReportHotel) => {\r\n return acc.some((el) => el.key === curr.hotelName)\r\n ? acc\r\n : [\r\n ...acc,\r\n {\r\n key: curr.hotelName,\r\n alternate:\r\n acc.length === 0 ? false : !acc[acc.length - 1].alternate,\r\n },\r\n ];\r\n },\r\n []\r\n );\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Check-In',\r\n accessor: 'checkIn',\r\n width: '20%',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: 'City',\r\n accessor: 'city',\r\n },\r\n {\r\n Header: 'Room type',\r\n accessor: 'roomType',\r\n width: '25%',\r\n },\r\n {\r\n Header: 'Status',\r\n accessor: 'status',\r\n width: '18%',\r\n },\r\n ],\r\n []\r\n );\r\n return (\r\n \r\n Hotel\r\n {\r\n if (\r\n alternateColorMapping &&\r\n alternateColorMapping.find((x) => x.key === row.original.hotelName)\r\n ?.alternate\r\n ) {\r\n return {\r\n className: `${baseStyles.backgroundAlternateRow}`,\r\n };\r\n } else {\r\n return {\r\n className: `${baseStyles.backgroundRow}`,\r\n };\r\n }\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default TravelReportHotel;\r\n","import React from 'react';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport ITravelReport from '../../../models/Reports/ITravelReport';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport DisplayControl from '../../commons/DisplayControl/DisplayControl';\r\nimport Drawer from '../../commons/Drawer/Drawer';\r\nimport DrawerActions from '../../commons/Drawer/DrawerActions';\r\nimport DrawerButton from '../../commons/Drawer/DrawerButton';\r\nimport DrawerCancelButton from '../../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../../commons/Drawer/DrawerContent';\r\nimport DrawerTitle from '../../commons/Drawer/DrawerTitle';\r\nimport {TravelReportCommercial} from './';\r\nimport TravelReportCar from './TravelReportCar';\r\nimport TravelReportCVFight from './TravelReportCVFight';\r\nimport TravelReportHotel from './TravelReportHotel';\r\nimport Constants from '../../../utils/Constants';\r\n\r\ninterface ITravelReportDrawerProps {\r\n travelReport: ITravelReport;\r\n isVisible: boolean;\r\n onClose: () => void;\r\n}\r\n\r\nconst TravelReportDrawer: React.FC = ({\r\n travelReport,\r\n isVisible,\r\n onClose,\r\n}) => {\r\n return (\r\n <>\r\n <>\r\n onClose()}\r\n PaperProps={{ style: { width: '40%' } }}\r\n >\r\n {`Details of the reservation ${travelReport.summary[0]?.reservationId}`}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {travelReport.summary[0]?.isDeleted ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {travelReport.cvFlights?.length > 0 && (\r\n \r\n )}\r\n {travelReport.commercials?.length > 0 && (\r\n \r\n )}\r\n {travelReport.hotels?.length > 0 && (\r\n \r\n )}\r\n {travelReport.cars?.length > 0 && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {\r\n onClose();\r\n }}\r\n />\r\n \r\n \r\n {\r\n onClose();\r\n }}\r\n text=\"CLOSE\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TravelReportDrawer;\r\n","import React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ITravelReportCommercial} from '../../../models/Reports/ITravelReport';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport Table from '../../commons/Table/Table';\r\n\r\ninterface ITravelReportCommercialProps {\r\n commercials: ITravelReportCommercial[];\r\n}\r\n\r\ntype ColorMap = { key: any; alternate: boolean };\r\n\r\nconst TravelReportCommercial: React.FC = ({\r\n commercials,\r\n}) => {\r\n const alternateColorMapping = commercials?.reduce(\r\n (acc: ColorMap[], curr: ITravelReportCommercial) => {\r\n return acc.some((el) => el.key === curr.number)\r\n ? acc\r\n : [\r\n ...acc,\r\n {\r\n key: curr.number,\r\n alternate:\r\n acc.length === 0 ? false : !acc[acc.length - 1].alternate,\r\n },\r\n ];\r\n },\r\n []\r\n );\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Dep. date',\r\n accessor: 'departureDate',\r\n width: '20%',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Type',\r\n accessor: 'type',\r\n width: '20%',\r\n },\r\n {\r\n Header: 'Number',\r\n accessor: 'number',\r\n width: '20%',\r\n },\r\n {\r\n Header: 'Routing',\r\n accessor: 'routing',\r\n },\r\n {\r\n Header: 'Status',\r\n accessor: 'status',\r\n width: '18%',\r\n },\r\n ],\r\n []\r\n );\r\n return (\r\n \r\n Commercial Flight / Train\r\n {\r\n if (\r\n alternateColorMapping &&\r\n alternateColorMapping.find((x) => x.key === row.original.number)\r\n ?.alternate\r\n ) {\r\n return {\r\n className: `${baseStyles.backgroundAlternateRow}`,\r\n };\r\n } else {\r\n return {\r\n className: `${baseStyles.backgroundRow}`,\r\n };\r\n }\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default TravelReportCommercial;\r\n","import {Guid} from 'guid-typescript';\r\nimport {Moment} from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport {Link} from 'react-router-dom';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Button, FormLabel} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport MuiLink from '@material-ui/core/Link';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\nimport {MaterialUiPickersDate} from '@material-ui/pickers/typings/date';\r\n\r\nimport DatePicker from '../../../components/commons/DatePicker/DatePicker';\r\nimport FormControl from '../../../components/commons/FormControl/FormControl';\r\nimport MultiSelect from '../../../components/commons/MultiSelect/MultiSelect';\r\nimport NoResult from '../../../components/commons/NoResult/NoResult';\r\nimport Searchcomplete from '../../../components/commons/Searchcomplete/Searchcomplete';\r\nimport Select from '../../../components/commons/Select/Select';\r\nimport Table from '../../../components/commons/Table/Table';\r\nimport TextField from '../../../components/commons/TextField/TextField';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport {TravelReportDrawer} from '../../../components/Reporting/TravelReport';\r\nimport {useUserContext} from '../../../context/User/UserContext';\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IOption from '../../../models/IOption';\r\nimport IPriority from '../../../models/IPriority';\r\nimport ITraveler from '../../../models/ITraveler';\r\nimport ITravelReport, {ITravelReportSearch, ITravelReportSummary,} from '../../../models/Reports/ITravelReport';\r\nimport ReportingService from '../../../services/ReportingService';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\n\r\ntype ColorMap = { reservationId: number; alternate: boolean };\r\n\r\ntype TravelerReportDates = {\r\n fromDate: Moment | null;\r\n toDate: Moment | null;\r\n createdFromDate: Moment | null;\r\n createdToDate: Moment | null;\r\n};\r\n\r\nexport interface ITravelReportSearchForm {\r\n fromDate: Moment | null;\r\n toDate: Moment | null;\r\n predefinedReport?: string;\r\n reservationId?: number;\r\n reservationStatus?: string;\r\n flightNumber?: string;\r\n traveler?: IOption | null;\r\n tailNumber?: string;\r\n priority: string[];\r\n onload?: string;\r\n offload?: string;\r\n createdFromDate: Moment | null;\r\n createdToDate: Moment | null;\r\n costCenter?: string;\r\n}\r\n\r\nexport const TravelReportFormSchema = yup.object().shape({\r\n createdToDate: yup\r\n .date()\r\n .nullable()\r\n .when('createdFromDate', (fromDate: Date | null, schema: any) =>\r\n fromDate ? schema.min(fromDate, '') : schema\r\n ),\r\n});\r\n\r\nconst TravelReportPage: React.FC = () => {\r\n const userContext = useUserContext();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [reservationNumber, setReservationNumber] = useState('');\r\n const [predefinedReport, setPredefinedReport] = useState('None');\r\n const [reportDates, setReportDates] = useState({\r\n fromDate: null,\r\n toDate: null,\r\n createdFromDate: null,\r\n createdToDate: null,\r\n });\r\n const [isGenerateDisabled, setIsGenerateDisabled] = useState(true);\r\n const [data, setData] = useState(null);\r\n\r\n const [travelers, setTravelers] = useState([]);\r\n const [priorities, setPriorities] = useState([]);\r\n const { addMessage } = useSnackbar();\r\n const {\r\n showModal: showDrawer,\r\n hideModal: hideDrawer,\r\n isVisible: isVisibleDrawer,\r\n } = useModal();\r\n const [selectedReport, setSelectedReport] = useState();\r\n const [uuid, setUuid] = useState('');\r\n const [predefinedReportSelected, setPredefinedReportSelected] =\r\n useState(false);\r\n\r\n const defaultValue: ITravelReportSearchForm = {\r\n fromDate: null,\r\n toDate: null,\r\n priority: ['All'],\r\n createdFromDate: null,\r\n createdToDate: null,\r\n traveler: null,\r\n };\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(TravelReportFormSchema),\r\n defaultValues: defaultValue,\r\n });\r\n\r\n const IsGenerateEnabled = () => {\r\n const { fromDate, toDate, createdFromDate, createdToDate } = reportDates;\r\n const toDateValid =\r\n toDate === null ||\r\n (toDate.isValid() &&\r\n (fromDate === null || toDate.isSameOrAfter(fromDate)));\r\n const createdToDateValid =\r\n createdToDate === null ||\r\n (createdToDate.isValid() &&\r\n (createdFromDate === null ||\r\n createdToDate.isSameOrAfter(createdFromDate)));\r\n return (\r\n toDateValid &&\r\n createdToDateValid &&\r\n (reservationNumber.trim()?.length > 0 ||\r\n fromDate?.isValid() ||\r\n createdFromDate?.isValid())\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n fetchData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n setIsGenerateDisabled(!IsGenerateEnabled());\r\n }, [reservationNumber, reportDates]);\r\n\r\n useEffect(() => {\r\n if (predefinedReport !== 'None') {\r\n setPredefinedReportSelected(true);\r\n } else {\r\n setPredefinedReportSelected(false);\r\n }\r\n }, [predefinedReport]);\r\n const fetchData = () => {\r\n setIsLoading(true);\r\n Promise.all([\r\n ReportingService.getTravelers(),\r\n ReportingService.getPriorities(),\r\n ])\r\n .then(([travelers, priorities]) => {\r\n setTravelers(travelers);\r\n setPriorities(priorities);\r\n })\r\n .catch((error) => addMessage(error.message))\r\n .finally(() => setIsLoading(false));\r\n };\r\n\r\n const handleReservationNumberChange = (\r\n e: React.ChangeEvent\r\n ) => {\r\n var regex = /^[0-9]*$/;\r\n if (\r\n e.target.value?.length < 20 &&\r\n (e.target.value?.length === 0 || regex.test(e.target.value))\r\n ) {\r\n setReservationNumber(e.target.value);\r\n }\r\n };\r\n\r\n const getformData = (): ITravelReportSearch => {\r\n var values = form.getValues();\r\n var reservationId =\r\n reservationNumber.length > 0 ? parseInt(reservationNumber) : 0;\r\n\r\n let searchReport: ITravelReportSearch = {\r\n ...values,\r\n reservationId: reservationId,\r\n fromDate: reportDates.fromDate,\r\n toDate: reportDates.toDate,\r\n predefinedReport: predefinedReport,\r\n travelerId: values.traveler?.value,\r\n costCenter:\r\n values.costCenter && values.costCenter.length > 0\r\n ? parseInt(values.costCenter)\r\n : 0,\r\n createdFromDate: reportDates.createdFromDate,\r\n createdToDate: reportDates.createdToDate,\r\n };\r\n\r\n return searchReport;\r\n };\r\n const handleGenerate = () => {\r\n if (!isGenerateDisabled) {\r\n setIsLoading(true);\r\n\r\n ReportingService.getTravelReport(getformData())\r\n .then((result) => {\r\n setData(result);\r\n setUuid(Guid.create()?.toString());\r\n })\r\n .catch((error) => addMessage(error.message))\r\n .finally(() => setIsLoading(false));\r\n }\r\n };\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter') {\r\n handleGenerate();\r\n }\r\n };\r\n\r\n const alternateColorMapping = data?.summary?.reduce(\r\n (acc: ColorMap[], curr: ITravelReportSummary) => {\r\n return acc.some((el) => el.reservationId === curr.reservationId)\r\n ? acc\r\n : [\r\n ...acc,\r\n {\r\n reservationId: curr.reservationId,\r\n alternate:\r\n acc.length === 0 ? false : !acc[acc.length - 1].alternate,\r\n },\r\n ];\r\n },\r\n []\r\n );\r\n\r\n const handleSeeMore = async (travelReportSummary: ITravelReportSummary) => {\r\n let travelReport: ITravelReport = {\r\n summary: data\r\n ? data.summary.filter(\r\n (x) =>\r\n x.reservationId == travelReportSummary.reservationId &&\r\n x.traveller == travelReportSummary.traveller\r\n )\r\n : [],\r\n cvFlights: data\r\n ? data.cvFlights.filter(\r\n (x) =>\r\n x.reservationId == travelReportSummary.reservationId &&\r\n x.traveller == travelReportSummary.traveller\r\n )\r\n : [],\r\n commercials: data\r\n ? data.commercials.filter(\r\n (x) =>\r\n x.reservationId == travelReportSummary.reservationId &&\r\n x.traveller == travelReportSummary.traveller\r\n )\r\n : [],\r\n hotels: data\r\n ? data.hotels.filter(\r\n (x) => x.reservationId == travelReportSummary.reservationId\r\n )\r\n : [],\r\n cars: data\r\n ? data.cars.filter(\r\n (x) => x.reservationId == travelReportSummary.reservationId\r\n )\r\n : [],\r\n };\r\n setSelectedReport(travelReport);\r\n showDrawer();\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Res. No',\r\n accessor: 'reservationId',\r\n width: '5%',\r\n Cell: ({ row }: any) => {\r\n if (\r\n userContext &&\r\n userContext.permissions.includes(\r\n PermissionsList.eTravelReservationConsultReservation\r\n )\r\n ) {\r\n return (\r\n \r\n \r\n {row.original.reservationId}\r\n \r\n \r\n );\r\n }\r\n return row.original.reservationId;\r\n },\r\n },\r\n {\r\n Header: 'Status',\r\n accessor: 'status',\r\n width: '10%',\r\n Cell: ({ row }: any) => {\r\n if (\r\n data &&\r\n data.summary.find(\r\n (x) => x.reservationId == row.original.reservationId\r\n )?.isDeleted\r\n ) {\r\n return Constants.status.deleted;\r\n }\r\n return row.original.status;\r\n },\r\n },\r\n {\r\n Header: 'Type',\r\n accessor: 'tripType',\r\n width: '12%',\r\n },\r\n {\r\n Header: 'Traveler',\r\n accessor: 'traveller',\r\n width: '12%',\r\n },\r\n {\r\n Header: 'CV flight',\r\n accessor: 'cvFlights',\r\n width: '4%',\r\n },\r\n {\r\n Header: 'F/T',\r\n accessor: 'commercials',\r\n width: '4%',\r\n },\r\n {\r\n Header: 'Car',\r\n accessor: 'cars',\r\n width: '4%',\r\n },\r\n {\r\n Header: 'Hotel',\r\n accessor: 'hotels',\r\n width: '4%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n handleSeeMore(row.original)}\r\n >\r\n See more\r\n \r\n \r\n ),\r\n width: '5%',\r\n },\r\n ],\r\n [uuid]\r\n );\r\n\r\n const handleExport = async () => {\r\n try {\r\n const blob = await ReportingService.exportTravelReport(getformData());\r\n if (blob && blob.size > 0) {\r\n downloadBlob(blob, `TravelReport.xlsx`);\r\n addMessage(\r\n Constants.messages.success.dataExported,\r\n MessageType.Success\r\n );\r\n }\r\n } catch (err) {\r\n console.log({\r\n error:\r\n err instanceof Error ? err.message : 'Failed to process the request',\r\n });\r\n }\r\n };\r\n\r\n const downloadBlob = (blob: Blob, filename: string) => {\r\n const url = URL.createObjectURL(blob);\r\n\r\n const downloadLink = document.createElement('a');\r\n downloadLink.href = url;\r\n downloadLink.download = filename || 'download';\r\n\r\n const clickHandler = () => {\r\n setTimeout(() => {\r\n URL.revokeObjectURL(url);\r\n downloadLink.removeEventListener('click', clickHandler);\r\n }, 150);\r\n };\r\n\r\n downloadLink.addEventListener('click', clickHandler, false);\r\n downloadLink.click();\r\n };\r\n\r\n const numericOnly = (e: any) => {\r\n const charCode = e.which ? e.which : e.keyCode;\r\n if (charCode < 48 || charCode > 57) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setReportDates({\r\n ...reportDates,\r\n fromDate: date ? date.startOf('d') : null,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setReportDates({\r\n ...reportDates,\r\n toDate: date ? date.endOf('d') : null,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setReportDates({\r\n ...reportDates,\r\n createdFromDate: date ? date.startOf('d') : null,\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setReportDates({\r\n ...reportDates,\r\n createdToDate: date ? date.endOf('d') : null,\r\n })\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {\r\n setPredefinedReport(e.target.value);\r\n }}\r\n options={[\r\n {\r\n label: 'None',\r\n value: 'None',\r\n },\r\n {\r\n label: 'All flights to USA',\r\n value: 'AllFlightsToUSA',\r\n },\r\n {\r\n label: 'All flights from USA',\r\n value: 'AllFlightsFromUSA',\r\n },\r\n {\r\n label: 'All flights to Barbados',\r\n value: 'AllFlightsToBarbados',\r\n },\r\n {\r\n label: 'All flights from Barbados',\r\n value: 'AllFlightsFromBarbados',\r\n },\r\n {\r\n label: 'Business trips on CV flights',\r\n value: 'BusinessTripsOnCVFlights',\r\n },\r\n {\r\n label: 'Biz with Comm-Flight',\r\n value: 'BusinessWithCommercials',\r\n },\r\n {\r\n label: 'Vac with Comm-Flight',\r\n value: 'VacationWithCommercials',\r\n },\r\n {\r\n label: 'K2 + K8',\r\n value: 'K2andK8',\r\n },\r\n ]}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({\r\n label: `${traveler.firstName} ${traveler.lastName}`,\r\n value: traveler.memberId,\r\n }))}\r\n id=\"travel_report_traveler\"\r\n name=\"traveler\"\r\n placeholder=\"Martine Smith\"\r\n fullWidth\r\n margin=\"normal\"\r\n disabled={predefinedReportSelected}\r\n error={!!form.errors.traveler}\r\n errorMessage={\r\n form.errors.traveler ? form.errors.traveler.message : ''\r\n }\r\n control={form.control}\r\n autoHighlight\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n a.name.localeCompare(b.name))\r\n .map((priority) => ({\r\n label: priority.name,\r\n value: priority.name,\r\n })),\r\n ]}\r\n id=\"travel_report_priority\"\r\n name=\"priority\"\r\n placeholder=\"Martine Smith\"\r\n fullWidth\r\n margin=\"normal\"\r\n disabled={predefinedReportSelected}\r\n error={!!form.errors.priority}\r\n errorMessage={\r\n form.errors.priority ? form.errors.priority[0]?.message : ''\r\n }\r\n control={form.control}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n numericOnly(e)}\r\n inputRef={form.register}\r\n placeholder=\"1234\"\r\n name=\"costCenter\"\r\n disabled={predefinedReportSelected}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n Generate report\r\n \r\n \r\n \r\n \r\n \r\n \r\n {isLoading && }\r\n {!isLoading &&\r\n data &&\r\n (data && data.summary.length > 0 ? (\r\n <>\r\n \r\n \r\n Total of reservations: {data.summary.length}\r\n \r\n \r\n {' '}\r\n Export report\r\n \r\n \r\n\r\n {\r\n if (\r\n alternateColorMapping &&\r\n alternateColorMapping.find(\r\n (x) => +x.reservationId === +row.original.reservationId\r\n )?.alternate\r\n ) {\r\n return {\r\n className: `${baseStyles.backgroundAlternateRow}`,\r\n };\r\n } else {\r\n return {\r\n className: `${baseStyles.backgroundRow}`,\r\n };\r\n }\r\n }}\r\n />\r\n \r\n ) : (\r\n \r\n \r\n \r\n ))}\r\n {selectedReport && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TravelReportPage;\r\n","import React from 'react';\r\n\r\nimport {Box, Paper, Typography} from '@material-ui/core';\r\n\r\nimport {IModalReturn} from '../../hooks/useModal';\r\nimport {IComment} from '../../models/IComment';\r\nimport Dialog from '../commons/Dialog/Dialog';\r\nimport DialogActions from '../commons/Dialog/DialogActions';\r\nimport DialogButton from '../commons/Dialog/DialogButton';\r\nimport DialogContent from '../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../commons/Dialog/DialogTitle';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\n\r\ninterface IDialogMultiCommentProps {\r\n modalActions: IModalReturn;\r\n comments: IComment[];\r\n title: string;\r\n label?: string;\r\n size?: number;\r\n maxHeight?: number;\r\n}\r\n\r\nconst DialogMultiCommentReadonly: React.FC = ({\r\n modalActions,\r\n comments,\r\n title,\r\n maxHeight = 400,\r\n label = 'Comments',\r\n}) => {\r\n return (\r\n <>\r\n \r\n {title}\r\n \r\n {comments && comments.length > 0 && (\r\n \r\n \r\n {comments.map((comment, index) => (\r\n \r\n \r\n \r\n \r\n {comment}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DialogMultiCommentReadonly;\r\n","import React from 'react';\r\n\r\nimport {ButtonBase, LinearProgress, Link} from '@material-ui/core';\r\n\r\nimport useMultiCommentReadonly from '../../../hooks/useMultiCommentReadonly';\r\nimport useReservationRedirect, {ReservationRedirectOrigin,} from '../../../hooks/useReservationRedirect';\r\nimport IMember from '../../../models/IMember';\r\nimport {IWarningListItem} from '../../../models/Reports/IWarningListItem';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport Table from '../../commons/Table/Table';\r\nimport styles from './WarningListGrid.module.scss';\r\n\r\nexport interface IWarningListGridProps {\r\n plannerMembers: IMember[];\r\n data: IWarningListItem[];\r\n reasonType: string;\r\n}\r\n\r\nconst WarningListGrid: React.FC = ({\r\n plannerMembers,\r\n data,\r\n reasonType,\r\n}) => {\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Traveler',\r\n width: '22%',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.travelerFirstName} {row.original.travelerLastName}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Res. N.',\r\n accessor: 'reservationId',\r\n width: '12%',\r\n Cell: ({ row }: any) => {\r\n const { redirect, allowed } = useReservationRedirect(\r\n { ...row.original },\r\n true,\r\n plannerMembers,\r\n ReservationRedirectOrigin.WarningList\r\n );\r\n return (\r\n <>\r\n {allowed ? (\r\n \r\n \r\n \r\n {row.original.reservationId}\r\n \r\n \r\n \r\n ) : (\r\n \r\n {row.original.reservationId}\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'Reservation Date',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n width: '17%',\r\n },\r\n {\r\n Header: 'Created by',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.creatorFirstName} {row.original.creatorLastName}\r\n \r\n ),\r\n width: '22%',\r\n },\r\n {\r\n Header: 'Reason',\r\n width: '12%',\r\n Cell: ({ row }: any) => {\r\n const { CommentIconWithDialog } = useMultiCommentReadonly({\r\n comments: row.original.reasons,\r\n iconButtonClassName: styles.iconButton,\r\n title: reasonType,\r\n label: 'Reason(s)',\r\n size: 25,\r\n });\r\n return ;\r\n },\r\n },\r\n ],\r\n []\r\n );\r\n\r\n return (\r\n <>\r\n {data.length > 0 ? (\r\n
\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default WarningListGrid;\r\n","import clsx from 'clsx';\r\nimport React from 'react';\r\n\r\nimport Badge from '@material-ui/core/Badge';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\nimport {ReactComponent as CommentIcon} from '../assets/icons/comment.svg';\r\nimport DialogMultiCommentReadonly from '../components/DialogComment/DialogMultiCommentReadonly';\r\nimport {IComment} from '../models/IComment';\r\nimport baseStyles from '../styles/styles.module.scss';\r\nimport {useModal} from './useModal';\r\n\r\ninterface Props {\r\n title: string;\r\n label?: string;\r\n comments: IComment[];\r\n size?: number;\r\n iconButtonClassName?: string;\r\n badgeClassName?: string;\r\n}\r\n\r\nexport default function useMultiCommentReadonly({\r\n title,\r\n comments,\r\n label = 'Comment',\r\n iconButtonClassName,\r\n badgeClassName,\r\n size = 20,\r\n}: Props) {\r\n const { showModal, hideModal, isVisible } = useModal();\r\n\r\n const CommentIconWithDialog = () => {\r\n return (\r\n <>\r\n {comments.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n };\r\n\r\n return { CommentIconWithDialog };\r\n}\r\n","import moment, {Moment} from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport {Box, Grid, LinearProgress} from '@material-ui/core';\r\nimport {MaterialUiPickersDate} from '@material-ui/pickers/typings/date';\r\n\r\nimport DatePicker from '../../../components/commons/DatePicker/DatePicker';\r\nimport FormControl from '../../../components/commons/FormControl/FormControl';\r\nimport NoResult from '../../../components/commons/NoResult/NoResult';\r\nimport SearchButton from '../../../components/commons/SearchButton/SearchButton';\r\nimport ToggleButtons from '../../../components/commons/ToggleButtons/ToggleButtons';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport WarningListGrid from '../../../components/Reporting/WarningList/WarningListGrid';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IMember from '../../../models/IMember';\r\nimport {IWarningListItem} from '../../../models/Reports/IWarningListItem';\r\nimport ReportingService from '../../../services/ReportingService';\r\nimport ReservationService from '../../../services/ReservationService';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\n\r\nenum ReasonType {\r\n TRIAL_PERIOD = 'trial',\r\n LAST_MINUTE = 'lastminute',\r\n}\r\n\r\ntype SearchCriterion = {\r\n fromDate: Moment | null;\r\n toDate: Moment | null;\r\n reasonType: ReasonType;\r\n};\r\n\r\ntype WarningListState = {\r\n data: IWarningListItem[];\r\n plannerMembers: IMember[];\r\n isLoading: boolean;\r\n hasSearch: boolean;\r\n searchCriterion: SearchCriterion;\r\n};\r\n\r\nconst initialSearchCriterion = {\r\n fromDate: null,\r\n toDate: null,\r\n reasonType: ReasonType.TRIAL_PERIOD,\r\n};\r\nconst initialState = {\r\n data: [],\r\n isLoading: false,\r\n hasSearch: false,\r\n searchCriterion: initialSearchCriterion,\r\n plannerMembers: [],\r\n};\r\n\r\nconst WarningListPage: React.FC = () => {\r\n const [state, setState] = useState(initialState);\r\n const breakpoint = useBreakpoint();\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n ReservationService.getPlannerMembers()\r\n .then((members) => setState({ ...state, plannerMembers: members }))\r\n .catch((error) => addMessage(error.message));\r\n }, []);\r\n\r\n const handleSearch = () => {\r\n if (validSearchCriterion) {\r\n setState({ ...state, isLoading: true });\r\n\r\n ReportingService.getWarningListReport(\r\n state.searchCriterion.fromDate!.toDate(),\r\n state.searchCriterion.reasonType,\r\n state.searchCriterion.toDate === null\r\n ? undefined\r\n : state.searchCriterion.toDate.toDate()\r\n )\r\n .then((data) => {\r\n setState({ ...state, isLoading: false, data: data, hasSearch: true });\r\n })\r\n .catch((error) => {\r\n setState({ ...state, isLoading: false, hasSearch: true });\r\n addMessage(error.message);\r\n });\r\n }\r\n };\r\n\r\n const validSearchCriterion =\r\n state.searchCriterion.fromDate !== null &&\r\n (state.searchCriterion.toDate === null ||\r\n state.searchCriterion.fromDate < state.searchCriterion.toDate);\r\n\r\n const validDate = (e: MaterialUiPickersDate): Moment | null =>\r\n e ? (e.isValid() ? moment(e.toDate()).startOf('day') : null) : null;\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' && validSearchCriterion) {\r\n handleSearch();\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setState({\r\n ...state,\r\n hasSearch: false,\r\n searchCriterion: {\r\n ...state.searchCriterion,\r\n fromDate: validDate(e),\r\n },\r\n data: [],\r\n });\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n setState({\r\n ...state,\r\n hasSearch: false,\r\n searchCriterion: {\r\n ...state.searchCriterion,\r\n toDate: validDate(e),\r\n },\r\n data: [],\r\n });\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setState({\r\n ...state,\r\n hasSearch: false,\r\n searchCriterion: {\r\n ...state.searchCriterion,\r\n reasonType: value,\r\n },\r\n data: [],\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n Search reservations\r\n \r\n \r\n \r\n \r\n {state.isLoading ? (\r\n \r\n ) : state.data && state.data.length === 0 ? (\r\n state.hasSearch ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default WarningListPage;\r\n","import React from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Grid} from '@material-ui/core';\r\n\r\nimport {IModalReturn} from '../../../hooks/useModal';\r\nimport Constants from '../../../utils/Constants';\r\nimport formatString from '../../../utils/Strings';\r\nimport Dialog from '../Dialog/Dialog';\r\nimport DialogActions from '../Dialog/DialogActions';\r\nimport DialogButton from '../Dialog/DialogButton';\r\nimport DialogCancelButton from '../Dialog/DialogCancelButton';\r\nimport DialogContent from '../Dialog/DialogContent';\r\nimport DialogTitle from '../Dialog/DialogTitle';\r\nimport FormControl from '../FormControl/FormControl';\r\nimport TextField from '../TextField/TextField';\r\n\r\nexport type SendMailModalForm = {\r\n recipients?: string;\r\n message?: string;\r\n};\r\n\r\nexport const SendMailSchema = yup.object().shape({\r\n recipients: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150))\r\n .matches(\r\n Constants.validation.emailMultipleRegex,\r\n Constants.validation.multipleEmail\r\n ),\r\n message: yup.string().max(250, formatString(Constants.validation.max, 250)),\r\n});\r\n\r\nexport interface ISendMailModalProps {\r\n title?: string;\r\n handleSend: (data: SendMailModalForm) => void;\r\n modalOptions: IModalReturn;\r\n loading: boolean;\r\n}\r\n\r\nconst SendMailModal: React.FC = ({\r\n handleSend,\r\n title,\r\n loading,\r\n modalOptions: { hideModal, isVisible },\r\n}) => {\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(SendMailSchema),\r\n defaultValues: {\r\n recipients: undefined,\r\n message: undefined,\r\n },\r\n });\r\n\r\n const onModalClose = () => {\r\n form.reset();\r\n hideModal();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {title ?? 'Send mail'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {}}\r\n disabled={\r\n !form.formState.isValid || !form.formState.isDirty || loading\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SendMailModal;\r\n","import React from 'react';\r\n\r\nimport {Box, Button, Grid} from '@material-ui/core';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\n\r\nimport {ISpecialFeesItem} from '../../../models/Reports/ISpecialFeesItem';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport NoResult from '../../commons/NoResult/NoResult';\r\nimport Table from '../../commons/Table/Table';\r\n\r\nexport interface ISpecialFeesGridProps {\r\n data: ISpecialFeesItem[];\r\n hasSearch: boolean;\r\n sendMail: () => void;\r\n}\r\n\r\nconst SpecialFeesGrid: React.FC = ({\r\n data,\r\n hasSearch,\r\n sendMail,\r\n}) => {\r\n const items = data.map((data) => ({\r\n ...data,\r\n passengerName: `${data.firstName} ${data.lastName}`,\r\n routing: `${data.origin} - ${data.destination}`,\r\n }));\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Passenger Name',\r\n accessor: 'passengerName',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.passengerName}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Employee ID',\r\n accessor: 'employeeId',\r\n width: '10%',\r\n },\r\n {\r\n Header: 'Flight N.',\r\n width: '12%',\r\n accessor: 'flightDesc',\r\n },\r\n {\r\n Header: 'Date',\r\n accessor: 'etd',\r\n width: '12%',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Route',\r\n width: '12%',\r\n accessor: 'routing',\r\n },\r\n {\r\n Header: 'Priority',\r\n width: '8%',\r\n accessor: 'priority',\r\n },\r\n {\r\n Header: 'Security Fee',\r\n width: '12%',\r\n accessor: 'securityFee',\r\n },\r\n {\r\n Header: 'Currency',\r\n width: '8%',\r\n accessor: 'securityCurrency',\r\n },\r\n ],\r\n []\r\n );\r\n\r\n return (\r\n <>\r\n {items.length > 0 ? (\r\n <>\r\n \r\n \r\n \r\n {\r\n sendMail();\r\n }}\r\n color=\"secondary\"\r\n style={{ fontSize: '14px' }}\r\n disabled={false}\r\n >\r\n {' '}\r\n Export by mail\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n hasSearch && \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default SpecialFeesGrid;\r\n","import React from 'react';\r\n\r\nimport {Box, Button, Grid} from '@material-ui/core';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\n\r\nimport {IPassengersToBeInvoicedItem} from '../../../models/Reports/IPassengersToBeInvoicedItem';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport NoResult from '../../commons/NoResult/NoResult';\r\nimport Table from '../../commons/Table/Table';\r\n\r\nexport interface IPassengersToBeInvoicedGridProps {\r\n data: IPassengersToBeInvoicedItem[];\r\n hasSearch: boolean;\r\n sendMail: () => void;\r\n}\r\n\r\nconst PassengersToBeInvoicedGrid: React.FC<\r\n IPassengersToBeInvoicedGridProps\r\n> = ({ data, hasSearch, sendMail }) => {\r\n const items = data.map((data) => ({\r\n ...data,\r\n passengerName: `${data.firstName} ${data.lastName}`,\r\n routing: `${data.origin} - ${data.destination}`,\r\n }));\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Passenger Name',\r\n accessor: 'passengerName',\r\n width: '18%',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.passengerName}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Flight N.',\r\n width: '12%',\r\n accessor: 'flightDesc',\r\n },\r\n {\r\n Header: 'Date',\r\n accessor: 'etd',\r\n width: '12%',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Route',\r\n width: '12%',\r\n accessor: 'routing',\r\n },\r\n {\r\n Header: 'Cost Center',\r\n width: '12%',\r\n accessor: 'costCenter',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.costCenter}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'AWB',\r\n width: '15%',\r\n accessor: 'awbNumber',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.awbNumber}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Priority',\r\n width: '8%',\r\n accessor: 'priority',\r\n },\r\n ],\r\n []\r\n );\r\n\r\n return (\r\n <>\r\n {items.length > 0 ? (\r\n <>\r\n \r\n \r\n \r\n {\r\n sendMail();\r\n }}\r\n color=\"secondary\"\r\n style={{ fontSize: '14px' }}\r\n disabled={false}\r\n >\r\n {' '}\r\n Export by mail\r\n \r\n \r\n \r\n \r\n {' '}\r\n \r\n ) : (\r\n hasSearch && \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PassengersToBeInvoicedGrid;\r\n","import moment from 'moment';\r\nimport React, {useState} from 'react';\r\n\r\nimport {Box, Grid, LinearProgress} from '@material-ui/core';\r\n\r\nimport FormControl from '../../../components/commons/FormControl/FormControl';\r\nimport SearchButton from '../../../components/commons/SearchButton/SearchButton';\r\nimport Select from '../../../components/commons/Select/Select';\r\nimport {SendMailModal} from '../../../components/commons/SendMailModal';\r\nimport {SendMailModalForm} from '../../../components/commons/SendMailModal/SendMailModal';\r\nimport ToggleButtons from '../../../components/commons/ToggleButtons/ToggleButtons';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport {PassengersToBeInvoicedGrid, SpecialFeesGrid,} from '../../../components/Reporting/Accounting';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport ReportingService from '../../../services/ReportingService';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport {MessageType} from '../../../utils/MessageType';\r\n\r\nenum AccountingReportType {\r\n PassengersToBeInvoiced = 'Passengers to be invoiced',\r\n PayrollDeductionForSecurityFees = 'Payroll deductions for security fees',\r\n}\r\n\r\ntype SearchCriterion = {\r\n month: number;\r\n year: number;\r\n reportType: AccountingReportType;\r\n};\r\n\r\ntype AccountingState = {\r\n passengersToBeInvoicedItems: any[];\r\n specialFeesItems: any[];\r\n isLoading: boolean;\r\n hasSearch: boolean;\r\n searchCriterion: SearchCriterion;\r\n sendingMail: boolean;\r\n};\r\n\r\nconst initialSearchCriterion = {\r\n month: moment().format('M') as unknown as number,\r\n year: moment().format('yyyy') as unknown as number,\r\n reportType: AccountingReportType.PassengersToBeInvoiced,\r\n};\r\nconst initialState = {\r\n passengersToBeInvoicedItems: [],\r\n specialFeesItems: [],\r\n isLoading: false,\r\n sendingMail: false,\r\n hasSearch: false,\r\n searchCriterion: initialSearchCriterion,\r\n};\r\n\r\nconst AccountingReportPage: React.FC = () => {\r\n const [state, setState] = useState(initialState);\r\n const breakpoint = useBreakpoint();\r\n const { addMessage } = useSnackbar();\r\n const { showModal, hideModal, isVisible } = useModal();\r\n\r\n const handleSearch = () => {\r\n if (validSearchCriterion) {\r\n setState({ ...state, isLoading: true });\r\n state.searchCriterion.reportType ===\r\n AccountingReportType.PassengersToBeInvoiced\r\n ? searchPassengersInvoiced()\r\n : searchSpecialFees();\r\n }\r\n };\r\n\r\n const handleExport = (form: SendMailModalForm) => {\r\n if (validSearchCriterion) {\r\n const mailInfo = {\r\n month: +state.searchCriterion.month,\r\n year: +state.searchCriterion.year,\r\n message: form.message!,\r\n recipients: form.recipients!,\r\n };\r\n const reportPromise =\r\n state.searchCriterion.reportType ===\r\n AccountingReportType.PassengersToBeInvoiced\r\n ? ReportingService.sendPassengersToBeInvoicedReport(mailInfo)\r\n : ReportingService.sendSpecialFeesReport(mailInfo);\r\n\r\n setState({ ...state, sendingMail: true });\r\n reportPromise\r\n .then((res) => {\r\n setState({ ...state, sendingMail: false });\r\n hideModal();\r\n res\r\n ? addMessage('Mail sent successfully', MessageType.Success)\r\n : addMessage(\"Couln't send mail\");\r\n })\r\n .catch((error) => {\r\n setState({ ...state, sendingMail: false });\r\n hideModal();\r\n setState({ ...state, isLoading: false, hasSearch: true });\r\n addMessage(error.message);\r\n });\r\n }\r\n };\r\n\r\n const searchSpecialFees = () => {\r\n ReportingService.getSpecialFeesReport(\r\n state.searchCriterion.month,\r\n state.searchCriterion.year\r\n )\r\n .then((data) => {\r\n setState({\r\n ...state,\r\n isLoading: false,\r\n specialFeesItems: data,\r\n passengersToBeInvoicedItems: [],\r\n hasSearch: true,\r\n });\r\n })\r\n .catch((error) => {\r\n setState({ ...state, isLoading: false, hasSearch: true });\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const searchPassengersInvoiced = () => {\r\n ReportingService.getPassengersToBeInvoicedReport(\r\n state.searchCriterion.month,\r\n state.searchCriterion.year\r\n )\r\n .then((data) => {\r\n setState({\r\n ...state,\r\n isLoading: false,\r\n passengersToBeInvoicedItems: data,\r\n specialFeesItems: [],\r\n hasSearch: true,\r\n });\r\n })\r\n .catch((error) => {\r\n setState({ ...state, isLoading: false, hasSearch: true });\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const validSearchCriterion =\r\n state.searchCriterion.month &&\r\n state.searchCriterion.year &&\r\n state.searchCriterion.reportType;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setState({\r\n ...state,\r\n searchCriterion: {\r\n ...state.searchCriterion,\r\n month: e.target.value as number,\r\n },\r\n specialFeesItems: [],\r\n passengersToBeInvoicedItems: [],\r\n hasSearch: false,\r\n })\r\n }\r\n fullWidth={true}\r\n options={Array.from(\r\n { length: 12 },\r\n (_, i) => i + 1\r\n ).map((val) => ({\r\n value: val,\r\n label: ('0' + val).slice(-2),\r\n }))}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n setState({\r\n ...state,\r\n searchCriterion: {\r\n ...state.searchCriterion,\r\n year: e.target.value as number,\r\n },\r\n specialFeesItems: [],\r\n hasSearch: false,\r\n passengersToBeInvoicedItems: [],\r\n })\r\n }\r\n fullWidth={true}\r\n options={Array.from(\r\n { length: 21 },\r\n (_, i) => i + moment().year() - 10\r\n ).map((val) => ({\r\n value: val,\r\n label: val.toString(),\r\n }))}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setState({\r\n ...state,\r\n hasSearch: false,\r\n searchCriterion: {\r\n ...state.searchCriterion,\r\n reportType: value,\r\n },\r\n specialFeesItems: [],\r\n passengersToBeInvoicedItems: [],\r\n })\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n Search passengers\r\n \r\n \r\n \r\n \r\n {state.isLoading ? (\r\n \r\n ) : (\r\n <>\r\n {state.searchCriterion.reportType ===\r\n AccountingReportType.PassengersToBeInvoiced ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AccountingReportPage;\r\n","import React, {useEffect, useState} from 'react';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport {Box, Grid, LinearProgress} from '@material-ui/core';\r\nimport SearchButton from '../../../components/commons/SearchButton/SearchButton';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport FormControl from '../../../components/commons/FormControl/FormControl';\r\nimport IRole from '../../../models/IRole';\r\nimport UserService from '../../../services/UserService';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport NoResult from '../../../components/commons/NoResult/NoResult';\r\nimport Table from '../../../components/commons/Table/Table';\r\nimport {useUserContext} from '../../../context/User/UserContext';\r\nimport MuiLink from '@material-ui/core/Link';\r\nimport {Link} from 'react-router-dom';\r\nimport MemberService from '../../../services/MemberService';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\n\r\nconst icon = ;\r\nconst checkedIcon = ;\r\n\r\nconst MembersRoleReportPage: React.FC = () => {\r\n const { addMessage } = useSnackbar();\r\n const [roles, setRoles] = useState([]);\r\n const { permissions } = useUserContext();\r\n const [selectRoleName, setSelectedRoleName] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [data, setData] = useState([]);\r\n const [noResult, setNoResult] = useState(false);\r\n\r\n useEffect(() => {\r\n UserService.getAllRoles()\r\n .then((response) => {\r\n setRoles(response);\r\n })\r\n .catch((error) => addMessage(error.message));\r\n }, []);\r\n\r\n const handleSearchMembers = () => {\r\n setIsLoading(true);\r\n let searchRoles: any[] = [];\r\n\r\n for (let index = 0; index < selectRoleName.length; index++) {\r\n const element = selectRoleName[index];\r\n searchRoles.push(`${element.roleName}`);\r\n }\r\n\r\n MemberService.searchByRole(searchRoles.join())\r\n .then((result) => {\r\n if (result.length == 0) {\r\n setNoResult(true);\r\n }\r\n\r\n let newData: any[] = [];\r\n\r\n result.forEach((member) => {\r\n newData.push({\r\n memberId: member.memberId,\r\n employeeId: member.employeeId,\r\n employeeName: member.employeeName,\r\n roleName: member.roleName,\r\n });\r\n });\r\n setData(newData);\r\n setIsLoading(false);\r\n })\r\n .catch((error) => {\r\n setIsLoading(false);\r\n addMessage(error.message);\r\n });\r\n };\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' && selectRoleName.length > 0) {\r\n handleSearchMembers();\r\n }\r\n };\r\n const columns = React.useMemo((): any[] => {\r\n let commonColumns: any[] = [\r\n {\r\n Header: 'MemberId',\r\n accessor: 'memberId',\r\n width: '10%',\r\n },\r\n ,\r\n {\r\n Header: 'EmpID',\r\n accessor: 'employeeId',\r\n width: '10%',\r\n },\r\n {\r\n Header: 'Employee',\r\n accessor: 'employeeName',\r\n },\r\n {\r\n Header: 'eTravel Role',\r\n accessor: 'roleName',\r\n width: '15%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actions',\r\n Cell: ({ row }: any) => (\r\n \r\n {\r\n \r\n See more\r\n \r\n }\r\n \r\n ),\r\n width: '10%',\r\n },\r\n ];\r\n\r\n return commonColumns;\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n option.roleName}\r\n renderOption={(option, { selected }) => (\r\n \r\n \r\n {option.roleName}\r\n \r\n )}\r\n style={{ width: 350 }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n onChange={(event, value) => {\r\n setSelectedRoleName(value);\r\n setData([]);\r\n setNoResult(false);\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n 0 ? false : true}\r\n style={{ margin: '5px' }}\r\n id=\"members__list_search_action\"\r\n onClick={handleSearchMembers}\r\n >\r\n Search members\r\n \r\n \r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : data && data.length > 0 ? (\r\n \r\n ) : (\r\n noResult && (\r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MembersRoleReportPage;\r\n","import moment, {Moment} from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport MuiLink from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport {MaterialUiPickersDate} from '@material-ui/pickers/typings/date';\r\n\r\nimport DatePicker from '../../../components/commons/DatePicker/DatePicker';\r\nimport DateTime from '../../../components/commons/DateTime/DateTime';\r\nimport DisplayControl from '../../../components/commons/DisplayControl/DisplayControl';\r\nimport Drawer from '../../../components/commons/Drawer/Drawer';\r\nimport DrawerActions from '../../../components/commons/Drawer/DrawerActions';\r\nimport DrawerButton from '../../../components/commons/Drawer/DrawerButton';\r\nimport DrawerContent from '../../../components/commons/Drawer/DrawerContent';\r\nimport DrawerTitle from '../../../components/commons/Drawer/DrawerTitle';\r\nimport FormControl from '../../../components/commons/FormControl/FormControl';\r\nimport NoResult from '../../../components/commons/NoResult/NoResult';\r\nimport SearchButton from '../../../components/commons/SearchButton/SearchButton';\r\nimport Searchcomplete from '../../../components/commons/Searchcomplete/Searchcomplete';\r\nimport Table from '../../../components/commons/Table';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport useCountries from '../../../hooks/useCountries';\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport ISecurityAuditLog from '../../../models/AuditLog/ISecurityAuditLog';\r\nimport IOption from '../../../models/IOption';\r\nimport AuditLogService from '../../../services/AuditLogService';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\n\r\ninterface IAuditLogSecurityPageProps {}\r\n\r\nconst AuditLogSecurityPage: React.FC = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [country, setCountry] = useState();\r\n const [fromDate, setFromDate] = useState(null);\r\n const [toDate, setToDate] = useState(null);\r\n const [isSearchDisabled, setIsSearchDisabled] = useState(true);\r\n const [data, setData] = useState(null);\r\n const [selectedLog, setSelectedLog] = useState(\r\n null\r\n );\r\n const {\r\n showModal: showDrawer,\r\n hideModal: hideDrawer,\r\n isVisible: isVisibleDrawer,\r\n } = useModal();\r\n const { addMessage } = useSnackbar();\r\n const countries = useCountries();\r\n\r\n useEffect(() => {\r\n if (\r\n (country?.value.length > 0 || fromDate?.isValid()) &&\r\n (toDate == null || toDate.isSameOrAfter(fromDate))\r\n ) {\r\n setIsSearchDisabled(false);\r\n } else {\r\n setIsSearchDisabled(true);\r\n }\r\n }, [country, fromDate, toDate]);\r\n\r\n const handleSearch = () => {\r\n setIsLoading(true);\r\n AuditLogService.getSecurityAuditLogs(country?.value, fromDate, toDate)\r\n .then((result) => setData(result))\r\n .catch((error) => addMessage(error.message))\r\n .finally(() => setIsLoading(false));\r\n };\r\n\r\n const handleDisplayLog = async (securityLog: ISecurityAuditLog) => {\r\n setSelectedLog(securityLog);\r\n showDrawer();\r\n };\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter') {\r\n handleSearch();\r\n }\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Flight desc.',\r\n accessor: 'flightDesc',\r\n width: '15%',\r\n },\r\n {\r\n Header: 'Origin',\r\n accessor: 'origin',\r\n width: '15%',\r\n },\r\n {\r\n Header: 'Destination',\r\n accessor: 'destination',\r\n width: '15%',\r\n },\r\n {\r\n Header: 'Date',\r\n accessor: 'sentAt',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Type',\r\n accessor: 'templateType',\r\n width: '10%',\r\n },\r\n {\r\n Header: 'Mode',\r\n accessor: 'templateMode',\r\n width: '10%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n {\r\n handleDisplayLog(row.original);\r\n }}\r\n >\r\n See more\r\n \r\n \r\n ),\r\n width: '10%',\r\n },\r\n ],\r\n []\r\n );\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n ({\r\n value: country.countryCode,\r\n label: country.countryName,\r\n }))}\r\n autoComplete={false}\r\n margin=\"normal\"\r\n placeholder=\"Luxembourg\"\r\n value={country}\r\n variant=\"outlined\"\r\n onChange={(e, value) => setCountry(value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setFromDate(date ? date.startOf('d') : null)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setToDate(date ? date.endOf('d') : null)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Search logs\r\n \r\n \r\n \r\n \r\n \r\n {isLoading && }\r\n {!isLoading &&\r\n data &&\r\n (data.length > 0 ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n \r\n Audit log security for flight {selectedLog?.flightDesc}\r\n \r\n \r\n \r\n \r\n {selectedLog?.reservationId ? (\r\n <>\r\n \r\n \r\n Sent by eTravel\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n Sent by APIS manager\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedLog?.documentNumbers && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n Message\r\n \r\n \r\n {selectedLog?.message.split('\\n').map((item, idx) => {\r\n return (\r\n \r\n {item}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AuditLogSecurityPage;\r\n","import * as yup from 'yup';\r\n\r\nimport Constants from '../../../utils/Constants';\r\nimport {ReservationStatus} from '../ReservationEnum';\r\n\r\nexport interface IReservationApprovalForm {\r\n reservationNumber?: string;\r\n status?: string | null;\r\n reason?: string;\r\n}\r\n\r\nexport const ReservationApprovalFormSchema = yup.object().shape({\r\n reservationNumber: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .matches(\r\n Constants.validation.numericOnlyRegex,\r\n Constants.validation.invalidNumber\r\n ),\r\n status: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n reason: yup.string().when('status', {\r\n is: ReservationStatus.NotApproved,\r\n then: yup.string().required(Constants.validation.required),\r\n }),\r\n});\r\n","import React, {useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Box, Button, CircularProgress, Grid, Typography,} from '@material-ui/core';\r\n\r\nimport FormControl from '../../../components/commons/FormControl/FormControl';\r\nimport TextField from '../../../components/commons/TextField/TextField';\r\nimport ToggleButtons from '../../../components/commons/ToggleButtons/ToggleButtons';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport {\r\n IReservationApprovalForm,\r\n ReservationApprovalFormSchema,\r\n} from '../../../models/Reservation/Forms/IBookingApprovalForm';\r\nimport {ReservationStatus} from '../../../models/Reservation/ReservationEnum';\r\nimport ReservationService from '../../../services/ReservationService';\r\nimport baseStyle from '../../../styles/styles.module.scss';\r\nimport {MessageType} from '../../../utils/MessageType';\r\n\r\nconst ReservationApprovalPage: React.FC = () => {\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(ReservationApprovalFormSchema),\r\n });\r\n\r\n const [loading, setLoading] = useState(false);\r\n const { addMessage } = useSnackbar();\r\n\r\n const actionWatch = form.watch('status', null);\r\n\r\n const clearForm = () =>\r\n form.reset({\r\n reservationNumber: undefined,\r\n status: null,\r\n reason: undefined,\r\n });\r\n\r\n const handleSuccess = (form: IReservationApprovalForm) => {\r\n clearForm();\r\n addMessage(\r\n `Reservation ${form.reservationNumber} - status set to ${form.status}`,\r\n MessageType.Success\r\n );\r\n };\r\n\r\n const handleSubmit = (form: IReservationApprovalForm) => {\r\n setLoading(true);\r\n if (form.reservationNumber && form.status) {\r\n const reservationId = +form.reservationNumber;\r\n const approveReject =\r\n form.status === ReservationStatus.Approved\r\n ? ReservationService.approve(reservationId)\r\n : ReservationService.reject(reservationId, form.reason ?? '');\r\n approveReject\r\n .then((result) => {\r\n setLoading(false);\r\n result\r\n ? handleSuccess(form)\r\n : addMessage(\r\n `Couldn't update the reservation ${form.reservationNumber} status`\r\n );\r\n })\r\n .catch((error: Error) => {\r\n setLoading(false);\r\n addMessage(error.message);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Search a reservation by number to approve or deny it and\r\n comment your choice.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {actionWatch && actionWatch === ReservationStatus.NotApproved && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {loading && }\r\n {!loading && 'Submit'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReservationApprovalPage;\r\n","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgDeleteBinWhite(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 21,\n viewBox: \"0 0 20 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.0956 2.86102H13.4941V2.41182C13.4941 1.07981 12.4143 0 11.0823 0H8.9177C7.58569 0 6.50588 1.07981 6.50588 2.41182V2.86102H0.904432C0.404928 2.86102 0 3.26595 0 3.76545C0 4.26495 0.404928 4.66988 0.904432 4.66988H2.69822L2.71932 16.126C2.71932 18.2905 4.47401 20.0452 6.63853 20.0452H13.3615C15.526 20.0452 17.2807 18.2905 17.2807 16.126L17.3018 4.66988H19.0956C19.5951 4.66988 20 4.26495 20 3.76545C20 3.26595 19.5951 2.86102 19.0956 2.86102ZM8.3138 2.41285C8.3138 2.07985 8.58375 1.8099 8.91676 1.8099H11.0814C11.4144 1.8099 11.6843 2.07985 11.6843 2.41285V2.86205H8.3138V2.41285ZM13.3612 18.2214C14.5267 18.2214 15.4716 17.2766 15.4716 16.1111L15.4927 4.65495H4.50684L4.52794 16.1111C4.52794 17.2766 5.47277 18.2214 6.63828 18.2214H13.3612Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.19154 7.46094C7.69204 7.46094 7.28711 7.86587 7.28711 8.36537V14.3648C7.28711 14.8643 7.69204 15.2692 8.19154 15.2692C8.69105 15.2692 9.09597 14.8643 9.09597 14.3648V8.36537C9.09597 7.86587 8.69105 7.46094 8.19154 7.46094Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.8097 7.46094C11.3102 7.46094 10.9053 7.86587 10.9053 8.36537V14.3648C10.9053 14.8643 11.3102 15.2692 11.8097 15.2692C12.3092 15.2692 12.7141 14.8643 12.7141 14.3648V8.36537C12.7141 7.86587 12.3092 7.46094 11.8097 7.46094Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDeleteBinWhite);\nexport default __webpack_public_path__ + \"static/media/deleteBinWhite.3cca5966.svg\";\nexport { ForwardRef as ReactComponent };","import {useEffect, useState} from 'react';\r\n\r\nexport default function useDebounce(value: any, delay: any) {\r\n const [debouncedValue, setDebouncedValue] = useState(value);\r\n\r\n useEffect(() => {\r\n const handler = setTimeout(() => {\r\n setDebouncedValue(value);\r\n }, delay);\r\n\r\n return () => {\r\n clearTimeout(handler);\r\n };\r\n }, [value]);\r\n\r\n return debouncedValue;\r\n}\r\n","import React, {useEffect, useState} from 'react';\r\n\r\nimport useDebounce from '../../../hooks/useDebounce';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport Constants from '../../../utils/Constants';\r\nimport AutoComplete, {IAutoCompleteProps} from '../AutoComplete';\r\n\r\ninterface IAutoCompleteFetcherProps\r\n extends Omit {\r\n serviceFunction: (searchText: string) => Promise;\r\n makeOptionsFunction?: (dtos: any[]) => any[];\r\n requiredText?: boolean;\r\n}\r\n\r\nconst AutoCompleteFetcher: React.FC = ({\r\n serviceFunction,\r\n makeOptionsFunction,\r\n requiredText = false,\r\n ...props\r\n}) => {\r\n const { addMessage } = useSnackbar();\r\n const [options, setOptions] = useState([]);\r\n const [searchText, setSearchText] = useState('');\r\n const debouncedSearchText = useDebounce(searchText, 300);\r\n\r\n useEffect(\r\n () => {\r\n if (debouncedSearchText && debouncedSearchText.length >= 3) {\r\n retrieveOptions(debouncedSearchText);\r\n }\r\n },\r\n [debouncedSearchText] // Only call effect if debounced search term changes\r\n );\r\n\r\n const handleOnChange = (event: any, value: any) => {\r\n setSearchText(value);\r\n };\r\n\r\n const retrieveOptions = (researchValue: string) => {\r\n serviceFunction(researchValue)\r\n .then((dtos: any[]) => {\r\n let newOptions = makeOptionsFunction ? makeOptionsFunction(dtos) : dtos;\r\n setOptions(newOptions);\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n return (\r\n handleOnChange(e, v)}\r\n {...props}\r\n errors={\r\n props.errors ??\r\n (!requiredText || searchText.length > 0\r\n ? undefined\r\n : {\r\n message: Constants.validation.required,\r\n type: 'required',\r\n })\r\n }\r\n helperText={\r\n props.helperText ??\r\n (!requiredText || searchText.length > 0\r\n ? undefined\r\n : Constants.validation.required)\r\n }\r\n />\r\n );\r\n};\r\nexport default AutoCompleteFetcher;\r\n","import moment from 'moment';\r\n\r\nimport IMemberExtended from '../models/IMemberExtended';\r\nimport IMemberInformation from '../models/IMemberInformation';\r\nimport IPassenger from '../models/Reservation/IPassenger';\r\nimport ITripType from '../models/Reservation/ITripType';\r\n\r\nexport const BETWEEN_2_AND_7_MESSAGE =\r\n 'Children between the ages of 2 and 7 must travel with an adult per child.';\r\nexport const BETWENN_7_AND_18_MESSAGE =\r\n 'Children between the ages of 7 and 18 must travel with an adult.';\r\n\r\nexport default function useReservationChildrenMethods() {\r\n const computeAge = (member: IMemberExtended | IPassenger) =>\r\n moment().diff(member.birthDate ?? moment(), 'years', false);\r\n\r\n const validateAdultCount = (\r\n memberInformations: IMemberInformation,\r\n tripType: ITripType | null,\r\n passengersIds: number[]\r\n ): string => {\r\n if (\r\n tripType &&\r\n tripType.isCVFlight &&\r\n tripType.multiplePassengers &&\r\n memberInformations.relatives?.length > 0\r\n ) {\r\n const passengers = passengersIds.reduce<(IMemberExtended | undefined)[]>(\r\n (acc: (IMemberExtended | undefined)[], curr: number) => {\r\n return [\r\n ...acc,\r\n memberInformations.relatives?.find((r) => r.memberId === curr) ??\r\n (memberInformations.member.memberId === curr\r\n ? memberInformations.member\r\n : undefined),\r\n ];\r\n },\r\n []\r\n );\r\n\r\n if (passengers.some((p) => p === undefined))\r\n return \"Couldn't reconcile passengers of this reservation\";\r\n\r\n const childs = passengers.filter(\r\n (r) => r!.relationTypeName === 'Children'\r\n );\r\n const adults = passengers.filter(\r\n (passenger) =>\r\n passenger!.relationTypeName === 'Spouses' ||\r\n passenger!.relationTypeName === 'Employees' ||\r\n (passenger!.relationTypeName === 'Children' &&\r\n computeAge(passenger!) >= 18)\r\n );\r\n\r\n const between2and7 = childs.filter((c) => computeAge(c!) < 7);\r\n const between7and18 = childs.filter(\r\n (c) => computeAge(c!) >= 7 && computeAge(c!) < 18\r\n );\r\n\r\n if (between2and7.length > 0 && between2and7.length > adults.length)\r\n return BETWEEN_2_AND_7_MESSAGE;\r\n if (between7and18.length > 0 && adults.length == 0)\r\n return BETWENN_7_AND_18_MESSAGE;\r\n }\r\n\r\n return '';\r\n };\r\n\r\n const schoolCertificateWarning = (\r\n memberInformations: IMemberInformation,\r\n tripType: ITripType | null,\r\n childId: number\r\n ) => {\r\n if (\r\n tripType &&\r\n tripType.isCVFlight &&\r\n tripType.multiplePassengers &&\r\n memberInformations.relatives?.length > 0\r\n ) {\r\n const child = memberInformations.relatives?.find(\r\n (r) => r.memberId === childId && r.relationTypeName === 'Children'\r\n );\r\n if (child) {\r\n const age = computeAge(child);\r\n return child && child.birthDate && age >= 21 && age < 27\r\n ? 'For children older than 21 years up to the age of 27 included, a copy of a valid school certificate must be submitted to the Cargolux HR Department prior departure to be eligible for travel.'\r\n : '';\r\n }\r\n }\r\n\r\n return '';\r\n };\r\n\r\n const shouldDisplayOver27 = (\r\n memberInformations: IMemberInformation,\r\n tripType: ITripType | null,\r\n childId: number\r\n ) => {\r\n if (\r\n tripType &&\r\n tripType.isCVFlight &&\r\n tripType.multiplePassengers &&\r\n memberInformations.relatives?.length > 0\r\n ) {\r\n const child = memberInformations.relatives?.find(\r\n (r) => r.memberId === childId && r.relationTypeName === 'Children'\r\n );\r\n return child && child.birthDate && computeAge(child) > 27;\r\n }\r\n\r\n return '';\r\n };\r\n\r\n return {\r\n computeAge,\r\n validateAdultCount,\r\n schoolCertificateWarning,\r\n shouldDisplayOver27,\r\n };\r\n}\r\n\r\nconst computePassengerAge = (member: IPassenger) =>\r\n moment().diff(member.birthDate ?? moment(), 'years', false);\r\n\r\nexport function validatePassengersBetween2and7(\r\n passengers: IPassenger[]\r\n): boolean {\r\n const childs = passengers.filter((r) => r!.relationName === 'Children');\r\n const adults = passengers.filter(\r\n (passenger) =>\r\n passenger!.relationName === 'Spouses' ||\r\n passenger!.relationName === 'Employees' ||\r\n (passenger!.relationName === 'Children' &&\r\n computePassengerAge(passenger!) >= 18)\r\n );\r\n const between2and7 = childs.filter((c) => computePassengerAge(c!) < 7);\r\n\r\n return !(between2and7.length > 0 && between2and7.length > adults.length);\r\n}\r\n\r\nexport function validatePassengersBetween7and18(\r\n passengers: IPassenger[]\r\n): boolean {\r\n const childs = passengers.filter((r) => r!.relationName === 'Children');\r\n const adults = passengers.filter(\r\n (passenger) =>\r\n passenger!.relationName === 'Spouses' ||\r\n passenger!.relationName === 'Employees' ||\r\n (passenger!.relationName === 'Children' &&\r\n computePassengerAge(passenger!) >= 18)\r\n );\r\n const between7and18 = childs.filter(\r\n (c) => computePassengerAge(c!) >= 7 && computePassengerAge(c!) < 18\r\n );\r\n\r\n return !(between7and18.length > 0 && adults.length == 0);\r\n}\r\n","export default interface ITripType {\r\n tripTypeId: number;\r\n name: string;\r\n description: string;\r\n startDate: Date | null;\r\n endDate: Date | null;\r\n isBusiness: boolean;\r\n order: number;\r\n isCVFlight: boolean;\r\n isGuest: boolean;\r\n allowHotel: boolean;\r\n allowCar: boolean;\r\n allowCommercial: boolean;\r\n approver: string;\r\n trainingReference: boolean;\r\n trainingDate: boolean;\r\n costCenter: boolean;\r\n approverEmail: boolean;\r\n multiplePassengers: boolean;\r\n travelInGroup: boolean;\r\n budgeted: boolean;\r\n shortDescription: boolean;\r\n customerCompany: boolean;\r\n customerContact: boolean;\r\n cvContact: boolean;\r\n reason: boolean;\r\n airBills: boolean;\r\n}\r\n\r\nexport enum TripTypesEnum {\r\n Vacation = 3,\r\n VacationWithoutCV = 10,\r\n}\r\n","import moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { Link, Redirect, useHistory } from 'react-router-dom';\r\nimport * as yup from 'yup';\r\n\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport { Typography, useMediaQuery, useTheme } from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box/Box';\r\nimport Button from '@material-ui/core/Button/Button';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel/FormControlLabel';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Radio from '@material-ui/core/Radio/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup/RadioGroup';\r\n\r\nimport { ReactComponent as DangerIcon } from '../../../../assets/icons/danger.svg';\r\nimport { ReactComponent as DeleteIcon } from '../../../../assets/icons/deleteBinWhite.svg';\r\nimport { ReactComponent as AddIcon } from '../../../../assets/icons/plus.svg';\r\nimport { ReactComponent as WarningIcon } from '../../../../assets/icons/warningSecondary.svg';\r\nimport AutoCompleteFetcher\r\n from '../../../../components/commons/AutoCompleteFetcher/AutoCompleteFetcher';\r\nimport Dialog from '../../../../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../../../../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../../components/commons/Dialog/DialogButton';\r\nimport DialogContent from '../../../../components/commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../../components/commons/Dialog/DialogTitle';\r\nimport FormControl from '../../../../components/commons/FormControl/FormControl';\r\nimport Searchcomplete from '../../../../components/commons/Searchcomplete/Searchcomplete';\r\nimport TextField from '../../../../components/commons/TextField/TextField';\r\nimport ToggleButtons from '../../../../components/commons/ToggleButtons/ToggleButtons';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport {\r\n useLocalStorageContext\r\n} from '../../../../context/LocalStorageContext/LocalStorageContext';\r\nimport { useReservationContext } from '../../../../context/ReservationProvider/ReservationProvider';\r\nimport useMakeAReservationAccess from '../../../../hooks/useMakeAReservationAccess';\r\nimport { useModal } from '../../../../hooks/useModal';\r\nimport useReservationChildrenMethods from '../../../../hooks/useReservationChildrenMethods';\r\nimport { useWindowEvent } from '../../../../hooks/useWindowEvent';\r\nimport IMemberExtended from '../../../../models/IMemberExtended';\r\nimport IMemberInfo from '../../../../models/IMemberInfo';\r\nimport ITrainingCourse from '../../../../models/ITrainingCourse';\r\nimport ITripType, { TripTypesEnum, } from '../../../../models/Reservation/ITripType';\r\nimport MemberService from '../../../../services/MemberService';\r\nimport baseStyle from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\nimport isRequiredFieldMissing from '../../../../utils/Forms';\r\nimport formatString from '../../../../utils/Strings';\r\nimport styles from './BookingSetupPage.module.scss';\r\nimport { Alert } from '@material-ui/lab';\r\nimport { MdOutlineWarningAmber } from 'react-icons/md';\r\n\r\nconst BooleanOptions = [\r\n {label: 'Yes', value: true},\r\n {label: 'No', value: false},\r\n];\r\n\r\nconst BookingSetupPage: React.FC = () => {\r\n const {\r\n state: {allTripTypes, memberInformations, trainings},\r\n saveSetup,\r\n setActiveStep,\r\n scrollToTop,\r\n } = useReservationContext();\r\n const {\r\n state: {connectedMember},\r\n } = useLocalStorageContext();\r\n\r\n const [isInTrial, setIsInTrial] = useState(false);\r\n const [isCVFlight, setIsCVFlight] = useState(true);\r\n const [tripType, setTripType] = useState(null);\r\n const [groupTravel, setGroupTravel] = useState();\r\n const [validationSchema, setValidationSchema] = useState({});\r\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(true);\r\n const {isBlocked} = useMakeAReservationAccess();\r\n const theme = useTheme();\r\n const isSmartphone = useMediaQuery(theme.breakpoints.down('sm'));\r\n const history = useHistory();\r\n const {\r\n computeAge,\r\n validateAdultCount,\r\n shouldDisplayOver27,\r\n schoolCertificateWarning,\r\n } = useReservationChildrenMethods();\r\n const {\r\n showModal: showValidationError,\r\n hideModal: hideValidationError,\r\n isVisible: hasValidationError,\r\n } = useModal();\r\n const [childrenValidation, setChildrenValidation] = useState<\r\n string | undefined\r\n >(undefined);\r\n\r\n useEffect(() => {\r\n if (memberInformations?.user?.hiredDate) {\r\n setIsInTrial(\r\n moment(memberInformations.user.hiredDate) >=\r\n moment().subtract(6, 'months')\r\n );\r\n }\r\n if (memberInformations.relatives) {\r\n }\r\n }, [memberInformations]);\r\n\r\n useEffect(() => {\r\n let SetupShape = {} as any;\r\n if (tripType?.trainingReference) {\r\n SetupShape.trainingReference = yup\r\n .object()\r\n .shape({\r\n label: yup.string().required(),\r\n value: yup.array().of(\r\n yup.object().shape({\r\n courseId: yup.number().required(Constants.validation.required),\r\n })\r\n ),\r\n })\r\n .required(Constants.validation.required);\r\n }\r\n if (tripType?.trainingDate) {\r\n SetupShape.trainingDate = yup\r\n .object()\r\n .shape({\r\n label: yup.string().required(),\r\n value: yup.number().required(Constants.validation.required),\r\n })\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required);\r\n }\r\n if (tripType?.costCenter) {\r\n SetupShape.costCenter = yup\r\n .number()\r\n .required(Constants.validation.required)\r\n .min(1, formatString(Constants.validation.minNumeric, 'Cost center', 1))\r\n .max(\r\n Constants.validation.maxInt,\r\n formatString(\r\n Constants.validation.maxNumeric,\r\n 'Cost center',\r\n Constants.validation.maxInt\r\n )\r\n )\r\n .typeError('The entered value is not a valid Cost center');\r\n }\r\n if (tripType?.approverEmail) {\r\n SetupShape.approver = yup\r\n .string()\r\n .email(Constants.validation.invalidEmail)\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150));\r\n }\r\n if (tripType?.multiplePassengers) {\r\n SetupShape.reservationMembers = yup\r\n .array(yup.number().required(Constants.validation.required))\r\n .required(Constants.validation.required);\r\n }\r\n if (tripType?.travelInGroup && groupTravel) {\r\n SetupShape.reservationEmployees = yup\r\n .array()\r\n .of(\r\n yup\r\n .number()\r\n .required(Constants.validation.required)\r\n .typeError(\r\n \"No employee matched, Please type the employee's name and select an entry provided in the list\"\r\n )\r\n )\r\n .required(Constants.validation.required);\r\n }\r\n if (tripType?.budgeted) {\r\n SetupShape.isBudgeted = yup\r\n .boolean()\r\n .required(Constants.validation.required);\r\n }\r\n if (tripType?.shortDescription) {\r\n SetupShape.description = yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(4000, formatString(Constants.validation.max, 4000));\r\n }\r\n if (tripType?.customerCompany) {\r\n SetupShape.customerCompanyName = yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150));\r\n }\r\n if (tripType?.customerContact) {\r\n SetupShape.customerContactPerson = yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150));\r\n }\r\n if (tripType?.cvContact) {\r\n SetupShape.cvContactPerson = yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150));\r\n }\r\n\r\n setValidationSchema(SetupShape);\r\n creationForm.setValue('reservationEmployees', undefined, {\r\n shouldValidate: true,\r\n shouldDirty: true,\r\n });\r\n }, [tripType, groupTravel]);\r\n\r\n const creationForm = useForm({\r\n resolver: yupResolver(yup.object().shape(validationSchema)),\r\n mode: 'onChange',\r\n defaultValues: {\r\n group: [undefined],\r\n },\r\n });\r\n const watchTrainingReference = creationForm.watch('trainingReference');\r\n const watchTrainingDate = creationForm.watch('trainingDate');\r\n const watchReservationEmployees: any[] = creationForm.watch(\r\n 'reservationEmployees',\r\n [undefined]\r\n );\r\n const watchReservationMembers = creationForm.watch('reservationMembers');\r\n\r\n useEffect(() => {\r\n if (creationForm) {\r\n creationForm.reset({\r\n trainingReference: null,\r\n trainingDate: null,\r\n approver: tripType?.approver ?? '',\r\n });\r\n setGroupTravel(undefined);\r\n }\r\n }, [tripType]);\r\n\r\n useEffect(() => {\r\n if (tripType && tripType.trainingReference) {\r\n if (\r\n watchTrainingReference?.value.find(\r\n (c: any) => c.courseId === watchTrainingDate?.value\r\n ) === undefined\r\n ) {\r\n creationForm.setValue('trainingDate', null, {\r\n shouldValidate: true,\r\n shouldDirty: true,\r\n });\r\n } else {\r\n creationForm.setValue(\r\n 'approver',\r\n trainings.find((t) => t.courseId === watchTrainingDate?.value)\r\n ?.approverEmail,\r\n {\r\n shouldValidate: true,\r\n shouldDirty: true,\r\n }\r\n );\r\n }\r\n }\r\n }, [watchTrainingReference, watchTrainingDate, tripType]);\r\n\r\n useEffect(() => {\r\n if (Object.keys(validationSchema).length > 0) {\r\n let disabled = isRequiredFieldMissing(\r\n yup.object().shape(validationSchema),\r\n creationForm.getValues\r\n );\r\n\r\n if (tripType?.multiplePassengers) {\r\n disabled =\r\n disabled ||\r\n watchReservationMembers?.filter((m: number) => m > -1).length === 0;\r\n disabled =\r\n disabled ||\r\n watchReservationMembers?.some((m: number) => m === undefined);\r\n }\r\n if (tripType?.travelInGroup) {\r\n disabled = disabled || groupTravel === undefined;\r\n }\r\n setIsSubmitDisabled(disabled || !creationForm.formState.isValid);\r\n }\r\n }, [\r\n creationForm.formState.isValid,\r\n creationForm.control,\r\n validationSchema,\r\n watchReservationMembers,\r\n ]);\r\n\r\n const handleBrowserLeave = (e: any) => {\r\n if (creationForm.formState.isDirty) {\r\n e.preventDefault();\r\n e.returnValue =\r\n 'You are leaving the reservation process without saving !';\r\n }\r\n };\r\n\r\n useWindowEvent('beforeunload', handleBrowserLeave);\r\n\r\n const groupByArray = (array: any[], key: any) => {\r\n return array.reduce(function (accumulator: any, currentValue: any) {\r\n let v = key instanceof Function ? key(currentValue) : currentValue[key];\r\n let el = accumulator.find((r: any) => r && r.label === v);\r\n if (el) {\r\n el.values.push(currentValue);\r\n } else {\r\n accumulator.push({label: v, values: [currentValue]});\r\n }\r\n return accumulator;\r\n }, []);\r\n };\r\n\r\n const handleSubmit = (formResults: any) => {\r\n formResults.tripTypeId = tripType?.tripTypeId;\r\n if (formResults.reservationMembers) {\r\n formResults.reservationMembers = formResults.reservationMembers\r\n .filter((n: number) => n > 0)\r\n .map((p: number) => {\r\n return {\r\n memberId: p,\r\n reservationId: 0,\r\n documentId: 0,\r\n };\r\n });\r\n } else {\r\n formResults.reservationMembers = [\r\n {\r\n reservationId: 0,\r\n memberId: memberInformations.member.memberId,\r\n documentId: 0,\r\n },\r\n ];\r\n }\r\n if (formResults.reservationEmployees) {\r\n formResults.reservationEmployees = formResults.reservationEmployees.map(\r\n (e: number) => {\r\n return {\r\n reservationId: 0,\r\n memberId: e,\r\n };\r\n }\r\n );\r\n }\r\n if (formResults.trainingReference) {\r\n let selectedCourse: ITrainingCourse =\r\n formResults.trainingReference.value.find(\r\n (t: ITrainingCourse) => t.courseId === formResults.trainingDate.value\r\n );\r\n formResults.courseId = selectedCourse.courseId;\r\n formResults.trainingDate = `From ${moment(selectedCourse.fromDate).format(\r\n 'DD-MM-YYYY'\r\n )} To ${moment(selectedCourse.toDate).format('DD-MM-YYYY')}`;\r\n formResults.trainingName = selectedCourse.trainingName;\r\n }\r\n const childrenValidation = validateAdultCount(\r\n memberInformations,\r\n tripType,\r\n formResults.reservationMembers.map((r: any) => r.memberId as number)\r\n );\r\n setChildrenValidation(childrenValidation);\r\n if (childrenValidation.length > 0) {\r\n showValidationError();\r\n } else {\r\n saveSetup(formResults);\r\n setActiveStep(0);\r\n history.push('/reservations/new/steps');\r\n scrollToTop();\r\n }\r\n };\r\n\r\n const memberSelectionError = (message: string) => {\r\n return (\r\n \r\n \r\n \r\n {message}\r\n \r\n \r\n );\r\n };\r\n\r\n const memberSelectionWarning = (message: string) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const isMissingContactInfo = (member: IMemberExtended) =>\r\n !(\r\n member.address &&\r\n member.address.length > 0 &&\r\n member.city &&\r\n member.city.length > 0 &&\r\n member.residenceCode &&\r\n member.residenceCode.length > 0 &&\r\n member.postCode &&\r\n member.postCode.length > 0\r\n );\r\n\r\n const ImmigrationDataError = (name: string) =>\r\n memberSelectionError(\r\n `${name} has no passport in immigration data. Please, add one in My Information.`\r\n );\r\n const Over27Warning = () =>\r\n memberSelectionError(\r\n 'Children over 27 years of age cannot travel on Cargolux flights.'\r\n );\r\n const MissingContactInfoError = (name: string) =>\r\n memberSelectionError(\r\n `${name} has not completed all contact information in personal data. Please, complete them in My Information.`\r\n );\r\n return (\r\n <>\r\n {isBlocked() ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {\r\n if (v !== null) {\r\n if (isCVFlight !== v) {\r\n setTripType(null);\r\n }\r\n setIsCVFlight(v);\r\n creationForm.reset({tripType: null});\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n {isCVFlight !== undefined && isCVFlight !== null && (\r\n \r\n \r\n {connectedMember?.relation === 'Guest' || isSmartphone ? (\r\n \r\n {allTripTypes\r\n .filter(\r\n (tt: ITripType) =>\r\n tt.isCVFlight === isCVFlight &&\r\n tt.isGuest ===\r\n (connectedMember?.relation === 'Guest') &&\r\n ((tt.startDate === null && tt.endDate === null) ||\r\n moment().isBetween(\r\n moment(tt.startDate),\r\n moment(tt.endDate)\r\n ))\r\n )\r\n .map((g) => (\r\n }\r\n label={g.name}\r\n onChange={() =>\r\n setTripType(\r\n allTripTypes.find(\r\n (tt) => tt.tripTypeId === g.tripTypeId\r\n ) ?? null\r\n )\r\n }\r\n />\r\n ))}\r\n \r\n ) : (\r\n \r\n \r\n tt.isCVFlight === isCVFlight &&\r\n tt.isGuest ===\r\n (connectedMember?.relation === 'Guest') &&\r\n ((tt.startDate === null &&\r\n tt.endDate === null) ||\r\n moment().isBetween(\r\n moment(tt.startDate),\r\n moment(tt.endDate)\r\n ))\r\n )\r\n .map((g) => ({\r\n label: g.name,\r\n value: g.tripTypeId,\r\n }))}\r\n defaultValue={null}\r\n value={tripType?.tripTypeId}\r\n onChange={(e, v) =>\r\n v &&\r\n setTripType(\r\n allTripTypes.find((tt) => tt.tripTypeId === v) ??\r\n null\r\n )\r\n }\r\n />\r\n \r\n )}\r\n \r\n \r\n )}\r\n {(tripType?.tripTypeId === TripTypesEnum.Vacation ||\r\n tripType?.tripTypeId === TripTypesEnum.VacationWithoutCV) &&\r\n isInTrial ? (\r\n \r\n \r\n \r\n Vacation travel is not allowed for employees with less than\r\n 6 months of employment.\r\n \r\n \r\n ) : tripType?.isBusiness &&\r\n memberInformations?.member?.documents?.filter(\r\n (d) => d.documentType === 'Passport'\r\n ).length === 0 ? (\r\n \r\n \r\n \r\n {memberInformations?.member?.firstName &&\r\n memberInformations?.member?.lastName\r\n ? `${\r\n memberInformations?.member?.firstName\r\n } ${memberInformations?.member?.lastName?.toLocaleUpperCase()} has`\r\n : 'You have'}{' '}\r\n no passport in immigration data. Please, add one in My\r\n Information.\r\n \r\n \r\n ) : tripType?.isBusiness &&\r\n isMissingContactInfo(memberInformations.member) ? (\r\n \r\n \r\n \r\n {memberInformations?.member?.firstName &&\r\n memberInformations?.member?.lastName\r\n ? `${\r\n memberInformations?.member?.firstName\r\n } ${memberInformations?.member?.lastName?.toLocaleUpperCase()} has`\r\n : 'You have'}{' '}\r\n no completed all contact information in personal data.\r\n Please, complete them in My Information.\r\n \r\n \r\n ) : (\r\n tripType && (\r\n \r\n \r\n Please provide the following information regarding your\r\n reservation\r\n \r\n \r\n {trainings && tripType.trainingReference && (\r\n \r\n \r\n \r\n ({\r\n value: training.values,\r\n label: training.label,\r\n })\r\n )}\r\n control={creationForm.control}\r\n defaultValue={null}\r\n error={\r\n !!creationForm.errors.trainingReference\r\n ?.values\r\n }\r\n errorMessage={\r\n creationForm.errors.trainingReference?.values\r\n ? creationForm.errors.trainingReference\r\n ?.values?.message\r\n : ''\r\n }\r\n />\r\n \r\n \r\n \r\n )}\r\n {trainings &&\r\n tripType.trainingDate &&\r\n watchTrainingReference &&\r\n watchTrainingReference.value && (\r\n \r\n \r\n \r\n ({\r\n value: training.courseId,\r\n label: `From ${moment(\r\n training.fromDate\r\n ).format('DD-MM-YYYY')} To ${moment(\r\n training.toDate\r\n ).format('DD-MM-YYYY')}`,\r\n })\r\n )}\r\n control={creationForm.control}\r\n error={!!creationForm.errors.trainingDate}\r\n defaultValue={null}\r\n errorMessage={\r\n creationForm.errors.trainingDate\r\n ? creationForm.errors.trainingDate.message\r\n : ''\r\n }\r\n />\r\n \r\n \r\n \r\n )}\r\n {tripType.travelInGroup && (\r\n \r\n \r\n \r\n {\r\n v !== null && setGroupTravel(v);\r\n }}\r\n />\r\n \r\n \r\n {groupTravel && (\r\n <>\r\n \r\n \r\n With Whom ?\r\n \r\n \r\n \r\n \r\n {watchReservationEmployees.map(\r\n (m: any, index: number) => {\r\n return (\r\n 0\r\n ? 8\r\n : 10\r\n : 12\r\n }\r\n md={4}\r\n key={`group[${index}].${m?.memberId}`}\r\n >\r\n trainings}\r\n name=\"reservationEmployees\"\r\n getOptionLabel={(option) =>\r\n option.firstName && option.lastName\r\n ? `${option.firstName} ${option.lastName}`\r\n : ''\r\n }\r\n renderOption={(option) =>\r\n option.firstName && option.lastName\r\n ? `${option.firstName} ${option.lastName}`\r\n : ''\r\n }\r\n valueProp=\"memberId\"\r\n fullWidth\r\n placeholder=\"Martine SCHMIDT\"\r\n unmatchedValue=\"invalid\"\r\n margin=\"normal\"\r\n register={creationForm.register}\r\n freeSolo={true}\r\n errors={\r\n creationForm.errors\r\n .reservationEmployees &&\r\n creationForm.errors\r\n .reservationEmployees[index]\r\n }\r\n helperText={\r\n creationForm.errors\r\n .reservationEmployees &&\r\n creationForm.errors\r\n .reservationEmployees[index]\r\n ?.message\r\n }\r\n onChange={(event, value) => {\r\n let nextValue =\r\n watchReservationEmployees;\r\n nextValue[index] = value;\r\n creationForm.setValue(\r\n 'reservationEmployees',\r\n nextValue,\r\n {\r\n shouldValidate: true,\r\n shouldDirty: true,\r\n }\r\n );\r\n }}\r\n />\r\n \r\n );\r\n }\r\n )}\r\n 1 ? 4 : 2\r\n }\r\n md={2}\r\n className={styles.travelGroupActions}\r\n >\r\n {watchReservationEmployees.length > 1 && (\r\n {\r\n creationForm.setValue(\r\n 'reservationEmployees',\r\n [\r\n ...watchReservationEmployees.slice(\r\n 0,\r\n -1\r\n ),\r\n ],\r\n {\r\n shouldValidate: true,\r\n shouldDirty: true,\r\n }\r\n );\r\n }}\r\n className={`${baseStyle.roundedIconButton} ${styles.deleteIcon}`}\r\n >\r\n \r\n \r\n )}\r\n {watchReservationEmployees.some(\r\n (entry) => isNaN(entry) || entry === ''\r\n ) ? (\r\n {\r\n }}\r\n disabled={true}\r\n className={\r\n baseStyle.roundedDisabledIconButton\r\n }\r\n >\r\n \r\n \r\n ) : (\r\n {\r\n watchReservationEmployees.push(\r\n undefined\r\n );\r\n return creationForm.setValue(\r\n 'reservationEmployees',\r\n watchReservationEmployees,\r\n {shouldValidate: true}\r\n );\r\n }}\r\n className={baseStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {tripType.costCenter && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {tripType.approverEmail && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {tripType.multiplePassengers &&\r\n Object.keys(memberInformations).length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n <>\r\n \r\n \r\n \r\n {memberInformations.member?.documents?.filter(\r\n (d) => d.documentType === 'Passport'\r\n ).length < 1 ? (\r\n \r\n {ImmigrationDataError(\r\n `${\r\n memberInformations.member?.firstName\r\n } ${memberInformations.member?.lastName?.toLocaleUpperCase()}`\r\n )}\r\n \r\n ) : isMissingContactInfo(\r\n memberInformations.member\r\n ) ? (\r\n \r\n {MissingContactInfoError(\r\n `${\r\n memberInformations.member?.firstName\r\n } ${memberInformations.member?.lastName?.toLocaleUpperCase()}`\r\n )}\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {memberInformations.relatives &&\r\n memberInformations.relatives\r\n .filter(\r\n (r) => !r.birthDate || computeAge(r) >= 2\r\n )\r\n .map((r, index: number) => (\r\n \r\n <>\r\n \r\n \r\n \r\n\r\n {(tripType.isCVFlight && computeAge(r) < 7) ?\r\n <>\r\n \r\n \r\n \r\n \r\n {memberSelectionError('Due to travel restrictions on CV aircraft, this child is too young to fly')}\r\n \r\n \r\n\r\n :\r\n r.documents?.filter(\r\n (d) => d.documentType === 'Passport'\r\n ).length < 1 ? (\r\n \r\n {ImmigrationDataError(\r\n `${\r\n r.firstName\r\n } ${r.lastName?.toLocaleUpperCase()}`\r\n )}\r\n \r\n \r\n \r\n \r\n ) : isMissingContactInfo(r) ? (\r\n \r\n {MissingContactInfoError(\r\n `${\r\n r.firstName\r\n } ${r.lastName?.toLocaleUpperCase()}`\r\n )}\r\n \r\n \r\n \r\n \r\n ) : shouldDisplayOver27(\r\n memberInformations,\r\n tripType,\r\n r.memberId\r\n ) ? (\r\n \r\n {Over27Warning()}\r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n {schoolCertificateWarning(\r\n memberInformations,\r\n tripType,\r\n r.memberId\r\n ) && (\r\n \r\n \r\n {memberSelectionWarning(\r\n 'For children older than 21 years up to the age of 27 included, a copy of a valid school certificate must be submitted to the Cargolux HR Department prior departure to be eligible for travel.'\r\n )}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n ))}\r\n \r\n )}\r\n {tripType.budgeted && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {tripType.shortDescription && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {tripType.customerCompany && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {tripType.customerContact && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {tripType.cvContact && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n }\r\n variant=\"standard\" severity=\"warning\">\r\n \r\n By clicking on the Continue Reservation button you confirm that all the\r\n selected passengers weigh more than 45kg\r\n \r\n \r\n \r\n \r\n \r\n \r\n {Constants.buttons.cancel} Reservation\r\n \r\n \r\n\r\n \r\n\r\n \r\n {Constants.buttons.continue} Reservation\r\n \r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Reservation with Cargolux Flight validation\r\n \r\n \r\n \r\n {childrenValidation}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BookingSetupPage;\r\n","var _g, _path, _path2, _path3, _path4, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgBasket(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 59,\n height: 59,\n viewBox: \"0 0 59 59\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_d)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 28,\n cy: 28,\n r: 28,\n transform: \"rotate(-180 28 28)\",\n fill: \"white\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.2764 45.9737C31.2764 46.8168 31.9607 47.5012 32.8039 47.5012H34.3069C35.1501 47.5012 35.8344 46.8168 35.8344 45.9737V45.4727H31.2764V45.9737Z\",\n fill: \"#B8349A\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.166 45.9737C21.166 46.8168 21.8503 47.5012 22.6935 47.5012H24.1905C25.0336 47.5012 25.718 46.8168 25.718 45.9737V45.4727H21.166V45.9737H21.166Z\",\n fill: \"#B8349A\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.7441 38.965C20.7441 41.2585 22.2235 43.1239 24.0422 43.1239H32.9572C34.7753 43.1239 36.2547 41.2585 36.2547 38.965V33.1949L20.7441 31.3359V38.965Z\",\n fill: \"#B8349A\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.334 19.0036H32.9455V10.222H34.9605C35.2982 10.222 35.5715 9.94875 35.5715 9.611C35.5715 9.2733 35.2982 9 34.9605 9C31.2535 9 26.419 9 22.037 9C21.6993 9 21.426 9.2733 21.426 9.611C21.426 9.94875 21.6993 10.222 22.037 10.222H24.0527V19.0036H21.666C19.6436 19.0036 18 20.6471 18 22.6695V42.4109C18 44.4272 19.6436 46.0769 21.666 46.0769H35.334C37.3564 46.0769 39 44.4272 39 42.4109V22.6695C39 20.6471 37.3564 19.0036 35.334 19.0036ZM25.2747 10.222H31.7236V14.0025H25.2747V10.222ZM25.2747 15.2245H31.7236V19.0036H25.2747V15.2245ZM21.9816 26.4123H34.3495C34.6872 26.4123 34.9605 26.6856 34.9605 27.0233C34.9605 27.361 34.6872 27.6343 34.3495 27.6343H23.3634C23.4252 27.832 23.7291 28.9664 23.7298 28.9799C23.7271 29.5032 23.2021 29.8244 23.1544 29.8856C23.0077 29.9815 22.4593 29.4415 22.4568 28.9799C22.4575 28.9666 22.7617 27.8312 22.8232 27.6343H21.9815C21.6438 27.6343 21.3705 27.361 21.3705 27.0233C21.3706 26.6856 21.6439 26.4123 21.9816 26.4123ZM36.127 38.3762C36.127 40.5523 34.3567 42.3227 32.1812 42.3227H24.817C22.6409 42.3227 20.8706 40.5524 20.8706 38.3762V32.7066C20.8706 32.5348 20.9433 32.3707 21.0704 32.2543C21.1975 32.1386 21.3688 32.0819 21.5394 32.0986L35.5739 33.4328C35.8877 33.4626 36.127 33.7257 36.127 34.0408V38.3762H36.127Z\",\n fill: \"#B8349A\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_d\",\n x: 0,\n y: 0,\n width: 59,\n height: 59,\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 }), /*#__PURE__*/React.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"erode\",\n in: \"SourceAlpha\",\n result: \"effect1_dropShadow\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 2,\n dy: 2\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow\",\n result: \"shape\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBasket);\nexport default __webpack_public_path__ + \"static/media/basket.e29099ec.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgMobileStepperNext(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 32,\n viewBox: \"0 0 19 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0 28.24L11.3021 16L0 3.76L3.47947 0L18.2857 16L3.47947 32L0 28.24Z\",\n fill: \"#B8349A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMobileStepperNext);\nexport default __webpack_public_path__ + \"static/media/mobileStepperNext.d80b95be.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nimport {Grid, IconButton, Typography} from '@material-ui/core';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepButton from '@material-ui/core/StepButton';\r\nimport MuiStepper from '@material-ui/core/Stepper';\r\n\r\nimport {ReactComponent as NextIcon} from '../../../assets/icons/mobileStepperNext.svg';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport IStep from '../../../models/Reservation/IStep';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport styles from './Stepper.module.scss';\r\n\r\ninterface IStepperProps {\r\n steps: IStep[];\r\n activeStep: number;\r\n setActiveStep: (step: number) => void;\r\n stepsCount: { index: number; count: number }[];\r\n}\r\n\r\nconst Stepper: React.FC = ({\r\n steps,\r\n activeStep,\r\n setActiveStep,\r\n stepsCount,\r\n}) => {\r\n const breakpoint = useBreakpoint();\r\n const handleClick = (index: number) => {\r\n setActiveStep(index);\r\n };\r\n return (\r\n <>\r\n {breakpoint.smdown ? (\r\n \r\n \r\n {activeStep > 0 && (\r\n handleClick(activeStep - 1)}\r\n className={styles.arrow}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n {`Step ${\r\n activeStep + 1\r\n }/${steps.length}`}\r\n \r\n {steps[activeStep].name}\r\n \r\n
\r\n
\r\n \r\n {activeStep + 1 < steps.length && (\r\n handleClick(activeStep + 1)}\r\n className={styles.arrow}\r\n >\r\n \r\n \r\n )}\r\n \r\n
\r\n ) : (\r\n \r\n {steps.map((step, index) => (\r\n \r\n handleClick(index)}\r\n icon={\r\n \r\n \r\n {activeStep === index ? step.selectedIcon : step.icon}\r\n \r\n \r\n }\r\n className={styles.stepButton}\r\n disableRipple\r\n >\r\n {step.name}\r\n \r\n \r\n ))}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Stepper;\r\n","var _path, _path2, _path3, _circle, _circle2, _path4, _path5, _path6, _path7, _circle3, _circle4, _path8, _line, _line2, _line3, _line4, _circle5, _circle6, _circle7;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCarBasket(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 100,\n height: 100,\n viewBox: \"0 0 100 100\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.0963 52.6923H84.1969C88.0825 52.6923 91.5698 49.8896 91.9613 46.0477C92.4098 41.639 88.8981 37.8846 84.5478 37.8846H67.8428C65.6426 37.8846 63.6687 36.2477 63.5548 34.0629C63.4316 31.734 65.2958 29.8077 67.6125 29.8077H70.6487C74.5343 29.8077 78.0216 27.005 78.4131 23.1631C78.8616 18.7544 75.3499 15 70.9996 15H19.5165C15.4005 15 12.065 18.3142 12.065 22.4038C12.065 26.4935 15.4005 29.8077 19.5165 29.8077H24.2583C25.7554 29.8077 26.968 31.0125 26.968 32.5C26.968 33.9875 25.7554 35.1923 24.2583 35.1923H14.3844C11.2047 35.1923 8.35142 37.4862 8.03168 40.6281C7.66452 44.2358 10.5381 47.3077 14.0972 47.3077H22.6732C24.8734 47.3077 26.8474 48.9446 26.9612 51.1294C27.0845 53.4583 25.2203 55.3846 22.9035 55.3846H18.4489C15.2691 55.3846 12.4159 57.6785 12.0961 60.8204C11.7303 64.4281 14.6025 67.5 18.1617 67.5H24.1134C25.4628 67.5 26.7146 68.4167 26.9314 69.74C27.2064 71.4267 25.9044 72.8846 24.2583 72.8846H18.4489C15.2691 72.8846 12.4159 75.1785 12.0961 78.3204C11.729 81.9281 14.6025 85 18.1617 85H47.9677C48.0842 85 48.1926 84.9717 48.3064 84.9663C48.4202 84.9758 48.5286 85 48.6451 85H60.0066C62.2691 85 64.3352 83.4896 64.7986 81.2887C65.434 78.2665 63.0983 75.5769 60.161 75.5769H56.9189C55.5695 75.5769 54.3177 74.6602 54.1009 73.3369C53.8259 71.6502 55.1279 70.1923 56.774 70.1923H81.5509C84.7307 70.1923 87.5839 67.8985 87.9036 64.7552C88.2695 61.1488 85.3972 58.0769 81.8381 58.0769H77.2412C75.8918 58.0769 74.64 57.1602 74.4232 55.8369C74.1482 54.1502 75.4502 52.6923 77.0963 52.6923Z\",\n fill: \"#F7F7F7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.2899 76.2721H72.9841C73.784 76.2721 74.4332 75.6396 74.4332 74.8602V67.8008H62.8408V74.8602C62.8408 75.6396 63.49 76.2721 64.2899 76.2721Z\",\n fill: \"#3D64D8\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.605 74.8602V67.8008H12.0127V74.8602C12.0127 75.6396 12.6619 76.2721 13.4617 76.2721H22.156C22.9559 76.2721 23.605 75.6396 23.605 74.8602Z\",\n fill: \"#3D64D8\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 64.4011,\n cy: 53.7546,\n r: 3.7898,\n fill: \"white\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 22.0447,\n cy: 53.7546,\n r: 3.7898,\n fill: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.293 57.5508L32.4807 63.2249C32.925 64.3755 33.9991 65.1304 35.1946 65.1304H51.697C52.8925 65.1304 53.9666 64.3755 54.4109 63.2249L56.5987 57.5508H30.293Z\",\n fill: \"#F8F9FE\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M66.2505 29.4015L69.5288 42.3082V40.6056C69.5288 38.8812 70.7925 37.4846 72.3526 37.4846H76.5883C77.3676 37.4846 78.0002 38.1837 78.0002 39.0451V40.6056C78.0002 42.33 76.7365 43.7266 75.1764 43.7266H70.5468L72.2163 45.918C73.3657 47.4273 73.987 49.262 73.987 51.1475V67.1265C73.987 68.7317 72.6663 70.0318 71.0358 70.0318H14.9637C13.3332 70.0318 12.0125 68.7317 12.0125 67.1265V51.1475C12.0125 49.262 12.6337 47.4258 13.7832 45.918L15.4527 43.7266H10.8238C9.26364 43.7266 8 42.33 8 40.6056V39.0451C8 38.1837 8.63253 37.4846 9.41189 37.4846H13.6476C15.2077 37.4846 16.4713 38.8812 16.4713 40.6056V42.3054L19.7475 29.4015C20.4056 26.8143 22.7666 25 25.4742 25H60.5252C63.2329 25 65.5938 26.8143 66.2505 29.4015Z\",\n fill: \"white\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.5288 42.3082L69.0442 42.4312L70.0288 42.3082H69.5288ZM66.2505 29.4015L65.7658 29.5245L65.7659 29.5246L66.2505 29.4015ZM70.5468 43.7266V43.2266H69.5373L70.149 44.0296L70.5468 43.7266ZM72.2163 45.918L72.614 45.615L72.614 45.615L72.2163 45.918ZM13.7832 45.918L14.1808 46.2211L14.1809 46.221L13.7832 45.918ZM15.4527 43.7266L15.8504 44.0296L16.4622 43.2266H15.4527V43.7266ZM16.4713 42.3054H15.9713L16.956 42.4284L16.4713 42.3054ZM19.7475 29.4015L19.2629 29.2782L19.2629 29.2785L19.7475 29.4015ZM70.0134 42.1851L66.7351 29.2784L65.7659 29.5246L69.0442 42.4312L70.0134 42.1851ZM69.0288 40.6056V42.3082H70.0288V40.6056H69.0288ZM72.3526 36.9846C70.4704 36.9846 69.0288 38.6534 69.0288 40.6056H70.0288C70.0288 39.1091 71.1145 37.9846 72.3526 37.9846V36.9846ZM76.5883 36.9846H72.3526V37.9846H76.5883V36.9846ZM78.5002 39.0451C78.5002 37.9558 77.6897 36.9846 76.5883 36.9846V37.9846C77.0456 37.9846 77.5002 38.4116 77.5002 39.0451H78.5002ZM78.5002 40.6056V39.0451H77.5002V40.6056H78.5002ZM75.1764 44.2266C77.0586 44.2266 78.5002 42.5578 78.5002 40.6056H77.5002C77.5002 42.1021 76.4145 43.2266 75.1764 43.2266V44.2266ZM70.5468 44.2266H75.1764V43.2266H70.5468V44.2266ZM72.614 45.615L70.9445 43.4236L70.149 44.0296L71.8185 46.221L72.614 45.615ZM74.487 51.1475C74.487 49.1518 73.8294 47.2108 72.614 45.615L71.8185 46.2209C72.9021 47.6437 73.487 49.3721 73.487 51.1475H74.487ZM74.487 67.1265V51.1475H73.487V67.1265H74.487ZM71.0358 70.5318C72.935 70.5318 74.487 69.0152 74.487 67.1265H73.487C73.487 68.4482 72.3976 69.5318 71.0358 69.5318V70.5318ZM14.9637 70.5318H71.0358V69.5318H14.9637V70.5318ZM11.5125 67.1265C11.5125 69.0152 13.0644 70.5318 14.9637 70.5318V69.5318C13.6019 69.5318 12.5125 68.4482 12.5125 67.1265H11.5125ZM11.5125 51.1475V67.1265H12.5125V51.1475H11.5125ZM13.3856 45.6149C12.17 47.2094 11.5125 49.1519 11.5125 51.1475H12.5125C12.5125 49.372 13.0975 47.6423 14.1808 46.2211L13.3856 45.6149ZM15.055 43.4236L13.3855 45.615L14.1809 46.221L15.8504 44.0296L15.055 43.4236ZM10.8238 44.2266H15.4527V43.2266H10.8238V44.2266ZM7.5 40.6056C7.5 42.5578 8.94159 44.2266 10.8238 44.2266V43.2266C9.58569 43.2266 8.5 42.1021 8.5 40.6056H7.5ZM7.5 39.0451V40.6056H8.5V39.0451H7.5ZM9.41189 36.9846C8.31048 36.9846 7.5 37.9558 7.5 39.0451H8.5C8.5 38.4116 8.95457 37.9846 9.41189 37.9846V36.9846ZM13.6476 36.9846H9.41189V37.9846H13.6476V36.9846ZM16.9713 40.6056C16.9713 38.6534 15.5297 36.9846 13.6476 36.9846V37.9846C14.8856 37.9846 15.9713 39.1091 15.9713 40.6056H16.9713ZM16.9713 42.3054V40.6056H15.9713V42.3054H16.9713ZM19.2629 29.2785L15.9867 42.1823L16.956 42.4284L20.2321 29.5245L19.2629 29.2785ZM25.4742 24.5C22.5426 24.5 19.9786 26.4649 19.2629 29.2782L20.2321 29.5248C20.8327 27.1638 22.9905 25.5 25.4742 25.5V24.5ZM60.5252 24.5H25.4742V25.5H60.5252V24.5ZM66.7351 29.2785C66.021 26.4649 63.4568 24.5 60.5252 24.5V25.5C63.009 25.5 65.1667 27.1638 65.7658 29.5245L66.7351 29.2785Z\",\n fill: \"#3D64D8\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.2997 43.7228L67.1647 43.5433L67.0208 42.9713L63.7283 29.8825C63.401 28.5809 62.2296 27.6719 60.8806 27.6719H26.0119C24.6629 27.6719 23.4915 28.5809 23.1642 29.8825L19.8731 42.9713L19.7293 43.5433L19.5928 43.7228H67.2997Z\",\n fill: \"white\",\n stroke: \"#3D64D8\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 64.4011,\n cy: 53.7546,\n r: 3.7898,\n fill: \"#3D64D8\"\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 22.0447,\n cy: 53.7546,\n r: 3.7898,\n fill: \"#3D64D8\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.5117 58.3477L32.4813 62.8037C32.9255 63.9543 33.9997 64.7092 35.1951 64.7092H51.6976C52.893 64.7092 53.9672 63.9543 54.4115 62.8037L56.3582 58.3477H43.435H30.5117Z\",\n fill: \"#3D64D8\"\n })), _line || (_line = /*#__PURE__*/React.createElement(\"line\", {\n x1: 39,\n y1: 97.5,\n x2: 44,\n y2: 97.5,\n stroke: \"#3D64D8\"\n })), _line2 || (_line2 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 41.5,\n y1: 100,\n x2: 41.5,\n y2: 95,\n stroke: \"#3D64D8\"\n })), _line3 || (_line3 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 95,\n y1: 21.5,\n x2: 100,\n y2: 21.5,\n stroke: \"#3D64D8\"\n })), _line4 || (_line4 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 97.5,\n y1: 24,\n x2: 97.5,\n y2: 19,\n stroke: \"#3D64D8\"\n })), _circle5 || (_circle5 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 24,\n cy: 2,\n r: 2,\n fill: \"#3D64D8\"\n })), _circle6 || (_circle6 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 88,\n cy: 86,\n r: 2,\n fill: \"#3D64D8\"\n })), _circle7 || (_circle7 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.5,\n cy: 56.5,\n r: 2.3,\n stroke: \"#3D64D8\",\n strokeOpacity: 0.5,\n strokeWidth: 0.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCarBasket);\nexport default __webpack_public_path__ + \"static/media/carBasket.d494050c.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _ellipse, _ellipse2, _path8, _line, _line2, _line3, _line4, _circle, _circle2, _circle3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCommercialBasket(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 100,\n height: 100,\n viewBox: \"0 0 100 100\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.0963 54.6923H84.1969C88.0825 54.6923 91.5698 51.8896 91.9613 48.0477C92.4098 43.639 88.8981 39.8846 84.5478 39.8846H67.8428C65.6426 39.8846 63.6687 38.2477 63.5548 36.0629C63.4316 33.734 65.2958 31.8077 67.6125 31.8077H70.6487C74.5343 31.8077 78.0216 29.005 78.4131 25.1631C78.8616 20.7544 75.3499 17 70.9996 17H19.5165C15.4005 17 12.065 20.3142 12.065 24.4038C12.065 28.4935 15.4005 31.8077 19.5165 31.8077H24.2583C25.7554 31.8077 26.968 33.0125 26.968 34.5C26.968 35.9875 25.7554 37.1923 24.2583 37.1923H14.3844C11.2047 37.1923 8.35142 39.4862 8.03168 42.6281C7.66452 46.2358 10.5381 49.3077 14.0972 49.3077H22.6732C24.8734 49.3077 26.8474 50.9446 26.9612 53.1294C27.0845 55.4583 25.2203 57.3846 22.9035 57.3846H18.4489C15.2691 57.3846 12.4159 59.6785 12.0961 62.8204C11.7303 66.4281 14.6025 69.5 18.1617 69.5H24.1134C25.4628 69.5 26.7146 70.4167 26.9314 71.74C27.2064 73.4267 25.9044 74.8846 24.2583 74.8846H18.4489C15.2691 74.8846 12.4159 77.1785 12.0961 80.3204C11.729 83.9281 14.6025 87 18.1617 87H47.9677C48.0842 87 48.1926 86.9717 48.3064 86.9663C48.4202 86.9758 48.5286 87 48.6451 87H60.0066C62.2691 87 64.3352 85.4896 64.7986 83.2887C65.434 80.2665 63.0983 77.5769 60.161 77.5769H56.9189C55.5695 77.5769 54.3177 76.6602 54.1009 75.3369C53.8259 73.6502 55.1279 72.1923 56.774 72.1923H81.5509C84.7307 72.1923 87.5839 69.8985 87.9036 66.7552C88.2695 63.1488 85.3972 60.0769 81.8381 60.0769H77.2412C75.8918 60.0769 74.64 59.1602 74.4232 57.8369C74.1482 56.1502 75.4502 54.6923 77.0963 54.6923Z\",\n fill: \"#F7F7F7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M57.2315 22.5515L57.2291 22.5538L57.2304 22.5552L28.579 49.2731L30.5374 55.9003C30.8089 56.8189 30.5389 57.8104 29.839 58.463L28.4449 59.7631C27.8623 60.3063 26.9272 60.1811 26.5081 59.5021L22.6014 53.1771C21.1811 53.2337 19.7448 52.6939 18.6986 51.572C17.6538 50.4516 17.2153 48.9836 17.369 47.5725L11.3301 43.2327C10.683 42.7664 10.6223 41.8258 11.2049 41.2825L12.5991 39.9824C13.298 39.3306 14.3068 39.1296 15.2042 39.4645L21.6795 41.8807L50.2342 15.2531C50.2673 15.2204 50.301 15.1881 50.3352 15.1562C52.3749 13.2542 55.5722 13.3678 57.4765 15.4099C59.3809 17.4521 59.2712 20.6495 57.2315 22.5515Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M57.7582 13.9441C55.4677 11.4713 51.6181 11.3407 49.1598 13.6484C49.105 13.6999 49.0514 13.7521 48.9988 13.8052L37.5843 24.5209L16.604 15.5552L16.6037 15.555C15.338 15.0137 13.876 15.2752 12.8706 16.2191L11.4334 17.5683C10.4593 18.4828 10.4865 20.0487 11.4994 20.9236L27.0755 34.3864L20.7252 40.348L14.779 38.1224C13.5219 37.6518 12.1084 37.9376 11.128 38.8579L9.7224 40.1775C8.67568 41.1602 8.7813 42.8603 9.94271 43.7017L9.94373 43.7025L15.573 47.7702C15.5531 49.2899 16.0922 50.8215 17.2037 52.0214C18.3142 53.2203 19.7927 53.8685 21.2986 53.9554L24.9354 59.8904L24.9355 59.8907C25.6882 61.1195 27.3676 61.3403 28.413 60.3588L29.8186 59.0393C30.8001 58.1179 31.1806 56.719 30.8022 55.424L29.0132 49.3027L35.2295 43.4669L47.4499 60.0036C48.2573 61.097 49.8288 61.2355 50.8166 60.3082L52.2902 58.9248C53.3127 57.9649 53.6815 56.488 53.2252 55.1553L53.2251 55.1549L45.8251 33.5199L57.4516 22.6051L58.1806 21.9207L58.1229 21.8584C59.913 19.5262 59.8181 16.1679 57.7582 13.9441ZM14.0836 40.0033L19.8489 42.1613L19.5591 44.1859L21.6287 42.243L50.3717 15.2595L50.3861 15.246L50.4 15.2319C50.4387 15.1925 50.4783 15.1538 50.5189 15.1157C52.1736 13.5623 54.7618 13.6523 56.3 15.3129C57.8383 16.9736 57.7469 19.5791 56.0923 21.1325L56.0897 21.1349L55.3606 21.8193L55.3634 21.8223L43.9924 32.4972L43.5188 32.9418L43.6223 33.2444L35.6742 40.706L35.4998 40.47L34.6851 41.2348L27.2037 48.2582L26.7534 48.681L26.9271 49.2754L28.8899 55.9912C29.0553 56.5571 28.8892 57.1686 28.4595 57.572L27.0539 58.8916C26.9246 59.013 26.7217 58.9827 26.6323 58.8368L26.6322 58.8366L22.707 52.4308L22.4009 51.9313L21.8182 51.9553C20.6662 52.003 19.5066 51.5645 18.6619 50.6526C17.8164 49.7398 17.4629 48.5434 17.5914 47.3889L17.6564 46.805L17.1824 46.4625L11.1076 42.0729L11.1074 42.0727C10.9672 41.971 10.9535 41.7649 11.0815 41.6448L12.4871 40.3252C12.9161 39.9225 13.5346 39.7978 14.0836 40.0033Z\",\n fill: \"#3D64D8\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.388 68.7891H56.1108L49.5234 87.1217H52.8006L59.388 68.7891Z\",\n fill: \"#3D64D8\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.8216 87.1217H76.5444L69.957 68.7891H73.2342L79.8216 87.1217Z\",\n fill: \"#3D64D8\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.5553 44.1133H54.0845C52.663 44.1133 51.3882 44.9536 50.8785 46.2274L46.2285 57.8304C46.0776 58.2084 46 58.6098 46 59.0145V78.1866C46 80.0071 47.5378 81.4838 49.4344 81.4838H79.2042C81.102 81.4838 82.6398 80.0071 82.6398 78.1866V59.0145C82.6398 58.6098 82.5622 58.2084 82.4113 57.8304L77.7613 46.2274C77.2516 44.9536 75.9767 44.1133 74.5553 44.1133Z\",\n fill: \"white\",\n stroke: \"#3D64D8\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.9219 42H59.0657C58.6395 42 58.2504 42.2407 58.0603 42.6219L57.2461 44.2492H70.7416L69.9273 42.6219C69.7373 42.2407 69.3481 42 68.9219 42Z\",\n fill: \"#3D64D8\"\n })), _ellipse || (_ellipse = /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 53.047,\n cy: 72.3165,\n rx: 2.81844,\n ry: 2.82041,\n fill: \"#3D64D8\"\n })), _ellipse2 || (_ellipse2 = /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 75.5929,\n cy: 72.3165,\n rx: 2.81844,\n ry: 2.82041,\n fill: \"#3D64D8\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.6136 58.566V61.1205H50.498V58.566C50.498 58.3442 50.5383 58.1225 50.6189 57.9105L53.0584 51.4808L54.0322 48.8974C54.3236 48.1359 55.0771 47.625 55.9206 47.625H73.192C74.0354 47.625 74.7889 48.1359 75.0795 48.8974L76.0532 51.4808L78.4936 57.9105C78.5733 58.1225 78.6136 58.3442 78.6136 58.566Z\",\n fill: \"#3D64D8\",\n stroke: \"#3D64D8\"\n })), _line || (_line = /*#__PURE__*/React.createElement(\"line\", {\n x1: 23,\n y1: 81.5,\n x2: 28,\n y2: 81.5,\n stroke: \"#3D64D8\"\n })), _line2 || (_line2 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 25.5,\n y1: 84,\n x2: 25.5,\n y2: 79,\n stroke: \"#3D64D8\"\n })), _line3 || (_line3 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 77,\n y1: 15.5,\n x2: 82,\n y2: 15.5,\n stroke: \"#3D64D8\"\n })), _line4 || (_line4 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 79.5,\n y1: 18,\n x2: 79.5,\n y2: 13,\n stroke: \"#3D64D8\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 98,\n cy: 98,\n r: 2,\n fill: \"#3D64D8\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 26,\n cy: 2,\n r: 2,\n fill: \"#3D64D8\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.5,\n cy: 70.5,\n r: 2.3,\n stroke: \"#3D64D8\",\n strokeOpacity: 0.5,\n strokeWidth: 0.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCommercialBasket);\nexport default __webpack_public_path__ + \"static/media/commercialBasket.06122a2d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _line, _line2, _line3, _line4, _circle, _circle2, _circle3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCvFlightBasket(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 100,\n height: 100,\n viewBox: \"0 0 100 100\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.0963 52.6923H84.1969C88.0825 52.6923 91.5698 49.8896 91.9613 46.0477C92.4098 41.639 88.8981 37.8846 84.5478 37.8846H67.8428C65.6426 37.8846 63.6687 36.2477 63.5548 34.0629C63.4316 31.734 65.2958 29.8077 67.6125 29.8077H70.6487C74.5343 29.8077 78.0216 27.005 78.4131 23.1631C78.8616 18.7544 75.3499 15 70.9996 15H19.5165C15.4005 15 12.065 18.3142 12.065 22.4038C12.065 26.4935 15.4005 29.8077 19.5165 29.8077H24.2583C25.7554 29.8077 26.968 31.0125 26.968 32.5C26.968 33.9875 25.7554 35.1923 24.2583 35.1923H14.3844C11.2047 35.1923 8.35142 37.4862 8.03168 40.6281C7.66452 44.2358 10.5381 47.3077 14.0972 47.3077H22.6732C24.8734 47.3077 26.8474 48.9446 26.9612 51.1294C27.0845 53.4583 25.2203 55.3846 22.9035 55.3846H18.4489C15.2691 55.3846 12.4159 57.6785 12.0961 60.8204C11.7303 64.4281 14.6025 67.5 18.1617 67.5H24.1134C25.4628 67.5 26.7146 68.4167 26.9314 69.74C27.2064 71.4267 25.9044 72.8846 24.2583 72.8846H18.4489C15.2691 72.8846 12.4159 75.1785 12.0961 78.3204C11.729 81.9281 14.6025 85 18.1617 85H47.9677C48.0842 85 48.1926 84.9717 48.3064 84.9663C48.4202 84.9758 48.5286 85 48.6451 85H60.0066C62.2691 85 64.3352 83.4896 64.7986 81.2887C65.434 78.2665 63.0983 75.5769 60.161 75.5769H56.9189C55.5695 75.5769 54.3177 74.6602 54.1009 73.3369C53.8259 71.6502 55.1279 70.1923 56.774 70.1923H81.5509C84.7307 70.1923 87.5839 67.8985 87.9036 64.7552C88.2695 61.1488 85.3972 58.0769 81.8381 58.0769H77.2412C75.8918 58.0769 74.64 57.1602 74.4232 55.8369C74.1482 54.1502 75.4502 52.6923 77.0963 52.6923Z\",\n fill: \"#F7F7F7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M74.7077 31.8769L74.7055 31.8789L74.7068 31.8803L39.0935 65.0903L41.5277 73.3277C41.8651 74.4696 41.5296 75.7019 40.6597 76.5131L38.9268 78.129C38.2026 78.8043 37.0404 78.6486 36.5195 77.8046L31.6639 69.9435C29.8987 70.0137 28.1135 69.3427 26.8133 67.9484C25.5142 66.5553 24.9691 64.7297 25.1609 62.9751L17.6543 57.5806C16.8499 57.001 16.7745 55.8318 17.4986 55.1566L19.2315 53.5406C20.1003 52.7305 21.3542 52.4806 22.4697 52.8969L30.5191 55.9005L66.0215 22.794C66.0591 22.7572 66.0972 22.7208 66.1359 22.6847C68.6711 20.3206 72.6452 20.4618 75.0122 23.0001C77.3793 25.5385 77.2429 29.5127 74.7077 31.8769Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M75.1855 21.3389C72.4299 18.3641 67.7982 18.2066 64.8403 20.9834C64.78 21.0401 64.7207 21.0975 64.6626 21.1558L50.3377 34.6039L50.2079 34.5484L24.1147 23.3977L24.1144 23.3976C22.6294 22.7625 20.914 23.0691 19.7341 24.1768L17.9477 25.8539C16.8422 26.8918 16.8734 28.6686 18.0224 29.6611L37.5886 46.5726L29.3853 54.2737L21.8565 51.4557C20.3799 50.903 18.7196 51.2386 17.568 52.3197L15.8209 53.9599C14.6314 55.0765 14.7516 57.0082 16.0711 57.9642L16.0721 57.965L23.1728 63.0959C23.1174 64.9648 23.7649 66.8577 25.132 68.3337C26.4985 69.8088 28.3277 70.5911 30.1824 70.6665L34.7711 78.155L34.7713 78.1553C35.6262 79.5511 37.5343 79.8024 38.7224 78.687L40.4695 77.0468C41.6225 75.9645 42.0694 74.3214 41.6248 72.8003L39.3585 65.0458L47.3914 57.5046L62.7437 78.2792C63.6608 79.5212 65.4463 79.6789 66.5688 78.625L68.4004 76.9056C69.6017 75.7779 70.0347 74.0429 69.4986 72.4775L60.2488 45.4343L74.8157 31.7591L75.5448 31.0746L75.4966 31.0226C77.7816 28.2119 77.7117 24.0662 75.1855 21.3389ZM21.1611 53.3366L28.51 56.0873L17.235 56.3346C16.9374 56.1181 16.9095 55.681 17.18 55.4271L18.9271 53.7869C19.5273 53.2235 20.3926 53.0489 21.1611 53.3366ZM57.9868 44.9855L57.9426 44.8562L58.4162 44.4116L72.7276 30.9763L72.7248 30.9733L73.4539 30.2888L73.4571 30.2858C75.6113 28.2634 75.7307 24.8705 73.7274 22.7078C71.724 20.5451 68.3537 20.4282 66.1994 22.4506C66.1519 22.4953 66.1053 22.5406 66.0598 22.5865L66.0472 22.5991L66.0343 22.6113L30.2902 56.1673L28.22 58.1108L28.51 56.0873L17.236 56.3354L24.7868 61.7915L25.2605 62.1338L25.1959 62.7175C25.0295 64.2192 25.4897 65.7767 26.5902 66.9648C27.6901 68.1522 29.2002 68.7231 30.6991 68.6614L31.2817 68.6375L31.5877 69.1369L36.4679 77.1012L36.4681 77.1014C36.6597 77.4143 37.0913 77.4751 37.3633 77.2197L39.1104 75.5796C39.7116 75.0152 39.944 74.1596 39.7125 73.3675L37.4986 65.7922L35.4911 65.9333L37.5489 64.0015L46.847 55.2725L47.6617 54.5077L47.7362 54.6086L57.9868 44.9855Z\",\n fill: \"#3D64D8\"\n })), _line || (_line = /*#__PURE__*/React.createElement(\"line\", {\n x1: 50,\n y1: 8.5,\n x2: 55,\n y2: 8.5,\n stroke: \"#3D64D8\"\n })), _line2 || (_line2 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 52.5,\n y1: 11,\n x2: 52.5,\n y2: 6,\n stroke: \"#3D64D8\"\n })), _line3 || (_line3 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 9,\n y1: 97.5,\n x2: 14,\n y2: 97.5,\n stroke: \"#3D64D8\"\n })), _line4 || (_line4 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.5,\n y1: 100,\n x2: 11.5,\n y2: 95,\n stroke: \"#3D64D8\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 98,\n cy: 76,\n r: 2,\n fill: \"#3D64D8\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 37,\n r: 2,\n fill: \"#3D64D8\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.5,\n cy: 2.5,\n r: 2.3,\n stroke: \"#3D64D8\",\n strokeOpacity: 0.5,\n strokeWidth: 0.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCvFlightBasket);\nexport default __webpack_public_path__ + \"static/media/cvFlightBasket.ae69127d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _mask, _path4, _mask2, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _circle, _line, _line2, _line3, _line4, _circle2, _circle3, _circle4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgHotelBasket(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 100,\n height: 100,\n viewBox: \"0 0 100 100\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.0963 52.6923H84.1969C88.0825 52.6923 91.5698 49.8896 91.9613 46.0477C92.4098 41.639 88.8981 37.8846 84.5478 37.8846H67.8428C65.6426 37.8846 63.6687 36.2477 63.5548 34.0629C63.4316 31.734 65.2958 29.8077 67.6125 29.8077H70.6487C74.5343 29.8077 78.0216 27.005 78.4131 23.1631C78.8616 18.7544 75.3499 15 70.9996 15H19.5165C15.4005 15 12.065 18.3142 12.065 22.4038C12.065 26.4935 15.4005 29.8077 19.5165 29.8077H24.2583C25.7554 29.8077 26.968 31.0125 26.968 32.5C26.968 33.9875 25.7554 35.1923 24.2583 35.1923H14.3844C11.2047 35.1923 8.35142 37.4862 8.03168 40.6281C7.66452 44.2358 10.5381 47.3077 14.0972 47.3077H22.6732C24.8734 47.3077 26.8474 48.9446 26.9612 51.1294C27.0845 53.4583 25.2203 55.3846 22.9035 55.3846H18.4489C15.2691 55.3846 12.4159 57.6785 12.0961 60.8204C11.7303 64.4281 14.6025 67.5 18.1617 67.5H24.1134C25.4628 67.5 26.7146 68.4167 26.9314 69.74C27.2064 71.4267 25.9044 72.8846 24.2583 72.8846H18.4489C15.2691 72.8846 12.4159 75.1785 12.0961 78.3204C11.729 81.9281 14.6025 85 18.1617 85H47.9677C48.0842 85 48.1926 84.9717 48.3064 84.9663C48.4202 84.9758 48.5286 85 48.6451 85H60.0066C62.2691 85 64.3352 83.4896 64.7986 81.2887C65.434 78.2665 63.0983 75.5769 60.161 75.5769H56.9189C55.5695 75.5769 54.3177 74.6602 54.1009 73.3369C53.8259 71.6502 55.1279 70.1923 56.774 70.1923H81.5509C84.7307 70.1923 87.5839 67.8985 87.9036 64.7552C88.2695 61.1488 85.3972 58.0769 81.8381 58.0769H77.2412C75.8918 58.0769 74.64 57.1602 74.4232 55.8369C74.1482 54.1502 75.4502 52.6923 77.0963 52.6923Z\",\n fill: \"#F7F7F7\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 78.8038V35.0469L44.7931 35.0478L74.5158 35.0469V78.8038H15Z\",\n fill: \"white\",\n stroke: \"#3D64D8\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 31.5172V25L44.8283 25.0001L74.5862 25V31.5172H15Z\",\n fill: \"#3D64D8\",\n stroke: \"#3D64D8\"\n })), _mask || (_mask = /*#__PURE__*/React.createElement(\"mask\", {\n id: \"path-4-inside-1\",\n fill: \"white\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.5176 35.2399V28.7227L21.9836 28.7228L22.4486 28.7227V35.2399H21.5176Z\"\n }))), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.5176 35.2399H20.5176V36.2399H21.5176V35.2399ZM21.5176 28.7227L21.5179 27.7227L20.5176 27.7224V28.7227H21.5176ZM21.9836 28.7228L21.9834 29.7228L21.9839 29.7228L21.9836 28.7228ZM22.4486 28.7227H23.4486V27.7224L22.4483 27.7227L22.4486 28.7227ZM22.4486 35.2399V36.2399H23.4486V35.2399H22.4486ZM22.5176 35.2399V28.7227H20.5176V35.2399H22.5176ZM21.5173 29.7227L21.9834 29.7228L21.9839 27.7228L21.5179 27.7227L21.5173 29.7227ZM21.9839 29.7228L22.4489 29.7227L22.4483 27.7227L21.9834 27.7228L21.9839 29.7228ZM21.4486 28.7227V35.2399H23.4486V28.7227H21.4486ZM22.4486 34.2399H21.5176V36.2399H22.4486V34.2399Z\",\n fill: \"#3D64D8\",\n mask: \"url(#path-4-inside-1)\"\n })), _mask2 || (_mask2 = /*#__PURE__*/React.createElement(\"mask\", {\n id: \"path-6-inside-2\",\n fill: \"white\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.1377 35.2399V28.7227L67.6038 28.7228L68.0687 28.7227V35.2399H67.1377Z\"\n }))), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.1377 35.2399H66.1377V36.2399H67.1377V35.2399ZM67.1377 28.7227L67.138 27.7227L66.1377 27.7224V28.7227H67.1377ZM67.6038 28.7228L67.6035 29.7228L67.6041 29.7228L67.6038 28.7228ZM68.0687 28.7227H69.0687V27.7224L68.0684 27.7227L68.0687 28.7227ZM68.0687 35.2399V36.2399H69.0687V35.2399H68.0687ZM68.1377 35.2399V28.7227H66.1377V35.2399H68.1377ZM67.1374 29.7227L67.6035 29.7228L67.604 27.7228L67.138 27.7227L67.1374 29.7227ZM67.6041 29.7228L68.069 29.7227L68.0684 27.7227L67.6035 27.7228L67.6041 29.7228ZM67.0687 28.7227V35.2399H69.0687V28.7227H67.0687ZM68.0687 34.2399H67.1377V36.2399H68.0687V34.2399Z\",\n fill: \"#3D64D8\",\n mask: \"url(#path-6-inside-2)\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.7588 41.5781H68.0691V49.6939H58.7588V41.5781Z\",\n fill: \"white\",\n fillOpacity: 0.7,\n stroke: \"#3D64D8\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.2139 55.7227H30.5242V63.613H21.2139V55.7227Z\",\n fill: \"white\",\n fillOpacity: 0.7,\n stroke: \"#3D64D8\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.7588 55.7227H68.0691V63.613H58.7588V55.7227Z\",\n fill: \"white\",\n fillOpacity: 0.7,\n stroke: \"#3D64D8\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.2119 41.6836H30.5223V49.5739H21.2119V41.6836Z\",\n fill: \"white\",\n fillOpacity: 0.7,\n stroke: \"#3D64D8\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.207 41.1836H38.707V41.6836V49.5739V50.0739H39.207H51.3105H51.8105V49.5739V41.6836V41.1836H51.3105H39.207Z\",\n fill: \"white\",\n fillOpacity: 0.7,\n stroke: \"#3D64D8\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.707 61.8125H50.8105V78.5022H39.707V61.8125Z\",\n fill: \"#3D64D8\",\n stroke: \"#3D64D8\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 45.2588,\n cy: 61.7783,\n r: 5.55172,\n fill: \"#3D64D8\",\n stroke: \"#3D64D8\"\n })), _line || (_line = /*#__PURE__*/React.createElement(\"line\", {\n x1: 89,\n y1: 12.5,\n x2: 94,\n y2: 12.5,\n stroke: \"#3D64D8\"\n })), _line2 || (_line2 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 91.5,\n y1: 15,\n x2: 91.5,\n y2: 10,\n stroke: \"#3D64D8\"\n })), _line3 || (_line3 = /*#__PURE__*/React.createElement(\"line\", {\n y1: 62.5,\n x2: 5,\n y2: 62.5,\n stroke: \"#3D64D8\"\n })), _line4 || (_line4 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.5,\n y1: 65,\n x2: 2.5,\n y2: 60,\n stroke: \"#3D64D8\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 20,\n cy: 2,\n r: 2,\n fill: \"#3D64D8\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 70,\n cy: 98,\n r: 2,\n fill: \"#3D64D8\"\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 97.5,\n cy: 23.5,\n r: 2.3,\n stroke: \"#3D64D8\",\n strokeOpacity: 0.5,\n strokeWidth: 0.4\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHotelBasket);\nexport default __webpack_public_path__ + \"static/media/hotelBasket.daf3fd1e.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport IPassenger from '../../../models/Reservation/IPassenger';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport ToggleButtons from '../../commons/ToggleButtons/ToggleButtons';\r\n\r\nexport interface ITravelersPickerProps {\r\n travelers: IPassenger[];\r\n formName: string;\r\n control: any;\r\n disabled?: boolean;\r\n serializeTraveler?: boolean;\r\n onClick?: () => void;\r\n}\r\n\r\nexport interface IPassengerSelected extends IPassenger {\r\n selected: boolean;\r\n}\r\n\r\nconst convert = (v: IPassenger, s: boolean): string =>\r\n JSON.stringify({ ...v, selected: s });\r\n\r\nconst TravelersPicker: React.FC = ({\r\n travelers,\r\n formName,\r\n control,\r\n disabled = false,\r\n serializeTraveler = false,\r\n onClick,\r\n}) => {\r\n return (\r\n <>\r\n \r\n {travelers &&\r\n travelers.map((r, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default TravelersPicker;\r\n","import React from 'react';\r\n\r\nimport IPassenger from '../../../models/Reservation/IPassenger';\r\n\r\nimport './PassengerList.scss';\r\nimport {useReservationContext} from '../../../context/ReservationProvider/ReservationProvider';\r\nimport {CVFlightStatus} from '../../../models/Enum';\r\n\r\nexport interface IPassengersListProps {\r\n passengers: IPassenger[];\r\n displayLabel: boolean;\r\n}\r\n\r\nconst PassengersList: React.FC = ({\r\n passengers,\r\n displayLabel,\r\n}) => {\r\n const {\r\n state: { booking },\r\n } = useReservationContext();\r\n\r\n function isWaitListed(memberId: number) {\r\n if (!booking.cvFlights) return false;\r\n let found = false;\r\n\r\n for (const flight of booking.cvFlights) {\r\n if (!flight.cvFlightLegs) continue;\r\n for (const leg of flight.cvFlightLegs) {\r\n const waitlisted = leg.reservationCVFlightLegMembers.find(\r\n (e) => e.memberId === memberId && e.status === CVFlightStatus.WaitList\r\n );\r\n if (waitlisted) found = true;\r\n }\r\n }\r\n return found;\r\n }\r\n\r\n function getWaitListedLabel(passenger: IPassenger): JSX.Element | null {\r\n if (isWaitListed(passenger.memberId)) {\r\n return  (Waitlisted);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n {passengers?.length > 0 && (\r\n <>\r\n {displayLabel && (\r\n <>\r\n {passengers.length} passenger{passengers.length > 1 && 's'}:{' '}\r\n \r\n )}\r\n
\r\n {passengers?.map((passenger, index) => (\r\n \r\n {`${passenger.firstName} ${passenger.lastName}`}\r\n {getWaitListedLabel(passenger)}\r\n \r\n ))}\r\n
\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PassengersList;\r\n","import axios from 'axios';\r\nimport React, {useEffect, useState} from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\n\r\nimport {Box, Grid, LinearProgress, Typography} from '@material-ui/core';\r\n\r\nimport {useUserContext} from '../../../context/User/UserContext';\r\nimport useMultiCommentCollapse from '../../../hooks/useMultiCommentCollapse';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IAgent from '../../../models/DailyTasks/TaskList/IAgent';\r\nimport ITaskExtended from '../../../models/DailyTasks/TaskList/ITaskExtended';\r\nimport IStatus from '../../../models/IStatus';\r\nimport ReservationService from '../../../services/ReservationService';\r\nimport TaskService from '../../../services/TaskService';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\nimport {CheckboxControlled} from '../../commons/Checkbox/Checkbox';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport Searchcomplete from '../../commons/Searchcomplete/Searchcomplete';\r\nimport Select from '../../commons/Select/Select';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport styles from './AgentForm.module.scss';\r\n\r\nexport interface IAgentFormProps {\r\n task?: ITaskExtended;\r\n isHotel: boolean;\r\n form: UseFormMethods;\r\n readOnly: boolean;\r\n}\r\n\r\ntype AgentFormState = {\r\n agents?: IAgent[];\r\n status: IStatus[];\r\n};\r\n\r\nconst AgentForm: React.FC = ({\r\n task,\r\n form,\r\n readOnly,\r\n isHotel,\r\n}) => {\r\n const [data, setData] = useState(undefined);\r\n const { addMessage } = useSnackbar();\r\n const { permissions, userName } = useUserContext();\r\n const outStationed =\r\n permissions.includes(\r\n PermissionsList.eTravelDailyTasksTaskListOutstationAssignation\r\n ) &&\r\n !permissions.includes(\r\n PermissionsList.eTravelDailyTasksTaskListAllAssignation\r\n );\r\n const { CommentsCollapse } = useMultiCommentCollapse({\r\n controller: task?.taskId ?? 0,\r\n history: task?.comments\r\n ? task.comments.map((history) => ({\r\n comment: history.comment!,\r\n createdBy: history.createdByName!,\r\n createdOn: history.createdOn!,\r\n }))\r\n : [],\r\n title: 'History of Agent comment',\r\n summaryClassName: styles.agentAccordion,\r\n summaryTitleClassName: styles.historyTitle,\r\n expandButtonClassName: styles.historyCollapse,\r\n });\r\n\r\n useEffect(() => {\r\n const cancelToken = axios.CancelToken.source();\r\n\r\n if (readOnly) {\r\n ReservationService.getServiceStatuses(cancelToken.token)\r\n .then((status) => {\r\n setData({ agents: undefined, status });\r\n })\r\n .catch((error) => {\r\n addMessage(error.message, MessageType.Error);\r\n });\r\n } else {\r\n Promise.all([\r\n TaskService.getAgents(cancelToken.token),\r\n ReservationService.getServiceStatuses(cancelToken.token),\r\n ])\r\n .then(([agents, status]) => {\r\n setData({ agents, status });\r\n })\r\n .catch((error) => {\r\n addMessage(error.message, MessageType.Error);\r\n });\r\n }\r\n\r\n return () => {\r\n cancelToken.cancel('Operation cancelled');\r\n };\r\n }, [readOnly]);\r\n\r\n const defaultAssignation = (task?: ITaskExtended) => {\r\n const assignation = data?.agents?.find((x) => x.memberId === task?.agentId);\r\n return assignation\r\n ? {\r\n label: `${assignation.firstName} ${assignation.lastName}`,\r\n value: assignation.memberId,\r\n }\r\n : null;\r\n };\r\n\r\n const connectedAgent = data?.agents?.find(\r\n (a) => a.userName.toUpperCase() === userName.toUpperCase()\r\n );\r\n\r\n return (\r\n <>\r\n {data ? (\r\n \r\n \r\n \r\n ({\r\n value: status.name,\r\n label: status.name,\r\n }))}\r\n readOnly={readOnly}\r\n error={!!form.errors.status}\r\n errorMessage={\r\n form.errors.status ? form.errors.status.message : ''\r\n }\r\n />\r\n \r\n \r\n {!readOnly && data.agents && (\r\n \r\n \r\n \r\n x.outStationed &&\r\n x.station === connectedAgent?.station\r\n )\r\n .map((agent) => ({\r\n label: `${agent.firstName} ${agent.lastName}`,\r\n value: agent.memberId,\r\n }))\r\n : data.agents.map((agent) => ({\r\n label: `${agent.firstName} ${agent.lastName}`,\r\n value: agent.memberId,\r\n }))\r\n }\r\n name=\"agent\"\r\n placeholder=\"Martine Smith\"\r\n fullWidth\r\n margin=\"normal\"\r\n defaultValue={defaultAssignation(task)}\r\n error={!!form.errors.agent}\r\n errorMessage={\r\n form.errors.agent ? form.errors.agent.value?.message : ''\r\n }\r\n control={form.control}\r\n id={'task_update_assignation'}\r\n autoHighlight\r\n />\r\n \r\n \r\n )}\r\n {isHotel && !readOnly && (\r\n \r\n \r\n \r\n Billing\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!readOnly && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AgentForm;\r\n","import React, {useEffect, useState} from 'react';\r\n\r\nimport {Accordion, AccordionDetails, AccordionSummary, Box, Link, Paper, Typography,} from '@material-ui/core';\r\n\r\nimport DateTime from '../components/commons/DateTime/DateTime';\r\nimport {IComment} from '../models/IComment';\r\n\r\ninterface Props {\r\n controller: any;\r\n title?: string;\r\n history: IComment[];\r\n summaryClassName: string;\r\n summaryTitleClassName: string;\r\n expandButtonClassName: string;\r\n}\r\n\r\nexport default function useMultiCommentCollapse({\r\n controller,\r\n history,\r\n title = 'History',\r\n summaryClassName,\r\n summaryTitleClassName,\r\n expandButtonClassName,\r\n}: Props) {\r\n const [collapsed, setCollapsed] = useState(false);\r\n\r\n useEffect(() => {\r\n if (controller) setCollapsed(false);\r\n }, [controller]);\r\n\r\n const CommentsCollapse = () => {\r\n return (\r\n <>\r\n {history.length > 0 && (\r\n \r\n \r\n {title}\r\n setCollapsed(!collapsed)}\r\n className={expandButtonClassName}\r\n component=\"button\"\r\n >\r\n {collapsed ? 'Reduce history' : 'Show history'}\r\n \r\n \r\n \r\n \r\n {history.map((historyComment, index) => (\r\n \r\n \r\n \r\n {historyComment.createdOn ? (\r\n <>\r\n Created on{' '}\r\n {' '}\r\n at{' '}\r\n {' '}\r\n by {historyComment.createdBy}\r\n \r\n ) : (\r\n <>Newly created comment\r\n )}\r\n \r\n \r\n \r\n {historyComment.comment}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n return { CommentsCollapse };\r\n}\r\n","import produce from 'immer';\r\n\r\nimport {IReservationMailExchange} from '../../models/Reservation/ISendReservationSummary';\r\n\r\nexport interface ReservationMailExchangeState {\r\n loading: boolean;\r\n updating: boolean;\r\n loaded: boolean;\r\n selectedExchange?: IReservationMailExchange;\r\n exchanges: IReservationMailExchange[];\r\n}\r\n\r\nexport enum ReservationMailExchangeActionType {\r\n LOAD_HISTORY_STARTED,\r\n LOAD_HISTORY_DONE,\r\n LOAD_HISTORY_FAILED,\r\n SELECT_EXCHANGE,\r\n POST_REPLY_STARTED,\r\n POST_REPLY_DONE,\r\n POST_REPLY_FAILED,\r\n}\r\n\r\nexport type ReservationConsultAction =\r\n | {\r\n type: ReservationMailExchangeActionType.LOAD_HISTORY_STARTED;\r\n }\r\n | {\r\n type: ReservationMailExchangeActionType.LOAD_HISTORY_DONE;\r\n payload: IReservationMailExchange[];\r\n }\r\n | {\r\n type: ReservationMailExchangeActionType.LOAD_HISTORY_FAILED;\r\n }\r\n | {\r\n type: ReservationMailExchangeActionType.SELECT_EXCHANGE;\r\n payload?: IReservationMailExchange;\r\n }\r\n | {\r\n type: ReservationMailExchangeActionType.POST_REPLY_STARTED;\r\n }\r\n | {\r\n type: ReservationMailExchangeActionType.POST_REPLY_DONE;\r\n payload: IReservationMailExchange;\r\n }\r\n | {\r\n type: ReservationMailExchangeActionType.POST_REPLY_FAILED;\r\n };\r\n\r\nexport const ReservationMailExchangeReducer = (\r\n state: ReservationMailExchangeState,\r\n action: ReservationConsultAction\r\n): ReservationMailExchangeState => {\r\n switch (action.type) {\r\n case ReservationMailExchangeActionType.LOAD_HISTORY_STARTED:\r\n return {\r\n ...state,\r\n loading: true,\r\n loaded: false,\r\n selectedExchange: undefined,\r\n };\r\n case ReservationMailExchangeActionType.LOAD_HISTORY_DONE:\r\n return {\r\n ...state,\r\n loading: false,\r\n loaded: true,\r\n exchanges: action.payload,\r\n selectedExchange: undefined,\r\n };\r\n case ReservationMailExchangeActionType.LOAD_HISTORY_FAILED:\r\n return { ...state, loading: false, loaded: false };\r\n case ReservationMailExchangeActionType.SELECT_EXCHANGE:\r\n return { ...state, selectedExchange: action.payload };\r\n case ReservationMailExchangeActionType.POST_REPLY_STARTED:\r\n return { ...state, updating: true };\r\n case ReservationMailExchangeActionType.POST_REPLY_DONE:\r\n return {\r\n ...state,\r\n updating: false,\r\n exchanges: produce(state.exchanges, (draft) => {\r\n const exchangeIndex = draft.findIndex(\r\n (e) =>\r\n e.reservationMailExchangeId ===\r\n action.payload.reservationMailExchangeId\r\n );\r\n if (exchangeIndex > -1) {\r\n draft[exchangeIndex] = action.payload;\r\n }\r\n return draft;\r\n }),\r\n selectedExchange: undefined,\r\n };\r\n case ReservationMailExchangeActionType.POST_REPLY_FAILED:\r\n return { ...state, updating: false, selectedExchange: undefined };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default ReservationMailExchangeReducer;\r\n","import React, {createContext, useContext, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport {IReservationMailExchange} from '../../models/Reservation/ISendReservationSummary';\r\nimport ReservationService from '../../services/ReservationService';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport ReservationMailExchangeReducer, {ReservationMailExchangeActionType,} from './ReservationMailExchangeReducer';\r\n\r\nexport interface IReservationMailExchangeContext {\r\n loading: boolean;\r\n updating: boolean;\r\n loaded: boolean;\r\n selectedExchange?: IReservationMailExchange;\r\n exchanges: IReservationMailExchange[];\r\n selectExchange: (exchange?: IReservationMailExchange) => void;\r\n loadReservationExchange: (reservationId: number) => void;\r\n postReply: (reservationId: number, exchangeId: number, reply: string) => void;\r\n}\r\n\r\nconst initialState = {\r\n loading: false,\r\n updating: false,\r\n loaded: false,\r\n selectedExchange: undefined,\r\n exchanges: [],\r\n};\r\n\r\nconst ReservationMailExchangeContext = createContext(\r\n {} as IReservationMailExchangeContext\r\n);\r\n\r\nconst ReservationMailExchangeProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(\r\n ReservationMailExchangeReducer,\r\n initialState\r\n );\r\n const { addMessage } = useSnackbar();\r\n\r\n const loadReservationExchange = (reservationId: number) => {\r\n dispatch({ type: ReservationMailExchangeActionType.LOAD_HISTORY_STARTED });\r\n\r\n ReservationService.getReservationExchanges(reservationId)\r\n .then((exchanges: IReservationMailExchange[]) => {\r\n dispatch({\r\n type: ReservationMailExchangeActionType.LOAD_HISTORY_DONE,\r\n payload: exchanges,\r\n });\r\n })\r\n .catch(() => {\r\n dispatch({\r\n type: ReservationMailExchangeActionType.LOAD_HISTORY_FAILED,\r\n });\r\n });\r\n };\r\n\r\n const selectExchange = (exchange?: IReservationMailExchange) => {\r\n dispatch({\r\n type: ReservationMailExchangeActionType.SELECT_EXCHANGE,\r\n payload: exchange,\r\n });\r\n };\r\n\r\n const postReply = (\r\n reservationId: number,\r\n exchangeId: number,\r\n reply: string\r\n ) => {\r\n dispatch({ type: ReservationMailExchangeActionType.POST_REPLY_STARTED });\r\n\r\n ReservationService.exchangePostReply(reservationId, exchangeId, reply)\r\n .then((result: IReservationMailExchange) => {\r\n if (result) {\r\n dispatch({\r\n type: ReservationMailExchangeActionType.POST_REPLY_DONE,\r\n payload: result,\r\n });\r\n addMessage('Reply posted successfully', MessageType.Success);\r\n } else {\r\n dispatch({\r\n type: ReservationMailExchangeActionType.POST_REPLY_FAILED,\r\n });\r\n addMessage(\"Couln't post the reply, please try again later.\");\r\n }\r\n })\r\n .catch(() => {\r\n dispatch({ type: ReservationMailExchangeActionType.POST_REPLY_FAILED });\r\n addMessage(\"Couln't post the reply, please try again later.\");\r\n });\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default ReservationMailExchangeProvider;\r\n\r\nexport const useReservationMailExchangeContext = () =>\r\n useContext(ReservationMailExchangeContext);\r\n","import moment from 'moment';\r\nimport React from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Box, Grid, Typography} from '@material-ui/core';\r\nimport Link from '@material-ui/core/Link';\r\n\r\nimport {ReactComponent as BackIcon} from '../../../assets/icons/back.svg';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport {IReservationMailExchange} from '../../../models/Reservation/ISendReservationSummary';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport formatString from '../../../utils/Strings';\r\nimport DrawerButton from '../../commons/Drawer/DrawerButton';\r\nimport DrawerCancelButton from '../../commons/Drawer/DrawerCancelButton';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport styles from './ReservationMailExchange.module.scss';\r\n\r\nexport interface IReservationMailExchangeDetailsProps {\r\n exchange: IReservationMailExchange;\r\n updating: boolean;\r\n cancel: () => void;\r\n reply: (reply: string) => void;\r\n}\r\n\r\nexport interface IReservationMailDetailsForm {\r\n reply: string;\r\n}\r\n\r\nconst reservationMailDetailsSchema = yup.object().shape({\r\n reply: yup.string().max(500, formatString(Constants.validation.max, 500)),\r\n});\r\n\r\nconst ReservationMailExchangeDetails: React.FC<\r\n IReservationMailExchangeDetailsProps\r\n> = ({ cancel, exchange, reply }) => {\r\n const { handleSubmit, errors, register, formState } =\r\n useForm({\r\n resolver: yupResolver(reservationMailDetailsSchema),\r\n mode: 'onChange',\r\n });\r\n\r\n const breakpoint = useBreakpoint();\r\n const onSubmit = async (form: IReservationMailDetailsForm) => {\r\n reply(form.reply);\r\n };\r\n\r\n const informationIncluded = (exchange: IReservationMailExchange) => {\r\n const infos = [\r\n exchange.includeGeneralInformation ? 'General Informations' : '',\r\n exchange.includeCVFlights ? 'CV Flight(s)' : '',\r\n exchange.includeCommercials ? 'Commercial Flight(s)/Train(s)' : '',\r\n exchange.includeHotels ? 'Hotel(s)' : '',\r\n exchange.includeCars ? 'Car(s)' : '',\r\n ];\r\n\r\n return infos.filter((f) => f !== '').join('; ');\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n cancel()}\r\n type=\"button\"\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n \r\n \r\n Back to history list\r\n
\r\n \r\n \r\n \r\n \r\n Sent date \r\n \r\n \r\n \r\n {moment(exchange.sendingDate).format('DD-MM-YYYY')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Sent to\r\n \r\n \r\n \r\n {exchange.recipient}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Sent by\r\n \r\n \r\n \r\n {exchange.sentBy}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Information included\r\n \r\n \r\n \r\n {informationIncluded(exchange)}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Message\r\n \r\n \r\n\r\n \r\n {exchange.message ?? '-'}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {\r\n cancel();\r\n }}\r\n />\r\n \r\n {}}\r\n text={Constants.buttons.validate}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReservationMailExchangeDetails;\r\n","import React from 'react';\r\n\r\nimport {Box, Grid, Link} from '@material-ui/core';\r\n\r\nimport {\r\n useReservationMailExchangeContext\r\n} from '../../../context/ReservationMailExchangeContext/ReservationMailExchangeProvider';\r\nimport {IReservationMailExchange} from '../../../models/Reservation/ISendReservationSummary';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport DrawerButton from '../../commons/Drawer/DrawerButton';\r\nimport NoResult from '../../commons/NoResult/NoResult';\r\nimport Table from '../../commons/Table/Table';\r\n\r\nexport interface IReservationMailExchangeListProps {\r\n exchanges: IReservationMailExchange[];\r\n closeModal: () => void;\r\n}\r\n\r\nconst ReservationMailExchangeList: React.FC<\r\n IReservationMailExchangeListProps\r\n> = ({ exchanges, closeModal }) => {\r\n const { selectExchange } = useReservationMailExchangeContext();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Sent date',\r\n accessor: 'sentDate',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Sent to',\r\n accessor: 'recipient',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.recipient}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Sent by',\r\n accessor: 'sentBy',\r\n },\r\n {\r\n Header: 'Reply date',\r\n accessor: 'replyDate',\r\n Cell: ({ row }: any) =>\r\n row.original.replyDate ? (\r\n \r\n ) : (\r\n <>\r\n ),\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n selectExchange(row.original)}\r\n >\r\n See more or edit\r\n \r\n \r\n ),\r\n },\r\n ],\r\n []\r\n );\r\n\r\n return (\r\n <>\r\n {exchanges?.length > 0 ? (\r\n <>\r\n \r\n \r\n \r\n \r\n {\r\n closeModal();\r\n }}\r\n text=\"Close\"\r\n />\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ReservationMailExchangeList;\r\n","import React, {useEffect} from 'react';\r\n\r\nimport {LinearProgress} from '@material-ui/core';\r\n\r\nimport {\r\n useReservationMailExchangeContext\r\n} from '../../../context/ReservationMailExchangeContext/ReservationMailExchangeProvider';\r\nimport {IModalReturn} from '../../../hooks/useModal';\r\nimport Dialog from '../../commons/Dialog/Dialog';\r\nimport DialogContent from '../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../commons/Dialog/DialogTitle';\r\nimport {ReservationMailExchangeDetails, ReservationMailExchangeList,} from './';\r\n\r\nexport interface IReservationExchangeHistoryModalProps {\r\n reservationId: number;\r\n modalOptions: IModalReturn;\r\n}\r\n\r\nconst ReservationExchangeHistoryModal: React.FC<\r\n IReservationExchangeHistoryModalProps\r\n> = ({ reservationId, modalOptions: { hideModal, isVisible } }) => {\r\n const {\r\n loading,\r\n updating,\r\n selectedExchange,\r\n exchanges,\r\n selectExchange,\r\n postReply,\r\n loadReservationExchange,\r\n } = useReservationMailExchangeContext();\r\n\r\n useEffect(() => {\r\n if (isVisible) {\r\n loadReservationExchange(reservationId);\r\n }\r\n }, [isVisible]);\r\n\r\n return (\r\n <>\r\n {\r\n selectExchange(undefined);\r\n hideModal();\r\n }}\r\n maxWidth=\"lg\"\r\n >\r\n History correspondence mails\r\n \r\n {!!loading ? (\r\n \r\n ) : (\r\n <>\r\n {selectedExchange ? (\r\n selectExchange(undefined)}\r\n reply={(reply: string) =>\r\n postReply(\r\n reservationId,\r\n selectedExchange.reservationMailExchangeId,\r\n reply\r\n )\r\n }\r\n />\r\n ) : (\r\n hideModal()}\r\n />\r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReservationExchangeHistoryModal;\r\n","import React from 'react';\r\n\r\nimport {Typography} from '@material-ui/core';\r\n\r\nimport {ReservationStatus} from '../models/Reservation/ReservationEnum';\r\nimport styles from '../styles/styles.module.scss';\r\n\r\nexport default function useReservationStatus(status: ReservationStatus) {\r\n const badgeClassName = (status: ReservationStatus): string => {\r\n switch (status) {\r\n case ReservationStatus.Approved:\r\n return styles.statusApproved;\r\n case ReservationStatus.NotApproved:\r\n return styles.statusNotApproved;\r\n case ReservationStatus.WaitingForApproval:\r\n return styles.statusWaiting;\r\n }\r\n };\r\n\r\n const Badge = () => (\r\n <>\r\n \r\n {status}\r\n \r\n \r\n );\r\n\r\n return { Badge };\r\n}\r\n","import * as yup from 'yup';\r\n\r\nimport Constants from '../../../utils/Constants';\r\nimport formatString from '../../../utils/Strings';\r\n\r\nexport interface ISendReservationForm {\r\n recipient?: string;\r\n message?: string;\r\n commercial: boolean;\r\n car: boolean;\r\n cvFlight: boolean;\r\n hotel: boolean;\r\n allInformation: boolean;\r\n generalInformation: boolean;\r\n}\r\n\r\nexport const SendReservationSchema = yup\r\n .object()\r\n .shape({\r\n recipient: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150))\r\n .matches(\r\n Constants.validation.emailMultipleRegex,\r\n Constants.validation.multipleEmail\r\n ),\r\n message: yup.string().max(250, formatString(Constants.validation.max, 250)),\r\n commercial: yup.bool(),\r\n car: yup.bool(),\r\n cvFlight: yup.bool(),\r\n hotel: yup.bool(),\r\n allInformation: yup.bool(),\r\n generalInformation: yup.bool(),\r\n })\r\n .test(\r\n 'atLeasOneCheckboxTest',\r\n () => '',\r\n (obj) => {\r\n if (\r\n obj?.allInformation ||\r\n obj?.cvFlight ||\r\n obj?.generalInformation ||\r\n obj?.car ||\r\n obj?.commercial ||\r\n obj?.hotel\r\n ) {\r\n return true; // everything is fine\r\n }\r\n\r\n return new yup.ValidationError(\r\n 'Please check one checkbox',\r\n null,\r\n 'atLeasOneCheckbox'\r\n );\r\n }\r\n );\r\n","import React from 'react';\r\nimport {useForm} from 'react-hook-form';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Box, Grid, Typography} from '@material-ui/core';\r\n\r\nimport {IModalReturn} from '../../../hooks/useModal';\r\nimport {ISendReservationForm, SendReservationSchema,} from '../../../models/Reservation/Forms/ISendReservationForm';\r\nimport IReservation from '../../../models/Reservation/IReservation';\r\nimport Constants from '../../../utils/Constants';\r\nimport {CheckboxControlled} from '../../commons/Checkbox/Checkbox';\r\nimport Dialog from '../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../commons/Dialog/DialogTitle';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport TextField from '../../commons/TextField/TextField';\r\n\r\nexport interface ISendMailModalProps {\r\n reservation: IReservation;\r\n handleSendReservation: (data: ISendReservationForm) => void;\r\n modalOptions: IModalReturn;\r\n}\r\n\r\nconst SendMailModal: React.FC = ({\r\n reservation,\r\n handleSendReservation,\r\n modalOptions: { hideModal, isVisible },\r\n}) => {\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(SendReservationSchema),\r\n defaultValues: {\r\n recipient: undefined,\r\n message: undefined,\r\n commercial: false,\r\n car: false,\r\n cvFlight: false,\r\n hotel: false,\r\n allInformation: false,\r\n generalInformation: false,\r\n },\r\n });\r\n\r\n const getUncheckedReservationParts = (values: ISendReservationForm) => {\r\n const unchecked = Object.entries(values).map(function ([key, value]) {\r\n if (value === false) {\r\n return key;\r\n }\r\n });\r\n\r\n return unchecked.filter(\r\n (u) => u !== undefined && u !== 'allInformation'\r\n ) as string[];\r\n };\r\n\r\n const handleSelection = (name: string) => {\r\n const checked = form.getValues(name);\r\n if (checked) {\r\n form.setValue('allInformation', false);\r\n } else {\r\n const values = form.getValues();\r\n if (!values.allInformation) {\r\n const unchecked = getUncheckedReservationParts(values);\r\n if (unchecked.length === 1 && unchecked[0] === name) {\r\n form.setValue('allInformation', true);\r\n }\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n Select and send reservation details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Select the information to include in the email\r\n \r\n \r\n\r\n \r\n {\r\n const values = form.getValues();\r\n if (!values.allInformation) {\r\n form.setValue('generalInformation', true);\r\n form.setValue('cvFlight', true);\r\n form.setValue('commercial', true);\r\n form.setValue('hotel', true);\r\n form.setValue('car', true);\r\n } else if (\r\n values.allInformation &&\r\n values.generalInformation &&\r\n values.cvFlight &&\r\n values.commercial &&\r\n values.hotel &&\r\n values.car\r\n ) {\r\n form.setValue('generalInformation', false);\r\n form.setValue('cvFlight', false);\r\n form.setValue('commercial', false);\r\n form.setValue('hotel', false);\r\n form.setValue('car', false);\r\n }\r\n }}\r\n />\r\n \r\n \r\n handleSelection('generalInformation')}\r\n />\r\n \r\n {reservation.cvFlights &&\r\n reservation.cvFlights.length > 0 && (\r\n \r\n handleSelection('cvFlight')}\r\n />\r\n \r\n )}\r\n {reservation.commercials &&\r\n reservation.commercials.length > 0 && (\r\n \r\n handleSelection('commercial')}\r\n />\r\n \r\n )}\r\n {reservation.hotels && reservation.hotels.length > 0 && (\r\n \r\n handleSelection('hotel')}\r\n />\r\n \r\n )}\r\n {reservation.cars && reservation.cars.length > 0 && (\r\n \r\n handleSelection('car')}\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {}}\r\n disabled={!form.formState.isValid || !form.formState.isDirty}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SendMailModal;\r\n","import moment from 'moment';\r\n\r\nimport ITrainingCourse from '../models/ITrainingCourse';\r\n\r\nexport default function useReservationTraining(\r\n courseId: number,\r\n trainings: ITrainingCourse[]\r\n) {\r\n if (courseId) {\r\n const selectedTraining = trainings?.find((t) => t.courseId === courseId);\r\n return selectedTraining\r\n ? {\r\n trainingName: selectedTraining?.trainingName ?? '',\r\n trainingDate: `From ${moment(selectedTraining?.fromDate).format(\r\n 'DD-MM-YYYY'\r\n )} To ${moment(selectedTraining?.toDate).format('DD-MM-YYYY')}`,\r\n }\r\n : { trainingName: undefined, trainingDate: undefined };\r\n } else {\r\n return { trainingName: undefined, trainingDate: undefined };\r\n }\r\n}\r\n","import produce from 'immer';\r\nimport moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport { Box, Button, Grid, IconButton } from '@material-ui/core';\r\n\r\nimport { ReactComponent as DeleteIcon } from '../../../../assets/icons/deleteBinWhite.svg';\r\nimport { ReactComponent as AddIcon } from '../../../../assets/icons/plus.svg';\r\nimport { useReservationContext } from '../../../../context/ReservationProvider/ReservationProvider';\r\nimport useReservationTraining from '../../../../hooks/useReservationTraining';\r\nimport IMember from '../../../../models/IMember';\r\nimport IMemberInfo from '../../../../models/IMemberInfo';\r\nimport ITrainingCourse from '../../../../models/ITrainingCourse';\r\nimport { ServiceStatus } from '../../../../models/Reservation/ReservationEnum';\r\nimport MemberService from '../../../../services/MemberService';\r\nimport Constants from '../../../../utils/Constants';\r\nimport formatString from '../../../../utils/Strings';\r\nimport AutoCompleteFetcher from '../../../commons/AutoCompleteFetcher/AutoCompleteFetcher';\r\nimport FormControl from '../../../commons/FormControl/FormControl';\r\nimport Searchcomplete from '../../../commons/Searchcomplete/Searchcomplete';\r\nimport TextField from '../../../commons/TextField/TextField';\r\nimport ToggleButtons from '../../../commons/ToggleButtons/ToggleButtons';\r\nimport styles from './ReviewSummary.module.scss';\r\n\r\nexport interface IReviewSummaryEditFormProps {\r\n employees: IMember[];\r\n onFinish: () => void;\r\n}\r\n\r\ninterface IReviewForm {\r\n costCenter?: string;\r\n budgeted: string;\r\n trainingReference: { label: string; value: ITrainingCourse[] } | null;\r\n trainingDate: { value: number; label: string } | null;\r\n approver: string;\r\n isBudgeted: boolean;\r\n customerContactPerson: string;\r\n cvContactPerson: string;\r\n description: string;\r\n customerCompanyName: string;\r\n reason: string;\r\n groupTravel: boolean;\r\n employeesInGroup: any[];\r\n}\r\n\r\nconst groupByArray = (array: any[], key: any) => {\r\n return array.reduce(function (accumulator: any, currentValue: any) {\r\n let v = key instanceof Function ? key(currentValue) : currentValue[key];\r\n let el = accumulator.find((r: any) => r && r.label === v);\r\n if (el) {\r\n el.values.push(currentValue);\r\n } else {\r\n accumulator.push({ label: v, values: [currentValue] });\r\n }\r\n return accumulator;\r\n }, []);\r\n};\r\n\r\nconst ReviewSummaryEditForm: React.FC = ({\r\n employees,\r\n onFinish,\r\n}) => {\r\n const [schema, setSchema] = useState({});\r\n const {\r\n state: { trainings, booking: reservation, selectedTripType },\r\n updateGeneralInfo,\r\n } = useReservationContext();\r\n const { trainingName, trainingDate } = useReservationTraining(\r\n reservation?.courseId,\r\n trainings\r\n );\r\n\r\n useEffect(() => {\r\n if (selectedTripType) {\r\n let schemaShape = {} as any;\r\n if (selectedTripType.trainingReference) {\r\n schemaShape.trainingReference = yup\r\n .object()\r\n .shape({\r\n label: yup.string().required(),\r\n value: yup.array().of(\r\n yup.object().shape({\r\n courseId: yup.number().required(Constants.validation.required),\r\n })\r\n ),\r\n })\r\n .typeError(Constants.validation.required)\r\n .required(Constants.validation.required);\r\n }\r\n if (selectedTripType.trainingDate) {\r\n schemaShape.trainingDate = yup\r\n .object()\r\n .shape({\r\n label: yup.string().required(),\r\n value: yup.number().required(Constants.validation.required),\r\n })\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required);\r\n }\r\n if (selectedTripType.costCenter) {\r\n schemaShape.costCenter = yup\r\n .number()\r\n .required(Constants.validation.required)\r\n .min(\r\n 1,\r\n formatString(Constants.validation.minNumeric, 'Cost center', 1)\r\n )\r\n .max(\r\n Constants.validation.maxInt,\r\n formatString(\r\n Constants.validation.maxNumeric,\r\n 'Cost center',\r\n Constants.validation.maxInt\r\n )\r\n )\r\n .typeError('The entered value is not a valid Cost center');\r\n }\r\n if (selectedTripType.approverEmail) {\r\n schemaShape.approver = yup\r\n .string()\r\n .email(Constants.validation.invalidEmail)\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150))\r\n .test(\r\n 'validate-task-status',\r\n 'Approver cannot be changed while there are some ongoing task on the reservation',\r\n (value?: string | null) => {\r\n const hotelOngoingTask = reservation.hotels?.find(\r\n (h) => h.task?.status !== ServiceStatus.Request\r\n );\r\n const carOngoingTask = reservation.cars?.find(\r\n (h) => h.task?.status !== ServiceStatus.Request\r\n );\r\n const commercialOngoingTask = reservation.commercials?.find(\r\n (h) => h.task?.status !== ServiceStatus.Request\r\n );\r\n return (\r\n value === reservation.approver ||\r\n (!hotelOngoingTask && !carOngoingTask && !commercialOngoingTask)\r\n );\r\n }\r\n );\r\n }\r\n if (selectedTripType.travelInGroup) {\r\n schemaShape.employeesInGroup = yup.array().when('groupTravel', {\r\n is: true,\r\n then: yup.array().of(\r\n yup.object().shape({\r\n memberId: yup\r\n .number()\r\n .min(1, Constants.validation.required)\r\n .required(Constants.validation.required)\r\n .typeError(\r\n \"No employee matched, Please type the employee's name and select an entry provided in the list\"\r\n ),\r\n })\r\n ),\r\n });\r\n }\r\n if (selectedTripType.budgeted) {\r\n schemaShape.isBudgeted = yup\r\n .boolean()\r\n .required(Constants.validation.required);\r\n }\r\n if (selectedTripType.shortDescription) {\r\n schemaShape.description = yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(4000, formatString(Constants.validation.max, 4000));\r\n }\r\n if (selectedTripType.customerCompany) {\r\n schemaShape.customerCompanyName = yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150));\r\n }\r\n if (selectedTripType.customerContact) {\r\n schemaShape.customerContactPerson = yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150));\r\n }\r\n if (selectedTripType.cvContact) {\r\n schemaShape.cvContactPerson = yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150));\r\n }\r\n if (selectedTripType.reason && reservation.reason) {\r\n schemaShape.reason = yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(4000, formatString(Constants.validation.max, 4000));\r\n }\r\n\r\n setSchema(schemaShape);\r\n }\r\n }, [selectedTripType, reservation.reason]);\r\n\r\n const {\r\n control,\r\n watch,\r\n handleSubmit,\r\n errors,\r\n register,\r\n setValue,\r\n formState,\r\n trigger,\r\n unregister,\r\n } = useForm({\r\n resolver: yupResolver(yup.object().shape(schema)),\r\n mode: 'onChange',\r\n defaultValues: {\r\n costCenter: reservation.costCenter,\r\n approver: reservation.approver,\r\n isBudgeted: reservation.isBudgeted,\r\n customerCompanyName: reservation.customerCompanyName,\r\n customerContactPerson: reservation.customerContactPerson,\r\n cvContactPerson: reservation.cvContactPerson,\r\n description: reservation.description,\r\n reason: reservation.reason,\r\n trainingReference:\r\n reservation.courseId && trainingName && trainings\r\n ? {\r\n label: trainingName,\r\n value: trainings.filter((t) => t.trainingName === trainingName),\r\n }\r\n : null,\r\n trainingDate:\r\n trainingDate && reservation.courseId\r\n ? { label: trainingDate, value: reservation.courseId }\r\n : null,\r\n groupTravel: employees?.length > 0,\r\n employeesInGroup:\r\n employees?.length > 0\r\n ? employees.map((e) => ({ memberId: e.memberId }))\r\n : [{}],\r\n },\r\n });\r\n\r\n const onSubmit = (form: IReviewForm) => {\r\n updateGeneralInfo({\r\n ...form,\r\n courseId: form.trainingDate?.value,\r\n reservationEmployees: !!form.groupTravel\r\n ? form.employeesInGroup?.map((e) => ({\r\n memberId: e.memberId,\r\n reservationId: reservation.reservationId,\r\n })) ?? []\r\n : [],\r\n });\r\n onFinish();\r\n };\r\n\r\n const watchTrainingReference = watch('trainingReference');\r\n const watchTrainingDate = watch('trainingDate');\r\n const watchGroupTravel = watch('groupTravel', employees?.length > 0);\r\n const watchEmployeesInGroup = watch('employeesInGroup');\r\n\r\n useEffect(() => {\r\n if (\r\n selectedTripType?.trainingReference &&\r\n watchTrainingReference?.value.find(\r\n (c) => c.courseId === watchTrainingDate?.value\r\n ) === undefined\r\n )\r\n setValue('trainingDate', null, {\r\n shouldValidate: true,\r\n shouldDirty: true,\r\n });\r\n }, [watchTrainingReference, selectedTripType]);\r\n\r\n useEffect(() => {\r\n if (watchGroupTravel) {\r\n trigger('employeesInGroup');\r\n }\r\n }, [watchGroupTravel]);\r\n\r\n const [employeeFields, setEmployeeFields] = useState<{ memberId: any }[]>(\r\n employees?.length > 0\r\n ? employees.map((e) => ({ memberId: e.memberId }))\r\n : [{ memberId: -1 }]\r\n );\r\n\r\n useEffect(() => {\r\n if (employeeFields) {\r\n setValue(`employeesInGroup`, employeeFields, {\r\n shouldValidate: true,\r\n shouldDirty: true,\r\n });\r\n }\r\n }, [employeeFields]);\r\n\r\n return (\r\n <>\r\n
\r\n {!!selectedTripType?.trainingReference && (\r\n <>\r\n \r\n \r\n \r\n ({\r\n value: training.values,\r\n label: training.label,\r\n })\r\n )}\r\n getOptionSelected={(opt, val) => opt.label === val.label}\r\n control={control}\r\n error={!!errors.trainingReference}\r\n errorMessage={\r\n errors.trainingReference\r\n ? errors.trainingReference.message\r\n : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.trainingDate && watchTrainingReference && (\r\n <>\r\n \r\n \r\n \r\n ({\r\n value: training.courseId,\r\n label: `From ${moment(training.fromDate).format(\r\n 'DD-MM-YYYY'\r\n )} To ${moment(training.toDate).format('DD-MM-YYYY')}`,\r\n })\r\n )}\r\n control={control}\r\n error={!!errors.trainingDate}\r\n errorMessage={\r\n errors.trainingDate ? errors.trainingDate.message : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.costCenter && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.approverEmail && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.travelInGroup && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!watchGroupTravel && (\r\n \r\n {employeeFields.map((item, index) => (\r\n \r\n \r\n employees\r\n }\r\n name={`employeesInGroup[${index}].memberId`}\r\n getOptionLabel={(option) =>\r\n option.firstName && option.lastName\r\n ? `${option.firstName} ${option.lastName}`\r\n : ''\r\n }\r\n renderOption={(option) =>\r\n option.firstName && option.lastName\r\n ? `${option.firstName} ${option.lastName}`\r\n : ''\r\n }\r\n valueProp=\"memberId\"\r\n fullWidth\r\n placeholder=\"Martine SCHMIDT\"\r\n margin=\"normal\"\r\n register={register}\r\n freeSolo={true}\r\n defaultValue={\r\n employees.find((e) => e.memberId === item.memberId) ??\r\n null\r\n }\r\n setValue={setValue}\r\n formControlClassName={styles.employeeAutoComplete}\r\n errors={\r\n errors.employeesInGroup &&\r\n errors.employeesInGroup[index]\r\n }\r\n helperText={\r\n errors.employeesInGroup &&\r\n errors.employeesInGroup[index]?.memberId?.message\r\n }\r\n onChange={(event, value) => {\r\n const val = produce(employeeFields, (draft) => {\r\n draft.splice(index, 1, { memberId: value });\r\n });\r\n setEmployeeFields(val);\r\n }}\r\n />\r\n \r\n ))}\r\n \r\n \r\n \r\n {employeeFields.length > 1 && (\r\n {\r\n const newVal = employeeFields.slice(0, -1);\r\n unregister(\r\n `employeesInGroup[${\r\n employeeFields.length - 1\r\n }].memberId`\r\n );\r\n setEmployeeFields(newVal);\r\n }}\r\n className={`${styles.roundedIconButton}`}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n {watchEmployeesInGroup.some(\r\n (entry) => isNaN(entry.memberId) || false\r\n ) ? (\r\n {}}\r\n disabled={true}\r\n className={styles.roundedDisabledIconButton}\r\n >\r\n \r\n \r\n ) : (\r\n {\r\n const newVal = [\r\n ...employeeFields,\r\n { memberId: undefined },\r\n ];\r\n setEmployeeFields(newVal);\r\n }}\r\n className={styles.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n\r\n {!!selectedTripType?.budgeted && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.shortDescription && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.customerCompany && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.customerContact && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.cvContact && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.reason && reservation.reason?.length > 0 && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n {\r\n onFinish();\r\n }}\r\n style={{ minWidth: '150px' }}\r\n >\r\n {Constants.buttons.cancel}\r\n \r\n \r\n \r\n \r\n {Constants.buttons.saveChanges}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReviewSummaryEditForm;\r\n","import React from 'react';\r\n\r\nimport {Box, Grid, Link} from '@material-ui/core';\r\n\r\nimport {PassengerList} from '../';\r\nimport {useReservationContext} from '../../../../context/ReservationProvider/ReservationProvider';\r\nimport useBreakpoint from '../../../../hooks/useBreakpoint';\r\nimport useReservationTraining from '../../../../hooks/useReservationTraining';\r\nimport IMember from '../../../../models/IMember';\r\nimport IReservation from '../../../../models/Reservation/IReservation';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport styles from './ReviewSummary.module.scss';\r\n\r\nexport interface IReviewSummaryReadOnlyProps {\r\n employees: IMember[];\r\n readonly: boolean;\r\n onEditClick: () => void;\r\n reservation: IReservation;\r\n}\r\n\r\nconst ReviewSummaryReadOnly: React.FC = ({\r\n employees,\r\n readonly,\r\n onEditClick,\r\n reservation,\r\n}) => {\r\n const breakpoint = useBreakpoint();\r\n const {\r\n state: { trainings, allTripTypes },\r\n } = useReservationContext();\r\n const { trainingName, trainingDate } = useReservationTraining(\r\n reservation?.courseId,\r\n trainings\r\n );\r\n const selectedTripType = allTripTypes?.find(\r\n (x) => x.tripTypeId === reservation.tripTypeId\r\n );\r\n\r\n const atLeastOneFieldsEditable =\r\n (!!selectedTripType?.trainingReference && trainingName) ||\r\n (!!selectedTripType?.trainingDate && trainingDate) ||\r\n !!selectedTripType?.costCenter ||\r\n !!selectedTripType?.approverEmail ||\r\n (!!selectedTripType?.travelInGroup && employees.length > 0) ||\r\n !!selectedTripType?.budgeted ||\r\n !!selectedTripType?.shortDescription ||\r\n !!selectedTripType?.customerCompany ||\r\n !!selectedTripType?.customerContact ||\r\n !!selectedTripType?.cvContact ||\r\n (!!selectedTripType?.reason && reservation.reason?.length > 0);\r\n\r\n return (\r\n <>\r\n {!!selectedTripType?.trainingReference && trainingName && (\r\n <>\r\n \r\n Training reference\r\n \r\n \r\n {trainingName}\r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.trainingDate && trainingDate && (\r\n <>\r\n \r\n Training date\r\n \r\n \r\n {trainingDate}\r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.costCenter && (\r\n <>\r\n \r\n Cost center\r\n \r\n \r\n {reservation.costCenter}\r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.approverEmail && (\r\n <>\r\n \r\n Approver email\r\n \r\n \r\n {reservation.approver}\r\n \r\n \r\n )}\r\n\r\n {!!reservation?.emailTicketDelivery && (\r\n <>\r\n \r\n Ticket email\r\n \r\n \r\n {reservation.emailTicketDelivery}\r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.travelInGroup && employees.length > 0 && (\r\n <>\r\n \r\n Traveling in a group with\r\n \r\n \r\n ({\r\n memberId: e.memberId,\r\n firstName: e.firstName,\r\n lastName: e.lastName,\r\n relationName: e.relationName,\r\n }))}\r\n />\r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.budgeted && (\r\n <>\r\n \r\n Budgeted\r\n \r\n \r\n {reservation.isBudgeted ? 'Yes' : 'No'}\r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.shortDescription && (\r\n <>\r\n \r\n Travel Purpose\r\n \r\n \r\n {reservation.description}\r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.customerCompany && (\r\n <>\r\n \r\n Customer company name\r\n \r\n \r\n {reservation.customerCompanyName}\r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.customerContact && (\r\n <>\r\n \r\n Customer company person\r\n \r\n \r\n {reservation.customerContactPerson}\r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.cvContact && (\r\n <>\r\n \r\n CV contact person\r\n \r\n \r\n {reservation.cvContactPerson}\r\n \r\n \r\n )}\r\n\r\n {!!selectedTripType?.reason && reservation.reason?.length > 0 && (\r\n <>\r\n \r\n Reason\r\n \r\n \r\n {reservation.reason}\r\n \r\n \r\n )}\r\n\r\n {!readonly && atLeastOneFieldsEditable && (\r\n \r\n onEditClick()}\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n Edit general information\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ReviewSummaryReadOnly;\r\n","import React, {useEffect, useState} from 'react';\r\n\r\nimport {Box, Grid, Typography} from '@material-ui/core';\r\n\r\nimport {PassengerList} from '../';\r\nimport {useUserContext} from '../../../../context/User/UserContext';\r\nimport useBreakpoint from '../../../../hooks/useBreakpoint';\r\nimport useReservationExchangeHistory from '../../../../hooks/useReservationExchangeHistory';\r\nimport useReservationStatus from '../../../../hooks/useReservationStatus';\r\nimport useSendReservation from '../../../../hooks/useSendReservation';\r\nimport useSnackbar from '../../../../hooks/useSnackbar';\r\nimport IMember from '../../../../models/IMember';\r\nimport IMemberInformation from '../../../../models/IMemberInformation';\r\nimport IPassenger from '../../../../models/Reservation/IPassenger';\r\nimport IReservation from '../../../../models/Reservation/IReservation';\r\nimport ITripType from '../../../../models/Reservation/ITripType';\r\nimport MemberService from '../../../../services/MemberService';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport {MessageType} from '../../../../utils/MessageType';\r\nimport PermissionsList from '../../../../utils/PermissionsList';\r\nimport styles from './ReviewSummary.module.scss';\r\nimport ReviewSummaryEditForm from './ReviewSummaryEditForm';\r\nimport ReviewSummaryReadOnly from './ReviewSummaryReadOnly';\r\n\r\nexport interface IReviewSummaryProps {\r\n passengers: IPassenger[];\r\n selectedTripType: ITripType;\r\n memberInformations: IMemberInformation;\r\n reservation: IReservation;\r\n readonly: boolean;\r\n}\r\n\r\nconst ReviewSummary: React.FC = ({\r\n passengers,\r\n selectedTripType,\r\n memberInformations,\r\n reservation,\r\n readonly,\r\n}) => {\r\n const { addMessage } = useSnackbar();\r\n const { permissions } = useUserContext();\r\n\r\n const [employees, setEmployees] = useState([]);\r\n const [editMode, setEditMode] = useState(false);\r\n const breakpoint = useBreakpoint();\r\n\r\n const { SendReservationButton } = useSendReservation(reservation);\r\n const { ReservationExchangesHistoryButton } =\r\n useReservationExchangeHistory(reservation);\r\n\r\n const { Badge: ReservationStatusBadge } = useReservationStatus(\r\n reservation.status\r\n );\r\n\r\n useEffect(() => {\r\n if (reservation && reservation.reservationEmployees) {\r\n const promises = reservation.reservationEmployees.map((employee) =>\r\n MemberService.getById(employee.memberId)\r\n );\r\n Promise.all(promises)\r\n .then((members: IMember[]) => {\r\n setEmployees(members);\r\n })\r\n .catch(() =>\r\n addMessage(\r\n \"Couldn't retrieve reservation employees\",\r\n MessageType.Error\r\n )\r\n );\r\n }\r\n }, [reservation?.reservationEmployees]);\r\n\r\n return (\r\n <>\r\n \r\n {reservation.reservationId > 0 && (\r\n <>\r\n \r\n \r\n \r\n {permissions.includes(\r\n PermissionsList.eTravelReservationSendReservation\r\n ) && }\r\n \r\n \r\n {permissions.includes(\r\n PermissionsList.eTravelReservationMailsHistory\r\n ) && }\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n General Information\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Reservation type\r\n \r\n \r\n {selectedTripType && `${selectedTripType.name}`}\r\n \r\n\r\n \r\n Travelers\r\n \r\n \r\n \r\n \r\n\r\n \r\n CWA\r\n \r\n \r\n {memberInformations.user?.cwa\r\n ? memberInformations.user.cwa\r\n ? 'Yes'\r\n : 'No'\r\n : 'N/A'}\r\n \r\n {editMode ? (\r\n setEditMode(false)}\r\n />\r\n ) : (\r\n setEditMode(true)}\r\n reservation={reservation}\r\n />\r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReviewSummary;\r\n","var _circle;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgActiveService(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 8,\n r: 8,\n fill: \"#B8349A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgActiveService);\nexport default __webpack_public_path__ + \"static/media/activeService.2cd35f50.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nimport {Button} from '@material-ui/core';\r\n\r\nimport SendMailModal from '../components/Reservation/commons/SendMailModal';\r\nimport {ISendReservationForm} from '../models/Reservation/Forms/ISendReservationForm';\r\nimport IReservation from '../models/Reservation/IReservation';\r\nimport ReservationService from '../services/ReservationService';\r\nimport baseStyles from '../styles/styles.module.scss';\r\nimport {MessageType} from '../utils/MessageType';\r\nimport {useModal} from './useModal';\r\nimport useSnackbar from './useSnackbar';\r\n\r\nexport default function useSendReservation(reservation: IReservation) {\r\n const { showModal, hideModal, isVisible } = useModal();\r\n const { addMessage } = useSnackbar();\r\n\r\n const handleSendReservation = (data: ISendReservationForm) => {\r\n const config = {\r\n message: data.message ?? '',\r\n recipients: data.recipient!.split(';'),\r\n filter: { ...data },\r\n };\r\n ReservationService.sendSummary(reservation.reservationId, config)\r\n .then((res) => {\r\n res\r\n ? addMessage('Reservation sent successfully', MessageType.Success)\r\n : addMessage(\"Reservation couldn't been sent to the recipient(s)\");\r\n hideModal();\r\n })\r\n .catch(() => {\r\n addMessage(\"Reservation couldn't been sent to the recipient(s)\");\r\n hideModal();\r\n });\r\n };\r\n\r\n const SendReservationButton = () => (\r\n <>\r\n showModal()}\r\n style={{ minWidth: '150px' }}\r\n >\r\n Send mail\r\n \r\n \r\n \r\n );\r\n\r\n return { SendReservationButton };\r\n}\r\n","import React from 'react';\r\n\r\nimport {Button} from '@material-ui/core';\r\n\r\nimport ReservationExchangeHistoryModal\r\n from '../components/Reservation/ReservationMailExchange/ReservationExchangeHistoryModal';\r\nimport ReservationMailExchangeProvider from '../context/ReservationMailExchangeContext/ReservationMailExchangeProvider';\r\nimport IReservation from '../models/Reservation/IReservation';\r\nimport baseStyles from '../styles/styles.module.scss';\r\nimport {useModal} from './useModal';\r\n\r\nexport default function useReservationExchangeHistory(\r\n reservation: IReservation\r\n) {\r\n const { showModal, hideModal, isVisible } = useModal();\r\n\r\n const ReservationExchangesHistoryButton = () => (\r\n <>\r\n \r\n {\r\n showModal();\r\n }}\r\n style={{ minWidth: '150px' }}\r\n >\r\n History\r\n \r\n \r\n \r\n \r\n );\r\n\r\n return { ReservationExchangesHistoryButton };\r\n}\r\n","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgEditWhite(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 22,\n viewBox: \"0 0 22 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M20.0553 2.15C20.0553 2.15 22.0629 4.22349 20.2249 6.44417L7.84463 18.8241C7.84463 18.8241 7.31549 19.3293 6.84449 19.5427C6.84449 19.5427 4.62234 20.5623 2.14629 21.0223C2.14629 21.0223 1.53546 21.2059 1.28819 20.9167L1.15167 20.7809C1.15167 20.7809 0.884161 20.5609 1.05968 19.8919C1.05968 19.8919 2.16947 15.4708 3.14164 14.499L16.0371 1.6525C16.0371 1.6525 17.9689 -0.105643 20.0553 2.15Z\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.2202 2.86328L19.0305 6.67542\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.10742 14.5703L7.57367 18.0358\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEditWhite);\nexport default __webpack_public_path__ + \"static/media/editWhite.b5bc43b3.svg\";\nexport { ForwardRef as ReactComponent };","import React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as ActiveServiceIcon} from '../../../../assets/icons/activeService.svg';\r\nimport {ReactComponent as DeleteIcon} from '../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../assets/icons/editWhite.svg';\r\nimport IHotel from '../../../../models/Reservation/IHotel';\r\nimport {ServiceStatus} from '../../../../models/Reservation/ReservationEnum';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\nimport DateTime from '../../../commons/DateTime/DateTime';\r\nimport Dialog from '../../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../commons/Dialog/DialogTitle';\r\nimport basketStyle from '../Basket.module.scss';\r\n\r\nexport interface IHotelBasketProps {\r\n hotels?: IHotel[];\r\n activeHotel?: IHotel | null;\r\n setActiveHotel: (hotel?: IHotel) => void;\r\n removeHotel: (id: number) => void;\r\n closeDrawer?: () => void;\r\n}\r\n\r\nconst HotelBasket: React.FC = ({\r\n hotels,\r\n setActiveHotel,\r\n removeHotel,\r\n activeHotel,\r\n closeDrawer,\r\n}) => {\r\n const [activeModalItemId, setActiveModalItemId] = useState(-1);\r\n\r\n const isActive = (hotel: IHotel) => {\r\n return activeHotel && hotel.uiId === activeHotel?.uiId;\r\n };\r\n\r\n return (\r\n \r\n {hotels?.map((hotel) => (\r\n \r\n \r\n \r\n \r\n \r\n {isActive(hotel) && (\r\n \r\n \r\n \r\n )}\r\n Hotel {hotel.address}\r\n \r\n \r\n \r\n \r\n {!isActive(hotel) && (\r\n {\r\n setActiveHotel(hotel);\r\n closeDrawer && closeDrawer();\r\n }}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n {hotel.task?.status !== ServiceStatus.NeedToCancel && (\r\n setActiveModalItemId(hotel.uiId)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n Check in\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Check out\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n City\r\n \r\n \r\n {hotel.city}\r\n \r\n \r\n\r\n \r\n \r\n Estimated TOTAL Cost\r\n \r\n \r\n {hotel.estimatedCost}\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n You are going to remove a hotel from your basket\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n />\r\n removeHotel(hotel.uiId)}\r\n />\r\n \r\n \r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default HotelBasket;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport { Box, Grid, Typography } from '@material-ui/core';\r\n\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport {\r\n BETWEEN_2_AND_7_MESSAGE,\r\n BETWENN_7_AND_18_MESSAGE,\r\n validatePassengersBetween2and7,\r\n validatePassengersBetween7and18,\r\n} from '../../../hooks/useReservationChildrenMethods';\r\nimport IPassenger from '../../../models/Reservation/IPassenger';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport Dialog from '../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../commons/Dialog/DialogTitle';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport ToggleButtons from '../../commons/ToggleButtons';\r\nimport TravelersPicker, {\r\n IPassengerSelected,\r\n} from '../commons/TravelersPicker';\r\n\r\nexport interface IBasketRemovePassengerModalProps {\r\n open: boolean;\r\n onCancel: () => void;\r\n onClose: () => void;\r\n onSubmit: (form: IBasketRemoval) => void;\r\n travelers: IPassenger[];\r\n title: string;\r\n validateChildren: boolean;\r\n}\r\n\r\ninterface IBasketRemovalForm {\r\n removeAll: boolean;\r\n travelersToRemove: string[];\r\n}\r\n\r\nexport interface IBasketRemoval {\r\n removeAll: boolean;\r\n travelersToRemove: number[];\r\n}\r\n\r\nconst atLeastOnePassenger = (list?: (string | undefined)[] | null) => {\r\n const deserializedList = deserializeListOfPassengers(list);\r\n return deserializedList ? deserializedList.some((x) => x.selected) : false;\r\n};\r\n\r\nconst deserializeListOfPassengers = (list?: (string | undefined)[] | null) => {\r\n return list?.map((e) => JSON.parse(e!) as IPassengerSelected);\r\n};\r\n\r\nconst passengersBetween2and7 = (list?: (string | undefined)[] | null) => {\r\n const deserializedList = deserializeListOfPassengers(list);\r\n return deserializedList\r\n ? validatePassengersBetween2and7(\r\n deserializedList.filter((x) => !x.selected)\r\n )\r\n : false;\r\n};\r\n\r\nconst passengersbetween7and18 = (list?: (string | undefined)[] | null) => {\r\n const deserializedList = deserializeListOfPassengers(list);\r\n return deserializedList\r\n ? validatePassengersBetween7and18(\r\n deserializedList.filter((x) => !x.selected)\r\n )\r\n : false;\r\n};\r\n\r\nconst BasketRemovalFormSchema = yup.object().shape({\r\n removeAll: yup.boolean(),\r\n travelersToRemove: yup.array().when('removeAll', {\r\n is: false,\r\n then: yup\r\n .array()\r\n .of(yup.string())\r\n .test(\r\n 'atleastonepassenger',\r\n 'Please select at least one passenger',\r\n atLeastOnePassenger\r\n ),\r\n }),\r\n});\r\n\r\nconst BasketRemovalFormSchemaWithChildren = yup.object().shape({\r\n removeAll: yup.boolean(),\r\n travelersToRemove: yup.array().when('removeAll', {\r\n is: false,\r\n then: yup\r\n .array()\r\n .of(yup.string())\r\n .test(\r\n 'atleastonepassenger',\r\n 'Please select at least one passenger',\r\n atLeastOnePassenger\r\n )\r\n .test('children1', BETWEEN_2_AND_7_MESSAGE, passengersBetween2and7)\r\n .test('children', BETWENN_7_AND_18_MESSAGE, passengersbetween7and18),\r\n }),\r\n});\r\n\r\nconst BasketRemovePassengerModal: React.FC<\r\n IBasketRemovePassengerModalProps\r\n> = ({\r\n open,\r\n onClose,\r\n onCancel,\r\n onSubmit,\r\n travelers,\r\n title,\r\n validateChildren,\r\n}) => {\r\n const [schema, setSchema] = useState<\r\n typeof BasketRemovalFormSchema | typeof BasketRemovalFormSchemaWithChildren\r\n >(BasketRemovalFormSchema);\r\n const [validationResult, setvalidationResult] = useState(\r\n undefined\r\n );\r\n\r\n useEffect(() => {\r\n setvalidationResult(undefined);\r\n setSchema(\r\n validateChildren\r\n ? BasketRemovalFormSchemaWithChildren\r\n : BasketRemovalFormSchema\r\n );\r\n }, [open]);\r\n\r\n const form = useForm({\r\n resolver: yupResolver(schema),\r\n mode: 'onChange',\r\n });\r\n\r\n const breakpoint = useBreakpoint();\r\n\r\n const removeAll = form.watch('removeAll', true);\r\n const clearForm = () => {\r\n form.reset({ removeAll: true, travelersToRemove: [] });\r\n };\r\n const handleSubmit = (form: IBasketRemovalForm) => {\r\n const passengers = deserializeListOfPassengers(form.travelersToRemove);\r\n clearForm();\r\n onSubmit({\r\n removeAll: form.removeAll,\r\n travelersToRemove:\r\n passengers?.filter((x) => x.selected).map((p) => p.memberId) ?? [],\r\n });\r\n };\r\n\r\n const onSelection = () => {\r\n if (validateChildren) {\r\n const values = form.getValues();\r\n if (values.removeAll) {\r\n setvalidationResult(undefined);\r\n } else {\r\n const deserializedList = deserializeListOfPassengers(\r\n values.travelersToRemove\r\n );\r\n if (deserializedList) {\r\n const passengersLeft = deserializedList.filter((x) => !x.selected);\r\n if (!validatePassengersBetween2and7(passengersLeft)) {\r\n setvalidationResult(BETWEEN_2_AND_7_MESSAGE);\r\n } else if (!validatePassengersBetween7and18(passengersLeft)) {\r\n setvalidationResult(BETWENN_7_AND_18_MESSAGE);\r\n } else if (passengersLeft.length === deserializedList.length) {\r\n setvalidationResult('Please select at least one passenger');\r\n } else {\r\n setvalidationResult(undefined);\r\n }\r\n } else {\r\n setvalidationResult(undefined);\r\n }\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n onClose()} maxWidth=\"sm\">\r\n {title}\r\n \r\n \r\n {travelers.length <= 1 ? (\r\n <>\r\n Are you sure?\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!removeAll && (\r\n \r\n \r\n Select the passenger(s) to remove\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {validationResult ? validationResult : ''}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n 1\r\n ? Constants.buttons.cancel\r\n : Constants.buttons.no\r\n }\r\n onClick={onCancel}\r\n />\r\n 1\r\n ? Constants.buttons.save\r\n : Constants.buttons.yes\r\n }\r\n onClick={() => {}}\r\n disabled={!form.formState.isValid}\r\n type=\"submit\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BasketRemovePassengerModal;\r\n","import {produce} from 'immer';\r\nimport React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as ActiveServiceIcon} from '../../../../assets/icons/activeService.svg';\r\nimport {ReactComponent as DeleteIcon} from '../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../assets/icons/editWhite.svg';\r\nimport ICommercial, {ICommercialUI,} from '../../../../models/Reservation/ICommercial';\r\nimport IPassenger from '../../../../models/Reservation/IPassenger';\r\nimport {ServiceStatus} from '../../../../models/Reservation/ReservationEnum';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport DateTime from '../../../commons/DateTime/DateTime';\r\nimport {PassengerList} from '../../commons';\r\nimport basketStyle from '../Basket.module.scss';\r\nimport BasketRemovePassengerModal, {IBasketRemoval,} from '../BasketRemovePassengerModal';\r\n\r\nexport interface ICommercialBasketProps {\r\n commercials?: ICommercial[];\r\n passengers?: IPassenger[];\r\n activeCommercial?: ICommercialUI | null;\r\n setActiveCommercial: (commercial?: ICommercialUI | null) => void;\r\n removeEntry: (commercialUiId: number) => void;\r\n removeMember: (commercialMember: { uiId: number; memberId: number }) => void;\r\n closeDrawer?: () => void;\r\n}\r\n\r\nconst CommercialBasket: React.FC = ({\r\n commercials,\r\n passengers,\r\n activeCommercial,\r\n setActiveCommercial,\r\n removeEntry,\r\n removeMember,\r\n closeDrawer,\r\n}) => {\r\n const [activeModalItemId, setActiveModalItemId] = useState(-1);\r\n const itemTitle = (commercial: ICommercialUI) =>\r\n commercial.flightNumber\r\n ? `Flight ${commercial.flightNumber}`\r\n : `Train ${commercial.trainNumber}`;\r\n\r\n const resolvePassenger = (commercial: ICommercial) =>\r\n passengers?.find((p) => p.memberId === commercial.memberId) ?? {\r\n firstName: 'member not found',\r\n memberId: 0,\r\n lastName: '',\r\n relationName: 'unknwown',\r\n };\r\n\r\n const uiReducer = (acc: ICommercialUI[], curr: ICommercial) => {\r\n return produce(acc, (draft) => {\r\n const uiEntryIndex = acc.findIndex((c) => c.uiId === curr.uiId);\r\n if (uiEntryIndex > -1) {\r\n const entry = acc[uiEntryIndex];\r\n draft.splice(uiEntryIndex, 1, {\r\n ...entry,\r\n travelers: [...entry.travelers, resolvePassenger(curr)],\r\n });\r\n } else {\r\n draft.push({\r\n ...curr,\r\n travelers: [resolvePassenger(curr)],\r\n });\r\n }\r\n });\r\n };\r\n\r\n const aggregate = commercials?.reduce(uiReducer, []);\r\n\r\n const isActive = (commercial: ICommercialUI) => {\r\n return activeCommercial && commercial.uiId === activeCommercial?.uiId;\r\n };\r\n\r\n const removeMembers = (form: IBasketRemoval, commercial: ICommercialUI) => {\r\n setActiveModalItemId(-1);\r\n if (form.removeAll || form.removeAll === undefined) {\r\n removeEntry(commercial.uiId);\r\n } else {\r\n const toRemove = form.travelersToRemove.filter((r) => r >= 0);\r\n toRemove.map((memberId) =>\r\n removeMember({ uiId: commercial.uiId, memberId: memberId })\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {passengers && (\r\n \r\n {aggregate?.map((commercial) => (\r\n \r\n \r\n \r\n \r\n \r\n {isActive(commercial) && (\r\n \r\n \r\n \r\n )}\r\n {itemTitle(commercial)}\r\n \r\n \r\n \r\n \r\n {!isActive(commercial) && (\r\n {\r\n setActiveCommercial(commercial);\r\n closeDrawer && closeDrawer();\r\n }}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n {commercial.task?.status !== ServiceStatus.NeedToCancel && (\r\n setActiveModalItemId(commercial.uiId)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n Date\r\n \r\n \r\n {\r\n \r\n }\r\n \r\n \r\n \r\n \r\n Routing\r\n \r\n \r\n {commercial.routing}\r\n \r\n \r\n \r\n \r\n Estimated cost\r\n \r\n {\r\n \r\n {commercial.estimatedCost}\r\n \r\n }\r\n \r\n \r\n \r\n Travelers\r\n \r\n \r\n \r\n \r\n \r\n setActiveModalItemId(-1)}\r\n onClose={() => setActiveModalItemId(-1)}\r\n onSubmit={(form: IBasketRemoval) =>\r\n removeMembers(form, commercial)\r\n }\r\n title={`You are going to remove a commercial entry from your basket`}\r\n travelers={commercial.travelers}\r\n validateChildren={false}\r\n />\r\n \r\n ))}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CommercialBasket;\r\n","import React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as ActiveServiceIcon} from '../../../../../assets/icons/activeService.svg';\r\nimport {ReactComponent as DeleteIcon} from '../../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../../assets/icons/editWhite.svg';\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport basketStyle from '../../Basket.module.scss';\r\nimport DialogButton from '../../../../commons/Dialog/DialogButton';\r\nimport {ServiceStatus} from '../../../../../models/Reservation/ReservationEnum';\r\nimport ICar from '../../../../../models/Reservation/ICar';\r\nimport DialogCancelButton from '../../../../commons/Dialog/DialogCancelButton';\r\nimport DateTime from '../../../../commons/DateTime';\r\nimport Dialog from '../../../../commons/Dialog';\r\nimport DialogTitle from '../../../../commons/Dialog/DialogTitle';\r\nimport DialogContent from '../../../../commons/Dialog/DialogContent';\r\nimport DialogActions from '../../../../commons/Dialog/DialogActions';\r\nimport Constants from '../../../../../utils/Constants';\r\n\r\ntype Props = {\r\n car: ICar;\r\n activeCar?: ICar | null;\r\n setActiveCar: (hotel?: ICar) => void;\r\n removeCar: (id: number) => void;\r\n closeDrawer?: () => void;\r\n};\r\n\r\nfunction RentalCarBasket(props: Props): JSX.Element {\r\n const { car, setActiveCar, removeCar, activeCar, closeDrawer } = props;\r\n const [activeModalItemId, setActiveModalItemId] = useState(-1);\r\n\r\n const isActive = (car: ICar) => {\r\n return activeCar && car.uiId === activeCar?.uiId;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {isActive(car) && (\r\n \r\n \r\n \r\n )}\r\n Rental Car {car.rentalCompany}\r\n \r\n \r\n \r\n \r\n {!isActive(car) && (\r\n {\r\n setActiveCar(car);\r\n closeDrawer && closeDrawer();\r\n }}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n {car.task?.status !== ServiceStatus.NeedToCancel && (\r\n setActiveModalItemId(car.uiId)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n Pick up\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Drop off\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Estimated cost\r\n \r\n \r\n {car.estimatedCost}\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n You are going to remove a car from your basket\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n />\r\n removeCar(car.uiId)}\r\n />\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default RentalCarBasket;\r\n","import React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as ActiveServiceIcon} from '../../../../../assets/icons/activeService.svg';\r\nimport {ReactComponent as DeleteIcon} from '../../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../../assets/icons/editWhite.svg';\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport basketStyle from '../../Basket.module.scss';\r\nimport DialogButton from '../../../../commons/Dialog/DialogButton';\r\nimport {ServiceStatus} from '../../../../../models/Reservation/ReservationEnum';\r\nimport ICar from '../../../../../models/Reservation/ICar';\r\nimport DialogCancelButton from '../../../../commons/Dialog/DialogCancelButton';\r\nimport DateTime from '../../../../commons/DateTime';\r\nimport Dialog from '../../../../commons/Dialog';\r\nimport DialogTitle from '../../../../commons/Dialog/DialogTitle';\r\nimport DialogContent from '../../../../commons/Dialog/DialogContent';\r\nimport DialogActions from '../../../../commons/Dialog/DialogActions';\r\nimport Constants from '../../../../../utils/Constants';\r\n\r\ntype Props = {\r\n car: ICar;\r\n activeCar?: ICar | null;\r\n setActiveCar: (hotel?: ICar) => void;\r\n removeCar: (id: number) => void;\r\n closeDrawer?: () => void;\r\n};\r\n\r\nfunction LuxPoolCarBasket(props: Props): JSX.Element {\r\n const { car, setActiveCar, removeCar, activeCar, closeDrawer } = props;\r\n const [activeModalItemId, setActiveModalItemId] = useState(-1);\r\n\r\n const isActive = (car: ICar) => {\r\n return activeCar && car.uiId === activeCar?.uiId;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {isActive(car) && (\r\n \r\n \r\n \r\n )}\r\n LuxPool Car\r\n \r\n \r\n \r\n \r\n {!isActive(car) && (\r\n {\r\n setActiveCar(car);\r\n closeDrawer && closeDrawer();\r\n }}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n {car.task?.status !== ServiceStatus.NeedToCancel && (\r\n setActiveModalItemId(car.uiId)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n Pick up\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Drop off\r\n \r\n \r\n \r\n \r\n \r\n setActiveModalItemId(-1)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n You are going to remove a car from your basket\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n />\r\n removeCar(car.uiId)}\r\n />\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default LuxPoolCarBasket;\r\n","import React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as ActiveServiceIcon} from '../../../../../assets/icons/activeService.svg';\r\nimport {ReactComponent as DeleteIcon} from '../../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../../assets/icons/editWhite.svg';\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport basketStyle from '../../Basket.module.scss';\r\nimport DialogButton from '../../../../commons/Dialog/DialogButton';\r\nimport {ServiceStatus} from '../../../../../models/Reservation/ReservationEnum';\r\nimport ICar from '../../../../../models/Reservation/ICar';\r\nimport DialogCancelButton from '../../../../commons/Dialog/DialogCancelButton';\r\nimport DateTime from '../../../../commons/DateTime';\r\nimport Dialog from '../../../../commons/Dialog';\r\nimport DialogTitle from '../../../../commons/Dialog/DialogTitle';\r\nimport DialogContent from '../../../../commons/Dialog/DialogContent';\r\nimport DialogActions from '../../../../commons/Dialog/DialogActions';\r\nimport Constants from '../../../../../utils/Constants';\r\n\r\ntype Props = {\r\n car: ICar;\r\n activeCar?: ICar | null;\r\n setActiveCar: (hotel?: ICar) => void;\r\n removeCar: (id: number) => void;\r\n closeDrawer?: () => void;\r\n};\r\n\r\nfunction CompanyCarBasket(props: Props): JSX.Element {\r\n const { car, setActiveCar, removeCar, activeCar, closeDrawer } = props;\r\n const [activeModalItemId, setActiveModalItemId] = useState(-1);\r\n\r\n const isActive = (car: ICar) => {\r\n return activeCar && car.uiId === activeCar?.uiId;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {isActive(car) && (\r\n \r\n \r\n \r\n )}\r\n Company Car\r\n \r\n \r\n \r\n \r\n {!isActive(car) && (\r\n {\r\n setActiveCar(car);\r\n closeDrawer && closeDrawer();\r\n }}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n {car.task?.status !== ServiceStatus.NeedToCancel && (\r\n setActiveModalItemId(car.uiId)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n Start Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n End Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Distance\r\n \r\n \r\n {car.estimatedDistance} {car.distanceUnit.toLowerCase()}\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n You are going to remove a car from your basket\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n />\r\n removeCar(car.uiId)}\r\n />\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default CompanyCarBasket;\r\n","import React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as ActiveServiceIcon} from '../../../../../assets/icons/activeService.svg';\r\nimport {ReactComponent as DeleteIcon} from '../../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../../assets/icons/editWhite.svg';\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport basketStyle from '../../Basket.module.scss';\r\nimport DialogButton from '../../../../commons/Dialog/DialogButton';\r\nimport {ServiceStatus} from '../../../../../models/Reservation/ReservationEnum';\r\nimport ICar from '../../../../../models/Reservation/ICar';\r\nimport DialogCancelButton from '../../../../commons/Dialog/DialogCancelButton';\r\nimport DateTime from '../../../../commons/DateTime';\r\nimport Dialog from '../../../../commons/Dialog';\r\nimport DialogTitle from '../../../../commons/Dialog/DialogTitle';\r\nimport DialogContent from '../../../../commons/Dialog/DialogContent';\r\nimport DialogActions from '../../../../commons/Dialog/DialogActions';\r\nimport Constants from '../../../../../utils/Constants';\r\n\r\ntype Props = {\r\n car: ICar;\r\n activeCar?: ICar | null;\r\n setActiveCar: (hotel?: ICar) => void;\r\n removeCar: (id: number) => void;\r\n closeDrawer?: () => void;\r\n};\r\n\r\nfunction PrivateCarBasket(props: Props): JSX.Element {\r\n const { car, setActiveCar, removeCar, activeCar, closeDrawer } = props;\r\n const [activeModalItemId, setActiveModalItemId] = useState(-1);\r\n\r\n const isActive = (car: ICar) => {\r\n return activeCar && car.uiId === activeCar?.uiId;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {isActive(car) && (\r\n \r\n \r\n \r\n )}\r\n Private Car\r\n \r\n \r\n \r\n \r\n {!isActive(car) && (\r\n {\r\n setActiveCar(car);\r\n closeDrawer && closeDrawer();\r\n }}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n {car.task?.status !== ServiceStatus.NeedToCancel && (\r\n setActiveModalItemId(car.uiId)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n Start Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n End Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Distance\r\n \r\n \r\n {car.estimatedDistance} {car.distanceUnit.toLowerCase()}\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n You are going to remove a car from your basket\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n />\r\n removeCar(car.uiId)}\r\n />\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default PrivateCarBasket;\r\n","import React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as ActiveServiceIcon} from '../../../../../assets/icons/activeService.svg';\r\nimport {ReactComponent as DeleteIcon} from '../../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../../assets/icons/editWhite.svg';\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport basketStyle from '../../Basket.module.scss';\r\nimport DialogButton from '../../../../commons/Dialog/DialogButton';\r\nimport {ServiceStatus} from '../../../../../models/Reservation/ReservationEnum';\r\nimport ICar from '../../../../../models/Reservation/ICar';\r\nimport DialogCancelButton from '../../../../commons/Dialog/DialogCancelButton';\r\nimport DateTime from '../../../../commons/DateTime';\r\nimport Dialog from '../../../../commons/Dialog';\r\nimport DialogTitle from '../../../../commons/Dialog/DialogTitle';\r\nimport DialogContent from '../../../../commons/Dialog/DialogContent';\r\nimport DialogActions from '../../../../commons/Dialog/DialogActions';\r\nimport Constants from '../../../../../utils/Constants';\r\n\r\ntype Props = {\r\n car: ICar;\r\n activeCar?: ICar | null;\r\n setActiveCar: (hotel?: ICar) => void;\r\n removeCar: (id: number) => void;\r\n closeDrawer?: () => void;\r\n};\r\n\r\nfunction CarpoolingBasket(props: Props): JSX.Element {\r\n const { car, setActiveCar, removeCar, activeCar, closeDrawer } = props;\r\n const [activeModalItemId, setActiveModalItemId] = useState(-1);\r\n\r\n const isActive = (car: ICar) => {\r\n return activeCar && car.uiId === activeCar?.uiId;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {isActive(car) && (\r\n \r\n \r\n \r\n )}\r\n Carpooling\r\n \r\n \r\n \r\n \r\n {!isActive(car) && (\r\n {\r\n setActiveCar(car);\r\n closeDrawer && closeDrawer();\r\n }}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n {car.task?.status !== ServiceStatus.NeedToCancel && (\r\n setActiveModalItemId(car.uiId)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n Start Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n End Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Driver\r\n \r\n \r\n {car.driverName}\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n You are going to remove a car from your basket\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n />\r\n removeCar(car.uiId)}\r\n />\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default CarpoolingBasket;\r\n","import React from 'react';\r\n\r\nimport { Box } from '@material-ui/core';\r\nimport ICar from '../../../../models/Reservation/ICar';\r\nimport RentalCarBasket from './carBaskets/RentalCarBasket';\r\nimport LuxPoolCarBasket from './carBaskets/LuxPoolCarBasket';\r\nimport CompanyCarBasket from './carBaskets/CompanyCarBasket';\r\nimport PrivateCarBasket from './carBaskets/PrivateCarBasket';\r\nimport CarpoolingBasket from './carBaskets/CarpoolingBasket';\r\n\r\nexport interface ICarBasketProps {\r\n cars?: ICar[];\r\n activeCar?: ICar | null;\r\n setActiveCar: (hotel?: ICar) => void;\r\n removeCar: (id: number) => void;\r\n closeDrawer?: () => void;\r\n}\r\n\r\nconst CarBasket: React.FC = (props: ICarBasketProps) => {\r\n const { cars, setActiveCar, removeCar, activeCar } = props;\r\n const getCarTypeBasket = (car: ICar) => {\r\n switch (car.reservationCarType) {\r\n case 'Rental':\r\n return (\r\n \r\n );\r\n case 'LuxPool':\r\n return (\r\n \r\n );\r\n case 'Company':\r\n return (\r\n \r\n );\r\n case 'Private':\r\n return (\r\n \r\n );\r\n case 'Carpooling':\r\n return (\r\n \r\n );\r\n default:\r\n return <>;\r\n }\r\n };\r\n\r\n return {cars?.map((car) => getCarTypeBasket(car))};\r\n};\r\n\r\nexport default CarBasket;\r\n","import moment from 'moment';\r\nimport React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../../assets/icons/deleteBinWhite.svg';\r\nimport useClientAppContext from '../../../../hooks/useClientApp';\r\nimport ICVFlight from '../../../../models/ICVFlight';\r\nimport IPassenger from '../../../../models/Reservation/IPassenger';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport DateTime from '../../../commons/DateTime/DateTime';\r\nimport {PassengerList} from '../../commons';\r\nimport basketStyle from '../Basket.module.scss';\r\nimport BasketRemovePassengerModal, {IBasketRemoval,} from '../BasketRemovePassengerModal';\r\n\r\nexport interface ICvFlightBasketProps {\r\n flights?: ICVFlight[];\r\n passengers?: IPassenger[];\r\n removeFlight: (id: number) => void;\r\n removeMember: (member: { uiId: number; memberId: number }) => void;\r\n showAWB: boolean;\r\n}\r\n\r\nconst CvFlightBasket: React.FC = ({\r\n flights,\r\n passengers,\r\n removeMember,\r\n removeFlight,\r\n showAWB,\r\n}) => {\r\n const [activeModalItemId, setActiveModalItemId] = useState(-1);\r\n const { getAirportTimezoneByCode } = useClientAppContext();\r\n\r\n const resolvePassenger = (flight: ICVFlight) => {\r\n const legMembers = Array.from(\r\n new Set(\r\n flight.cvFlightLegs\r\n .filter((leg) => leg.cvFlightId === flight.cvFlightId)\r\n .flatMap((leg) =>\r\n leg.reservationCVFlightLegMembers.map((m) => m.memberId)\r\n )\r\n )\r\n );\r\n return legMembers\r\n .map((member) => passengers?.find((p) => p.memberId === member))\r\n .filter((p) => p !== undefined) as IPassenger[];\r\n };\r\n\r\n const removeMembers = (form: IBasketRemoval, flight: ICVFlight) => {\r\n setActiveModalItemId(-1);\r\n if (form.removeAll || form.removeAll === undefined) {\r\n removeFlight(flight.uiId);\r\n } else {\r\n const toRemove = form.travelersToRemove.filter((r) => r >= 0);\r\n toRemove.length === passengers?.length\r\n ? removeFlight(flight.uiId)\r\n : toRemove.map((memberId) =>\r\n removeMember({\r\n uiId: flight.uiId,\r\n memberId: memberId,\r\n })\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {flights?.map((flight) => (\r\n \r\n \r\n \r\n \r\n Flight number {flight.flightDesc}\r\n \r\n \r\n {flight.departureTime &&\r\n moment(flight.departureTime) > moment().utc() && (\r\n \r\n setActiveModalItemId(flight.uiId)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n Departure\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Arrival\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Routing\r\n \r\n \r\n {flight.routing}\r\n \r\n \r\n {showAWB && (\r\n \r\n \r\n AWB\r\n \r\n \r\n {flight.awbNumber ?? '-'}\r\n \r\n \r\n )}\r\n \r\n \r\n Travelers\r\n \r\n \r\n \r\n \r\n \r\n setActiveModalItemId(-1)}\r\n onClose={() => setActiveModalItemId(-1)}\r\n onSubmit={(form: IBasketRemoval) => removeMembers(form, flight)}\r\n title={`You are going to remove a flight entry from your basket`}\r\n travelers={resolvePassenger(flight)}\r\n validateChildren={true}\r\n />\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default CvFlightBasket;\r\n","import React from 'react';\r\n\r\nimport {Box, Grid, Typography} from '@material-ui/core';\r\n\r\nimport styles from '../Basket.module.scss';\r\n\r\ninterface EmptyBasketItemProps {\r\n text: string;\r\n IconComponent: React.FunctionComponent>;\r\n}\r\n\r\nconst EmptyBasketItem: React.FC = ({\r\n text,\r\n IconComponent,\r\n}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {text}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EmptyBasketItem;\r\n","import moment from 'moment';\r\nimport React, {useState} from 'react';\r\n\r\nimport {Box, Divider, Grid, Typography} from '@material-ui/core';\r\nimport Accordion from '@material-ui/core/Accordion/Accordion';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails/AccordionDetails';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary/AccordionSummary';\r\nimport Link from '@material-ui/core/Link/Link';\r\n\r\nimport {ReactComponent as CarBasketIcon} from '../../../assets/icons/carBasket.svg';\r\nimport {ReactComponent as CommercialBasketIcon} from '../../../assets/icons/commercialBasket.svg';\r\nimport {ReactComponent as CvFlightBasketIcon} from '../../../assets/icons/cvFlightBasket.svg';\r\nimport {ReactComponent as HotelBasketIcon} from '../../../assets/icons/hotelBasket.svg';\r\nimport {useReservationContext} from '../../../context/ReservationProvider/ReservationProvider';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport useReservationPassengers from '../../../hooks/useReservationPassengers';\r\nimport {PassengerList} from '../commons';\r\nimport styles from './Basket.module.scss';\r\nimport {CarBasket, CommercialBasket, CvFlightBasket, EmptyBasketItem, HotelBasket,} from './Content';\r\n\r\nexport interface IBasketProps {\r\n closeDrawer?: () => void;\r\n}\r\n\r\nconst Basket: React.FC = ({ closeDrawer }) => {\r\n const {\r\n state: {\r\n selectedTripType,\r\n memberInformations,\r\n booking,\r\n activeCommercial,\r\n activeCar,\r\n activeHotel,\r\n },\r\n setActiveHotel,\r\n removeHotel,\r\n setActiveCar,\r\n removeCar,\r\n setActiveCommercial,\r\n removeCommercial,\r\n removeCommercialMember,\r\n removeCvFlight,\r\n removeCvFlightMember,\r\n } = useReservationContext();\r\n\r\n const { passengers, activePassengers } = useReservationPassengers(\r\n memberInformations,\r\n selectedTripType,\r\n booking.reservationMembers,\r\n booking\r\n );\r\n const [isSummaryExpanded, setIsSummaryExpanded] = useState(true);\r\n const breakpoint = useBreakpoint();\r\n\r\n return passengers?.length > 0 ? (\r\n \r\n \r\n \r\n {!breakpoint.smdown && (\r\n \r\n \r\n Your Reservation\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n Summary\r\n \r\n setIsSummaryExpanded(!isSummaryExpanded)}\r\n className={styles.summaryExpand}\r\n component=\"button\"\r\n >\r\n {isSummaryExpanded ? 'Reduce Summary' : 'Expand Summary'}\r\n \r\n \r\n \r\n \r\n \r\n {selectedTripType && `${selectedTripType.name}`}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {selectedTripType?.isCVFlight && (\r\n \r\n \r\n \r\n CARGOLUX FLIGHT\r\n \r\n {(booking?.cvFlights?.length ?? 0) > 0 ? (\r\n \r\n moment(a.departureTime).diff(b.departureTime)\r\n )}\r\n passengers={passengers}\r\n removeFlight={removeCvFlight}\r\n removeMember={removeCvFlightMember}\r\n showAWB={!!selectedTripType?.airBills}\r\n />\r\n ) : (\r\n \r\n )}\r\n {(selectedTripType?.allowCommercial ||\r\n selectedTripType?.allowHotel ||\r\n selectedTripType?.allowCar) && }\r\n \r\n \r\n )}\r\n {selectedTripType?.allowCommercial && (\r\n \r\n \r\n \r\n FLIGHT OR TRAIN\r\n \r\n {(booking?.commercials?.length ?? 0) > 0 ? (\r\n {\r\n const timeDiff = moment(a.departureDate).diff(\r\n b.departureDate\r\n );\r\n return timeDiff === 0 ? a.uiId - b.uiId : timeDiff;\r\n })}\r\n activeCommercial={activeCommercial}\r\n setActiveCommercial={setActiveCommercial}\r\n removeMember={removeCommercialMember}\r\n removeEntry={removeCommercial}\r\n closeDrawer={closeDrawer}\r\n />\r\n ) : (\r\n \r\n )}\r\n {(selectedTripType?.allowHotel ||\r\n selectedTripType?.allowCar) && }\r\n \r\n \r\n )}\r\n {selectedTripType?.allowHotel && (\r\n \r\n \r\n HOTEL\r\n {(booking?.hotels?.length ?? 0) > 0 ? (\r\n moment(a.checkIn).diff(b.checkIn))}\r\n setActiveHotel={setActiveHotel}\r\n removeHotel={removeHotel}\r\n activeHotel={activeHotel}\r\n closeDrawer={closeDrawer}\r\n />\r\n ) : (\r\n \r\n )}\r\n {selectedTripType?.allowCar && }\r\n \r\n \r\n )}\r\n {selectedTripType?.allowCar && (\r\n \r\n \r\n CAR\r\n {(booking?.cars?.length ?? 0) > 0 ? (\r\n \r\n moment(a.pickUpDate).diff(b.pickUpDate)\r\n )}\r\n setActiveCar={setActiveCar}\r\n removeCar={removeCar}\r\n activeCar={activeCar}\r\n closeDrawer={closeDrawer}\r\n />\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n );\r\n};\r\n\r\nexport default Basket;\r\n","import React from 'react';\r\n\r\nimport {Grid, Switch, Typography} from '@material-ui/core';\r\n\r\nexport interface IOnOffSwitchProps {\r\n offLabel: string;\r\n onLabel: string;\r\n onChange: (on: boolean) => void;\r\n name: string;\r\n defaultValue?: boolean;\r\n}\r\n\r\nconst OnOffSwitch: React.FC = ({\r\n defaultValue,\r\n onChange,\r\n offLabel,\r\n onLabel,\r\n name,\r\n}) => {\r\n const [state, setState] = React.useState(defaultValue ?? true);\r\n\r\n const handleChange = (event: React.ChangeEvent) => {\r\n setState(event.target.checked);\r\n onChange(event.target.checked);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {offLabel}\r\n \r\n \r\n \r\n {onLabel}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default OnOffSwitch;\r\n","const initialState = {\r\n animating: false,\r\n autoplaying: null,\r\n currentDirection: 0,\r\n currentLeft: null,\r\n currentSlide: 0,\r\n direction: 1,\r\n dragging: false,\r\n edgeDragged: false,\r\n initialized: false,\r\n lazyLoadedList: [],\r\n listHeight: null,\r\n listWidth: null,\r\n scrolling: false,\r\n slideCount: null,\r\n slideHeight: null,\r\n slideWidth: null,\r\n swipeLeft: null,\r\n swiped: false, // used by swipeEvent. differentites between touch and swipe.\r\n swiping: false,\r\n touchObject: { startX: 0, startY: 0, curX: 0, curY: 0 },\r\n trackStyle: {},\r\n trackWidth: 0,\r\n targetSlide: 0,\r\n};\r\n\r\nexport default initialState;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nexport const getOnDemandLazySlides = (spec) => {\r\n let onDemandSlides = [];\r\n let startIndex = lazyStartIndex(spec);\r\n let endIndex = lazyEndIndex(spec);\r\n for (let slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\r\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\r\n onDemandSlides.push(slideIndex);\r\n }\r\n }\r\n return onDemandSlides;\r\n};\r\n\r\n// return list of slides that need to be present\r\nexport const getRequiredLazySlides = (spec) => {\r\n let requiredSlides = [];\r\n let startIndex = lazyStartIndex(spec);\r\n let endIndex = lazyEndIndex(spec);\r\n for (let slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\r\n requiredSlides.push(slideIndex);\r\n }\r\n return requiredSlides;\r\n};\r\n\r\n// startIndex that needs to be present\r\nexport const lazyStartIndex = (spec) =>\r\n spec.currentSlide - lazySlidesOnLeft(spec);\r\nexport const lazyEndIndex = (spec) =>\r\n spec.currentSlide + lazySlidesOnRight(spec);\r\nexport const lazySlidesOnLeft = (spec) =>\r\n spec.centerMode\r\n ? Math.floor(spec.slidesToShow / 2) +\r\n (parseInt(spec.centerPadding) > 0 ? 1 : 0)\r\n : 0;\r\nexport const lazySlidesOnRight = (spec) =>\r\n spec.centerMode\r\n ? Math.floor((spec.slidesToShow - 1) / 2) +\r\n 1 +\r\n (parseInt(spec.centerPadding) > 0 ? 1 : 0)\r\n : spec.slidesToShow;\r\n\r\n// get width of an element\r\nexport const getWidth = (elem) => (elem && elem.offsetWidth) || 0;\r\nexport const getHeight = (elem) => (elem && elem.offsetHeight) || 0;\r\nexport const getSwipeDirection = (touchObject, verticalSwiping = false) => {\r\n var xDist, yDist, r, swipeAngle;\r\n xDist = touchObject.startX - touchObject.curX;\r\n yDist = touchObject.startY - touchObject.curY;\r\n r = Math.atan2(yDist, xDist);\r\n swipeAngle = Math.round((r * 180) / Math.PI);\r\n if (swipeAngle < 0) {\r\n swipeAngle = 360 - Math.abs(swipeAngle);\r\n }\r\n if (\r\n (swipeAngle <= 45 && swipeAngle >= 0) ||\r\n (swipeAngle <= 360 && swipeAngle >= 315)\r\n ) {\r\n return 'left';\r\n }\r\n if (swipeAngle >= 135 && swipeAngle <= 225) {\r\n return 'right';\r\n }\r\n if (verticalSwiping === true) {\r\n if (swipeAngle >= 35 && swipeAngle <= 135) {\r\n return 'up';\r\n } else {\r\n return 'down';\r\n }\r\n }\r\n\r\n return 'vertical';\r\n};\r\n\r\n// whether or not we can go next\r\nexport const canGoNext = (spec) => {\r\n var canGo = true;\r\n if (!spec.infinite) {\r\n if (spec.centerMode) {\r\n if (spec.currentSlide >= spec.slideCount - 1) {\r\n canGo = false;\r\n }\r\n } else if (\r\n spec.slideCount <= spec.slidesToShow ||\r\n spec.currentSlide >= spec.slideCount - spec.slidesToShow\r\n ) {\r\n canGo = false;\r\n }\r\n }\r\n return canGo;\r\n};\r\n\r\n// given an object and a list of keys, return new object with given keys\r\nexport const extractObject = (spec, keys) => {\r\n let newObject = {};\r\n keys.forEach((key) => (newObject[key] = spec[key]));\r\n return newObject;\r\n};\r\n\r\n// get initialized state\r\nexport const initializedState = (spec) => {\r\n // spec also contains listRef, trackRef\r\n let slideCount = React.Children.count(spec.children);\r\n let listWidth = Math.ceil(getWidth(ReactDOM.findDOMNode(spec.listRef)));\r\n let trackWidth = Math.ceil(getWidth(ReactDOM.findDOMNode(spec.trackRef)));\r\n let slideWidth;\r\n if (!spec.vertical) {\r\n let centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\r\n if (\r\n typeof spec.centerPadding === 'string' &&\r\n spec.centerPadding.slice(-1) === '%'\r\n ) {\r\n centerPaddingAdj *= listWidth / 100;\r\n }\r\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\r\n } else {\r\n slideWidth = listWidth;\r\n }\r\n let slideHeight =\r\n ReactDOM.findDOMNode(spec.listRef) &&\r\n getHeight(\r\n ReactDOM.findDOMNode(spec.listRef).querySelector('[data-index=\"0\"]')\r\n );\r\n let listHeight = slideHeight * spec.slidesToShow;\r\n let currentSlide =\r\n spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\r\n if (spec.rtl && spec.currentSlide === undefined) {\r\n currentSlide = slideCount - 1 - spec.initialSlide;\r\n }\r\n let lazyLoadedList = spec.lazyLoadedList || [];\r\n let slidesToLoad = getOnDemandLazySlides(\r\n { currentSlide, lazyLoadedList },\r\n spec\r\n );\r\n lazyLoadedList.concat(slidesToLoad);\r\n\r\n let state = {\r\n slideCount,\r\n slideWidth,\r\n listWidth,\r\n trackWidth,\r\n currentSlide,\r\n slideHeight,\r\n listHeight,\r\n lazyLoadedList,\r\n };\r\n\r\n if (spec.autoplaying === null && spec.autoplay) {\r\n state['autoplaying'] = 'playing';\r\n }\r\n\r\n return state;\r\n};\r\n\r\nexport const slideHandler = (spec) => {\r\n const {\r\n waitForAnimate,\r\n animating,\r\n fade,\r\n infinite,\r\n index,\r\n slideCount,\r\n lazyLoadedList,\r\n lazyLoad,\r\n currentSlide,\r\n centerMode,\r\n slidesToScroll,\r\n slidesToShow,\r\n useCSS,\r\n } = spec;\r\n if (waitForAnimate && animating) return {};\r\n let animationSlide = index,\r\n finalSlide,\r\n animationLeft,\r\n finalLeft;\r\n let state = {},\r\n nextState = {};\r\n if (fade) {\r\n if (!infinite && (index < 0 || index >= slideCount)) return {};\r\n if (index < 0) {\r\n animationSlide = index + slideCount;\r\n } else if (index >= slideCount) {\r\n animationSlide = index - slideCount;\r\n }\r\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\r\n lazyLoadedList.push(animationSlide);\r\n }\r\n state = {\r\n animating: true,\r\n currentSlide: animationSlide,\r\n lazyLoadedList,\r\n };\r\n nextState = { animating: false };\r\n } else {\r\n finalSlide = animationSlide;\r\n if (animationSlide < 0) {\r\n finalSlide = animationSlide + slideCount;\r\n if (!infinite) finalSlide = 0;\r\n else if (slideCount % slidesToScroll !== 0)\r\n finalSlide = slideCount - (slideCount % slidesToScroll);\r\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\r\n animationSlide = finalSlide = currentSlide;\r\n } else if (centerMode && animationSlide >= slideCount) {\r\n animationSlide = infinite ? slideCount : slideCount - 1;\r\n finalSlide = infinite ? 0 : slideCount - 1;\r\n } else if (animationSlide >= slideCount) {\r\n finalSlide = animationSlide - slideCount;\r\n if (!infinite) finalSlide = slideCount - slidesToShow;\r\n else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\r\n }\r\n animationLeft = getTrackLeft({ ...spec, slideIndex: animationSlide });\r\n finalLeft = getTrackLeft({ ...spec, slideIndex: finalSlide });\r\n if (!infinite) {\r\n if (animationLeft === finalLeft) animationSlide = finalSlide;\r\n animationLeft = finalLeft;\r\n }\r\n lazyLoad &&\r\n lazyLoadedList.concat(\r\n getOnDemandLazySlides({ ...spec, currentSlide: animationSlide })\r\n );\r\n if (!useCSS) {\r\n state = {\r\n currentSlide: finalSlide,\r\n trackStyle: getTrackCSS({ ...spec, left: finalLeft }),\r\n lazyLoadedList,\r\n };\r\n } else {\r\n state = {\r\n animating: true,\r\n currentSlide: finalSlide,\r\n trackStyle: getTrackAnimateCSS({ ...spec, left: animationLeft }),\r\n lazyLoadedList,\r\n };\r\n nextState = {\r\n animating: false,\r\n currentSlide: finalSlide,\r\n trackStyle: getTrackCSS({ ...spec, left: finalLeft }),\r\n swipeLeft: null,\r\n };\r\n }\r\n }\r\n return { state, nextState };\r\n};\r\n\r\nexport const changeSlide = (spec, options) => {\r\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\r\n const {\r\n slidesToScroll,\r\n slidesToShow,\r\n slideCount,\r\n currentSlide,\r\n lazyLoad,\r\n infinite,\r\n } = spec;\r\n unevenOffset = slideCount % slidesToScroll !== 0;\r\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\r\n\r\n if (options.message === 'previous') {\r\n slideOffset =\r\n indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\r\n targetSlide = currentSlide - slideOffset;\r\n if (lazyLoad && !infinite) {\r\n previousInt = currentSlide - slideOffset;\r\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\r\n }\r\n } else if (options.message === 'next') {\r\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\r\n targetSlide = currentSlide + slideOffset;\r\n if (lazyLoad && !infinite) {\r\n targetSlide =\r\n ((currentSlide + slidesToScroll) % slideCount) + indexOffset;\r\n }\r\n } else if (options.message === 'dots') {\r\n // Click on dots\r\n targetSlide = options.index * options.slidesToScroll;\r\n if (targetSlide === options.currentSlide) {\r\n return null;\r\n }\r\n } else if (options.message === 'children') {\r\n // Click on the slides\r\n targetSlide = options.index;\r\n if (targetSlide === options.currentSlide) {\r\n return null;\r\n }\r\n if (infinite) {\r\n let direction = siblingDirection({ ...spec, targetSlide });\r\n if (targetSlide > options.currentSlide && direction === 'left') {\r\n targetSlide = targetSlide - slideCount;\r\n } else if (targetSlide < options.currentSlide && direction === 'right') {\r\n targetSlide = targetSlide + slideCount;\r\n }\r\n }\r\n } else if (options.message === 'index') {\r\n targetSlide = Number(options.index);\r\n if (targetSlide === options.currentSlide) {\r\n return null;\r\n }\r\n }\r\n return targetSlide;\r\n};\r\nexport const keyHandler = (e, accessibility, rtl) => {\r\n if (e.target.tagName.match('TEXTAREA|INPUT|SELECT') || !accessibility)\r\n return '';\r\n if (e.keyCode === 37) return rtl ? 'next' : 'previous';\r\n if (e.keyCode === 39) return rtl ? 'previous' : 'next';\r\n return '';\r\n};\r\n\r\nexport const swipeStart = (e, swipe, draggable) => {\r\n e.target.tagName === 'IMG' && e.preventDefault();\r\n if (!swipe || (!draggable && e.type.indexOf('mouse') !== -1)) return '';\r\n return {\r\n dragging: true,\r\n touchObject: {\r\n startX: e.touches ? e.touches[0].pageX : e.clientX,\r\n startY: e.touches ? e.touches[0].pageY : e.clientY,\r\n curX: e.touches ? e.touches[0].pageX : e.clientX,\r\n curY: e.touches ? e.touches[0].pageY : e.clientY,\r\n },\r\n };\r\n};\r\nexport const swipeMove = (e, spec) => {\r\n // spec also contains, trackRef and slideIndex\r\n const {\r\n scrolling,\r\n animating,\r\n vertical,\r\n swipeToSlide,\r\n verticalSwiping,\r\n rtl,\r\n currentSlide,\r\n edgeFriction,\r\n edgeDragged,\r\n onEdge,\r\n swiped,\r\n swiping,\r\n slideCount,\r\n slidesToScroll,\r\n infinite,\r\n touchObject,\r\n swipeEvent,\r\n listHeight,\r\n listWidth,\r\n } = spec;\r\n if (scrolling) return;\r\n if (animating) return e.preventDefault();\r\n if (vertical && swipeToSlide && verticalSwiping) e.preventDefault();\r\n let swipeLeft,\r\n state = {};\r\n let curLeft = getTrackLeft(spec);\r\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\r\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\r\n touchObject.swipeLength = Math.round(\r\n Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2))\r\n );\r\n let verticalSwipeLength = Math.round(\r\n Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2))\r\n );\r\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\r\n return { scrolling: true };\r\n }\r\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\r\n let positionOffset =\r\n (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\r\n if (verticalSwiping)\r\n positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\r\n\r\n let dotCount = Math.ceil(slideCount / slidesToScroll);\r\n let swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\r\n let touchSwipeLength = touchObject.swipeLength;\r\n if (!infinite) {\r\n if (\r\n (currentSlide === 0 && swipeDirection === 'right') ||\r\n (currentSlide + 1 >= dotCount && swipeDirection === 'left') ||\r\n (!canGoNext(spec) && swipeDirection === 'left')\r\n ) {\r\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\r\n if (edgeDragged === false && onEdge) {\r\n onEdge(swipeDirection);\r\n state['edgeDragged'] = true;\r\n }\r\n }\r\n }\r\n if (!swiped && swipeEvent) {\r\n swipeEvent(swipeDirection);\r\n state['swiped'] = true;\r\n }\r\n if (!vertical) {\r\n if (!rtl) {\r\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\r\n } else {\r\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\r\n }\r\n } else {\r\n swipeLeft =\r\n curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\r\n }\r\n if (verticalSwiping) {\r\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\r\n }\r\n state = {\r\n ...state,\r\n touchObject,\r\n swipeLeft,\r\n trackStyle: getTrackCSS({ ...spec, left: swipeLeft }),\r\n };\r\n if (\r\n Math.abs(touchObject.curX - touchObject.startX) <\r\n Math.abs(touchObject.curY - touchObject.startY) * 0.8\r\n ) {\r\n return state;\r\n }\r\n if (touchObject.swipeLength > 10) {\r\n state['swiping'] = true;\r\n e.preventDefault();\r\n }\r\n return state;\r\n};\r\nexport const swipeEnd = (e, spec) => {\r\n const {\r\n dragging,\r\n swipe,\r\n touchObject,\r\n listWidth,\r\n touchThreshold,\r\n verticalSwiping,\r\n listHeight,\r\n currentSlide,\r\n swipeToSlide,\r\n scrolling,\r\n onSwipe,\r\n } = spec;\r\n if (!dragging) {\r\n if (swipe) e.preventDefault();\r\n return {};\r\n }\r\n let minSwipe = verticalSwiping\r\n ? listHeight / touchThreshold\r\n : listWidth / touchThreshold;\r\n let swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\r\n // reset the state of touch related state variables.\r\n let state = {\r\n dragging: false,\r\n edgeDragged: false,\r\n scrolling: false,\r\n swiping: false,\r\n swiped: false,\r\n swipeLeft: null,\r\n touchObject: {},\r\n };\r\n if (scrolling) {\r\n return state;\r\n }\r\n if (!touchObject.swipeLength) {\r\n return state;\r\n }\r\n if (touchObject.swipeLength > minSwipe) {\r\n e.preventDefault();\r\n if (onSwipe) {\r\n onSwipe(swipeDirection);\r\n }\r\n let slideCount, newSlide;\r\n switch (swipeDirection) {\r\n case 'left':\r\n case 'up':\r\n newSlide = currentSlide + getSlideCount(spec);\r\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\r\n state['currentDirection'] = 0;\r\n break;\r\n case 'right':\r\n case 'down':\r\n newSlide = currentSlide - getSlideCount(spec);\r\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\r\n state['currentDirection'] = 1;\r\n break;\r\n default:\r\n slideCount = currentSlide;\r\n }\r\n state['triggerSlideHandler'] = slideCount;\r\n } else {\r\n // Adjust the track back to it's original position.\r\n let currentLeft = getTrackLeft(spec);\r\n state['trackStyle'] = getTrackAnimateCSS({ ...spec, left: currentLeft });\r\n }\r\n return state;\r\n};\r\nexport const getNavigableIndexes = (spec) => {\r\n let max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\r\n let breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\r\n let counter = spec.infinite ? spec.slidesToShow * -1 : 0;\r\n let indexes = [];\r\n while (breakpoint < max) {\r\n indexes.push(breakpoint);\r\n breakpoint = counter + spec.slidesToScroll;\r\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\r\n }\r\n return indexes;\r\n};\r\nexport const checkNavigable = (spec, index) => {\r\n const navigables = getNavigableIndexes(spec);\r\n let prevNavigable = 0;\r\n if (index > navigables[navigables.length - 1]) {\r\n index = navigables[navigables.length - 1];\r\n } else {\r\n for (let n in navigables) {\r\n if (index < navigables[n]) {\r\n index = prevNavigable;\r\n break;\r\n }\r\n prevNavigable = navigables[n];\r\n }\r\n }\r\n return index;\r\n};\r\nexport const getSlideCount = (spec) => {\r\n const centerOffset = spec.centerMode\r\n ? spec.slideWidth * Math.floor(spec.slidesToShow / 2)\r\n : 0;\r\n if (spec.swipeToSlide) {\r\n let swipedSlide;\r\n const slickList = ReactDOM.findDOMNode(spec.listRef);\r\n const slides = slickList.querySelectorAll('.slick-slide');\r\n Array.from(slides).every((slide) => {\r\n if (!spec.vertical) {\r\n if (\r\n slide.offsetLeft - centerOffset + getWidth(slide) / 2 >\r\n spec.swipeLeft * -1\r\n ) {\r\n swipedSlide = slide;\r\n return false;\r\n }\r\n } else {\r\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\r\n swipedSlide = slide;\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n });\r\n\r\n if (!swipedSlide) {\r\n return 0;\r\n }\r\n const currentIndex =\r\n spec.rtl === true\r\n ? spec.slideCount - spec.currentSlide\r\n : spec.currentSlide;\r\n const slidesTraversed =\r\n Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\r\n return slidesTraversed;\r\n } else {\r\n return spec.slidesToScroll;\r\n }\r\n};\r\n\r\nexport const checkSpecKeys = (spec, keysArray) =>\r\n keysArray.reduce((value, key) => value && spec.hasOwnProperty(key), true)\r\n ? null\r\n : console.error('Keys Missing:', spec);\r\n\r\nexport const getTrackCSS = (spec) => {\r\n checkSpecKeys(spec, [\r\n 'left',\r\n 'variableWidth',\r\n 'slideCount',\r\n 'slidesToShow',\r\n 'slideWidth',\r\n ]);\r\n let trackWidth, trackHeight;\r\n const trackChildren = spec.slideCount + 2 * spec.slidesToShow;\r\n if (!spec.vertical) {\r\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\r\n } else {\r\n trackHeight = trackChildren * spec.slideHeight;\r\n }\r\n let style = {\r\n opacity: 1,\r\n transition: '',\r\n WebkitTransition: '',\r\n };\r\n if (spec.useTransform) {\r\n let WebkitTransform = !spec.vertical\r\n ? 'translate3d(' + spec.left + 'px, 0px, 0px)'\r\n : 'translate3d(0px, ' + spec.left + 'px, 0px)';\r\n let transform = !spec.vertical\r\n ? 'translate3d(' + spec.left + 'px, 0px, 0px)'\r\n : 'translate3d(0px, ' + spec.left + 'px, 0px)';\r\n let msTransform = !spec.vertical\r\n ? 'translateX(' + spec.left + 'px)'\r\n : 'translateY(' + spec.left + 'px)';\r\n style = {\r\n ...style,\r\n WebkitTransform,\r\n transform,\r\n msTransform,\r\n };\r\n } else {\r\n if (spec.vertical) {\r\n style['top'] = spec.left;\r\n } else {\r\n style['left'] = spec.left;\r\n }\r\n }\r\n if (spec.fade) style = { opacity: 1 };\r\n if (trackWidth) style.width = trackWidth;\r\n if (trackHeight) style.height = trackHeight;\r\n\r\n // Fallback for IE8\r\n if (window && !window.addEventListener && window.attachEvent) {\r\n if (!spec.vertical) {\r\n style.marginLeft = spec.left + 'px';\r\n } else {\r\n style.marginTop = spec.left + 'px';\r\n }\r\n }\r\n\r\n return style;\r\n};\r\nexport const getTrackAnimateCSS = (spec) => {\r\n checkSpecKeys(spec, [\r\n 'left',\r\n 'variableWidth',\r\n 'slideCount',\r\n 'slidesToShow',\r\n 'slideWidth',\r\n 'speed',\r\n 'cssEase',\r\n ]);\r\n let style = getTrackCSS(spec);\r\n // useCSS is true by default so it can be undefined\r\n if (spec.useTransform) {\r\n style.WebkitTransition =\r\n '-webkit-transform ' + spec.speed + 'ms ' + spec.cssEase;\r\n style.transition = 'transform ' + spec.speed + 'ms ' + spec.cssEase;\r\n } else {\r\n if (spec.vertical) {\r\n style.transition = 'top ' + spec.speed + 'ms ' + spec.cssEase;\r\n } else {\r\n style.transition = 'left ' + spec.speed + 'ms ' + spec.cssEase;\r\n }\r\n }\r\n return style;\r\n};\r\nexport const getTrackLeft = (spec) => {\r\n if (spec.unslick) {\r\n return 0;\r\n }\r\n\r\n checkSpecKeys(spec, [\r\n 'slideIndex',\r\n 'trackRef',\r\n 'infinite',\r\n 'centerMode',\r\n 'slideCount',\r\n 'slidesToShow',\r\n 'slidesToScroll',\r\n 'slideWidth',\r\n 'listWidth',\r\n 'variableWidth',\r\n 'slideHeight',\r\n ]);\r\n\r\n const {\r\n slideIndex,\r\n trackRef,\r\n infinite,\r\n centerMode,\r\n slideCount,\r\n slidesToShow,\r\n slidesToScroll,\r\n slideWidth,\r\n listWidth,\r\n variableWidth,\r\n slideHeight,\r\n fade,\r\n vertical,\r\n } = spec;\r\n\r\n var slideOffset = 0;\r\n var targetLeft;\r\n var targetSlide;\r\n var verticalOffset = 0;\r\n\r\n if (fade || spec.slideCount === 1) {\r\n return 0;\r\n }\r\n\r\n let slidesToOffset = 0;\r\n if (infinite) {\r\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\r\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\r\n if (\r\n slideCount % slidesToScroll !== 0 &&\r\n slideIndex + slidesToScroll > slideCount\r\n ) {\r\n slidesToOffset = -(slideIndex > slideCount\r\n ? slidesToShow - (slideIndex - slideCount)\r\n : slideCount % slidesToScroll);\r\n }\r\n // shift current slide to center of the frame\r\n if (centerMode) {\r\n slidesToOffset += parseInt(slidesToShow / 2);\r\n }\r\n } else {\r\n if (\r\n slideCount % slidesToScroll !== 0 &&\r\n slideIndex + slidesToScroll > slideCount\r\n ) {\r\n slidesToOffset = slidesToShow - (slideCount % slidesToScroll);\r\n }\r\n if (centerMode) {\r\n slidesToOffset = parseInt(slidesToShow / 2);\r\n }\r\n }\r\n slideOffset = slidesToOffset * slideWidth;\r\n verticalOffset = slidesToOffset * slideHeight;\r\n\r\n if (!vertical) {\r\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\r\n } else {\r\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\r\n }\r\n\r\n if (variableWidth === true) {\r\n var targetSlideIndex;\r\n let trackElem = ReactDOM.findDOMNode(trackRef);\r\n targetSlideIndex = slideIndex + getPreClones(spec);\r\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\r\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\r\n if (centerMode === true) {\r\n targetSlideIndex = infinite\r\n ? slideIndex + getPreClones(spec)\r\n : slideIndex;\r\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\r\n targetLeft = 0;\r\n for (let slide = 0; slide < targetSlideIndex; slide++) {\r\n targetLeft -=\r\n trackElem &&\r\n trackElem.children[slide] &&\r\n trackElem.children[slide].offsetWidth;\r\n }\r\n targetLeft -= parseInt(spec.centerPadding);\r\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\r\n }\r\n }\r\n\r\n return targetLeft;\r\n};\r\n\r\nexport const getPreClones = (spec) => {\r\n if (spec.unslick || !spec.infinite) {\r\n return 0;\r\n }\r\n if (spec.variableWidth) {\r\n return spec.slideCount;\r\n }\r\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\r\n};\r\n\r\nexport const getPostClones = (spec) => {\r\n if (spec.unslick || !spec.infinite) {\r\n return 0;\r\n }\r\n return spec.slideCount;\r\n};\r\n\r\nexport const getTotalSlides = (spec) =>\r\n spec.slideCount === 1\r\n ? 1\r\n : getPreClones(spec) + spec.slideCount + getPostClones(spec);\r\nexport const siblingDirection = (spec) => {\r\n if (spec.targetSlide > spec.currentSlide) {\r\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\r\n return 'left';\r\n }\r\n return 'right';\r\n } else {\r\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\r\n return 'right';\r\n }\r\n return 'left';\r\n }\r\n};\r\n\r\nexport const slidesOnRight = ({\r\n slidesToShow,\r\n centerMode,\r\n rtl,\r\n centerPadding,\r\n}) => {\r\n // returns no of slides on the right of active slide\r\n if (centerMode) {\r\n let right = (slidesToShow - 1) / 2 + 1;\r\n if (parseInt(centerPadding) > 0) right += 1;\r\n if (rtl && slidesToShow % 2 === 0) right += 1;\r\n return right;\r\n }\r\n if (rtl) {\r\n return 0;\r\n }\r\n return slidesToShow - 1;\r\n};\r\n\r\nexport const slidesOnLeft = ({\r\n slidesToShow,\r\n centerMode,\r\n rtl,\r\n centerPadding,\r\n}) => {\r\n // returns no of slides on the left of active slide\r\n if (centerMode) {\r\n let left = (slidesToShow - 1) / 2 + 1;\r\n if (parseInt(centerPadding) > 0) left += 1;\r\n if (!rtl && slidesToShow % 2 === 0) left += 1;\r\n return left;\r\n }\r\n if (rtl) {\r\n return slidesToShow - 1;\r\n }\r\n return 0;\r\n};\r\n\r\nexport const canUseDOM = () =>\r\n !!(\r\n typeof window !== 'undefined' &&\r\n window.document &&\r\n window.document.createElement\r\n );\r\n","'use strict';\r\n\r\nimport React from 'react';\r\nimport classnames from 'classnames';\r\nimport {getPreClones, lazyEndIndex, lazyStartIndex,} from './utils/innerSliderUtils';\r\n\r\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\r\nconst getSlideClasses = (spec) => {\r\n let slickActive, slickCenter, slickCloned;\r\n let centerOffset, index;\r\n\r\n if (spec.rtl) {\r\n index = spec.slideCount - 1 - spec.index;\r\n } else {\r\n index = spec.index;\r\n }\r\n slickCloned = index < 0 || index >= spec.slideCount;\r\n if (spec.centerMode) {\r\n centerOffset = Math.floor(spec.slidesToShow / 2);\r\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\r\n if (\r\n index > spec.currentSlide - centerOffset - 1 &&\r\n index <= spec.currentSlide + centerOffset\r\n ) {\r\n slickActive = true;\r\n }\r\n } else {\r\n slickActive =\r\n spec.currentSlide <= index &&\r\n index < spec.currentSlide + spec.slidesToShow;\r\n }\r\n let slickCurrent = index === spec.currentSlide;\r\n return {\r\n 'slick-slide': true,\r\n 'slick-active': slickActive,\r\n 'slick-center': slickCenter,\r\n 'slick-cloned': slickCloned,\r\n 'slick-current': slickCurrent, // dubious in case of RTL\r\n };\r\n};\r\n\r\nconst getSlideStyle = (spec) => {\r\n let style = {};\r\n\r\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\r\n style.width = spec.slideWidth;\r\n }\r\n\r\n if (spec.fade) {\r\n style.position = 'relative';\r\n if (spec.vertical) {\r\n style.top = -spec.index * parseInt(spec.slideHeight);\r\n } else {\r\n style.left = -spec.index * parseInt(spec.slideWidth);\r\n }\r\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\r\n style.transition =\r\n 'opacity ' +\r\n spec.speed +\r\n 'ms ' +\r\n spec.cssEase +\r\n ', ' +\r\n 'visibility ' +\r\n spec.speed +\r\n 'ms ' +\r\n spec.cssEase;\r\n style.WebkitTransition =\r\n 'opacity ' +\r\n spec.speed +\r\n 'ms ' +\r\n spec.cssEase +\r\n ', ' +\r\n 'visibility ' +\r\n spec.speed +\r\n 'ms ' +\r\n spec.cssEase;\r\n }\r\n\r\n return style;\r\n};\r\n\r\nconst getKey = (child, fallbackKey) => child.key || fallbackKey;\r\n\r\nconst renderSlides = (spec) => {\r\n let key;\r\n let slides = [];\r\n let preCloneSlides = [];\r\n let postCloneSlides = [];\r\n let childrenCount = React.Children.count(spec.children);\r\n let startIndex = lazyStartIndex(spec);\r\n let endIndex = lazyEndIndex(spec);\r\n\r\n React.Children.forEach(spec.children, (elem, index) => {\r\n let child;\r\n let childOnClickOptions = {\r\n message: 'children',\r\n index: index,\r\n slidesToScroll: spec.slidesToScroll,\r\n currentSlide: spec.currentSlide,\r\n };\r\n\r\n // in case of lazyLoad, whether or not we want to fetch the slide\r\n if (\r\n !spec.lazyLoad ||\r\n (spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0)\r\n ) {\r\n child = elem;\r\n } else {\r\n child =
;\r\n }\r\n let childStyle = getSlideStyle({ ...spec, index });\r\n let slideClass = child.props.className || '';\r\n let slideClasses = getSlideClasses({ ...spec, index });\r\n // push a cloned element of the desired slide\r\n slides.push(\r\n React.cloneElement(child, {\r\n key: 'original' + getKey(child, index),\r\n 'data-index': index,\r\n className: classnames(slideClasses, slideClass),\r\n tabIndex: '-1',\r\n 'aria-hidden': !slideClasses['slick-active'],\r\n style: { outline: 'none', ...(child.props.style || {}), ...childStyle },\r\n onClick: (e) => {\r\n child.props && child.props.onClick && child.props.onClick(e);\r\n if (spec.focusOnSelect) {\r\n spec.focusOnSelect(childOnClickOptions);\r\n }\r\n },\r\n })\r\n );\r\n\r\n // if slide needs to be precloned or postcloned\r\n if (spec.infinite && spec.fade === false) {\r\n let preCloneNo = childrenCount - index;\r\n if (\r\n preCloneNo <= getPreClones(spec) &&\r\n childrenCount !== spec.slidesToShow\r\n ) {\r\n key = -preCloneNo;\r\n if (key >= startIndex) {\r\n child = elem;\r\n }\r\n slideClasses = getSlideClasses({ ...spec, index: key });\r\n preCloneSlides.push(\r\n React.cloneElement(child, {\r\n key: 'precloned' + getKey(child, key),\r\n 'data-index': key,\r\n tabIndex: '-1',\r\n className: classnames(slideClasses, slideClass),\r\n 'aria-hidden': !slideClasses['slick-active'],\r\n style: { ...(child.props.style || {}), ...childStyle },\r\n onClick: (e) => {\r\n child.props && child.props.onClick && child.props.onClick(e);\r\n if (spec.focusOnSelect) {\r\n spec.focusOnSelect(childOnClickOptions);\r\n }\r\n },\r\n })\r\n );\r\n }\r\n\r\n if (childrenCount !== spec.slidesToShow) {\r\n key = childrenCount + index;\r\n if (key < endIndex) {\r\n child = elem;\r\n }\r\n slideClasses = getSlideClasses({ ...spec, index: key });\r\n postCloneSlides.push(\r\n React.cloneElement(child, {\r\n key: 'postcloned' + getKey(child, key),\r\n 'data-index': key,\r\n tabIndex: '-1',\r\n className: classnames(slideClasses, slideClass),\r\n 'aria-hidden': !slideClasses['slick-active'],\r\n style: { ...(child.props.style || {}), ...childStyle },\r\n onClick: (e) => {\r\n child.props && child.props.onClick && child.props.onClick(e);\r\n if (spec.focusOnSelect) {\r\n spec.focusOnSelect(childOnClickOptions);\r\n }\r\n },\r\n })\r\n );\r\n }\r\n }\r\n });\r\n\r\n if (spec.rtl) {\r\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\r\n } else {\r\n return preCloneSlides.concat(slides, postCloneSlides);\r\n }\r\n};\r\n\r\nexport class Track extends React.PureComponent {\r\n render() {\r\n const slides = renderSlides(this.props);\r\n const { onMouseEnter, onMouseOver, onMouseLeave } = this.props;\r\n const mouseEvents = { onMouseEnter, onMouseOver, onMouseLeave };\r\n return (\r\n \r\n {slides}\r\n
\r\n );\r\n }\r\n}\r\n","'use strict';\r\n\r\nimport React from 'react';\r\nimport classnames from 'classnames';\r\n\r\nconst getDotCount = (spec) => {\r\n let dots;\r\n if (spec.infinite) {\r\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\r\n } else if (spec.slidesToScroll > 1) {\r\n dots =\r\n Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) +\r\n 1;\r\n } else {\r\n dots = Math.ceil(spec.slideCount);\r\n }\r\n\r\n return dots;\r\n};\r\n\r\nexport class Dots extends React.PureComponent {\r\n clickHandler(options, e) {\r\n // In Autoplay the focus stays on clicked button even after transition\r\n // to next slide. That only goes away by click somewhere outside\r\n e.preventDefault();\r\n this.props.clickHandler(options);\r\n }\r\n\r\n render() {\r\n let dotCount = getDotCount({\r\n slideCount: this.props.slideCount,\r\n slidesToScroll: this.props.slidesToScroll,\r\n slidesToShow: this.props.slidesToShow,\r\n infinite: this.props.infinite,\r\n });\r\n\r\n // Apply join & split to Array to pre-fill it for IE8\r\n //\r\n // Credit: http://stackoverflow.com/a/13735425/1849458\r\n const { onMouseEnter, onMouseOver, onMouseLeave } = this.props;\r\n const mouseEvents = { onMouseEnter, onMouseOver, onMouseLeave };\r\n let dots = Array.apply(\r\n null,\r\n Array(dotCount + 1)\r\n .join('0')\r\n .split('')\r\n ).map((x, i) => {\r\n let leftBound = i * this.props.slidesToScroll;\r\n let rightBound =\r\n i * this.props.slidesToScroll + (this.props.slidesToScroll - 1);\r\n let className = classnames({\r\n 'slick-active':\r\n this.props.currentSlide >= leftBound &&\r\n this.props.currentSlide <= rightBound,\r\n });\r\n\r\n let dotOptions = {\r\n message: 'dots',\r\n index: i,\r\n slidesToScroll: this.props.slidesToScroll,\r\n currentSlide: this.props.currentSlide,\r\n };\r\n\r\n let onClick = this.clickHandler.bind(this, dotOptions);\r\n return (\r\n
  • \r\n {React.cloneElement(this.props.customPaging(i), { onClick })}\r\n
  • \r\n );\r\n });\r\n\r\n return React.cloneElement(this.props.appendDots(dots), {\r\n className: this.props.dotsClass,\r\n ...mouseEvents,\r\n });\r\n }\r\n}\r\n","'use strict';\r\n\r\nimport React from 'react';\r\nimport classnames from 'classnames';\r\nimport {canGoNext} from './utils/innerSliderUtils';\r\n\r\nexport class PrevArrow extends React.PureComponent {\r\n clickHandler(options, e) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n this.props.clickHandler(options, e);\r\n }\r\n\r\n render() {\r\n let prevClasses = { 'slick-arrow': true, 'slick-prev': true };\r\n let prevHandler = this.clickHandler.bind(this, { message: 'previous' });\r\n\r\n if (\r\n !this.props.infinite &&\r\n (this.props.currentSlide === 0 ||\r\n this.props.slideCount <= this.props.slidesToShow)\r\n ) {\r\n prevClasses['slick-disabled'] = true;\r\n prevHandler = null;\r\n }\r\n\r\n let prevArrowProps = {\r\n key: '0',\r\n 'data-role': 'none',\r\n className: classnames(prevClasses),\r\n style: { display: 'block' },\r\n onClick: prevHandler,\r\n };\r\n let customProps = {\r\n currentSlide: this.props.currentSlide,\r\n slideCount: this.props.slideCount,\r\n };\r\n let prevArrow;\r\n\r\n if (this.props.prevArrow) {\r\n prevArrow = React.cloneElement(this.props.prevArrow, {\r\n ...prevArrowProps,\r\n ...customProps,\r\n });\r\n } else {\r\n prevArrow = (\r\n \r\n );\r\n }\r\n\r\n return prevArrow;\r\n }\r\n}\r\n\r\nexport class NextArrow extends React.PureComponent {\r\n clickHandler(options, e) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n this.props.clickHandler(options, e);\r\n }\r\n\r\n render() {\r\n let nextClasses = { 'slick-arrow': true, 'slick-next': true };\r\n let nextHandler = this.clickHandler.bind(this, { message: 'next' });\r\n\r\n if (!canGoNext(this.props)) {\r\n nextClasses['slick-disabled'] = true;\r\n nextHandler = null;\r\n }\r\n\r\n let nextArrowProps = {\r\n key: '1',\r\n 'data-role': 'none',\r\n className: classnames(nextClasses),\r\n style: { display: 'block' },\r\n onClick: nextHandler,\r\n };\r\n let customProps = {\r\n currentSlide: this.props.currentSlide,\r\n slideCount: this.props.slideCount,\r\n };\r\n let nextArrow;\r\n\r\n if (this.props.nextArrow) {\r\n nextArrow = React.cloneElement(this.props.nextArrow, {\r\n ...nextArrowProps,\r\n ...customProps,\r\n });\r\n } else {\r\n nextArrow = (\r\n \r\n );\r\n }\r\n\r\n return nextArrow;\r\n }\r\n}\r\n","'use strict';\r\n\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport initialState from './initial-state';\r\nimport debounce from 'lodash.debounce';\r\nimport classnames from 'classnames';\r\nimport {\r\n canGoNext,\r\n changeSlide,\r\n extractObject,\r\n getHeight,\r\n getOnDemandLazySlides,\r\n getPostClones,\r\n getPreClones,\r\n getTrackCSS,\r\n getTrackLeft,\r\n initializedState,\r\n keyHandler,\r\n slideHandler,\r\n swipeEnd,\r\n swipeMove,\r\n swipeStart,\r\n} from './utils/innerSliderUtils';\r\n\r\nimport {Track} from './track';\r\nimport {Dots} from './dots';\r\nimport {NextArrow, PrevArrow} from './arrows';\r\nimport ResizeObserver from 'resize-observer-polyfill';\r\n\r\nexport class InnerSlider extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.list = null;\r\n this.track = null;\r\n this.state = {\r\n ...initialState,\r\n currentSlide: this.props.initialSlide,\r\n slideCount: React.Children.count(this.props.children),\r\n };\r\n this.callbackTimers = [];\r\n this.clickable = true;\r\n this.debouncedResize = null;\r\n }\r\n\r\n listRefHandler = (ref) => (this.list = ref);\r\n trackRefHandler = (ref) => (this.track = ref);\r\n adaptHeight = () => {\r\n if (this.props.adaptiveHeight && this.list) {\r\n const elem = this.list.querySelector(\r\n `[data-index=\"${this.state.currentSlide}\"]`\r\n );\r\n this.list.style.height = getHeight(elem) + 'px';\r\n }\r\n };\r\n componentWillMount = () => {\r\n this.ssrInit();\r\n this.props.onInit && this.props.onInit();\r\n if (this.props.lazyLoad) {\r\n let slidesToLoad = getOnDemandLazySlides({\r\n ...this.props,\r\n ...this.state,\r\n });\r\n if (slidesToLoad.length > 0) {\r\n this.setState((prevState) => ({\r\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad),\r\n }));\r\n if (this.props.onLazyLoad) {\r\n this.props.onLazyLoad(slidesToLoad);\r\n }\r\n }\r\n }\r\n };\r\n componentDidMount = () => {\r\n let spec = { listRef: this.list, trackRef: this.track, ...this.props };\r\n this.updateState(spec, true, () => {\r\n this.adaptHeight();\r\n this.props.autoplay && this.autoPlay('update');\r\n });\r\n if (this.props.lazyLoad === 'progressive') {\r\n this.lazyLoadTimer = setInterval(this.progressiveLazyLoad, 1000);\r\n }\r\n this.ro = new ResizeObserver(() => {\r\n if (this.state.animating) {\r\n this.onWindowResized(false); // don't set trackStyle hence don't break animation\r\n this.callbackTimers.push(\r\n setTimeout(() => this.onWindowResized(), this.props.speed)\r\n );\r\n } else {\r\n this.onWindowResized();\r\n }\r\n });\r\n this.ro.observe(this.list);\r\n Array.prototype.forEach.call(\r\n document.querySelectorAll('.slick-slide'),\r\n (slide) => {\r\n slide.onfocus = this.props.pauseOnFocus ? this.onSlideFocus : null;\r\n slide.onblur = this.props.pauseOnFocus ? this.onSlideBlur : null;\r\n }\r\n );\r\n // To support server-side rendering\r\n if (!window) {\r\n return;\r\n }\r\n if (window.addEventListener) {\r\n window.addEventListener('resize', this.onWindowResized);\r\n } else {\r\n window.attachEvent('onresize', this.onWindowResized);\r\n }\r\n };\r\n componentWillUnmount = () => {\r\n if (this.animationEndCallback) {\r\n clearTimeout(this.animationEndCallback);\r\n }\r\n if (this.lazyLoadTimer) {\r\n clearInterval(this.lazyLoadTimer);\r\n }\r\n if (this.callbackTimers.length) {\r\n this.callbackTimers.forEach((timer) => clearTimeout(timer));\r\n this.callbackTimers = [];\r\n }\r\n if (window.addEventListener) {\r\n window.removeEventListener('resize', this.onWindowResized);\r\n } else {\r\n window.detachEvent('onresize', this.onWindowResized);\r\n }\r\n if (this.autoplayTimer) {\r\n clearInterval(this.autoplayTimer);\r\n }\r\n };\r\n componentWillReceiveProps = (nextProps) => {\r\n let spec = {\r\n listRef: this.list,\r\n trackRef: this.track,\r\n ...nextProps,\r\n ...this.state,\r\n };\r\n let setTrackStyle = false;\r\n for (let key of Object.keys(this.props)) {\r\n if (!nextProps.hasOwnProperty(key)) {\r\n setTrackStyle = true;\r\n break;\r\n }\r\n if (\r\n typeof nextProps[key] === 'object' ||\r\n typeof nextProps[key] === 'function'\r\n ) {\r\n continue;\r\n }\r\n if (nextProps[key] !== this.props[key]) {\r\n setTrackStyle = true;\r\n break;\r\n }\r\n }\r\n this.updateState(spec, setTrackStyle, () => {\r\n if (this.state.currentSlide >= React.Children.count(nextProps.children)) {\r\n this.changeSlide({\r\n message: 'index',\r\n index:\r\n React.Children.count(nextProps.children) - nextProps.slidesToShow,\r\n currentSlide: this.state.currentSlide,\r\n });\r\n }\r\n if (nextProps.autoplay) {\r\n this.autoPlay('update');\r\n } else {\r\n this.pause('paused');\r\n }\r\n });\r\n };\r\n componentDidUpdate = () => {\r\n this.checkImagesLoad();\r\n this.props.onReInit && this.props.onReInit();\r\n if (this.props.lazyLoad) {\r\n let slidesToLoad = getOnDemandLazySlides({\r\n ...this.props,\r\n ...this.state,\r\n });\r\n if (slidesToLoad.length > 0) {\r\n this.setState((prevState) => ({\r\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad),\r\n }));\r\n if (this.props.onLazyLoad) {\r\n this.props.onLazyLoad(slidesToLoad);\r\n }\r\n }\r\n }\r\n // if (this.props.onLazyLoad) {\r\n // this.props.onLazyLoad([leftMostSlide])\r\n // }\r\n this.adaptHeight();\r\n };\r\n onWindowResized = (setTrackStyle) => {\r\n if (this.debouncedResize) this.debouncedResize.cancel();\r\n this.debouncedResize = debounce(() => this.resizeWindow(setTrackStyle), 50);\r\n this.debouncedResize();\r\n };\r\n resizeWindow = (setTrackStyle = true) => {\r\n if (!ReactDOM.findDOMNode(this.track)) return;\r\n let spec = {\r\n listRef: this.list,\r\n trackRef: this.track,\r\n ...this.props,\r\n ...this.state,\r\n };\r\n this.updateState(spec, setTrackStyle, () => {\r\n if (this.props.autoplay) this.autoPlay('update');\r\n else this.pause('paused');\r\n });\r\n // animating state should be cleared while resizing, otherwise autoplay stops working\r\n this.setState({\r\n animating: false,\r\n });\r\n clearTimeout(this.animationEndCallback);\r\n delete this.animationEndCallback;\r\n };\r\n updateState = (spec, setTrackStyle, callback) => {\r\n let updatedState = initializedState(spec);\r\n spec = { ...spec, ...updatedState, slideIndex: updatedState.currentSlide };\r\n let targetLeft = getTrackLeft(spec);\r\n spec = { ...spec, left: targetLeft };\r\n let trackStyle = getTrackCSS(spec);\r\n if (\r\n setTrackStyle ||\r\n React.Children.count(this.props.children) !==\r\n React.Children.count(spec.children)\r\n ) {\r\n updatedState['trackStyle'] = trackStyle;\r\n }\r\n this.setState(updatedState, callback);\r\n };\r\n\r\n ssrInit = () => {\r\n if (this.props.variableWidth) {\r\n let trackWidth = 0,\r\n trackLeft = 0;\r\n let childrenWidths = [];\r\n let preClones = getPreClones({\r\n ...this.props,\r\n ...this.state,\r\n slideCount: this.props.children.length,\r\n });\r\n let postClones = getPostClones({\r\n ...this.props,\r\n ...this.state,\r\n slideCount: this.props.children.length,\r\n });\r\n this.props.children.forEach((child) => {\r\n childrenWidths.push(child.props.style.width);\r\n trackWidth += child.props.style.width;\r\n });\r\n for (let i = 0; i < preClones; i++) {\r\n trackLeft += childrenWidths[childrenWidths.length - 1 - i];\r\n trackWidth += childrenWidths[childrenWidths.length - 1 - i];\r\n }\r\n for (let i = 0; i < postClones; i++) {\r\n trackWidth += childrenWidths[i];\r\n }\r\n for (let i = 0; i < this.state.currentSlide; i++) {\r\n trackLeft += childrenWidths[i];\r\n }\r\n let trackStyle = {\r\n width: trackWidth + 'px',\r\n left: -trackLeft + 'px',\r\n };\r\n if (this.props.centerMode) {\r\n let currentWidth = `${childrenWidths[this.state.currentSlide]}px`;\r\n trackStyle.left = `calc(${trackStyle.left} + (100% - ${currentWidth}) / 2 ) `;\r\n }\r\n this.setState({\r\n trackStyle,\r\n });\r\n return;\r\n }\r\n let childrenCount = React.Children.count(this.props.children);\r\n const spec = { ...this.props, ...this.state, slideCount: childrenCount };\r\n let slideCount = getPreClones(spec) + getPostClones(spec) + childrenCount;\r\n let trackWidth = (100 / this.props.slidesToShow) * slideCount;\r\n let slideWidth = 100 / slideCount;\r\n let trackLeft =\r\n (-slideWidth *\r\n (getPreClones(spec) + this.state.currentSlide) *\r\n trackWidth) /\r\n 100;\r\n if (this.props.centerMode) {\r\n trackLeft += (100 - (slideWidth * trackWidth) / 100) / 2;\r\n }\r\n let trackStyle = {\r\n width: trackWidth + '%',\r\n left: trackLeft + '%',\r\n };\r\n this.setState({\r\n slideWidth: slideWidth + '%',\r\n trackStyle: trackStyle,\r\n });\r\n };\r\n checkImagesLoad = () => {\r\n let images = document.querySelectorAll('.slick-slide img');\r\n let imagesCount = images.length,\r\n loadedCount = 0;\r\n Array.prototype.forEach.call(images, (image) => {\r\n const handler = () =>\r\n ++loadedCount && loadedCount >= imagesCount && this.onWindowResized();\r\n if (!image.onclick) {\r\n image.onclick = () => image.parentNode.focus();\r\n } else {\r\n const prevClickHandler = image.onclick;\r\n image.onclick = () => {\r\n prevClickHandler();\r\n image.parentNode.focus();\r\n };\r\n }\r\n if (!image.onload) {\r\n if (this.props.lazyLoad) {\r\n image.onload = () => {\r\n this.adaptHeight();\r\n this.callbackTimers.push(\r\n setTimeout(this.onWindowResized, this.props.speed)\r\n );\r\n };\r\n } else {\r\n image.onload = handler;\r\n image.onerror = () => {\r\n handler();\r\n this.props.onLazyLoadError && this.props.onLazyLoadError();\r\n };\r\n }\r\n }\r\n });\r\n };\r\n progressiveLazyLoad = () => {\r\n let slidesToLoad = [];\r\n const spec = { ...this.props, ...this.state };\r\n for (\r\n let index = this.state.currentSlide;\r\n index < this.state.slideCount + getPostClones(spec);\r\n index++\r\n ) {\r\n if (this.state.lazyLoadedList.indexOf(index) < 0) {\r\n slidesToLoad.push(index);\r\n break;\r\n }\r\n }\r\n for (\r\n let index = this.state.currentSlide - 1;\r\n index >= -getPreClones(spec);\r\n index--\r\n ) {\r\n if (this.state.lazyLoadedList.indexOf(index) < 0) {\r\n slidesToLoad.push(index);\r\n break;\r\n }\r\n }\r\n if (slidesToLoad.length > 0) {\r\n this.setState((state) => ({\r\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad),\r\n }));\r\n if (this.props.onLazyLoad) {\r\n this.props.onLazyLoad(slidesToLoad);\r\n }\r\n } else {\r\n if (this.lazyLoadTimer) {\r\n clearInterval(this.lazyLoadTimer);\r\n delete this.lazyLoadTimer;\r\n }\r\n }\r\n };\r\n slideHandler = (index, dontAnimate = false) => {\r\n const { asNavFor, beforeChange, onLazyLoad, speed, afterChange } =\r\n this.props;\r\n // capture currentslide before state is updated\r\n const currentSlide = this.state.currentSlide;\r\n let { state, nextState } = slideHandler({\r\n index,\r\n ...this.props,\r\n ...this.state,\r\n trackRef: this.track,\r\n useCSS: this.props.useCSS && !dontAnimate,\r\n });\r\n if (!state) return;\r\n beforeChange && beforeChange(currentSlide, state.currentSlide);\r\n let slidesToLoad = state.lazyLoadedList.filter(\r\n (value) => this.state.lazyLoadedList.indexOf(value) < 0\r\n );\r\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\r\n this.setState(state, () => {\r\n asNavFor &&\r\n asNavFor.innerSlider.state.currentSlide !== this.state.currentSlide &&\r\n asNavFor.innerSlider.slideHandler(index);\r\n if (!nextState) return;\r\n this.animationEndCallback = setTimeout(() => {\r\n const { animating, ...firstBatch } = nextState;\r\n this.setState(firstBatch, () => {\r\n this.callbackTimers.push(\r\n setTimeout(() => this.setState({ animating }), 10)\r\n );\r\n afterChange && afterChange(state.currentSlide);\r\n delete this.animationEndCallback;\r\n });\r\n }, speed);\r\n });\r\n };\r\n changeSlide = (options, dontAnimate = false) => {\r\n const spec = { ...this.props, ...this.state };\r\n let targetSlide = changeSlide(spec, options);\r\n if (targetSlide !== 0 && !targetSlide) return;\r\n if (dontAnimate === true) {\r\n this.slideHandler(targetSlide, dontAnimate);\r\n } else {\r\n this.slideHandler(targetSlide);\r\n }\r\n };\r\n clickHandler = (e) => {\r\n if (this.clickable === false) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n this.clickable = true;\r\n };\r\n keyHandler = (e) => {\r\n let dir = keyHandler(e, this.props.accessibility, this.props.rtl);\r\n dir !== '' && this.changeSlide({ message: dir });\r\n };\r\n selectHandler = (options) => {\r\n this.changeSlide(options);\r\n };\r\n disableBodyScroll = () => {\r\n const preventDefault = (e) => {\r\n e = e || window.event;\r\n if (e.preventDefault) e.preventDefault();\r\n e.returnValue = false;\r\n };\r\n window.ontouchmove = preventDefault;\r\n };\r\n enableBodyScroll = () => {\r\n window.ontouchmove = null;\r\n };\r\n swipeStart = (e) => {\r\n if (this.props.verticalSwiping) {\r\n this.disableBodyScroll();\r\n }\r\n let state = swipeStart(e, this.props.swipe, this.props.draggable);\r\n state !== '' && this.setState(state);\r\n };\r\n swipeMove = (e) => {\r\n let state = swipeMove(e, {\r\n ...this.props,\r\n ...this.state,\r\n trackRef: this.track,\r\n listRef: this.list,\r\n slideIndex: this.state.currentSlide,\r\n });\r\n if (!state) return;\r\n if (state['swiping']) {\r\n this.clickable = false;\r\n }\r\n this.setState(state);\r\n };\r\n swipeEnd = (e) => {\r\n let state = swipeEnd(e, {\r\n ...this.props,\r\n ...this.state,\r\n trackRef: this.track,\r\n listRef: this.list,\r\n slideIndex: this.state.currentSlide,\r\n });\r\n if (!state) return;\r\n let triggerSlideHandler = state['triggerSlideHandler'];\r\n delete state['triggerSlideHandler'];\r\n this.setState(state);\r\n if (triggerSlideHandler === undefined) return;\r\n this.slideHandler(triggerSlideHandler);\r\n if (this.props.verticalSwiping) {\r\n this.enableBodyScroll();\r\n }\r\n };\r\n slickPrev = () => {\r\n // this and fellow methods are wrapped in setTimeout\r\n // to make sure initialize setState has happened before\r\n // any of such methods are called\r\n this.callbackTimers.push(\r\n setTimeout(() => this.changeSlide({ message: 'previous' }), 0)\r\n );\r\n };\r\n slickNext = () => {\r\n this.callbackTimers.push(\r\n setTimeout(() => this.changeSlide({ message: 'next' }), 0)\r\n );\r\n };\r\n slickGoTo = (slide, dontAnimate = false) => {\r\n slide = Number(slide);\r\n if (isNaN(slide)) return '';\r\n this.callbackTimers.push(\r\n setTimeout(\r\n () =>\r\n this.changeSlide(\r\n {\r\n message: 'index',\r\n index: slide,\r\n currentSlide: this.state.currentSlide,\r\n },\r\n dontAnimate\r\n ),\r\n 0\r\n )\r\n );\r\n };\r\n play = () => {\r\n var nextIndex;\r\n if (this.props.rtl) {\r\n nextIndex = this.state.currentSlide - this.props.slidesToScroll;\r\n } else {\r\n if (canGoNext({ ...this.props, ...this.state })) {\r\n nextIndex = this.state.currentSlide + this.props.slidesToScroll;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n this.slideHandler(nextIndex);\r\n };\r\n\r\n autoPlay = (playType) => {\r\n if (this.autoplayTimer) {\r\n clearInterval(this.autoplayTimer);\r\n }\r\n const autoplaying = this.state.autoplaying;\r\n if (playType === 'update') {\r\n if (\r\n autoplaying === 'hovered' ||\r\n autoplaying === 'focused' ||\r\n autoplaying === 'paused'\r\n ) {\r\n return;\r\n }\r\n } else if (playType === 'leave') {\r\n if (autoplaying === 'paused' || autoplaying === 'focused') {\r\n return;\r\n }\r\n } else if (playType === 'blur') {\r\n if (autoplaying === 'paused' || autoplaying === 'hovered') {\r\n return;\r\n }\r\n }\r\n this.autoplayTimer = setInterval(this.play, this.props.autoplaySpeed + 50);\r\n this.setState({ autoplaying: 'playing' });\r\n };\r\n pause = (pauseType) => {\r\n if (this.autoplayTimer) {\r\n clearInterval(this.autoplayTimer);\r\n this.autoplayTimer = null;\r\n }\r\n const autoplaying = this.state.autoplaying;\r\n if (pauseType === 'paused') {\r\n this.setState({ autoplaying: 'paused' });\r\n } else if (pauseType === 'focused') {\r\n if (autoplaying === 'hovered' || autoplaying === 'playing') {\r\n this.setState({ autoplaying: 'focused' });\r\n }\r\n } else {\r\n // pauseType is 'hovered'\r\n if (autoplaying === 'playing') {\r\n this.setState({ autoplaying: 'hovered' });\r\n }\r\n }\r\n };\r\n onDotsOver = () => this.props.autoplay && this.pause('hovered');\r\n onDotsLeave = () =>\r\n this.props.autoplay &&\r\n this.state.autoplaying === 'hovered' &&\r\n this.autoPlay('leave');\r\n onTrackOver = () => this.props.autoplay && this.pause('hovered');\r\n onTrackLeave = () =>\r\n this.props.autoplay &&\r\n this.state.autoplaying === 'hovered' &&\r\n this.autoPlay('leave');\r\n onSlideFocus = () => this.props.autoplay && this.pause('focused');\r\n onSlideBlur = () =>\r\n this.props.autoplay &&\r\n this.state.autoplaying === 'focused' &&\r\n this.autoPlay('blur');\r\n\r\n render = () => {\r\n var className = classnames('slick-slider', this.props.className, {\r\n 'slick-vertical': this.props.vertical,\r\n 'slick-initialized': true,\r\n });\r\n let spec = { ...this.props, ...this.state };\r\n let trackProps = extractObject(spec, [\r\n 'fade',\r\n 'cssEase',\r\n 'speed',\r\n 'infinite',\r\n 'centerMode',\r\n 'focusOnSelect',\r\n 'currentSlide',\r\n 'lazyLoad',\r\n 'lazyLoadedList',\r\n 'rtl',\r\n 'slideWidth',\r\n 'slideHeight',\r\n 'listHeight',\r\n 'vertical',\r\n 'slidesToShow',\r\n 'slidesToScroll',\r\n 'slideCount',\r\n 'trackStyle',\r\n 'variableWidth',\r\n 'unslick',\r\n 'centerPadding',\r\n ]);\r\n const { pauseOnHover } = this.props;\r\n trackProps = {\r\n ...trackProps,\r\n onMouseEnter: pauseOnHover ? this.onTrackOver : null,\r\n onMouseLeave: pauseOnHover ? this.onTrackLeave : null,\r\n onMouseOver: pauseOnHover ? this.onTrackOver : null,\r\n focusOnSelect: this.props.focusOnSelect ? this.selectHandler : null,\r\n };\r\n\r\n var dots;\r\n if (\r\n this.props.dots === true &&\r\n this.state.slideCount >= this.props.slidesToShow\r\n ) {\r\n let dotProps = extractObject(spec, [\r\n 'dotsClass',\r\n 'slideCount',\r\n 'slidesToShow',\r\n 'currentSlide',\r\n 'slidesToScroll',\r\n 'clickHandler',\r\n 'children',\r\n 'customPaging',\r\n 'infinite',\r\n 'appendDots',\r\n ]);\r\n const { pauseOnDotsHover } = this.props;\r\n dotProps = {\r\n ...dotProps,\r\n clickHandler: this.changeSlide,\r\n onMouseEnter: pauseOnDotsHover ? this.onDotsLeave : null,\r\n onMouseOver: pauseOnDotsHover ? this.onDotsOver : null,\r\n onMouseLeave: pauseOnDotsHover ? this.onDotsLeave : null,\r\n };\r\n dots = ;\r\n }\r\n\r\n var prevArrow, nextArrow;\r\n let arrowProps = extractObject(spec, [\r\n 'infinite',\r\n 'centerMode',\r\n 'currentSlide',\r\n 'slideCount',\r\n 'slidesToShow',\r\n 'prevArrow',\r\n 'nextArrow',\r\n ]);\r\n arrowProps.clickHandler = this.changeSlide;\r\n\r\n if (this.props.arrows) {\r\n prevArrow = ;\r\n nextArrow = ;\r\n }\r\n\r\n var verticalHeightStyle = null;\r\n\r\n if (this.props.vertical) {\r\n verticalHeightStyle = {\r\n height: this.state.listHeight,\r\n };\r\n }\r\n\r\n var centerPaddingStyle = null;\r\n\r\n if (this.props.vertical === false) {\r\n if (this.props.centerMode === true) {\r\n centerPaddingStyle = {\r\n padding: '0px ' + this.props.centerPadding,\r\n };\r\n }\r\n } else {\r\n if (this.props.centerMode === true) {\r\n centerPaddingStyle = {\r\n padding: this.props.centerPadding + ' 0px',\r\n };\r\n }\r\n }\r\n\r\n const listStyle = { ...verticalHeightStyle, ...centerPaddingStyle };\r\n const touchMove = this.props.touchMove;\r\n let listProps = {\r\n className: 'slick-list',\r\n style: listStyle,\r\n onClick: this.clickHandler,\r\n onMouseDown: touchMove ? this.swipeStart : null,\r\n onMouseMove: this.state.dragging && touchMove ? this.swipeMove : null,\r\n onMouseUp: touchMove ? this.swipeEnd : null,\r\n onMouseLeave: this.state.dragging && touchMove ? this.swipeEnd : null,\r\n onTouchStart: touchMove ? this.swipeStart : null,\r\n onTouchMove: this.state.dragging && touchMove ? this.swipeMove : null,\r\n onTouchEnd: touchMove ? this.swipeEnd : null,\r\n onTouchCancel: this.state.dragging && touchMove ? this.swipeEnd : null,\r\n onKeyDown: this.props.accessibility ? this.keyHandler : null,\r\n };\r\n\r\n let innerSliderProps = {\r\n className: className,\r\n dir: 'ltr',\r\n };\r\n\r\n if (this.props.unslick) {\r\n listProps = { className: 'slick-list' };\r\n innerSliderProps = { className };\r\n }\r\n return (\r\n
    \r\n {!this.props.unslick ? prevArrow : ''}\r\n
    \r\n \r\n {this.props.children}\r\n \r\n
    \r\n {!this.props.unslick ? nextArrow : ''}\r\n {!this.props.unslick ? dots : ''}\r\n
    \r\n );\r\n };\r\n}\r\n","import React from 'react';\r\n\r\nlet defaultProps = {\r\n accessibility: true,\r\n adaptiveHeight: false,\r\n afterChange: null,\r\n appendDots: (dots) =>
      {dots}
    ,\r\n arrows: true,\r\n autoplay: false,\r\n autoplaySpeed: 3000,\r\n beforeChange: null,\r\n centerMode: false,\r\n centerPadding: '50px',\r\n className: '',\r\n cssEase: 'ease',\r\n customPaging: (i) => ,\r\n dots: false,\r\n dotsClass: 'slick-dots',\r\n draggable: true,\r\n easing: 'linear',\r\n edgeFriction: 0.35,\r\n fade: false,\r\n focusOnSelect: false,\r\n infinite: true,\r\n initialSlide: 0,\r\n lazyLoad: null,\r\n nextArrow: null,\r\n onEdge: null,\r\n onInit: null,\r\n onLazyLoadError: null,\r\n onReInit: null,\r\n pauseOnDotsHover: false,\r\n pauseOnFocus: false,\r\n pauseOnHover: true,\r\n prevArrow: null,\r\n responsive: null,\r\n rows: 1,\r\n rtl: false,\r\n slide: 'div',\r\n slidesPerRow: 1,\r\n slidesToScroll: 1,\r\n slidesToShow: 1,\r\n speed: 500,\r\n swipe: true,\r\n swipeEvent: null,\r\n swipeToSlide: false,\r\n touchMove: true,\r\n touchThreshold: 5,\r\n useCSS: true,\r\n useTransform: true,\r\n variableWidth: false,\r\n vertical: false,\r\n waitForAnimate: true,\r\n};\r\n\r\nexport default defaultProps;\r\n","'use strict';\r\n\r\nimport React from 'react';\r\nimport {InnerSlider} from './inner-slider';\r\nimport json2mq from 'json2mq';\r\nimport defaultProps from './default-props';\r\nimport {canUseDOM} from './utils/innerSliderUtils';\r\n\r\nconst enquire = canUseDOM() && require('enquire.js');\r\n\r\nexport default class Slider extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n breakpoint: null,\r\n };\r\n this._responsiveMediaHandlers = [];\r\n }\r\n\r\n innerSliderRefHandler = (ref) => (this.innerSlider = ref);\r\n\r\n media(query, handler) {\r\n // javascript handler for css media query\r\n enquire.register(query, handler);\r\n this._responsiveMediaHandlers.push({ query, handler });\r\n }\r\n\r\n // handles responsive breakpoints\r\n componentWillMount() {\r\n // performance monitoring\r\n //if (process.env.NODE_ENV !== 'production') {\r\n //const { whyDidYouUpdate } = require('why-did-you-update')\r\n //whyDidYouUpdate(React)\r\n //}\r\n if (this.props.responsive) {\r\n let breakpoints = this.props.responsive.map(\r\n (breakpt) => breakpt.breakpoint\r\n );\r\n // sort them in increasing order of their numerical value\r\n breakpoints.sort((x, y) => x - y);\r\n\r\n breakpoints.forEach((breakpoint, index) => {\r\n // media query for each breakpoint\r\n let bQuery;\r\n if (index === 0) {\r\n bQuery = json2mq({ minWidth: 0, maxWidth: breakpoint });\r\n } else {\r\n bQuery = json2mq({\r\n minWidth: breakpoints[index - 1] + 1,\r\n maxWidth: breakpoint,\r\n });\r\n }\r\n // when not using server side rendering\r\n canUseDOM() &&\r\n this.media(bQuery, () => {\r\n this.setState({ breakpoint: breakpoint });\r\n });\r\n });\r\n\r\n // Register media query for full screen. Need to support resize from small to large\r\n // convert javascript object to media query string\r\n let query = json2mq({ minWidth: breakpoints.slice(-1)[0] });\r\n\r\n canUseDOM() &&\r\n this.media(query, () => {\r\n this.setState({ breakpoint: null });\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this._responsiveMediaHandlers.forEach(function (obj) {\r\n enquire.unregister(obj.query, obj.handler);\r\n });\r\n }\r\n\r\n slickPrev = () => this.innerSlider.slickPrev();\r\n\r\n slickNext = () => this.innerSlider.slickNext();\r\n\r\n slickGoTo = (slide, dontAnimate = false) =>\r\n this.innerSlider.slickGoTo(slide, dontAnimate);\r\n\r\n slickPause = () => this.innerSlider.pause('paused');\r\n\r\n slickPlay = () => this.innerSlider.autoPlay('play');\r\n\r\n render() {\r\n var settings;\r\n var newProps;\r\n if (this.state.breakpoint) {\r\n newProps = this.props.responsive.filter(\r\n (resp) => resp.breakpoint === this.state.breakpoint\r\n );\r\n settings =\r\n newProps[0].settings === 'unslick'\r\n ? 'unslick'\r\n : { ...defaultProps, ...this.props, ...newProps[0].settings };\r\n } else {\r\n settings = { ...defaultProps, ...this.props };\r\n }\r\n\r\n // force scrolling by one if centerMode is on\r\n if (settings.centerMode) {\r\n if (\r\n settings.slidesToScroll > 1 &&\r\n process.env.NODE_ENV !== 'production'\r\n ) {\r\n console.warn(\r\n `slidesToScroll should be equal to 1 in centerMode, you are using ${settings.slidesToScroll}`\r\n );\r\n }\r\n settings.slidesToScroll = 1;\r\n }\r\n // force showing one slide and scrolling by one if the fade mode is on\r\n if (settings.fade) {\r\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n `slidesToShow should be equal to 1 when fade is true, you're using ${settings.slidesToShow}`\r\n );\r\n }\r\n if (\r\n settings.slidesToScroll > 1 &&\r\n process.env.NODE_ENV !== 'production'\r\n ) {\r\n console.warn(\r\n `slidesToScroll should be equal to 1 when fade is true, you're using ${settings.slidesToScroll}`\r\n );\r\n }\r\n settings.slidesToShow = 1;\r\n settings.slidesToScroll = 1;\r\n }\r\n\r\n // makes sure that children is an array, even when there is only 1 child\r\n let children = React.Children.toArray(this.props.children);\r\n\r\n // Children may contain false or null, so we should filter them\r\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\r\n children = children.filter((child) => {\r\n if (typeof child === 'string') {\r\n return !!child.trim();\r\n }\r\n return !!child;\r\n });\r\n\r\n // rows and slidesPerRow logic is handled here\r\n if (\r\n settings.variableWidth &&\r\n (settings.rows > 1 || settings.slidesPerRow > 1)\r\n ) {\r\n console.warn(\r\n `variableWidth is not supported in case of rows > 1 or slidesPerRow > 1`\r\n );\r\n settings.variableWidth = false;\r\n }\r\n let newChildren = [];\r\n let currentWidth = null;\r\n for (\r\n let i = 0;\r\n i < children.length;\r\n i += settings.rows * settings.slidesPerRow\r\n ) {\r\n let newSlide = [];\r\n for (\r\n let j = i;\r\n j < i + settings.rows * settings.slidesPerRow;\r\n j += settings.slidesPerRow\r\n ) {\r\n let row = [];\r\n for (let k = j; k < j + settings.slidesPerRow; k += 1) {\r\n if (settings.variableWidth && children[k].props.style) {\r\n currentWidth = children[k].props.style.width;\r\n }\r\n if (k >= children.length) break;\r\n row.push(\r\n React.cloneElement(children[k], {\r\n key: 100 * i + 10 * j + k,\r\n tabIndex: -1,\r\n style: {\r\n width: `${100 / settings.slidesPerRow}%`,\r\n display: 'inline-block',\r\n },\r\n })\r\n );\r\n }\r\n newSlide.push(\r\n
    \r\n {row}\r\n
    \r\n );\r\n }\r\n if (settings.variableWidth) {\r\n newChildren.push(\r\n
    \r\n {newSlide}\r\n
    \r\n );\r\n } else {\r\n newChildren.push(
    {newSlide}
    );\r\n }\r\n }\r\n\r\n if (settings === 'unslick') {\r\n const className = 'regular slider ' + (this.props.className || '');\r\n return
    {newChildren}
    ;\r\n } else if (newChildren.length <= settings.slidesToShow) {\r\n settings.unslick = true;\r\n }\r\n return (\r\n \r\n {newChildren}\r\n \r\n );\r\n }\r\n}\r\n","import Slider from './slider';\r\n\r\nexport default Slider;\r\n","import '../../../styles/index.scss';\r\n\r\nimport React, { useEffect, useRef, useState } from 'react';\r\n\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\r\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\r\n\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport Slider from '../../../libraries/react-slick';\r\nimport styles from './Carousel.module.scss';\r\n\r\ninterface ICarouselProps {\r\n initialSlideIndex?: number;\r\n onSlideChanged: (newIndex: number) => void;\r\n dots?: boolean;\r\n lowThresholdDate?: Date;\r\n indexToSlideTo?: number;\r\n id?: string;\r\n}\r\n\r\nconst Carousel: React.FC = ({\r\n initialSlideIndex = 0,\r\n children,\r\n onSlideChanged,\r\n dots,\r\n lowThresholdDate,\r\n indexToSlideTo,\r\n}) => {\r\n const ref = useRef(null);\r\n const [slideIndex, setSlideIndex] = useState(initialSlideIndex);\r\n const breakpoint = useBreakpoint();\r\n\r\n const beforeChangeEvent = (current: any, next: any) => {\r\n setSlideIndex(next);\r\n onSlideChanged(next as number);\r\n };\r\n\r\n useEffect(() => {\r\n if (lowThresholdDate && slideIndex !== initialSlideIndex) {\r\n ref.current.slickGoTo(indexToSlideTo ?? 0);\r\n }\r\n }, [lowThresholdDate]);\r\n\r\n return (\r\n <>\r\n 1 and center mode true,\r\n centerPadding: '12%',\r\n\r\n dots: dots ?? true,\r\n centerMode: true,\r\n className: 'center',\r\n slidesToShow: breakpoint.smdown ? 3 : 7,\r\n arrows: !breakpoint.smdown,\r\n infinite: false,\r\n\r\n initialSlide: initialSlideIndex,\r\n\r\n nextArrow: slideIndex !== React.Children.count(children) - 1 && (\r\n \r\n ),\r\n prevArrow: slideIndex !== 0 && (\r\n \r\n ),\r\n }}\r\n className={styles.container}\r\n beforeChange={beforeChangeEvent}\r\n >\r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nfunction NextArrow(props: any) {\r\n const { className, style, onClick } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction PrevArrow(props: any) {\r\n const { className, style, onClick } = props;\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Carousel;\r\n","/* eslint-disable */\r\nimport moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\n\r\nimport { Box, Card, CardContent, Typography } from '@material-ui/core';\r\n\r\nimport useCVFlightTimezones from '../../../../hooks/useCVFlightTimezones';\r\nimport ICVFlight from '../../../../models/ICVFlight';\r\nimport Carousel from '../../../commons/Carousel/Carousel';\r\nimport styles from '../CVFlightPicker.module.scss';\r\n\r\nexport interface ICVFlightCarouselProps {\r\n id: string;\r\n targetDate: Date;\r\n rangeInDay: number;\r\n flights: ICVFlight[];\r\n onSelectDate: (date: Date) => void;\r\n onCarouselCardUpdated: (minDate?: Date) => void;\r\n fromDateThreshold?: Date;\r\n}\r\n\r\ninterface ICard {\r\n dayName: string;\r\n dayNumber: string;\r\n date: Date;\r\n flights: ICVFlight[];\r\n disabled: boolean;\r\n}\r\n\r\nconst CVFlightCarousel: React.FC = ({\r\n fromDateThreshold,\r\n targetDate,\r\n rangeInDay,\r\n flights,\r\n onSelectDate,\r\n onCarouselCardUpdated,\r\n}) => {\r\n const { getLocalTimedLeg } = useCVFlightTimezones();\r\n const [cards, setCards] = useState([]);\r\n\r\n const onSlideChanged = (index: number) => {\r\n if (cards) {\r\n onSelectDate(cards[index].date);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const lowThreshold = moment(targetDate).add(-rangeInDay, 'day');\r\n const lowDateThreshold = moment(fromDateThreshold);\r\n\r\n const computedCards = [...Array(rangeInDay * 2 + 1)].map((_, i) => {\r\n const d = moment(lowThreshold).startOf('day').add(i, 'day');\r\n const dayFlights = flights.filter(\r\n (f) =>\r\n moment(getLocalTimedLeg(f, 0)?.departureTime).format('YYYY-MM-DD') ===\r\n d.format('YYYY-MM-DD')\r\n );\r\n return {\r\n dayName: d.format('ddd'),\r\n dayNumber: d.format('DD'),\r\n date: d.toDate(),\r\n flights: dayFlights,\r\n disabled: fromDateThreshold\r\n ? d < lowDateThreshold.startOf('day')\r\n : false,\r\n };\r\n });\r\n\r\n if (JSON.stringify(cards) !== JSON.stringify(computedCards)) {\r\n setCards(computedCards);\r\n onCarouselCardUpdated(\r\n fromDateThreshold ??\r\n (computedCards.length > 0 ? computedCards[0].date : undefined)\r\n );\r\n }\r\n }, [flights, rangeInDay, fromDateThreshold]);\r\n\r\n useEffect(() => {\r\n if (cards && cards.length > 0) onSelectDate(getDateToSelect());\r\n }, [cards]);\r\n\r\n const getIndexFromDate = (cards: ICard[], date: Date) => {\r\n const targetDateFormatted = `${moment(date).format('ddd')} ${moment(\r\n date\r\n ).format('DD')}`;\r\n const index = cards.findIndex(\r\n (c) => `${c.dayName} ${c.dayNumber}` === targetDateFormatted\r\n );\r\n return index >= 0 ? index : 0;\r\n };\r\n\r\n const getDateToSelect = () => {\r\n const index = getIndexFromDate(cards, targetDate);\r\n return index === 0 ? cards[0].date : targetDate;\r\n };\r\n\r\n return (\r\n
    \r\n {cards.length > 0 && (\r\n onSlideChanged(index)}\r\n lowThresholdDate={fromDateThreshold}\r\n indexToSlideTo={getIndexFromDate(cards, targetDate)}\r\n >\r\n {cards.map((c: ICard) => (\r\n \r\n \r\n \r\n {c.dayName}\r\n \r\n {c.dayNumber}\r\n \r\n \r\n {c.flights.length}{' '}\r\n {c.flights.length > 1 ? 'flights' : 'flight'}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default CVFlightCarousel;\r\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgArrow(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 31,\n height: 24,\n viewBox: \"0 0 31 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.6452 0L16.2581 2.35484L24.2258 10.3226L0 10.3226L0 13.6774L24.2258 13.6774L16.2581 21.6452L18.6452 24L30.6452 12L18.6452 0Z\",\n fill: \"#A3B6EC\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrow);\nexport default __webpack_public_path__ + \"static/media/arrow.11e33ec9.svg\";\nexport { ForwardRef as ReactComponent };","import moment from 'moment';\r\n\r\nimport ICVFlight from '../models/ICVFlight';\r\nimport useClientAppContext from './useClientApp';\r\n\r\nexport default function useCVFlightTimezones() {\r\n const { airportsTimeZones } = useClientAppContext();\r\n\r\n const getLocalTimedLeg = (flight: ICVFlight, legIndex: number) => {\r\n const gmtLeg = flight.cvFlightLegs[legIndex];\r\n if (gmtLeg) {\r\n const timezones = {\r\n origin: airportsTimeZones.find((l) => l.code === gmtLeg.origin),\r\n destination: airportsTimeZones.find(\r\n (l) => l.code === gmtLeg.destination\r\n ),\r\n };\r\n\r\n const localTimedLeg = {\r\n departureTime: timezones.origin\r\n ? moment(gmtLeg.departureTime)\r\n .clone()\r\n .tz(timezones.origin.timeZone)\r\n .format('YYYY-MM-DDTHH:mm:ss')\r\n : moment(gmtLeg.departureTime).format('YYYY-MM-DDTHH:mm:ss'),\r\n arrivalTime: timezones.destination\r\n ? moment(gmtLeg.arrivalTime)\r\n .clone()\r\n .tz(timezones.destination.timeZone)\r\n .format('YYYY-MM-DDTHH:mm:ss')\r\n : moment(gmtLeg.arrivalTime).format('YYYY-MM-DDTHH:mm:ss'),\r\n };\r\n\r\n return localTimedLeg;\r\n }\r\n return undefined;\r\n };\r\n\r\n return { getLocalTimedLeg };\r\n}\r\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgFlightArrival(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 46,\n height: 39,\n viewBox: \"0 0 46 39\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.4641 28.6915L8.70917 23.1181C6.98031 22.8249 5.63808 22.05 5.95471 20.2804C6.01426 19.9894 6.07381 19.6984 6.2147 19.4544L3.88553 12.6865L5.73011 13.1549C6.57965 13.3742 7.30549 13.9017 7.72144 14.6842L9.83096 18.451L24.6946 20.4163L20.0472 7.04948L23.4688 7.88611C25.0224 8.29498 26.352 9.27958 27.1089 10.6927L33.1309 21.4908L39.5411 22.3174C41.2699 22.6106 42.4335 24.2585 42.1404 25.9874C42.0024 26.8839 41.5156 27.6332 40.8144 28.0961C40.154 28.5825 39.32 28.806 38.4641 28.6915Z\",\n fill: \"#3D64D8\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.9678 34.5781H3.09375V37.3491H42.9678V34.5781Z\",\n fill: \"#3D64D8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFlightArrival);\nexport default __webpack_public_path__ + \"static/media/flightArrival.1885e568.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgFlightDeparture(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 40,\n height: 29,\n viewBox: \"0 0 40 29\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.9485 10.7379L9.39319 20.7886C7.74938 21.3992 6.1995 21.3992 5.58895 19.7084C5.49501 19.4266 5.40108 19.1448 5.40108 18.863L0 14.1664L1.83167 13.6498C2.67706 13.415 3.56941 13.5089 4.32087 13.9786L8.03117 16.186L21.8861 10.4561L11.1779 1.20385L14.5594 0.217565C16.1093 -0.205128 17.7531 -0.0172639 19.1151 0.828123L29.7294 7.16852L35.6941 4.67933C37.3379 4.06877 39.1696 4.91416 39.7801 6.55797C40.1089 7.40335 40.0619 8.2957 39.6862 9.04716C39.3575 9.79861 38.7469 10.4092 37.9485 10.7379Z\",\n fill: \"#3D64D8\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.9688 25.5781H0.0947266V28.3491H39.9688V25.5781Z\",\n fill: \"#3D64D8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFlightDeparture);\nexport default __webpack_public_path__ + \"static/media/flightDeparture.fac97b6a.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport {ReactComponent as ArrowIcon} from '../../../../assets/icons/arrow.svg';\r\nimport {ReactComponent as ArrivalIcon} from '../../../../assets/icons/flightArrival.svg';\r\nimport {ReactComponent as DepartureIcon} from '../../../../assets/icons/flightDeparture.svg';\r\nimport useBreakpoint from '../../../../hooks/useBreakpoint';\r\nimport useClientAppContext from '../../../../hooks/useClientApp';\r\nimport styles from '../CVFlightPicker.module.scss';\r\n\r\nexport interface IFlightDepartureHeaderProps {\r\n fromCode: string;\r\n toCode: string;\r\n back?: boolean;\r\n}\r\n\r\nconst FlightDepartureHeader: React.FC = ({\r\n fromCode,\r\n toCode,\r\n back = false,\r\n}) => {\r\n const { airportsTimeZones, countries } = useClientAppContext();\r\n\r\n const fromName = countries.find(\r\n (c) =>\r\n c.countryCode ===\r\n airportsTimeZones.find((a) => a.code === fromCode)?.countryCode\r\n )?.countryName;\r\n const toName = countries.find(\r\n (c) =>\r\n c.countryCode ===\r\n airportsTimeZones.find((a) => a.code === toCode)?.countryCode\r\n )?.countryName;\r\n\r\n const breakpoint = useBreakpoint();\r\n\r\n return (\r\n <>\r\n {breakpoint.smdown ? (\r\n \r\n \r\n \r\n Departure\r\n \r\n \r\n {`${fromName} - ${fromCode}`}\r\n \r\n \r\n \r\n Arrival\r\n \r\n \r\n {`${toName} - ${toCode}`}\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n {back ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n {fromName}\r\n {fromCode}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {toName}\r\n {toCode}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default FlightDepartureHeader;\r\n","import React from 'react';\r\n\r\nimport {Grid} from '@material-ui/core';\r\n\r\nimport {ILegTimezone} from '../../../../../models/IAirportTimeZone';\r\nimport ICVFlight from '../../../../../models/ICVFlight';\r\nimport DateTime from '../../../../commons/DateTime/DateTime';\r\nimport styles from './CVFlightCard.module.scss';\r\n\r\nexport interface ICVFlightCardScheduleProps {\r\n flight: ICVFlight;\r\n gmtTimezone: boolean;\r\n flightTimezones: ILegTimezone[];\r\n}\r\n\r\nconst CVFlightCardSchedule: React.FC = ({\r\n flight,\r\n gmtTimezone,\r\n flightTimezones,\r\n}) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n DEPARTURE\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n ARRIVAL\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CVFlightCardSchedule;\r\n","import React from 'react';\r\n\r\nimport {Grid} from '@material-ui/core';\r\nimport {Skeleton} from '@material-ui/lab';\r\n\r\nimport {ILegTimezone} from '../../../../../models/IAirportTimeZone';\r\nimport {ICVFlightLeg} from '../../../../../models/ICVFlight';\r\nimport DateTime from '../../../../commons/DateTime';\r\nimport styles from './CVFlightCard.module.scss';\r\n\r\nexport interface ICVFlightLegDetailsProps {\r\n leg: ICVFlightLeg;\r\n gmtTimezone: boolean;\r\n timezone: ILegTimezone;\r\n seatsCount?: number;\r\n}\r\n\r\nconst CVFlightLegDetails: React.FC = ({\r\n leg,\r\n gmtTimezone,\r\n timezone,\r\n seatsCount,\r\n}) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {`${leg.origin}-${leg.destination}`}\r\n \r\n \r\n {seatsCount ?? ...}{' '}\r\n Seats available\r\n \r\n \r\n {leg.flightDesc}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CVFlightLegDetails;\r\n","import React, {useEffect, useState} from 'react';\r\n\r\nimport {Card, CardContent, Grid, Link} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box/Box';\r\nimport Button from '@material-ui/core/Button/Button';\r\nimport Typography from '@material-ui/core/Typography/Typography';\r\nimport {Skeleton} from '@material-ui/lab';\r\n\r\nimport {ReactComponent as WarningIcon} from '../../../../../assets/icons/warning.svg';\r\nimport useBreakpoint from '../../../../../hooks/useBreakpoint';\r\nimport useClientAppContext from '../../../../../hooks/useClientApp';\r\nimport {ILegTimezone} from '../../../../../models/IAirportTimeZone';\r\nimport ICVFlight from '../../../../../models/ICVFlight';\r\nimport IFlightSeats from '../../../../../models/Reservation/IFlightSeats';\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport styles from './CVFlightCard.module.scss';\r\nimport CVFlightCardSchedule from './CVFlightCardSchedule';\r\nimport CVFlightLegDetails from './CVFlightLegDetails';\r\n\r\nexport interface ICVFlightCardProps {\r\n flight: ICVFlight;\r\n onChecked: (flight: ICVFlight, checked: boolean) => void;\r\n checked?: boolean;\r\n gmtTimezone: boolean;\r\n disabled: boolean;\r\n seats?: IFlightSeats;\r\n}\r\n\r\nconst CVFlightCard: React.FC = ({\r\n flight,\r\n onChecked,\r\n checked,\r\n gmtTimezone,\r\n disabled,\r\n seats,\r\n}) => {\r\n const [expanded, setExpanded] = useState(false);\r\n const { airportsTimeZones } = useClientAppContext();\r\n const breakpoint = useBreakpoint();\r\n\r\n useEffect(() => {\r\n if (disabled && !!checked) {\r\n onChecked(flight, false);\r\n }\r\n }, [disabled]);\r\n\r\n const flightTimezones = flight.cvFlightLegs.map(\r\n (leg, index) => ({\r\n index: index,\r\n origin: airportsTimeZones.find((l) => l.code === leg.origin),\r\n destination: airportsTimeZones.find((l) => l.code === leg.destination),\r\n })\r\n );\r\n\r\n const flightRouting = () => {\r\n let legs = flight.routing.split(' ');\r\n if (legs.length <= 5) {\r\n return flight.routing;\r\n } else {\r\n return `${legs[0]} ${legs[1]} ... ${legs[legs.length - 2]} ${\r\n legs[legs.length - 1]\r\n }`;\r\n }\r\n };\r\n\r\n const selectorButton = (pb = 0) => (\r\n \r\n \r\n onChecked(flight, !checked)}\r\n disabled={disabled || flight.isBlocked}\r\n >\r\n {checked ? 'Cancel selection' : 'Select this flight'}\r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n {disabled ? (\r\n \r\n \r\n \r\n This flight is closed\r\n \r\n \r\n ) : (\r\n flight.isBlocked && (\r\n \r\n \r\n \r\n This flight is blocked: {flight.blockedReason}\r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n {flightRouting()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Flight number{' '}\r\n {flight.flightDesc}\r\n \r\n \r\n \r\n {!breakpoint.smdown && selectorButton()}\r\n \r\n \r\n \r\n {seats?.legs.reduce(\r\n (acc, current) => Math.min(acc, current.availableSeats),\r\n 8\r\n ) ?? ...}{' '}\r\n Seats available\r\n \r\n \r\n \r\n {breakpoint.smdown && !expanded && selectorButton(2)}\r\n {!expanded && !disabled && !flight.isBlocked && (\r\n \r\n setExpanded(true)}\r\n variant=\"body1\"\r\n component=\"button\"\r\n className={styles.viewButtons}\r\n >\r\n View more information\r\n \r\n \r\n )}\r\n \r\n {expanded && (\r\n <>\r\n \r\n \r\n {flight.cvFlightLegs.map((leg, index) => (\r\n \r\n l.leg.origin === leg.origin &&\r\n l.leg.destination === leg.destination\r\n )?.availableSeats\r\n }\r\n />\r\n ))}\r\n \r\n \r\n {breakpoint.smdown && selectorButton(3)}\r\n {!disabled && !flight.isBlocked && (\r\n \r\n setExpanded(false)}\r\n variant=\"body1\"\r\n component=\"button\"\r\n className={styles.viewButtons}\r\n >\r\n View less information\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CVFlightCard;\r\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgNoFlightFound(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 442,\n height: 278,\n viewBox: \"0 0 442 278\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M218.788 95.4061H85.5871C82.0716 95.4021 78.7012 94.0071 76.2153 91.5271C73.7294 89.0472 72.3311 85.6847 72.3271 82.1775V13.2286C72.3311 9.72135 73.7294 6.35892 76.2153 3.87894C78.7012 1.39896 82.0716 0.00396387 85.5871 0H218.788C222.304 0.00396387 225.674 1.39896 228.16 3.87894C230.646 6.35892 232.044 9.72135 232.048 13.2286V82.1775C232.044 85.6847 230.646 89.0472 228.16 91.5271C225.674 94.0071 222.304 95.4021 218.788 95.4061Z\",\n fill: \"#ECEFFB\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M394.184 95.4061H260.983C257.467 95.4021 254.097 94.0071 251.611 91.5271C249.125 89.0472 247.727 85.6847 247.723 82.1775V13.2286C247.727 9.72135 249.125 6.35892 251.611 3.87894C254.097 1.39896 257.467 0.00396387 260.983 0H394.184C397.699 0.00396387 401.07 1.39896 403.556 3.87894C406.041 6.35892 407.44 9.72135 407.444 13.2286V82.1775C407.44 85.6847 406.041 89.0472 403.556 91.5271C401.07 94.0071 397.699 95.4021 394.184 95.4061Z\",\n fill: \"#ECEFFB\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M232.048 210.053H72.3271V122.264C72.3311 118.757 73.7294 115.394 76.2153 112.914C78.7012 110.434 82.0716 109.039 85.5871 109.035H218.788C222.304 109.039 225.674 110.434 228.16 112.914C230.646 115.394 232.044 118.757 232.048 122.264V210.053Z\",\n fill: \"#ECEFFB\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M407.444 210.053H247.723V122.264C247.727 118.757 249.125 115.394 251.611 112.914C254.097 110.434 257.467 109.039 260.983 109.035H394.184C397.699 109.039 401.07 110.434 403.556 112.914C406.041 115.394 407.44 118.757 407.444 122.264V210.053Z\",\n fill: \"#ECEFFB\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M403.024 214.061H79.9617C77.9369 214.061 75.995 213.259 74.5632 211.83C73.1315 210.402 72.3271 208.465 72.3271 206.445C72.3271 204.425 73.1315 202.487 74.5632 201.059C75.995 199.631 77.9369 198.828 79.9617 198.828H403.024C405.048 198.828 406.99 199.631 408.422 201.059C409.854 202.487 410.658 204.425 410.658 206.445C410.658 208.465 409.854 210.402 408.422 211.83C406.99 213.259 405.048 214.061 403.024 214.061Z\",\n fill: \"#A3B6EC\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M227.429 206.044H95.6328V175.578C95.6328 158.142 102.576 141.42 114.934 129.091C127.292 116.762 144.054 109.836 161.531 109.836C179.008 109.836 195.77 116.762 208.128 129.091C220.486 141.42 227.429 158.142 227.429 175.578V206.044Z\",\n fill: \"#A3B6EC\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M384.942 206.044H253.146V175.578C253.146 158.142 260.088 141.42 272.447 129.091C284.805 116.762 301.566 109.836 319.044 109.836C336.521 109.836 353.282 116.762 365.641 129.091C377.999 141.42 384.942 158.142 384.942 175.578V206.044Z\",\n fill: \"#A3B6EC\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M313.017 276.195H323.464V208.85H313.017V276.195Z\",\n fill: \"#A3B6EC\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M283.282 275.83C283.282 276.956 299.113 276.265 318.642 276.265C338.171 276.265 354.002 276.956 354.002 275.83C354.002 274.704 338.171 265.773 318.642 265.773C299.113 265.773 283.282 274.704 283.282 275.83Z\",\n fill: \"#A3B6EC\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M155.504 276.195H165.951V208.85H155.504V276.195Z\",\n fill: \"#A3B6EC\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M125.77 275.83C125.77 276.956 141.601 276.265 161.13 276.265C180.658 276.265 196.49 276.956 196.49 275.83C196.49 274.704 180.658 265.773 161.13 265.773C141.601 265.773 125.77 274.704 125.77 275.83Z\",\n fill: \"#A3B6EC\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M207.682 267.018H217.535L222.222 229.105H207.681L207.682 267.018Z\",\n fill: \"#A0616A\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M236.536 276.141L205.571 276.142L205.571 264.207L224.572 264.206C226.143 264.206 227.699 264.514 229.15 265.114C230.602 265.714 231.921 266.593 233.032 267.701C234.143 268.809 235.024 270.125 235.625 271.573C236.227 273.021 236.536 274.573 236.536 276.141L236.536 276.141Z\",\n fill: \"#2F2E41\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M223.062 261.532L232.462 258.589L225.558 221.016L211.684 225.359L223.062 261.532Z\",\n fill: \"#A0616A\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M253.331 261.617L223.787 270.867L220.205 259.479L238.334 253.803C241.362 252.855 244.642 253.146 247.455 254.612C250.267 256.077 252.381 258.597 253.331 261.617Z\",\n fill: \"#2F2E41\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M216.471 244.076L198.447 196.878C194.404 197.825 160.494 205.311 149.137 193.247C145.245 189.112 144.486 183.122 146.881 175.442L153.509 167.133L153.715 167.144C156.221 167.275 215.141 170.57 219.18 188.3C222.585 203.248 228.805 231.117 230.63 239.303C230.815 240.151 230.688 241.037 230.273 241.8C229.858 242.563 229.182 243.151 228.368 243.459L221.12 246.17C220.716 246.322 220.288 246.399 219.857 246.399C219.123 246.399 218.407 246.177 217.802 245.762C217.197 245.348 216.733 244.76 216.471 244.076Z\",\n fill: \"#2F2E41\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.023 249.694L188 202.495C183.956 203.442 150.047 210.927 138.69 198.864C134.798 194.73 134.038 188.739 136.433 181.059L143.062 172.75L143.268 172.761C145.774 172.892 204.694 176.187 208.733 193.918C212.138 208.866 218.357 236.734 220.182 244.92C220.367 245.768 220.241 246.654 219.826 247.417C219.411 248.18 218.735 248.769 217.921 249.076L210.673 251.787C210.269 251.939 209.841 252.017 209.409 252.017C208.676 252.016 207.959 251.794 207.355 251.38C206.75 250.965 206.286 250.377 206.023 249.694Z\",\n fill: \"#2F2E41\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M189.811 158.12C187.14 158.119 184.515 157.426 182.193 156.109C179.871 154.792 177.931 152.896 176.564 150.606L170.84 140.933L184.445 133.514L190.222 141.416L229.418 137.296C229.609 136.952 229.823 136.622 230.06 136.307C230.812 135.32 231.764 134.501 232.855 133.905C233.945 133.31 235.148 132.949 236.387 132.848C237.632 132.742 238.885 132.902 240.062 133.319C241.239 133.735 242.313 134.398 243.212 135.263C244.654 136.642 245.586 138.467 245.857 140.441C246.128 142.415 245.723 144.422 244.707 146.138C244.071 147.206 243.216 148.129 242.198 148.845C241.18 149.561 240.022 150.055 238.799 150.293C237.577 150.532 236.318 150.51 235.104 150.229C233.891 149.948 232.75 149.415 231.758 148.664C231.528 148.488 231.307 148.301 231.096 148.102L193.555 157.652C192.332 157.963 191.074 158.12 189.811 158.12Z\",\n fill: \"#A0616A\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136.178 183.551C135.636 183.161 135.212 182.629 134.954 182.014C134.696 181.399 134.614 180.724 134.717 180.065C136.953 165.359 134.38 144.292 131.828 129.209C131.305 126.149 131.509 123.009 132.421 120.041C133.334 117.073 134.931 114.359 137.084 112.118C139.237 109.876 141.886 108.169 144.819 107.133C147.752 106.096 150.888 105.76 153.975 106.15C156.661 106.504 159.322 107.027 161.942 107.716C166.293 108.81 170.142 111.347 172.856 114.912C175.57 118.478 176.987 122.858 176.875 127.333C176.493 141.888 179.456 160.048 180.747 167.18C180.835 167.67 180.821 168.173 180.706 168.657C180.591 169.141 180.377 169.597 180.077 169.995C179.783 170.389 179.41 170.717 178.982 170.959C178.554 171.2 178.079 171.35 177.589 171.398C163.278 172.855 147.845 179.817 139.919 183.838C139.41 184.1 138.846 184.238 138.272 184.24C137.519 184.237 136.786 183.996 136.178 183.551Z\",\n fill: \"#3D64D8\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M174.81 145.623C174.367 145.449 173.964 145.19 173.623 144.86C173.281 144.53 173.009 144.136 172.822 143.701L164.841 125.307C164.357 124.196 164.098 123 164.078 121.789C164.058 120.578 164.278 119.374 164.724 118.248C165.171 117.121 165.836 116.094 166.68 115.223C167.525 114.353 168.533 113.658 169.648 113.177C170.762 112.695 171.961 112.438 173.175 112.419C174.389 112.4 175.595 112.62 176.724 113.067C177.853 113.513 178.882 114.177 179.754 115.02C180.625 115.864 181.322 116.87 181.803 117.983L189.784 136.376C190.164 137.254 190.179 138.247 189.826 139.136C189.474 140.026 188.782 140.739 187.902 141.12L177.577 145.579C177.142 145.768 176.673 145.87 176.198 145.877C175.723 145.885 175.251 145.798 174.81 145.623H174.81Z\",\n fill: \"#3D64D8\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M152.507 99.8905C163.408 99.8905 172.245 91.0744 172.245 80.1992C172.245 69.3239 163.408 60.5078 152.507 60.5078C141.606 60.5078 132.769 69.3239 132.769 80.1992C132.769 91.0744 141.606 99.8905 152.507 99.8905Z\",\n fill: \"#A0616A\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.579 97.6973C140.299 98.0193 139.958 98.2821 139.574 98.4702C139.191 98.6582 138.774 98.7677 138.348 98.7921C137.921 98.8166 137.495 98.7555 137.092 98.6124C136.69 98.4694 136.321 98.2474 136.006 97.9594C131.605 94.4051 128.114 89.8574 125.822 84.6918C123.256 78.5898 122.88 71.1433 125.8 65.4237C128.269 60.5886 132.701 57.5109 137.125 54.9954C138.821 53.9292 140.68 53.1455 142.628 52.6749C143.612 52.4521 144.632 52.4373 145.623 52.6316C146.613 52.8258 147.551 53.2248 148.377 53.8028C149.254 54.4679 149.933 55.3588 150.34 56.3796C150.748 57.4005 150.869 58.5128 150.69 59.5971C152.714 56.9374 155.442 54.8946 158.568 53.6991C160.485 52.8758 162.628 52.7326 164.638 53.2935C167.479 54.2396 169.582 57.1019 170.753 60.1772C171.699 62.5316 172.046 65.0834 171.762 67.6042C171.638 68.8079 171.27 69.9739 170.68 71.0312C170.09 72.0886 169.291 73.0151 168.331 73.7547C166.013 75.35 163.028 75.188 160.332 74.4819C157.637 73.7758 155.021 72.5786 152.279 72.2449C149.536 71.9111 146.497 72.6348 144.863 75.0749C143.713 76.7933 143.441 79.057 143.207 81.2148L141.986 92.438C141.899 94.0437 141.553 95.6248 140.959 97.1197C140.858 97.3282 140.731 97.5225 140.579 97.6973Z\",\n fill: \"#2F2E41\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M182.772 178.679C181.599 178.269 180.524 177.618 179.62 176.768C178.715 175.917 178 174.886 177.521 173.742C177.411 173.475 177.314 173.202 177.233 172.925L135.185 160.985C133.378 160.464 131.787 159.376 130.649 157.882C129.511 156.389 128.886 154.569 128.867 152.692L128.765 136.496L144.263 136.91L145.274 146.638L181.229 162.743C181.567 162.541 181.919 162.363 182.283 162.21H182.283C183.607 161.656 185.047 161.432 186.478 161.557C187.908 161.682 189.287 162.153 190.494 162.929C191.702 163.704 192.702 164.762 193.408 166.009C194.115 167.257 194.506 168.657 194.548 170.089C194.591 171.521 194.283 172.942 193.652 174.229C193.021 175.516 192.086 176.63 190.926 177.476C189.767 178.322 188.419 178.873 186.998 179.082C185.578 179.292 184.127 179.153 182.772 178.679V178.679Z\",\n fill: \"#A0616A\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.006 143.611C128.69 143.256 128.448 142.843 128.294 142.395C128.139 141.946 128.076 141.472 128.106 140.999L129.339 120.993C129.411 119.784 129.722 118.6 130.254 117.51C130.786 116.42 131.527 115.445 132.437 114.642C133.346 113.838 134.406 113.221 135.555 112.827C136.703 112.432 137.919 112.267 139.131 112.342C140.344 112.416 141.53 112.728 142.622 113.26C143.713 113.793 144.689 114.534 145.493 115.443C146.297 116.352 146.913 117.41 147.307 118.557C147.701 119.703 147.864 120.916 147.787 122.126L146.555 142.131C146.494 143.086 146.057 143.978 145.339 144.611C144.621 145.245 143.68 145.568 142.723 145.511L131.494 144.822C131.019 144.794 130.555 144.673 130.128 144.465C129.701 144.257 129.32 143.967 129.006 143.611Z\",\n fill: \"#3D64D8\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M238.735 153.533H227.375C227.01 153.534 226.658 153.399 226.388 153.155C226.118 152.911 225.95 152.575 225.915 152.213L223.642 128.961H242.468L240.194 152.212C240.16 152.574 239.991 152.911 239.721 153.155C239.451 153.399 239.099 153.534 238.735 153.533Z\",\n fill: \"#B8349A\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M242.437 131.885H223.671C223.282 131.884 222.91 131.73 222.635 131.456C222.36 131.182 222.206 130.81 222.205 130.422V126.912C222.206 126.524 222.36 126.152 222.635 125.878C222.91 125.604 223.282 125.45 223.671 125.449H242.437C242.826 125.45 243.198 125.604 243.473 125.878C243.748 126.152 243.903 126.524 243.903 126.912V130.422C243.903 130.81 243.748 131.182 243.473 131.456C243.198 131.73 242.826 131.884 242.437 131.885Z\",\n fill: \"#3F3D56\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.9281 132.684H45.0138C44.3386 132.684 43.691 132.951 43.2135 133.428C42.736 133.904 42.4678 134.55 42.4678 135.224V183.484H46.2868V139.034C46.2868 138.36 46.5551 137.714 47.0325 137.238C47.51 136.761 48.1576 136.494 48.8329 136.494H65.3821C66.0573 136.494 66.7049 136.761 67.1824 137.238C67.6599 137.714 67.9281 138.36 67.9281 139.034V183.484H71.7472V135.224C71.7472 134.55 71.4789 133.904 71.0015 133.428C70.524 132.951 69.8764 132.684 69.2011 132.684H67.9281Z\",\n fill: \"#3F3D56\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.2049 276.198H28.4652C25.5963 276.194 22.8459 275.056 20.8174 273.032C18.7888 271.009 17.6477 268.265 17.6445 265.403V185.393C17.6477 182.531 18.7888 179.787 20.8174 177.763C22.8459 175.739 25.5963 174.601 28.4652 174.598H83.2049C86.0737 174.601 88.8241 175.739 90.8527 177.763C92.8812 179.787 94.0223 182.531 94.0255 185.393V265.403C94.0223 268.265 92.8812 271.009 90.8527 273.032C88.8241 275.056 86.0737 276.194 83.2049 276.198Z\",\n fill: \"#3F3D56\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.6416 241.177C14.9208 241.177 12.9131 233.489 12.9131 226.254C12.9131 219.02 14.9208 211.332 18.6416 211.332C22.3625 211.332 24.3702 219.02 24.3702 226.254C24.3702 233.489 22.3625 241.177 18.6416 241.177ZM18.6416 212.602C16.5341 212.602 14.1861 218.209 14.1861 226.254C14.1861 234.3 16.5341 239.907 18.6416 239.907C20.7491 239.907 23.0972 234.3 23.0972 226.255C23.0972 218.209 20.7491 212.602 18.6416 212.602Z\",\n fill: \"#3F3D56\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M389.547 33.2351C388.799 32.5908 387.931 32.0988 386.993 31.7868C384.896 31.1391 382.693 30.9002 380.504 31.083C378.899 31.1733 377.304 31.395 375.735 31.746L302.471 52.4239C301.087 52.8117 299.727 53.2634 298.39 53.7792C293.667 51.9353 280.315 46.6016 278.852 44.6879L273.109 46.3631L282.683 60.6194C282.441 60.725 282.236 60.901 282.096 61.1244C281.956 61.3479 281.886 61.6083 281.897 61.8717C281.908 62.1351 281.998 62.3891 282.156 62.6005C282.314 62.812 282.532 62.9709 282.782 63.0566C293.819 66.8373 310.488 61.8176 310.488 61.8176L374.505 43.5711C374.505 43.5711 393.827 37.0508 389.547 33.2351Z\",\n fill: \"white\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M353.245 44.668L311.637 55.8762L309.179 60.7812L353.245 44.668Z\",\n fill: \"#F2F2F2\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M441.196 277.002H0.803636C0.590499 277.002 0.386102 276.917 0.235391 276.767C0.0846802 276.617 0 276.413 0 276.2C0 275.988 0.0846802 275.784 0.235391 275.633C0.386102 275.483 0.590499 275.398 0.803636 275.398H441.196C441.41 275.398 441.614 275.483 441.765 275.633C441.915 275.784 442 275.988 442 276.2C442 276.413 441.915 276.617 441.765 276.767C441.614 276.917 441.41 277.002 441.196 277.002Z\",\n fill: \"#A3B6EC\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120.947 21.2461C119.295 21.2457 117.659 21.5856 116.145 22.2447C114.63 22.9038 113.267 23.8678 112.143 25.0764C110.803 24.5447 109.353 24.3487 107.919 24.5054C106.485 24.6622 105.112 25.1669 103.919 25.9755C102.726 26.7842 101.75 27.872 101.076 29.144C100.402 30.416 100.051 31.8333 100.053 33.2721H133.002C133.002 31.6928 132.69 30.129 132.084 28.6699C131.478 27.2109 130.591 25.8851 129.471 24.7684C128.352 23.6517 127.023 22.7659 125.56 22.1615C124.098 21.5572 122.53 21.2461 120.947 21.2461Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNoFlightFound);\nexport default __webpack_public_path__ + \"static/media/noFlightFound.6929f31b.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgNoFlightFoundForGivenDate(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 311,\n height: 245,\n viewBox: \"0 0 311 245\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M311 0H13.2539V196.356H311V0Z\",\n fill: \"url(#paint0_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M307.65 23.1992H15.8584V190.418H307.65V23.1992Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M307.65 4.08203H15.8584V23.198H307.65V4.08203Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M304.301 35.2617H19.9531V181.137H304.301V35.2617Z\",\n fill: \"url(#paint1_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M57.7291 37.8594H23.4883V65.1414H57.7291V37.8594Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.3424 37.8594H58.1016V65.1414H92.3424V37.8594Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M126.956 37.8594H92.7148V65.1414H126.956V37.8594Z\",\n fill: \"#3D64D8\",\n fillOpacity: 0.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M161.568 37.8594H127.327V65.1414H161.568V37.8594Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M196.181 37.8594H161.94V65.1414H196.181V37.8594Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M230.795 37.8594H196.554V65.1414H230.795V37.8594Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M265.408 37.8594H231.167V65.1414H265.408V37.8594Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M300.02 37.8594H265.779V65.1414H300.02V37.8594Z\",\n fill: \"#3D64D8\",\n fillOpacity: 0.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M57.7291 65.6992H23.4883V92.9812H57.7291V65.6992Z\",\n fill: \"#3D64D8\",\n fillOpacity: 0.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M92.3424 65.6992H58.1016V92.9812H92.3424V65.6992Z\",\n fill: \"#3D64D8\",\n fillOpacity: 0.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M126.956 65.6992H92.7148V92.9812H126.956V65.6992Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M161.568 65.6992H127.327V92.9812H161.568V65.6992Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M196.181 65.6992H161.94V92.9812H196.181V65.6992Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M230.795 65.6992H196.554V92.9812H230.795V65.6992Z\",\n fill: \"#3D64D8\",\n fillOpacity: 0.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M265.408 65.6992H231.167V92.9812H265.408V65.6992Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M300.02 65.6992H265.779V92.9812H300.02V65.6992Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.7291 93.168H23.4883V120.45H57.7291V93.168Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.3424 93.168H58.1016V120.45H92.3424V93.168Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M126.956 93.168H92.7148V120.45H126.956V93.168Z\",\n fill: \"#3D64D8\",\n fillOpacity: 0.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M161.568 93.168H127.327V120.45H161.568V93.168Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M196.181 93.168H161.94V120.45H196.181V93.168Z\",\n fill: \"#3D64D8\",\n fillOpacity: 0.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M230.795 93.168H196.554V120.45H230.795V93.168Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M265.408 93.168H231.167V120.45H265.408V93.168Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M300.02 93.168H265.779V120.45H300.02V93.168Z\",\n fill: \"#3D64D8\",\n fillOpacity: 0.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.7291 120.633H23.4883V147.915H57.7291V120.633Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M92.3424 120.633H58.1016V147.915H92.3424V120.633Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M126.956 120.633H92.7148V147.915H126.956V120.633Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M161.568 120.633H127.327V147.915H161.568V120.633Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M196.181 120.633H161.94V147.915H196.181V120.633Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M230.795 120.633H196.554V147.915H230.795V120.633Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M265.408 120.633H231.167V147.915H265.408V120.633Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M300.02 120.633H265.779V147.915H300.02V120.633Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M57.7291 148.473H23.4883V175.755H57.7291V148.473Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M92.3424 148.473H58.1016V175.755H92.3424V148.473Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M126.956 148.473H92.7148V175.755H126.956V148.473Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M161.568 148.473H127.327V175.755H161.568V148.473Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M196.181 148.473H161.94V175.755H196.181V148.473Z\",\n fill: \"#3D64D8\",\n fillOpacity: 0.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M230.795 148.473H196.554V175.755H230.795V148.473Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M265.408 148.473H231.167V175.755H265.408V148.473Z\",\n fill: \"#3D64D8\",\n fillOpacity: 0.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M300.02 148.473H265.779V175.755H300.02V148.473Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.7014 95.7656H26.2803V106.159H36.7014V95.7656Z\",\n fill: \"#B8349A\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.168 40.832H129.747V51.2252H140.168V40.832Z\",\n fill: \"#B8349A\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M139.051 95.7656H128.63V106.159H139.051V95.7656Z\",\n fill: \"#B8349A\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M174.408 122.121H163.987V132.514H174.408V122.121Z\",\n fill: \"#B8349A\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M243.263 95.7656H232.842V106.159H243.263V95.7656Z\",\n fill: \"#B8349A\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.848 245.002C99.1103 245.002 127.696 216.493 127.696 181.325C127.696 146.157 99.1103 117.648 63.848 117.648C28.5857 117.648 0 146.157 0 181.325C0 216.493 28.5857 245.002 63.848 245.002Z\",\n fill: \"url(#paint2_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.8485 243.283C98.159 243.283 125.973 215.544 125.973 181.325C125.973 147.107 98.159 119.367 63.8485 119.367C29.5379 119.367 1.72363 147.107 1.72363 181.325C1.72363 215.544 29.5379 243.283 63.8485 243.283Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.8485 231.664C91.7254 231.664 114.324 209.126 114.324 181.324C114.324 153.522 91.7254 130.984 63.8485 130.984C35.9717 130.984 13.373 153.522 13.373 181.324C13.373 209.126 35.9717 231.664 63.8485 231.664Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.8475 184.333C65.5145 184.333 66.8659 182.985 66.8659 181.323C66.8659 179.66 65.5145 178.312 63.8475 178.312C62.1805 178.312 60.8291 179.66 60.8291 181.323C60.8291 182.985 62.1805 184.333 63.8475 184.333Z\",\n fill: \"url(#paint3_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.9869 181.693L63.126 181.07L79.8742 141.977L81.7351 142.849L64.9869 181.693Z\",\n fill: \"url(#paint4_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M80.0729 142.34L63.6797 181.062L64.8729 181.565L81.2661 142.842L80.0729 142.34Z\",\n fill: \"#2196F3\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.2914 202.11L63.498 182.067L64.9868 181.324L76.1523 200.997L74.2914 202.11Z\",\n fill: \"url(#paint5_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.8431 181.457L63.7051 182.074L74.49 201.868L75.628 201.251L64.8431 181.457Z\",\n fill: \"#2196F3\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.873 183.908C111.589 183.908 112.169 183.329 112.169 182.616C112.169 181.903 111.589 181.324 110.873 181.324C110.158 181.324 109.578 181.903 109.578 182.616C109.578 183.329 110.158 183.908 110.873 183.908Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.7989 158.971C25.2634 158.168 24.9877 157.142 24.1831 156.679C23.3785 156.216 22.3496 156.491 21.8851 157.293C21.4205 158.096 21.6962 159.122 22.5008 159.585C23.3055 160.048 24.3343 159.773 24.7989 158.971Z\",\n fill: \"url(#paint6_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.6138 207.34C25.4184 206.877 25.6941 205.851 25.2295 205.049C24.765 204.246 23.7361 203.971 22.9315 204.435C22.1269 204.898 21.8512 205.924 22.3157 206.726C22.7803 207.529 23.8091 207.804 24.6138 207.34Z\",\n fill: \"url(#paint7_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.8268 184.293C17.7559 184.293 18.5091 183.542 18.5091 182.615C18.5091 181.689 17.7559 180.938 16.8268 180.938C15.8977 180.938 15.1445 181.689 15.1445 182.615C15.1445 183.542 15.8977 184.293 16.8268 184.293Z\",\n fill: \"url(#paint8_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.3501 142.376C42.1547 141.912 42.4304 140.886 41.9659 140.084C41.5013 139.281 40.4724 139.006 39.6678 139.47C38.8632 139.933 38.5875 140.959 39.0521 141.762C39.5166 142.564 40.5455 142.839 41.3501 142.376Z\",\n fill: \"url(#paint9_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.647 136.352C65.4516 135.889 65.7273 134.863 65.2627 134.06C64.7982 133.258 63.7693 132.983 62.9647 133.446C62.1601 133.91 61.8844 134.936 62.3489 135.738C62.8135 136.541 63.8424 136.816 64.647 136.352Z\",\n fill: \"url(#paint10_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.9429 142.376C88.7475 141.912 89.0232 140.886 88.5586 140.084C88.0941 139.281 87.0652 139.006 86.2606 139.47C85.456 139.933 85.1803 140.959 85.6448 141.762C86.1094 142.564 87.1383 142.839 87.9429 142.376Z\",\n fill: \"url(#paint11_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.199 159.587C106.003 159.123 106.279 158.097 105.814 157.295C105.35 156.492 104.321 156.217 103.516 156.681C102.712 157.144 102.436 158.17 102.901 158.973C103.365 159.775 104.394 160.05 105.199 159.587Z\",\n fill: \"url(#paint12_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M104.77 207.344C105.575 206.881 105.85 205.855 105.386 205.053C104.921 204.25 103.892 203.975 103.088 204.438C102.283 204.902 102.007 205.928 102.472 206.73C102.937 207.533 103.965 207.808 104.77 207.344Z\",\n fill: \"url(#paint13_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.0806 224.122C87.8852 223.658 88.1609 222.632 87.6963 221.83C87.2318 221.027 86.2029 220.753 85.3983 221.216C84.5937 221.679 84.318 222.705 84.7825 223.508C85.2471 224.31 86.2759 224.585 87.0806 224.122Z\",\n fill: \"url(#paint14_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.646 229.29C65.4506 228.826 65.7263 227.8 65.2618 226.998C64.7972 226.195 63.7683 225.92 62.9637 226.384C62.1591 226.847 61.8834 227.873 62.348 228.676C62.8125 229.478 63.8414 229.753 64.646 229.29Z\",\n fill: \"url(#paint15_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.2144 224.126C43.019 223.662 43.2946 222.636 42.8301 221.834C42.3656 221.031 41.3367 220.756 40.5321 221.22C39.7275 221.683 39.4518 222.709 39.9163 223.512C40.3809 224.314 41.4097 224.589 42.2144 224.126Z\",\n fill: \"url(#paint16_linear)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.8479 136.146C64.5632 136.146 65.1431 135.568 65.1431 134.854C65.1431 134.141 64.5632 133.562 63.8479 133.562C63.1326 133.562 62.5527 134.141 62.5527 134.854C62.5527 135.568 63.1326 136.146 63.8479 136.146Z\",\n fill: \"#69F0AE\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.2659 141.724C88.6236 141.106 88.4113 140.316 87.7919 139.959C87.1724 139.603 86.3803 139.814 86.0226 140.432C85.6649 141.05 85.8772 141.84 86.4967 142.197C87.1162 142.553 87.9083 142.342 88.2659 141.724Z\",\n fill: \"#69F0AE\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M104.845 159.209C105.464 158.852 105.676 158.062 105.319 157.444C104.961 156.826 104.169 156.615 103.549 156.971C102.93 157.328 102.718 158.118 103.075 158.736C103.433 159.354 104.225 159.565 104.845 159.209Z\",\n fill: \"#69F0AE\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.049 206.536C105.407 205.919 105.195 205.129 104.575 204.772C103.956 204.415 103.163 204.627 102.806 205.245C102.448 205.862 102.66 206.652 103.28 207.009C103.899 207.366 104.691 207.154 105.049 206.536Z\",\n fill: \"#69F0AE\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.8866 223.701C87.5061 223.344 87.7183 222.554 87.3607 221.936C87.003 221.319 86.2109 221.107 85.5914 221.464C84.9719 221.82 84.7597 222.61 85.1173 223.228C85.475 223.846 86.2671 224.057 86.8866 223.701Z\",\n fill: \"#69F0AE\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.1981 142.201C41.8176 141.844 42.0299 141.054 41.6722 140.436C41.3145 139.819 40.5224 139.607 39.9029 139.964C39.2834 140.32 39.0712 141.11 39.4289 141.728C39.7865 142.346 40.5786 142.558 41.1981 142.201Z\",\n fill: \"#69F0AE\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.6214 158.736C24.9791 158.118 24.7668 157.328 24.1473 156.971C23.5278 156.614 22.7357 156.826 22.3781 157.444C22.0204 158.062 22.2327 158.852 22.8521 159.208C23.4716 159.565 24.2637 159.353 24.6214 158.736Z\",\n fill: \"#69F0AE\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M111.673 184.11C112.478 183.647 112.754 182.621 112.289 181.818C111.825 181.016 110.796 180.741 109.991 181.204C109.186 181.667 108.911 182.693 109.375 183.496C109.84 184.298 110.869 184.573 111.673 184.11Z\",\n fill: \"#69F0AE\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.4198 207.006C25.0393 206.649 25.2515 205.859 24.8939 205.241C24.5362 204.623 23.7441 204.412 23.1246 204.768C22.5051 205.125 22.2929 205.915 22.6505 206.533C23.0082 207.151 23.8003 207.362 24.4198 207.006Z\",\n fill: \"#69F0AE\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.5784 223.232C42.9361 222.614 42.7239 221.824 42.1044 221.467C41.4849 221.11 40.6928 221.322 40.3351 221.94C39.9774 222.558 40.1897 223.348 40.8092 223.704C41.4287 224.061 42.2208 223.849 42.5784 223.232Z\",\n fill: \"#69F0AE\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.8264 183.908C17.5418 183.908 18.1216 183.329 18.1216 182.616C18.1216 181.903 17.5418 181.324 16.8264 181.324C16.1111 181.324 15.5312 181.903 15.5312 182.616C15.5312 183.329 16.1111 183.908 16.8264 183.908Z\",\n fill: \"#69F0AE\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.8479 229.079C64.5632 229.079 65.1431 228.501 65.1431 227.788C65.1431 227.074 64.5632 226.496 63.8479 226.496C63.1326 226.496 62.5527 227.074 62.5527 227.788C62.5527 228.501 63.1326 229.079 63.8479 229.079Z\",\n fill: \"#69F0AE\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M15.963 186.057C15.9664 174.964 19.643 164.183 26.4216 155.388C33.2003 146.594 42.7016 140.278 53.4494 137.422C64.1972 134.566 75.5899 135.33 85.8575 139.596C96.1251 143.861 104.693 151.389 110.23 161.01C107.513 154.715 103.536 149.041 98.543 144.333C93.5501 139.625 87.6461 135.983 81.1926 133.63C74.739 131.278 67.8719 130.264 61.0117 130.651C54.1515 131.037 47.4427 132.817 41.2961 135.88C35.1496 138.943 29.6947 143.225 25.2656 148.464C20.8364 153.703 17.5263 159.789 15.5379 166.348C13.5495 172.908 12.9247 179.803 13.7018 186.612C14.4789 193.42 16.6414 199.999 20.057 205.945C17.3476 199.663 15.9544 192.895 15.963 186.057Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.8481 183.478C65.0403 183.478 66.0068 182.514 66.0068 181.325C66.0068 180.136 65.0403 179.172 63.8481 179.172C62.6559 179.172 61.6895 180.136 61.6895 181.325C61.6895 182.514 62.6559 183.478 63.8481 183.478Z\",\n fill: \"#B8349A\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear\",\n x1: 162.127,\n y1: 196.356,\n x2: 162.127,\n y2: 0,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear\",\n x1: 123885,\n y1: 71222.4,\n x2: 123885,\n y2: 13893.4,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear\",\n x1: 21906.3,\n y1: 84177.1,\n x2: 21906.3,\n y2: 40482.3,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint3_linear\",\n x1: 1096.44,\n y1: 3168.19,\n x2: 1096.44,\n y2: 3070.48,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint4_linear\",\n x1: 3684.65,\n y1: 19583.3,\n x2: 3684.65,\n y2: 15333.6,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint5_linear\",\n x1: 2437.56,\n y1: 11499.4,\n x2: 2437.56,\n y2: 10335.4,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint6_linear\",\n x1: -1363.97,\n y1: 2815.85,\n x2: -1337.7,\n y2: 2800.64,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint7_linear\",\n x1: 850,\n y1: 2483.14,\n x2: 850,\n y2: 2452.84,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint8_linear\",\n x1: -263.302,\n y1: 2871.9,\n x2: -248.156,\n y2: 2845.6,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint9_linear\",\n x1: -2298.38,\n y1: 2168.07,\n x2: -2267.97,\n y2: 2168.07,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint10_linear\",\n x1: -2081.76,\n y1: 2136.87,\n x2: -2051.35,\n y2: 2136.87,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint11_linear\",\n x1: -1877.18,\n y1: 2214.55,\n x2: -1846.8,\n y2: 2214.55,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint12_linear\",\n x1: -1738.44,\n y1: 2387.34,\n x2: -1708.03,\n y2: 2387.34,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint13_linear\",\n x1: -1790.25,\n y1: 2818.63,\n x2: -1759.83,\n y2: 2818.63,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint14_linear\",\n x1: -1966.94,\n y1: 2952.71,\n x2: -1936.56,\n y2: 2952.71,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint15_linear\",\n x1: -2174.95,\n y1: 2976.97,\n x2: -2144.53,\n y2: 2976.97,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint16_linear\",\n x1: -2372.54,\n y1: 2907.94,\n x2: -2342.16,\n y2: 2907.94,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#808080\",\n stopOpacity: 0.25\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#808080\",\n stopOpacity: 0.12\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#808080\",\n stopOpacity: 0.1\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 311,\n height: 245,\n fill: \"white\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNoFlightFoundForGivenDate);\nexport default __webpack_public_path__ + \"static/media/noFlightFoundForGivenDate.0663a5fb.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nimport {Box, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as NoFlightIcon} from '../../../../assets/icons/noFlightFound.svg';\r\nimport {ReactComponent as NoFlightFoundForGivenDateIcon} from '../../../../assets/icons/noFlightFoundForGivenDate.svg';\r\nimport styles from '../CVFlightPicker.module.scss';\r\n\r\ninterface CVFlightNoFlightFoundProps {\r\n otherFlightsAvailable?: boolean;\r\n}\r\n\r\nconst CVFlightNoFlightFound: React.FC = ({\r\n otherFlightsAvailable = false,\r\n}) => {\r\n return (\r\n <>\r\n \r\n {otherFlightsAvailable ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {otherFlightsAvailable\r\n ? 'We have no results for this date'\r\n : 'Sorry ! No result found'}\r\n \r\n \r\n \r\n {otherFlightsAvailable\r\n ? 'But, you can select dates around your first choice by clicking in the calendar above'\r\n : 'Please, try a new search with another date'}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CVFlightNoFlightFound;\r\n","import moment from 'moment';\r\nimport React, {useState} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\n\r\nimport {useCVFlightsContext} from '../../../../../context/CVFlightsContext/CVFlightsContext';\r\nimport ICVFlight from '../../../../../models/ICVFlight';\r\nimport CVFlightNoFlightFound from '../CVFlightNoFlightFound';\r\nimport CVFlightCard from './CVFlightCard';\r\n\r\nexport interface ICVFlightCardListProps {\r\n flights: ICVFlight[];\r\n gmt: boolean;\r\n onItemChecked: (flight: ICVFlight, checked: boolean) => void;\r\n lowDateThreshold?: Date;\r\n}\r\n\r\nconst CVFlightCardList: React.FC = ({\r\n flights,\r\n gmt,\r\n onItemChecked,\r\n lowDateThreshold,\r\n}) => {\r\n const [checkedItem, setCheckedItem] = useState(\r\n undefined\r\n );\r\n\r\n const { seats } = useCVFlightsContext();\r\n\r\n const handleCheckedFlights = (flight: ICVFlight, checked: boolean) => {\r\n checked ? setCheckedItem(flight) : setCheckedItem(undefined);\r\n onItemChecked(flight, checked);\r\n };\r\n\r\n return (\r\n \r\n {flights.map((flight, index) => (\r\n s.flightNumber === flight.flightNumber)}\r\n />\r\n ))}\r\n {flights.length === 0 && }\r\n \r\n );\r\n};\r\n\r\nexport default CVFlightCardList;\r\n","import moment from 'moment';\r\nimport React, {useState} from 'react';\r\n\r\nimport {Box, Grid, Typography} from '@material-ui/core';\r\nimport Paper from '@material-ui/core/Paper/Paper';\r\n\r\nimport OnOffSwitch from '../../../components/commons/Switch';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport ICVFlight from '../../../models/ICVFlight';\r\nimport {CVFlightCardList, CVFlightCarousel, CVFlightNoFlightFound, FlightDepartureHeader,} from './contents';\r\nimport styles from './CVFlightPicker.module.scss';\r\n\r\nexport interface ICVFlightOneWayPickerProps {\r\n id: string;\r\n flights: ICVFlight[];\r\n filteredFlights: ICVFlight[];\r\n from?: string;\r\n to?: string;\r\n setCheckedFlight: (flight: ICVFlight | undefined) => void;\r\n ensureCheckedFlight: (minDate?: Date) => void;\r\n onDateSelected: (date: Date) => void;\r\n defaultDateSelected: Date;\r\n fromDateThreshold?: Date;\r\n back?: boolean;\r\n}\r\n\r\nconst CVFlightOneWayPicker: React.FC = ({\r\n id,\r\n flights,\r\n filteredFlights,\r\n from,\r\n to,\r\n onDateSelected,\r\n setCheckedFlight,\r\n ensureCheckedFlight,\r\n defaultDateSelected,\r\n fromDateThreshold,\r\n back = false,\r\n}) => {\r\n const [gmt, setGmt] = useState(false);\r\n const [minDate, setMinDate] = useState(undefined);\r\n const [selectedDateMonth, setSelectedDateMonth] = useState('');\r\n const breakpoint = useBreakpoint();\r\n\r\n const handleSelectDateChange = (date: Date) => {\r\n let month = moment(date).format('MMM YYYY');\r\n if (selectedDateMonth !== month) {\r\n setSelectedDateMonth(month.toLocaleUpperCase());\r\n }\r\n onDateSelected(date);\r\n };\r\n\r\n const handleCheckedFlights = (flight: ICVFlight, checked: boolean) => {\r\n checked ? setCheckedFlight(flight) : setCheckedFlight(undefined);\r\n };\r\n\r\n const handleCarouselChanged = (minDate?: Date) => {\r\n ensureCheckedFlight(minDate);\r\n setMinDate(minDate);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {from && to && (\r\n \r\n )}\r\n \r\n \r\n {flights && flights.length > 0 ? (\r\n <>\r\n \r\n
    \r\n \r\n {selectedDateMonth}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n setGmt(value)}\r\n defaultValue={false}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default CVFlightOneWayPicker;\r\n","import React, {useMemo} from 'react';\r\n\r\nimport {Box} from '@material-ui/core';\r\nimport {Skeleton} from '@material-ui/lab';\r\n\r\nimport {useCVFlightsContext} from '../../../context/CVFlightsContext/CVFlightsContext';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport CVFlightOneWayPicker from './CVFlightOneWayPicker';\r\n\r\nexport interface ICvFlightOutwardPickerProps {\r\n onDatePicked: (date: Date) => void;\r\n}\r\n\r\nconst CvFlightOutwardPicker: React.FC = ({\r\n onDatePicked,\r\n}) => {\r\n const {\r\n flights,\r\n fetchingFlights,\r\n filterFlights,\r\n search,\r\n filteredFlights,\r\n pickFlight,\r\n ensureFlight,\r\n } = useCVFlightsContext();\r\n const breakpoint = useBreakpoint();\r\n\r\n const handleSelectDateChange = (date: Date) => {\r\n filterFlights({ date: date });\r\n onDatePicked(date);\r\n };\r\n\r\n return useMemo(\r\n () => (\r\n \r\n {fetchingFlights ? (\r\n //todo adapt skeleton for reponsive\r\n ) : (\r\n flights &&\r\n search && (\r\n {\r\n handleSelectDateChange(date);\r\n }}\r\n filteredFlights={filteredFlights}\r\n from={search.from}\r\n to={search.to}\r\n setCheckedFlight={pickFlight}\r\n ensureCheckedFlight={ensureFlight}\r\n defaultDateSelected={search.fromDate}\r\n fromDateThreshold={new Date()}\r\n back={false}\r\n />\r\n )\r\n )}\r\n \r\n ),\r\n [flights, fetchingFlights, search, filteredFlights]\r\n );\r\n};\r\n\r\nexport default CvFlightOutwardPicker;\r\n","import React, {useMemo} from 'react';\r\n\r\nimport {Box} from '@material-ui/core';\r\nimport {Skeleton} from '@material-ui/lab';\r\n\r\nimport {useCVFlightsContext} from '../../../context/CVFlightsContext/CVFlightsContext';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport CVFlightOneWayPicker from './CVFlightOneWayPicker';\r\n\r\nexport interface ICvFlightOutwardPickerProps {\r\n fromDateThreshold?: Date;\r\n}\r\n\r\nconst CvFlightOutwardPicker: React.FC = ({\r\n fromDateThreshold,\r\n}) => {\r\n const {\r\n returnFlights,\r\n filterReturnFlights,\r\n fetchingReturnFlights,\r\n search,\r\n filteredReturnFlights,\r\n pickReturnFlight,\r\n ensureReturnFlight,\r\n pickedReturnFlight,\r\n } = useCVFlightsContext();\r\n const breakpoint = useBreakpoint();\r\n\r\n const handleReturnFlightSelectDateChange = (date: Date) => {\r\n filterReturnFlights({ date: date });\r\n };\r\n\r\n return useMemo(\r\n () => (\r\n \r\n {fetchingReturnFlights ? (\r\n //todo adapt skeleton for reponsive\r\n ) : (\r\n returnFlights &&\r\n search &&\r\n search.toDate && (\r\n \r\n )\r\n )}\r\n \r\n ),\r\n [\r\n returnFlights,\r\n fetchingReturnFlights,\r\n search,\r\n filteredReturnFlights,\r\n pickedReturnFlight,\r\n fromDateThreshold,\r\n ]\r\n );\r\n};\r\n\r\nexport default CvFlightOutwardPicker;\r\n","import React, {useState} from 'react';\r\nimport {Element} from 'react-scroll';\r\n\r\nimport {Box} from '@material-ui/core';\r\n\r\nimport CvFlightOutwardPicker from './CvFlightOutwardPicker';\r\nimport CvFlightReturnPicker from './CvFlightReturnPicker';\r\n\r\nconst CVFlightPicker: React.FC = () => {\r\n const [outwardPickedDate, setOutwardPickedDate] = useState(\r\n undefined\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CVFlightPicker;\r\n","import {useUserContext} from '../context/User/UserContext';\r\nimport IUserInfo from '../models/IUserInfo';\r\nimport PermissionsList from '../utils/PermissionsList';\r\n\r\ninterface IUserAgent {\r\n isAgent: boolean;\r\n userInfo: IUserInfo;\r\n}\r\n\r\nconst useAgent = (): IUserAgent => {\r\n const userInfo = useUserContext();\r\n\r\n return {\r\n isAgent: userInfo.permissions.some(\r\n (p) => p === PermissionsList.eTravelReservationEditServices\r\n ),\r\n userInfo: userInfo,\r\n };\r\n};\r\n\r\nexport default useAgent;\r\n","import React, {ChangeEvent} from 'react';\r\n\r\nimport {Button, Grid, IconButton} from '@material-ui/core';\r\n\r\nimport {ReactComponent as AttachedFileIcon} from '../../../assets/icons/attachedFile.svg';\r\nimport {ReactComponent as DeleteIcon} from '../../../assets/icons/deleteBin.svg';\r\nimport {ReactComponent as UploadFileIcon} from '../../../assets/icons/uploadFile.svg';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IFile from '../../../models/IFile';\r\nimport FileService from '../../../services/FileService';\r\nimport styles from './FileUpload.module.scss';\r\n\r\nexport interface IUnControlledFileUploadProps {\r\n text: string;\r\n accept?: string;\r\n color?: 'primary' | 'secondary';\r\n file?: File;\r\n onFileChange: (file?: File) => void;\r\n fullWidth?: boolean;\r\n}\r\n\r\nconst UnControlledFileUpload: React.FC = ({\r\n text,\r\n accept,\r\n color = 'primary',\r\n file,\r\n onFileChange,\r\n fullWidth = false,\r\n}) => {\r\n const { addMessage } = useSnackbar();\r\n\r\n // function to read file as binary and return\r\n const getFileFromInput = (file: File): Promise => {\r\n return new Promise(function (resolve, reject) {\r\n const reader = new FileReader();\r\n reader.onerror = reject;\r\n reader.onload = function () {\r\n let base64String = reader.result?.toString();\r\n resolve({ fileName: file.name, content: base64String ?? '' });\r\n };\r\n reader.readAsDataURL(file); // Read to base64.\r\n });\r\n };\r\n\r\n const handleFileChange = async (event: ChangeEvent) => {\r\n try {\r\n event.persist();\r\n if (event.target && event.target.files && event.target.files.length > 0) {\r\n const files: FileList = event.target.files;\r\n onFileChange(files[0]);\r\n }\r\n } catch (error) {\r\n addMessage(error.message);\r\n }\r\n };\r\n\r\n const handleViewFile = async (file: File) => {\r\n getFileFromInput(file)\r\n .then((value) => {\r\n FileService.openFile(value.content, value.fileName);\r\n })\r\n .catch(() => addMessage(\"Couldn't download file\"));\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {file && (\r\n <>\r\n \r\n handleViewFile(file)}\r\n >\r\n \r\n
    {file?.name ?? 'Unnamed File'}
    \r\n \r\n
    \r\n\r\n \r\n onFileChange(undefined)}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default UnControlledFileUpload;\r\n","import React, { useEffect, useMemo, useState } from 'react';\r\nimport { Box, Grid, IconButton } from '@material-ui/core';\r\nimport { ReactComponent as DeleteIcon } from '../assets/icons/deleteBin.svg';\r\nimport FileDownloadButton from '../components/commons/FileDownloadButton/FileDownloadButton';\r\nimport UnControlledFileUpload from '../components/commons/FileUpload/UnControlledFileUpload';\r\nimport FormControl from '../components/commons/FormControl/FormControl';\r\nimport { ITaskAttachment } from '../models/DailyTasks/TaskList/ITask';\r\nimport TaskService from '../services/TaskService';\r\n\r\nexport interface IAgentFormAttachmentsProps {\r\n initialAttachments: ITaskAttachment[];\r\n deleteIconClassName: string;\r\n iconButtonClassName: string;\r\n readOnly: boolean;\r\n serviceUId: number;\r\n}\r\n\r\nexport function useTaskAttachments({\r\n iconButtonClassName,\r\n deleteIconClassName,\r\n initialAttachments,\r\n readOnly,\r\n serviceUId,\r\n }: IAgentFormAttachmentsProps) {\r\n\r\n const [attachments, setAttachments] = useState(initialAttachments);\r\n const [newFile, setNewFile] = useState();\r\n const [isDirty, setIsDirty] = useState(false);\r\n\r\n useEffect(() => {\r\n if (attachments.length !== 0 || initialAttachments.length !== 0) {\r\n setAttachments(initialAttachments);\r\n }\r\n }, [initialAttachments]);\r\n\r\n useEffect(() => {\r\n if (newFile) setNewFile(undefined);\r\n }, [serviceUId]);\r\n\r\n const addNewFile = (file?: File) => {\r\n if (!file) return;\r\n setNewFile(file);\r\n\r\n const newAttachment = {\r\n documentName: file.name,\r\n content: file,\r\n taskAttachmentId: 0,\r\n } as ITaskAttachment;\r\n\r\n setAttachments([...attachments, newAttachment]);\r\n setNewFile(undefined);\r\n setAttachmentDirty();\r\n };\r\n\r\n const setAttachmentDirty = () => {\r\n if (isDirty) {\r\n return;\r\n }\r\n setIsDirty(true);\r\n };\r\n\r\n const computedAttachments = () => {\r\n setAttachmentDirty();\r\n return attachments;\r\n };\r\n\r\n const memoFileUpload = useMemo(\r\n () => (\r\n \r\n addNewFile(file)}\r\n file={newFile}\r\n />\r\n \r\n ),\r\n [serviceUId, attachments]\r\n );\r\n\r\n const handleRemoveAttachment = (attachment: ITaskAttachment, index: number) => {\r\n setAttachmentDirty();\r\n\r\n const tmpAttachments = [...attachments];\r\n const attachmentToRemove = tmpAttachments.find(a => a.taskAttachmentId === attachment.taskAttachmentId && a.documentName === attachment.documentName);\r\n\r\n if (!attachmentToRemove || index < 0) return;\r\n\r\n tmpAttachments.splice(index, 1);\r\n setAttachments(tmpAttachments);\r\n };\r\n\r\n const handleFetchAttachment = (attachment: ITaskAttachment): Promise => {\r\n if (attachment.taskAttachmentId === 0) {\r\n return new Promise((resolve) => resolve(attachment.content as Blob));\r\n }\r\n return TaskService.getAttachment(attachment.taskAttachmentId);\r\n };\r\n\r\n const AgentFormAttachments = () => {\r\n return (\r\n \r\n \r\n \r\n <>\r\n {!readOnly && memoFileUpload}\r\n {attachments.map((attachment, index) => (\r\n \r\n \r\n \r\n handleFetchAttachment(attachment)}\r\n />\r\n \r\n {!readOnly && (\r\n \r\n handleRemoveAttachment(attachment, index)}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return {AgentFormAttachments, computedAttachments, attachmentIsDirty: isDirty};\r\n}\r\n\r\nexport default useTaskAttachments;\r\n","const START_YEAR = 2019;\r\n\r\nexport enum SortDateType {\r\n ASC,\r\n DESC,\r\n}\r\n\r\nexport function rangeOfYears(start: number, end: number) {\r\n return Array(end - start + 1)\r\n .fill(start)\r\n .map((year, index) => year + index)\r\n .reverse();\r\n}\r\n\r\nfunction getSafeTime(date?: Date) {\r\n return date != null ? new Date(date).getTime() : 0;\r\n}\r\n\r\nexport function sortByDate(array: Date[], sort: SortDateType): Date[] {\r\n if (!array || array.length === 0) return array;\r\n const result = array.slice();\r\n result.sort((a: Date, b: Date) => {\r\n return sort === SortDateType.ASC\r\n ? getSafeTime(a) - getSafeTime(b)\r\n : getSafeTime(b) - getSafeTime(a);\r\n });\r\n return result;\r\n}\r\n\r\nconst YEARS: number[] = rangeOfYears(START_YEAR, new Date().getFullYear());\r\nexport default YEARS;\r\n","import moment from 'moment';\r\nimport * as yup from 'yup';\r\n\r\nimport Constants from '../../../utils/Constants';\r\nimport {sortByDate, SortDateType} from '../../../utils/Dates';\r\nimport formatString from '../../../utils/Strings';\r\n\r\nexport const RoomType: string[] = ['Single', 'Twin', 'Double'];\r\n\r\nconst checkBlocked = (\r\n blocked: (Date | null)[],\r\n yup: yup.DateSchema\r\n): yup.DateSchema => {\r\n if (!blocked) return yup;\r\n\r\n const dateToCheck = blocked.filter((b) => moment(b).isValid()) as Date[];\r\n\r\n if (dateToCheck && dateToCheck.length > 0) {\r\n const sortedDateToCheck = sortByDate(dateToCheck, SortDateType.ASC);\r\n return yup.max(sortedDateToCheck[0], Constants.validation.passengerBlocked);\r\n }\r\n\r\n return yup;\r\n};\r\n\r\nexport interface IHotelForm {\r\n city?: string;\r\n roomType?: string;\r\n address?: string;\r\n checkIn?: Date | null;\r\n checkOut?: Date | null;\r\n estimatedCost?: number;\r\n travelerComment?: string;\r\n agent?: { label: string; value: number };\r\n status: string;\r\n guaranteeGiven: boolean;\r\n cargoluxInvoice: boolean;\r\n invoicePaidUponCheckout: boolean;\r\n invoiceToBeAttached: boolean;\r\n prepaidReservation: boolean;\r\n prepaidVoucher: boolean;\r\n agentComment?: string;\r\n blockedFrom?: (Date | null)[];\r\n}\r\n\r\nexport const HotelFormSchema = yup.object().shape({\r\n city: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(100, formatString(Constants.validation.max, 100)),\r\n roomType: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(30, formatString(Constants.validation.max, 30)),\r\n address: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(100, formatString(Constants.validation.max, 100)),\r\n blockedFrom: yup.array().of(yup.date().nullable().default(null)),\r\n checkIn: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .min(\r\n moment(new Date()).startOf('d')?.toDate(),\r\n Constants.validation.minDateToday\r\n )\r\n .when(['blockedFrom'], (blocked: (Date | null)[], yup: any) =>\r\n checkBlocked(blocked, yup)\r\n ),\r\n checkOut: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .when('checkIn', (checkIn: Date | null, schema: any) =>\r\n checkIn\r\n ? schema.min(checkIn, \"check out can't be before check in\")\r\n : schema\r\n ),\r\n estimatedCost: yup\r\n .number()\r\n .min(1, formatString(Constants.validation.minNumeric, 'estimated cost', 1))\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.invalidNumber),\r\n travelerComment: yup.string(),\r\n guaranteeGiven: yup.bool().nullable(),\r\n cargoluxInvoice: yup.bool().nullable(),\r\n invoicePaidUponCheckout: yup.bool().nullable(),\r\n invoiceToBeAttached: yup.bool().nullable(),\r\n prepaidReservation: yup.bool().nullable(),\r\n prepaidVoucher: yup.bool().nullable(),\r\n agentComment: yup.string(),\r\n});\r\n\r\nexport const HotelFormSchemaAllowPastBooking = yup.object().shape({\r\n blockedFrom: yup.array().of(yup.date().nullable().default(null)),\r\n city: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(100, formatString(Constants.validation.max, 100)),\r\n roomType: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(30, formatString(Constants.validation.max, 30)),\r\n address: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(100, formatString(Constants.validation.max, 100)),\r\n checkIn: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .when(['blockedFrom'], (blocked: (Date | null)[], yup: any) =>\r\n checkBlocked(blocked, yup)\r\n ),\r\n checkOut: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .when('checkIn', (checkIn: Date | null, schema: any) =>\r\n checkIn\r\n ? schema.min(checkIn, \"check out can't be before check in\")\r\n : schema\r\n ),\r\n estimatedCost: yup\r\n .number()\r\n .min(1, formatString(Constants.validation.minNumeric, 'estimated cost', 1))\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.invalidNumber),\r\n travelerComment: yup.string(),\r\n guaranteeGiven: yup.bool().nullable(),\r\n cargoluxInvoice: yup.bool().nullable(),\r\n invoicePaidUponCheckout: yup.bool().nullable(),\r\n invoiceToBeAttached: yup.bool().nullable(),\r\n prepaidReservation: yup.bool().nullable(),\r\n prepaidVoucher: yup.bool().nullable(),\r\n agentComment: yup.string(),\r\n});\r\n\r\nexport const HotelFormSchemaProcessed = yup.object().shape({\r\n travelerComment: yup.string(),\r\n guaranteeGiven: yup.bool().nullable(),\r\n cargoluxInvoice: yup.bool().nullable(),\r\n invoicePaidUponCheckout: yup.bool().nullable(),\r\n invoiceToBeAttached: yup.bool().nullable(),\r\n prepaidReservation: yup.bool().nullable(),\r\n prepaidVoucher: yup.bool().nullable(),\r\n agentComment: yup.string(),\r\n});\r\n\r\nexport const HotelFormSchemaUpdate = yup.object().shape({\r\n blockedFrom: yup.array().of(yup.date().nullable().default(null)),\r\n travelerComment: yup.string(),\r\n guaranteeGiven: yup.bool().nullable(),\r\n cargoluxInvoice: yup.bool().nullable(),\r\n invoicePaidUponCheckout: yup.bool().nullable(),\r\n invoiceToBeAttached: yup.bool().nullable(),\r\n prepaidReservation: yup.bool().nullable(),\r\n prepaidVoucher: yup.bool().nullable(),\r\n agentComment: yup.string(),\r\n checkIn: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .when(['blockedFrom'], (blocked: (Date | null)[], yup: any) =>\r\n checkBlocked(blocked, yup)\r\n ),\r\n checkOut: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .when('checkIn', (checkIn: Date | null, schema: any) =>\r\n checkIn\r\n ? schema.min(checkIn, \"check out can't be before check in\")\r\n : schema\r\n ),\r\n estimatedCost: yup\r\n .number()\r\n .min(1, formatString(Constants.validation.minNumeric, 'estimated cost', 1))\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.invalidNumber),\r\n});\r\n","var _g, _path, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgMobileStepperActionNext(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 43,\n height: 43,\n viewBox: \"0 0 43 43\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_d)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n r: 19,\n transform: \"matrix(-1 0 0 1 20 20)\",\n stroke: \"#CC0033\",\n strokeWidth: 2\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.5713 12.35L21.6351 20L14.5713 27.65L16.746 30L25.9999 20L16.746 10L14.5713 12.35Z\",\n fill: \"#CC0033\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_d\",\n x: 0,\n y: 0,\n width: 43,\n height: 43,\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 }), /*#__PURE__*/React.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"erode\",\n in: \"SourceAlpha\",\n result: \"effect1_dropShadow\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 2,\n dy: 2\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow\",\n result: \"shape\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMobileStepperActionNext);\nexport default __webpack_public_path__ + \"static/media/mobileStepperActionNext.b86241aa.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _path, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgMobileStepperActionNextDisabled(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 43,\n height: 43,\n viewBox: \"0 0 43 43\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_d)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 20,\n cy: 20,\n r: 19,\n transform: \"rotate(-180 20 20)\",\n stroke: \"#B7B7B7\",\n strokeWidth: 2\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.5713 27.65L21.6351 20L14.5713 12.35L16.746 10L25.9999 20L16.746 30L14.5713 27.65Z\",\n fill: \"#B7B7B7\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_d\",\n x: 0,\n y: 0,\n width: 43,\n height: 43,\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 }), /*#__PURE__*/React.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"erode\",\n in: \"SourceAlpha\",\n result: \"effect1_dropShadow\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", {\n dx: 2,\n dy: 2\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow\",\n result: \"shape\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMobileStepperActionNextDisabled);\nexport default __webpack_public_path__ + \"static/media/mobileStepperActionNextDisabled.61cdab30.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\nimport {useHistory} from 'react-router-dom';\r\n\r\nimport {IconButton} from '@material-ui/core';\r\nimport Button from '@material-ui/core/Button';\r\nimport Link from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as NextIcon} from '../../../assets/icons/mobileStepperActionNext.svg';\r\nimport {ReactComponent as NextIconDisabled} from '../../../assets/icons/mobileStepperActionNextDisabled.svg';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport useQuery from '../../../hooks/useQuery';\r\nimport {useDecodeRedirectOrigin} from '../../../hooks/useReservationRedirect';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport Dialog from '../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../commons/Dialog/DialogTitle';\r\nimport styles from './StepperActions.module.scss';\r\n\r\ninterface IStepperActionsProps {\r\n numberSteps: number;\r\n activeStep: number;\r\n nextStep: () => void;\r\n previousStep: () => void;\r\n cancelBooking: () => void;\r\n children?: JSX.Element;\r\n onCancelEdition?: () => void;\r\n cancelAvailable?: boolean;\r\n isReservationDirty: boolean;\r\n}\r\n\r\nconst StepperActions: React.FC = ({\r\n numberSteps,\r\n activeStep,\r\n nextStep,\r\n previousStep,\r\n cancelBooking,\r\n children,\r\n onCancelEdition,\r\n cancelAvailable = false,\r\n isReservationDirty,\r\n}) => {\r\n const { hideModal: hideConfirmation, isVisible: isVisibleConfirmation } =\r\n useModal();\r\n const {\r\n showModal: showTaskListConfirmation,\r\n hideModal: hideTaskListConfirmation,\r\n isVisible: isVisibleTaskListConfirmation,\r\n } = useModal();\r\n\r\n const breakpoint = useBreakpoint();\r\n const query = useQuery();\r\n const history = useHistory();\r\n const { decode } = useDecodeRedirectOrigin();\r\n\r\n const origin = query.get('origin');\r\n const decodedOrigin = decode(origin ?? '');\r\n return (\r\n <>\r\n
    \r\n {!breakpoint.smdown && origin && decodedOrigin && (\r\n {\r\n isReservationDirty && origin == 'taskList'\r\n ? showTaskListConfirmation()\r\n : history.push(decodedOrigin.path);\r\n }}\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n {decodedOrigin.label}\r\n \r\n )}\r\n\r\n \r\n {activeStep === 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {(cancelAvailable && !breakpoint.smdown) && ( //TODO Remove the cancel from the component\r\n \r\n Clear form\r\n \r\n )}\r\n {children}\r\n \r\n {numberSteps - 1 === activeStep ? : }\r\n \r\n
    \r\n \r\n \r\n \r\n You are going to cancel the reservation process\r\n \r\n \r\n \r\n Are you sure?\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n You have not saved your changes for this reservation ("Finish"\r\n button is available in the last step)\r\n \r\n \r\n \r\n \r\n Are you sure to quit this reservation without saving?\r\n \r\n \r\n \r\n \r\n history.push('/dailyTasks/tasks')}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default StepperActions;\r\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgReset(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 16,\n viewBox: \"0 0 19 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.3268 0C6.44924 0 3.20987 2.77354 2.48185 6.4394L0.961226 4.53846L0 5.30768L2.46155 8.38461C2.58154 8.53416 2.76001 8.61538 2.94217 8.61538C3.03509 8.61538 3.12923 8.59444 3.21725 8.55077L6.90956 6.7046L6.35879 5.60367L3.64556 6.95999C4.14894 3.72059 6.94832 1.23076 10.3268 1.23076C14.0591 1.23076 17.096 4.26767 17.096 8C17.096 11.7323 14.0591 14.7692 10.3268 14.7692V16C14.7379 16 18.3268 12.4111 18.3268 8C18.3268 3.58894 14.7379 0 10.3268 0Z\",\n fill: \"#3D64D8\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgReset);\nexport default __webpack_public_path__ + \"static/media/reset.3545111c.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Link from '@material-ui/core/Link';\r\n\r\nimport {ReactComponent as ResetIcon} from '../../../assets/icons/reset.svg';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\n\r\nexport interface IClearFormMobileProps {\r\n onCancelEdition?: () => void;\r\n cancelAvailable?: boolean;\r\n}\r\n\r\nconst ClearFormMobile: React.FC = ({\r\n onCancelEdition,\r\n cancelAvailable = false,\r\n}) => {\r\n const breakpoint = useBreakpoint();\r\n return breakpoint.smdown && !!cancelAvailable ? (\r\n \r\n \r\n \r\n Clear form\r\n \r\n \r\n ) : (\r\n <>\r\n );\r\n};\r\n\r\nexport default ClearFormMobile;\r\n","import moment from 'moment';\r\nimport React, {useEffect, useMemo, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Box, Button, Divider, Grid} from '@material-ui/core';\r\n\r\nimport {useReservationContext} from '../../../context/ReservationProvider/ReservationProvider';\r\nimport {useUserContext} from '../../../context/User/UserContext';\r\nimport useAgent from '../../../hooks/useAgent';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport useClientAppContext from '../../../hooks/useClientApp';\r\nimport useReservationPassengers from '../../../hooks/useReservationPassengers';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport useTaskAttachments from '../../../hooks/useTaskAttachments';\r\nimport ITaskExtended from '../../../models/DailyTasks/TaskList/ITaskExtended';\r\nimport {\r\n HotelFormSchema,\r\n HotelFormSchemaAllowPastBooking,\r\n HotelFormSchemaProcessed,\r\n HotelFormSchemaUpdate,\r\n IHotelForm,\r\n RoomType,\r\n} from '../../../models/Reservation/Forms/IHotelForm';\r\nimport IHotel from '../../../models/Reservation/IHotel';\r\nimport {ReservationStatus, ServiceStatus,} from '../../../models/Reservation/ReservationEnum';\r\nimport baseStyle from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\nimport DatePicker from '../../commons/DatePicker/DatePicker';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport Select from '../../commons/Select/Select';\r\nimport StepperActions from '../../commons/Stepper/StepperActions';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport AgentForm from '../commons/AgentForm';\r\nimport ClearFormMobile from '../commons/ClearFormMobile';\r\nimport styles from './Steps.module.scss';\r\nimport {Alert} from \"@material-ui/lab\";\r\n\r\nexport interface IHotelStepProps {}\r\n\r\nconst HotelStep: React.FC = () => {\r\n const { getSettingValue } = useClientAppContext();\r\n const { isAgent } = useAgent();\r\n const {\r\n state: {\r\n memberInformations,\r\n selectedTripType,\r\n booking,\r\n activeHotel,\r\n activeStep,\r\n steps,\r\n booking: { status: bookingStatus },\r\n isDirty,\r\n },\r\n nextStep,\r\n previousStep,\r\n cancelBooking,\r\n setActiveHotel,\r\n upsertHotel,\r\n scrollToTop,\r\n } = useReservationContext();\r\n\r\n const { permissions } = useUserContext();\r\n const allowPastBooking = permissions.includes(\r\n PermissionsList.eTravelReservationPastBooking\r\n );\r\n\r\n const [schema, setSchema] = useState<\r\n | typeof HotelFormSchema\r\n | typeof HotelFormSchemaUpdate\r\n | typeof HotelFormSchemaAllowPastBooking\r\n | typeof HotelFormSchemaProcessed\r\n >(allowPastBooking ? HotelFormSchemaAllowPastBooking : HotelFormSchema);\r\n const { AgentFormAttachments, computedAttachments } = useTaskAttachments({\r\n initialAttachments: activeHotel?.task?.attachments ?? [],\r\n deleteIconClassName: styles.deleteIcon,\r\n iconButtonClassName: styles.vAligh,\r\n readOnly: !isAgent,\r\n serviceUId: activeHotel?.uiId ?? 0,\r\n });\r\n\r\n const editFields =\r\n isAgent &&\r\n activeHotel?.task?.status !== ServiceStatus.Cancelled &&\r\n activeHotel?.task?.status !== ServiceStatus.Processed;\r\n const attachmentChanged =\r\n (activeHotel?.task?.attachments?.length ?? 0) !==\r\n computedAttachments().length;\r\n\r\n const { passengers } = useReservationPassengers(\r\n memberInformations,\r\n selectedTripType,\r\n booking.reservationMembers\r\n );\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(schema),\r\n });\r\n const breakpoint = useBreakpoint();\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n if (activeHotel) {\r\n activeHotel.hotelId > 0\r\n ? editFields\r\n ? setSchema(HotelFormSchemaUpdate)\r\n : setSchema(HotelFormSchemaProcessed)\r\n : setSchema(\r\n allowPastBooking ? HotelFormSchemaAllowPastBooking : HotelFormSchema\r\n );\r\n form.reset({\r\n city: activeHotel.city,\r\n roomType: activeHotel.roomType,\r\n address: activeHotel.address,\r\n checkIn: activeHotel.checkIn ?? null,\r\n checkOut: activeHotel.checkOut ?? null,\r\n estimatedCost: activeHotel.estimatedCost,\r\n travelerComment: activeHotel.travelerComment,\r\n status: activeHotel.task.status,\r\n guaranteeGiven: activeHotel.guaranteeGiven,\r\n cargoluxInvoice: activeHotel.cargoluxInvoice,\r\n invoicePaidUponCheckout: activeHotel.invoicePaidUponCheckout,\r\n invoiceToBeAttached: activeHotel.invoiceToBeAttached,\r\n prepaidReservation: activeHotel.prepaidReservation,\r\n prepaidVoucher: activeHotel.prepaidVoucher,\r\n blockedFrom: passengers.map((t) =>\r\n t.blockedFrom\r\n ? new Date(moment(t.blockedFrom).format('yyyy/MM/DD'))\r\n : new Date('9999-01-01')\r\n ),\r\n });\r\n } else {\r\n setSchema(\r\n allowPastBooking ? HotelFormSchemaAllowPastBooking : HotelFormSchema\r\n );\r\n clearForm();\r\n }\r\n }, [activeHotel, passengers]);\r\n\r\n const clearForm = () =>\r\n form.reset({\r\n city: undefined,\r\n roomType: undefined,\r\n address: undefined,\r\n checkIn: null,\r\n checkOut: null,\r\n estimatedCost: undefined,\r\n travelerComment: undefined,\r\n agent: undefined,\r\n status: ServiceStatus.Request,\r\n guaranteeGiven: false,\r\n cargoluxInvoice: false,\r\n invoicePaidUponCheckout: false,\r\n invoiceToBeAttached: false,\r\n prepaidReservation: false,\r\n prepaidVoucher: false,\r\n blockedFrom: passengers.map((t) =>\r\n t.blockedFrom\r\n ? new Date(moment(t.blockedFrom).format('yyyy/MM/DD'))\r\n : new Date('9999-01-01')\r\n ),\r\n });\r\n\r\n const handleHotelFieldUpdate = (\r\n hotel: IHotelForm,\r\n activeHotel?: IHotel | null\r\n ) => {\r\n if (activeHotel && activeHotel.hotelId > 0) {\r\n return editFields\r\n ? {\r\n ...activeHotel,\r\n checkIn: hotel.checkIn,\r\n checkOut: hotel.checkOut,\r\n estimatedCost: hotel.estimatedCost,\r\n }\r\n : activeHotel;\r\n } else {\r\n return hotel;\r\n }\r\n };\r\n\r\n const handleSubmit = (hotel: IHotelForm) => {\r\n const hotelEntry = {\r\n hotelId: activeHotel?.hotelId ?? 0,\r\n reservationId: activeHotel?.reservationId ?? 0,\r\n taskId: activeHotel?.taskId ?? 0,\r\n ...handleHotelFieldUpdate(hotel, activeHotel),\r\n guaranteeGiven: hotel?.guaranteeGiven ?? false,\r\n cargoluxInvoice: hotel?.cargoluxInvoice ?? false,\r\n invoicePaidUponCheckout: hotel?.invoicePaidUponCheckout ?? false,\r\n invoiceToBeAttached: hotel?.invoiceToBeAttached ?? false,\r\n prepaidReservation: hotel?.prepaidReservation ?? false,\r\n prepaidVoucher: hotel?.prepaidVoucher ?? false,\r\n travelerComment: hotel.travelerComment,\r\n uiId: activeHotel?.uiId ?? 0,\r\n task: handleTaskSubmit(hotel, activeHotel?.task),\r\n } as unknown as IHotel;\r\n upsertHotel(hotelEntry);\r\n clearForm();\r\n addMessage(\r\n 'The hotel suite has been added to your reservation',\r\n MessageType.Success\r\n );\r\n scrollToTop();\r\n };\r\n\r\n const handleTaskSubmit = (\r\n hotel: IHotelForm,\r\n base?: ITaskExtended\r\n ): ITaskExtended => {\r\n return {\r\n ...base,\r\n status: hotel.status ?? ServiceStatus.Request,\r\n type: base?.type ?? 'Hotel',\r\n agentId: hotel.agent ? hotel.agent.value : base?.agentId,\r\n comments: handleTaskComments(hotel, base),\r\n attachments: computedAttachments(),\r\n } as unknown as ITaskExtended;\r\n };\r\n\r\n const handleTaskComments = (form: IHotelForm, base?: ITaskExtended) => {\r\n const entry = agentCommentEntry(form);\r\n if (base?.comments) {\r\n return entry ? [...base.comments, entry] : base.comments;\r\n }\r\n\r\n return entry ? [entry] : [];\r\n };\r\n\r\n const agentCommentEntry = (form: IHotelForm) =>\r\n form.agentComment && form.agentComment.trim().length > 0\r\n ? { comment: form.agentComment }\r\n : undefined;\r\n\r\n const minDateWatch = form.watch('checkIn', new Date());\r\n\r\n useEffect(() => {\r\n if (minDateWatch) {\r\n form.trigger('checkIn');\r\n }\r\n }, [minDateWatch]);\r\n\r\n const hotelForm = useMemo(\r\n () => (\r\n <>\r\n {form &&\r\n passengers &&\r\n passengers.map((_, index) => (\r\n \r\n ))}\r\n Please select our Crew Hotel if applicable. If not selected, indicate the reason in the comment field.\r\n
    \r\n \r\n \r\n \r\n 0}\r\n defaultValue={undefined}\r\n error={!!form.errors.city}\r\n helperText={form.errors.city ? form.errors.city.message : ''}\r\n />\r\n \r\n \r\n \r\n \r\n 0}\r\n control={form.control}\r\n options={RoomType.map((type) => ({\r\n value: type,\r\n label: type,\r\n }))}\r\n placeholder=\"Single\"\r\n error={!!form.errors.roomType}\r\n errorMessage={\r\n form.errors.roomType ? form.errors.roomType.message : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n 0}\r\n variant=\"outlined\"\r\n color=\"primary\"\r\n fullWidth\r\n placeholder=\"Four Season Hotel\"\r\n defaultValue={undefined}\r\n error={!!form.errors.address}\r\n helperText={\r\n form.errors.address ? form.errors.address.message : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 && !editFields\r\n }\r\n control={form.control}\r\n error={!!form.errors.checkIn}\r\n helperText={\r\n form.errors.checkIn ? form.errors.checkIn.message : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n 0 && !editFields\r\n }\r\n placeholder={moment().add(2, 'days').format('DD-MM-YYYY')}\r\n control={form.control}\r\n error={!!form.errors.checkOut}\r\n helperText={\r\n form.errors.checkOut ? form.errors.checkOut.message : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 && !editFields\r\n }\r\n defaultValue={undefined}\r\n error={!!form.errors.estimatedCost}\r\n helperText={\r\n form.errors.estimatedCost\r\n ? form.errors.estimatedCost.message\r\n : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n window.open(\r\n getSettingValue(Constants.settings.CvPreferredHotelsLink),\r\n '_blank'\r\n )\r\n }\r\n >\r\n Check Cargolux Prefered Hotels\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 && !isAgent}\r\n error={!!form.errors.travelerComment}\r\n helperText={\r\n form.errors.travelerComment\r\n ? form.errors.travelerComment.message\r\n : ''\r\n }\r\n />\r\n \r\n \r\n \r\n\r\n {bookingStatus === ReservationStatus.Approved && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ),\r\n [activeHotel, form, passengers]\r\n );\r\n\r\n return (\r\n \r\n \r\n {hotelForm}\r\n\r\n {\r\n setActiveHotel(undefined);\r\n }}\r\n isReservationDirty={isDirty}\r\n >\r\n \r\n {activeHotel ? 'UPDATE HOTEL' : 'ADD HOTEL'}\r\n \r\n \r\n \r\n {\r\n setActiveHotel(undefined);\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default HotelStep;\r\n","import moment from 'moment';\r\nimport * as yup from 'yup';\r\n\r\nimport Constants from '../../../utils/Constants';\r\nimport {sortByDate, SortDateType} from '../../../utils/Dates';\r\nimport formatString from '../../../utils/Strings';\r\n\r\nexport const CarType: string[] = [\r\n 'Compact',\r\n 'Intermediate',\r\n 'Full Size',\r\n 'Other',\r\n];\r\n\r\ntype ReservationCarTypeOption = {\r\n label: string;\r\n value: string;\r\n};\r\n\r\nexport const ReservationCarType: ReservationCarTypeOption[] = [\r\n {\r\n label: 'Rental car',\r\n value: 'Rental',\r\n },\r\n {\r\n label: 'LUX Pool car',\r\n value: 'LuxPool',\r\n },\r\n {\r\n label: 'Company car',\r\n value: 'Company',\r\n },\r\n {\r\n label: 'Private car',\r\n value: 'Private',\r\n },\r\n {\r\n label: 'Carpooling',\r\n value: 'Carpooling',\r\n },\r\n];\r\n\r\nconst checkBlocked = (\r\n blocked: (Date | null)[],\r\n yup: yup.DateSchema\r\n): yup.DateSchema => {\r\n if (!blocked) return yup;\r\n const dateToCheck = blocked.filter((b) => moment(b).isValid()) as Date[];\r\n\r\n if (dateToCheck && dateToCheck.length > 0) {\r\n const sortedDateToCheck = sortByDate(dateToCheck, SortDateType.ASC);\r\n return yup.max(sortedDateToCheck[0], Constants.validation.passengerBlocked);\r\n }\r\n return yup;\r\n};\r\n\r\nexport interface ICarForm {\r\n rentalCompany?: string;\r\n carType?: string;\r\n reservationCarType?: string;\r\n blockedFrom?: (Date | null)[];\r\n pickUpLocation?: string;\r\n pickUpDate?: Date | null;\r\n dropOffLocation?: string;\r\n dropOffDate?: Date | null;\r\n estimatedCost?: number;\r\n travelerComment?: string;\r\n driverName?: string;\r\n status: string;\r\n agent?: { label: string; value: number };\r\n estimatedDistance?: number;\r\n distanceUnit?: string;\r\n agentComment?: string;\r\n}\r\n\r\nexport const RentalCarFormSchema = yup.object().shape({\r\n rentalCompany: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(100, formatString(Constants.validation.max, 100)),\r\n carType: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(30, formatString(Constants.validation.max, 30)),\r\n reservationCarType: yup.string().required(Constants.validation.required),\r\n pickUpLocation: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(100, formatString(Constants.validation.max, 100)),\r\n dropOffLocation: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(100, formatString(Constants.validation.max, 100)),\r\n blockedFrom: yup.array().of(yup.date().nullable().default(null)),\r\n pickUpDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .when(['blockedFrom'], (blocked: (Date | null)[], yup: any) =>\r\n checkBlocked(blocked, yup)\r\n ),\r\n dropOffDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .when('pickUpDate', (pickUpDate: Date | null, schema: any) =>\r\n pickUpDate\r\n ? schema.min(pickUpDate, \"drop off can't be before pick up\")\r\n : schema\r\n ),\r\n estimatedCost: yup\r\n .number()\r\n .min(1, formatString(Constants.validation.minNumeric, 'estimated cost', 1))\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.invalidNumber),\r\n travelerComment: yup.string(),\r\n status: yup.string(),\r\n agentComment: yup.string(),\r\n});\r\n\r\nexport const LuxPoolSchema = yup.object().shape({\r\n reservationCarType: yup.string().required(Constants.validation.required),\r\n blockedFrom: yup.array().of(yup.date().nullable().default(null)),\r\n pickUpDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .when(['blockedFrom'], (blocked: (Date | null)[], yup: any) =>\r\n checkBlocked(blocked, yup)\r\n ),\r\n dropOffDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .when('pickUpDate', (pickUpDate: Date | null, schema: any) =>\r\n pickUpDate\r\n ? schema.min(pickUpDate, \"end date can't be before start date\")\r\n : schema\r\n ),\r\n travelerComment: yup.string(),\r\n status: yup.string(),\r\n agentComment: yup.string(),\r\n});\r\n\r\nexport const CompanyCarFormSchema = yup.object().shape({\r\n reservationCarType: yup.string().required(Constants.validation.required),\r\n blockedFrom: yup.array().of(yup.date().nullable().default(null)),\r\n pickUpDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .when(['blockedFrom'], (blocked: (Date | null)[], yup: any) =>\r\n checkBlocked(blocked, yup)\r\n ),\r\n dropOffDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .when('pickUpDate', (pickUpDate: Date | null, schema: any) =>\r\n pickUpDate\r\n ? schema.min(pickUpDate, \"end date can't be before start date\")\r\n : schema\r\n ),\r\n travelerComment: yup.string(),\r\n estimatedDistance: yup\r\n .number()\r\n .required(Constants.validation.required)\r\n .min(1, formatString(Constants.validation.minNumeric, 'estimated cost', 1))\r\n .typeError(Constants.validation.invalidNumber),\r\n distanceUnit: yup.string().required(Constants.validation.required),\r\n status: yup.string(),\r\n agentComment: yup.string(),\r\n});\r\n\r\nexport const PrivateCarFormSchema = yup.object().shape({\r\n reservationCarType: yup.string().required(Constants.validation.required),\r\n blockedFrom: yup.array().of(yup.date().nullable().default(null)),\r\n pickUpDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .when(['blockedFrom'], (blocked: (Date | null)[], yup: any) =>\r\n checkBlocked(blocked, yup)\r\n ),\r\n dropOffDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .when('pickUpDate', (pickUpDate: Date | null, schema: any) =>\r\n pickUpDate\r\n ? schema.min(pickUpDate, \"end date can't be before start date\")\r\n : schema\r\n ),\r\n travelerComment: yup.string(),\r\n estimatedDistance: yup\r\n .number()\r\n .required(Constants.validation.required)\r\n .min(1, formatString(Constants.validation.minNumeric, 'estimated cost', 1))\r\n .typeError(Constants.validation.invalidNumber),\r\n distanceUnit: yup.string().required(Constants.validation.required),\r\n status: yup.string(),\r\n agentComment: yup.string(),\r\n});\r\n\r\nexport const CarpoolingFormSchema = yup.object().shape({\r\n reservationCarType: yup.string().required(Constants.validation.required),\r\n blockedFrom: yup.array().of(yup.date().nullable().default(null)),\r\n pickUpDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .when(['blockedFrom'], (blocked: (Date | null)[], yup: any) =>\r\n checkBlocked(blocked, yup)\r\n ),\r\n dropOffDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .when('pickUpDate', (pickUpDate: Date | null, schema: any) =>\r\n pickUpDate\r\n ? schema.min(pickUpDate, \"end date can't be before start date\")\r\n : schema\r\n ),\r\n driverName: yup.string().required(Constants.validation.required),\r\n travelerComment: yup.string(),\r\n status: yup.string(),\r\n agentComment: yup.string(),\r\n});\r\n\r\nexport const CarFormUpdateProcessedSchema = yup.object().shape({\r\n travelerComment: yup.string(),\r\n status: yup.string(),\r\n agentComment: yup.string(),\r\n});\r\n\r\nexport const CarFormUpdateSchema = yup.object().shape({\r\n travelerComment: yup.string(),\r\n status: yup.string(),\r\n agentComment: yup.string(),\r\n blockedFrom: yup.array().of(yup.date().nullable().default(null)),\r\n pickUpDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .when(['blockedFrom'], (blocked: (Date | null)[], yup: any) =>\r\n checkBlocked(blocked, yup)\r\n ),\r\n dropOffDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .when('pickUpDate', (pickUpDate: Date | null, schema: any) =>\r\n pickUpDate\r\n ? schema.min(pickUpDate, \"drop off can't be before pick up\")\r\n : schema\r\n ),\r\n estimatedCost: yup\r\n .number()\r\n .min(1, formatString(Constants.validation.minNumeric, 'estimated cost', 1))\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.invalidNumber),\r\n});\r\n","/* eslint-disable */\r\nimport moment, {Moment} from 'moment';\r\nimport React, {useState} from 'react';\r\nimport {Control, Controller} from 'react-hook-form';\r\n\r\nimport MomentUtils from '@date-io/moment';\r\nimport {KeyboardDateTimePicker, KeyboardDateTimePickerProps, MuiPickersUtilsProvider,} from '@material-ui/pickers';\r\n\r\ninterface IControlledDateTimePickerProps\r\n extends Omit {\r\n name: string;\r\n control?: Control;\r\n value?: Moment | null;\r\n minDate?: Date | null;\r\n}\r\n\r\nmoment.tz.setDefault('UTC');\r\n\r\nconst ControlledDateTimePicker: React.FC = ({\r\n error,\r\n helperText,\r\n color,\r\n control,\r\n name,\r\n value,\r\n defaultValue,\r\n fullWidth = true,\r\n variant = 'inline',\r\n margin = 'normal',\r\n inputVariant = 'outlined',\r\n format = 'DD-MM-YYYY HH:mm',\r\n minDate,\r\n ...props\r\n}) => {\r\n const [selectedValue, setSelectedValue] = useState(\r\n value ? value : null\r\n );\r\n\r\n const validateInternal = () => {\r\n if (selectedValue !== null && !selectedValue.isValid()) {\r\n return Invalid date/time format;\r\n }\r\n\r\n if (\r\n !props.disabled &&\r\n selectedValue !== null &&\r\n minDate !== null &&\r\n selectedValue < moment(minDate)\r\n ) {\r\n return (\r\n \r\n Date should not be before {moment(minDate).format(format)}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n };\r\n\r\n return (\r\n <>\r\n \r\n (\r\n {\r\n setSelectedValue(e);\r\n onChange(e);\r\n }}\r\n onBlur={onBlur}\r\n value={value}\r\n error={error || validateInternal() !== null}\r\n minDate={\r\n minDate == null\r\n ? moment('01/01/0001', 'DD-MM-YYYY HH:mm')\r\n : minDate\r\n }\r\n minDateMessage={\r\n props.disabled ? (\r\n ''\r\n ) : (\r\n \r\n Date should not be before {moment(minDate).format(format)}\r\n \r\n )\r\n }\r\n autoComplete=\"off\"\r\n helperText={helperText || validateInternal()}\r\n fullWidth={fullWidth}\r\n {...props}\r\n />\r\n )}\r\n defaultValue={defaultValue}\r\n name={name}\r\n control={control}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ControlledDateTimePicker;\r\n","import {Control, Controller} from 'react-hook-form';\r\nimport {TextField} from '@material-ui/core';\r\nimport React from 'react';\r\n\r\ntype Props = {\r\n name: string;\r\n type: any;\r\n defaultValue?: any;\r\n fullWidth?: boolean;\r\n multiline?: boolean;\r\n error?: boolean;\r\n disabled?: boolean;\r\n variant?: any;\r\n margin?: any;\r\n minRows?: string;\r\n helperText?: any;\r\n placeholder?: string;\r\n control: Control>;\r\n};\r\nconst ControlledTextField: React.FC = ({\r\n name,\r\n type,\r\n defaultValue = '',\r\n fullWidth = true,\r\n variant = 'outlined',\r\n margin = 'normal',\r\n minRows,\r\n multiline,\r\n disabled,\r\n error,\r\n helperText,\r\n placeholder,\r\n control,\r\n}) => {\r\n return (\r\n (\r\n \r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default ControlledTextField;\r\n","import {Grid, TextField} from '@material-ui/core';\r\nimport baseStyle from '../../../../styles/styles.module.scss';\r\nimport FormControl from '../../../commons/FormControl';\r\nimport Select from '../../../commons/Select';\r\nimport {CarType} from '../../../../models/Reservation/Forms/ICarForm';\r\nimport ControlledDateTimePicker from '../../../commons/DateTimePicker/ControlledDateTimePicker';\r\nimport moment from 'moment/moment';\r\nimport React from 'react';\r\nimport {Controller, useFormContext, useWatch} from 'react-hook-form';\r\nimport ControlledTextField from '../../../commons/controlled/ControlledTextField';\r\n\r\ntype Props = {\r\n disabled: boolean;\r\n minDate: Date | null;\r\n};\r\nconst RentalForm = (props: Props): JSX.Element => {\r\n const { disabled, minDate } = props;\r\n const form = useFormContext();\r\n const minDateWatch = useWatch({\r\n name: 'pickUpDate',\r\n control: form.control,\r\n });\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n (\r\n ({\r\n value: type,\r\n label: type,\r\n }))}\r\n error={!!form.errors.carType}\r\n errorMessage={form.errors?.carType?.message ?? ''}\r\n />\r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RentalForm;\r\n","import {Grid, TextField} from '@material-ui/core';\r\nimport baseStyle from '../../../../styles/styles.module.scss';\r\nimport FormControl from '../../../commons/FormControl';\r\nimport ControlledDateTimePicker from '../../../commons/DateTimePicker/ControlledDateTimePicker';\r\nimport moment from 'moment/moment';\r\nimport React from 'react';\r\nimport {useFormContext} from 'react-hook-form';\r\nimport {Alert} from '@material-ui/lab';\r\n\r\ntype Props = {\r\n disabled: boolean;\r\n minDate: Date | null;\r\n};\r\nconst LuxPoolForm = (props: Props): JSX.Element => {\r\n const { disabled, minDate } = props;\r\n const form = useFormContext();\r\n const minDateWatch: Date = form.watch('pickUpDate', new Date());\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Please note that there are limited amount of pool cars and subject\r\n to availability\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LuxPoolForm;\r\n","import {Box, Grid, TextField} from '@material-ui/core';\r\nimport baseStyle from '../../../../styles/styles.module.scss';\r\nimport FormControl from '../../../commons/FormControl';\r\nimport ControlledDateTimePicker from '../../../commons/DateTimePicker/ControlledDateTimePicker';\r\nimport moment from 'moment/moment';\r\nimport React from 'react';\r\nimport {useFormContext} from 'react-hook-form';\r\nimport ToggleButtons from '../../../commons/ToggleButtons';\r\nimport {Alert} from '@material-ui/lab';\r\nimport ControlledTextField from '../../../commons/controlled/ControlledTextField';\r\n\r\ntype Props = {\r\n disabled: boolean;\r\n minDate: Date | null;\r\n};\r\nconst CompanyCarForm = (props: Props): JSX.Element => {\r\n const { disabled, minDate } = props;\r\n const form = useFormContext();\r\n const minDateWatch: Date = form.watch('pickUpDate', new Date());\r\n\r\n return (\r\n <>\r\n \r\n \r\n Please use the car mileage form\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CompanyCarForm;\r\n","import {Box, Grid, TextField} from '@material-ui/core';\r\nimport {Alert} from '@material-ui/lab';\r\nimport moment from 'moment/moment';\r\nimport React from 'react';\r\nimport {useFormContext} from 'react-hook-form';\r\nimport baseStyle from '../../../../styles/styles.module.scss';\r\nimport ControlledTextField from '../../../commons/controlled/ControlledTextField';\r\nimport ControlledDateTimePicker from '../../../commons/DateTimePicker/ControlledDateTimePicker';\r\nimport FormControl from '../../../commons/FormControl';\r\nimport ToggleButtons from '../../../commons/ToggleButtons';\r\n\r\ntype Props = {\r\n disabled: boolean;\r\n minDate: Date | null;\r\n};\r\nconst PrivateCarForm = (props: Props): JSX.Element => {\r\n const { disabled, minDate } = props;\r\n const form = useFormContext();\r\n const minDateWatch: Date = form.watch('pickUpDate', new Date());\r\n\r\n return (\r\n <>\r\n \r\n \r\n Please use the car mileage form\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PrivateCarForm;\r\n","import {Grid, TextField} from '@material-ui/core';\r\nimport baseStyle from '../../../../styles/styles.module.scss';\r\nimport FormControl from '../../../commons/FormControl';\r\nimport ControlledDateTimePicker from '../../../commons/DateTimePicker/ControlledDateTimePicker';\r\nimport moment from 'moment/moment';\r\nimport React from 'react';\r\nimport {useFormContext} from 'react-hook-form';\r\nimport ControlledTextField from '../../../commons/controlled/ControlledTextField';\r\n\r\ntype Props = {\r\n disabled: boolean;\r\n minDate: Date | null;\r\n};\r\nconst CarpoolingForm = (props: Props): JSX.Element => {\r\n const { disabled, minDate } = props;\r\n const form = useFormContext();\r\n const minDateWatch: Date = form.watch('pickUpDate', new Date());\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CarpoolingForm;\r\n","export const canEditFields = (\r\n isAgent: boolean,\r\n isEdit: boolean,\r\n isApproved: boolean\r\n) => {\r\n return isAgent || !(isApproved && isEdit);\r\n};\r\nexport default canEditFields;\r\n","import moment from 'moment';\r\nimport React, {useEffect, useMemo, useState} from 'react';\r\nimport {FormProvider, useForm} from 'react-hook-form';\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Box, Button, Divider, Grid} from '@material-ui/core';\r\nimport {useReservationContext} from '../../../context/ReservationProvider/ReservationProvider';\r\nimport {useUserContext} from '../../../context/User/UserContext';\r\nimport useAgent from '../../../hooks/useAgent';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport useReservationPassengers from '../../../hooks/useReservationPassengers';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport useTaskAttachments from '../../../hooks/useTaskAttachments';\r\nimport ITaskExtended from '../../../models/DailyTasks/TaskList/ITaskExtended';\r\nimport {\r\n CarFormUpdateProcessedSchema,\r\n CarFormUpdateSchema,\r\n CarpoolingFormSchema,\r\n CompanyCarFormSchema,\r\n ICarForm,\r\n LuxPoolSchema,\r\n PrivateCarFormSchema,\r\n RentalCarFormSchema,\r\n ReservationCarType,\r\n} from '../../../models/Reservation/Forms/ICarForm';\r\nimport ICar from '../../../models/Reservation/ICar';\r\nimport {ReservationStatus, ServiceStatus,} from '../../../models/Reservation/ReservationEnum';\r\nimport baseStyle from '../../../styles/styles.module.scss';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport StepperActions from '../../commons/Stepper/StepperActions';\r\nimport {AgentForm} from '../commons';\r\nimport ClearFormMobile from '../commons/ClearFormMobile';\r\nimport styles from './Steps.module.scss';\r\nimport ToggleButtons from '../../commons/ToggleButtons';\r\nimport _ from 'lodash';\r\nimport RentalForm from './carTypeForms/RentalForm';\r\nimport LuxPoolForm from './carTypeForms/LuxPoolForm';\r\nimport CompanyCarForm from './carTypeForms/CompanyCarForm';\r\nimport PrivateCarForm from './carTypeForms/PrivateCarForm';\r\nimport CarpoolingForm from './carTypeForms/CarpoolingForm';\r\nimport canEditFields from './carTypeForms/canEditFields';\r\n\r\nexport interface ICarStepProps {}\r\n\r\nconst CarStep: React.FC = () => {\r\n const {\r\n state: {\r\n memberInformations,\r\n selectedTripType,\r\n booking,\r\n activeCar,\r\n activeStep,\r\n steps,\r\n booking: { status: bookingStatus },\r\n isDirty,\r\n },\r\n nextStep,\r\n previousStep,\r\n cancelBooking,\r\n setActiveCar,\r\n upsertCar,\r\n scrollToTop,\r\n } = useReservationContext();\r\n const { isAgent } = useAgent();\r\n const breakpoint = useBreakpoint();\r\n const { addMessage } = useSnackbar();\r\n const { permissions } = useUserContext();\r\n const allowPastBooking = permissions.includes(\r\n PermissionsList.eTravelReservationPastBooking\r\n );\r\n const [schema, setSchema] = useState<\r\n | typeof RentalCarFormSchema\r\n | typeof CarFormUpdateSchema\r\n | typeof CarFormUpdateProcessedSchema\r\n | typeof LuxPoolSchema\r\n >(RentalCarFormSchema);\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n defaultValues: {\r\n reservationCarType: undefined,\r\n rentalCompany: undefined,\r\n carType: undefined,\r\n pickUpLocation: undefined,\r\n pickUpDate: null,\r\n dropOffLocation: undefined,\r\n dropOffDate: null,\r\n estimatedCost: undefined,\r\n travelerComment: undefined,\r\n estimatedDistance: undefined,\r\n distanceUnit: undefined,\r\n driverName: undefined,\r\n status: ServiceStatus.Request,\r\n blockedFrom: [],\r\n },\r\n resolver: yupResolver(schema),\r\n });\r\n\r\n const reservationTypeWatch = form.watch('reservationCarType');\r\n const isEdit = activeCar !== undefined && activeCar !== null;\r\n const isApproved = bookingStatus === ReservationStatus.Approved;\r\n const isEditAvailable = canEditFields(isAgent, isEdit, isApproved);\r\n const minDate = allowPastBooking ? null : new Date();\r\n\r\n const getCarForm = (): JSX.Element => {\r\n switch (reservationTypeWatch) {\r\n case 'Rental':\r\n return ;\r\n case 'LuxPool':\r\n return ;\r\n case 'Company':\r\n return ;\r\n case 'Private':\r\n return ;\r\n case 'Carpooling':\r\n return ;\r\n default:\r\n return <>;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n switch (reservationTypeWatch) {\r\n case 'Rental':\r\n setSchema(RentalCarFormSchema);\r\n break;\r\n case 'LuxPool':\r\n setSchema(LuxPoolSchema);\r\n break;\r\n case 'Company':\r\n setSchema(CompanyCarFormSchema);\r\n break;\r\n case 'Private':\r\n setSchema(PrivateCarFormSchema);\r\n break;\r\n case 'Carpooling':\r\n setSchema(CarpoolingFormSchema);\r\n break;\r\n default:\r\n clearForm();\r\n break;\r\n }\r\n }, [reservationTypeWatch]);\r\n\r\n const { AgentFormAttachments, computedAttachments, attachmentIsDirty } = useTaskAttachments({\r\n initialAttachments: activeCar?.task?.attachments ?? [],\r\n deleteIconClassName: styles.deleteIcon,\r\n iconButtonClassName: styles.vAligh,\r\n readOnly: !isAgent,\r\n serviceUId: activeCar?.uiId ?? 0,\r\n });\r\n\r\n const { passengers } = useReservationPassengers(\r\n memberInformations,\r\n selectedTripType,\r\n booking.reservationMembers\r\n );\r\n\r\n const editFields =\r\n isAgent ||\r\n (activeCar?.task?.status !== ServiceStatus.Cancelled &&\r\n activeCar?.task?.status !== ServiceStatus.Processed);\r\n\r\n useEffect(() => {\r\n if (activeCar) {\r\n form.reset({\r\n reservationCarType: activeCar.reservationCarType,\r\n rentalCompany: activeCar.rentalCompany,\r\n carType: activeCar.carType,\r\n pickUpLocation: activeCar.pickUpLocation,\r\n pickUpDate: activeCar.pickUpDate ?? null,\r\n dropOffLocation: activeCar.dropOffLocation,\r\n dropOffDate: activeCar.dropOffDate ?? null,\r\n estimatedCost: activeCar.estimatedCost,\r\n travelerComment: activeCar.travelerComment,\r\n status: activeCar.task.status,\r\n estimatedDistance: activeCar.estimatedDistance,\r\n driverName: activeCar.driverName,\r\n distanceUnit: activeCar.distanceUnit,\r\n blockedFrom: passengers.map((t) =>\r\n t.blockedFrom\r\n ? new Date(moment(t.blockedFrom).format('yyyy/MM/DD'))\r\n : new Date('9999-01-01')\r\n ),\r\n });\r\n form.trigger();\r\n } else {\r\n clearForm();\r\n }\r\n }, [activeCar, passengers]);\r\n\r\n const clearForm = () => {\r\n form.reset({\r\n reservationCarType: reservationTypeWatch,\r\n rentalCompany: undefined,\r\n carType: undefined,\r\n pickUpLocation: undefined,\r\n pickUpDate: null,\r\n dropOffLocation: undefined,\r\n dropOffDate: null,\r\n estimatedCost: undefined,\r\n travelerComment: undefined,\r\n estimatedDistance: undefined,\r\n distanceUnit: undefined,\r\n driverName: undefined,\r\n status: ServiceStatus.Request,\r\n blockedFrom: passengers.map((passenger) =>\r\n passenger.blockedFrom\r\n ? new Date(moment(passenger.blockedFrom).format('yyyy/MM/DD'))\r\n : new Date('9999-01-01')\r\n ),\r\n });\r\n form.clearErrors();\r\n };\r\n\r\n const handleCarFieldUpdate = (car: ICarForm, activeCar?: ICar | null) => {\r\n if (activeCar && activeCar.carId > 0) {\r\n return editFields ? { ...activeCar, ...car } : activeCar;\r\n } else {\r\n return car;\r\n }\r\n };\r\n\r\n const handleSubmit = (car: ICarForm) => {\r\n const carEntry = {\r\n CarId: activeCar?.carId ?? 0,\r\n reservationId: activeCar?.reservationId ?? 0,\r\n taskId: activeCar?.taskId ?? 0,\r\n ...handleCarFieldUpdate(car, activeCar),\r\n uiId: activeCar?.uiId ?? 0,\r\n task: handleTaskSubmit(car, activeCar?.task),\r\n travelerComment: car.travelerComment,\r\n } as unknown as ICar;\r\n upsertCar(carEntry);\r\n clearForm();\r\n addMessage(\r\n 'The car has been added to your reservation',\r\n MessageType.Success\r\n );\r\n scrollToTop();\r\n };\r\n\r\n const handleTaskSubmit = (\r\n car: ICarForm,\r\n base?: ITaskExtended\r\n ): ITaskExtended => {\r\n return {\r\n ...base,\r\n status: car.status ?? ServiceStatus.Request,\r\n type: base?.type ?? 'Car',\r\n agentId: car.agent ? car.agent.value : base?.agentId,\r\n comments: handleTaskComments(car, base),\r\n attachments: computedAttachments(),\r\n } as unknown as ITaskExtended;\r\n };\r\n\r\n const handleTaskComments = (form: ICarForm, base?: ITaskExtended) => {\r\n const entry = agentCommentEntry(form);\r\n if (base?.comments) {\r\n return entry ? [...base.comments, entry] : base.comments;\r\n }\r\n\r\n return entry ? [entry] : [];\r\n };\r\n\r\n const agentCommentEntry = (form: ICarForm) =>\r\n form.agentComment && form.agentComment.trim().length > 0\r\n ? { comment: form.agentComment }\r\n : undefined;\r\n\r\n const carForm = useMemo(\r\n () => (\r\n <>\r\n {form &&\r\n passengers &&\r\n passengers.map((_, index) => (\r\n \r\n ))}\r\n\r\n {getCarForm()}\r\n\r\n {bookingStatus === ReservationStatus.Approved && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ),\r\n [activeCar, form, passengers, reservationTypeWatch]\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n 0}\r\n name=\"reservationCarType\"\r\n control={form.control}\r\n options={ReservationCarType.map((option) => ({\r\n value: option.value,\r\n label: option.label,\r\n }))}\r\n />\r\n \r\n \r\n \r\n \r\n {!_.isEmpty(reservationTypeWatch) && carForm}\r\n {\r\n setActiveCar(undefined);\r\n }}\r\n isReservationDirty={isDirty}\r\n >\r\n \r\n {activeCar ? 'UPDATE CAR' : 'ADD CAR'}\r\n \r\n \r\n \r\n {\r\n setActiveCar(undefined);\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default CarStep;\r\n","import moment from 'moment';\r\nimport * as yup from 'yup';\r\n\r\nimport Constants from '../../../utils/Constants';\r\nimport {sortByDate, SortDateType} from '../../../utils/Dates';\r\nimport formatString from '../../../utils/Strings';\r\n\r\nexport const ClassOfTravel: string[] = ['Economy', 'Business', 'First', 'N/A'];\r\n\r\nexport enum CommercialType {\r\n Flight = 1,\r\n Train = 2,\r\n}\r\n\r\nexport interface ICommercialForm {\r\n type: CommercialType;\r\n includeAllRelatives: boolean;\r\n blockedFrom?: (Date | null)[];\r\n trainNumber?: string;\r\n flightNumber?: string;\r\n routing?: string;\r\n travelClass?: string;\r\n departureDate?: Date | null;\r\n hasLuggage?: boolean;\r\n luggages?: ILuggageForm[];\r\n travelers?: number[];\r\n estimatedCost?: number;\r\n travelerComment?: string;\r\n status: string;\r\n agent?: { label: string; value: number };\r\n agentComment?: string;\r\n}\r\n\r\nexport interface ILuggageForm {\r\n weight: number;\r\n}\r\n\r\nconst luggageFormSchema = {\r\n weight: yup\r\n .number()\r\n .min(1, formatString(Constants.validation.minNumeric, 'weight', 1))\r\n .max(32, formatString('maximum weight allowed is 32'))\r\n .typeError(Constants.validation.invalidNumber)\r\n .required(Constants.validation.required),\r\n};\r\n\r\nconst atLeastOnePassenger = (list?: (number | undefined)[] | null) => {\r\n return list ? !!list.find((x) => x && x > -1) : false;\r\n};\r\n\r\nconst checkBlocked = (\r\n allTraveler: boolean,\r\n travelers: number[],\r\n blocked: (Date | null)[],\r\n yup: yup.DateSchema\r\n): yup.DateSchema => {\r\n if (allTraveler === undefined || typeof allTraveler !== 'boolean' || !blocked)\r\n return yup;\r\n\r\n let dateToCheck = undefined;\r\n\r\n if (!!allTraveler) {\r\n dateToCheck = blocked.filter((b) => moment(b).isValid()) as Date[];\r\n } else if (travelers && travelers.length > 0) {\r\n dateToCheck = blocked.filter(\r\n (b, index) => b && travelers[index] && travelers[index] > 0\r\n ) as Date[];\r\n }\r\n\r\n if (dateToCheck && dateToCheck.length > 0) {\r\n const sortedDateToCheck = sortByDate(dateToCheck, SortDateType.ASC);\r\n return yup.max(sortedDateToCheck[0], Constants.validation.passengerBlocked);\r\n }\r\n\r\n return yup;\r\n};\r\n\r\nexport const CommercialFormSchema = yup.object().shape({\r\n type: yup.number(),\r\n includeAllRelatives: yup.boolean(),\r\n blockedFrom: yup.array().of(yup.date().nullable().default(null)),\r\n hasLuggage: yup.boolean(),\r\n trainNumber: yup\r\n .string()\r\n .max(50, formatString(Constants.validation.max, 50))\r\n .when('type', {\r\n is: CommercialType.Train,\r\n then: yup.string().required(Constants.validation.required),\r\n }),\r\n flightNumber: yup\r\n .string()\r\n .max(50, formatString(Constants.validation.max, 50))\r\n .when('type', {\r\n is: CommercialType.Flight,\r\n then: yup.string().required(Constants.validation.required),\r\n }),\r\n routing: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n travelClass: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(30, formatString(Constants.validation.max, 30)),\r\n departureDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .min(\r\n moment(new Date()).startOf('d')?.toDate(),\r\n Constants.validation.minDateToday\r\n )\r\n .when(\r\n ['includeAllRelatives', 'travelers', 'blockedFrom'],\r\n (\r\n allTraveler: boolean,\r\n travelers: number[],\r\n blocked: (Date | null)[],\r\n yup: any\r\n ) => checkBlocked(allTraveler, travelers, blocked, yup)\r\n ),\r\n estimatedCost: yup\r\n .number()\r\n .min(1, formatString(Constants.validation.minNumeric, 'estimated cost', 1))\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.invalidNumber),\r\n luggages: yup.array().when('hasLuggage', {\r\n is: true,\r\n then: yup.array().of(yup.object().shape(luggageFormSchema)),\r\n }),\r\n travelers: yup.array().when('includeAllRelatives', {\r\n is: false,\r\n then: yup\r\n .array()\r\n .of(yup.number())\r\n .test(\r\n 'atleastonepassenger',\r\n 'Please select at least one passenger',\r\n atLeastOnePassenger\r\n ),\r\n }),\r\n agentComment: yup.string(),\r\n});\r\nexport const CommercialFormSchemaAllowPastBooking = yup.object().shape({\r\n type: yup.number(),\r\n blockedFrom: yup.array().of(yup.date().nullable().default(null)),\r\n includeAllRelatives: yup.boolean(),\r\n hasLuggage: yup.boolean(),\r\n trainNumber: yup\r\n .string()\r\n .max(50, formatString(Constants.validation.max, 50))\r\n .when('type', {\r\n is: CommercialType.Train,\r\n then: yup.string().required(Constants.validation.required),\r\n }),\r\n flightNumber: yup\r\n .string()\r\n .max(50, formatString(Constants.validation.max, 50))\r\n .when('type', {\r\n is: CommercialType.Flight,\r\n then: yup.string().required(Constants.validation.required),\r\n }),\r\n routing: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n travelClass: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(30, formatString(Constants.validation.max, 30)),\r\n departureDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .when(\r\n ['includeAllRelatives', 'travelers', 'blockedFrom'],\r\n (\r\n allTraveler: boolean,\r\n travelers: number[],\r\n blocked: (Date | null)[],\r\n yup: any\r\n ) => checkBlocked(allTraveler, travelers, blocked, yup)\r\n ),\r\n estimatedCost: yup\r\n .number()\r\n .min(1, formatString(Constants.validation.minNumeric, 'estimated cost', 1))\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.invalidNumber),\r\n luggages: yup.array().when('hasLuggage', {\r\n is: true,\r\n then: yup.array().of(yup.object().shape(luggageFormSchema)),\r\n }),\r\n travelers: yup.array().when('includeAllRelatives', {\r\n is: false,\r\n then: yup\r\n .array()\r\n .of(yup.number())\r\n .test(\r\n 'atleastonepassenger',\r\n 'Please select at least one passenger',\r\n atLeastOnePassenger\r\n ),\r\n }),\r\n agentComment: yup.string(),\r\n});\r\nexport const CommercialFormProcessedSchema = yup.object().shape({\r\n travelerComment: yup.string(),\r\n status: yup.string(),\r\n agentComment: yup.string(),\r\n});\r\n\r\nexport const CommercialFormUpdateSchema = yup.object().shape({\r\n type: yup.number(),\r\n includeAllRelatives: yup.boolean(),\r\n blockedFrom: yup.array().of(yup.date().nullable().default(null)),\r\n travelerComment: yup.string(),\r\n status: yup.string(),\r\n agentComment: yup.string(),\r\n departureDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .when(\r\n ['includeAllRelatives', 'travelers', 'blockedFrom'],\r\n (\r\n allTraveler: boolean,\r\n travelers: number[],\r\n blocked: (Date | null)[],\r\n yup: any\r\n ) => checkBlocked(allTraveler, travelers, blocked, yup)\r\n ),\r\n estimatedCost: yup\r\n .number()\r\n .min(1, formatString(Constants.validation.minNumeric, 'estimated cost', 1))\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.invalidNumber),\r\n travelers: yup.array().when('includeAllRelatives', {\r\n is: false,\r\n then: yup\r\n .array()\r\n .of(yup.number())\r\n .test(\r\n 'atleastonepassenger',\r\n 'Please select at least one passenger',\r\n atLeastOnePassenger\r\n ),\r\n }),\r\n});\r\n","import moment from 'moment';\r\nimport React from 'react';\r\nimport {useFieldArray, UseFormMethods} from 'react-hook-form';\r\n\r\nimport {Grid, IconButton} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box/Box';\r\nimport Button from '@material-ui/core/Button/Button';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as PlusIcon} from '../../../../assets/icons/plus.svg';\r\nimport {useUserContext} from '../../../../context/User/UserContext';\r\nimport useBreakpoint from '../../../../hooks/useBreakpoint';\r\nimport useClientAppContext from '../../../../hooks/useClientApp';\r\nimport {ClassOfTravel, ICommercialForm, ILuggageForm,} from '../../../../models/Reservation/Forms/ICommercialForm';\r\nimport {ICommercialUI} from '../../../../models/Reservation/ICommercial';\r\nimport {ServiceStatus} from '../../../../models/Reservation/ReservationEnum';\r\nimport baseStyle from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\nimport PermissionsList from '../../../../utils/PermissionsList';\r\nimport DatePicker from '../../../commons/DatePicker/DatePicker';\r\nimport FormControl from '../../../commons/FormControl/FormControl';\r\nimport Select from '../../../commons/Select/Select';\r\nimport TextField from '../../../commons/TextField/TextField';\r\nimport ToggleButtons from '../../../commons/ToggleButtons/ToggleButtons';\r\n\r\nexport interface ICommercialFlightFormProps {\r\n form: UseFormMethods;\r\n activeCommercial?: ICommercialUI | null;\r\n disabled: boolean;\r\n isAgent: boolean;\r\n}\r\n\r\nconst CommercialFlightForm: React.FC = ({\r\n form,\r\n activeCommercial,\r\n disabled,\r\n isAgent,\r\n}) => {\r\n const { getSettingValue } = useClientAppContext();\r\n const watchHasLuggage = form.watch(\r\n 'hasLuggage',\r\n activeCommercial?.luggages?.length\r\n ? activeCommercial?.luggages?.length > 0\r\n : false\r\n );\r\n const breakpoint = useBreakpoint();\r\n const { permissions } = useUserContext();\r\n\r\n const control = form.control;\r\n\r\n const { fields, append, remove } = useFieldArray({\r\n control,\r\n name: 'luggages',\r\n });\r\n\r\n const editFields =\r\n isAgent &&\r\n activeCommercial?.task?.status !== ServiceStatus.Cancelled &&\r\n activeCommercial?.task?.status !== ServiceStatus.Processed;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n ({\r\n value: type,\r\n label: type,\r\n }))}\r\n disabled={disabled}\r\n error={!!form.errors.travelClass}\r\n errorMessage={\r\n form.errors.travelClass ? form.errors.travelClass.message : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Estimated flight cost{' '}\r\n (USD)\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!watchHasLuggage && (\r\n \r\n {fields.map((item, index) => (\r\n 0 ? 8 : 10) : 12}\r\n md={4}\r\n key={`group[${item?.id}]`}\r\n >\r\n \r\n \r\n \r\n \r\n ))}\r\n 1 ? 4 : 2} md={4}>\r\n {!disabled && (\r\n \r\n {fields.length > 1 && (\r\n \r\n remove(fields.length - 1)}\r\n className={baseStyle.roundedIconButton}\r\n >\r\n \r\n \r\n \r\n )}\r\n append({ weight: 10 })}\r\n className={baseStyle.roundedIconButton}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n window.open(\r\n getSettingValue(Constants.settings.commercialFlightInfoLink),\r\n '_blank'\r\n )\r\n }\r\n fullWidth\r\n >\r\n Commercial Flight Info\r\n \r\n \r\n \r\n \r\n \r\n \r\n window.open(\r\n getSettingValue(Constants.settings.checkFlightInfoLink),\r\n '_blank'\r\n )\r\n }\r\n fullWidth\r\n >\r\n Visa Requirements\r\n \r\n \r\n \r\n \r\n \r\n \r\n window.open(\r\n getSettingValue(\r\n Constants.settings.commercialFlightAdditionalDetailsLink\r\n ),\r\n '_blank'\r\n )\r\n }\r\n fullWidth\r\n >\r\n Additional details on c. flight benefits\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CommercialFlightForm;\r\n","import moment from 'moment';\r\nimport React from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\n\r\nimport {Grid} from '@material-ui/core';\r\n\r\nimport {useUserContext} from '../../../../context/User/UserContext';\r\nimport {ClassOfTravel, ICommercialForm,} from '../../../../models/Reservation/Forms/ICommercialForm';\r\nimport baseStyle from '../../../../styles/styles.module.scss';\r\nimport PermissionsList from '../../../../utils/PermissionsList';\r\nimport DatePicker from '../../../commons/DatePicker/DatePicker';\r\nimport FormControl from '../../../commons/FormControl/FormControl';\r\nimport Select from '../../../commons/Select/Select';\r\nimport TextField from '../../../commons/TextField/TextField';\r\n\r\nexport interface ICommercialTrainFormProps {\r\n form: UseFormMethods;\r\n disabled: boolean;\r\n isAgent: boolean;\r\n editFields: boolean;\r\n}\r\n\r\nconst CommercialTrainForm: React.FC = ({\r\n form,\r\n disabled,\r\n isAgent,\r\n editFields,\r\n}) => {\r\n const { permissions } = useUserContext();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n ({\r\n value: type,\r\n label: type,\r\n }))}\r\n disabled={disabled}\r\n error={!!form.errors.travelClass}\r\n errorMessage={\r\n form.errors.travelClass ? form.errors.travelClass.message : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Estimated train cost{' '}\r\n (USD)\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CommercialTrainForm;\r\n","import moment from 'moment';\r\nimport React, { useEffect, useMemo, useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\n\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport {\r\n Box,\r\n Button,\r\n Divider,\r\n FormHelperText,\r\n Grid,\r\n Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { useReservationContext } from '../../../context/ReservationProvider/ReservationProvider';\r\nimport { useUserContext } from '../../../context/User/UserContext';\r\nimport useAgent from '../../../hooks/useAgent';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport useReservationPassengers from '../../../hooks/useReservationPassengers';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport useTaskAttachments from '../../../hooks/useTaskAttachments';\r\nimport ITaskExtended from '../../../models/DailyTasks/TaskList/ITaskExtended';\r\nimport {\r\n CommercialFormProcessedSchema,\r\n CommercialFormSchema,\r\n CommercialFormSchemaAllowPastBooking,\r\n CommercialFormUpdateSchema,\r\n CommercialType,\r\n ICommercialForm,\r\n} from '../../../models/Reservation/Forms/ICommercialForm';\r\nimport ICommercial from '../../../models/Reservation/ICommercial';\r\nimport {\r\n ReservationStatus,\r\n ServiceStatus,\r\n} from '../../../models/Reservation/ReservationEnum';\r\nimport baseStyle from '../../../styles/styles.module.scss';\r\nimport { MessageType } from '../../../utils/MessageType';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport StepperActions from '../../commons/Stepper/StepperActions';\r\nimport ToggleButtons from '../../commons/ToggleButtons/ToggleButtons';\r\nimport { AgentForm, PassengerList } from '../commons';\r\nimport ClearFormMobile from '../commons/ClearFormMobile';\r\nimport TravelersPicker from '../commons/TravelersPicker';\r\nimport { CommercialFlightForm, CommercialTrainForm } from './commercials';\r\nimport styles from './Steps.module.scss';\r\n\r\nconst CommercialStep: React.FC = () => {\r\n const {\r\n state: {\r\n memberInformations,\r\n selectedTripType,\r\n booking,\r\n activeCommercial,\r\n steps,\r\n activeStep,\r\n booking: { status: bookingStatus },\r\n isDirty,\r\n },\r\n nextStep,\r\n previousStep,\r\n cancelBooking,\r\n upsertCommercial,\r\n setActiveCommercial,\r\n scrollToTop,\r\n } = useReservationContext();\r\n\r\n const { isAgent } = useAgent();\r\n const editFields =\r\n isAgent &&\r\n activeCommercial?.task?.status !== ServiceStatus.Cancelled &&\r\n activeCommercial?.task?.status !== ServiceStatus.Processed;\r\n\r\n const { passengers } = useReservationPassengers(\r\n memberInformations,\r\n selectedTripType,\r\n booking.reservationMembers,\r\n booking\r\n );\r\n const breakpoint = useBreakpoint();\r\n const { addMessage } = useSnackbar();\r\n const { permissions } = useUserContext();\r\n const allowPastBooking = permissions.includes(\r\n PermissionsList.eTravelReservationPastBooking\r\n );\r\n const [schema, setSchema] = useState<\r\n | typeof CommercialFormSchema\r\n | typeof CommercialFormUpdateSchema\r\n | typeof CommercialFormSchemaAllowPastBooking\r\n | typeof CommercialFormProcessedSchema\r\n >(\r\n allowPastBooking\r\n ? CommercialFormSchemaAllowPastBooking\r\n : CommercialFormSchema\r\n );\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(schema),\r\n });\r\n\r\n const { AgentFormAttachments, computedAttachments } = useTaskAttachments({\r\n initialAttachments: activeCommercial?.task?.attachments ?? [],\r\n deleteIconClassName: styles.deleteIcon,\r\n iconButtonClassName: styles.vAligh,\r\n readOnly: !isAgent,\r\n serviceUId: activeCommercial?.uiId ?? 0,\r\n });\r\n\r\n const attachmentChanged =\r\n (activeCommercial?.task?.attachments?.length ?? 0) !==\r\n computedAttachments().length;\r\n\r\n useEffect(() => {\r\n if (activeCommercial) {\r\n if (activeCommercial.commercialId > 0) {\r\n setSchema(\r\n editFields\r\n ? CommercialFormUpdateSchema\r\n : CommercialFormProcessedSchema\r\n )\r\n } else {\r\n setSchema(\r\n allowPastBooking\r\n ? CommercialFormSchemaAllowPastBooking\r\n : CommercialFormSchema\r\n )\r\n }\r\n\r\n form.reset({\r\n trainNumber:\r\n activeCommercial.trainNumber === null\r\n ? undefined\r\n : activeCommercial.trainNumber,\r\n flightNumber:\r\n activeCommercial.flightNumber === null\r\n ? undefined\r\n : activeCommercial.flightNumber,\r\n departureDate: activeCommercial.departureDate,\r\n routing: activeCommercial.routing,\r\n luggages:\r\n activeCommercial.luggages && activeCommercial.luggages.length > 0\r\n ? [...activeCommercial.luggages]\r\n : [{ weight: 10 }],\r\n travelClass: activeCommercial.travelClass,\r\n hasLuggage: activeCommercial.luggages\r\n ? activeCommercial.luggages.length > 0\r\n : undefined,\r\n travelerComment: activeCommercial.travelerComment,\r\n estimatedCost: activeCommercial.estimatedCost,\r\n status: activeCommercial?.task.status,\r\n includeAllRelatives:\r\n passengers && activeCommercial.travelers.length === passengers.length,\r\n type: activeCommercial.flightNumber\r\n ? CommercialType.Flight\r\n : CommercialType.Train,\r\n travelers: passengers\r\n ? passengers.map((t) =>\r\n activeCommercial.travelers.find((x) => x.memberId === t.memberId)\r\n ? t.memberId\r\n : -1\r\n )\r\n : [],\r\n blockedFrom: passengers.map((t) =>\r\n t.blockedFrom\r\n ? new Date(moment(t.blockedFrom).format('yyyy/MM/DD'))\r\n : new Date('9999-01-01')\r\n ),\r\n });\r\n } else {\r\n setSchema(\r\n allowPastBooking\r\n ? CommercialFormSchemaAllowPastBooking\r\n : CommercialFormSchema\r\n );\r\n clearForm();\r\n }\r\n }, [activeCommercial, selectedTripType, passengers]);\r\n\r\n const watchType = form.watch(\r\n 'type',\r\n activeCommercial?.trainNumber ? CommercialType.Train : CommercialType.Flight\r\n );\r\n\r\n const watchIncludeAllRelatives = form.watch(\r\n 'includeAllRelatives',\r\n activeCommercial\r\n ? !selectedTripType?.multiplePassengers ||\r\n activeCommercial.travelers.length ===\r\n booking.reservationMembers.length\r\n : true\r\n );\r\n const watchDeparture = form.watch('departureDate', null);\r\n\r\n useEffect(() => {\r\n if (form && watchDeparture) {\r\n form.trigger('departureDate');\r\n }\r\n }, [watchIncludeAllRelatives, watchType]);\r\n\r\n const handleSubmit = (form: ICommercialForm) => {\r\n const entries = toEntries(form, memberInformations?.member.memberId);\r\n upsertCommercial(entries);\r\n clearForm();\r\n addMessage(\r\n `${\r\n form.type === CommercialType.Flight ? 'Flight' : 'Train'\r\n } has been added to your reservation`,\r\n MessageType.Success\r\n );\r\n scrollToTop();\r\n };\r\n\r\n const resolvePassenger = (form: ICommercialForm, ownerId: number) => {\r\n if (selectedTripType?.multiplePassengers) {\r\n return form.includeAllRelatives || passengers.length === 1\r\n ? passengers.map((t) => t.memberId)\r\n : form.travelers\r\n ? form.travelers.filter((t) => t >= 0)\r\n : [ownerId];\r\n }\r\n return [ownerId];\r\n };\r\n\r\n const toEntries = (form: ICommercialForm, ownerId: number): ICommercial[] => {\r\n if (activeCommercial && activeCommercial.commercialId > 0) {\r\n const memberId = activeCommercial?.travelers[0]?.memberId;\r\n\r\n if (editFields) {\r\n return [\r\n {\r\n ...activeCommercial,\r\n task: handleTaskSubmit(form, activeCommercial?.task),\r\n travelerComment: form.travelerComment ?? '',\r\n estimatedCost: form.estimatedCost ?? 0,\r\n departureDate: form.departureDate ?? activeCommercial.departureDate,\r\n isDeleted: false,\r\n memberId // we only have a traveler/commercial in edition\r\n },\r\n ];\r\n } else {\r\n return [\r\n {\r\n ...activeCommercial,\r\n task: handleTaskSubmit(form, activeCommercial?.task),\r\n travelerComment: form.travelerComment ?? '',\r\n isDeleted: false,\r\n memberId // we only have a traveler/commercial in edition\r\n },\r\n ];\r\n }\r\n } else {\r\n const passengersId = resolvePassenger(form, ownerId);\r\n return passengersId.map(\r\n (memberId, index) =>\r\n ({\r\n commercialId: activeCommercial?.commercialId ?? 0,\r\n reservationId: activeCommercial?.reservationId ?? 0,\r\n taskId: activeCommercial?.taskId ?? 0,\r\n ...form,\r\n luggages:\r\n form.hasLuggage && form.luggages && index === 0\r\n ? [...form.luggages]\r\n : [], // we only assign luggage to the first passenger (to be determined in following user stories)\r\n memberId: memberId,\r\n uiId: activeCommercial?.uiId ?? 0,\r\n task: handleTaskSubmit(form, activeCommercial?.task),\r\n } as unknown as ICommercial)\r\n );\r\n }\r\n };\r\n\r\n const handleTaskSubmit = (\r\n commercial: ICommercialForm,\r\n base?: ITaskExtended\r\n ): ITaskExtended => {\r\n return {\r\n ...base,\r\n status: commercial.status ?? ServiceStatus.Request,\r\n type: base?.type ?? 'Commercial',\r\n agentId: commercial.agent ? commercial.agent.value : base?.agentId,\r\n attachments: computedAttachments(),\r\n comments: handleTaskComments(commercial, base),\r\n } as unknown as ITaskExtended;\r\n };\r\n\r\n const handleTaskComments = (\r\n commercial: ICommercialForm,\r\n base?: ITaskExtended\r\n ) => {\r\n const entry = agentCommentEntry(commercial);\r\n if (base?.comments) {\r\n return entry ? [...base.comments, entry] : base.comments;\r\n }\r\n\r\n return entry ? [entry] : [];\r\n };\r\n\r\n const agentCommentEntry = (commercial: ICommercialForm) =>\r\n commercial.agentComment && commercial.agentComment.trim().length > 0\r\n ? { comment: commercial.agentComment }\r\n : undefined;\r\n\r\n const clearForm = () => {\r\n return form.reset({\r\n trainNumber: undefined,\r\n flightNumber: undefined,\r\n departureDate: null,\r\n routing: undefined,\r\n luggages: [{ weight: 10 }],\r\n travelClass: undefined,\r\n hasLuggage: false,\r\n status: ServiceStatus.Request,\r\n travelerComment: undefined,\r\n estimatedCost: undefined,\r\n includeAllRelatives: true,\r\n type: CommercialType.Flight,\r\n travelers: [],\r\n blockedFrom: passengers.map((t) =>\r\n t.blockedFrom\r\n ? new Date(moment(t.blockedFrom).format('yyyy/MM/DD'))\r\n : new Date('9999-01-01')\r\n ),\r\n });\r\n };\r\n\r\n const commercialForm = useMemo(\r\n () => (\r\n <>\r\n {form &&\r\n passengers &&\r\n passengers.map((_, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n 0\r\n }\r\n control={form.control}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {selectedTripType?.multiplePassengers &&\r\n booking.reservationMembers?.length > 1 ? (\r\n \r\n {!!activeCommercial && activeCommercial.commercialId > 0 ? (\r\n <>\r\n \r\n \r\n \r\n Traveler:{' '}\r\n \r\n \r\n \r\n {passengers.map((_, index) => (\r\n <>\r\n \r\n \r\n ))}\r\n \r\n ) : (\r\n \r\n \r\n \r\n 0\r\n }\r\n defaultValue={\r\n activeCommercial\r\n ? !selectedTripType?.multiplePassengers ||\r\n activeCommercial.travelers.length ===\r\n booking.reservationMembers.length\r\n : true\r\n }\r\n control={form.control}\r\n />\r\n \r\n \r\n \r\n <>\r\n {!watchIncludeAllRelatives && (\r\n \r\n 0\r\n }\r\n onClick={() => form.trigger('departureDate')}\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n {form.errors.travelers\r\n ? 'Please include at least one passenger'\r\n : ''}\r\n \r\n \r\n )}\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n )}\r\n {watchType === CommercialType.Flight ? (\r\n 0}\r\n isAgent={isAgent}\r\n />\r\n ) : (\r\n 0}\r\n isAgent={isAgent}\r\n editFields={editFields}\r\n />\r\n )}\r\n\r\n {bookingStatus === ReservationStatus.Approved && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ),\r\n [watchType, form, activeCommercial, passengers]\r\n );\r\n\r\n return (\r\n \r\n \r\n {commercialForm}\r\n\r\n {\r\n setActiveCommercial(undefined);\r\n }}\r\n isReservationDirty={isDirty}\r\n >\r\n \r\n {activeCommercial ? 'UPDATE F/T' : 'ADD F/T'}\r\n \r\n \r\n \r\n {\r\n setActiveCommercial(undefined);\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default CommercialStep;\r\n","import * as yup from 'yup';\r\n\r\nimport Constants from '../../../utils/Constants';\r\nimport IOption from '../../IOption';\r\n\r\nexport enum FlightTripType {\r\n OneWay = 1,\r\n RoundTrip = 2,\r\n}\r\n\r\nexport interface ISearchFlightForm {\r\n from: IOption | null;\r\n to: IOption | null;\r\n fromDate?: Date | null;\r\n toDate?: Date | null;\r\n awbIn?: string;\r\n awbOut?: string;\r\n type: FlightTripType;\r\n}\r\n\r\nconst OptionFormSchema = yup\r\n .object()\r\n .shape({\r\n label: yup.string(),\r\n value: yup.string(),\r\n })\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required);\r\n\r\nexport const SearchFlightFormSchema = yup.object().shape({\r\n type: yup.number(),\r\n from: OptionFormSchema,\r\n to: OptionFormSchema,\r\n fromDate: yup.date().required(Constants.validation.required),\r\n toDate: yup.date().when('type', {\r\n is: FlightTripType.RoundTrip,\r\n then: yup.date().required(Constants.validation.required),\r\n }),\r\n});\r\n","import React from 'react';\r\n\r\nimport { Typography } from '@material-ui/core';\r\n\r\nimport { AirportRequirement } from './CvFlightAirportRequirements';\r\n\r\nexport interface ICvFlightRequirementReportProps {\r\n requirements: AirportRequirement[];\r\n label: string;\r\n}\r\n\r\nconst CvFlightRequirementReport: React.FC = ({\r\n requirements,\r\n label,\r\n}) => {\r\n return (\r\n {`${label} : ${requirements.map(\r\n (requirement) =>\r\n ` ${requirement.code} ${requirement.requirement} hours prior departure`\r\n )}`}\r\n );\r\n};\r\n\r\nexport default CvFlightRequirementReport;\r\n","import React from 'react';\r\n\r\nimport {Box} from '@material-ui/core';\r\n\r\nimport IAirportImmigrationInfo from '../../../../models/IAirportImmigrationInfo';\r\nimport CvFlightAirportRequirementReport from './CvFlightRequirementReport';\r\n\r\nexport interface IAirportImmigrationInfoWithCode\r\n extends IAirportImmigrationInfo {\r\n code: string;\r\n}\r\n\r\nexport interface ICvFlightAirportRequirementsProps {\r\n data: IAirportImmigrationInfoWithCode[];\r\n}\r\n\r\nexport type AirportRequirement = {\r\n code: string;\r\n requirement: string;\r\n};\r\n\r\nconst airportRequirementReducer = (\r\n requirements: AirportRequirement[],\r\n hasValue: boolean,\r\n requirement: AirportRequirement\r\n) => (hasValue ? [...requirements, requirement] : [...requirements]);\r\n\r\nconst extractRequirements = (\r\n data: IAirportImmigrationInfoWithCode[],\r\n checked: (immigrationInfo: IAirportImmigrationInfo) => boolean,\r\n getRequirementField: (immigrationInfo: IAirportImmigrationInfo) => string\r\n) =>\r\n data.reduce(\r\n (requirements, immigrationInfo) =>\r\n airportRequirementReducer(\r\n requirements,\r\n checked(immigrationInfo) &&\r\n !!getRequirementField(immigrationInfo) &&\r\n getRequirementField(immigrationInfo).length > 0,\r\n {\r\n code: immigrationInfo.code,\r\n requirement: getRequirementField(immigrationInfo),\r\n }\r\n ),\r\n []\r\n );\r\n\r\nconst CvFlightAirportRequirements: React.FC<\r\n ICvFlightAirportRequirementsProps\r\n> = ({ data }) => {\r\n const immigrationReportData = extractRequirements(\r\n data,\r\n (immigrationInfo: IAirportImmigrationInfo) =>\r\n immigrationInfo.immigrationInformation,\r\n (immigrationInfo: IAirportImmigrationInfo) =>\r\n [\r\n `${immigrationInfo.immigrationSendingRequirements}`,\r\n `${immigrationInfo.immigrationSendingRequirements2}`,\r\n ]\r\n .filter((x) => x.length > 0 && x !== 'null')\r\n .join('/')\r\n );\r\n const transitReportData = extractRequirements(\r\n data,\r\n (immigrationInfo: IAirportImmigrationInfo) =>\r\n immigrationInfo.transitInformation,\r\n (immigrationInfo: IAirportImmigrationInfo) =>\r\n [\r\n `${immigrationInfo.transitSendingRequirements}`,\r\n `${immigrationInfo.transitSendingRequirements2}`,\r\n ]\r\n .filter((x) => x.length > 0 && x !== 'null')\r\n .join('/')\r\n );\r\n const trafficReportData = extractRequirements(\r\n data,\r\n (immigrationInfo: IAirportImmigrationInfo) => immigrationInfo.trafficRights,\r\n (immigrationInfo: IAirportImmigrationInfo) =>\r\n [\r\n `${immigrationInfo.trafficSendingRequirements}`,\r\n `${immigrationInfo.trafficSendingRequirements2}`,\r\n ]\r\n .filter((x) => x.length > 0 && x !== 'null')\r\n .join('/')\r\n );\r\n\r\n return (\r\n \r\n
      \r\n {immigrationReportData.length > 0 && (\r\n // \r\n
    • \r\n \r\n
    • \r\n //
      \r\n )}\r\n {/* */}\r\n {transitReportData.length > 0 && (\r\n // \r\n
    • \r\n \r\n
    • \r\n //
      \r\n )}\r\n {trafficReportData.length > 0 && (\r\n // \r\n
    • \r\n \r\n
    • \r\n //
      \r\n )}\r\n
    \r\n {/* */}\r\n
    \r\n );\r\n};\r\n\r\nexport default CvFlightAirportRequirements;\r\n","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Typography} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box/Box';\r\n\r\nimport {ReactComponent as WarningIcon} from '../../../../assets/icons/warning.svg';\r\nimport useBreakpoint from '../../../../hooks/useBreakpoint';\r\nimport useSnackbar from '../../../../hooks/useSnackbar';\r\nimport ICVFlight from '../../../../models/ICVFlight';\r\nimport AirportService from '../../../../services/AirportService';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\nimport {MessageType} from '../../../../utils/MessageType';\r\nimport formatString from '../../../../utils/Strings';\r\nimport Dialog from '../../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../commons/Dialog/DialogTitle';\r\nimport FormControl from '../../../commons/FormControl/FormControl';\r\nimport TextField from '../../../commons/TextField/TextField';\r\nimport CvFlightAirportRequirements, {IAirportImmigrationInfoWithCode,} from './CvFlightAirportRequirements';\r\n\r\nexport interface ICvFlightAirportRequirementsProps {\r\n pickedFlight: ICVFlight;\r\n pickedReturnFlight?: ICVFlight;\r\n isVisible: boolean;\r\n onClose: () => void;\r\n onCancel: () => void;\r\n onValidate: (reason: string) => void;\r\n}\r\n\r\ninterface IAirportRequirementsForm {\r\n reason?: string;\r\n}\r\n\r\nconst AirportRequirementsFormSchema = yup.object().shape({\r\n reason: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(500, formatString(Constants.validation.max, 500)),\r\n});\r\n\r\nconst CvFlightAirportRequirementsModal: React.FC<\r\n ICvFlightAirportRequirementsProps\r\n> = ({\r\n pickedFlight,\r\n pickedReturnFlight,\r\n isVisible,\r\n onClose,\r\n onCancel,\r\n onValidate,\r\n}) => {\r\n const { addMessage } = useSnackbar();\r\n const [airportsInfo, setAirportInfos] = useState<{\r\n outward: IAirportImmigrationInfoWithCode[] | undefined;\r\n return: IAirportImmigrationInfoWithCode[] | undefined;\r\n }>({\r\n outward: undefined,\r\n return: undefined,\r\n });\r\n const breakpoint = useBreakpoint();\r\n\r\n const form = useForm({\r\n resolver: yupResolver(AirportRequirementsFormSchema),\r\n });\r\n\r\n useEffect(() => {\r\n (async function loadAirportsInfos() {\r\n if (\r\n pickedReturnFlight &&\r\n moment\r\n .duration(moment(pickedReturnFlight.departureTime).diff(moment()))\r\n .asHours() < 72\r\n ) {\r\n setAirportInfos({\r\n outward: await getFlightAirportInfos(\r\n airportsToGetInfos(pickedFlight)\r\n ),\r\n return: await getFlightAirportInfos(\r\n airportsToGetInfos(pickedReturnFlight)\r\n ),\r\n });\r\n } else {\r\n setAirportInfos({\r\n outward: await getFlightAirportInfos(\r\n airportsToGetInfos(pickedFlight)\r\n ),\r\n return: undefined,\r\n });\r\n }\r\n })();\r\n }, [pickedFlight, pickedReturnFlight]);\r\n\r\n const getFlightAirportInfos = async (\r\n codes: string[]\r\n ): Promise => {\r\n try {\r\n if (codes.length > 0) {\r\n const details = await AirportService.getDetailsForCodes(codes);\r\n return details.map((detail) => ({\r\n ...detail.immigrationInfo,\r\n code: detail.code,\r\n }));\r\n }\r\n } catch (error) {\r\n addMessage(\"Couln't retrieve routing airports data\", MessageType.Error);\r\n }\r\n };\r\n\r\n const airportsToGetInfos = (flight?: ICVFlight): string[] =>\r\n flight?.routing.split(' ').slice(1) ?? [];\r\n\r\n const handleSubmit = (form: IAirportRequirementsForm) => {\r\n onValidate(form.reason ?? '');\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Booking a flight within 72 hours\r\n \r\n \r\n \r\n \r\n Please give a reason for this reservation\r\n \r\n \r\n \r\n \r\n \r\n \r\n If booking within 72 hours prior departure, the following\r\n requirements must be respected. (Except if special approvals from\r\n authorities received)\r\n \r\n\r\n {airportsInfo.outward && (\r\n \r\n )}\r\n {airportsInfo.return && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n Non-compliance with the requirements can result in deportation and\r\n fines.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {}}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CvFlightAirportRequirementsModal;\r\n","import produce from 'immer';\r\nimport _ from 'lodash';\r\nimport moment from 'moment';\r\nimport React, {useContext, useState} from 'react';\r\n\r\nimport {Button, CircularProgress, Typography} from '@material-ui/core';\r\n\r\nimport {useCVFlightsContext} from '../../../../context/CVFlightsContext/CVFlightsContext';\r\nimport {useReservationContext} from '../../../../context/ReservationProvider/ReservationProvider';\r\nimport {UserContext} from '../../../../context/User/UserContext';\r\nimport {useModal} from '../../../../hooks/useModal';\r\nimport useReservationPassengers from '../../../../hooks/useReservationPassengers';\r\nimport useSnackbar from '../../../../hooks/useSnackbar';\r\nimport {CVFlightStatus} from '../../../../models/Enum';\r\nimport ICVFlight, {ICVFlightLeg, IReservationCVFlightLegMember,} from '../../../../models/ICVFlight';\r\nimport {IOverlappingFlightForReservation} from '../../../../models/IOverlappingFlightForReservation';\r\nimport ReservationService from '../../../../services/ReservationService';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\nimport {MessageType} from '../../../../utils/MessageType';\r\nimport PermissionsList from '../../../../utils/PermissionsList';\r\nimport Dialog from '../../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../commons/Dialog/DialogTitle';\r\nimport StepperActions from '../../../commons/Stepper/StepperActions';\r\nimport CvFlightAirportRequirementsModal from './CvFlightAirportRequirementsModal';\r\n\r\nexport interface ICvFlightStepActionsProps {\r\n onFlightAdded: () => void;\r\n}\r\n\r\nconst CvFlightStepActions: React.FC = ({\r\n onFlightAdded,\r\n}) => {\r\n const {\r\n setOverlapping,\r\n overlapping,\r\n pickedFlight,\r\n pickedReturnFlight,\r\n search,\r\n reset,\r\n } = useCVFlightsContext();\r\n const { permissions: userPermissions } = useContext(UserContext);\r\n const {\r\n showModal: showConfirmation,\r\n hideModal: hideConfirmation,\r\n isVisible: isVisibleConfirmation,\r\n } = useModal();\r\n const {\r\n showModal: showUnauthorized,\r\n hideModal: hideUnauthorized,\r\n isVisible: isVisibleUnAuthorized,\r\n } = useModal();\r\n const {\r\n showModal: showAuthorized,\r\n hideModal: hideAuthorized,\r\n isVisible: isVisibleAuthorized,\r\n } = useModal();\r\n const [validating, setValidating] = useState(false);\r\n const { addMessage } = useSnackbar();\r\n\r\n const {\r\n state: {\r\n activeStep,\r\n steps,\r\n booking: {\r\n reservationMembers,\r\n cvFlights,\r\n reservationId,\r\n removedCVMember,\r\n },\r\n memberInformations,\r\n selectedTripType,\r\n isDirty,\r\n },\r\n nextStep,\r\n previousStep,\r\n cancelBooking,\r\n upsertCvFlight,\r\n scrollToTop,\r\n } = useReservationContext();\r\n\r\n const { passengers } = useReservationPassengers(\r\n memberInformations,\r\n selectedTripType,\r\n reservationMembers\r\n );\r\n\r\n const actionsEnabled =\r\n !overlapping &&\r\n (passengers && search?.toDate\r\n ? !!pickedFlight && !!pickedReturnFlight\r\n : !!pickedFlight);\r\n\r\n const attachMembers = (\r\n flight: ICVFlight,\r\n isReturnFlight: boolean,\r\n reason?: string\r\n ) => {\r\n flight = {\r\n ...flight,\r\n priority: '',\r\n awbNumber: isReturnFlight ? search?.awbOut ?? '' : search?.awbIn ?? '',\r\n reason: reason,\r\n };\r\n return produce(flight, (draft) => {\r\n draft.cvFlightLegs = draft.cvFlightLegs.map((leg) => ({\r\n ...leg,\r\n reservationCVFlightLegMembers: passengers.map(\r\n (p): IReservationCVFlightLegMember => ({\r\n memberId: p.memberId,\r\n status: CVFlightStatus.Request,\r\n })\r\n ),\r\n }));\r\n });\r\n };\r\n\r\n const flightAlreadyAdded = (flight?: ICVFlight) =>\r\n !!flight &&\r\n !!cvFlights?.find(\r\n (f) =>\r\n f.flightNumber === flight.flightNumber &&\r\n f.flightDate === flight.flightDate &&\r\n f.routing === flight.routing\r\n );\r\n\r\n const handleDuplicate = async () => {\r\n setValidating(true);\r\n const outWardDuplicate = flightAlreadyAdded(pickedFlight);\r\n const returnDuplicate = flightAlreadyAdded(pickedReturnFlight);\r\n\r\n if (outWardDuplicate || returnDuplicate) {\r\n const outWardNumber = outWardDuplicate ? pickedFlight?.flightDesc : '';\r\n const returnNumber = returnDuplicate\r\n ? pickedReturnFlight?.flightDesc\r\n : '';\r\n outWardDuplicate && returnDuplicate\r\n ? addMessage(\r\n `The flights picked ${outWardNumber},${returnNumber} have already been added, please select others`,\r\n MessageType.Error\r\n )\r\n : addMessage(\r\n `One of the flight picked ${outWardNumber}${returnNumber} has already been added, please select another`,\r\n MessageType.Error\r\n );\r\n setValidating(false);\r\n return false;\r\n } else if (\r\n pickedFlight &&\r\n (await ReservationService.hasBookedFlight(\r\n pickedFlight.flightNumber,\r\n passengers.map((p) => p.memberId),\r\n reservationId ?? 0\r\n ))\r\n ) {\r\n addMessage(\r\n 'The reservation overlaps with an existing reservation.',\r\n MessageType.Error\r\n );\r\n setValidating(false);\r\n return false;\r\n } else if (\r\n pickedReturnFlight &&\r\n (await ReservationService.hasBookedFlight(\r\n pickedReturnFlight.flightNumber,\r\n passengers.map((p) => p.memberId),\r\n reservationId ?? 0\r\n ))\r\n ) {\r\n addMessage(\r\n 'The reservation overlaps with an existing reservation.',\r\n MessageType.Error\r\n );\r\n setValidating(false);\r\n return false;\r\n }\r\n setValidating(false);\r\n return true;\r\n };\r\n\r\n const getOverlappingFlight = async (): Promise<\r\n IOverlappingFlightForReservation | undefined\r\n > => {\r\n if (!pickedFlight) return;\r\n\r\n const departureFlightDeparture = pickedFlight.departureTime;\r\n const returnFlightDeparture = pickedReturnFlight?.departureTime;\r\n const cvFlightIds = removedCVMember?.map((x) => x.cvFlightId) ?? [];\r\n\r\n return await ReservationService.hasOverlappingFlight(\r\n cvFlightIds,\r\n passengers.map((e) => e.memberId),\r\n departureFlightDeparture,\r\n returnFlightDeparture\r\n );\r\n };\r\n\r\n const handleAddFlight = async () => {\r\n try {\r\n setOverlapping(undefined);\r\n const overlappingFlight = await getOverlappingFlight();\r\n if (overlappingFlight && !_.isEmpty(overlappingFlight)) {\r\n setOverlapping(overlappingFlight);\r\n addMessage(\r\n `Flight ${overlappingFlight.flightNumber} in reservation ${overlappingFlight.reservationNumber} overlaps with one of the selected flights`\r\n );\r\n return;\r\n }\r\n\r\n if (pickedFlight && (await handleDuplicate())) {\r\n const timeBeforeBeginningOfTrip = moment\r\n .duration(moment(pickedFlight.departureTime).diff(moment()))\r\n .asHours();\r\n if (timeBeforeBeginningOfTrip < 72) {\r\n userPermissions.includes(\r\n PermissionsList.eTravelReservation72hrsBooking\r\n )\r\n ? showAuthorized()\r\n : showUnauthorized();\r\n } else if (\r\n !selectedTripType?.isBusiness &&\r\n timeBeforeBeginningOfTrip >= 72 &&\r\n timeBeforeBeginningOfTrip < 120\r\n ) {\r\n showConfirmation();\r\n } else {\r\n addFlights();\r\n scrollToTop();\r\n }\r\n }\r\n } catch (error) {\r\n addMessage('Something went wrong. Please try again.');\r\n }\r\n };\r\n\r\n const addFlights = (reason?: string) => {\r\n setOverlapping(undefined);\r\n if (pickedFlight) {\r\n upsertCvFlight(attachMembers(pickedFlight, false, reason));\r\n }\r\n if (search?.toDate && pickedReturnFlight) {\r\n upsertCvFlight(attachMembers(pickedReturnFlight, true, reason));\r\n }\r\n reset();\r\n onFlightAdded();\r\n addMessage(\r\n 'Flight has been added to your reservation',\r\n MessageType.Success\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {validating ? : 'ADD FLIGHT'}\r\n \r\n \r\n {pickedFlight && (\r\n <>\r\n \r\n Your trip is a last minute vacation.\r\n \r\n \r\n Are you sure to book this flight?\r\n \r\n \r\n \r\n \r\n {\r\n hideConfirmation();\r\n addFlights();\r\n scrollToTop();\r\n }}\r\n />\r\n \r\n \r\n \r\n Booking a flight within 72 hours\r\n \r\n \r\n You do not have the rights to select a flight within 72 hours.\r\n If necessary, please contact the Travel Office at extension\r\n 3604.\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n hideAuthorized();\r\n addFlights(reason);\r\n scrollToTop();\r\n }}\r\n />\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CvFlightStepActions;\r\n","import moment from 'moment-timezone';\r\nimport React, {useEffect} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport {scroller} from 'react-scroll';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Box, Button, Grid} from '@material-ui/core';\r\n\r\nimport {ReactComponent as SearchIcon} from '../../../assets/icons/search.svg';\r\nimport {useCVFlightsContext} from '../../../context/CVFlightsContext/CVFlightsContext';\r\nimport {useReservationContext} from '../../../context/ReservationProvider/ReservationProvider';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport useClientAppContext from '../../../hooks/useClientApp';\r\nimport useReservationPassengers from '../../../hooks/useReservationPassengers';\r\nimport {\r\n FlightTripType,\r\n ISearchFlightForm,\r\n SearchFlightFormSchema,\r\n} from '../../../models/Reservation/Forms/ISearchFlightForm';\r\nimport IPassenger from '../../../models/Reservation/IPassenger';\r\nimport baseStyle from '../../../styles/styles.module.scss';\r\nimport {sortByDate, SortDateType} from '../../../utils/Dates';\r\nimport DatePicker from '../../commons/DatePicker/DatePicker';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport Searchcomplete from '../../commons/Searchcomplete/Searchcomplete';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport ToggleButtons from '../../commons/ToggleButtons/ToggleButtons';\r\nimport {CvFlightStepperActions} from './cvflights';\r\n\r\nexport interface ICvFlightStepProps {}\r\n\r\nconst CvFlightStep: React.FC = () => {\r\n const { airportsTimeZones } = useClientAppContext();\r\n\r\n const {\r\n state: { selectedTripType, memberInformations, booking },\r\n } = useReservationContext();\r\n\r\n const { passengers } = useReservationPassengers(\r\n memberInformations,\r\n selectedTripType,\r\n booking.reservationMembers\r\n );\r\n\r\n const { searchFlights } = useCVFlightsContext();\r\n const breakpoint = useBreakpoint();\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(SearchFlightFormSchema),\r\n });\r\n\r\n useEffect(() => {}, [form.formState.isValid, form.control]);\r\n\r\n const getPassengerBlockedFromThreshold = (\r\n travelers: IPassenger[] | undefined\r\n ) => {\r\n if (travelers) {\r\n const blockedDates = travelers\r\n .filter((t) => !!t.blockedFrom)\r\n .map((t) => t.blockedFrom!);\r\n if (blockedDates && blockedDates.length > 0) {\r\n const sortedDates = sortByDate(blockedDates, SortDateType.ASC);\r\n return new Date(moment(sortedDates[0]).format('yyyy/MM/DD'));\r\n }\r\n }\r\n\r\n return undefined;\r\n };\r\n\r\n const handleSubmit = async (search: ISearchFlightForm) => {\r\n if (search.from && search.to && search.fromDate) {\r\n searchFlights({\r\n from: search.from.value,\r\n to: search.to.value,\r\n fromDate: search.fromDate,\r\n tripTypeId: selectedTripType?.tripTypeId!,\r\n ownerId: memberInformations?.member.memberId!,\r\n toDate: search.toDate === null ? undefined : search.toDate,\r\n awbIn: search.awbIn,\r\n awbOut: search.awbOut,\r\n relations: passengers.map((t) => t.relationName),\r\n passengerBlockedFrom: getPassengerBlockedFromThreshold(passengers),\r\n });\r\n scroller.scrollTo('cv-flight-picker', {\r\n duration: 800,\r\n delay: 0,\r\n smooth: 'easeInOutQuart',\r\n });\r\n }\r\n };\r\n\r\n const clearForm = () => {\r\n form.reset({\r\n from: null,\r\n to: null,\r\n fromDate: undefined,\r\n toDate: undefined,\r\n awbIn: undefined,\r\n awbOut: undefined,\r\n type: 1,\r\n });\r\n };\r\n\r\n const searchCompleteOptions = airportsTimeZones\r\n .filter((t) => !!!t.isInactive)\r\n .map((t) => ({\r\n label: t.code,\r\n value: t.code,\r\n }));\r\n\r\n const watchType = form.watch('type', FlightTripType.RoundTrip);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {watchType === FlightTripType.RoundTrip && (\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {selectedTripType?.airBills && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {watchType === FlightTripType.RoundTrip && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n }\r\n variant=\"contained\"\r\n color=\"secondary\"\r\n disabled={!form.formState.isValid || !passengers}\r\n fullWidth={breakpoint.smdown}\r\n type=\"submit\"\r\n >\r\n Search Cargolux Flights\r\n \r\n \r\n \r\n \r\n \r\n \r\n clearForm()} />\r\n \r\n );\r\n};\r\n\r\nexport default CvFlightStep;\r\n","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgEmptyBasket(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 31,\n height: 32,\n viewBox: \"0 0 31 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.2158 4.76707C27.2158 4.76707 25.5386 3.58649 24.4821 2.90333C23.4259 2.2198 22.3698 2.09572 22.3698 2.09572C22.3698 2.09572 6.46546 1.78516 4.60136 1.78516C2.73727 1.78516 2.61318 3.02777 2.61318 3.02777L0.19072 13.092C-0.169691 14.5954 0.0913825 15.602 0.0913825 15.602C0.0913825 15.602 0.675213 17.1677 0.923735 17.938C1.17226 18.7083 1.7066 18.7083 1.7066 18.7083C1.7066 18.7083 21.5995 18.3357 22.2457 18.3106C22.892 18.2859 23.0781 17.6271 23.0781 17.6271C23.0781 17.6271 27.2779 6.36973 27.4891 5.7235C27.6881 5.07763 27.2158 4.76707 27.2158 4.76707ZM26.868 5.89779C26.868 5.89779 22.892 16.77 22.6434 17.441C22.3949 18.112 21.6372 18.112 21.6372 18.112C21.6372 18.112 3.28488 18.4598 2.24094 18.4846C1.19736 18.5093 1.63201 17.4159 1.63201 17.4159C1.63201 17.4159 4.61427 7.078 4.97433 5.90998C5.33474 4.74196 6.76347 4.89115 6.76347 4.89115C6.76347 4.89115 25.0663 5.01523 26.1966 5.00304C27.3277 5.0034 26.868 5.89779 26.868 5.89779Z\",\n fill: \"#B8349A\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.8997 23.383C29.0175 22.7493 23.4137 18.6987 23.4137 18.6987C23.4137 18.6987 22.9167 18.2888 22.0345 18.3136C21.1523 18.3383 1.78114 18.6987 1.78114 18.6987C1.78114 18.6987 1.14746 18.7113 1.14746 19.2205C1.14746 19.7301 1.25935 24.3896 1.25935 24.3896C1.25935 24.3896 1.19731 24.7748 1.45802 25.1478C1.7191 25.5204 5.49642 31.2364 5.49642 31.2364C5.49642 31.2364 5.95617 32.0687 7.4595 31.9945L28.4957 31.0377C28.4957 31.0377 30.0241 30.9757 30.1109 30.1802C30.198 29.3852 30.6079 24.3402 30.6079 24.3402C30.6079 24.3402 30.7819 24.0167 29.8997 23.383ZM28.9303 24.8863C28.9303 24.8863 7.79481 25.6566 6.9872 25.6319C6.17959 25.6072 5.73239 25.0108 5.73239 25.0108C5.73239 25.0108 2.6013 20.7364 1.91777 19.7796C1.23425 18.8228 2.6013 18.9594 2.6013 18.9594C2.6013 18.9594 21.3513 18.599 21.8978 18.5868C22.4322 18.5743 23.016 18.9594 23.016 18.9594C23.016 18.9594 28.8062 23.1592 29.701 23.8675C30.5954 24.5758 28.9303 24.8863 28.9303 24.8863Z\",\n fill: \"#B8349A\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.9218 0C20.7541 0 21.4502 0.459749 21.1644 1.26736L20.4687 2.88257H19.0396L19.7353 1.26736C19.7478 1.23006 19.7106 1.19276 19.6733 1.19276L12.7896 1.06868C12.7523 1.06868 12.7024 1.10598 12.6902 1.14327L11.9945 2.88293H10.5654L11.2611 1.14327C11.5717 0.323115 12.2054 0 13.0381 0H19.9218Z\",\n fill: \"#B8349A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmptyBasket);\nexport default __webpack_public_path__ + \"static/media/emptyBasket.68458e74.svg\";\nexport { ForwardRef as ReactComponent };","import React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../../assets/icons/editWhite.svg';\r\nimport ICar from '../../../../../models/Reservation/ICar';\r\nimport {ServiceStatus} from '../../../../../models/Reservation/ReservationEnum';\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../../utils/Constants';\r\nimport DateTime from '../../../../commons/DateTime/DateTime';\r\nimport Dialog from '../../../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../../commons/Dialog/DialogTitle';\r\nimport basketStyle from '../../../Basket/Basket.module.scss';\r\nimport moment from 'moment/moment';\r\nimport FileDownloadButton from '../../../../commons/FileDownloadButton';\r\nimport TaskService from '../../../../../services/TaskService';\r\nimport useAgent from '../../../../../hooks/useAgent';\r\n\r\ntype Props = {\r\n reservationCreation: boolean;\r\n car: ICar;\r\n activeCar?: ICar | null;\r\n setActiveCar?: (hotel?: ICar) => void;\r\n removeCar?: (id: number) => void;\r\n};\r\n\r\nfunction RentalCarReview(props: Props) {\r\n const { reservationCreation, car, setActiveCar, removeCar, activeCar } =\r\n props;\r\n const [activeModalItemId, setActiveModalItemId] = useState(-1);\r\n\r\n const isActive = (car: ICar) => activeCar && car.uiId === activeCar?.uiId;\r\n const { isAgent } = useAgent();\r\n\r\n return (\r\n \r\n CAR\r\n \r\n \r\n \r\n Rental Car {car.rentalCompany}\r\n \r\n \r\n {setActiveCar && removeCar && (\r\n \r\n {!isActive(car) && (\r\n setActiveCar(car)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n {car.task?.status !== ServiceStatus.NeedToCancel && (\r\n setActiveModalItemId(car.uiId)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n Pick up\r\n \r\n \r\n {car.pickUpLocation} -{' '}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Drop off\r\n \r\n \r\n {car.dropOffLocation} -{' '}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Estimated cost\r\n \r\n \r\n {car.estimatedCost}\r\n \r\n \r\n \r\n\r\n {!reservationCreation && (\r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {car.task?.status ?? ServiceStatus.Request}\r\n \r\n \r\n \r\n )}\r\n\r\n {car.travelerComment?.length > 0 && (\r\n \r\n \r\n \r\n Comment\r\n \r\n \r\n {car.travelerComment}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Car Type\r\n \r\n \r\n {car.carType}\r\n \r\n \r\n \r\n {isAgent && (\r\n \r\n \r\n \r\n Agent comment(s)\r\n \r\n \r\n {car.task.comments?.length > 0\r\n ? car.task.comments.map((x) => (\r\n <>\r\n \r\n Created on{' '}\r\n {moment(x.createdOn)\r\n .format('DDMMMYYYY')\r\n .toUpperCase()}{' '}\r\n at {moment(x.createdOn).format('HH:mm')} by{' '}\r\n {x.createdByName}\r\n \r\n {x.comment}\r\n \r\n ))\r\n : 'no comment'}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Attachment(s)\r\n \r\n \r\n {car.task.attachments?.length > 0\r\n ? car.task.attachments.map((attachment) => (\r\n {\r\n if (attachment.taskAttachmentId === 0) {\r\n return new Promise((resolve) =>\r\n resolve(attachment.content as Blob)\r\n );\r\n }\r\n return TaskService.getAttachment(\r\n attachment.taskAttachmentId\r\n );\r\n }}\r\n />\r\n ))\r\n : 'no attachment'}\r\n \r\n \r\n \r\n \r\n\r\n {removeCar && (\r\n setActiveModalItemId(-1)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n You are going to remove a car from your Review\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n />\r\n removeCar(car.uiId)}\r\n />\r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default RentalCarReview;\r\n","import React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../../assets/icons/editWhite.svg';\r\nimport ICar from '../../../../../models/Reservation/ICar';\r\nimport {ServiceStatus} from '../../../../../models/Reservation/ReservationEnum';\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../../utils/Constants';\r\nimport DateTime from '../../../../commons/DateTime/DateTime';\r\nimport Dialog from '../../../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../../commons/Dialog/DialogTitle';\r\nimport basketStyle from '../../../Basket/Basket.module.scss';\r\nimport moment from 'moment/moment';\r\nimport FileDownloadButton from '../../../../commons/FileDownloadButton';\r\nimport TaskService from '../../../../../services/TaskService';\r\nimport useAgent from '../../../../../hooks/useAgent';\r\n\r\ntype Props = {\r\n reservationCreation: boolean;\r\n car: ICar;\r\n activeCar?: ICar | null;\r\n setActiveCar?: (hotel?: ICar) => void;\r\n removeCar?: (id: number) => void;\r\n};\r\n\r\nfunction LuxPoolCarReview(props: Props) {\r\n const { reservationCreation, car, setActiveCar, removeCar, activeCar } =\r\n props;\r\n const [activeModalItemId, setActiveModalItemId] = useState(-1);\r\n\r\n const isActive = (car: ICar) => activeCar && car.uiId === activeCar?.uiId;\r\n const { isAgent } = useAgent();\r\n\r\n return (\r\n \r\n CAR\r\n \r\n \r\n \r\n LuxPool Car\r\n \r\n \r\n {setActiveCar && removeCar && (\r\n \r\n {!isActive(car) && (\r\n setActiveCar(car)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n {car.task?.status !== ServiceStatus.NeedToCancel && (\r\n setActiveModalItemId(car.uiId)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n Pick up\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Drop off\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {!reservationCreation && (\r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {car.task?.status ?? ServiceStatus.Request}\r\n \r\n \r\n \r\n )}\r\n\r\n {car.travelerComment?.length > 0 && (\r\n \r\n \r\n \r\n Special Requests\r\n \r\n \r\n {car.travelerComment}\r\n \r\n \r\n \r\n )}\r\n {isAgent && (\r\n \r\n \r\n \r\n Agent comment(s)\r\n \r\n \r\n {car.task.comments?.length > 0\r\n ? car.task.comments.map((x) => (\r\n <>\r\n \r\n Created on{' '}\r\n {moment(x.createdOn)\r\n .format('DDMMMYYYY')\r\n .toUpperCase()}{' '}\r\n at {moment(x.createdOn).format('HH:mm')} by{' '}\r\n {x.createdByName}\r\n \r\n {x.comment}\r\n \r\n ))\r\n : 'no comment'}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Attachment(s)\r\n \r\n \r\n {car.task.attachments?.length > 0\r\n ? car.task.attachments.map((x) => (\r\n \r\n x.taskAttachmentId === 0\r\n ? new Promise((resolve) => resolve(x.content as Blob))\r\n : TaskService.getAttachment(x.taskAttachmentId)\r\n }\r\n />\r\n ))\r\n : 'no attachment'}\r\n \r\n \r\n \r\n \r\n\r\n {removeCar && (\r\n setActiveModalItemId(-1)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n You are going to remove a car from your Review\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n />\r\n removeCar(car.uiId)}\r\n />\r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default LuxPoolCarReview;\r\n","import React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../../assets/icons/editWhite.svg';\r\nimport ICar from '../../../../../models/Reservation/ICar';\r\nimport {ServiceStatus} from '../../../../../models/Reservation/ReservationEnum';\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../../utils/Constants';\r\nimport DateTime from '../../../../commons/DateTime/DateTime';\r\nimport Dialog from '../../../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../../commons/Dialog/DialogTitle';\r\nimport basketStyle from '../../../Basket/Basket.module.scss';\r\nimport moment from 'moment/moment';\r\nimport FileDownloadButton from '../../../../commons/FileDownloadButton';\r\nimport TaskService from '../../../../../services/TaskService';\r\nimport useAgent from '../../../../../hooks/useAgent';\r\n\r\ntype Props = {\r\n reservationCreation: boolean;\r\n car: ICar;\r\n activeCar?: ICar | null;\r\n setActiveCar?: (hotel?: ICar) => void;\r\n removeCar?: (id: number) => void;\r\n};\r\n\r\nfunction CompanyCarReview(props: Props) {\r\n const { reservationCreation, car, setActiveCar, removeCar, activeCar } =\r\n props;\r\n const [activeModalItemId, setActiveModalItemId] = useState(-1);\r\n\r\n const isActive = (car: ICar) => activeCar && car.uiId === activeCar?.uiId;\r\n const { isAgent } = useAgent();\r\n\r\n return (\r\n \r\n CAR\r\n \r\n \r\n \r\n Company Car\r\n \r\n \r\n {setActiveCar && removeCar && (\r\n \r\n {!isActive(car) && (\r\n setActiveCar(car)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n {car.task?.status !== ServiceStatus.NeedToCancel && (\r\n setActiveModalItemId(car.uiId)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n Start date\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n End date\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Estimated distance\r\n \r\n \r\n {car.estimatedDistance} {car.distanceUnit.toLowerCase()}\r\n \r\n \r\n \r\n\r\n {!reservationCreation && (\r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {car.task?.status ?? ServiceStatus.Request}\r\n \r\n \r\n \r\n )}\r\n\r\n {car.travelerComment?.length > 0 && (\r\n \r\n \r\n \r\n Comment\r\n \r\n \r\n {car.travelerComment}\r\n \r\n \r\n \r\n )}\r\n {isAgent && (\r\n \r\n \r\n \r\n Agent comment(s)\r\n \r\n \r\n {car.task.comments?.length > 0\r\n ? car.task.comments.map((x) => (\r\n <>\r\n \r\n Created on{' '}\r\n {moment(x.createdOn)\r\n .format('DDMMMYYYY')\r\n .toUpperCase()}{' '}\r\n at {moment(x.createdOn).format('HH:mm')} by{' '}\r\n {x.createdByName}\r\n \r\n {x.comment}\r\n \r\n ))\r\n : 'no comment'}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Attachment(s)\r\n \r\n \r\n {car.task.attachments?.length > 0\r\n ? car.task.attachments.map((attachemnt) => (\r\n \r\n attachemnt.taskAttachmentId === 0\r\n ? new Promise((resolve) =>\r\n resolve(attachemnt.content as Blob)\r\n )\r\n : TaskService.getAttachment(\r\n attachemnt.taskAttachmentId\r\n )\r\n }\r\n />\r\n ))\r\n : 'no attachment'}\r\n \r\n \r\n \r\n \r\n\r\n {removeCar && (\r\n setActiveModalItemId(-1)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n You are going to remove a car from your Review\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n />\r\n removeCar(car.uiId)}\r\n />\r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default CompanyCarReview;\r\n","import React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../../assets/icons/editWhite.svg';\r\nimport ICar from '../../../../../models/Reservation/ICar';\r\nimport {ServiceStatus} from '../../../../../models/Reservation/ReservationEnum';\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../../utils/Constants';\r\nimport DateTime from '../../../../commons/DateTime/DateTime';\r\nimport Dialog from '../../../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../../commons/Dialog/DialogTitle';\r\nimport basketStyle from '../../../Basket/Basket.module.scss';\r\nimport moment from 'moment/moment';\r\nimport FileDownloadButton from '../../../../commons/FileDownloadButton';\r\nimport TaskService from '../../../../../services/TaskService';\r\nimport useAgent from '../../../../../hooks/useAgent';\r\n\r\ntype Props = {\r\n reservationCreation: boolean;\r\n car: ICar;\r\n activeCar?: ICar | null;\r\n setActiveCar?: (hotel?: ICar) => void;\r\n removeCar?: (id: number) => void;\r\n};\r\n\r\nfunction PrivateCarReview(props: Props) {\r\n const { reservationCreation, car, setActiveCar, removeCar, activeCar } =\r\n props;\r\n const [activeModalItemId, setActiveModalItemId] = useState(-1);\r\n\r\n const isActive = (car: ICar) => activeCar && car.uiId === activeCar?.uiId;\r\n const { isAgent } = useAgent();\r\n\r\n return (\r\n \r\n CAR\r\n \r\n \r\n \r\n Private Car\r\n \r\n \r\n {setActiveCar && removeCar && (\r\n \r\n {!isActive(car) && (\r\n setActiveCar(car)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n {car.task?.status !== ServiceStatus.NeedToCancel && (\r\n setActiveModalItemId(car.uiId)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n Start date\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n End date\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Estimated distance\r\n \r\n \r\n {car.estimatedDistance} {car.distanceUnit.toLowerCase()}\r\n \r\n \r\n \r\n\r\n {!reservationCreation && (\r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {car.task?.status ?? ServiceStatus.Request}\r\n \r\n \r\n \r\n )}\r\n\r\n {car.travelerComment?.length > 0 && (\r\n \r\n \r\n \r\n Comments\r\n \r\n \r\n {car.travelerComment}\r\n \r\n \r\n \r\n )}\r\n {isAgent && (\r\n \r\n \r\n \r\n Agent comment(s)\r\n \r\n \r\n {car.task.comments?.length > 0\r\n ? car.task.comments.map((x) => (\r\n <>\r\n \r\n Created on{' '}\r\n {moment(x.createdOn)\r\n .format('DDMMMYYYY')\r\n .toUpperCase()}{' '}\r\n at {moment(x.createdOn).format('HH:mm')} by{' '}\r\n {x.createdByName}\r\n \r\n {x.comment}\r\n \r\n ))\r\n : 'no comment'}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Attachment(s)\r\n \r\n \r\n {car.task.attachments?.length > 0\r\n ? car.task.attachments.map((x) => (\r\n \r\n x.taskAttachmentId === 0\r\n ? new Promise((resolve) => resolve(x.content as Blob))\r\n : TaskService.getAttachment(x.taskAttachmentId)\r\n }\r\n />\r\n ))\r\n : 'no attachment'}\r\n \r\n \r\n \r\n \r\n\r\n {removeCar && (\r\n setActiveModalItemId(-1)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n You are going to remove a car from your Review\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n />\r\n removeCar(car.uiId)}\r\n />\r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default PrivateCarReview;\r\n","import React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../../assets/icons/editWhite.svg';\r\nimport ICar from '../../../../../models/Reservation/ICar';\r\nimport {ServiceStatus} from '../../../../../models/Reservation/ReservationEnum';\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../../utils/Constants';\r\nimport DateTime from '../../../../commons/DateTime/DateTime';\r\nimport Dialog from '../../../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../../commons/Dialog/DialogTitle';\r\nimport basketStyle from '../../../Basket/Basket.module.scss';\r\nimport moment from 'moment/moment';\r\nimport FileDownloadButton from '../../../../commons/FileDownloadButton';\r\nimport TaskService from '../../../../../services/TaskService';\r\nimport useAgent from '../../../../../hooks/useAgent';\r\n\r\ntype Props = {\r\n reservationCreation: boolean;\r\n car: ICar;\r\n activeCar?: ICar | null;\r\n setActiveCar?: (hotel?: ICar) => void;\r\n removeCar?: (id: number) => void;\r\n};\r\n\r\nfunction CarpoolingReview(props: Props) {\r\n const { reservationCreation, car, setActiveCar, removeCar, activeCar } =\r\n props;\r\n const [activeModalItemId, setActiveModalItemId] = useState(-1);\r\n\r\n const isActive = (car: ICar) => activeCar && car.uiId === activeCar?.uiId;\r\n const { isAgent } = useAgent();\r\n\r\n return (\r\n \r\n CAR\r\n \r\n \r\n \r\n Carpooling\r\n \r\n \r\n {setActiveCar && removeCar && (\r\n \r\n {!isActive(car) && (\r\n setActiveCar(car)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n {car.task?.status !== ServiceStatus.NeedToCancel && (\r\n setActiveModalItemId(car.uiId)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n Start date\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n End date\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Driver\r\n \r\n \r\n {car.driverName}\r\n \r\n \r\n \r\n\r\n {!reservationCreation && (\r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {car.task?.status ?? ServiceStatus.Request}\r\n \r\n \r\n \r\n )}\r\n\r\n {car.travelerComment?.length > 0 && (\r\n \r\n \r\n \r\n Comments\r\n \r\n \r\n {car.travelerComment}\r\n \r\n \r\n \r\n )}\r\n {isAgent && (\r\n \r\n \r\n \r\n Agent comment(s)\r\n \r\n \r\n {car.task.comments?.length > 0\r\n ? car.task.comments.map((x) => (\r\n <>\r\n \r\n Created on{' '}\r\n {moment(x.createdOn)\r\n .format('DDMMMYYYY')\r\n .toUpperCase()}{' '}\r\n at {moment(x.createdOn).format('HH:mm')} by{' '}\r\n {x.createdByName}\r\n \r\n {x.comment}\r\n \r\n ))\r\n : 'no comment'}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Attachment(s)\r\n \r\n \r\n {car.task.attachments?.length > 0\r\n ? car.task.attachments.map((x) => (\r\n \r\n x.taskAttachmentId === 0\r\n ? new Promise((resolve) => resolve(x.content as Blob))\r\n : TaskService.getAttachment(x.taskAttachmentId)\r\n }\r\n />\r\n ))\r\n : 'no attachment'}\r\n \r\n \r\n \r\n \r\n\r\n {removeCar && (\r\n setActiveModalItemId(-1)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n You are going to remove a car from your Review\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n />\r\n removeCar(car.uiId)}\r\n />\r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default CarpoolingReview;\r\n","import React from 'react';\r\n\r\nimport {Box} from '@material-ui/core';\r\nimport ICar from '../../../../models/Reservation/ICar';\r\nimport RentalCarReview from './cars/RentalCarReview';\r\nimport LuxPoolCarReview from './cars/LuxPoolCarReview';\r\nimport CompanyCarReview from './cars/CompanyCarReview';\r\nimport PrivateCarReview from './cars/PrivateCarReview';\r\nimport CarpoolingReview from './cars/CarpoolingReview';\r\n\r\nexport interface ICarReviewProps {\r\n reservationCreation: boolean;\r\n cars?: ICar[];\r\n activeCar?: ICar | null;\r\n setActiveCar?: (hotel?: ICar) => void;\r\n removeCar?: (id: number) => void;\r\n}\r\n\r\nconst CarReview: React.FC = ({\r\n reservationCreation,\r\n cars,\r\n setActiveCar,\r\n removeCar,\r\n activeCar,\r\n}) => {\r\n const getCarReview = (car: ICar) => {\r\n switch (car.reservationCarType) {\r\n case 'Rental':\r\n return (\r\n \r\n );\r\n case 'LuxPool':\r\n return (\r\n \r\n );\r\n case 'Company':\r\n return (\r\n \r\n );\r\n case 'Private':\r\n return (\r\n \r\n );\r\n case 'Carpooling':\r\n return (\r\n \r\n );\r\n default:\r\n return <>;\r\n }\r\n };\r\n\r\n return {cars?.map((car) => getCarReview(car))};\r\n};\r\n\r\nexport default CarReview;\r\n","import moment from 'moment';\r\nimport React, {useState} from 'react';\r\n\r\nimport {Box, Grid} from '@material-ui/core';\r\nimport Link from '@material-ui/core/Link/Link';\r\nimport Typography from '@material-ui/core/Typography/Typography';\r\n\r\nimport useAgent from '../../../../hooks/useAgent';\r\nimport {ICommercialUI} from '../../../../models/Reservation/ICommercial';\r\nimport TaskService from '../../../../services/TaskService';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport FileDownloadButton from '../../../commons/FileDownloadButton/FileDownloadButton';\r\n\r\ninterface ICommercialReviewDetailsProps {\r\n commercial: ICommercialUI;\r\n}\r\n\r\nconst CommercialReviewDetails: React.FC = ({\r\n commercial,\r\n}) => {\r\n const [expanded, setExpanded] = useState(true);\r\n const { isAgent } = useAgent();\r\n\r\n return (\r\n <>\r\n \r\n setExpanded(!expanded)}\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n View {expanded ? 'less' : 'more'} information\r\n \r\n \r\n {expanded && (\r\n <>\r\n {commercial.flightNumber && (\r\n <>\r\n \r\n \r\n \r\n Checked Luggage\r\n \r\n \r\n {commercial.luggages?.length > 0 ? 'Yes' : 'No'}\r\n \r\n \r\n \r\n {commercial.luggages?.length > 0 && (\r\n \r\n \r\n \r\n Luggage(s) weight (kg)\r\n \r\n \r\n {commercial.luggages\r\n .map((luggage) => `${luggage.weight} Kg`)\r\n .join(' - ')}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {isAgent && (\r\n \r\n \r\n \r\n Agent comment(s)\r\n \r\n \r\n {commercial.task.comments?.length > 0\r\n ? commercial.task.comments.map((comment) => (\r\n <>\r\n \r\n Created on{' '}\r\n {moment(comment.createdOn)\r\n .format('DD MMM YYYY')\r\n .toUpperCase()}{' '}\r\n at {moment(comment.createdOn).format('HH:mm')} by{' '}\r\n {comment.createdByName}\r\n \r\n {comment.comment}\r\n \r\n ))\r\n : 'no comment'}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Attachment(s)\r\n \r\n \r\n {commercial.task.attachments?.length > 0\r\n ? commercial.task.attachments.map((attachment) => (\r\n \r\n attachment.taskAttachmentId === 0\r\n ? new Promise((resolve) =>\r\n resolve(attachment.content as Blob)\r\n )\r\n : TaskService.getAttachment(\r\n attachment.taskAttachmentId\r\n )\r\n }\r\n />\r\n ))\r\n : 'no attachment'}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CommercialReviewDetails;\r\n","import React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../assets/icons/editWhite.svg';\r\nimport {ICommercialUI} from '../../../../models/Reservation/ICommercial';\r\nimport {ServiceStatus} from '../../../../models/Reservation/ReservationEnum';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport DateTime from '../../../commons/DateTime/DateTime';\r\nimport basketStyle from '../../Basket/Basket.module.scss';\r\nimport BasketRemovePassengerModal, {IBasketRemoval,} from '../../Basket/BasketRemovePassengerModal';\r\nimport CommercialReviewDetails from './CommercialReviewDetails';\r\nimport moment from 'moment';\r\n\r\nexport interface ICommercialReviewProps {\r\n reservationCreation: boolean;\r\n aggregate: ICommercialUI[] | undefined;\r\n activeCommercial?: ICommercialUI | null;\r\n setActiveCommercial?: (commercial?: ICommercialUI | null) => void;\r\n removeEntry?: (commercialUiId: number) => void;\r\n removeMember?: (commercialMember: { uiId: number; memberId: number }) => void;\r\n}\r\n\r\nconst CommercialReview: React.FC = ({\r\n reservationCreation,\r\n activeCommercial,\r\n setActiveCommercial,\r\n removeEntry,\r\n removeMember,\r\n aggregate,\r\n}) => {\r\n const [activeModalItemId, setActiveModalItemId] = useState(-1);\r\n const itemTitle = (commercial: ICommercialUI) =>\r\n commercial.flightNumber\r\n ? `Flight ${commercial.flightNumber}`\r\n : `Train ${commercial.trainNumber}`;\r\n\r\n const isActive = (commercial: ICommercialUI) =>\r\n activeCommercial && commercial.uiId === activeCommercial?.uiId;\r\n\r\n const dateFormat = 'DD MMM YYYY';\r\n\r\n const removeMembers = (form: IBasketRemoval, commercial: ICommercialUI) => {\r\n if (removeEntry && removeMember) {\r\n setActiveModalItemId(-1);\r\n if (form.removeAll || form.removeAll === undefined) {\r\n removeEntry(commercial.uiId);\r\n } else {\r\n const toRemove = form.travelersToRemove.filter((r) => r >= 0);\r\n toRemove.map((memberId) =>\r\n removeMember({ uiId: commercial.uiId, memberId: memberId })\r\n );\r\n }\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n FLIGHT OR TRAIN\r\n {aggregate?.map((commercial, index) => (\r\n \r\n \r\n \r\n \r\n {itemTitle(commercial)}\r\n \r\n \r\n {removeEntry && removeMember && setActiveCommercial && (\r\n \r\n {!isActive(commercial) && (\r\n setActiveCommercial(commercial)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n {commercial.task?.status !== ServiceStatus.NeedToCancel &&\r\n commercial.departureDate &&\r\n moment(commercial.departureDate) > moment().utc() && (\r\n setActiveModalItemId(commercial.uiId)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n Date\r\n \r\n \r\n {\r\n \r\n }\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Routing\r\n \r\n \r\n {commercial.routing}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Class of travel\r\n \r\n \r\n {commercial.travelClass}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Estimated cost\r\n \r\n \r\n {commercial.estimatedCost}\r\n \r\n \r\n \r\n\r\n {!reservationCreation && (\r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {commercial.task?.status ?? ServiceStatus.Request}\r\n \r\n \r\n \r\n )}\r\n\r\n {commercial.travelerComment?.length > 0 && (\r\n \r\n \r\n \r\n Comment\r\n \r\n \r\n {commercial.travelerComment}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {removeMember && removeEntry && (\r\n setActiveModalItemId(-1)}\r\n onClose={() => setActiveModalItemId(-1)}\r\n onSubmit={(form: IBasketRemoval) =>\r\n removeMembers(form, commercial)\r\n }\r\n title={`You are going to remove a commercial entry from your basket`}\r\n travelers={commercial.travelers}\r\n validateChildren={false}\r\n />\r\n )}\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CommercialReview;\r\n","import {CVFlightStatus} from '../models/Enum';\r\nimport ICVFlight, {IReservationCVFlightLegMember} from '../models/ICVFlight';\r\nimport {ITravelerSummary} from '../models/Reservation/ICVFlightPassengerSummary';\r\nimport {IReservationMembersSummary} from '../models/Reservation/IReservationSummary';\r\n\r\nconst useCVFlightTravelers = (\r\n reservationMembers: IReservationMembersSummary[],\r\n flight: ICVFlight\r\n) => {\r\n const travelerReducer = (\r\n acc: ITravelerSummary[],\r\n curr: IReservationCVFlightLegMember\r\n ) => {\r\n const entry = acc.find((a) => a.memberId === curr.memberId);\r\n const result = acc.filter((a) => a.memberId !== curr.memberId);\r\n const update = entry\r\n ? {\r\n ...entry,\r\n statuses: [...entry.statuses, curr.status],\r\n computedStatus: computeTravelerStatus([\r\n ...entry.statuses,\r\n curr.status,\r\n ]),\r\n }\r\n : {\r\n memberName: reservationMembers.find(\r\n (x) => x.memberId === curr.memberId\r\n )?.memberName,\r\n memberId: curr.memberId,\r\n statuses: [curr.status],\r\n computedStatus: computeTravelerStatus([curr.status]),\r\n };\r\n return [...result, update];\r\n };\r\n\r\n const reduceTravelersData = (flight: ICVFlight): ITravelerSummary[] => {\r\n const members = flight.cvFlightLegs\r\n .filter((l) => l.cvFlightId === flight.cvFlightId)\r\n .flatMap((l) => l.reservationCVFlightLegMembers);\r\n return members.reduce(travelerReducer, []);\r\n };\r\n\r\n const computeTravelerStatus = (statuses: string[]) => {\r\n if (!statuses.some((t) => t !== CVFlightStatus.Request)) {\r\n return 'Requested';\r\n }\r\n if (!statuses.some((t) => t !== CVFlightStatus.Confirmed)) {\r\n return 'Booked';\r\n }\r\n if (!statuses.some((t) => t !== CVFlightStatus.Cancelled)) {\r\n return 'Cancelled';\r\n }\r\n if (!statuses.some((t) => t !== CVFlightStatus.Ticketed)) {\r\n return 'Ticketed';\r\n }\r\n\r\n return 'Waitlisted';\r\n };\r\n\r\n const travelers = reduceTravelersData(flight);\r\n\r\n return { travelers };\r\n};\r\n\r\nexport default useCVFlightTravelers;\r\n","import React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\nimport Link from '@material-ui/core/Link/Link';\r\nimport {ReactComponent as DeleteIcon} from '../../../../assets/icons/deleteBinWhite.svg';\r\nimport {useReservationContext} from '../../../../context/ReservationProvider/ReservationProvider';\r\nimport useClientAppContext from '../../../../hooks/useClientApp';\r\nimport {useModal} from '../../../../hooks/useModal';\r\nimport {ILegTimezone} from '../../../../models/IAirportTimeZone';\r\nimport ICVFlight, {ICVFlightLeg} from '../../../../models/ICVFlight';\r\nimport Constants from '../../../../utils/Constants';\r\nimport DateTime from '../../../commons/DateTime/DateTime';\r\nimport Dialog from '../../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../commons/Dialog/DialogTitle';\r\nimport basketStyle from '../../Basket/Basket.module.scss';\r\nimport styles from './CVFlightReviewDetails.module.scss';\r\n\r\ninterface ICVFlightReviewDetailsProps {\r\n flight: ICVFlight;\r\n readOnly?: boolean;\r\n}\r\n\r\nconst CVFlightReviewDetails: React.FC = ({\r\n flight,\r\n readOnly = false,\r\n}) => {\r\n const [expanded, setExpanded] = useState(true);\r\n const { airportsTimeZones } = useClientAppContext();\r\n const { upsertCvFlight } = useReservationContext();\r\n const {\r\n showModal: showConfirmationDialog,\r\n hideModal: hideConfirmationDialog,\r\n isVisible: isVisibleConfirmationDialog,\r\n } = useModal();\r\n const [selectedLeg, setSelectedLeg] = useState(\r\n undefined\r\n );\r\n const flightTimezones = flight.cvFlightLegs.map(\r\n (leg, index) => ({\r\n index: index,\r\n origin: airportsTimeZones.find((l) => l.code === leg.origin),\r\n destination: airportsTimeZones.find((l) => l.code === leg.destination),\r\n })\r\n );\r\n\r\n const handleCancelDialog = () => {\r\n hideConfirmationDialog();\r\n setSelectedLeg(undefined);\r\n };\r\n const handleConfirmDelete = () => {\r\n let startIndex = flight.cvFlightLegs.findIndex(\r\n (x) => x.etd == selectedLeg?.etd && x.origin == selectedLeg.origin\r\n );\r\n let newLegs: ICVFlightLeg[] = flight.cvFlightLegs.filter(\r\n (x, i) => i < startIndex\r\n );\r\n let newRouting = newLegs.reduce((acc, cur, index) => {\r\n return acc.concat(\r\n index === 0 ? `${cur.origin} ${cur.destination}` : ` ${cur.destination}`\r\n );\r\n }, '');\r\n\r\n let lastLeg = newLegs.slice(-1)[0];\r\n\r\n upsertCvFlight({\r\n ...flight,\r\n routing: newRouting,\r\n arrivalTime: lastLeg.ata ?? lastLeg.eta ?? lastLeg.sta,\r\n cvFlightLegs: [...newLegs],\r\n });\r\n\r\n hideConfirmationDialog();\r\n setSelectedLeg(undefined);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n setExpanded(!expanded)}\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n View {expanded ? 'less' : 'more'} information\r\n \r\n \r\n {expanded && (\r\n <>\r\n \r\n \r\n {flight.cvFlightLegs?.map((leg, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {index > 0 && !readOnly && (\r\n {\r\n setSelectedLeg(leg);\r\n showConfirmationDialog();\r\n }}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n {leg.origin}\r\n \r\n \r\n {leg.destination}\r\n \r\n \r\n {leg.flightDesc}\r\n \r\n \r\n {leg.tailNumber}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n You are going to delete legs of the routing from leg:{' '}\r\n \r\n \r\n \r\n \r\n l.code === selectedLeg?.origin)\r\n ?.timeZone\r\n }\r\n indicateMissingConversion={true}\r\n />\r\n \r\n \r\n l.code === selectedLeg?.origin)\r\n ?.timeZone\r\n }\r\n indicateMissingConversion={true}\r\n />\r\n \r\n \r\n {selectedLeg?.origin}\r\n \r\n \r\n {selectedLeg?.destination}\r\n \r\n \r\n {selectedLeg?.flightDesc}\r\n \r\n \r\n {selectedLeg?.tailNumber}\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n {\r\n handleCancelDialog();\r\n }}\r\n />\r\n handleConfirmDelete()}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CVFlightReviewDetails;\r\n","import useClientAppContext from './useClientApp';\r\nimport dayjs, {Dayjs} from 'dayjs';\r\nimport utc from 'dayjs/plugin/utc';\r\nimport timezone from 'dayjs/plugin/timezone';\r\n\r\ndayjs.extend(utc);\r\ndayjs.extend(timezone);\r\ntype UseDateTimezoneReturn = {\r\n date: Dayjs;\r\n utcString: string;\r\n};\r\nconst useDateTimezone = (\r\n datetime: Date,\r\n airportCode?: string\r\n): UseDateTimezoneReturn => {\r\n const { airportsTimeZones } = useClientAppContext();\r\n\r\n const airportTimezone = airportsTimeZones.find(\r\n (airport) => airport.code === airportCode\r\n );\r\n let date = dayjs(datetime).utc();\r\n if (airportTimezone === undefined) {\r\n return {\r\n date,\r\n utcString: '(UTC N/A)',\r\n };\r\n }\r\n date = date.tz(airportTimezone.timeZone);\r\n\r\n return {\r\n date,\r\n utcString: `(UTC ${date.format('Z')})`,\r\n };\r\n};\r\n\r\nexport default useDateTimezone;\r\n","import * as React from 'react';\r\nimport useDateTimezone from '../../../hooks/useDateTimezone';\r\n\r\ntype Props = {\r\n date: Date;\r\n airportCode?: string;\r\n};\r\nconst DateTimeZone = (props: Props): JSX.Element => {\r\n const { date, airportCode } = props;\r\n const dateTimezone = useDateTimezone(date, airportCode);\r\n\r\n return (\r\n
    \r\n {dateTimezone.date.format('DD MMM YYYY HH:mm')}\r\n \r\n
    \r\n );\r\n};\r\nexport const UTCOffset = (props: { offset: string }): JSX.Element => {\r\n const style = { color: '#808080', fontSize: '0.75rem' };\r\n\r\n return {props.offset};\r\n};\r\nexport default DateTimeZone;\r\n","import moment from 'moment';\r\nimport React, {useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Box, Button, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../assets/icons/editWhite.svg';\r\nimport useBreakpoint from '../../../../hooks/useBreakpoint';\r\nimport useCVFlightTravelers from '../../../../hooks/useCVFlightTravelerStatus';\r\nimport {CVFlightStatus} from '../../../../models/Enum';\r\nimport ICVFlight from '../../../../models/ICVFlight';\r\nimport IPassenger from '../../../../models/Reservation/IPassenger';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\nimport formatString from '../../../../utils/Strings';\r\nimport TextField from '../../../commons/TextField/TextField';\r\nimport basketStyle from '../../Basket/Basket.module.scss';\r\nimport BasketRemovePassengerModal, {IBasketRemoval,} from '../../Basket/BasketRemovePassengerModal';\r\nimport CVFlightReviewDetails from './CVFlightReviewDetails';\r\nimport DateTimeZone from '../../../commons/DateTimeZone/DateTimeZone';\r\n\r\nexport interface ICVFlightReviewProps {\r\n reservationCreation: boolean;\r\n flight: ICVFlight;\r\n allPassengers: IPassenger[];\r\n passenger: IPassenger;\r\n showAWB: boolean;\r\n removeMembers?: (form: IBasketRemoval, flight: ICVFlight) => void;\r\n updateFlight?: (flight: ICVFlight) => void;\r\n readOnly?: boolean;\r\n}\r\n\r\nexport interface ICVFlightEditForm {\r\n awbNumber: string;\r\n}\r\n\r\nconst cvFlightEditFormSchema = yup.object().shape({\r\n awbNumber: yup.string().max(30, formatString(Constants.validation.max, 30)),\r\n});\r\n\r\nconst CVFlightReview: React.FC = ({\r\n reservationCreation,\r\n allPassengers,\r\n passenger,\r\n flight,\r\n removeMembers,\r\n updateFlight,\r\n showAWB = false,\r\n readOnly = false,\r\n}) => {\r\n const [modalVisible, setModalVisible] = useState(false);\r\n const [editMode, setEditMode] = useState(false);\r\n const { travelers } = useCVFlightTravelers(\r\n allPassengers.map((p) => ({\r\n memberId: p.memberId,\r\n memberName: `${p.firstName} ${p.lastName}`,\r\n })),\r\n flight\r\n );\r\n\r\n const { handleSubmit, errors, register, formState } =\r\n useForm({\r\n resolver: yupResolver(cvFlightEditFormSchema),\r\n mode: 'onChange',\r\n });\r\n\r\n const breakpoint = useBreakpoint();\r\n\r\n const onSubmit = async (form: ICVFlightEditForm) => {\r\n if (updateFlight) {\r\n updateFlight({ ...flight, awbNumber: form.awbNumber });\r\n setEditMode(false);\r\n }\r\n };\r\n\r\n const resolvePassenger = (flight: ICVFlight) => {\r\n const legMembers = Array.from(\r\n new Set(\r\n flight.cvFlightLegs\r\n .filter((leg) => leg.cvFlightId === flight.cvFlightId)\r\n .flatMap((leg) =>\r\n leg.reservationCVFlightLegMembers.map((m) => m.memberId)\r\n )\r\n )\r\n );\r\n return legMembers\r\n .map((member) => allPassengers?.find((p) => p.memberId === member))\r\n .filter((p) => p !== undefined) as IPassenger[];\r\n };\r\n\r\n const isFutureFlight =\r\n flight.departureTime && moment(flight.departureTime) > moment().utc();\r\n\r\n const cancelEdition = () => {\r\n setEditMode(false);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Flight {flight.flightDesc}\r\n \r\n \r\n {removeMembers && (\r\n \r\n {!editMode && !readOnly && showAWB && isFutureFlight && (\r\n setEditMode(true)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n\r\n {!readOnly && isFutureFlight && (\r\n setModalVisible(true)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n Departure\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Arrival\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Routing\r\n \r\n \r\n {flight.routing}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Priority\r\n \r\n \r\n {flight.priority}\r\n \r\n \r\n \r\n\r\n {!reservationCreation && (\r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {travelers.find((t) => t.memberId === passenger.memberId)\r\n ?.computedStatus ?? CVFlightStatus.Request}\r\n \r\n \r\n \r\n )}\r\n \r\n {showAWB && (\r\n <>\r\n \r\n \r\n \r\n AWB\r\n \r\n {editMode ? (\r\n <>\r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n {flight.awbNumber ?? '-'}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n\r\n {flight.reason && flight.reason.length > 0 && (\r\n \r\n \r\n \r\n Reason\r\n \r\n \r\n {flight.reason}\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {editMode && (\r\n \r\n cancelEdition()}\r\n >\r\n {Constants.buttons.cancel}\r\n \r\n \r\n \r\n {Constants.buttons.saveChanges}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n {removeMembers && (\r\n setModalVisible(false)}\r\n onClose={() => setModalVisible(false)}\r\n onSubmit={(form: IBasketRemoval) => {\r\n setModalVisible(false);\r\n removeMembers(form, flight);\r\n }}\r\n title={`You are going to remove a flight entry from your basket`}\r\n travelers={resolvePassenger(flight)}\r\n validateChildren={true}\r\n />\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CVFlightReview;\r\n","import React from 'react';\r\n\r\nimport {Box, Typography} from '@material-ui/core';\r\n\r\nimport ICVFlight, {ICVFlightLeg} from '../../../../models/ICVFlight';\r\nimport IPassenger from '../../../../models/Reservation/IPassenger';\r\nimport {IBasketRemoval} from '../../Basket/BasketRemovePassengerModal';\r\nimport CVFlightReview from './CVFlightReview';\r\n\r\nexport interface ICvFlightReviewContainerProps {\r\n reservationCreation: boolean;\r\n flights?: ICVFlight[];\r\n allPassengers: IPassenger[];\r\n passenger: IPassenger;\r\n showAWB: boolean;\r\n removeFlight?: (id: number) => void;\r\n removeMember?: (member: { uiId: number; memberId: number }) => void;\r\n updateFlight?: (flight: ICVFlight) => void;\r\n readOnly?: boolean;\r\n}\r\n\r\nconst CvFlightReviewContainer: React.FC = ({\r\n reservationCreation,\r\n flights,\r\n removeMember,\r\n removeFlight,\r\n updateFlight,\r\n allPassengers,\r\n passenger,\r\n showAWB = false,\r\n readOnly = false,\r\n}) => {\r\n const removeMembers = (form: IBasketRemoval, flight: ICVFlight) => {\r\n if (removeFlight && removeMember) {\r\n if (form.removeAll || form.removeAll === undefined) {\r\n removeFlight(flight.uiId);\r\n } else {\r\n const toRemove = form.travelersToRemove.filter((r) => r >= 0);\r\n toRemove.length === allPassengers.length\r\n ? removeFlight(flight.uiId)\r\n : toRemove.map((memberId) =>\r\n removeMember({ uiId: flight.uiId, memberId: memberId })\r\n );\r\n }\r\n }\r\n };\r\n\r\n const isPassengerInAnyLegs = (\r\n legs: ICVFlightLeg[],\r\n passenger: IPassenger\r\n ) => {\r\n const flightPassengers = legs.flatMap(\r\n (leg) => leg.reservationCVFlightLegMembers\r\n );\r\n return !!flightPassengers.find((p) => p.memberId === passenger.memberId);\r\n };\r\n\r\n const passengerFlights = flights?.filter((flight) =>\r\n isPassengerInAnyLegs(\r\n flight.cvFlightLegs.filter((l) => l.cvFlightId === flight.cvFlightId),\r\n passenger\r\n )\r\n );\r\n\r\n return (\r\n <>\r\n {passengerFlights && passengerFlights?.length > 0 && (\r\n \r\n CARGOLUX FLIGHT\r\n {passengerFlights?.map((flight, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CvFlightReviewContainer;\r\n","import moment from 'moment';\r\nimport React, {useState} from 'react';\r\n\r\nimport {Box, Grid} from '@material-ui/core';\r\nimport Link from '@material-ui/core/Link/Link';\r\nimport Typography from '@material-ui/core/Typography/Typography';\r\n\r\nimport useAgent from '../../../../hooks/useAgent';\r\nimport IHotel from '../../../../models/Reservation/IHotel';\r\nimport TaskService from '../../../../services/TaskService';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport FileDownloadButton from '../../../commons/FileDownloadButton/FileDownloadButton';\r\n\r\ninterface IHotelReviewDetailsProps {\r\n hotel: IHotel;\r\n}\r\n\r\nconst HotelReviewDetails: React.FC = ({ hotel }) => {\r\n const [expanded, setExpanded] = useState(true);\r\n const { isAgent } = useAgent();\r\n\r\n return (\r\n <>\r\n \r\n setExpanded(!expanded)}\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n View {expanded ? 'less' : 'more'} information\r\n \r\n \r\n {expanded && (\r\n <>\r\n \r\n \r\n \r\n Room Type\r\n \r\n \r\n {hotel.roomType}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Guarantee Given\r\n \r\n \r\n {hotel.guaranteeGiven ? 'Yes' : 'No'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Invoice to Cargolux\r\n \r\n \r\n {hotel.cargoluxInvoice ? 'Yes' : 'No'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Invoice to be paid upon check-out\r\n \r\n \r\n {hotel.invoicePaidUponCheckout ? 'Yes' : 'No'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Invoice to be attached to expense report\r\n \r\n \r\n {hotel.invoiceToBeAttached ? 'Yes' : 'No'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Prepaid Reservation\r\n \r\n \r\n {hotel.prepaidReservation ? 'Yes' : 'No'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Prepaid voucher attached\r\n \r\n \r\n {hotel.prepaidVoucher ? 'Yes' : 'No'}\r\n \r\n \r\n \r\n {isAgent && (\r\n \r\n \r\n \r\n Agent comment(s)\r\n \r\n \r\n {hotel.task.comments?.length > 0\r\n ? hotel.task.comments.map((comment) => (\r\n <>\r\n \r\n Created on{' '}\r\n {moment(comment.createdOn)\r\n .format('DDMMMYYYY')\r\n .toUpperCase()}{' '}\r\n at {moment(comment.createdOn).format('HH:mm')} by{' '}\r\n {comment.createdByName}\r\n \r\n {comment.comment}\r\n \r\n ))\r\n : 'no comment'}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Attachment(s)\r\n \r\n \r\n {hotel.task.attachments?.length > 0\r\n ? hotel.task.attachments.map((x) => (\r\n \r\n x.taskAttachmentId === 0\r\n ? new Promise((resolve) =>\r\n resolve(x.content as Blob)\r\n )\r\n : TaskService.getAttachment(x.taskAttachmentId)\r\n }\r\n />\r\n ))\r\n : 'no attachment'}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default HotelReviewDetails;\r\n","import React, {useState} from 'react';\r\n\r\nimport {Box, Grid, IconButton, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../../assets/icons/deleteBinWhite.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../assets/icons/editWhite.svg';\r\nimport IHotel from '../../../../models/Reservation/IHotel';\r\nimport {ServiceStatus} from '../../../../models/Reservation/ReservationEnum';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\nimport DateTime from '../../../commons/DateTime/DateTime';\r\nimport Dialog from '../../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../commons/Dialog/DialogTitle';\r\nimport basketStyle from '../../Basket/Basket.module.scss';\r\nimport HotelReviewDetails from './HotelReviewDetails';\r\nimport moment from 'moment';\r\n\r\nexport interface IHotelReviewProps {\r\n reservationCreation: boolean;\r\n hotels?: IHotel[];\r\n activeHotel?: IHotel | null;\r\n setActiveHotel?: (hotel?: IHotel) => void;\r\n removeHotel?: (id: number) => void;\r\n}\r\n\r\nconst HotelReview: React.FC = ({\r\n reservationCreation,\r\n hotels,\r\n setActiveHotel,\r\n removeHotel,\r\n activeHotel,\r\n}) => {\r\n const [activeModalItemId, setActiveModalItemId] = useState(-1);\r\n\r\n const isActive = (hotel: IHotel) =>\r\n activeHotel && hotel.uiId === activeHotel?.uiId;\r\n\r\n const dateFormat = 'DD MMM YYYY';\r\n\r\n return (\r\n \r\n {hotels?.map((hotel, index) => (\r\n \r\n HOTEL\r\n \r\n \r\n \r\n Hotel {hotel.address}\r\n \r\n \r\n {setActiveHotel && removeHotel && (\r\n \r\n {!isActive(hotel) && (\r\n setActiveHotel(hotel)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n {hotel.task?.status !== ServiceStatus.NeedToCancel &&\r\n hotel.checkIn &&\r\n moment(hotel.checkIn) > moment().utc() && (\r\n setActiveModalItemId(hotel.uiId)}\r\n className={basketStyle.roundedIconButton}\r\n >\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n Check in\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Check out\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n City\r\n \r\n \r\n {hotel.city}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Estimated TOTAL Cost\r\n \r\n \r\n {hotel.estimatedCost}\r\n \r\n \r\n \r\n\r\n {!reservationCreation && (\r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {hotel.task?.status ?? ServiceStatus.Request}\r\n \r\n \r\n \r\n )}\r\n\r\n {hotel.travelerComment?.length > 0 && (\r\n \r\n \r\n \r\n Comment\r\n \r\n \r\n {hotel.travelerComment}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n {removeHotel && (\r\n setActiveModalItemId(-1)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n You are going to remove a hotel from your basket\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n setActiveModalItemId(-1)}\r\n />\r\n removeHotel(hotel.uiId)}\r\n />\r\n \r\n \r\n )}\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default HotelReview;\r\n","import produce from 'immer';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\n\r\nimport {Box, Divider, Grid, Typography} from '@material-ui/core';\r\n\r\nimport {ReactComponent as EmptyBasket} from '../../../../assets/icons/emptyBasket.svg';\r\nimport {useReservationContext} from '../../../../context/ReservationProvider/ReservationProvider';\r\nimport ICommercial, {ICommercialUI,} from '../../../../models/Reservation/ICommercial';\r\nimport IPassenger from '../../../../models/Reservation/IPassenger';\r\nimport CarReview from './CarReview';\r\nimport CommercialReview from './CommercialReview';\r\nimport CvFlightReviewContainer from './CvFlightReviewContainer';\r\nimport HotelReview from './HotelReview';\r\n\r\nexport interface IReviewForPassengerProps {\r\n passenger: IPassenger;\r\n allPassengers: IPassenger[];\r\n}\r\n\r\nconst ReviewForPassenger: React.FC = ({\r\n passenger,\r\n allPassengers,\r\n}) => {\r\n const {\r\n state: {\r\n selectedTripType,\r\n booking,\r\n activeCommercial,\r\n activeCar,\r\n activeHotel,\r\n },\r\n setActiveHotel,\r\n removeHotel,\r\n setActiveCar,\r\n removeCar,\r\n setActiveCommercial,\r\n removeCommercial,\r\n removeCommercialMember,\r\n removeCvFlight,\r\n removeCvFlightMember,\r\n upsertCvFlight,\r\n } = useReservationContext();\r\n\r\n const resolvePassenger = (commercial: ICommercial) =>\r\n allPassengers?.find((p) => p.memberId === commercial.memberId) ?? {\r\n firstName: 'member not found',\r\n memberId: 0,\r\n lastName: '',\r\n relationName: 'unknown',\r\n };\r\n\r\n const uiReducer = (acc: ICommercialUI[], curr: ICommercial) => {\r\n return produce(acc, (draft) => {\r\n const uiEntryIndex = acc.findIndex((c) => c.uiId === curr.uiId);\r\n if (uiEntryIndex > -1) {\r\n const entry = acc[uiEntryIndex];\r\n draft.splice(uiEntryIndex, 1, {\r\n ...entry,\r\n travelers: [...entry.travelers, resolvePassenger(curr)],\r\n });\r\n } else {\r\n draft.push({\r\n ...curr,\r\n travelers: [resolvePassenger(curr)],\r\n });\r\n }\r\n });\r\n };\r\n\r\n const aggregate = booking?.commercials\r\n ?.reduce(uiReducer, [])\r\n .filter((commercial) => commercial.travelers.indexOf(passenger) > -1);\r\n\r\n return (\r\n \r\n \r\n Trip Details\r\n \r\n {(booking?.cvFlights?.length ?? 0) > 0 ||\r\n ((booking?.commercials?.length ?? 0) > 0 &&\r\n aggregate &&\r\n aggregate.length > 0) ||\r\n (booking?.hotels?.length ?? 0) > 0 ||\r\n (booking?.cars?.length ?? 0) > 0 ? (\r\n <>\r\n {selectedTripType?.isCVFlight && (\r\n \r\n {(booking?.cvFlights?.length ?? 0) > 0 && (\r\n \r\n \r\n moment(a.departureTime).diff(b.departureTime)\r\n )}\r\n passenger={passenger}\r\n allPassengers={allPassengers}\r\n showAWB={!!selectedTripType?.airBills}\r\n removeFlight={removeCvFlight}\r\n removeMember={removeCvFlightMember}\r\n updateFlight={upsertCvFlight}\r\n />\r\n {((selectedTripType?.allowCommercial &&\r\n (booking?.commercials?.length ?? 0) > 0 &&\r\n aggregate &&\r\n aggregate.length > 0) ||\r\n (booking?.hotels?.length ?? 0) > 0 ||\r\n (booking?.cars?.length ?? 0) > 0) && }\r\n \r\n )}\r\n \r\n )}\r\n {selectedTripType?.allowCommercial &&\r\n (booking?.commercials?.length ?? 0) > 0 &&\r\n aggregate &&\r\n aggregate.length > 0 && (\r\n \r\n \r\n {\r\n const timeDiff = moment(a.departureDate).diff(\r\n b.departureDate\r\n );\r\n return timeDiff === 0 ? a.uiId - b.uiId : timeDiff;\r\n })}\r\n />\r\n {(booking?.hotels?.length ?? 0) > 0 && }\r\n \r\n \r\n )}\r\n {selectedTripType?.allowHotel && (\r\n \r\n {(booking?.hotels?.length ?? 0) > 0 && (\r\n \r\n moment(a.checkIn).diff(b.checkIn))}\r\n setActiveHotel={setActiveHotel}\r\n removeHotel={removeHotel}\r\n activeHotel={activeHotel}\r\n />\r\n {(booking?.cars?.length ?? 0) > 0 && }\r\n \r\n )}\r\n \r\n )}\r\n {selectedTripType?.allowCar && (\r\n \r\n {(booking?.cars?.length ?? 0) > 0 && (\r\n \r\n moment(a.pickUpDate).diff(b.pickUpDate))}\r\n setActiveCar={setActiveCar}\r\n removeCar={removeCar}\r\n activeCar={activeCar}\r\n />\r\n \r\n )}\r\n \r\n )}\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n Your basket is empty\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ReviewForPassenger;\r\n","import React from 'react';\r\n\r\nimport {Box, Button, CircularProgress, Grid, Tab, Tabs,} from '@material-ui/core';\r\n\r\nimport {useReservationContext} from '../../../context/ReservationProvider/ReservationProvider';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport useReservationPassengers from '../../../hooks/useReservationPassengers';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport StepperActions from '../../commons/Stepper/StepperActions';\r\nimport {ReviewSummary} from '../commons';\r\nimport ReviewForPassenger from './review/ReviewForPassenger';\r\n\r\nexport interface IReviewStepProps {}\r\n\r\nconst ReviewStep: React.FC = () => {\r\n const {\r\n state: {\r\n selectedTripType,\r\n memberInformations,\r\n booking,\r\n steps,\r\n activeStep,\r\n isDirty,\r\n savingReservation,\r\n },\r\n nextStep,\r\n previousStep,\r\n cancelBooking,\r\n saveBooking,\r\n } = useReservationContext();\r\n\r\n const { passengers, activePassengers } = useReservationPassengers(\r\n memberInformations,\r\n selectedTripType,\r\n booking.reservationMembers,\r\n booking\r\n );\r\n const [currentTab, setTab] = React.useState(0);\r\n const breakpoint = useBreakpoint();\r\n const handleChangeTab = (event: React.ChangeEvent<{}>, newValue: number) => {\r\n setTab(newValue);\r\n };\r\n\r\n return (\r\n \r\n {memberInformations && booking && selectedTripType && (\r\n <>\r\n \r\n {breakpoint.smdown && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {activePassengers.length >= 1 && (\r\n \r\n \r\n {activePassengers.map((passenger) => (\r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n {activePassengers[currentTab] && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n saveBooking()}\r\n >\r\n {savingReservation && }\r\n {!savingReservation && 'FINISH'}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ReviewStep;\r\n","import moment from 'moment';\r\nimport * as yup from 'yup';\r\n\r\nimport Constants from '../../../utils/Constants';\r\nimport formatString from '../../../utils/Strings';\r\nimport IContactLocation, {IContactLocationForm} from '../IContactLocation';\r\nimport IReservationMember from '../IReservationMember';\r\n\r\nexport interface IPersonalDataForm {\r\n defaultNextOfKinId: number;\r\n defaultPaymentInformation: string;\r\n contactInfoTicketDelivery: string;\r\n contactInfoPrimary: string;\r\n contactInfoTraveling: string;\r\n contactLocations: IContactLocationForm[];\r\n}\r\n\r\nexport const ContactLocationFormSchema = {\r\n etravelContactLocationFD: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .min(moment().startOf('day').toDate(), Constants.validation.minDate),\r\n etravelContactLocationTD: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError('')\r\n .when(\r\n 'etravelContactLocationFD',\r\n (fromDate: Date | null, schema: any) =>\r\n fromDate && schema.min(fromDate, Constants.validation.minDate)\r\n ),\r\n etravelContactLocationAD: yup\r\n .string()\r\n .required(Constants.validation.required),\r\n etravelContactLocationCI: yup\r\n .string()\r\n .required(Constants.validation.required),\r\n etravelContactLocationPH: yup\r\n .string()\r\n .required(Constants.validation.required),\r\n};\r\n\r\nexport const PersonalDataFormSchema = () => {\r\n let schema: any = {\r\n defaultNextOfKinId: yup.number().required(Constants.validation.required),\r\n contactInfoTicketDelivery: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(1024, formatString(Constants.validation.max, 1024))\r\n .matches(\r\n Constants.validation.emailMultipleRegex,\r\n Constants.validation.invalidEmail\r\n ),\r\n contactInfoPrimary: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(1024, formatString(Constants.validation.max, 1024))\r\n .matches(\r\n Constants.validation.emailMultipleRegex,\r\n Constants.validation.invalidEmail\r\n ),\r\n contactInfoTraveling: yup\r\n .string()\r\n .max(1024, formatString(Constants.validation.max, 1024))\r\n .matches(Constants.validation.emailMultipleRegex, {\r\n message: Constants.validation.invalidEmail,\r\n excludeEmptyString: true,\r\n })\r\n .nullable()\r\n .optional(),\r\n };\r\n\r\n return yup.object().shape(schema);\r\n};\r\n\r\nexport interface IPersonalData {\r\n reservationMembers: IReservationMember[];\r\n emergencyContactId: number;\r\n ccType: string;\r\n ccOwner: string;\r\n ccNumber: string;\r\n ccExpirationDate?: Date;\r\n emailTicketDelivery: string;\r\n emailPrimary: string;\r\n emailTraveling: string;\r\n contactLocations: IContactLocation[];\r\n conditionsAccepted: boolean;\r\n}\r\n","import React from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as DangerIcon} from '../../../assets/icons/danger.svg';\r\nimport {ReactComponent as WarningIcon} from '../../../assets/icons/warning.svg';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport styles from './AccordionWarningMessage.module.scss';\r\n\r\nexport interface IAccordionWarningMessageProps {\r\n message: string;\r\n isCritical?: boolean;\r\n}\r\n\r\nconst AccordionWarningMessage: React.FC = ({\r\n message,\r\n isCritical = false,\r\n}) => {\r\n const breakpoint = useBreakpoint();\r\n return (\r\n \r\n \r\n {isCritical ? : }\r\n \r\n {message}\r\n \r\n \r\n );\r\n};\r\nexport default AccordionWarningMessage;\r\n","import React from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport INextOfKin, {INextOfKinForm} from '../../models/INextOfKin';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport TextField from '../commons/TextField/TextField';\r\n\r\ninterface NextOfKinInlineFormProps {\r\n form: UseFormMethods;\r\n defaultValue: INextOfKin;\r\n readonly: boolean;\r\n}\r\n\r\nconst NextOfKinInlineForm: React.FC = ({\r\n form,\r\n defaultValue,\r\n readonly,\r\n}) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NextOfKinInlineForm;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\n\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport {\r\n Accordion,\r\n AccordionDetails,\r\n AccordionSummary,\r\n} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Link from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nimport useBreakpoint from '../../hooks/useBreakpoint';\r\nimport { useModal } from '../../hooks/useModal';\r\nimport IMemberExtended from '../../models/IMemberExtended';\r\nimport INextOfKin, { INextOfKinForm } from '../../models/INextOfKin';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Constants from '../../utils/Constants';\r\nimport isRequiredFieldMissing from '../../utils/Forms';\r\nimport Dialog from '../commons/Dialog/Dialog';\r\nimport DialogActions from '../commons/Dialog/DialogActions';\r\nimport DialogButton from '../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../commons/Dialog/DialogTitle';\r\nimport { NextOfKinFormSchema } from '../EmergencyContact';\r\nimport NextOfKinInlineForm from '../NextOfKinInlineForm/NextOfKinInlineForm';\r\nimport styles from './EmergencyContactCard.module.scss';\r\n\r\ninterface EmergencyContactCardProps {\r\n member: IMemberExtended;\r\n nextOfKin: INextOfKin;\r\n saveNextOfKin: (nextOfKin: INextOfKin) => void;\r\n deleteNextOfKin: (nextOfKinId: number) => void;\r\n}\r\n\r\nconst EmergencyContactCard: React.FC = ({\r\n member,\r\n nextOfKin,\r\n saveNextOfKin,\r\n deleteNextOfKin,\r\n}) => {\r\n const [readonly, setReadOnly] = useState(true);\r\n const [expanded, setExpanded] = useState(false);\r\n const form = useForm({\r\n resolver: yupResolver(NextOfKinFormSchema),\r\n mode: 'onChange',\r\n });\r\n const {\r\n showModal: showConfirmation,\r\n hideModal: hideConfirmation,\r\n isVisible: isVisibleConfirmation,\r\n } = useModal();\r\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(true);\r\n const breakpoint = useBreakpoint();\r\n\r\n useEffect(() => {\r\n let disabled;\r\n if (!form.formState.isDirty) {\r\n disabled = true;\r\n } else {\r\n disabled = isRequiredFieldMissing(NextOfKinFormSchema, form.getValues);\r\n }\r\n setIsSubmitDisabled(disabled);\r\n }, [form.formState.isValid, form.control, form.formState]);\r\n\r\n const handleSubmit = (\r\n submittedNextOfKin: INextOfKinForm,\r\n event?: React.BaseSyntheticEvent\r\n ) => {\r\n event?.stopPropagation();\r\n let payload: INextOfKin = {\r\n address: submittedNextOfKin.etravelNextOfKinAD,\r\n city: submittedNextOfKin.etravelNextOfKinCI,\r\n firstName: submittedNextOfKin.etravelNextOfKinFN,\r\n lastName: submittedNextOfKin.etravelNextOfKinLN,\r\n phone: submittedNextOfKin.etravelNextOfKinPH,\r\n postCode: submittedNextOfKin.etravelNextOfKinPC,\r\n relationType: submittedNextOfKin.etravelNextOfKinRT,\r\n\r\n nextOfKinId: nextOfKin.nextOfKinId,\r\n isDefault: nextOfKin.isDefault,\r\n\r\n memberId: member.memberId,\r\n };\r\n saveNextOfKin(payload);\r\n setReadOnly(true);\r\n };\r\n\r\n const handleDelete = () => {\r\n showConfirmation();\r\n };\r\n\r\n const handleEdit = () => {\r\n setReadOnly(false);\r\n };\r\n const handleCancel = () => {\r\n setReadOnly(true);\r\n form.clearErrors();\r\n form.reset();\r\n };\r\n\r\n const handleConfirmDeleteNextOfKin = () => {\r\n deleteNextOfKin(nextOfKin.nextOfKinId);\r\n hideConfirmation();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {\r\n setExpanded(!expanded);\r\n }}\r\n >\r\n : ''}\r\n className={`${styles.accordionRoots} ${\r\n baseStyles.fullAccordionFormAlignDetails\r\n } ${expanded ? '' : styles.notExpanded}`}\r\n >\r\n \r\n \r\n {`${\r\n nextOfKin?.firstName\r\n } ${nextOfKin?.lastName?.toLocaleUpperCase()}`}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n {readonly ? (\r\n <>\r\n \r\n \r\n Delete contact\r\n \r\n \r\n \r\n Edit contact\r\n \r\n \r\n ) : (\r\n \r\n \r\n {Constants.buttons.cancel}\r\n \r\n \r\n \r\n {Constants.buttons.saveChanges}\r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n You are going to delete contact\r\n \r\n {`${nextOfKin.firstName} ${nextOfKin.lastName}`}\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EmergencyContactCard;\r\n","import React from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport INextOfKin, {INextOfKinForm} from '../../models/INextOfKin';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport TextField from '../commons/TextField';\r\n\r\ninterface NextOfKinFormProps {\r\n form: UseFormMethods;\r\n defaultValue: INextOfKin;\r\n}\r\n\r\nconst NextOfKinForm: React.FC = ({\r\n form,\r\n defaultValue,\r\n}) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NextOfKinForm;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport useBreakpoint from '../../hooks/useBreakpoint';\r\nimport {useModal} from '../../hooks/useModal';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IDefaultNextOfKin from '../../models/IDefaultNextOfKin';\r\nimport IMemberExtended from '../../models/IMemberExtended';\r\nimport INextOfKin, {INextOfKinForm} from '../../models/INextOfKin';\r\nimport MemberService from '../../services/MemberService';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Constants from '../../utils/Constants';\r\nimport isRequiredFieldMissing from '../../utils/Forms';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport formatString from '../../utils/Strings';\r\nimport AddButton from '../commons/AddButton/AddButton';\r\nimport Drawer from '../commons/Drawer/Drawer';\r\nimport DrawerActions from '../commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../commons/Drawer/DrawerTitle';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport Select from '../commons/Select/Select';\r\nimport EmergencyContactCard from '../EmergencyContactCard';\r\nimport NextOfKinForm from '../NextOfKinForm/NextOfKinForm';\r\n\r\nexport const NextOfKinFormSchema = yup.object().shape({\r\n etravelNextOfKinRT: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n etravelNextOfKinFN: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n etravelNextOfKinLN: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n etravelNextOfKinPH: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n etravelNextOfKinAD: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n etravelNextOfKinPC: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(10, formatString(Constants.validation.max, 10)),\r\n etravelNextOfKinCI: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n});\r\n\r\nexport const DefaultNextOfKin: INextOfKin = {\r\n nextOfKinId: 0,\r\n memberId: 0,\r\n firstName: '',\r\n lastName: '',\r\n relationType: '',\r\n address: '',\r\n postCode: '',\r\n city: '',\r\n phone: '',\r\n isDefault: false,\r\n};\r\n\r\ninterface EmergencyContactProps {\r\n member: IMemberExtended;\r\n nextOfKins: INextOfKin[];\r\n fetchInformation: () => void;\r\n disableSelect?: boolean;\r\n}\r\n\r\nconst EmergencyContact: React.FC = ({\r\n member,\r\n nextOfKins,\r\n fetchInformation,\r\n disableSelect = false,\r\n}) => {\r\n const [defaultNextOfKinId, setDefaultNextOfKinId] = useState(0);\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(NextOfKinFormSchema),\r\n });\r\n const {\r\n showModal: showDrawer,\r\n hideModal: hideDrawer,\r\n isVisible: isVisibleDrawer,\r\n } = useModal();\r\n const { addMessage } = useSnackbar();\r\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(true);\r\n const breakpoint = useBreakpoint();\r\n\r\n useEffect(() => {\r\n let disabled;\r\n if (!form.formState.isDirty) {\r\n disabled = true;\r\n } else {\r\n disabled = isRequiredFieldMissing(NextOfKinFormSchema, form.getValues);\r\n }\r\n setIsSubmitDisabled(disabled);\r\n }, [form.formState.isValid, form.control]);\r\n\r\n useEffect(() => {\r\n if (\r\n nextOfKins &&\r\n nextOfKins.length > 0 &&\r\n nextOfKins.find((nok) => nok.isDefault)\r\n ) {\r\n setDefaultNextOfKinId(\r\n nextOfKins.find((nok) => nok.isDefault)!.nextOfKinId\r\n );\r\n }\r\n }, [nextOfKins]);\r\n\r\n const setAsDefaultNextOfKin = (data: IDefaultNextOfKin) => {\r\n MemberService.updateDefaultNextOfKin(data)\r\n .then((result) => {\r\n if (result) {\r\n fetchInformation();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const saveNextOfKin = (nextOfKin: INextOfKin) => {\r\n let nexOfKinPromise: Promise;\r\n if (nextOfKin.nextOfKinId > 0) {\r\n nexOfKinPromise = MemberService.updateNextOfKin(nextOfKin);\r\n } else {\r\n nexOfKinPromise = MemberService.createNextOfKin(nextOfKin);\r\n }\r\n\r\n nexOfKinPromise\r\n .then((result) => {\r\n if (result) {\r\n fetchInformation();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const deleteNextOfKin = (nextOfKinId: number) => {\r\n MemberService.deleteNextOfKin(member.memberId, nextOfKinId)\r\n .then((result) => {\r\n if (result) {\r\n fetchInformation();\r\n addMessage(\r\n Constants.messages.success.dataDeleted,\r\n MessageType.Success\r\n );\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const handleSubmit = (nextOfKin: INextOfKinForm) => {\r\n let payload: INextOfKin = {\r\n address: nextOfKin.etravelNextOfKinAD,\r\n city: nextOfKin.etravelNextOfKinCI,\r\n firstName: nextOfKin.etravelNextOfKinFN,\r\n lastName: nextOfKin.etravelNextOfKinLN,\r\n isDefault: nextOfKin.etravelNextOfKinD,\r\n memberId: nextOfKin.etravelNextOfKinMI,\r\n nextOfKinId: nextOfKin.etravelNextOfKinID,\r\n phone: nextOfKin.etravelNextOfKinPH,\r\n postCode: nextOfKin.etravelNextOfKinPC,\r\n relationType: nextOfKin.etravelNextOfKinRT,\r\n };\r\n saveNextOfKin({\r\n ...DefaultNextOfKin,\r\n ...payload,\r\n memberId: member.memberId,\r\n });\r\n hideDrawer();\r\n };\r\n\r\n const onAddClick = () => {\r\n showDrawer();\r\n };\r\n\r\n const handleAddEmergencyContact = () => {\r\n onAddClick();\r\n };\r\n const handleUpdateDefaultNextOfKin = () => {\r\n setAsDefaultNextOfKin({\r\n memberId: member.memberId,\r\n nextOfKinId: defaultNextOfKinId,\r\n });\r\n };\r\n\r\n const handleChangeDefault = (\r\n event: React.ChangeEvent<{\r\n name?: string;\r\n value: unknown;\r\n }>\r\n ) => {\r\n setDefaultNextOfKinId(Number(event.target.value));\r\n };\r\n\r\n return (\r\n <>\r\n {!disableSelect && (\r\n \r\n Emergency Contact\r\n \r\n )}\r\n\r\n \r\n \r\n Add an Emergency contact\r\n \r\n \r\n\r\n {!disableSelect && nextOfKins && nextOfKins.length > 0 && (\r\n <>\r\n \r\n \r\n \r\n ({\r\n label: `${nok.firstName} ${nok.lastName}`,\r\n value: nok.nextOfKinId,\r\n }))}\r\n value={defaultNextOfKinId}\r\n onChange={handleChangeDefault}\r\n />\r\n \r\n {defaultNextOfKinId !==\r\n nextOfKins.find((nok) => nok.isDefault)?.nextOfKinId && (\r\n \r\n \r\n {Constants.buttons.saveChange}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n {nextOfKins &&\r\n nextOfKins.length > 0 &&\r\n nextOfKins.map((nextOfKin) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n Add an Emergency contact\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EmergencyContact;\r\n","var _path, _path2, _line, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgAirPlusCard(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 22,\n viewBox: \"0 0 32 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.9091 0H2.09091C0.936 0 0 0.936 0 2.09091V19.7273C0 20.8822 0.936 21.8182 2.09091 21.8182H29.9091C31.064 21.8182 32 20.8822 32 19.7273V2.09091C32 0.936 31.064 0 29.9091 0Z\",\n fill: \"url(#paint0_linear)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.22344 9.1543L6.29766 6.95117L5.38359 9.1543H7.22344ZM3.77031 11.209V11.0645C3.97604 11.041 4.12969 10.9629 4.23125 10.8301C4.33542 10.6973 4.5125 10.3366 4.7625 9.74805L6.43047 5.82227H6.58672L8.57891 10.3574C8.71172 10.6595 8.81719 10.847 8.89531 10.9199C8.97604 10.9902 9.11016 11.0384 9.29766 11.0645V11.209H7.2625V11.0645C7.49687 11.0436 7.64792 11.0189 7.71562 10.9902C7.78333 10.959 7.81719 10.8848 7.81719 10.7676C7.81719 10.7285 7.80417 10.6595 7.77812 10.5605C7.75208 10.4616 7.71562 10.3574 7.66875 10.248L7.33672 9.47852H5.24297C5.03464 10.002 4.90964 10.3223 4.86797 10.4395C4.82891 10.554 4.80937 10.6452 4.80937 10.7129C4.80937 10.8483 4.86406 10.9421 4.97344 10.9941C5.04115 11.0254 5.16875 11.0488 5.35625 11.0645V11.209H3.77031ZM10.1281 6.16602C10.1281 6.05404 10.1672 5.95768 10.2453 5.87695C10.3234 5.79622 10.4198 5.75586 10.5344 5.75586C10.6464 5.75586 10.7414 5.79622 10.8195 5.87695C10.9003 5.95508 10.9406 6.05143 10.9406 6.16602C10.9406 6.27799 10.9003 6.37435 10.8195 6.45508C10.7414 6.5332 10.6464 6.57227 10.5344 6.57227C10.4198 6.57227 10.3234 6.5332 10.2453 6.45508C10.1672 6.37435 10.1281 6.27799 10.1281 6.16602ZM9.62812 11.0996C9.90677 11.0736 10.0826 11.0267 10.1555 10.959C10.2284 10.8887 10.2648 10.7012 10.2648 10.3965V8.5332C10.2648 8.36393 10.2531 8.24674 10.2297 8.18164C10.1906 8.07487 10.1086 8.02148 9.98359 8.02148C9.95495 8.02148 9.9263 8.02409 9.89766 8.0293C9.87161 8.03451 9.79349 8.05534 9.66328 8.0918V7.9707L9.83125 7.91602C10.287 7.76758 10.6047 7.6556 10.7844 7.58008C10.8573 7.54883 10.9042 7.5332 10.925 7.5332C10.9302 7.55143 10.9328 7.57096 10.9328 7.5918V10.3965C10.9328 10.6934 10.968 10.8796 11.0383 10.9551C11.1112 11.0306 11.274 11.0788 11.5266 11.0996V11.209H9.62812V11.0996ZM11.7711 11.0801C12.0107 11.0592 12.1695 11.0176 12.2477 10.9551C12.3258 10.89 12.3648 10.7533 12.3648 10.5449V8.7832C12.3648 8.52539 12.3401 8.3418 12.2906 8.23242C12.2437 8.12044 12.1565 8.06445 12.0289 8.06445C12.0029 8.06445 11.9677 8.06836 11.9234 8.07617C11.8818 8.08138 11.8375 8.08919 11.7906 8.09961V7.9707C11.9391 7.91862 12.0914 7.86523 12.2477 7.81055C12.4039 7.75586 12.512 7.7168 12.5719 7.69336C12.7021 7.64388 12.8362 7.58789 12.9742 7.52539C12.9924 7.52539 13.0029 7.5319 13.0055 7.54492C13.0107 7.55794 13.0133 7.58529 13.0133 7.62695V8.26758C13.1799 8.03581 13.3401 7.85482 13.4937 7.72461C13.65 7.5944 13.8115 7.5293 13.9781 7.5293C14.1109 7.5293 14.219 7.56966 14.3023 7.65039C14.3857 7.72852 14.4273 7.82747 14.4273 7.94727C14.4273 8.05404 14.3948 8.14388 14.3297 8.2168C14.2672 8.28971 14.1878 8.32617 14.0914 8.32617C13.9924 8.32617 13.8922 8.2806 13.7906 8.18945C13.6917 8.09831 13.6135 8.05273 13.5562 8.05273C13.4651 8.05273 13.3531 8.12695 13.2203 8.27539C13.0875 8.42122 13.0211 8.57227 13.0211 8.72852V10.4902C13.0211 10.7142 13.0732 10.8704 13.1773 10.959C13.2815 11.0449 13.4547 11.0853 13.6969 11.0801V11.209H11.7711V11.0801ZM17.8984 7.36914C17.8984 6.87956 17.6875 6.54362 17.2656 6.36133C17.0391 6.26237 16.7526 6.21289 16.4062 6.21289C16.2422 6.21289 16.1406 6.22982 16.1016 6.26367C16.0651 6.29492 16.0469 6.36654 16.0469 6.47852V8.56445C16.1901 8.57747 16.2839 8.58529 16.3281 8.58789C16.3724 8.59049 16.4154 8.5918 16.457 8.5918C16.8242 8.5918 17.1133 8.53971 17.3242 8.43555C17.707 8.24544 17.8984 7.88997 17.8984 7.36914ZM14.5664 11.0645C14.8711 11.0358 15.0612 10.9759 15.1367 10.8848C15.2122 10.791 15.25 10.5788 15.25 10.248V6.7832C15.25 6.50456 15.207 6.32096 15.1211 6.23242C15.0378 6.14388 14.8529 6.08789 14.5664 6.06445V5.91602H16.6758C17.3529 5.91602 17.8711 6.04753 18.2305 6.31055C18.5898 6.57357 18.7695 6.91992 18.7695 7.34961C18.7695 7.89388 18.5703 8.28841 18.1719 8.5332C17.7734 8.77799 17.2747 8.90039 16.6758 8.90039C16.5898 8.90039 16.4792 8.89909 16.3438 8.89648C16.2109 8.89128 16.112 8.88867 16.0469 8.88867V10.3418C16.0469 10.6439 16.0924 10.834 16.1836 10.9121C16.2773 10.9902 16.4844 11.041 16.8047 11.0645V11.209H14.5664V11.0645ZM19.0922 11.0996C19.3344 11.0762 19.4984 11.028 19.5844 10.9551C19.6703 10.8796 19.7133 10.7337 19.7133 10.5176V6.70117C19.7133 6.5293 19.699 6.41081 19.6703 6.3457C19.6182 6.23633 19.5128 6.18164 19.3539 6.18164C19.3174 6.18164 19.2771 6.18555 19.2328 6.19336C19.1911 6.20117 19.1378 6.21289 19.0727 6.22852V6.09961C19.4242 6.00586 19.8474 5.88086 20.3422 5.72461C20.3604 5.72461 20.3708 5.73242 20.3734 5.74805C20.3786 5.76367 20.3812 5.79753 20.3812 5.84961V10.5332C20.3812 10.7598 20.4203 10.9069 20.4984 10.9746C20.5766 11.0397 20.738 11.0814 20.9828 11.0996V11.209H19.0922V11.0996ZM22.4305 7.5918V10.0918C22.4305 10.2689 22.4552 10.4108 22.5047 10.5176C22.601 10.7155 22.7781 10.8145 23.0359 10.8145C23.213 10.8145 23.3862 10.7559 23.5555 10.6387C23.6518 10.5736 23.7495 10.4837 23.8484 10.3691V8.22852C23.8484 8.02799 23.8094 7.89648 23.7313 7.83398C23.6531 7.77148 23.4969 7.73372 23.2625 7.7207V7.5918H24.5242V10.3418C24.5242 10.5189 24.5555 10.6413 24.618 10.709C24.6831 10.7741 24.8185 10.8027 25.0242 10.7949V10.9043C24.881 10.9434 24.7755 10.9733 24.7078 10.9941C24.6401 11.0124 24.5268 11.0475 24.368 11.0996C24.3003 11.123 24.1518 11.179 23.9227 11.2676C23.9096 11.2676 23.9018 11.2611 23.8992 11.248C23.8966 11.2376 23.8953 11.2246 23.8953 11.209V10.5801C23.7182 10.791 23.5568 10.9473 23.4109 11.0488C23.1896 11.2051 22.9552 11.2832 22.7078 11.2832C22.4813 11.2832 22.2677 11.2025 22.0672 11.041C21.8641 10.8822 21.7625 10.6152 21.7625 10.2402V8.21289C21.7625 8.00456 21.7182 7.86523 21.6297 7.79492C21.5724 7.75065 21.45 7.7194 21.2625 7.70117V7.5918H22.4305ZM25.6437 9.97852H25.7727C25.8326 10.2754 25.9133 10.5033 26.0148 10.6621C26.1971 10.9538 26.4641 11.0996 26.8156 11.0996C27.0109 11.0996 27.1646 11.0462 27.2766 10.9395C27.3911 10.8301 27.4484 10.6895 27.4484 10.5176C27.4484 10.4082 27.4159 10.3027 27.3508 10.2012C27.2857 10.0996 27.1711 10.0007 27.007 9.9043L26.5695 9.6543C26.2492 9.48242 26.0135 9.30924 25.8625 9.13477C25.7115 8.96029 25.6359 8.75456 25.6359 8.51758C25.6359 8.22591 25.7401 7.98633 25.9484 7.79883C26.1568 7.61133 26.4185 7.51758 26.7336 7.51758C26.8716 7.51758 27.0227 7.54362 27.1867 7.5957C27.3534 7.64779 27.4471 7.67383 27.468 7.67383C27.5148 7.67383 27.5487 7.66732 27.5695 7.6543C27.5904 7.64128 27.6086 7.62044 27.6242 7.5918H27.718L27.7453 8.68164H27.6242C27.5721 8.42904 27.5018 8.23242 27.4133 8.0918C27.2518 7.83138 27.0187 7.70117 26.7141 7.70117C26.5318 7.70117 26.3885 7.75716 26.2844 7.86914C26.1802 7.98112 26.1281 8.11263 26.1281 8.26367C26.1281 8.50326 26.3078 8.7168 26.6672 8.9043L27.1828 9.18164C27.7375 9.48372 28.0148 9.83529 28.0148 10.2363C28.0148 10.5436 27.899 10.7949 27.6672 10.9902C27.438 11.1855 27.1372 11.2832 26.7648 11.2832C26.6086 11.2832 26.4315 11.2572 26.2336 11.2051C26.0357 11.153 25.9185 11.127 25.882 11.127C25.8508 11.127 25.8234 11.1387 25.8 11.1621C25.7766 11.1829 25.7583 11.209 25.7453 11.2402H25.6437V9.97852Z\",\n fill: \"white\"\n })), _line || (_line = /*#__PURE__*/React.createElement(\"line\", {\n x1: 2,\n y1: 15.709,\n x2: 30,\n y2: 15.709,\n stroke: \"white\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear\",\n x1: -2.57503,\n y1: 3.57486,\n x2: 0.310169,\n y2: 25.7267,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#00B3EE\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#0082D8\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAirPlusCard);\nexport default __webpack_public_path__ + \"static/media/airPlusCard.eeffb091.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgAmexCard(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 22,\n viewBox: \"0 0 32 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.67568 21.5903C1.41278 21.5903 0.385559 20.5646 0.385559 19.3035V2.67229C0.385559 1.41123 1.41278 0.385498 2.67568 0.385498H29.3244C30.5873 0.385498 31.6145 1.41123 31.6145 2.67229V19.3035C31.6145 20.5646 30.5873 21.5903 29.3244 21.5903H2.67568Z\",\n fill: \"#8BB7F0\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2.52632 0H29.4737C30.8691 0 32 1.13514 32 2.53568V19.4402C32 20.8408 30.8691 21.9759 29.4737 21.9759H2.52632C1.13095 21.9759 0 20.8408 0 19.4402V2.53568C0 1.13514 1.13095 0 2.52632 0ZM31.579 2.53551C31.579 1.37036 30.6346 0.42244 29.4738 0.42244H2.52639C1.36554 0.42244 0.421122 1.37036 0.421122 2.53551V19.44C0.421122 20.6052 1.36554 21.5531 2.52639 21.5531H29.4738C30.6346 21.5531 31.579 20.6052 31.579 19.44V2.53551Z\",\n fill: \"#4E7AB5\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M27.457 10.5305L30.0725 7.72569H28.2122L26.539 9.5135L24.9203 7.71082H19.164V13.4791H24.7315L26.487 11.5698L28.1988 13.4939H30.0532L27.457 10.5305ZM12.5699 11.5798L14.343 7.71091H16.6464V13.4783H15.2014V9.26905L13.2286 13.4783H11.9171L9.98793 9.1947V13.4783H7.08038L6.50809 12.1912H3.62823L3.06518 13.4783H1.54218L4.11576 7.71091H6.02392L8.5438 13.2677V7.71091H10.8052L12.5699 11.5798ZM5.03394 8.92919L4.173 10.945H5.92844L5.03394 8.92919ZM20.6047 12.2678H23.9704L25.5781 10.5304L24.1575 8.9632L20.6047 8.95329V10.0339H23.8252V11.1269H20.6047V12.2678Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAmexCard);\nexport default __webpack_public_path__ + \"static/media/amexCard.e1c33e89.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgDinerClubCard(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 23,\n viewBox: \"0 0 32 23\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 19.8095C32 21.4857 30.6286 22.8571 28.9524 22.8571H3.04762C1.37143 22.8571 0 21.4857 0 19.8095V3.04762C0 1.37143 1.37143 0 3.04762 0H28.9524C30.6286 0 32 1.37143 32 3.04762V19.8095Z\",\n fill: \"#DFF0FE\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.8095 5.33337H12.1905C8.83807 5.33337 6.09521 8.07623 6.09521 11.4286C6.09521 14.781 8.83807 17.5239 12.1905 17.5239H19.8095C23.1619 17.5239 25.9047 14.781 25.9047 11.4286C25.9047 8.07623 23.1619 5.33337 19.8095 5.33337Z\",\n fill: \"#1565C0\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.1904 6.85718C9.67616 6.85718 7.61902 8.91432 7.61902 11.4286C7.61902 13.9429 9.67616 16 12.1904 16C14.7047 16 16.7619 13.9429 16.7619 11.4286C16.7619 8.91432 14.7047 6.85718 12.1904 6.85718ZM9.14274 11.428C9.14274 9.98041 10.1332 8.83755 11.4284 8.4566V14.3233C10.1332 14.0185 9.14274 12.8756 9.14274 11.428ZM12.9523 8.53324V14.3999C14.2475 14.019 15.238 12.8761 15.238 11.5047C15.238 10.057 14.2475 8.838 12.9523 8.53324Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDinerClubCard);\nexport default __webpack_public_path__ + \"static/media/dinerClubCard.05aa4239.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _circle, _circle2, _path2, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgMasterCard(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 22,\n viewBox: \"0 0 32 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.9091 0H2.09091C0.936 0 0 0.936 0 2.09091V19.7273C0 20.8822 0.936 21.8182 2.09091 21.8182H29.9091C31.064 21.8182 32 20.8822 32 19.7273V2.09091C32 0.936 31.064 0 29.9091 0Z\",\n fill: \"url(#paint0_linear)\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10.9476,\n cy: 10.9479,\n r: 7.31127,\n fill: \"#CF1928\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 20.4021,\n cy: 10.9479,\n r: 7.31127,\n fill: \"#FFD000\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.0908 10.9483C13.0908 13.1825 14.0959 15.1796 15.6748 16.5207C17.2545 15.1796 18.2588 13.1825 18.2588 10.9483C18.2588 8.71416 17.2537 6.71707 15.6748 5.37598C14.0959 6.71707 13.0908 8.71416 13.0908 10.9483Z\",\n fill: \"#D97218\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear\",\n x1: -2.57503,\n y1: 3.57486,\n x2: 0.310169,\n y2: 25.7267,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#00B3EE\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#0082D8\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear\",\n x1: 13.0908,\n y1: 18.2595,\n x2: 27.7141,\n y2: 18.2595,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FEDE00\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFD000\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMasterCard);\nexport default __webpack_public_path__ + \"static/media/masterCard.c895814c.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgVisaCard(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 22,\n viewBox: \"0 0 32 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.9091 0H2.09091C0.936 0 0 0.936 0 2.09091V19.7273C0 20.8822 0.936 21.8182 2.09091 21.8182H29.9091C31.064 21.8182 32 20.8822 32 19.7273V2.09091C32 0.936 31.064 0 29.9091 0Z\",\n fill: \"url(#paint0_linear)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.05,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.5315 15.485C15.1897 15.7883 16.2595 15.9898 17.2603 15.9999H17.2639C18.3788 15.9999 19.3439 15.7519 20.093 15.309L19.8588 15.8683H23.7541L24.2101 14.6079H25.9104L26.1744 15.8683H29.6799L27.613 5.9723H25.1577C24.4464 5.9723 23.8334 6.38102 23.5577 7.03775L21.6726 11.5381C21.309 10.3548 20.2006 9.77375 19.4195 9.3643C19.2872 9.29521 19.0668 9.17812 18.901 9.0763C18.9374 9.06757 18.9795 9.05957 19.0268 9.05375C19.0915 9.04575 19.1875 9.03775 19.3075 9.03775C19.6501 9.03775 20.1846 9.09521 20.781 9.37012L21.6064 9.74902L22.3126 6.45448L21.7177 6.23702C20.9337 5.95121 20.2057 5.81812 19.4261 5.81812C17.8319 5.81812 16.5301 6.36721 15.7628 7.27266L16.0399 5.97157H9.23262L7.70244 9.83702L7.24717 7.41812C7.07699 6.55339 6.38535 5.97157 5.52717 5.97157H1.22171L0.898804 7.50102L1.60499 7.65448C2.39844 7.82757 3.14971 8.07484 3.56717 8.30175C3.62899 8.33593 3.64935 8.34902 3.65371 8.35339C3.66317 8.36502 3.68426 8.4123 3.72862 8.58612L5.61226 15.8683H8.96644L11.5933 9.59848L10.2523 15.8683H13.9235L14.053 15.2647L14.5315 15.485ZM15.5393 12.3161L15.5386 12.3158L14.7605 11.9536L15.1401 10.1762C15.4223 11.0082 16.1546 11.7158 17.3285 12.2867C17.7292 12.4816 17.9154 12.606 18.0005 12.6744C17.8957 12.7253 17.6906 12.7776 17.4637 12.7813L17.3881 12.782C16.5332 12.782 16.051 12.556 15.5393 12.3161Z\",\n fill: \"black\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.07,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M17.2603 15.6372C16.3105 15.6277 15.2996 15.4394 14.6836 15.1557L14.4196 15.0343L14.9716 12.4532L15.3854 12.6466L15.3868 12.6473C15.9078 12.8914 16.4531 13.147 17.3883 13.147L17.4676 13.1463C17.8465 13.1404 18.413 13.011 18.4174 12.6793C18.4189 12.5426 18.3069 12.3593 17.4887 11.9608C16.9599 11.7033 15.3527 10.9193 15.3738 9.33171C15.3876 7.47862 17.0545 6.18335 19.4261 6.18335C20.1629 6.18335 20.8516 6.3099 21.5934 6.58044L21.8909 6.6888L21.3461 9.23062L20.9338 9.0408C20.277 8.73826 19.6872 8.67499 19.3083 8.67499C19.1679 8.67499 19.0552 8.68444 18.9803 8.69389C18.5374 8.75135 18.3723 8.93753 18.3694 9.04808C18.3658 9.22117 18.8581 9.48008 19.2538 9.68808C20.1752 10.171 21.4363 10.8335 21.4298 12.387C21.421 14.331 19.7476 15.6372 17.2639 15.6372H17.2603ZM26.4698 15.5057L26.2058 14.2454H23.9549L23.4989 15.5057H20.4051L23.8931 7.17917C24.1112 6.65917 24.5963 6.33699 25.1578 6.33699H27.3178L29.2327 15.5057H26.4698ZM25.384 10.3085L25.6923 11.787H24.8472L25.384 10.3085ZM10.7025 15.5057L12.6639 6.33699H15.5905L13.6298 15.5057H10.7025ZM4.08147 8.49626L5.89384 15.5057H8.72511L12.568 6.33699H9.48075L7.57965 11.1421L6.89238 7.49045C6.75638 6.80026 6.20802 6.33699 5.52875 6.33699H1.51784L1.3302 7.22426L1.68293 7.30063C2.50765 7.47954 3.29602 7.74063 3.74111 7.98281C3.94765 8.09481 3.99129 8.14281 4.08147 8.49626Z\",\n fill: \"black\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.7367 9.33547C15.7214 10.5515 16.8203 11.2293 17.648 11.6329C18.4982 12.0467 18.784 12.3122 18.7811 12.6824C18.7745 13.2489 18.1025 13.4991 17.4734 13.5086C16.4041 13.5249 15.7711 13.2284 15.2704 12.9938L15.2313 12.9755L14.8363 14.8249C15.3454 15.0591 16.2873 15.2642 17.2647 15.2729C19.5578 15.2729 21.0589 14.1406 21.0669 12.3857C21.0721 11.053 19.9682 10.4733 19.0849 10.0095C18.4918 9.698 17.9981 9.43875 18.0065 9.03875C18.0138 8.73693 18.3018 8.41475 18.9331 8.33256C19.2458 8.29111 20.1083 8.25984 21.0858 8.71002L21.4698 6.92093C20.944 6.72893 20.2676 6.54565 19.4262 6.54565C17.2676 6.54565 15.7491 7.69329 15.7367 9.33547ZM25.1579 6.6993C24.739 6.6993 24.3863 6.94366 24.2285 7.3182L20.9528 15.1408H23.2444L23.7005 13.8804H26.5012L26.7659 15.1408H28.7855L27.0226 6.6993H25.1579ZM26.1397 12.1509L25.4786 8.98072L24.328 12.1509H26.1397ZM12.9586 6.6993L11.152 15.1408H13.336L15.1419 6.6993H12.9586ZM7.45383 12.4448L9.72728 6.6993L12.0218 6.70002L8.48365 15.1415H6.17528L4.43346 8.40475C4.32801 7.9902 4.23637 7.83748 3.91492 7.66293C3.38983 7.37711 2.52292 7.1102 1.76001 6.94439L1.81092 6.6993H5.52728C6.00074 6.6993 6.42692 7.0142 6.53456 7.55966L7.45383 12.4448Z\",\n fill: \"white\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear\",\n x1: -2.57503,\n y1: 3.57486,\n x2: 0.310169,\n y2: 25.7267,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#00B3EE\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#0082D8\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgVisaCard);\nexport default __webpack_public_path__ + \"static/media/visaCard.1a0a0565.svg\";\nexport { ForwardRef as ReactComponent };","import moment from \"moment\";\r\nimport React from \"react\";\r\nimport { UseFormMethods } from \"react-hook-form\";\r\n\r\nimport { Box, Grid } from \"@material-ui/core\";\r\n\r\nimport IPaymentInformation, { IPaymentInformationForm } from \"../../models/IPaymentInformation\";\r\nimport baseStyles from \"../../styles/styles.module.scss\";\r\nimport Constants from \"../../utils/Constants\";\r\nimport FormControl from \"../commons/FormControl/FormControl\";\r\nimport Select from \"../commons/Select/Select\";\r\nimport TextField from \"../commons/TextField/TextField\";\r\n\r\nexport interface IPaymentInformationFormProps {\r\n form: UseFormMethods;\r\n defaultValue: IPaymentInformation;\r\n paymentTypes: string[];\r\n}\r\n\r\nconst PaymentInformationForm: React.FC = ({ form, defaultValue, paymentTypes }) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n ({\r\n value: type,\r\n label: type,\r\n }))}\r\n placeholder=\"VISA\"\r\n error={!!form.errors.paymentType}\r\n errorMessage={form.errors.paymentType ? form.errors.paymentType.message : \"\"}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n i + 1).map((val) => ({\r\n value: val,\r\n label: (\"0\" + val).slice(-2),\r\n }))}\r\n error={!!form.errors.expirationDateMonth}\r\n errorMessage={form.errors.expirationDateMonth ? Constants.validation.required : \"\"}\r\n />\r\n \r\n \r\n \r\n i + moment().year()).map((val) => ({\r\n value: val,\r\n label: val.toString(),\r\n }))}\r\n error={!!form.errors.expirationDateYear}\r\n errorMessage={form.errors.expirationDateYear ? Constants.validation.required : \"\"}\r\n />\r\n \r\n\r\n {/*\r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default PaymentInformationForm;\r\n","import moment from \"moment\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport * as yup from \"yup\";\r\n\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nimport { ReactComponent as AirPlusCardIcon } from \"../../assets/icons/airPlusCard.svg\";\r\nimport { ReactComponent as AmexCardIcon } from \"../../assets/icons/amexCard.svg\";\r\nimport { ReactComponent as DinerClubCardIcon } from \"../../assets/icons/dinerClubCard.svg\";\r\nimport { ReactComponent as MasterCardIcon } from \"../../assets/icons/masterCard.svg\";\r\nimport { ReactComponent as VisaCardIcon } from \"../../assets/icons/visaCard.svg\";\r\nimport { useMyInformationContext } from \"../../context/MyInformationProvider/MyInformationProvider\";\r\nimport useBreakpoint from \"../../hooks/useBreakpoint\";\r\nimport { useModal } from \"../../hooks/useModal\";\r\nimport useSnackbar from \"../../hooks/useSnackbar\";\r\nimport IPaymentInformation, { IPaymentInformationForm } from \"../../models/IPaymentInformation\";\r\nimport UserService from \"../../services/UserService\";\r\nimport baseStyles from \"../../styles/styles.module.scss\";\r\nimport Constants from \"../../utils/Constants\";\r\nimport { MessageType } from \"../../utils/MessageType\";\r\nimport formatString from \"../../utils/Strings\";\r\nimport AddButton from \"../commons/AddButton/AddButton\";\r\nimport Drawer from \"../commons/Drawer/Drawer\";\r\nimport DrawerActions from \"../commons/Drawer/DrawerActions\";\r\nimport DrawerCancelButton from \"../commons/Drawer/DrawerCancelButton\";\r\nimport DrawerContent from \"../commons/Drawer/DrawerContent\";\r\nimport DrawerSaveButton from \"../commons/Drawer/DrawerSaveButton\";\r\nimport DrawerTitle from \"../commons/Drawer/DrawerTitle\";\r\nimport FormControl from \"../commons/FormControl/FormControl\";\r\nimport Select from \"../commons/Select/Select\";\r\nimport PaymentInformationCard from \"../PaymentInformationCard\";\r\nimport PaymentInformationForm from \"../PaymentInformationForm\";\r\n\r\nexport interface IDefaultPaymentInformationPayload {\r\n userId: number;\r\n paymentInfoId: number;\r\n}\r\n\r\nexport const PaymentInformationFormSchema = yup.object().shape({\r\n paymentType: yup.string().required(Constants.validation.required).max(50, formatString(Constants.validation.max, 50)),\r\n cbOwner: yup.string().required(Constants.validation.required).max(100, formatString(Constants.validation.max, 100)),\r\n cbNumber: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .matches(Constants.validation.numericOnlyRegex, Constants.validation.invalidNumber)\r\n .when(\"paymentType\", {\r\n is: (paymentType: string) => paymentType === \"AirPlus\",\r\n then: yup.string().length(16, formatString(Constants.validation.paymentCard, 16)),\r\n })\r\n .when(\"paymentType\", {\r\n is: (paymentType: string) => paymentType === \"American Express\",\r\n then: yup.string().length(15, formatString(Constants.validation.paymentCard, 15)),\r\n })\r\n .when(\"paymentType\", {\r\n is: (paymentType: string) => paymentType === \"Diners Club\",\r\n then: yup.string().length(14, formatString(Constants.validation.paymentCard, 14)),\r\n })\r\n .when(\"paymentType\", {\r\n is: (paymentType: string) => paymentType === \"MasterCard\",\r\n then: yup.string().length(16, formatString(Constants.validation.paymentCard, 16)),\r\n })\r\n .when(\"paymentType\", {\r\n is: (paymentType: string) => paymentType === \"Visa\",\r\n then: yup.string().length(16, formatString(Constants.validation.paymentCard, 16)),\r\n }),\r\n expirationDateMonth: yup.number().required(Constants.validation.required),\r\n expirationDateYear: yup.number().nullable(),\r\n});\r\n\r\nexport const DefaultPaymentInformation: IPaymentInformation = {\r\n userId: 0,\r\n paymentInfoId: 0,\r\n cbNumber: \"\",\r\n cbOwner: \"\",\r\n expirationDate: undefined,\r\n paymentType: \"\",\r\n isDefault: false,\r\n};\r\n\r\nconst PaymentInformation: React.FC = () => {\r\n const [defaultPaymentInfoId, setDefaultPaymentInfoId] = useState(0);\r\n const { addMessage } = useSnackbar();\r\n const breakpoint = useBreakpoint();\r\n const { showModal: showDrawer, hideModal: hideDrawer, isVisible: isVisibleDrawer } = useModal();\r\n\r\n const {\r\n state: {\r\n information: { user, paymentInformations },\r\n paymentTypes,\r\n },\r\n fetchInformation,\r\n } = useMyInformationContext();\r\n const form = useForm({\r\n mode: \"onChange\",\r\n resolver: yupResolver(PaymentInformationFormSchema),\r\n });\r\n\r\n useEffect(() => {\r\n if (paymentInformations && paymentInformations.length > 0 && paymentInformations.find((pi) => pi.isDefault)) {\r\n setDefaultPaymentInfoId(paymentInformations.find((pi) => pi.isDefault)!.paymentInfoId);\r\n }\r\n }, [paymentInformations]);\r\n\r\n const setDefaultPaymentInformation = (data: IDefaultPaymentInformationPayload) => {\r\n UserService.setDefaultPaymentInformation(data)\r\n .then((result) => {\r\n if (result) {\r\n fetchInformation();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const handleUpdateDefaultPaymentInformation = () => {\r\n setDefaultPaymentInformation({\r\n userId: user.userId,\r\n paymentInfoId: defaultPaymentInfoId,\r\n });\r\n };\r\n\r\n const handleChangeDefault = (\r\n event: React.ChangeEvent<{\r\n name?: string | undefined;\r\n value: unknown;\r\n }>\r\n ) => {\r\n setDefaultPaymentInfoId(Number(event.target.value));\r\n };\r\n\r\n const handleSubmit = (payment: IPaymentInformationForm) => {\r\n savePaymentInformation({\r\n ...DefaultPaymentInformation,\r\n ...payment,\r\n expirationDate: new Date(payment.expirationDateYear, payment.expirationDateMonth, 1),\r\n userId: user.userId,\r\n });\r\n fetchInformation();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n hideDrawer();\r\n };\r\n\r\n const onAddClick = () => {\r\n showDrawer();\r\n };\r\n\r\n const savePaymentInformation = (paymentInformation: IPaymentInformation) => {\r\n let promise: Promise;\r\n if (paymentInformation.paymentInfoId > 0) {\r\n promise = UserService.updatePaymentInformation(paymentInformation);\r\n } else {\r\n promise = UserService.createPaymentInformation(paymentInformation);\r\n }\r\n\r\n promise\r\n .then((result) => {\r\n if (result) {\r\n fetchInformation();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const deletePaymentInformation = (paymentInfoId: number) => {\r\n UserService.deletePaymentInformation(user.userId, paymentInfoId)\r\n .then((result) => {\r\n if (result) {\r\n fetchInformation();\r\n addMessage(Constants.messages.success.dataDeleted, MessageType.Success);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const maskAccountNumber = (cbNumber: string) => {\r\n var maskedPart = \"****\";\r\n var unmaskedPart = cbNumber.slice(cbNumber.length - 4, cbNumber.length);\r\n return `${maskedPart}${unmaskedPart}`;\r\n };\r\n\r\n const formatExpirationDate = (expirationDate?: Date) =>\r\n expirationDate ? `${(\"0\" + (moment(expirationDate).month() + 1)).slice(-2)}/${moment(expirationDate).year()}` : \"\";\r\n\r\n const paymentTypeIcon = (paymentType: string): JSX.Element => {\r\n switch (paymentType) {\r\n case \"AirPlus\":\r\n return ;\r\n case \"American Express\":\r\n return ;\r\n case \"Diners Club\":\r\n return ;\r\n case \"MasterCard\":\r\n return ;\r\n case \"Visa\":\r\n return ;\r\n default:\r\n return <>;\r\n }\r\n };\r\n return (\r\n <>\r\n {user && paymentTypes && (\r\n <>\r\n \r\n Payment Information\r\n \r\n\r\n \r\n Add a Payment\r\n \r\n\r\n {paymentInformations && paymentInformations.length > 0 && (\r\n <>\r\n \r\n \r\n \r\n ({\r\n label: (\r\n \r\n {paymentTypeIcon(pi.paymentType)}\r\n \r\n {pi.paymentType} {maskAccountNumber(pi.cbNumber)}\r\n \r\n \r\n ),\r\n value: pi.paymentInfoId,\r\n }))}\r\n value={defaultPaymentInfoId}\r\n onChange={handleChangeDefault}\r\n />\r\n \r\n {defaultPaymentInfoId !== paymentInformations.find((pi) => pi.isDefault)?.paymentInfoId && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n {paymentInformations &&\r\n paymentInformations.length > 0 &&\r\n paymentInformations.map((paymentInfo) => (\r\n \r\n ))}\r\n \r\n \r\n Add a Payment\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PaymentInformation;\r\n","import moment from \"moment\";\r\nimport React, {useEffect, useState} from \"react\";\r\nimport {UseFormMethods} from \"react-hook-form\";\r\nimport {Box, Grid, IconButton, InputAdornment} from \"@material-ui/core\";\r\nimport IPaymentInformation, {IPaymentInformationForm} from \"../../models/IPaymentInformation\";\r\nimport baseStyles from \"../../styles/styles.module.scss\";\r\nimport FormControl from \"../commons/FormControl/FormControl\";\r\nimport Select from \"../commons/Select/Select\";\r\nimport TextField from \"../commons/TextField/TextField\";\r\nimport UserService from \"../../services/UserService\";\r\nimport useSnackbar from \"../../hooks/useSnackbar\";\r\nimport {LockOpenOutlined, LockOutlined} from \"@material-ui/icons\";\r\n\r\nexport interface IPaymentInformationInlineFormProps {\r\n form: UseFormMethods;\r\n defaultValue: IPaymentInformation;\r\n paymentTypes: string[];\r\n readonly: boolean;\r\n paymentTypeIcon: (paymentType: string) => JSX.Element;\r\n}\r\n\r\n\r\nconst PaymentInformationInlineForm: React.FC = ({\r\n form,\r\n defaultValue,\r\n paymentTypes,\r\n readonly,\r\n paymentTypeIcon\r\n }) => {\r\n\r\n const [paymentInformation, setPaymentInformation] = useState(undefined);\r\n const {addMessage} = useSnackbar();\r\n\r\n useEffect(() => {\r\n setPaymentInformation(undefined);\r\n }, [defaultValue]);\r\n const onReveal = () => {\r\n if (paymentInformation) return;\r\n UserService.getPaymentInformationDetail(defaultValue.paymentInfoId).then(detail => {\r\n setPaymentInformation(detail);\r\n }).catch(error => {\r\n console.error(error);\r\n addMessage('Could not retrieve credit card details');\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {readonly ? (\r\n {paymentTypeIcon(defaultValue.paymentType)},\r\n }}\r\n defaultValue={defaultValue.paymentType}\r\n fullWidth\r\n readonly\r\n />\r\n ) : (\r\n ({\r\n value: type,\r\n label: (\r\n \r\n {paymentTypeIcon(type)}\r\n \r\n {type}\r\n \r\n \r\n ),\r\n }))}\r\n error={!!form.errors.paymentType}\r\n errorMessage={form.errors.paymentType ? form.errors.paymentType.message : \"\"}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {readonly ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n i + 1).map((val) => ({\r\n value: val,\r\n label: (\"0\" + val).slice(-2),\r\n }))}\r\n />\r\n \r\n \r\n \r\n i + moment().year()).map((val) => ({\r\n value: val,\r\n label: val.toString(),\r\n }))}\r\n />\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!readonly ?\r\n \r\n \r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n \r\n {paymentInformation ?\r\n : }\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n )\r\n ;\r\n};\r\n\r\nexport default PaymentInformationInlineForm;\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {useForm} from \"react-hook-form\";\r\n\r\nimport {yupResolver} from \"@hookform/resolvers/yup\";\r\nimport {Accordion, AccordionDetails, AccordionSummary, Button, Link, Typography} from \"@material-ui/core\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\n\r\nimport useBreakpoint from \"../../hooks/useBreakpoint\";\r\nimport {useModal} from \"../../hooks/useModal\";\r\nimport IPaymentInformation, {IPaymentInformationForm} from \"../../models/IPaymentInformation\";\r\nimport baseStyles from \"../../styles/styles.module.scss\";\r\nimport Constants from \"../../utils/Constants\";\r\nimport isRequiredFieldMissing from \"../../utils/Forms\";\r\nimport Dialog from \"../commons/Dialog/Dialog\";\r\nimport DialogActions from \"../commons/Dialog/DialogActions\";\r\nimport DialogButton from \"../commons/Dialog/DialogButton\";\r\nimport DialogCancelButton from \"../commons/Dialog/DialogCancelButton\";\r\nimport DialogContent from \"../commons/Dialog/DialogContent\";\r\nimport DialogTitle from \"../commons/Dialog/DialogTitle\";\r\nimport {PaymentInformationFormSchema} from \"../PaymentInformation/PaymentInformation\";\r\nimport PaymentInformationInlineForm from \"../PaymentInformationInlineForm\";\r\nimport AccordionWarningMessage from \"../commons/AccordionWarningMessage/AccordionWarningMessage\";\r\nimport moment from \"moment\";\r\nimport UserService from \"../../services/UserService\";\r\n\r\nexport interface IPaymentInformationCardProps {\r\n paymentInformation: IPaymentInformation;\r\n paymentTypes: string[];\r\n maskAccountNumber: (cbNumber: string) => string;\r\n formatExpirationDate: (expirationDate?: Date) => string;\r\n savePaymentInformation: (paymentInfo: IPaymentInformation) => void;\r\n deletePaymentInformation: (paymentInfoId: number) => void;\r\n paymentTypeIcon: (paymentType: string) => JSX.Element;\r\n}\r\n\r\nconst PaymentInformationCard: React.FC = ({\r\n paymentInformation,\r\n paymentTypes,\r\n maskAccountNumber,\r\n savePaymentInformation,\r\n deletePaymentInformation,\r\n paymentTypeIcon,\r\n }) => {\r\n const [readonly, setReadOnly] = useState(true);\r\n const form = useForm({resolver: yupResolver(PaymentInformationFormSchema), mode: \"onChange\"});\r\n const {showModal: showConfirmation, hideModal: hideConfirmation, isVisible: isVisibleConfirmation} = useModal();\r\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(true);\r\n const breakpoint = useBreakpoint();\r\n\r\n const [paymentInfoDetail, setPaymentInfoDetail] = useState(paymentInformation);\r\n\r\n useEffect(() => {\r\n setPaymentInfoDetail(paymentInformation);\r\n }, [paymentInformation]);\r\n\r\n useEffect(() => {\r\n let disabled;\r\n if (!form.formState.isDirty) {\r\n disabled = true;\r\n } else {\r\n disabled = isRequiredFieldMissing(PaymentInformationFormSchema, form.getValues);\r\n }\r\n\r\n setIsSubmitDisabled(disabled);\r\n }, [form.formState.isValid, form.control]);\r\n\r\n useEffect(() => {\r\n form.reset(paymentInfoDetail);\r\n }, [paymentInfoDetail]);\r\n\r\n const handleSubmit = (submittedPaymentInfo: IPaymentInformationForm) => {\r\n savePaymentInformation({\r\n ...paymentInfoDetail,\r\n ...submittedPaymentInfo,\r\n expirationDate: new Date(submittedPaymentInfo.expirationDateYear, submittedPaymentInfo.expirationDateMonth, 1),\r\n });\r\n setReadOnly(true);\r\n };\r\n\r\n const handleDelete = () => {\r\n showConfirmation();\r\n };\r\n\r\n const handleConfirmDeletePaymentInformation = () => {\r\n deletePaymentInformation(paymentInfoDetail.paymentInfoId);\r\n hideConfirmation();\r\n };\r\n\r\n const handleEdit = () => {\r\n // Get cc details\r\n UserService.getPaymentInformationDetail(paymentInfoDetail?.paymentInfoId)\r\n .then((detail) => {\r\n setPaymentInfoDetail(detail);\r\n setReadOnly(false);\r\n }).catch(error => {\r\n console.error(error);\r\n setReadOnly(true);\r\n })\r\n };\r\n const handleCancel = () => {\r\n setPaymentInfoDetail(paymentInformation);\r\n setReadOnly(true);\r\n form.clearErrors();\r\n };\r\n\r\n enum CardExpiration {\r\n None,\r\n WillExpire,\r\n Expired,\r\n }\r\n\r\n const willExpireInAMonth = (paymentInformation: IPaymentInformation): CardExpiration => {\r\n let monthsLeft = moment(paymentInformation.expirationDate).diff(moment(), \"months\", true);\r\n if (monthsLeft > 0 && monthsLeft < 1) {\r\n return CardExpiration.WillExpire;\r\n } else if (monthsLeft <= 0) {\r\n return CardExpiration.Expired;\r\n }\r\n return CardExpiration.None;\r\n };\r\n\r\n const cardAlertView = () => {\r\n switch (willExpireInAMonth(paymentInfoDetail)) {\r\n case CardExpiration.WillExpire:\r\n return ;\r\n\r\n case CardExpiration.Expired:\r\n return ;\r\n\r\n case CardExpiration.None:\r\n return <>;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n }>\r\n \r\n {paymentTypeIcon(paymentInfoDetail.paymentType)}\r\n \r\n \r\n {paymentInfoDetail.paymentType} {maskAccountNumber(paymentInfoDetail.cbNumber)}\r\n \r\n {cardAlertView()}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {readonly ? (\r\n <>\r\n \r\n \r\n Delete payment\r\n \r\n \r\n \r\n Edit payment\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n
    \r\n \r\n \r\n You are going to delete payment\r\n {`${paymentInfoDetail.paymentType} ${maskAccountNumber(paymentInfoDetail.cbNumber)}`}\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PaymentInformationCard;\r\n","import moment from \"moment\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport * as yup from \"yup\";\r\n\r\nimport { yupResolver } from \"@hookform/resolvers/yup\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nimport { ReactComponent as AirPlusCardIcon } from \"../../assets/icons/airPlusCard.svg\";\r\nimport { ReactComponent as AmexCardIcon } from \"../../assets/icons/amexCard.svg\";\r\nimport { ReactComponent as DinerClubCardIcon } from \"../../assets/icons/dinerClubCard.svg\";\r\nimport { ReactComponent as MasterCardIcon } from \"../../assets/icons/masterCard.svg\";\r\nimport { ReactComponent as VisaCardIcon } from \"../../assets/icons/visaCard.svg\";\r\nimport { ReactComponent as WarningIcon } from \"../../assets/icons/warning.svg\";\r\nimport { useReservationContext } from \"../../context/ReservationProvider/ReservationProvider\";\r\nimport useBreakpoint from \"../../hooks/useBreakpoint\";\r\nimport { useModal } from \"../../hooks/useModal\";\r\nimport useSnackbar from \"../../hooks/useSnackbar\";\r\nimport IPaymentInformation, { IPaymentInformationForm } from \"../../models/IPaymentInformation\";\r\nimport UserService from \"../../services/UserService\";\r\nimport baseStyles from \"../../styles/styles.module.scss\";\r\nimport Constants from \"../../utils/Constants\";\r\nimport isRequiredFieldMissing from \"../../utils/Forms\";\r\nimport { MessageType } from \"../../utils/MessageType\";\r\nimport formatString from \"../../utils/Strings\";\r\nimport AddButton from \"../commons/AddButton/AddButton\";\r\nimport Checkbox from \"../commons/Checkbox/Checkbox\";\r\nimport Drawer from \"../commons/Drawer/Drawer\";\r\nimport DrawerActions from \"../commons/Drawer/DrawerActions\";\r\nimport DrawerCancelButton from \"../commons/Drawer/DrawerCancelButton\";\r\nimport DrawerContent from \"../commons/Drawer/DrawerContent\";\r\nimport DrawerSaveButton from \"../commons/Drawer/DrawerSaveButton\";\r\nimport DrawerTitle from \"../commons/Drawer/DrawerTitle\";\r\nimport FormControl from \"../commons/FormControl/FormControl\";\r\nimport Select from \"../commons/Select/Select\";\r\nimport PaymentInformationCard from \"../PaymentInformationCard/PaymentInformationCard\";\r\nimport PaymentInformationForm from \"../PaymentInformationForm/PaymentInformationForm\";\r\nimport styles from \"./ReservationPaymentInformations.module.scss\";\r\n\r\nexport interface IDefaultReservationPaymentInformationPayload {\r\n userId: number;\r\n paymentInfoId: number;\r\n}\r\n\r\nexport const ReservationPaymentInformationsFormSchema = yup.object().shape({\r\n paymentType: yup.string().required(Constants.validation.required).max(50, formatString(Constants.validation.max, 50)),\r\n cbOwner: yup.string().required(Constants.validation.required).max(100, formatString(Constants.validation.max, 100)),\r\n cbNumber: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .matches(Constants.validation.numericOnlyRegex, Constants.validation.invalidNumber)\r\n .when(\"paymentType\", {\r\n is: (paymentType: string) => paymentType === \"AirPlus\",\r\n then: yup.string().test(\"len\", formatString(Constants.validation.paymentCard, 16), (val) => val?.length === 0 || val?.length === 16),\r\n })\r\n .when(\"paymentType\", {\r\n is: (paymentType: string) => paymentType === \"American Express\",\r\n then: yup.string().test(\"len\", formatString(Constants.validation.paymentCard, 15), (val) => val?.length === 0 || val?.length === 15),\r\n })\r\n .when(\"paymentType\", {\r\n is: (paymentType: string) => paymentType === \"Diners Club\",\r\n then: yup.string().test(\"len\", formatString(Constants.validation.paymentCard, 14), (val) => val?.length === 0 || val?.length === 14),\r\n })\r\n .when(\"paymentType\", {\r\n is: (paymentType: string) => paymentType === \"MasterCard\",\r\n then: yup.string().test(\"len\", formatString(Constants.validation.paymentCard, 16), (val) => val?.length === 0 || val?.length === 16),\r\n })\r\n .when(\"paymentType\", {\r\n is: (paymentType: string) => paymentType === \"Visa\",\r\n then: yup.string().test(\"len\", formatString(Constants.validation.paymentCard, 16), (val) => val?.length === 0 || val?.length === 16),\r\n }),\r\n expirationDateMonth: yup.number().required(Constants.validation.required),\r\n expirationDateYear: yup.number().nullable(),\r\n});\r\n\r\nexport const DefaultReservationPaymentInformations: IPaymentInformation = {\r\n userId: 0,\r\n paymentInfoId: 0,\r\n cbNumber: \"\",\r\n cbOwner: \"\",\r\n expirationDate: undefined,\r\n paymentType: \"\",\r\n isDefault: false,\r\n};\r\n\r\ninterface ReservationPaymentInformations {\r\n reservationForm: any;\r\n}\r\n\r\nconst ReservationPaymentInformations: React.FC = ({ reservationForm }) => {\r\n const [] = useState(true);\r\n const { addMessage } = useSnackbar();\r\n const breakpoint = useBreakpoint();\r\n const { showModal: showDrawer, hideModal: hideDrawer, isVisible: isVisibleDrawer } = useModal();\r\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(true);\r\n const [isTemporary, setIsTemporary] = useState(false);\r\n const [lastSavedCard, setLastSavedCard] = useState();\r\n const [selectAddedCard, setSelectAddedCard] = useState(false);\r\n const {\r\n state: { memberInformations, temporaryReservationCard, paymentTypes, booking },\r\n fetchMemberInformations,\r\n setTemporaryReservationCard,\r\n } = useReservationContext();\r\n const form = useForm({\r\n mode: \"onChange\",\r\n resolver: yupResolver(ReservationPaymentInformationsFormSchema),\r\n });\r\n const watchPayment = reservationForm.watch(\"defaultPaymentInformation\");\r\n\r\n useEffect(() => {\r\n let disabled = isRequiredFieldMissing(ReservationPaymentInformationsFormSchema, form.getValues) || !form.formState.isDirty;\r\n setIsSubmitDisabled(disabled);\r\n }, [form.formState.isValid, form.control, form.formState]);\r\n\r\n const handleSubmit = (payment: IPaymentInformationForm) => {\r\n let fullPayment = {\r\n ...DefaultReservationPaymentInformations,\r\n ...payment,\r\n expirationDate: new Date(payment.expirationDateYear, payment.expirationDateMonth, 1),\r\n userId: memberInformations?.user?.userId ?? 0,\r\n };\r\n savePaymentInformation(fullPayment);\r\n hideDrawer();\r\n setIsTemporary(false);\r\n setSelectAddedCard(true);\r\n };\r\n\r\n useEffect(() => {\r\n let foundCard = null;\r\n if (selectAddedCard && lastSavedCard) {\r\n foundCard = lastSavedCard.cbNumber;\r\n setSelectAddedCard(false);\r\n } else {\r\n foundCard =\r\n watchPayment == \"\" || (booking.ccNumber == \"\" && watchPayment == undefined) || (booking.ccNumber == null && watchPayment == undefined)\r\n ? \"\"\r\n : memberInformations.paymentInformations.find((p) => p.cbNumber === watchPayment)?.cbNumber ??\r\n memberInformations.paymentInformations.find((p) => p.cbNumber === lastSavedCard?.cbNumber)?.cbNumber ??\r\n memberInformations.paymentInformations.find((p) => p.cbNumber === booking.ccNumber)?.cbNumber ??\r\n memberInformations.paymentInformations.find((p) => p.isDefault)?.cbNumber;\r\n }\r\n if (foundCard != null) {\r\n reservationForm.setValue(\"defaultPaymentInformation\", foundCard, { shouldValidate: true, shouldDirty: !reservationForm.formState.isDirty });\r\n }\r\n }, [memberInformations, lastSavedCard, watchPayment]);\r\n\r\n const onAddClick = () => {\r\n showDrawer();\r\n };\r\n\r\n const saveTemporaryPaymentInformation = (paymentInformation: IPaymentInformation) => {\r\n savePaymentInformation(paymentInformation, true);\r\n };\r\n\r\n const savePaymentInformation = (paymentInformation: IPaymentInformation, temporaryUpdate: boolean = false) => {\r\n if (memberInformations?.user?.userId) {\r\n if (isTemporary || temporaryUpdate) {\r\n setTemporaryReservationCard(paymentInformation);\r\n // fetchMemberInformations();\r\n setSelectAddedCard(true);\r\n setLastSavedCard(paymentInformation);\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n } else {\r\n let promise: Promise;\r\n if (paymentInformation.paymentInfoId > 0) {\r\n promise = UserService.updatePaymentInformation(paymentInformation);\r\n } else {\r\n promise = UserService.createPaymentInformation(paymentInformation);\r\n }\r\n\r\n promise\r\n .then((result) => {\r\n if (result) {\r\n fetchMemberInformations();\r\n setLastSavedCard(paymentInformation);\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n }\r\n } else {\r\n setTemporaryReservationCard(paymentInformation);\r\n // fetchMemberInformations();\r\n setSelectAddedCard(true);\r\n setLastSavedCard(paymentInformation);\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n }\r\n };\r\n\r\n const deletePaymentInformation = (paymentInfoId: number) => {\r\n if (memberInformations?.user?.userId) {\r\n UserService.deletePaymentInformation(memberInformations.user.userId, paymentInfoId)\r\n .then((result) => {\r\n if (result) {\r\n fetchMemberInformations();\r\n addMessage(Constants.messages.success.dataDeleted, MessageType.Success);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n }\r\n };\r\n\r\n const maskAccountNumber = (cbNumber: string) => {\r\n var maskedPart = \"****\";\r\n var unmaskedPart = cbNumber.slice(cbNumber.length - 4, cbNumber.length);\r\n return `${maskedPart}${unmaskedPart}`;\r\n };\r\n\r\n const formatExpirationDate = (expirationDate?: Date) =>\r\n expirationDate ? `${(\"0\" + (moment(expirationDate).month() + 1)).slice(-2)}/${moment(expirationDate).year()}` : \"\";\r\n\r\n const paymentTypeIcon = (paymentType: string): JSX.Element => {\r\n switch (paymentType) {\r\n case \"AirPlus\":\r\n return ;\r\n case \"American Express\":\r\n return ;\r\n case \"Diners Club\":\r\n return ;\r\n case \"MasterCard\":\r\n return ;\r\n case \"Visa\":\r\n return ;\r\n default:\r\n return <>;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {paymentTypes && (\r\n <>\r\n \r\n Add a Payment\r\n \r\n\r\n {memberInformations.paymentInformations && memberInformations.paymentInformations.length > 0 && (\r\n <>\r\n \r\n \r\n \r\n ({\r\n label: (\r\n \r\n {paymentTypeIcon(pi.paymentType)}\r\n \r\n {pi.paymentType} {maskAccountNumber(pi.cbNumber)}\r\n \r\n \r\n ),\r\n value: pi.cbNumber,\r\n })),\r\n ]}\r\n defaultValue={watchPayment}\r\n control={reservationForm.control}\r\n />\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n {memberInformations.paymentInformations &&\r\n memberInformations.paymentInformations.length > 0 &&\r\n memberInformations.paymentInformations.map((paymentInfo) => {\r\n if (paymentInfo.paymentInfoId === temporaryReservationCard?.paymentInfoId) {\r\n return (\r\n setTemporaryReservationCard(undefined)}\r\n paymentTypeIcon={paymentTypeIcon}\r\n />\r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n })}\r\n \r\n \r\n Add a Payment\r\n
    \r\n \r\n \r\n \r\n {memberInformations.user && (\r\n \r\n setIsTemporary(e.target.checked)}\r\n checked={isTemporary}\r\n color=\"primary\"\r\n />\r\n \r\n )}\r\n {memberInformations.user && temporaryReservationCard && (\r\n \r\n \r\n \r\n This will override the other unsaved card\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ReservationPaymentInformations;\r\n","import React, {useEffect} from 'react';\r\nimport {useFormContext} from 'react-hook-form';\r\n\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\nimport useTheme from '@material-ui/core/styles/useTheme';\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\n\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport FormControl from '../../../commons/FormControl/FormControl';\r\nimport TextField from '../../../commons/TextField/TextField';\r\n\r\ninterface IContactInformationFormProps {\r\n emailTicketDelivery: string;\r\n emailPrimary: string;\r\n emailTraveling: string;\r\n}\r\n\r\nconst ContactInformationForm: React.FC = ({\r\n emailTicketDelivery,\r\n emailPrimary,\r\n emailTraveling,\r\n}) => {\r\n const { register, errors, reset, formState } = useFormContext();\r\n const theme = useTheme();\r\n const isSmartphone = useMediaQuery(theme.breakpoints.down('sm'));\r\n useEffect(() => {\r\n reset({\r\n contactInfoTicketDelivery: emailTicketDelivery,\r\n contactInfoPrimary: emailPrimary,\r\n contactInfoTraveling: emailTraveling,\r\n });\r\n }, [emailTicketDelivery, emailPrimary, emailTraveling]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isSmartphone && }\r\n \r\n \r\n \r\n \r\n \r\n {!isSmartphone && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ContactInformationForm;\r\n","import moment from 'moment';\r\nimport React, {useEffect} from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\n\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\n\r\nimport IContactLocation, {IContactLocationForm,} from '../../../../models/Reservation/IContactLocation';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport DatePicker from '../../../commons/DatePicker/DatePicker';\r\nimport FormControl from '../../../commons/FormControl/FormControl';\r\nimport TextField from '../../../commons/TextField/TextField';\r\n\r\ninterface IContactLocationFormProps {\r\n form: UseFormMethods;\r\n contactLocation: IContactLocation;\r\n readonly?: boolean;\r\n}\r\n\r\nconst ContactLocationForm: React.FC = ({\r\n form,\r\n contactLocation,\r\n readonly = false,\r\n}) => {\r\n const { register, errors, control, watch } = form;\r\n const watchFromDate = watch('etravelContactLocationFD');\r\n useEffect(() => {\r\n form.setValue('etravelContactLocationFD', contactLocation.fromDate);\r\n }, [contactLocation]);\r\n\r\n return (\r\n \r\n \r\n \r\n {readonly ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {readonly ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {readonly ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ContactLocationForm;\r\n","import clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport { Box, Button, Collapse, IconButton, Link, Typography, } from '@material-ui/core';\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nimport { useModal } from '../../../../hooks/useModal';\r\nimport { ContactLocationFormSchema } from '../../../../models/Reservation/Forms/IPersonalDataForm';\r\nimport IContactLocation, { IContactLocationForm, } from '../../../../models/Reservation/IContactLocation';\r\nimport { useCollapseCardIconStyles } from '../../../../styles/collapseCardIcon';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\nimport DateTime from '../../../commons/DateTime/DateTime';\r\nimport Dialog from '../../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../commons/Dialog/DialogTitle';\r\nimport FormControl from '../../../commons/FormControl/FormControl';\r\nimport TextField from '../../../commons/TextField/TextField';\r\nimport ContactLocationForm from './ContactLocationForm';\r\n\r\ninterface IContactLocationCardProps {\r\n contactLocation: IContactLocation;\r\n saveContactLocation: (contactLocation: IContactLocationForm) => void;\r\n deleteContactLocation: () => void;\r\n}\r\n\r\nconst ContactLocationCard: React.FC = ({\r\n contactLocation,\r\n saveContactLocation,\r\n deleteContactLocation,\r\n}) => {\r\n const classes = useCollapseCardIconStyles();\r\n const [readonly, setReadOnly] = useState(true);\r\n const [expanded, setExpanded] = useState(false);\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(yup.object().shape(ContactLocationFormSchema)),\r\n defaultValues: {\r\n etravelContactLocationFD: contactLocation.fromDate,\r\n etravelContactLocationTD: contactLocation.toDate,\r\n etravelContactLocationAD: contactLocation.address,\r\n etravelContactLocationCI: contactLocation.city,\r\n etravelContactLocationCO: contactLocation.comment,\r\n etravelContactLocationPH: contactLocation.phoneNumber,\r\n }\r\n });\r\n const {\r\n showModal: showConfirmation,\r\n hideModal: hideConfirmation,\r\n isVisible: isVisibleConfirmation,\r\n } = useModal();\r\n\r\n const handleExpandClick = () => {\r\n if (expanded) {\r\n setReadOnly(true);\r\n }\r\n setExpanded(!expanded);\r\n };\r\n\r\n const handleSubmit = (location: IContactLocationForm) => {\r\n setReadOnly(true);\r\n saveContactLocation({ ...contactLocation, ...location });\r\n };\r\n\r\n const handleDelete = () => {\r\n showConfirmation();\r\n };\r\n\r\n const handleConfirmDeletePaymentInformation = () => {\r\n deleteContactLocation();\r\n hideConfirmation();\r\n };\r\n\r\n const handleEdit = () => {\r\n setReadOnly(false);\r\n };\r\n const handleCancel = () => {\r\n setReadOnly(true);\r\n form.clearErrors();\r\n };\r\n\r\n return (\r\n
    \r\n {!expanded && (\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n )}\r\n \r\n
    \r\n
    \r\n \r\n \r\n {readonly ? (\r\n <>\r\n \r\n \r\n Delete contact location\r\n \r\n \r\n \r\n Edit contact location\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n {Constants.buttons.cancel}\r\n \r\n \r\n \r\n {Constants.buttons.saveChanges}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n You are going to delete a contact location\r\n \r\n \r\n From{' '}\r\n {' '}\r\n to{' '}\r\n \r\n \r\n \r\n \r\n Are you sure?\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ContactLocationCard;\r\n","/* eslint-disable */\r\nimport 'react-quill/dist/quill.snow.css';\r\n\r\nimport React, { useMemo } from 'react';\r\nimport { Control, Controller } from 'react-hook-form';\r\nimport MuiReactQuill from 'react-quill';\r\n\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\n\r\nimport styles from './ReactQuill.module.scss';\r\n\r\nconst formats = [\r\n 'size',\r\n 'bold',\r\n 'italic',\r\n 'underline',\r\n 'strike',\r\n 'list',\r\n 'bullet',\r\n 'indent',\r\n 'color',\r\n 'background',\r\n 'link',\r\n 'image',\r\n 'clean',\r\n];\r\n\r\ninterface IReactQuillProps {\r\n name: string;\r\n id?: string;\r\n label?: string;\r\n error?: boolean;\r\n errorMessage?: React.ReactNode;\r\n color?: string;\r\n fullWidth?: boolean;\r\n margin?: 'none' | 'dense' | 'normal' | undefined;\r\n defaultValue?: string;\r\n control?: Control;\r\n value?: string;\r\n onChange?: (content: string, delta: any, source: any, editor: any) => void;\r\n readonly?: boolean;\r\n className?: string;\r\n quillRef?: any;\r\n saveImagehandler?: (formData: FormData) => Promise;\r\n}\r\n\r\nconst ReactQuill: React.FC = ({\r\n name,\r\n id,\r\n defaultValue,\r\n color = 'primary',\r\n margin = 'none',\r\n fullWidth = true,\r\n error,\r\n label,\r\n errorMessage,\r\n control,\r\n children,\r\n quillRef,\r\n saveImagehandler,\r\n ...props\r\n}) => {\r\n const imageHandler = () => {\r\n if (saveImagehandler) {\r\n const input = document.createElement('input');\r\n\r\n input.setAttribute('type', 'file');\r\n input.setAttribute('accept', 'image/*');\r\n input.click();\r\n\r\n input.onchange = async () => {\r\n if (input.files == null) return;\r\n const file = input.files[0];\r\n const formData = new FormData();\r\n\r\n formData.append('image', file);\r\n\r\n // Save current cursor state\r\n const range = quillRef.current.editor.getSelection(true);\r\n\r\n // Insert temporary loading placeholder image\r\n quillRef.current.editor.insertEmbed(\r\n range.index,\r\n 'image',\r\n `${process.env.REACT_APP_API_URI}/images/loader.gif`\r\n );\r\n\r\n // Move cursor to right side of image (easier to continue typing)\r\n quillRef.current.editor.setSelection(range.index + 1);\r\n\r\n let imageUrl: string | undefined;\r\n try {\r\n imageUrl = await saveImagehandler(formData); // API post, returns image location as string e.g. 'http://www.example.com/images/foo.png'\r\n } finally {\r\n // Remove placeholder image\r\n quillRef.current.editor.deleteText(range.index, 1);\r\n\r\n // Insert uploaded image\r\n // this.quill.insertEmbed(range.index, 'image', res.body.image);\r\n if (imageUrl && imageUrl.length > 0) {\r\n quillRef.current.editor.insertEmbed(range.index, 'image', imageUrl);\r\n }\r\n }\r\n };\r\n }\r\n };\r\n\r\n const modules = useMemo(\r\n () => ({\r\n toolbar: {\r\n container: [\r\n [{ size: ['small', false, 'large', 'huge'] }],\r\n ['bold', 'italic', 'underline', 'strike'],\r\n [{ list: 'ordered' }, { list: 'bullet' }],\r\n [{ color: [] }, { background: [] }],\r\n ['link', saveImagehandler ? 'image' : ''],\r\n ['clean'],\r\n ],\r\n handlers: saveImagehandler ? { image: imageHandler } : {},\r\n },\r\n clipboard: {\r\n matchVisual: false,\r\n },\r\n }),\r\n []\r\n );\r\n\r\n return (\r\n \r\n {label}\r\n {control ? (\r\n (\r\n \r\n )}\r\n control={control}\r\n defaultValue={defaultValue}\r\n name={name}\r\n />\r\n ) : (\r\n \r\n )}\r\n {error && {errorMessage}}\r\n \r\n );\r\n};\r\n\r\nexport default ReactQuill;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport {\r\n Box,\r\n Checkbox,\r\n FormControlLabel,\r\n Link,\r\n Tooltip,\r\n Typography,\r\n} from '@material-ui/core';\r\nimport { useModal } from '../../../../hooks/useModal';\r\nimport useSnackbar from '../../../../hooks/useSnackbar';\r\nimport IWCMPage from '../../../../models/IWCMPage';\r\nimport WCMPageService from '../../../../services/WCMPageService';\r\nimport Constants from '../../../../utils/Constants';\r\nimport Dialog from '../../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../../commons/Dialog/DialogActions';\r\nimport DialogCancelButton from '../../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../commons/Dialog/DialogTitle';\r\nimport ReactQuill from '../../../commons/ReactQuill/ReactQuill';\r\nimport styles from './PersonalDataConditions.module.scss';\r\n\r\nexport interface IConditionsProps {\r\n conditionAccepted: boolean;\r\n setConditionAccepted: (newVal: boolean) => void;\r\n}\r\n\r\nconst PersonalDataConditions: React.FC = ({\r\n conditionAccepted,\r\n setConditionAccepted,\r\n}) => {\r\n const {\r\n showModal: showConfirmation,\r\n hideModal: hideConfirmation,\r\n isVisible: isVisibleConfirmation,\r\n } = useModal();\r\n\r\n const [wcmPage, setWcmPage] = useState(null);\r\n const [requestFailed, setRequestFailed] = useState(false);\r\n const { addMessage } = useSnackbar();\r\n const [conditionClicked, setConditionClicked] = useState(false);\r\n\r\n const handleConditionClick = (event: React.SyntheticEvent) => {\r\n event.preventDefault();\r\n setConditionClicked(true);\r\n showConfirmation();\r\n };\r\n useEffect(() => {\r\n fetchWCMPage();\r\n }, []);\r\n\r\n const fetchWCMPage = async () => {\r\n WCMPageService.getByName(Constants.wcm.titleForCargoluxCondition)\r\n .then((result) => setWcmPage(result))\r\n .catch((error) => {\r\n addMessage(error.message);\r\n setRequestFailed(true);\r\n });\r\n };\r\n\r\n return (\r\n \r\n {requestFailed ? (\r\n {Constants.wcm.retrieveError}\r\n ) : (\r\n <>\r\n \r\n \r\n Please click on the link 'Cargolux Conditions of\r\n Contract' to activate the check box\r\n \r\n }\r\n >\r\n \r\n setConditionAccepted(!conditionAccepted)}\r\n name=\"conditions\"\r\n />\r\n \r\n \r\n }\r\n label=\"\"\r\n className={styles.conditions}\r\n />\r\n \r\n {Constants.rulesAndConditions.text}\r\n \r\n {wcmPage?.name}\r\n \r\n \r\n \r\n \r\n {'Please check '}\r\n \r\n {'here'}\r\n \r\n {' how Cargolux is processing your personal data'}\r\n \r\n \r\n {wcmPage && wcmPage.name}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PersonalDataConditions;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {FormProvider, useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Button, Tab, Tabs} from '@material-ui/core';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport {useReservationContext} from '../../../context/ReservationProvider/ReservationProvider';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IImmigrationDocument from '../../../models/IImmigrationDocument';\r\nimport IMemberExtended from '../../../models/IMemberExtended';\r\nimport {\r\n ContactLocationFormSchema,\r\n IPersonalData,\r\n IPersonalDataForm,\r\n PersonalDataFormSchema,\r\n} from '../../../models/Reservation/Forms/IPersonalDataForm';\r\nimport IContactLocation, {\r\n IContactLocationForm,\r\n} from '../../../models/Reservation/IContactLocation';\r\nimport IReservationMember from '../../../models/Reservation/IReservationMember';\r\nimport ITripType from '../../../models/Reservation/ITripType';\r\nimport baseStyle from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport isRequiredFieldMissing from '../../../utils/Forms';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport AccordionWarningMessage from '../../commons/AccordionWarningMessage/AccordionWarningMessage';\r\nimport AddButton from '../../commons/AddButton/AddButton';\r\nimport Drawer from '../../commons/Drawer/Drawer';\r\nimport DrawerActions from '../../commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../../commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../../commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../../commons/Drawer/DrawerTitle';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport Select from '../../commons/Select/Select';\r\nimport StepperActions from '../../commons/Stepper/StepperActions';\r\nimport EmergencyContact from '../../EmergencyContact/EmergencyContact';\r\nimport ReservationPaymentInformations\r\n from '../../ReservationPaymentInformations/ReservationPaymentInformations';\r\nimport ContactInformationForm from './personalData/ContactInformationForm';\r\nimport ContactLocationCard from './personalData/ContactLocationCard';\r\nimport ContactLocationForm from './personalData/ContactLocationForm';\r\nimport PersonalDataConditions from './personalData/PersonalDataConditions';\r\nimport Styles from './Steps.module.scss';\r\nimport PassportReadonlyCard from './personalData/PassportReadonlyCard';\r\nimport moment from 'moment/moment';\r\nimport ReactCountryFlag from 'react-country-flag';\r\n\r\nexport interface IPersonalDataStepProps {\r\n}\r\n\r\nconst DefaultValueContactLocation: IContactLocation = {\r\n fromDate: new Date(),\r\n toDate: new Date(),\r\n address: undefined,\r\n city: undefined,\r\n phoneNumber: undefined,\r\n comment: undefined,\r\n};\r\n\r\nconst PersonalDataStep: React.FC = () => {\r\n const {\r\n state: {\r\n allTripTypes,\r\n activeStep,\r\n steps,\r\n memberInformations,\r\n booking,\r\n isDirty,\r\n },\r\n fetchMemberInformations,\r\n nextStep,\r\n previousStep,\r\n cancelBooking,\r\n savePersonalData,\r\n scrollToTop,\r\n } = useReservationContext();\r\n\r\n const {\r\n showModal: showDrawer,\r\n hideModal: hideDrawer,\r\n isVisible: isVisibleDrawer,\r\n } = useModal();\r\n const {addMessage} = useSnackbar();\r\n const breakpoint = useBreakpoint();\r\n const [selectedMember, setSelectedMember] = useState(\r\n memberInformations.member,\r\n );\r\n const [selectedTab, setSelectedTab] = useState(\r\n booking.reservationMembers[0]?.memberId,\r\n );\r\n const [conditionsAccepted, setConditionsAccepted] = useState(\r\n booking.conditionsAccepted,\r\n );\r\n\r\n const [schema, setSchema] = useState(PersonalDataFormSchema());\r\n\r\n const isPassportExpired = (document: IImmigrationDocument): boolean => {\r\n const expireMoment = moment(document.expireDate);\r\n const today = moment();\r\n return expireMoment.isBefore(today);\r\n };\r\n\r\n let reservationMembersWithMemberId = booking.reservationMembers?.map((rm) => {\r\n let fullMember =\r\n memberInformations.relatives?.find((r) => r.memberId === rm.memberId) ??\r\n memberInformations.member;\r\n return {\r\n ...rm,\r\n documentId:\r\n rm.documentId > 0\r\n ? fullMember.documents.find((d) => d.documentId === rm.documentId && !isPassportExpired(d)) ? rm.documentId : 0\r\n : fullMember.documents?.find((d) => d.isDefault && d.documentType === 'Passport' && !isPassportExpired(d))?.documentId ?? 0,\r\n };\r\n });\r\n\r\n const [reservationMembers, setReservationMembers] = useState<\r\n IReservationMember[]\r\n >(reservationMembersWithMemberId);\r\n const [tripType, setTripType] = useState({} as ITripType);\r\n const [contactLocations, setContactLocations] = useState<\r\n IContactLocationForm[]\r\n >([]);\r\n\r\n const [selectedPassportId, setSelectedPassportId] = useState(reservationMembers[\r\n reservationMembers?.findIndex(\r\n (m) => m.memberId === selectedTab,\r\n )\r\n ]?.documentId);\r\n\r\n useEffect(() => {\r\n let foundTrip = allTripTypes.find(\r\n (tt) => tt.tripTypeId === booking.tripTypeId,\r\n );\r\n foundTrip && setTripType(foundTrip);\r\n\r\n if (booking.contactLocations) {\r\n let clf: IContactLocationForm[] = [];\r\n booking.contactLocations.forEach((cl) => {\r\n clf.push({\r\n etravelContactLocationFD: cl.fromDate,\r\n etravelContactLocationTD: cl.toDate,\r\n etravelContactLocationAD: cl.address,\r\n etravelContactLocationPH: cl.phoneNumber,\r\n etravelContactLocationCI: cl.city,\r\n etravelContactLocationCO: cl.comment,\r\n });\r\n });\r\n setContactLocations([...clf]);\r\n }\r\n }, [booking.contactLocations, booking.tripTypeId]);\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(schema),\r\n });\r\n\r\n const watchForm = form.watch();\r\n\r\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(true);\r\n const [isAddContactLocationDisabled, setIsAddContactLocationDisabled] =\r\n useState(true);\r\n const [passportUpdated, setPassportUpdated] = useState(false);\r\n const currentMember =\r\n reservationMembers[\r\n reservationMembers?.findIndex((m) => m.memberId === selectedTab)\r\n ];\r\n\r\n useEffect(() => {\r\n let disabled =\r\n isRequiredFieldMissing(schema, form.getValues) ||\r\n (!form.formState.isDirty && !passportUpdated);\r\n disabled =\r\n disabled ||\r\n reservationMembers.filter((m) => m.documentId === 0).length > 0 ||\r\n isContactLocationMissing() || isImmigrationDataMissing();\r\n setIsSubmitDisabled(disabled);\r\n }, [\r\n form.formState.isValid,\r\n form.formState.dirtyFields,\r\n contactLocations,\r\n form.formState.isDirty,\r\n schema,\r\n reservationMembers,\r\n ]);\r\n\r\n useEffect(() => {\r\n setSchema(PersonalDataFormSchema());\r\n }, [booking.hotels, booking.cars, booking.commercials]);\r\n\r\n useEffect(() => {\r\n setSelectedMember(\r\n memberInformations.relatives?.find((r) => r.memberId === selectedTab) ??\r\n memberInformations.member,\r\n );\r\n }, [selectedTab]);\r\n\r\n useEffect(() => {\r\n setSelectedMember(\r\n memberInformations.relatives?.find((r) => r.memberId === selectedTab) ??\r\n memberInformations.member,\r\n );\r\n }, [memberInformations]);\r\n\r\n useEffect(() => {\r\n const currentDocument = selectedMember.documents.find(\r\n (d) => d.documentId === currentMember.documentId,\r\n );\r\n if (currentMember.documentId > 0 && !currentDocument) {\r\n handleReservationMembersSelect(0, selectedTab);\r\n } else if (!passportUpdated) {\r\n const availablePassports = selectedMember.documents.filter(\r\n (p) => p.documentType === 'Passport',\r\n );\r\n const defaultPassport = availablePassports.find((p) => p.isDefault);\r\n if (currentMember.documentId === 0 && defaultPassport) {\r\n handleReservationMembersSelect(\r\n availablePassports.find((p) => p.isDefault)?.documentId ?? 0,\r\n selectedTab,\r\n );\r\n }\r\n }\r\n }, [selectedMember.documents]);\r\n\r\n useEffect(() => {\r\n if (\r\n memberInformations.nextOfKins.find(\r\n (nok) => nok.nextOfKinId === watchForm.defaultNextOfKinId,\r\n ) === undefined\r\n ) {\r\n form.setValue(\r\n 'defaultNextOfKinId',\r\n memberInformations.nextOfKins[0]?.nextOfKinId,\r\n {\r\n shouldDirty: true,\r\n shouldValidate: true,\r\n },\r\n );\r\n }\r\n }, [memberInformations.nextOfKins]);\r\n\r\n const isImmigrationDataMissing = () => {\r\n return selectedPassportId <= 0;\r\n };\r\n\r\n const isContactLocationMissing = () => {\r\n let isMissing = false;\r\n let hotelsCancelled = true;\r\n booking.hotels?.forEach((element) => {\r\n if (!element.task.status.includes('Cancelled')) {\r\n hotelsCancelled = false;\r\n }\r\n });\r\n if (\r\n tripType.isBusiness &&\r\n (!booking.hotels || booking.hotels?.length === 0 || hotelsCancelled)\r\n ) {\r\n isMissing = !contactLocations?.some(\r\n (x) =>\r\n x.etravelContactLocationFD &&\r\n x.etravelContactLocationTD &&\r\n x.etravelContactLocationAD &&\r\n x.etravelContactLocationCI &&\r\n x.etravelContactLocationPH &&\r\n x.etravelContactLocationAD.trimEnd().length > 0 &&\r\n x.etravelContactLocationCI.trimEnd().length > 0 &&\r\n x.etravelContactLocationPH.trimEnd().length > 0,\r\n );\r\n }\r\n return isMissing;\r\n };\r\n\r\n const isContactInfoMissing = () => {\r\n return !watchForm.contactInfoTicketDelivery;\r\n };\r\n\r\n const handleSubmit = (\r\n formResults: IPersonalDataForm,\r\n event?: React.BaseSyntheticEvent,\r\n ) => {\r\n if (!event?.isPropagationStopped()) {\r\n let chosenCard = memberInformations.paymentInformations.find(\r\n (p) => p.cbNumber === formResults.defaultPaymentInformation,\r\n );\r\n\r\n let contactLocationSubmit: IContactLocation[] = [];\r\n\r\n contactLocations.forEach((cl) => {\r\n let contactLocationResult: IContactLocation = {\r\n fromDate: cl.etravelContactLocationFD,\r\n toDate: cl.etravelContactLocationTD,\r\n address: cl.etravelContactLocationAD,\r\n city: cl.etravelContactLocationCI,\r\n comment: cl.etravelContactLocationCO,\r\n phoneNumber: cl.etravelContactLocationPH,\r\n };\r\n contactLocationSubmit.push(contactLocationResult);\r\n });\r\n\r\n let result: IPersonalData = {\r\n reservationMembers: reservationMembers,\r\n emergencyContactId: formResults.defaultNextOfKinId,\r\n ccType: chosenCard?.paymentType ?? '',\r\n ccOwner: chosenCard?.cbOwner ?? '',\r\n ccNumber: chosenCard?.cbNumber ?? '',\r\n ccExpirationDate: chosenCard?.expirationDate,\r\n emailTicketDelivery: formResults.contactInfoTicketDelivery,\r\n emailPrimary: formResults.contactInfoPrimary,\r\n emailTraveling: formResults.contactInfoTraveling,\r\n conditionsAccepted: conditionsAccepted,\r\n contactLocations: contactLocationSubmit,\r\n };\r\n\r\n savePersonalData(result);\r\n\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n scrollToTop();\r\n }\r\n };\r\n\r\n const handleReservationMembersSelect = (value: any, memberId: number) => {\r\n const passport = selectedMember.documents.find(e => e.documentId == value);\r\n if (!passport) return;\r\n\r\n if (isPassportExpired(passport) || passport.status !== 'Verified') {\r\n return;\r\n }\r\n\r\n form.formState.isDirty = true;\r\n setPassportUpdated(true);\r\n let currentReservationMembers = reservationMembers;\r\n currentReservationMembers[\r\n reservationMembers?.findIndex((m) => m.memberId === memberId)\r\n ] = {\r\n memberId: memberId,\r\n documentId: value,\r\n reservationId: 0,\r\n };\r\n setReservationMembers([...currentReservationMembers]);\r\n setSelectedPassportId(value);\r\n };\r\n\r\n useEffect(() => {\r\n const passportId = reservationMembers[\r\n reservationMembers?.findIndex(\r\n (m) => m.memberId === selectedTab,\r\n )\r\n ]?.documentId\r\n setSelectedPassportId(passportId);\r\n }, [selectedMember]);\r\n\r\n const onAddContactLocation = () => {\r\n showDrawer();\r\n };\r\n\r\n const formLocation = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(yup.object().shape(ContactLocationFormSchema)),\r\n });\r\n\r\n useEffect(() => {\r\n let disabled;\r\n if (!formLocation.formState.isDirty) {\r\n disabled = true;\r\n } else {\r\n disabled = isRequiredFieldMissing(\r\n yup.object().shape(ContactLocationFormSchema),\r\n formLocation.getValues,\r\n );\r\n }\r\n setIsAddContactLocationDisabled(disabled);\r\n }, [formLocation.formState.isValid, formLocation.control]);\r\n\r\n const handleUpdateContactLocation = (\r\n contactLocation: IContactLocationForm,\r\n index: number,\r\n ) => {\r\n let contactLocationsUpdated = contactLocations.map((x, index2) =>\r\n index === index2 ? contactLocation : x,\r\n );\r\n\r\n setContactLocations([...contactLocationsUpdated]);\r\n form.formState.isDirty = true;\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n };\r\n\r\n const handleAddContactLocation = (contactLocation: IContactLocationForm) => {\r\n if (contactLocations) {\r\n setContactLocations([...contactLocations, contactLocation]);\r\n } else {\r\n setContactLocations([contactLocation]);\r\n }\r\n hideDrawer();\r\n form.formState.isDirty = true;\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n };\r\n\r\n const handleDeleteContactLocation = (index: number) => {\r\n setContactLocations(\r\n contactLocations.filter((x, index2) => index !== index2),\r\n );\r\n form.formState.isDirty = true;\r\n addMessage(Constants.messages.success.dataDeleted, MessageType.Success);\r\n };\r\n\r\n const selectedDocument = selectedMember.documents.filter(d => d.documentId === selectedPassportId)[0];\r\n\r\n return (\r\n \r\n \r\n \r\n {booking.reservationMembers &&\r\n booking.reservationMembers.length > 1 && (\r\n setSelectedTab(value)}\r\n className={baseStyle.tabNav}\r\n >\r\n {booking.reservationMembers.map((member) => {\r\n let fullMember =\r\n memberInformations.relatives?.find(\r\n (r) => r.memberId === member.memberId,\r\n ) ?? memberInformations.member;\r\n return (\r\n \r\n );\r\n })}\r\n \r\n )}\r\n \r\n \r\n }\r\n id=\"Immigration_Data\"\r\n >\r\n \r\n IMMIGRATION DATA\r\n {(isImmigrationDataMissing() || (!currentMember?.documentId ||\r\n currentMember.documentId === 0)) && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n d.documentType === 'Passport' && d.status === 'Verified' && !isPassportExpired(d))\r\n .map((doc) => ({\r\n label:\r\n \r\n \r\n \r\n \r\n \r\n {doc.documentName}\r\n \r\n ,\r\n value: doc.documentId,\r\n }))}\r\n value={\r\n reservationMembers[\r\n reservationMembers?.findIndex(\r\n (m) => m.memberId === selectedTab,\r\n )\r\n ]?.documentId\r\n }\r\n onChange={(event) => {\r\n handleReservationMembersSelect(\r\n event.target.value,\r\n selectedTab,\r\n );\r\n }}\r\n />\r\n \r\n \r\n {selectedMember.documents?.filter((d) => d.documentType === 'Passport' && d.status === 'Verified' && !isPassportExpired(d)).length > 0 && (\r\n \r\n {selectedDocument && }\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n }\r\n id=\"Immigration_Data\"\r\n >\r\n \r\n EMERGENCY CONTACT\r\n {!watchForm.defaultNextOfKinId && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ({\r\n label: `${nok.firstName} ${nok.lastName}`,\r\n value: nok.nextOfKinId,\r\n }))}\r\n control={form.control}\r\n defaultValue={\r\n booking.emergencyContactId ??\r\n memberInformations.nextOfKins.find(\r\n (n) => n.isDefault,\r\n )?.nextOfKinId\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n id=\"Immigration_Data\"\r\n >\r\n \r\n PAYMENT INFORMATION\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n id=\"Booking_ContactInfo\"\r\n >\r\n \r\n CONTACT INFORMATION\r\n {isContactInfoMissing() && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {'CONFIRM DATA'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n id=\"Booking_ContactLocation\"\r\n >\r\n \r\n \r\n CONTACT LOCATION\r\n \r\n {isContactLocationMissing() && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n Add a contact location\r\n \r\n \r\n \r\n \r\n The information you fill in here concerns the duration of your\r\n reservation\r\n \r\n \r\n {contactLocations?.map((location, index) => {\r\n return (\r\n \r\n handleUpdateContactLocation(location, index)\r\n }\r\n deleteContactLocation={() =>\r\n handleDeleteContactLocation(index)\r\n }\r\n />\r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Add a Contact location\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PersonalDataStep;\r\n","import React, {useEffect} from 'react';\r\nimport {useHistory, useParams} from 'react-router-dom';\r\nimport {Element} from 'react-scroll';\r\n\r\nimport {Box, Grid, LinearProgress} from '@material-ui/core';\r\nimport Badge from '@material-ui/core/Badge/Badge';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Typography from '@material-ui/core/Typography/Typography';\r\n\r\nimport {ReactComponent as BasketIcon} from '../../../assets/icons/basket.svg';\r\nimport Dialog from '../../../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../../../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../components/commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../components/commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../components/commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../components/commons/Dialog/DialogTitle';\r\nimport Drawer from '../../../components/commons/Drawer/Drawer';\r\nimport DrawerTitle from '../../../components/commons/Drawer/DrawerTitle';\r\nimport Stepper from '../../../components/commons/Stepper';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport {Basket} from '../../../components/Reservation';\r\nimport {ReviewSummary} from '../../../components/Reservation/commons';\r\nimport CVFlightPicker from '../../../components/Reservation/CvFlightPicker';\r\nimport {\r\n CarStep,\r\n CommercialStep,\r\n CvFlightStep,\r\n HotelStep,\r\n PersonalDataStep,\r\n ReviewStep,\r\n} from '../../../components/Reservation/Steps';\r\nimport {\r\n Steps,\r\n useReservationContext,\r\n} from '../../../context/ReservationProvider/ReservationProvider';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport useReservationPassengers from '../../../hooks/useReservationPassengers';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport styles from './ReservationStepsPage.module.scss';\r\nimport {useUserContext} from \"../../../context/User/UserContext\";\r\nimport PermissionsList from \"../../../utils/PermissionsList\";\r\n\r\nexport interface IReservationStepsPageProps {\r\n}\r\n\r\nconst ReservationStepsPage: React.FC = () => {\r\n const {\r\n state: {\r\n initialized,\r\n steps,\r\n activeStep,\r\n booking,\r\n loadingBooking,\r\n allTripTypes,\r\n memberInformations,\r\n selectedTripType,\r\n },\r\n setActiveStep,\r\n setActiveService,\r\n loadBooking,\r\n cancelBooking,\r\n } = useReservationContext();\r\n const history = useHistory();\r\n const breakpoint = useBreakpoint();\r\n const {\r\n hideModal: hideConfirmation,\r\n isVisible: isVisibleConfirmation,\r\n } = useModal();\r\n const {\r\n showModal: showBasketDrawer,\r\n hideModal: hideBasketDrawer,\r\n isVisible: isVisibleBasketDrawer,\r\n } = useModal();\r\n\r\n const {permissions} = useUserContext();\r\n\r\n const {id, step, stepId} = useParams();\r\n\r\n useEffect(() => {\r\n if (allTripTypes && !loadingBooking && !isNaN(id)) {\r\n loadBooking(Number(id));\r\n }\r\n }, [allTripTypes]);\r\n\r\n useEffect(() => {\r\n if (booking.isPast) {\r\n if (!permissions.includes(PermissionsList.eTravelReservationPastBooking)) {\r\n history.replace('/reservations/consult/' + booking.reservationId);\r\n }\r\n }\r\n }, [booking]);\r\n\r\n useEffect(() => {\r\n if (steps.length > 0 && !loadingBooking && !isNaN(id)) {\r\n const redirectStep = steps.find(\r\n (s) =>\r\n s.name.toUpperCase().replace('/', '') ===\r\n step?.toUpperCase().replace('/', '')\r\n );\r\n if (redirectStep && stepId) {\r\n setActiveService(redirectStep.name, +stepId);\r\n } else {\r\n setActiveStep(steps.findIndex((s) => s.name === Steps.REVIEW));\r\n }\r\n }\r\n\r\n if (steps.length === 0 && isNaN(id)) history.push('../new/setup');\r\n }, [steps, loadingBooking]);\r\n\r\n const stepComponent = () => {\r\n const activeStepObject = steps[activeStep];\r\n\r\n switch (activeStepObject?.name) {\r\n case Steps.HOTEL:\r\n return ;\r\n case Steps.CAR:\r\n return ;\r\n case Steps.COMMERCIAL_TRANSPORT:\r\n return ;\r\n case Steps.CV_FLIGHT:\r\n return ;\r\n case Steps.PERSONAL_DATA:\r\n return ;\r\n case Steps.REVIEW:\r\n return ;\r\n default:\r\n return <>;\r\n }\r\n };\r\n\r\n const computedCvFlightMembers = booking?.cvFlights?.flatMap((c) => {\r\n return {\r\n id: c.uiId,\r\n members: Array.from(\r\n new Set(\r\n c.cvFlightLegs\r\n .filter((l) => l.cvFlightId === c.cvFlightId)\r\n .flatMap((l) =>\r\n l.reservationCVFlightLegMembers.flatMap((m) => m.memberId)\r\n )\r\n )\r\n ),\r\n };\r\n });\r\n\r\n const reducedCvFlight = computedCvFlightMembers?.reduce(\r\n (a, b) => a + b.members.length,\r\n 0\r\n );\r\n\r\n const stepCount = () => {\r\n return steps.map((step, index) => {\r\n switch (step.name) {\r\n case Steps.HOTEL:\r\n return {index: index, count: booking?.hotels?.length ?? 0};\r\n case Steps.CAR:\r\n return {index: index, count: booking?.cars?.length ?? 0};\r\n case Steps.COMMERCIAL_TRANSPORT:\r\n return {index: index, count: booking.commercials?.length ?? 0};\r\n case Steps.CV_FLIGHT:\r\n return {index: index, count: reducedCvFlight ?? 0};\r\n default:\r\n return {index: index, count: 0};\r\n }\r\n });\r\n };\r\n\r\n const cvFlightActive = steps[activeStep]?.name === Steps.CV_FLIGHT;\r\n const {activePassengers} = useReservationPassengers(\r\n memberInformations,\r\n selectedTripType,\r\n booking.reservationMembers,\r\n booking\r\n );\r\n\r\n return (\r\n <>\r\n {memberInformations.member &&\r\n allTripTypes &&\r\n initialized &&\r\n !loadingBooking ? (\r\n steps.length > 0 && (\r\n <>\r\n {!isNaN(id) &&\r\n booking.reservationId == id &&\r\n booking.ownerId &&\r\n memberInformations.member.memberId !== booking.ownerId && (\r\n // \r\n <>\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {breakpoint.smdown &&\r\n steps[activeStep]?.name !== Steps.REVIEW && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {stepComponent()}\r\n \r\n \r\n \r\n \r\n \r\n {steps[activeStep]?.name !== Steps.REVIEW ? (\r\n breakpoint.smdown ? (\r\n \r\n \r\n Your Reservation\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )\r\n ) : (\r\n !breakpoint.smdown &&\r\n activePassengers &&\r\n selectedTripType && (\r\n <>\r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n {cvFlightActive && (\r\n <>\r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n You are going to cancel the reservation process\r\n \r\n \r\n \r\n Are you sure?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReservationStepsPage;\r\n","import produce from 'immer';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\n\r\nimport {Box, Divider, Grid, Typography} from '@material-ui/core';\r\n\r\nimport ICommercial, {ICommercialUI,} from '../../../models/Reservation/ICommercial';\r\nimport IPassenger from '../../../models/Reservation/IPassenger';\r\nimport IReservation from '../../../models/Reservation/IReservation';\r\nimport ITripType from '../../../models/Reservation/ITripType';\r\nimport CarReview from '../Steps/review/CarReview';\r\nimport CommercialReview from '../Steps/review/CommercialReview';\r\nimport CvFlightReviewContainer from '../Steps/review/CvFlightReviewContainer';\r\nimport HotelReview from '../Steps/review/HotelReview';\r\n\r\nexport interface IReviewForPassengerReadOnlyProps {\r\n passenger: IPassenger;\r\n allPassengers: IPassenger[];\r\n reservation: IReservation;\r\n selectedTripType: ITripType;\r\n}\r\n\r\nconst ReviewForPassengerReadOnly: React.FC<\r\n IReviewForPassengerReadOnlyProps\r\n> = ({ allPassengers, passenger, reservation, selectedTripType }) => {\r\n const resolvePassenger = (commercial: ICommercial) =>\r\n allPassengers?.find((p) => p.memberId === commercial.memberId) ?? {\r\n firstName: 'member not found',\r\n memberId: 0,\r\n lastName: '',\r\n relationName: 'unknown',\r\n };\r\n\r\n const uiReducer = (acc: ICommercialUI[], curr: ICommercial) => {\r\n return produce(acc, (draft) => {\r\n const uiEntryIndex = acc.findIndex((c) => c.uiId === curr.uiId);\r\n if (uiEntryIndex > -1) {\r\n const entry = acc[uiEntryIndex];\r\n draft.splice(uiEntryIndex, 1, {\r\n ...entry,\r\n travelers: [...entry.travelers, resolvePassenger(curr)],\r\n });\r\n } else {\r\n draft.push({\r\n ...curr,\r\n travelers: [resolvePassenger(curr)],\r\n });\r\n }\r\n });\r\n };\r\n\r\n const aggregate = reservation?.commercials\r\n ?.reduce(uiReducer, [])\r\n .filter((commercial) => commercial.travelers.indexOf(passenger) > -1);\r\n\r\n return (\r\n \r\n \r\n Trip Details\r\n \r\n {(reservation?.cvFlights?.length ?? 0) > 0 ||\r\n ((reservation?.commercials?.length ?? 0) > 0 &&\r\n aggregate &&\r\n aggregate.length > 0) ||\r\n (reservation?.hotels?.length ?? 0) > 0 ||\r\n (reservation?.cars?.length ?? 0) > 0 ? (\r\n <>\r\n {selectedTripType?.isCVFlight && (\r\n \r\n {(reservation?.cvFlights?.length ?? 0) > 0 && (\r\n \r\n \r\n moment(a.departureTime).diff(b.departureTime)\r\n )}\r\n passenger={passenger}\r\n allPassengers={allPassengers}\r\n showAWB={!!selectedTripType?.airBills}\r\n readOnly={true}\r\n />\r\n {((selectedTripType?.allowCommercial &&\r\n (reservation?.commercials?.length ?? 0) > 0 &&\r\n aggregate &&\r\n aggregate.length > 0) ||\r\n (reservation?.hotels?.length ?? 0) > 0 ||\r\n (reservation?.cars?.length ?? 0) > 0) && }\r\n \r\n )}\r\n \r\n )}\r\n {selectedTripType?.allowCommercial &&\r\n (reservation?.commercials?.length ?? 0) > 0 &&\r\n aggregate &&\r\n aggregate.length > 0 && (\r\n \r\n \r\n {\r\n const timeDiff = moment(a.departureDate).diff(\r\n b.departureDate\r\n );\r\n return timeDiff === 0 ? a.uiId - b.uiId : timeDiff;\r\n })}\r\n />\r\n {(reservation?.hotels?.length ?? 0) > 0 && }\r\n \r\n \r\n )}\r\n {selectedTripType?.allowHotel && (\r\n \r\n {(reservation?.hotels?.length ?? 0) > 0 && (\r\n \r\n moment(a.checkIn).diff(b.checkIn))}\r\n />\r\n {(reservation?.cars?.length ?? 0) > 0 && }\r\n \r\n )}\r\n \r\n )}\r\n {selectedTripType?.allowCar && (\r\n \r\n {(reservation?.cars?.length ?? 0) > 0 && (\r\n \r\n moment(a.pickUpDate).diff(b.pickUpDate))}\r\n />\r\n \r\n )}\r\n \r\n )}\r\n \r\n ) : (\r\n \r\n \r\n \r\n Your basket is empty\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ReviewForPassengerReadOnly;\r\n","import React from 'react';\r\n\r\nimport {Box, Grid, Tab, Tabs} from '@material-ui/core';\r\n\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport IMemberInformation from '../../../models/IMemberInformation';\r\nimport IPassenger from '../../../models/Reservation/IPassenger';\r\nimport IReservation from '../../../models/Reservation/IReservation';\r\nimport ITripType from '../../../models/Reservation/ITripType';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport {ReviewSummary} from '../commons';\r\nimport ReviewForPassengerReadOnly from './ReviewForPassengerReadOnly';\r\n\r\nexport interface IReservationReviewProps {\r\n passengers: IPassenger[];\r\n selectedTripType: ITripType;\r\n memberInformations: IMemberInformation;\r\n reservation: IReservation;\r\n}\r\n\r\nconst ReservationReviewReadOnly: React.FC = ({\r\n passengers,\r\n selectedTripType,\r\n memberInformations,\r\n reservation,\r\n}) => {\r\n const [currentTab, setTab] = React.useState(0);\r\n const breakpoint = useBreakpoint();\r\n\r\n const handleChangeTab = (event: React.ChangeEvent<{}>, newValue: number) => {\r\n setTab(newValue);\r\n };\r\n\r\n return (\r\n \r\n \r\n {breakpoint.smdown && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {passengers.length > 1 && (\r\n \r\n \r\n {passengers.map((passenger, index) => (\r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n {passengers[currentTab] && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReservationReviewReadOnly;\r\n","import React, {useEffect} from 'react';\r\nimport {Redirect, useParams} from 'react-router-dom';\r\n\r\nimport {Box, Grid, LinearProgress} from '@material-ui/core';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\n\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport {ReviewSummary} from '../../../components/Reservation/commons';\r\nimport ReservationReviewReadOnly from '../../../components/Reservation/Consult/ReservationReviewReadOnly';\r\nimport {useReservationConsultContext} from '../../../context/ReservationConsultContext/ReservationConsultContext';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport useReservationPassengers from '../../../hooks/useReservationPassengers';\r\n\r\nfunction ReservationConsultPage(): JSX.Element {\r\n const {\r\n ownerInformations,\r\n selectedTripType,\r\n reservation,\r\n loadReservation,\r\n loading,\r\n responseError,\r\n } = useReservationConsultContext();\r\n const { passengers } = useReservationPassengers(\r\n ownerInformations,\r\n selectedTripType,\r\n reservation?.reservationMembers\r\n );\r\n const { id } = useParams();\r\n const breakpoint = useBreakpoint();\r\n\r\n useEffect(() => {\r\n if (!isNaN(id)) {\r\n loadReservation(Number(id));\r\n }\r\n }, []);\r\n\r\n const accessForbidden = responseError?.status === 403;\r\n\r\n if (loading || !(reservation && ownerInformations && selectedTripType)) {\r\n return ;\r\n }\r\n\r\n if (accessForbidden) {\r\n return ;\r\n }\r\n\r\n if (reservation?.isDeleted) {\r\n return (\r\n \r\n \r\n The reservation {reservation.reservationId} has been deleted.\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!breakpoint.smdown && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default ReservationConsultPage;\r\n","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgNoReservation(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 550,\n height: 364,\n viewBox: \"0 0 550 364\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M528.501 243.598C524.53 247.934 519.604 251.162 514.26 253.668H514.253C513.751 253.906 513.247 254.138 512.738 254.357H512.732L512.725 254.364L512.719 254.357H512.713C512.713 254.358 512.712 254.359 512.712 254.36C512.712 254.361 512.711 254.361 512.711 254.362C512.71 254.363 512.709 254.363 512.709 254.363C512.708 254.364 512.707 254.364 512.706 254.364H512.699L512.693 254.357C512.687 254.364 512.687 254.364 512.68 254.357L512.674 254.364L512.667 254.357H512.661C512.654 254.364 512.654 254.364 512.648 254.357H512.641C509.064 255.904 505.39 257.216 501.643 258.287C479.607 264.535 456.446 265.743 433.879 261.824C433.447 261.747 433.022 261.67 432.59 261.592V209.337C433.015 209.157 433.447 208.977 433.879 208.803C436.697 207.636 439.548 206.565 442.434 205.588C446.586 204.17 450.796 202.955 455.064 201.941C468.988 198.574 483.355 197.413 497.639 198.501C500.238 198.694 502.829 198.974 505.414 199.339C510.824 200.092 516.497 201.407 521.487 203.687H521.493C522.222 204.029 522.937 204.383 523.647 204.763C528.082 207.166 531.821 210.471 534.103 215C534.923 216.627 535.513 218.359 535.857 220.148V220.161C535.986 220.779 536.076 221.404 536.147 222.023C536.96 229.65 533.794 237.813 528.501 243.598Z\",\n fill: \"#F2F2F2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M536.147 222.02C536.084 222.036 536.019 222.044 535.954 222.046C524.91 222.529 513.882 223.246 502.868 224.197H502.849C502.804 224.204 502.765 224.204 502.72 224.21C491.412 225.19 480.128 226.416 468.867 227.889C468.39 227.953 467.919 228.018 467.448 228.076C459.661 229.113 451.888 230.264 444.13 231.529C440.706 232.09 437.29 232.674 433.879 233.281C433.447 233.359 433.022 233.43 432.59 233.513V231.561C433.022 231.477 433.454 231.407 433.879 231.329C445.239 229.319 456.637 227.565 468.074 226.066C470.949 225.679 473.829 225.314 476.713 224.971C485.042 223.966 493.384 223.098 501.74 222.368C502.352 222.316 502.958 222.265 503.571 222.213C514.266 221.305 524.977 220.615 535.702 220.145C535.754 220.143 535.806 220.147 535.857 220.158C536.889 220.248 537.108 221.794 536.147 222.02Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M513.213 252.458C499.455 252.559 485.901 246.73 476.17 237.08C473.424 234.347 471.005 231.305 468.96 228.016C468.304 226.965 466.769 228.124 467.419 229.166C474.977 241.278 487.566 249.906 501.445 253.079C505.387 253.971 509.419 254.402 513.46 254.364C514.694 254.354 514.438 252.449 513.213 252.458V252.458Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M455.064 201.941C455.005 202.123 454.899 202.285 454.758 202.413C454.617 202.54 454.444 202.629 454.258 202.669C451.105 203.495 448.059 204.684 445.181 206.213C440.978 208.431 437.162 211.314 433.879 214.749C433.705 214.923 433.538 215.097 433.377 215.277C433.105 215.561 432.848 215.851 432.59 216.147V213.338C433.003 212.9 433.434 212.468 433.879 212.056C436.471 209.576 439.342 207.406 442.434 205.588C446.586 204.17 450.796 202.955 455.064 201.941Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M522.627 203.177C513.876 206.936 506.553 213.388 501.725 221.593C501.627 221.828 501.626 222.092 501.722 222.328C501.817 222.563 502.002 222.752 502.236 222.852C502.471 222.945 502.734 222.944 502.968 222.849C503.203 222.754 503.392 222.572 503.496 222.341C508.104 214.591 515.056 208.504 523.35 204.957C524.488 204.472 523.768 202.69 522.627 203.177L522.627 203.177Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M549.009 148.459C547.513 154.141 544.644 159.289 541.079 163.986L541.073 163.992C540.744 164.43 540.402 164.875 540.048 165.3V165.306C537.572 168.353 534.9 171.235 532.047 173.933C521.792 183.699 510.208 191.969 497.639 198.498C477.867 208.819 455.767 214.92 433.879 215.268C433.712 215.274 433.544 215.274 433.377 215.274C433.112 215.281 432.848 215.281 432.59 215.281V185.999C433.009 185.201 433.441 184.402 433.879 183.609C439.567 173.382 446.504 163.899 454.529 155.378C454.722 155.166 454.922 154.953 455.122 154.747C458.139 151.564 461.302 148.534 464.612 145.657C477.343 134.47 492.057 125.763 507.993 119.983C513.132 118.141 518.766 116.666 524.246 116.376C525.052 116.331 525.851 116.311 526.657 116.318C531.705 116.388 536.547 117.58 540.679 120.531C542.159 121.593 543.487 122.852 544.625 124.274C545.024 124.77 545.392 125.279 545.747 125.801V125.807C550.015 132.185 551.007 140.876 549.009 148.459Z\",\n fill: \"#F2F2F2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M545.747 125.802V125.808C545.699 125.85 545.647 125.886 545.592 125.918C536.05 131.465 526.629 137.213 517.328 143.164C517.315 143.17 517.309 143.177 517.296 143.183C517.259 143.209 517.22 143.233 517.18 143.254C507.619 149.375 498.194 155.701 488.904 162.234C488.517 162.504 488.124 162.781 487.731 163.058C481.316 167.587 474.968 172.213 468.686 176.935C456.824 185.865 445.221 195.125 433.879 204.715C433.447 205.076 433.022 205.443 432.59 205.811V203.305C433.015 202.937 433.447 202.57 433.879 202.209C438.225 198.544 442.609 194.929 447.031 191.367C448.353 190.304 449.681 189.241 451.009 188.19C462.807 178.804 474.869 169.767 487.196 161.081H487.202C489.626 159.373 492.054 157.681 494.487 156.004C501.398 151.249 508.387 146.609 515.453 142.082C515.962 141.753 516.478 141.425 516.993 141.096C526.038 135.324 535.202 129.74 544.483 124.346C544.528 124.318 544.576 124.294 544.625 124.275C545.592 123.888 546.501 125.164 545.747 125.802Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M539.589 163.401C527.452 169.877 512.74 171.006 499.637 166.978C495.935 165.832 492.378 164.262 489.038 162.298C487.968 161.672 487.148 163.411 488.209 164.032C500.532 171.249 515.691 173.046 529.456 169.413C533.362 168.374 537.133 166.884 540.693 164.974C541.782 164.393 540.67 162.824 539.589 163.401V163.401Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M448.786 186.973C448.185 183.601 447.979 180.17 448.172 176.75C448.606 168.949 450.996 161.384 455.122 154.748C458.142 151.567 461.306 148.536 464.614 145.656C464.645 145.845 464.627 146.038 464.56 146.217C464.494 146.396 464.382 146.555 464.236 146.677C461.829 148.872 459.685 151.338 457.846 154.027C451.277 163.607 448.714 175.372 450.701 186.814C450.733 186.944 450.732 187.079 450.696 187.208C450.661 187.337 450.593 187.455 450.499 187.55C450.361 187.67 450.194 187.752 450.015 187.788C449.836 187.823 449.65 187.811 449.477 187.753C449.303 187.694 449.148 187.592 449.027 187.455C448.906 187.318 448.823 187.152 448.786 186.973Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M525.018 115.393C519.016 122.784 515.53 131.897 515.069 141.404C515.091 141.658 515.213 141.892 515.407 142.056C515.602 142.221 515.853 142.302 516.107 142.282C516.358 142.255 516.59 142.132 516.753 141.939C516.917 141.746 517 141.498 516.985 141.245C517.463 132.243 520.79 123.625 526.486 116.634C527.268 115.675 525.802 114.433 525.018 115.393Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M458.255 136.561V136.567C458.21 137.121 458.159 137.669 458.1 138.216V138.229C457.652 142.127 456.952 145.992 456.005 149.8C455.554 151.668 455.064 153.524 454.529 155.379C454.464 155.617 454.393 155.856 454.322 156.088V156.094C452.748 161.49 450.867 166.793 448.688 171.975C444.679 181.516 439.718 190.629 433.879 199.175C433.46 199.8 433.028 200.425 432.59 201.043V100.154C433.022 100.128 433.447 100.128 433.879 100.141C434.085 100.141 434.292 100.148 434.498 100.161C436.317 100.256 438.114 100.605 439.836 101.198C440.442 101.398 441.029 101.623 441.609 101.874C448.643 104.954 454.168 111.744 456.566 119.211C458.365 124.803 458.726 130.685 458.255 136.561Z\",\n fill: \"#F2F2F2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M441.609 101.875C441.594 101.938 441.57 101.999 441.538 102.055C438.927 107.125 436.374 112.221 433.879 117.343C433.447 118.226 433.015 119.115 432.59 119.997V115.617C433.015 114.74 433.445 113.864 433.879 112.988C435.807 109.084 437.767 105.197 439.759 101.327C439.781 101.282 439.807 101.239 439.836 101.198C440.429 100.348 441.899 100.928 441.609 101.875Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M458.461 137.597C458.346 137.803 458.229 138.009 458.1 138.215C456.207 141.512 453.954 144.589 451.383 147.39C446.443 152.744 440.495 157.073 433.879 160.126C433.454 160.332 433.022 160.526 432.59 160.706V158.612C433.022 158.419 433.454 158.219 433.879 158.013C443.456 153.448 451.412 146.072 456.682 136.869C456.758 136.738 456.862 136.624 456.985 136.536C457.109 136.448 457.25 136.388 457.4 136.359C457.549 136.33 457.702 136.334 457.85 136.37C457.997 136.405 458.136 136.472 458.255 136.566C458.337 136.62 458.406 136.69 458.461 136.771C458.515 136.852 458.553 136.943 458.572 137.039C458.591 137.135 458.591 137.233 458.572 137.329C458.553 137.425 458.516 137.516 458.461 137.597Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M433.879 21.2602V70.223H432.59V69.7012H1.28939V70.223H0V21.2602C0.00553688 15.6233 2.24877 10.2189 6.23739 6.23307C10.226 2.24721 15.6342 0.00553304 21.2749 0H412.604C418.245 0.00553304 423.653 2.24721 427.642 6.23307C431.63 10.2189 433.874 15.6233 433.879 21.2602Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M412.604 0H21.2749C15.6342 0.00553304 10.226 2.24721 6.23739 6.23307C2.24877 10.2189 0.00553688 15.6233 0 21.2602V300.864C0.00553688 306.501 2.24877 311.905 6.23739 315.891C10.226 319.877 15.6342 322.118 21.2749 322.124H412.604C418.245 322.118 423.653 319.877 427.642 315.891C431.63 311.905 433.874 306.501 433.879 300.864V21.2602C433.874 15.6233 431.63 10.2189 427.642 6.23307C423.653 2.24721 418.245 0.00553304 412.604 0ZM432.59 300.864C432.583 306.159 430.475 311.234 426.729 314.978C422.982 318.722 417.903 320.829 412.604 320.835H21.2749C15.9765 320.829 10.897 318.722 7.15047 314.978C3.40393 311.234 1.29615 306.159 1.28939 300.864V21.2602C1.29615 15.9654 3.40393 10.8895 7.15047 7.14553C10.897 3.40158 15.9765 1.29525 21.2749 1.2885H412.604C417.903 1.29525 422.982 3.40158 426.729 7.14553C430.475 10.8895 432.583 15.9654 432.59 21.2602V300.864Z\",\n fill: \"#3F3D56\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.6786 47.9965C94.7997 47.9965 100.572 42.2277 100.572 35.1115C100.572 27.9954 94.7997 22.2266 87.6786 22.2266C80.5575 22.2266 74.7847 27.9954 74.7847 35.1115C74.7847 42.2277 80.5575 47.9965 87.6786 47.9965Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M346.201 47.9965C353.322 47.9965 359.095 42.2277 359.095 35.1115C359.095 27.9954 353.322 22.2266 346.201 22.2266C339.08 22.2266 333.307 27.9954 333.307 35.1115C333.307 42.2277 339.08 47.9965 346.201 47.9965Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.932 178.779H48.2285C44.979 178.775 41.8636 177.483 39.5658 175.187C37.2681 172.891 35.9756 169.778 35.9719 166.531V130.303C35.9756 127.056 37.2681 123.942 39.5658 121.646C41.8636 119.35 44.979 118.058 48.2285 118.055H124.932C128.181 118.058 131.297 119.35 133.594 121.646C135.892 123.942 137.185 127.056 137.188 130.303V166.531C137.185 169.778 135.892 172.891 133.594 175.187C131.297 177.483 128.181 178.775 124.932 178.779Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M255.417 178.779H178.714C175.464 178.775 172.349 177.483 170.051 175.187C167.753 172.891 166.461 169.778 166.457 166.531V130.303C166.461 127.056 167.753 123.942 170.051 121.646C172.349 119.35 175.464 118.058 178.714 118.055H255.417C258.667 118.058 261.782 119.35 264.08 121.646C266.378 123.942 267.67 127.056 267.674 130.303V166.531C267.67 169.778 266.378 172.891 264.08 175.187C261.782 177.483 258.667 178.775 255.417 178.779Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M255.417 272.385H178.714C175.366 272.381 172.156 271.05 169.788 268.684C167.421 266.319 166.089 263.111 166.086 259.765V223.537C166.089 220.192 167.421 216.984 169.788 214.618C172.156 212.252 175.366 210.922 178.714 210.918H255.417C258.765 210.922 261.975 212.252 264.342 214.618C266.71 216.984 268.041 220.192 268.045 223.537V259.765C268.041 263.111 266.71 266.319 264.342 268.684C261.975 271.05 258.765 272.381 255.417 272.385Z\",\n fill: \"#F2F2F2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.68 272.385H47.9771C44.6291 272.381 41.4193 271.05 39.0519 268.684C36.6845 266.319 35.3529 263.111 35.3491 259.765V223.537C35.3529 220.192 36.6845 216.984 39.0519 214.618C41.4193 212.252 44.6291 210.922 47.9771 210.918H124.68C128.028 210.922 131.238 212.252 133.606 214.618C135.973 216.984 137.305 220.192 137.308 223.537V259.765C137.305 263.111 135.973 266.319 133.606 268.684C131.238 271.05 128.028 272.381 124.68 272.385Z\",\n fill: \"#F2F2F2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M385.902 272.385H309.199C305.851 272.381 302.641 271.05 300.274 268.684C297.906 266.319 296.575 263.111 296.571 259.765V223.537C296.575 220.192 297.906 216.984 300.274 214.618C302.641 212.252 305.851 210.922 309.199 210.918H385.902C389.25 210.922 392.46 212.252 394.827 214.618C397.195 216.984 398.527 220.192 398.53 223.537V259.765C398.527 263.111 397.195 266.319 394.827 268.684C392.46 271.05 389.25 272.381 385.902 272.385Z\",\n fill: \"#F2F2F2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M385.902 178.853H309.199C305.851 178.85 302.641 177.519 300.274 175.153C297.906 172.787 296.575 169.58 296.571 166.234V130.006C296.575 126.66 297.906 123.453 300.274 121.087C302.641 118.721 305.851 117.39 309.199 117.387H385.902C389.25 117.39 392.46 118.721 394.827 121.087C397.195 123.453 398.527 126.66 398.53 130.006V166.234C398.527 169.58 397.195 172.787 394.827 175.153C392.46 177.519 389.25 178.85 385.902 178.853Z\",\n fill: \"#F2F2F2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.5803 169.202C98.0673 169.202 107.379 159.896 107.379 148.417C107.379 136.938 98.0673 127.633 86.5803 127.633C75.0933 127.633 65.7812 136.938 65.7812 148.417C65.7812 159.896 75.0933 169.202 86.5803 169.202Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M84.5186 156.347C84.0507 156.347 83.5951 156.196 83.2207 155.916L83.1975 155.898L78.3096 152.158C78.0829 151.985 77.8926 151.769 77.7495 151.522C77.6065 151.276 77.5135 151.003 77.476 150.72C77.4384 150.438 77.4569 150.15 77.5305 149.875C77.6041 149.599 77.7313 149.341 77.9048 149.115C78.0784 148.888 78.2949 148.698 78.542 148.556C78.789 148.413 79.0618 148.32 79.3447 148.283C79.6276 148.246 79.9151 148.265 80.1907 148.338C80.4664 148.412 80.7247 148.54 80.9511 148.713L84.1171 151.139L91.5989 141.389C91.7724 141.163 91.9888 140.973 92.2358 140.83C92.4827 140.688 92.7553 140.595 93.038 140.558C93.3207 140.52 93.608 140.539 93.8835 140.613C94.159 140.686 94.4173 140.814 94.6436 140.987L94.5971 141.05L94.6448 140.988C95.1013 141.339 95.4 141.856 95.4753 142.426C95.5506 142.997 95.3965 143.574 95.0467 144.031L86.2463 155.5C86.0427 155.764 85.781 155.978 85.4814 156.125C85.1818 156.272 84.8523 156.347 84.5186 156.347Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M217.437 168.905C228.924 168.905 238.236 159.6 238.236 148.121C238.236 136.642 228.924 127.336 217.437 127.336C205.95 127.336 196.638 136.642 196.638 148.121C196.638 159.6 205.95 168.905 217.437 168.905Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M215.375 156.05C214.907 156.05 214.452 155.899 214.077 155.619L214.054 155.601L209.166 151.862C208.709 151.512 208.41 150.994 208.334 150.424C208.258 149.853 208.413 149.276 208.763 148.819C209.113 148.362 209.631 148.063 210.202 147.988C210.773 147.912 211.35 148.066 211.808 148.416L214.974 150.842L222.455 141.092C222.629 140.866 222.845 140.676 223.092 140.533C223.339 140.391 223.612 140.298 223.894 140.261C224.177 140.224 224.465 140.242 224.74 140.316C225.015 140.39 225.274 140.517 225.5 140.69L225.454 140.753L225.501 140.691C225.958 141.042 226.256 141.559 226.332 142.129C226.407 142.7 226.253 143.277 225.903 143.734L217.103 155.203C216.899 155.467 216.637 155.681 216.338 155.828C216.038 155.975 215.709 156.051 215.375 156.05Z\",\n fill: \"#3D64D8\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M358.007 246.201C358.69 245.454 359.201 244.567 359.504 243.601C359.807 242.636 359.895 241.616 359.761 240.613C359.626 239.61 359.274 238.649 358.728 237.797C358.181 236.945 357.455 236.223 356.599 235.682L344.988 173.723L330.866 178.956L346.72 238.214C345.906 239.71 345.669 241.454 346.055 243.113C346.441 244.772 347.422 246.232 348.814 247.217C350.205 248.201 351.909 248.642 353.603 248.454C355.298 248.267 356.864 247.465 358.007 246.201Z\",\n fill: \"#A0616A\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M245.324 151.657C245.359 152.042 245.364 152.429 245.338 152.814L272.795 173.932L280.582 170.737L286.943 181.85L273.709 188.845C272.64 189.41 271.416 189.613 270.221 189.424C269.027 189.235 267.926 188.664 267.084 187.796L239.638 159.521C238.186 159.848 236.668 159.726 235.286 159.17C233.904 158.614 232.725 157.651 231.905 156.409C231.084 155.167 230.661 153.705 230.693 152.217C230.724 150.729 231.208 149.286 232.08 148.08C232.952 146.873 234.171 145.961 235.575 145.464C236.979 144.967 238.501 144.909 239.939 145.297C241.376 145.685 242.662 146.502 243.624 147.638C244.585 148.774 245.179 150.176 245.324 151.657H245.324Z\",\n fill: \"#A0616A\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M309.471 356.171H301.568L297.808 332.148L309.473 332.149L309.471 356.171Z\",\n fill: \"#A0616A\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M311.487 363.829L286.002 363.828V363.506C286.002 362.205 286.258 360.916 286.757 359.713C287.255 358.51 287.986 357.417 288.907 356.497C289.828 355.576 290.922 354.846 292.125 354.348C293.329 353.85 294.619 353.594 295.922 353.594H295.922L311.488 353.594L311.487 363.829Z\",\n fill: \"#2F2E41\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M339.127 356.171H331.224L327.463 332.148L339.129 332.149L339.127 356.171Z\",\n fill: \"#A0616A\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M341.143 363.829L315.658 363.828V363.506C315.658 362.205 315.914 360.916 316.413 359.713C316.911 358.51 317.642 357.417 318.563 356.497C319.484 355.576 320.578 354.846 321.781 354.348C322.985 353.85 324.275 353.594 325.578 353.594H325.578L341.144 353.594L341.143 363.829Z\",\n fill: \"#2F2E41\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M299.927 351.423C299.205 351.424 298.509 351.155 297.976 350.67C297.442 350.185 297.109 349.518 297.042 348.8L290.154 256.228L290.48 256.202L337.878 252.309L337.891 252.645L341.659 348.542C341.673 348.931 341.609 349.32 341.47 349.684C341.331 350.048 341.12 350.381 340.849 350.661C340.578 350.942 340.254 351.166 339.895 351.318C339.536 351.471 339.15 351.549 338.759 351.549H329.466C328.772 351.552 328.1 351.306 327.574 350.854C327.047 350.403 326.701 349.777 326.599 349.091L313.978 271.623C313.966 271.543 313.924 271.471 313.86 271.421C313.797 271.37 313.717 271.345 313.636 271.351C313.555 271.357 313.48 271.393 313.424 271.452C313.369 271.511 313.338 271.589 313.337 271.67L312.765 348.157C312.759 348.896 312.471 349.605 311.96 350.139C311.45 350.673 310.754 350.992 310.016 351.032L300.082 351.419C300.03 351.422 299.978 351.423 299.927 351.423Z\",\n fill: \"#2F2E41\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M308.017 139.237C316.762 139.237 323.851 132.152 323.851 123.413C323.851 114.674 316.762 107.59 308.017 107.59C299.272 107.59 292.182 114.674 292.182 123.413C292.182 132.152 299.272 139.237 308.017 139.237Z\",\n fill: \"#A0616A\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M311.082 262.133C304.161 262.113 297.274 261.172 290.601 259.336C289.959 259.149 289.401 258.747 289.021 258.197C288.641 257.647 288.463 256.983 288.515 256.317C290.647 224.302 291.148 199.457 286.666 182.268C284.755 174.941 285.622 167.225 289.045 161.098C294.196 151.877 303.664 146.264 313.763 146.458C314.246 146.467 314.733 146.484 315.225 146.51C330.551 147.298 342.494 161.154 341.847 177.396L338.765 254.814C338.753 255.379 338.575 255.928 338.252 256.392C337.929 256.855 337.476 257.213 336.949 257.42C328.68 260.528 319.918 262.125 311.082 262.133Z\",\n fill: \"#3F3D56\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M289.271 188.213L277.41 173.689C277.073 173.276 276.828 172.795 276.694 172.279C276.559 171.762 276.537 171.223 276.63 170.698C276.723 170.173 276.928 169.674 277.231 169.234C277.534 168.795 277.928 168.427 278.387 168.154L294.453 158.587C296.579 156.873 299.298 156.071 302.014 156.358C304.73 156.644 307.222 157.996 308.942 160.115C310.663 162.235 311.472 164.95 311.192 167.665C310.913 170.38 309.567 172.873 307.45 174.598L294.894 188.367C294.534 188.762 294.093 189.074 293.602 189.282C293.111 189.491 292.581 189.591 292.047 189.577C291.513 189.562 290.989 189.433 290.51 189.198C290.031 188.962 289.609 188.627 289.271 188.213Z\",\n fill: \"#3F3D56\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M326.583 186.386C326.096 186.169 325.661 185.848 325.309 185.447C324.957 185.046 324.696 184.574 324.543 184.063L319.204 166.214C318.045 163.743 317.914 160.912 318.84 158.345C319.766 155.777 321.673 153.681 324.144 152.516C326.614 151.352 329.446 151.214 332.018 152.133C334.59 153.052 336.692 154.953 337.863 157.419L348.189 173.002C348.484 173.447 348.679 173.95 348.761 174.477C348.844 175.004 348.812 175.543 348.668 176.056C348.523 176.57 348.27 177.046 347.924 177.453C347.579 177.86 347.15 178.187 346.667 178.413L329.676 186.361C329.193 186.587 328.666 186.707 328.132 186.711C327.598 186.715 327.07 186.605 326.583 186.386Z\",\n fill: \"#3F3D56\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M315.841 136.398L304.104 133.713C302.893 133.436 301.439 132.908 301.271 131.678C301.045 130.026 303.425 128.874 303.206 127.221C302.993 125.619 300.825 125.413 299.279 124.94C297.84 124.436 296.653 123.391 295.97 122.027C295.288 120.664 295.163 119.088 295.622 117.634C293.95 119.99 290.129 120.191 287.959 118.283C285.79 116.375 285.374 112.913 286.676 110.335C287.38 109.068 288.373 107.986 289.575 107.175C290.776 106.365 292.152 105.849 293.59 105.67C296.482 105.342 299.406 105.887 301.986 107.234C302.158 105.409 304.439 104.669 306.273 104.652C310.084 104.697 313.787 105.927 316.866 108.173C319.944 110.418 322.246 113.567 323.45 117.181C325.701 124.43 324.195 132.376 317.896 136.618L315.841 136.398Z\",\n fill: \"#2F2E41\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M434.065 363.999H188.436C188.265 363.999 188.101 363.932 187.98 363.811C187.859 363.69 187.791 363.526 187.791 363.355C187.791 363.184 187.859 363.02 187.98 362.9C188.101 362.779 188.265 362.711 188.436 362.711H434.065C434.236 362.711 434.4 362.779 434.52 362.9C434.641 363.02 434.709 363.184 434.709 363.355C434.709 363.526 434.641 363.69 434.52 363.811C434.4 363.932 434.236 363.999 434.065 363.999Z\",\n fill: \"#3F3D56\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 550,\n height: 364,\n fill: \"white\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNoReservation);\nexport default __webpack_public_path__ + \"static/media/noReservation.27d6695f.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nimport { Box, Typography } from '@material-ui/core';\r\n\r\nimport { ReactComponent as NoReservationIcon } from '../../../assets/icons/noReservation.svg';\r\nimport styles from '../ReservationList.module.scss';\r\n\r\nconst NoReservationFound: React.FC = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n You haven't made any reservations yet.\r\n \r\n \r\n \r\n To make a reservation, click on the "Make a reservation"\r\n button.\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NoReservationFound;\r\n","import {ITaskComment} from '../../../../models/DailyTasks/TaskList/ITask';\r\nimport React from 'react';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport DrawerTitle from '../../../commons/Drawer/DrawerTitle';\r\nimport DrawerContent from '../../../commons/Drawer/DrawerContent';\r\nimport Drawer from '../../../commons/Drawer';\r\nimport useBreakpoint from '../../../../hooks/useBreakpoint';\r\nimport DateTime from '../../../commons/DateTime';\r\nimport {Box} from '@material-ui/core';\r\n\r\ntype Props = {\r\n comments: ITaskComment[];\r\n isOpen: boolean;\r\n onClose: () => void;\r\n};\r\n\r\nfunction CommentHistoryDrawer(props: Props): JSX.Element {\r\n const { comments, isOpen, onClose } = props;\r\n const breakpoint = useBreakpoint();\r\n\r\n return (\r\n \r\n \r\n Agent Comment History\r\n \r\n\r\n \r\n {comments.map((history) => (\r\n
    \r\n {history?.createdOn && (\r\n
    \r\n
    {history?.createdByName}
    \r\n
    \r\n {' '}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n
    {history?.comment}
    \r\n
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default CommentHistoryDrawer;\r\n","import {Box, Grid} from '@material-ui/core';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport FileDownloadButton from '../../../commons/FileDownloadButton';\r\nimport TaskService from '../../../../services/TaskService';\r\nimport React from 'react';\r\nimport ICar from '../../../../models/Reservation/ICar';\r\nimport {ITaskAttachment} from '../../../../models/DailyTasks/TaskList/ITask';\r\nimport './CarComments.scss';\r\nimport DateTime from '../../../commons/DateTime';\r\nimport {useModal} from '../../../../hooks/useModal';\r\nimport Button from '@material-ui/core/Button';\r\nimport CommentHistoryDrawer from './CommentHistoryDrawer';\r\nimport useAgent from \"../../../../hooks/useAgent\";\r\n\r\ntype Props = {\r\n car: ICar;\r\n attachments: ITaskAttachment[];\r\n};\r\n\r\nfunction CarComments(props: Props): JSX.Element {\r\n const { car, attachments } = props;\r\n\r\n const {\r\n showModal: showDrawer,\r\n hideModal: hideDrawer,\r\n isVisible: isVisibleDrawer,\r\n } = useModal();\r\n\r\n const commentsDesc = car?.task?.comments.sort(\r\n (current, next) => next.taskCommentId - current.taskCommentId\r\n );\r\n\r\n const { isAgent } = useAgent();\r\n\r\n const latestComment = commentsDesc[0];\r\n\r\n return (\r\n \r\n {car?.travelerComment && (\r\n \r\n \r\n Comments\r\n \r\n \r\n {car?.travelerComment}\r\n \r\n \r\n )}\r\n\r\n {car?.task?.comments.length > 0 && isAgent && (\r\n \r\n \r\n Agent Comments\r\n \r\n\r\n
    \r\n {latestComment?.createdOn && (\r\n
    \r\n
    {latestComment?.createdByName}
    \r\n
    \r\n {' '}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n
    {latestComment?.comment}
    \r\n
    \r\n
    \r\n\r\n {car?.task?.comments.length > 1 && (\r\n showDrawer()}\r\n className=\"history-button\"\r\n >\r\n Show Comment History\r\n \r\n )}\r\n
    \r\n )}\r\n\r\n {attachments.length > 0 && (\r\n \r\n \r\n Attachment(s)\r\n \r\n \r\n {attachments.map((attachment) => (\r\n
    \r\n \r\n attachment.taskAttachmentId === 0\r\n ? new Promise((resolve) =>\r\n resolve(attachment.content as Blob)\r\n )\r\n : TaskService.getAttachment(attachment.taskAttachmentId)\r\n }\r\n />\r\n
    \r\n ))}\r\n
    \r\n
    \r\n )}\r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default CarComments;\r\n","import {Box, Grid, Typography} from '@material-ui/core';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport DateTime from '../../../commons/DateTime';\r\nimport React from 'react';\r\nimport ICar from '../../../../models/Reservation/ICar';\r\nimport CarComments from './CarComments';\r\n\r\ntype Props = {\r\n car: ICar;\r\n dateFormat: string;\r\n};\r\n\r\nfunction RentalCarDetails(props: Props): JSX.Element {\r\n const { car, dateFormat } = props;\r\n\r\n const getAttachments = (car: ICar) => car?.task?.attachments ?? [];\r\n\r\n return (\r\n \r\n \r\n Rental car\r\n \r\n \r\n \r\n \r\n \r\n Pick-up\r\n \r\n \r\n
    {car.pickUpLocation}
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n Drop-off\r\n \r\n \r\n
    {car.dropOffLocation}
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n Rental Company\r\n \r\n \r\n {car.rentalCompany}\r\n \r\n \r\n \r\n \r\n Car category\r\n \r\n \r\n {car.carType}\r\n \r\n \r\n\r\n \r\n \r\n Status\r\n \r\n \r\n {car.task?.status}\r\n \r\n \r\n \r\n \r\n Estimated cost\r\n \r\n \r\n {car.estimatedCost}\r\n \r\n \r\n\r\n \r\n
    \r\n \r\n \r\n );\r\n}\r\n\r\nexport default RentalCarDetails;\r\n","import {Box, Grid, Typography} from '@material-ui/core';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport DateTime from '../../../commons/DateTime';\r\nimport React from 'react';\r\nimport ICar from '../../../../models/Reservation/ICar';\r\nimport CarComments from './CarComments';\r\n\r\ntype Props = {\r\n car: ICar;\r\n dateFormat: string;\r\n};\r\n\r\nfunction LuxPoolCarDetails(props: Props): JSX.Element {\r\n const { car, dateFormat } = props;\r\n\r\n const getAttachments = (car: ICar) => car?.task?.attachments ?? [];\r\n\r\n return (\r\n \r\n \r\n LuxPool car\r\n \r\n \r\n \r\n \r\n \r\n Pick-up\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Drop-off\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Status\r\n \r\n \r\n {car.task?.status}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default LuxPoolCarDetails;\r\n","import {Box, Grid, Typography} from '@material-ui/core';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport DateTime from '../../../commons/DateTime';\r\nimport React from 'react';\r\nimport ICar from '../../../../models/Reservation/ICar';\r\nimport CarComments from './CarComments';\r\n\r\ntype Props = {\r\n car: ICar;\r\n dateFormat: string;\r\n};\r\n\r\nfunction CompanyCarDetails(props: Props): JSX.Element {\r\n const { car, dateFormat } = props;\r\n\r\n const getAttachments = (car: ICar) => car?.task?.attachments ?? [];\r\n\r\n return (\r\n \r\n \r\n Company car\r\n \r\n \r\n \r\n \r\n \r\n Start date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n End date\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Status\r\n \r\n \r\n {car.task?.status}\r\n \r\n \r\n \r\n \r\n Estimated distance\r\n \r\n \r\n {car.estimatedDistance} {car.distanceUnit.toLowerCase()}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default CompanyCarDetails;\r\n","import {Box, Grid, Typography} from '@material-ui/core';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport DateTime from '../../../commons/DateTime';\r\nimport React from 'react';\r\nimport ICar from '../../../../models/Reservation/ICar';\r\nimport CarComments from './CarComments';\r\n\r\ntype Props = {\r\n car: ICar;\r\n dateFormat: string;\r\n};\r\n\r\nfunction PrivateCarDetails(props: Props): JSX.Element {\r\n const { car, dateFormat } = props;\r\n\r\n const getAttachments = (car: ICar) => car?.task?.attachments ?? [];\r\n\r\n return (\r\n \r\n \r\n Private car\r\n \r\n \r\n \r\n \r\n \r\n Start date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n End date\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Status\r\n \r\n \r\n {car.task?.status}\r\n \r\n \r\n \r\n \r\n Estimated distance\r\n \r\n \r\n {car.estimatedDistance} {car.distanceUnit.toLowerCase()}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default PrivateCarDetails;\r\n","import {Box, Grid, Typography} from '@material-ui/core';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport DateTime from '../../../commons/DateTime';\r\nimport React from 'react';\r\nimport ICar from '../../../../models/Reservation/ICar';\r\nimport CarComments from './CarComments';\r\n\r\ntype Props = {\r\n car: ICar;\r\n dateFormat: string;\r\n};\r\n\r\nfunction CarpoolingDetails(props: Props): JSX.Element {\r\n const { car, dateFormat } = props;\r\n\r\n const getAttachments = (car: ICar) => car?.task?.attachments ?? [];\r\n\r\n return (\r\n \r\n \r\n Carpooling\r\n \r\n \r\n \r\n \r\n \r\n Start date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n End date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Name of driver\r\n \r\n \r\n {car.driverName}\r\n \r\n \r\n\r\n \r\n \r\n Status\r\n \r\n \r\n {car.task?.status}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default CarpoolingDetails;\r\n","import React from 'react';\r\n\r\nimport {Box, Typography} from '@material-ui/core';\r\n\r\nimport ICar from '../../../models/Reservation/ICar';\r\nimport RentalCarDetails from './cars/RentalCarDetails';\r\nimport LuxPoolCarDetails from './cars/LuxPoolCarDetails';\r\nimport CompanyCarDetails from './cars/CompanyCarDetails';\r\nimport PrivateCarDetails from './cars/PrivateCarDetails';\r\nimport CarpoolingDetails from './cars/CarpoolingDetails';\r\n\r\nexport interface ICarDetailsProps {\r\n cars: ICar[];\r\n}\r\n\r\nconst CarDetails: React.FC = ({ cars }) => {\r\n const dateFormat = 'DD MMM YYYY HH:mm';\r\n\r\n const getCarDetails = (car: ICar): JSX.Element => {\r\n switch (car.reservationCarType) {\r\n case 'Rental':\r\n return (\r\n \r\n );\r\n case 'LuxPool':\r\n return (\r\n \r\n );\r\n case 'Company':\r\n return (\r\n \r\n );\r\n case 'Private':\r\n return (\r\n \r\n );\r\n case 'Carpooling':\r\n return (\r\n \r\n );\r\n default:\r\n return <>;\r\n }\r\n };\r\n\r\n return (\r\n \r\n Car\r\n {cars.map((car) => getCarDetails(car))}\r\n \r\n );\r\n};\r\n\r\nexport default CarDetails;\r\n","import React, {ReactNode} from 'react';\r\nimport './IconData.scss';\r\n\r\ntype Props = {\r\n icon: ReactNode;\r\n label: ReactNode | string;\r\n};\r\n\r\nfunction IconData(props: Props): JSX.Element {\r\n const { icon, label } = props;\r\n\r\n return (\r\n
    \r\n {icon} {label}\r\n
    \r\n );\r\n}\r\n\r\nexport default IconData;\r\n","import React from 'react';\r\nimport {Box} from '@material-ui/core';\r\nimport IconData from '../../../ReservationList/Items/IconData';\r\nimport {ConfirmationNumberOutlined, PersonOutlined} from '@material-ui/icons';\r\n\r\ntype Props = {\r\n name: string;\r\n status: string;\r\n};\r\nexport const TravelerTicket: React.FC = ({ status, name }) => {\r\n return (\r\n
    \r\n \r\n } label={name} />\r\n \r\n \r\n }\r\n label={status}\r\n />\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default TravelerTicket;\r\n","import React from 'react';\r\n\r\nimport {Box, Grid} from '@material-ui/core';\r\nimport {ITravelerInfo} from './CommercialDetails';\r\nimport TravelerTicket from '../../Reservation/Steps/review/TravelTicket';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\n\r\nexport interface ITravelerDetailsProps {\r\n travelers: ITravelerInfo[];\r\n}\r\n\r\nconst TravelerDetails: React.FC = ({ travelers }) => {\r\n return (\r\n \r\n \r\n Travelers\r\n \r\n \r\n {travelers.map((traveler) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default TravelerDetails;\r\n","import React from 'react';\r\n\r\nimport {Box, Grid, Typography} from '@material-ui/core';\r\n\r\nimport ICommercial from '../../../models/Reservation/ICommercial';\r\nimport {IReservationMembersSummary} from '../../../models/Reservation/IReservationSummary';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport TravelersDetails from './TravelersDetails';\r\nimport IMember from '../../../models/IMember';\r\nimport FileDownloadButton from '../../commons/FileDownloadButton';\r\nimport TaskService from '../../../services/TaskService';\r\n\r\nexport interface ICommercialDetailsProps {\r\n commercials?: ICommercial[];\r\n reservationMembers: IReservationMembersSummary[];\r\n memberInfo: IMember;\r\n type: string;\r\n}\r\n\r\ninterface ICommercialItem {\r\n commercialId: number;\r\n departure: Date;\r\n travelers: ITravelerInfo[];\r\n routing: string;\r\n flightNumber?: string | null;\r\n trainNumber?: string | null;\r\n}\r\n\r\nexport interface ITravelerInfo {\r\n name: string;\r\n status: string;\r\n relationId: number;\r\n tripType: string;\r\n}\r\n\r\nconst CommercialDetails: React.FC = ({\r\n commercials,\r\n reservationMembers,\r\n memberInfo,\r\n type,\r\n}) => {\r\n const transportTypeLabel = (transport: ICommercialItem) =>\r\n transport.flightNumber ? 'Flight' : 'Train';\r\n const transportNumber = (transport: ICommercialItem) =>\r\n transport.flightNumber ?? transport.trainNumber;\r\n const relationId = memberInfo.relationId;\r\n\r\n const reducer = (acc: ICommercialItem[], cur: ICommercial) => {\r\n const index = acc.findIndex(\r\n (c) =>\r\n c.flightNumber === cur.flightNumber && c.trainNumber === cur.trainNumber\r\n );\r\n const travelers = index > -1 ? acc[index].travelers : [];\r\n const currentTraveler = reservationMembers.find(\r\n (e) => e.memberId === cur.memberId\r\n )?.memberName;\r\n if (index > -1) {\r\n acc.splice(index, 1);\r\n }\r\n\r\n return [\r\n ...acc,\r\n {\r\n commercialId: cur.commercialId,\r\n departure: cur.departureDate,\r\n routing: cur.routing,\r\n flightNumber: cur.flightNumber,\r\n trainNumber: cur.trainNumber,\r\n travelers: currentTraveler\r\n ? [\r\n ...travelers,\r\n {\r\n name: currentTraveler,\r\n status: cur.task.status,\r\n relationId: relationId,\r\n tripType: type,\r\n },\r\n ]\r\n : [...travelers],\r\n },\r\n ];\r\n };\r\n\r\n const commercialItems = commercials?.reduce(reducer, []);\r\n\r\n const commercial = (index: number): ICommercial => (commercials ?? [])[index];\r\n\r\n const attachments = (index: number) =>\r\n commercial(index)?.task?.attachments ?? [];\r\n\r\n return (\r\n \r\n Commercial Flight and Train\r\n {commercialItems &&\r\n commercialItems.map((transport, index) => (\r\n \r\n \r\n {transportTypeLabel(transport)} number{' '}\r\n {transportNumber(transport)}\r\n \r\n \r\n \r\n \r\n Departure\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Routing\r\n \r\n \r\n {transport.routing}\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {commercial(index)?.travelerComment && (\r\n \r\n \r\n Comments\r\n \r\n \r\n {commercial(index)?.travelerComment}\r\n \r\n \r\n )}\r\n\r\n {attachments(index)?.length > 0 && (\r\n \r\n \r\n Attachment(s)\r\n \r\n \r\n {attachments(index).map((attachment) => (\r\n
    \r\n \r\n attachment.taskAttachmentId === 0\r\n ? new Promise((resolve) =>\r\n resolve(attachment.content as Blob)\r\n )\r\n : TaskService.getAttachment(\r\n attachment.taskAttachmentId\r\n )\r\n }\r\n />\r\n
    \r\n ))}\r\n
    \r\n
    \r\n )}\r\n \r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default CommercialDetails;\r\n","import {Grid} from '@material-ui/core';\r\nimport {CVFlightStatus} from '../../../models/Enum';\r\nimport {ITravelerSummary} from '../../../models/Reservation/ICVFlightPassengerSummary';\r\nimport React from 'react';\r\nimport TravelerTicket from '../../Reservation/Steps/review/TravelTicket';\r\n\r\ntype TravelerStatus =\r\n | 'Requested'\r\n | 'Booked'\r\n | 'Cancelled'\r\n | 'Ticketed'\r\n | 'Waitlisted';\r\n\r\nexport interface ICVFlightTravelerDetailsProps {\r\n travelers: ITravelerSummary[];\r\n}\r\n\r\nconst CVFlightTravelerDetails: React.FC = ({\r\n travelers,\r\n}) => {\r\n \r\n const hasStatus = (summary: ITravelerSummary, status: CVFlightStatus) => {\r\n return summary.statuses.some((t) => t === status);\r\n };\r\n\r\n const computeTravelerStatus = (\r\n summary: ITravelerSummary\r\n ): TravelerStatus | undefined => {\r\n if (!summary) {\r\n return undefined;\r\n }\r\n\r\n if (hasStatus(summary, CVFlightStatus.Cancelled)) {\r\n return 'Cancelled';\r\n }\r\n\r\n if (hasStatus(summary, CVFlightStatus.WaitList)) {\r\n return 'Waitlisted';\r\n }\r\n\r\n if (hasStatus(summary, CVFlightStatus.Request)) {\r\n return 'Requested';\r\n }\r\n\r\n if (hasStatus(summary, CVFlightStatus.Confirmed)) {\r\n return 'Booked';\r\n }\r\n\r\n if (hasStatus(summary, CVFlightStatus.Ticketed)) {\r\n return 'Ticketed';\r\n }\r\n\r\n return undefined;\r\n };\r\n\r\n return (\r\n \r\n {travelers.map((traveler) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default CVFlightTravelerDetails;\r\n","import React, {CSSProperties} from 'react';\r\nimport {Box, Grid} from '@material-ui/core';\r\nimport styles from '../../../../ReservationList/Details/CVFlightDetails.module.scss';\r\nimport {ICVFlightLeg} from '../../../../../models/ICVFlight';\r\nimport {ILegTimezone} from '../../../../../models/IAirportTimeZone';\r\nimport useDateTimezone from '../../../../../hooks/useDateTimezone';\r\nimport {UTCOffset} from '../../../../commons/DateTimeZone/DateTimeZone';\r\n\r\n//I Know this is horrible\r\nconst CustomDateTime = (props: {\r\n datetime: Date;\r\n airportCode?: string;\r\n style?: CSSProperties;\r\n}) => {\r\n const { datetime, airportCode, style } = props;\r\n const dateTimezone = useDateTimezone(datetime, airportCode);\r\n const componentStyle = { ...style, display: 'flex', gap: '0.5rem' };\r\n return (\r\n
    \r\n {dateTimezone.date.format('HH:mm')}\r\n \r\n
    \r\n );\r\n};\r\n\r\ntype Props = {\r\n legs: ICVFlightLeg[];\r\n timeZones: ILegTimezone[];\r\n};\r\nconst FlightRow: React.FC = ({ legs }) => {\r\n return (\r\n \r\n {legs?.map((leg) => (\r\n \r\n \r\n \r\n \r\n
    {leg.origin}
    \r\n
    \r\n
    \r\n {useDateTimezone(leg.departureTime, leg.origin).date.format(\r\n 'DD MMM YYYY'\r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {leg.flightDesc}\r\n
    \r\n
    {leg.tailNumber}
    \r\n \r\n
    \r\n \r\n \r\n
    {leg.destination}
    \r\n
    \r\n
    \r\n {useDateTimezone(leg.arrivalTime, leg.destination).date.format(\r\n 'DD MMM YYYY'\r\n )}\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default FlightRow;\r\n","import React from 'react';\r\nimport {Box, Typography} from '@material-ui/core';\r\nimport ICVFlight from '../../../../../models/ICVFlight';\r\nimport {ILegTimezone} from '../../../../../models/IAirportTimeZone';\r\nimport './CvFlightDetailMobile.scss';\r\nimport CVFlightTravelerDetails from '../../../../ReservationList/Details/CVFlightTravelerDetails';\r\nimport {ITravelerSummary} from '../../../../../models/Reservation/ICVFlightPassengerSummary';\r\nimport FlightRow from './FlightRow';\r\nimport useDateTimezone from '../../../../../hooks/useDateTimezone';\r\nimport {UTCOffset} from '../../../../commons/DateTimeZone/DateTimeZone';\r\n\r\ntype Props = {\r\n flight: ICVFlight;\r\n travelers: ITravelerSummary[];\r\n flightTimezones: ILegTimezone[];\r\n};\r\nconst CvFlightDetailMobile: React.FC = ({\r\n flight,\r\n flightTimezones,\r\n travelers,\r\n}) => {\r\n const airports = flight.routing.split(' ');\r\n const originAirport = airports[0] ?? '';\r\n const destinationAirport = airports[airports.length - 1] ?? '';\r\n const originDateTime = useDateTimezone(flight.departureTime, originAirport);\r\n const destinationDateTime = useDateTimezone(\r\n flight.arrivalTime,\r\n destinationAirport\r\n );\r\n\r\n return (\r\n
    \r\n {flight.flightDesc}\r\n\r\n \r\n \r\n \r\n {originAirport}\r\n \r\n \r\n {originDateTime.date.format('DD MMM YYYY')}\r\n \r\n \r\n {originDateTime.date.format('HH:mm')}{' '}\r\n \r\n \r\n \r\n \r\n \r\n {destinationAirport}\r\n \r\n\r\n \r\n {destinationDateTime.date.format('DD MMM YYYY')}\r\n \r\n \r\n {' '}\r\n {destinationDateTime.date.format('HH:mm')}\r\n \r\n \r\n \r\n\r\n \r\n Priority\r\n \r\n {flight.priority}\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {flight.cvFlightLegs?.length > 1 && (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default CvFlightDetailMobile;\r\n","import React from 'react';\r\n\r\nimport {Box, Grid} from '@material-ui/core';\r\n\r\nimport useClientAppContext from '../../../hooks/useClientApp';\r\nimport useCVFlightTravelers from '../../../hooks/useCVFlightTravelerStatus';\r\nimport {ILegTimezone} from '../../../models/IAirportTimeZone';\r\nimport ICVFlight, {ICVFlightLeg} from '../../../models/ICVFlight';\r\nimport {IReservationMembersSummary} from '../../../models/Reservation/IReservationSummary';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport CVFlightTravelerDetails from './CVFlightTravelerDetails';\r\nimport CvFlightDetailMobile from '../../Reservation/Steps/review/cv-flight/CvFlightDetailMobile';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport FlightRow from '../../Reservation/Steps/review/cv-flight/FlightRow';\r\nimport moment from 'moment/moment';\r\nimport DateTimeZone from '../../commons/DateTimeZone/DateTimeZone';\r\n\r\nexport interface ICVFlightDetailsProps {\r\n flight: ICVFlight;\r\n reservationMembers: IReservationMembersSummary[];\r\n}\r\n\r\nconst CVFlightDetails: React.FC = ({\r\n flight,\r\n reservationMembers,\r\n}) => {\r\n const { travelers } = useCVFlightTravelers(reservationMembers, flight);\r\n const { airportsTimeZones } = useClientAppContext();\r\n const breakpoint = useBreakpoint();\r\n\r\n const flightDuration = (departure: Date, arrival: Date) => {\r\n const diff = moment.duration(moment(arrival).diff(moment(departure)));\r\n const hours = diff.hours().toString().padStart(2, '0');\r\n const minutes = diff.minutes().toString().padStart(2, '0');\r\n return `${hours}:${minutes}`;\r\n };\r\n\r\n const flightTimezones = flight.cvFlightLegs.map(\r\n (leg, index) => ({\r\n index: index,\r\n origin: airportsTimeZones.find((l) => l.code === leg.origin),\r\n destination: airportsTimeZones.find((l) => l.code === leg.destination),\r\n })\r\n );\r\n const route = {\r\n origin: flightTimezones[0]?.origin,\r\n destination: flightTimezones[flightTimezones.length - 1]?.destination,\r\n };\r\n\r\n const sortByDepatureTime = (a: ICVFlightLeg, b: ICVFlightLeg) => {\r\n return moment(a.departureTime).diff(moment(b.departureTime));\r\n };\r\n\r\n const sortedFlightLegs = flight.cvFlightLegs.sort(sortByDepatureTime);\r\n\r\n const routing = (flightLegs: ICVFlightLeg[]) => {\r\n let destinations = flightLegs.map((leg) => leg.origin);\r\n const lastLeg = flightLegs?.slice(-1)[0];\r\n destinations.push(lastLeg.destination);\r\n return destinations.join(' - ');\r\n };\r\n\r\n return (\r\n <>\r\n {breakpoint.smdown && (\r\n \r\n )}\r\n {breakpoint.smup && (\r\n <>\r\n \r\n \r\n \r\n \r\n Duration\r\n \r\n \r\n {flightDuration(flight.departureTime, flight.arrivalTime)} h\r\n \r\n \r\n\r\n \r\n \r\n Departure\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Arrival\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Routing\r\n \r\n \r\n {routing(sortedFlightLegs)}\r\n \r\n \r\n\r\n \r\n \r\n Priority\r\n \r\n \r\n {flight.priority}\r\n \r\n \r\n\r\n \r\n \r\n Travelers\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CVFlightDetails;\r\n","import React from 'react';\r\n\r\nimport {Box, Divider, Typography} from '@material-ui/core';\r\n\r\nimport ICVFlight from '../../../models/ICVFlight';\r\nimport {IReservationMembersSummary} from '../../../models/Reservation/IReservationSummary';\r\nimport CVFlightDetails from './CVFlightDetails';\r\nimport IMember from '../../../models/IMember';\r\n\r\nexport interface ICVFlightDetailsContainerProps {\r\n flights: ICVFlight[];\r\n reservationMembers: IReservationMembersSummary[];\r\n memberInfo: IMember;\r\n type: string;\r\n}\r\n\r\nconst CVFlightDetailsContainer: React.FC = ({\r\n flights,\r\n reservationMembers,\r\n}) => {\r\n return (\r\n \r\n Cargolux Flight\r\n {flights.map((flight, index) => (\r\n \r\n \r\n {index < flights.length - 1 && }\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default CVFlightDetailsContainer;\r\n","import React from 'react';\r\nimport {Box, Grid, Typography} from '@material-ui/core';\r\nimport IHotel from '../../../models/Reservation/IHotel';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport DateTime from '../../commons/DateTime/DateTime';\r\nimport FileDownloadButton from '../../commons/FileDownloadButton';\r\nimport TaskService from '../../../services/TaskService';\r\n\r\nexport interface IHotelDetailsProps {\r\n hotels: IHotel[];\r\n}\r\n\r\nconst HotelDetails: React.FC = ({ hotels }) => {\r\n const attachments = (hotel: IHotel) => hotel?.task?.attachments ?? [];\r\n\r\n return (\r\n \r\n Hotel\r\n {hotels.map((hotel, index) => (\r\n \r\n \r\n Hotel {hotel.address} - {hotel.city}\r\n \r\n \r\n \r\n \r\n \r\n Hotel Name\r\n \r\n \r\n {hotel.address}\r\n \r\n \r\n\r\n \r\n \r\n Check-In\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Check-Out\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n City\r\n \r\n \r\n {hotel.city}\r\n \r\n \r\n\r\n \r\n \r\n Status\r\n \r\n \r\n {hotel.task?.status}\r\n \r\n \r\n\r\n {hotel?.travelerComment && (\r\n \r\n \r\n Comments\r\n \r\n \r\n {hotel?.travelerComment}\r\n \r\n \r\n )}\r\n\r\n {attachments(hotel).length > 0 && (\r\n \r\n \r\n Attachment(s)\r\n \r\n \r\n {attachments(hotel).map((attachment) => (\r\n
    \r\n \r\n attachment.taskAttachmentId === 0\r\n ? new Promise((resolve) =>\r\n resolve(attachment.content as Blob)\r\n )\r\n : TaskService.getAttachment(\r\n attachment.taskAttachmentId\r\n )\r\n }\r\n />\r\n
    \r\n ))}\r\n
    \r\n
    \r\n )}\r\n \r\n
    \r\n
    \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nexport default HotelDetails;\r\n","import Badge from '@material-ui/core/Badge';\r\nimport {Person} from '@material-ui/icons';\r\nimport React from 'react';\r\nimport IReservationSummary, {IReservationMembersSummary,} from '../../../models/Reservation/IReservationSummary';\r\nimport IconData from './IconData';\r\n\r\ntype Props = {\r\n reservation: IReservationSummary;\r\n};\r\n\r\nfunction Travelers(props: Props): JSX.Element {\r\n const { reservation } = props;\r\n\r\n const additionalTravelCount = (\r\n reservationMembers: IReservationMembersSummary[]\r\n ) => {\r\n if (reservationMembers.length > 1) {\r\n return `+${reservationMembers.length - 1}`;\r\n }\r\n return 0;\r\n };\r\n\r\n return (\r\n
    \r\n \r\n }\r\n />\r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default Travelers;\r\n","import React, {ReactNode} from 'react';\r\nimport Badge from '@material-ui/core/Badge';\r\n\r\ninterface Props {\r\n isActive: boolean;\r\n badgeContent: ReactNode;\r\n children: ReactNode;\r\n}\r\n\r\nconst ServiceCounter = (props: Props) => {\r\n const { isActive, badgeContent, children } = props;\r\n\r\n if (!isActive) {\r\n return (\r\n
    \r\n {children}\r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {children}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ServiceCounter;\r\n","import * as React from 'react';\r\nimport {useState} from 'react';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport {CancelOutlined, EditOutlined, GetApp, MoreVert, SendOutlined, VisibilityOutlined,} from '@material-ui/icons';\r\nimport Menu from '@material-ui/core/Menu';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport {Divider, Typography} from '@material-ui/core';\r\n\r\ntype Action = {\r\n enable: boolean;\r\n onClick: () => void;\r\n};\r\nexport type ReservationActionsButtonConfig = {\r\n view: Action;\r\n edit: Action;\r\n cancel: Action;\r\n viewTicket: Action;\r\n downloadAll: Action;\r\n};\r\n\r\ntype Props = {\r\n config: ReservationActionsButtonConfig;\r\n};\r\n\r\nconst ReservationActionsButton = (props: Props): JSX.Element => {\r\n const { view, edit, cancel, viewTicket, downloadAll } = props.config;\r\n const style = {\r\n marginLeft: '.5rem',\r\n fontSize: 'medium',\r\n };\r\n const [ref, setRef] = useState(null);\r\n const open = Boolean(ref);\r\n const hasNoAction =\r\n !view.enable && !viewTicket.enable && !cancel.enable && !edit.enable;\r\n\r\n const handleButtonClick = (event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n setRef(event.currentTarget);\r\n };\r\n\r\n const handleMenuItemClick = (\r\n event: React.MouseEvent,\r\n fun: () => void\r\n ) => {\r\n event.stopPropagation();\r\n fun();\r\n setRef(null);\r\n };\r\n\r\n const handleClose = (event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n setRef(null);\r\n };\r\n\r\n const hasDeleteActionNeighbours = () => {\r\n if (!cancel.enable) {\r\n return false;\r\n }\r\n return (\r\n view.enable || edit.enable || viewTicket.enable || downloadAll.enable\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {edit.enable && (\r\n handleMenuItemClick(event, edit.onClick)}\r\n >\r\n \r\n \r\n \r\n \r\n Edit Reservation\r\n \r\n \r\n )}\r\n\r\n {view.enable && (\r\n handleMenuItemClick(event, view.onClick)}\r\n >\r\n \r\n \r\n \r\n \r\n View Reservation\r\n \r\n \r\n )}\r\n\r\n {downloadAll.enable && (\r\n handleMenuItemClick(event, downloadAll.onClick)}\r\n >\r\n \r\n \r\n \r\n \r\n Download Attachments\r\n \r\n \r\n )}\r\n\r\n {viewTicket.enable && (\r\n handleMenuItemClick(event, viewTicket.onClick)}\r\n >\r\n \r\n \r\n \r\n \r\n Resend Ticket\r\n \r\n \r\n )}\r\n\r\n {hasDeleteActionNeighbours() && }\r\n {cancel.enable && (\r\n handleMenuItemClick(event, cancel.onClick)}\r\n >\r\n \r\n \r\n \r\n \r\n Cancel Reservation\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReservationActionsButton;\r\n","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport {useHistory} from 'react-router-dom';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {AccordionDetails, AccordionSummary, Box, Divider, LinearProgress, Typography,} from '@material-ui/core';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport {useMyReservationsContext} from '../../../context/MyReservations/MyReservationsContext';\r\nimport useBreakpoint from '../../../hooks/useBreakpoint';\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport useReservationRedirect, {ReservationRedirectOrigin,} from '../../../hooks/useReservationRedirect';\r\nimport useReservationStatus from '../../../hooks/useReservationStatus';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IMember from '../../../models/IMember';\r\nimport IReservation from '../../../models/Reservation/IReservation';\r\nimport IReservationSummary from '../../../models/Reservation/IReservationSummary';\r\nimport ITripType from '../../../models/Reservation/ITripType';\r\nimport {ReservationStatus} from '../../../models/Reservation/ReservationEnum';\r\nimport MemberService from '../../../services/MemberService';\r\nimport ReservationService from '../../../services/ReservationService';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport formatString from '../../../utils/Strings';\r\nimport Dialog from '../../commons/Dialog/Dialog';\r\nimport DialogActions from '../../commons/Dialog/DialogActions';\r\nimport DialogButton from '../../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../commons/Dialog/DialogContent';\r\nimport DialogSaveButton from '../../commons/Dialog/DialogSaveButton';\r\nimport DialogTitle from '../../commons/Dialog/DialogTitle';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport CarDetails from '../Details/CarDetails';\r\nimport CommercialDetails from '../Details/CommercialDetails';\r\nimport CVFlightDetailsContainer from '../Details/CVFlightDetailsContainer';\r\nimport HotelDetails from '../Details/HotelDetails';\r\nimport styles from '../ReservationList.module.scss';\r\nimport './ReservationItem.scss';\r\nimport {CalendarToday, DriveEta, Flight, Hotel} from '@material-ui/icons';\r\nimport Travelers from './Travelers';\r\nimport IconData from './IconData';\r\nimport ServiceCounter from './ServiceCounter';\r\nimport {FaCubes} from 'react-icons/fa';\r\nimport ReservationActionsButton, {ReservationActionsButtonConfig,} from './ReservationActionsButton';\r\n// import {downloadFiles} from \"../../../utils/Downloads\";\r\nimport {requests} from '../../../services/ApiService';\r\nimport useBlobDownload from '../../../utils/Downloads';\r\n\r\ninterface IReservationETicketForm {\r\n email: string;\r\n}\r\n\r\nconst ReservationETicketFormSchema = yup.object().shape({\r\n email: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150))\r\n .matches(\r\n Constants.validation.emailMultipleRegex,\r\n Constants.validation.invalidEmail\r\n ),\r\n});\r\n\r\nexport interface IReservationItemProps {\r\n type?: ITripType;\r\n booking: IReservationSummary;\r\n canEdit: boolean;\r\n isManageResa: boolean;\r\n}\r\n\r\nconst ReservationItem: React.FC = ({\r\n booking,\r\n type,\r\n canEdit,\r\n isManageResa,\r\n}) => {\r\n const [expanded, setExpanded] = useState(false);\r\n const [detail, setDetail] = useState(\r\n undefined as IReservation | undefined | null\r\n );\r\n const { removeReservation, isFetching } = useMyReservationsContext();\r\n const { downloadByAttachment } = useBlobDownload();\r\n const reservationTravelers = type?.isBusiness\r\n ? [\r\n {\r\n memberId: booking.ownerId,\r\n memberName: booking.owner,\r\n },\r\n ]\r\n : booking.reservationMembersSummary;\r\n const history = useHistory();\r\n const {\r\n showModal: showETicketDialog,\r\n hideModal: hideETicketDialog,\r\n isVisible: isVisibleETicketDialog,\r\n } = useModal();\r\n const {\r\n showModal: showConfirmationDialog,\r\n hideModal: hideConfirmationDialog,\r\n isVisible: isVisibleConfirmationDialog,\r\n } = useModal();\r\n const { Badge: ReservationStatusBadge } = useReservationStatus(\r\n booking.status as ReservationStatus\r\n );\r\n\r\n const breakpoint = useBreakpoint();\r\n\r\n const form = useForm({\r\n defaultValues:{\r\n email: booking.emailTicketDelivery\r\n },\r\n mode: 'all',\r\n resolver: yupResolver(ReservationETicketFormSchema),\r\n });\r\n\r\n const { addMessage } = useSnackbar();\r\n\r\n const handleExpandClick = () => {\r\n if (!expanded && !detail) {\r\n ReservationService.getReservation(booking.reservationId)\r\n .then((detail) => setDetail(detail))\r\n .catch((err) => addMessage(err.message));\r\n }\r\n setExpanded(!expanded);\r\n };\r\n\r\n const handleSubmit = (form: IReservationETicketForm) => {\r\n ReservationService.sendETicket({\r\n reservationId: booking.reservationId,\r\n email: form.email,\r\n })\r\n .then((result) => {\r\n if (result) {\r\n addMessage('The eTicket is sent successfully', MessageType.Success);\r\n } else {\r\n addMessage('Sending eTicket failed', MessageType.Error);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n hideETicketDialog();\r\n };\r\n\r\n const handleRemoveReservation = (reservationId: number) => {\r\n removeReservation(reservationId);\r\n };\r\n\r\n const [employees, setEmployees] = useState([]);\r\n useEffect(() => {\r\n if (booking) {\r\n const promises = booking.reservationMembersSummary.map((employee) =>\r\n MemberService.getById(employee.memberId)\r\n );\r\n Promise.all(promises)\r\n .then((members) => {\r\n setEmployees(members);\r\n })\r\n .catch(() =>\r\n addMessage(\r\n \"Couldn't retrieve reservation employees\",\r\n MessageType.Error\r\n )\r\n );\r\n }\r\n }, [booking.reservationId]);\r\n\r\n useEffect(() => {\r\n if (!isFetching) {\r\n hideConfirmationDialog();\r\n }\r\n }, [isFetching]);\r\n\r\n const tripWithin72h = moment(booking?.startDate).diff(moment(), 'days') <= 3;\r\n\r\n const { redirect, allowed } = useReservationRedirect(\r\n {\r\n reservationOwner: booking.ownerId,\r\n reservationId: booking.reservationId,\r\n },\r\n true,\r\n employees,\r\n ReservationRedirectOrigin.ManageReservations\r\n );\r\n\r\n const downloadAllFile = async (reservationId: number) => {\r\n const attachments: {\r\n id: number;\r\n name: string;\r\n url: string;\r\n }[] = await requests.get(`api/reservations/attachments/${reservationId}`);\r\n if (attachments.length === 0) {\r\n addMessage('No files to download');\r\n return;\r\n }\r\n attachments.forEach(async (attachment) =>\r\n downloadByAttachment(attachment.id, attachment.name)\r\n );\r\n };\r\n\r\n const formatDate = (date: Date) => moment(date).format('DD MMM YYYY');\r\n\r\n const isServiceCounterActive = (count?: number) => (count ?? 0) > 0;\r\n\r\n const actionsConfig: ReservationActionsButtonConfig = {\r\n view: {\r\n enable: true,\r\n onClick: () => {\r\n history.push(`/reservations/consult/${booking.reservationId}`);\r\n },\r\n },\r\n edit: {\r\n enable: canEdit && booking.status !== ReservationStatus.NotApproved,\r\n onClick: () => {\r\n if (isManageResa) {\r\n allowed && redirect();\r\n } else {\r\n history.push(`/reservations/${booking.reservationId}/steps`);\r\n }\r\n },\r\n },\r\n downloadAll: {\r\n enable: true,\r\n onClick: () => downloadAllFile(booking.reservationId),\r\n },\r\n cancel: {\r\n enable: canEdit,\r\n onClick: showConfirmationDialog,\r\n },\r\n viewTicket: {\r\n enable: canEdit || booking.isTicketGenerated || tripWithin72h,\r\n onClick: showETicketDialog,\r\n },\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n handleExpandClick();\r\n }}\r\n elevation={2}\r\n >\r\n }\r\n className={styles.summary}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {type?.name} N°{booking.reservationId}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n Created {formatDate(booking.createdOn)} by{' '}\r\n {booking.createdBy}\r\n \r\n
    \r\n\r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n }\r\n label={`${formatDate(booking.startDate)} - ${formatDate(\r\n booking.endDate\r\n )}`}\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n } label=\"CV Flights\" />\r\n \r\n\r\n \r\n } label=\"Flights / Trains\" />\r\n \r\n\r\n \r\n } label=\"Hotels\" />\r\n \r\n\r\n \r\n } label=\"Car\" />\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n {detail ? (\r\n <>\r\n \r\n \r\n {detail.cvFlights &&\r\n detail.cvFlights?.length > 0 &&\r\n type?.isCVFlight && (\r\n \r\n moment(a.departureTime).diff(b.departureTime)\r\n )}\r\n reservationMembers={reservationTravelers}\r\n memberInfo={employees[0]}\r\n type={type?.name}\r\n />\r\n )}\r\n {detail.commercials &&\r\n detail.commercials.length > 0 &&\r\n type?.allowCommercial && (\r\n {\r\n const timeDiff = moment(a.departureDate).diff(\r\n b.departureDate\r\n );\r\n return timeDiff === 0 ? a.uiId - b.uiId : timeDiff;\r\n })}\r\n reservationMembers={reservationTravelers}\r\n memberInfo={employees[0]}\r\n type={type?.name}\r\n />\r\n )}\r\n {detail.hotels &&\r\n detail.hotels.length > 0 &&\r\n type?.allowHotel && (\r\n moment(a.checkIn).diff(b.checkIn))}\r\n />\r\n )}\r\n {detail.cars && detail.cars.length > 0 && type?.allowCar && (\r\n moment(a.pickUpDate).diff(b.pickUpDate))}\r\n />\r\n )}\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n ETicket email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n You are going to delete this reservation\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n \r\n \r\n {\r\n hideConfirmationDialog();\r\n }}\r\n />\r\n handleRemoveReservation(booking.reservationId)}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReservationItem;\r\n","import React, {useEffect} from 'react';\r\nimport InfiniteScroll from 'react-infinite-scroll-component';\r\nimport {useLocation} from 'react-router-dom';\r\n\r\nimport {Grid, LinearProgress} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nimport {useReservationContext} from '../../context/ReservationProvider/ReservationProvider';\r\nimport {useUserContext} from '../../context/User/UserContext';\r\nimport useMakeAReservationAccess from '../../hooks/useMakeAReservationAccess';\r\nimport useResumeReservation from '../../hooks/useResumeReservation';\r\nimport IReservationSummary from '../../models/Reservation/IReservationSummary';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport PermissionsList from '../../utils/PermissionsList';\r\nimport NoReservationFound from './Items/NoReservationFound';\r\nimport ReservationItem from './Items/ReservationItem';\r\n\r\nexport interface IReservationListProps {\r\n bookings: IReservationSummary[];\r\n fetchData: () => void;\r\n isFetching: boolean;\r\n hasMore: boolean;\r\n canEdit: boolean;\r\n isManageReservations: boolean;\r\n}\r\n\r\nfunction useQuery() {\r\n return new URLSearchParams(useLocation().search);\r\n}\r\n\r\nconst ReservationList: React.FC = ({\r\n bookings,\r\n fetchData,\r\n hasMore,\r\n isFetching,\r\n canEdit,\r\n isManageReservations,\r\n}) => {\r\n const { state } = useReservationContext();\r\n const { permissions } = useUserContext();\r\n let query = useQuery();\r\n const { IsBlockedDialog, handleRedirect } = useMakeAReservationAccess();\r\n\r\n const { ResumeButton } = useResumeReservation(handleRedirect);\r\n\r\n useEffect(() => {\r\n if (query.get('blocked') === 'true') {\r\n handleRedirect();\r\n }\r\n }, [query]);\r\n\r\n return (\r\n <>\r\n \r\n {(isFetching && bookings.length === 0) || !state.allTripTypes ? (\r\n <>\r\n \r\n \r\n ) : (\r\n <>\r\n {permissions.includes(\r\n PermissionsList.eTravelReservationMakeReservation\r\n ) &&\r\n !isManageReservations && (\r\n \r\n \r\n \r\n handleRedirect()}\r\n >\r\n Make a Reservation\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {bookings.length === 0 ? (\r\n \r\n \r\n \r\n ) : (\r\n }\r\n >\r\n {bookings.map((booking, index) => (\r\n t.tripTypeId === booking.tripTypeId\r\n )}\r\n canEdit={canEdit}\r\n isManageResa={isManageReservations}\r\n />\r\n ))}\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ReservationList;\r\n","import React from 'react';\r\n\r\nimport {Button} from '@material-ui/core';\r\n\r\nimport {useLocalStorageContext} from '../context/LocalStorageContext/LocalStorageContext';\r\nimport baseStyles from '../styles/styles.module.scss';\r\n\r\nexport default function useResumeReservation(\r\n onResume: (redirect?: string) => void\r\n) {\r\n const {\r\n state: { bookingSteps },\r\n } = useLocalStorageContext();\r\n\r\n const ResumeButton = () =>\r\n bookingSteps?.tripTypeId ? (\r\n onResume('/reservations/new/steps')}\r\n >\r\n Resume Reservation\r\n \r\n ) : (\r\n <>\r\n );\r\n\r\n return { ResumeButton };\r\n}\r\n","import React, {useEffect} from 'react';\r\n\r\nimport ReservationList from '../../../../components/ReservationList/ReservationList';\r\nimport {useMyReservationsContext} from '../../../../context/MyReservations/MyReservationsContext';\r\nimport {MyReservationsTabEnum} from '../../../../context/MyReservations/MyReservationsReducer';\r\n\r\nexport interface IMyCurrentReservationsTabProps {}\r\n\r\nconst MyCurrentReservationsTab: React.FC<\r\n IMyCurrentReservationsTabProps\r\n> = () => {\r\n const { bookings, isFetching, selectTab, LoadNextBookings, hasMoreBooking } =\r\n useMyReservationsContext();\r\n\r\n useEffect(() => {\r\n selectTab(MyReservationsTabEnum.CURRENT);\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default MyCurrentReservationsTab;\r\n","import React, {useEffect} from 'react';\r\n\r\nimport ReservationList from '../../../../components/ReservationList/ReservationList';\r\nimport {useMyReservationsContext} from '../../../../context/MyReservations/MyReservationsContext';\r\nimport {MyReservationsTabEnum} from '../../../../context/MyReservations/MyReservationsReducer';\r\n\r\nexport interface IMyReservationsHistoryTabProps {}\r\n\r\nconst MyReservationsHistoryTab: React.FC<\r\n IMyReservationsHistoryTabProps\r\n> = () => {\r\n const { history, isFetching, selectTab, LoadNextHistory, hasMoreHistory } =\r\n useMyReservationsContext();\r\n\r\n useEffect(() => {\r\n selectTab(MyReservationsTabEnum.HISTORY);\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default MyReservationsHistoryTab;\r\n","import React from 'react';\r\n\r\nimport IRoute from '../models/IRoute';\r\nimport MyCurrentReservationsTab from '../pages/reservation/myReservations/tabs/MyCurrentReservationsTab';\r\nimport MyReservationsHistoryTab from '../pages/reservation/myReservations/tabs/MyReservationsHistoryTab';\r\nimport PermissionsList from '../utils/PermissionsList';\r\n\r\nconst MyReservationsRoutes: IRoute[] = [\r\n {\r\n path: '/reservations/myReservations',\r\n name: 'Current',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelReservationMyReservations,\r\n },\r\n {\r\n path: '/reservations/myReservations/history',\r\n name: 'History',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelReservationMyReservations,\r\n },\r\n];\r\n\r\nexport default MyReservationsRoutes;\r\n","import React from 'react';\r\n\r\nimport NavTabs from '../../../components/commons/NavTabs/NavTabs';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport Routes from '../../../components/Routes/Routes';\r\nimport MyReservationsRoutes from '../../../routes/MyReservationsRoutes';\r\n\r\nconst MyReservationPage: React.FC = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MyReservationPage;\r\n","import React, {useEffect} from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport ReservationService from '../../services/ReservationService';\r\n\r\nconst ReservationConditionsPdf: React.FC = () => {\r\n const { addMessage } = useSnackbar();\r\n\r\n const downloadBlob = (blob: any, filename: string) => {\r\n const url = URL.createObjectURL(blob);\r\n\r\n const downloadLink = document.createElement('a');\r\n downloadLink.href = url;\r\n downloadLink.download = filename || 'download';\r\n\r\n const clickHandler = () => {\r\n setTimeout(() => {\r\n URL.revokeObjectURL(url);\r\n downloadLink.removeEventListener('click', clickHandler);\r\n }, 150);\r\n };\r\n\r\n downloadLink.addEventListener('click', clickHandler, false);\r\n\r\n downloadLink.click();\r\n };\r\n\r\n useEffect(() => {\r\n ReservationService.getConditionsPdf()\r\n .then((blob) => {\r\n downloadBlob(blob, 'dangerous-articles-in-baggage.pdf');\r\n })\r\n .catch((error) => addMessage(error.message));\r\n }, []);\r\n\r\n return <>;\r\n};\r\n\r\nexport default ReservationConditionsPdf;\r\n","import React from 'react';\r\n\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport {ReservationList} from '../../../components/ReservationList';\r\nimport {useManageReservationsContext} from '../../../context/ManageReservations/ManageReservationsProvider';\r\n\r\nconst ManageReservationsPage: React.FC = () => {\r\n const { bookings, isFetching, LoadNextBookings, hasMoreBooking } =\r\n useManageReservationsContext();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ManageReservationsPage;\r\n","import React from 'react';\r\n\r\nimport Routes from '../../components/Routes/Routes';\r\nimport CVFlightsProvider from '../../context/CVFlightsContext/CVFlightsContext';\r\nimport MyReservationsProvider from '../../context/MyReservations/MyReservationsContext';\r\nimport ReservationConsultProvider from '../../context/ReservationConsultContext/ReservationConsultContext';\r\nimport PermissionsList from '../../utils/PermissionsList';\r\nimport ReservationApprovalPage from './approvals/ReservationApprovalPage';\r\nimport BookingSetupPage from './bookATrip/BookingSetup/BookingSetupPage';\r\nimport ReservationStepsPage from './bookATrip/ReservationStepsPage';\r\nimport ReservationConsultPage from './consult/ReservationConsultPage';\r\nimport MyReservationsPage from './myReservations/MyReservationsPage';\r\nimport ReservationConditionsPdf from './ReservationConditionsPdf';\r\nimport ManageReservationsPage from './manageReservations/ManageReservationsPages';\r\nimport ManageReservationsProvider from '../../context/ManageReservations/ManageReservationsProvider';\r\n\r\nconst ReservationMainPage: React.FC = () => {\r\n return (\r\n <>\r\n ,\r\n permission: PermissionsList.eTravelReservationMakeReservation,\r\n },\r\n {\r\n path: '/reservations/:id/steps/:step?/:stepId?',\r\n name: 'Reservation steps',\r\n exact: false,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelReservationMakeReservation,\r\n },\r\n {\r\n path: '/reservations/new/conditionsPdf',\r\n name: 'Conditions pdf',\r\n exact: false,\r\n component: ,\r\n permission: PermissionsList.eTravelReservationMakeReservation,\r\n },\r\n ]}\r\n basePath=\"/reservations/new\"\r\n />\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelReservationMyReservations,\r\n },\r\n ]}\r\n basePath=\"/reservations/myReservations\"\r\n />\r\n ,\r\n permission: PermissionsList.eTravelReservationReservationApproval,\r\n },\r\n ]}\r\n basePath=\"/reservations/approvals\"\r\n />\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelReservationConsultReservation,\r\n },\r\n ]}\r\n basePath=\"/reservations/consult\"\r\n />\r\n\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelReservationManageReservations,\r\n },\r\n ]}\r\n basePath=\"/reservations/manageReservations\"\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default ReservationMainPage;\r\n","import IAlert from '../../../models/IAlert';\r\n\r\nexport enum AlertActionType {\r\n FETCH_ALERT,\r\n SELECTED_ALERT,\r\n ACTION_STARTED,\r\n ACTION_FAILED,\r\n ACTION_DONE,\r\n}\r\n\r\nexport interface AlertState {\r\n alerts: IAlert[] | null;\r\n selectedAlert: IAlert | null;\r\n processing: boolean;\r\n failed: boolean;\r\n}\r\n\r\nexport type AlertAction =\r\n | { type: AlertActionType.FETCH_ALERT; payload: IAlert[] }\r\n | { type: AlertActionType.SELECTED_ALERT; payload: IAlert | null }\r\n | { type: AlertActionType.ACTION_STARTED }\r\n | { type: AlertActionType.ACTION_FAILED }\r\n | { type: AlertActionType.ACTION_DONE };\r\n\r\nexport const AlertsReducer = (state: AlertState, action: AlertAction) => {\r\n switch (action.type) {\r\n case AlertActionType.FETCH_ALERT:\r\n return {\r\n ...state,\r\n processing: false,\r\n failed: false,\r\n alerts: action.payload,\r\n };\r\n case AlertActionType.SELECTED_ALERT:\r\n return { ...state, selectedAlert: action.payload };\r\n case AlertActionType.ACTION_STARTED:\r\n return { ...state, processing: true, failed: false };\r\n case AlertActionType.ACTION_FAILED:\r\n return { ...state, processing: false, failed: true };\r\n case AlertActionType.ACTION_DONE:\r\n return {\r\n ...state,\r\n processing: false,\r\n failed: false,\r\n selectedAlert: null,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default AlertsReducer;\r\n","import React, {createContext, useContext, useEffect, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IAlert from '../../../models/IAlert';\r\nimport AlertService from '../../../services/AlertService';\r\nimport Constants from '../../../utils/Constants';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport AlertsReducer, {AlertActionType, AlertState} from './AlertsReducer';\r\n\r\nexport const InitialState: AlertState = {\r\n alerts: null,\r\n selectedAlert: null,\r\n processing: false,\r\n failed: false,\r\n};\r\n\r\nexport interface IAlertContext {\r\n state: AlertState;\r\n selectAlert: (alert: IAlert | null) => void;\r\n addAlert: () => void;\r\n submitAlert: (alert: IAlert) => void;\r\n deleteAlert: (alert: IAlert) => void;\r\n}\r\n\r\nconst AlertContext = createContext({} as IAlertContext);\r\n\r\nconst AlertsProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(AlertsReducer, InitialState);\r\n const { addMessage } = useSnackbar();\r\n useEffect(() => {\r\n fetchAlerts().catch(console.error);\r\n }, []);\r\n\r\n const fetchAlerts = async () => {\r\n dispatch({ type: AlertActionType.ACTION_STARTED });\r\n AlertService.getAll()\r\n .then((alerts) =>\r\n dispatch({ type: AlertActionType.FETCH_ALERT, payload: alerts })\r\n )\r\n .catch((error) => {\r\n addMessage(error.message);\r\n dispatch({ type: AlertActionType.ACTION_FAILED });\r\n });\r\n };\r\n\r\n const submitAlert = (alert: IAlert) => {\r\n dispatch({ type: AlertActionType.ACTION_STARTED });\r\n let alertPromise: Promise;\r\n if (state.selectedAlert) {\r\n alertPromise = AlertService.updateAlert({\r\n ...state.selectedAlert,\r\n ...alert,\r\n });\r\n } else {\r\n alertPromise = AlertService.createAlert(alert);\r\n }\r\n\r\n alertPromise\r\n .then((result) => {\r\n if (result) {\r\n fetchAlerts().catch(console.error);\r\n }\r\n })\r\n .then(() => {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n dispatch({ type: AlertActionType.ACTION_DONE });\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n dispatch({ type: AlertActionType.ACTION_FAILED });\r\n });\r\n };\r\n\r\n const selectAlert = (alert: IAlert | null) => {\r\n dispatch({ type: AlertActionType.SELECTED_ALERT, payload: alert });\r\n };\r\n\r\n const addAlert = () => {\r\n dispatch({\r\n type: AlertActionType.SELECTED_ALERT,\r\n payload: {\r\n message: undefined,\r\n isActive: undefined,\r\n },\r\n });\r\n };\r\n\r\n const deleteAlert = (alert: IAlert) => {\r\n if (alert.alertId) {\r\n dispatch({ type: AlertActionType.ACTION_STARTED });\r\n AlertService.deleteAlert(alert.alertId)\r\n .then((res) => {\r\n if (res) {\r\n fetchAlerts().catch(console.error);\r\n } else {\r\n throw new Error(\"Couldn't remove alert\");\r\n }\r\n })\r\n .then(() => {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n dispatch({ type: AlertActionType.ACTION_DONE });\r\n })\r\n .catch((error) => {\r\n dispatch({ type: AlertActionType.ACTION_FAILED });\r\n addMessage(error.message);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default AlertsProvider;\r\nexport const useAlertContext = () => useContext(AlertContext);\r\n","import ITripType from '../models/Reservation/ITripType';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/TripType';\r\n\r\nconst TripTypeService = {\r\n fetchTripTypes: (): Promise => requests.get(`${API_ENDPOINT}`),\r\n updateSetting: (tripType: ITripType) =>\r\n requests.patch(`${API_ENDPOINT}/`, tripType),\r\n};\r\n\r\nexport default TripTypeService;\r\n","import produce from 'immer';\r\n\r\nimport ITripType from '../../../models/Reservation/ITripType';\r\n\r\nexport interface IAppSettingsTripTypesState {\r\n tripTypes: ITripType[];\r\n loading: boolean;\r\n loaded: boolean;\r\n updating: boolean;\r\n selectedTripType?: ITripType;\r\n}\r\n\r\nexport enum AppSettingsTripTypesActionTypes {\r\n FETCH_TRIPTYPES_STARTED,\r\n FETCH_TRIPTYPES_FAILED,\r\n FETCH_TRIPTYPES_DONE,\r\n SELECT_TRIPTYPE,\r\n UPDATE_TRIPTYPE_STARTED,\r\n UPDATE_TRIPTYPE_DONE,\r\n UPDATE_TRIPTYPE_FAILED,\r\n}\r\n\r\nexport type AppSettingsTripTypesAction =\r\n | { type: AppSettingsTripTypesActionTypes.FETCH_TRIPTYPES_STARTED }\r\n | { type: AppSettingsTripTypesActionTypes.FETCH_TRIPTYPES_FAILED }\r\n | {\r\n type: AppSettingsTripTypesActionTypes.FETCH_TRIPTYPES_DONE;\r\n payload: ITripType[];\r\n }\r\n | { type: AppSettingsTripTypesActionTypes.UPDATE_TRIPTYPE_STARTED }\r\n | { type: AppSettingsTripTypesActionTypes.UPDATE_TRIPTYPE_FAILED }\r\n | {\r\n type: AppSettingsTripTypesActionTypes.UPDATE_TRIPTYPE_DONE;\r\n payload: ITripType;\r\n }\r\n | {\r\n type: AppSettingsTripTypesActionTypes.SELECT_TRIPTYPE;\r\n payload: ITripType | undefined;\r\n };\r\n\r\nexport const AppSettingsTripTypesReducer = (\r\n state: IAppSettingsTripTypesState,\r\n action: AppSettingsTripTypesAction\r\n): IAppSettingsTripTypesState => {\r\n switch (action.type) {\r\n case AppSettingsTripTypesActionTypes.FETCH_TRIPTYPES_STARTED:\r\n return { ...state, loading: true, loaded: false };\r\n case AppSettingsTripTypesActionTypes.FETCH_TRIPTYPES_FAILED:\r\n return { ...state, loading: false };\r\n case AppSettingsTripTypesActionTypes.FETCH_TRIPTYPES_DONE:\r\n return {\r\n ...state,\r\n loading: false,\r\n loaded: true,\r\n tripTypes: action.payload,\r\n };\r\n case AppSettingsTripTypesActionTypes.SELECT_TRIPTYPE:\r\n return { ...state, selectedTripType: action.payload };\r\n case AppSettingsTripTypesActionTypes.UPDATE_TRIPTYPE_STARTED:\r\n return { ...state, updating: true };\r\n case AppSettingsTripTypesActionTypes.UPDATE_TRIPTYPE_DONE:\r\n return {\r\n ...state,\r\n selectedTripType: undefined,\r\n updating: false,\r\n tripTypes: produce(state.tripTypes, (draft) => {\r\n const index = draft.findIndex(\r\n (s) => s.tripTypeId === action.payload.tripTypeId\r\n );\r\n draft.splice(index, 1, action.payload);\r\n }),\r\n };\r\n case AppSettingsTripTypesActionTypes.UPDATE_TRIPTYPE_FAILED:\r\n return { ...state, selectedTripType: undefined, updating: false };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import React, {useCallback, useContext, useReducer} from 'react';\r\n\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport ITripType from '../../../models/Reservation/ITripType';\r\nimport TripTypeService from '../../../services/TripTypeService';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport {\r\n AppSettingsTripTypesActionTypes,\r\n AppSettingsTripTypesReducer,\r\n IAppSettingsTripTypesState,\r\n} from './AppSettingsTripTypesReducer';\r\n\r\nexport interface IAppSettingsTripTypesContext {\r\n tripTypes: ITripType[];\r\n loading: boolean;\r\n loaded: boolean;\r\n updating: boolean;\r\n selectedTripType?: ITripType;\r\n fetchTripTypes: () => void;\r\n selectTripType: (tripType?: ITripType) => void;\r\n updateTripType: (tripType: ITripType) => void;\r\n}\r\n\r\nconst initialState: IAppSettingsTripTypesState = {\r\n tripTypes: [],\r\n loading: false,\r\n loaded: false,\r\n updating: false,\r\n selectedTripType: undefined,\r\n};\r\n\r\nconst AppSettingsTripTypesContext = React.createContext(\r\n {} as IAppSettingsTripTypesContext\r\n);\r\n\r\nconst AppSettingsTripTypesProvider: React.FC = ({ children }) => {\r\n const [state, dispatch] = useReducer(\r\n AppSettingsTripTypesReducer,\r\n initialState\r\n );\r\n const { addMessage } = useSnackbar();\r\n\r\n const fetchTripTypes = useCallback(() => {\r\n dispatch({ type: AppSettingsTripTypesActionTypes.FETCH_TRIPTYPES_STARTED });\r\n TripTypeService.fetchTripTypes()\r\n .then((settings) => {\r\n dispatch({\r\n type: AppSettingsTripTypesActionTypes.FETCH_TRIPTYPES_DONE,\r\n payload: settings,\r\n });\r\n })\r\n .catch((error) => {\r\n dispatch({\r\n type: AppSettingsTripTypesActionTypes.FETCH_TRIPTYPES_FAILED,\r\n });\r\n addMessage(error.message, MessageType.Error);\r\n });\r\n }, [addMessage]);\r\n\r\n const selectTripType = useCallback((tripType?: ITripType) => {\r\n dispatch({\r\n type: AppSettingsTripTypesActionTypes.SELECT_TRIPTYPE,\r\n payload: tripType,\r\n });\r\n }, []);\r\n\r\n const updateTripType = useCallback(\r\n (trip: ITripType) => {\r\n dispatch({\r\n type: AppSettingsTripTypesActionTypes.UPDATE_TRIPTYPE_STARTED,\r\n });\r\n TripTypeService.updateSetting(trip)\r\n .then((res) => {\r\n if (res) {\r\n dispatch({\r\n type: AppSettingsTripTypesActionTypes.UPDATE_TRIPTYPE_DONE,\r\n payload: trip,\r\n });\r\n addMessage('Trip type updated successfully', MessageType.Success);\r\n } else {\r\n addMessage(\"Couldn't update trip type\");\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch({\r\n type: AppSettingsTripTypesActionTypes.UPDATE_TRIPTYPE_FAILED,\r\n });\r\n addMessage(error.message, MessageType.Error);\r\n });\r\n },\r\n [addMessage]\r\n );\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useAppSettingsTripTypesContext = () =>\r\n useContext(AppSettingsTripTypesContext);\r\n\r\nexport default AppSettingsTripTypesProvider;\r\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgOk(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10 20C15.5228 20 20 15.5228 20 10C20 4.47715 15.5228 0 10 0C4.47715 0 0 4.47715 0 10C0 15.5228 4.47715 20 10 20Z\",\n fill: \"#00CB98\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.28234 13.1154L5.12223 10.0865C4.84133 9.81731 4.41998 9.81731 4.13908 10.0865C3.85818 10.3558 3.85818 10.7596 4.13908 11.0288L8.28234 15L16.2177 7.39423C16.4986 7.125 16.4986 6.72115 16.2177 6.45192C15.9368 6.18269 15.5155 6.18269 15.2346 6.45192L8.28234 13.1154Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgOk);\nexport default __webpack_public_path__ + \"static/media/ok.cc3c488c.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgRejected(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10 20C15.5228 20 20 15.5228 20 10C20 4.47715 15.5228 0 10 0C4.47715 0 0 4.47715 0 10C0 15.5228 4.47715 20 10 20Z\",\n fill: \"#CC0033\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M13.8914 5L10.0004 8.89151L6.10858 5H6.10701L5 6.1077L8.89182 9.99921L5 13.8915L6.10701 15H6.10858L10.0004 11.1085L13.8914 15H13.893L15 13.8923V13.8907L11.109 9.99921L15 6.10849V6.10692L13.893 5H13.8914Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgRejected);\nexport default __webpack_public_path__ + \"static/media/rejected.2fb7173f.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\nimport {useFormContext, useWatch} from 'react-hook-form';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport IAlert from '../../models/IAlert';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport ReactQuill from '../commons/ReactQuill/ReactQuill';\r\nimport ToggleButtons from '../commons/ToggleButtons/ToggleButtons';\r\n\r\ninterface IAlertFormProps {\r\n defaultValues: IAlert;\r\n}\r\n\r\nconst AlertForm: React.FC = ({ defaultValues }) => {\r\n const { control, errors } = useFormContext();\r\n const isActive = useWatch({\r\n control,\r\n name: 'isActive',\r\n defaultValue: defaultValues.isActive,\r\n });\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isActive && (\r\n \r\n \r\n Warning: if you validate this form, the alert is immediately\r\n visible by all users.\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AlertForm;\r\n","import React from 'react';\r\nimport {FormProvider, useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\n\r\nimport {useAlertContext} from '../../context/settings/AlertsContext/AlertsProvider';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Constants from '../../utils/Constants';\r\nimport formatString from '../../utils/Strings';\r\nimport Drawer from '../commons/Drawer/Drawer';\r\nimport DrawerActions from '../commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../commons/Drawer/DrawerTitle';\r\nimport AlertForm from './AlertForm';\r\n\r\ninterface IAlertDrawerProps {}\r\n\r\nexport interface IAlertForm {\r\n message: string;\r\n isActive: boolean;\r\n}\r\n\r\nexport const AlertFormSchema = yup.object().shape({\r\n message: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(500, formatString(Constants.validation.max, 500)),\r\n isActive: yup.boolean().required(Constants.validation.required),\r\n});\r\n\r\nconst AlertDrawer: React.FC = () => {\r\n const {\r\n state: { selectedAlert, processing },\r\n submitAlert,\r\n selectAlert,\r\n } = useAlertContext();\r\n\r\n const form = useForm({\r\n resolver: yupResolver(AlertFormSchema),\r\n mode: 'onChange',\r\n defaultValues: {\r\n message: selectedAlert?.message,\r\n isActive: selectedAlert?.isActive,\r\n },\r\n });\r\n\r\n const handleSubmit = (form: IAlertForm) => {\r\n if (form.message && form.isActive !== undefined) {\r\n submitAlert({\r\n ...form,\r\n });\r\n }\r\n selectAlert(null);\r\n };\r\n\r\n return (\r\n <>\r\n selectAlert(null)}>\r\n Alert\r\n \r\n \r\n \r\n {selectedAlert && }\r\n \r\n \r\n \r\n \r\n selectAlert(null)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AlertDrawer;\r\n","import React, {useState} from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport Link from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as OkIcon} from '../../../../assets/icons/ok.svg';\r\nimport {ReactComponent as RejectedIcon} from '../../../../assets/icons/rejected.svg';\r\nimport {AlertDrawer} from '../../../../components/Alerts';\r\nimport AddButton from '../../../../components/commons/AddButton/AddButton';\r\nimport DateTime from '../../../../components/commons/DateTime/DateTime';\r\nimport Dialog from '../../../../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../../../../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../../components/commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../../components/commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../../components/commons/Dialog/DialogContent';\r\nimport NoResult from '../../../../components/commons/NoResult/NoResult';\r\nimport Table from '../../../../components/commons/Table/Table';\r\nimport {useAlertContext} from '../../../../context/settings/AlertsContext/AlertsProvider';\r\nimport {useModal} from '../../../../hooks/useModal';\r\nimport IAlert from '../../../../models/IAlert';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\n\r\ninterface IAlertsTabProps {}\r\n\r\nconst AlertsTab: React.FC = () => {\r\n const {\r\n state: { alerts, processing },\r\n selectAlert,\r\n addAlert,\r\n deleteAlert,\r\n } = useAlertContext();\r\n\r\n const [selectedRowToDelete, setSelectedRowToDelete] = useState(\r\n null\r\n );\r\n const {\r\n showModal: showConfirmationDialog,\r\n hideModal: hideConfirmationDialog,\r\n isVisible: isVisibleConfirmationDialog,\r\n } = useModal();\r\n\r\n const handleDelete = async (alert: IAlert) => {\r\n setSelectedRowToDelete(alert);\r\n showConfirmationDialog();\r\n };\r\n\r\n const handleConfirmDelete = () => {\r\n if (!!selectedRowToDelete) {\r\n deleteAlert(selectedRowToDelete);\r\n setSelectedRowToDelete(null);\r\n }\r\n\r\n hideConfirmationDialog();\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Message',\r\n accessor: 'message',\r\n width: '30%',\r\n Cell: ({ row }: any) => row.original.message.replace(/<[^>]+>/g, ''),\r\n },\r\n {\r\n Header: 'Active',\r\n accessor: 'isActive',\r\n disableSortBy: true,\r\n width: '5%',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.isActive ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Last modification',\r\n accessor: 'modifiedBy',\r\n width: '15%',\r\n Cell: ({ row }: any) => (\r\n <>\r\n by{' '}\r\n {row.original.modifiedBy}\r\n \r\n ),\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n selectAlert(row.original)}\r\n >\r\n See more or edit\r\n \r\n \r\n ),\r\n width: '11%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'deleteKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n handleDelete(row.original)}\r\n >\r\n Delete\r\n \r\n \r\n ),\r\n width: '7%',\r\n },\r\n ],\r\n []\r\n );\r\n return (\r\n <>\r\n \r\n \r\n Add an Alert\r\n \r\n \r\n \r\n {processing ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n {alerts && alerts.length > 0 ? (\r\n \r\n ) : (\r\n alerts && \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n You are going to delete this alert\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n \r\n {\r\n hideConfirmationDialog();\r\n }}\r\n />\r\n handleConfirmDelete()}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AlertsTab;\r\n","import React from 'react';\r\n\r\nimport {Box, ButtonBase, Link} from '@material-ui/core';\r\n\r\nimport {useAppSettingsPageContext} from '../../context/settings/AppSettingsPageContext/AppSettingsPageProvider';\r\nimport NoResult from '../commons/NoResult/NoResult';\r\nimport Table from '../commons/Table/Table';\r\n\r\nconst AppSettingsGrid: React.FC = () => {\r\n const { settings, selectSetting } = useAppSettingsPageContext();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Section',\r\n width: '15%',\r\n accessor: 'section',\r\n },\r\n {\r\n Header: 'Display Name',\r\n width: '33%',\r\n accessor: 'displayName',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.displayName}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Name',\r\n width: '33%',\r\n accessor: 'name',\r\n Cell: ({ row }: any) => (\r\n {row.original.name}\r\n ),\r\n },\r\n {\r\n Header: 'Category',\r\n width: '15%',\r\n accessor: 'category',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n {\r\n selectSetting({ ...row.original });\r\n }}\r\n >\r\n See more or edit\r\n \r\n \r\n ),\r\n },\r\n ],\r\n [selectSetting]\r\n );\r\n\r\n return (\r\n <>\r\n {settings.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AppSettingsGrid;\r\n","import * as yup from 'yup';\r\n\r\nimport Constants from '../../utils/Constants';\r\nimport formatString from '../../utils/Strings';\r\n\r\nexport interface IAppSettingForm {\r\n description: string;\r\n value: string;\r\n displayName: string;\r\n}\r\n\r\nexport const AppSettingFormSchema = yup.object().shape({\r\n description: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(250, formatString(Constants.validation.max, 250)),\r\n displayName: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(100, formatString(Constants.validation.max, 100)),\r\n value: yup.string().required(Constants.validation.required),\r\n});\r\n","import React from 'react';\r\nimport {UseFormMethods, useWatch} from 'react-hook-form';\r\n\r\nimport {Box, Grid, Typography} from '@material-ui/core';\r\n\r\nimport {IAppSetting} from '../../models/Settings/IAppSetting';\r\nimport {IAppSettingForm} from '../../models/Settings/IAppSettingForm';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport TextField from '../commons/TextField/TextField';\r\n\r\nexport interface IAppSettingsFormProps {\r\n setting: IAppSetting;\r\n form: UseFormMethods;\r\n}\r\n\r\nconst AppSettingsForm: React.FC = ({\r\n setting,\r\n form: { register, errors, control },\r\n}) => {\r\n const newValue = useWatch({\r\n control,\r\n name: 'value',\r\n defaultValue: setting.value,\r\n });\r\n\r\n return (\r\n <>\r\n \r\n \r\n Section:{' '}\r\n \r\n {setting.section}\r\n \r\n \r\n \r\n \r\n \r\n Name:{' '}\r\n \r\n {setting.name}\r\n \r\n \r\n \r\n \r\n \r\n Category:{' '}\r\n \r\n {setting.category}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {setting && setting.value !== newValue && (\r\n \r\n \r\n Warning: value modification could lead to an unstable application.\r\n No validation are performed on your input.\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AppSettingsForm;\r\n","import React from 'react';\r\nimport {useForm} from 'react-hook-form';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Grid} from '@material-ui/core';\r\n\r\nimport {useAppSettingsPageContext} from '../../context/settings/AppSettingsPageContext/AppSettingsPageProvider';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport {AppSettingFormSchema, IAppSettingForm,} from '../../models/Settings/IAppSettingForm';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Drawer from '../commons/Drawer/Drawer';\r\nimport DrawerActions from '../commons/Drawer/DrawerActions';\r\nimport DrawerButton from '../commons/Drawer/DrawerButton';\r\nimport DrawerCancelButton from '../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../commons/Drawer/DrawerContent';\r\nimport DrawerTitle from '../commons/Drawer/DrawerTitle';\r\nimport AppSettingsForm from './AppSettingsForm';\r\n\r\nexport interface IAppSettingsDrawerProps {}\r\n\r\nconst AppSettingsDrawer: React.FC = () => {\r\n const { selectedSetting, updating, selectSetting, updateSetting } =\r\n useAppSettingsPageContext();\r\n const { addMessage } = useSnackbar();\r\n\r\n const form = useForm({\r\n resolver: yupResolver(AppSettingFormSchema),\r\n mode: 'onChange',\r\n defaultValues: {\r\n description: selectedSetting?.description,\r\n value: selectedSetting?.value,\r\n },\r\n });\r\n\r\n const handleSubmit = (form: IAppSettingForm) => {\r\n if (selectedSetting && form.description && form.displayName && form.value) {\r\n updateSetting({ ...selectedSetting, ...form });\r\n } else {\r\n addMessage(\"Couldn't update setting\");\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n selectSetting(undefined)}>\r\n Application Setting\r\n \r\n \r\n {selectedSetting && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {\r\n selectSetting(undefined);\r\n }}\r\n />\r\n \r\n \r\n {}}\r\n text=\"VALIDATE\"\r\n loading={updating}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AppSettingsDrawer;\r\n","import React, {useEffect} from 'react';\r\n\r\nimport {Box, Grid, LinearProgress} from '@material-ui/core';\r\n\r\nimport {AppSettingsDrawer, AppSettingsGrid,} from '../../../../components/AppSettings';\r\nimport {useAppSettingsPageContext} from '../../../../context/settings/AppSettingsPageContext/AppSettingsPageProvider';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\n\r\ninterface IGeneralTabProps {}\r\n\r\nconst GeneralTab: React.FC = () => {\r\n const { fetchSettings, loading, loaded } = useAppSettingsPageContext();\r\n\r\n useEffect(() => {\r\n fetchSettings();\r\n }, [fetchSettings]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n {loading || !loaded ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default GeneralTab;\r\n","import * as yup from 'yup';\r\n\r\nimport Constants from '../../utils/Constants';\r\nimport formatString from '../../utils/Strings';\r\n\r\nexport interface IAppSettingTripTypeForm {\r\n name: string;\r\n description: string;\r\n startDate?: Date | null;\r\n endDate?: Date | null;\r\n approver: string;\r\n}\r\n\r\nexport const AppSettingTripTypeFormSchema = yup.object().shape(\r\n {\r\n name: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(100, formatString(Constants.validation.max, 100)),\r\n description: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n approver: yup\r\n .string()\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n startDate: yup\r\n .date()\r\n .when('endDate', (endDate: Date | null) =>\r\n endDate\r\n ? yup\r\n .date()\r\n .nullable(false)\r\n .typeError('Start date required when a end date is specified')\r\n : yup.date().nullable(true)\r\n ),\r\n endDate: yup\r\n .date()\r\n .when('startDate', (startDate: Date | null, schema: any) =>\r\n startDate\r\n ? schema\r\n .min(startDate, 'end date cannot be before start date')\r\n .typeError('')\r\n : yup.date().nullable(true)\r\n )\r\n .nullable(true),\r\n },\r\n [['startDate', 'endDate']]\r\n);\r\n","import React, {useEffect} from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\n\r\nimport {Grid} from '@material-ui/core';\r\n\r\nimport ITripType from '../../models/Reservation/ITripType';\r\nimport {IAppSettingTripTypeForm} from '../../models/Settings/IAppSettingTripType';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport DatePicker from '../commons/DatePicker/DatePicker';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport TextField from '../commons/TextField/TextField';\r\n\r\nexport interface ITripTypesFormProps {\r\n tripType: ITripType;\r\n form: UseFormMethods;\r\n}\r\n\r\nconst TripTypesForm: React.FC = ({\r\n tripType,\r\n form: { trigger, watch, register, errors, control },\r\n}) => {\r\n const watchStartDate = watch('startDate');\r\n const watchendDate = watch('endDate');\r\n\r\n useEffect(() => {\r\n trigger('startDate');\r\n trigger('endDate');\r\n }, [watchStartDate, watchendDate]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TripTypesForm;\r\n","import React from 'react';\r\nimport {useForm} from 'react-hook-form';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Grid} from '@material-ui/core';\r\n\r\nimport {\r\n useAppSettingsTripTypesContext\r\n} from '../../context/settings/AppSettingsTripTypesContext/AppSettingsTipTypesProvider';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport {AppSettingTripTypeFormSchema, IAppSettingTripTypeForm,} from '../../models/Settings/IAppSettingTripType';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Drawer from '../commons/Drawer/Drawer';\r\nimport DrawerActions from '../commons/Drawer/DrawerActions';\r\nimport DrawerButton from '../commons/Drawer/DrawerButton';\r\nimport DrawerCancelButton from '../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../commons/Drawer/DrawerContent';\r\nimport DrawerTitle from '../commons/Drawer/DrawerTitle';\r\nimport TripTypesForm from './TripTypesForm';\r\n\r\nexport interface ITripTypesDrawerProps {}\r\n\r\nconst TripTypesDrawer: React.FC = () => {\r\n const { selectedTripType, updating, selectTripType, updateTripType } =\r\n useAppSettingsTripTypesContext();\r\n const { addMessage } = useSnackbar();\r\n\r\n const form = useForm({\r\n resolver: yupResolver(AppSettingTripTypeFormSchema),\r\n mode: 'onChange',\r\n defaultValues: {\r\n description: selectedTripType?.description,\r\n name: selectedTripType?.name,\r\n approver: selectedTripType?.approver,\r\n startDate: selectedTripType?.startDate,\r\n endDate: selectedTripType?.endDate,\r\n },\r\n });\r\n\r\n const handleSubmit = (form: IAppSettingTripTypeForm) => {\r\n if (selectedTripType && form.description && form.name) {\r\n updateTripType({ ...selectedTripType, ...form });\r\n } else {\r\n addMessage(\"Couldn't update setting\");\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n selectTripType(undefined)}\r\n >\r\n Trip Type Setting\r\n \r\n \r\n {selectedTripType && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {\r\n selectTripType(undefined);\r\n }}\r\n />\r\n \r\n \r\n {}}\r\n text=\"VALIDATE\"\r\n loading={updating}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TripTypesDrawer;\r\n","import React from 'react';\r\n\r\nimport {Box, ButtonBase, Link} from '@material-ui/core';\r\n\r\nimport {\r\n useAppSettingsTripTypesContext\r\n} from '../../context/settings/AppSettingsTripTypesContext/AppSettingsTipTypesProvider';\r\nimport DateTime from '../commons/DateTime/DateTime';\r\nimport NoResult from '../commons/NoResult/NoResult';\r\nimport Table from '../commons/Table/Table';\r\n\r\nexport interface ITripTypesGridProps {}\r\n\r\nconst TripTypesGrid: React.FC = () => {\r\n const { tripTypes, selectTripType } = useAppSettingsTripTypesContext();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Short name',\r\n width: '17%',\r\n accessor: 'name',\r\n },\r\n {\r\n Header: 'Description',\r\n width: '33%',\r\n accessor: 'description',\r\n },\r\n {\r\n Header: 'Start date',\r\n width: '10%',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: 'End date',\r\n width: '10%',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Approver',\r\n width: '15%',\r\n accessor: 'approver',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n {\r\n selectTripType({ ...row.original });\r\n }}\r\n >\r\n See more or edit\r\n \r\n \r\n ),\r\n },\r\n ],\r\n []\r\n );\r\n return (\r\n <>\r\n {tripTypes.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TripTypesGrid;\r\n","import React, {useEffect} from 'react';\r\n\r\nimport {Box, Grid, LinearProgress} from '@material-ui/core';\r\n\r\nimport {TripTypesDrawer, TripTypesGrid,} from '../../../../components/TripTypes';\r\nimport {\r\n useAppSettingsTripTypesContext\r\n} from '../../../../context/settings/AppSettingsTripTypesContext/AppSettingsTipTypesProvider';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\n\r\nexport interface ISettingsTripTypesTabProps {}\r\n\r\nconst SettingsTripTypesTab: React.FC = () => {\r\n const { fetchTripTypes, loading, loaded } = useAppSettingsTripTypesContext();\r\n\r\n useEffect(() => {\r\n fetchTripTypes();\r\n }, [fetchTripTypes]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n {loading || !loaded ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SettingsTripTypesTab;\r\n","import React from 'react';\r\n\r\nimport AlertsProvider from '../context/settings/AlertsContext/AlertsProvider';\r\nimport AppSettingsPageProvider from '../context/settings/AppSettingsPageContext/AppSettingsPageProvider';\r\nimport AppSettingsTripTypesProvider from '../context/settings/AppSettingsTripTypesContext/AppSettingsTipTypesProvider';\r\nimport IRoute from '../models/IRoute';\r\nimport AlertsTab from '../pages/settings/application/AlertsTab/AlertsTab';\r\nimport GeneralTab from '../pages/settings/application/GeneralTab/GeneralTab';\r\nimport SettingsTripTypesTab from '../pages/settings/application/TripTypesTab/SettingsTripTypesTab';\r\nimport PermissionsList from '../utils/PermissionsList';\r\n\r\nconst ApplicationSettingsRoutes: IRoute[] = [\r\n {\r\n path: '/settings/application/general',\r\n name: 'General',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelSettingsApplicationSettings,\r\n },\r\n {\r\n path: '/settings/application/alerts',\r\n name: 'Alerts',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelSettingsApplicationSettings,\r\n },\r\n {\r\n path: '/settings/application/triptypes',\r\n name: 'Trip Types',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelSettingsApplicationSettings,\r\n },\r\n];\r\n\r\nexport default ApplicationSettingsRoutes;\r\n","import React from 'react';\r\n\r\nimport NavTabs from '../../../components/commons/NavTabs/NavTabs';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport Routes from '../../../components/Routes/Routes';\r\nimport ApplicationSettingsRoutes from '../../../routes/ApplicationSettingsRoutes';\r\n\r\nconst ApplicationSettingsPage: React.FC = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ApplicationSettingsPage;\r\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgDragAndDrop(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 38,\n height: 38,\n viewBox: \"0 0 38 38\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.5 3V3C10.672 3 10 2.328 10 1.5V1.5C10 0.672 10.672 0 11.5 0V0C12.328 0 13 0.672 13 1.5V1.5C13 2.328 12.328 3 11.5 3Z\",\n fill: \"#3D64D8\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.5 3V3C16.672 3 16 2.328 16 1.5V1.5C16 0.672 16.672 0 17.5 0V0C18.328 0 19 0.672 19 1.5V1.5C19 2.328 18.328 3 17.5 3Z\",\n fill: \"#3D64D8\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.5 23.5C1.5 25.709 3.291 27.5 5.5 27.5\",\n stroke: \"#3D64D8\",\n strokeWidth: 3,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.5 19V19C0.672 19 0 18.328 0 17.5V17.5C0 16.672 0.672 16 1.5 16V16C2.328 16 3 16.672 3 17.5V17.5C3 18.328 2.328 19 1.5 19Z\",\n fill: \"#3D64D8\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.5 13V13C0.672 13 0 12.328 0 11.5V11.5C0 10.672 0.672 10 1.5 10V10C2.328 10 3 10.672 3 11.5V11.5C3 12.328 2.328 13 1.5 13Z\",\n fill: \"#3D64D8\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.5 1.5C3.291 1.5 1.5 3.291 1.5 5.5\",\n stroke: \"#3D64D8\",\n strokeWidth: 3,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.5 9H32.5C35.533 9 38 11.467 38 14.5V32.5C38 35.533 35.533 38 32.5 38H14.5C11.467 38 9 35.533 9 32.5V14.5C9 11.467 11.467 9 14.5 9ZM26.803 24.764C26.969 24.745 27.109 24.631 27.161 24.472C27.213 24.315 27.168 24.141 27.046 24.027L20.721 18.115C20.596 17.999 20.414 17.967 20.257 18.035C20.101 18.102 20 18.257 20 18.427V27.001C20 27.166 20.095 27.316 20.243 27.387C20.391 27.459 20.568 27.438 20.697 27.335L22.444 25.937L24.095 29.74C24.189 29.957 24.442 30.057 24.659 29.962L25.97 29.393C26.187 29.299 26.287 29.046 26.192 28.829L25.322 26.825L24.541 25.026L26.803 24.764Z\",\n fill: \"#3D64D8\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.5 5.5C27.5 3.291 25.709 1.5 23.5 1.5\",\n stroke: \"#3D64D8\",\n strokeWidth: 3,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDragAndDrop);\nexport default __webpack_public_path__ + \"static/media/dragAndDrop.1da0893f.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgPreview(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 11,\n viewBox: \"0 0 20 11\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.8372 4.65144L19.8579 4.67245C20.0474 4.90397 20.0474 5.24073 19.8579 5.4512L19.8372 5.47221C19.4622 5.85383 15.2663 10.1237 10.0079 10.1237C4.74954 10.1237 0.553618 5.85385 0.178589 5.47222L0.157853 5.4512C-0.0526177 5.24073 -0.0526177 4.88293 0.157853 4.67245L0.178588 4.65144C0.55361 4.26981 4.74953 0 10.0079 0C15.2663 0 19.4622 4.26983 19.8372 4.65144ZM6.45095 5.07234C6.45095 7.02972 8.05053 8.6293 10.0079 8.6293C11.9653 8.6293 13.5649 7.02972 13.5649 5.07234C13.5649 3.11496 11.9653 1.51538 10.0079 1.51538C8.05053 1.51538 6.45095 3.09391 6.45095 5.07234ZM6.64036 1.78903C5.81952 2.63091 5.31439 3.7885 5.31439 5.07237C5.31439 6.3352 5.81952 7.49279 6.64036 8.35572C4.1568 7.4507 2.22047 5.83007 1.42068 5.07237C2.22047 4.31468 4.1568 2.69405 6.64036 1.78903ZM14.7014 5.05133C14.7014 6.3352 14.1963 7.49279 13.3754 8.33467C15.859 7.42965 17.7953 5.80902 18.5951 5.07237C17.7953 4.31468 15.838 2.69405 13.3754 1.78903C14.1963 2.63091 14.7014 3.76745 14.7014 5.05133Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.0079 2.86243C9.71326 2.86243 9.4186 2.92557 9.16603 3.0308C9.35546 3.17813 9.46069 3.40965 9.46069 3.68326C9.46069 4.1463 9.08185 4.52515 8.61881 4.52515C8.36625 4.52515 8.13473 4.39886 7.96635 4.23049C7.86111 4.48305 7.79797 4.77771 7.79797 5.07237C7.79797 6.2931 8.78719 7.26127 9.98687 7.26127C11.2076 7.26127 12.1758 6.27206 12.1758 5.07237C12.1758 3.87269 11.2286 2.86243 10.0079 2.86243Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPreview);\nexport default __webpack_public_path__ + \"static/media/preview.88f5c53a.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nimport Button, {ButtonProps} from '@material-ui/core/Button';\r\n\r\nimport {ReactComponent as PreviewIcon} from '../../../assets/icons/preview.svg';\r\n\r\ninterface IPreviewButtonProps extends ButtonProps {}\r\n\r\nconst PreviewButton: React.FC = ({\r\n fullWidth,\r\n children,\r\n ...props\r\n}) => {\r\n return (\r\n }\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default PreviewButton;\r\n","import React from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport IETicketTemplateSection from '../../models/IEticketTemplateSection';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport ReactQuill from '../commons/ReactQuill/ReactQuill';\r\nimport TextField from '../commons/TextField/TextField';\r\n\r\ninterface ETicketTemplateSectionFormProps {\r\n form: UseFormMethods;\r\n defaultValue: IETicketTemplateSection;\r\n}\r\n\r\nconst ETicketTemplateSectionForm: React.FC = ({\r\n form,\r\n defaultValue,\r\n}) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ETicketTemplateSectionForm;\r\n","import IETicketTemplate from '../models/IETicketTemplate';\r\nimport IETicketTemplateSection from '../models/IEticketTemplateSection';\r\nimport {requests} from './ApiService';\r\n\r\nconst API_ENDPOINT = 'api/ETicketTemplate';\r\n\r\nconst ETicketTemplateService = {\r\n get: (): Promise => requests.get(`${API_ENDPOINT}/`),\r\n update: (template: IETicketTemplate): Promise =>\r\n requests.put(`${API_ENDPOINT}`, template),\r\n createSection: (\r\n section: IETicketTemplateSection\r\n ): Promise =>\r\n requests.post(`${API_ENDPOINT}/section`, section),\r\n updateSection: (\r\n section: IETicketTemplateSection\r\n ): Promise =>\r\n requests.put(`${API_ENDPOINT}/section`, section),\r\n deleteSection: (sectionId: number): Promise =>\r\n requests.delete(`${API_ENDPOINT}/section/${sectionId}`),\r\n updateSectionsOrder: (\r\n sections: IETicketTemplateSection[]\r\n ): Promise =>\r\n requests.put(`${API_ENDPOINT}/section/order`, sections),\r\n preview: (): Promise =>\r\n requests.get(`${API_ENDPOINT}/preview`, { responseType: 'blob' }),\r\n saveNewImage: (formData: FormData): Promise => {\r\n return requests.post(`${API_ENDPOINT}/image`, formData, {\r\n headers: {\r\n 'content-type': 'multipart/form-data',\r\n },\r\n });\r\n },\r\n};\r\nexport default ETicketTemplateService;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {\r\n DragDropContext,\r\n Draggable,\r\n DraggableProvided,\r\n DraggableStateSnapshot,\r\n Droppable,\r\n DroppableProvided,\r\n DropResult,\r\n} from 'react-beautiful-dnd';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport RootRef from '@material-ui/core/RootRef';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../../assets/icons/deleteBin.svg';\r\nimport {ReactComponent as DragAndDropIcon} from '../../../../assets/icons/dragAndDrop.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../assets/icons/edit.svg';\r\nimport AddButton from '../../../../components/commons/AddButton/AddButton';\r\nimport Dialog from '../../../../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../../../../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../../components/commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../../components/commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../../components/commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../../components/commons/Dialog/DialogTitle';\r\nimport Drawer from '../../../../components/commons/Drawer/Drawer';\r\nimport DrawerActions from '../../../../components/commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../../../../components/commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../../../../components/commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../../../../components/commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../../../../components/commons/Drawer/DrawerTitle';\r\nimport FormControl from '../../../../components/commons/FormControl/FormControl';\r\nimport PreviewButton from '../../../../components/commons/PreviewButton/PreviewButton';\r\nimport ReactQuill from '../../../../components/commons/ReactQuill/ReactQuill';\r\nimport ETicketTemplateSectionForm from '../../../../components/ETicketTemplateSectionForm/ETicketTemplateSectionForm';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport {useModal} from '../../../../hooks/useModal';\r\nimport useSnackbar from '../../../../hooks/useSnackbar';\r\nimport IETicketTemplate from '../../../../models/IETicketTemplate';\r\nimport IETicketTemplateSection from '../../../../models/IEticketTemplateSection';\r\nimport ETicketTemplateService from '../../../../services/ETicketTemplateService';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\nimport {MessageType} from '../../../../utils/MessageType';\r\nimport formatString from '../../../../utils/Strings';\r\nimport styles from './ETicketTemplatePage.module.scss';\r\n\r\nexport const ETicketTemplateSectionFormSchema = yup.object().shape({\r\n title: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(200, formatString(Constants.validation.max, 200)),\r\n content: yup\r\n .string()\r\n .test(\r\n 'test-content',\r\n Constants.validation.required,\r\n (value: any) => value?.replace(/<[^>]*>/g, '') !== ''\r\n )\r\n .required(Constants.validation.required),\r\n});\r\n\r\nexport const DefaultETicketTemplateSection: IETicketTemplateSection = {\r\n eTicketTemplateSectionId: 0,\r\n title: '',\r\n content: '',\r\n order: 99,\r\n};\r\n\r\nconst ETicketTemplatePage: React.FC = () => {\r\n const [template, setTemplate] = useState(null);\r\n const [selectedSection, setSelectedSection] =\r\n useState(null);\r\n const formSection = useForm({\r\n mode: 'all',\r\n resolver: yupResolver(ETicketTemplateSectionFormSchema),\r\n });\r\n const {\r\n showModal: showDrawerTemplate,\r\n hideModal: hideDrawerTemplate,\r\n isVisible: isVisibleDrawerTemplate,\r\n } = useModal();\r\n const [drawerTemplateTitle, setDrawerTemplateTitle] = useState('');\r\n const {\r\n showModal: showDrawerSection,\r\n hideModal: hideDrawerSection,\r\n isVisible: isVisibleDrawerSection,\r\n } = useModal();\r\n const {\r\n showModal: showConfirmationDialog,\r\n hideModal: hideConfirmationDialog,\r\n isVisible: isVisibleConfirmationDialog,\r\n } = useModal();\r\n const { addMessage } = useSnackbar();\r\n const [templateSection, setTemplateSection] = useState('');\r\n const [templateValue, setTemplateValue] = useState('');\r\n const [previousTemplateValue, setPreviousTemplateValue] = useState('');\r\n const [isSaveSectionDisabled, setIsSaveSectionDisabled] = useState(true);\r\n const [isSaveTemplateDisabled, setIsSaveTemplateDisabled] = useState(true);\r\n\r\n useEffect(() => {\r\n fetchETicketTemplate().catch(console.error);\r\n }, []);\r\n\r\n const handleChangeTemplateValue = (content: string) => {\r\n setTemplateValue(content);\r\n };\r\n\r\n const onDragEnd = (result: DropResult) => {\r\n const { source, destination, reason } = result;\r\n\r\n // dropped outside the list\r\n if (!destination || reason === 'CANCEL') {\r\n return;\r\n }\r\n\r\n if (\r\n destination.droppableId === source.droppableId &&\r\n destination.index === source.index\r\n ) {\r\n return;\r\n }\r\n\r\n if (template === null || template.sections.length === 0) {\r\n return;\r\n }\r\n\r\n const sections: IETicketTemplateSection[] = Object.assign(\r\n [],\r\n template.sections\r\n );\r\n const section = template.sections[source.index];\r\n sections.splice(source.index, 1);\r\n sections.splice(destination.index, 0, section);\r\n\r\n setTemplate({ ...template, sections: sections });\r\n\r\n sections.forEach((section: IETicketTemplateSection, i: number) => {\r\n section.order = i + 1;\r\n });\r\n\r\n ETicketTemplateService.updateSectionsOrder(sections)\r\n .then((result) => {\r\n if (result) {\r\n fetchETicketTemplate().catch(console.error);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const getItemStyle = (isDragging: boolean, draggableStyle: any) => ({\r\n // styles we need to apply on draggables\r\n ...draggableStyle,\r\n\r\n ...(isDragging && {\r\n background: 'rgb(235,235,235)',\r\n }),\r\n });\r\n\r\n const deleteSection = (section: IETicketTemplateSection) => {\r\n setSelectedSection(section);\r\n showConfirmationDialog();\r\n };\r\n\r\n const createSection = () => {\r\n setSelectedSection(null);\r\n showDrawerSection();\r\n };\r\n\r\n const handleConfirmDeleteSection = () => {\r\n if (template === null || selectedSection === null) return;\r\n\r\n ETicketTemplateService.deleteSection(\r\n selectedSection.eTicketTemplateSectionId\r\n )\r\n .then((result) => {\r\n if (result) {\r\n addMessage(\r\n Constants.messages.success.dataDeleted,\r\n MessageType.Success\r\n );\r\n fetchETicketTemplate().catch(console.error);\r\n } else {\r\n addMessage(Constants.messages.error.deletingData);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n\r\n hideConfirmationDialog();\r\n };\r\n\r\n const handleSubmitTemplate = () => {\r\n let templatePromise: Promise;\r\n if (templateSection === 'Itinerary') {\r\n templatePromise = ETicketTemplateService.update({\r\n ...template!,\r\n itinerary: templateValue,\r\n });\r\n } else {\r\n templatePromise = ETicketTemplateService.update({\r\n ...template!,\r\n travelOfficeAddress: templateValue,\r\n });\r\n }\r\n\r\n templatePromise\r\n .then((result) => {\r\n if (result) {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n fetchETicketTemplate().catch(console.error);\r\n } else {\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n hideDrawerTemplate();\r\n };\r\n\r\n const handleSubmitSection = (section: IETicketTemplateSection) => {\r\n submitETicketTemplateSection(\r\n selectedSection\r\n ? section\r\n : { ...DefaultETicketTemplateSection, ...section }\r\n );\r\n hideDrawerSection();\r\n };\r\n\r\n const submitETicketTemplateSection = (section: IETicketTemplateSection) => {\r\n let sectionPromise: Promise;\r\n if (selectedSection) {\r\n sectionPromise = ETicketTemplateService.updateSection({\r\n ...selectedSection,\r\n ...section,\r\n });\r\n } else {\r\n sectionPromise = ETicketTemplateService.createSection(section);\r\n }\r\n\r\n sectionPromise\r\n .then((result) => {\r\n if (result) {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n fetchETicketTemplate().catch(console.error);\r\n } else {\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const fetchETicketTemplate = async () => {\r\n ETicketTemplateService.get()\r\n .then((result) => setTemplate(result))\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const openPreview = () => {\r\n ETicketTemplateService.preview()\r\n .then((result) => {\r\n if (result && result.size > 0) {\r\n const file = new File([result], 'eTicketPreview.pdf', {\r\n type: 'application/pdf',\r\n });\r\n const fileURL = window.URL.createObjectURL(file);\r\n let tab = window.open();\r\n if (tab !== null) {\r\n tab.location.href = fileURL;\r\n }\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n useEffect(() => {\r\n setIsSaveTemplateDisabled(\r\n previousTemplateValue === templateValue ||\r\n templateValue?.replace(/<[^>]*>/g, '').length === 0\r\n );\r\n }, [previousTemplateValue, templateValue]);\r\n\r\n useEffect(() => {\r\n setIsSaveSectionDisabled(\r\n !formSection.formState.isDirty || !formSection.formState.isValid\r\n );\r\n }, [formSection.formState]);\r\n return (\r\n <>\r\n \r\n \r\n \r\n Preview eTicket\r\n \r\n \r\n {template && (\r\n \r\n \r\n Travel Office address\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n {\r\n setTemplateValue(template.travelOfficeAddress);\r\n setPreviousTemplateValue(template.travelOfficeAddress);\r\n setTemplateSection('TravelOfficeAddress');\r\n setDrawerTemplateTitle('Travel Office address');\r\n showDrawerTemplate();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n Itinerary\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n {\r\n setTemplateValue(template.itinerary);\r\n setPreviousTemplateValue(template.itinerary);\r\n setTemplateSection('Itinerary');\r\n setDrawerTemplateTitle('Itinerary');\r\n showDrawerTemplate();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {template && template.sections.length > 0 && (\r\n \r\n \r\n {(provided: DroppableProvided) => (\r\n \r\n \r\n \r\n Important information\r\n \r\n \r\n \r\n Add a Section\r\n \r\n \r\n {template.sections.map((section, index) => (\r\n \r\n {(\r\n providedDraggable: DraggableProvided,\r\n snapshotDraggable: DraggableStateSnapshot\r\n ) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n {\r\n setSelectedSection(section);\r\n showDrawerSection();\r\n }}\r\n >\r\n \r\n \r\n {\r\n deleteSection(section);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ))}\r\n {provided.placeholder}\r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n Modify{' '}\r\n {drawerTemplateTitle.length > 0 ? drawerTemplateTitle : 'template'}\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n {templateSection === 'Itinerary' && (\r\n Tags: {template?.tags.join(',')}\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n {selectedSection ? 'Modify Section' : 'Add a Section'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n You are going to delete section\r\n \r\n {`${selectedSection?.title}`}\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n {\r\n setSelectedSection(null);\r\n hideConfirmationDialog();\r\n }}\r\n />\r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ETicketTemplatePage;\r\n","import { tz } from 'moment-timezone';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport { Box, Button, LinearProgress, Link } from '@material-ui/core';\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\nimport Typography from '@material-ui/core/Typography/Typography';\r\n\r\nimport { useUserContext } from '../../../context/User/UserContext';\r\nimport useCountries from '../../../hooks/useCountries';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IAirportGeneralInfo from '../../../models/IAirportGeneralInfo';\r\nimport IOption from '../../../models/IOption';\r\nimport AirportService from '../../../services/AirportService';\r\nimport baseStyle from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport { MessageType } from '../../../utils/MessageType';\r\nimport PermissionsList from '../../../utils/PermissionsList';\r\nimport formatString from '../../../utils/Strings';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport Searchcomplete from '../../commons/Searchcomplete/Searchcomplete';\r\nimport Select from '../../commons/Select/Select';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport { CheckboxControlled } from '../../commons/Checkbox/Checkbox';\r\n\r\nexport interface IAirportGeneralInfoProps {\r\n code: string;\r\n generalInfo: IAirportGeneralInfo;\r\n refreshData: () => void;\r\n}\r\n\r\ninterface IGeneralInfoForm {\r\n name: string;\r\n cty: string;\r\n ctry: { value: string; label: string } | null;\r\n area?: string;\r\n timezone: IOption | null;\r\n isUsTerritory: boolean;\r\n}\r\n\r\nconst optionSchema = yup.object().shape({\r\n value: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n});\r\n\r\nconst AirportGeneralFormSchema = yup.object().shape({\r\n name: yup\r\n .string()\r\n .max(100, formatString(Constants.validation.max, 100))\r\n .required(Constants.validation.required),\r\n cty: yup\r\n .string()\r\n .max(100, formatString(Constants.validation.max, 100))\r\n .required(Constants.validation.required),\r\n ctry: optionSchema.typeError(Constants.validation.required),\r\n area: yup\r\n .string()\r\n .max(100, formatString(Constants.validation.max, 100))\r\n .required(Constants.validation.required),\r\n timezone: optionSchema.typeError(Constants.validation.required),\r\n});\r\n\r\nconst AirportGeneralInfo: React.FC = ({\r\n code,\r\n generalInfo,\r\n refreshData,\r\n }) => {\r\n const [readonly, setReadonly] = useState(true);\r\n const {addMessage} = useSnackbar();\r\n const countries = useCountries();\r\n const {permissions} = useUserContext();\r\n\r\n useEffect(() => {\r\n setReadonly(true);\r\n }, [generalInfo]);\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(AirportGeneralFormSchema),\r\n });\r\n\r\n const handleSubmit = (generalInfo: IGeneralInfoForm) => {\r\n if (generalInfo.ctry && generalInfo.area && generalInfo.timezone) {\r\n AirportService.updateGeneralInfo(code.toUpperCase(), {\r\n name: generalInfo.name,\r\n city: generalInfo.cty,\r\n countryCode: generalInfo.ctry.value,\r\n country: generalInfo.ctry.label,\r\n area: generalInfo.area,\r\n timeZone: generalInfo.timezone?.value,\r\n isUsTerritory: generalInfo.isUsTerritory\r\n })\r\n .then((result) => {\r\n if (result) {\r\n addMessage(\r\n Constants.messages.success.dataSaved,\r\n MessageType.Success\r\n );\r\n refreshData();\r\n } else {\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n }\r\n };\r\n\r\n const cancelEdit = () => {\r\n setReadonly(true);\r\n };\r\n\r\n return (\r\n <>\r\n {!!countries ? (\r\n <>\r\n \r\n \r\n General Information\r\n \r\n {readonly &&\r\n permissions.includes(\r\n PermissionsList.eTravelSettingsAirportAdd\r\n ) && (\r\n setReadonly(false)}\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n Edit general information\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {readonly ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {readonly ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {readonly ? (\r\n \r\n ) : (\r\n ({\r\n value: country.countryCode,\r\n label: country.countryName,\r\n }))}\r\n control={form.control}\r\n autoComplete={false}\r\n defaultValue={{\r\n value: generalInfo.countryCode,\r\n label: generalInfo.country,\r\n }}\r\n margin=\"normal\"\r\n placeholder=\"Sweden\"\r\n error={!!form.errors.ctry}\r\n errorMessage={\r\n form.errors.ctry\r\n ? (form.errors.ctry as any)?.message\r\n : ''\r\n }\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {readonly ? (\r\n \r\n ) : (\r\n ({\r\n value: area,\r\n label: area,\r\n }))}\r\n error={!!form.errors.area}\r\n errorMessage={\r\n form.errors.area ? form.errors.area.message : ''\r\n }\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {readonly ? (\r\n \r\n ) : (\r\n ({\r\n value: timezone,\r\n label: timezone,\r\n }))}\r\n control={form.control}\r\n autoComplete={false}\r\n defaultValue={{\r\n value: generalInfo.timeZone,\r\n label: generalInfo.timeZone,\r\n }}\r\n margin=\"normal\"\r\n placeholder=\"CET\"\r\n error={!!form.errors.timezone}\r\n errorMessage={\r\n form.errors.timezone\r\n ? (form.errors.timezone as any)?.message\r\n : ''\r\n }\r\n />\r\n )}\r\n \r\n \r\n \r\n {readonly ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {!readonly && (\r\n \r\n \r\n \r\n \r\n {Constants.buttons.saveChanges}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AirportGeneralInfo;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Box, Button, InputAdornment} from '@material-ui/core';\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\nimport Link from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography/Typography';\r\n\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IAirportImmigrationInfo from '../../../models/IAirportImmigrationInfo';\r\nimport AirportService from '../../../services/AirportService';\r\nimport baseStyle from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport formatString from '../../../utils/Strings';\r\nimport {CheckboxControlled} from '../../commons/Checkbox/Checkbox';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport Select from '../../commons/Select/Select';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport styles from './AirportImmigrationInfo.module.scss';\r\n\r\nexport interface IAirportImmigrationInfoProps {\r\n immigrationInfo: IAirportImmigrationInfo;\r\n code: string;\r\n refreshData: () => void;\r\n}\r\n\r\nexport const AirportImmigrationInfoFormSchema = yup.object().shape({\r\n passportEmail: yup\r\n .string()\r\n .max(150, formatString(Constants.validation.max, 150))\r\n .matches(\r\n Constants.validation.emailMultipleRegex,\r\n Constants.validation.multipleEmail\r\n ),\r\n transitEmail: yup\r\n .string()\r\n .max(150, formatString(Constants.validation.max, 150))\r\n .matches(\r\n Constants.validation.emailMultipleRegex,\r\n Constants.validation.multipleEmail\r\n ),\r\n trafficEmail: yup\r\n .string()\r\n .max(150, formatString(Constants.validation.max, 150))\r\n .matches(\r\n Constants.validation.emailMultipleRegex,\r\n Constants.validation.multipleEmail\r\n ),\r\n passportToAndFrom: yup.boolean().required(),\r\n passportTransit: yup.boolean().required(),\r\n passportSendingRequirements: yup\r\n .number()\r\n .transform((v, o) => (o === '' ? null : v))\r\n .nullable(true),\r\n passportSendingRequirements2: yup\r\n .number()\r\n .transform((v, o) => (o === '' ? null : v))\r\n .nullable(true),\r\n immigrationInformation: yup.boolean().required(),\r\n immigrationSendingRequirements: yup\r\n .number()\r\n .transform((v, o) => (o === '' ? null : v))\r\n .nullable(true),\r\n immigrationSendingRequirements2: yup\r\n .number()\r\n .transform((v, o) => (o === '' ? null : v))\r\n .nullable(true),\r\n immigrationEmail: yup\r\n .string()\r\n .max(150, formatString(Constants.validation.max, 150))\r\n .matches(\r\n Constants.validation.emailMultipleRegex,\r\n Constants.validation.multipleEmail\r\n ),\r\n transitInformation: yup.boolean().required(),\r\n transitSendingRequirements: yup\r\n .number()\r\n .transform((v, o) => (o === '' ? null : v))\r\n .nullable(),\r\n transitSendingRequirements2: yup\r\n .number()\r\n .transform((v, o) => (o === '' ? null : v))\r\n .nullable(),\r\n trafficRights: yup.boolean().required(),\r\n trafficSendingRequirements: yup\r\n .number()\r\n .transform((v, o) => (o === '' ? null : v))\r\n .nullable(),\r\n trafficSendingRequirements2: yup\r\n .number()\r\n .transform((v, o) => (o === '' ? null : v))\r\n .nullable(),\r\n specialFees: yup.boolean().required(),\r\n amount: yup.number(),\r\n currency: yup\r\n .string()\r\n .when('specialFees', {\r\n is: true,\r\n then: yup.string().required(Constants.validation.required),\r\n otherwise: yup.string().nullable(true),\r\n })\r\n .min(3, formatString(Constants.validation.min, 3))\r\n .max(3, formatString(Constants.validation.max, 3)),\r\n comments: yup.string().max(500, formatString(Constants.validation.max, 500)),\r\n immigrationComments: yup\r\n .string()\r\n .max(500, formatString(Constants.validation.max, 500)),\r\n});\r\n\r\nconst AirportImmigrationInfo: React.FC = ({\r\n immigrationInfo,\r\n code,\r\n refreshData,\r\n}) => {\r\n const [readonly, setReadOnly] = useState(true);\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(AirportImmigrationInfoFormSchema),\r\n defaultValues: {\r\n passportToAndFrom: immigrationInfo.passportToAndFrom,\r\n passportTransit: immigrationInfo.passportTransit,\r\n immigrationInformation: immigrationInfo.immigrationInformation,\r\n transitInformation: immigrationInfo.transitInformation,\r\n trafficRights: immigrationInfo.trafficRights,\r\n specialFees: immigrationInfo.specialFees,\r\n amount: immigrationInfo.amount,\r\n },\r\n });\r\n\r\n useEffect(() => {\r\n setReadOnly(true);\r\n form.reset(immigrationInfo);\r\n }, [immigrationInfo, code]);\r\n\r\n const handleSubmit = (form: IAirportImmigrationInfo) => {\r\n AirportService.updateImmigrationInfo(code, { ...immigrationInfo, ...form })\r\n .then((result) => {\r\n if (result) {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n refreshData();\r\n } else {\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const cancelEdit = () => {\r\n setReadOnly(true);\r\n form.reset(immigrationInfo);\r\n };\r\n\r\n const numericOnly = (e: any) => {\r\n // restrict e,+,-,E characters in input type number\r\n const charCode = e.which ? e.which : e.keyCode;\r\n if (\r\n charCode === 101 ||\r\n charCode === 69 ||\r\n charCode === 45 ||\r\n charCode === 43\r\n ) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n const { addMessage } = useSnackbar();\r\n\r\n return (\r\n <>\r\n \r\n \r\n Immigration\r\n \r\n {readonly && (\r\n setReadOnly(false)}\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n Edit immigration data\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n Passport requirements\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n numericOnly(e)}\r\n className={baseStyle.inputNumber}\r\n readonly={readonly}\r\n name=\"passportSendingRequirements\"\r\n inputRef={form.register}\r\n error={!!form.errors.passportSendingRequirements}\r\n helperText={\r\n form.errors.passportSendingRequirements\r\n ? form.errors.passportSendingRequirements.message\r\n : ''\r\n }\r\n InputProps={{\r\n readOnly: readonly,\r\n endAdornment: (\r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n numericOnly(e)}\r\n className={baseStyle.inputNumber}\r\n readonly={readonly}\r\n name=\"passportSendingRequirements2\"\r\n inputRef={form.register}\r\n error={!!form.errors.passportSendingRequirements2}\r\n helperText={\r\n form.errors.passportSendingRequirements2\r\n ? form.errors.passportSendingRequirements2.message\r\n : ''\r\n }\r\n InputProps={{\r\n readOnly: readonly,\r\n endAdornment: (\r\n \r\n Hours before departure\r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Immigration\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n numericOnly(e)}\r\n className={baseStyle.inputNumber}\r\n readonly={readonly}\r\n name=\"immigrationSendingRequirements\"\r\n inputRef={form.register}\r\n error={!!form.errors.immigrationSendingRequirements}\r\n helperText={\r\n form.errors.immigrationSendingRequirements\r\n ? form.errors.immigrationSendingRequirements.message\r\n : ''\r\n }\r\n InputProps={{\r\n readOnly: readonly,\r\n endAdornment: (\r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n numericOnly(e)}\r\n className={baseStyle.inputNumber}\r\n readonly={readonly}\r\n name=\"immigrationSendingRequirements2\"\r\n inputRef={form.register}\r\n error={!!form.errors.immigrationSendingRequirements2}\r\n helperText={\r\n form.errors.immigrationSendingRequirements2\r\n ? form.errors.immigrationSendingRequirements2.message\r\n : ''\r\n }\r\n InputProps={{\r\n readOnly: readonly,\r\n endAdornment: (\r\n \r\n Hours before departure\r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Transit\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n numericOnly(e)}\r\n className={baseStyle.inputNumber}\r\n readonly={readonly}\r\n name=\"transitSendingRequirements\"\r\n inputRef={form.register}\r\n error={!!form.errors.transitSendingRequirements}\r\n helperText={\r\n form.errors.transitSendingRequirements\r\n ? form.errors.transitSendingRequirements.message\r\n : ''\r\n }\r\n InputProps={{\r\n readOnly: readonly,\r\n endAdornment: (\r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n numericOnly(e)}\r\n className={baseStyle.inputNumber}\r\n readonly={readonly}\r\n name=\"transitSendingRequirements2\"\r\n inputRef={form.register}\r\n error={!!form.errors.transitSendingRequirements2}\r\n helperText={\r\n form.errors.transitSendingRequirements2\r\n ? form.errors.transitSendingRequirements2.message\r\n : ''\r\n }\r\n InputProps={{\r\n readOnly: readonly,\r\n endAdornment: (\r\n \r\n Hours before departure\r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Traffic\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n numericOnly(e)}\r\n className={baseStyle.inputNumber}\r\n readonly={readonly}\r\n name=\"trafficSendingRequirements\"\r\n inputRef={form.register}\r\n error={!!form.errors.trafficSendingRequirements}\r\n helperText={\r\n form.errors.trafficSendingRequirements\r\n ? form.errors.trafficSendingRequirements.message\r\n : ''\r\n }\r\n InputProps={{\r\n readOnly: readonly,\r\n endAdornment: (\r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n numericOnly(e)}\r\n className={baseStyle.inputNumber}\r\n readonly={readonly}\r\n name=\"trafficSendingRequirements2\"\r\n inputRef={form.register}\r\n error={!!form.errors.trafficSendingRequirements2}\r\n helperText={\r\n form.errors.trafficSendingRequirements2\r\n ? form.errors.trafficSendingRequirements2.message\r\n : ''\r\n }\r\n InputProps={{\r\n readOnly: readonly,\r\n endAdornment: (\r\n \r\n Hours before departure\r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Fee\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n numericOnly(e)}\r\n className={baseStyle.inputNumber}\r\n readonly={readonly}\r\n name=\"amount\"\r\n inputRef={form.register}\r\n error={!!form.errors.amount}\r\n helperText={\r\n form.errors.amount ? form.errors.amount.message : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n {readonly ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Immigration Comments\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {!readonly && (\r\n \r\n \r\n \r\n \r\n {Constants.buttons.saveChanges}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AirportImmigrationInfo;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Box, Button, Grid, Link, Typography} from '@material-ui/core';\r\n\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IAirportGeneralComments from '../../../models/IAirportGeneralComments';\r\nimport AirportService from '../../../services/AirportService';\r\nimport baseStyle from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport formatString from '../../../utils/Strings';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport TextField from '../../commons/TextField/TextField';\r\n\r\nexport interface IAirportGeneralCommentsProps {\r\n generalComments: IAirportGeneralComments;\r\n code: string;\r\n refreshData: () => void;\r\n}\r\n\r\nexport const AirportGeneralCommentsFormSchema = yup.object().shape({\r\n comments: yup.string().max(500, formatString(Constants.validation.max, 500)),\r\n});\r\n\r\nconst AirportGeneralComments: React.FC = ({\r\n generalComments,\r\n code,\r\n refreshData,\r\n}) => {\r\n const [readonly, setReadOnly] = useState(false);\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(AirportGeneralCommentsFormSchema),\r\n });\r\n\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n setReadOnly(true);\r\n form.reset(generalComments);\r\n }, [generalComments, code]);\r\n\r\n const cancelEdit = () => {\r\n setReadOnly(true);\r\n form.reset(generalComments);\r\n };\r\n\r\n const handleSubmit = (form: IAirportGeneralComments) => {\r\n AirportService.updateGeneralComments(code, { ...generalComments, ...form })\r\n .then((result) => {\r\n if (result) {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n refreshData();\r\n } else {\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n General Comments\r\n \r\n {readonly && (\r\n setReadOnly(false)}\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n Edit general comments\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {!readonly && (\r\n \r\n \r\n \r\n \r\n {Constants.buttons.saveChanges}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AirportGeneralComments;\r\n","import {tz} from 'moment-timezone';\r\nimport React from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\n\r\nimport {Grid} from '@material-ui/core';\r\n\r\nimport useCountries from '../../../hooks/useCountries';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport FormControl from '../../commons/FormControl/FormControl';\r\nimport Searchcomplete from '../../commons/Searchcomplete/Searchcomplete';\r\nimport Select from '../../commons/Select/Select';\r\nimport TextField from '../../commons/TextField/TextField';\r\nimport {IAirportForm} from './AirportDrawer';\r\n\r\nexport interface AddAirportFormProps {\r\n form: UseFormMethods;\r\n}\r\n\r\nconst AddAirportForm: React.FC = ({ form }) => {\r\n const countries = useCountries();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n ({\r\n value: country.countryCode,\r\n label: country.countryName,\r\n }))}\r\n control={form.control}\r\n autoComplete={false}\r\n defaultValue={null}\r\n margin=\"normal\"\r\n placeholder=\"Sweden\"\r\n error={!!form.errors.ctry}\r\n errorMessage={\r\n form.errors.ctry ? (form.errors.ctry as any)?.message : ''\r\n }\r\n />\r\n \r\n \r\n\r\n \r\n \r\n ({\r\n value: area,\r\n label: area,\r\n }))}\r\n error={!!form.errors.area}\r\n errorMessage={form.errors.area ? form.errors.area.message : ''}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n ({ value: timezone, label: timezone }))}\r\n control={form.control}\r\n autoComplete={false}\r\n defaultValue={null}\r\n margin=\"normal\"\r\n placeholder=\"CET\"\r\n error={!!form.errors.timezone}\r\n errorMessage={\r\n form.errors.timezone\r\n ? (form.errors.timezone as any)?.message\r\n : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AddAirportForm;\r\n","import React from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Grid} from '@material-ui/core';\r\n\r\nimport {useAirportsContext, useAirportsDispatchContext,} from '../../../context/AirportsContext/AirportsProvider';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IOption from '../../../models/IOption';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport formatString from '../../../utils/Strings';\r\nimport Drawer from '../../commons/Drawer/Drawer';\r\nimport DrawerActions from '../../commons/Drawer/DrawerActions';\r\nimport DrawerButton from '../../commons/Drawer/DrawerButton';\r\nimport DrawerCancelButton from '../../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../../commons/Drawer/DrawerContent';\r\nimport DrawerTitle from '../../commons/Drawer/DrawerTitle';\r\nimport AddAirportForm from './AddAirportForm';\r\n\r\nexport interface IAirportForm {\r\n code: string;\r\n name: string;\r\n cty: string;\r\n ctry: { value: string; label: string } | null;\r\n area?: string;\r\n timezone: IOption | null;\r\n}\r\n\r\nconst optionSchema = yup.object().shape({\r\n value: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n});\r\n\r\nexport interface IAirportDrawerProps {\r\n isVisible: boolean;\r\n onClose: () => void;\r\n}\r\n\r\nconst AirportDrawer: React.FC = ({\r\n isVisible,\r\n onClose,\r\n}) => {\r\n const { addAirport } = useAirportsDispatchContext();\r\n const { updating, airports } = useAirportsContext();\r\n const { addMessage } = useSnackbar();\r\n\r\n const AirportFormSchema = yup.object().shape({\r\n code: yup\r\n .string()\r\n .min(3, formatString(Constants.validation.min, 3))\r\n .max(3, formatString(Constants.validation.max, 3))\r\n .required(Constants.validation.required)\r\n .test('duplicate_code', `The airport code already exists`, (val) =>\r\n airports.find((a) => a.code === val) ? false : true\r\n ),\r\n name: yup\r\n .string()\r\n .max(100, formatString(Constants.validation.max, 100))\r\n .required(Constants.validation.required),\r\n cty: yup\r\n .string()\r\n .max(100, formatString(Constants.validation.max, 100))\r\n .required(Constants.validation.required),\r\n ctry: optionSchema.typeError(Constants.validation.required),\r\n area: yup\r\n .string()\r\n .max(100, formatString(Constants.validation.max, 100))\r\n .required(Constants.validation.required),\r\n timezone: optionSchema.typeError(Constants.validation.required),\r\n });\r\n\r\n const handleSubmit = (data: IAirportForm) => {\r\n if (data.ctry && data.area && data.timezone) {\r\n addAirport({\r\n name: data.name,\r\n city: data.cty,\r\n countryCode: data.ctry.value,\r\n country: data.ctry.label,\r\n area: data.area,\r\n timeZone: data.timezone?.value,\r\n code: data.code.toUpperCase(),\r\n });\r\n } else addMessage(\"Couldn't create aiport - missing mandatory information\");\r\n };\r\n\r\n const form = useForm({\r\n resolver: yupResolver(AirportFormSchema),\r\n mode: 'onChange',\r\n });\r\n\r\n return (\r\n <>\r\n onClose()}>\r\n Add an Airport\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n onClose();\r\n }}\r\n />\r\n \r\n \r\n {\r\n onClose();\r\n }}\r\n text=\"VALIDATE\"\r\n loading={updating}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AirportDrawer;\r\n","import React, {useState} from 'react';\r\nimport {Link} from 'react-router-dom';\r\n\r\nimport {Box, LinearProgress, Typography} from '@material-ui/core';\r\nimport MuiLink from '@material-ui/core/Link';\r\n\r\nimport {ReactComponent as OkIcon} from '../../../../assets/icons/ok.svg';\r\nimport {ReactComponent as RejectedIcon} from '../../../../assets/icons/rejected.svg';\r\nimport {AirportDrawer} from '../../../../components/Airports';\r\nimport AddButton from '../../../../components/commons/AddButton/AddButton';\r\nimport Dialog from '../../../../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../../../../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../../components/commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../../components/commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../../components/commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../../components/commons/Dialog/DialogTitle';\r\nimport Table from '../../../../components/commons/Table/Table';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport {useAirportsContext, useAirportsDispatchContext,} from '../../../../context/AirportsContext/AirportsProvider';\r\nimport {useUserContext} from '../../../../context/User/UserContext';\r\nimport Constants from '../../../../utils/Constants';\r\nimport PermissionsList from '../../../../utils/PermissionsList';\r\nimport useComment from '../../../../hooks/useComment';\r\nimport {useModal} from '../../../../hooks/useModal';\r\n\r\nconst AirportsPage: React.FC = () => {\r\n const { airports, loading, loaded, selectedAirportToToggleActiveFlag } =\r\n useAirportsContext();\r\n const {\r\n updateComments,\r\n selectAirportToToggleActiveFlag,\r\n toggleActiveFlag,\r\n deleteAirport,\r\n } = useAirportsDispatchContext();\r\n const [drawerVisible, setDrawerVisible] = useState(false);\r\n\r\n const { permissions } = useUserContext();\r\n\r\n const {\r\n showModal: showConfirmation,\r\n hideModal: hideConfirmation,\r\n isVisible: isVisibleConfirmation,\r\n } = useModal();\r\n\r\n const [selectedAirport, setSelectedAirport] = useState();\r\n\r\n const handleDelete = (code: string) => {\r\n setSelectedAirport(code);\r\n showConfirmation();\r\n };\r\n\r\n const onConfirmDelete = () => {\r\n if (!selectedAirport) return;\r\n deleteAirport(selectedAirport);\r\n setSelectedAirport(undefined);\r\n hideConfirmation();\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n { Header: 'Name', accessor: 'name' },\r\n {\r\n Header: 'Code',\r\n accessor: 'code',\r\n },\r\n {\r\n Header: 'US Territory',\r\n accessor: 'isUsTerritory',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => {\r\n return (\r\n \r\n {row.original.isUsTerritory ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'Immigration Info',\r\n accessor: 'immigrationInfo',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => {\r\n return (\r\n \r\n {row.original.immigrationInformation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'Transit Info',\r\n accessor: 'transitInfo',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => {\r\n return (\r\n \r\n {row.original.transitInformation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'Traffic Rights',\r\n accessor: 'trafficRights',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => {\r\n return (\r\n \r\n {row.original.trafficRights ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: 'Comments',\r\n accessor: 'comments',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => {\r\n const { CommentIconWithDialog } = useComment({\r\n title: 'Airport comment',\r\n value: row.original.comments,\r\n numericalBadge: true,\r\n onSave: async (comment: string) => {\r\n await updateComments(row.original.code, comment);\r\n },\r\n });\r\n return ;\r\n },\r\n },\r\n {\r\n Header: '',\r\n accessor: 'activate',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n {\r\n selectAirportToToggleActiveFlag(row.original);\r\n }}\r\n >\r\n {row.original.isInactive ? 'Activate' : 'Deactivate'}\r\n \r\n \r\n ),\r\n width: '10%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'deleteKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n {\r\n handleDelete(row.original.code);\r\n }}\r\n >\r\n Delete\r\n \r\n \r\n ),\r\n width: '10%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n \r\n See more\r\n \r\n \r\n ),\r\n width: '10%',\r\n },\r\n ],\r\n []\r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Do you really want to delete the airport {selectedAirport}?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!loading && !!loaded ? (\r\n <>\r\n {permissions.includes(\r\n PermissionsList.eTravelSettingsAirportAdd\r\n ) && (\r\n \r\n setDrawerVisible(true)}\r\n >\r\n Add an Airport\r\n \r\n \r\n )}\r\n \r\n setDrawerVisible(false)}\r\n />\r\n selectAirportToToggleActiveFlag(undefined)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n \r\n You are going to{' '}\r\n {selectedAirportToToggleActiveFlag?.isInactive\r\n ? 'activate'\r\n : 'deactivate'}{' '}\r\n this airport?\r\n \r\n \r\n \r\n Are you sure?\r\n \r\n \r\n selectAirportToToggleActiveFlag(undefined)}\r\n />\r\n {selectedAirportToToggleActiveFlag && (\r\n \r\n toggleActiveFlag(\r\n selectedAirportToToggleActiveFlag.code,\r\n !selectedAirportToToggleActiveFlag.isInactive\r\n )\r\n }\r\n />\r\n )}\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AirportsPage;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useHistory, useParams} from 'react-router-dom';\r\n\r\nimport Link from '@material-ui/core/Link';\r\n\r\nimport {ReactComponent as BackIcon} from '../../../../assets/icons/back.svg';\r\nimport {AirportGeneralComments, AirportGeneralInfo,} from '../../../../components/Airports';\r\nimport AirportImmigrationInfo from '../../../../components/Airports/AirportImmigrationInfo/AirportImmigrationInfo';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport useSnackbar from '../../../../hooks/useSnackbar';\r\nimport IAirportDetails from '../../../../models/IAirportDetails';\r\nimport AirportService from '../../../../services/AirportService';\r\n\r\nexport interface IAirportDetailsPageProps {}\r\n\r\nconst AirportDetailsPage: React.FC = () => {\r\n const { code } = useParams<{ code: string }>();\r\n const { addMessage } = useSnackbar();\r\n const [airportDetails, setAirportDetails] = useState();\r\n const history = useHistory();\r\n useEffect(() => {\r\n fetchAirportDetails();\r\n }, []);\r\n\r\n const fetchAirportDetails = () => {\r\n AirportService.getAirportDetails(code)\r\n .then((result) => setAirportDetails(result))\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n return (\r\n <>\r\n history.goBack()}\r\n type=\"button\"\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n \r\n \r\n }\r\n title={`Airport Details - ${code}`}\r\n >\r\n {airportDetails && (\r\n <>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AirportDetailsPage;\r\n","import React, { RefObject, useRef } from 'react';\r\nimport { UseFormMethods } from 'react-hook-form';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport { useHelpPageContext } from '../../context/HelpPageProvider/HelpPageProvider';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IHelpPage from '../../models/IHelpPage';\r\nimport HelpPageService from '../../services/HelpPageService';\r\nimport Checkbox from '../commons/Checkbox/Checkbox';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport ReactQuill from '../commons/ReactQuill/ReactQuill';\r\nimport TextField from '../commons/TextField/TextField';\r\nimport styles from './HelpPageForm.module.scss';\r\n\r\nexport interface IHelpPageFormProps {\r\n form: UseFormMethods;\r\n defaultValue: IHelpPage;\r\n}\r\n\r\nconst {REACT_APP_API_BASE_URL} = process.env;\r\n\r\nconst HelpPageForm: React.FC = ({ form, defaultValue }) => {\r\n const {\r\n state: { roles },\r\n } = useHelpPageContext();\r\n const { addMessage } = useSnackbar();\r\n\r\n const quillRef: RefObject = useRef();\r\n\r\n const saveNewImage = async (formData: FormData): Promise => {\r\n return HelpPageService.saveNewImage(formData)\r\n .then((result) => {\r\n return `${REACT_APP_API_BASE_URL}${result}`;\r\n })\r\n .catch(() => {\r\n addMessage('An error occurred while saving the image...');\r\n return '';\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {roles?.map((role) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default HelpPageForm;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../../assets/icons/deleteBin.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../assets/icons/edit.svg';\r\nimport AddButton from '../../../../components/commons/AddButton/AddButton';\r\nimport Dialog from '../../../../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../../../../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../../components/commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../../components/commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../../components/commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../../components/commons/Dialog/DialogTitle';\r\nimport Drawer from '../../../../components/commons/Drawer/Drawer';\r\nimport DrawerActions from '../../../../components/commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../../../../components/commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../../../../components/commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../../../../components/commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../../../../components/commons/Drawer/DrawerTitle';\r\nimport Table from '../../../../components/commons/Table/Table';\r\nimport TableIconButton from '../../../../components/commons/TableIconButton/TableIconButton';\r\nimport HelpPageForm from '../../../../components/HelpPageForm/HelpPageForm';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport {useHelpPageContext} from '../../../../context/HelpPageProvider/HelpPageProvider';\r\nimport {HelpPageActionType} from '../../../../context/HelpPageProvider/HelpPageReducer';\r\nimport {useModal} from '../../../../hooks/useModal';\r\nimport IHelpPage from '../../../../models/IHelpPage';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\nimport isRequiredFieldMissing from '../../../../utils/Forms';\r\nimport formatString from '../../../../utils/Strings';\r\n\r\nexport const HelpPageFormSchema = yup.object().shape({\r\n name: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n content: yup.string().required(Constants.validation.required),\r\n});\r\n\r\nexport const DefaultHelpPage: IHelpPage = {\r\n helpPageId: 0,\r\n name: '',\r\n content: '',\r\n roles: [],\r\n};\r\n\r\nconst ListHelpPage: React.FC = () => {\r\n const { state, dispatch, submitHelpPage, deleteSelectedHelpPage } =\r\n useHelpPageContext();\r\n const {\r\n showModal: showDrawer,\r\n hideModal: hideDrawer,\r\n isVisible: isVisibleDrawer,\r\n } = useModal();\r\n const {\r\n showModal: showConfirmationDialog,\r\n hideModal: hideConfirmationDialog,\r\n isVisible: isVisibleConfirmationDialog,\r\n } = useModal();\r\n const form = useForm({\r\n resolver: yupResolver(HelpPageFormSchema),\r\n mode: 'onChange',\r\n });\r\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(true);\r\n\r\n useEffect(() => {\r\n let disabled =\r\n isRequiredFieldMissing(HelpPageFormSchema, form.getValues) ||\r\n !form.formState.isDirty;\r\n setIsSubmitDisabled(disabled);\r\n }, [form.formState.isValid, form.control, form.formState.isDirty]);\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Help Page ID',\r\n accessor: 'helpPageId',\r\n width: '23%',\r\n },\r\n {\r\n Header: 'Name',\r\n accessor: 'name',\r\n width: '65%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actions',\r\n Cell: ({ row }: any) => (\r\n \r\n handleEdit(row.original)}>\r\n \r\n \r\n \r\n handleDelete(row.original)}>\r\n \r\n \r\n \r\n \r\n ),\r\n width: '12%',\r\n disableSortBy: true,\r\n },\r\n ],\r\n []\r\n );\r\n\r\n const handleSubmit = (helpPage: IHelpPage) => {\r\n submitHelpPage(\r\n state.selectedHelpPage ? helpPage : { ...DefaultHelpPage, ...helpPage }\r\n );\r\n hideDrawer();\r\n };\r\n\r\n const handleConfirmDelete = () => {\r\n deleteSelectedHelpPage();\r\n hideConfirmationDialog();\r\n };\r\n\r\n const handleAdd = async () => {\r\n dispatch({ type: HelpPageActionType.SELECT_HELP_PAGE, payload: null });\r\n showDrawer();\r\n };\r\n\r\n const handleEdit = async (helpPage: IHelpPage) => {\r\n dispatch({ type: HelpPageActionType.SELECT_HELP_PAGE, payload: helpPage });\r\n showDrawer();\r\n };\r\n\r\n const handleDelete = async (helpPage: IHelpPage) => {\r\n dispatch({ type: HelpPageActionType.SELECT_HELP_PAGE, payload: helpPage });\r\n showConfirmationDialog();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Add a Help page\r\n \r\n \r\n {state.helpPages && state.helpPages.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {state.selectedHelpPage ? 'Modify Help page' : 'Add a Help page'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n hideDrawer()}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n You are going to delete help page\r\n \r\n {`${state.selectedHelpPage?.helpPageId} - ${state.selectedHelpPage?.name}`}\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n {\r\n dispatch({\r\n type: HelpPageActionType.SELECT_HELP_PAGE,\r\n payload: null,\r\n });\r\n hideConfirmationDialog();\r\n }}\r\n />\r\n handleConfirmDelete()}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ListHelpPage;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {Control} from 'react-hook-form';\r\n\r\nimport useDebounce from '../../../hooks/useDebounce';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport {IAutoCompleteProps} from '../AutoComplete/AutoComplete';\r\nimport Searchcomplete from '../Searchcomplete/Searchcomplete';\r\n\r\nexport interface IControlledAutoCompleteFetcherProps\r\n extends Omit {\r\n serviceFunction: (searchText: string) => Promise;\r\n makeOptionsFunction?: (dtos: any[]) => any[];\r\n control: Control;\r\n freeSolo?: boolean;\r\n}\r\n\r\nconst ControlledAutoCompleteFetcher: React.FC<\r\n IControlledAutoCompleteFetcherProps\r\n> = ({ serviceFunction, makeOptionsFunction, control, freeSolo, ...props }) => {\r\n const { addMessage } = useSnackbar();\r\n const [options, setOptions] = useState([]);\r\n const [searchText, setSearchText] = useState('');\r\n const debouncedSearchText = useDebounce(searchText, 300);\r\n useEffect(\r\n () => {\r\n if (debouncedSearchText && debouncedSearchText.length >= 3) {\r\n retrieveOptions(debouncedSearchText);\r\n } else if (options.length > 0) {\r\n setOptions([]);\r\n }\r\n },\r\n [debouncedSearchText] // Only call effect if debounced search term changes\r\n );\r\n\r\n const handleOnChange = (event: any, value: any) => {\r\n setSearchText(value);\r\n };\r\n\r\n const retrieveOptions = (researchValue: string) => {\r\n serviceFunction(researchValue)\r\n .then((dtos: any[]) => {\r\n let newOptions = makeOptionsFunction ? makeOptionsFunction(dtos) : dtos;\r\n setOptions(newOptions);\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n return (\r\n handleOnChange(e, v)}\r\n {...props}\r\n freeSolo={freeSolo}\r\n error={props.errors}\r\n errorMessage={props.helperText}\r\n />\r\n );\r\n};\r\n\r\nexport default ControlledAutoCompleteFetcher;\r\n","import moment from 'moment';\r\nimport React, {useEffect} from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\n\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\n\r\nimport ITraining from '../../models/ITraining';\r\nimport ITrainingCourse from '../../models/ITrainingCourse';\r\nimport TrainingCatalogueService from '../../services/TrainingCatalogueService';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport ControlledAutoCompleteFetcher from '../commons/AutoCompleteFetcher/ControlledAutoCompleteFetcher';\r\nimport DatePicker from '../commons/DatePicker/DatePicker';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport TextField from '../commons/TextField/TextField';\r\n\r\ninterface ITrainingCatalogueFormProps {\r\n form: UseFormMethods;\r\n defaultValue: ITrainingCourse;\r\n}\r\n\r\nconst TrainingCatalogueForm: React.FC = ({\r\n form,\r\n defaultValue,\r\n}) => {\r\n const watchStartDate = form.watch('fromDate');\r\n\r\n useEffect(() => {\r\n form.setValue('fromDate', defaultValue.fromDate);\r\n }, [defaultValue]);\r\n\r\n return (\r\n \r\n \r\n \r\n trainings}\r\n name=\"trainingName\"\r\n id=\"training_name\"\r\n placeholder=\"Type a new or existing training name\"\r\n getOptionLabel={(option) => {\r\n return option?.trainingName ?? option;\r\n }}\r\n renderOption={(option) => option?.trainingName ?? option}\r\n valueProp=\"trainingName\"\r\n fullWidth\r\n margin=\"normal\"\r\n autoComplete={false}\r\n control={form.control}\r\n defaultValue={defaultValue.trainingName}\r\n errors={\r\n !!form.formState.dirtyFields.trainingName &&\r\n !!form.errors.trainingName\r\n }\r\n helperText={\r\n form.errors.trainingName ? form.errors.trainingName.message : ''\r\n }\r\n autoSelect\r\n freeSolo={true}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TrainingCatalogueForm;\r\n","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport Box from '@material-ui/core/Box/Box';\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../../../assets/icons/delete.svg';\r\nimport {ReactComponent as EditIcon} from '../../../../../assets/icons/edit.svg';\r\nimport AddButton from '../../../../../components/commons/AddButton/AddButton';\r\nimport DateTime from '../../../../../components/commons/DateTime/DateTime';\r\nimport Dialog from '../../../../../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../../../../../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../../../components/commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../../../components/commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../../../components/commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../../../components/commons/Dialog/DialogTitle';\r\nimport Drawer from '../../../../../components/commons/Drawer/Drawer';\r\nimport DrawerActions from '../../../../../components/commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../../../../../components/commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../../../../../components/commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../../../../../components/commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../../../../../components/commons/Drawer/DrawerTitle';\r\nimport Table from '../../../../../components/commons/Table/Table';\r\nimport TableIconButton from '../../../../../components/commons/TableIconButton/TableIconButton';\r\nimport TrainingCatalogueForm from '../../../../../components/TrainingCatalogueForm/TrainingCatalogueForm';\r\nimport {useTrainingCatalogueContext} from '../../../../../context/TrainingCatalogueProvider/TrainingCatalogueProvider';\r\nimport {TrainingCatalogueActionType} from '../../../../../context/TrainingCatalogueProvider/TrainingCatalogueReducer';\r\nimport TrainingCatalogueTabEnum from '../../../../../context/TrainingCatalogueProvider/TrainingCatalogueTabEnum';\r\nimport {useModal} from '../../../../../hooks/useModal';\r\nimport ITrainingCourse from '../../../../../models/ITrainingCourse';\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../../utils/Constants';\r\nimport formatString from '../../../../../utils/Strings';\r\n\r\ninterface ITrainingCatalogueTabProps {\r\n selectedTab: TrainingCatalogueTabEnum;\r\n}\r\n\r\nexport const TrainingCatalogueFormSchema = yup.object().shape({\r\n trainingName: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 50))\r\n .typeError(Constants.validation.required),\r\n fromDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError(''),\r\n toDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .nullable()\r\n .typeError(''),\r\n approverEmail: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(250, formatString(Constants.validation.max, 250)),\r\n copyEmail: yup.string().max(150, formatString(Constants.validation.max, 250)),\r\n hotel: yup.string().max(150, formatString(Constants.validation.max, 150)),\r\n});\r\n\r\nexport const DefaultTrainingCourse: ITrainingCourse = {\r\n courseId: 0,\r\n trainingName: '',\r\n fromDate: moment.utc().startOf('day').toDate(),\r\n toDate: moment.utc().startOf('day').toDate(),\r\n approverEmail: '',\r\n copyEmail: '',\r\n hotel: '',\r\n isActive: true,\r\n};\r\n\r\nconst TrainingCatalogueTab: React.FC = ({\r\n selectedTab,\r\n}) => {\r\n const {\r\n state,\r\n dispatch,\r\n submitTrainingCourse,\r\n deactivateSelectedTrainingCourse,\r\n } = useTrainingCatalogueContext();\r\n const [data, setData] = useState();\r\n const {\r\n showModal: showDrawer,\r\n hideModal: hideDrawer,\r\n isVisible: isVisibleDrawer,\r\n } = useModal();\r\n const {\r\n showModal: showConfirmationDialog,\r\n hideModal: hideConfirmationDialog,\r\n isVisible: isVisibleConfirmationDialog,\r\n } = useModal();\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(TrainingCatalogueFormSchema),\r\n });\r\n\r\n useEffect(() => {\r\n dispatch({\r\n type: TrainingCatalogueActionType.SELECTED_TRAINING_TAB,\r\n payload: selectedTab,\r\n });\r\n }, [selectedTab]);\r\n\r\n useEffect(() => {\r\n if (\r\n selectedTab ===\r\n (TrainingCatalogueTabEnum.CURRENT_TRAININGS as TrainingCatalogueTabEnum)\r\n ) {\r\n setData(state.currentTrainingCourses);\r\n } else {\r\n setData(state.historyTrainingCourses);\r\n }\r\n }, [selectedTab, state.currentTrainingCourses, state.historyTrainingCourses]);\r\n\r\n const handleSubmit = (trainingCourse: ITrainingCourse) => {\r\n submitTrainingCourse(\r\n state.selectedTrainingCourse\r\n ? trainingCourse\r\n : { ...DefaultTrainingCourse, ...trainingCourse }\r\n );\r\n hideDrawer();\r\n };\r\n\r\n const handleAddTraining = async () => {\r\n dispatch({\r\n type: TrainingCatalogueActionType.SELECTED_TRAINING_COURSE,\r\n payload: null,\r\n });\r\n showDrawer();\r\n };\r\n\r\n const handleEditTraining = async (trainingCourse: ITrainingCourse) => {\r\n dispatch({\r\n type: TrainingCatalogueActionType.SELECTED_TRAINING_COURSE,\r\n payload: trainingCourse,\r\n });\r\n showDrawer();\r\n };\r\n\r\n const handleDeactivateTraining = async (trainingCourse: ITrainingCourse) => {\r\n dispatch({\r\n type: TrainingCatalogueActionType.SELECTED_TRAINING_COURSE,\r\n payload: trainingCourse,\r\n });\r\n showConfirmationDialog();\r\n };\r\n\r\n const handleConfirmDeactivateTraining = () => {\r\n deactivateSelectedTrainingCourse();\r\n hideConfirmationDialog();\r\n };\r\n\r\n const columns = React.useMemo((): any[] => {\r\n let commonColumns: any[] = [\r\n {\r\n Header: 'ID',\r\n accessor: 'courseId',\r\n width: '5%',\r\n },\r\n {\r\n Header: 'Name',\r\n accessor: 'trainingName',\r\n },\r\n {\r\n Header: 'Date',\r\n accessor: 'fromDate',\r\n Cell: ({ row }: any) => (\r\n <>\r\n From {' '}\r\n
    \r\n To \r\n \r\n ),\r\n width: '14%',\r\n },\r\n {\r\n Header: 'Hotel',\r\n accessor: 'hotel',\r\n },\r\n {\r\n Header: 'Approver',\r\n accessor: 'approverEmail',\r\n Cell: ({ row }: any) => (\r\n
    \r\n {row.original.approverEmail}\r\n
    \r\n ),\r\n width: '15%',\r\n },\r\n {\r\n Header: 'Copy email',\r\n accessor: 'copyEmail',\r\n Cell: ({ row }: any) => (\r\n
    {row.original.copyEmail}
    \r\n ),\r\n width: '15%',\r\n },\r\n ];\r\n\r\n if (\r\n selectedTab ===\r\n (TrainingCatalogueTabEnum.CURRENT_TRAININGS as TrainingCatalogueTabEnum)\r\n ) {\r\n commonColumns.push({\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n handleEditTraining(row.original)}>\r\n \r\n \r\n \r\n handleDeactivateTraining(row.original)}\r\n >\r\n \r\n \r\n \r\n \r\n ),\r\n width: '12%',\r\n });\r\n }\r\n return commonColumns;\r\n }, [selectedTab]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n Add a Training\r\n \r\n \r\n\r\n {data && (\r\n
    \r\n )}\r\n\r\n \r\n \r\n {state.selectedTrainingCourse ? 'Modify Training' : 'Add a Training'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n You are going to deactivate training\r\n \r\n {`${state.selectedTrainingCourse?.courseId} - ${state.selectedTrainingCourse?.trainingName}`}\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n {\r\n dispatch({\r\n type: TrainingCatalogueActionType.SELECTED_TRAINING_COURSE,\r\n payload: null,\r\n });\r\n hideConfirmationDialog();\r\n }}\r\n />\r\n handleConfirmDeactivateTraining()}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TrainingCatalogueTab;\r\n","import React from 'react';\r\n\r\nimport TrainingCatalogueTabEnum from '../context/TrainingCatalogueProvider/TrainingCatalogueTabEnum';\r\nimport IRoute from '../models/IRoute';\r\nimport TrainingCatalogueTab\r\n from '../pages/settings/training/TrainingCataloguePage/TrainingCatalogueTab/TrainingCatalogueTab';\r\nimport PermissionsList from '../utils/PermissionsList';\r\n\r\nconst TrainingCatalogueRoutes: IRoute[] = [\r\n {\r\n path: '/settings/trainings/current',\r\n name: 'Current',\r\n exact: true,\r\n component: (\r\n \r\n ),\r\n permission: PermissionsList.eTravelSettingsTrainingCatalogue,\r\n },\r\n {\r\n path: '/settings/trainings/history',\r\n name: 'History',\r\n exact: true,\r\n component: (\r\n \r\n ),\r\n permission: PermissionsList.eTravelSettingsTrainingCatalogue,\r\n },\r\n];\r\n\r\nexport default TrainingCatalogueRoutes;\r\n","import React from 'react';\r\n\r\nimport NavTabs from '../../../../components/commons/NavTabs/NavTabs';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport Routes from '../../../../components/Routes/Routes';\r\nimport TrainingCatalogueRoutes from '../../../../routes/TrainingCatalogueRoutes';\r\n\r\nconst TrainingCataloguePage: React.FC = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TrainingCataloguePage;\r\n","import React, {RefObject, useEffect, useRef, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport FormControl from '../../../../components/commons/FormControl/FormControl';\r\nimport ReactQuill from '../../../../components/commons/ReactQuill/ReactQuill';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport useSnackbar from '../../../../hooks/useSnackbar';\r\nimport IWCMPage from '../../../../models/IWCMPage';\r\nimport WCMPageService from '../../../../services/WCMPageService';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\nimport {MessageType} from '../../../../utils/MessageType';\r\nimport styles from './EditWCMPage.module.scss';\r\n\r\nexport const WCMPageFormSchema = yup.object().shape({\r\n // name: yup.string().required(Constants.validation.required)\r\n // .max(200, formatString(Constants.validation.max, 200)),\r\n // content: yup.string().required(Constants.validation.required),\r\n});\r\n\r\nconst EditWCMPage: React.FC = () => {\r\n const [wcmPage, setWcmPage] = useState(null);\r\n const form = useForm({ resolver: yupResolver(WCMPageFormSchema) });\r\n const { addMessage } = useSnackbar();\r\n const quillRef: RefObject = useRef();\r\n\r\n useEffect(() => {\r\n fetchWCMPage();\r\n }, []);\r\n\r\n useEffect(() => {\r\n form.reset({\r\n name: wcmPage?.name,\r\n content: wcmPage?.content,\r\n });\r\n }, [wcmPage]);\r\n\r\n const fetchWCMPage = async () => {\r\n WCMPageService.get()\r\n .then((result) => setWcmPage(result))\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const handleSubmit = (page: IWCMPage) => {\r\n WCMPageService.update({ ...wcmPage, ...page })\r\n .then((result) => {\r\n if (result) {\r\n fetchWCMPage();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const saveNewImage = async (formData: FormData): Promise => {\r\n return WCMPageService.saveNewImage(formData)\r\n .then((result) => {\r\n return result;\r\n })\r\n .catch(() => {\r\n addMessage('An error occurred while saving the image...');\r\n return '';\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {wcmPage && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Constants.buttons.save}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default EditWCMPage;\r\n","import React from 'react';\r\n\r\nimport {Box, ButtonBase, Link} from '@material-ui/core';\r\n\r\nimport {\r\n useEmailTemplatesPageContext\r\n} from '../../context/settings/EmailTemplatesPageContext/EmailTemplatesPageProvider';\r\nimport NoResult from '../commons/NoResult/NoResult';\r\nimport Table from '../commons/Table/Table';\r\n\r\nconst EmailTemplatesGrid: React.FC = () => {\r\n const { templates, selectTemplate } = useEmailTemplatesPageContext();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Template Name',\r\n width: '44%',\r\n accessor: 'templateName',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.templateName}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Subject',\r\n width: '44%',\r\n accessor: 'subject',\r\n Cell: ({ row }: any) => (\r\n {row.original.subject}\r\n ),\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n {\r\n selectTemplate({ ...row.original });\r\n }}\r\n >\r\n See more or edit\r\n \r\n \r\n ),\r\n },\r\n ],\r\n [selectTemplate]\r\n );\r\n\r\n return (\r\n <>\r\n {templates.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default EmailTemplatesGrid;\r\n","import * as yup from 'yup';\r\n\r\nimport Constants from '../../utils/Constants';\r\nimport formatString from '../../utils/Strings';\r\n\r\nexport interface IEmailTemplateForm {\r\n from: string;\r\n to: string;\r\n cc: string | null;\r\n bcc: string | null;\r\n}\r\n\r\nexport const EmailTemplateFormSchema = yup.object().shape({\r\n from: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(1024, formatString(Constants.validation.max, 1024))\r\n .matches(\r\n Constants.validation.emailMultipleRegex,\r\n Constants.validation.invalidEmail\r\n ),\r\n to: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(1024, formatString(Constants.validation.max, 1024))\r\n .matches(\r\n Constants.validation.emailMultipleRegex,\r\n Constants.validation.invalidEmail\r\n ),\r\n cc: yup\r\n .string()\r\n .nullable()\r\n .max(1024, formatString(Constants.validation.max, 1024))\r\n .matches(\r\n Constants.validation.emailMultipleRegex,\r\n Constants.validation.invalidEmail\r\n ),\r\n bcc: yup\r\n .string()\r\n .nullable()\r\n .max(1024, formatString(Constants.validation.max, 1024))\r\n .matches(\r\n Constants.validation.emailMultipleRegex,\r\n Constants.validation.invalidEmail\r\n ),\r\n});\r\n","import React from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\n\r\nimport {Box, Grid, Typography} from '@material-ui/core';\r\n\r\nimport {IEmailTemplate} from '../../models/Settings/IEmailTemplate';\r\nimport {IEmailTemplateForm} from '../../models/Settings/IEmailTemplateForm';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport TextField from '../commons/TextField/TextField';\r\n\r\nexport interface IEmailTemplateFormProps {\r\n template: IEmailTemplate;\r\n form: UseFormMethods;\r\n}\r\n\r\nconst EmailTemplateForm: React.FC = ({\r\n template,\r\n form: { register, errors },\r\n}) => {\r\n return (\r\n <>\r\n \r\n \r\n Template Name:{' '}\r\n \r\n {template.templateName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EmailTemplateForm;\r\n","import React from 'react';\r\nimport {useForm} from 'react-hook-form';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Grid} from '@material-ui/core';\r\n\r\nimport {\r\n useEmailTemplatesPageContext\r\n} from '../../context/settings/EmailTemplatesPageContext/EmailTemplatesPageProvider';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport {EmailTemplateFormSchema, IEmailTemplateForm,} from '../../models/Settings/IEmailTemplateForm';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Drawer from '../commons/Drawer/Drawer';\r\nimport DrawerActions from '../commons/Drawer/DrawerActions';\r\nimport DrawerButton from '../commons/Drawer/DrawerButton';\r\nimport DrawerCancelButton from '../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../commons/Drawer/DrawerContent';\r\nimport DrawerTitle from '../commons/Drawer/DrawerTitle';\r\nimport EmailTemplateForm from './EmailTemplateForm';\r\n\r\nexport interface IEmailTemplatesDrawerProps {}\r\n\r\nconst EmailTemplatesDrawer: React.FC = () => {\r\n const { selectedTemplate, updating, selectTemplate, updateTemplate } =\r\n useEmailTemplatesPageContext();\r\n const { addMessage } = useSnackbar();\r\n\r\n const form = useForm({\r\n resolver: yupResolver(EmailTemplateFormSchema),\r\n mode: 'onChange',\r\n defaultValues: {\r\n from: selectedTemplate?.from,\r\n to: selectedTemplate?.to,\r\n cc: selectedTemplate?.cc,\r\n bcc: selectedTemplate?.bcc,\r\n },\r\n });\r\n\r\n const handleSubmit = (form: IEmailTemplateForm) => {\r\n if (selectedTemplate && form.to && form.from) {\r\n updateTemplate({ ...selectedTemplate, ...form });\r\n } else {\r\n addMessage(\"Couldn't update template\");\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n selectTemplate(undefined)}\r\n >\r\n Email Template\r\n \r\n \r\n {selectedTemplate && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {\r\n selectTemplate(undefined);\r\n }}\r\n />\r\n \r\n \r\n {}}\r\n text=\"VALIDATE\"\r\n loading={updating}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EmailTemplatesDrawer;\r\n","import React, {useEffect} from 'react';\r\n\r\nimport {Box, Grid, LinearProgress} from '@material-ui/core';\r\n\r\nimport {EmailTemplatesGrid} from '../../../components/EmailTemplates';\r\nimport EmailTemplatesDrawer from '../../../components/EmailTemplates/EmailTemplatesDrawer';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport {\r\n useEmailTemplatesPageContext\r\n} from '../../../context/settings/EmailTemplatesPageContext/EmailTemplatesPageProvider';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\n\r\nconst EmailTemplatesPage: React.FC = () => {\r\n const { loading, loaded, fetchTemplates } = useEmailTemplatesPageContext();\r\n\r\n useEffect(() => {\r\n fetchTemplates();\r\n }, [fetchTemplates]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {loading || !loaded ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EmailTemplatesPage;\r\n","import React, {RefObject, useRef} from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IWCMPage from '../../models/IWCMPage';\r\nimport WCMPageService from '../../services/WCMPageService';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport ReactQuill from '../commons/ReactQuill/ReactQuill';\r\nimport TextField from '../commons/TextField/TextField';\r\nimport styles from './WCMPageForm.module.scss';\r\n\r\nexport interface IWCMPageFormProps {\r\n form: UseFormMethods;\r\n defaultValue: IWCMPage;\r\n}\r\n\r\nconst WCMPageForm: React.FC = ({ form, defaultValue }) => {\r\n const { addMessage } = useSnackbar();\r\n\r\n const quillRef: RefObject = useRef();\r\n\r\n const saveNewImage = async (formData: FormData): Promise => {\r\n return WCMPageService.saveNewImage(formData)\r\n .then((result) => {\r\n return result;\r\n })\r\n .catch(() => {\r\n addMessage('An error occurred while saving the image...');\r\n return '';\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default WCMPageForm;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../assets/icons/deleteBin.svg';\r\nimport {ReactComponent as EditIcon} from '../../../assets/icons/edit.svg';\r\nimport AddButton from '../../../components/commons/AddButton/AddButton';\r\nimport Dialog from '../../../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../../../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../components/commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../components/commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../components/commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../components/commons/Dialog/DialogTitle';\r\nimport Drawer from '../../../components/commons/Drawer/Drawer';\r\nimport DrawerActions from '../../../components/commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../../../components/commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../../../components/commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../../../components/commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../../../components/commons/Drawer/DrawerTitle';\r\nimport Table from '../../../components/commons/Table/Table';\r\nimport TableIconButton from '../../../components/commons/TableIconButton/TableIconButton';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport WCMPageForm from '../../../components/WCMPageForm/WCMPageForm';\r\nimport {useWCMPageContext} from '../../../context/settings/WCMPageContext/WCMPageProvider';\r\nimport {WCMPageActionType} from '../../../context/settings/WCMPageContext/WCMPageReducer';\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport IWCMPage from '../../../models/IWCMPage';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport isRequiredFieldMissing from '../../../utils/Forms';\r\nimport formatString from '../../../utils/Strings';\r\n\r\nexport const WCMPageFormSchema = yup.object().shape({\r\n name: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n content: yup.string().required(Constants.validation.required),\r\n});\r\n\r\nexport const DefaultWCMPage: IWCMPage = {\r\n wcmPageId: 0,\r\n name: '',\r\n description: '',\r\n content: '',\r\n};\r\n\r\nconst WCMPage: React.FC = () => {\r\n const { state, dispatch, submitWCMPage, deleteSelectedWCMPage } =\r\n useWCMPageContext();\r\n const {\r\n showModal: showDrawer,\r\n hideModal: hideDrawer,\r\n isVisible: isVisibleDrawer,\r\n } = useModal();\r\n const {\r\n showModal: showConfirmationDialog,\r\n hideModal: hideConfirmationDialog,\r\n isVisible: isVisibleConfirmationDialog,\r\n } = useModal();\r\n const form = useForm({\r\n resolver: yupResolver(WCMPageFormSchema),\r\n mode: 'onChange',\r\n });\r\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(true);\r\n\r\n useEffect(() => {\r\n let disabled =\r\n isRequiredFieldMissing(WCMPageFormSchema, form.getValues) ||\r\n !form.formState.isDirty;\r\n setIsSubmitDisabled(disabled);\r\n }, [form.formState.isValid, form.control, form.formState.isDirty]);\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'ID',\r\n accessor: 'wcmPageId',\r\n width: '10%',\r\n },\r\n {\r\n Header: 'Name',\r\n accessor: 'name',\r\n width: '30%',\r\n },\r\n {\r\n Header: 'Description',\r\n accessor: 'description',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actions',\r\n Cell: ({ row }: any) => (\r\n \r\n handleEdit(row.original)}>\r\n \r\n \r\n \r\n handleDelete(row.original)}>\r\n \r\n \r\n \r\n \r\n ),\r\n width: '12%',\r\n disableSortBy: true,\r\n },\r\n ],\r\n []\r\n );\r\n\r\n const handleSubmit = (wcmPage: IWCMPage) => {\r\n submitWCMPage(\r\n state.selectedWCMPage ? wcmPage : { ...DefaultWCMPage, ...wcmPage }\r\n );\r\n hideDrawer();\r\n };\r\n\r\n const handleConfirmDelete = () => {\r\n deleteSelectedWCMPage();\r\n hideConfirmationDialog();\r\n };\r\n\r\n const handleAdd = async () => {\r\n dispatch({ type: WCMPageActionType.SELECT_WCM_PAGE, payload: null });\r\n showDrawer();\r\n };\r\n\r\n const handleEdit = async (wcmPage: IWCMPage) => {\r\n dispatch({ type: WCMPageActionType.SELECT_WCM_PAGE, payload: wcmPage });\r\n showDrawer();\r\n };\r\n\r\n const handleDelete = async (wcmPage: IWCMPage) => {\r\n dispatch({ type: WCMPageActionType.SELECT_WCM_PAGE, payload: wcmPage });\r\n showConfirmationDialog();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Add a WCM page\r\n \r\n \r\n {state.WCMPages && state.WCMPages.length > 0 && (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n {state.selectedWCMPage ? 'Modify WCM page' : 'Add a WCM page'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n hideDrawer()}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n You are going to delete WCM page\r\n \r\n {`${state.selectedWCMPage?.wcmPageId} - ${state.selectedWCMPage?.name}`}\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n {\r\n dispatch({\r\n type: WCMPageActionType.SELECT_WCM_PAGE,\r\n payload: null,\r\n });\r\n hideConfirmationDialog();\r\n }}\r\n />\r\n handleConfirmDelete()}\r\n />\r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default WCMPage;\r\n","import React, {useContext, useState} from 'react';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport ICountry from '../../../models/ICountry';\r\nimport ApisService from '../../../services/ApisService';\r\nimport Dialog from '../../../components/commons/Dialog';\r\nimport DialogTitle from '../../../components/commons/Dialog/DialogTitle';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport DialogContent from '../../../components/commons/Dialog/DialogContent';\r\nimport DialogActions from '../../../components/commons/Dialog/DialogActions';\r\nimport DialogCancelButton from '../../../components/commons/Dialog/DialogCancelButton';\r\nimport Constants from '../../../utils/Constants';\r\nimport DialogButton from '../../../components/commons/Dialog/DialogButton';\r\n\r\nexport interface IApisSettingsSchengenCountriesPageContext {\r\n schengenCountries: ICountry[];\r\n loading: boolean;\r\n loaded: boolean;\r\n creating: boolean;\r\n selectedCountry?: ICountry;\r\n selectCountry: (country?: ICountry) => void;\r\n fetchSchengenCountries: () => void;\r\n addSchengenCountry: (code: string) => void;\r\n confirmDeleteSchengenCountry: (code?: string) => void;\r\n deleteSchengenCountry: (code?: string) => void;\r\n openAddFormDrawer: () => void;\r\n closeDrawer: () => void;\r\n drawerOpen: boolean;\r\n}\r\n\r\nconst ApisSettingsSchengenCountriesPageContext = React.createContext(\r\n {} as IApisSettingsSchengenCountriesPageContext\r\n);\r\n\r\nconst ApisSettingsSchengenCountriesPageProvider: React.FC = ({ children }) => {\r\n const { addMessage } = useSnackbar();\r\n\r\n const [schengenCountries, setSchengenCountries] = useState([]);\r\n const [loaded, setLoaded] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [creating, setCreating] = useState(false);\r\n const [selectedCountry, setSelectedCountry] = useState(\r\n undefined\r\n );\r\n const [drawerOpen, setDrawerOpen] = useState(false);\r\n const [confirmationOpen, setConfirmationOpen] = useState(false);\r\n const [countryToDelete, setCountryToDelete] = useState();\r\n\r\n const openAddFormDrawer = () => {\r\n setDrawerOpen(true);\r\n };\r\n\r\n const fetchSchengenCountries = () => {\r\n setLoading(true);\r\n ApisService.getSchengenCountries()\r\n .then((result) => {\r\n setSchengenCountries(result);\r\n })\r\n .catch((error) => {\r\n addMessage(error.message, MessageType.Error);\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n setLoaded(true);\r\n });\r\n };\r\n\r\n const confirmDeleteSchengenCountry = (code?: string) => {\r\n if (!code) return;\r\n setCountryToDelete(code);\r\n setConfirmationOpen(true);\r\n };\r\n\r\n const deleteSchengenCountry = (code?: string) => {\r\n if (!code) return;\r\n setLoading(true);\r\n ApisService.deleteSchengenCountry(code)\r\n .then(() => {\r\n fetchSchengenCountries();\r\n addMessage(\r\n `${code} was removed from Schengen Countries`,\r\n MessageType.Success\r\n );\r\n })\r\n .catch((error) => {\r\n addMessage(error.message, MessageType.Error);\r\n })\r\n .finally(() => {\r\n setConfirmationOpen(false);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const addSchengenCountry = (code: string) => {\r\n setCreating(true);\r\n ApisService.addSchengenCountry(code)\r\n .then((result) => {\r\n fetchSchengenCountries();\r\n addMessage(\r\n `${result.countryName} was added as Schengen Country`,\r\n MessageType.Success\r\n );\r\n setDrawerOpen(false);\r\n })\r\n .catch((error) => {\r\n addMessage(error.message, MessageType.Error);\r\n })\r\n .finally(() => {\r\n setCreating(false);\r\n });\r\n };\r\n\r\n return (\r\n setDrawerOpen(false),\r\n drawerOpen,\r\n selectedCountry,\r\n selectCountry: (country) => setSelectedCountry(country),\r\n creating,\r\n addSchengenCountry,\r\n confirmDeleteSchengenCountry,\r\n deleteSchengenCountry,\r\n schengenCountries,\r\n loading,\r\n loaded,\r\n fetchSchengenCountries,\r\n }}\r\n >\r\n setConfirmationOpen(false)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n \r\n You are going to remove {countryToDelete} from Schengen countries\r\n \r\n \r\n \r\n Are you sure?\r\n \r\n \r\n setConfirmationOpen(false)}\r\n />\r\n deleteSchengenCountry(countryToDelete)}\r\n />\r\n \r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useApisSettingsSchengenCountriesPageContext = () =>\r\n useContext(ApisSettingsSchengenCountriesPageContext);\r\n\r\nexport default ApisSettingsSchengenCountriesPageProvider;\r\n","import * as yup from 'yup';\r\n\r\nimport Constants from '../../utils/Constants';\r\nimport formatString from '../../utils/Strings';\r\n\r\nexport interface IApiSchengenCountrySettingForm {\r\n code: string;\r\n}\r\n\r\nexport const IApisSchengenCountriesFormSchema = yup.object().shape({\r\n code: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(2, formatString(Constants.validation.max, 2))\r\n .matches(/[A-Za-z]{2}/, {\r\n message: 'Country code can only have 2 letters',\r\n }),\r\n});\r\n","import React from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\nimport {Grid} from '@material-ui/core';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport {IApiSchengenCountrySettingForm} from '../../../models/Settings/IApisSchengenCountriesFormSchema';\r\nimport useCountries from '../../../hooks/useCountries';\r\nimport Select from '../../commons/Select';\r\nimport FormControl from '../../commons/FormControl';\r\n\r\nexport interface IApisSettingsSchengenCountryFormProps {\r\n form: UseFormMethods;\r\n}\r\n\r\nconst ApisSettingsSchengenCountryForm: React.FC<\r\n IApisSettingsSchengenCountryFormProps\r\n> = ({ form: { errors, control } }) => {\r\n const countries = useCountries();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n ({\r\n value: country.countryCode,\r\n label: `${country.countryCode} - ${country.countryName}`,\r\n }))}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ApisSettingsSchengenCountryForm;\r\n","import React from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Grid} from '@material-ui/core';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Drawer from '../../commons/Drawer/Drawer';\r\nimport DrawerActions from '../../commons/Drawer/DrawerActions';\r\nimport DrawerButton from '../../commons/Drawer/DrawerButton';\r\nimport DrawerCancelButton from '../../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../../commons/Drawer/DrawerContent';\r\nimport DrawerTitle from '../../commons/Drawer/DrawerTitle';\r\nimport {\r\n IApiSchengenCountrySettingForm,\r\n IApisSchengenCountriesFormSchema,\r\n} from '../../../models/Settings/IApisSchengenCountriesFormSchema';\r\nimport ApisSettingsSchengenCountryForm from './ApisSettingsSchengenCountryForm';\r\nimport {\r\n useApisSettingsSchengenCountriesPageContext\r\n} from '../../../context/settings/ApisSettingsSchengenCountriesPageContext/ApisSettingsSchengenCountriesPageProvider';\r\n\r\nconst ApisSettingsSchengenCountriesDrawer: React.FC = () => {\r\n const { drawerOpen, closeDrawer, creating, addSchengenCountry } =\r\n useApisSettingsSchengenCountriesPageContext();\r\n\r\n const form = useForm({\r\n resolver: yupResolver(IApisSchengenCountriesFormSchema),\r\n mode: 'onChange',\r\n });\r\n\r\n const handleSubmit = (form: IApiSchengenCountrySettingForm) => {\r\n addSchengenCountry(form.code);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n Schengen Country\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {}}\r\n text=\"VALIDATE\"\r\n loading={creating}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ApisSettingsSchengenCountriesDrawer;\r\n","import React from 'react';\r\n\r\nimport {Box, ButtonBase, Link} from '@material-ui/core';\r\nimport NoResult from '../../commons/NoResult/NoResult';\r\nimport Table from '../../commons/Table/Table';\r\nimport {\r\n useApisSettingsSchengenCountriesPageContext\r\n} from '../../../context/settings/ApisSettingsSchengenCountriesPageContext/ApisSettingsSchengenCountriesPageProvider';\r\n\r\nconst ApisSettingsSchengenCountriesGrid: React.FC = () => {\r\n const { schengenCountries, confirmDeleteSchengenCountry } =\r\n useApisSettingsSchengenCountriesPageContext();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Country Code',\r\n width: '33%',\r\n accessor: 'countryCode',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.countryCode}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Name',\r\n width: '33%',\r\n accessor: 'countryName',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.countryName}\r\n \r\n ),\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n \r\n confirmDeleteSchengenCountry(row.original.countryCode)\r\n }\r\n >\r\n Delete\r\n \r\n \r\n ),\r\n },\r\n ],\r\n []\r\n );\r\n\r\n return (\r\n <>\r\n {schengenCountries.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ApisSettingsSchengenCountriesGrid;\r\n","import React, {useEffect} from 'react';\r\nimport Box from '@material-ui/core/Box/Box';\r\nimport AddButton from '../../../../components/commons/AddButton';\r\nimport {Grid, LinearProgress} from '@material-ui/core';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport {\r\n useApisSettingsSchengenCountriesPageContext\r\n} from '../../../../context/settings/ApisSettingsSchengenCountriesPageContext/ApisSettingsSchengenCountriesPageProvider';\r\nimport ApisSettingsSchengenCountriesDrawer\r\n from '../../../../components/ApisSettings/SchengenCountries/ApisSettingsSchengenCountriesDrawer';\r\nimport ApisSettingsSchengenCountriesGrid\r\n from '../../../../components/ApisSettings/SchengenCountries/ApisSettingsSchengenCountriesGrid';\r\n\r\nfunction ApisSchengenCountriesTab() {\r\n const { openAddFormDrawer, fetchSchengenCountries, loading, loaded } =\r\n useApisSettingsSchengenCountriesPageContext();\r\n\r\n useEffect(() => {\r\n fetchSchengenCountries();\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n Add a Schengen country\r\n \r\n \r\n \r\n \r\n {loading || !loaded ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ApisSchengenCountriesTab;\r\n","import React, {useContext, useEffect, useState} from 'react';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport ApisService from '../../../services/ApisService';\r\nimport Dialog from '../../../components/commons/Dialog';\r\nimport DialogTitle from '../../../components/commons/Dialog/DialogTitle';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport DialogContent from '../../../components/commons/Dialog/DialogContent';\r\nimport DialogActions from '../../../components/commons/Dialog/DialogActions';\r\nimport DialogCancelButton from '../../../components/commons/Dialog/DialogCancelButton';\r\nimport Constants from '../../../utils/Constants';\r\nimport DialogButton from '../../../components/commons/Dialog/DialogButton';\r\nimport {IApisCountryProperty} from '../../../models/IApisCountryProperty';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\n\r\nexport interface IApisSettingsCountryPropertiesPageContext {\r\n countryProperties: IApisCountryProperty[];\r\n loading: boolean;\r\n loaded: boolean;\r\n creating: boolean;\r\n addCountryProperty: (countryProperty: IApisCountryProperty) => void;\r\n updateCountryProperty: (countryProperty: IApisCountryProperty) => void;\r\n confirmDeleteCountryProperty: (id: number) => void;\r\n fetchCountryProperties: () => void;\r\n openAddFormDrawer: () => void;\r\n closeDrawer: () => void;\r\n drawerOpen: boolean;\r\n selectCountryProperty: (countryProperty: IApisCountryProperty) => void;\r\n selectedCountryProperty?: IApisCountryProperty;\r\n}\r\n\r\nconst ApisSettingsCountryPropertiesPageContext = React.createContext(\r\n {} as IApisSettingsCountryPropertiesPageContext\r\n);\r\n\r\nconst ApisSettingsCountryPropertiesPageProvider: React.FC = ({ children }) => {\r\n const { addMessage } = useSnackbar();\r\n\r\n const [countryProperties, setCountryProperties] = useState<\r\n IApisCountryProperty[]\r\n >([]);\r\n const [loaded, setLoaded] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [creating, setCreating] = useState(false);\r\n const [selectedCountryProperty, setSelectedCountryProperty] = useState<\r\n IApisCountryProperty | undefined\r\n >(undefined);\r\n const [drawerOpen, setDrawerOpen] = useState(false);\r\n const [confirmationOpen, setConfirmationOpen] = useState(false);\r\n const [countryPropertyToDelete, setCountryPropertyToDelete] = useState<\r\n number | undefined\r\n >();\r\n\r\n const openAddFormDrawer = () => {\r\n setDrawerOpen(true);\r\n };\r\n\r\n const selectCountryProperty = (countryProperty: IApisCountryProperty) => {\r\n setSelectedCountryProperty(countryProperty);\r\n };\r\n\r\n useEffect(() => {\r\n if (!selectedCountryProperty) setDrawerOpen(false);\r\n else setDrawerOpen(true);\r\n }, [selectedCountryProperty]);\r\n\r\n const fetchCountryProperties = () => {\r\n setLoading(true);\r\n ApisService.getCountryProperties()\r\n .then((result) => {\r\n setCountryProperties(result);\r\n })\r\n .catch((error) => {\r\n addMessage(error.message, MessageType.Error);\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n setLoaded(true);\r\n });\r\n };\r\n\r\n const confirmDeleteCountryProperty = (id?: number) => {\r\n if (!id) return;\r\n setCountryPropertyToDelete(id);\r\n setConfirmationOpen(true);\r\n };\r\n\r\n const deleteCountryProperty = (id?: number) => {\r\n if (!id) return;\r\n setLoading(true);\r\n ApisService.deleteCountryProperty(id)\r\n .then((result) => {\r\n if (result) {\r\n fetchCountryProperties();\r\n addMessage(`Country properties were removed`, MessageType.Success);\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message, MessageType.Error);\r\n })\r\n .finally(() => {\r\n setConfirmationOpen(false);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const addCountryProperty = (countryProperty: IApisCountryProperty) => {\r\n if (!countryProperty) return;\r\n setCreating(true);\r\n ApisService.addCountryProperty(countryProperty)\r\n .then((result) => {\r\n fetchCountryProperties();\r\n addMessage(\r\n `Property for ${result.countryCode} was added`,\r\n MessageType.Success\r\n );\r\n setDrawerOpen(false);\r\n })\r\n .catch((error) => {\r\n addMessage(error.message, MessageType.Error);\r\n })\r\n .finally(() => {\r\n setCreating(false);\r\n });\r\n };\r\n\r\n const updateCountryProperty = (countryProperty: IApisCountryProperty) => {\r\n if (!countryProperty || !countryProperty.apisCountryPropertiesId) return;\r\n setCreating(true);\r\n ApisService.updateCountryProperty(countryProperty)\r\n .then((result) => {\r\n fetchCountryProperties();\r\n addMessage(\r\n `Property for ${result.countryCode} was saved`,\r\n MessageType.Success\r\n );\r\n setDrawerOpen(false);\r\n })\r\n .catch((error) => {\r\n addMessage(error.message, MessageType.Error);\r\n })\r\n .finally(() => {\r\n setCreating(false);\r\n });\r\n };\r\n\r\n const closeDrawer = () => {\r\n if (selectedCountryProperty) {\r\n setSelectedCountryProperty(undefined);\r\n } else {\r\n setDrawerOpen(false);\r\n }\r\n };\r\n\r\n return (\r\n \r\n setConfirmationOpen(false)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n \r\n You are going to remove country properties\r\n \r\n \r\n \r\n Are you sure?\r\n \r\n \r\n setConfirmationOpen(false)}\r\n />\r\n deleteCountryProperty(countryPropertyToDelete)}\r\n />\r\n \r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useApisSettingsCountryPropertiesPageContext = () =>\r\n useContext(ApisSettingsCountryPropertiesPageContext);\r\n\r\nexport default ApisSettingsCountryPropertiesPageProvider;\r\n","import React, {useContext, useEffect, useState} from 'react';\r\nimport {MessageType} from '../../../utils/MessageType';\r\nimport ApisService from '../../../services/ApisService';\r\nimport Dialog from '../../../components/commons/Dialog';\r\nimport DialogTitle from '../../../components/commons/Dialog/DialogTitle';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport DialogContent from '../../../components/commons/Dialog/DialogContent';\r\nimport DialogActions from '../../../components/commons/Dialog/DialogActions';\r\nimport DialogCancelButton from '../../../components/commons/Dialog/DialogCancelButton';\r\nimport Constants from '../../../utils/Constants';\r\nimport DialogButton from '../../../components/commons/Dialog/DialogButton';\r\nimport {IApisTemplate} from '../../../models/IApisTemplate';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\n\r\nexport interface IApisSettingsTemplatesPageContext {\r\n templates: IApisTemplate[];\r\n loading: boolean;\r\n loaded: boolean;\r\n creating: boolean;\r\n addTemplate: (template: IApisTemplate) => void;\r\n updateTemplate: (template: IApisTemplate) => void;\r\n confirmDeleteTemplate: (id: number) => void;\r\n fetchTemplates: () => void;\r\n openAddFormDrawer: () => void;\r\n closeDrawer: () => void;\r\n drawerOpen: boolean;\r\n selectTemplate: (template: IApisTemplate) => void;\r\n selectedTemplate?: IApisTemplate;\r\n}\r\n\r\nconst ApisSettingsTemplatesPageContext = React.createContext(\r\n {} as IApisSettingsTemplatesPageContext\r\n);\r\n\r\nconst ApisSettingsTemplatesPageProvider: React.FC = ({ children }) => {\r\n const { addMessage } = useSnackbar();\r\n\r\n const [templates, setTemplates] = useState([]);\r\n const [loaded, setLoaded] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [creating, setCreating] = useState(false);\r\n const [selectedTemplate, setSelectedTemplate] = useState<\r\n IApisTemplate | undefined\r\n >(undefined);\r\n const [drawerOpen, setDrawerOpen] = useState(false);\r\n const [confirmationOpen, setConfirmationOpen] = useState(false);\r\n const [templateToDelete, setTemplateToDelete] = useState<\r\n number | undefined\r\n >();\r\n\r\n const openAddFormDrawer = () => {\r\n setDrawerOpen(true);\r\n };\r\n\r\n const selectTemplate = (template?: IApisTemplate) => {\r\n setSelectedTemplate(template);\r\n };\r\n\r\n useEffect(() => {\r\n if (!selectedTemplate) setDrawerOpen(false);\r\n else setDrawerOpen(true);\r\n }, [selectedTemplate]);\r\n\r\n const fetchTemplates = () => {\r\n setLoading(true);\r\n ApisService.getTemplates()\r\n .then((result) => {\r\n setTemplates(result);\r\n })\r\n .catch((error) => {\r\n addMessage(error.message, MessageType.Error);\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n setLoaded(true);\r\n });\r\n };\r\n\r\n const confirmDeleteTemplate = (id?: number) => {\r\n if (!id) return;\r\n setTemplateToDelete(id);\r\n setConfirmationOpen(true);\r\n };\r\n\r\n const deleteTemplate = (id?: number) => {\r\n if (!id) return;\r\n setLoading(true);\r\n ApisService.deleteTemplate(id)\r\n .then((result) => {\r\n if (result) {\r\n fetchTemplates();\r\n addMessage(`Template was removed`, MessageType.Success);\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message, MessageType.Error);\r\n })\r\n .finally(() => {\r\n setConfirmationOpen(false);\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const addTemplate = (template: IApisTemplate) => {\r\n if (!template) return;\r\n setCreating(true);\r\n ApisService.addTemplate(template)\r\n .then((result) => {\r\n fetchTemplates();\r\n addMessage(\r\n `Template for ${result.countryCode} was added`,\r\n MessageType.Success\r\n );\r\n setDrawerOpen(false);\r\n })\r\n .catch((error) => {\r\n addMessage(error.message, MessageType.Error);\r\n })\r\n .finally(() => {\r\n setCreating(false);\r\n });\r\n };\r\n\r\n const updateTemplate = (template: IApisTemplate) => {\r\n if (!template || !template.apisCountryTemplatesId) return;\r\n setCreating(true);\r\n ApisService.updateTemplate(template)\r\n .then((result) => {\r\n fetchTemplates();\r\n addMessage(\r\n `Template for ${result.countryCode} was saved`,\r\n MessageType.Success\r\n );\r\n setDrawerOpen(false);\r\n })\r\n .catch((error) => {\r\n addMessage(error.message, MessageType.Error);\r\n })\r\n .finally(() => {\r\n setCreating(false);\r\n });\r\n };\r\n\r\n const closeDrawer = () => {\r\n setSelectedTemplate(undefined);\r\n setDrawerOpen(false);\r\n };\r\n\r\n return (\r\n \r\n setConfirmationOpen(false)}\r\n maxWidth=\"sm\"\r\n >\r\n \r\n \r\n You are going to remove a template\r\n \r\n \r\n \r\n Are you sure?\r\n \r\n \r\n setConfirmationOpen(false)}\r\n />\r\n deleteTemplate(templateToDelete)}\r\n />\r\n \r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useApisSettingsTemplatesPageContext = () =>\r\n useContext(ApisSettingsTemplatesPageContext);\r\n\r\nexport default ApisSettingsTemplatesPageProvider;\r\n","import React from 'react';\r\n\r\nimport {Box, ButtonBase, Link} from '@material-ui/core';\r\nimport NoResult from '../../commons/NoResult/NoResult';\r\nimport Table from '../../commons/Table/Table';\r\nimport {\r\n useApisSettingsTemplatesPageContext\r\n} from '../../../context/settings/ApisSettingsTemplatesPageContext/ApisSettingsTemplatesPageContext';\r\nimport _ from \"lodash\";\r\n\r\nconst ApisSettingsTemplatesGrid: React.FC = () => {\r\n const { templates, confirmDeleteTemplate, selectTemplate } =\r\n useApisSettingsTemplatesPageContext();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Country Code',\r\n width: '25%',\r\n accessor: 'countryCode',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.countryCode}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Type',\r\n width: '25%',\r\n accessor: 'type',\r\n Cell: ({ row }: any) => (\r\n {row.original.type}\r\n ),\r\n },\r\n {\r\n Header: 'Sub-Type',\r\n width: '25%',\r\n accessor: 'subType',\r\n Cell: ({ row }: any) => (\r\n \r\n {_.isEmpty(row.original.subType) && 'Regular'}\r\n {row.original.subType === 'Internal' && 'Internal'}\r\n {row.original.subType === 'Overflying' && 'Overflying'}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Mode',\r\n width: '25%',\r\n accessor: 'mode',\r\n Cell: ({ row }: any) => (\r\n {row.original.mode}\r\n ),\r\n },\r\n {\r\n Header: 'File Type',\r\n width: '25%',\r\n accessor: 'fileType',\r\n Cell: ({ row }: any) => (\r\n {row.original.fileType}\r\n ),\r\n },\r\n {\r\n Header: '',\r\n accessor: 'updateKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n selectTemplate(row.original)}>\r\n See more or edit\r\n \r\n \r\n ),\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n \r\n confirmDeleteTemplate(row.original.apisCountryTemplatesId)\r\n }\r\n >\r\n Delete\r\n \r\n \r\n ),\r\n },\r\n ],\r\n []\r\n );\r\n\r\n return (\r\n <>\r\n {templates.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ApisSettingsTemplatesGrid;\r\n","export enum ApisTemplateTypes {\r\n CLS = 'CLS',\r\n MCL = 'MCL',\r\n FCM = 'FCM',\r\n ZPX = 'ZPX',\r\n}\r\n","export enum ApisTemplateModes {\r\n In = 'In',\r\n Out = 'Out',\r\n}\r\n\r\nexport enum ApisTemplateSubTypes {\r\n Regular = '',\r\n Internal = 'Internal',\r\n Overflying = 'Overflying'\r\n}\r\n","export enum ApisTemplateFileTypes {\r\n Txt = 'TXT',\r\n Xlsx = 'XLSX',\r\n}\r\n","export enum TemplateKeywords {\r\n Date = 'Date',\r\n SystemDate = 'SystemDate',\r\n SystemTime = 'SystemTime',\r\n Receivers = 'Receivers',\r\n CarrierCode = 'CarrierCode',\r\n DateMessageBrokerHeaderType = 'DateMessageBrokerHeaderType',\r\n CarrierID = 'CarrierID',\r\n UnaHeader = 'UnaHeader',\r\n CarrierName = 'CarrierName',\r\n DateComplexType = 'DateComplexType',\r\n DateSimpleType = 'DateSimpleType',\r\n CrType = 'CrType',\r\n CrTypeSimple = 'CrTypeSimple',\r\n LegFlightNumber = 'LegFlightNumber',\r\n LegEstimatedArrivalDate = 'LegEstimatedArrivalDate',\r\n LegEstimatedArrivalTime = 'LegEstimatedArrivalTime',\r\n Bgm = 'Bgm',\r\n BgmInternal = 'BgmInternal',\r\n BgmOverflying = 'BgmOverflying',\r\n BgmState = 'BgmState',\r\n ContactFullName = 'ContactFullName',\r\n ContactTel = 'ContactTel',\r\n ContactFax = 'ContactFax',\r\n ContactEmail = 'ContactEmail',\r\n LegOnLoad = 'LegOnLoad',\r\n ETDDateTime = 'ETDDateTime',\r\n LegOffLoad = 'LegOffLoad',\r\n ETADateTime = 'ETADateTime',\r\n RepeatableZone = 'RepeatableZone',\r\n Cr4Size = 'Cr4Size',\r\n Lines = 'Lines',\r\n Sequence = 'Sequence',\r\n\r\n TravellerType = 'TravellerType',\r\n Direction = 'Direction',\r\n DepDate = 'DepDate',\r\n DepTime = 'DepTime',\r\n ArrDate = 'ArrDate',\r\n ArrTime = 'ArrTime',\r\n LegTransitStation = 'LegTransitStation',\r\n StartOfJourney = 'StartOfJourney',\r\n EndOfJourney = 'EndOfJourney',\r\n ScheduleDepDate = 'ScheduleDepDate',\r\n ScheduleDepTime = 'ScheduleDepTime',\r\n ScheduleArrDate = 'ScheduleArrDate',\r\n ScheduleArrTime = 'ScheduleArrTime',\r\n}\r\n","import React, { useEffect } from 'react';\r\nimport { Controller, UseFormMethods } from 'react-hook-form';\r\nimport { Box, Grid, List, ListItemText } from '@material-ui/core';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport useCountries from '../../../hooks/useCountries';\r\nimport Select from '../../commons/Select';\r\nimport TextField from '../../commons/TextField';\r\nimport FormControl from '../../commons/FormControl';\r\nimport { IApisTemplate } from '../../../models/IApisTemplate';\r\nimport { IApisTemplatesForm } from '../../../models/Settings/IApisTemplatesFormSchema';\r\nimport { ApisTemplateTypes } from '../../../models/Settings/ApisTemplateTypes';\r\nimport { ApisTemplateModes, ApisTemplateSubTypes } from '../../../models/Settings/ApisTemplateModes';\r\nimport { ApisTemplateFileTypes } from '../../../models/Settings/ApisTemplateFileTypes';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport _ from 'lodash';\r\nimport Radio from \"@material-ui/core/Radio\";\r\nimport { TemplateKeywords } from '../../../models/Settings/TemplateKeywords';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\n\r\nexport interface IApisSettingsTemplatesFormProps {\r\n selectedTemplate?: IApisTemplate;\r\n form: UseFormMethods;\r\n}\r\n\r\nconst ApisSettingsCountryPropertiesForm: React.FC<\r\n IApisSettingsTemplatesFormProps\r\n> = ({\r\n selectedTemplate,\r\n form: { watch, setValue, getValues, register, errors, control },\r\n}) => {\r\n const countries = useCountries();\r\n\r\n const getTemplateKeywords = (): string[] => {\r\n return Object.values(TemplateKeywords);\r\n };\r\n\r\n const addTemplateKeyword = (keyword: string) => {\r\n const formatted = `{${keyword}}`;\r\n const oldValue = getValues('template');\r\n setValue('template', oldValue + formatted + '\\r\\n');\r\n };\r\n\r\n const addTemplateRepeatableKeyword = (keyword: string) => {\r\n const formatted = `{${keyword}}`;\r\n const oldValue = getValues('templateRepeatable');\r\n setValue('templateRepeatable', oldValue + formatted + '\\r\\n');\r\n };\r\n\r\n const templateType = watch('type');\r\n const subType = watch('subType');\r\n const fileType = watch('fileType');\r\n\r\n useEffect(() => {\r\n if (templateType === ApisTemplateTypes.MCL) setValue('mode', null);\r\n }, [templateType]);\r\n\r\n useEffect(() => {\r\n if (!selectedTemplate) return;\r\n setValue('type', selectedTemplate.type);\r\n if (_.isEmpty(selectedTemplate.subType)) {\r\n setValue('subType', ApisTemplateSubTypes.Regular);\r\n } else {\r\n setValue('subType', selectedTemplate.subType);\r\n }\r\n }, [selectedTemplate]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n ({\r\n value: country.countryCode,\r\n label: `${country.countryCode} - ${country.countryName}`,\r\n }))}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n label=\"Regular\"\r\n />\r\n }\r\n label=\"Internal\"\r\n />\r\n }\r\n label=\"Overflying\"\r\n />\r\n \r\n }\r\n defaultValue={selectedTemplate?.subType ?? ''}\r\n name=\"subType\"\r\n control={control}\r\n />\r\n \r\n \r\n\r\n {(templateType !== 'MCL' && subType !== ApisTemplateSubTypes.Overflying) && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {(selectedTemplate?.fileType === ApisTemplateFileTypes.Xlsx ||\r\n fileType === ApisTemplateFileTypes.Xlsx) && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {(selectedTemplate?.fileType === ApisTemplateFileTypes.Xlsx ||\r\n fileType === ApisTemplateFileTypes.Xlsx) && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {(selectedTemplate?.fileType === ApisTemplateFileTypes.Txt ||\r\n fileType === ApisTemplateFileTypes.Txt) && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {(selectedTemplate?.fileType === ApisTemplateFileTypes.Txt ||\r\n fileType === ApisTemplateFileTypes.Txt) && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {(selectedTemplate?.fileType === ApisTemplateFileTypes.Txt ||\r\n fileType === ApisTemplateFileTypes.Txt) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {(selectedTemplate?.fileType === ApisTemplateFileTypes.Txt ||\r\n fileType === ApisTemplateFileTypes.Txt) && (\r\n \r\n Keywords\r\n \r\n \r\n {getTemplateKeywords().map((e) => (\r\n addTemplateKeyword(e)}\r\n style={{ userSelect: 'none' }}\r\n secondary={`{${e.toString()}}`}\r\n />\r\n ))}\r\n \r\n \r\n \r\n )}\r\n {(selectedTemplate?.fileType === ApisTemplateFileTypes.Txt ||\r\n fileType === ApisTemplateFileTypes.Txt) && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {(selectedTemplate?.fileType === ApisTemplateFileTypes.Txt ||\r\n fileType === ApisTemplateFileTypes.Txt) && (\r\n \r\n Keywords\r\n \r\n \r\n {getTemplateKeywords().map((e) => (\r\n addTemplateRepeatableKeyword(e)}\r\n style={{ userSelect: 'none' }}\r\n secondary={`{${e.toString()}}`}\r\n />\r\n ))}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n );\r\n };\r\n\r\nexport default ApisSettingsCountryPropertiesForm;\r\n","import * as yup from 'yup';\r\n\r\nimport Constants from '../../utils/Constants';\r\nimport formatString from '../../utils/Strings';\r\nimport {ApisTemplateTypes} from './ApisTemplateTypes';\r\nimport {ApisTemplateModes, ApisTemplateSubTypes} from './ApisTemplateModes';\r\nimport {ApisTemplateFileTypes} from './ApisTemplateFileTypes';\r\n\r\nexport interface IApisTemplatesForm {\r\n code: string;\r\n type: ApisTemplateTypes;\r\n mode?: ApisTemplateModes;\r\n fileType: ApisTemplateFileTypes;\r\n nbrLinesTemplate: number;\r\n nbrLinesTemplateRepeatable: number;\r\n template: string;\r\n templateRepeatable: string;\r\n templateFile?: FileList;\r\n templateRepeatableFile?: FileList;\r\n subType?: string;\r\n}\r\n\r\nexport const IApisTemplatesFormSchema = yup.object().shape({\r\n code: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(2, formatString(Constants.validation.max, 2))\r\n .matches(/[A-Za-z]{2}/, {\r\n message: 'Country code can only have 2 letters',\r\n }),\r\n\r\n type: yup\r\n .string()\r\n .oneOf(Object.values(ApisTemplateTypes))\r\n .required(Constants.validation.required),\r\n\r\n mode: yup.string()\r\n .when('type', {\r\n is: ApisTemplateTypes.MCL,\r\n then: yup.string().nullable().notRequired().optional(),\r\n otherwise: yup\r\n .string()\r\n .when('subType', {\r\n is: ApisTemplateSubTypes.Overflying,\r\n then: yup.string().nullable().notRequired().optional(),\r\n otherwise: yup\r\n .string()\r\n .oneOf(Object.values(ApisTemplateModes))\r\n .required(Constants.validation.required),\r\n })\r\n }),\r\n\r\n fileType: yup\r\n .string()\r\n .oneOf(Object.values(ApisTemplateFileTypes))\r\n .required(Constants.validation.required),\r\n\r\n nbrLinesTemplate: yup\r\n .number()\r\n .nullable()\r\n .notRequired()\r\n .when('fileType', {\r\n is: ApisTemplateFileTypes.Txt,\r\n then: yup\r\n .number()\r\n .required(Constants.validation.required)\r\n .nullable(false)\r\n .min(0, formatString(Constants.validation.maxNumeric, 0))\r\n .typeError(Constants.validation.invalidNumber)\r\n .transform((val) => (isNaN(val) ? null : val)),\r\n }),\r\n\r\n nbrLinesTemplateRepeatable: yup\r\n .number()\r\n .nullable()\r\n .notRequired()\r\n .when('fileType', {\r\n is: ApisTemplateFileTypes.Txt,\r\n then: yup\r\n .number()\r\n .required(Constants.validation.required)\r\n .nullable(false)\r\n .min(0, formatString(Constants.validation.maxNumeric, 0))\r\n .typeError(Constants.validation.invalidNumber)\r\n .transform((val) => (isNaN(val) ? null : val)),\r\n }),\r\n\r\n template: yup.string()\r\n .when('fileType', {\r\n is: ApisTemplateFileTypes.Txt,\r\n then: yup.string().required(),\r\n otherwise: yup.string().optional().notRequired()\r\n }),\r\n templateRepeatable: yup.string().nullable().notRequired(),\r\n});\r\n","import React from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Grid} from '@material-ui/core';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport {\r\n useApisSettingsTemplatesPageContext\r\n} from '../../../context/settings/ApisSettingsTemplatesPageContext/ApisSettingsTemplatesPageContext';\r\nimport ApisSettingsTemplatesForm from './ApisSettingsTemplatesForm';\r\nimport {IApisTemplatesForm, IApisTemplatesFormSchema,} from '../../../models/Settings/IApisTemplatesFormSchema';\r\nimport {IApisTemplate} from '../../../models/IApisTemplate';\r\nimport Dialog from '../../commons/Dialog';\r\nimport DialogCancelButton from '../../commons/Dialog/DialogCancelButton';\r\nimport DialogButton from '../../commons/Dialog/DialogButton';\r\nimport DialogActions from '../../commons/Dialog/DialogActions';\r\nimport DialogContent from '../../commons/Dialog/DialogContent';\r\nimport DrawerTitle from '../../commons/Drawer/DrawerTitle';\r\n\r\nconst ApisSettingsTemplatesDrawer: React.FC = () => {\r\n const {\r\n drawerOpen,\r\n closeDrawer,\r\n creating,\r\n addTemplate,\r\n updateTemplate,\r\n selectedTemplate,\r\n } = useApisSettingsTemplatesPageContext();\r\n\r\n const form = useForm({\r\n resolver: yupResolver(IApisTemplatesFormSchema),\r\n mode: 'onChange',\r\n });\r\n\r\n const handleSubmit = (data: IApisTemplatesForm) => {\r\n if (!form.formState.isValid) return;\r\n\r\n const req = {\r\n countryCode: data.code ?? '',\r\n mode: data.mode ?? '',\r\n fileType: data.fileType ?? '',\r\n nbrLinesTemplate: data.nbrLinesTemplate ?? 0,\r\n template: data.template ?? '',\r\n nbrLinesTemplateRepeatable: data.nbrLinesTemplateRepeatable ?? 0,\r\n templateRepeatable: data.templateRepeatable ?? '',\r\n type: data.type ?? '',\r\n subType: data.subType ?? '',\r\n templateFile: data.templateFile ? data.templateFile[0] : null,\r\n templateRepeatableFile: data.templateRepeatableFile\r\n ? data.templateRepeatableFile[0]\r\n : null,\r\n } as IApisTemplate;\r\n\r\n if (selectedTemplate) {\r\n updateTemplate({ ...selectedTemplate, ...req });\r\n } else {\r\n addTemplate(req);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n Template Settings\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {}}\r\n text=\"VALIDATE\"\r\n loading={creating}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ApisSettingsTemplatesDrawer;\r\n","import React, {useEffect} from 'react';\r\nimport Box from '@material-ui/core/Box/Box';\r\nimport AddButton from '../../../../components/commons/AddButton';\r\nimport {Grid, LinearProgress} from '@material-ui/core';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport {\r\n useApisSettingsTemplatesPageContext\r\n} from '../../../../context/settings/ApisSettingsTemplatesPageContext/ApisSettingsTemplatesPageContext';\r\nimport ApisSettingsTemplatesGrid from '../../../../components/ApisSettings/Templates/ApisSettingsTemplatesGrid';\r\nimport ApisSettingsTemplatesDrawer from '../../../../components/ApisSettings/Templates/ApisSettingsTemplatesDrawer';\r\n\r\nfunction ApisTemplatesTab() {\r\n const { openAddFormDrawer, loading, loaded, fetchTemplates } =\r\n useApisSettingsTemplatesPageContext();\r\n\r\n useEffect(() => {\r\n fetchTemplates();\r\n }, []);\r\n\r\n return (\r\n \r\n openAddFormDrawer()}\r\n >\r\n Add a template\r\n \r\n \r\n \r\n {loading || !loaded ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ApisTemplatesTab;\r\n","import React from 'react';\r\n\r\nimport {Box, ButtonBase, Link} from '@material-ui/core';\r\nimport NoResult from '../../commons/NoResult/NoResult';\r\nimport Table from '../../commons/Table/Table';\r\nimport {\r\n useApisSettingsCountryPropertiesPageContext\r\n} from '../../../context/settings/ApisSettingsCountryPropertiesPageContext/ApisSettingsCountryPropertiesPageContext';\r\n\r\nconst ApisSettingsCountryPropertiesGrid: React.FC = () => {\r\n const {\r\n countryProperties,\r\n confirmDeleteCountryProperty,\r\n selectCountryProperty,\r\n } = useApisSettingsCountryPropertiesPageContext();\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'Country Code',\r\n width: '25%',\r\n accessor: 'countryCode',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.countryCode}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Receivers',\r\n width: '25%',\r\n accessor: 'receivers',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.receivers}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Start Sequence',\r\n width: '25%',\r\n accessor: 'startSequence',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.startSequence}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'CR Type',\r\n width: '25%',\r\n accessor: 'crType',\r\n Cell: ({ row }: any) => (\r\n {row.original.crType}\r\n ),\r\n },\r\n {\r\n Header: '',\r\n accessor: 'updateKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n selectCountryProperty(row.original)}>\r\n See more or edit\r\n \r\n \r\n ),\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n \r\n confirmDeleteCountryProperty(\r\n row.original.apisCountryPropertiesId\r\n )\r\n }\r\n >\r\n Delete\r\n \r\n \r\n ),\r\n },\r\n ],\r\n []\r\n );\r\n\r\n return (\r\n <>\r\n {countryProperties.length > 0 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ApisSettingsCountryPropertiesGrid;\r\n","import React from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\nimport {Grid} from '@material-ui/core';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport useCountries from '../../../hooks/useCountries';\r\nimport Select from '../../commons/Select';\r\nimport {IApisCountryPropertiesForm} from '../../../models/Settings/IApisCountryPropertiesFormSchema';\r\nimport TextField from '../../commons/TextField';\r\nimport FormControl from '../../commons/FormControl';\r\nimport {CheckboxControlled} from '../../commons/Checkbox';\r\nimport styles from '../../Airports/AirportImmigrationInfo/AirportImmigrationInfo.module.scss';\r\nimport {IApisCountryProperty} from '../../../models/IApisCountryProperty';\r\n\r\nexport interface IApisSettingsCountryPropertiesFormProps {\r\n selectedCountryProperty?: IApisCountryProperty;\r\n form: UseFormMethods;\r\n}\r\n\r\nconst ApisSettingsCountryPropertiesForm: React.FC<\r\n IApisSettingsCountryPropertiesFormProps\r\n> = ({ selectedCountryProperty, form: { register, errors, control } }) => {\r\n const countries = useCountries();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n ({\r\n value: country.countryCode,\r\n label: `${country.countryCode} - ${country.countryName}`,\r\n }))}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ApisSettingsCountryPropertiesForm;\r\n","import * as yup from 'yup';\r\n\r\nimport Constants from '../../utils/Constants';\r\nimport formatString from '../../utils/Strings';\r\n\r\nexport interface IApisCountryPropertiesForm {\r\n code: string;\r\n startSequence: number;\r\n receivers?: string;\r\n unaHeader?: string;\r\n bgm?: string;\r\n bgmCloseDoor?: string;\r\n crType?: string;\r\n crTypeSimple?: string;\r\n transTimeOverflying?: number;\r\n transTimeInbound?: number;\r\n transTimeOutbound?: number;\r\n transTimeOther?: number;\r\n transDoorClose?: number;\r\n excludeSchengenCountries?: boolean;\r\n bgmInternal?: string;\r\n bgmOverflying?: string;\r\n}\r\n\r\nexport const IApisCountryPropertiesFormSchema = yup.object().shape({\r\n code: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(2, formatString(Constants.validation.max, 2))\r\n .matches(/[A-Za-z]{2}/, {\r\n message: 'Country code can only have 2 letters',\r\n }),\r\n\r\n startSequence: yup\r\n .number()\r\n .min(0, formatString(Constants.validation.maxNumeric, 0))\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.invalidNumber),\r\n\r\n receivers: yup\r\n .string()\r\n .max(100, formatString(Constants.validation.max, 100))\r\n .nullable()\r\n .notRequired(),\r\n\r\n unaHeader: yup\r\n .string()\r\n .max(50, formatString(Constants.validation.max, 50))\r\n .nullable()\r\n .notRequired(),\r\n\r\n bgm: yup\r\n .string()\r\n .max(50, formatString(Constants.validation.max, 50))\r\n .nullable()\r\n .notRequired(),\r\n bgmCloseDoor: yup\r\n .string()\r\n .max(50, formatString(Constants.validation.max, 50))\r\n .nullable()\r\n .notRequired(),\r\n bgmInternal: yup\r\n .string()\r\n .max(50, formatString(Constants.validation.max, 50))\r\n .nullable()\r\n .notRequired(),\r\n bgmOverflying: yup\r\n .string()\r\n .max(50, formatString(Constants.validation.max, 50))\r\n .nullable()\r\n .notRequired(),\r\n crType: yup\r\n .string()\r\n .max(10, formatString(Constants.validation.max, 10))\r\n .nullable()\r\n .notRequired(),\r\n crTypeSimple: yup\r\n .string()\r\n .max(10, formatString(Constants.validation.max, 10))\r\n .nullable()\r\n .notRequired(),\r\n transTimeInbound: yup\r\n .number()\r\n .nullable()\r\n .notRequired()\r\n .min(0, formatString(Constants.validation.maxNumeric, 0))\r\n .typeError(Constants.validation.invalidNumber)\r\n .transform((val) => (isNaN(val) ? null : val)),\r\n transTimeOverflying: yup\r\n .number()\r\n .nullable()\r\n .notRequired()\r\n .min(0, formatString(Constants.validation.maxNumeric, 0))\r\n .typeError(Constants.validation.invalidNumber)\r\n .transform((val) => (isNaN(val) ? null : val)),\r\n transTimeOutbound: yup\r\n .number()\r\n .nullable()\r\n .notRequired()\r\n .min(0, formatString(Constants.validation.maxNumeric, 0))\r\n .typeError(Constants.validation.invalidNumber)\r\n .transform((val) => (isNaN(val) ? null : val)),\r\n transTimeOther: yup\r\n .number()\r\n .nullable()\r\n .notRequired()\r\n .min(0, formatString(Constants.validation.maxNumeric, 0))\r\n .typeError(Constants.validation.invalidNumber)\r\n .transform((val) => (isNaN(val) ? null : val)),\r\n transDoorClose: yup\r\n .number()\r\n .nullable()\r\n .notRequired()\r\n .min(0, formatString(Constants.validation.maxNumeric, 0))\r\n .typeError(Constants.validation.invalidNumber)\r\n .transform((val) => (isNaN(val) ? null : val)),\r\n excludeSchengenCountries: yup.boolean().notRequired(),\r\n});\r\n","import React from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Grid} from '@material-ui/core';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Drawer from '../../commons/Drawer/Drawer';\r\nimport DrawerActions from '../../commons/Drawer/DrawerActions';\r\nimport DrawerButton from '../../commons/Drawer/DrawerButton';\r\nimport DrawerCancelButton from '../../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../../commons/Drawer/DrawerContent';\r\nimport DrawerTitle from '../../commons/Drawer/DrawerTitle';\r\nimport {\r\n useApisSettingsCountryPropertiesPageContext\r\n} from '../../../context/settings/ApisSettingsCountryPropertiesPageContext/ApisSettingsCountryPropertiesPageContext';\r\nimport ApisSettingsCountryPropertiesForm from './ApisSettingsCountryPropertiesForm';\r\nimport {\r\n IApisCountryPropertiesForm,\r\n IApisCountryPropertiesFormSchema,\r\n} from '../../../models/Settings/IApisCountryPropertiesFormSchema';\r\nimport {IApisCountryProperty} from '../../../models/IApisCountryProperty';\r\n\r\nconst ApisSettingsCountryPropertiesDrawer: React.FC = () => {\r\n const {\r\n drawerOpen,\r\n closeDrawer,\r\n creating,\r\n addCountryProperty,\r\n updateCountryProperty,\r\n selectedCountryProperty,\r\n } = useApisSettingsCountryPropertiesPageContext();\r\n\r\n const form = useForm({\r\n resolver: yupResolver(IApisCountryPropertiesFormSchema),\r\n mode: 'onChange',\r\n });\r\n\r\n const handleSubmit = (data: IApisCountryPropertiesForm) => {\r\n if (!form.formState.isValid) return;\r\n\r\n const req = {\r\n countryCode: data.code,\r\n bgm: data.bgm,\r\n bgmCloseDoor: data.bgmCloseDoor,\r\n crType: data.crType,\r\n crTypeSimple: data.crTypeSimple,\r\n receivers: data.receivers,\r\n startSequence: data.startSequence,\r\n excludeSchengen: data.excludeSchengenCountries,\r\n transDoorClose: data.transDoorClose,\r\n transTimeOverflying: data.transTimeOverflying,\r\n transTimeInbound: data.transTimeInbound,\r\n transTimeOther: data.transTimeOther,\r\n transTimeOutbound: data.transTimeOutbound,\r\n unaHeader: data.unaHeader,\r\n bgmInternal: data.bgmInternal,\r\n bgmOverflying: data.bgmOverflying,\r\n } as IApisCountryProperty;\r\n\r\n if (selectedCountryProperty) {\r\n updateCountryProperty({ ...selectedCountryProperty, ...req });\r\n } else {\r\n addCountryProperty(req);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n Country Properties\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {}}\r\n text=\"VALIDATE\"\r\n loading={creating}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ApisSettingsCountryPropertiesDrawer;\r\n","import React, {useEffect} from 'react';\r\nimport AddButton from '../../../../components/commons/AddButton';\r\nimport Box from '@material-ui/core/Box/Box';\r\nimport {Grid, LinearProgress} from '@material-ui/core';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport {\r\n useApisSettingsCountryPropertiesPageContext\r\n} from '../../../../context/settings/ApisSettingsCountryPropertiesPageContext/ApisSettingsCountryPropertiesPageContext';\r\nimport ApisSettingsCountryPropertiesGrid\r\n from '../../../../components/ApisSettings/Properties/ApisSettingsCountryPropertiesGrid';\r\nimport ApisSettingsCountryPropertiesDrawer\r\n from '../../../../components/ApisSettings/Properties/ApisSettingsCountryPropertiesDrawer';\r\n\r\nfunction ApisPropertiesTab() {\r\n const { loading, loaded, fetchCountryProperties, openAddFormDrawer } =\r\n useApisSettingsCountryPropertiesPageContext();\r\n\r\n useEffect(() => {\r\n fetchCountryProperties();\r\n }, []);\r\n\r\n return (\r\n \r\n openAddFormDrawer()}\r\n >\r\n Add properties for a country\r\n \r\n \r\n \r\n {loading || !loaded ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ApisPropertiesTab;\r\n","import React from 'react';\r\nimport IRoute from '../models/IRoute';\r\nimport PermissionsList from '../utils/PermissionsList';\r\nimport ApisSchengenCountriesTab from '../pages/settings/apis/ShengenCountriesTab/ApisSchengenCountriesTab';\r\nimport ApisSettingsSchengenCountriesPageProvider\r\n from '../context/settings/ApisSettingsSchengenCountriesPageContext/ApisSettingsSchengenCountriesPageProvider';\r\nimport ApisSettingsCountryPropertiesPageProvider\r\n from '../context/settings/ApisSettingsCountryPropertiesPageContext/ApisSettingsCountryPropertiesPageContext';\r\nimport ApisSettingsTemplatesPageProvider\r\n from '../context/settings/ApisSettingsTemplatesPageContext/ApisSettingsTemplatesPageContext';\r\nimport ApisTemplatesTab from '../pages/settings/apis/TemplatesTab/ApisTemplatesTab';\r\nimport ApisPropertiesTab from '../pages/settings/apis/PropertiesTab/ApisPropertiesTab';\r\n\r\nconst ApisConfigurationRoutes: IRoute[] = [\r\n {\r\n path: '/settings/apis/properties',\r\n name: 'Properties',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelSettingsApisConfiguration,\r\n },\r\n {\r\n path: '/settings/apis/templates',\r\n name: 'Templates',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelSettingsApisConfiguration,\r\n },\r\n {\r\n path: '/settings/apis/schengen-countries',\r\n name: 'Schengen Countries',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelSettingsApisConfiguration,\r\n },\r\n];\r\n\r\nexport default ApisConfigurationRoutes;\r\n","import React from 'react';\r\nimport PageContent from '../../../components/PageContent';\r\nimport NavTabs from '../../../components/commons/NavTabs';\r\nimport Routes from '../../../components/Routes';\r\nimport ApisConfigurationRoutes from '../../../routes/ApisConfigurationRoutes';\r\n\r\nfunction ApisPage() {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ApisPage;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as DeleteIcon} from '../../../assets/icons/deleteBin.svg';\r\nimport {ReactComponent as EditIcon} from '../../../assets/icons/edit.svg';\r\nimport AddButton from '../../../components/commons/AddButton/AddButton';\r\nimport Dialog from '../../../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../../../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../components/commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../components/commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../components/commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../components/commons/Dialog/DialogTitle';\r\nimport Drawer from '../../../components/commons/Drawer/Drawer';\r\nimport DrawerActions from '../../../components/commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../../../components/commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../../../components/commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../../../components/commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../../../components/commons/Drawer/DrawerTitle';\r\nimport FormControl from '../../../components/commons/FormControl/FormControl';\r\nimport Table from '../../../components/commons/Table/Table';\r\nimport TableIconButton from '../../../components/commons/TableIconButton/TableIconButton';\r\nimport TextField from '../../../components/commons/TextField/TextField';\r\nimport PageContent from '../../../components/PageContent/PageContent';\r\nimport {\r\n useBlockFlightSettingContext\r\n} from '../../../context/settings/BlockFlightSettingContext/BlockFlightSettingProvider';\r\nimport {\r\n BlockFlightSettingActionType\r\n} from '../../../context/settings/BlockFlightSettingContext/BlockFlightSettingReducer';\r\nimport {useModal} from '../../../hooks/useModal';\r\nimport IBlockFlightReason from '../../../models/BlockFlights/IBlockFlightReason';\r\nimport baseStyles from '../../../styles/styles.module.scss';\r\nimport Constants from '../../../utils/Constants';\r\nimport isRequiredFieldMissing from '../../../utils/Forms';\r\nimport formatString from '../../../utils/Strings';\r\n\r\nexport const BlockFlightReasonFormSchema = yup.object().shape({\r\n reason: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n});\r\n\r\nexport const DefaultBlockFlightReason: IBlockFlightReason = {\r\n reasonId: 0,\r\n reason: '',\r\n canDelete: false,\r\n};\r\n\r\nconst BlockFlightSettingPage: React.FC = () => {\r\n const { state, dispatch, submitReason, deleteSelectedReason } =\r\n useBlockFlightSettingContext();\r\n const {\r\n showModal: showDrawer,\r\n hideModal: hideDrawer,\r\n isVisible: isVisibleDrawer,\r\n } = useModal();\r\n const {\r\n showModal: showConfirmationDialog,\r\n hideModal: hideConfirmationDialog,\r\n isVisible: isVisibleConfirmationDialog,\r\n } = useModal();\r\n const form = useForm({\r\n resolver: yupResolver(BlockFlightReasonFormSchema),\r\n mode: 'onChange',\r\n });\r\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(true);\r\n\r\n useEffect(() => {\r\n let disabled =\r\n isRequiredFieldMissing(BlockFlightReasonFormSchema, form.getValues) ||\r\n !form.formState.isDirty;\r\n setIsSubmitDisabled(disabled);\r\n }, [form.formState.isValid, form.control, form.formState.isDirty]);\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'ID',\r\n accessor: 'reasonId',\r\n width: '23%',\r\n },\r\n {\r\n Header: 'Reason',\r\n accessor: 'reason',\r\n width: '65%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actions',\r\n Cell: ({ row }: any) => (\r\n \r\n handleEdit(row.original)}>\r\n \r\n \r\n \r\n {row.original.canDelete ? (\r\n handleDelete(row.original)}>\r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n ),\r\n width: '12%',\r\n disableSortBy: true,\r\n },\r\n ],\r\n []\r\n );\r\n\r\n const handleSubmit = (reason: IBlockFlightReason) => {\r\n submitReason(\r\n state.selectedReason\r\n ? { ...state.selectedReason, ...reason }\r\n : { ...DefaultBlockFlightReason, ...reason }\r\n );\r\n hideDrawer();\r\n };\r\n\r\n const handleConfirmDelete = () => {\r\n deleteSelectedReason();\r\n hideConfirmationDialog();\r\n };\r\n\r\n const handleAdd = async () => {\r\n dispatch({\r\n type: BlockFlightSettingActionType.SELECT_REASON,\r\n payload: null,\r\n });\r\n showDrawer();\r\n };\r\n\r\n const handleEdit = async (reason: IBlockFlightReason) => {\r\n dispatch({\r\n type: BlockFlightSettingActionType.SELECT_REASON,\r\n payload: reason,\r\n });\r\n showDrawer();\r\n };\r\n\r\n const handleDelete = async (reason: IBlockFlightReason) => {\r\n dispatch({\r\n type: BlockFlightSettingActionType.SELECT_REASON,\r\n payload: reason,\r\n });\r\n showConfirmationDialog();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Add a Reason\r\n \r\n \r\n {state.reasons && state.reasons.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {state.selectedReason ? 'Modify Reason' : 'Add a Reason'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n hideDrawer()}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n You are going to delete reason\r\n {`${state.selectedReason?.reasonId} - ${state.selectedReason?.reason}`}\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n {\r\n dispatch({\r\n type: BlockFlightSettingActionType.SELECT_REASON,\r\n payload: null,\r\n });\r\n hideConfirmationDialog();\r\n }}\r\n />\r\n handleConfirmDelete()}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BlockFlightSettingPage;\r\n","import React, {useEffect, useState} from 'react';\r\n\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Skeleton from '@material-ui/lab/Skeleton';\r\n\r\nimport PageContent from '../../components/PageContent/PageContent';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IWCMPage from '../../models/IWCMPage';\r\nimport WCMPageService from '../../services/WCMPageService';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\n\r\nconst TravelEmergencyContactPage: React.FC = () => {\r\n const [wcmPage, setWcmPage] = useState(null);\r\n const [requestFailed, setRequestFailed] = useState(false);\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n fetchWCMPage();\r\n }, []);\r\n\r\n const fetchWCMPage = async () => {\r\n WCMPageService.getByName('Travel Emergency Hotline')\r\n .then((result) => setWcmPage(result))\r\n .catch((error) => {\r\n addMessage(error.message);\r\n setRequestFailed(true);\r\n });\r\n };\r\n\r\n return (\r\n \r\n {requestFailed ? (\r\n \r\n Oops, Something went wrong, could not retrieve the contact\r\n informations.\r\n \r\n ) : wcmPage ? (\r\n \r\n
    \r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default TravelEmergencyContactPage;\r\n","import React, {useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport {useHistory} from 'react-router-dom';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Box, Button, Grid, Radio, Typography} from '@material-ui/core';\r\n\r\nimport NoResult from '../../../../components/commons/NoResult/NoResult';\r\nimport SearchButton from '../../../../components/commons/SearchButton/SearchButton';\r\nimport Table from '../../../../components/commons/Table/Table';\r\nimport TextField from '../../../../components/commons/TextField/TextField';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport {useLocalStorageContext} from '../../../../context/LocalStorageContext/LocalStorageContext';\r\nimport {LocalStorageActionType} from '../../../../context/LocalStorageContext/LocalStorageReducer';\r\nimport useSnackbar from '../../../../hooks/useSnackbar';\r\nimport IConnectAsItem from '../../../../models/IConnectAsItem';\r\nimport MemberService from '../../../../services/MemberService';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\nimport formatString, {highlightSearchText} from '../../../../utils/Strings';\r\n\r\nconst ConnectAsFormSchema = yup.object().shape({\r\n search: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n});\r\n\r\nconst ConnectAsPage: React.FC = () => {\r\n const { register, errors, handleSubmit, watch } = useForm({\r\n resolver: yupResolver(ConnectAsFormSchema),\r\n });\r\n const [data, setData] = useState();\r\n const { addMessage } = useSnackbar();\r\n const { dispatch } = useLocalStorageContext();\r\n const history = useHistory();\r\n\r\n const searchWatch: string = watch('search');\r\n const [selectedMemberId, setSelectedMemberId] = React.useState(0);\r\n const [selectedMember, setSelectedMember] =\r\n React.useState(null);\r\n\r\n const handleSelected = (event: any) => {\r\n let memberId = parseInt(event.target.value);\r\n setSelectedMemberId(memberId);\r\n let member = data?.find((x) => x.memberId === memberId);\r\n setSelectedMember(member ?? null);\r\n };\r\n\r\n const handleSearch = (formData: any) => {\r\n MemberService.getAuthorizedImpersonationList(\r\n formData.search?.trimStart().trimEnd()\r\n )\r\n .then((response) => setData(response))\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const handleConnectAs = async () => {\r\n dispatch({\r\n type: LocalStorageActionType.CONNECTED_MEMBER,\r\n payload: JSON.stringify(selectedMember),\r\n });\r\n dispatch({\r\n type: LocalStorageActionType.SET_IS_BOOKING_CANCELLED,\r\n payload: 'true',\r\n });\r\n handleRedirect('/reservations/myReservations');\r\n };\r\n\r\n const handleRedirect = (url: string) => {\r\n history.push(url);\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: '',\r\n accessor: 'selected',\r\n width: '5%',\r\n Cell: ({ row }: any) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Name',\r\n accessor: 'fullName',\r\n width: '15%',\r\n Cell: ({ row }: any) =>\r\n highlightSearchText(row.original.fullName, searchWatch),\r\n },\r\n {\r\n Header: 'Relation',\r\n accessor: 'relation',\r\n width: '15%',\r\n },\r\n {\r\n Header: 'EmpID',\r\n accessor: 'employeeId',\r\n width: '15%',\r\n },\r\n {\r\n Header: 'Family Members or Employees associated',\r\n accessor: 'members',\r\n Cell: ({ row }: any) => (\r\n \r\n {highlightSearchText(row.original.members, searchWatch)}\r\n \r\n ),\r\n },\r\n ],\r\n [data, selectedMemberId]\r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n By connect as another person, you will be able to make a reservation\r\n for her and view and edit personal information.\r\n \r\n \r\n \r\n \r\n Find the person you want to connect as{' '}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n = 3\r\n )\r\n }\r\n >\r\n Search member\r\n \r\n \r\n \r\n \r\n \r\n {data && data.length > 0 ? (\r\n <>\r\n {\r\n return {\r\n onClick: () => {\r\n handleSelected({\r\n target: {\r\n value: row.original.memberId,\r\n },\r\n });\r\n },\r\n className: `${baseStyles.clickableRow}`,\r\n };\r\n }}\r\n fixed\r\n >\r\n \r\n \r\n Connect as\r\n \r\n \r\n \r\n ) : (\r\n data?.length === 0 && (\r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n );\r\n};\r\nexport default ConnectAsPage;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport Button from '@material-ui/core/Button';\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\nimport { ReactComponent as AttachedFileIcon } from '../../../assets/icons/attachedFile.svg';\r\nimport { ReactComponent as UploadFileIcon } from '../../../assets/icons/uploadFile.svg';\r\nimport useSnackbar from '../../../hooks/useSnackbar';\r\nimport IFile from '../../../models/IFile';\r\nimport ImmigrationDocumentService from '../../../services/ImmigrationDocumentService';\r\nimport styles from './FileUpload.module.scss';\r\nimport { DialogTitle, Dialog, DialogContent } from '@material-ui/core';\r\n\r\ninterface ISingleControlledFileUploadProps {\r\n text: string;\r\n name: string;\r\n initialFile?: {\r\n name: string;\r\n uri: string;\r\n documentId: number;\r\n memberId: number;\r\n };\r\n readonly?: boolean;\r\n accept?: string;\r\n color?: 'primary' | 'secondary';\r\n form: any;\r\n onFileChange?: (currentFiles: IFile[], newFiles: IFile[]) => void;\r\n onFileDelete?: (index: number) => void;\r\n error?: boolean;\r\n helperText?: React.ReactNode;\r\n useOriginalFile?: boolean;\r\n}\r\n\r\ninterface ISingleControlledFileUploadState {\r\n loaded: boolean;\r\n file: File | null;\r\n}\r\n\r\nconst SingleControlledFileUpload: React.FC = ({\r\n text,\r\n name,\r\n initialFile,\r\n readonly,\r\n accept,\r\n form: { setValue, errors, register },\r\n color = 'primary',\r\n error,\r\n helperText,\r\n}) => {\r\n const { addMessage } = useSnackbar();\r\n\r\n const [state, setState] = useState({\r\n loaded: false,\r\n file: null,\r\n });\r\n\r\n useEffect(() => {\r\n if (initialFile) {\r\n ImmigrationDocumentService.getImmigrationDocumentAttachment({\r\n documentId: initialFile.documentId,\r\n memberId: initialFile.memberId,\r\n })\r\n .then((blob) => {\r\n const file = new File([blob], initialFile.name);\r\n setState({ loaded: true, file: file });\r\n })\r\n .catch(() => {\r\n addMessage(\"Couldn't load current file, please re-upload the file\");\r\n setState({ ...state, loaded: true });\r\n });\r\n } else {\r\n setState({ ...state, loaded: true });\r\n }\r\n }, []);\r\n\r\n const buildFileList = (files: any): FileList => {\r\n var b = new ClipboardEvent('').clipboardData || new DataTransfer();\r\n for (var i = 0, len = files.length; i < len; i++) b.items.add(files[i]);\r\n return b.files;\r\n };\r\n\r\n useEffect(() => {\r\n if (state.file && state.file instanceof File) {\r\n setValue(name, buildFileList([state.file]), { shouldValidate: true });\r\n }\r\n }, [state.file, name]);\r\n\r\n // function to read file as binary and return\r\n const getFileFromInput = (file: File): Promise => {\r\n return new Promise(function(resolve, reject) {\r\n const reader = new FileReader();\r\n reader.onerror = reject;\r\n reader.onload = function() {\r\n let base64String = reader.result?.toString();\r\n resolve({ fileName: file.name, content: base64String ?? '' });\r\n };\r\n reader.readAsDataURL(file); // Read to base64.\r\n });\r\n };\r\n\r\n const errorRender = (errors: any) => {\r\n if (error || helperText) {\r\n return (\r\n \r\n {helperText}\r\n \r\n );\r\n }\r\n\r\n if (!errors || !errors[name]) {\r\n return '';\r\n }\r\n const errorMessages = errors[name].message\r\n ? [errors[name].message]\r\n : Object.values(errors[name]).map((error: any) => error.message);\r\n\r\n return errorMessages.map((message, index) => (\r\n \r\n {message}\r\n \r\n ));\r\n };\r\n\r\n return (\r\n \r\n \r\n {\r\n const file = event.target.files;\r\n setState({ ...state, file: file === null ? null : file[0] });\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nfunction FilePreview(props: { file: File | null }) {\r\n const { file } = props;\r\n const [open, setOpen] = useState(false);\r\n const [attachment, setAttachment] = useState();\r\n\r\n const handleViewFile = (file: File) => {\r\n showImage(file);\r\n };\r\n\r\n const showImage = (file: File) => {\r\n const urlCreator = window.URL || window.webkitURL;\r\n const imageUrl = urlCreator.createObjectURL(file);\r\n setAttachment(imageUrl);\r\n setOpen(true);\r\n }\r\n\r\n if (!file) {\r\n return <>;\r\n }\r\n\r\n return (\r\n <>\r\n file && handleViewFile(file)}\r\n >\r\n \r\n
    {file?.name ?? 'Unnamed File'}
    \r\n \r\n setOpen(false)}\r\n >\r\n Visa Image\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\n\r\nexport default SingleControlledFileUpload;\r\n","import moment from 'moment';\r\nimport React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport useCountries from '../../hooks/useCountries';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Constants from '../../utils/Constants';\r\nimport { GendersOptions } from '../../utils/Genders';\r\nimport DatePicker from '../commons/DatePicker';\r\nimport FormControl from '../commons/FormControl';\r\nimport Searchcomplete from '../commons/Searchcomplete';\r\nimport TextField from '../commons/TextField';\r\nimport { FormControlLabel, RadioGroup } from '@material-ui/core';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport { Controller, useFormContext } from 'react-hook-form';\r\nimport IImmigrationDocument from '../../models/IImmigrationDocument';\r\nimport SingleControlledFileUpload from '../commons/FileUpload/SingleControlledFileUpload';\r\n\r\ntype Props = {\r\n document?: IImmigrationDocument;\r\n};\r\n\r\nfunction PassportForm(props: Props) {\r\n const { document } = props;\r\n const { register, control, setValue, watch, errors } =\r\n useFormContext();\r\n const countries = useCountries();\r\n\r\n const watchIssueDate = watch('issueDate');\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setValue('firstName', e.currentTarget.value)\r\n }\r\n margin=\"normal\"\r\n placeholder=\"Martine\"\r\n fullWidth\r\n error={!!errors.firstName}\r\n helperText={errors.firstName ? errors.firstName.message : ''}\r\n />\r\n \r\n \r\n \r\n \r\n setValue('lastName', e.currentTarget.value)}\r\n inputRef={register}\r\n margin=\"normal\"\r\n placeholder=\"SCHMIDT\"\r\n fullWidth\r\n error={!!errors.lastName}\r\n helperText={errors.lastName ? errors.lastName.message : ''}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setValue('middleName', e.currentTarget.value)\r\n }\r\n inputRef={register}\r\n margin=\"normal\"\r\n placeholder=\"Louise\"\r\n fullWidth\r\n error={!!errors.middleName}\r\n helperText={errors.middleName ? errors.middleName.message : ''}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setValue('birthCity', e.currentTarget.value)\r\n }\r\n inputRef={register}\r\n placeholder=\"Ettelbruck\"\r\n margin=\"normal\"\r\n fullWidth\r\n error={!!errors.birthCity}\r\n helperText={errors.birthCity ? errors.birthCity.message : ''}\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n return {\r\n value: country.countryCode,\r\n label: country.countryName,\r\n };\r\n })}\r\n control={control}\r\n margin=\"normal\"\r\n placeholder=\"Luxembourg\"\r\n error={!!errors.birthCountryCode}\r\n errorMessage={\r\n errors.birthCountryCode\r\n ? (errors.birthCountryCode as any)?.message\r\n : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setValue('birthState', e.currentTarget.value)\r\n }\r\n inputRef={register}\r\n placeholder=\"Diekirch\"\r\n margin=\"normal\"\r\n fullWidth\r\n error={!!errors.birthState}\r\n helperText={errors.birthState ? errors.birthState.message : ''}\r\n />\r\n \r\n \r\n \r\n \r\n ({\r\n value: country.countryCode,\r\n label: country.countryName,\r\n }))}\r\n control={control}\r\n error={!!errors.nationalityCode}\r\n errorMessage={\r\n errors.nationalityCode\r\n ? (errors.nationalityCode as any)?.message\r\n : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n (\r\n \r\n {GendersOptions.map((g) => (\r\n }\r\n label={g.label}\r\n />\r\n ))}\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default PassportForm;\r\n","import * as yup from 'yup';\r\nimport Constants from '../../utils/Constants';\r\nimport formatString from '../../utils/Strings';\r\nimport moment from 'moment/moment';\r\n\r\nconst onlyLetters = /^[A-Za-z\\s]+$/;\r\n\r\nexport const PassportCreateSchema = yup.object().shape({\r\n documentName: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 150)),\r\n gender: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(1, formatString(Constants.validation.max, 1)),\r\n firstName: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150))\r\n .matches(onlyLetters, 'Only letters allowed'),\r\n middleName: yup\r\n .string()\r\n .nullable()\r\n .notRequired()\r\n .matches(onlyLetters, {\r\n message: 'Only letters allowed',\r\n excludeEmptyString: true,\r\n })\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n lastName: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .matches(onlyLetters, 'Only letters allowed')\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n birthDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .max(moment().endOf('day').toDate(), Constants.validation.maxDate)\r\n .typeError(Constants.validation.invalidDate),\r\n birthCity: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n birthCountryCode: yup\r\n .object()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n birthState: yup.string().max(50, formatString(Constants.validation.max, 50)),\r\n issueDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .max(moment().endOf('day').toDate(), Constants.validation.maxDate)\r\n .typeError(Constants.validation.invalidDate),\r\n expiryDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.invalidDate)\r\n .min(\r\n yup.ref('issueDate'),\r\n Constants.validation.invalidDate + ' Please, check your document'\r\n ),\r\n passportNumber: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .matches(/^[a-zA-Z0-9]+$/, 'Only alphabetic and numeric characters allowed')\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n nationalityCode: yup\r\n .object()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n file: yup\r\n .mixed()\r\n .test('checkFile', 'A file with content is required !', (value) => {\r\n return value?.length > 0;\r\n }),\r\n});\r\n\r\nexport const PassportUpdateSchema = yup.object().shape({\r\n documentName: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 150)),\r\n gender: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(1, formatString(Constants.validation.max, 1)),\r\n firstName: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150))\r\n .matches(onlyLetters, 'Only letters allowed'),\r\n middleName: yup\r\n .string()\r\n .nullable()\r\n .notRequired()\r\n .matches(onlyLetters, {\r\n message: 'Only letters allowed',\r\n excludeEmptyString: true,\r\n })\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n lastName: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .matches(onlyLetters, 'Only letters allowed')\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n birthDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .max(moment().endOf('day').toDate(), Constants.validation.maxDate)\r\n .typeError(Constants.validation.invalidDate),\r\n birthCity: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n birthCountryCode: yup\r\n .object()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n birthState: yup.string().max(50, formatString(Constants.validation.max, 50)),\r\n issueDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .max(moment().endOf('day').toDate(), Constants.validation.maxDate)\r\n .typeError(Constants.validation.invalidDate),\r\n expiryDate: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.invalidDate)\r\n .min(\r\n yup.ref('issueDate'),\r\n Constants.validation.invalidDate + ' Please, check your document'\r\n ),\r\n passportNumber: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .matches(/^[a-zA-Z0-9]+$/, 'Only alphabetic and numeric characters allowed')\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n nationalityCode: yup\r\n .object()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n file: yup\r\n .mixed()\r\n .test('checkFile', 'A file with content is required !', (value) => {\r\n return value?.length > 0;\r\n }),\r\n});\r\n\r\nexport const ImmigrationDocumentSchema = yup.object().shape(\r\n {\r\n documentType: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 150)),\r\n documentName: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 150)),\r\n gender: yup.string().when('documentType', {\r\n is: (documentType: string) => documentType === 'Passport',\r\n then: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(1, formatString(Constants.validation.max, 1)),\r\n }),\r\n firstName: yup.string().when('documentType', {\r\n is: (documentType: string) => documentType === 'Passport',\r\n then: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150))\r\n .matches(onlyLetters, 'Only alphabetic characters allowed'),\r\n }),\r\n middleName: yup.string().when('documentType', {\r\n is: (documentType: string) => documentType === 'Passport',\r\n then: yup\r\n .string()\r\n .matches(onlyLetters, 'Only alphabetic characters allowed')\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n }),\r\n lastName: yup.string().when('documentType', {\r\n is: (documentType: string) => documentType === 'Passport',\r\n then: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .matches(onlyLetters, 'Only alphabetic characters allowed')\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n }),\r\n birthDate: yup.date().when('documentType', {\r\n is: (documentType: string) => documentType === 'Passport',\r\n then: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .max(moment().endOf('day').toDate(), Constants.validation.maxDate)\r\n .typeError(Constants.validation.invalidDate),\r\n }),\r\n issueDate: yup.date().when('documentType', {\r\n is: (documentType: string) => documentType === 'Passport',\r\n then: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .max(moment().endOf('day').toDate(), Constants.validation.maxDate)\r\n .typeError(Constants.validation.invalidDate),\r\n }),\r\n expiryDate: yup.date().when('documentType', {\r\n is: (documentType: string) => documentType === 'Passport',\r\n then: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.invalidDate)\r\n .min(\r\n yup.ref('issueDate'),\r\n Constants.validation.invalidDate + ' Please, check your document'\r\n ),\r\n }),\r\n nationalityCode: yup.object().when('documentType', {\r\n is: (documentType: string) => documentType === 'Passport',\r\n then: yup\r\n .object()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n }),\r\n birthCountryCode: yup.object().when('documentType', {\r\n is: (documentType: string) => documentType === 'Passport',\r\n then: yup\r\n .object()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n }),\r\n passportNumber: yup.string().when('documentType', {\r\n is: (documentType: string) => documentType === 'Passport',\r\n then: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .matches(/^[a-zA-Z0-9]+$/, 'Only alphabetic and numeric characters allowed')\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n }),\r\n birthCity: yup.string().when('documentType', {\r\n is: (documentType: string) => documentType === 'Passport',\r\n then: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n }),\r\n birthState: yup.string().when('documentType', {\r\n is: (documentType: string) => documentType === 'Passport',\r\n then: yup.string().max(50, formatString(Constants.validation.max, 50)),\r\n }),\r\n file: yup\r\n .mixed()\r\n .test('checkFile', 'A file with content is required !', (value) => {\r\n return value?.length > 0;\r\n }),\r\n },\r\n []\r\n);\r\n\r\nexport const VisaSchema = yup.object().shape(\r\n {\r\n documentName: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 150)),\r\n file: yup\r\n .mixed()\r\n .test('checkFile', 'A file with content is required !', (value) => {\r\n return value?.length > 0;\r\n }),\r\n visaType: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 150)),\r\n expiryDate: yup.date()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.invalidDate),\r\n nationalityCode: yup\r\n .object()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n documentNumber: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .matches(/^[a-zA-Z0-9]+$/, 'Only letters and numbers allowed')\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n },\r\n []\r\n);\r\n","import React from 'react';\r\nimport { FormProvider, useForm } from 'react-hook-form';\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\nimport Drawer from '../commons/Drawer/Drawer';\r\nimport DrawerActions from '../commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../commons/Drawer/DrawerTitle';\r\nimport useBreakpoint from '../../hooks/useBreakpoint';\r\nimport { IModalReturn } from '../../hooks/useModal';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport ImmigrationDocumentService, {\r\n CreateImmigrationDocumentRequest,\r\n} from '../../services/ImmigrationDocumentService';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Constants from '../../utils/Constants';\r\nimport { MessageType } from '../../utils/MessageType';\r\nimport PassportForm from './PassportForm';\r\nimport { PassportDocumentForm } from '../../models/IImmigrationDocument';\r\nimport IFileV2 from '../../models/IFileV2';\r\nimport { PassportCreateSchema } from '../ImmigrationDocument/ImmigrationDocumentSchema';\r\n\r\ninterface IImmigrationDocumentCreationDrawerProps {\r\n modal: IModalReturn;\r\n memberId: number;\r\n fetchInformation: () => void;\r\n}\r\n\r\nconst PassportCreationDrawer: React.FC<\r\n IImmigrationDocumentCreationDrawerProps\r\n> = ({ modal, memberId, fetchInformation }) => {\r\n const { addMessage } = useSnackbar();\r\n const breakpoint = useBreakpoint();\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(PassportCreateSchema),\r\n defaultValues: {\r\n documentName: '',\r\n passportNumber: '',\r\n birthCity: '',\r\n birthCountryCode: undefined,\r\n birthState: '',\r\n file: undefined,\r\n firstName: '',\r\n lastName: '',\r\n middleName: '',\r\n gender: 'M',\r\n nationalityCode: undefined,\r\n },\r\n });\r\n\r\n const handleSubmit = (document: PassportDocumentForm) => {\r\n let documentFile: IFileV2 | null = null;\r\n if (document.file instanceof FileList) {\r\n documentFile = {\r\n content: document.file[0],\r\n fileName: document.file[0].name,\r\n };\r\n }\r\n if (document.file instanceof File) {\r\n documentFile = {\r\n content: document.file,\r\n fileName: document.file.name,\r\n };\r\n }\r\n const submitDoc: CreateImmigrationDocumentRequest = {\r\n memberId: memberId,\r\n birthCity: document.birthCity ?? undefined,\r\n birthDate: document.birthDate ?? undefined,\r\n birthState: document.birthState?.trim() ?? undefined,\r\n expireDate: document.expiryDate ?? undefined,\r\n documentName: document.documentName?.trim() ?? undefined,\r\n documentNumber: document.passportNumber?.trim() ?? undefined,\r\n documentType: 'Passport',\r\n file: documentFile,\r\n firstName: document.firstName?.trim() ?? undefined,\r\n gender: document.gender?.trim() ?? undefined,\r\n issueDate: document.issueDate ?? undefined,\r\n lastName: document.lastName?.trim() ?? undefined,\r\n middleName: document.middleName?.trim() ?? undefined,\r\n birthCountryCode: document.birthCountryCode?.value?.trim() ?? undefined,\r\n nationalityCode: document.nationalityCode?.value?.trim() ?? undefined,\r\n }\r\n\r\n ImmigrationDocumentService.createNewDocument(submitDoc)\r\n .then(() => {\r\n fetchInformation();\r\n modal.hideModal();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n })\r\n .catch(() => {\r\n addMessage(Constants.messages.error.savingData);\r\n });\r\n };\r\n\r\n return (\r\n modal.hideModal()}>\r\n \r\n Add a Passport\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PassportCreationDrawer;\r\n","import moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Link from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport { ReactComponent as EditIcon } from '../../assets/icons/edit.svg';\r\nimport useBreakpoint from '../../hooks/useBreakpoint';\r\nimport useCountries from '../../hooks/useCountries';\r\nimport { useModal } from '../../hooks/useModal';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IContactInfoForm from '../../models/IContactInfoForm';\r\nimport IMemberExtended from '../../models/IMemberExtended';\r\nimport IMemberInfoForm from '../../models/IMemberInfoForm';\r\nimport MemberService from '../../services/MemberService';\r\nimport baseStyle from '../../styles/styles.module.scss';\r\nimport Constants from '../../utils/Constants';\r\nimport isRequiredFieldMissing from '../../utils/Forms';\r\nimport {Genders, GendersOptions} from '../../utils/Genders';\r\nimport { MessageType } from '../../utils/MessageType';\r\nimport formatString from '../../utils/Strings';\r\nimport DatePicker from '../commons/DatePicker/DatePicker';\r\nimport Dialog from '../commons/Dialog/Dialog';\r\nimport DialogActions from '../commons/Dialog/DialogActions';\r\nimport DialogButton from '../commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../commons/Dialog/DialogContent';\r\nimport DialogTitle from '../commons/Dialog/DialogTitle';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport Searchcomplete from '../commons/Searchcomplete/Searchcomplete';\r\nimport TextField from '../commons/TextField/TextField';\r\nimport ToggleButtons from '../commons/ToggleButtons/ToggleButtons';\r\nimport styles from './MemberInformation.module.scss';\r\nimport Checkbox from '../commons/Checkbox/Checkbox';\r\nimport { useMyInformationContext } from '../../context/MyInformationProvider/MyInformationProvider';\r\n\r\nexport const ContactInfoSchema = yup.object().shape({\r\n etravelMemberAD: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n etravelMemberCI: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n etravelMemberPH: yup\r\n .string()\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n etravelMemberPC: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(10, formatString(Constants.validation.max, 10)),\r\n etravelMemberST: yup\r\n .string()\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n etravelMemberRC: yup\r\n .object()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n});\r\n\r\nexport const GeneralInfoSchema = yup.object().shape({\r\n etravelMemberFN: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n etravelMemberLN: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n etravelMemberMN: yup\r\n .string()\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n etravelMemberBD: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .max(moment().toDate(), Constants.validation.invalidDate)\r\n .typeError(Constants.validation.invalidDate),\r\n etravelMemberG: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(1, formatString(Constants.validation.max, 1)),\r\n etravelMemberNC: yup\r\n .object()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n etravelMemberRC: yup\r\n .object()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n etravelMemberAD: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n etravelMemberCI: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n etravelMemberPH: yup\r\n .string()\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n etravelMemberPC: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(10, formatString(Constants.validation.max, 10)),\r\n etravelMemberST: yup\r\n .string()\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n});\r\n\r\ninterface IMemberInformation {\r\n member: IMemberExtended;\r\n generalInfoEditable?: boolean;\r\n contactInfoEditable?: boolean;\r\n fetchInformation?: () => void;\r\n userId?: number;\r\n isCard?: boolean;\r\n id?: boolean;\r\n // CheckBox for Update contact information for all family members\r\n isVisibleCheckBox: boolean;\r\n}\r\n\r\nconst MemberInformation: React.FC = ({\r\n member,\r\n generalInfoEditable = false,\r\n contactInfoEditable = false,\r\n fetchInformation,\r\n userId,\r\n isCard = false,\r\n id,\r\n isVisibleCheckBox = false,\r\n}) => {\r\n const countries = useCountries();\r\n const [readonly, setReadonly] = useState(true);\r\n const [selectedMemberForDeletion, setSelectedMemberForDeletion] = useState<\r\n IMemberExtended | undefined\r\n >(undefined);\r\n const { addMessage } = useSnackbar();\r\n const { hideModal: hideConfirmation, isVisible: isVisibleConfirmation } =\r\n useModal();\r\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(true);\r\n const breakpoint = useBreakpoint();\r\n\r\n const { state } = useMyInformationContext();\r\n const familyMembers = state != null ? state.information.relatives : null;\r\n\r\n const isUpdateContact = member.isUpdateContactFamilyMembers ? 1 : 0;\r\n const typeMember = member.relationTypeName;\r\n const [checked, setChecked] = useState(\r\n member.isUpdateContactFamilyMembers\r\n );\r\n const handleCheckBoxChange = () => {\r\n setChecked(!checked);\r\n };\r\n\r\n const contactForm = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(ContactInfoSchema),\r\n });\r\n\r\n const generalForm = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(GeneralInfoSchema),\r\n });\r\n\r\n useEffect(() => {\r\n if (contactInfoEditable) {\r\n const isDirty = contactForm.formState.isDirty;\r\n let disabled =\r\n isRequiredFieldMissing(ContactInfoSchema, contactForm.getValues) ||\r\n !isDirty;\r\n setIsSubmitDisabled(disabled);\r\n }\r\n }, [contactForm.formState.isValid, contactForm.control]);\r\n\r\n useEffect(() => {\r\n if (generalInfoEditable) {\r\n const isDirty = generalForm.formState.isDirty;\r\n let disabled =\r\n isRequiredFieldMissing(GeneralInfoSchema, generalForm.getValues) ||\r\n !isDirty;\r\n setIsSubmitDisabled(disabled);\r\n }\r\n }, [generalForm.formState.isValid, generalForm.control]);\r\n\r\n const handleContactSubmit = (SubmittedContactInfo: IContactInfoForm) => {\r\n if (member.relationId === 3) {\r\n // if is a guest\r\n MemberService.updateGuestsContactInfos({\r\n address: SubmittedContactInfo.etravelMemberAD,\r\n city: SubmittedContactInfo.etravelMemberCI,\r\n phone: SubmittedContactInfo.etravelMemberPH,\r\n postCode: SubmittedContactInfo.etravelMemberPC,\r\n state: SubmittedContactInfo.etravelMemberST,\r\n residenceCode: SubmittedContactInfo.etravelMemberRC?.value ?? undefined,\r\n memberId: member.memberId,\r\n })\r\n .then((result) => {\r\n if (result) {\r\n fetchInformation && fetchInformation();\r\n setReadonly(true);\r\n addMessage(\r\n Constants.messages.success.dataSaved,\r\n MessageType.Success\r\n );\r\n } else {\r\n setReadonly(true);\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n } else {\r\n if (isUpdateContact == 0 && checked) {\r\n //Update contact information for all family members\r\n familyMembers?.forEach((f) => {\r\n MemberService.updateContactInfos({\r\n address: SubmittedContactInfo.etravelMemberAD,\r\n city: SubmittedContactInfo.etravelMemberCI,\r\n phone: SubmittedContactInfo.etravelMemberPH,\r\n postCode: SubmittedContactInfo.etravelMemberPC,\r\n state: SubmittedContactInfo.etravelMemberST,\r\n residenceCode:\r\n SubmittedContactInfo.etravelMemberRC?.value ?? undefined,\r\n memberId: f.memberId,\r\n })\r\n .then((result) => {\r\n if (result) {\r\n fetchInformation && fetchInformation();\r\n setReadonly(true);\r\n addMessage(\r\n Constants.messages.success.dataSaved,\r\n MessageType.Success\r\n );\r\n member.isUpdateContactFamilyMembers = checked;\r\n MemberService.updateMember(member);\r\n } else {\r\n setReadonly(true);\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n });\r\n }\r\n if (checked == false && isUpdateContact == 1) {\r\n member.isUpdateContactFamilyMembers = false;\r\n MemberService.updateMember(member);\r\n }\r\n\r\n MemberService.updateContactInfos({\r\n address: SubmittedContactInfo.etravelMemberAD,\r\n city: SubmittedContactInfo.etravelMemberCI,\r\n phone: SubmittedContactInfo.etravelMemberPH,\r\n postCode: SubmittedContactInfo.etravelMemberPC,\r\n state: SubmittedContactInfo.etravelMemberST,\r\n residenceCode: SubmittedContactInfo.etravelMemberRC?.value ?? undefined,\r\n memberId: member.memberId,\r\n })\r\n .then((result) => {\r\n if (result) {\r\n fetchInformation && fetchInformation();\r\n setReadonly(true);\r\n addMessage(\r\n Constants.messages.success.dataSaved,\r\n MessageType.Success\r\n );\r\n } else {\r\n setReadonly(true);\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n });\r\n }\r\n };\r\n\r\n const handleGeneralSubmit = (SubmittedGeneralInfo: IMemberInfoForm) => {\r\n MemberService.updateGuestsMemberInfos({\r\n address: SubmittedGeneralInfo.etravelMemberAD,\r\n birthDate: SubmittedGeneralInfo.etravelMemberBD,\r\n city: SubmittedGeneralInfo.etravelMemberCI,\r\n firstName: SubmittedGeneralInfo.etravelMemberFN,\r\n lastName: SubmittedGeneralInfo.etravelMemberLN,\r\n maidenName: SubmittedGeneralInfo.etravelMemberMN,\r\n gender: SubmittedGeneralInfo.etravelMemberG,\r\n phone: SubmittedGeneralInfo.etravelMemberPH,\r\n postCode: SubmittedGeneralInfo.etravelMemberPC,\r\n state: SubmittedGeneralInfo.etravelMemberST,\r\n nationalityCode: SubmittedGeneralInfo.etravelMemberNC?.value ?? undefined,\r\n residenceCode: SubmittedGeneralInfo.etravelMemberRC?.value ?? undefined,\r\n memberId: member.memberId,\r\n })\r\n .then((result) => {\r\n if (result) {\r\n fetchInformation && fetchInformation();\r\n setReadonly(true);\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n } else {\r\n setReadonly(true);\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n })\r\n .catch(() => {\r\n addMessage(Constants.messages.error.savingData);\r\n });\r\n };\r\n\r\n const handleUnlink = () => {\r\n if (selectedMemberForDeletion && userId) {\r\n MemberService.unlinkGuest(userId, selectedMemberForDeletion?.memberId)\r\n .then((numberOfUnlinkedElements) => {\r\n fetchInformation && fetchInformation();\r\n hideConfirmation();\r\n if (numberOfUnlinkedElements > 0) {\r\n addMessage(\r\n Constants.messages.success.dataDeleted,\r\n MessageType.Success\r\n );\r\n } else {\r\n addMessage(Constants.messages.error.deletingData);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n }\r\n };\r\n return (\r\n <>\r\n \r\n \r\n General Information\r\n \r\n {!isCard && generalInfoEditable && readonly && (\r\n setReadonly(false)}\r\n variant=\"body1\"\r\n component=\"button\"\r\n className={styles.EditDocumentButton}\r\n >\r\n {readonly && generalInfoEditable && 'Edit General information'}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!(!readonly && generalInfoEditable) ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {!(!readonly && generalInfoEditable) ? (\r\n g.value === member.gender)?.label\r\n }\r\n readonly={!(!readonly && generalInfoEditable)}\r\n />\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {!(!readonly && generalInfoEditable) ? (\r\n c.countryCode === member.nationalityCode\r\n )?.countryName\r\n }\r\n readonly={!(!readonly && generalInfoEditable)}\r\n />\r\n ) : (\r\n ({\r\n value: country.countryCode,\r\n label: country.countryName,\r\n }))}\r\n control={generalForm.control}\r\n defaultValue={{\r\n value: countries.find(\r\n (c) => c.countryCode === member.nationalityCode\r\n )?.countryCode,\r\n label: countries.find(\r\n (c) => c.countryCode === member.nationalityCode\r\n )?.countryName,\r\n }}\r\n error={!!generalForm.errors.etravelMemberNC}\r\n errorMessage={\r\n generalForm.errors.etravelMemberNC\r\n ? (generalForm.errors.etravelMemberNC as any)?.message\r\n : ''\r\n }\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n Contact Information\r\n \r\n {!isCard &&\r\n contactInfoEditable &&\r\n !generalInfoEditable &&\r\n readonly && (\r\n setReadonly(false)}\r\n variant=\"body1\"\r\n component=\"button\"\r\n className={styles.EditDocumentButton}\r\n >\r\n {readonly && contactInfoEditable && breakpoint.smdown ? (\r\n \r\n ) : (\r\n 'Edit contact information'\r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!(!readonly && (generalInfoEditable || contactInfoEditable)) ? (\r\n \r\n c.countryCode === member.residenceCode\r\n )?.countryName\r\n }\r\n readonly\r\n />\r\n \r\n ) : (\r\n \r\n ({\r\n value: country.countryCode,\r\n label: country.countryName,\r\n }))}\r\n control={\r\n generalInfoEditable\r\n ? generalForm.control\r\n : contactForm.control\r\n }\r\n defaultValue={{\r\n value: countries.find(\r\n (c) => c.countryCode === member.residenceCode\r\n )?.countryCode,\r\n label: countries.find(\r\n (c) => c.countryCode === member.residenceCode\r\n )?.countryName,\r\n }}\r\n error={\r\n generalInfoEditable\r\n ? !!generalForm.errors.etravelMemberRC\r\n : !!contactForm.errors.etravelMemberRC\r\n }\r\n errorMessage={\r\n generalInfoEditable\r\n ? generalForm.errors.etravelMemberRC\r\n ? (generalForm.errors.etravelMemberRC as any)?.message\r\n : ''\r\n : contactForm.errors.etravelMemberRC\r\n ? (contactForm.errors.etravelMemberRC as any)?.message\r\n : ''\r\n }\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {familyMembers &&\r\n familyMembers.length > 0 &&\r\n typeMember == 'Employees' &&\r\n isVisibleCheckBox && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {(contactInfoEditable || generalInfoEditable) &&\r\n (readonly ? (\r\n isCard && (\r\n <>\r\n setReadonly(false)}\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n {generalInfoEditable\r\n ? 'Edit information'\r\n : 'Edit contact information'}\r\n \r\n \r\n )\r\n ) : (\r\n \r\n {\r\n setReadonly(true);\r\n generalForm.reset();\r\n contactForm.reset();\r\n }}\r\n >\r\n {Constants.buttons.cancel}\r\n \r\n \r\n \r\n {Constants.buttons.saveChanges}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n You are going to delete a guest\r\n \r\n {selectedMemberForDeletion?.firstName}{' '}\r\n {selectedMemberForDeletion?.lastName}\r\n \r\n \r\n \r\n Are you sure?\r\n \r\n \r\n {\r\n hideConfirmation();\r\n setSelectedMemberForDeletion(undefined);\r\n }}\r\n />\r\n handleUnlink()}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MemberInformation;\r\n","import { Menu, MenuItem, IconButton, Divider } from \"@material-ui/core\";\r\nimport React, { useState } from \"react\";\r\nimport { MoreVert } from \"@material-ui/icons\";\r\nimport { DocumentStatus } from \"./DocumentStatusChip\";\r\nimport moment from 'moment/moment';\r\n\r\nexport type PassportMenuAction = 'Default' | 'Edit' | 'Delete' | 'Add Visa';\r\n\r\ntype Props = {\r\n isExpired: boolean;\r\n isDefault: boolean;\r\n status: DocumentStatus;\r\n onMenuClick: (action: PassportMenuAction) => void;\r\n options?: ('edit' | 'delete' | 'add-visa' | 'set-default')[];\r\n}\r\n\r\nfunction PassportMenu(props: Props) {\r\n const {isExpired, isDefault, status, onMenuClick, options} = props;\r\n\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n\r\n const handleClick = (event: React.MouseEvent) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleItemClick = (action: PassportMenuAction) => {\r\n onMenuClick(action);\r\n handleClose();\r\n };\r\n\r\n const canEdit = options?.includes('edit');\r\n const canDelete = options?.includes('delete');\r\n const canAddVisa = options?.includes('add-visa');\r\n const canSetDefault = options?.includes('set-default') && status === 'Verified';\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {canSetDefault &&\r\n <>\r\n handleItemClick('Default')}>Set\r\n Default\r\n \r\n \r\n }\r\n\r\n {canEdit &&\r\n handleItemClick('Edit')}>Edit}\r\n {canDelete &&\r\n handleItemClick('Delete')}>Delete}\r\n\r\n {canAddVisa &&\r\n <>\r\n \r\n handleItemClick('Add Visa')}>Add Visa\r\n \r\n }\r\n\r\n \r\n \r\n );\r\n}\r\n\r\nexport default PassportMenu;\r\n","import IOption from '../models/IOption';\r\nimport ICountry from '../models/ICountry';\r\n\r\nconst getCountryOptionByCode = (\r\n countries: ICountry[],\r\n countryCode: string\r\n): IOption => {\r\n return {\r\n value: countries.find((c) => c.countryCode === countryCode)?.countryCode,\r\n label: countries.find((c) => c.countryCode === countryCode)?.countryName,\r\n };\r\n};\r\n\r\nexport default getCountryOptionByCode;\r\n","import React, { useEffect } from 'react';\r\nimport { FormProvider, useForm } from 'react-hook-form';\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\nimport Drawer from '../commons/Drawer/Drawer';\r\nimport DrawerActions from '../commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../commons/Drawer/DrawerTitle';\r\nimport useBreakpoint from '../../hooks/useBreakpoint';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IImmigrationDocument, { PassportDocumentForm } from '../../models/IImmigrationDocument';\r\nimport ImmigrationDocumentService, {\r\n UpdateImmigrationDocumentRequest,\r\n} from '../../services/ImmigrationDocumentService';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Constants from '../../utils/Constants';\r\nimport { MessageType } from '../../utils/MessageType';\r\nimport './ImmigrationDocumentCreationDrawer.module.scss';\r\nimport PassportForm from './PassportForm';\r\nimport getCountryOptionByCode from '../../hooks/CountryHelper';\r\nimport useCountries from '../../hooks/useCountries';\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport { PassportUpdateSchema } from '../ImmigrationDocument/ImmigrationDocumentSchema';\r\nimport IFileV2 from '../../models/IFileV2';\r\n\r\ntype Props = {\r\n document: IImmigrationDocument;\r\n isVisible: boolean;\r\n onClose: () => void;\r\n onSubmit: () => void;\r\n};\r\n\r\nfunction PassportUpdateDrawer(props: Props) {\r\n const { document, isVisible, onClose, onSubmit } = props;\r\n\r\n const countries = useCountries();\r\n const { addMessage } = useSnackbar();\r\n const breakpoint = useBreakpoint();\r\n\r\n const mapDocumentToFormValues = (doc: IImmigrationDocument): PassportDocumentForm => {\r\n const nationalityOption = getCountryOptionByCode(\r\n countries,\r\n doc.nationalityCode\r\n );\r\n const birthCountryOption = getCountryOptionByCode(\r\n countries,\r\n doc.birthCountryCode\r\n );\r\n\r\n return {\r\n documentName: doc.documentName,\r\n documentType: doc.documentType,\r\n gender: doc.gender,\r\n firstName: doc.firstName,\r\n middleName: doc.middleName,\r\n lastName: doc.lastName,\r\n birthDate: doc.birthDate,\r\n issueDate: doc.issueDate,\r\n expiryDate: doc.expireDate,\r\n nationalityCode: nationalityOption,\r\n passportNumber: doc.documentNumber,\r\n birthCity: doc.birthCity,\r\n birthState: doc.birthState,\r\n birthCountryCode: birthCountryOption,\r\n fileName: doc.fileName ?? '',\r\n };\r\n };\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(PassportUpdateSchema),\r\n defaultValues: mapDocumentToFormValues(document),\r\n });\r\n\r\n useEffect(() => {\r\n if (isVisible) {\r\n form.reset(mapDocumentToFormValues(document));\r\n }\r\n }, [isVisible]);\r\n\r\n const handleSubmit = (documentForm: PassportDocumentForm) => {\r\n let documentFile: IFileV2 | undefined;\r\n if (documentForm.file instanceof FileList) {\r\n documentFile = {\r\n content: documentForm.file[0],\r\n fileName: documentForm.file[0].name,\r\n };\r\n }\r\n\r\n if (documentForm.file instanceof File) {\r\n documentFile = {\r\n content: documentForm.file,\r\n fileName: documentForm.file.name,\r\n };\r\n }\r\n\r\n const submitDoc: UpdateImmigrationDocumentRequest = {\r\n memberId: document.memberId,\r\n documentId: document.documentId,\r\n documentType: document.documentType,\r\n birthCity: documentForm.birthCity?.trim() ?? undefined,\r\n birthDate: documentForm.birthDate ?? undefined,\r\n birthState: documentForm.birthState?.trim() ?? undefined,\r\n expireDate: documentForm.expiryDate ?? undefined,\r\n documentName: documentForm.documentName ?? undefined,\r\n documentNumber: documentForm.passportNumber?.trim() ?? undefined,\r\n firstName: documentForm.firstName?.trim() ?? undefined,\r\n gender: documentForm.gender ?? undefined,\r\n issueDate: documentForm.issueDate ?? undefined,\r\n lastName: documentForm.lastName?.trim() ?? undefined,\r\n middleName: documentForm.middleName?.trim() ?? undefined,\r\n birthCountryCode: documentForm.birthCountryCode?.value ?? undefined,\r\n nationalityCode: documentForm.nationalityCode?.value ?? undefined,\r\n file: documentFile,\r\n parentId: undefined,\r\n };\r\n\r\n ImmigrationDocumentService.updateDocument(submitDoc)\r\n .then(() => {\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n onSubmit();\r\n })\r\n .catch((e) => {\r\n if (e.status === 400) {\r\n addMessage(e.message);\r\n } else {\r\n addMessage(Constants.messages.error.savingData);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n Update Passport\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default PassportUpdateDrawer;\r\n","import React from 'react';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport FormControl from '../commons/FormControl';\r\nimport TextField from '../commons/TextField';\r\nimport { useFormContext } from 'react-hook-form';\r\nimport SingleControlledFileUpload from '../commons/FileUpload/SingleControlledFileUpload';\r\nimport IImmigrationDocument from '../../models/IImmigrationDocument';\r\nimport Searchcomplete from '../commons/Searchcomplete';\r\nimport DatePicker from '../commons/DatePicker';\r\nimport Constants from '../../utils/Constants';\r\nimport useCountries from '../../hooks/useCountries';\r\n\r\ntype Props = {\r\n document?: IImmigrationDocument;\r\n};\r\nfunction VisaForm(props: Props) {\r\n const { document } = props;\r\n const { register, control, setValue, watch, errors, getValues } = useFormContext();\r\n const countries = useCountries();\r\n\r\n const getDocument = () => {\r\n if (!document) {\r\n return undefined\r\n }\r\n\r\n return {\r\n name: document?.fileName ?? '',\r\n uri: document?.blobUrl ?? '',\r\n documentId: document?.documentId,\r\n memberId: document?.memberId,\r\n };\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setValue('documentNumber', e.currentTarget.value.trim())\r\n }\r\n inputRef={register}\r\n margin=\"normal\"\r\n placeholder=\"Visa Reference\"\r\n error={!!errors.documentNumber}\r\n helperText={\r\n errors.documentNumber ? errors.documentNumber.message : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n ({\r\n value: country.countryCode,\r\n label: country.countryName,\r\n }))}\r\n control={control}\r\n error={!!errors.nationalityCode}\r\n errorMessage={\r\n errors.nationalityCode\r\n ? (errors.nationalityCode as any)?.message\r\n : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default VisaForm;\r\n","import DrawerTitle from '../commons/Drawer/DrawerTitle';\r\nimport { FormProvider, useForm } from 'react-hook-form';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport DrawerContent from '../commons/Drawer/DrawerContent';\r\nimport DrawerActions from '../commons/Drawer/DrawerActions';\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\nimport DrawerCancelButton from '../commons/Drawer/DrawerCancelButton';\r\nimport DrawerSaveButton from '../commons/Drawer/DrawerSaveButton';\r\nimport Drawer from '../commons/Drawer';\r\nimport React from 'react';\r\nimport useBreakpoint from '../../hooks/useBreakpoint';\r\nimport { VisaDocumentForm } from '../../models/IImmigrationDocument';\r\nimport IFileV2 from '../../models/IFileV2';\r\nimport ImmigrationDocumentService from '../../services/ImmigrationDocumentService';\r\nimport Constants from '../../utils/Constants';\r\nimport { MessageType } from '../../utils/MessageType';\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport { VisaSchema } from '../ImmigrationDocument/ImmigrationDocumentSchema';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport VisaForm from './VisaForm';\r\n\r\ntype Props = {\r\n memberId: number;\r\n parentId: number;\r\n fetchInformation: () => void;\r\n onCancel: () => void;\r\n isVisible: boolean;\r\n};\r\nfunction VisaCreationDrawer(props: Props) {\r\n const { memberId, parentId, fetchInformation, onCancel, isVisible } = props;\r\n const breakpoint = useBreakpoint();\r\n const { addMessage } = useSnackbar();\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(VisaSchema),\r\n defaultValues: {\r\n documentType: 'Visa',\r\n documentId: 0,\r\n memberId,\r\n documentName: '',\r\n documentNumber: '',\r\n file: undefined,\r\n },\r\n });\r\n\r\n const handleSubmit = (document: VisaDocumentForm) => {\r\n let documentFile: IFileV2 | null = null;\r\n if (document.file instanceof FileList) {\r\n documentFile = {\r\n content: document.file[0],\r\n fileName: document.file[0].name,\r\n };\r\n }\r\n if (document.file instanceof File) {\r\n documentFile = {\r\n content: document.file,\r\n fileName: document.file.name,\r\n };\r\n }\r\n\r\n ImmigrationDocumentService.createNewDocument({\r\n memberId: memberId,\r\n expireDate: document.expiryDate ?? undefined,\r\n documentName: document.documentName?.trim() ?? undefined,\r\n documentNumber: document.documentNumber?.trim() ?? undefined,\r\n documentType: 'Visa',\r\n file: documentFile,\r\n nationalityCode: document.nationalityCode?.value?.trim() ?? undefined,\r\n visaType: document.visaType?.trim() ?? undefined,\r\n parentId,\r\n })\r\n .then(() => {\r\n fetchInformation();\r\n onCancel();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n })\r\n .catch(() => {\r\n addMessage(Constants.messages.error.savingData);\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n Add a Visa\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default VisaCreationDrawer;\r\n","import { Menu, MenuItem, IconButton } from \"@material-ui/core\";\r\nimport React, { useState } from \"react\";\r\nimport { MoreVert } from \"@material-ui/icons\";\r\nimport { DocumentStatus } from \"./DocumentStatusChip\";\r\n\r\nexport type VisaMenuAction = 'Edit' | 'Delete';\r\n\r\ntype Props = {\r\n visaStatus: DocumentStatus;\r\n onMenuClick: (action: VisaMenuAction) => void;\r\n}\r\nfunction VisaMenu(props: Props): JSX.Element {\r\n const { visaStatus, onMenuClick } = props;\r\n\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n\r\n const handleClick = (event: React.MouseEvent) => {\r\n setAnchorEl(event.currentTarget);\r\n }\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n }\r\n\r\n const handleItemClick = (action: VisaMenuAction) => {\r\n onMenuClick(action);\r\n handleClose();\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n handleItemClick('Edit')}>Edit\r\n handleItemClick('Delete')}>Delete\r\n \r\n \r\n );\r\n}\r\nexport default VisaMenu;\r\n","import React, { useEffect } from 'react';\r\nimport { FormProvider, useForm } from 'react-hook-form';\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\n\r\nimport Drawer from '../commons/Drawer';\r\nimport DrawerActions from '../commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../commons/Drawer/DrawerTitle';\r\nimport useBreakpoint from '../../hooks/useBreakpoint';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IImmigrationDocument, { VisaDocumentForm } from '../../models/IImmigrationDocument';\r\nimport ImmigrationDocumentService, { UpdateImmigrationDocumentRequest } from '../../services/ImmigrationDocumentService';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Constants from '../../utils/Constants';\r\nimport { MessageType } from '../../utils/MessageType';\r\nimport VisaForm from './VisaForm';\r\nimport getCountryOptionByCode from '../../hooks/CountryHelper';\r\nimport useCountries from '../../hooks/useCountries';\r\nimport IFileV2 from '../../models/IFileV2';\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport { VisaSchema } from '../ImmigrationDocument/ImmigrationDocumentSchema';\r\n\r\ntype Props = {\r\n document: IImmigrationDocument;\r\n isVisible: boolean;\r\n onClose: () => void;\r\n fetchInformation: () => void;\r\n};\r\n\r\nfunction VisaUpdateDrawer(props: Props) {\r\n const { document, isVisible, onClose, fetchInformation } = props;\r\n const { addMessage } = useSnackbar();\r\n const breakpoint = useBreakpoint();\r\n const countries = useCountries();\r\n\r\n const buildFileList = (files: any): FileList => {\r\n let b = new ClipboardEvent('').clipboardData || new DataTransfer();\r\n\r\n for (let i = 0, len = files.length; i < len; i++) {\r\n b.items.add(files[i])\r\n };\r\n\r\n return b.files;\r\n };\r\n\r\n const mapDocumentToFormValues = (document: IImmigrationDocument): VisaDocumentForm => {\r\n const nationalityOption = getCountryOptionByCode(countries, document.nationalityCode);\r\n\r\n return {\r\n documentNumber: document.documentNumber,\r\n expiryDate: document.expireDate,\r\n nationalityCode: nationalityOption,\r\n memberId: document.memberId,\r\n parentId: document.parentId,\r\n documentId: document.documentId,\r\n documentName: document.documentName,\r\n documentType: document.documentType,\r\n fileName: document.fileName ?? '',\r\n visaType: document.visaType ?? '',\r\n file: buildFileList(document.file?.content ? [document.file.content] : [])\r\n };\r\n };\r\n\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(VisaSchema),\r\n defaultValues: mapDocumentToFormValues(document),\r\n });\r\n\r\n useEffect(() => {\r\n if (isVisible) {\r\n form.reset(mapDocumentToFormValues(document));\r\n }\r\n }, [isVisible]);\r\n\r\n const handleSubmit = (formData: VisaDocumentForm) => {\r\n let file: IFileV2 | undefined;\r\n if (formData.file instanceof FileList) {\r\n file = {\r\n content: formData.file[0],\r\n fileName: formData.file[0].name,\r\n };\r\n }\r\n\r\n if (formData.file instanceof File) {\r\n file = {\r\n content: formData.file,\r\n fileName: formData.file.name,\r\n };\r\n }\r\n\r\n const request: UpdateImmigrationDocumentRequest = {\r\n ...document,\r\n expireDate: formData.expiryDate,\r\n documentName: formData.documentName,\r\n documentNumber: formData.documentNumber?.trim(),\r\n nationalityCode: formData.nationalityCode?.value,\r\n visaType: formData.visaType,\r\n file,\r\n };\r\n\r\n ImmigrationDocumentService.updateDocument(request)\r\n .then(() => {\r\n fetchInformation();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n })\r\n .catch((e) => {\r\n const message = e.status === 400 ? e.message : Constants.messages.error.savingData;\r\n addMessage(message);\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n Update Visa\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default VisaUpdateDrawer;\r\n","import IImmigrationDocument from \"../../../../../models/IImmigrationDocument\";\r\nimport {\r\n Avatar,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemText,\r\n ListItemSecondaryAction,\r\n Dialog,\r\n Typography,\r\n DialogTitle,\r\n DialogContent,\r\n DialogActions,\r\n Box\r\n} from \"@material-ui/core\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { AttachFile } from \"@material-ui/icons\";\r\nimport VisaMenu, { VisaMenuAction } from \"./VisaMenu\";\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport useBreakpoint from '../../../../../hooks/useBreakpoint';\r\nimport DialogCancelButton from \"../../../../../components/commons/Dialog/DialogCancelButton\";\r\nimport Constants from \"../../../../../utils/Constants\";\r\nimport DialogButton from \"../../../../../components/commons/Dialog/DialogButton\";\r\nimport ImmigrationDocumentService from '../../../../../services/ImmigrationDocumentService';\r\nimport useSnackbar from \"../../../../../hooks/useSnackbar\";\r\nimport { MessageType } from \"../../../../../utils/MessageType\";\r\nimport VisaUpdateDrawer from \"../../../../../components/VisaDocument/VisaUpdateDrawer\";\r\nimport ReactCountryFlag from \"react-country-flag\";\r\nimport moment from \"moment\";\r\nimport DocumentStatusChip from \"./DocumentStatusChip\";\r\nimport _ from \"lodash\";\r\nimport { getFileExtension } from \"../../../../../utils/get-mime-type\";\r\nimport PdfFileDowloadButtton from \"../../../../../components/PdfFileDownloadButton\";\r\n\r\ntype SelectedAction = {\r\n visa: IImmigrationDocument;\r\n action: VisaMenuAction;\r\n}\r\ntype Props = {\r\n visas: IImmigrationDocument[];\r\n fetchInformation: () => void;\r\n}\r\n\r\nfunction VisaList(props: Props): JSX.Element {\r\n const { visas, fetchInformation } = props;\r\n\r\n const [selectedAction, setSelectedAction] = useState(undefined);\r\n\r\n const handleAction = (action: VisaMenuAction, visa: IImmigrationDocument) => {\r\n setSelectedAction({ visa, action })\r\n }\r\n\r\n const handleOnSubmit = () => {\r\n fetchInformation();\r\n setSelectedAction(undefined);\r\n }\r\n const formatDate = (date?: Date) => date === undefined ? '' : moment(date).format('DD MMM YYYY');\r\n\r\n return (\r\n <>\r\n \r\n {visas.map(visa => (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {visa.nationalityCode &&\r\n }\r\n {visa.documentName}\r\n \r\n \r\n Created\r\n on {formatDate(visa.createdOn)} {!_.isEmpty(visa.createdBy) && <>by {visa.createdBy}}\r\n \r\n \r\n \r\n \r\n }\r\n secondary={\r\n
    \r\n \r\n Expire Date: {moment(visa.expireDate).format(\"DD MMM YYYY\")}\r\n \r\n \r\n
    \r\n } />\r\n \r\n handleAction(action, visa)} />\r\n \r\n
    \r\n \r\n ))}\r\n
    \r\n {selectedAction && (\r\n <>\r\n {\r\n setSelectedAction(undefined)\r\n }}\r\n fetchInformation={handleOnSubmit}\r\n />\r\n {\r\n setSelectedAction(undefined)\r\n }}\r\n fetchInformation={handleOnSubmit}\r\n />\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nfunction VisaListDelete(props: {\r\n open: boolean,\r\n visa: IImmigrationDocument,\r\n onClose: () => void,\r\n fetchInformation: () => void\r\n}): JSX.Element {\r\n const { open, onClose, visa, fetchInformation } = props;\r\n const breakpoint = useBreakpoint();\r\n const { addMessage } = useSnackbar();\r\n\r\n const deleteDocument = (documentId: number) => {\r\n ImmigrationDocumentService.deleteDocument(documentId)\r\n .then((rowsDeleted: number) => {\r\n if (rowsDeleted > 0) {\r\n fetchInformation();\r\n addMessage(\r\n Constants.messages.success.dataDeleted,\r\n MessageType.Success,\r\n );\r\n onClose();\r\n } else {\r\n addMessage(Constants.messages.error.deletingData);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n You are going to delete a document\r\n \r\n \r\n {visa.documentName}\r\n \r\n \r\n \r\n Are you sure?\r\n \r\n \r\n \r\n {\r\n onClose();\r\n }}\r\n />\r\n deleteDocument(visa.documentId)}\r\n />\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction VisaAvatar(props: { document: IImmigrationDocument }): JSX.Element {\r\n const { document } = props;\r\n\r\n const { addMessage } = useSnackbar();\r\n\r\n const [open, setOpen] = useState(false);\r\n const [attachment, setAttachment] = useState(undefined);\r\n\r\n const handleDownloadAttachment = async (fileName: string) => {\r\n if (attachment) {\r\n setOpen(true);\r\n return;\r\n }\r\n\r\n ImmigrationDocumentService\r\n .getImmigrationDocumentAttachment({\r\n documentId: document.documentId,\r\n memberId: document.memberId\r\n })\r\n .then((blob) => {\r\n if (blob && blob.size > 0) {\r\n const urlCreator = window.URL || window.webkitURL;\r\n const imageUrl = urlCreator.createObjectURL(blob);\r\n setAttachment(imageUrl);\r\n setOpen(true);\r\n } else {\r\n throw Error(`${fileName} download was empty`);\r\n }\r\n })\r\n .catch(() => {\r\n addMessage(Constants.messages.error.fetchingData)\r\n });\r\n };\r\n\r\n const isPdf = getFileExtension(document.fileName) === 'pdf';\r\n\r\n useEffect(() => {\r\n setAttachment(undefined);\r\n }, [document]);\r\n\r\n return (\r\n
    \r\n handleDownloadAttachment(document.fileName)}\r\n style={{ cursor: \"pointer\" }}>\r\n \r\n \r\n setOpen(false)}\r\n >\r\n Visa Attachment\r\n \r\n {!isPdf && (\r\n {`${document.documentType}\r\n )}\r\n\r\n {isPdf && (\r\n \r\n )}\r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default VisaList;\r\n","import IImmigrationDocument from '../../../../../models/IImmigrationDocument';\r\nimport useCountries from '../../../../../hooks/useCountries';\r\nimport React, { useState } from 'react';\r\nimport moment from 'moment';\r\nimport { GendersOptions } from '../../../../../utils/Genders';\r\nimport PassportMenu, { PassportMenuAction } from './PassportMenu';\r\nimport {\r\n Box,\r\n Card,\r\n CardActions,\r\n CardContent,\r\n CardHeader,\r\n Chip,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n Grid,\r\n IconButton,\r\n makeStyles,\r\n Typography,\r\n Collapse,\r\n} from '@material-ui/core';\r\nimport ReactCountryFlag from 'react-country-flag';\r\nimport DocumentStatusChip from './DocumentStatusChip';\r\nimport ReadOnlyLabel from './ReadOnlyLabel';\r\nimport DialogCancelButton from '../../../../../components/commons/Dialog/DialogCancelButton';\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport clsx from 'clsx';\r\nimport { ExpandMore } from '@material-ui/icons';\r\nimport ImmigrationDocumentService from '../../../../../services/ImmigrationDocumentService';\r\nimport useSnackbar from '../../../../../hooks/useSnackbar';\r\nimport { MessageType } from '../../../../../utils/MessageType';\r\nimport Constants from '../../../../../utils/Constants';\r\nimport DialogButton from '../../../../../components/commons/Dialog/DialogButton';\r\nimport { useModal } from '../../../../../hooks/useModal';\r\nimport useBreakpoint from '../../../../../hooks/useBreakpoint';\r\nimport PassportUpdateDrawer\r\n from '../../../../../components/PassportDocument/PassportUpdateDrawer';\r\nimport PassportExpirationChip from './PassportExpirationChip';\r\nimport VisaCreationDrawer from '../../../../../components/VisaDocument/VisaCreationDrawer';\r\nimport VisaList from './VisaList';\r\nimport ImmigrationDocumentPreview\r\n from '../../../../../components/ImmigrationDocument/ImmigrationDocumentPreview';\r\nimport _ from \"lodash\";\r\nimport { getFileExtension } from '../../../../../utils/get-mime-type';\r\nimport PdfFileDowloadButtton from '../../../../../components/PdfFileDownloadButton';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n expand: {\r\n transform: 'rotate(0deg)',\r\n marginLeft: 'auto',\r\n transition: theme.transitions.create('transform', {\r\n duration: theme.transitions.duration.shortest,\r\n }),\r\n },\r\n expandOpen: {\r\n transform: 'rotate(180deg)',\r\n },\r\n imageButton: {\r\n padding: 0\r\n }\r\n}));\r\n\r\ntype Props = {\r\n document: IImmigrationDocument;\r\n memberId: number;\r\n fetchInformation: () => void;\r\n documentApprovalPage?: boolean;\r\n}\r\n\r\nfunction PassportCard(props: Props): JSX.Element {\r\n const { document, fetchInformation, documentApprovalPage } = props;\r\n const classes = useStyles();\r\n const countries = useCountries();\r\n const breakpoint = useBreakpoint();\r\n const { addMessage } = useSnackbar();\r\n const {\r\n showModal: showConfirmation,\r\n hideModal: hideConfirmation,\r\n isVisible: isVisibleConfirmation,\r\n } = useModal();\r\n\r\n const {\r\n showModal: showUpdateDrawer,\r\n hideModal: hideUpdateDrawer,\r\n isVisible: updateDrawerVisible,\r\n } = useModal();\r\n\r\n const {\r\n showModal: showCreateVisaDrawer,\r\n hideModal: hideCreateVisaDrawer,\r\n isVisible: createVisaDrawerVisible,\r\n } = useModal();\r\n\r\n const [expanded, setExpanded] = useState(false);\r\n\r\n const visas = document.visas?.length ?? 0;\r\n\r\n const dateFormat = (date?: Date) => {\r\n if (!date) {\r\n return undefined;\r\n }\r\n return moment(date).format('DD MMM YYYY');\r\n };\r\n\r\n const countryName = (countryCode: string) => {\r\n return countries.find(e => e.countryCode === countryCode)?.countryName;\r\n };\r\n\r\n const genderChoice = (gender: string) => {\r\n return GendersOptions.find(\r\n (option) => option.value === gender,\r\n )?.label;\r\n };\r\n\r\n const deleteDocument = (documentId: number) => {\r\n ImmigrationDocumentService.deleteDocument(documentId)\r\n .then((numberOfDeleteRows: number) => {\r\n if (numberOfDeleteRows > 0) {\r\n fetchInformation();\r\n addMessage(\r\n Constants.messages.success.dataDeleted,\r\n MessageType.Success,\r\n );\r\n } else {\r\n addMessage(Constants.messages.error.deletingData);\r\n }\r\n });\r\n };\r\n\r\n const setAsDefaultDocument = (documentId: number) => {\r\n ImmigrationDocumentService.updateDefaultDocument(documentId)\r\n .then((result: any) => {\r\n if (result) {\r\n fetchInformation();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const handlePassportClick = (action: PassportMenuAction) => {\r\n if (action === 'Default') {\r\n setAsDefaultDocument(document.documentId);\r\n }\r\n\r\n if (action === 'Edit') {\r\n showUpdateDrawer();\r\n }\r\n\r\n if (action === 'Delete') {\r\n showConfirmation();\r\n }\r\n\r\n if (action === 'Add Visa') {\r\n showCreateVisaDrawer();\r\n }\r\n };\r\n\r\n const formatDate = (date?: Date) => date === undefined ? '' : moment(date).format('DD MMM YYYY');\r\n\r\n const isPassportExpired = () => {\r\n const expireMoment = moment(document.expireDate);\r\n const today = moment();\r\n return expireMoment.isBefore(today);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {document.documentName ?? 'Unnamed Document'}\r\n\r\n {document.isDefault &&\r\n }\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {(document.status === 'Verified' || document.status === 'Pending') &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n Created\r\n on {formatDate(document.createdOn)} {!_.isEmpty(document.createdBy) && <>by {document.createdBy}}\r\n \r\n \r\n \r\n )}\r\n action={\r\n \r\n }\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {getFileExtension(document.fileName) === 'pdf' && (\r\n \r\n )}\r\n {getFileExtension(document.fileName) !== 'pdf' && (\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n\r\n \r\n {!!visas && ()}\r\n\r\n setExpanded(!expanded)}\r\n disabled={visas === 0}\r\n aria-expanded={expanded}\r\n aria-label=\"show more\"\r\n className={clsx(classes.expand, {\r\n [classes.expandOpen]: expanded,\r\n })}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n You are going to delete a document\r\n \r\n \r\n {document.documentName}\r\n \r\n \r\n \r\n Are you sure?\r\n \r\n \r\n \r\n {\r\n hideConfirmation();\r\n }}\r\n />\r\n deleteDocument(document.documentId)}\r\n />\r\n \r\n \r\n \r\n {\r\n fetchInformation();\r\n hideUpdateDrawer();\r\n }}\r\n />\r\n \r\n \r\n );\r\n}\r\n\r\nexport default PassportCard;\r\n","import React from 'react';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport EmergencyContact from '../../components/EmergencyContact/EmergencyContact';\r\nimport PassportCreationDrawer from '../PassportDocument/PassportCreationDrawer';\r\nimport MemberInformation from '../../components/MemberInformation/MemberInformation';\r\nimport IGuest from '../../models/IGuest';\r\nimport IImmigrationDocument from '../../models/IImmigrationDocument';\r\nimport PassportCard from '../../pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/PassportCard';\r\nimport { useModal } from '../../hooks/useModal';\r\nimport { Box } from '@material-ui/core';\r\nimport AddButton from '../commons/AddButton/AddButton';\r\n\r\ninterface IGuestInformationProps {\r\n guest: IGuest;\r\n fetchInformation: () => void;\r\n}\r\n\r\nconst GuestInformation: React.FC = ({\r\n guest,\r\n fetchInformation,\r\n}) => {\r\n const createModal = useModal();\r\n return (\r\n <>\r\n \r\n\r\n \r\n Immigration Data\r\n \r\n \r\n \r\n Add a Passport\r\n \r\n \r\n \r\n \r\n {guest.member.documents &&\r\n guest.member.documents.map((document: IImmigrationDocument) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default GuestInformation;\r\n","import moment from 'moment';\r\nimport React from 'react';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport IUser from '../../models/IUser';\r\nimport baseStyle from '../../styles/styles.module.scss';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport TextField from '../commons/TextField';\r\n\r\ninterface IEmployeeInformation {\r\n employeeInfo: IUser;\r\n}\r\n\r\nconst EmployeeInformation: React.FC = ({\r\n employeeInfo,\r\n}) => {\r\n return (\r\n <>\r\n \r\n Contact Information\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Employee Information\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EmployeeInformation;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {usePlannersContext} from '../../context/PlannersContext/PlannersContext';\r\nimport IOrganisationInformation from '../../models/IOrganisationInformation';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Constants from '../../utils/Constants';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport Searchcomplete from '../commons/Searchcomplete/Searchcomplete';\r\nimport TextField from '../commons/TextField';\r\n\r\ninterface IOrganisationInformationProps {\r\n defaultValue: IOrganisationInformation;\r\n save: (organisation: IOrganisationInformation) => void;\r\n}\r\n\r\nconst OrganisationInformation: React.FC = ({\r\n defaultValue,\r\n save,\r\n}) => {\r\n const { planners } = usePlannersContext();\r\n\r\n const form = useForm();\r\n const [isSaveDisabled, setIsSaveDisabled] = useState(true);\r\n\r\n const planner1 = form.watch('planner1');\r\n const planner2 = form.watch('planner2');\r\n const planner3 = form.watch('planner3');\r\n\r\n useEffect(() => {\r\n let planner1Value = planner1 ? planner1?.value : null;\r\n let planner2Value = planner2 ? planner2?.value : null;\r\n let planner3Value = planner3 ? planner3?.value : null;\r\n\r\n if (\r\n planner1Value !== defaultValue.planner1?.value ||\r\n planner2Value !== defaultValue.planner2?.value ||\r\n planner3Value !== defaultValue.planner3?.value\r\n ) {\r\n setIsSaveDisabled(false);\r\n } else {\r\n setIsSaveDisabled(true);\r\n }\r\n }, [planner1, planner2, planner3, defaultValue]);\r\n\r\n const handleSubmit = (organisation: IOrganisationInformation) => {\r\n save({\r\n ...defaultValue,\r\n ...organisation,\r\n planner1: organisation.planner1?.value,\r\n planner2: organisation.planner2?.value,\r\n planner3: organisation.planner3?.value,\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n Organisation Information\r\n \r\n {planners && (\r\n <>\r\n \r\n \r\n \r\n ({\r\n value: planner.userName,\r\n label: planner.fullName,\r\n }))}\r\n control={form.control}\r\n error={!!form.errors.planner1}\r\n errorMessage={\r\n form.errors.planner1\r\n ? form.errors.planner1.value.message\r\n : ''\r\n }\r\n defaultValue={defaultValue.planner1}\r\n />\r\n \r\n \r\n \r\n \r\n ({\r\n value: planner.userName,\r\n label: planner.fullName,\r\n }))}\r\n control={form.control}\r\n error={!!form.errors.planner2}\r\n errorMessage={\r\n form.errors.planner2\r\n ? form.errors.planner2.value.message\r\n : ''\r\n }\r\n defaultValue={defaultValue.planner2}\r\n />\r\n \r\n \r\n \r\n \r\n ({\r\n value: planner.userName,\r\n label: planner.fullName,\r\n }))}\r\n control={form.control}\r\n error={!!form.errors.planner3}\r\n errorMessage={\r\n form.errors.planner3\r\n ? form.errors.planner3.value.message\r\n : ''\r\n }\r\n defaultValue={defaultValue.planner3}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {Constants.buttons.saveChanges}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default OrganisationInformation;\r\n","import React from 'react';\r\n\r\nimport EmployeeInformation from '../../../../../components/EmployeeInformation/EmployeeInformation';\r\nimport OrganisationInformation from '../../../../../components/OrganisationInformation/OrganisationInformation';\r\nimport {useMyInformationContext} from '../../../../../context/MyInformationProvider/MyInformationProvider';\r\nimport {usePlannersContext} from '../../../../../context/PlannersContext/PlannersContext';\r\n\r\nconst EmployeeInfoTab: React.FC = () => {\r\n const {\r\n state: {\r\n information: { user },\r\n },\r\n saveOrganisation,\r\n } = useMyInformationContext();\r\n const { planners } = usePlannersContext();\r\n\r\n return (\r\n <>\r\n {user && (\r\n <>\r\n \r\n {planners.length > 0 && (\r\n p.userName === user.planner1)\r\n ?.fullName ?? '',\r\n },\r\n planner2: {\r\n value: user.planner2,\r\n label:\r\n planners.find((p) => p.userName === user.planner2)\r\n ?.fullName ?? '',\r\n },\r\n planner3: {\r\n value: user.planner3,\r\n label:\r\n planners.find((p) => p.userName === user.planner3)\r\n ?.fullName ?? '',\r\n },\r\n ccOwner: user.ccOwner,\r\n relation: user.employer,\r\n }}\r\n save={saveOrganisation}\r\n />\r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default EmployeeInfoTab;\r\n","var _circle, _circle2, _circle3, _circle4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgSeeMore(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 8,\n r: 7.65,\n stroke: \"#A3B6EC\",\n strokeWidth: 0.7\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 8,\n r: 1,\n fill: \"#A3B6EC\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4,\n cy: 8,\n r: 1,\n fill: \"#A3B6EC\"\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12,\n cy: 8,\n r: 1,\n fill: \"#A3B6EC\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSeeMore);\nexport default __webpack_public_path__ + \"static/media/seeMore.15c4d3de.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState } from 'react';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Link from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport { ReactComponent as BackIcon } from '../../../../../assets/icons/back.svg';\r\nimport { ReactComponent as SeeMoreIcon } from '../../../../../assets/icons/seeMore.svg';\r\nimport Table from '../../../../../components/commons/Table/Table';\r\nimport TableIconButton from '../../../../../components/commons/TableIconButton/TableIconButton';\r\nimport PassportCreationDrawer from '../../../../../components/PassportDocument/PassportCreationDrawer';\r\nimport MemberInformation from '../../../../../components/MemberInformation/MemberInformation';\r\nimport { useMyInformationContext } from '../../../../../context/MyInformationProvider/MyInformationProvider';\r\nimport useBreakpoint from '../../../../../hooks/useBreakpoint';\r\nimport IImmigrationDocument from '../../../../../models/IImmigrationDocument';\r\nimport IMemberExtended from '../../../../../models/IMemberExtended';\r\nimport baseStyle from '../../../../../styles/styles.module.scss';\r\nimport AddButton from '../../../../../components/commons/AddButton/AddButton';\r\nimport { useModal } from '../../../../../hooks/useModal';\r\nimport PassportCard from '../ImmigrationDataTab/PassportCard';\r\n\r\nconst FamilyMembersTab: React.FC = () => {\r\n const [selectedMember, setSelectedMember] = useState<\r\n IMemberExtended | undefined\r\n >(undefined);\r\n const {\r\n state: {\r\n information: { relatives },\r\n },\r\n fetchInformation,\r\n } = useMyInformationContext();\r\n const breakpoint = useBreakpoint();\r\n const createModal = useModal();\r\n\r\n useEffect(() => {\r\n if (relatives) {\r\n let updatedMember = relatives.find(\r\n (r) => r.memberId === selectedMember?.memberId\r\n );\r\n setSelectedMember(updatedMember);\r\n }\r\n }, [relatives]);\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'First Name',\r\n accessor: 'firstName',\r\n width: '35%',\r\n },\r\n {\r\n Header: 'Last Name',\r\n accessor: 'lastName',\r\n Cell: ({ row }: any) => (\r\n {row?.original?.lastName?.toLocaleUpperCase()}\r\n ),\r\n width: '35%',\r\n },\r\n {\r\n Header: 'Relation',\r\n accessor: 'relationName',\r\n width: '15%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n {breakpoint.smdown ? (\r\n {\r\n setSelectedMember(row.original);\r\n }}\r\n >\r\n \r\n \r\n ) : (\r\n {\r\n setSelectedMember(row.original);\r\n }}\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n See more or edit\r\n \r\n )}\r\n \r\n ),\r\n width: '15%',\r\n },\r\n ],\r\n [breakpoint.smdown]\r\n );\r\n return (\r\n \r\n {!selectedMember && relatives && (\r\n \r\n \r\n \r\n )}\r\n {selectedMember && (\r\n \r\n
    \r\n setSelectedMember(undefined)}\r\n type=\"button\"\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n \r\n \r\n Back to all Family members\r\n
    \r\n \r\n\r\n \r\n Immigration Data\r\n \r\n <>\r\n \r\n \r\n Add a Passport\r\n \r\n \r\n \r\n \r\n {selectedMember.documents?.map((document: IImmigrationDocument) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default FamilyMembersTab;\r\n","import moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Controller, useForm } from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport { FormControlLabel, Radio, RadioGroup, Typography } from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport { UserContext } from '../../context/User/UserContext';\r\nimport useBreakpoint from '../../hooks/useBreakpoint';\r\nimport useCountries from '../../hooks/useCountries';\r\nimport { useModal } from '../../hooks/useModal';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport ICountry from '../../models/ICountry';\r\nimport IGuestCreationForm from '../../models/IGuestCreationForm';\r\nimport { IGuestSearchForm } from '../../models/IGuestSearch';\r\nimport IMember from '../../models/IMember';\r\nimport MemberService from '../../services/MemberService';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Constants from '../../utils/Constants';\r\nimport isRequiredFieldMissing from '../../utils/Forms';\r\nimport {Genders, GendersOptions} from '../../utils/Genders';\r\nimport { MessageType } from '../../utils/MessageType';\r\nimport PermissionsList from '../../utils/PermissionsList';\r\nimport formatString from '../../utils/Strings';\r\nimport AddButton from '../commons/AddButton/AddButton';\r\nimport DatePicker from '../commons/DatePicker/DatePicker';\r\nimport Drawer from '../commons/Drawer/Drawer';\r\nimport DrawerActions from '../commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../commons/Drawer/DrawerTitle';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport NoResult from '../commons/NoResult/NoResult';\r\nimport Searchcomplete from '../commons/Searchcomplete/Searchcomplete';\r\nimport TextField from '../commons/TextField';\r\n\r\ninterface IGuestAddDrawerProps {\r\n userId: number;\r\n fetchInformation: () => void;\r\n}\r\n\r\nexport const GuestSearchSchema = yup.object().shape({\r\n etravelGuestSearchFN: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n etravelGuestSearchLN: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n etravelGuestSearchDB: yup\r\n .date()\r\n .typeError(Constants.validation.required)\r\n .required(Constants.validation.required)\r\n .max(moment().toDate(), Constants.validation.maxDate),\r\n});\r\n\r\nexport const GuestCreationSchema = yup.object().shape({\r\n etravelGuestFN: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n etravelGuestLN: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n etravelGuestMN: yup\r\n .string()\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n etravelGuestBD: yup\r\n .date()\r\n .required(Constants.validation.required)\r\n .max(moment().toDate(), Constants.validation.invalidDate)\r\n .typeError(Constants.validation.invalidDate),\r\n etravelGuestG: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(1, formatString(Constants.validation.max, 1)),\r\n etravelGuestNC: yup\r\n .object()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n etravelGuestAD: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n etravelGuestCI: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n etravelGuestPO: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(10, formatString(Constants.validation.max, 10)),\r\n etravelGuestRC: yup\r\n .object()\r\n .required(Constants.validation.required)\r\n .typeError(Constants.validation.required),\r\n etravelGuestPH: yup\r\n .string()\r\n .max(50, formatString(Constants.validation.max, 50)),\r\n});\r\n\r\nconst GuestAddDrawer: React.FC = ({\r\n userId,\r\n fetchInformation,\r\n}) => {\r\n const { addMessage } = useSnackbar();\r\n const breakpoint = useBreakpoint();\r\n const userInfo = React.useContext(UserContext);\r\n const [foundGuests, setFoundGuests] = useState(\r\n undefined\r\n );\r\n const [selectedGuest, setSelectedGuest] = useState(0);\r\n const [isCreationForm, setIsCreationForm] = useState(false);\r\n const [isCreationSubmitDisabled, setIsCreationSubmitDisabled] =\r\n useState(true);\r\n const countries = useCountries();\r\n const {\r\n showModal: showAddDrawer,\r\n hideModal: hideAddDrawer,\r\n isVisible: isVisibleAddDrawer,\r\n } = useModal();\r\n const searchForm = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(GuestSearchSchema),\r\n defaultValues: {\r\n etravelGuestSearchFN: '',\r\n etravelGuestSearchLN: '',\r\n etravelGuestSearchDB: null,\r\n },\r\n });\r\n const creationForm = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(GuestCreationSchema),\r\n defaultValues: {\r\n etravelGuestMN: '',\r\n etravelGuestPH: '',\r\n etravelGuestNC: undefined,\r\n etravelGuestRC: undefined,\r\n etravelGuestST: '',\r\n etravelGuestG: Genders.Male,\r\n etravelGuestAD: '',\r\n etravelGuestCI: '',\r\n etravelGuestPO: '',\r\n },\r\n });\r\n\r\n useEffect(() => {\r\n let disabled = isRequiredFieldMissing(\r\n GuestCreationSchema,\r\n creationForm.getValues\r\n );\r\n setIsCreationSubmitDisabled(disabled);\r\n }, [creationForm.formState.isValid, creationForm.control]);\r\n\r\n const handleCreation = (payload: IGuestCreationForm) => {\r\n MemberService.createGuest({\r\n userId: userId,\r\n guest: {\r\n ...payload,\r\n address: payload.etravelGuestAD,\r\n city: payload.etravelGuestCI,\r\n firstName: payload.etravelGuestFN,\r\n lastName: payload.etravelGuestLN,\r\n gender: payload.etravelGuestG,\r\n maidenName: payload.etravelGuestMN,\r\n phone: payload.etravelGuestPH,\r\n postCode: payload.etravelGuestPO,\r\n state: payload.etravelGuestST,\r\n nationalityCode: payload.etravelGuestNC?.value ?? undefined,\r\n residenceCode: payload.etravelGuestRC?.value ?? undefined,\r\n birthDate: moment(payload.etravelGuestBD).startOf('day').toDate(),\r\n },\r\n })\r\n .then(() => {\r\n fetchInformation();\r\n resetDrawer();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const handleSearch = (payload: IGuestSearchForm) => {\r\n setSelectedGuest(0);\r\n MemberService.searchGuests({\r\n guestFirstName: payload.etravelGuestSearchFN.trimStart().trimEnd(),\r\n guestLastName: payload.etravelGuestSearchLN.trimStart().trimEnd(),\r\n guestDateOfBirth: payload.etravelGuestSearchDB,\r\n })\r\n .then((guests) => {\r\n setFoundGuests(guests);\r\n })\r\n .catch(() => addMessage('An error occurred during the research'));\r\n };\r\n\r\n const handleLink = () => {\r\n if (selectedGuest === -1) {\r\n setIsCreationForm(true);\r\n } else {\r\n MemberService.linkGuest(userId, selectedGuest)\r\n .then((numberOfLinked) => {\r\n fetchInformation();\r\n resetDrawer();\r\n if (numberOfLinked === 0) {\r\n addMessage(Constants.messages.error.savingData);\r\n } else {\r\n addMessage(\r\n Constants.messages.success.dataSaved,\r\n MessageType.Success\r\n );\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n }\r\n };\r\n\r\n const resetDrawer = () => {\r\n hideAddDrawer();\r\n setSelectedGuest(0);\r\n setFoundGuests(undefined);\r\n setIsCreationForm(false);\r\n };\r\n\r\n const watchSearchForm = searchForm.watch();\r\n\r\n return (\r\n <>\r\n \r\n \r\n Add a Guest\r\n \r\n \r\n \r\n {!isCreationForm ? (\r\n <>\r\n \r\n Add a Guest\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n \"To add a new guest to your profile, please check if it doesn't already exist. If not, then you’ll can create it\"\r\n }\r\n \r\n \r\n \r\n \r\n Search an existing guest\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {foundGuests && (\r\n
    \r\n \r\n \r\n \r\n Select or create a guest\r\n \r\n \r\n \r\n \r\n {foundGuests.length > 0 ? (\r\n foundGuests.map((fg) => {\r\n return (\r\n setSelectedGuest(fg.memberId)}\r\n className={baseStyles.clickableDrawerOption}\r\n >\r\n \r\n \r\n \r\n setSelectedGuest(fg.memberId)\r\n }\r\n value={fg.memberId}\r\n name={`radio-button-Guest-${fg.memberId}`}\r\n color=\"primary\"\r\n />\r\n \r\n \r\n \r\n \r\n {fg.firstName} {fg.lastName}\r\n \r\n \r\n \r\n \r\n {moment(fg.birthDate)\r\n .format('DDMMMYYYY')\r\n .toUpperCase()}\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n })\r\n ) : (\r\n \r\n )}\r\n {userInfo.permissions.includes(\r\n PermissionsList.eTravelUserManagementGuestRegistration\r\n ) && (\r\n setSelectedGuest(-1)}\r\n className={baseStyles.clickableDrawerOption}\r\n >\r\n \r\n \r\n setSelectedGuest(-1)}\r\n value={-1}\r\n name={`radio-button-Guest-newGuest`}\r\n color=\"primary\"\r\n />\r\n \r\n \r\n \r\n I want to create a new guest\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleLink()}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ) : (\r\n <>\r\n \r\n Create a Guest\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n (\r\n \r\n {GendersOptions.map((g) => (\r\n }\r\n label={g.label}\r\n />\r\n ))}\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n ({\r\n value: country.countryCode,\r\n label: country.countryName,\r\n }))}\r\n control={creationForm.control}\r\n error={!!creationForm.errors.etravelGuestNC}\r\n errorMessage={\r\n creationForm.errors.etravelGuestNC\r\n ? (creationForm.errors.etravelGuestNC as any)\r\n ?.message\r\n : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ({\r\n value: country.countryCode,\r\n label: country.countryName,\r\n }))}\r\n control={creationForm.control}\r\n error={!!creationForm.errors.etravelGuestRC}\r\n errorMessage={\r\n creationForm.errors.etravelGuestRC\r\n ? (creationForm.errors.etravelGuestRC as any)\r\n ?.message\r\n : ''\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setIsCreationForm(false)}\r\n >\r\n Previous Step\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default GuestAddDrawer;\r\n","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\n\r\nimport {Box, Typography} from '@material-ui/core';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Link from '@material-ui/core/Link';\r\n\r\nimport {ReactComponent as BackIcon} from '../../../../../assets/icons/back.svg';\r\nimport {ReactComponent as DeleteIcon} from '../../../../../assets/icons/delete.svg';\r\nimport {ReactComponent as SeeMoreIcon} from '../../../../../assets/icons/seeMore.svg';\r\nimport Dialog from '../../../../../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../../../../../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../../../components/commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../../../components/commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../../../components/commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../../../components/commons/Dialog/DialogTitle';\r\nimport Table from '../../../../../components/commons/Table/Table';\r\nimport TableIconButton from '../../../../../components/commons/TableIconButton/TableIconButton';\r\nimport GuestAddDrawer from '../../../../../components/GuestAddDrawer';\r\nimport GuestInformation from '../../../../../components/GuestInformation/GuestInformation';\r\nimport {useMyInformationContext} from '../../../../../context/MyInformationProvider/MyInformationProvider';\r\nimport useBreakpoint from '../../../../../hooks/useBreakpoint';\r\nimport {useModal} from '../../../../../hooks/useModal';\r\nimport useSnackbar from '../../../../../hooks/useSnackbar';\r\nimport IGuest from '../../../../../models/IGuest';\r\nimport MemberService from '../../../../../services/MemberService';\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../../utils/Constants';\r\nimport {MessageType} from '../../../../../utils/MessageType';\r\n\r\nconst GuestTab: React.FC = () => {\r\n const [selectedGuest, setSelectedGuest] = useState(\r\n undefined\r\n );\r\n const [selectedGuestForDeletion, setSelectedGuestForDeletion] = useState<\r\n IGuest | undefined\r\n >(undefined);\r\n const {\r\n state: {\r\n information: { user },\r\n },\r\n fetchInformation,\r\n } = useMyInformationContext();\r\n const { addMessage } = useSnackbar();\r\n const {\r\n showModal: showConfirmation,\r\n hideModal: hideConfirmation,\r\n isVisible: isVisibleConfirmation,\r\n } = useModal();\r\n const breakpoint = useBreakpoint();\r\n\r\n useEffect(() => {\r\n if (user && user.guests) {\r\n let updatedMember = user.guests.find(\r\n (g) => g.member.memberId === selectedGuest?.member.memberId\r\n );\r\n setSelectedGuest(updatedMember);\r\n }\r\n }, [user]);\r\n\r\n const handleDelete = (guest: IGuest) => {\r\n setSelectedGuestForDeletion(guest);\r\n showConfirmation();\r\n };\r\n\r\n const handleUnlink = () => {\r\n if (selectedGuestForDeletion) {\r\n MemberService.unlinkGuest(\r\n user.userId,\r\n selectedGuestForDeletion?.member.memberId\r\n )\r\n .then((numberOfUnlinkedElements) => {\r\n fetchInformation();\r\n hideConfirmation();\r\n if (numberOfUnlinkedElements > 0) {\r\n addMessage(\r\n Constants.messages.success.dataDeleted,\r\n MessageType.Success\r\n );\r\n } else {\r\n addMessage(Constants.messages.error.deletingData);\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n }\r\n };\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'First Name',\r\n accessor: 'member.firstName',\r\n Cell: ({ row }: any) => (\r\n \r\n {row?.original?.member.firstName}\r\n \r\n ),\r\n width: '32%',\r\n },\r\n {\r\n Header: 'Last Name',\r\n accessor: 'member.lastName',\r\n width: '32%',\r\n Cell: ({ row }: any) => (\r\n {row?.original?.member?.lastName?.toLocaleUpperCase()}\r\n ),\r\n },\r\n {\r\n Header: 'Date of Birth',\r\n accessor: 'member.birthDate',\r\n Cell: ({ row }: any) =>\r\n moment(row.original.member.birthDate)\r\n .format('DDMMMYYYY')\r\n .toUpperCase(),\r\n width: '15%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'deleteActionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n {\r\n handleDelete(row.original);\r\n }}\r\n >\r\n \r\n \r\n \r\n {breakpoint.smdown ? (\r\n {\r\n setSelectedGuest(row.original);\r\n }}\r\n >\r\n \r\n \r\n ) : (\r\n {\r\n setSelectedGuest(row.original);\r\n }}\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n See more or edit\r\n \r\n )}\r\n \r\n \r\n ),\r\n width: '21%',\r\n },\r\n ],\r\n [breakpoint.smdown]\r\n );\r\n return (\r\n \r\n {!selectedGuest && user && user.guests && (\r\n \r\n \r\n {user.guests.length > 0 ? (\r\n \r\n ) : (\r\n No guest is linked to your profile.\r\n )}\r\n \r\n )}\r\n {selectedGuest && (\r\n \r\n
    \r\n setSelectedGuest(undefined)}\r\n type=\"button\"\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n \r\n \r\n Back to all Guests\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n \r\n \r\n You are going to deactivate a guest\r\n \r\n \r\n {selectedGuestForDeletion?.member.firstName}{' '}\r\n {selectedGuestForDeletion?.member.lastName}\r\n \r\n \r\n \r\n Are you sure?\r\n \r\n \r\n \r\n {\r\n hideConfirmation();\r\n setSelectedGuestForDeletion(undefined);\r\n }}\r\n />\r\n {/* */}\r\n {/* mt={breakpoint.smdown ? 3 : 0}> */}\r\n handleUnlink()}\r\n />\r\n {/* */}\r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default GuestTab;\r\n","import { Grid, Link, Dialog, DialogTitle, ListItemText, ListItem, List, ListItemAvatar, Avatar } from \"@material-ui/core\";\r\nimport IImmigrationDocument from \"../../../../../models/IImmigrationDocument\";\r\nimport React, { useState } from \"react\";\r\nimport { Alert, AlertTitle } from \"@material-ui/lab\";\r\nimport ReactCountryFlag from \"react-country-flag\";\r\nimport { Add } from \"@material-ui/icons\";\r\n\r\n// 22/08/2024 Because Visas will belong to the Passports and during the transition;\r\n// in prod the users will need a way to assign existing visas to passports but in\r\n// the future this component will become reduntant.\r\nexport type UnassignedVisaActions = 'Add' | 'Select';\r\nexport type UnassignedVisaResult = {\r\n visa: number;\r\n passport: number;\r\n}\r\ntype Props = {\r\n passports: IImmigrationDocument[];\r\n visas: IImmigrationDocument[];\r\n onAction: (action: UnassignedVisaActions, result?: UnassignedVisaResult) => void;\r\n}\r\nfunction UnassignedVisaList(props: Props): JSX.Element {\r\n const { passports, visas, onAction } = props;\r\n\r\n const [selectedVisa, setSelectedVisa] = useState(undefined);\r\n\r\n if (visas?.length === 0) {\r\n return <>;\r\n }\r\n\r\n const openModal = (visaId: number) => {\r\n setSelectedVisa(visaId);\r\n }\r\n\r\n const hideModal = () => {\r\n setSelectedVisa(undefined);\r\n };\r\n\r\n const handleSelectPassport = (passportId: number) => {\r\n if (!selectedVisa) {\r\n return;\r\n }\r\n\r\n onAction('Select', { visa: selectedVisa, passport: passportId });\r\n hideModal();\r\n };\r\n\r\n const handleAddPassport = () => {\r\n onAction('Add');\r\n hideModal();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Unassigned Visas\r\n

    Visas must now be assigned to a passport for it to be valid

    \r\n
      \r\n {visas.map((visa: IImmigrationDocument) => (\r\n
    • \r\n openModal(visa.documentId)}\r\n >\r\n {visa.documentName}\r\n \r\n
    • \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n Assign Visa To Passport\r\n \r\n {passports.map((passport) => (\r\n handleSelectPassport(passport.documentId)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default UnassignedVisaList;\r\n","import React, { useState } from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport PassportCreationDrawer\r\n from '../../../../../components/PassportDocument/PassportCreationDrawer';\r\nimport {\r\n useMyInformationContext\r\n} from '../../../../../context/MyInformationProvider/MyInformationProvider';\r\nimport IImmigrationDocument from '../../../../../models/IImmigrationDocument';\r\nimport PassportCard from './PassportCard';\r\nimport {\r\n Typography,\r\n DialogTitle,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n Avatar, ListItemText, Dialog\r\n} from '@material-ui/core';\r\nimport UnassignedVisaList, {\r\n UnassignedVisaActions,\r\n UnassignedVisaResult\r\n} from './UnassignedVisaList';\r\nimport AddButton from '../../../../../components/commons/AddButton/AddButton';\r\nimport { useModal } from '../../../../../hooks/useModal';\r\nimport ImmigrationDocumentService from '../../../../../services/ImmigrationDocumentService';\r\nimport ReactCountryFlag from 'react-country-flag';\r\nimport VisaCreationDrawer from '../../../../../components/VisaDocument/VisaCreationDrawer';\r\n\r\nfunction ImmigrationDataTab(): JSX.Element {\r\n const {\r\n state: {\r\n information: {member},\r\n },\r\n fetchInformation,\r\n } = useMyInformationContext();\r\n\r\n const createModal = useModal();\r\n const addVisa = useModal();\r\n\r\n const passports = member?.documents?.filter(e => e.documentType?.toUpperCase() === \"PASSPORT\") ?? [];\r\n\r\n const visas = member?.documents?.filter(e => e.documentType?.toUpperCase() === \"VISA\") ?? [];\r\n\r\n const handleUnassignedAction = (action: UnassignedVisaActions, value?: UnassignedVisaResult) => {\r\n if (action === 'Add') {\r\n createModal.showModal();\r\n }\r\n\r\n if (action === 'Select' && value) {\r\n ImmigrationDocumentService.linkVisa(value.passport, value.visa);\r\n fetchInformation();\r\n }\r\n };\r\n\r\n const [selectedPassport, setSelectedPassport] = useState();\r\n\r\n const handleSelectPassport = (passportId: number) => {\r\n addVisa.hideModal();\r\n setSelectedPassport(passports.find(e => e.documentId === passportId));\r\n };\r\n\r\n return (\r\n <>\r\n setSelectedPassport(undefined)}\r\n isVisible={!!selectedPassport}/>\r\n\r\n addVisa.hideModal()}>\r\n Select passport to link the Visa to\r\n \r\n {passports.map((passport) => (\r\n handleSelectPassport(passport.documentId)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n {member && (\r\n <>\r\n \r\n \r\n \r\n Add a Passport\r\n \r\n \r\n {\r\n passports.length > 0 && \r\n \r\n Add a Visa\r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\ntype Props = {\r\n list: IImmigrationDocument[];\r\n memberId: number;\r\n fetchInformation: () => void;\r\n}\r\n\r\nfunction PassportList(props: Props): JSX.Element {\r\n const {list, memberId, fetchInformation} = props;\r\n\r\n if (list?.length === 0) {\r\n return (\r\n \r\n No Passports added yet\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {list.map((document: IImmigrationDocument) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n );\r\n}\r\n\r\nexport default ImmigrationDataTab;\r\n","import React from 'react';\r\n\r\nimport EmergencyContact from '../../../../../components/EmergencyContact/EmergencyContact';\r\nimport MemberInformation from '../../../../../components/MemberInformation/MemberInformation';\r\nimport PaymentInformation from '../../../../../components/PaymentInformation/PaymentInformation';\r\nimport {useMyInformationContext} from '../../../../../context/MyInformationProvider/MyInformationProvider';\r\n\r\nconst PersonalInfoTab: React.FC = () => {\r\n const {\r\n state: {\r\n information: { member, nextOfKins, paymentInformations },\r\n },\r\n fetchInformation,\r\n } = useMyInformationContext();\r\n\r\n return (\r\n <>\r\n {member && (\r\n \r\n )}\r\n {member && (\r\n \r\n )}\r\n {paymentInformations && }\r\n \r\n );\r\n};\r\n\r\nexport default PersonalInfoTab;\r\n","import React from 'react';\r\n\r\nimport IRoute from '../models/IRoute';\r\nimport EmployeeInfoTab from '../pages/userAccount/myInformation/MyInformationPage/EmployeeInfoTab';\r\nimport FamilyMembersTab from '../pages/userAccount/myInformation/MyInformationPage/FamilyMembersTab';\r\nimport GuestTab from '../pages/userAccount/myInformation/MyInformationPage/GuestTab';\r\nimport ImmigrationDataTab\r\n from '../pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/ImmigrationDataTab';\r\nimport PersonalInfoTab from '../pages/userAccount/myInformation/MyInformationPage/PersonalInfoTab';\r\nimport PermissionsList from '../utils/PermissionsList';\r\n\r\nconst ConnectedAsInformationRoutes: IRoute[] = [\r\n {\r\n path: '/information/personalInfo',\r\n name: 'Personal info',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelMyInformationPersonalInfo,\r\n },\r\n {\r\n path: '/information/immigrationData',\r\n name: 'Immigration data',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelMyInformationImmigrationData,\r\n },\r\n {\r\n path: '/information/employeeInfo',\r\n name: 'Employee info',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelMyInformationEmployeeInfo,\r\n },\r\n {\r\n path: '/information/familyMembers',\r\n name: 'Family members',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelMyInformationFamilyMembers,\r\n },\r\n {\r\n path: '/information/guests',\r\n name: 'Guests',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelMyInformationGuests,\r\n },\r\n];\r\n\r\nexport default ConnectedAsInformationRoutes;\r\n","import React, {useEffect, useState} from 'react';\r\n\r\nimport NavTabs from '../../../../components/commons/NavTabs/NavTabs';\r\nimport GuestInformation from '../../../../components/GuestInformation/GuestInformation';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport Routes from '../../../../components/Routes/Routes';\r\nimport {useLocalStorageContext} from '../../../../context/LocalStorageContext/LocalStorageContext';\r\nimport {useMyInformationContext} from '../../../../context/MyInformationProvider/MyInformationProvider';\r\nimport useSnackbar from '../../../../hooks/useSnackbar';\r\nimport IGuest from '../../../../models/IGuest';\r\nimport IRoute from '../../../../models/IRoute';\r\nimport ConnectedAsInformationRoutes from '../../../../routes/ConnectedAsInformationRoutes';\r\nimport MemberService from '../../../../services/MemberService';\r\n\r\nconst ConnectedAsInformationPage: React.FC = () => {\r\n const {\r\n state: { connectedMember },\r\n } = useLocalStorageContext();\r\n const {\r\n state: {\r\n information: { relatives },\r\n },\r\n } = useMyInformationContext();\r\n const [tabs, setTabs] = useState(ConnectedAsInformationRoutes);\r\n const [guest, setGuest] = useState(null);\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n let newTabs = ConnectedAsInformationRoutes;\r\n if (relatives && relatives.length === 0) {\r\n newTabs = ConnectedAsInformationRoutes.filter(\r\n (t) => t.path !== '/information/familyMembers'\r\n );\r\n }\r\n setTabs(newTabs);\r\n }, [relatives]);\r\n\r\n useEffect(() => {\r\n fetchInformation();\r\n }, [connectedMember]);\r\n\r\n const fetchInformation = (): void => {\r\n if (connectedMember) {\r\n MemberService.getGuest(connectedMember.memberId, true)\r\n .then((result) => setGuest(result))\r\n .catch((error) => addMessage(error.message));\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {connectedMember?.userName !== null ? (\r\n <>\r\n \r\n \r\n \r\n ) : (\r\n guest && (\r\n \r\n )\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ConnectedAsInformationPage;\r\n","import React from 'react';\r\nimport {useHistory} from 'react-router-dom';\r\n\r\nimport {Box, Button, Grid, Typography} from '@material-ui/core';\r\n\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport {useLocalStorageContext} from '../../../../context/LocalStorageContext/LocalStorageContext';\r\nimport {useUserContext} from '../../../../context/User/UserContext';\r\nimport useMakeAReservationAccess from '../../../../hooks/useMakeAReservationAccess';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport PermissionsList from '../../../../utils/PermissionsList';\r\n\r\nconst ConnectedAsPage: React.FC = () => {\r\n const {\r\n state: { connectedMember },\r\n } = useLocalStorageContext();\r\n const { permissions } = useUserContext();\r\n\r\n const { IsBlockedDialog, handleRedirect } = useMakeAReservationAccess();\r\n const history = useHistory();\r\n\r\n const handleRedirectTo = (url: string) => {\r\n history.push(url);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n You are connected as {connectedMember?.fullName}, Cargolux’{' '}\r\n {connectedMember?.relation}.\r\n \r\n \r\n \r\n {permissions.includes(\r\n PermissionsList.eTravelReservationMakeReservation\r\n ) && (\r\n \r\n handleRedirect()}\r\n >\r\n Make a Reservation\r\n \r\n \r\n )}\r\n \r\n handleRedirectTo('/information')}\r\n >\r\n Go to Personal information\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ConnectedAsPage;\r\n","import React from 'react';\r\n\r\nimport IRoute from '../models/IRoute';\r\nimport EmployeeInfoTab from '../pages/userAccount/myInformation/MyInformationPage/EmployeeInfoTab';\r\nimport FamilyMembersTab from '../pages/userAccount/myInformation/MyInformationPage/FamilyMembersTab';\r\nimport GuestTab from '../pages/userAccount/myInformation/MyInformationPage/GuestTab';\r\nimport ImmigrationDataTab\r\n from '../pages/userAccount/myInformation/MyInformationPage/ImmigrationDataTab/ImmigrationDataTab';\r\nimport PersonalInfoTab from '../pages/userAccount/myInformation/MyInformationPage/PersonalInfoTab';\r\nimport PermissionsList from '../utils/PermissionsList';\r\n\r\nconst MyInformationRoutes: IRoute[] = [\r\n {\r\n path: '/myInformation/personalInfo',\r\n name: 'Personal Information',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelMyInformationPersonalInfo,\r\n },\r\n {\r\n path: '/myInformation/immigrationData',\r\n name: 'Immigration Data',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelMyInformationImmigrationData,\r\n },\r\n {\r\n path: '/myInformation/employeeInfo',\r\n name: 'Employee Information',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelMyInformationEmployeeInfo,\r\n },\r\n {\r\n path: '/myInformation/familyMembers',\r\n name: 'Family Members',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelMyInformationFamilyMembers,\r\n },\r\n {\r\n path: '/myInformation/guests',\r\n name: 'Guests',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelMyInformationGuests,\r\n },\r\n];\r\n\r\nexport default MyInformationRoutes;\r\n","import React, {useEffect, useState} from 'react';\r\n\r\nimport NavTabs from '../../../../components/commons/NavTabs/NavTabs';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport Routes from '../../../../components/Routes/Routes';\r\nimport {useMyInformationContext} from '../../../../context/MyInformationProvider/MyInformationProvider';\r\nimport IRoute from '../../../../models/IRoute';\r\nimport MyInformationRoutes from '../../../../routes/MyInformationRoutes';\r\n\r\nconst MyInformationPage: React.FC = () => {\r\n const {\r\n state: {\r\n information: { relatives },\r\n },\r\n } = useMyInformationContext();\r\n const [tabs, setTabs] = useState(MyInformationRoutes);\r\n useEffect(() => {\r\n let newTabs = MyInformationRoutes;\r\n if (relatives && relatives.length === 0) {\r\n newTabs = MyInformationRoutes.filter(\r\n (t) => t.path !== '/myInformation/familyMembers'\r\n );\r\n }\r\n setTabs(newTabs);\r\n }, [relatives]);\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MyInformationPage;\r\n","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgDeleteBinDisabled(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 21,\n viewBox: \"0 0 20 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.0956 2.86102H13.4941V2.41182C13.4941 1.07981 12.4143 0 11.0823 0H8.9177C7.58569 0 6.50588 1.07981 6.50588 2.41182V2.86102H0.904432C0.404928 2.86102 0 3.26595 0 3.76545C0 4.26495 0.404928 4.66988 0.904432 4.66988H2.69822L2.71932 16.126C2.71932 18.2905 4.47401 20.0452 6.63853 20.0452H13.3615C15.526 20.0452 17.2807 18.2905 17.2807 16.126L17.3018 4.66988H19.0956C19.5951 4.66988 20 4.26495 20 3.76545C20 3.26595 19.5951 2.86102 19.0956 2.86102ZM8.31463 2.41143C8.31463 2.07842 8.58458 1.80847 8.91758 1.80847H11.0822C11.4152 1.80847 11.6851 2.07842 11.6851 2.41143V2.86063H8.31463V2.41143ZM13.3615 18.2245C14.5271 18.2245 15.4719 17.2796 15.4719 16.1141L15.493 4.65798H4.50716L4.52827 16.1141C4.52827 17.2796 5.4731 18.2245 6.63861 18.2245H13.3615Z\",\n fill: \"#000000\",\n fillOpacity: 0.26\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.19105 7.46094C7.69155 7.46094 7.28662 7.86587 7.28662 8.36537V14.3648C7.28662 14.8643 7.69155 15.2692 8.19105 15.2692C8.69056 15.2692 9.09548 14.8643 9.09548 14.3648V8.36537C9.09548 7.86587 8.69056 7.46094 8.19105 7.46094Z\",\n fill: \"#000000\",\n fillOpacity: 0.26\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.8092 7.46094C11.3097 7.46094 10.9048 7.86587 10.9048 8.36537V14.3648C10.9048 14.8643 11.3097 15.2692 11.8092 15.2692C12.3087 15.2692 12.7136 14.8643 12.7136 14.3648V8.36537C12.7136 7.86587 12.3087 7.46094 11.8092 7.46094Z\",\n fill: \"#000000\",\n fillOpacity: 0.26\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDeleteBinDisabled);\nexport default __webpack_public_path__ + \"static/media/deleteBinDisabled.1e223a00.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgPlusPurple(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 6C12 6.30909 11.7636 6.54545 11.4545 6.54545H6.54545V11.4545C6.54545 11.7636 6.30909 12 6 12C5.69091 12 5.45455 11.7636 5.45455 11.4545V6.54545H0.545455C0.236364 6.54545 0 6.30909 0 6C0 5.69091 0.236364 5.45455 0.545455 5.45455H5.45455V0.545455C5.45455 0.236364 5.69091 0 6 0C6.30909 0 6.54545 0.236364 6.54545 0.545455V5.45455H11.4545C11.7636 5.45455 12 5.69091 12 6Z\",\n fill: \"#B8349A\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlusPurple);\nexport default __webpack_public_path__ + \"static/media/plusPurple.663cb7d8.svg\";\nexport { ForwardRef as ReactComponent };","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\nimport {useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {IconButton, Radio} from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Link from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as CommentIcon} from '../../../../assets/icons/comment.svg';\r\nimport {ReactComponent as DeleteIcon} from '../../../../assets/icons/deleteBin.svg';\r\nimport {ReactComponent as DeleteIconDisabled} from '../../../../assets/icons/deleteBinDisabled.svg';\r\nimport {ReactComponent as CheckedIcon} from '../../../../assets/icons/ok.svg';\r\nimport {ReactComponent as PlusIcon} from '../../../../assets/icons/plusPurple.svg';\r\nimport {ReactComponent as NotCheckedIcon} from '../../../../assets/icons/rejected.svg';\r\nimport Dialog from '../../../../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../../../../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../../../../components/commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../../../components/commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../../../components/commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../../../components/commons/Dialog/DialogTitle';\r\nimport Drawer from '../../../../components/commons/Drawer/Drawer';\r\nimport DrawerActions from '../../../../components/commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../../../../components/commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../../../../components/commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../../../../components/commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../../../../components/commons/Drawer/DrawerTitle';\r\nimport FormControl from '../../../../components/commons/FormControl';\r\nimport NoResult from '../../../../components/commons/NoResult';\r\nimport SearchButton from '../../../../components/commons/SearchButton/SearchButton';\r\nimport Table from '../../../../components/commons/Table/Table';\r\nimport TableIconButton from '../../../../components/commons/TableIconButton/TableIconButton';\r\nimport TextField from '../../../../components/commons/TextField/TextField';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport {useModal} from '../../../../hooks/useModal';\r\nimport useSnackbar from '../../../../hooks/useSnackbar';\r\nimport IEmployee from '../../../../models/IEmployee';\r\nimport IEmployeeLink from '../../../../models/IEmployeeLink';\r\nimport IEmployeeSearch from '../../../../models/IEmployeeSearch';\r\nimport IGuestAdministration from '../../../../models/IGuestAdministration';\r\nimport IGuestAdministrationFlat from '../../../../models/IGuestAdministrationFlat';\r\nimport IGuestMapping from '../../../../models/IGuestMapping';\r\nimport MemberService from '../../../../services/MemberService';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../utils/Constants';\r\nimport isRequiredFieldMissing from '../../../../utils/Forms';\r\nimport {MessageType} from '../../../../utils/MessageType';\r\nimport formatString, {highlightSearchText} from '../../../../utils/Strings';\r\nimport styles from './GuestListPage.module.scss';\r\n\r\nexport const EmployeeSearchSchema = yup.object().shape({\r\n firstName: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n lastName: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n});\r\n\r\nconst GuestListPage: React.FC = () => {\r\n const { addMessage } = useSnackbar();\r\n const [allGuests, setAllGuests] = useState<\r\n IGuestAdministrationFlat[] | undefined\r\n >([]);\r\n const {\r\n showModal: showConfirmation,\r\n hideModal: hideConfirmation,\r\n isVisible: isVisibleConfirmation,\r\n } = useModal();\r\n const {\r\n showModal: showLinkDialog,\r\n hideModal: hideLinkDialog,\r\n isVisible: isVisibleLinkDialog,\r\n } = useModal();\r\n const {\r\n showModal: showDeactivationReason,\r\n hideModal: hideDeactivationReason,\r\n isVisible: isVisibleDeactivationReason,\r\n } = useModal();\r\n const {\r\n showModal: showAddDrawer,\r\n hideModal: hideAddDrawer,\r\n isVisible: isVisibleAddDrawer,\r\n } = useModal();\r\n const [searchText, setSearchText] = useState('');\r\n const [lastsearchText, setLastSearchText] = useState('');\r\n const [selectedGuest, setSelectedGuest] = useState<\r\n IGuestAdministration | undefined\r\n >();\r\n const [selectedEmployee, setSelectedEmployee] = useState<\r\n IEmployee | undefined\r\n >();\r\n const [deactivationReason, setDeactivationReason] = useState('');\r\n const [foundEmployees, setFoundEmployees] = useState<\r\n IEmployeeLink[] | undefined\r\n >(undefined);\r\n const [selectedEmployeeId, setSelectedEmployeeId] = useState(-1);\r\n const [isAssociationSubmitDisabled, setIsAssociationSubmitDisabled] =\r\n useState(true);\r\n const searchForm = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(EmployeeSearchSchema),\r\n defaultValues: {\r\n firstName: '',\r\n lastName: '',\r\n },\r\n });\r\n\r\n useEffect(() => {\r\n let disabled = isRequiredFieldMissing(\r\n EmployeeSearchSchema,\r\n searchForm.getValues\r\n );\r\n setIsAssociationSubmitDisabled(disabled);\r\n }, [searchForm.formState.isValid, searchForm.control]);\r\n\r\n const handleSearch = (search: string) => {\r\n MemberService.searchAllGuests(search)\r\n .then((result) => {\r\n setLastSearchText(search);\r\n\r\n let newData: any[] = [];\r\n\r\n result.forEach((r) => {\r\n newData.push({\r\n guest: r,\r\n guestId: r.guestId,\r\n guestName: `${\r\n r.guestFirstName\r\n } ${r.guestLastName?.toLocaleUpperCase()}`,\r\n creationDate: r.createdDate,\r\n isActive: r.isActive,\r\n });\r\n r.employees.forEach((e) => {\r\n newData.push({\r\n guest: r,\r\n employeeId: e.employeeId,\r\n guestName: `${r.guestFirstName} ${r.guestLastName}`,\r\n employeeName: `${\r\n e.employeeFirstName\r\n } ${e.employeeLastName?.toLocaleUpperCase()}`,\r\n isActive: e.employeeIsActive,\r\n employeeDeactivationReason: e.employeeDeactivationReason,\r\n employee: e,\r\n });\r\n });\r\n });\r\n setAllGuests(newData);\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const refresh = () => {\r\n handleSearch(lastsearchText);\r\n };\r\n\r\n const handleDelete = () => {\r\n if (selectedGuest && selectedGuest.guestId) {\r\n MemberService.deleteGuest(selectedGuest?.guestId)\r\n .then(() => {\r\n hideConfirmation();\r\n refresh();\r\n addMessage(\r\n Constants.messages.success.dataDeleted,\r\n MessageType.Success\r\n );\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n handleCloseConfirmationDialog();\r\n });\r\n }\r\n };\r\n\r\n const handleDeactivation = () => {\r\n if (selectedGuest && selectedGuest.guestId) {\r\n if (selectedEmployee && selectedEmployee.employeeId) {\r\n handleLink(selectedGuest, selectedEmployee);\r\n } else {\r\n handleLink(selectedGuest);\r\n }\r\n }\r\n };\r\n const afterHandleLink = () => {\r\n hideLinkDialog();\r\n setSelectedGuest(undefined);\r\n setSelectedEmployee(undefined);\r\n setDeactivationReason('');\r\n refresh();\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success);\r\n };\r\n\r\n const handleLink = (guest: IGuestAdministration, employee?: IEmployee) => {\r\n let guestMapping: IGuestMapping = {\r\n userId: employee?.employeeId ?? -1,\r\n guestId: guest.guestId,\r\n isActive: employee\r\n ? !(employee.employeeIsActive === null || employee.employeeIsActive)\r\n : !(guest.isActive === null || guest.isActive),\r\n deactivationReason: deactivationReason,\r\n };\r\n if (employee === undefined) {\r\n MemberService.unlinkAllEmployeesOfGuest(guestMapping)\r\n .then(() => {\r\n afterHandleLink();\r\n })\r\n .catch((error) => addMessage(error.message));\r\n } else {\r\n MemberService.updateGuestLink(guestMapping)\r\n .then(() => {\r\n afterHandleLink();\r\n })\r\n .catch((error) => addMessage(error.message));\r\n }\r\n };\r\n\r\n const handleLinkUpdateClick = (\r\n guest: IGuestAdministration,\r\n employee?: IEmployee\r\n ) => {\r\n setSelectedGuest(guest);\r\n if (employee) {\r\n setSelectedEmployee(employee);\r\n if (employee.employeeIsActive === null || employee.employeeIsActive) {\r\n showLinkDialog();\r\n } else {\r\n handleLink(guest, employee);\r\n }\r\n } else {\r\n if (guest.isActive === null || guest.isActive) {\r\n showLinkDialog();\r\n } else {\r\n handleLink(guest);\r\n }\r\n }\r\n };\r\n\r\n const handleEmployeeSearch = (payload: IEmployeeSearch) => {\r\n setSelectedEmployeeId(-1);\r\n payload.firstName = payload.firstName.trimStart().trimEnd();\r\n payload.lastName = payload.lastName.trimStart().trimEnd();\r\n MemberService.searchEmployees(payload)\r\n .then((employees) => {\r\n setFoundEmployees(employees);\r\n })\r\n .catch(() => addMessage('An error occured during the research'));\r\n };\r\n\r\n const handleEmployeeLink = () => {\r\n if (selectedEmployeeId > 0 && selectedGuest && selectedGuest.guestId) {\r\n MemberService.linkGuest(selectedEmployeeId, selectedGuest?.guestId)\r\n .then((numberOfLinked) => {\r\n refresh();\r\n resetDrawer();\r\n if (numberOfLinked === 0) {\r\n addMessage(Constants.messages.error.savingData);\r\n } else {\r\n addMessage(\r\n Constants.messages.success.dataSaved,\r\n MessageType.Success\r\n );\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n } else {\r\n addMessage('Could not assign guest to employee !');\r\n }\r\n };\r\n\r\n const resetDrawer = () => {\r\n hideAddDrawer();\r\n setSelectedEmployeeId(-1);\r\n setFoundEmployees(undefined);\r\n };\r\n\r\n const columns = React.useMemo((): any[] => {\r\n let commonColumns: any[] = [\r\n {\r\n Header: 'Guest Name',\r\n accessor: 'guestName',\r\n width: '20%',\r\n Cell: ({ row }: any) => (\r\n \r\n {!row.original.employeeId\r\n ? highlightSearchText(row.original.guestName, lastsearchText)\r\n : ''}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Creation Date',\r\n accessor: 'creationDate',\r\n Cell: ({ row }: any) =>\r\n row.original.creationDate &&\r\n moment(row.original.creationDate).isValid()\r\n ? moment(row.original.creationDate)\r\n .format('DDMMMYYYY')\r\n .toUpperCase()\r\n : '',\r\n width: '15%',\r\n },\r\n {\r\n Header: 'Associated Employees',\r\n accessor: 'employeeName',\r\n width: '20%',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) =>\r\n highlightSearchText(row.original.employeeName, lastsearchText),\r\n },\r\n {\r\n Header: 'Status',\r\n accessor: 'employeeIsActive',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.employeeId ? (\r\n !(row.original.isActive === null || row.original.isActive) ? (\r\n <>\r\n \r\n {row.original.employeeDeactivationReason &&\r\n row.original.employeeDeactivationReason.length > 0 ? (\r\n {\r\n setSelectedGuest(row.original.guest);\r\n setSelectedEmployee(row.original.employee);\r\n showDeactivationReason();\r\n }}\r\n className={styles.AlignIconButton}\r\n >\r\n \r\n \r\n ) : (\r\n
    \r\n )}\r\n \r\n ) : (\r\n <>\r\n \r\n
    \r\n \r\n )\r\n ) : (\r\n <>\r\n
    \r\n {row.original.isActive === null || row.original.isActive ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n )}\r\n \r\n {\r\n handleLinkUpdateClick(\r\n row.original.guest,\r\n row.original.employee\r\n );\r\n }}\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n {row.original.isActive === null || row.original.isActive\r\n ? 'Deactivate'\r\n : 'Activate'}\r\n \r\n \r\n
    \r\n ),\r\n width: '17%',\r\n disableSortBy: true,\r\n },\r\n {\r\n Header: '',\r\n accessor: 'linkEmployee',\r\n Cell: ({ row }: any) => (\r\n \r\n {(row.original.isActive === null || row.original.isActive) &&\r\n row.original.guestId && (\r\n }\r\n onClick={() => {\r\n setSelectedGuest(row.original.guest);\r\n showAddDrawer();\r\n }}\r\n >\r\n Associate an employee\r\n \r\n )}\r\n \r\n ),\r\n width: '21%',\r\n disableSortBy: true,\r\n },\r\n {\r\n Header: '',\r\n accessor: 'deleteGuest',\r\n Cell: ({ row }: any) => (\r\n \r\n {(row.original.isActive === null || row.original.isActive) &&\r\n row.original.guestId && (\r\n {\r\n setSelectedGuest(row.original.guest);\r\n showConfirmation();\r\n }}\r\n disabled={!row.original.guest.isGuestDeletable}\r\n >\r\n {row.original.guest.isGuestDeletable ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n ),\r\n width: '7%',\r\n disableSortBy: true,\r\n },\r\n ];\r\n\r\n return commonColumns;\r\n }, [lastsearchText, selectedGuest, selectedEmployee]);\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' && searchText.length >= 3) {\r\n handleSearch(searchText);\r\n }\r\n };\r\n\r\n const handleCloseConfirmationDialog = () => {\r\n hideConfirmation();\r\n setSelectedGuest(undefined);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Search for a guest or an employee with guests\r\n \r\n \r\n \r\n \r\n You can search by First and Last Name.\r\n \r\n \r\n\r\n \r\n \r\n \r\n setSearchText(e.target.value)}\r\n placeholder=\"Martine SCHMIDT\"\r\n />\r\n \r\n \r\n {\r\n handleSearch(searchText);\r\n }}\r\n >\r\n Search guest or employee\r\n \r\n \r\n \r\n \r\n {allGuests && allGuests.length > 0 ? (\r\n
    \r\n ) : (\r\n lastsearchText && (\r\n \r\n \r\n \r\n )\r\n )}\r\n
    \r\n\r\n \r\n \r\n {`You are going to delete a guest ${\r\n selectedGuest?.guestFirstName\r\n } ${selectedGuest?.guestLastName?.toLocaleUpperCase()}`}\r\n \r\n \r\n \r\n \r\n handleDelete()}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n You are going to deactivate {selectedGuest?.guestFirstName}{' '}\r\n {selectedGuest?.guestLastName?.toLocaleUpperCase()}{' '}\r\n {selectedEmployee &&\r\n ` as guest for ${\r\n selectedEmployee?.employeeFirstName\r\n } ${selectedEmployee?.employeeLastName?.toLocaleUpperCase()}`}\r\n \r\n \r\n \r\n \r\n setDeactivationReason(event.target.value)}\r\n multiline\r\n rows={6}\r\n />\r\n \r\n \r\n {\r\n hideLinkDialog();\r\n setSelectedGuest(undefined);\r\n setSelectedEmployee(undefined);\r\n }}\r\n />\r\n {\r\n handleDeactivation();\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n Deactivation reason for the link between{' '}\r\n {selectedGuest?.guestFirstName}{' '}\r\n {selectedGuest?.guestLastName?.toLocaleUpperCase()} and{' '}\r\n {selectedEmployee?.employeeFirstName}{' '}\r\n {selectedEmployee?.employeeLastName?.toLocaleUpperCase()}\r\n \r\n \r\n \r\n Comment\r\n \r\n \r\n {selectedEmployee?.employeeDeactivationReason}\r\n \r\n \r\n \r\n \r\n {\r\n hideDeactivationReason();\r\n setSelectedEmployee(undefined);\r\n setSelectedGuest(undefined);\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n Associate an employee\r\n \r\n \r\n \r\n \r\n \r\n \r\n {`To associate an employee to ${\r\n selectedGuest?.guestFirstName\r\n } ${selectedGuest?.guestLastName?.toLocaleUpperCase()} profile, please search employee and associate him.`}\r\n \r\n \r\n \r\n Search an employee\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0}\r\n id={`GuestList_Guest_AssociateEmployeeCancel`}\r\n onClick={resetDrawer}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {foundEmployees && (\r\n
    \r\n \r\n \r\n \r\n {foundEmployees.length > 0 ? (\r\n foundEmployees.map((fg) => {\r\n return (\r\n setSelectedEmployeeId(fg.userId)}\r\n className={baseStyles.clickableDrawerOption}\r\n >\r\n \r\n \r\n \r\n setSelectedEmployeeId(fg.userId)\r\n }\r\n value={fg.userId}\r\n name={`radio-button-Guest-${fg.userId}`}\r\n color=\"primary\"\r\n />\r\n \r\n \r\n {`${fg.firstName} ${fg.lastName}`}\r\n \r\n \r\n
    \r\n );\r\n })\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleEmployeeLink()}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default GuestListPage;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useFormContext} from 'react-hook-form';\r\n\r\nimport {FormControlLabel, Switch} from '@material-ui/core';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {UserContext} from '../../context/User/UserContext';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IMemberAccess from '../../models/IMemberAccess';\r\nimport IOption from '../../models/IOption';\r\nimport IRole from '../../models/IRole';\r\nimport UserService from '../../services/UserService';\r\nimport PermissionsList from '../../utils/PermissionsList';\r\nimport DatePicker from '../commons/DatePicker/DatePicker';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport Searchcomplete from '../commons/Searchcomplete/Searchcomplete';\r\nimport TextField from '../commons/TextField/TextField';\r\nimport styles from './MemberAccessForm.module.scss';\r\n\r\ninterface IMemberAccessFormProps {\r\n defaultValue: IMemberAccess;\r\n rootMember: boolean;\r\n}\r\n\r\nconst MemberAccessForm: React.FC = ({\r\n defaultValue,\r\n rootMember,\r\n}) => {\r\n const userInfo = React.useContext(UserContext);\r\n\r\n const { control, register, errors, reset } = useFormContext();\r\n const [roles, setRoles] = useState([]);\r\n\r\n const [state, setState] = React.useState({\r\n isBlocked: defaultValue.isBlocked,\r\n isActive: defaultValue.isActive,\r\n });\r\n\r\n const { addMessage } = useSnackbar();\r\n\r\n useEffect(() => {\r\n if (defaultValue.roleName) {\r\n UserService.getAllRoles()\r\n .then((response) => setRoles(response))\r\n .catch((error) => addMessage(error.message));\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n reset({\r\n memberName: defaultValue.memberName,\r\n isActive: defaultValue.isActive,\r\n isBlocked: defaultValue.isBlocked,\r\n blockedFrom: defaultValue.isBlocked ? defaultValue.blockedFrom : null,\r\n comments: defaultValue.isBlocked ? defaultValue.comments : null,\r\n roleName: {\r\n value: defaultValue.roleName,\r\n label: defaultValue.roleName,\r\n },\r\n accessComments: defaultValue.accessComments,\r\n });\r\n\r\n setState({\r\n isActive: defaultValue.isActive,\r\n isBlocked: defaultValue.isBlocked,\r\n });\r\n }, [defaultValue]);\r\n\r\n const handleChange = (event: React.ChangeEvent) => {\r\n setState({ ...state, [event.target.name]: event.target.checked });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n Active\r\n \r\n \r\n \r\n \r\n }\r\n label={state.isActive ? 'Yes' : 'No'}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Blocked\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n label={state.isBlocked ? 'Yes' : 'No'}\r\n />\r\n \r\n {state.isBlocked && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n {userInfo.permissions.includes(\r\n PermissionsList.eTravelUserManagementUserPermissions\r\n ) &&\r\n defaultValue.roleName && (\r\n \r\n \r\n Role\r\n \r\n ({ label: x.roleName, value: x.roleName })\r\n )}\r\n defaultValue={{\r\n value: defaultValue.roleName,\r\n label: defaultValue.roleName,\r\n }}\r\n error={!!errors.roleName}\r\n errorMessage={\r\n errors.roleName?.message ?? errors.roleName?.value.message\r\n }\r\n />\r\n \r\n )}\r\n\r\n {rootMember && (\r\n \r\n \r\n Comments\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MemberAccessForm;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {FormProvider, useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport Box from '@material-ui/core/Box/Box';\r\nimport Button from '@material-ui/core/Button/Button';\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\n\r\nimport MemberAccessForm from '../../../../../components/MemberAccessForm/MemberAccessForm';\r\nimport {useLocalStorageContext} from '../../../../../context/LocalStorageContext/LocalStorageContext';\r\nimport {LocalStorageActionType} from '../../../../../context/LocalStorageContext/LocalStorageReducer';\r\nimport {useMemberManagementContext} from '../../../../../context/MemberManagementProvider/MemberManagementProvider';\r\nimport useBreakpoint from '../../../../../hooks/useBreakpoint';\r\nimport useSnackbar from '../../../../../hooks/useSnackbar';\r\nimport IMemberAccess from '../../../../../models/IMemberAccess';\r\nimport MemberService from '../../../../../services/MemberService';\r\nimport baseStyles from '../../../../../styles/styles.module.scss';\r\nimport Constants from '../../../../../utils/Constants';\r\nimport {MessageType} from '../../../../../utils/MessageType';\r\nimport formatString from '../../../../../utils/Strings';\r\n\r\nexport const MemberAccessFormSchema = yup.object().shape({\r\n roleName: yup\r\n .object()\r\n .typeError(Constants.validation.required)\r\n .shape({\r\n value: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(100, formatString(Constants.validation.max, 100)),\r\n }),\r\n blockedFrom: yup\r\n .date()\r\n .nullable()\r\n .typeError('')\r\n .label('Start date of blocking')\r\n .when('isBlocked', {\r\n is: true,\r\n then: yup\r\n .date()\r\n .required(\r\n formatString(\r\n Constants.validation.requiredField,\r\n 'Start date of blocking'\r\n )\r\n ),\r\n }),\r\n comments: yup\r\n .string()\r\n .label('Comments')\r\n .when('isBlocked', {\r\n is: true,\r\n then: yup\r\n .string()\r\n .required(formatString(Constants.validation.requiredField, 'Comments'))\r\n .max(2000, formatString(Constants.validation.max, 2000)),\r\n }),\r\n accessComments: yup\r\n .string()\r\n .max(2000, formatString(Constants.validation.max, 2000)),\r\n});\r\n\r\nconst MemberDetailsAccessTab: React.FC = () => {\r\n const {\r\n state: { selectedMember },\r\n refreshSelectedMember,\r\n } = useMemberManagementContext();\r\n const {\r\n state: { connectedMember },\r\n dispatch,\r\n } = useLocalStorageContext();\r\n const [defaultValue, setDefaultValue] = useState(null);\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(MemberAccessFormSchema),\r\n });\r\n const { addMessage } = useSnackbar();\r\n const breakpoint = useBreakpoint();\r\n\r\n useEffect(() => {\r\n if (selectedMember) {\r\n setDefaultValue({\r\n memberId: selectedMember?.member.memberId ?? 0,\r\n memberName: selectedMember?.user.firstName,\r\n isActive: selectedMember?.user.isActive ?? true,\r\n isBlocked: selectedMember?.member.isBlocked ?? false,\r\n blockedFrom: selectedMember?.member.blockedFrom,\r\n comments: selectedMember?.member.comments,\r\n roleName: selectedMember?.user.roleName,\r\n accessComments: selectedMember?.member.accessComments,\r\n });\r\n }\r\n }, [selectedMember]);\r\n\r\n const handleSubmit = (memberAccessForm: any) => {\r\n let memberAccess = {\r\n ...defaultValue,\r\n isActive: memberAccessForm.isActive,\r\n isBlocked: memberAccessForm.isBlocked,\r\n blockedFrom: memberAccessForm.isBlocked\r\n ? memberAccessForm.blockedFrom\r\n : null,\r\n comments: memberAccessForm.isBlocked ? memberAccessForm.comments : null,\r\n roleName: memberAccessForm.roleName.value,\r\n accessComments: memberAccessForm.accessComments ?? null,\r\n };\r\n defaultValue &&\r\n MemberService.updateMemberAccess(memberAccess as IMemberAccess)\r\n .then((response) => {\r\n if (response) {\r\n if (connectedMember) {\r\n dispatch({\r\n type: LocalStorageActionType.CONNECTED_MEMBER,\r\n payload: JSON.stringify({\r\n ...connectedMember,\r\n blockedFrom: memberAccess.blockedFrom,\r\n isBlocked: memberAccess.isBlocked,\r\n }),\r\n });\r\n }\r\n addMessage('Access successfully updated', MessageType.Success);\r\n } else {\r\n addMessage('Access update failed');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n })\r\n .finally(() => refreshSelectedMember());\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {defaultValue && (\r\n \r\n )}\r\n \r\n \r\n \r\n refreshSelectedMember()}\r\n >\r\n {Constants.buttons.cancel}\r\n \r\n \r\n \r\n {Constants.buttons.saveChanges}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MemberDetailsAccessTab;\r\n","import React from 'react';\r\n\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\n\r\nimport EmployeeInformation from '../../../../../components/EmployeeInformation/EmployeeInformation';\r\nimport OrganisationInformation from '../../../../../components/OrganisationInformation/OrganisationInformation';\r\nimport {useMemberManagementContext} from '../../../../../context/MemberManagementProvider/MemberManagementProvider';\r\nimport {usePlannersContext} from '../../../../../context/PlannersContext/PlannersContext';\r\n\r\nconst MemberDetailsEmployeeInfoTab: React.FC = () => {\r\n const {\r\n state: { selectedMember },\r\n saveOrganisation,\r\n } = useMemberManagementContext();\r\n const { planners } = usePlannersContext();\r\n\r\n return (\r\n <>\r\n \r\n \r\n {selectedMember && selectedMember.user && (\r\n <>\r\n \r\n\r\n {planners.length > 0 && (\r\n p.userName === selectedMember.user.planner1\r\n )?.fullName ?? '',\r\n },\r\n planner2: {\r\n value: selectedMember.user.planner2,\r\n label:\r\n planners.find(\r\n (p) => p.userName === selectedMember.user.planner2\r\n )?.fullName ?? '',\r\n },\r\n planner3: {\r\n value: selectedMember.user.planner3,\r\n label:\r\n planners.find(\r\n (p) => p.userName === selectedMember.user.planner3\r\n )?.fullName ?? '',\r\n },\r\n ccOwner: selectedMember.user.ccOwner,\r\n relation: selectedMember.user.employer,\r\n }}\r\n save={saveOrganisation}\r\n />\r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MemberDetailsEmployeeInfoTab;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {FormProvider, useForm} from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport {yupResolver} from '@hookform/resolvers/yup';\r\nimport {Box, Button} from '@material-ui/core';\r\n\r\nimport {useMemberManagementContext} from '../../context/MemberManagementProvider/MemberManagementProvider';\r\nimport useBreakpoint from '../../hooks/useBreakpoint';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IMemberAccess from '../../models/IMemberAccess';\r\nimport IMemberExtended from '../../models/IMemberExtended';\r\nimport MemberService from '../../services/MemberService';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Constants from '../../utils/Constants';\r\nimport {MessageType} from '../../utils/MessageType';\r\nimport formatString from '../../utils/Strings';\r\nimport MemberAccessForm from '../MemberAccessForm/MemberAccessForm';\r\n\r\nconst MemberAccessFormSchema = yup.object().shape({\r\n blockedFrom: yup\r\n .date()\r\n .nullable()\r\n .typeError('')\r\n .label('Start date of blocking')\r\n .when('isBlocked', {\r\n is: true,\r\n then: yup.date().required(),\r\n }),\r\n comments: yup\r\n .string()\r\n .label('Comments')\r\n .when('isBlocked', {\r\n is: true,\r\n then: yup\r\n .string()\r\n .required()\r\n .max(2000, formatString(Constants.validation.max, 2000)),\r\n }),\r\n});\r\n\r\ninterface IMemberAccessProps {\r\n member: IMemberExtended;\r\n}\r\n\r\nconst MemberAccess: React.FC = ({ member }) => {\r\n const { refreshSelectedMember } = useMemberManagementContext();\r\n const [defaultValue, setDefaultValue] = useState(null);\r\n const form = useForm({\r\n mode: 'onChange',\r\n resolver: yupResolver(MemberAccessFormSchema),\r\n });\r\n const { addMessage } = useSnackbar();\r\n const [isSubmitDisabled, setIsSubmitDisabled] = useState(true);\r\n const breakpoint = useBreakpoint();\r\n\r\n useEffect(() => {\r\n let isRequiredFieldMissing = ['isActive', 'isBlocked'].some(\r\n (field) =>\r\n form.getValues(field) === '' ||\r\n form.getValues(field) === undefined ||\r\n form.getValues(field) === null\r\n );\r\n let disabled =\r\n isRequiredFieldMissing ||\r\n Object.keys(form.formState.dirtyFields).length == 0;\r\n if (form.getValues('isBlocked')) {\r\n disabled =\r\n disabled ||\r\n !(\r\n form.getValues('blockedFrom') &&\r\n form.getValues('comments')?.length > 0\r\n );\r\n }\r\n setIsSubmitDisabled(disabled);\r\n console.log('Disabled: ', disabled);\r\n }, [\r\n form.control,\r\n form.formState.isValid,\r\n Object.keys(form.formState.dirtyFields).length,\r\n ]);\r\n\r\n useEffect(() => {\r\n form.reset({ ...defaultValue });\r\n }, [defaultValue]);\r\n\r\n useEffect(() => {\r\n if (member) {\r\n setDefaultValue({\r\n memberId: member?.memberId ?? 0,\r\n memberName: member?.firstName,\r\n isActive: member?.isActive ?? true,\r\n isBlocked: member?.isBlocked ?? false,\r\n blockedFrom: member?.blockedFrom,\r\n comments: member?.comments,\r\n });\r\n }\r\n }, [member]);\r\n\r\n const handleSubmit = (memberAccess: any) => {\r\n defaultValue &&\r\n MemberService.updateMemberAccess({\r\n ...defaultValue,\r\n isActive: memberAccess.isActive,\r\n isBlocked: memberAccess.isBlocked,\r\n blockedFrom: memberAccess.isBlocked ? memberAccess.blockedFrom : null,\r\n comments: memberAccess.isBlocked ? memberAccess.comments : null,\r\n })\r\n .then((response) => {\r\n if (response) {\r\n addMessage(\r\n 'Save Changes successfully completed',\r\n MessageType.Success\r\n );\r\n } else {\r\n addMessage('Save Changes failed');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n })\r\n .finally(() => refreshSelectedMember());\r\n };\r\n return (\r\n <>\r\n \r\n \r\n {defaultValue && (\r\n \r\n )}\r\n \r\n \r\n {Constants.buttons.cancel}\r\n \r\n \r\n \r\n {Constants.buttons.saveChanges}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MemberAccess;\r\n","import React from 'react';\r\n\r\nimport {Accordion, AccordionDetails, AccordionSummary, Grid,} from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography/Typography';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nimport MemberAccess from '../../../../../components/MemberAccess/MemberAccess';\r\nimport MemberInformation from '../../../../../components/MemberInformation/MemberInformation';\r\nimport {useMemberManagementContext} from '../../../../../context/MemberManagementProvider/MemberManagementProvider';\r\nimport baseStyle from '../../../../../styles/styles.module.scss';\r\n\r\nconst MemberDetailsFamilyMembersTab: React.FC = () => {\r\n const {\r\n state: { selectedMember },\r\n refreshSelectedMember,\r\n } = useMemberManagementContext();\r\n\r\n return (\r\n \r\n {selectedMember && (\r\n \r\n {selectedMember.relatives.map((relative) => {\r\n return (\r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n >\r\n {`${relative.firstName} ${relative.lastName} - ${relative.relationName}`}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MemberDetailsFamilyMembersTab;\r\n","import React from 'react';\r\n\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nimport GuestAddDrawer from '../../../../../components/GuestAddDrawer/GuestAddDrawer';\r\nimport MemberInformation from '../../../../../components/MemberInformation/MemberInformation';\r\nimport {useMemberManagementContext} from '../../../../../context/MemberManagementProvider/MemberManagementProvider';\r\nimport IGuest from '../../../../../models/IGuest';\r\nimport baseStyle from '../../../../../styles/styles.module.scss';\r\n\r\nconst MemberDetailsGuestsTab: React.FC = () => {\r\n const {\r\n state: { selectedMember },\r\n refreshSelectedMember,\r\n } = useMemberManagementContext();\r\n\r\n return (\r\n <>\r\n {selectedMember && selectedMember.user && selectedMember.user.userId && (\r\n \r\n )}\r\n {selectedMember &&\r\n selectedMember.user.guests.map((g: IGuest) => {\r\n return (\r\n \r\n }>\r\n {`${g.member.firstName} ${g.member.lastName}`}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default MemberDetailsGuestsTab;\r\n","import React from 'react';\r\n\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\n\r\nimport MemberInformation from '../../../../../components/MemberInformation/MemberInformation';\r\nimport {useMemberManagementContext} from '../../../../../context/MemberManagementProvider/MemberManagementProvider';\r\n\r\nconst MemberDetailsPersonnalInfoTab: React.FC = () => {\r\n const {\r\n state: { selectedMember },\r\n refreshSelectedMember,\r\n } = useMemberManagementContext();\r\n\r\n return (\r\n <>\r\n \r\n \r\n {selectedMember && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MemberDetailsPersonnalInfoTab;\r\n","import IRole from '../../models/IRole';\r\n\r\nexport enum RoleActionType {\r\n FETCH_ROLES,\r\n SELECT_ROLE,\r\n}\r\n\r\nexport interface RoleState {\r\n roles: IRole[] | null;\r\n selectedRole: IRole | null;\r\n}\r\n\r\nexport type RoleAction =\r\n | { type: RoleActionType.FETCH_ROLES; payload: IRole[] }\r\n | { type: RoleActionType.SELECT_ROLE; payload: IRole | null };\r\n\r\nexport const RoleReducer = (state: RoleState, action: RoleAction) => {\r\n switch (action.type) {\r\n case RoleActionType.FETCH_ROLES:\r\n return { ...state, roles: action.payload };\r\n case RoleActionType.SELECT_ROLE:\r\n return { ...state, selectedRole: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default RoleReducer;\r\n","import React, { createContext, useContext, useEffect, useReducer } from 'react';\r\n\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IRole from '../../models/IRole';\r\nimport Constants from '../../utils/Constants';\r\nimport { MessageType } from '../../utils/MessageType';\r\nimport RoleReducer, { RoleAction, RoleActionType, RoleState, } from './RoleReducer';\r\n\r\nimport UserService from '../../services/UserService';\r\n\r\nexport const InitialState: RoleState = {\r\n roles: null,\r\n selectedRole: null,\r\n};\r\n\r\nexport interface IRoleContext {\r\n state: RoleState;\r\n dispatch: React.Dispatch;\r\n submitRole: (role: IRole) => void;\r\n deleteRole: (role: IRole) => void;\r\n insertRole: (role: IRole) => void;\r\n}\r\n\r\nconst RoleContext = createContext({} as IRoleContext);\r\n\r\nconst RoleProvider: React.FC = ({children}) => {\r\n const [state, dispatch] = useReducer(RoleReducer, InitialState);\r\n const {addMessage} = useSnackbar();\r\n\r\n useEffect(() => {\r\n fetchRoles();\r\n }, []);\r\n\r\n const fetchRoles = async () => {\r\n UserService.getAllRoles()\r\n .then((roles) =>\r\n dispatch({type: RoleActionType.FETCH_ROLES, payload: roles})\r\n )\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const submitRole = (role: IRole) => {\r\n UserService.updateRole({...state.selectedRole, ...role})\r\n .then((result) => {\r\n if (result) {\r\n fetchRoles().finally(() =>\r\n addMessage(Constants.messages.success.dataSaved, MessageType.Success));\r\n } else {\r\n addMessage('Cannot update the selected role.');\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const insertRole = (role: IRole) => {\r\n UserService.insertRole(role)\r\n .then((result) => {\r\n if (result) {\r\n fetchRoles().finally(() =>\r\n addMessage(Constants.messages.success.dataInserted, MessageType.Success));\r\n } else {\r\n addMessage('Cannot insert the role.');\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n const deleteRole = (role: IRole) => {\r\n UserService.deleteRole(role.roleName)\r\n .then((isDeleted) => {\r\n if (isDeleted) {\r\n fetchRoles().finally(() =>\r\n addMessage(Constants.messages.success.dataDeleted, MessageType.Success));\r\n } else {\r\n addMessage('Cannot delete the selected role.');\r\n }\r\n })\r\n .catch((error) => addMessage(error.message));\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default RoleProvider;\r\n\r\nexport const useRoleContext = () => useContext(RoleContext);\r\n","import React from 'react';\r\nimport {UseFormMethods} from 'react-hook-form';\r\n\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport IRole from '../../models/IRole';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport TextField from '../commons/TextField/TextField';\r\n\r\nexport interface IRoleFormProps {\r\n form: UseFormMethods;\r\n defaultValue: IRole;\r\n isCreate: boolean;\r\n}\r\n\r\nconst RoleForm: React.FC = ({ form, defaultValue, isCreate }) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RoleForm;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport * as yup from 'yup';\r\n\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport Box from '@material-ui/core/Box/Box';\r\nimport Button from '@material-ui/core/Button/Button';\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport Dialog from '../../components/commons/Dialog/Dialog';\r\nimport DialogActions from '../../components/commons/Dialog/DialogActions';\r\nimport DialogButton from '../../components/commons/Dialog/DialogButton';\r\nimport DialogCancelButton from '../../components/commons/Dialog/DialogCancelButton';\r\nimport DialogContent from '../../components/commons/Dialog/DialogContent';\r\nimport DialogTitle from '../../components/commons/Dialog/DialogTitle';\r\nimport Drawer from '../../components/commons/Drawer/Drawer';\r\nimport DrawerActions from '../../components/commons/Drawer/DrawerActions';\r\nimport DrawerCancelButton from '../../components/commons/Drawer/DrawerCancelButton';\r\nimport DrawerContent from '../../components/commons/Drawer/DrawerContent';\r\nimport DrawerSaveButton from '../../components/commons/Drawer/DrawerSaveButton';\r\nimport DrawerTitle from '../../components/commons/Drawer/DrawerTitle';\r\nimport { useRoleContext } from '../../context/RoleProvider/RoleProvider';\r\nimport useBreakpoint from '../../hooks/useBreakpoint';\r\nimport useDebounce from '../../hooks/useDebounce';\r\nimport { useModal } from '../../hooks/useModal';\r\nimport useSnackbar from '../../hooks/useSnackbar';\r\nimport IPermission from '../../models/IPermission';\r\nimport IPermissionRole from '../../models/IPermissionRole';\r\nimport IPermissionUser from '../../models/IPermissionUser';\r\nimport IRole from '../../models/IRole';\r\nimport IUser from '../../models/IUser';\r\nimport UserService from '../../services/UserService';\r\nimport baseStyles from '../../styles/styles.module.scss';\r\nimport Constants from '../../utils/Constants';\r\nimport { MessageType } from '../../utils/MessageType';\r\nimport formatString from '../../utils/Strings';\r\nimport AddButton from '../commons/AddButton/AddButton';\r\nimport Autocomplete from '../commons/AutoComplete/AutoComplete';\r\nimport Checkbox from '../commons/Checkbox/Checkbox';\r\nimport FormControl from '../commons/FormControl/FormControl';\r\nimport RoleForm from '../RoleConfiguration/RoleForm';\r\n\r\ninterface IRoleConfigurationProps {\r\n user?: IUser | null;\r\n}\r\n\r\ninterface IPermissionForm {\r\n permissions: string[];\r\n}\r\n\r\nexport const RoleFormSchemaAdd = yup.object().shape({\r\n roleName: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n roleDescription: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(250, formatString(Constants.validation.max, 250)),\r\n homepageText: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(500, formatString(Constants.validation.max, 500)),\r\n});\r\n\r\nexport const RoleFormSchemaModify = yup.object().shape({\r\n roleName: yup\r\n .string()\r\n .required(Constants.validation.required)\r\n .max(150, formatString(Constants.validation.max, 150)),\r\n});\r\nexport const DefaultRole: IRole = {\r\n roleName: '',\r\n applicationName: 'ETRAVEL',\r\n roleDescription: '',\r\n homepageText: '',\r\n};\r\n\r\nconst RoleConfiguration: React.FC = ({ user }) => {\r\n const [permissions, setPermissions] = useState([]);\r\n const [rolePermissions, setRolePermissions] = useState([]);\r\n const [userPermissions, setUserPermissions] = useState([]);\r\n const [isUserPermissionConfiguration] = useState(user !== undefined); // user === undefined if it's role configuration\r\n\r\n const [refresh, setRefresh] = useState(false);\r\n const { addMessage } = useSnackbar();\r\n const form = useForm();\r\n\r\n const [selectedRole, setSelectedRole] = useState('');\r\n const [roleName, setRoleName] = React.useState(null);\r\n\r\n const debouncedSelectedRole = useDebounce(selectedRole, 300);\r\n const breakpoint = useBreakpoint();\r\n\r\n const {\r\n showModal: showDrawer,\r\n hideModal: hideDrawer,\r\n isVisible: isVisibleDrawer,\r\n } = useModal();\r\n const {\r\n showModal: showConfirmationDialog,\r\n hideModal: hideConfirmationDialog,\r\n isVisible: isVisibleConfirmationDialog,\r\n } = useModal();\r\n\r\n const roleContext = useRoleContext();\r\n const roles = roleContext.state.roles ?? [];\r\n\r\n const [rolesInfo, setRolesInfo] = useState(\r\n roles.find((x) => x.roleName == selectedRole) as IRole\r\n );\r\n\r\n const { submitRole, deleteRole, insertRole } = useRoleContext();\r\n const [isSelectedModify, setIsSelectedModify] = useState(true);\r\n const formRole = useForm({\r\n resolver: !isSelectedModify\r\n ? yupResolver(RoleFormSchemaAdd)\r\n : yupResolver(RoleFormSchemaModify),\r\n mode: 'onChange',\r\n });\r\n\r\n const defaultRoleValues = DefaultRole;\r\n\r\n useEffect(() => {\r\n UserService.getAllPermissions()\r\n .then((response) => setPermissions(response))\r\n .catch((error) => addMessage(error.message));\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (user?.userName) {\r\n setSelectedRole(user.roleName);\r\n fetchPermissionsOfUser(user.userName);\r\n }\r\n }, [user]);\r\n\r\n\r\n useEffect(() => {\r\n if (roleName != null || roleName != '') {\r\n setRolesInfo(roles.find((x) => x.roleName == roleName) as IRole);\r\n }\r\n }, [roleName, roles]);\r\n\r\n useEffect(() => {\r\n if (debouncedSelectedRole) {\r\n fetchPermissionsOfRole();\r\n }\r\n }, [debouncedSelectedRole]);\r\n\r\n useEffect(() => {\r\n if (refresh) {\r\n if (isUserPermissionConfiguration && user) {\r\n fetchPermissionsOfUser(user.userName);\r\n form.formState.isDirty = false;\r\n } else {\r\n fetchPermissionsOfRole();\r\n }\r\n }\r\n }, [refresh]);\r\n\r\n const fetchPermissionsOfRole = () => {\r\n UserService.getPermissionsOfRole(debouncedSelectedRole)\r\n .then((response) => {\r\n setRolePermissions(response);\r\n form.formState.isDirty = false;\r\n })\r\n .catch((error) => addMessage(error.message))\r\n .finally(() => setRefresh(false));\r\n };\r\n\r\n const fetchPermissionsOfUser = (usernameParams: string) => {\r\n UserService.getPermissionsOfUser(usernameParams)\r\n .then((response) => setUserPermissions(response))\r\n .catch((error) => addMessage(error.message))\r\n .finally(() => setRefresh(false));\r\n };\r\n\r\n const handleSubmit = (permissionForm: IPermissionForm) => {\r\n if (debouncedSelectedRole) {\r\n if (isUserPermissionConfiguration) {\r\n let selectedPermissions = permissionForm.permissions ?? [];\r\n // remove permissions of role from the list of form permissions\r\n rolePermissions.forEach((f) =>\r\n selectedPermissions.splice(\r\n selectedPermissions.findIndex((e) => e === f.permissionName),\r\n 1\r\n )\r\n );\r\n\r\n let permissionsOfUser = selectedPermissions.map(\r\n (x): IPermissionUser => ({\r\n userId: user?.userId ?? 0,\r\n permissionName: x,\r\n })\r\n );\r\n if (permissionsOfUser.length === 0) {\r\n permissionsOfUser.push({\r\n userId: user?.userId ?? 0,\r\n permissionName: '',\r\n });\r\n }\r\n\r\n UserService.updatePermissionsOfUser(permissionsOfUser)\r\n .then((response) => {\r\n if (response) {\r\n addMessage(\r\n 'Permissions successfully updated',\r\n MessageType.Success\r\n );\r\n fetchPermissionsOfRole();\r\n } else {\r\n addMessage('Permissions update failed');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n setRefresh(true);\r\n });\r\n } else {\r\n let permissionsOfRole: IPermissionRole[] = [];\r\n if (permissionForm && permissionForm.permissions) {\r\n permissionsOfRole = permissionForm.permissions.map(\r\n (x): IPermissionRole => ({\r\n roleName: debouncedSelectedRole,\r\n permissionName: x,\r\n })\r\n );\r\n }\r\n\r\n if (permissionsOfRole.length === 0) {\r\n permissionsOfRole.push({\r\n roleName: debouncedSelectedRole,\r\n permissionName: '',\r\n });\r\n }\r\n\r\n UserService.updatePermissionsOfRole(permissionsOfRole)\r\n .then((response) => {\r\n if (response) {\r\n addMessage(\r\n 'Permissions successfully updated',\r\n MessageType.Success\r\n );\r\n fetchPermissionsOfRole();\r\n } else {\r\n addMessage('Permissions update failed');\r\n }\r\n })\r\n .catch((error) => {\r\n addMessage(error.message);\r\n setRefresh(true);\r\n });\r\n }\r\n }\r\n };\r\n const handleEdit = async () => {\r\n setIsSelectedModify(true);\r\n setRolesInfo(roles.find((x) => x.roleName == selectedRole) as IRole);\r\n showDrawer();\r\n };\r\n const handleAdd = async () => {\r\n setIsSelectedModify(false);\r\n showDrawer();\r\n };\r\n\r\n const handleDelete = async () => {\r\n setRolesInfo(roles.find((x) => x.roleName == selectedRole) as IRole);\r\n showConfirmationDialog();\r\n };\r\n const handleConfirmDelete = (role: IRole) => {\r\n deleteRole(role);\r\n hideConfirmationDialog();\r\n setSelectedRole('');\r\n setRoleName(null);\r\n };\r\n\r\n const handleRoleSubmit = (role: IRole) => {\r\n if (isSelectedModify) {\r\n submitRole(role);\r\n } else {\r\n insertRole(role);\r\n setRoleName(null);\r\n setSelectedRole('');\r\n }\r\n\r\n hideDrawer();\r\n };\r\n\r\n return (\r\n <>\r\n {!isUserPermissionConfiguration && (\r\n <>\r\n \r\n \r\n Please select a role to configure it\r\n \r\n \r\n \r\n handleAdd()}>\r\n Add role\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n option.roleName ? option.roleName : ''\r\n }\r\n renderOption={(option) => option.roleName}\r\n valueProp=\"roleName\"\r\n margin=\"normal\"\r\n options={roles}\r\n onChange={(event, value) => {\r\n setSelectedRole(value);\r\n setRoleName(value);\r\n }}\r\n inputValue={roleName ?? ''}\r\n />\r\n \r\n \r\n {debouncedSelectedRole && (\r\n \r\n handleEdit()}\r\n >\r\n {'Edit role'}\r\n \r\n handleDelete()}\r\n >\r\n {'Delete role'}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {rolesInfo?.roleDescription}\r\n \r\n \r\n \r\n {debouncedSelectedRole &&\r\n (selectedRole != null || selectedRole != '') && (\r\n \r\n \r\n {rolesInfo?.homepageText &&\r\n 'Text visible on the homepage for the users with this role'}\r\n \r\n \r\n \r\n {rolesInfo?.homepageText}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n {debouncedSelectedRole &&\r\n permissions &&\r\n permissions\r\n .filter(\r\n (x) =>\r\n x.parentPermission == null &&\r\n (x.restrictedToRole === debouncedSelectedRole ||\r\n x.restrictedToRole == null)\r\n )\r\n .map((x) => {\r\n return (\r\n \r\n }>\r\n {x.displayName}\r\n \r\n \r\n \r\n {permissions\r\n .filter(\r\n (y) =>\r\n y.parentPermission === x.permissionName &&\r\n (y.restrictedToRole === debouncedSelectedRole ||\r\n y.restrictedToRole == null)\r\n )\r\n .map((y) => {\r\n const isCheckedForRole = rolePermissions.some(\r\n (r) => r.permissionName === y.permissionName\r\n );\r\n let isCheckedForUser = false;\r\n if (\r\n !isCheckedForRole &&\r\n isUserPermissionConfiguration\r\n ) {\r\n isCheckedForUser = userPermissions.some(\r\n (perm) => perm === y.permissionName\r\n );\r\n }\r\n const isChecked =\r\n isCheckedForRole || isCheckedForUser;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n );\r\n })}\r\n {debouncedSelectedRole && (\r\n \r\n setRefresh(true)}\r\n >\r\n {Constants.buttons.cancel}\r\n \r\n \r\n \r\n {Constants.buttons.saveChanges}\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n {isSelectedModify ? 'Modify a role ' : 'Add a role'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n hideDrawer()}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n You are going to delete the role:\r\n \r\n {selectedRole}\r\n \r\n \r\n Are you sure?\r\n \r\n \r\n {\r\n hideConfirmationDialog();\r\n }}\r\n />\r\n handleConfirmDelete(rolesInfo)}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\nexport default RoleConfiguration;\r\n","import React from 'react';\r\n\r\nimport Grid from '@material-ui/core/Grid/Grid';\r\n\r\nimport RoleConfiguration from '../../../../../components/RoleConfiguration/RoleConfiguration';\r\nimport {useMemberManagementContext} from '../../../../../context/MemberManagementProvider/MemberManagementProvider';\r\nimport RoleProvider from '../../../../../context/RoleProvider/RoleProvider';\r\n\r\nconst MemberDetailsRoleTab: React.FC = () => {\r\n const { state } = useMemberManagementContext();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MemberDetailsRoleTab;\r\n","import React from 'react';\r\n\r\nimport IRoute from '../models/IRoute';\r\nimport MemberDetailsAccessTab\r\n from '../pages/userManagement/members/MemberDetailsPage/MemberDetailsAccessTab/MemberDetailsAccessTab';\r\nimport MemberDetailsEmployeeInfoTab\r\n from '../pages/userManagement/members/MemberDetailsPage/MemberDetailsEmployeeInfoTab/MemberDetailsEmployeeInfoTab';\r\nimport MemberDetailsFamilyMembersTab\r\n from '../pages/userManagement/members/MemberDetailsPage/MemberDetailsFamilyMembersTab/MemberDetailsFamilyMembersTab';\r\nimport MemberDetailsGuestsTab\r\n from '../pages/userManagement/members/MemberDetailsPage/MemberDetailsGuestsTab/MemberDetailsGuestsTab';\r\nimport MemberDetailsPersonalInfoTab\r\n from '../pages/userManagement/members/MemberDetailsPage/MemberDetailsPersonalInfoTab/MemberDetailsPersonalInfoTab';\r\nimport MemberDetailsRoleTab\r\n from '../pages/userManagement/members/MemberDetailsPage/MemberDetailsRoleTab/MemberDetailsRoleTab';\r\nimport PermissionsList from '../utils/PermissionsList';\r\n\r\nconst MemberDetailRoutes: IRoute[] = [\r\n {\r\n path: '/administration/members/:memberId/details/personalInfo',\r\n name: 'Personal Info',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelUserManagementMemberAdministration,\r\n },\r\n {\r\n path: '/administration/members/:memberId/details/employeeInfo',\r\n name: 'Employee Info',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelUserManagementMemberAdministration,\r\n },\r\n {\r\n path: '/administration/members/:memberId/details/familyMembers',\r\n name: 'Family members',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelUserManagementMemberAdministration,\r\n },\r\n {\r\n path: '/administration/members/:memberId/details/guests',\r\n name: 'Guests',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelUserManagementGuestManagement,\r\n },\r\n {\r\n path: '/administration/members/:memberId/details/access',\r\n name: 'Access',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelUserManagementMemberAdministration,\r\n },\r\n {\r\n path: '/administration/members/:memberId/details/role',\r\n name: 'Role',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelUserManagementUserPermissions,\r\n },\r\n];\r\n\r\nexport default MemberDetailRoutes;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useHistory, useParams} from 'react-router-dom';\r\n\r\nimport Link from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as BackIcon} from '../../../../assets/icons/back.svg';\r\nimport NavTabs from '../../../../components/commons/NavTabs/NavTabs';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport Routes from '../../../../components/Routes/Routes';\r\nimport {useMemberManagementContext} from '../../../../context/MemberManagementProvider/MemberManagementProvider';\r\nimport {MemberManagementActionType} from '../../../../context/MemberManagementProvider/MemberManagementReducer';\r\nimport IRoute from '../../../../models/IRoute';\r\nimport MemberDetailsRoutes from '../../../../routes/MemberDetailsRoutes';\r\nimport UserService from '../../../../services/UserService';\r\nimport baseStyle from '../../../../styles/styles.module.scss';\r\nimport PermissionsList from '../../../../utils/PermissionsList';\r\n\r\nconst MemberDetailsPage: React.FC = () => {\r\n const { memberId } = useParams<{ memberId: string }>();\r\n const history = useHistory();\r\n const {\r\n state: { selectedMember },\r\n dispatch,\r\n } = useMemberManagementContext();\r\n const [tabs, setTabs] = useState();\r\n\r\n useEffect(() => {\r\n dispatch({\r\n type: MemberManagementActionType.SET_MEMBERID,\r\n payload: +decodeURIComponent(memberId),\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (selectedMember && selectedMember.relatives) {\r\n let newTabs = MemberDetailsRoutes;\r\n\r\n UserService.getPermissionsOfUser(selectedMember.user.userName).then(\r\n (permissions) => {\r\n if (\r\n selectedMember.relatives &&\r\n selectedMember.relatives.length === 0\r\n ) {\r\n newTabs = newTabs.filter(\r\n (t) =>\r\n t.path !==\r\n '/administration/members/:memberId/details/familyMembers'\r\n );\r\n }\r\n if (\r\n !permissions.some(\r\n (p) => p === PermissionsList.eTravelUserManagementGuestOwnership\r\n )\r\n )\r\n newTabs = newTabs.filter(\r\n (t) =>\r\n t.path !== '/administration/members/:memberId/details/guests'\r\n );\r\n setTabs([\r\n ...newTabs.map((m) => ({\r\n ...m,\r\n path: m.path.replace(':memberId', memberId),\r\n })),\r\n ]);\r\n }\r\n );\r\n }\r\n }, [selectedMember]);\r\n\r\n return (\r\n <>\r\n {tabs && selectedMember && (\r\n <>\r\n \r\n history.push('/administration/members/list')}\r\n type=\"button\"\r\n variant=\"body1\"\r\n component=\"button\"\r\n >\r\n \r\n \r\n Back to member list\r\n \r\n }\r\n title={`${selectedMember?.member.firstName} ${selectedMember?.member.lastName}`}\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MemberDetailsPage;\r\n","import moment from 'moment';\r\nimport React, {useEffect, useState} from 'react';\r\nimport {Link} from 'react-router-dom';\r\n\r\nimport Box from '@material-ui/core/Box';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport MuiLink from '@material-ui/core/Link';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {ReactComponent as OkIcon} from '../../../../assets/icons/ok.svg';\r\nimport DateTime from '../../../../components/commons/DateTime/DateTime';\r\nimport NoResult from '../../../../components/commons/NoResult/NoResult';\r\nimport SearchButton from '../../../../components/commons/SearchButton/SearchButton';\r\nimport Select from '../../../../components/commons/Select/Select';\r\nimport Table from '../../../../components/commons/Table/Table';\r\nimport TextField from '../../../../components/commons/TextField/TextField';\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport {useMemberManagementContext} from '../../../../context/MemberManagementProvider/MemberManagementProvider';\r\nimport {ALL, MemberManagementActionType,} from '../../../../context/MemberManagementProvider/MemberManagementReducer';\r\nimport baseStyles from '../../../../styles/styles.module.scss';\r\nimport {highlightSearchText} from '../../../../utils/Strings';\r\n\r\nconst MemberListPage: React.FC = () => {\r\n const { state, dispatch, searchMembers } = useMemberManagementContext();\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n let newData: any[] = [];\r\n\r\n state.members.forEach((member) => {\r\n newData.push({\r\n userId: member.userId,\r\n memberId: member.memberId,\r\n username: member.username,\r\n employeeId: member.employeeId,\r\n employeeName: member.employeeName,\r\n roleName: member.roleName,\r\n isBlocked: member.isBlocked,\r\n blockedFrom: member.blockedFrom,\r\n isActive: member.isActive,\r\n familyMembersName: '',\r\n familyMembersRelation: '',\r\n isMember: true,\r\n createdDate: member.createdDate,\r\n });\r\n member.familyMembers.forEach((familyMember) => {\r\n newData.push({\r\n userId: '',\r\n username: '',\r\n employeeId: member.employeeId,\r\n memberId: member.memberId,\r\n employeeName: member.employeeName,\r\n roleName: member.roleName,\r\n isBlocked: familyMember.isBlocked,\r\n blockedFrom: familyMember.blockedFrom,\r\n isActive: familyMember.isActive,\r\n familyMembersName: familyMember.name,\r\n familyMembersRelation: familyMember.relation,\r\n isMember: false,\r\n });\r\n });\r\n });\r\n\r\n setData(newData);\r\n\r\n setIsLoading(false);\r\n }, [state.members]);\r\n\r\n const columns = React.useMemo((): any[] => {\r\n let commonColumns: any[] = [\r\n {\r\n Header: 'EmpID',\r\n accessor: 'employeeId',\r\n Cell: ({ row }: any) => (\r\n <>{row.original.isMember && <>{row.original.employeeId}}\r\n ),\r\n width: '10%',\r\n },\r\n {\r\n Header: 'Employee',\r\n accessor: 'employeeName',\r\n Cell: ({ row }: any) => (\r\n <>\r\n {row.original.isMember &&\r\n highlightSearchText(\r\n row.original.employeeName,\r\n state.lastSearchValue\r\n )}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'Create date',\r\n accessor: 'createdDate',\r\n Cell: ({ row }: any) => (\r\n <>\r\n {row.original.createdDate ? (\r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n ),\r\n },\r\n {\r\n Header: 'eTravel Role',\r\n accessor: 'roleName',\r\n Cell: ({ row }: any) => (\r\n <>{row.original.isMember && <>{row.original.roleName}}\r\n ),\r\n width: '15%',\r\n },\r\n {\r\n Header: 'Family Member',\r\n accessor: 'familyMembersName',\r\n width: '20%',\r\n Cell: ({ row }: any) =>\r\n highlightSearchText(\r\n row.original.familyMembersName,\r\n state.lastSearchValue\r\n ),\r\n },\r\n {\r\n Header: 'Relation',\r\n accessor: 'familyMembersRelation',\r\n width: '10%',\r\n },\r\n {\r\n Header: 'Active',\r\n accessor: 'isActive',\r\n Cell: ({ row }: any) => (\r\n
    {row.original.isActive ? : <>}
    \r\n ),\r\n width: '5%',\r\n },\r\n {\r\n Header: 'Blocked',\r\n accessor: 'isBlocked',\r\n Cell: ({ row }: any) => (\r\n
    \r\n {row.original.isActive &&\r\n row.original.isBlocked &&\r\n moment(row.original.blockedFrom).startOf('day') <=\r\n moment().startOf('day') ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n
    \r\n ),\r\n width: '6%',\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actions',\r\n Cell: ({ row }: any) => (\r\n \r\n {row.original.memberId && (\r\n \r\n See more\r\n \r\n )}\r\n \r\n ),\r\n width: '10%',\r\n },\r\n ];\r\n\r\n return commonColumns;\r\n }, [state.lastSearchValue]);\r\n\r\n const handleKeyPress = (e: React.KeyboardEvent) => {\r\n if (\r\n e.key === 'Enter' &&\r\n (state.searchValue.length >= 3 || !isNaN(+state.searchValue))\r\n ) {\r\n handleSearch();\r\n }\r\n };\r\n\r\n const handleSearch = () => {\r\n setIsLoading(true);\r\n searchMembers(state.searchValue);\r\n dispatch({\r\n type: MemberManagementActionType.SET_LAST_SEARCH_VALUE,\r\n payload: state.searchValue,\r\n });\r\n };\r\n const handleChange = (e: React.ChangeEvent) => {\r\n dispatch({\r\n type: MemberManagementActionType.SET_SEARCH_VALUE,\r\n payload: e.target.value,\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Search an employee or a family member\r\n \r\n \r\n \r\n \r\n You can search by First and Last Name or by Employee ID. You can\r\n also use filters to refine the search.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Search member\r\n \r\n \r\n \r\n \r\n \r\n Filter by\r\n \r\n \r\n \r\n \r\n {\r\n dispatch({\r\n type: MemberManagementActionType.SET_ISBLOCKED,\r\n payload: e.target.value as boolean | ALL,\r\n });\r\n }}\r\n />\r\n \r\n \r\n {\r\n dispatch({\r\n type: MemberManagementActionType.SET_ISACTIVE,\r\n payload: e.target.value as boolean | ALL,\r\n });\r\n }}\r\n />\r\n \r\n \r\n ({\r\n label: r.roleName,\r\n value: r.roleName,\r\n })),\r\n ]}\r\n value={state.roleName}\r\n onChange={(e) => {\r\n dispatch({\r\n type: MemberManagementActionType.SET_ROLENAME,\r\n payload: e.target.value as string | ALL,\r\n });\r\n }}\r\n />\r\n \r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : data && data.length > 0 ? (\r\n \r\n ) : (\r\n state.lastSearchValue && (\r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MemberListPage;\r\n","import React from 'react';\r\n\r\nimport Routes from '../../../../components/Routes/Routes';\r\nimport PermissionsList from '../../../../utils/PermissionsList';\r\nimport MemberDetailsPage from '../MemberDetailsPage/MemberDetailsPage';\r\nimport MemberListPage from '../MemberListPage/MemberListPage';\r\n\r\ninterface IMemberMainPageProps {}\r\n\r\nconst MemberMainPage: React.FC = () => {\r\n return (\r\n <>\r\n ,\r\n permission:\r\n PermissionsList.eTravelUserManagementMemberAdministration,\r\n },\r\n {\r\n path: '/administration/members/:memberId/details',\r\n name: 'Member Details',\r\n exact: false,\r\n component: ,\r\n //permission: PermissionsList.eTravelUserManagementUserPermissions\r\n },\r\n ]}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default MemberMainPage;\r\n","import React from 'react';\r\n\r\nimport PageContent from '../../../../components/PageContent/PageContent';\r\nimport RoleConfiguration from '../../../../components/RoleConfiguration/RoleConfiguration';\r\nimport RoleProvider from '../../../../context/RoleProvider/RoleProvider';\r\n\r\nconst RoleConfigurationPage: React.FC = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RoleConfigurationPage;\r\n","import IImmigrationDocument from '../../../../../models/IImmigrationDocument';\r\nimport React, { useState } from 'react';\r\nimport moment from 'moment';\r\nimport {\r\n Card,\r\n CardActions,\r\n CardContent,\r\n CardHeader,\r\n Chip,\r\n Grid,\r\n IconButton,\r\n makeStyles,\r\n Typography,\r\n} from '@material-ui/core';\r\nimport ReactCountryFlag from 'react-country-flag';\r\nimport DocumentStatusChip from './DocumentStatusChip';\r\nimport ReadOnlyLabel from './ReadOnlyLabel';\r\nimport clsx from 'clsx';\r\nimport { ExpandMore } from '@material-ui/icons';\r\nimport ImmigrationDocumentPreview\r\n from '../../../../../components/ImmigrationDocument/ImmigrationDocumentPreview';\r\nimport _ from \"lodash\";\r\nimport PassportExpirationChip from './PassportExpirationChip';\r\nimport PassportMenu, { PassportMenuAction } from './PassportMenu';\r\nimport { useModal } from '../../../../../hooks/useModal';\r\nimport VisaUpdateDrawer from '../../../../../components/VisaDocument/VisaUpdateDrawer';\r\nimport { getFileExtension } from '../../../../../utils/get-mime-type';\r\nimport PdfFileDowloadButtton from '../../../../../components/PdfFileDownloadButton';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n expand: {\r\n transform: 'rotate(0deg)',\r\n marginLeft: 'auto',\r\n transition: theme.transitions.create('transform', {\r\n duration: theme.transitions.duration.shortest,\r\n }),\r\n },\r\n expandOpen: {\r\n transform: 'rotate(180deg)',\r\n },\r\n imageButton: {\r\n padding: 0\r\n }\r\n}));\r\n\r\ntype Props = {\r\n document: IImmigrationDocument;\r\n options?: ('edit' | 'delete' | 'add-visa' | 'set-default')[];\r\n onChange: () => void;\r\n}\r\n\r\nfunction VisaCard(props: Props): JSX.Element {\r\n const {\r\n showModal: showUpdateVisaDrawer,\r\n hideModal: hideUpdateVisaDrawer,\r\n isVisible: updateVisaDrawerVisible,\r\n } = useModal();\r\n\r\n const {document, options, onChange} = props;\r\n const classes = useStyles();\r\n\r\n const [expanded, setExpanded] = useState(false);\r\n\r\n const visas = document.visas?.length ?? 0;\r\n\r\n const dateFormat = (date?: Date) => {\r\n if (!date) {\r\n return undefined;\r\n }\r\n return moment(date).format('DD MMM YYYY');\r\n };\r\n\r\n const formatDate = (date?: Date) => date === undefined ? '' : moment(date).format('DD MMM YYYY');\r\n\r\n const handleMenuClick = (action: PassportMenuAction) => {\r\n if (action === 'Edit') {\r\n showUpdateVisaDrawer();\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {document.documentName ?? 'Unnamed Document'}\r\n\r\n {document.isDefault &&\r\n }\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {document.status === 'Verified' &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n Created\r\n on {formatDate(document.createdOn)} {!_.isEmpty(document.createdBy) && <>by {document.createdBy}}\r\n \r\n \r\n \r\n )}\r\n action={\r\n \r\n }\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {getFileExtension(document.fileName) === 'pdf' && (\r\n \r\n )}\r\n {getFileExtension(document.fileName) !== 'pdf' && (\r\n \r\n )}\r\n \r\n \r\n \r\n\r\n \r\n {!!visas && ()}\r\n\r\n setExpanded(!expanded)}\r\n disabled={visas === 0}\r\n aria-expanded={expanded}\r\n aria-label=\"show more\"\r\n className={clsx(classes.expand, {\r\n [classes.expandOpen]: expanded,\r\n })}\r\n >\r\n \r\n \r\n \r\n \r\n {\r\n onChange();\r\n hideUpdateVisaDrawer();\r\n }}\r\n onClose={hideUpdateVisaDrawer}\r\n isVisible={updateVisaDrawerVisible}\r\n document={document}\r\n />\r\n \r\n );\r\n}\r\n\r\nexport default VisaCard;\r\n","import React, { useEffect, useState } from 'react';\r\nimport IImmigrationDocument from \"../../../models/IImmigrationDocument\";\r\nimport { Grid, LinearProgress } from \"@material-ui/core\";\r\nimport ImmigrationDocumentService from \"../../../services/ImmigrationDocumentService\";\r\nimport Constants from \"../../../utils/Constants\";\r\nimport useSnackbar from \"../../../hooks/useSnackbar\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport PassportCard\r\n from '../../userAccount/myInformation/MyInformationPage/ImmigrationDataTab/PassportCard';\r\nimport VisaCard\r\n from '../../userAccount/myInformation/MyInformationPage/ImmigrationDataTab/VisaCard';\r\nimport { getFileTypeFromHeader } from '../../../utils/get-mime-type';\r\nimport PdfFileDowloadButtton from '../../../components/PdfFileDownloadButton';\r\n\r\ntype Props = {\r\n document: IImmigrationDocument;\r\n onChange: () => void;\r\n}\r\n\r\nfunction ImmigrationDocumentApprovalDetail(props: Props) {\r\n const { document, onChange } = props;\r\n\r\n const [attachment, setAttachment] = useState(undefined);\r\n const [attachmentMime, setAttachmentMime] = useState('');\r\n const [loadingAttachment, setLoadingAttachment] = useState(false);\r\n const [error, setError] = useState(undefined);\r\n\r\n const { addMessage } = useSnackbar();\r\n\r\n const handleDownloadAttachment = async (force: boolean) => {\r\n if (!force && attachment) {\r\n return;\r\n }\r\n\r\n setLoadingAttachment(true);\r\n setError(undefined);\r\n ImmigrationDocumentService.getAxiosAttachment({\r\n documentId: document.documentId,\r\n memberId: document.memberId\r\n })\r\n .then((response) => {\r\n const { data: blob } = response;\r\n if (blob && blob.size > 0) {\r\n const urlCreator = window.URL || window.webkitURL;\r\n const imageUrl = urlCreator.createObjectURL(blob);\r\n setAttachmentMime(getFileTypeFromHeader(response));\r\n setAttachment(imageUrl);\r\n } else {\r\n setError('Attachment is empty');\r\n }\r\n })\r\n .catch(() => {\r\n addMessage(Constants.messages.error.fetchingData);\r\n })\r\n .finally(() => setLoadingAttachment(false));\r\n };\r\n\r\n useEffect(() => {\r\n handleDownloadAttachment(true);\r\n }, []);\r\n\r\n const isPdf = attachmentMime === \"pdf\";\r\n\r\n const handleOnChange = () => {\r\n onChange();\r\n handleDownloadAttachment(true);\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n {document.documentType === 'Passport' &&\r\n }\r\n {document.documentType === 'Visa' &&\r\n }\r\n \r\n \r\n {loadingAttachment && }\r\n {error && {error}}\r\n {attachment && !isPdf && }\r\n {attachment && isPdf && }\r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default ImmigrationDocumentApprovalDetail;\r\n","import React, { useEffect, useState } from 'react';\r\nimport PageContent from \"../../../components/PageContent\";\r\nimport {\r\n Box,\r\n Button,\r\n ButtonBase,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n FormControlLabel,\r\n Link,\r\n Typography\r\n} from \"@material-ui/core\";\r\nimport ImmigrationDocumentService from '../../../services/ImmigrationDocumentService';\r\nimport useSnackbar from \"../../../hooks/useSnackbar\";\r\nimport { MessageType } from \"../../../utils/MessageType\";\r\nimport IImmigrationDocument from '../../../models/IImmigrationDocument';\r\nimport _ from \"lodash\";\r\nimport ImmigrationDocumentApprovalDetail from \"./ImmigrationDocumentApprovalDetail\";\r\nimport Table from '../../../components/commons/Table/Table';\r\nimport moment from \"moment\";\r\nimport ReactCountryFlag from \"react-country-flag\";\r\nimport TextField from \"../../../components/commons/TextField\";\r\nimport RadioGroup from \"@material-ui/core/RadioGroup\";\r\nimport Radio from \"@material-ui/core/Radio\";\r\n\r\nconst rejectionReasons = [\r\n { code: \"insufficient_passport_quality\", description: \"Insufficient quality of passport copy\" },\r\n { code: \"insufficient_visa_quality\", description: \"Insufficient quality of visa copy\" },\r\n { code: \"passport_not_readable\", description: \"Passport copy not completely readable\" },\r\n { code: \"visa_not_readable\", description: \"Visa copy not completely readable\" },\r\n { code: \"other\", description: \"Other\" },\r\n];\r\n\r\nfunction ImmigrationDocumentApprovalPage() {\r\n const [loading, setIsLoading] = useState(true);\r\n const [documents, setDocuments] = useState([]);\r\n\r\n const { addMessage } = useSnackbar();\r\n\r\n const loadDocuments = () => {\r\n ImmigrationDocumentService\r\n .getPendingDocuments()\r\n .then((data) => {\r\n setDocuments(data);\r\n const activeId = active?.documentId;\r\n if (activeId) {\r\n const found = data.find(e => e.documentId === activeId);\r\n if (found) {\r\n setActive(found);\r\n }\r\n }\r\n }).catch(e => {\r\n console.error(e);\r\n addMessage('Could not load pending documents', MessageType.Error);\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n useEffect(() => {\r\n loadDocuments();\r\n }, []);\r\n\r\n const [active, setActive] = useState(undefined);\r\n\r\n const columns = React.useMemo(\r\n () => [\r\n {\r\n Header: 'ID',\r\n accessor: 'documentId',\r\n width: '10%',\r\n Cell: ({row}: any) =>
    {row.original.documentId}
    \r\n },\r\n {\r\n Header: 'Type',\r\n accessor: 'documentType'\r\n },\r\n {\r\n Header: 'Name',\r\n Cell: ({ row }: any) => `${row.original.firstName ?? ''} ${row.original.lastName ?? ''}`,\r\n },\r\n {\r\n Header: 'Document Number',\r\n accessor: 'documentNumber',\r\n Cell: ({ row }: any) => \r\n {row.original.documentNumber}\r\n \r\n },\r\n {\r\n Header: 'Creation Date',\r\n accessor: 'createdOn',\r\n Cell: ({ row }: any) => moment(row.original.createdOn).format('YYYY-MM-DD HH:mm')\r\n },\r\n {\r\n Header: '',\r\n accessor: 'actionKey',\r\n disableSortBy: true,\r\n Cell: ({ row }: any) => (\r\n \r\n {\r\n setActive({ ...row.original } as IImmigrationDocument);\r\n }}\r\n >\r\n See more\r\n \r\n \r\n ),\r\n },\r\n ],\r\n []\r\n );\r\n\r\n const approve = (document?: IImmigrationDocument) => {\r\n if (!document) return;\r\n ImmigrationDocumentService.approveDocument(document.documentId)\r\n .then(() => {\r\n loadDocuments();\r\n addMessage('Immigration document was approved', MessageType.Success);\r\n setActive(undefined);\r\n })\r\n .catch(() => addMessage('Could not approve immigration document', MessageType.Error));\r\n };\r\n\r\n const [showRejectDialog, setShowRejectDialog] = useState(false);\r\n const [rejectionCode, setRejectionCode] = useState(undefined);\r\n const [rejectionReason, setRejectionReason] = useState(undefined);\r\n\r\n const startRejection = () => {\r\n setShowRejectDialog(true);\r\n };\r\n\r\n const reject = (document?: IImmigrationDocument) => {\r\n if (!document) return;\r\n\r\n if (!rejectionReason || _.isEmpty(rejectionReason)) {\r\n addMessage('Please provide a reason for rejection');\r\n return;\r\n }\r\n\r\n setShowRejectDialog(false);\r\n\r\n ImmigrationDocumentService.rejectDocument(document.documentId, rejectionReason)\r\n .then(() => {\r\n loadDocuments();\r\n addMessage('Immigration document was rejected', MessageType.Success);\r\n setActive(undefined);\r\n setRejectionCode(undefined);\r\n\r\n })\r\n .catch(() => addMessage('Could not rejected immigration document', MessageType.Error));\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n setActive(undefined)}>\r\n {active?.documentType} Details\r\n\r\n \r\n {active &&\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n setShowRejectDialog(false)}>\r\n \r\n Provide a reason for rejection\r\n \r\n \r\n {\r\n const code = e.currentTarget.value;\r\n const rr = rejectionReasons.find(e => e.code === code);\r\n setRejectionCode(code);\r\n if (code === 'other') {\r\n setRejectionReason('');\r\n } else {\r\n setRejectionReason(rr?.description);\r\n }\r\n }}>\r\n {rejectionReasons.map(e =>\r\n } />\r\n )}\r\n \r\n\r\n {rejectionCode === \"other\" &&\r\n setRejectionReason(e.currentTarget.value.trim())}\r\n />}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ImmigrationDocumentApprovalPage;\r\n","import React from 'react';\r\n\r\nimport {\r\n AirportsProvider,\r\n ARMProvider,\r\n BlockFlightProvider,\r\n CateringOrderProvider,\r\n CrewSpecialMealsProvider,\r\n EmailTemplatesPageProvider,\r\n ForecastProvider,\r\n HelpPageProvider,\r\n MemberManagementProvider,\r\n MyInformationProvider,\r\n PassengerListProvider,\r\n ReservationProvider,\r\n TaskListProvider,\r\n TrainingCatalogueProvider,\r\n UpliftStationsProvider,\r\n WaitListProvider,\r\n} from '../context';\r\nimport BlockFlightSettingProvider from '../context/settings/BlockFlightSettingContext/BlockFlightSettingProvider';\r\nimport WCMPageProvider from '../context/settings/WCMPageContext/WCMPageProvider';\r\nimport IRoute from '../models/IRoute';\r\nimport {\r\n CateringOrderPage,\r\n CrewSpecialMealsPage,\r\n FlightSchedulePage,\r\n ForecastPage,\r\n ManualForecastPage,\r\n UpliftStationsPage,\r\n} from '../pages/catering';\r\nimport DutyQuantityPage from '../pages/catering/duty/DutyQuantityPage';\r\nimport {\r\n ARMPage,\r\n PassengerListPage,\r\n PrintETicketPage,\r\n RelatedTasksPage,\r\n TaskListPage,\r\n WaitingListPage,\r\n} from '../pages/dailyTasks';\r\nimport PassengerListLightPage from '../pages/dailyTasks/passengerList/PassengerListLightPage/PassengerListLightPage';\r\nimport {BlockFlightPage, DeparturesFromLUXPage,} from '../pages/flightManagement';\r\nimport HelpPage from '../pages/HelpPage';\r\nimport {\r\n AccountingReportPage,\r\n AuditLogPage,\r\n AviationInsuranceReportPage,\r\n MembersRoleReportPage,\r\n NoShowConfirmedReportPage,\r\n TravelReportPage,\r\n WarningListPage,\r\n} from '../pages/reporting';\r\nimport AuditLogSecurityPage from '../pages/reporting/auditlogsecurity/AuditLogSecurityPage';\r\nimport ReservationMainPage from '../pages/reservation/ReservationMainPage';\r\nimport {\r\n AirportDetailsPage,\r\n AirportsPage,\r\n ApplicationSettingsPage,\r\n EmailTemplatesPage,\r\n ETicketTemplatePage,\r\n ListHelpPage,\r\n TrainingCataloguePage,\r\n WCMPage,\r\n} from '../pages/settings';\r\nimport BlockFlightSettingPage from '../pages/settings/BlockFlight/BlockFlightSettingPage';\r\nimport TravelEmergencyContactPage from '../pages/TravelEmergencyContactPage';\r\nimport ConnectAsPage from '../pages/userAccount/impersonation/ConnectAsPage/ConnectAsPage';\r\nimport ConnectedAsInformationPage\r\n from '../pages/userAccount/impersonation/ConnectedAsInformationPage/ConnectedAsInformationPage';\r\nimport ConnectedAsPage from '../pages/userAccount/impersonation/ConnectedAsPage/ConnectedAsPage';\r\nimport MyInformationPage from '../pages/userAccount/myInformation/MyInformationPage/MyInformationPage';\r\nimport GuestListPage from '../pages/userManagement/guest/GuestListPage/GuestListPage';\r\nimport MemberMainPage from '../pages/userManagement/members/MemberMainPage/MemberMainPage';\r\nimport RoleConfigurationPage from '../pages/userManagement/role/RoleConfigurationPage/RoleConfigurationPage';\r\nimport PermissionsList from '../utils/PermissionsList';\r\nimport ApisPage from '../pages/settings/apis/ApisPage';\r\nimport ImmigrationDocumentApprovalPage from \"../pages/dailyTasks/passportApproval/ImmigrationDocumentApprovalPage\";\r\n\r\nconst AppRoutes: IRoute[] = [\r\n {\r\n path: '/myInformation',\r\n name: 'My information',\r\n exact: false,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelMyInformation,\r\n },\r\n {\r\n path: '/reservations',\r\n name: 'Reservations',\r\n exact: false,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelReservationMakeReservation,\r\n },\r\n\r\n {\r\n path: '/administration/members',\r\n name: 'Member Management',\r\n exact: false,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelReservationMakeReservation,\r\n },\r\n {\r\n path: '/administration/guests',\r\n name: 'Guest List',\r\n exact: false,\r\n component: ,\r\n permission: PermissionsList.eTravelUserManagementGuestManagement,\r\n },\r\n {\r\n path: '/administration/roles',\r\n name: 'Role Configuration',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelUserManagementRoleConfiguration,\r\n },\r\n {\r\n path: '/settings/trainings',\r\n name: 'Training Catalogue',\r\n exact: false,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelSettingsTrainingCatalogue,\r\n },\r\n {\r\n path: '/connectAs',\r\n name: 'Connect as',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelUserManagementConnectAs,\r\n },\r\n {\r\n path: '/connectedAs',\r\n name: 'Connect as',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelUserManagementConnectAs,\r\n },\r\n {\r\n path: '/settings/eTicket',\r\n name: 'eTicket Template',\r\n exact: false,\r\n component: ,\r\n permission: PermissionsList.eTravelSettingsETicketTemplate,\r\n },\r\n {\r\n path: '/dailyTasks/document-approval',\r\n name: 'Document Approval',\r\n exact: false,\r\n component: ,\r\n permission: PermissionsList.eTravelImmigrationDocumentApproval,\r\n },\r\n {\r\n path: '/information',\r\n name: 'ConnectedAs Information',\r\n exact: false,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelUserManagementConnectAs,\r\n },\r\n {\r\n path: '/flightManagement/departures',\r\n name: 'Departures',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelFlightManagementDepartures,\r\n },\r\n {\r\n path: '/settings/airport',\r\n name: 'Airport Details',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelSettingsAirportDetails,\r\n },\r\n {\r\n path: '/settings/apis',\r\n name: 'APIS Configuration',\r\n exact: false,\r\n component: ,\r\n permission: PermissionsList.eTravelSettingsApisConfiguration,\r\n },\r\n {\r\n path: '/settings/airport/:code',\r\n name: 'Airport Details',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelSettingsAirportDetails,\r\n },\r\n {\r\n path: '/settings/WCMPages',\r\n name: 'WCM Pages',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelSettingsWCMPages,\r\n },\r\n {\r\n path: '/settings/helpPages',\r\n name: 'Help Pages',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelSettingsHelpPages,\r\n },\r\n {\r\n path: '/settings/emails',\r\n name: 'Email Templates',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelSettingsEMailTemplates,\r\n },\r\n {\r\n path: '/settings/reasons',\r\n name: 'Block Flight Reasons',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelSettingsBlockFlightsReasons,\r\n },\r\n {\r\n path: '/settings/application',\r\n name: 'Application Settings',\r\n exact: false,\r\n component: ,\r\n permission: PermissionsList.eTravelSettingsApplicationSettings,\r\n },\r\n {\r\n path: '/dailyTasks/arm',\r\n name: 'Aircraft Route Modified',\r\n exact: false,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelDailyTasksARM,\r\n },\r\n {\r\n path: '/dailyTasks/passengers/:fDesc?/:fDate?',\r\n name: 'Passenger List',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelDailyTasksPassengerList,\r\n },\r\n {\r\n path: '/dailyTasks/passengers-light/:fDesc?/:fDate?',\r\n name: 'Passenger List Light',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelDailyTasksPassengerListLight,\r\n },\r\n {\r\n path: '/dailyTasks/tasks',\r\n name: 'Task List',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelDailyTasksTaskList,\r\n },\r\n {\r\n path: '/dailyTasks/relatedTasks',\r\n name: 'Related Task ',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelDailyTasksRelatedTasks,\r\n },\r\n\r\n {\r\n path: '/dailyTasks/tickets',\r\n name: 'Print Tickets',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelDailyTasksPrintTickets,\r\n },\r\n {\r\n path: '/dailyTasks/waiting',\r\n name: 'Waiting List',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelDailyTasksWaitList,\r\n },\r\n {\r\n path: '/flightManagement/block',\r\n name: 'Block Flight',\r\n exact: false,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.eTravelDailyTasksTaskList,\r\n },\r\n {\r\n path: '/catering/crewSpecialMeals',\r\n name: 'Crew Special Meals',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.cateringCrewSpecialMeals,\r\n },\r\n {\r\n path: '/catering/upliftStations',\r\n name: 'Uplift Stations',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.cateringUpliftStations,\r\n },\r\n {\r\n path: '/catering/flightSchedule',\r\n name: 'Flight Schedule',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.cateringFlightSchedule,\r\n },\r\n {\r\n path: '/catering/manualForecast',\r\n name: 'Manual Forecast',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.cateringManualForecast,\r\n },\r\n {\r\n path: '/catering/cateringOrder',\r\n name: 'Catering Order',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.cateringCateringOrder,\r\n },\r\n {\r\n path: '/catering/forecast',\r\n name: 'Forecast',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n permission: PermissionsList.cateringForecast,\r\n },\r\n {\r\n path: '/catering/duty',\r\n name: 'Duty catering',\r\n exact: true,\r\n component: (\r\n \r\n ),\r\n permission: PermissionsList.cateringDutyQuantities,\r\n },\r\n {\r\n path: '/TravelEmergencyContact',\r\n name: 'Travel emergency contact',\r\n exact: true,\r\n component: ,\r\n },\r\n {\r\n path: '/help',\r\n name: 'Help',\r\n exact: true,\r\n component: (\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n path: '/reporting/audit',\r\n name: 'Audit Log',\r\n exact: false,\r\n component: ,\r\n permission: PermissionsList.eTravelReportingAuditLog,\r\n },\r\n {\r\n path: '/reporting/auditsecurity',\r\n name: 'Audit Log Security',\r\n exact: false,\r\n component: ,\r\n permission: PermissionsList.eTravelReportingAuditLogSecurity,\r\n },\r\n {\r\n path: '/reporting/warninglist',\r\n name: 'Warning List',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelReportingWarningList,\r\n },\r\n {\r\n path: '/reporting/noshowConfirmed',\r\n name: 'No Show Confirmed',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelReportingNoShowConfirmed,\r\n },\r\n {\r\n path: '/reporting/aviation',\r\n name: 'Aviation Insurance',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelReportingAviationInsurance,\r\n },\r\n {\r\n path: '/reporting/accouting',\r\n name: 'Accounting Report',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelReportingAccountingReport,\r\n },\r\n {\r\n path: '/reporting/travelReport',\r\n name: 'TravelReport',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelReportingTravelReport,\r\n },\r\n {\r\n path: '/reporting/membersRole',\r\n name: 'Members by role',\r\n exact: true,\r\n component: ,\r\n permission: PermissionsList.eTravelReportingTravelReport,\r\n },\r\n];\r\n\r\nexport default AppRoutes;\r\n","const SessionStorageKey = 'local-url';\r\n\r\nexport const storeCurrentPath = () => {\r\n window.sessionStorage.setItem(SessionStorageKey, window.location.pathname);\r\n};\r\n\r\nexport const getStoredPath = (): string | null => {\r\n return window.sessionStorage.getItem(SessionStorageKey);\r\n};\r\n\r\nexport const clearStoredPath = () => {\r\n window.sessionStorage.removeItem(SessionStorageKey);\r\n};\r\n","import _ from 'lodash';\r\n\r\nconst metaFile = '/meta.json';\r\nconst versionCacheKey = 'ui-version';\r\n\r\nfunction emptyCache() {\r\n if ('caches' in window) {\r\n caches.keys().then(e => e.forEach(cacheName => caches.delete(cacheName)));\r\n }\r\n window.location.reload();\r\n}\r\n\r\n\r\nfunction isVersionGreaterThan(version1: string, version2: string): boolean {\r\n const parts1: number[] = version1.split('.').map(Number);\r\n const parts2: number[] = version2.split('.').map(Number);\r\n\r\n for (let i = 0; i < parts1.length; i++) {\r\n const num1 = parts1[i];\r\n const num2 = parts2[i] || 0; // Use 0 if no corresponding part in version2\r\n\r\n if (num1 > num2) {\r\n return true;\r\n } else if (num1 < num2) {\r\n return false;\r\n }\r\n }\r\n\r\n // If all parts are equal, the versions are considered equal\r\n return false;\r\n}\r\n\r\nconst getMetaVersion = async (): Promise => {\r\n try {\r\n const response = await fetch(metaFile, {cache: \"no-store\"}); // Fetch the meta.json file\r\n const data = await response.json();\r\n return data.version;\r\n } catch (error) {\r\n console.error('Error checking for new version:', error);\r\n }\r\n return undefined;\r\n};\r\n\r\nfunction foundNewVersion(version: string) {\r\n console.warn('Detected new version: ', version);\r\n emptyCache();\r\n setCachedVersion(version);\r\n}\r\n\r\nfunction getCachedVersion() {\r\n const item = localStorage.getItem(versionCacheKey);\r\n return item;\r\n}\r\n\r\nfunction setCachedVersion(version: string) {\r\n localStorage.setItem(versionCacheKey, version);\r\n}\r\n\r\nfunction checkVersion(): void {\r\n getMetaVersion()\r\n .then((metaVersion) => {\r\n if (!metaVersion || _.isEmpty(metaVersion)) {\r\n console.warn(`No ${metaFile} version found`);\r\n return;\r\n }\r\n const cachedVersion = getCachedVersion();\r\n if (!cachedVersion || _.isEmpty(cachedVersion)) {\r\n console.warn('No cached version found');\r\n setCachedVersion(metaVersion);\r\n return;\r\n }\r\n\r\n console.info(`${metaFile} version: `, metaVersion);\r\n console.info(`cached version: `, cachedVersion);\r\n\r\n const metaVersionIsHigher = isVersionGreaterThan(metaVersion, cachedVersion);\r\n\r\n if (metaVersionIsHigher) foundNewVersion(metaVersion);\r\n })\r\n .catch((e) => {\r\n console.error('Could not get new meta version: ', e);\r\n });\r\n}\r\n\r\nexport default checkVersion;\r\n","import React, { useEffect } from 'react';\r\nimport {BrowserRouter as Router, Redirect, Route, Switch,} from 'react-router-dom';\r\n\r\nimport Routes from './components/Routes/Routes';\r\nimport {\r\n ClientAppContextDefaultState,\r\n ClientAppContextProvider,\r\n} from './context/ClientAppContext/ClientAppContext';\r\nimport LocalStorageProvider from './context/LocalStorageContext/LocalStorageContext';\r\nimport PlannersProvider from './context/PlannersContext/PlannersContext';\r\nimport {UserContextProvider,} from './context/User/UserContext';\r\nimport Layout from './layouts/Layout';\r\nimport ForbiddenPage from './pages/ForbiddenPage/ForbiddenPage';\r\nimport HomePage from './pages/HomePage/HomePage';\r\nimport AppRoutes from './routes/AppRoutes';\r\nimport {useAxiosLogger} from './services/ApiService';\r\nimport {AuthenticationService} from './services/AuthenticationService';\r\nimport {getStoredPath,} from './utils/LocalRedirectUrlStorage';\r\nimport {AuthenticatedTemplate, useMsalAuthentication,} from '@azure/msal-react';\r\nimport {InteractionType} from '@azure/msal-browser';\r\nimport {useCateringAxiosLogger} from './services/ApiCateringService';\r\nimport checkVersion from './hooks/useVersionCache';\r\n\r\nconst App: React.FC = () => {\r\n const redirectUrl = getStoredPath();\r\n useAxiosLogger();\r\n useCateringAxiosLogger();\r\n\r\n useEffect(() => { checkVersion(); }, []);\r\n\r\n useMsalAuthentication(InteractionType.Redirect, {\r\n prompt: 'select_account',\r\n loginHint: AuthenticationService.getInstance().getUsername(),\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {redirectUrl && }\r\n \r\n \r\n \r\n }/>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","import {ReportHandler} from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import 'react-app-polyfill/ie11';\r\nimport 'react-app-polyfill/stable';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport './styles/index.scss';\r\n\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport App from './App';\r\nimport GlobalStorageProvider from './context/GlobalStorage/GlobalStorageProvider';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport {AuthenticationService} from './services/AuthenticationService';\r\nimport {AuthenticationResult, EventMessage, EventType,} from '@azure/msal-browser';\r\nimport {MsalProvider} from '@azure/msal-react';\r\n\r\nconst authService = AuthenticationService.getInstance();\r\nconst msalInstance = authService.msalApp;\r\n\r\nfunction unregister() {\r\n if (\"serviceWorker\" in navigator) {\r\n navigator.serviceWorker.ready\r\n .then((registration) => {\r\n registration.unregister();\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n\r\nconst accounts = msalInstance.getAllAccounts();\r\nif (accounts.length > 0) {\r\n msalInstance.setActiveAccount(accounts[0]);\r\n}\r\n\r\nmsalInstance.addEventCallback((event: EventMessage) => {\r\n if (event.eventType === EventType.LOGIN_SUCCESS && event.payload) {\r\n const payload = event.payload as AuthenticationResult;\r\n const account = payload.account;\r\n msalInstance.setActiveAccount(account);\r\n }\r\n});\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n\r\nunregister();\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"checkBoxLabel\":\"AirportImmigrationInfo_checkBoxLabel__3Mpka\",\"lightGrey\":\"AirportImmigrationInfo_lightGrey__17lQT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"content\":\"HomePage_content__1bTf8\",\"grid\":\"HomePage_grid__3uQUb\",\"bodyHome\":\"HomePage_bodyHome__3qhhM\",\"titleHome\":\"HomePage_titleHome__1fqpr\",\"welcome\":\"HomePage_welcome__oDctY\",\"map\":\"HomePage_map__1cBqh\",\"myReservationLinkMobile\":\"HomePage_myReservationLinkMobile__RwLOX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zIndexDrawer\":\"1200\",\"spacing\":\"8px\",\"breakpointXs\":\"0\",\"breakpointSm\":\"600\",\"breakpointMd\":\"960\",\"breakpointLg\":\"1494\",\"breakpointXl\":\"1920\",\"primaryColor\":\"#3d64d8\",\"secondaryColor\":\"#b8349a\",\"ternaryColor\":\"#c03\",\"defaultBackgroundColor\":\"#fff\",\"actionSelectedBackground\":\"#d9e0f7\",\"actionHoverBackground\":\"#eceffb\",\"primaryTextColor\":\"rgba(0,0,0,.87)\",\"successColor\":\"#00cb98\",\"errorColor\":\"#cf352a\",\"warningColor\":\"#ff9800\",\"infoColor\":\"#2196f3\",\"lightErrorCode\":\"#c03\",\"backgroundColor\":\"#f8f9fe\",\"drawerWidth\":\"256px\",\"cardData2\":\"CVFlightReviewDetails_cardData2__2MQC7\",\"scheduleData\":\"CVFlightReviewDetails_scheduleData__2ahxx\",\"cardDetailContainer\":\"CVFlightReviewDetails_cardDetailContainer__3O9Zk\",\"cardDetail\":\"CVFlightReviewDetails_cardDetail__3Dn5r\"};"],"sourceRoot":""}