{"version":3,"sources":["stores/ListingStore.ts","assets/brand/active_status_icon.js","components/Molecules/Avatars/UserAvatar/UserAvatar.tsx","components/user/ProfileDetailCard.tsx","components/user/AccountDetailCard.tsx","components/user/CreateModal.tsx","components/user/EditInviteModal.tsx","components/user/InviteUserForm.tsx","components/user/UserDetailCard.tsx","components/user/UserSettingsSection.tsx","components/user/UserSettingsCard.tsx","components/user/gov/GovUserDetailCard.tsx","stores/ServerStore.ts","assets/brand/vision_visibility_icon.js","lib/geography/countryRegionData.ts","components/custom/SingleImageUploader.tsx","components/custom/Alert.tsx","components/custom/ImageCroppingTool.tsx","lib/geography/utils.ts","components/custom/ValidatedCFormSelect.tsx","components/custom/RegionSelectInput.tsx","components/custom/CountrySelectInput.tsx","components/custom/TimezoneSelect.tsx","components/custom/ValidatedCFormInput.tsx","components/custom/ValidatedCFormTextArea.tsx","components/custom/SingleUserSelect.tsx","components/custom/GoogleSuggestAddressInput.tsx","components/custom/ConfirmationBoundaryModal.tsx","components/custom/LegalLinks.tsx","components/custom/SupportLinks.tsx","components/custom/AsyncValidatedTextInput.tsx","components/custom/IconPopover.tsx","components/custom/PotentiallyExternalRedirectLink.tsx","components/custom/CustomInformationPopup.tsx","components/custom/ServerBackedDropdown.tsx","components/custom/Collapsible.tsx","components/custom/UrlFederatedNaicsCodeMultiSelectAutoComplete.tsx","components/custom/UrlFederatedTechnologyTypesMultiSelectAutoComplete.tsx","components/custom/UrlFederatedBusinessClassificationsMultiSelectAutoComplete.tsx","components/custom/ToggleChatStatusButton.tsx","components/custom/ChatPanelHeader.tsx","components/custom/ChatThreadPanelMessages.tsx","components/custom/InitiateChatModal.tsx","components/custom/StartChatButton.tsx","components/custom/index.ts","lib/helpers/validation.ts","views/signup/SignupOrSignin.tsx","components/boundary/AuthBoundary.tsx","App.tsx","index.tsx","components/boundary/ErrorFallback.tsx","assets/brand/Ignite_Logo_Mobilize_Full_Color.png","stores/ConnectListingStore.ts","components/listing/ViewListingArtifact.tsx","components/listing/ViewListingArtifactModal.tsx","lib/hooks/useValidation.ts","lib/hooks/useErrorPropagator.ts","components/form/fragments/SocialMediaAccountsForm.tsx","components/listing/ViewListingArtifactAttachmentOrLink.tsx","components/form/fragments/listing/OrganizationDetails.tsx","components/form/fragments/listing/ContractingDetails.tsx","lib/helpers/utils.ts","components/custom/Spinner.tsx","components/custom/CustomDropdown.tsx","stores/ApplicationStore.ts","stores/AccountStore.ts","stores/AnalyticsStore.ts","components/form/fragments/listing/BusinessClassifications.tsx","components/form/fragments/listing/NaicsCodes.tsx","components/form/fragments/listing/TechnologyFocusAreas.tsx","components/custom/Pagination.tsx","components/listing/ViewListingArtifactTechnologyType.tsx","components/listing/ViewListingAward.tsx","components/Organisms/SearchFilters/ConnectAwardSearch/ConnectAwardSearch.tsx","components/form/fragments/GovUserExtendedDataProfileForm.tsx","components/Organisms/EntityCards/LinesOfEffortCard/LinesOfEffortCard.tsx","components/Organisms/EntityCards/GovUserClassificationsCard/GovUserClassificationsCard.tsx","components/Molecules/index.ts","stores/AuthStore.ts","stores/NotificationStore.ts","components/Organisms/EntityCards/GovUserClassificationsCard/GovUserClassificationsCard.module.scss","components/Organisms/SearchFilters/ConnectCollapsibleAwardSearch/ConnectCollapsibleAwardSearch.tsx","components/Organisms/SearchFilters/ConnectServiceSearch/ConnectCollapsibleServiceSearch.tsx","components/Organisms/SearchFilters/ConnectUseCaseSearch/ConnectCollapsibleUseCaseSearch.tsx","components/Organisms/SearchFilters/ConnectProductSearch/ConnectCollapsibleProductSearch.tsx","components/Organisms/SearchFilters/ConnectCompanySearch/ConnectCollapsibleCompanySearch.tsx","components/Molecules/UrlFederatedInputs/UrlFederatedBasicDropdown/UrlFederatedBasicDropdown.tsx","components/Organisms/SearchFilters/index.ts","components/listing/PointOfContactCard.tsx","components/listing/BusinessClassificationsCard.tsx","components/listing/TechnologyFocusAreasCard.tsx","components/listing/SocialMediaDetails.tsx","components/listing/ContractingInformationCard.tsx","components/listing/ListingPublishedStatusIndicator.tsx","components/listing/ListingPublishOrUnpublishActionButton.tsx","lib/listing/utils.ts","assets/brand/unpublishIcon.js","assets/brand/publishIcon.js","components/listing/ListingArtifactCard.tsx","components/listing/ListingServicesTab.tsx","components/listing/ListingUseCasesTab.tsx","components/listing/ListingProductsTab.tsx","components/listing/ListingAwardCard.tsx","components/listing/ListingAwardsTab.tsx","components/listing/ListingVisionVisibilityActionButton.tsx","views/listings/ViewListing.tsx","stores/UserStore.ts","components/custom/ChatThreadCard.tsx","components/form/fragments/listing/BulkAttachments.tsx","components/form/fragments/listing/BulkLinks.tsx","views/accounts/Users.tsx","views/ConfirmationInstructions.tsx","assets/brand/Ignite_Logo_Full_Color.png","components/user/GovUserExtendedProfileDetailCard.tsx","components/user/AccountActions.tsx","components/user/GovUserTechnologyTypesCard.tsx","views/accounts/Account.tsx","lib/time/index.ts","components/Atoms/Chips/GovUserConnectorChip/GovUserConnectorChip.module.scss","lib/errors/utils.ts","lib/helpers/sessionHelpers.ts","components/icons/leftArrow.js","components/form/fragments/AddressForm.tsx","components/form/fragments/SignupAccountForm.tsx","components/custom/ServerBackedAutoComplete/ServerBackedAutoComplete.tsx","components/Molecules/AutoCompleteInputs/GovUserOrganizationAutoCompleteInput/GovUserOrganizationAutoCompleteInput.tsx","components/form/fragments/GovUserExtendedDataOrganizationForm.tsx","components/form/fragments/SignupUserForm.tsx","components/form/fragments/SignupLoginForm.tsx","components/form/fragments/ClaimRequestForm.tsx","components/form/ChangeEmailForm.tsx","components/form/ChangePasswordForm.tsx","components/form/EditAccountForm.tsx","components/form/EditProfileForm.tsx","components/form/ResendClaimForm.tsx","components/form/fragments/listing/ListingArtifactTechnologyFocusAreas.tsx","components/form/fragments/listing/GenericListingArtifact.tsx","components/form/ListingArtifactFormWizard.tsx","components/form/ListingArtifactFormModal.tsx","views/SignTermsAndPrivacy.tsx","views/ConfirmEmailLanding.tsx","views/RequestPasswordReset.tsx","views/ResetPassword.tsx","views/Terms.tsx","views/Privacy.tsx","views/AntiSpamPolicy.tsx","views/SignIn.tsx","views/InviteSignUp.tsx","views/AcceptInviteLanding.tsx","views/ConfirmClaimLanding.tsx","views/ClaimRequestSignUp.tsx","views/SubmitClaimRequest.tsx","views/SubmitClaimResult.tsx","assets/brand/visionLogoCobalt.js","views/GovUserSignup.tsx","components/Atoms/Chips/GovUserConnectorChip/GovUserConnectorChip.tsx","views/gov/ViewIndividualGovUser.tsx","components/admin/adminAnalytics/AdminAnalyticsResponseRateStatistics.tsx","components/lineChart/IgniteLineChart.tsx","components/admin/adminAnalytics/lineCharts/AdminAnalyticsSBCTimelineLineChart.tsx","components/admin/adminAnalytics/AdminAnalyticsSBCTimelineStatistics.tsx","components/piechart/IgnitePieChartPlaceholder.tsx","components/piechart/IgnitePieChart.tsx","components/admin/adminAnalytics/pieCharts/AdminAnalyticsTechnologyTypePieCharts.tsx","components/admin/adminAnalytics/tables/AdminAnalyticsTechnologyTypeTable.tsx","components/admin/adminAnalytics/AdminAnalyticsTechnologyTypeStatistics.tsx","components/admin/adminAnalytics/lineCharts/AdminAnalyticsGovUsersTimelineLineChart.tsx","components/admin/adminAnalytics/AdminAnalyticsGovUserTimelineStatistics.tsx","components/admin/adminAnalytics/tables/AdminAnalyticsListingPageViewsTable.tsx","components/admin/adminAnalytics/AdminAnalyticsListingPageViewsStatistics.tsx","components/admin/adminAnalytics/lineCharts/ActiveConversationStatisticLineChart.tsx","components/admin/adminAnalytics/ActiveConversationStatistics.tsx","components/admin/adminAnalytics/lineCharts/DafUserStatisticLineChart.tsx","components/admin/adminAnalytics/DafUsersStatistics.tsx","components/admin/adminAnalytics/lineCharts/SbcUserStatisticLineChart.tsx","components/admin/adminAnalytics/SbcUsersStatistics.tsx","components/admin/adminAnalytics/tables/OrganizationUserStatisticTable.tsx","components/admin/adminAnalytics/OrganizationUserStatistic.tsx","views/admin/AdminAnalytics.tsx","views/signup/SignupChoice.tsx"],"names":["isListingArtifactTechnologyType","o","isAward","isUseCase","artifact","isLink","isAttachment","ListingStore","listings","getListings","params","a","server","get","page","perPage","then","data","getSingleListing","id","eager","getSingleListingService","listingId","serviceId","getAwardsPhases","getSingleListingProduct","productId","getSingleListingUseCase","useCaseId","getSingleListingAward","awardId","getPointOfContact","getListingServices","getListingUseCases","getListingProducts","updateListingService","payload","formData","composeFormData","patch","headers","updateListingUseCase","FormData","append","name","description","url","logo","File","startDate","endDate","listingArtifactAttachmentsAttributes","forEach","attachment","i","toString","file","destroy","listingArtifactLinksAttributes","link","listingArtifactTechnologyTypesAttributes","techType","listingArtifactTechnologyTypeId","technologyTypeId","getListingAwards","createListingService","post","createListingProduct","updateListingProduct","createListingUseCase","updateListing","tagLine","yearFounded","website","samCode","dunsCode","capabilityStatement","addressLine1","addressLine2","addressLine3","city","stateOrProvince","country","postalCode","pointOfContactId","naicsCodes","code","technologyTypes","type","businessClassifications","el","socialMediaAccounts","socialMediaTypeId","identifier","length","deleteProduct","delete","deleteService","deleteUseCase","this","isOnlyVisionVisible","ServerStore","activeStatusIcon","className","xmlns","width","height","viewBox","fill","cx","cy","r","stroke","strokeWidth","UserAvatar","user","displayIsActive","props","source","isUserData","image","headshot","path","firstName","lastName","isAccountData","isActive","content","classnames","src","prefix","suffix","ProfileDetailCard","inject","ApplicationStore","names","userStore","notificationStore","observer","email","isGovUser","currentUserData","userRoles","includes","wrappedIcon","renderSocialMediaAccount","sma","determineSocialMediaIconClassName","socialMediaTypeName","timezone","parseTimezone","getTimezoneOptions","label","component","title","govUserExtendedData","govUserOrganization","govEmployeeSinceYear","yearsOfExperience","experience","Date","getFullYear","renderYearsOfExperience","unconfirmedEmail","cellPhone","workPhone","workPhoneExt","phoneSection","locationValues","filter","Boolean","join","renderLocation","map","socialMediaSection","AccountDetailCard","accountStore","currentAccountData","uniqueEntityId","CreateModal","useState","setFormData","hasValidated","setHasValidated","isSubmitting","setIsSubmitting","isSubmittable","firstNameError","validateLength","lastNameError","emailError","validateEmail","isModalOpen","onClose","closeModal","scrollable","headerContent","onChange","change","sm","isSuspended","onClick","currentAccountId","inviteUserToAccount","setTimeout","setNotificationMessage","catch","disabled","icon","EditInviteModal","editUserInvite","userInviteId","onSubmit","InviteUserForm","defaultCharLengthMessage","validated","noValidate","htmlFor","value","placeholder","required","validate","v","renderInvalidMessage","autoComplete","UserDetailCard","dateString","isEditing","setIsEditing","undefined","actionType","setActionType","isInvitedUser","userInviteExpired","inviteTokenExpiry","resendOrDelete","resendUserInvite","deleteUserInvite","determineRoute","message","determineMessage","menuOptions","iconClassName","callback","color","onSelect","option","dropdownOptions","text","alignment","actionText","UserSettingsSection","hasGovRole","allowMessageRequests","setAllowMessageRequests","allowInAppNotifications","setAllowInApp","allowByEmailNotifications","setAllowByEmail","isLoadingMessagePermission","setIsLoadingMessagePermission","isLoadingInAppNotification","setIsLoadingInAppNotification","isLoadingByEmailNotification","setIsLoadingByEmailNotification","useEffect","retrieveCurrentUserData","govUserSetting","userAppNotificationSetting","newChatMessage","userEmailNotificationSetting","e","messagePermissionOnClick","handleClick","inAppNotificationOnClick","byEmailOnClick","setIsLoadingFunction","updateUserSettings","finally","MessagePermissionsCheckbox","checked","InAppNotificationsCheckbox","ByEmailNotificationsCheckbox","MessagePermissionsSettings","NotificationsSettings","GovUserSettings","UserSettings","UserSettingsCard","GovUserDetailCard","techTypesNotShown","techTypesNotShownCount","currentUserAccountChatThreadId","chatThreadIdsWithCurrentUserAccount","visionUserId","visionVisibilityIcon","to","longName","userInfo","searchMetadata","highlight","ReactHtmlParser","profileDetail","renderCardContent","techTypeNames","slice","technologyType","userTechnologyTypes","isUserParticipant","participant","participantType","isAccountParticipant","authStore","getGovUserClassifications","errorInterceptor","error","currentLocation","pathname","window","location","search","response","status","err","extractRestfulError","setRedirectSessionVariables","forceLogoutWithMessage","VisionRequestInterceptedError","JWT","redirectWithMessage","config","buff","Buffer","from","base64data","setJWT","unlessPaths","every","p","replace","instance","axios","create","Authorization","getJWT","Accept","interceptors","use","sortThreadId","participants","initialMessage","initialMessages","res","clipPath","fillRule","clipRule","d","isTRegion","long","short","isTCountry","regions","isoUSStateCodes","countryRegionData","Mode","Alert","visible","variant","onToggleAlert","ImageCroppingTool","croppedPixels","onCropPixels","zoom","onZoomChange","rotation","onRotationChange","x","y","crop","onCropChange","URL","createObjectURL","_image","doPerformCrop","getCroppedImageBlob","blob","blobToFile","onCrop","handleRejection","debouncedCrop","useDebouncedCallback","debounceCropMs","onCropComplete","useCallback","croppedArea","croppedAreaPixels","createImage","imagePromise","Promise","resolve","reject","newImage","Image","onload","onerror","flip","horizontal","vertical","canvas","document","createElement","ctx","getContext","rotationRadian","Math","PI","rotateSize","abs","cos","sin","bBoxWidth","bBoxHeight","translate","rotate","scale","fillStyle","fillRect","drawImage","getImageData","putImageData","toBlob","aspect","SingleImageUploader","EDIT","UPLOAD","mode","setMode","setValue","isValidationSuspended","setIsValidationSuspended","ValidatedInput","valid","onDrop","acceptedFiles","subText","UNCLASSIFIED_WARNING_PROMPT","additionalText","FILE_UPLOAD_MAX_SIZE_CONTENT","accept","displayValue","hidePlaceholder","hideUploaderPlaceholder","maxSize","FILE_UPLOAD_MAX_SIZE_BYTES","suspense","onFile","render","getCountryShort","find","ValidatedCFormSelect","rest","useValidation","_value","isValid","invalidReason","showInvalidReason","invokeValidation","invalidMessage","classNames","invalid","target","onBlur","children","RegionSelectInput","getCountry","CountrySelectInput","TimezoneSelect","timezones","i18nTimezones","labelStyle","defaultTz","Intl","DateTimeFormat","resolvedOptions","timeZone","getOptions","React","useMemo","split","ValidatedCFormInput","ValidatedCFormTextArea","SingleUserSelect","users","setUsers","getDataFunction","u","GoogleSuggestAddressInput","hideManualEntry","googlePlacesAutoCompleteProps","googlePlaceData","setGooglePlaceData","rawFormVisible","setRawFormVisible","func","geocodeByPlaceId","place_id","geocodeObj","addressObject","getAddressObject","address_components","objectIsEmpty","normalized","reduce","agg","c","types","addressLine1Parts","streetNumber","long_name","arrayContainsAny","street","short_name","apiKey","applicationStore","siteSettings","debounce","minLengthAutocomplete","selectProps","isClearable","class","result","idPrefix","ConfirmationBoundaryModal","size","isOpen","onCancel","headerText","onConfirm","isConfirmDisabled","LegalLinks","SupportLinks","href","rel","AsyncValidatedTextInput","_validate","onValue","makeValidationMessage","asyncValidationDebounceMs","setIsValid","setInvalidReason","debouncedValidation","handleValueChange","IconPopover","trigger","tabIndex","PotentiallyExternalRedirectLink","setIsModalOpen","Fragment","linkText","formattedUrl","formatUrlProtocol","parsedUrl","parse","origin","formatUrlForDisplay","open","opener","handleConfirm","CustomInformationPopup","infoPopup","toggleInfoPopup","hasInfoIcon","infoIconClassName","toggleInfoPopupOpen","str","ariaLabel","information","testId","onMouseOver","onMouseOut","onKeyDown","key","ServerBackedDropdown","selected","setSelected","items","setItems","lastPage","setLastPage","toggleIsOpen","isLoadingData","setIsLoadingData","loadingError","setLoadingError","dropdownRef","useRef","itemRefs","ref","handleClickOutside","current","contains","handleEscape","handleOpen","extendData","addEventListener","removeEventListener","getData","pagination","loadingDebounceMs","onScroll","pages","offset","scrollLoadOffsetPx","scrollHeight","scrollTop","clientHeight","handleSelect","item","handleNoneSelect","onSelectNone","role","preventDefault","focus","subtle","normalPlaceholderFont","active","element","idx","toLowerCase","nextItemIndex","previousItemIndex","Spinner","Collapsible","isExpanded","setIsExpanded","chevronToggle","onExpandChange","UrlFederatedNaicsCodeMultiSelectAutoComplete","serverStore","useQueryParams","paramKey","withDefault","StringParam","setParams","selectedNaicsCodes","setSelectedNaicsCodes","sort","initializeSearchDropdown","ids","getDropdownData","getIgniteNaicsCodes","typeForErrorMessage","getNaicsCodes","dataTestId","loadMore","selections","t","selectNaicsCodes","isDirtySelectableItem","reloadOnOpen","UrlFederatedTechnologyTypesMultiSelectAutoComplete","selectedTechnologyTypes","setSelectedTechnologyTypes","getTechnologyTypes","selectTechnologyTypes","UrlFederatedBusinessClassificationsMultiSelectAutoComplete","connectListingStore","selectedBusinessClassifications","setSelectedBusinessClassifications","listingBusinessClassificationIds","getBusinessClassifications","getConnectBusinessClassifications","selectBusinessClassifications","ToggleChatStatusButton","isSuspending","setIsIsSuspending","chatThread","tooltipMessage","renderButton","pauseChatThread","onChatThreadUpdated","unpauseChatThread","tooltipContent","ChatPanelHeader","currentIsGovUser","displayParticipantList","accountId","participantId","makeChatThreadHeadliner","ChatThreadPanelMessages","lastMessageSeenAt","lastMessageSeenAtLoad","hasUnreadMessages","setHasUnreadMessages","unreadMessageTimeout","setUnreadMessageTimeout","maybeShowMoreUnread","timeout","clearTimeout","latestMessageAtLoad","chatMessages","currentUserUnreadCount","createdAt","getTime","renderDivider","dateBoundary","now","getMonth","getDate","formatDate","renderChatMessage","date","toLocaleTimeString","userId","renderNewestMessagePill","onVisible","onViewNewestMessage","isExtending","isExtendingError","entryProps","root","rootMargin","threshold","latestMessage","prevMessage","currentDivider","hasNewDivider","chat","renderMessages","showNewMessageIndicator","chatEndRef","scrollIntoView","InitiateChatModal","history","useHistory","setMessage","isSubmitSuspended","setIsSubmitSuspended","setError","first","isConnectListingResponse","last","renderAvatar","createChatThread","push","StartChatButton","tooltipDebounceMs","setIsSuspended","isInitiateModalOpen","setIsInitiateModalOpen","disabledReason","setDisabledReason","setParticipants","existingChatThread","setExistingChatThread","hasIgniteRole","findChatThreadByParticipants","wider","renderTooltipContent","searchParams","test","validatePassword","minLength","validatePatternMatch","pattern","validateWebsite","validateValueMatch","left","right","min","validateLineOfEffort","arr","some","details","trim","validateYear","lowerBounds","upperBounds","Number","isNaN","SignupOrSignin","choices","header","nextStep","leftArrow","MobilizeVISIONLogo","alt","toggleContent","choice","AuthBoundary","useLocation","isLoading","setIsLoading","useQueryParam","qParam","setQParam","authenticated","isAuthenticated","confirmed","initializeUserAndAccountData","userData","retrieveCurrentAccountData","accountData","setCurrentAccountData","setCurrentUserData","createWebsocketConsumer","setQSessionVariables","checkIfVisionUserHasAccountAndIsLinked","userHasAccount","setSessionQUserExists","validateQAndInitializeUser","stored_q","getSessionQParam","q","setSessionQParam","getSessionQUserExists","clearQParamSessionVariables","initializeAuthBoundary","salt","filteredLocation","removeQParamFromLocation","exact","SignIn","ClaimRequestSignUp","SubmitClaimRequest","SubmitClaimResult","InviteSignUp","AcceptInviteLanding","ConfirmClaimLanding","GovUserSignup","RequestPasswordReset","ResetPassword","ConfirmationInstructions","SignTermsAndPrivacy","ConfirmEmailLanding","Terms","Privacy","AntiSpamPolicy","SignupChoice","loading","DefaultLayout","lazy","App","throwError","useErrorPropagator","getSiteSettings","setSiteSettings","Suspense","fallback","severity","clearMessage","TagManager","initialize","gtmId","createBrowserHistory","ReactDOM","StrictMode","getStores","FallbackComponent","listen","resetErrorBoundary","CompanyConnectorLogo","isAxiosError","determineErrorMessage","onReset","ReactRouterRoute","Route","getElementById","ConnectListingStore","getConnectListings","getConnectTechnologyTypes","getSingleConnectListing","getConnectListingServices","getListingPersonData","getConnectListingProducts","getConnectListingUseCases","getConnectNaicsCodes","ViewListingArtifact","activeKey","setActiveKey","artifactType","onInvoke","handleEditClick","parseDate","listingArtifactAttachments","ViewListingArtifactAttachmentOrLink","listingArtifactLinks","listingArtifactTechnologyTypes","ViewListingArtifactTechnologyType","ViewListingArtifactModal","listingStore","artifactId","useRouteMatch","setData","promise","store","connect","ViewListingAward","renderArtifact","_setValue","setShowInvalidReason","setInvalidMessage","validateRequired","_invalidReason","SocialMediaAccountsForm","socialMediaData","setSocialMediaData","getSocialMediaTypes","smt","existing","md","download","fileIconLookup","mimeType","OrganizationDetails","headquarters","isEditForm","step","pointOfContact","getDefaultAccountUsers","socialMedia","ContractingDetails","uuid","dt","random","floor","months","days","getDay","elements","obj","Object","keys","values","capitalizeFirstLetter","l","charAt","toUpperCase","objectContainsAnyValue","titleCase","w","isListingSubmittable","errors","socialAccount","validAttachments","validLinks","validLogo","isSubPageData","generateRandomId","substring","CustomDropdown","toggleIsExpanded","node","handleTargetOutside","getDisplayLabel","isLabeled","CustomDropdownClass","dropdownClass","ariaRequired","keyPress","selectedOption","options","analyticsStore","sidebarShow","sidebarUnfoldable","makeAutoObservable","AuthStore","NotificationStore","UserStore","AccountStore","AnalyticsStore","setSidebarShow","val","setSidebarUnfoldable","baseCurrentUserURL","includeUserInvites","termId","privacyId","getTechnologyTypeStatistics","getSBCTimelineStatistics","getGovUsersTimelineStatistics","getGovUserEngagedCompaniesStatistic","getGovUserChatResponseStatistic","getActiveConversationStatistics","getDafUserStatistics","getSbcUserStatistics","BusinessClassifications","count","nc","NaicsCodes","TechnologyFocusAreas","Pagination","NumberParam","paginationParams","setPaginationParams","isPreviousPageEnabled","isNextPageEnabled","defaultPerPage","event","customPerPages","index","series","renderPair","multiline","lg","awardTitle","contractNumber","branch","program","phase","productServiceCode","principleNaicsCode","tt","awardAmount","state","contractAwardDate","contractStartDate","contractEndDate","piName","piTitle","piPhone","piEmail","researchInstitutionName","awardAbstract","anticipatedBenefits","ConnectAwardSearch","searchAwards","awardPhase","awardNaicsCodeIds","awardContractNumber","awardAmountMin","awardAmountMax","awardDateMin","awardDateMax","awardState","awardTechnologyTypeIds","sortBy","sortDirection","isStandaloneAwardFilter","minValue","maxValue","parseInt","renderMinMaxAmounts","getISOLocalDate","maxDate","makeDateComputerOffset","openCalendarOnFocus","GovUserExtendedDataProfileForm","getSelectedTechnologyTypes","addLineOfEffort","linesOfEffort","removeLineOfEffort","updatedLineOfEffort","splice","updateLineOfEffort","loe","classification","subLabel","categoryLabel","govUserClassificationCategory","autocompletionRequest","renderCityStateInput","year","format","maxDetail","maxLength","xs","govUserClassifications","LinesOfEffortCard","lineOfEffort","GovUserClassificationsCard","Styles","classificationBadge","accessToken","jwt","localStorage","setItem","removeItem","getItem","severityOptions","isSuppressing","success","danger","warning","info","suppress","module","exports","ConnectCollapsibleAwardSearch","ConnectCollapsibleServiceSearch","searchServices","serviceTechnologyTypeIds","ConnectCollapsibleUseCaseSearch","searchUseCases","ConnectCollapsibleProductSearch","searchProducts","productTechnologyTypeIds","ConnectCollapsibleCompanySearch","searchListings","listingIdentifier","listingState","UrlFederatedBasicDropdown","defaultParam","selection","urlVal","urlValue","PointOfContactCard","setUserData","errorResponse","formatWorkPhone","renderError","BusinessClassificationsCard","businessClassificationsData","setBusinessClassificationsData","bc","TechnologyFocusAreasCard","technologyTypeData","setTechnologyTypeData","SocialMediaDetails","ContractingInformationCard","naicsCodesData","setNaicsCodesData","naicsCodesPath","makeNaicsCodeLabel","makeProductServiceCodeLabel","psc","samRegistrationDate","samExpirationDate","cageCode","productServiceCodes","ListingPublishedStatusIndicator","listing","isPublished","ListingPublishOrUnpublishActionButton","isPublishPromptOpen","setIsPublishPromptOpen","isPublishSuspending","setIsPublishSuspending","isUnpublishPromptOpen","setIsUnpublishPromptOpen","isUnpublishSuspending","setIsUnpublishSuspending","onPublishConfirm","publishListing","onAction","onUnpublishConfirm","unpublishListing","isDisabled","version","withText","renderUnpublishActionButton","renderPublishActionButton","ListingArtifactCard","isConfirmationModalOpen","setIsConfirmationModalOpen","artifactOptions","handleEdit","listingArtifact","onDelete","handleParamsChange","dropdownToggleProps","caret","ListingServicesTab","setPagination","services","setServices","editServiceId","setEditServiceId","isCreateModalVisible","setIsCreateModalVisible","handleDelete","method","setVisibility","xxl","cols","service","ListingUseCasesTab","editUseCaseId","setEditUseCaseId","useCases","setUseCases","loadData","useCase","ListingProductsTab","products","setProducts","editProductId","setEditProductId","product","ListingAwardCard","award","awardYear","ListingAwardsTab","setArtifactParams","awards","setAwards","isPromiseStale","isPromptOpen","setIsPromptOpen","setIsSuspending","toggleVisibilityConfirm","setListingVisibility","tabs","ViewListing","checkoutSuccess","tab","setListing","listingResponse","colorScheme","placement","renderStatusIndicator","stateProvince","listingSocialMediaAccounts","parseDateTime","updatedAt","views","memo","isNewMessageNotification","notificationType","isResendClaimFormDataAlternative","isUserSubmittable","password","confirmPassword","recaptchaToken","claimErrorDictionary","InvalidClaimToken","ClaimPeriodExpired","UnknownError","baseUserURL","websocketConsumer","retrieveCurrentGovUserData","retrieveGovUserById","govUserSettingAttributes","userAppNotificationSettingAttributes","userEmailNotificationSettingAttributes","signInUser","authorization","signOutUser","setWebsocketConsumer","submitClaimRequest","form","resendClaim","inviteSignUp","inviteToken","claimSignUp","claimToken","govUserSignUp","encryptedVisionUserData","govUserOrganizationId","interactionDetail","redirectTo","getFullSessionUrl","encodeURIComponent","updateUser","govUserExtendedDataAttributes","detailsEmpty","changePassword","checkClaim","decryptAndValidateGovUserData","saveGovUserDataFromVision","updateAccount","changeEmail","requestPasswordReset","resetPassword","passwordConfirmation","resetPasswordToken","cancelEmailChange","Cable","countNotifications","getNotifications","markAllNotificationsRead","markNotificationRead","makeObservable","observable","action","redirect","token","confirmation_token","invite_token","participantList","defaultListingId","ChatThreadCard","chatThreadData","featuredParticipant","featured","renderFeaturedPhoto","userChatMessages","allowedFileTypes","BulkAttachments","files","fileUploaderProps","BulkLinks","links","requiredFields","Users","getUserData","getAccountUsers","setEmail","isResendEnabled","emailForm","resendButton","xl","resendConfirmationEmail","determineContent","GovUserExtendedProfileDetailCard","profileDetailSection","AccountActions","isEditProfileModalOpen","setIsEditProfileModalOpen","isChangePasswordModalOpen","setIsChangePasswordModalOpen","isChangeEmailModalOpen","setIsChangeEmailModalOpen","isEditAccountModalOpen","setIsEditAccountModalOpen","ret","onSubmitted","GovUserTechnologyTypesCard","Account","tzo","getTimezoneOffset","dif","pad","num","getHours","getMinutes","getSeconds","getCurrentISOStringOffset","GMT","zone","timeZoneOptions","tz","indexOf","currentTime","spacetime","score","dst","hasDst","substr","scoreTimezoneOption","b","findFuzzyTz","timestamp","toLocaleDateString","hour","minute","getTimezoneData","zoneLabel","goto","tzStrings","informal","display","abbrev","altName","daylight","standard","isDST","hr","hrTemp","altTemp","abbrevTemp","entries","selectOptions","withGrace","day","Error","SESSION_VARIABLES","noStoredSessionRedirect","URLSearchParams","pathName","queryParams","sessionStorage","PATH_NAME","QUERY","clearRedirectSessionVariables","getSessionPath","getSessionQuery","Q_PARAM","Q_USER_EXISTS","LINKED_TO_VISION","args","isLinked","userExists","JSON","getSessionQUserLinkedToVision","xmlnsXlink","transform","xmlnsdc","xmlnsrdf","xmlnssvg","fillOpacity","marker","visibility","overflow","AddressForm","makeId","gutter","SignupAccountForm","validateUniqueEntityId","checkUniqueEntity","isAccountNameHidden","accountNameInput","Input","inputComponent","ServerBackedAutoComplete","setSelectOptions","setSearchValue","optionsLoading","setOptionsLoading","setIsExtending","setIsActive","requiredBreach","setRequiredBreach","inputRef","blur","searchValue","loadingBounceMs","debounceChange","searchDebounceMs","debouncedScroll","scrollDebounceMs","makeItemLabel","shortLabel","renderOptionsContent","category","divider","onMouseDown","kyprss","renderSelectItemContent","sublabel","clearSelect","inputAriaLabel","clearInput","onFocus","GovUserOrganizationAutoCompleteInput","getOrganizations","shortName","GovUserExtendedDataOrganizationForm","getGovUserOrganizations","SignupUserForm","SignupLoginForm","onEmailChange","emailValid","asyncValidateEmail","emailValidReason","disableEmail","syncValidation","isVisionUser","checkSignupUserEmail","makeEmailValidationMessage","reason","isEmailHidden","visionAccountConnected","openConnectVisionAccountModal","emailInput","ClaimRequestForm","ChangeEmailForm","unconfirmedForm","resendEmail","ChangePasswordForm","generateAndSetSalt","currentPassword","newPassword","confirmNewPassword","EditAccountForm","EditProfileForm","destroyable","govUserExtendedFormData","setGovUserExtendedFormData","prev","ResendClaimForm","readOnly","ListingArtifactTechnologyFocusAreas","GenericListingArtifactFormFragment","renderDatePicker","formKey","calendarAriaLabel","clearAriaLabel","toISOString","f","isServerFileData","isListingArtifactSubmittable","ListingArtifactFormWizard","steps","_props","onComplete","onFormDataChange","canComplete","submittable","ListingArtifactFormModal","suspending","setSuspense","directory","update","composePreloadedData","dataWithAttributes","canSubmit","switchOff","term","setTerm","hasSignedTerm","setHasSignedTerm","privacy","setPrivacy","hasSignedPrivacy","setHasSignedPrivacy","isAgreeSuspended","setIsAgreeSuspended","all","getLatestTerms","getLatestPrivacy","signTerm","signTerms","signPrivacy","renderSignerFor","publishDate","onAgree","confirmationToken","setSuccess","knownErrorReason","setKnownErrorReason","confirmUser","determineFailureMessage","mobilizeVisionLogo","requestReset","setPassword","setConfirmPassword","getLatestAntiSpamPolicy","renderData","invitedUserData","setInvitedUserData","setRecaptchaToken","sitekey","invite","setInvite","checkToken","checkUserInvite","inviteResponse","renderFailure","claimRequest","setClaimRequest","errorMessage","hasOwnProperty","newUserData","setNewUserData","restfulError","redirectPath","setRedirectPath","claimData","setClaimData","knownError","resultMessage","resultSamInstructions","determineResult","renderResendForm","renderListedInstructions","visionLogoCobalt","govUserSignupData","setGovUserSignupData","setGovUserExtendedData","setRedirect","connectVisionAccountHelpModalVisible","setConnectVisionAccountHelpModalVisible","unclassifiedConfirmation","setUnclassifiedCofirmation","spamProtectionModalVisible","setSpamProtectionModalVisible","decryptedGovUserData","position","decryptGovUserData","visionUrl","GovUserConnectorChip","govUser","activeChatThreadsCount","badge","govUserConnectorChip","badgeValue","chipColor","ChipColors","BLUE","chipBackground","chipSize","displayTitle","ViewIndividualGovUser","setGovUser","navigate","goBack","UserInfoCard","ProblemStatementCard","gutterY","AdminAnalyticsResponseRateHeader","adminAnalyticsData","setAdminAnalyticsData","convertResponseRate","govUserResponseRatePctg","toFixed","getHeaderResponse","govUserEngagedCompanies","formatLegend","style","formatXDate","iprops","formattedDate","getUTCMonth","getUTCFullYear","dy","textAnchor","IgniteLineChart","chartId","ResponsiveContainer","margin","top","XAxis","dataKey","xAxis","padding","tick","YAxis","bottom","Tooltip","chartLines","chartLine","total","displayName","Line","isAnimationActive","dot","Legend","iconType","layout","verticalAlign","align","wrapperStyle","paddingBottom","formatter","AdminAnalyticsSBCTimelineLineChart","AdminAnalyticsSBCTimelineStatistics","sbcTimelineStatistics","setSBCTimelineStatistics","LineChart","noResult","IgnitePieChartPlaceHolder","colors","PieChart","Pie","outerRadius","innerRadius","paddingAngle","_","Cell","iconSize","lineHeight","isGraphEmpty","noArray","noItemsInArray","noValuesInArrayItems","entry","IgnitePieChart","testingId","innerWidth","Chart","array","filteredData","startAngle","endAngle","nameKey","getTopTenRecordsByField","field","AdminAnalyticsTechnologyTypePieCharts","focusData","productData","serviceData","awardData","govUsersData","visionUsersData","AdminAnalyticsTechnologyTypeTable","setVisible","bordered","scope","row","rowData","percent","_string","listingPct","listingProductPct","listingServicePct","usersPct","visionUsersPct","listingCount","listingProductCount","listingServiceCount","usersCount","visionUsersCount","tableRow","techTypeTable","AdminAnalyticsTechnologyTypeStatistics","technologyTypeStatistics","setTechnologyTypeStatistics","AdminAnalyticsGovUsersTimelineLineChart","AdminAnalyticsGovUsersTimelineStatistics","govUsersTimelineStatistics","setGovUsersTimelineStatistics","AdminAnalyticsListingPageViewsTable","pageViews","listingPageViewTable","AdminAnalyticsListingPageViewsStatistics","listingPageViewsStatistics","setListingPageViewsStatistics","getListingPageViewStatistics","ListingPageViewsTable","ActiveConversationStatisticLineChart","ActiveConversationStatistics","activeConversationStatistics","setActiveConversationStatistics","DafUserStatisticsLineChart","DafUsersStatistics","dafUserStatistics","setDafUserStatistics","SbcUserStatisticLineChart","SbcUserStatistics","sbcUserStatistics","setSbcUserStatistics","OrganizationUserStatisticTable","organization","OrganizationUsersTable","OrganizationUserStatistics","organizationUserStatistics","setOrganizationUserStatistics","getOrganizationUserStatistics","Table","AdminAnalytics","instructions"],"mappings":"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D,KAAM,SACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,SAIb,CACED,KAAM,mBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,iBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,SAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,sBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,sBACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,OAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,+BACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,sBACNC,MAAO,KAET,CACED,KAAM,oBACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,OAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,2BACNC,MAAO,OAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,SAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,8BACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iCACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,OAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,SAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,SAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,OAIb,CACED,KAAM,mCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,QAIb,CACED,KAAM,yBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,iCACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,SAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,gBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,iCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iCACNC,MAAO,QAIb,CACED,KAAM,oBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,eACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,SAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,KAET,CACED,KAAM,oBACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,6BACNC,MAAO,QAIb,CACED,KAAM,iBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,eAIb,CACED,KAAM,2BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,qDACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,wCACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,iCACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,IAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,sCACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,mBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,0BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,mCACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,SAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,OAIb,CACED,KAAM,uCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,mDACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,eACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,aAET,CACED,KAAM,OACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,eAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,OAIb,CACED,KAAM,gCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,uCACNC,MAAO,MAET,CACED,KAAM,iCACNC,MAAO,MAET,CACED,KAAM,4CACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,gCACNC,MAAO,MAET,CACED,KAAM,sDACNC,MAAO,MAET,CACED,KAAM,mCACNC,MAAO,MAET,CACED,KAAM,mCACNC,MAAO,MAET,CACED,KAAM,gCACNC,MAAO,MAET,CACED,KAAM,uCACNC,MAAO,MAET,CACED,KAAM,4CACNC,MAAO,MAET,CACED,KAAM,mCACNC,MAAO,MAET,CACED,KAAM,6CACNC,MAAO,MAET,CACED,KAAM,qCACNC,MAAO,MAET,CACED,KAAM,sCACNC,MAAO,MAET,CACED,KAAM,iCACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,qCACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,gCACNC,MAAO,QAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,iBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,6BACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,gCACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,gCACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,SAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,SAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,SAET,CACED,KAAM,aACNC,MAAO,SAET,CACED,KAAM,UACNC,MAAO,SAET,CACED,KAAM,WACNC,MAAO,SAET,CACED,KAAM,aACNC,MAAO,SAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,SAET,CACED,KAAM,YACNC,MAAO,SAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,WAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,QAIb,CACED,KAAM,qBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,oCACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,OAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,oBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gCACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,qDACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,oCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,oCACNC,MAAO,eAIb,CACED,KAAM,gBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,eAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,KACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,KACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,uBACNC,MAAO,SAET,CACED,KAAM,mBACNC,MAAO,SAET,CACED,KAAM,qBACNC,MAAO,SAET,CACED,KAAM,gBACNC,MAAO,SAET,CACED,KAAM,SACNC,MAAO,SAET,CACED,KAAM,gBACNC,MAAO,SAET,CACED,KAAM,kBACNC,MAAO,SAET,CACED,KAAM,cACNC,MAAO,SAET,CACED,KAAM,cACNC,MAAO,SAET,CACED,KAAM,QACNC,MAAO,SAET,CACED,KAAM,YACNC,MAAO,SAET,CACED,KAAM,YACNC,MAAO,SAET,CACED,KAAM,kBACNC,MAAO,SAET,CACED,KAAM,oBACNC,MAAO,SAET,CACED,KAAM,eACNC,MAAO,SAET,CACED,KAAM,uBACNC,MAAO,SAET,CACED,KAAM,YACNC,MAAO,SAET,CACED,KAAM,UACNC,MAAO,SAET,CACED,KAAM,kBACNC,MAAO,WAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,6BACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,6BACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,iCACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,gBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,eAIb,CACED,KAAM,mBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,yBACNC,MAAO,aAET,CACED,KAAM,uBACNC,MAAO,aAET,CACED,KAAM,sBACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,aAET,CACED,KAAM,oBACNC,MAAO,eAIb,CACED,KAAM,sCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,iBACNC,MAAO,aAET,CACED,KAAM,+BACNC,MAAO,eAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,KAET,CACED,KAAM,iBACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,KAET,CACED,KAAM,iBACNC,MAAO,KAET,CACED,KAAM,qBACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,OAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,OAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,+BACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,MACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,eAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,eAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,0CACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,sBACNC,MAAO,KAET,CACED,KAAM,yBACNC,MAAO,KAET,CACED,KAAM,oBACNC,MAAO,KAET,CACED,KAAM,2BACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,qBACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,sBACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,sBACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,6BACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,eAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,eAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,iBACNC,MAAO,aAET,CACED,KAAM,qBACNC,MAAO,aAET,CACED,KAAM,cACNC,MAAO,aAET,CACED,KAAM,cACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,OACNC,MAAO,eAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,qBACNC,MAAO,OAIb,CACED,KAAM,gBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,kCACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,+BACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,oCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,oCACNC,MAAO,eAIb,CACED,KAAM,0BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,0BACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,iCACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,KAET,CACED,KAAM,+BACNC,MAAO,KAET,CACED,KAAM,uBACNC,MAAO,KAET,CACED,KAAM,uBACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,OAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,8BACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,4BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,gDACNC,MAAO,MAET,CACED,KAAM,gDACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,0DACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,wCACNC,MAAO,MAET,CACED,KAAM,wCACNC,MAAO,MAET,CACED,KAAM,yCACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,4CACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,4CACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,mCACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,eAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,eAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,6BACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,SAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,OACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,mBACNC,MAAO,aAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,oBACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,oBACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,eAIb,CACED,KAAM,yCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gCACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,gCACNC,MAAO,MAET,CACED,KAAM,kCACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,MAET,CACED,KAAM,kCACNC,MAAO,MAET,CACED,KAAM,kCACNC,MAAO,QAIb,CACED,KAAM,qBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,KAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,KAET,CACED,KAAM,qBACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,6BACNC,MAAO,OAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,SAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,OAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,2CACNC,MAAO,QAIb,CACED,KAAM,gBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,eAIb,CACED,KAAM,yBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,mCACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,IAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,OAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,qCACNC,MAAO,MAET,CACED,KAAM,+BACNC,MAAO,MAET,CACED,KAAM,kCACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,+BACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,mBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,SAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,eAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,SAIb,CACED,KAAM,kCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,SAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,SAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,aAET,CACED,KAAM,gBACNC,MAAO,aAET,CACED,KAAM,gBACNC,MAAO,eAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,kCACNC,MAAO,SAET,CACED,KAAM,aACNC,MAAO,SAET,CACED,KAAM,mBACNC,MAAO,SAET,CACED,KAAM,2BACNC,MAAO,SAET,CACED,KAAM,6BACNC,MAAO,SAET,CACED,KAAM,oBACNC,MAAO,SAET,CACED,KAAM,iBACNC,MAAO,SAET,CACED,KAAM,oBACNC,MAAO,SAET,CACED,KAAM,cACNC,MAAO,SAET,CACED,KAAM,oBACNC,MAAO,SAET,CACED,KAAM,6BACNC,MAAO,SAET,CACED,KAAM,uBACNC,MAAO,WAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,OAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,KAET,CACED,KAAM,iBACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,OAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,gBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,aAET,CACED,KAAM,OACNC,MAAO,aAET,CACED,KAAM,MACNC,MAAO,eAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,4BACNC,MAAO,SAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,OAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,MAET,CACED,KAAM,kCACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,eAIb,CACED,KAAM,iBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,eAIb,CACED,KAAM,2BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,aAET,CACED,KAAM,OACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,eAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,8BACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,sCACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,sCACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,SAIb,CACED,KAAM,sBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,uCACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,qCACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,SAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,OAIb,CACED,KAAM,mBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,SAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,OAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,sCACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,SAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,SAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,eAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,cACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,MACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,cACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,OACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,aAET,CACED,KAAM,aACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,cACNC,MAAO,aAET,CACED,KAAM,gBACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,gBACNC,MAAO,aAET,CACED,KAAM,SACNC,MAAO,aAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,QACNC,MAAO,eAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iCACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,8BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,eAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,qBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,oCACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,4BACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,2BACNC,MAAO,OAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,6BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,wCACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,mCACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,iCACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,SAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,sBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,+CACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,wBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,OAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,eACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,eAIb,CACED,KAAM,4BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,eAIb,CACED,KAAM,mCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,wBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,OAIb,CACED,KAAM,eACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,eACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,OAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,4BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,eAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,KACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,4BACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,qCACNC,MAAO,OAET,CACED,KAAM,oCACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,mCACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,SAIb,CACED,KAAM,kBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,QAIb,CACED,KAAM,eACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,QAIb,CACED,KAAM,2CACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,cACNC,MAAO,aAET,CACED,KAAM,iBACNC,MAAO,aAET,CACED,KAAM,eACNC,MAAO,aAET,CACED,KAAM,iBACNC,MAAO,aAET,CACED,KAAM,kBACNC,MAAO,aAET,CACED,KAAM,gBACNC,MAAO,aAET,CACED,KAAM,iBACNC,MAAO,aAET,CACED,KAAM,oBACNC,MAAO,eAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,QAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,OAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,MACNC,MAAO,OAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,YACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,eACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,qBACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,cACNC,MAAO,KAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,KAET,CACED,KAAM,iBACNC,MAAO,KAET,CACED,KAAM,wBACNC,MAAO,OAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,uBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,QAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,SAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,QAIb,CACED,KAAM,+BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,kCACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,cACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,OACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,OAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,aAET,CACED,KAAM,UACNC,MAAO,aAET,CACED,KAAM,WACNC,MAAO,eAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,QAIb,CACED,KAAM,sBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,SAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,QAIb,CACED,KAAM,eACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,OAIb,CACED,KAAM,2BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,2BACNC,MAAO,eAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,MACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,SAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,OACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,SAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,4BACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,QAIb,CACED,KAAM,uBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,QAIb,CACED,KAAM,iBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,kCACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,+BACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,2BACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,4BACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,2BACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,0BACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,uBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,wBACNC,MAAO,OAET,CACED,KAAM,oBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,kBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,mBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,qBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,aACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,sBACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,yBACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,iBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,OACNC,MAAO,SAIb,CACED,KAAM,gBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,OACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,sDACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,QAIb,CACED,KAAM,uCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,QAIb,CACED,KAAM,aACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,6CACNC,MAAO,QAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,QACNC,MAAO,SAIb,CACED,KAAM,oCACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,yBACNC,MAAO,KAET,CACED,KAAM,mBACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,OACNC,MAAO,KAET,CACED,KAAM,YACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,gBACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,KAET,CACED,KAAM,aACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,QACNC,MAAO,OAIb,CACED,KAAM,UACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,oCACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,aAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,yBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,2BACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,eACNC,MAAO,MAET,CACED,KAAM,mCACNC,MAAO,MAET,CACED,KAAM,kBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,uBACNC,MAAO,MAET,CACED,KAAM,iBACNC,MAAO,MAET,CACED,KAAM,oBACNC,MAAO,MAET,CACED,KAAM,sCACNC,MAAO,QAIb,CACED,KAAM,0BACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,OAET,CACED,KAAM,UACNC,MAAO,OAET,CACED,KAAM,eACNC,MAAO,SAIb,CACED,KAAM,uBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,YACNC,MAAO,SAIb,CACED,KAAM,oBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,MACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,OAET,CACED,KAAM,SACNC,MAAO,SAIb,CACED,KAAM,iBACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,cACNC,MAAO,OAET,CACED,KAAM,WACNC,MAAO,OAET,CACED,KAAM,gBACNC,MAAO,SAIb,CACED,KAAM,QACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,aACNC,MAAO,MAET,CACED,KAAM,QACNC,MAAO,MAET,CACED,KAAM,0BACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,YACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,cACNC,MAAO,MAET,CACED,KAAM,MACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,wBACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,QAIb,CACED,KAAM,SACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,UACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,gBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,UACNC,MAAO,QAIb,CACED,KAAM,WACNC,MAAO,KACPE,QAAS,CACP,CACEH,KAAM,WACNC,MAAO,MAET,CACED,KAAM,SACNC,MAAO,MAET,CACED,KAAM,aACNC,MAAO,MAET,CACED,KAAM,sBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,mBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,qBACNC,MAAO,MAET,CACED,KAAM,WACNC,MAAO,U,2lCCrhmBVK,E,qCCRQC,EAAQ,SAACvP,GACpB,OACE,eAAC,IAAD,CACE,wBAAgBA,EAAM,eAAiBA,EAAM,eAAiB,IAAM,GAApE,SACAwP,SAAO,EACPC,QAAQ,QACR1H,MAAO/H,EAAM+H,OAAS,OAJxB,UAME,4BAAI/H,EAAM0H,UACT1H,EAAM0P,eACL,wBACEvR,KAAK,SACLe,UAAU,4BACV,aAAW,QACX,cAAY,kBACZkG,QAAS,kBAAMpF,EAAM0P,uB,iGCXlBC,EAAoB3O,YAAOC,IAAiBC,MAAME,kBAA9BJ,CAC/BK,aAAS,SAACrB,GACR,MAAsC+D,wBAA2BiD,GAAjE,mBAAO4I,EAAP,KAAsBC,EAAtB,KACA,EAA6B9L,mBAAiB,GAA9C,mBAAO+L,EAAP,KAAaC,EAAb,KACA,EAAqChM,mBAAiB,GAAtD,mBAAOiM,EAAP,KAAiBC,EAAjB,KACA,EAA6BlM,mBAAg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","file":"static/js/main.f90b5e58.chunk.js","sourcesContent":["import { ServerStore, UserData } from './'\nimport {\n  FileResponseData,\n  GenericLabeledItemResponse,\n  GenericNamedItemResponse,\n} from '../lib/types'\nimport { PaginationParams, ServerPageData } from '../lib/types/Params'\nimport { ListingArtifactLinkFormData } from '../components/form/fragments/listing/BulkLinks'\nimport { ListingArtifactAttachmentFormData } from '../components/form/fragments/listing/BulkAttachments'\nimport { ListingOrganizationFormData } from '../components/form/fragments/listing/OrganizationDetails'\nimport { ListingContractingDetailsFormData } from '../components/form/fragments/listing/ContractingDetails'\nimport { ListingArtifactFormData } from '../components/form'\nimport { GenericSearchMetadata } from './UserStore'\n\nexport interface UserListingAccessesAttributes {\n  userId: number\n  isPointOfContact: boolean\n}\n\nexport interface ListingTechnologyTypesAttributes {\n  technologyTypeId: number\n}\n\nexport interface ListingNaicsCodesAttributes {\n  naicsCodeId: number\n}\n\nexport interface ListingBusinessClassificationsAttributes {\n  businessClassificationId: number\n}\n\nexport interface ListingSocialMediaAccountAttributes {\n  socialMediaTypeId: number\n  identifier: string\n}\n\nexport interface ListingFormData\n  extends ListingOrganizationFormData,\n    ListingContractingDetailsFormData {\n  listingArtifactLinksAttributes?: Array<ListingArtifactLinkFormData>\n  listingArtifactAttachmentsAttributes?: Array<ListingArtifactAttachmentFormData>\n  listingArtifactTechnologyTypesAttributes?: Array<ListingArtifactTechnologyType>\n}\n\nexport interface UpdateListingData {\n  id: string | number\n  name: string\n  tagLine: string\n  logo: File | FileResponseData\n  yearFounded: string | number\n  website: string\n  pointOfContactId: string | number\n  // HEADQUARTERS\n  addressLine1: string\n  addressLine2?: string\n  addressLine3?: string\n  city: string\n  stateOrProvince: string\n  country: string\n  postalCode: string\n  // CONTRACT DETAILS\n  samCode?: string\n  dunsCode?: string\n  naicsCodes?: Array<DestructibleItem>\n  technologyTypes?: Array<DestructibleItem>\n  capabilityStatement: string\n  businessClassifications?: Array<DestructibleItem>\n  socialMediaAccounts?: Array<ListingSocialMediaAccountAttributes>\n  listingArtifactLinksAttributes?: Array<ListingArtifactLinkFormData>\n  listingArtifactAttachmentsAttributes?: Array<ListingArtifactAttachmentFormData>\n  listingArtifactTechnologyTypesAttributes?: Array<ListingArtifactTechnologyType>\n}\n\nexport type ListingData = {\n  id: string | number\n  addressLine1?: string\n  addressLine2?: string\n  addressLine3?: string\n  city?: string\n  stateProvince?: string\n  postalCode: string\n  country: string\n  capabilityStatement?: string\n  cageCode?: string\n  dunsCode?: string\n  samCode?: string\n  samRegistrationDate?: string\n  samExpirationDate?: string\n  productServiceCodes?: Array<ProductServiceCode>\n  uniqueEntityId: string\n  tagLine?: string\n  website?: string\n  accountId: string | number\n  createdAt: string\n  updatedAt: string\n  inactiveDate: string\n  yearFounded?: string\n  name: string\n  logo?: FileResponseData\n  listingSocialMediaAccounts: string\n  users: string\n  businessClassifications: string\n  naicsCodes: string\n  technologyTypes: string\n  offerings: string\n  listingContracts: string\n  isPublished?: boolean\n  isOnlyVisionVisible?: boolean\n  listingArtifactLinks?: Array<ListingArtifactLink>\n  listingArtifactAttachments?: Array<ListingArtifactAttachment>\n  pointOfContact?: UserData\n  listingArtifactTechnologyTypes?: Array<ListingArtifactTechnologyType>\n  views?: number\n}\n\nexport type ConnectListingsResponse = {\n  id: number\n  name: string\n  logo: FileResponseData\n  addressLine1: string\n  addressLine2?: string\n  addressLine3?: string\n  city: string\n  stateProvince: string\n  postalCode: string\n  country: string\n  capabilityStatement: string\n  dunsCode?: string\n  samCode?: string\n  uniqueEntityId: string\n  tagLine: string\n  website: string\n  yearFounded: string\n  createdAt: string\n  updatedAt: string\n  technologyTypes: Array<GenericNamedItemResponse>\n}\n\nexport interface IgniteAwardQueryParams {\n  eager?: string\n  searchAwards?: string\n  awardContractNumber?: string\n  awardState?: string\n  awardAmountMin?: number\n  awardAmountMax?: number\n  awardPhase?: string\n  awardNaicsCodeIds?: string\n  awardTechnologyTypeIds?: string\n  awardDateMin?: string\n  awardDateMax?: string\n  sortBy?: string\n  sortDirection?: string\n  highlight?: string\n}\n\nexport interface ListingArtifactPricing {\n  id: string | number\n  amount: number\n  periodIncrement: string\n  periodValue: number\n}\n\nexport interface ListingArtifactLink {\n  id: string | number\n  name: string\n  description: string\n  url: string\n}\n\nexport interface ListingArtifactAttachment {\n  id: string | number\n  name: string\n  description: string\n  file: FileResponseData\n}\n\nexport interface ListingArtifactTechnologyType {\n  artifactId: number\n  technologyTypeId: number\n  listingArtifactTechnologyTypeId: number\n  name: string\n}\n\nexport interface ProductServiceCode {\n  id: string | number\n  code: string\n  description?: string\n}\n\nexport const isListingArtifactTechnologyType = (o: any): o is ListingArtifactTechnologyType => {\n  return 'listingArtifactTechnologyTypeId' in o && !!o['listingArtifactTechnologyTypeId']\n}\n\nexport interface ListingServiceProductData {\n  id: string | number\n  listingId: string | number\n  name: string\n  description: string\n  url?: string\n  logo?: FileResponseData\n  listingArtifactPricings?: Array<ListingArtifactPricing>\n  listingArtifactLinks?: Array<ListingArtifactLink>\n  listingArtifactAttachments?: Array<ListingArtifactAttachment>\n  listingArtifactTechnologyTypes?: Array<ListingArtifactTechnologyType>\n}\n\nexport interface ListingUseCaseData {\n  id: string | number\n  listingId: string | number\n  name: string\n  description: string\n  url?: string\n  logo?: FileResponseData\n  startDate?: string\n  endDate?: string\n  listingArtifactLinks?: Array<ListingArtifactLink>\n  listingArtifactAttachments?: Array<ListingArtifactAttachment>\n  listingArtifactTechnologyTypes?: Array<ListingArtifactTechnologyType>\n}\n\nexport interface ListingAwardData {\n  id: number\n  contractNumber: string\n  contractAwardDate?: string\n  contractStartDate?: string\n  contractEndDate?: string\n  awardAmount?: string\n  awardTitle?: string\n  productServiceCode?: string\n  principleNaicsCode?: string\n  state?: string\n  awardAbstract?: string\n  phase?: string\n  branch?: string\n  program?: string\n  piName?: string\n  piTitle?: string\n  piPhone?: string\n  piEmail?: string\n  awardYear?: string\n  researchInstitutionName?: string\n  listingArtifactTechnologyTypes?: Array<ListingArtifactTechnologyType>\n  anticipatedBenefits?: string\n  searchMetadata?: GenericSearchMetadata\n}\n\nexport const isAward = (o: any): o is ListingAwardData => {\n  return 'contractNumber' in o\n}\n\nexport interface Destructible {\n  destroyable?: boolean\n  destroy?: boolean\n}\n\nexport interface DestructibleItem extends Destructible {\n  id: string | number\n}\n\nexport const isUseCase = (\n  artifact: ListingServiceProductData | ListingUseCaseData,\n): artifact is ListingUseCaseData => {\n  return 'startDate' in artifact && 'endDate' in artifact\n}\n\nexport const isLink = (\n  artifact: ListingArtifactLink | ListingArtifactAttachment,\n): artifact is ListingArtifactLink => {\n  return 'url' in artifact\n}\n\nexport const isAttachment = (\n  artifact: ListingArtifactLink | ListingArtifactAttachment,\n): artifact is ListingArtifactAttachment => {\n  return 'file' in artifact\n}\n\nexport class ListingStore extends ServerStore {\n  public listings: any\n\n  public getListings = async (params: PaginationParams): Promise<ServerPageData<ListingData>> => {\n    return this.server()\n      .get('/api/v1/current_user/listings', {\n        params: { page: params.page, perPage: params.perPage },\n      })\n      .then(({ data }) => data)\n  }\n\n  public getSingleListing = (id: string | number, eager?: string): Promise<ListingData> => {\n    return this.server()\n      .get(`/api/v1/listings/${id}`, {\n        params: { eager },\n      })\n      .then(({ data }) => data)\n  }\n\n  public getSingleListingService = ({\n    listingId,\n    serviceId,\n    eager,\n  }: {\n    listingId: string\n    serviceId: string\n    eager?: string\n  }): Promise<ListingServiceProductData> => {\n    return this.server()\n      .get(`/api/v1/listings/${listingId}/listing_services/${serviceId}`, { params: { eager } })\n      .then(({ data }) => data)\n  }\n\n  public getAwardsPhases = async (\n    params: PaginationParams,\n  ): Promise<ServerPageData<GenericLabeledItemResponse>> => {\n    return this.server()\n      .get('/api/v1/connect/awards/phases', { params })\n      .then(({ data }) => data)\n  }\n\n  public getSingleListingProduct = ({\n    listingId,\n    productId,\n    eager,\n  }: {\n    listingId: string\n    productId: string\n    eager?: string\n  }): Promise<ListingServiceProductData> => {\n    return this.server()\n      .get(`/api/v1/listings/${listingId}/listing_products/${productId}`, { params: { eager } })\n      .then(({ data }) => data)\n  }\n\n  public getSingleListingUseCase = ({\n    listingId,\n    useCaseId,\n    eager,\n  }: {\n    listingId: string\n    useCaseId: string\n    eager?: string\n  }): Promise<ListingUseCaseData> => {\n    return this.server()\n      .get(`/api/v1/listings/${listingId}/listing_use_cases/${useCaseId}`, { params: { eager } })\n      .then(({ data }) => data)\n  }\n\n  public getSingleListingAward = ({\n    listingId,\n    awardId,\n    eager,\n  }: {\n    listingId: string\n    awardId: string\n    eager?: string\n  }): Promise<ListingUseCaseData> => {\n    return this.server()\n      .get(`/api/v1/listings/${listingId}/listing_awards/${awardId}`, { params: { eager } })\n      .then(({ data }) => data)\n  }\n\n  public getPointOfContact = (id: string | number): Promise<UserData> => {\n    return this.server()\n      .get(`/api/v1/listings/${id}/users/point_of_contact`)\n      .then(({ data }) => data)\n  }\n\n  public getListingServices = async ({\n    listingId,\n    params,\n    eager,\n  }: {\n    listingId: string | number\n    params: PaginationParams\n    eager?: string\n  }): Promise<ServerPageData<ListingServiceProductData>> => {\n    return this.server()\n      .get(`/api/v1/listings/${listingId}/listing_services`, {\n        params: { page: params.page, perPage: params.perPage, eager: eager },\n      })\n      .then(({ data }) => data)\n  }\n\n  public getListingUseCases = async ({\n    listingId,\n    params,\n    eager,\n  }: {\n    listingId: string | number\n    params: PaginationParams\n    eager?: string\n  }): Promise<ServerPageData<ListingUseCaseData>> => {\n    return this.server()\n      .get(`/api/v1/listings/${listingId}/listing_use_cases`, {\n        params: { page: params.page, perPage: params.perPage, eager: eager },\n      })\n      .then(({ data }) => data)\n  }\n\n  public getListingProducts = async ({\n    listingId,\n    params,\n    eager,\n  }: {\n    listingId: string | number\n    params: PaginationParams\n    eager?: string\n  }): Promise<ServerPageData<ListingServiceProductData>> => {\n    return this.server()\n      .get(`/api/v1/listings/${listingId}/listing_products`, {\n        params: { page: params.page, perPage: params.perPage, eager: eager },\n      })\n      .then(({ data }) => data)\n  }\n\n  public updateListingService = async ({\n    listingId,\n    serviceId,\n    payload,\n  }: {\n    listingId: string | number\n    serviceId: string | number\n    payload: ListingArtifactFormData\n  }): Promise<ListingServiceProductData> => {\n    const formData = this.composeFormData(payload)\n    return this.server()\n      .patch<ListingServiceProductData>(\n        `/api/v1/listings/${listingId}/listing_services/${serviceId}`,\n        formData,\n        {\n          headers: { 'Content-Type': 'multipart/form-data' },\n        },\n      )\n      .then(({ data }) => data)\n  }\n\n  public updateListingUseCase = async ({\n    listingId,\n    useCaseId,\n    payload,\n  }: {\n    listingId: string | number\n    useCaseId: string | number\n    payload: ListingArtifactFormData\n  }): Promise<ListingServiceProductData> => {\n    const formData = this.composeFormData(payload)\n    return this.server()\n      .patch<ListingUseCaseData>(\n        `/api/v1/listings/${listingId}/listing_use_cases/${useCaseId}`,\n        formData,\n        {\n          headers: { 'Content-Type': 'multipart/form-data' },\n        },\n      )\n      .then(({ data }) => data)\n  }\n\n  private composeFormData = (payload: ListingArtifactFormData): FormData => {\n    const formData = new FormData()\n    formData.append('name', payload.name)\n    formData.append('description', payload.description)\n    payload.url && formData.append('url', payload.url)\n\n    if (payload.logo instanceof File) {\n      formData.append('logo', payload.logo as File)\n    }\n\n    payload.startDate && formData.append('startDate', payload.startDate)\n    payload.endDate && formData.append('endDate', payload.endDate)\n\n    payload.listingArtifactAttachmentsAttributes &&\n      payload.listingArtifactAttachmentsAttributes.forEach((attachment, i) => {\n        attachment.id &&\n          formData.append(\n            `listingArtifactAttachmentsAttributes[${i}][id]`,\n            attachment.id.toString(),\n          )\n        attachment.name &&\n          formData.append(`listingArtifactAttachmentsAttributes[${i}][name]`, attachment.name)\n        attachment.description &&\n          formData.append(\n            `listingArtifactAttachmentsAttributes[${i}][description]`,\n            attachment.description,\n          )\n        if (attachment.file instanceof File) {\n          formData.append(\n            `listingArtifactAttachmentsAttributes[${i}][file]`,\n            attachment.file as File,\n          )\n        }\n        formData.append(\n          `listingArtifactAttachmentsAttributes[${i}][destroy]`,\n          attachment.destroy ? 'true' : 'false',\n        )\n      })\n\n    payload.listingArtifactLinksAttributes &&\n      payload.listingArtifactLinksAttributes.forEach((link, i) => {\n        link.id && formData.append(`listingArtifactLinksAttributes[${i}][id]`, link.id.toString())\n        link.name && formData.append(`listingArtifactLinksAttributes[${i}][name]`, link.name)\n        link.description &&\n          formData.append(`listingArtifactLinksAttributes[${i}][description]`, link.description)\n        formData.append(`listingArtifactLinksAttributes[${i}][url]`, link.url)\n        formData.append(\n          `listingArtifactLinksAttributes[${i}][destroy]`,\n          link.destroy ? 'true' : 'false',\n        )\n      })\n\n    payload.listingArtifactTechnologyTypesAttributes &&\n      payload.listingArtifactTechnologyTypesAttributes.forEach((techType, i) => {\n        isListingArtifactTechnologyType(techType) &&\n          formData.append(\n            `listingArtifactTechnologyTypesAttributes[${i}][id]`,\n            techType.listingArtifactTechnologyTypeId.toString(),\n          )\n\n        const technologyTypeId = isListingArtifactTechnologyType(techType)\n          ? techType.technologyTypeId\n          : techType.id\n        formData.append(\n          `listingArtifactTechnologyTypesAttributes[${i}][technologyTypeId]`,\n          technologyTypeId.toString(),\n        )\n\n        isListingArtifactTechnologyType(techType) &&\n          formData.append(\n            `listingArtifactTechnologyTypesAttributes[${i}][destroy]`,\n            techType.destroy ? 'true' : 'false',\n          )\n      })\n\n    return formData\n  }\n\n  public getListingAwards = async ({\n    listingId,\n    params,\n  }: {\n    listingId: string | number\n    params: PaginationParams & IgniteAwardQueryParams\n  }): Promise<ServerPageData<ListingAwardData>> => {\n    return this.server()\n      .get(`/api/v1/listings/${listingId}/listing_awards`, {\n        params: { ...params },\n      })\n      .then(({ data }) => data)\n  }\n\n  public createListingService = async ({\n    listingId,\n    payload,\n  }: {\n    listingId: number | string\n    payload: ListingArtifactFormData\n  }): Promise<ListingServiceProductData> => {\n    const formData = this.composeFormData(payload)\n\n    return this.server()\n      .post<ListingServiceProductData>(`/api/v1/listings/${listingId}/listing_services`, formData, {\n        headers: { 'Content-Type': 'multipart/form-data' },\n      })\n      .then(({ data }) => data)\n  }\n\n  public createListingProduct = async ({\n    listingId,\n    payload,\n  }: {\n    listingId: number | string\n    payload: ListingArtifactFormData\n  }): Promise<ListingServiceProductData> => {\n    const formData = this.composeFormData(payload)\n\n    return this.server()\n      .post<ListingServiceProductData>(`/api/v1/listings/${listingId}/listing_products`, formData, {\n        headers: { 'Content-Type': 'multipart/form-data' },\n      })\n      .then(({ data }) => data)\n  }\n\n  public updateListingProduct = async ({\n    listingId,\n    productId,\n    payload,\n  }: {\n    listingId: string | number\n    productId: string | number\n    payload: ListingArtifactFormData\n  }): Promise<ListingServiceProductData> => {\n    let formData = this.composeFormData(payload)\n\n    return this.server()\n      .patch(`/api/v1/listings/${listingId}/listing_products/${productId}`, formData, {\n        headers: { 'Content-Type': 'multipart/form-data' },\n      })\n      .then(({ data }) => data)\n  }\n\n  public createListingUseCase = async ({\n    listingId,\n    payload,\n  }: {\n    listingId: number | string\n    payload: ListingArtifactFormData\n  }): Promise<ListingUseCaseData> => {\n    const formData = this.composeFormData(payload)\n    return this.server()\n      .post<ListingServiceProductData>(\n        `/api/v1/listings/${listingId}/listing_use_cases`,\n        formData,\n        {\n          headers: { 'Content-Type': 'multipart/form-data' },\n        },\n      )\n      .then(({ data }) => data)\n  }\n\n  public updateListing = async (payload: UpdateListingData): Promise<ListingData> => {\n    const formData = new FormData()\n    formData.append('name', payload.name)\n    formData.append('tagLine', payload.tagLine)\n    if (payload.logo instanceof File) {\n      formData.append('logo', payload.logo as File)\n    }\n    formData.append('yearFounded', payload.yearFounded.toString())\n    formData.append('website', payload.website)\n    payload.samCode && formData.append('samCode', payload.samCode)\n    payload.dunsCode && formData.append('dunsCode', payload.dunsCode)\n    formData.append('capabilityStatement', payload.capabilityStatement)\n\n    formData.append('addressLine_1', payload.addressLine1)\n    formData.append('addressLine_2', payload.addressLine2 ? payload.addressLine2 : '')\n    formData.append('addressLine_3', payload.addressLine3 ? payload.addressLine3 : '')\n    formData.append('city', payload.city)\n    formData.append('stateProvince', payload.stateOrProvince)\n    formData.append('country', payload.country)\n    formData.append('postalCode', payload.postalCode)\n    formData.append('pointOfContactId', payload.pointOfContactId.toString())\n\n    payload.naicsCodes &&\n      payload.naicsCodes.forEach((code) => {\n        formData.append('naicsCodes[][id]', code.id.toString())\n        formData.append('naicsCodes[][destroy]', code.destroy!.toString())\n      })\n\n    payload.technologyTypes &&\n      payload.technologyTypes.forEach((type) => {\n        formData.append('technologyTypes[][id]', type.id.toString())\n        formData.append('technologyTypes[][destroy]', type.destroy!.toString())\n      })\n\n    payload.businessClassifications &&\n      payload.businessClassifications.forEach((el) => {\n        formData.append(`businessClassifications[][id]`, el.id.toString())\n        formData.append(`businessClassifications[][destroy]`, el.destroy!.toString())\n      })\n\n    payload.socialMediaAccounts &&\n      payload.socialMediaAccounts.forEach((el) => {\n        formData.append(`socialMediaAccounts[][socialMediaTypeId]`, el.socialMediaTypeId.toString())\n        formData.append(`socialMediaAccounts[][identifier]`, el.identifier.toString())\n        formData.append(\n          `socialMediaAccounts[][destroy]`,\n          el.identifier.length < 2 ? 'true' : 'false',\n        )\n      })\n\n    payload.listingArtifactAttachmentsAttributes &&\n      payload.listingArtifactAttachmentsAttributes.forEach((attachment, i) => {\n        attachment.id &&\n          formData.append(\n            `listingArtifactAttachmentsAttributes[${i}][id]`,\n            attachment.id.toString(),\n          )\n        attachment.name &&\n          formData.append(`listingArtifactAttachmentsAttributes[${i}][name]`, attachment.name)\n        attachment.description &&\n          formData.append(\n            `listingArtifactAttachmentsAttributes[${i}][description]`,\n            attachment.description,\n          )\n        if (attachment.file instanceof File) {\n          formData.append(\n            `listingArtifactAttachmentsAttributes[${i}][file]`,\n            attachment.file as File,\n          )\n        }\n        formData.append(\n          `listingArtifactAttachmentsAttributes[${i}][destroy]`,\n          attachment.destroy ? 'true' : 'false',\n        )\n      })\n\n    payload.listingArtifactLinksAttributes &&\n      payload.listingArtifactLinksAttributes.forEach((link, i) => {\n        link.id && formData.append(`listingArtifactLinksAttributes[${i}][id]`, link.id.toString())\n        link.name && formData.append(`listingArtifactLinksAttributes[${i}][name]`, link.name)\n        link.description &&\n          formData.append(`listingArtifactLinksAttributes[${i}][description]`, link.description)\n        formData.append(`listingArtifactLinksAttributes[${i}][url]`, link.url)\n        formData.append(\n          `listingArtifactLinksAttributes[${i}][destroy]`,\n          link.destroy ? 'true' : 'false',\n        )\n      })\n\n    return this.server()\n      .patch(`/api/v1/current_user/listings/${payload.id}`, formData, {\n        headers: { 'Content-Type': 'multipart/form-data' },\n      })\n      .then(({ data }) => data)\n  }\n\n  public publishListing(listingId: number | string): Promise<ListingData> {\n    return this.server()\n      .patch(`/api/v1/current_user/listings/${listingId}/publish`)\n      .then(({ data }) => data)\n  }\n\n  public setListingVisibility(listingId: number | string, isOnlyVisionVisible: boolean) {\n    return this.server()\n      .patch(\n        `/api/v1/current_user/listings/${listingId}`,\n        {\n          isOnlyVisionVisible,\n        },\n        {\n          headers: { 'Content-Type': 'application/json' },\n        },\n      )\n      .then(({ data }) => data)\n  }\n\n  public unpublishListing(listingId: number | string): Promise<ListingData> {\n    return this.server()\n      .patch(`/api/v1/current_user/listings/${listingId}/unpublish`)\n      .then(({ data }) => data)\n  }\n\n  public deleteProduct = ({\n    listingId,\n    productId,\n  }: {\n    listingId: string | number\n    productId: string | number\n  }): Promise<null> => {\n    return this.server().delete(`/api/v1/listings/${listingId}/listing_products/${productId}`)\n  }\n\n  public deleteService = ({\n    listingId,\n    serviceId,\n  }: {\n    listingId: string | number\n    serviceId: string | number\n  }): Promise<null> => {\n    return this.server().delete(`/api/v1/listings/${listingId}/listing_services/${serviceId}`)\n  }\n\n  public deleteUseCase = ({\n    listingId,\n    useCaseId,\n  }: {\n    listingId: string | number\n    useCaseId: string | number\n  }): Promise<null> => {\n    return this.server().delete(`/api/v1/listings/${listingId}/listing_use_cases/${useCaseId}`)\n  }\n}\n","export const activeStatusIcon = (className) => {\n  return className === 'tooltip' ? (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 16 17\" fill=\"none\">\n      <circle cx=\"8\" cy=\"8.5\" r=\"6.81818\" fill=\"#0D6EFD\" stroke=\"white\" strokeWidth=\"1.63636\" />\n    </svg>\n  ) : (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\n      <circle\n        cx=\"7.67712\"\n        cy=\"8.5\"\n        r=\"6.81818\"\n        fill=\"#0D6EFD\"\n        stroke=\"white\"\n        strokeWidth=\"1.63636\"\n      />\n      <circle cx=\"7.6814\" cy=\"8.50427\" r=\"3\" fill=\"white\" />\n    </svg>\n  )\n}\n","import classnames from 'classnames'\nimport { Avatar, AvatarProps } from '@mobilizeyourtech/vision-core-react'\nimport { CTooltip } from '@coreui/react'\nimport { UserData } from '../../../../stores'\nimport { AccountData, isAccountData, isUserData } from '../../../../stores/UserStore'\nimport { activeStatusIcon } from '../../../../assets/brand/active_status_icon'\nimport { ConnectListingResponse } from '../../../../stores/ConnectListingStore'\n\ninterface TProps extends Omit<AvatarProps, 'src' | 'prefix' | 'suffix'> {\n  user?: UserData | AccountData | ConnectListingResponse\n  displayIsActive?: boolean\n}\n\nexport const UserAvatar = ({ user, displayIsActive, ...props }: TProps) => {\n  // TODO refactor to be 2 separate Avatar components - 1 scoped for Users and 1 for Accounts\n  const source = () => {\n    if (isUserData(user)) {\n      return {\n        image: user.headshot?.path,\n        firstName: user.firstName,\n        lastName: user.lastName,\n      }\n    }\n    if (isAccountData(user)) {\n      return {\n        image: user.logo?.path,\n        firstName: user.name,\n      }\n    }\n    return undefined\n  }\n\n  const renderActiveDisplay = user && isUserData(user) && user.isActive && displayIsActive\n  const renderTooltipContent = () => {\n    return (\n      <div className=\"d-flex justify-content-center align-items-center gap-1\">\n        {activeStatusIcon()}\n        <em>Active in the last 90 days</em>\n      </div>\n    )\n  }\n\n  return renderActiveDisplay ? (\n    <CTooltip content={renderTooltipContent()}>\n      <div className=\"user-avatar-wrapper position-relative\" data-testid=\"active-user-avatar\">\n        <Avatar\n          {...props}\n          className={classnames('user-avatar', props.className)}\n          src={source()?.image}\n          prefix={source()?.firstName || ''}\n          suffix={source()?.lastName || ''}\n        />\n        <div className=\"is-active-indicator position-absolute end-0 bottom-0\">\n          {activeStatusIcon()}\n        </div>\n      </div>\n    </CTooltip>\n  ) : (\n    <div className=\"user-avatar-wrapper position-relative\" data-testid=\"default-user-avatar\">\n      <Avatar\n        {...props}\n        className={classnames('user-avatar', props.className)}\n        src={source()?.image}\n        prefix={source()?.firstName || ''}\n        suffix={source()?.lastName || ''}\n      />\n    </div>\n  )\n}\n","import React from 'react'\nimport {\n  CCard,\n  CCardBody,\n  CCardFooter,\n  CCardHeader,\n  CCardSubtitle,\n  CCardTitle,\n  CCol,\n  CRow,\n  CTooltip,\n} from '@coreui/react'\nimport { ApplicationStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { getTimezoneOptions, parseTimezone } from '../../lib/time'\nimport { SocialMediaAccount } from '../../stores/UserStore'\nimport { determineSocialMediaIconClassName } from '../../lib/helpers/utils'\nimport { UserAvatar } from '../Molecules/Avatars/UserAvatar/UserAvatar'\n\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n}\nexport const ProfileDetailCard = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const isGovUser = props.userStore?.currentUserData?.userRoles?.includes('gov')\n    const wrappedIcon = (className: string | undefined) => {\n      if (className) {\n        return (\n          <div className=\"icon-wrapper\">\n            <i className={className} />\n          </div>\n        )\n      }\n      return undefined\n    }\n\n    const renderSocialMediaAccount = (sma: SocialMediaAccount) => {\n      return (\n        <CCol key={sma.id}>\n          {wrappedIcon(determineSocialMediaIconClassName(sma.socialMediaTypeName))}\n          {sma.identifier}\n        </CCol>\n      )\n    }\n\n    const unconfirmedEmailMessage = (email: string) => {\n      return `A confirmation email has been sent to ${email}`\n    }\n\n    const timezone =\n      props.userStore?.currentUserData?.timezone &&\n      parseTimezone(props.userStore.currentUserData.timezone, getTimezoneOptions('original'))?.label\n\n    const phoneSection = () => {\n      return (\n        <>\n          <CRow>\n            <CCol>\n              {wrappedIcon('fas fa-mobile-alt')}\n              {props.userStore?.currentUserData?.cellPhone}\n            </CCol>\n          </CRow>\n          {props.userStore?.currentUserData?.workPhone && (\n            <CRow>\n              <CCol>\n                {wrappedIcon('fas fa-phone-alt')}\n                {props.userStore?.currentUserData?.workPhone}\n              </CCol>\n            </CRow>\n          )}\n          {props.userStore?.currentUserData?.workPhoneExt && (\n            <CRow>\n              <CCol>\n                {wrappedIcon('fa fa-random')}\n                {props.userStore?.currentUserData?.workPhoneExt}\n              </CCol>\n            </CRow>\n          )}\n        </>\n      )\n    }\n    const socialMediaSection = () => {\n      return (\n        <CRow>\n          {props.userStore?.currentUserData?.socialMediaAccounts?.map(renderSocialMediaAccount)}\n        </CRow>\n      )\n    }\n\n    const renderLocation = () => {\n      let locationValues: Array<String | undefined> = []\n      if (props.userStore?.currentUserData?.govUserExtendedData) {\n        const { city, stateOrProvince, country } =\n          props.userStore?.currentUserData?.govUserExtendedData\n        locationValues = [city, stateOrProvince, country].filter(Boolean)\n      }\n\n      if (!locationValues.length) return null\n\n      return (\n        <div data-testid=\"location\">\n          <CRow>\n            <CCol>\n              {wrappedIcon('fa fa-location-arrow')}\n              {locationValues.join(', ')}\n            </CCol>\n          </CRow>\n        </div>\n      )\n    }\n\n    const renderYearsOfExperience = () => {\n      if (!props.userStore?.currentUserData?.govUserExtendedData?.govEmployeeSinceYear) return null\n\n      let yearsOfExperience = ''\n      const currentYear = new Date().getFullYear()\n      const experience =\n        currentYear - props.userStore.currentUserData.govUserExtendedData.govEmployeeSinceYear\n\n      if (experience <= 5) {\n        yearsOfExperience = '0-5'\n      } else if (experience > 5 && experience <= 10) {\n        yearsOfExperience = '6-10'\n      } else if (experience > 10 && experience <= 15) {\n        yearsOfExperience = '11-15'\n      } else if (experience > 15 && experience <= 20) {\n        yearsOfExperience = '16-20'\n      } else if (experience > 20) {\n        yearsOfExperience = '20+'\n      }\n      return (\n        <p className={'subtle'} data-testid=\"years-of-gov-service\">\n          Years of Gov. Service: {yearsOfExperience}\n        </p>\n      )\n    }\n    return (\n      <CCard className=\"ProfileDetailCard h-100\">\n        <CCardHeader component=\"h5\">User Detail</CCardHeader>\n        <CCardBody>\n          <div className=\"card-image-container\">\n            <UserAvatar user={props.userStore!.currentUserData!} />\n          </div>\n        </CCardBody>\n        <CCardFooter>\n          <CCardTitle>\n            <b>\n              {props.userStore?.currentUserData?.firstName}{' '}\n              {props.userStore?.currentUserData?.lastName}\n            </b>\n          </CCardTitle>\n          <CCardSubtitle className={'d-flex flex-column gap-1'}>\n            <p className={'subtle'}>{props.userStore?.currentUserData?.title}</p>\n            {isGovUser && (\n              <>\n                <p className={'subtle'}>\n                  {props.userStore?.currentUserData?.govUserExtendedData?.govUserOrganization.name}\n                </p>\n                {renderYearsOfExperience()}\n              </>\n            )}\n          </CCardSubtitle>\n          <CRow>\n            <CCol>\n              {wrappedIcon('far fa-envelope')}\n              {props.userStore?.currentUserData?.email}\n              {props.userStore?.currentUserData?.unconfirmedEmail && (\n                <CTooltip\n                  content={unconfirmedEmailMessage(\n                    props.userStore?.currentUserData?.unconfirmedEmail,\n                  )}\n                >\n                  <span>\n                    <i\n                      data-testid=\"unconfirmed-tooltip\"\n                      className=\"unconfirmed-icon fas fa-info-circle\"\n                    />\n                  </span>\n                </CTooltip>\n              )}\n            </CCol>\n          </CRow>\n          {!isGovUser && phoneSection()}\n          <CRow>\n            <CCol>\n              {wrappedIcon('far fa-clock')}\n              {timezone}\n            </CCol>\n          </CRow>\n          {isGovUser && renderLocation()}\n          {!isGovUser && socialMediaSection()}\n        </CCardFooter>\n      </CCard>\n    )\n  }),\n)\n","import React from 'react'\nimport { CCard, CCardBody, CCardHeader, CCardSubtitle, CCardTitle } from '@coreui/react'\nimport { AccountStore, ApplicationStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\n\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n  accountStore?: AccountStore\n}\nexport const AccountDetailCard = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.accountStore,\n)(\n  observer((props: TProps) => {\n    const wrappedIcon = (className: string | undefined) => {\n      if (className) {\n        return (\n          <div className=\"icon-wrapper\">\n            <i className={className} />\n          </div>\n        )\n      }\n      return undefined\n    }\n\n    return (\n      <>\n        <CCard className=\"ProfileDetailCard\">\n          <CCardHeader component=\"h5\">Account Detail</CCardHeader>\n          <CCardBody className=\"py-4\">\n            <CCardTitle className=\"pt-2\">\n              <b>{props.userStore?.currentAccountData?.name}</b>\n            </CCardTitle>\n            <CCardSubtitle className=\"pt-2 pb-3\">\n              {wrappedIcon('fas fa-id-badge')}\n              {props.userStore?.currentAccountData?.uniqueEntityId}\n            </CCardSubtitle>\n          </CCardBody>\n        </CCard>\n      </>\n    )\n  }),\n)\n","import { inject, observer } from 'mobx-react'\n\nimport { ApplicationStore, AccountStore, NotificationStore, UserStore } from '../../stores'\nimport { CustomModal, SuspensefulButton, validateLength } from '@mobilizeyourtech/vision-core-react'\nimport { CCol, CModalBody, CModalFooter } from '@coreui/react'\nimport { InviteUserForm } from '.'\nimport { useState } from 'react'\nimport { UserInviteData } from '../../stores/AccountStore'\nimport { validateEmail } from '../../lib/helpers/validation'\n\ntype TProps = {\n  accountStore?: AccountStore\n  notificationStore?: NotificationStore\n  userStore?: UserStore\n  isModalOpen: boolean\n  closeModal: () => void\n}\n\nexport const CreateModal = inject(\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.accountStore,\n  ApplicationStore.names.userStore,\n)(\n  observer((props: TProps) => {\n    const [formData, setFormData] = useState<Partial<UserInviteData>>({})\n    const [hasValidated, setHasValidated] = useState<boolean>(false)\n    const [isSubmitting, setIsSubmitting] = useState<boolean>(false)\n\n    const isSubmittable = (): boolean => {\n      let firstNameError = validateLength(formData.firstName, 2)\n      let lastNameError = validateLength(formData.lastName, 2)\n      let emailError = validateEmail(formData.email)\n\n      return !firstNameError && !lastNameError && !emailError\n    }\n\n    const handleSubmit = () => {\n      if (!isSubmittable()) {\n        return\n      } else {\n        const currentAccountId = props.userStore!.currentAccountData!.id\n        setHasValidated(true)\n        setIsSubmitting(true)\n        props\n          .accountStore!.inviteUserToAccount(currentAccountId, formData)\n          .then(() => {\n            setTimeout(() => {\n              setIsSubmitting(false)\n              props.notificationStore?.setNotificationMessage(\n                'User invited successfully.',\n                'success',\n                3000,\n              )\n              props.closeModal()\n              setFormData({})\n              setHasValidated(false)\n            }, 500)\n          })\n          .catch(() => {\n            setIsSubmitting(false)\n            props.notificationStore?.setNotificationMessage(\n              'Error sending invite; please try again.',\n              'danger',\n              3000,\n            )\n          })\n      }\n    }\n\n    return (\n      <CustomModal\n        data-testid=\"CustomModal\"\n        className=\"CustomModal\"\n        isModalOpen={props.isModalOpen}\n        onClose={() => props.closeModal()}\n        scrollable\n        headerContent={'Invite User'}\n      >\n        <CModalBody data-testid=\"modal-body-wrapper\">\n          <div>\n            <InviteUserForm\n              hasValidated={hasValidated}\n              onChange={(change: Partial<UserInviteData>) => {\n                setFormData(change)\n              }}\n              formData={formData}\n            />\n          </div>\n        </CModalBody>\n        <CModalFooter>\n          <CCol sm={12} className=\"text-end px-3 py-2 d-flex justify-content-end\">\n            <SuspensefulButton\n              isSuspended={isSubmitting}\n              onClick={handleSubmit}\n              disabled={!isSubmittable() || isSubmitting}\n              data-testid=\"submit-button\"\n              icon=\"fas fa-check\"\n            >\n              Submit\n            </SuspensefulButton>\n          </CCol>\n        </CModalFooter>\n      </CustomModal>\n    )\n  }),\n)\n","import { inject, observer } from 'mobx-react'\n\nimport { ApplicationStore, AccountStore, NotificationStore, UserStore } from '../../stores'\nimport { CustomModal, SuspensefulButton, validateLength } from '@mobilizeyourtech/vision-core-react'\nimport { CCol, CModalBody, CModalFooter } from '@coreui/react'\nimport { InviteUserForm } from '.'\nimport { useState } from 'react'\nimport { UserInviteData } from '../../stores/AccountStore'\nimport { InvitedUserData } from '../../stores'\nimport { validateEmail } from '../../lib/helpers/validation'\n\ntype TProps = {\n  accountStore?: AccountStore\n  notificationStore?: NotificationStore\n  userStore?: UserStore\n  isModalOpen: boolean\n  userInviteId: string | number\n  currentAccountId: string | number\n  formData: InvitedUserData\n  closeModal: () => void\n  onSubmit: () => void\n}\n\nexport const EditInviteModal = inject(\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.accountStore,\n  ApplicationStore.names.userStore,\n)(\n  observer((props: TProps) => {\n    const [formData, setFormData] = useState<Partial<UserInviteData>>(props.formData)\n    const [hasValidated, setHasValidated] = useState<boolean>(false)\n    const [isSubmitting, setIsSubmitting] = useState<boolean>(false)\n\n    const isSubmittable = (): boolean => {\n      let firstNameError = validateLength(formData.firstName, 2)\n      let lastNameError = validateLength(formData.lastName, 2)\n      let emailError = validateEmail(formData.email)\n\n      return !firstNameError && !lastNameError && !emailError\n    }\n\n    const handleSubmit = () => {\n      if (!isSubmittable()) return\n\n      setHasValidated(true)\n      setIsSubmitting(true)\n      props\n        .accountStore!.editUserInvite(props.currentAccountId, props.userInviteId!, {\n          firstName: formData.firstName,\n          lastName: formData.lastName,\n          email: formData.email,\n        })\n        .then(() => {\n          setIsSubmitting(false)\n          props.notificationStore?.setNotificationMessage(\n            'User invite updated successfully.',\n            'success',\n            3000,\n          )\n          props.onSubmit()\n        })\n        .catch(() => {\n          setIsSubmitting(false)\n          props.notificationStore?.setNotificationMessage(\n            'Unable to update invite, please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    return (\n      <CustomModal\n        data-testid=\"CustomModal\"\n        className=\"CustomModal\"\n        isModalOpen={props.isModalOpen}\n        onClose={props.closeModal}\n        scrollable\n        headerContent={'Edit Invite'}\n      >\n        <CModalBody data-testid=\"modal-body-wrapper\">\n          <div>\n            <InviteUserForm\n              hasValidated={hasValidated}\n              onChange={(change: Partial<UserInviteData>) => {\n                setFormData(change)\n              }}\n              formData={formData}\n            />\n          </div>\n        </CModalBody>\n        <CModalFooter>\n          <CCol sm={12} className=\"text-end px-3 py-2 d-flex justify-content-end\">\n            <SuspensefulButton\n              isSuspended={isSubmitting}\n              onClick={handleSubmit}\n              disabled={!isSubmittable() || isSubmitting}\n              data-testid=\"submit-button\"\n              icon=\"fas fa-check\"\n            >\n              Submit\n            </SuspensefulButton>\n          </CCol>\n        </CModalFooter>\n      </CustomModal>\n    )\n  }),\n)\n","import React from 'react'\nimport { CCol, CForm, CFormLabel, CRow } from '@coreui/react'\nimport { ValidatedCFormInput } from '../custom'\nimport { UserInviteData } from '../../stores/AccountStore'\nimport { validateLength } from '@mobilizeyourtech/vision-core-react'\nimport { validateEmail } from '../../lib/helpers/validation'\ntype TProps = {\n  hasValidated: boolean\n  formData: Partial<UserInviteData>\n  onChange: (change: Partial<UserInviteData>) => void\n  onSubmitted?: () => void\n}\n\nexport const InviteUserForm = (props: TProps) => {\n  const defaultCharLengthMessage = 'Must be a minimum of 2 characters'\n\n  return (\n    <section className=\"invite-user-form-container\" data-testid=\"invite-user-form\">\n      <CForm\n        validated={props.hasValidated}\n        className=\"needs-validation p-3\"\n        {...{ noValidate: true }}\n      >\n        <CRow className=\"py-2\">\n          <CCol className=\"ValidatedInput\">\n            <CFormLabel {...{ htmlFor: 'firstName' }}>First Name</CFormLabel>\n\n            <ValidatedCFormInput\n              onChange={(value) => props.onChange({ ...props.formData, firstName: value })}\n              value={props.formData.firstName}\n              id=\"firstName\"\n              name=\"firstName\"\n              placeholder=\"Enter First Name..\"\n              type=\"text\"\n              required\n              data-testid=\"firstName\"\n              validate={(v) => validateLength(v, 2)}\n              renderInvalidMessage={() => defaultCharLengthMessage}\n            />\n          </CCol>\n        </CRow>\n        <CRow className=\"py-2\">\n          <CCol>\n            <CFormLabel {...{ htmlFor: 'lastName' }}>Last Name</CFormLabel>\n            <ValidatedCFormInput\n              onChange={(value) => props.onChange({ ...props.formData, lastName: value })}\n              value={props.formData.lastName}\n              id=\"lastName\"\n              name=\"firstName\"\n              placeholder=\"Enter Last Name..\"\n              type=\"text\"\n              required\n              data-testid=\"lastName\"\n              validate={(v) => validateLength(v, 2)}\n              renderInvalidMessage={() => defaultCharLengthMessage}\n            />\n          </CCol>\n        </CRow>\n        <CRow className=\"py-2\">\n          <CCol className=\"pb-4\">\n            <CFormLabel {...{ htmlFor: 'email' }}>Email</CFormLabel>\n            <ValidatedCFormInput\n              onChange={(value) => props.onChange({ ...props.formData, email: value })}\n              value={props.formData.email}\n              type=\"email\"\n              id=\"email\"\n              name=\"email\"\n              placeholder=\"Enter Email..\"\n              autoComplete=\"email\"\n              required\n              data-testid=\"email\"\n              validate={(v) => validateEmail(v)}\n              renderInvalidMessage={() => 'Please Enter Valid Email'}\n            />\n          </CCol>\n        </CRow>\n      </CForm>\n    </section>\n  )\n}\n","import { CCard, CCardBody, CCardText, CCardFooter, CBadge } from '@coreui/react'\nimport {\n  ActionConfirmationModal,\n  ActionDropdown,\n  ActionDropdownMenuOption,\n  Avatar,\n} from '@mobilizeyourtech/vision-core-react'\nimport { inject, observer } from 'mobx-react'\nimport React, { useState } from 'react'\nimport { AccountStore, NotificationStore, ApplicationStore } from '../../stores'\nimport { InvitedUserData, UserData } from '../../stores/UserStore'\nimport { EditInviteModal } from './EditInviteModal'\n\nexport interface MenuOption extends ActionDropdownMenuOption {\n  callback: () => void\n}\n\ntype TProps = {\n  accountStore?: AccountStore\n  notificationStore?: NotificationStore\n  user: UserData | InvitedUserData\n  currentAccountId: string | number\n  onSubmit: () => void\n}\n\nexport const UserDetailCard = inject(\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.accountStore,\n)(\n  observer((props: TProps) => {\n    const [isEditing, setIsEditing] = useState<boolean>(false)\n    const [actionType, setActionType] = useState<string | undefined>(undefined)\n\n    const isInvitedUser = (user: UserData | InvitedUserData): user is InvitedUserData => {\n      return 'userInviteId' in user && !!user['userInviteId']\n    }\n    const id = isInvitedUser(props.user) ? props.user.userInviteId : props.user.id\n\n    const hasExpired = (dateString: string) => {\n      var currentDate = new Date()\n      var expirationDate = new Date(dateString)\n\n      return currentDate > expirationDate\n    }\n\n    const userInviteExpired =\n      isInvitedUser(props.user) &&\n      props.user.inviteTokenExpiry &&\n      hasExpired(props.user.inviteTokenExpiry)\n        ? true\n        : false\n\n    const determineRoute = (actionType: string) => {\n      let path\n      if (actionType === 'resend') {\n        path = props.accountStore?.resendUserInvite(props.currentAccountId, id)\n      } else if (actionType === 'delete') {\n        path = props.accountStore?.deleteUserInvite(props.currentAccountId, id)\n      }\n      return path\n    }\n\n    const determineMessage = (actionType: string) => {\n      let message\n      if (actionType === 'resend') {\n        message = 'User invite resent successfully.'\n      } else if (actionType === 'delete') {\n        message = 'User invite deleted successfully.'\n      }\n      return message\n    }\n\n    const resendOrDelete = (actionType: string) => {\n      determineRoute(actionType)!\n        .then(() => {\n          props.notificationStore?.setNotificationMessage(\n            determineMessage(actionType),\n            'success',\n            3000,\n          )\n          props.onSubmit()\n        })\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            `Unable to ${actionType} user invite, please try again later`,\n            'danger',\n            3000,\n          )\n          setActionType(undefined)\n        })\n    }\n\n    const menuOptions: Array<MenuOption> = [\n      {\n        id: 0,\n        name: 'Resend Invite',\n        iconClassName: 'fas fa-redo',\n        callback: () => {\n          setActionType('resend')\n        },\n      },\n      {\n        id: 1,\n        name: 'Edit Invite',\n        iconClassName: 'fas fa-pen',\n        callback: () => setIsEditing(true),\n      },\n      {\n        id: 2,\n        name: 'Delete Invite',\n        iconClassName: 'fa fa-trash',\n        callback: () => {\n          setActionType('delete')\n        },\n      },\n    ]\n\n    return (\n      <CCard\n        data-testid={`userDetailCard-${props.user.email}`}\n        className=\"user-card m-2 d-flex flex-column align-items-center justify-content-between text-center py-3\"\n      >\n        <CCardBody className=\"user-card-body\">\n          {isInvitedUser(props.user) && (\n            <div className=\"invited-user-options\">\n              <div className=\"badge-container\">\n                <CBadge\n                  data-testid={`user-invite-badge-${props.user.email}`}\n                  color={userInviteExpired ? 'secondary' : 'primary'}\n                  className=\"text-wrap text-md-start\"\n                >\n                  {userInviteExpired ? 'Invite Expired' : 'Invited'}\n                </CBadge>\n              </div>\n              <ActionDropdown\n                data-testid={`user-invite-dropdown-${props.user.email}`}\n                menuOptions={menuOptions}\n                onSelect={(option: MenuOption) => option.callback()}\n                dropdownOptions={{ iconClassName: '', text: '' }}\n              />\n            </div>\n          )}\n          {!!actionType && (\n            <ActionConfirmationModal\n              alignment=\"center\"\n              isModalOpen={!!actionType}\n              actionText={`Are you sure you'd like to ${actionType} this invite?`}\n              onClose={() => setActionType(undefined)}\n              onSubmit={() => {\n                resendOrDelete(actionType)\n              }}\n            />\n          )}\n          {isEditing && isInvitedUser(props.user) && (\n            <EditInviteModal\n              data-testid=\"invite-user-modal\"\n              isModalOpen={isEditing}\n              closeModal={() => setIsEditing(false)}\n              userInviteId={id}\n              currentAccountId={props.currentAccountId}\n              formData={props.user}\n              onSubmit={() => props.onSubmit()}\n            />\n          )}\n          <div className=\"avatar-container d-flex justify-content-center align-items-center\">\n            <Avatar\n              className=\"user-card-avatar\"\n              src={!isInvitedUser(props.user) ? props.user.headshot?.path : ''}\n              prefix={props.user.firstName}\n              suffix={props.user.lastName}\n            />\n          </div>\n          <h5 className=\"user-name pt-3 pb-1\">\n            {props.user.firstName} {}\n            {props.user.lastName}\n          </h5>\n          <CCardText className=\"user-title\">\n            {!isInvitedUser(props.user) ? props.user.title : ''}\n          </CCardText>\n          {!isInvitedUser(props.user) && <p>Zone: {props.user.timezone}</p>}\n        </CCardBody>\n        <CCardFooter className=\"user-card-footer pt-3\">\n          <div className=\"user-value-with-icon py-1\">\n            <i className=\"user-value-icon far fa-envelope\" />\n            <p className=\"truncate-icon-value\">{props.user.email}</p>\n          </div>\n          {!isInvitedUser(props.user) && props.user.cellPhone && (\n            <div className=\"user-value-with-icon py-1\">\n              <i className=\"user-value-icon fas fa-phone-alt\"></i>\n              <p className=\"truncate-icon-value\">{props.user.cellPhone}</p>\n            </div>\n          )}\n          {!isInvitedUser(props.user) && props.user.workPhone && (\n            <div className=\"user-value-with-icon py-1\">\n              <i className=\"user-value-icon fas fa-phone-alt\"></i>\n              <p className=\"truncate-icon-value\">{props.user.workPhone}</p>\n            </div>\n          )}\n        </CCardFooter>\n      </CCard>\n    )\n  }),\n)\n","import React, { Dispatch, SetStateAction, useEffect, useState } from 'react'\nimport { CCol, CContainer, CForm, CFormCheck, CRow } from '@coreui/react'\nimport { ApplicationStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { hasGovRole } from '../../stores/UserStore'\n\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n}\nexport const UserSettingsSection = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const isGovUser = hasGovRole(props.userStore?.currentUserData!)\n\n    const [allowMessageRequests, setAllowMessageRequests] = useState<boolean | undefined>(undefined)\n    const [allowInAppNotifications, setAllowInApp] = useState<boolean | undefined>(undefined)\n    const [allowByEmailNotifications, setAllowByEmail] = useState<boolean | undefined>(undefined)\n\n    const [isLoadingMessagePermission, setIsLoadingMessagePermission] = useState<boolean>(false)\n    const [isLoadingInAppNotification, setIsLoadingInAppNotification] = useState<boolean>(false)\n    const [isLoadingByEmailNotification, setIsLoadingByEmailNotification] = useState<boolean>(false)\n\n    useEffect(() => {\n      props.userStore\n        ?.retrieveCurrentUserData(\n          'govUserSetting,userEmailNotificationSetting,userAppNotificationSetting',\n        )\n        .then((data) => {\n          let allowMessageRequests =\n            ('govUserSetting' in data && data.govUserSetting.allowMessageRequests) || false\n          isGovUser && setAllowMessageRequests(allowMessageRequests)\n          setAllowInApp(data.userAppNotificationSetting?.newChatMessage || false)\n          setAllowByEmail(data.userEmailNotificationSetting?.newChatMessage || false)\n        })\n        .catch((e) => {\n          props.notificationStore?.setNotificationMessage(\n            'Unable to get user settings. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n\n      return () => {}\n    }, [])\n\n    const messagePermissionOnClick = () => {\n      handleClick(setIsLoadingMessagePermission, { allowMessageRequests: !allowMessageRequests })\n    }\n\n    const inAppNotificationOnClick = () => {\n      handleClick(setIsLoadingInAppNotification, {\n        allowInAppNotifications: !allowInAppNotifications,\n      })\n    }\n\n    const byEmailOnClick = () => {\n      handleClick(setIsLoadingByEmailNotification, {\n        allowByEmailNotifications: !allowByEmailNotifications,\n      })\n    }\n\n    const handleClick = async (\n      setIsLoadingFunction: Dispatch<SetStateAction<boolean>>,\n      params: {\n        allowMessageRequests?: boolean\n        allowInAppNotifications?: boolean\n        allowByEmailNotifications?: boolean\n      },\n    ) => {\n      setIsLoadingFunction(true)\n\n      props\n        .userStore!.updateUserSettings(params)\n        .then((data) => {\n          isGovUser && setAllowMessageRequests(data.govUserSetting?.allowMessageRequests)\n          setAllowInApp(data.userAppNotificationSetting!.newChatMessage!)\n          setAllowByEmail(data.userEmailNotificationSetting!.newChatMessage!)\n        })\n        .catch((e) => {\n          props.notificationStore?.setNotificationMessage(\n            'Unable to update user settings. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n        .finally(() => {\n          setIsLoadingFunction(false)\n        })\n    }\n    let MessagePermissionsCheckbox = (props: TProps) => {\n      return (\n        <CForm>\n          <CFormCheck\n            data-testid=\"message-permissions-checkbox\"\n            type=\"checkbox\"\n            name=\"message-permissions-checkbox\"\n            id=\"message-permissions-checkbox\"\n            label=\"Allow New Company Messages\"\n            checked={allowMessageRequests}\n            onClick={messagePermissionOnClick}\n            onChange={() => {}} //to satisfy CoreUI minimum.\n            disabled={isLoadingMessagePermission}\n          />\n        </CForm>\n      )\n    }\n    let InAppNotificationsCheckbox = (props: TProps) => {\n      return (\n        <CForm>\n          <CFormCheck\n            data-testid=\"in-app-notification-checkbox\"\n            type=\"checkbox\"\n            name=\"in-app-notification-checkbox\"\n            id=\"in-app-notification-checkbox\"\n            label=\"Notify Me In App On New Chat Messages\"\n            checked={allowInAppNotifications}\n            onClick={inAppNotificationOnClick}\n            onChange={() => {}} //to satisfy CoreUI minimum.\n            disabled={isLoadingInAppNotification}\n          />\n        </CForm>\n      )\n    }\n    let ByEmailNotificationsCheckbox = (props: TProps) => {\n      return (\n        <CForm>\n          <CFormCheck\n            data-testid=\"by-email-notification-checkbox\"\n            type=\"checkbox\"\n            name=\"by-email-notification-checkbox\"\n            id=\"by-email-notification-checkbox\"\n            label=\"Notify Me By Email On New Chat Messages\"\n            checked={allowByEmailNotifications}\n            onClick={byEmailOnClick}\n            onChange={() => {}} //to satisfy CoreUI minimum.\n            disabled={isLoadingByEmailNotification}\n          />\n        </CForm>\n      )\n    }\n\n    let MessagePermissionsSettings = (props: TProps) => {\n      return (\n        <>\n          <h5 className=\"mt-2\">Privacy</h5>\n          <div className=\"gov-privacy-settings\">\n            <MessagePermissionsCheckbox {...props} />\n          </div>\n        </>\n      )\n    }\n\n    let NotificationsSettings = (props: TProps) => {\n      return (\n        <>\n          <h5 className=\"mt-2\">Notifications</h5>\n          <div className=\"gov-notifications-settings\">\n            <InAppNotificationsCheckbox {...props} />\n            <ByEmailNotificationsCheckbox {...props} />\n          </div>\n        </>\n      )\n    }\n\n    let GovUserSettings = (props: TProps) => {\n      return (\n        <CRow className=\"action-row\">\n          <CCol>\n            <MessagePermissionsSettings {...props} />\n          </CCol>\n        </CRow>\n      )\n    }\n\n    let UserSettings = (props: TProps) => {\n      return (\n        <CRow className=\"action-row\">\n          <CCol>\n            <NotificationsSettings {...props} />\n          </CCol>\n        </CRow>\n      )\n    }\n\n    return (\n      <CContainer className=\"p-0\" data-testid=\"user-settings\">\n        {isGovUser && <GovUserSettings {...props} />}\n        <UserSettings {...props} />\n      </CContainer>\n    )\n  }),\n)\n","import React from 'react'\nimport { CCard, CCardBody, CCardHeader } from '@coreui/react'\nimport { ApplicationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { UserSettingsSection } from './UserSettingsSection'\n\ntype TProps = {\n  userStore?: UserStore\n}\n\nexport const UserSettingsCard = inject(ApplicationStore.names.userStore)(\n  observer((props: TProps) => {\n    return (\n      <CCard className=\"UserSettingsCard\">\n        <CCardHeader className=\"py-2\" component=\"h5\">\n          Settings\n        </CCardHeader>\n        <CCardBody className=\"py-1\">\n          <UserSettingsSection />\n        </CCardBody>\n      </CCard>\n    )\n  }),\n)\n","import { CCard, CCardBody, CCardText, CTooltip } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport { AccountStore, NotificationStore, ApplicationStore } from '../../../stores'\nimport { GovUserData } from '../../../stores/UserStore'\nimport { visionVisibilityIcon } from '../../../assets/brand/vision_visibility_icon'\nimport ReactHtmlParser from 'react-html-parser'\nimport { Link } from 'react-router-dom'\nimport { UserAvatar } from '../../Molecules/Avatars/UserAvatar/UserAvatar'\n\ntype TProps = {\n  accountStore?: AccountStore\n  notificationStore?: NotificationStore\n  user: GovUserData\n}\n\nexport const GovUserDetailCard = inject(\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.accountStore,\n)(\n  observer((props: TProps) => {\n    const avatar = () => {\n      return (\n        <div className=\"avatar-container d-flex justify-content-center align-items-center\">\n          <UserAvatar className=\"gov-user-card-avatar\" user={props.user} displayIsActive />\n        </div>\n      )\n    }\n\n    const userInfo = () => {\n      const currentUserAccountChatThreadId =\n        props.user.chatThreadIdsWithCurrentUserAccount &&\n        props.user.chatThreadIdsWithCurrentUserAccount.length > 0 &&\n        props.user.chatThreadIdsWithCurrentUserAccount[0]\n      return (\n        <div className=\"user-info-container\" data-testid=\"user-info-container\">\n          <div\n            className={\n              'gov-user-name pt-3 pb-1 d-flex justify-content-center align-items-center gap-2'\n            }\n          >\n            <h5 className=\"text-truncate mb-0\">\n              {props.user.firstName} {props.user.lastName}\n            </h5>\n            {props.user.govUserExtendedData.visionUserId && (\n              <CTooltip content={'Verified VISION user'}>\n                <div className=\"d-flex justify-content-center align-items-center\">\n                  {visionVisibilityIcon()}\n                </div>\n              </CTooltip>\n            )}\n            {currentUserAccountChatThreadId && (\n              <Link\n                data-testid=\"current-user-account-chat-link\"\n                className=\"chat-link clickable\"\n                to={`/chat?threadId=${currentUserAccountChatThreadId}`}\n                title=\"Go to chat\"\n              >\n                <i className=\"fas fa-comment chat-icon\" />\n              </Link>\n            )}\n          </div>\n\n          <CCardText className=\"gov-user-title pb-1 text-truncate\">{props.user.title}</CCardText>\n          <CCardText className=\"gov-user-title pb-1 text-truncate\">\n            {props.user.govUserExtendedData.govUserOrganization.longName}\n          </CCardText>\n        </div>\n      )\n    }\n\n    const numTechTypesShown: number = 1\n\n    const userTechnologyTypes = () => {\n      let techTypeNames = props.user.technologyTypes\n        ?.slice(0, numTechTypesShown)\n        .map((technologyType) => {\n          return technologyType.name\n        })\n\n      return (\n        <div className=\"gov-user-tech-types\">\n          <p className=\"ms-auto subtle\">\n            {techTypeNames.join(', ')}\n            {techTypesNotShown()}\n          </p>\n        </div>\n      )\n    }\n\n    const techTypesNotShown = (): string => {\n      if (!props.user.technologyTypes) return ''\n      let techTypesNotShownCount = props.user.technologyTypes.length - numTechTypesShown\n\n      if (techTypesNotShownCount > 0) {\n        return ` and ${techTypesNotShownCount} other(s)`\n      }\n\n      return ''\n    }\n\n    const renderCardContent = () => {\n      let content\n      if (props.user.searchMetadata?.highlight) {\n        content = ReactHtmlParser(props.user.searchMetadata.highlight)\n      } else {\n        content = ReactHtmlParser(props.user.govUserExtendedData.profileDetail)\n      }\n\n      return (\n        <div className=\"line-clamp\" data-testid=\"detail-content\">\n          {content}\n        </div>\n      )\n    }\n\n    return (\n      <CCard\n        data-testid={`gov-user-detail-card-${props.user.email}`}\n        className=\"GovUserDetailCard d-flex flex-column justify-content-between text-center py-3\"\n      >\n        <CCardBody>\n          {avatar()}\n          {userInfo()}\n          {renderCardContent()}\n          {userTechnologyTypes()}\n        </CCardBody>\n      </CCard>\n    )\n  }),\n)\n","import axios from 'axios'\nimport { AuthStore, NotificationStore, UserData } from './'\nimport {\n  CountResponse,\n  Data,\n  GovUserOrganizationParams,\n  PaginatedSearchableParams,\n  PaginationParams,\n  SearchableParams,\n  ServerPageData,\n} from '../lib/types/Params'\nimport { IBusinessClassifications, INaicsCodes } from '../components/form/fragments/listing'\nimport { Location } from 'history'\n\nimport { extractRestfulError, VisionRequestInterceptedError } from '../lib/errors/utils'\nimport { AccountData } from './UserStore'\nimport {\n  GenericLabeledItemResponse,\n  NamedServerArtifact,\n  NamedWithLabelServerArtifact,\n  RestfulMessage,\n  SubPageData,\n} from '../lib/types'\nimport { setRedirectSessionVariables } from '../lib/helpers/sessionHelpers'\n\nexport type SocialMediaTypeResponse = {\n  id: number\n  name: string\n}\n\nexport interface GovUserClassificationCategory {\n  id: number\n  name: string\n}\n\nexport interface GovUserClassification {\n  id: number\n  name: string\n  description: string\n  createdAt: string\n  updatedAt: string\n  govUserClassificationCategoryId: number\n  govUserClassificationCategory?: GovUserClassificationCategory\n}\n\nexport type ChatMessageResponse = {\n  id: number\n  userId: number\n  chatThreadId: number\n  content: string\n  user: UserData\n  createdAt: string\n  updatedAt: string\n}\n\nexport interface ChatParticipantIdentifiers {\n  participantType: string\n  participantId: number\n}\n\nexport interface ChatParticipantResponse extends ChatParticipantIdentifiers {\n  chatThreadId: number\n  participant: UserData | AccountData\n}\n\nexport const isAccountData = (data: UserData | AccountData): data is AccountData => {\n  return 'name' in data\n}\n\nexport const isUserParticipant = (participant: ChatParticipantResponse) =>\n  participant.participantType === 'User'\nexport const isAccountParticipant = (participant: ChatParticipantResponse) =>\n  participant.participantType === 'Account'\n\nexport type ChatThreadResponse = {\n  id: number\n  participants: Array<ChatParticipantResponse>\n  currentUserUnreadCount: number\n  userChatMessages: SubPageData<ChatMessageResponse> | string\n  lastMessageSeenAt: string\n  createdAt: string\n  status: string\n}\n\nexport interface GovUserOrganizationResponse extends NamedWithLabelServerArtifact {\n  shortName?: string\n  longName: string\n  category?: string\n}\n\nexport interface TechnologyTypeResponse extends NamedServerArtifact {\n  isDeprecated: boolean\n}\n\nexport class ServerStore {\n  protected authStore: AuthStore\n  protected notificationStore: NotificationStore\n\n  constructor(authStore: AuthStore, notificationStore: NotificationStore) {\n    this.authStore = authStore\n    this.notificationStore = notificationStore\n  }\n\n  public server() {\n    const instance = axios.create({\n      headers: {\n        'Cache-Control': 'no-store, no cache, must-revalidate',\n        Authorization: this.authStore.getJWT() || '',\n        Accept: 'application/json',\n      },\n    })\n    // Leaving this comment here,\n    // this is a handy debug tool to use if some network error is occurring in a test due to lack of mock\n    // and we need to track it down\n    // instance.interceptors.response.use(undefined, function (error) {\n    //   const bp = true\n    //   console.log(error)\n    // })\n\n    instance.interceptors.response.use((response) => response, this.errorInterceptor)\n    return instance\n  }\n\n  public getNaicsCodes(\n    params: PaginatedSearchableParams | {} = {},\n  ): Promise<ServerPageData<INaicsCodes>> {\n    return this.server()\n      .get('/api/v1/naics_codes', {\n        params,\n      })\n      .then(({ data }) => data as ServerPageData<INaicsCodes>)\n  }\n\n  public getBusinessClassifications(\n    params: SearchableParams,\n  ): Promise<Data<IBusinessClassifications>> {\n    return this.server()\n      .get('/api/v1/business_classifications', {\n        params,\n      })\n      .then((response) => response as Data<IBusinessClassifications>)\n  }\n\n  public getTechnologyTypes(\n    params: PaginatedSearchableParams & { ids?: string },\n  ): Promise<ServerPageData<TechnologyTypeResponse>> {\n    return this.server()\n      .get('/api/v1/technology_types', {\n        params,\n      })\n      .then(({ data }) => data as ServerPageData<TechnologyTypeResponse>)\n  }\n\n  public getAwardsPhases = async (\n    params: PaginationParams,\n  ): Promise<ServerPageData<GenericLabeledItemResponse>> => {\n    return this.server()\n      .get('/api/v1/phases', { params })\n      .then(({ data }) => data)\n  }\n\n  public getChatThreadMessages(\n    id: number,\n    params: PaginationParams,\n  ): Promise<ServerPageData<ChatMessageResponse>> {\n    return this.server()\n      .get(`/api/v1/chat_threads/${id.toString()}/user_chat_messages`, { params: params })\n      .then(({ data }) => data)\n  }\n\n  public getChatThread(id: number, eager?: string): Promise<ChatThreadResponse> {\n    return this.server()\n      .get(`/api/v1/chat_threads/${id}`, { params: { eager } })\n      .then(({ data }) => data)\n  }\n\n  public getChatThreads({\n    params,\n    eager,\n    sortThreadId,\n  }: {\n    params: PaginationParams\n    eager?: string\n    sortThreadId?: number\n  }): Promise<ServerPageData<ChatThreadResponse>> {\n    return this.server()\n      .get(`/api/v1/current_user/chat/threads`, {\n        params: {\n          page: params.page,\n          perPage: params.perPage,\n          eager: eager,\n          sortThreadId: sortThreadId,\n        },\n      })\n      .then(({ data }) => data as ServerPageData<ChatThreadResponse>)\n  }\n\n  public pauseChatThread(id: number): Promise<ChatThreadResponse> {\n    return this.server()\n      .patch(`/api/v1/chat_threads/${id}/pause`)\n      .then(({ data }) => data)\n  }\n\n  public unpauseChatThread(id: number): Promise<ChatThreadResponse> {\n    return this.server()\n      .patch(`/api/v1/chat_threads/${id}/unpause`)\n      .then(({ data }) => data)\n  }\n\n  public findChatThreadByParticipants(\n    participants: Array<ChatParticipantIdentifiers>,\n  ): Promise<ChatThreadResponse | undefined> {\n    return this.server()\n      .post(`/api/v1/chat_threads/find`, { participants })\n      .then(({ data }) => data)\n  }\n\n  public createChatThread(\n    participants: Array<ChatParticipantIdentifiers>,\n    initialMessage: string,\n  ): Promise<ChatThreadResponse> {\n    return this.server()\n      .post(`/api/v1/chat_threads`, {\n        participants,\n        initialMessages: [{ content: initialMessage }],\n      })\n      .then(({ data }) => data)\n  }\n\n  public getUnreadMessagesCount(): Promise<CountResponse> {\n    return this.server()\n      .get('/api/v1/current_user/chat/unread_messages_count')\n      .then(({ data }) => data)\n  }\n\n  public getSocialMediaTypes(): Promise<Array<SocialMediaTypeResponse>> {\n    return this.server()\n      .get<Array<SocialMediaTypeResponse>>('/api/v1/social_media_types')\n      .then(({ data }) => data)\n  }\n\n  public getGovUserOrganizations(\n    params: GovUserOrganizationParams,\n  ): Promise<ServerPageData<GovUserOrganizationResponse>> {\n    return this.server()\n      .get('/api/v1/gov_user_organizations', {\n        params,\n      })\n      .then(({ data }) => data as ServerPageData<GovUserOrganizationResponse>)\n  }\n\n  public getGovUserClassifications = async (\n    params: PaginatedSearchableParams & { eager?: string; ids?: string },\n  ): Promise<ServerPageData<GovUserClassification>> => {\n    return this.server()\n      .get('/api/v1/gov/user_classifications', {\n        params: { ...params },\n      })\n      .then(({ data }) => data as ServerPageData<GovUserClassification>)\n  }\n\n  public checkUniqueEntity(uniqueEntityId: string): Promise<any | undefined> {\n    return this.server()\n      .get<RestfulMessage>('/api/v1/accounts/check_unique_entity', { params: { uniqueEntityId } })\n      .then((res) => {\n        if (res.status === 204) {\n          return undefined\n        }\n        return res.data\n      })\n  }\n\n  public errorInterceptor = async (error: any) => {\n    const currentLocation = {\n      pathname: window.location.pathname,\n      search: window.location.search,\n    } as Location\n\n    if (error.response?.status === 401) {\n      const err = extractRestfulError(error)\n      if (err) {\n        // Our custom error response format\n        switch (err.error) {\n          case 'ExpiredToken':\n            setRedirectSessionVariables(currentLocation)\n            this.forceLogoutWithMessage('Your session has expired, please sign in again.')\n            throw new VisionRequestInterceptedError(err.error)\n\n          case 'InvalidToken':\n          case 'MissingToken':\n          case 'DeviseGeneral':\n            setRedirectSessionVariables(currentLocation)\n            this.forceLogoutWithMessage('Please sign in.')\n            throw new VisionRequestInterceptedError(err.error)\n\n          case 'UnconfirmedEmail':\n            if (this.authStore.JWT) {\n              this.redirectWithMessage('/confirmation_instructions', 'Please confirm your email.', [\n                '/confirm_email',\n              ])\n            } else if (error.config.headers['X-User-Email']) {\n              let buff = Buffer.from(error.config.headers['X-User-Email'])\n              let base64data = buff.toString('base64')\n\n              this.redirectWithMessage(\n                `/confirmation_instructions?key=${base64data}`,\n                'Please confirm your email.',\n                ['/confirm_email'],\n              )\n            } else {\n              this.redirectWithMessage('/confirmation_instructions', 'Please confirm your email.', [\n                '/confirm_email',\n              ])\n            }\n            throw new VisionRequestInterceptedError(err.error)\n\n          case 'MissingTermsPrivacy':\n            setRedirectSessionVariables(currentLocation)\n            this.redirectWithMessage('/sign_terms', undefined)\n            throw new VisionRequestInterceptedError(err.error)\n\n          default:\n            break\n        }\n      }\n    }\n    throw error\n  }\n\n  private forceLogoutWithMessage = (message: string) => {\n    this.authStore.setJWT(null)\n    this.notificationStore.setNotificationMessage(message, 'info', 3000, true)\n  }\n\n  private redirectWithMessage = (\n    path: string,\n    message: string | undefined,\n    unlessPaths?: string[],\n  ) => {\n    if (\n      window.location.pathname !== path &&\n      (unlessPaths ? unlessPaths?.every((p) => p !== window.location.pathname) : true)\n    ) {\n      window.location.replace(path)\n      this.notificationStore.setNotificationMessage(message, 'info', 3000, true)\n    }\n  }\n}\n","export const visionVisibilityIcon = (className = undefined) => {\n  return (\n    <svg\n      className={className}\n      width=\"18\"\n      height=\"18\"\n      viewBox=\"0 0 16 16\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <g clipPath=\"url(#clip0_101_21)\">\n        <path\n          className=\"icon-path\"\n          fillRule=\"evenodd\"\n          clipRule=\"evenodd\"\n          d=\"M1.93211 5.4866C1.35405 4.49162 1.49107 3.19524 2.34316 2.34315C3.19525 1.49106 4.49162 1.35404 5.4866 1.9321C5.7814 0.819795 6.79497 0 8.00001 0C9.20504 0 10.2186 0.819791 10.5134 1.93209C11.5084 1.35404 12.8048 1.49106 13.6568 2.34314C14.5089 3.19524 14.646 4.49162 14.0679 5.4866C15.1802 5.7814 16 6.79497 16 8.00001C16 9.20504 15.1802 10.2186 14.0679 10.5134C14.646 11.5084 14.5089 12.8048 13.6569 13.6569C12.8048 14.5089 11.5084 14.646 10.5134 14.0679C10.2186 15.1802 9.20504 16 8 16C6.79496 16 5.7814 15.1802 5.48659 14.0679C4.49162 14.646 3.19524 14.5089 2.34315 13.6568C1.49106 12.8048 1.35404 11.5084 1.93209 10.5134C0.819796 10.2186 6.03256e-06 9.20504 6.08523e-06 8.00001C6.13791e-06 6.79497 0.819806 5.7814 1.93211 5.4866Z\"\n          fill=\"#0D6EFD\"\n        />\n        <path\n          d=\"M8.36429 7.46111L9.96443 3.75509L10.1914 3.24002H9.70845L7.71657 5.87652L5.6853 8.53789L5.68427 8.53893H7.63573L6.03559 12.246L5.80966 12.76H6.29157L8.28345 10.1235L10.3147 7.46215L10.3158 7.46111H8.36429Z\"\n          fill=\"white\"\n        />\n      </g>\n      <defs>\n        <clipPath id=\"clip0_101_21\">\n          <rect width=\"16\" height=\"16\" fill=\"white\" />\n        </clipPath>\n      </defs>\n    </svg>\n  )\n}\n","export type TRegion = {\n  long: string\n  short: string\n}\n\nexport const isTRegion = (value: any): value is TRegion => {\n  return !!(value && value.long && value.short)\n}\n\nexport type TCountry = {\n  long: string\n  short: string\n  regions: Array<TRegion>\n}\n\nexport const isTCountry = (value: any): value is TCountry => {\n  return !!(value && value.long && value.short && value.regions)\n}\n\nexport const isoUSStateCodes: Array<string> = [\n  'AL',\n  'AK',\n  'AZ',\n  'AR',\n  'CA',\n  'CO',\n  'CT',\n  'DE',\n  'FL',\n  'GA',\n  'HI',\n  'ID',\n  'IL',\n  'IN',\n  'IA',\n  'KS',\n  'KY',\n  'LA',\n  'ME',\n  'MD',\n  'MA',\n  'MI',\n  'MN',\n  'MS',\n  'MO',\n  'MT',\n  'NE',\n  'NV',\n  'NH',\n  'NJ',\n  'NM',\n  'NY',\n  'NC',\n  'ND',\n  'OH',\n  'OK',\n  'OR',\n  'PA',\n  'RI',\n  'SC',\n  'SD',\n  'TN',\n  'TX',\n  'UT',\n  'VT',\n  'VA',\n  'WA',\n  'WV',\n  'WI',\n  'WY',\n]\n\nexport const countryRegionData: Array<TCountry> = [\n  {\n    long: 'Afghanistan',\n    short: 'AF',\n    regions: [\n      {\n        long: 'Badakhshan',\n        short: 'BDS',\n      },\n      {\n        long: 'Badghis',\n        short: 'BDG',\n      },\n      {\n        long: 'Baghlan',\n        short: 'BGL',\n      },\n      {\n        long: 'Balkh',\n        short: 'BAL',\n      },\n      {\n        long: 'Bamyan',\n        short: 'BAM',\n      },\n      {\n        long: 'Daykundi',\n        short: 'DAY',\n      },\n      {\n        long: 'Farah',\n        short: 'FRA',\n      },\n      {\n        long: 'Faryab',\n        short: 'FYB',\n      },\n      {\n        long: 'Ghazni',\n        short: 'GHA',\n      },\n      {\n        long: 'Ghor',\n        short: 'GHO',\n      },\n      {\n        long: 'Helmand',\n        short: 'HEL',\n      },\n      {\n        long: 'Herat',\n        short: 'HER',\n      },\n      {\n        long: 'Jowzjan',\n        short: 'JOW',\n      },\n      {\n        long: 'Kabul',\n        short: 'KAB',\n      },\n      {\n        long: 'Kandahar',\n        short: 'KAN',\n      },\n      {\n        long: 'Kapisa',\n        short: 'KAP',\n      },\n      {\n        long: 'Khost',\n        short: 'KHO',\n      },\n      {\n        long: 'Kunar',\n        short: 'KNR',\n      },\n      {\n        long: 'Kunduz',\n        short: 'KDZ',\n      },\n      {\n        long: 'Laghman',\n        short: 'LAG',\n      },\n      {\n        long: 'Logar',\n        short: 'LOW',\n      },\n      {\n        long: 'Maidan Wardak',\n        short: 'WAR',\n      },\n      {\n        long: 'Nangarhar',\n        short: 'NAN',\n      },\n      {\n        long: 'Nimruz',\n        short: 'NIM',\n      },\n      {\n        long: 'Nuristan',\n        short: 'NUR',\n      },\n      {\n        long: 'Paktia',\n        short: 'PIA',\n      },\n      {\n        long: 'Paktika',\n        short: 'PKA',\n      },\n      {\n        long: 'Panjshir',\n        short: 'PAN',\n      },\n      {\n        long: 'Parwan',\n        short: 'PAR',\n      },\n      {\n        long: 'Samangan',\n        short: 'SAM',\n      },\n      {\n        long: 'Sar-e Pol',\n        short: 'SAR',\n      },\n      {\n        long: 'Takhar',\n        short: 'TAK',\n      },\n      {\n        long: 'Urozgan',\n        short: 'ORU',\n      },\n      {\n        long: 'Zabul',\n        short: 'ZAB',\n      },\n    ],\n  },\n  {\n    long: 'Åland Islands',\n    short: 'AX',\n    regions: [\n      {\n        long: 'Brändö',\n        short: 'BR',\n      },\n      {\n        long: 'Eckerö',\n        short: 'EC',\n      },\n      {\n        long: 'Finström',\n        short: 'FN',\n      },\n      {\n        long: 'Föglö',\n        short: 'FG',\n      },\n      {\n        long: 'Geta',\n        short: 'GT',\n      },\n      {\n        long: 'Hammarland',\n        short: 'HM',\n      },\n      {\n        long: 'Jomala',\n        short: 'JM',\n      },\n      {\n        long: 'Kumlinge',\n        short: 'KM',\n      },\n      {\n        long: 'Kökar',\n        short: 'KK',\n      },\n      {\n        long: 'Lemland',\n        short: 'LE',\n      },\n      {\n        long: 'Lumparland',\n        short: 'LU',\n      },\n      {\n        long: 'Mariehamn',\n        short: 'MH',\n      },\n      {\n        long: 'Saltvik',\n        short: 'SV',\n      },\n      {\n        long: 'Sottunga',\n        short: 'ST',\n      },\n      {\n        long: 'Sund',\n        short: 'SD',\n      },\n      {\n        long: 'Vårdö',\n        short: 'VR',\n      },\n    ],\n  },\n  {\n    long: 'Albania',\n    short: 'AL',\n    regions: [\n      {\n        long: 'Berat',\n        short: '01',\n      },\n      {\n        long: 'Dibër',\n        short: '09',\n      },\n      {\n        long: 'Durrës',\n        short: '02',\n      },\n      {\n        long: 'Elbasan',\n        short: '03',\n      },\n      {\n        long: 'Fier',\n        short: '04',\n      },\n      {\n        long: 'Gjirokastër',\n        short: '05',\n      },\n      {\n        long: 'Korçë',\n        short: '06',\n      },\n      {\n        long: 'Kukës',\n        short: '07',\n      },\n      {\n        long: 'Lezhë',\n        short: '08',\n      },\n      {\n        long: 'Shkodër',\n        short: '10',\n      },\n      {\n        long: 'Tirana',\n        short: '11',\n      },\n      {\n        long: 'Vlorë',\n        short: '12',\n      },\n    ],\n  },\n  {\n    long: 'Algeria',\n    short: 'DZ',\n    regions: [\n      {\n        long: 'Adrar',\n        short: '01',\n      },\n      {\n        long: 'Aïn Defla',\n        short: '44',\n      },\n      {\n        long: 'Aïn Témouchent',\n        short: '46',\n      },\n      {\n        long: 'Algiers',\n        short: '16',\n      },\n      {\n        long: 'Annaba',\n        short: '23',\n      },\n      {\n        long: 'Batna',\n        short: '05',\n      },\n      {\n        long: 'Béchar',\n        short: '08',\n      },\n      {\n        long: 'Béjaïa',\n        short: '06',\n      },\n      {\n        long: 'Biskra',\n        short: '07',\n      },\n      {\n        long: 'Blida',\n        short: '09',\n      },\n      {\n        long: 'Bordj Bou Arréridj',\n        short: '34',\n      },\n      {\n        long: 'Bouïra',\n        short: '10',\n      },\n      {\n        long: 'Boumerdès',\n        short: '35',\n      },\n      {\n        long: 'Chlef',\n        short: '02',\n      },\n      {\n        long: 'Constantine',\n        short: '25',\n      },\n      {\n        long: 'Djelfa',\n        short: '17',\n      },\n      {\n        long: 'El Bayadh',\n        short: '32',\n      },\n      {\n        long: 'El Oued',\n        short: '39',\n      },\n      {\n        long: 'El Tarf',\n        short: '36',\n      },\n      {\n        long: 'Ghardaïa',\n        short: '47',\n      },\n      {\n        long: 'Guelma',\n        short: '24',\n      },\n      {\n        long: 'Illizi',\n        short: '33',\n      },\n      {\n        long: 'Jijel',\n        short: '18',\n      },\n      {\n        long: 'Khenchela',\n        short: '40',\n      },\n      {\n        long: 'Laghouat',\n        short: '03',\n      },\n      {\n        long: 'Mascara',\n        short: '29',\n      },\n      {\n        long: 'Médéa',\n        short: '26',\n      },\n      {\n        long: 'Mila',\n        short: '43',\n      },\n      {\n        long: 'Mostaganem',\n        short: '27',\n      },\n      {\n        long: 'Msila',\n        short: '28',\n      },\n      {\n        long: 'Naâma',\n        short: '45',\n      },\n      {\n        long: 'Oran',\n        short: '31',\n      },\n      {\n        long: 'Ouargla',\n        short: '30',\n      },\n      {\n        long: 'Oum el Bouaghi',\n        short: '04',\n      },\n      {\n        long: 'Relizane',\n        short: '48',\n      },\n      {\n        long: 'Saïda',\n        short: '20',\n      },\n      {\n        long: 'Sétif',\n        short: '19',\n      },\n      {\n        long: 'Sidi Bel Abbès',\n        short: '22',\n      },\n      {\n        long: 'Skikda',\n        short: '21',\n      },\n      {\n        long: 'Souk Ahras',\n        short: '41',\n      },\n      {\n        long: 'Tamanghasset',\n        short: '11',\n      },\n      {\n        long: 'Tébessa',\n        short: '12',\n      },\n      {\n        long: 'Tiaret',\n        short: '14',\n      },\n      {\n        long: 'Tindouf',\n        short: '37',\n      },\n      {\n        long: 'Tipaza',\n        short: '42',\n      },\n      {\n        long: 'Tissemsilt',\n        short: '38',\n      },\n      {\n        long: 'Tizi Ouzou',\n        short: '15',\n      },\n      {\n        long: 'Tlemcen',\n        short: '13',\n      },\n    ],\n  },\n  {\n    long: 'American Samoa',\n    short: 'AS',\n    regions: [\n      {\n        long: 'Tutuila',\n        short: '01',\n      },\n      {\n        long: \"Aunu'u\",\n        short: '02',\n      },\n      {\n        long: \"Ta'ū\",\n        short: '03',\n      },\n      {\n        long: 'Ofu‑Olosega',\n        short: '04',\n      },\n      {\n        long: 'Rose Atoll',\n        short: '21',\n      },\n      {\n        long: 'Swains Island',\n        short: '22',\n      },\n    ],\n  },\n  {\n    long: 'Andorra',\n    short: 'AD',\n    regions: [\n      {\n        long: 'Andorra la Vella',\n        short: '07',\n      },\n      {\n        long: 'Canillo',\n        short: '02',\n      },\n      {\n        long: 'Encamp',\n        short: '03',\n      },\n      {\n        long: 'Escaldes-Engordany',\n        short: '08',\n      },\n      {\n        long: 'La Massana',\n        short: '04',\n      },\n      {\n        long: 'Ordino',\n        short: '05',\n      },\n      {\n        long: 'Sant Julià de Lòria',\n        short: '06',\n      },\n    ],\n  },\n  {\n    long: 'Angola',\n    short: 'AO',\n    regions: [\n      {\n        long: 'Bengo',\n        short: 'BGO',\n      },\n      {\n        long: 'Benguela',\n        short: 'BGU',\n      },\n      {\n        long: 'Bié',\n        short: 'BIE',\n      },\n      {\n        long: 'Cabinda',\n        short: 'CAB',\n      },\n      {\n        long: 'Cuando Cubango',\n        short: 'CCU',\n      },\n      {\n        long: 'Cuanza Norte',\n        short: 'CNO',\n      },\n      {\n        long: 'Cuanza Sul',\n        short: 'CUS',\n      },\n      {\n        long: 'Cunene',\n        short: 'CNN',\n      },\n      {\n        long: 'Huambo',\n        short: 'HUA',\n      },\n      {\n        long: 'Huíla',\n        short: 'HUI',\n      },\n      {\n        long: 'Luanda',\n        short: 'LUA',\n      },\n      {\n        long: 'Lunda Norte',\n        short: 'LNO',\n      },\n      {\n        long: 'Lunda Sul',\n        short: 'LSU',\n      },\n      {\n        long: 'Malanje',\n        short: 'MAL',\n      },\n      {\n        long: 'Moxico',\n        short: 'MOX',\n      },\n      {\n        long: 'Namibe',\n        short: 'NAM',\n      },\n      {\n        long: 'Uíge',\n        short: 'UIG',\n      },\n      {\n        long: 'Zaire',\n        short: 'ZAI',\n      },\n    ],\n  },\n  {\n    long: 'Anguilla',\n    short: 'AI',\n    regions: [\n      {\n        long: 'Anguilla',\n        short: '01',\n      },\n      {\n        long: 'Anguillita Island',\n        short: '02',\n      },\n      {\n        long: 'Blowing Rock',\n        short: '03',\n      },\n      {\n        long: 'Cove Cay',\n        short: '04',\n      },\n      {\n        long: 'Crocus Cay',\n        short: '05',\n      },\n      {\n        long: \"Deadman's Cay\",\n        short: '06',\n      },\n      {\n        long: 'Dog Island',\n        short: '07',\n      },\n      {\n        long: 'East Cay',\n        short: '08',\n      },\n      {\n        long: 'Little Island',\n        short: '09',\n      },\n      {\n        long: 'Little Scrub Island',\n        short: '10',\n      },\n      {\n        long: 'Mid Cay',\n        short: '11',\n      },\n      {\n        long: 'North Cay',\n        short: '12',\n      },\n      {\n        long: 'Prickly Pear Cays',\n        short: '13',\n      },\n      {\n        long: 'Rabbit Island',\n        short: '14',\n      },\n      {\n        long: 'Sandy Island/Sand Island',\n        short: '15',\n      },\n      {\n        long: 'Scilly Cay',\n        short: '16',\n      },\n      {\n        long: 'Scrub Island',\n        short: '17',\n      },\n      {\n        long: 'Seal Island',\n        short: '18',\n      },\n      {\n        long: 'Sombrero/Hat Island',\n        short: '19',\n      },\n      {\n        long: 'South Cay',\n        short: '20',\n      },\n      {\n        long: 'South Wager Island',\n        short: '21',\n      },\n      {\n        long: 'West Cay',\n        short: '22',\n      },\n    ],\n  },\n  {\n    long: 'Antarctica',\n    short: 'AQ',\n    regions: [\n      {\n        long: 'Antarctica',\n        short: 'AQ',\n      },\n    ],\n  },\n  {\n    long: 'Antigua and Barbuda',\n    short: 'AG',\n    regions: [\n      {\n        long: 'Antigua Island',\n        short: '01',\n      },\n      {\n        long: 'Barbuda Island',\n        short: '02',\n      },\n      {\n        long: 'Bird Island',\n        short: '04',\n      },\n      {\n        long: 'Bishop Island',\n        short: '05',\n      },\n      {\n        long: 'Blake Island',\n        short: '06',\n      },\n      {\n        long: 'Crump Island',\n        short: '09',\n      },\n      {\n        long: 'Dulcina Island',\n        short: '10',\n      },\n      {\n        long: 'Exchange Island',\n        short: '11',\n      },\n      {\n        long: 'Five Islands',\n        short: '12',\n      },\n      {\n        long: 'Great Bird Island',\n        short: '13',\n      },\n      {\n        long: 'Green Island',\n        short: '14',\n      },\n      {\n        long: 'Guiana Island',\n        short: '15',\n      },\n      {\n        long: 'Hawes Island',\n        short: '17',\n      },\n      {\n        long: 'Hells Gate Island',\n        short: '16',\n      },\n      {\n        long: 'Henry Island',\n        short: '18',\n      },\n      {\n        long: 'Johnson Island',\n        short: '19',\n      },\n      {\n        long: 'Kid Island',\n        short: '20',\n      },\n      {\n        long: 'Lobster Island',\n        short: '22',\n      },\n      {\n        long: 'Maiden Island',\n        short: '24',\n      },\n      {\n        long: 'Moor Island',\n        short: '25',\n      },\n      {\n        long: 'Nanny Island',\n        short: '26',\n      },\n      {\n        long: 'Pelican Island',\n        short: '27',\n      },\n      {\n        long: 'Prickly Pear Island',\n        short: '28',\n      },\n      {\n        long: 'Rabbit Island',\n        short: '29',\n      },\n      {\n        long: 'Red Head Island',\n        short: '31',\n      },\n      {\n        long: 'Redonda Island',\n        short: '03',\n      },\n      {\n        long: 'Sandy Island',\n        short: '32',\n      },\n      {\n        long: 'Smith Island',\n        short: '33',\n      },\n      {\n        long: 'The Sisters',\n        short: '34',\n      },\n      {\n        long: 'Vernon Island',\n        short: '35',\n      },\n      {\n        long: 'Wicked Will Island',\n        short: '36',\n      },\n      {\n        long: 'York Island',\n        short: '37',\n      },\n    ],\n  },\n  {\n    long: 'Argentina',\n    short: 'AR',\n    regions: [\n      {\n        long: 'Buenos Aires',\n        short: 'B',\n      },\n      {\n        long: 'Capital Federal',\n        short: 'C',\n      },\n      {\n        long: 'Catamarca',\n        short: 'K',\n      },\n      {\n        long: 'Chaco',\n        short: 'H',\n      },\n      {\n        long: 'Chubut',\n        short: 'U',\n      },\n      {\n        long: 'Córdoba',\n        short: 'X',\n      },\n      {\n        long: 'Corrientes',\n        short: 'W',\n      },\n      {\n        long: 'Entre Ríos',\n        short: 'E',\n      },\n      {\n        long: 'Formosa',\n        short: 'P',\n      },\n      {\n        long: 'Jujuy',\n        short: 'Y',\n      },\n      {\n        long: 'La Pampa',\n        short: 'L',\n      },\n      {\n        long: 'La Rioja',\n        short: 'F',\n      },\n      {\n        long: 'Mendoza',\n        short: 'M',\n      },\n      {\n        long: 'Misiones',\n        short: 'N',\n      },\n      {\n        long: 'Neuquén',\n        short: 'Q',\n      },\n      {\n        long: 'Río Negro',\n        short: 'R',\n      },\n      {\n        long: 'Salta',\n        short: 'A',\n      },\n      {\n        long: 'San Juan',\n        short: 'J',\n      },\n      {\n        long: 'San Luis',\n        short: 'D',\n      },\n      {\n        long: 'Santa Cruz',\n        short: 'Z',\n      },\n      {\n        long: 'Santa Fe',\n        short: 'S',\n      },\n      {\n        long: 'Santiago del Estero',\n        short: 'G',\n      },\n      {\n        long: 'Tierra del Fuego',\n        short: 'V',\n      },\n      {\n        long: 'Tucumán',\n        short: 'T',\n      },\n    ],\n  },\n  {\n    long: 'Armenia',\n    short: 'AM',\n    regions: [\n      {\n        long: 'Aragatsotn',\n        short: 'AG',\n      },\n      {\n        long: 'Ararat',\n        short: 'AR',\n      },\n      {\n        long: 'Armavir',\n        short: 'AV',\n      },\n      {\n        long: 'Gegharkunik',\n        short: 'GR',\n      },\n      {\n        long: 'Kotayk',\n        short: 'KT',\n      },\n      {\n        long: 'Lori',\n        short: 'LO',\n      },\n      {\n        long: 'Shirak',\n        short: 'SH',\n      },\n      {\n        long: 'Syunik',\n        short: 'SU',\n      },\n      {\n        long: 'Tavush',\n        short: 'TV',\n      },\n      {\n        long: 'Vayots Dzor',\n        short: 'VD',\n      },\n      {\n        long: 'Yerevan',\n        short: 'ER',\n      },\n    ],\n  },\n  {\n    long: 'Aruba',\n    short: 'AW',\n    regions: [\n      {\n        long: 'Aruba',\n        short: 'AW',\n      },\n    ],\n  },\n  {\n    long: 'Australia',\n    short: 'AU',\n    regions: [\n      {\n        long: 'Australian Capital Territory',\n        short: 'ACT',\n      },\n      {\n        long: 'New South Wales',\n        short: 'NSW',\n      },\n      {\n        long: 'Northern Territory',\n        short: 'NT',\n      },\n      {\n        long: 'Queensland',\n        short: 'QLD',\n      },\n      {\n        long: 'South Australia',\n        short: 'SA',\n      },\n      {\n        long: 'Tasmania',\n        short: 'TAS',\n      },\n      {\n        long: 'Victoria',\n        short: 'VIC',\n      },\n      {\n        long: 'Western Australia',\n        short: 'WA',\n      },\n    ],\n  },\n  {\n    long: 'Austria',\n    short: 'AT',\n    regions: [\n      {\n        long: 'Burgenland',\n        short: '1',\n      },\n      {\n        long: 'Kärnten',\n        short: '2',\n      },\n      {\n        long: 'Niederösterreich',\n        short: '3',\n      },\n      {\n        long: 'Oberösterreich',\n        short: '4',\n      },\n      {\n        long: 'Salzburg',\n        short: '5',\n      },\n      {\n        long: 'Steiermark',\n        short: '6',\n      },\n      {\n        long: 'Tirol',\n        short: '7',\n      },\n      {\n        long: 'Vorarlberg',\n        short: '8',\n      },\n      {\n        long: 'Wien',\n        short: '9',\n      },\n    ],\n  },\n  {\n    long: 'Azerbaijan',\n    short: 'AZ',\n    regions: [\n      {\n        long: 'Abşeron',\n        short: 'ABS',\n      },\n      {\n        long: 'Ağcabədi',\n        short: 'AGC',\n      },\n      {\n        long: 'Ağdam',\n        short: 'AGM',\n      },\n      {\n        long: 'Ağdaş',\n        short: 'AGS',\n      },\n      {\n        long: 'Ağstafa',\n        short: 'AGA',\n      },\n      {\n        long: 'Ağsu',\n        short: 'AGU',\n      },\n      {\n        long: 'Astara',\n        short: 'AST',\n      },\n      {\n        long: 'Bakı',\n        short: 'BAK',\n      },\n      {\n        long: 'Babək',\n        short: 'BAB',\n      },\n      {\n        long: 'Balakən',\n        short: 'BAL',\n      },\n      {\n        long: 'Bərdə',\n        short: 'BAR',\n      },\n      {\n        long: 'Beyləqan',\n        short: 'BEY',\n      },\n      {\n        long: 'Biləsuvar',\n        short: 'BIL',\n      },\n      {\n        long: 'Cəbrayıl',\n        short: 'CAB',\n      },\n      {\n        long: 'Cəlilabad',\n        short: 'CAL',\n      },\n      {\n        long: 'Culfa',\n        short: 'CUL',\n      },\n      {\n        long: 'Daşkəsən',\n        short: 'DAS',\n      },\n      {\n        long: 'Füzuli',\n        short: 'FUZ',\n      },\n      {\n        long: 'Gədəbəy',\n        short: 'GAD',\n      },\n      {\n        long: 'Goranboy',\n        short: 'GOR',\n      },\n      {\n        long: 'Göyçay',\n        short: 'GOY',\n      },\n      {\n        long: 'Göygöl',\n        short: 'GYG',\n      },\n      {\n        long: 'Hacıqabul',\n        short: 'HAC',\n      },\n      {\n        long: 'İmişli',\n        short: 'IMI',\n      },\n      {\n        long: 'İsmayıllı',\n        short: 'ISM',\n      },\n      {\n        long: 'Kəlbəcər',\n        short: 'KAL',\n      },\n      {\n        long: 'Kǝngǝrli',\n        short: 'KAN',\n      },\n      {\n        long: 'Kürdəmir',\n        short: 'KUR',\n      },\n      {\n        long: 'Laçın',\n        short: 'LAC',\n      },\n      {\n        long: 'Lənkəran',\n        short: 'LAN',\n      },\n      {\n        long: 'Lerik',\n        short: 'LER',\n      },\n      {\n        long: 'Masallı',\n        short: 'MAS',\n      },\n      {\n        long: 'Neftçala',\n        short: 'NEF',\n      },\n      {\n        long: 'Oğuz',\n        short: 'OGU',\n      },\n      {\n        long: 'Ordubad',\n        short: 'ORD',\n      },\n      {\n        long: 'Qəbələ',\n        short: 'QAB',\n      },\n      {\n        long: 'Qax',\n        short: 'QAX',\n      },\n      {\n        long: 'Qazax',\n        short: 'QAZ',\n      },\n      {\n        long: 'Qobustan',\n        short: 'QOB',\n      },\n      {\n        long: 'Quba',\n        short: 'QBA',\n      },\n      {\n        long: 'Qubadli',\n        short: 'QBI',\n      },\n      {\n        long: 'Qusar',\n        short: 'QUS',\n      },\n      {\n        long: 'Saatlı',\n        short: 'SAT',\n      },\n      {\n        long: 'Sabirabad',\n        short: 'SAB',\n      },\n      {\n        long: 'Şabran',\n        short: 'SBN',\n      },\n      {\n        long: 'Sədərək',\n        short: 'SAD',\n      },\n      {\n        long: 'Şahbuz',\n        short: 'SAH',\n      },\n      {\n        long: 'Şəki',\n        short: 'SAK',\n      },\n      {\n        long: 'Salyan',\n        short: 'SAL',\n      },\n      {\n        long: 'Şamaxı',\n        short: 'SMI',\n      },\n      {\n        long: 'Şəmkir',\n        short: 'SKR',\n      },\n      {\n        long: 'Samux',\n        short: 'SMX',\n      },\n      {\n        long: 'Şərur',\n        short: 'SAR',\n      },\n      {\n        long: 'Siyəzən',\n        short: 'SIY',\n      },\n      {\n        long: 'Şuşa',\n        short: 'SUS',\n      },\n      {\n        long: 'Tərtər',\n        short: 'TAR',\n      },\n      {\n        long: 'Tovuz',\n        short: 'TOV',\n      },\n      {\n        long: 'Ucar',\n        short: 'UCA',\n      },\n      {\n        long: 'Xaçmaz',\n        short: 'XAC',\n      },\n      {\n        long: 'Xızı',\n        short: 'XIZ',\n      },\n      {\n        long: 'Xocalı',\n        short: 'XCI',\n      },\n      {\n        long: 'Xocavənd',\n        short: 'XVD',\n      },\n      {\n        long: 'Yardımlı',\n        short: 'YAR',\n      },\n      {\n        long: 'Yevlax',\n        short: 'YEV',\n      },\n      {\n        long: 'Zəngilan',\n        short: 'ZAN',\n      },\n      {\n        long: 'Zaqatala',\n        short: 'ZAQ',\n      },\n      {\n        long: 'Zərdab',\n        short: 'ZAR',\n      },\n    ],\n  },\n  {\n    long: 'Bahamas',\n    short: 'BS',\n    regions: [\n      {\n        long: 'Acklins Island',\n        short: '01',\n      },\n      {\n        long: 'Berry Islands',\n        short: '22',\n      },\n      {\n        long: 'Bimini',\n        short: '02',\n      },\n      {\n        long: 'Black Point',\n        short: '23',\n      },\n      {\n        long: 'Cat Island',\n        short: '03',\n      },\n      {\n        long: 'Central Abaco',\n        short: '24',\n      },\n      {\n        long: 'Crooked Island and Long Cay',\n        short: '28',\n      },\n      {\n        long: 'East Grand Bahama',\n        short: '29',\n      },\n      {\n        long: 'Exuma',\n        short: '04',\n      },\n      {\n        long: 'Freeport',\n        short: '05',\n      },\n      {\n        long: 'Fresh Creek',\n        short: '06',\n      },\n      {\n        long: \"Governor's Harbour\",\n        short: '07',\n      },\n      {\n        long: 'Green Turtle Cay',\n        short: '08',\n      },\n      {\n        long: 'Harbour Island',\n        short: '09',\n      },\n      {\n        long: 'High Rock',\n        short: '10',\n      },\n      {\n        long: 'Inagua',\n        short: '11',\n      },\n      {\n        long: 'Kemps Bay',\n        short: '12',\n      },\n      {\n        long: 'Long Island',\n        short: '13',\n      },\n      {\n        long: 'Marsh Harbour',\n        short: '14',\n      },\n      {\n        long: 'Mayaguana',\n        short: '15',\n      },\n      {\n        long: 'Moore’s Island',\n        short: '40',\n      },\n      {\n        long: 'New Providence',\n        short: '16',\n      },\n      {\n        long: 'Nichollstown and Berry Islands',\n        short: '17',\n      },\n      {\n        long: 'North Abaco',\n        short: '42',\n      },\n      {\n        long: 'North Andros',\n        short: '41',\n      },\n      {\n        long: 'North Eleuthera',\n        short: '33',\n      },\n      {\n        long: 'Ragged Island',\n        short: '18',\n      },\n      {\n        long: 'Rock Sound',\n        short: '19',\n      },\n      {\n        long: 'San Salvador and Rum Cay',\n        short: '20',\n      },\n      {\n        long: 'Sandy Point',\n        short: '21',\n      },\n      {\n        long: 'South Abaco',\n        short: '35',\n      },\n      {\n        long: 'South Andros',\n        short: '36',\n      },\n      {\n        long: 'South Eleuthera',\n        short: '37',\n      },\n      {\n        long: 'West Grand Bahama',\n        short: '39',\n      },\n    ],\n  },\n  {\n    long: 'Bahrain',\n    short: 'BH',\n    regions: [\n      {\n        long: 'Al Janūbīyah',\n        short: '14',\n      },\n      {\n        long: 'Al Manāmah',\n        short: '13',\n      },\n      {\n        long: 'Al Muḩarraq',\n        short: '15',\n      },\n      {\n        long: 'Al Wusţá',\n        short: '16',\n      },\n      {\n        long: 'Ash Shamālīyah',\n        short: '17',\n      },\n    ],\n  },\n  {\n    long: 'Bangladesh',\n    short: 'BD',\n    regions: [\n      {\n        long: 'Barisal',\n        short: 'A',\n      },\n      {\n        long: 'Chittagong',\n        short: 'B',\n      },\n      {\n        long: 'Dhaka',\n        short: 'C',\n      },\n      {\n        long: 'Khulna',\n        short: 'D',\n      },\n      {\n        long: 'Mymensingh',\n        short: 'M',\n      },\n      {\n        long: 'Rajshahi',\n        short: 'E',\n      },\n      {\n        long: 'Rangpur',\n        short: 'F',\n      },\n      {\n        long: 'Sylhet',\n        short: 'G',\n      },\n    ],\n  },\n  {\n    long: 'Barbados',\n    short: 'BB',\n    regions: [\n      {\n        long: 'Christ Church',\n        short: '01',\n      },\n      {\n        long: 'Saint Andrew',\n        short: '02',\n      },\n      {\n        long: 'Saint George',\n        short: '03',\n      },\n      {\n        long: 'Saint James',\n        short: '04',\n      },\n      {\n        long: 'Saint John',\n        short: '05',\n      },\n      {\n        long: 'Saint Joseph',\n        short: '06',\n      },\n      {\n        long: 'Saint Lucy',\n        short: '07',\n      },\n      {\n        long: 'Saint Michael',\n        short: '08',\n      },\n      {\n        long: 'Saint Peter',\n        short: '09',\n      },\n      {\n        long: 'Saint Philip',\n        short: '10',\n      },\n      {\n        long: 'Saint Thomas',\n        short: '11',\n      },\n    ],\n  },\n  {\n    long: 'Belarus',\n    short: 'BY',\n    regions: [\n      {\n        long: 'Brest voblast',\n        short: 'BR',\n      },\n      {\n        long: 'Gorod Minsk',\n        short: 'HM',\n      },\n      {\n        long: 'Homiel voblast',\n        short: 'HO',\n      },\n      {\n        long: 'Hrodna voblast',\n        short: 'HR',\n      },\n      {\n        long: 'Mahilyow voblast',\n        short: 'MA',\n      },\n      {\n        long: 'Minsk voblast',\n        short: 'MI',\n      },\n      {\n        long: 'Vitsebsk voblast',\n        short: 'VI',\n      },\n    ],\n  },\n  {\n    long: 'Belgium',\n    short: 'BE',\n    regions: [\n      {\n        long: 'Brussels',\n        short: 'BRU',\n      },\n      {\n        long: 'Flanders',\n        short: 'VLG',\n      },\n      {\n        long: 'Wallonia',\n        short: 'WAL',\n      },\n    ],\n  },\n  {\n    long: 'Belize',\n    short: 'BZ',\n    regions: [\n      {\n        long: 'Belize District',\n        short: 'BZ',\n      },\n      {\n        long: 'Cayo District',\n        short: 'CY',\n      },\n      {\n        long: 'Corozal District',\n        short: 'CZL',\n      },\n      {\n        long: 'Orange Walk District',\n        short: 'OW',\n      },\n      {\n        long: 'Stann Creek District',\n        short: 'SC',\n      },\n      {\n        long: 'Toledo District',\n        short: 'TOL',\n      },\n    ],\n  },\n  {\n    long: 'Benin',\n    short: 'BJ',\n    regions: [\n      {\n        long: 'Alibori',\n        short: 'AL',\n      },\n      {\n        long: 'Atakora',\n        short: 'AK',\n      },\n      {\n        long: 'Atlantique',\n        short: 'AQ',\n      },\n      {\n        long: 'Borgou',\n        short: 'BO',\n      },\n      {\n        long: 'Collines Department',\n        short: 'CO',\n      },\n      {\n        long: 'Donga',\n        short: 'DO',\n      },\n      {\n        long: 'Kouffo',\n        short: 'KO',\n      },\n      {\n        long: 'Littoral Department',\n        short: 'LI',\n      },\n      {\n        long: 'Mono Department',\n        short: 'MO',\n      },\n      {\n        long: 'Ouémé',\n        short: 'OU',\n      },\n      {\n        long: 'Plateau',\n        short: 'PL',\n      },\n      {\n        long: 'Zou',\n        short: 'ZO',\n      },\n    ],\n  },\n  {\n    long: 'Bermuda',\n    short: 'BM',\n    regions: [\n      {\n        long: 'City of Hamilton',\n        short: '03',\n      },\n      {\n        long: 'Devonshire Parish',\n        short: '01',\n      },\n      {\n        long: 'Hamilton Parish',\n        short: '02',\n      },\n      {\n        long: 'Paget Parish',\n        short: '04',\n      },\n      {\n        long: 'Pembroke Parish',\n        short: '05',\n      },\n      {\n        long: 'Sandys Parish',\n        short: '08',\n      },\n      {\n        long: \"Smith's Parish\",\n        short: '09',\n      },\n      {\n        long: 'Southampton Parish',\n        short: '10',\n      },\n      {\n        long: \"St. George's Parish\",\n        short: '07',\n      },\n      {\n        long: 'Town of St. George',\n        short: '06',\n      },\n      {\n        long: 'Warwick Parish',\n        short: '11',\n      },\n    ],\n  },\n  {\n    long: 'Bhutan',\n    short: 'BT',\n    regions: [\n      {\n        long: 'Bumthang',\n        short: '33',\n      },\n      {\n        long: 'Chhukha',\n        short: '12',\n      },\n      {\n        long: 'Dagana',\n        short: '22',\n      },\n      {\n        long: 'Gasa',\n        short: 'GA',\n      },\n      {\n        long: 'Haa',\n        short: '13',\n      },\n      {\n        long: 'Lhuntse',\n        short: '44',\n      },\n      {\n        long: 'Mongar',\n        short: '42',\n      },\n      {\n        long: 'Paro',\n        short: '11',\n      },\n      {\n        long: 'Pemagatshel',\n        short: '43',\n      },\n      {\n        long: 'Punakha',\n        short: '23',\n      },\n      {\n        long: 'Samdrup Jongkhar',\n        short: '45',\n      },\n      {\n        long: 'Samtse',\n        short: '14',\n      },\n      {\n        long: 'Sarpang',\n        short: '31',\n      },\n      {\n        long: 'Thimphu',\n        short: '15',\n      },\n      {\n        long: 'Trashigang',\n        short: '41',\n      },\n      {\n        long: 'Trashiyangtse',\n        short: 'TY',\n      },\n      {\n        long: 'Trongsa',\n        short: '32',\n      },\n      {\n        long: 'Tsirang',\n        short: '21',\n      },\n      {\n        long: 'Wangdue Phodrang',\n        short: '24',\n      },\n      {\n        long: 'Zhemgang',\n        short: '34',\n      },\n    ],\n  },\n  {\n    long: 'Bolivia',\n    short: 'BO',\n    regions: [\n      {\n        long: 'Beni',\n        short: 'B',\n      },\n      {\n        long: 'Chuquisaca',\n        short: 'H',\n      },\n      {\n        long: 'Cochabamba',\n        short: 'C',\n      },\n      {\n        long: 'La Paz',\n        short: 'L',\n      },\n      {\n        long: 'Oruro',\n        short: 'O',\n      },\n      {\n        long: 'Pando',\n        short: 'N',\n      },\n      {\n        long: 'Potosí',\n        short: 'P',\n      },\n      {\n        long: 'Santa Cruz',\n        short: 'S',\n      },\n      {\n        long: 'Tarija',\n        short: 'T',\n      },\n    ],\n  },\n  {\n    long: 'Bonaire, Sint Eustatius and Saba',\n    short: 'BQ',\n    regions: [\n      {\n        long: 'Bonaire',\n        short: 'BO',\n      },\n      {\n        long: 'Saba Isand',\n        short: 'SA',\n      },\n      {\n        long: 'Sint Eustatius',\n        short: 'SE',\n      },\n    ],\n  },\n  {\n    long: 'Bosnia and Herzegovina',\n    short: 'BA',\n    regions: [\n      {\n        long: 'Brčko Distrikt',\n        short: 'BRC',\n      },\n      {\n        long: 'Federacija Bosne i Hercegovine',\n        short: 'BIH',\n      },\n      {\n        long: 'Republika Srpska',\n        short: 'SRP',\n      },\n    ],\n  },\n  {\n    long: 'Botswana',\n    short: 'BW',\n    regions: [\n      {\n        long: 'Central',\n        short: 'CE',\n      },\n      {\n        long: 'Ghanzi',\n        short: 'GH',\n      },\n      {\n        long: 'Kgalagadi',\n        short: 'KG',\n      },\n      {\n        long: 'Kgatleng',\n        short: 'KL',\n      },\n      {\n        long: 'Kweneng',\n        short: 'KW',\n      },\n      {\n        long: 'North West',\n        short: 'NW',\n      },\n      {\n        long: 'North-East',\n        short: 'NE',\n      },\n      {\n        long: 'South East',\n        short: 'SE',\n      },\n      {\n        long: 'Southern',\n        short: 'SO',\n      },\n    ],\n  },\n  {\n    long: 'Bouvet Island',\n    short: 'BV',\n    regions: [\n      {\n        long: 'Bouvet Island',\n        short: 'BV',\n      },\n    ],\n  },\n  {\n    long: 'Brazil',\n    short: 'BR',\n    regions: [\n      {\n        long: 'Acre',\n        short: 'AC',\n      },\n      {\n        long: 'Alagoas',\n        short: 'AL',\n      },\n      {\n        long: 'Amapá',\n        short: 'AP',\n      },\n      {\n        long: 'Amazonas',\n        short: 'AM',\n      },\n      {\n        long: 'Bahia',\n        short: 'BA',\n      },\n      {\n        long: 'Ceará',\n        short: 'CE',\n      },\n      {\n        long: 'Distrito Federal',\n        short: 'DF',\n      },\n      {\n        long: 'Espírito Santo',\n        short: 'ES',\n      },\n      {\n        long: 'Goiás',\n        short: 'GO',\n      },\n      {\n        long: 'Maranhão',\n        short: 'MA',\n      },\n      {\n        long: 'Mato Grosso',\n        short: 'MT',\n      },\n      {\n        long: 'Mato Grosso do Sul',\n        short: 'MS',\n      },\n      {\n        long: 'Minas Gerais',\n        short: 'MG',\n      },\n      {\n        long: 'Pará',\n        short: 'PA',\n      },\n      {\n        long: 'Paraíba',\n        short: 'PB',\n      },\n      {\n        long: 'Paraná',\n        short: 'PR',\n      },\n      {\n        long: 'Pernambuco',\n        short: 'PE',\n      },\n      {\n        long: 'Piauí',\n        short: 'PI',\n      },\n      {\n        long: 'Rio de Janeiro',\n        short: 'RJ',\n      },\n      {\n        long: 'Rio Grande do Norte',\n        short: 'RN',\n      },\n      {\n        long: 'Rio Grande do Sul',\n        short: 'RS',\n      },\n      {\n        long: 'Rondônia',\n        short: 'RO',\n      },\n      {\n        long: 'Roraima',\n        short: 'RR',\n      },\n      {\n        long: 'Santa Catarina',\n        short: 'SC',\n      },\n      {\n        long: 'São Paulo',\n        short: 'SP',\n      },\n      {\n        long: 'Sergipe',\n        short: 'SE',\n      },\n      {\n        long: 'Tocantins',\n        short: 'TO',\n      },\n    ],\n  },\n  {\n    long: 'British Indian Ocean Territory',\n    short: 'IO',\n    regions: [\n      {\n        long: 'British Indian Ocean Territory',\n        short: 'IO',\n      },\n    ],\n  },\n  {\n    long: 'Brunei Darussalam',\n    short: 'BN',\n    regions: [\n      {\n        long: 'Belait',\n        short: 'BE',\n      },\n      {\n        long: 'Brunei Muara',\n        short: 'BM',\n      },\n      {\n        long: 'Temburong',\n        short: 'TE',\n      },\n      {\n        long: 'Tutong',\n        short: 'TU',\n      },\n    ],\n  },\n  {\n    long: 'Bulgaria',\n    short: 'BG',\n    regions: [\n      {\n        long: 'Blagoevgrad',\n        short: '01',\n      },\n      {\n        long: 'Burgas',\n        short: '02',\n      },\n      {\n        long: 'Dobrich',\n        short: '08',\n      },\n      {\n        long: 'Gabrovo',\n        short: '07',\n      },\n      {\n        long: 'Jambol',\n        short: '28',\n      },\n      {\n        long: 'Khaskovo',\n        short: '26',\n      },\n      {\n        long: 'Kjustendil',\n        short: '10',\n      },\n      {\n        long: 'Kurdzhali',\n        short: '09',\n      },\n      {\n        long: 'Lovech',\n        short: '11',\n      },\n      {\n        long: 'Montana',\n        short: '12',\n      },\n      {\n        long: 'Pazardzhik',\n        short: '13',\n      },\n      {\n        long: 'Pernik',\n        short: '14',\n      },\n      {\n        long: 'Pleven',\n        short: '15',\n      },\n      {\n        long: 'Plovdiv',\n        short: '16',\n      },\n      {\n        long: 'Razgrad',\n        short: '17',\n      },\n      {\n        long: 'Ruse',\n        short: '18',\n      },\n      {\n        long: 'Shumen',\n        short: '27',\n      },\n      {\n        long: 'Silistra',\n        short: '19',\n      },\n      {\n        long: 'Sliven',\n        short: '20',\n      },\n      {\n        long: 'Smoljan',\n        short: '21',\n      },\n      {\n        long: 'Sofija',\n        short: '23',\n      },\n      {\n        long: 'Sofija-Grad',\n        short: '22',\n      },\n      {\n        long: 'Stara Zagora',\n        short: '24',\n      },\n      {\n        long: 'Turgovishhe',\n        short: '25',\n      },\n      {\n        long: 'Varna',\n        short: '03',\n      },\n      {\n        long: 'Veliko Turnovo',\n        short: '04',\n      },\n      {\n        long: 'Vidin',\n        short: '05',\n      },\n      {\n        long: 'Vraca',\n        short: '06',\n      },\n    ],\n  },\n  {\n    long: 'Burkina Faso',\n    short: 'BF',\n    regions: [\n      {\n        long: 'Balé',\n        short: 'BAL',\n      },\n      {\n        long: 'Bam/Lake Bam',\n        short: 'BAM',\n      },\n      {\n        long: 'Banwa Province',\n        short: 'BAN',\n      },\n      {\n        long: 'Bazèga',\n        short: 'BAZ',\n      },\n      {\n        long: 'Bougouriba',\n        short: 'BGR',\n      },\n      {\n        long: 'Boulgou Province',\n        short: 'BLG',\n      },\n      {\n        long: 'Boulkiemdé',\n        short: 'BLK',\n      },\n      {\n        long: 'Comoé/Komoe',\n        short: 'COM',\n      },\n      {\n        long: 'Ganzourgou Province',\n        short: 'GAN',\n      },\n      {\n        long: 'Gnagna',\n        short: 'GNA',\n      },\n      {\n        long: 'Gourma Province',\n        short: 'GOU',\n      },\n      {\n        long: 'Houet',\n        short: 'HOU',\n      },\n      {\n        long: 'Ioba',\n        short: 'IOB',\n      },\n      {\n        long: 'Kadiogo',\n        short: 'KAD',\n      },\n      {\n        long: 'Kénédougou',\n        short: 'KEN',\n      },\n      {\n        long: 'Komondjari',\n        short: 'KMD',\n      },\n      {\n        long: 'Kompienga',\n        short: 'KMP',\n      },\n      {\n        long: 'Kossi Province',\n        short: 'KOS',\n      },\n      {\n        long: 'Koulpélogo',\n        short: 'KOP',\n      },\n      {\n        long: 'Kouritenga',\n        short: 'KOT',\n      },\n      {\n        long: 'Kourwéogo',\n        short: 'KOW',\n      },\n      {\n        long: 'Léraba',\n        short: 'LER',\n      },\n      {\n        long: 'Loroum',\n        short: 'LOR',\n      },\n      {\n        long: 'Mouhoun',\n        short: 'MOU',\n      },\n      {\n        long: 'Namentenga',\n        short: 'NAM',\n      },\n      {\n        long: 'Naouri/Nahouri',\n        short: 'NAO',\n      },\n      {\n        long: 'Nayala',\n        short: 'NAY',\n      },\n      {\n        long: 'Noumbiel',\n        short: 'NOU',\n      },\n      {\n        long: 'Oubritenga',\n        short: 'OUB',\n      },\n      {\n        long: 'Oudalan',\n        short: 'OUD',\n      },\n      {\n        long: 'Passoré',\n        short: 'PAS',\n      },\n      {\n        long: 'Poni',\n        short: 'PON',\n      },\n      {\n        long: 'Sanguié',\n        short: 'SNG',\n      },\n      {\n        long: 'Sanmatenga',\n        short: 'SMT',\n      },\n      {\n        long: 'Séno',\n        short: 'SEN',\n      },\n      {\n        long: 'Sissili',\n        short: 'SIS',\n      },\n      {\n        long: 'Soum',\n        short: 'SOM',\n      },\n      {\n        long: 'Sourou',\n        short: 'SOR',\n      },\n      {\n        long: 'Tapoa',\n        short: 'TAP',\n      },\n      {\n        long: 'Tui/Tuy',\n        short: 'TUI',\n      },\n      {\n        long: 'Yagha',\n        short: 'YAG',\n      },\n      {\n        long: 'Yatenga',\n        short: 'YAT',\n      },\n      {\n        long: 'Ziro',\n        short: 'ZIR',\n      },\n      {\n        long: 'Zondoma',\n        short: 'ZON',\n      },\n      {\n        long: 'Zoundwéogo',\n        short: 'ZOU',\n      },\n    ],\n  },\n  {\n    long: 'Burundi',\n    short: 'BI',\n    regions: [\n      {\n        long: 'Bubanza',\n        short: 'BB',\n      },\n      {\n        long: 'Bujumbura Mairie',\n        short: 'BM',\n      },\n      {\n        long: 'Bujumbura Rural',\n        short: 'BL',\n      },\n      {\n        long: 'Bururi',\n        short: 'BR',\n      },\n      {\n        long: 'Cankuzo',\n        short: 'CA',\n      },\n      {\n        long: 'Cibitoke',\n        short: 'CI',\n      },\n      {\n        long: 'Gitega',\n        short: 'GI',\n      },\n      {\n        long: 'Karuzi',\n        short: 'KR',\n      },\n      {\n        long: 'Kayanza',\n        short: 'KY',\n      },\n      {\n        long: 'Kirundo',\n        short: 'KI',\n      },\n      {\n        long: 'Makamba',\n        short: 'MA',\n      },\n      {\n        long: 'Muramvya',\n        short: 'MU',\n      },\n      {\n        long: 'Muyinga',\n        short: 'MY',\n      },\n      {\n        long: 'Mwaro',\n        short: 'MW',\n      },\n      {\n        long: 'Ngozi',\n        short: 'NG',\n      },\n      {\n        long: 'Rutana',\n        short: 'RT',\n      },\n      {\n        long: 'Ruyigi',\n        short: 'RY',\n      },\n    ],\n  },\n  {\n    long: 'Cambodia',\n    short: 'KH',\n    regions: [\n      {\n        long: 'Baat Dambang',\n        short: '2',\n      },\n      {\n        long: 'Banteay Mean Chey',\n        short: '1',\n      },\n      {\n        long: 'Kampong Chaam',\n        short: '3',\n      },\n      {\n        long: 'Kampong Chhnang',\n        short: '4',\n      },\n      {\n        long: 'Kampong Spueu',\n        short: '5',\n      },\n      {\n        long: 'Kampong Thum',\n        short: '6',\n      },\n      {\n        long: 'Kampot',\n        short: '7',\n      },\n      {\n        long: 'Kandaal',\n        short: '8',\n      },\n      {\n        long: 'Kaoh Kong',\n        short: '9',\n      },\n      {\n        long: 'Kracheh',\n        short: '10',\n      },\n      {\n        long: 'Krong Kaeb',\n        short: '23',\n      },\n      {\n        long: 'Krong Pailin',\n        short: '24',\n      },\n      {\n        long: 'Krong Preah Sihanouk',\n        short: '18',\n      },\n      {\n        long: 'Mondol Kiri',\n        short: '11',\n      },\n      {\n        long: 'Otdar Mean Chey',\n        short: '22',\n      },\n      {\n        long: 'Phnom Penh',\n        short: '12',\n      },\n      {\n        long: 'Pousaat',\n        short: '15',\n      },\n      {\n        long: 'Preah Vihear',\n        short: '13',\n      },\n      {\n        long: 'Prey Veaeng',\n        short: '14',\n      },\n      {\n        long: 'Rotanah Kiri',\n        short: '16',\n      },\n      {\n        long: 'Siem Reab',\n        short: '17',\n      },\n      {\n        long: 'Stueng Treng',\n        short: '19',\n      },\n      {\n        long: 'Svaay Rieng',\n        short: '20',\n      },\n      {\n        long: 'Taakaev',\n        short: '21',\n      },\n      {\n        long: 'Tbong Khmum',\n        short: '25',\n      },\n    ],\n  },\n  {\n    long: 'Cameroon',\n    short: 'CM',\n    regions: [\n      {\n        long: 'Adamaoua',\n        short: 'AD',\n      },\n      {\n        long: 'Centre',\n        short: 'CE',\n      },\n      {\n        long: 'Est',\n        short: 'ES',\n      },\n      {\n        long: 'Extrême-Nord',\n        short: 'EN',\n      },\n      {\n        long: 'Littoral',\n        short: 'LT',\n      },\n      {\n        long: 'Nord',\n        short: 'NO',\n      },\n      {\n        long: 'Nord-Ouest',\n        short: 'NW',\n      },\n      {\n        long: 'Ouest',\n        short: 'OU',\n      },\n      {\n        long: 'Sud',\n        short: 'SU',\n      },\n      {\n        long: 'Sud-Ouest',\n        short: 'SW',\n      },\n    ],\n  },\n  {\n    long: 'Canada',\n    short: 'CA',\n    regions: [\n      {\n        long: 'Alberta',\n        short: 'AB',\n      },\n      {\n        long: 'British Columbia',\n        short: 'BC',\n      },\n      {\n        long: 'Manitoba',\n        short: 'MB',\n      },\n      {\n        long: 'New Brunswick',\n        short: 'NB',\n      },\n      {\n        long: 'Newfoundland and Labrador',\n        short: 'NL',\n      },\n      {\n        long: 'Northwest Territories',\n        short: 'NT',\n      },\n      {\n        long: 'Nova Scotia',\n        short: 'NS',\n      },\n      {\n        long: 'Nunavut',\n        short: 'NU',\n      },\n      {\n        long: 'Ontario',\n        short: 'ON',\n      },\n      {\n        long: 'Prince Edward Island',\n        short: 'PE',\n      },\n      {\n        long: 'Quebec',\n        short: 'QC',\n      },\n      {\n        long: 'Saskatchewan',\n        short: 'SK',\n      },\n      {\n        long: 'Yukon',\n        short: 'YT',\n      },\n    ],\n  },\n  {\n    long: 'Cape Verde',\n    short: 'CV',\n    regions: [\n      {\n        long: 'Boa Vista',\n        short: 'BV',\n      },\n      {\n        long: 'Brava',\n        short: 'BR',\n      },\n      {\n        long: 'Calheta de São Miguel',\n        short: 'CS',\n      },\n      {\n        long: 'Maio',\n        short: 'MA',\n      },\n      {\n        long: 'Mosteiros',\n        short: 'MO',\n      },\n      {\n        long: 'Paúl',\n        short: 'PA',\n      },\n      {\n        long: 'Porto Novo',\n        short: 'PN',\n      },\n      {\n        long: 'Praia',\n        short: 'PR',\n      },\n      {\n        long: 'Ribeira Brava',\n        short: 'RB',\n      },\n      {\n        long: 'Ribeira Grande',\n        short: 'RG',\n      },\n      {\n        long: 'Sal',\n        short: 'SL',\n      },\n      {\n        long: 'Santa Catarina',\n        short: 'CA',\n      },\n      {\n        long: 'Santa Cruz',\n        short: 'CR',\n      },\n      {\n        long: 'São Domingos',\n        short: 'SD',\n      },\n      {\n        long: 'São Filipe',\n        short: 'SF',\n      },\n      {\n        long: 'São Nicolau',\n        short: 'SN',\n      },\n      {\n        long: 'São Vicente',\n        short: 'SV',\n      },\n      {\n        long: 'Tarrafal',\n        short: 'TA',\n      },\n      {\n        long: 'Tarrafal de São Nicolau',\n        short: 'TS',\n      },\n    ],\n  },\n  {\n    long: 'Cayman Islands',\n    short: 'KY',\n    regions: [\n      {\n        long: 'Creek',\n        short: 'undefined',\n      },\n      {\n        long: 'Eastern',\n        short: 'undefined',\n      },\n      {\n        long: 'Midland',\n        short: 'undefined',\n      },\n      {\n        long: 'South Town',\n        short: 'undefined',\n      },\n      {\n        long: 'Spot Bay',\n        short: 'undefined',\n      },\n      {\n        long: 'Stake Bay',\n        short: 'undefined',\n      },\n      {\n        long: 'West End',\n        short: 'undefined',\n      },\n      {\n        long: 'Western',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Central African Republic',\n    short: 'CF',\n    regions: [\n      {\n        long: 'Bamingui-Bangoran',\n        short: 'BB',\n      },\n      {\n        long: 'Bangui',\n        short: 'BGF',\n      },\n      {\n        long: 'Basse-Kotto',\n        short: 'BK',\n      },\n      {\n        long: 'Haute-Kotto',\n        short: 'HK',\n      },\n      {\n        long: 'Haut-Mbomou',\n        short: 'HM',\n      },\n      {\n        long: 'Kémo',\n        short: 'KG',\n      },\n      {\n        long: 'Lobaye',\n        short: 'LB',\n      },\n      {\n        long: 'Mambéré-Kadéï',\n        short: 'HS',\n      },\n      {\n        long: 'Mbomou',\n        short: 'MB',\n      },\n      {\n        long: 'Nana-Grebizi',\n        short: '10',\n      },\n      {\n        long: 'Nana-Mambéré',\n        short: 'NM',\n      },\n      {\n        long: \"Ombella-M'Poko\",\n        short: 'MP',\n      },\n      {\n        long: 'Ouaka',\n        short: 'UK',\n      },\n      {\n        long: 'Ouham',\n        short: 'AC',\n      },\n      {\n        long: 'Ouham Péndé',\n        short: 'OP',\n      },\n      {\n        long: 'Sangha-Mbaéré',\n        short: 'SE',\n      },\n      {\n        long: 'Vakaga',\n        short: 'VK',\n      },\n    ],\n  },\n  {\n    long: 'Chad',\n    short: 'TD',\n    regions: [\n      {\n        long: 'Bahr el Ghazal',\n        short: 'BG',\n      },\n      {\n        long: 'Batha',\n        short: 'BA',\n      },\n      {\n        long: 'Borkou',\n        short: 'BO',\n      },\n      {\n        long: 'Chari-Baguirmi',\n        short: 'CB',\n      },\n      {\n        long: 'Ennedi-Est',\n        short: 'EE',\n      },\n      {\n        long: 'Ennedi-Ouest',\n        short: 'EO',\n      },\n      {\n        long: 'Guéra',\n        short: 'GR',\n      },\n      {\n        long: 'Hadjer Lamis',\n        short: 'HL',\n      },\n      {\n        long: 'Kanem',\n        short: 'KA',\n      },\n      {\n        long: 'Lac',\n        short: 'LC',\n      },\n      {\n        long: 'Logone Occidental',\n        short: 'LO',\n      },\n      {\n        long: 'Logone Oriental',\n        short: 'LR',\n      },\n      {\n        long: 'Mondoul',\n        short: 'MA',\n      },\n      {\n        long: 'Mayo-Kébbi-Est',\n        short: 'ME',\n      },\n      {\n        long: 'Moyen-Chari',\n        short: 'MC',\n      },\n      {\n        long: 'Ouaddai',\n        short: 'OD',\n      },\n      {\n        long: 'Salamat',\n        short: 'SA',\n      },\n      {\n        long: 'Sila',\n        short: 'SI',\n      },\n      {\n        long: 'Tandjilé',\n        short: 'TA',\n      },\n      {\n        long: 'Tibesti',\n        short: 'TI',\n      },\n      {\n        long: 'Ville de Ndjamena',\n        short: 'ND',\n      },\n      {\n        long: 'Wadi Fira',\n        short: 'WF',\n      },\n    ],\n  },\n  {\n    long: 'Chile',\n    short: 'CL',\n    regions: [\n      {\n        long: 'Aisén del General Carlos Ibáñez del Campo',\n        short: 'AI',\n      },\n      {\n        long: 'Antofagasta',\n        short: 'AN',\n      },\n      {\n        long: 'Araucanía',\n        short: 'AR',\n      },\n      {\n        long: 'Arica y Parinacota',\n        short: 'AP',\n      },\n      {\n        long: 'Atacama',\n        short: 'AT',\n      },\n      {\n        long: 'Bío-Bío',\n        short: 'BI',\n      },\n      {\n        long: 'Coquimbo',\n        short: 'CO',\n      },\n      {\n        long: \"Libertador General Bernardo O'Higgins\",\n        short: 'LI',\n      },\n      {\n        long: 'Los Lagos',\n        short: 'LL',\n      },\n      {\n        long: 'Los Ríos',\n        short: 'LR',\n      },\n      {\n        long: 'Magallanes y Antartica Chilena',\n        short: 'MA',\n      },\n      {\n        long: 'Marga-Marga',\n        short: '',\n      },\n      {\n        long: 'Maule',\n        short: 'ML',\n      },\n      {\n        long: 'Ñuble',\n        short: 'NB',\n      },\n      {\n        long: 'Región Metropolitana de Santiago',\n        short: 'RM',\n      },\n      {\n        long: 'Tarapacá',\n        short: 'TA',\n      },\n      {\n        long: 'Valparaíso',\n        short: 'VS',\n      },\n    ],\n  },\n  {\n    long: 'China',\n    short: 'CN',\n    regions: [\n      {\n        long: 'Anhui',\n        short: 'AH',\n      },\n      {\n        long: 'Beijing',\n        short: 'BJ',\n      },\n      {\n        long: 'Chongqing',\n        short: 'CQ',\n      },\n      {\n        long: 'Fujian',\n        short: 'FJ',\n      },\n      {\n        long: 'Gansu',\n        short: 'GS',\n      },\n      {\n        long: 'Guangdong',\n        short: 'GD',\n      },\n      {\n        long: 'Guangxi',\n        short: 'GX',\n      },\n      {\n        long: 'Guizhou',\n        short: 'GZ',\n      },\n      {\n        long: 'Hainan',\n        short: 'HI',\n      },\n      {\n        long: 'Hebei',\n        short: 'HE',\n      },\n      {\n        long: 'Heilongjiang',\n        short: 'HL',\n      },\n      {\n        long: 'Henan',\n        short: 'HA',\n      },\n      {\n        long: 'Hong Kong',\n        short: 'HK',\n      },\n      {\n        long: 'Hubei',\n        short: 'HB',\n      },\n      {\n        long: 'Hunan',\n        short: 'HN',\n      },\n      {\n        long: 'Inner Mongolia',\n        short: 'NM',\n      },\n      {\n        long: 'Jiangsu',\n        short: 'JS',\n      },\n      {\n        long: 'Jiangxi',\n        short: 'JX',\n      },\n      {\n        long: 'Jilin',\n        short: 'JL',\n      },\n      {\n        long: 'Liaoning',\n        short: 'LN',\n      },\n      {\n        long: 'Macau',\n        short: 'MO',\n      },\n      {\n        long: 'Ningxia',\n        short: 'NX',\n      },\n      {\n        long: 'Qinghai',\n        short: 'QH',\n      },\n      {\n        long: 'Shaanxi',\n        short: 'SN',\n      },\n      {\n        long: 'Shandong',\n        short: 'SD',\n      },\n      {\n        long: 'Shanghai',\n        short: 'SH',\n      },\n      {\n        long: 'Shanxi',\n        short: 'SX',\n      },\n      {\n        long: 'Sichuan',\n        short: 'SC',\n      },\n      {\n        long: 'Tianjin',\n        short: 'TJ',\n      },\n      {\n        long: 'Tibet',\n        short: 'XZ',\n      },\n      {\n        long: 'Xinjiang',\n        short: 'XJ',\n      },\n      {\n        long: 'Yunnan',\n        short: 'YN',\n      },\n      {\n        long: 'Zhejiang',\n        short: 'ZJ',\n      },\n    ],\n  },\n  {\n    long: 'Christmas Island',\n    short: 'CX',\n    regions: [\n      {\n        long: 'Christmas Island',\n        short: 'CX',\n      },\n    ],\n  },\n  {\n    long: 'Cocos (Keeling) Islands',\n    short: 'CC',\n    regions: [\n      {\n        long: 'Direction Island',\n        short: 'DI',\n      },\n      {\n        long: 'Home Island',\n        short: 'HM',\n      },\n      {\n        long: 'Horsburgh Island',\n        short: 'HR',\n      },\n      {\n        long: 'North Keeling Island',\n        short: 'NK',\n      },\n      {\n        long: 'South Island',\n        short: 'SI',\n      },\n      {\n        long: 'West Island',\n        short: 'WI',\n      },\n    ],\n  },\n  {\n    long: 'Colombia',\n    short: 'CO',\n    regions: [\n      {\n        long: 'Amazonas',\n        short: 'AMA',\n      },\n      {\n        long: 'Antioquia',\n        short: 'ANT',\n      },\n      {\n        long: 'Arauca',\n        short: 'ARA',\n      },\n      {\n        long: 'Archipiélago de San Andrés',\n        short: 'SAP',\n      },\n      {\n        long: 'Atlántico',\n        short: 'ATL',\n      },\n      {\n        long: 'Bogotá D.C.',\n        short: 'DC',\n      },\n      {\n        long: 'Bolívar',\n        short: 'BOL',\n      },\n      {\n        long: 'Boyacá',\n        short: 'BOY',\n      },\n      {\n        long: 'Caldas',\n        short: 'CAL',\n      },\n      {\n        long: 'Caquetá',\n        short: 'CAQ',\n      },\n      {\n        long: 'Casanare',\n        short: 'CAS',\n      },\n      {\n        long: 'Cauca',\n        short: 'CAU',\n      },\n      {\n        long: 'Cesar',\n        short: 'CES',\n      },\n      {\n        long: 'Chocó',\n        short: 'CHO',\n      },\n      {\n        long: 'Córdoba',\n        short: 'COR',\n      },\n      {\n        long: 'Cundinamarca',\n        short: 'CUN',\n      },\n      {\n        long: 'Guainía',\n        short: 'GUA',\n      },\n      {\n        long: 'Guaviare',\n        short: 'GUV',\n      },\n      {\n        long: 'Huila',\n        short: 'HUI',\n      },\n      {\n        long: 'La Guajira',\n        short: 'LAG',\n      },\n      {\n        long: 'Magdalena',\n        short: 'MAG',\n      },\n      {\n        long: 'Meta',\n        short: 'MET',\n      },\n      {\n        long: 'Nariño',\n        short: 'NAR',\n      },\n      {\n        long: 'Norte de Santander',\n        short: 'NSA',\n      },\n      {\n        long: 'Putumayo',\n        short: 'PUT',\n      },\n      {\n        long: 'Quindío',\n        short: 'QUI',\n      },\n      {\n        long: 'Risaralda',\n        short: 'RIS',\n      },\n      {\n        long: 'Santander',\n        short: 'SAN',\n      },\n      {\n        long: 'Sucre',\n        short: 'SUC',\n      },\n      {\n        long: 'Tolima',\n        short: 'TOL',\n      },\n      {\n        long: 'Valle del Cauca',\n        short: 'VAC',\n      },\n      {\n        long: 'Vaupés',\n        short: 'VAU',\n      },\n      {\n        long: 'Vichada',\n        short: 'VID',\n      },\n    ],\n  },\n  {\n    long: 'Comoros',\n    short: 'KM',\n    regions: [\n      {\n        long: 'Andjazîdja',\n        short: 'G',\n      },\n      {\n        long: 'Andjouân',\n        short: 'A',\n      },\n      {\n        long: 'Moûhîlî',\n        short: 'M',\n      },\n    ],\n  },\n  {\n    long: 'Congo, Republic of the (Brazzaville)',\n    short: 'CG',\n    regions: [\n      {\n        long: 'Bouenza',\n        short: '11',\n      },\n      {\n        long: 'Brazzaville',\n        short: 'BZV',\n      },\n      {\n        long: 'Cuvette',\n        short: '8',\n      },\n      {\n        long: 'Cuvette-Ouest',\n        short: '15',\n      },\n      {\n        long: 'Kouilou',\n        short: '5',\n      },\n      {\n        long: 'Lékoumou',\n        short: '2',\n      },\n      {\n        long: 'Likouala',\n        short: '7',\n      },\n      {\n        long: 'Niari',\n        short: '9',\n      },\n      {\n        long: 'Plateaux',\n        short: '14',\n      },\n      {\n        long: 'Pointe-Noire',\n        short: '16',\n      },\n      {\n        long: 'Pool',\n        short: '12',\n      },\n      {\n        long: 'Sangha',\n        short: '13',\n      },\n    ],\n  },\n  {\n    long: 'Congo, the Democratic Republic of the (Kinshasa)',\n    short: 'CD',\n    regions: [\n      {\n        long: 'Bandundu',\n        short: 'BN',\n      },\n      {\n        long: 'Bas-Congo',\n        short: 'BC',\n      },\n      {\n        long: 'Équateur',\n        short: 'EQ',\n      },\n      {\n        long: 'Kasaï-Occidental',\n        short: 'KE',\n      },\n      {\n        long: 'Kasaï-Oriental',\n        short: 'KW',\n      },\n      {\n        long: 'Katanga',\n        short: 'KA',\n      },\n      {\n        long: 'Kinshasa',\n        short: 'KN',\n      },\n      {\n        long: 'Maniema',\n        short: 'MA',\n      },\n      {\n        long: 'Nord-Kivu',\n        short: 'NK',\n      },\n      {\n        long: 'Orientale',\n        short: 'OR',\n      },\n      {\n        long: 'Sud-Kivu',\n        short: 'SK',\n      },\n    ],\n  },\n  {\n    long: 'Cook Islands',\n    short: 'CK',\n    regions: [\n      {\n        long: 'Aitutaki',\n        short: 'undefined',\n      },\n      {\n        long: 'Atiu',\n        short: 'undefined',\n      },\n      {\n        long: 'Avarua',\n        short: 'undefined',\n      },\n      {\n        long: 'Mangaia',\n        short: 'undefined',\n      },\n      {\n        long: 'Manihiki',\n        short: 'undefined',\n      },\n      {\n        long: \"Ma'uke\",\n        short: 'undefined',\n      },\n      {\n        long: 'Mitiaro',\n        short: 'undefined',\n      },\n      {\n        long: 'Nassau',\n        short: 'undefined',\n      },\n      {\n        long: 'Palmerston',\n        short: 'undefined',\n      },\n      {\n        long: 'Penrhyn',\n        short: 'undefined',\n      },\n      {\n        long: 'Pukapuka',\n        short: 'undefined',\n      },\n      {\n        long: 'Rakahanga',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Costa Rica',\n    short: 'CR',\n    regions: [\n      {\n        long: 'Alajuela',\n        short: '2',\n      },\n      {\n        long: 'Cartago',\n        short: '3',\n      },\n      {\n        long: 'Guanacaste',\n        short: '5',\n      },\n      {\n        long: 'Heredia',\n        short: '4',\n      },\n      {\n        long: 'Limón',\n        short: '7',\n      },\n      {\n        long: 'Puntarenas',\n        short: '6',\n      },\n      {\n        long: 'San José',\n        short: '1',\n      },\n    ],\n  },\n  {\n    long: \"Côte d'Ivoire, Republic of\",\n    short: 'CI',\n    regions: [\n      {\n        long: 'Agnéby',\n        short: '16',\n      },\n      {\n        long: 'Bafing',\n        short: '17',\n      },\n      {\n        long: 'Bas-Sassandra',\n        short: '09',\n      },\n      {\n        long: 'Denguélé',\n        short: '10',\n      },\n      {\n        long: 'Dix-Huit Montagnes',\n        short: '06',\n      },\n      {\n        long: 'Fromager',\n        short: '18',\n      },\n      {\n        long: 'Haut-Sassandra',\n        short: '02',\n      },\n      {\n        long: 'Lacs',\n        short: '07',\n      },\n      {\n        long: 'Lagunes',\n        short: '01',\n      },\n      {\n        long: 'Marahoué',\n        short: '12',\n      },\n      {\n        long: 'Moyen-Cavally',\n        short: '19',\n      },\n      {\n        long: 'Moyen-Comoé',\n        short: '05',\n      },\n      {\n        long: \"N'zi-Comoé\",\n        short: '11',\n      },\n      {\n        long: 'Savanes',\n        short: '03',\n      },\n      {\n        long: 'Sud-Bandama',\n        short: '15',\n      },\n      {\n        long: 'Sud-Comoé',\n        short: '13',\n      },\n      {\n        long: 'Vallée du Bandama',\n        short: '04',\n      },\n      {\n        long: 'Worodougou',\n        short: '14',\n      },\n      {\n        long: 'Zanzan',\n        short: '08',\n      },\n    ],\n  },\n  {\n    long: 'Croatia',\n    short: 'HR',\n    regions: [\n      {\n        long: 'Bjelovarsko-bilogorska županija',\n        short: '07',\n      },\n      {\n        long: 'Brodsko-posavska županija',\n        short: '12',\n      },\n      {\n        long: 'Dubrovačko-neretvanska županija',\n        short: '19',\n      },\n      {\n        long: 'Grad Zagreb',\n        short: '21',\n      },\n      {\n        long: 'Istarska županija',\n        short: '18',\n      },\n      {\n        long: 'Karlovačka županija',\n        short: '04',\n      },\n      {\n        long: 'Koprivničko-križevačka županija',\n        short: '06',\n      },\n      {\n        long: 'Krapinsko-zagorska županija',\n        short: '02',\n      },\n      {\n        long: 'Ličko-senjska županija',\n        short: '09',\n      },\n      {\n        long: 'Međimurska županija',\n        short: '20',\n      },\n      {\n        long: 'Osječko-baranjska županija',\n        short: '14',\n      },\n      {\n        long: 'Požeško-slavonska županija',\n        short: '11',\n      },\n      {\n        long: 'Primorsko-goranska županija',\n        short: '08',\n      },\n      {\n        long: 'Sisačko-moslavačka županija',\n        short: '03',\n      },\n      {\n        long: 'Splitsko-dalmatinska županija',\n        short: '17',\n      },\n      {\n        long: 'Šibensko-kninska županija',\n        short: '15',\n      },\n      {\n        long: 'Varaždinska županija',\n        short: '05',\n      },\n      {\n        long: 'Virovitičko-podravska županija',\n        short: '10',\n      },\n      {\n        long: 'Vukovarsko-srijemska županija',\n        short: '16',\n      },\n      {\n        long: 'Zadarska županija',\n        short: '13',\n      },\n      {\n        long: 'Zagrebačka županija',\n        short: '01',\n      },\n    ],\n  },\n  {\n    long: 'Cuba',\n    short: 'CU',\n    regions: [\n      {\n        long: 'Artemisa',\n        short: '15',\n      },\n      {\n        long: 'Camagüey',\n        short: '09',\n      },\n      {\n        long: 'Ciego de Ávila',\n        short: '08',\n      },\n      {\n        long: 'Cienfuegos',\n        short: '06',\n      },\n      {\n        long: 'Granma',\n        short: '12',\n      },\n      {\n        long: 'Guantánamo',\n        short: '14',\n      },\n      {\n        long: 'Holguín',\n        short: '11',\n      },\n      {\n        long: 'Isla de la Juventud',\n        short: '99',\n      },\n      {\n        long: 'La Habana',\n        short: '03',\n      },\n      {\n        long: 'Las Tunas',\n        short: '10',\n      },\n      {\n        long: 'Matanzas',\n        short: '04',\n      },\n      {\n        long: 'Mayabeque',\n        short: '16',\n      },\n      {\n        long: 'Pinar del Río',\n        short: '01',\n      },\n      {\n        long: 'Sancti Spíritus',\n        short: '07',\n      },\n      {\n        long: 'Santiago de Cuba',\n        short: '13',\n      },\n      {\n        long: 'Villa Clara',\n        short: '05',\n      },\n    ],\n  },\n  {\n    long: 'Curaçao',\n    short: 'CW',\n    regions: [\n      {\n        long: 'Curaçao',\n        short: 'CW',\n      },\n    ],\n  },\n  {\n    long: 'Cyprus',\n    short: 'CY',\n    regions: [\n      {\n        long: 'Ammochostos',\n        short: '04',\n      },\n      {\n        long: 'Keryneia',\n        short: '06',\n      },\n      {\n        long: 'Larnaka',\n        short: '03',\n      },\n      {\n        long: 'Lefkosia',\n        short: '01',\n      },\n      {\n        long: 'Lemesos',\n        short: '02',\n      },\n      {\n        long: 'Pafos',\n        short: '05',\n      },\n    ],\n  },\n  {\n    long: 'Czech Republic',\n    short: 'CZ',\n    regions: [\n      {\n        long: 'Hlavní město Praha',\n        short: 'PR',\n      },\n      {\n        long: 'Jihočeský kraj',\n        short: 'JC',\n      },\n      {\n        long: 'Jihomoravský kraj',\n        short: 'JM',\n      },\n      {\n        long: 'Karlovarský kraj',\n        short: 'KA',\n      },\n      {\n        long: 'Královéhradecký kraj',\n        short: 'KR',\n      },\n      {\n        long: 'Liberecký kraj',\n        short: 'LI',\n      },\n      {\n        long: 'Moravskoslezský kraj',\n        short: 'MO',\n      },\n      {\n        long: 'Olomoucký kraj',\n        short: 'OL',\n      },\n      {\n        long: 'Pardubický kraj',\n        short: 'PA',\n      },\n      {\n        long: 'Plzeňský kraj',\n        short: 'PL',\n      },\n      {\n        long: 'Středočeský kraj',\n        short: 'ST',\n      },\n      {\n        long: 'Ústecký kraj',\n        short: 'US',\n      },\n      {\n        long: 'Vysočina',\n        short: 'VY',\n      },\n      {\n        long: 'Zlínský kraj',\n        short: 'ZL',\n      },\n    ],\n  },\n  {\n    long: 'Denmark',\n    short: 'DK',\n    regions: [\n      {\n        long: 'Hovedstaden',\n        short: '84',\n      },\n      {\n        long: 'Kujalleq',\n        short: 'GL-KU',\n      },\n      {\n        long: 'Midtjylland',\n        short: '82',\n      },\n      {\n        long: 'Norderøerne',\n        short: 'FO-01',\n      },\n      {\n        long: 'Nordjylland',\n        short: '81',\n      },\n      {\n        long: 'Østerø',\n        short: 'FO-06',\n      },\n      {\n        long: 'Qaasuitsup',\n        short: 'GL-QA',\n      },\n      {\n        long: 'Qeqqata',\n        short: 'GL-QE',\n      },\n      {\n        long: 'Sandø',\n        short: 'FO-02',\n      },\n      {\n        long: 'Sermersooq',\n        short: 'GL-SM',\n      },\n      {\n        long: 'Sjælland',\n        short: '85',\n      },\n      {\n        long: 'Strømø',\n        short: 'FO-03',\n      },\n      {\n        long: 'Suderø',\n        short: 'FO-04',\n      },\n      {\n        long: 'Syddanmark',\n        short: '83',\n      },\n      {\n        long: 'Vågø',\n        short: 'FO-05',\n      },\n    ],\n  },\n  {\n    long: 'Djibouti',\n    short: 'DJ',\n    regions: [\n      {\n        long: 'Ali Sabieh',\n        short: 'AS',\n      },\n      {\n        long: 'Arta',\n        short: 'AR',\n      },\n      {\n        long: 'Dikhil',\n        short: 'DI',\n      },\n      {\n        long: 'Obock',\n        short: 'OB',\n      },\n      {\n        long: 'Tadjourah',\n        short: 'TA',\n      },\n    ],\n  },\n  {\n    long: 'Dominica',\n    short: 'DM',\n    regions: [\n      {\n        long: 'Saint Andrew Parish',\n        short: '02',\n      },\n      {\n        long: 'Saint David Parish',\n        short: '03',\n      },\n      {\n        long: 'Saint George Parish',\n        short: '04',\n      },\n      {\n        long: 'Saint John Parish',\n        short: '05',\n      },\n      {\n        long: 'Saint Joseph Parish',\n        short: '06',\n      },\n      {\n        long: 'Saint Luke Parish',\n        short: '07',\n      },\n      {\n        long: 'Saint Mark Parish',\n        short: '08',\n      },\n      {\n        long: 'Saint Patrick Parish',\n        short: '09',\n      },\n      {\n        long: 'Saint Paul Parish',\n        short: '10',\n      },\n      {\n        long: 'Saint Peter Parish',\n        short: '11',\n      },\n    ],\n  },\n  {\n    long: 'Dominican Republic',\n    short: 'DO',\n    regions: [\n      {\n        long: 'Cibao Central',\n        short: '02',\n      },\n      {\n        long: 'Del Valle',\n        short: '37',\n      },\n      {\n        long: 'Distrito Nacional',\n        short: '01',\n      },\n      {\n        long: 'Enriquillo',\n        short: '38',\n      },\n      {\n        long: 'Norcentral',\n        short: '04',\n      },\n      {\n        long: 'Nordeste',\n        short: '33',\n      },\n      {\n        long: 'Noroeste',\n        short: '34',\n      },\n      {\n        long: 'Norte',\n        short: '35',\n      },\n      {\n        long: 'Valdesia',\n        short: '42',\n      },\n    ],\n  },\n  {\n    long: 'Ecuador',\n    short: 'EC',\n    regions: [\n      {\n        long: 'Azuay',\n        short: 'A',\n      },\n      {\n        long: 'Bolívar',\n        short: 'B',\n      },\n      {\n        long: 'Cañar',\n        short: 'F',\n      },\n      {\n        long: 'Carchi',\n        short: 'C',\n      },\n      {\n        long: 'Chimborazo',\n        short: 'H',\n      },\n      {\n        long: 'Cotopaxi',\n        short: 'X',\n      },\n      {\n        long: 'El Oro',\n        short: 'O',\n      },\n      {\n        long: 'Esmeraldas',\n        short: 'E',\n      },\n      {\n        long: 'Galápagos',\n        short: 'W',\n      },\n      {\n        long: 'Guayas',\n        short: 'G',\n      },\n      {\n        long: 'Imbabura',\n        short: 'I',\n      },\n      {\n        long: 'Loja',\n        short: 'L',\n      },\n      {\n        long: 'Los Ríos',\n        short: 'R',\n      },\n      {\n        long: 'Manabí',\n        short: 'M',\n      },\n      {\n        long: 'Morona-Santiago',\n        short: 'S',\n      },\n      {\n        long: 'Napo',\n        short: 'N',\n      },\n      {\n        long: 'Orellana',\n        short: 'D',\n      },\n      {\n        long: 'Pastaza',\n        short: 'Y',\n      },\n      {\n        long: 'Pichincha',\n        short: 'P',\n      },\n      {\n        long: 'Santa Elena',\n        short: 'SE',\n      },\n      {\n        long: 'Santo Domingo de los Tsáchilas',\n        short: 'SD',\n      },\n      {\n        long: 'Sucumbíos',\n        short: 'U',\n      },\n      {\n        long: 'Tungurahua',\n        short: 'T',\n      },\n      {\n        long: 'Zamora-Chinchipe',\n        short: 'Z',\n      },\n    ],\n  },\n  {\n    long: 'Egypt',\n    short: 'EG',\n    regions: [\n      {\n        long: 'Alexandria',\n        short: 'ALX',\n      },\n      {\n        long: 'Aswan',\n        short: 'ASN',\n      },\n      {\n        long: 'Asyout',\n        short: 'AST',\n      },\n      {\n        long: 'Bani Sueif',\n        short: 'BNS',\n      },\n      {\n        long: 'Beheira',\n        short: 'BH',\n      },\n      {\n        long: 'Cairo',\n        short: 'C',\n      },\n      {\n        long: 'Daqahlia',\n        short: 'DK',\n      },\n      {\n        long: 'Dumiat',\n        short: 'DT',\n      },\n      {\n        long: 'El Bahr El Ahmar',\n        short: 'BA',\n      },\n      {\n        long: 'El Ismailia',\n        short: 'IS',\n      },\n      {\n        long: 'El Suez',\n        short: 'SUZ',\n      },\n      {\n        long: 'El Wadi El Gedeed',\n        short: 'WAD',\n      },\n      {\n        long: 'Fayoum',\n        short: 'FYM',\n      },\n      {\n        long: 'Gharbia',\n        short: 'GH',\n      },\n      {\n        long: 'Giza',\n        short: 'GZ',\n      },\n      {\n        long: 'Helwan',\n        short: 'HU',\n      },\n      {\n        long: 'Kafr El Sheikh',\n        short: 'KFS',\n      },\n      {\n        long: 'Luxor',\n        short: 'LX',\n      },\n      {\n        long: 'Matrouh',\n        short: 'MT',\n      },\n      {\n        long: 'Menia',\n        short: 'MN',\n      },\n      {\n        long: 'Menofia',\n        short: 'MNF',\n      },\n      {\n        long: 'North Sinai',\n        short: 'SIN',\n      },\n      {\n        long: 'Port Said',\n        short: 'PTS',\n      },\n      {\n        long: 'Qalubia',\n        short: 'KB',\n      },\n      {\n        long: 'Qena',\n        short: 'KN',\n      },\n      {\n        long: 'Sharqia',\n        short: 'SHR',\n      },\n      {\n        long: 'Sixth of October',\n        short: 'SU',\n      },\n      {\n        long: 'Sohag',\n        short: 'SHG',\n      },\n      {\n        long: 'South Sinai',\n        short: 'JS',\n      },\n    ],\n  },\n  {\n    long: 'El Salvador',\n    short: 'SV',\n    regions: [\n      {\n        long: 'Ahuachapán',\n        short: 'AH',\n      },\n      {\n        long: 'Cabañas',\n        short: 'CA',\n      },\n      {\n        long: 'Cuscatlán',\n        short: 'CU',\n      },\n      {\n        long: 'Chalatenango',\n        short: 'CH',\n      },\n      {\n        long: 'La Libertad',\n        short: 'LI',\n      },\n      {\n        long: 'La Paz',\n        short: 'PA',\n      },\n      {\n        long: 'La Unión',\n        short: 'UN',\n      },\n      {\n        long: 'Morazán',\n        short: 'MO',\n      },\n      {\n        long: 'San Miguel',\n        short: 'SM',\n      },\n      {\n        long: 'San Salvador',\n        short: 'SS',\n      },\n      {\n        long: 'Santa Ana',\n        short: 'SA',\n      },\n      {\n        long: 'San Vicente',\n        short: 'SV',\n      },\n      {\n        long: 'Sonsonate',\n        short: 'SO',\n      },\n      {\n        long: 'Usulután',\n        short: 'US',\n      },\n    ],\n  },\n  {\n    long: 'Equatorial Guinea',\n    short: 'GQ',\n    regions: [\n      {\n        long: 'Annobón',\n        short: 'AN',\n      },\n      {\n        long: 'Bioko Norte',\n        short: 'BN',\n      },\n      {\n        long: 'Bioko Sur',\n        short: 'BS',\n      },\n      {\n        long: 'Centro Sur',\n        short: 'CS',\n      },\n      {\n        long: 'Kié-Ntem',\n        short: 'KN',\n      },\n      {\n        long: 'Litoral',\n        short: 'LI',\n      },\n      {\n        long: 'Wele-Nzas',\n        short: 'WN',\n      },\n    ],\n  },\n  {\n    long: 'Eritrea',\n    short: 'ER',\n    regions: [\n      {\n        long: 'Anseba',\n        short: 'AN',\n      },\n      {\n        long: 'Debub',\n        short: 'DU',\n      },\n      {\n        long: 'Debub-Keih-Bahri',\n        short: 'DK',\n      },\n      {\n        long: 'Gash-Barka',\n        short: 'GB',\n      },\n      {\n        long: 'Maekel',\n        short: 'MA',\n      },\n      {\n        long: 'Semien-Keih-Bahri',\n        short: 'SK',\n      },\n    ],\n  },\n  {\n    long: 'Estonia',\n    short: 'EE',\n    regions: [\n      {\n        long: 'Harjumaa (Tallinn)',\n        short: '37',\n      },\n      {\n        long: 'Hiiumaa (Kardla)',\n        short: '39',\n      },\n      {\n        long: 'Ida-Virumaa (Johvi)',\n        short: '44',\n      },\n      {\n        long: 'Järvamaa (Paide)',\n        short: '41',\n      },\n      {\n        long: 'Jõgevamaa (Jogeva)',\n        short: '49',\n      },\n      {\n        long: 'Läänemaa',\n        short: '57',\n      },\n      {\n        long: 'Lääne-Virumaa (Rakvere)',\n        short: '59',\n      },\n      {\n        long: 'Pärnumaa (Parnu)',\n        short: '67',\n      },\n      {\n        long: 'Põlvamaa (Polva)',\n        short: '65',\n      },\n      {\n        long: 'Raplamaa (Rapla)',\n        short: '70',\n      },\n      {\n        long: 'Saaremaa (Kuessaare)',\n        short: '74',\n      },\n      {\n        long: 'Tartumaa (Tartu)',\n        short: '78',\n      },\n      {\n        long: 'Valgamaa (Valga)',\n        short: '82',\n      },\n      {\n        long: 'Viljandimaa (Viljandi)',\n        short: '84',\n      },\n      {\n        long: 'Võrumaa (Voru)',\n        short: '86',\n      },\n    ],\n  },\n  {\n    long: 'Ethiopia',\n    short: 'ET',\n    regions: [\n      {\n        long: 'Addis Ababa',\n        short: 'AA',\n      },\n      {\n        long: 'Afar',\n        short: 'AF',\n      },\n      {\n        long: 'Amhara',\n        short: 'AM',\n      },\n      {\n        long: 'Benshangul-Gumaz',\n        short: 'BE',\n      },\n      {\n        long: 'Dire Dawa',\n        short: 'DD',\n      },\n      {\n        long: 'Gambela',\n        short: 'GA',\n      },\n      {\n        long: 'Harari',\n        short: 'HA',\n      },\n      {\n        long: 'Oromia',\n        short: 'OR',\n      },\n      {\n        long: 'Somali',\n        short: 'SO',\n      },\n      {\n        long: \"Southern Nations Nationalities and People's Region\",\n        short: 'SN',\n      },\n      {\n        long: 'Tigray',\n        short: 'TI',\n      },\n    ],\n  },\n  {\n    long: 'Falkland Islands (Islas Malvinas)',\n    short: 'FK',\n    regions: [\n      {\n        long: 'Falkland Islands (Islas Malvinas)',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Faroe Islands',\n    short: 'FO',\n    regions: [\n      {\n        long: 'Bordoy',\n        short: 'undefined',\n      },\n      {\n        long: 'Eysturoy',\n        short: 'undefined',\n      },\n      {\n        long: 'Mykines',\n        short: 'undefined',\n      },\n      {\n        long: 'Sandoy',\n        short: 'undefined',\n      },\n      {\n        long: 'Skuvoy',\n        short: 'undefined',\n      },\n      {\n        long: 'Streymoy',\n        short: 'undefined',\n      },\n      {\n        long: 'Suduroy',\n        short: 'undefined',\n      },\n      {\n        long: 'Tvoroyri',\n        short: 'undefined',\n      },\n      {\n        long: 'Vagar',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Fiji',\n    short: 'FJ',\n    regions: [\n      {\n        long: 'Ba',\n        short: '01',\n      },\n      {\n        long: 'Bua',\n        short: '02',\n      },\n      {\n        long: 'Cakaudrove',\n        short: '03',\n      },\n      {\n        long: 'Kadavu',\n        short: '04',\n      },\n      {\n        long: 'Lau',\n        short: '05',\n      },\n      {\n        long: 'Lomaiviti',\n        short: '06',\n      },\n      {\n        long: 'Macuata',\n        short: '07',\n      },\n      {\n        long: 'Nadroga and Navosa',\n        short: '08',\n      },\n      {\n        long: 'Naitasiri',\n        short: '09',\n      },\n      {\n        long: 'Namosi',\n        short: '10',\n      },\n      {\n        long: 'Ra',\n        short: '11',\n      },\n      {\n        long: 'Rewa',\n        short: '12',\n      },\n      {\n        long: 'Rotuma',\n        short: 'R',\n      },\n      {\n        long: 'Serua',\n        short: '13',\n      },\n      {\n        long: 'Tailevu',\n        short: '14',\n      },\n    ],\n  },\n  {\n    long: 'Finland',\n    short: 'FI',\n    regions: [\n      {\n        long: 'Ahvenanmaan maakunta',\n        short: 'FI-01',\n      },\n      {\n        long: 'Etelä-Karjala',\n        short: 'FI-02',\n      },\n      {\n        long: 'Etelä-Pohjanmaa',\n        short: 'FI-03',\n      },\n      {\n        long: 'Etelä-Savo',\n        short: 'FI-04',\n      },\n      {\n        long: 'Kainuu',\n        short: 'FI-05',\n      },\n      {\n        long: 'Kanta-Häme',\n        short: 'FI-06',\n      },\n      {\n        long: 'Keski-Pohjanmaa',\n        short: 'FI-07',\n      },\n      {\n        long: 'Keski-Suomi',\n        short: 'FI-08',\n      },\n      {\n        long: 'Kymenlaakso',\n        short: 'FI-09',\n      },\n      {\n        long: 'Lappi',\n        short: 'FI-10',\n      },\n      {\n        long: 'Pirkanmaa',\n        short: 'FI-11',\n      },\n      {\n        long: 'Pohjanmaa',\n        short: 'FI-12',\n      },\n      {\n        long: 'Pohjois-Karjala',\n        short: 'FI-13',\n      },\n      {\n        long: 'Pohjois-Pohjanmaa',\n        short: 'FI-14',\n      },\n      {\n        long: 'Pohjois-Savo',\n        short: 'FI-15',\n      },\n      {\n        long: 'Päijät-Häme',\n        short: 'FI-16',\n      },\n      {\n        long: 'Satakunta',\n        short: 'FI-17',\n      },\n      {\n        long: 'Uusimaa',\n        short: 'FI-18',\n      },\n      {\n        long: 'Varsinais-Suomi',\n        short: 'FI-19',\n      },\n    ],\n  },\n  {\n    long: 'France',\n    short: 'FR',\n    regions: [\n      {\n        long: 'Auvergne-Rhône-Alpes',\n        short: 'ARA',\n      },\n      {\n        long: 'Bourgogne-Franche-Comté',\n        short: 'BFC',\n      },\n      {\n        long: 'Bretagne',\n        short: 'BRE',\n      },\n      {\n        long: 'Centre-Val de Loire',\n        short: 'CVL',\n      },\n      {\n        long: 'Corse',\n        short: 'COR',\n      },\n      {\n        long: 'Grand Est',\n        short: 'GES',\n      },\n      {\n        long: 'Hauts-de-France',\n        short: 'HDF',\n      },\n      {\n        long: 'Île-de-France',\n        short: 'IDF',\n      },\n      {\n        long: 'Normandie',\n        short: 'NOR',\n      },\n      {\n        long: 'Nouvelle-Aquitaine',\n        short: 'NAQ',\n      },\n      {\n        long: 'Occitanie',\n        short: 'OCC',\n      },\n      {\n        long: 'Pays de la Loire',\n        short: 'PDL',\n      },\n      {\n        long: \"Provence-Alpes-Cote d'Azur\",\n        short: 'PAC',\n      },\n      {\n        long: 'Clipperton',\n        short: 'CP',\n      },\n      {\n        long: 'Guadeloupe',\n        short: 'GP',\n      },\n      {\n        long: 'Guyane',\n        short: 'GF',\n      },\n      {\n        long: 'Martinique',\n        short: 'MQ',\n      },\n      {\n        long: 'Mayotte',\n        short: 'YT',\n      },\n      {\n        long: 'Novelle-Calédonie',\n        short: 'NC',\n      },\n      {\n        long: 'Polynésie',\n        short: 'PF',\n      },\n      {\n        long: 'Saint-Pierre-et-Miquelon',\n        short: 'PM',\n      },\n      {\n        long: 'Saint Barthélemy',\n        short: 'BL',\n      },\n      {\n        long: 'Saint Martin',\n        short: 'MF',\n      },\n      {\n        long: 'Réunion',\n        short: 'RE',\n      },\n      {\n        long: 'Terres Australes Françaises',\n        short: 'TF',\n      },\n      {\n        long: 'Wallis-et-Futuna',\n        short: 'WF',\n      },\n    ],\n  },\n  {\n    long: 'French Guiana',\n    short: 'GF',\n    regions: [\n      {\n        long: 'French Guiana',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'French Polynesia',\n    short: 'PF',\n    regions: [\n      {\n        long: 'Archipel des Marquises',\n        short: 'undefined',\n      },\n      {\n        long: 'Archipel des Tuamotu',\n        short: 'undefined',\n      },\n      {\n        long: 'Archipel des Tubuai',\n        short: 'undefined',\n      },\n      {\n        long: 'Iles du Vent',\n        short: 'undefined',\n      },\n      {\n        long: 'Iles Sous-le-Vent',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'French Southern and Antarctic Lands',\n    short: 'TF',\n    regions: [\n      {\n        long: 'Adelie Land',\n        short: 'undefined',\n      },\n      {\n        long: 'Ile Crozet',\n        short: 'undefined',\n      },\n      {\n        long: 'Iles Kerguelen',\n        short: 'undefined',\n      },\n      {\n        long: 'Iles Saint-Paul et Amsterdam',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Gabon',\n    short: 'GA',\n    regions: [\n      {\n        long: 'Estuaire',\n        short: '1',\n      },\n      {\n        long: 'Haut-Ogooué',\n        short: '2',\n      },\n      {\n        long: 'Moyen-Ogooué',\n        short: '3',\n      },\n      {\n        long: 'Ngounié',\n        short: '4',\n      },\n      {\n        long: 'Nyanga',\n        short: '5',\n      },\n      {\n        long: 'Ogooué-Ivindo',\n        short: '6',\n      },\n      {\n        long: 'Ogooué-Lolo',\n        short: '7',\n      },\n      {\n        long: 'Ogooué-Maritime',\n        short: '8',\n      },\n      {\n        long: 'Woleu-Ntem',\n        short: '9',\n      },\n    ],\n  },\n  {\n    long: 'Gambia, The',\n    short: 'GM',\n    regions: [\n      {\n        long: 'Banjul',\n        short: 'B',\n      },\n      {\n        long: 'Central River',\n        short: 'M',\n      },\n      {\n        long: 'Lower River',\n        short: 'L',\n      },\n      {\n        long: 'North Bank',\n        short: 'N',\n      },\n      {\n        long: 'Upper River',\n        short: 'U',\n      },\n      {\n        long: 'Western',\n        short: 'W',\n      },\n    ],\n  },\n  {\n    long: 'Georgia',\n    short: 'GE',\n    regions: [\n      {\n        long: 'Abkhazia (Sokhumi)',\n        short: 'AB',\n      },\n      {\n        long: \"Ajaria (Bat'umi)\",\n        short: 'AJ',\n      },\n      {\n        long: 'Guria',\n        short: 'GU',\n      },\n      {\n        long: 'Imereti',\n        short: 'IM',\n      },\n      {\n        long: \"K'akheti\",\n        short: 'KA',\n      },\n      {\n        long: 'Kvemo Kartli',\n        short: 'KK',\n      },\n      {\n        long: 'Mtshkheta-Mtianeti',\n        short: 'MM',\n      },\n      {\n        long: \"Rach'a-Lexhkumi-KvemoSvaneti\",\n        short: 'RL',\n      },\n      {\n        long: 'Samegrelo-Zemo Svaneti',\n        short: 'SZ',\n      },\n      {\n        long: 'Samtskhe-Javakheti',\n        short: 'SJ',\n      },\n      {\n        long: 'Shida Kartli',\n        short: 'SK',\n      },\n      {\n        long: 'Tbilisi',\n        short: 'TB',\n      },\n    ],\n  },\n  {\n    long: 'Germany',\n    short: 'DE',\n    regions: [\n      {\n        long: 'Baden-Württemberg',\n        short: 'BW',\n      },\n      {\n        long: 'Bayern',\n        short: 'BY',\n      },\n      {\n        long: 'Berlin',\n        short: 'BE',\n      },\n      {\n        long: 'Brandenburg',\n        short: 'BB',\n      },\n      {\n        long: 'Bremen',\n        short: 'HB',\n      },\n      {\n        long: 'Hamburg',\n        short: 'HH',\n      },\n      {\n        long: 'Hessen',\n        short: 'HE',\n      },\n      {\n        long: 'Mecklenburg-Vorpommern',\n        short: 'MV',\n      },\n      {\n        long: 'Niedersachsen',\n        short: 'NI',\n      },\n      {\n        long: 'Nordrhein-Westfalen',\n        short: 'NW',\n      },\n      {\n        long: 'Rheinland-Pfalz',\n        short: 'RP',\n      },\n      {\n        long: 'Saarland',\n        short: 'SL',\n      },\n      {\n        long: 'Sachsen',\n        short: 'SN',\n      },\n      {\n        long: 'Sachsen-Anhalt',\n        short: 'ST',\n      },\n      {\n        long: 'Schleswig-Holstein',\n        short: 'SH',\n      },\n      {\n        long: 'Thüringen',\n        short: 'TH',\n      },\n    ],\n  },\n  {\n    long: 'Ghana',\n    short: 'GH',\n    regions: [\n      {\n        long: 'Ahafo',\n        short: 'undefined',\n      },\n      {\n        long: 'Ashanti',\n        short: 'AH',\n      },\n      {\n        long: 'Bono',\n        short: 'undefined',\n      },\n      {\n        long: 'Bono East',\n        short: 'undefined',\n      },\n      {\n        long: 'Central',\n        short: 'CP',\n      },\n      {\n        long: 'Eastern',\n        short: 'EP',\n      },\n      {\n        long: 'Greater Accra',\n        short: 'AA',\n      },\n      {\n        long: 'Northern',\n        short: 'NP',\n      },\n      {\n        long: 'North East',\n        short: 'undefined',\n      },\n      {\n        long: 'Oti',\n        short: 'undefined',\n      },\n      {\n        long: 'Savannah',\n        short: 'undefined',\n      },\n      {\n        long: 'Upper East',\n        short: 'UE',\n      },\n      {\n        long: 'Upper West',\n        short: 'UW',\n      },\n      {\n        long: 'Volta',\n        short: 'TV',\n      },\n      {\n        long: 'Western',\n        short: 'WP',\n      },\n      {\n        long: 'Western North',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Gibraltar',\n    short: 'GI',\n    regions: [\n      {\n        long: 'Gibraltar',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Greece',\n    short: 'GR',\n    regions: [\n      {\n        long: 'Anatolikí Makedonía kai Thráki',\n        short: 'A',\n      },\n      {\n        long: 'Attikḯ',\n        short: 'I',\n      },\n      {\n        long: 'Dytikí Elláda',\n        short: 'G',\n      },\n      {\n        long: 'Dytikí Makedonía',\n        short: 'C',\n      },\n      {\n        long: 'Ionía Nísia',\n        short: 'F',\n      },\n      {\n        long: 'Kentrikí Makedonía',\n        short: 'B',\n      },\n      {\n        long: 'Krítí',\n        short: 'M',\n      },\n      {\n        long: 'Notío Aigaío',\n        short: 'L',\n      },\n      {\n        long: 'Peloponnísos',\n        short: 'J',\n      },\n      {\n        long: 'Stereá Elláda',\n        short: 'H',\n      },\n      {\n        long: 'Thessalía',\n        short: 'E',\n      },\n      {\n        long: 'Voreío Aigaío',\n        short: 'K',\n      },\n      {\n        long: 'Ípeiros',\n        short: 'D',\n      },\n      {\n        long: 'Ágion Óros',\n        short: '69',\n      },\n    ],\n  },\n  {\n    long: 'Greenland',\n    short: 'GL',\n    regions: [\n      {\n        long: 'Kommune Kujalleq',\n        short: 'KU',\n      },\n      {\n        long: 'Kommuneqarfik Sermersooq',\n        short: 'SM',\n      },\n      {\n        long: 'Qaasuitsup Kommunia',\n        short: 'QA',\n      },\n      {\n        long: 'Qeqqata Kommunia',\n        short: 'QE',\n      },\n    ],\n  },\n  {\n    long: 'Grenada',\n    short: 'GD',\n    regions: [\n      {\n        long: 'Saint Andrew',\n        short: '01',\n      },\n      {\n        long: 'Saint David',\n        short: '02',\n      },\n      {\n        long: 'Saint George',\n        short: '03',\n      },\n      {\n        long: 'Saint John',\n        short: '04',\n      },\n      {\n        long: 'Saint Mark',\n        short: '05',\n      },\n      {\n        long: 'Saint Patrick',\n        short: '06',\n      },\n      {\n        long: 'Southern Grenadine Islands',\n        short: '10',\n      },\n    ],\n  },\n  {\n    long: 'Guadeloupe',\n    short: 'GP',\n    regions: [\n      {\n        long: 'Guadeloupe',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Guam',\n    short: 'GU',\n    regions: [\n      {\n        long: 'Guam',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Guatemala',\n    short: 'GT',\n    regions: [\n      {\n        long: 'Alta Verapaz',\n        short: 'AV',\n      },\n      {\n        long: 'Baja Verapaz',\n        short: 'BV',\n      },\n      {\n        long: 'Chimaltenango',\n        short: 'CM',\n      },\n      {\n        long: 'Chiquimula',\n        short: 'CQ',\n      },\n      {\n        long: 'El Progreso',\n        short: 'PR',\n      },\n      {\n        long: 'Escuintla',\n        short: 'ES',\n      },\n      {\n        long: 'Guatemala',\n        short: 'GU',\n      },\n      {\n        long: 'Huehuetenango',\n        short: 'HU',\n      },\n      {\n        long: 'Izabal',\n        short: 'IZ',\n      },\n      {\n        long: 'Jalapa',\n        short: 'JA',\n      },\n      {\n        long: 'Jutiapa',\n        short: 'JU',\n      },\n      {\n        long: 'Petén',\n        short: 'PE',\n      },\n      {\n        long: 'Quetzaltenango',\n        short: 'QZ',\n      },\n      {\n        long: 'Quiché',\n        short: 'QC',\n      },\n      {\n        long: 'Retalhuleu',\n        short: 'Re',\n      },\n      {\n        long: 'Sacatepéquez',\n        short: 'SA',\n      },\n      {\n        long: 'San Marcos',\n        short: 'SM',\n      },\n      {\n        long: 'Santa Rosa',\n        short: 'SR',\n      },\n      {\n        long: 'Sololá',\n        short: 'SO',\n      },\n      {\n        long: 'Suchitepéquez',\n        short: 'SU',\n      },\n      {\n        long: 'Totonicapán',\n        short: 'TO',\n      },\n      {\n        long: 'Zacapa',\n        short: 'ZA',\n      },\n    ],\n  },\n  {\n    long: 'Guernsey',\n    short: 'GG',\n    regions: [\n      {\n        long: 'Castel',\n        short: 'undefined',\n      },\n      {\n        long: 'Forest',\n        short: 'undefined',\n      },\n      {\n        long: 'St. Andrew',\n        short: 'undefined',\n      },\n      {\n        long: 'St. Martin',\n        short: 'undefined',\n      },\n      {\n        long: 'St. Peter Port',\n        short: 'undefined',\n      },\n      {\n        long: 'St. Pierre du Bois',\n        short: 'undefined',\n      },\n      {\n        long: 'St. Sampson',\n        short: 'undefined',\n      },\n      {\n        long: 'St. Saviour',\n        short: 'undefined',\n      },\n      {\n        long: 'Torteval',\n        short: 'undefined',\n      },\n      {\n        long: 'Vale',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Guinea',\n    short: 'GN',\n    regions: [\n      {\n        long: 'Boké',\n        short: 'B',\n      },\n      {\n        long: 'Conakry',\n        short: 'C',\n      },\n      {\n        long: 'Faranah',\n        short: 'F',\n      },\n      {\n        long: 'Kankan',\n        short: 'K',\n      },\n      {\n        long: 'Kindia',\n        short: 'D',\n      },\n      {\n        long: 'Labé',\n        short: 'L',\n      },\n      {\n        long: 'Mamou',\n        short: 'M',\n      },\n      {\n        long: 'Nzérékoré',\n        short: 'N',\n      },\n    ],\n  },\n  {\n    long: 'Guinea-Bissau',\n    short: 'GW',\n    regions: [\n      {\n        long: 'Bafatá',\n        short: 'BA',\n      },\n      {\n        long: 'Biombo',\n        short: 'BM',\n      },\n      {\n        long: 'Bissau',\n        short: 'BS',\n      },\n      {\n        long: 'Bolama-Bijagos',\n        short: 'BL',\n      },\n      {\n        long: 'Cacheu',\n        short: 'CA',\n      },\n      {\n        long: 'Gabú',\n        short: 'GA',\n      },\n      {\n        long: 'Oio',\n        short: 'OI',\n      },\n      {\n        long: 'Quinara',\n        short: 'QU',\n      },\n      {\n        long: 'Tombali',\n        short: 'TO',\n      },\n    ],\n  },\n  {\n    long: 'Guyana',\n    short: 'GY',\n    regions: [\n      {\n        long: 'Barima-Waini',\n        short: 'BA',\n      },\n      {\n        long: 'Cuyuni-Mazaruni',\n        short: 'CU',\n      },\n      {\n        long: 'Demerara-Mahaica',\n        short: 'DE',\n      },\n      {\n        long: 'East Berbice-Corentyne',\n        short: 'EB',\n      },\n      {\n        long: 'Essequibo Islands-West Demerara',\n        short: 'ES',\n      },\n      {\n        long: 'Mahaica-Berbice',\n        short: 'MA',\n      },\n      {\n        long: 'Pomeroon-Supenaam',\n        short: 'PM',\n      },\n      {\n        long: 'Potaro-Siparuni',\n        short: 'PT',\n      },\n      {\n        long: 'Upper Demerara-Berbice',\n        short: 'UD',\n      },\n      {\n        long: 'Upper Takutu-Upper Essequibo',\n        short: 'UT',\n      },\n    ],\n  },\n  {\n    long: 'Haiti',\n    short: 'HT',\n    regions: [\n      {\n        long: 'Artibonite',\n        short: 'AR',\n      },\n      {\n        long: 'Centre',\n        short: 'CE',\n      },\n      {\n        long: \"Grand'Anse\",\n        short: 'GA',\n      },\n      {\n        long: 'Nippes',\n        short: 'NI',\n      },\n      {\n        long: 'Nord',\n        short: 'ND',\n      },\n      {\n        long: 'Nord-Est',\n        short: 'NE',\n      },\n      {\n        long: 'Nord-Ouest',\n        short: 'NO',\n      },\n      {\n        long: 'Ouest',\n        short: 'OU',\n      },\n      {\n        long: 'Sud',\n        short: 'SD',\n      },\n      {\n        long: 'Sud-Est',\n        short: 'SE',\n      },\n    ],\n  },\n  {\n    long: 'Heard Island and McDonald Islands',\n    short: 'HM',\n    regions: [\n      {\n        long: 'Heard Island and McDonald Islands',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Holy See (Vatican City)',\n    short: 'VA',\n    regions: [\n      {\n        long: 'Holy See (Vatican City)',\n        short: '01',\n      },\n    ],\n  },\n  {\n    long: 'Honduras',\n    short: 'HN',\n    regions: [\n      {\n        long: 'Atlántida',\n        short: 'AT',\n      },\n      {\n        long: 'Choluteca',\n        short: 'CH',\n      },\n      {\n        long: 'Colón',\n        short: 'CL',\n      },\n      {\n        long: 'Comayagua',\n        short: 'CM',\n      },\n      {\n        long: 'Copán',\n        short: 'CP',\n      },\n      {\n        long: 'Cortés',\n        short: 'CR',\n      },\n      {\n        long: 'El Paraíso',\n        short: 'EP',\n      },\n      {\n        long: 'Francisco Morazán',\n        short: 'FM',\n      },\n      {\n        long: 'Gracias a Dios',\n        short: 'GD',\n      },\n      {\n        long: 'Intibucá',\n        short: 'IN',\n      },\n      {\n        long: 'Islas de la Bahía',\n        short: 'IB',\n      },\n      {\n        long: 'La Paz',\n        short: 'LP',\n      },\n      {\n        long: 'Lempira',\n        short: 'LE',\n      },\n      {\n        long: 'Ocotepeque',\n        short: 'OC',\n      },\n      {\n        long: 'Olancho',\n        short: 'OL',\n      },\n      {\n        long: 'Santa Bárbara',\n        short: 'SB',\n      },\n      {\n        long: 'Valle',\n        short: 'VA',\n      },\n      {\n        long: 'Yoro',\n        short: 'YO',\n      },\n    ],\n  },\n  {\n    long: 'Hong Kong',\n    short: 'HK',\n    regions: [\n      {\n        long: 'Hong Kong',\n        short: 'HK',\n      },\n    ],\n  },\n  {\n    long: 'Hungary',\n    short: 'HU',\n    regions: [\n      {\n        long: 'Bács-Kiskun',\n        short: 'BK',\n      },\n      {\n        long: 'Baranya',\n        short: 'BA',\n      },\n      {\n        long: 'Békés',\n        short: 'BE',\n      },\n      {\n        long: 'Békéscsaba',\n        short: 'BC',\n      },\n      {\n        long: 'Borsod-Abauj-Zemplen',\n        short: 'BZ',\n      },\n      {\n        long: 'Budapest',\n        short: 'BU',\n      },\n      {\n        long: 'Csongrád',\n        short: 'CS',\n      },\n      {\n        long: 'Debrecen',\n        short: 'DE',\n      },\n      {\n        long: 'Dunaújváros',\n        short: 'DU',\n      },\n      {\n        long: 'Eger',\n        short: 'EG',\n      },\n      {\n        long: 'Érd',\n        short: 'ER',\n      },\n      {\n        long: 'Fejér',\n        short: 'FE',\n      },\n      {\n        long: 'Győr',\n        short: 'GY',\n      },\n      {\n        long: 'Győr-Moson-Sopron',\n        short: 'GS',\n      },\n      {\n        long: 'Hajdú-Bihar',\n        short: 'HB',\n      },\n      {\n        long: 'Heves',\n        short: 'HE',\n      },\n      {\n        long: 'Hódmezővásárhely',\n        short: 'HV',\n      },\n      {\n        long: 'Jász-Nagykun-Szolnok',\n        short: 'N',\n      },\n      {\n        long: 'Kaposvár',\n        short: 'KV',\n      },\n      {\n        long: 'Kecskemét',\n        short: 'KM',\n      },\n      {\n        long: 'Komárom-Esztergom',\n        short: 'KE',\n      },\n      {\n        long: 'Miskolc',\n        short: 'MI',\n      },\n      {\n        long: 'Nagykanizsa',\n        short: 'NK',\n      },\n      {\n        long: 'Nógrád',\n        short: 'NO',\n      },\n      {\n        long: 'Nyíregyháza',\n        short: 'NY',\n      },\n      {\n        long: 'Pécs',\n        short: 'PS',\n      },\n      {\n        long: 'Pest',\n        short: 'PE',\n      },\n      {\n        long: 'Salgótarján',\n        short: 'ST',\n      },\n      {\n        long: 'Somogy',\n        short: 'SO',\n      },\n      {\n        long: 'Sopron',\n        short: 'SN',\n      },\n      {\n        long: 'Szabolcs-á-Bereg',\n        short: 'SZ',\n      },\n      {\n        long: 'Szeged',\n        short: 'SD',\n      },\n      {\n        long: 'Székesfehérvár',\n        short: 'SF',\n      },\n      {\n        long: 'Szekszárd',\n        short: 'SS',\n      },\n      {\n        long: 'Szolnok',\n        short: 'SK',\n      },\n      {\n        long: 'Szombathely',\n        short: 'SH',\n      },\n      {\n        long: 'Tatabánya',\n        short: 'TB',\n      },\n      {\n        long: 'Tolna',\n        short: 'TO',\n      },\n      {\n        long: 'Vas',\n        short: 'VA',\n      },\n      {\n        long: 'Veszprém',\n        short: 'VE',\n      },\n      {\n        long: 'Veszprém (City)',\n        short: 'VM',\n      },\n      {\n        long: 'Zala',\n        short: 'ZA',\n      },\n      {\n        long: 'Zalaegerszeg',\n        short: 'ZE',\n      },\n    ],\n  },\n  {\n    long: 'Iceland',\n    short: 'IS',\n    regions: [\n      {\n        long: 'Austurland',\n        short: '7',\n      },\n      {\n        long: 'Höfuðborgarsvæði',\n        short: '1',\n      },\n      {\n        long: 'Norðurland eystra',\n        short: '6',\n      },\n      {\n        long: 'Norðurland vestra',\n        short: '5',\n      },\n      {\n        long: 'Suðurland',\n        short: '8',\n      },\n      {\n        long: 'Suðurnes',\n        short: '2',\n      },\n      {\n        long: 'Vestfirðir',\n        short: '4',\n      },\n      {\n        long: 'Vesturland',\n        short: '3',\n      },\n    ],\n  },\n  {\n    long: 'India',\n    short: 'IN',\n    regions: [\n      {\n        long: 'Andaman and Nicobar Islands',\n        short: 'AN',\n      },\n      {\n        long: 'Andhra Pradesh',\n        short: 'AP',\n      },\n      {\n        long: 'Arunachal Pradesh',\n        short: 'AR',\n      },\n      {\n        long: 'Assam',\n        short: 'AS',\n      },\n      {\n        long: 'Bihar',\n        short: 'BR',\n      },\n      {\n        long: 'Chandigarh',\n        short: 'CH',\n      },\n      {\n        long: 'Chhattisgarh',\n        short: 'CT',\n      },\n      {\n        long: 'Dadra and Nagar Haveli and Daman and Diu',\n        short: 'DH',\n      },\n      {\n        long: 'Delhi',\n        short: 'DL',\n      },\n      {\n        long: 'Goa',\n        short: 'GA',\n      },\n      {\n        long: 'Gujarat',\n        short: 'GJ',\n      },\n      {\n        long: 'Haryana',\n        short: 'HR',\n      },\n      {\n        long: 'Himachal Pradesh',\n        short: 'HP',\n      },\n      {\n        long: 'Jammu and Kashmir',\n        short: 'JK',\n      },\n      {\n        long: 'Jharkhand',\n        short: 'JH',\n      },\n      {\n        long: 'Karnataka',\n        short: 'KA',\n      },\n      {\n        long: 'Kerala',\n        short: 'KL',\n      },\n      {\n        long: 'Ladakh',\n        short: 'LA',\n      },\n      {\n        long: 'Lakshadweep',\n        short: 'LD',\n      },\n      {\n        long: 'Madhya Pradesh',\n        short: 'MP',\n      },\n      {\n        long: 'Maharashtra',\n        short: 'MH',\n      },\n      {\n        long: 'Manipur',\n        short: 'MN',\n      },\n      {\n        long: 'Meghalaya',\n        short: 'ML',\n      },\n      {\n        long: 'Mizoram',\n        short: 'MZ',\n      },\n      {\n        long: 'Nagaland',\n        short: 'NL',\n      },\n      {\n        long: 'Odisha',\n        short: 'OR',\n      },\n      {\n        long: 'Puducherry',\n        short: 'PY',\n      },\n      {\n        long: 'Punjab',\n        short: 'PB',\n      },\n      {\n        long: 'Rajasthan',\n        short: 'RJ',\n      },\n      {\n        long: 'Sikkim',\n        short: 'SK',\n      },\n      {\n        long: 'Tamil Nadu',\n        short: 'TN',\n      },\n      {\n        long: 'Telangana',\n        short: 'TG',\n      },\n      {\n        long: 'Tripura',\n        short: 'TR',\n      },\n      {\n        long: 'Uttarakhand',\n        short: 'UT',\n      },\n      {\n        long: 'Uttar Pradesh',\n        short: 'UP',\n      },\n      {\n        long: 'West Bengal',\n        short: 'WB',\n      },\n    ],\n  },\n  {\n    long: 'Indonesia',\n    short: 'ID',\n    regions: [\n      {\n        long: 'Aceh',\n        short: 'AC',\n      },\n      {\n        long: 'Bali',\n        short: 'BA',\n      },\n      {\n        long: 'Bangka Belitung',\n        short: 'BB',\n      },\n      {\n        long: 'Banten',\n        short: 'BT',\n      },\n      {\n        long: 'Bengkulu',\n        short: 'BE',\n      },\n      {\n        long: 'Gorontalo',\n        short: 'GO',\n      },\n      {\n        long: 'Jakarta Raya',\n        short: 'JK',\n      },\n      {\n        long: 'Jambi',\n        short: 'JA',\n      },\n      {\n        long: 'Jawa Barat',\n        short: 'JB',\n      },\n      {\n        long: 'Jawa Tengah',\n        short: 'JT',\n      },\n      {\n        long: 'Jawa Timur',\n        short: 'JI',\n      },\n      {\n        long: 'Kalimantan Barat',\n        short: 'KB',\n      },\n      {\n        long: 'Kalimantan Selatan',\n        short: 'KS',\n      },\n      {\n        long: 'Kalimantan Tengah',\n        short: 'KT',\n      },\n      {\n        long: 'Kalimantan Timur',\n        short: 'KI',\n      },\n      {\n        long: 'Kalimantan Utara',\n        short: 'KU',\n      },\n      {\n        long: 'Kepulauan Riau',\n        short: 'KR',\n      },\n      {\n        long: 'Lampung',\n        short: 'LA',\n      },\n      {\n        long: 'Maluku',\n        short: 'MA',\n      },\n      {\n        long: 'Maluku Utara',\n        short: 'MU',\n      },\n      {\n        long: 'Nusa Tenggara Barat',\n        short: 'NB',\n      },\n      {\n        long: 'Nusa Tenggara Timur',\n        short: 'NT',\n      },\n      {\n        long: 'Papua',\n        short: 'PA',\n      },\n      {\n        long: 'Papua Barat',\n        short: 'PB',\n      },\n      {\n        long: 'Riau',\n        short: 'RI',\n      },\n      {\n        long: 'Sulawesi Selatan',\n        short: 'SR',\n      },\n      {\n        long: 'Sulawesi Tengah',\n        short: 'ST',\n      },\n      {\n        long: 'Sulawesi Tenggara',\n        short: 'SG',\n      },\n      {\n        long: 'Sulawesi Utara',\n        short: 'SA',\n      },\n      {\n        long: 'Sumatera Barat',\n        short: 'SB',\n      },\n      {\n        long: 'Sumatera Selatan',\n        short: 'SS',\n      },\n      {\n        long: 'Sumatera Utara',\n        short: 'SU',\n      },\n      {\n        long: 'Yogyakarta',\n        short: 'YO',\n      },\n    ],\n  },\n  {\n    long: 'Iran, Islamic Republic of',\n    short: 'IR',\n    regions: [\n      {\n        long: 'Alborz',\n        short: '32',\n      },\n      {\n        long: 'Ardabīl',\n        short: '03',\n      },\n      {\n        long: 'Āz̄arbāyjān-e Gharbī',\n        short: '02',\n      },\n      {\n        long: 'Āz̄arbāyjān-e Sharqī',\n        short: '01',\n      },\n      {\n        long: 'Būshehr',\n        short: '06',\n      },\n      {\n        long: 'Chahār Maḩāl va Bakhtīārī',\n        short: '08',\n      },\n      {\n        long: 'Eşfahān',\n        short: '04',\n      },\n      {\n        long: 'Fārs',\n        short: '14',\n      },\n      {\n        long: 'Gīlān',\n        short: '19',\n      },\n      {\n        long: 'Golestān',\n        short: '27',\n      },\n      {\n        long: 'Hamadān',\n        short: '24',\n      },\n      {\n        long: 'Hormozgān',\n        short: '23',\n      },\n      {\n        long: 'Īlām',\n        short: '05',\n      },\n      {\n        long: 'Kermān',\n        short: '15',\n      },\n      {\n        long: 'Kermānshāh',\n        short: '17',\n      },\n      {\n        long: 'Khorāsān-e Jonūbī',\n        short: '29',\n      },\n      {\n        long: 'Khorāsān-e Raẕavī',\n        short: '30',\n      },\n      {\n        long: 'Khorāsān-e Shomālī',\n        short: '61',\n      },\n      {\n        long: 'Khūzestān',\n        short: '10',\n      },\n      {\n        long: 'Kohgīlūyeh va Bowyer Aḩmad',\n        short: '18',\n      },\n      {\n        long: 'Kordestān',\n        short: '16',\n      },\n      {\n        long: 'Lorestān',\n        short: '20',\n      },\n      {\n        long: 'Markazi',\n        short: '22',\n      },\n      {\n        long: 'Māzandarān',\n        short: '21',\n      },\n      {\n        long: 'Qazvīn',\n        short: '28',\n      },\n      {\n        long: 'Qom',\n        short: '26',\n      },\n      {\n        long: 'Semnān',\n        short: '12',\n      },\n      {\n        long: 'Sīstān va Balūchestān',\n        short: '13',\n      },\n      {\n        long: 'Tehrān',\n        short: '07',\n      },\n      {\n        long: 'Yazd',\n        short: '25',\n      },\n      {\n        long: 'Zanjān',\n        short: '11',\n      },\n    ],\n  },\n  {\n    long: 'Iraq',\n    short: 'IQ',\n    regions: [\n      {\n        long: 'Al Anbār',\n        short: 'AN',\n      },\n      {\n        long: 'Al Başrah',\n        short: 'BA',\n      },\n      {\n        long: 'Al Muthanná',\n        short: 'MU',\n      },\n      {\n        long: 'Al Qādisīyah',\n        short: 'QA',\n      },\n      {\n        long: 'An Najaf',\n        short: 'NA',\n      },\n      {\n        long: 'Arbīl',\n        short: 'AR',\n      },\n      {\n        long: 'As Sulaymānīyah',\n        short: 'SU',\n      },\n      {\n        long: 'Bābil',\n        short: 'BB',\n      },\n      {\n        long: 'Baghdād',\n        short: 'BG',\n      },\n      {\n        long: 'Dohuk',\n        short: 'DA',\n      },\n      {\n        long: 'Dhī Qār',\n        short: 'DQ',\n      },\n      {\n        long: 'Diyālá',\n        short: 'DI',\n      },\n      {\n        long: \"Karbalā'\",\n        short: 'KA',\n      },\n      {\n        long: 'Kirkuk',\n        short: 'KI',\n      },\n      {\n        long: 'Maysān',\n        short: 'MA',\n      },\n      {\n        long: 'Nīnawá',\n        short: 'NI',\n      },\n      {\n        long: 'Şalāḩ ad Dīn',\n        short: 'SD',\n      },\n      {\n        long: 'Wāsiţ',\n        short: 'WA',\n      },\n    ],\n  },\n  {\n    long: 'Ireland',\n    short: 'IE',\n    regions: [\n      {\n        long: 'Carlow',\n        short: 'CW',\n      },\n      {\n        long: 'Cavan',\n        short: 'CN',\n      },\n      {\n        long: 'Clare',\n        short: 'CE',\n      },\n      {\n        long: 'Cork',\n        short: 'CO',\n      },\n      {\n        long: 'Donegal',\n        short: 'DL',\n      },\n      {\n        long: 'Dublin',\n        short: 'D',\n      },\n      {\n        long: 'Galway',\n        short: 'G',\n      },\n      {\n        long: 'Kerry',\n        short: 'KY',\n      },\n      {\n        long: 'Kildare',\n        short: 'KE',\n      },\n      {\n        long: 'Kilkenny',\n        short: 'KK',\n      },\n      {\n        long: 'Laois',\n        short: 'LS',\n      },\n      {\n        long: 'Leitrim',\n        short: 'LM',\n      },\n      {\n        long: 'Limerick',\n        short: 'LK',\n      },\n      {\n        long: 'Longford',\n        short: 'LD',\n      },\n      {\n        long: 'Louth',\n        short: 'LH',\n      },\n      {\n        long: 'Mayo',\n        short: 'MO',\n      },\n      {\n        long: 'Meath',\n        short: 'MH',\n      },\n      {\n        long: 'Monaghan',\n        short: 'MN',\n      },\n      {\n        long: 'Offaly',\n        short: 'OY',\n      },\n      {\n        long: 'Roscommon',\n        short: 'RN',\n      },\n      {\n        long: 'Sligo',\n        short: 'SO',\n      },\n      {\n        long: 'Tipperary',\n        short: 'TA',\n      },\n      {\n        long: 'Waterford',\n        short: 'WD',\n      },\n      {\n        long: 'Westmeath',\n        short: 'WH',\n      },\n      {\n        long: 'Wexford',\n        short: 'WX',\n      },\n      {\n        long: 'Wicklow',\n        short: 'WW',\n      },\n    ],\n  },\n  {\n    long: 'Isle of Man',\n    short: 'IM',\n    regions: [\n      {\n        long: 'Isle of Man',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Israel',\n    short: 'IL',\n    regions: [\n      {\n        long: 'HaDarom',\n        short: 'D',\n      },\n      {\n        long: 'HaMerkaz',\n        short: 'M',\n      },\n      {\n        long: 'HaTsafon',\n        short: 'Z',\n      },\n      {\n        long: 'H̱efa',\n        short: 'HA',\n      },\n      {\n        long: 'Tel-Aviv',\n        short: 'TA',\n      },\n      {\n        long: 'Yerushalayim',\n        short: 'JM',\n      },\n    ],\n  },\n  {\n    long: 'Italy',\n    short: 'IT',\n    regions: [\n      {\n        long: 'Abruzzo',\n        short: '65',\n      },\n      {\n        long: 'Basilicata',\n        short: '77',\n      },\n      {\n        long: 'Calabria',\n        short: '78',\n      },\n      {\n        long: 'Campania',\n        short: '72',\n      },\n      {\n        long: 'Emilia-Romagna',\n        short: '45',\n      },\n      {\n        long: 'Friuli-Venezia Giulia',\n        short: '36',\n      },\n      {\n        long: 'Lazio',\n        short: '62',\n      },\n      {\n        long: 'Liguria',\n        short: '42',\n      },\n      {\n        long: 'Lombardia',\n        short: '25',\n      },\n      {\n        long: 'Marche',\n        short: '57',\n      },\n      {\n        long: 'Molise',\n        short: '67',\n      },\n      {\n        long: 'Piemonte',\n        short: '21',\n      },\n      {\n        long: 'Puglia',\n        short: '75',\n      },\n      {\n        long: 'Sardegna',\n        short: '88',\n      },\n      {\n        long: 'Sicilia',\n        short: '82',\n      },\n      {\n        long: 'Toscana',\n        short: '52',\n      },\n      {\n        long: 'Trentino-Alto Adige',\n        short: '32',\n      },\n      {\n        long: 'Umbria',\n        short: '55',\n      },\n      {\n        long: \"Valle d'Aosta\",\n        short: '23',\n      },\n      {\n        long: 'Veneto',\n        short: '34',\n      },\n    ],\n  },\n  {\n    long: 'Jamaica',\n    short: 'JM',\n    regions: [\n      {\n        long: 'Clarendon',\n        short: '13',\n      },\n      {\n        long: 'Hanover',\n        short: '09',\n      },\n      {\n        long: 'Kingston',\n        short: '01',\n      },\n      {\n        long: 'Manchester',\n        short: '12',\n      },\n      {\n        long: 'Portland',\n        short: '04',\n      },\n      {\n        long: 'Saint Andrew',\n        short: '02',\n      },\n      {\n        long: 'Saint Ann',\n        short: '06',\n      },\n      {\n        long: 'Saint Catherine',\n        short: '14',\n      },\n      {\n        long: 'Saint Elizabeth',\n        short: '11',\n      },\n      {\n        long: 'Saint James',\n        short: '08',\n      },\n      {\n        long: 'Saint Mary',\n        short: '05',\n      },\n      {\n        long: 'Saint Thomas',\n        short: '03',\n      },\n      {\n        long: 'Trelawny',\n        short: '07',\n      },\n      {\n        long: 'Westmoreland',\n        short: '10',\n      },\n    ],\n  },\n  {\n    long: 'Japan',\n    short: 'JP',\n    regions: [\n      {\n        long: 'Aichi',\n        short: '23',\n      },\n      {\n        long: 'Akita',\n        short: '05',\n      },\n      {\n        long: 'Aomori',\n        short: '02',\n      },\n      {\n        long: 'Chiba',\n        short: '12',\n      },\n      {\n        long: 'Ehime',\n        short: '38',\n      },\n      {\n        long: 'Fukui',\n        short: '18',\n      },\n      {\n        long: 'Fukuoka',\n        short: '40',\n      },\n      {\n        long: 'Fukushima',\n        short: '07',\n      },\n      {\n        long: 'Gifu',\n        short: '21',\n      },\n      {\n        long: 'Gunma',\n        short: '10',\n      },\n      {\n        long: 'Hiroshima',\n        short: '34',\n      },\n      {\n        long: 'Hokkaido',\n        short: '01',\n      },\n      {\n        long: 'Hyogo',\n        short: '28',\n      },\n      {\n        long: 'Ibaraki',\n        short: '08',\n      },\n      {\n        long: 'Ishikawa',\n        short: '17',\n      },\n      {\n        long: 'Iwate',\n        short: '03',\n      },\n      {\n        long: 'Kagawa',\n        short: '37',\n      },\n      {\n        long: 'Kagoshima',\n        short: '46',\n      },\n      {\n        long: 'Kanagawa',\n        short: '14',\n      },\n      {\n        long: 'Kochi',\n        short: '39',\n      },\n      {\n        long: 'Kumamoto',\n        short: '43',\n      },\n      {\n        long: 'Kyoto',\n        short: '26',\n      },\n      {\n        long: 'Mie',\n        short: '24',\n      },\n      {\n        long: 'Miyagi',\n        short: '04',\n      },\n      {\n        long: 'Miyazaki',\n        short: '45',\n      },\n      {\n        long: 'Nagano',\n        short: '20',\n      },\n      {\n        long: 'Nagasaki',\n        short: '42',\n      },\n      {\n        long: 'Nara',\n        short: '29',\n      },\n      {\n        long: 'Niigata',\n        short: '15',\n      },\n      {\n        long: 'Oita',\n        short: '44',\n      },\n      {\n        long: 'Okayama',\n        short: '33',\n      },\n      {\n        long: 'Okinawa',\n        short: '47',\n      },\n      {\n        long: 'Osaka',\n        short: '27',\n      },\n      {\n        long: 'Saga',\n        short: '41',\n      },\n      {\n        long: 'Saitama',\n        short: '11',\n      },\n      {\n        long: 'Shiga',\n        short: '25',\n      },\n      {\n        long: 'Shimane',\n        short: '32',\n      },\n      {\n        long: 'Shizuoka',\n        short: '22',\n      },\n      {\n        long: 'Tochigi',\n        short: '09',\n      },\n      {\n        long: 'Tokushima',\n        short: '36',\n      },\n      {\n        long: 'Tokyo',\n        short: '13',\n      },\n      {\n        long: 'Tottori',\n        short: '31',\n      },\n      {\n        long: 'Toyama',\n        short: '16',\n      },\n      {\n        long: 'Wakayama',\n        short: '30',\n      },\n      {\n        long: 'Yamagata',\n        short: '06',\n      },\n      {\n        long: 'Yamaguchi',\n        short: '35',\n      },\n      {\n        long: 'Yamanashi',\n        short: '19',\n      },\n    ],\n  },\n  {\n    long: 'Jersey',\n    short: 'JE',\n    regions: [\n      {\n        long: 'Jersey',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Jordan',\n    short: 'JO',\n    regions: [\n      {\n        long: '‘Ajlūn',\n        short: 'AJ',\n      },\n      {\n        long: \"Al 'Aqabah\",\n        short: 'AQ',\n      },\n      {\n        long: 'Al Balqā’',\n        short: 'BA',\n      },\n      {\n        long: 'Al Karak',\n        short: 'KA',\n      },\n      {\n        long: 'Al Mafraq',\n        short: 'MA',\n      },\n      {\n        long: 'Al ‘A̅şimah',\n        short: 'AM',\n      },\n      {\n        long: 'Aţ Ţafīlah',\n        short: 'AT',\n      },\n      {\n        long: 'Az Zarqā’',\n        short: 'AZ',\n      },\n      {\n        long: 'Irbid',\n        short: 'IR',\n      },\n      {\n        long: 'Jarash',\n        short: 'JA',\n      },\n      {\n        long: 'Ma‘ān',\n        short: 'MN',\n      },\n      {\n        long: 'Mādabā',\n        short: 'MD',\n      },\n    ],\n  },\n  {\n    long: 'Kazakhstan',\n    short: 'KZ',\n    regions: [\n      {\n        long: 'Almaty',\n        short: 'ALA',\n      },\n      {\n        long: 'Aqmola',\n        short: 'AKM',\n      },\n      {\n        long: 'Aqtobe',\n        short: 'AKT',\n      },\n      {\n        long: 'Astana',\n        short: 'AST',\n      },\n      {\n        long: 'Atyrau',\n        short: 'ATY',\n      },\n      {\n        long: 'Batys Qazaqstan',\n        short: 'ZAP',\n      },\n      {\n        long: 'Bayqongyr',\n        short: 'undefined',\n      },\n      {\n        long: 'Mangghystau',\n        short: 'MAN',\n      },\n      {\n        long: 'Ongtustik Qazaqstan',\n        short: 'YUZ',\n      },\n      {\n        long: 'Pavlodar',\n        short: 'PAV',\n      },\n      {\n        long: 'Qaraghandy',\n        short: 'KAR',\n      },\n      {\n        long: 'Qostanay',\n        short: 'KUS',\n      },\n      {\n        long: 'Qyzylorda',\n        short: 'KZY',\n      },\n      {\n        long: 'Shyghys Qazaqstan',\n        short: 'VOS',\n      },\n      {\n        long: 'Soltustik Qazaqstan',\n        short: 'SEV',\n      },\n      {\n        long: 'Zhambyl',\n        short: 'ZHA',\n      },\n    ],\n  },\n  {\n    long: 'Kenya',\n    short: 'KE',\n    regions: [\n      {\n        long: 'Baringo',\n        short: '01',\n      },\n      {\n        long: 'Bomet',\n        short: '02',\n      },\n      {\n        long: 'Bungoma',\n        short: '03',\n      },\n      {\n        long: 'Busia',\n        short: '04',\n      },\n      {\n        long: 'Eleyo/Marakwet',\n        short: '05',\n      },\n      {\n        long: 'Embu',\n        short: '06',\n      },\n      {\n        long: 'Garissa',\n        short: '07',\n      },\n      {\n        long: 'Homa Bay',\n        short: '08',\n      },\n      {\n        long: 'Isiolo',\n        short: '09',\n      },\n      {\n        long: 'Kajiado',\n        short: '10',\n      },\n      {\n        long: 'Kakamega',\n        short: '11',\n      },\n      {\n        long: 'Kericho',\n        short: '12',\n      },\n      {\n        long: 'Kiambu',\n        short: '13',\n      },\n      {\n        long: 'Kilifi',\n        short: '14',\n      },\n      {\n        long: 'Kirinyaga',\n        short: '15',\n      },\n      {\n        long: 'Kisii',\n        short: '16',\n      },\n      {\n        long: 'Kisumu',\n        short: '17',\n      },\n      {\n        long: 'Kitui',\n        short: '18',\n      },\n      {\n        long: 'Kwale',\n        short: '19',\n      },\n      {\n        long: 'Laikipia',\n        short: '20',\n      },\n      {\n        long: 'Lamu',\n        short: '21',\n      },\n      {\n        long: 'Machakos',\n        short: '22',\n      },\n      {\n        long: 'Makueni',\n        short: '23',\n      },\n      {\n        long: 'Mandera',\n        short: '24',\n      },\n      {\n        long: 'Marsabit',\n        short: '25',\n      },\n      {\n        long: 'Meru',\n        short: '26',\n      },\n      {\n        long: 'Migori',\n        short: '27',\n      },\n      {\n        long: 'Mombasa',\n        short: '28',\n      },\n      {\n        long: \"Murang'a\",\n        short: '29',\n      },\n      {\n        long: 'Nairobi City',\n        short: '30',\n      },\n      {\n        long: 'Nakuru',\n        short: '31',\n      },\n      {\n        long: 'Nandi',\n        short: '32',\n      },\n      {\n        long: 'Narok',\n        short: '33',\n      },\n      {\n        long: 'Nyamira',\n        short: '34',\n      },\n      {\n        long: 'Nyandarua',\n        short: '35',\n      },\n      {\n        long: 'Nyeri',\n        short: '36',\n      },\n      {\n        long: 'Samburu',\n        short: '37',\n      },\n      {\n        long: 'Siaya',\n        short: '38',\n      },\n      {\n        long: 'Taita/Taveta',\n        short: '39',\n      },\n      {\n        long: 'Tana River',\n        short: '40',\n      },\n      {\n        long: 'Tharaka-Nithi',\n        short: '41',\n      },\n      {\n        long: 'Trans Nzoia',\n        short: '42',\n      },\n      {\n        long: 'Turkana',\n        short: '43',\n      },\n      {\n        long: 'Uasin Gishu',\n        short: '44',\n      },\n      {\n        long: 'Vihiga',\n        short: '45',\n      },\n      {\n        long: 'Wajir',\n        short: '46',\n      },\n      {\n        long: 'West Pokot',\n        short: '47',\n      },\n    ],\n  },\n  {\n    long: 'Kiribati',\n    short: 'KI',\n    regions: [\n      {\n        long: 'Abaiang',\n        short: 'undefined',\n      },\n      {\n        long: 'Abemama',\n        short: 'undefined',\n      },\n      {\n        long: 'Aranuka',\n        short: 'undefined',\n      },\n      {\n        long: 'Arorae',\n        short: 'undefined',\n      },\n      {\n        long: 'Banaba',\n        short: 'undefined',\n      },\n      {\n        long: 'Beru',\n        short: 'undefined',\n      },\n      {\n        long: 'Butaritari',\n        short: 'undefined',\n      },\n      {\n        long: 'Central Gilberts',\n        short: 'undefined',\n      },\n      {\n        long: 'Gilbert Islands',\n        short: 'G',\n      },\n      {\n        long: 'Kanton',\n        short: 'undefined',\n      },\n      {\n        long: 'Kiritimati',\n        short: 'undefined',\n      },\n      {\n        long: 'Kuria',\n        short: 'undefined',\n      },\n      {\n        long: 'Line Islands',\n        short: 'L',\n      },\n      {\n        long: 'Maiana',\n        short: 'undefined',\n      },\n      {\n        long: 'Makin',\n        short: 'undefined',\n      },\n      {\n        long: 'Marakei',\n        short: 'undefined',\n      },\n      {\n        long: 'Nikunau',\n        short: 'undefined',\n      },\n      {\n        long: 'Nonouti',\n        short: 'undefined',\n      },\n      {\n        long: 'Northern Gilberts',\n        short: 'undefined',\n      },\n      {\n        long: 'Onotoa',\n        short: 'undefined',\n      },\n      {\n        long: 'Phoenix Islands',\n        short: 'P',\n      },\n      {\n        long: 'Southern Gilberts',\n        short: 'undefined',\n      },\n      {\n        long: 'Tabiteuea',\n        short: 'undefined',\n      },\n      {\n        long: 'Tabuaeran',\n        short: 'undefined',\n      },\n      {\n        long: 'Tamana',\n        short: 'undefined',\n      },\n      {\n        long: 'Tarawa',\n        short: 'undefined',\n      },\n      {\n        long: 'Teraina',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: \"Korea, Democratic People's Republic of\",\n    short: 'KP',\n    regions: [\n      {\n        long: 'Chagang-do (Chagang Province)',\n        short: '04',\n      },\n      {\n        long: 'Hamgyong-bukto (North Hamgyong Province)',\n        short: '09',\n      },\n      {\n        long: 'Hamgyong-namdo (South Hamgyong Province)',\n        short: '08',\n      },\n      {\n        long: 'Hwanghae-bukto (North Hwanghae Province)',\n        short: '06',\n      },\n      {\n        long: 'Hwanghae-namdo (South Hwanghae Province)',\n        short: '05',\n      },\n      {\n        long: 'Kangwon-do (Kangwon Province)',\n        short: '07',\n      },\n      {\n        long: 'Nasŏn (Najin-Sŏnbong)',\n        short: '13',\n      },\n      {\n        long: \"P'yongan-bukto (North P'yongan Province)\",\n        short: '03',\n      },\n      {\n        long: \"P'yongan-namdo (South P'yongan Province)\",\n        short: '02',\n      },\n      {\n        long: \"P'yongyang-si (P'yongyang City)\",\n        short: '01',\n      },\n      {\n        long: 'Yanggang-do (Yanggang Province)',\n        short: '10',\n      },\n    ],\n  },\n  {\n    long: 'Korea, Republic of',\n    short: 'KR',\n    regions: [\n      {\n        long: \"Ch'ungch'ongbuk-do\",\n        short: '43',\n      },\n      {\n        long: \"Ch'ungch'ongnam-do\",\n        short: '44',\n      },\n      {\n        long: 'Cheju-do',\n        short: '49',\n      },\n      {\n        long: 'Chollabuk-do',\n        short: '45',\n      },\n      {\n        long: 'Chollanam-do',\n        short: '46',\n      },\n      {\n        long: \"Inch'on-Kwangyokhi\",\n        short: '28',\n      },\n      {\n        long: 'Kang-won-do',\n        short: '42',\n      },\n      {\n        long: 'Kwangju-Kwangyokshi',\n        short: '29',\n      },\n      {\n        long: 'Kyonggi-do',\n        short: '41',\n      },\n      {\n        long: 'Kyongsangbuk-do',\n        short: '47',\n      },\n      {\n        long: 'Kyongsangnam-do',\n        short: '48',\n      },\n      {\n        long: 'Pusan-Kwangyokshi',\n        short: '26',\n      },\n      {\n        long: \"Seoul-T'ukpyolshi\",\n        short: '11',\n      },\n      {\n        long: 'Sejong',\n        short: '50',\n      },\n      {\n        long: 'Taegu-Kwangyokshi',\n        short: '27',\n      },\n      {\n        long: 'Taejon-Kwangyokshi',\n        short: '30',\n      },\n      {\n        long: 'Ulsan-Kwangyokshi',\n        short: '31',\n      },\n    ],\n  },\n  {\n    long: 'Kosovo',\n    short: 'XK',\n    regions: [\n      {\n        long: 'Farizaj',\n        short: 'FZ',\n      },\n      {\n        long: 'Gjakova',\n        short: 'GK',\n      },\n      {\n        long: 'Gjilan',\n        short: 'GL',\n      },\n      {\n        long: 'Mitrovica',\n        short: 'MI',\n      },\n      {\n        long: 'Peja/Peć',\n        short: 'PE',\n      },\n      {\n        long: 'Pristina',\n        short: 'PR',\n      },\n      {\n        long: 'Prizren',\n        short: 'PZ',\n      },\n    ],\n  },\n  {\n    long: 'Kuwait',\n    short: 'KW',\n    regions: [\n      {\n        long: 'Al Aḩmadi',\n        short: 'AH',\n      },\n      {\n        long: 'Al Farwānīyah',\n        short: 'FA',\n      },\n      {\n        long: 'Al Jahrā’',\n        short: 'JA',\n      },\n      {\n        long: 'Al ‘Āşimah',\n        short: 'KU',\n      },\n      {\n        long: 'Ḩawallī',\n        short: 'HA',\n      },\n      {\n        long: 'Mubārak al Kabir',\n        short: 'MU',\n      },\n    ],\n  },\n  {\n    long: 'Kyrgyzstan',\n    short: 'KG',\n    regions: [\n      {\n        long: 'Batken Oblasty',\n        short: 'B',\n      },\n      {\n        long: 'Bishkek Shaary',\n        short: 'GB',\n      },\n      {\n        long: 'Chuy Oblasty (Bishkek)',\n        short: 'C',\n      },\n      {\n        long: 'Jalal-Abad Oblasty',\n        short: 'J',\n      },\n      {\n        long: 'Naryn Oblasty',\n        short: 'N',\n      },\n      {\n        long: 'Osh Oblasty',\n        short: 'O',\n      },\n      {\n        long: 'Talas Oblasty',\n        short: 'T',\n      },\n      {\n        long: 'Ysyk-Kol Oblasty (Karakol)',\n        short: 'Y',\n      },\n    ],\n  },\n  {\n    long: 'Laos',\n    short: 'LA',\n    regions: [\n      {\n        long: 'Attapu',\n        short: 'AT',\n      },\n      {\n        long: 'Bokèo',\n        short: 'BK',\n      },\n      {\n        long: 'Bolikhamxai',\n        short: 'BL',\n      },\n      {\n        long: 'Champasak',\n        short: 'CH',\n      },\n      {\n        long: 'Houaphan',\n        short: 'HO',\n      },\n      {\n        long: 'Khammouan',\n        short: 'KH',\n      },\n      {\n        long: 'Louang Namtha',\n        short: 'LM',\n      },\n      {\n        long: 'Louangphabang',\n        short: 'LP',\n      },\n      {\n        long: 'Oudômxai',\n        short: 'OU',\n      },\n      {\n        long: 'Phôngsali',\n        short: 'PH',\n      },\n      {\n        long: 'Salavan',\n        short: 'SL',\n      },\n      {\n        long: 'Savannakhét',\n        short: 'SV',\n      },\n      {\n        long: 'Vientiane',\n        short: 'VI',\n      },\n      {\n        long: 'Xaignabouli',\n        short: 'XA',\n      },\n      {\n        long: 'Xékong',\n        short: 'XE',\n      },\n      {\n        long: 'Xaisomboun',\n        short: 'XS',\n      },\n      {\n        long: 'Xiangkhouang',\n        short: 'XI',\n      },\n    ],\n  },\n  {\n    long: 'Latvia',\n    short: 'LV',\n    regions: [\n      {\n        long: 'Aglona',\n        short: '001',\n      },\n      {\n        long: 'Aizkraukle',\n        short: '002',\n      },\n      {\n        long: 'Aizpute',\n        short: '003',\n      },\n      {\n        long: 'Aknīste',\n        short: '004',\n      },\n      {\n        long: 'Aloja',\n        short: '005',\n      },\n      {\n        long: 'Alsunga',\n        short: '06',\n      },\n      {\n        long: 'Alūksne',\n        short: '007',\n      },\n      {\n        long: 'Amata',\n        short: '008',\n      },\n      {\n        long: 'Ape',\n        short: '009',\n      },\n      {\n        long: 'Auce',\n        short: '010',\n      },\n      {\n        long: 'Ādaži',\n        short: '011',\n      },\n      {\n        long: 'Babīte',\n        short: '012',\n      },\n      {\n        long: 'Baldone',\n        short: '013',\n      },\n      {\n        long: 'Baltinava',\n        short: '014',\n      },\n      {\n        long: 'Balvi',\n        short: '015',\n      },\n      {\n        long: 'Bauska',\n        short: '016',\n      },\n      {\n        long: 'Beverīna',\n        short: '017',\n      },\n      {\n        long: 'Brocēni',\n        short: '018',\n      },\n      {\n        long: 'Burtnieki',\n        short: '019',\n      },\n      {\n        long: 'Carnikava',\n        short: '020',\n      },\n      {\n        long: 'Cesvaine',\n        short: '021',\n      },\n      {\n        long: 'Cēsis',\n        short: '022',\n      },\n      {\n        long: 'Cibla',\n        short: '023',\n      },\n      {\n        long: 'Dagda',\n        short: '024',\n      },\n      {\n        long: 'Daugavpils',\n        short: '025',\n      },\n      {\n        long: 'Daugavpils (City)',\n        short: 'DGV',\n      },\n      {\n        long: 'Dobele',\n        short: '026',\n      },\n      {\n        long: 'Dundaga',\n        short: '027',\n      },\n      {\n        long: 'Durbe',\n        short: '028',\n      },\n      {\n        long: 'Engure',\n        short: '029',\n      },\n      {\n        long: 'Ērgļi',\n        short: '030',\n      },\n      {\n        long: 'Garkalne',\n        short: '031',\n      },\n      {\n        long: 'Grobiņa',\n        short: '032',\n      },\n      {\n        long: 'Gulbene',\n        short: '033',\n      },\n      {\n        long: 'Iecava',\n        short: '034',\n      },\n      {\n        long: 'Ikšķile',\n        short: '035',\n      },\n      {\n        long: 'Ilūkste',\n        short: '036',\n      },\n      {\n        long: 'Inčukalns',\n        short: '037',\n      },\n      {\n        long: 'Jaunjelgava',\n        short: '038',\n      },\n      {\n        long: 'Jaunpiebalga',\n        short: '039',\n      },\n      {\n        long: 'Jaunpils',\n        short: '040',\n      },\n      {\n        long: 'Jelgava',\n        short: '041',\n      },\n      {\n        long: 'Jelgava (City)',\n        short: 'JEL',\n      },\n      {\n        long: 'Jēkabpils',\n        short: '042',\n      },\n      {\n        long: 'Jēkabpils (City)',\n        short: 'JKB',\n      },\n      {\n        long: 'Jūrmala (City)',\n        short: 'JUR',\n      },\n      {\n        long: 'Kandava',\n        short: '043',\n      },\n      {\n        long: 'Kārsava',\n        short: '044',\n      },\n      {\n        long: 'Kocēni',\n        short: '045',\n      },\n      {\n        long: 'Koknese',\n        short: '046',\n      },\n      {\n        long: 'Krāslava',\n        short: '047',\n      },\n      {\n        long: 'Krimulda',\n        short: '048',\n      },\n      {\n        long: 'Krustpils',\n        short: '049',\n      },\n      {\n        long: 'Kuldīga',\n        short: '050',\n      },\n      {\n        long: 'Ķegums',\n        short: '051',\n      },\n      {\n        long: 'Ķekava',\n        short: '052',\n      },\n      {\n        long: 'Lielvārde',\n        short: '053',\n      },\n      {\n        long: 'Liepāja',\n        short: 'LPX',\n      },\n      {\n        long: 'Limbaži',\n        short: '054',\n      },\n      {\n        long: 'Līgatne',\n        short: '055',\n      },\n      {\n        long: 'Līvāni',\n        short: '056',\n      },\n      {\n        long: 'Lubāna',\n        short: '057',\n      },\n      {\n        long: 'Ludza',\n        short: '058',\n      },\n      {\n        long: 'Madona',\n        short: '059',\n      },\n      {\n        long: 'Mazsalaca',\n        short: '060',\n      },\n      {\n        long: 'Mālpils',\n        short: '061',\n      },\n      {\n        long: 'Mārupe',\n        short: '062',\n      },\n      {\n        long: 'Mērsrags',\n        short: '063',\n      },\n      {\n        long: 'Naukšēni',\n        short: '064',\n      },\n      {\n        long: 'Nereta',\n        short: '065',\n      },\n      {\n        long: 'Nīca',\n        short: '066',\n      },\n      {\n        long: 'Ogre',\n        short: '067',\n      },\n      {\n        long: 'Olaine',\n        short: '068',\n      },\n      {\n        long: 'Ozolnieki',\n        short: '069',\n      },\n      {\n        long: 'Pārgauja',\n        short: '070',\n      },\n      {\n        long: 'Pāvilosta',\n        short: '071',\n      },\n      {\n        long: 'Pļaviņas',\n        short: '072',\n      },\n      {\n        long: 'Preiļi',\n        short: '073',\n      },\n      {\n        long: 'Priekule',\n        short: '074',\n      },\n      {\n        long: 'Priekuļi',\n        short: '075',\n      },\n      {\n        long: 'Rauna',\n        short: '076',\n      },\n      {\n        long: 'Rēzekne',\n        short: '077',\n      },\n      {\n        long: 'Rēzekne (City)',\n        short: 'REZ',\n      },\n      {\n        long: 'Riebiņi',\n        short: '078',\n      },\n      {\n        long: 'Rīga',\n        short: 'RIX',\n      },\n      {\n        long: 'Roja',\n        short: '079',\n      },\n      {\n        long: 'Ropaži',\n        short: '080',\n      },\n      {\n        long: 'Rucava',\n        short: '081',\n      },\n      {\n        long: 'Rugāji',\n        short: '082',\n      },\n      {\n        long: 'Rundāle',\n        short: '083',\n      },\n      {\n        long: 'Rūjiena',\n        short: '084',\n      },\n      {\n        long: 'Sala',\n        short: '085',\n      },\n      {\n        long: 'Salacgrīva',\n        short: '086',\n      },\n      {\n        long: 'Salaspils',\n        short: '087',\n      },\n      {\n        long: 'Saldus',\n        short: '088',\n      },\n      {\n        long: 'Saulkrasti',\n        short: '089',\n      },\n      {\n        long: 'Sēja',\n        short: '090',\n      },\n      {\n        long: 'Sigulda',\n        short: '091',\n      },\n      {\n        long: 'Skrīveri',\n        short: '092',\n      },\n      {\n        long: 'Skrunda',\n        short: '093',\n      },\n      {\n        long: 'Smiltene',\n        short: '094',\n      },\n      {\n        long: 'Stopiņi',\n        short: '095',\n      },\n      {\n        long: 'Strenči',\n        short: '096',\n      },\n      {\n        long: 'Talsi',\n        short: '097',\n      },\n      {\n        long: 'Tērvete',\n        short: '098',\n      },\n      {\n        long: 'Tukums',\n        short: '099',\n      },\n      {\n        long: 'Vaiņode',\n        short: '100',\n      },\n      {\n        long: 'Valka',\n        short: '101',\n      },\n      {\n        long: 'Valmiera',\n        short: 'VMR',\n      },\n      {\n        long: 'Varakļāni',\n        short: '102',\n      },\n      {\n        long: 'Vārkava',\n        short: '103',\n      },\n      {\n        long: 'Vecpiebalga',\n        short: '104',\n      },\n      {\n        long: 'Vecumnieki',\n        short: '105',\n      },\n      {\n        long: 'Ventspils',\n        short: '106',\n      },\n      {\n        long: 'Ventspils (City)',\n        short: 'VEN',\n      },\n      {\n        long: 'Viesīte',\n        short: '107',\n      },\n      {\n        long: 'Viļaka',\n        short: '108',\n      },\n      {\n        long: 'Viļāni',\n        short: '109',\n      },\n      {\n        long: 'Zilupe',\n        short: '110',\n      },\n    ],\n  },\n  {\n    long: 'Lebanon',\n    short: 'LB',\n    regions: [\n      {\n        long: 'Aakkâr',\n        short: 'AK',\n      },\n      {\n        long: 'Baalbelk-Hermel',\n        short: 'BH',\n      },\n      {\n        long: 'Béqaa',\n        short: 'BI',\n      },\n      {\n        long: 'Beyrouth',\n        short: 'BA',\n      },\n      {\n        long: 'Liban-Nord',\n        short: 'AS',\n      },\n      {\n        long: 'Liban-Sud',\n        short: 'JA',\n      },\n      {\n        long: 'Mont-Liban',\n        short: 'JL',\n      },\n      {\n        long: 'Nabatîyé',\n        short: 'NA',\n      },\n    ],\n  },\n  {\n    long: 'Lesotho',\n    short: 'LS',\n    regions: [\n      {\n        long: 'Berea',\n        short: 'D',\n      },\n      {\n        long: 'Butha-Buthe',\n        short: 'B',\n      },\n      {\n        long: 'Leribe',\n        short: 'C',\n      },\n      {\n        long: 'Mafeteng',\n        short: 'E',\n      },\n      {\n        long: 'Maseru',\n        short: 'A',\n      },\n      {\n        long: 'Mohales Hoek',\n        short: 'F',\n      },\n      {\n        long: 'Mokhotlong',\n        short: 'J',\n      },\n      {\n        long: \"Qacha's Nek\",\n        short: 'H',\n      },\n      {\n        long: 'Quthing',\n        short: 'G',\n      },\n      {\n        long: 'Thaba-Tseka',\n        short: 'K',\n      },\n    ],\n  },\n  {\n    long: 'Liberia',\n    short: 'LR',\n    regions: [\n      {\n        long: 'Bomi',\n        short: 'BM',\n      },\n      {\n        long: 'Bong',\n        short: 'BG',\n      },\n      {\n        long: 'Gbarpolu',\n        short: 'GP',\n      },\n      {\n        long: 'Grand Bassa',\n        short: 'GB',\n      },\n      {\n        long: 'Grand Cape Mount',\n        short: 'CM',\n      },\n      {\n        long: 'Grand Gedeh',\n        short: 'GG',\n      },\n      {\n        long: 'Grand Kru',\n        short: 'GK',\n      },\n      {\n        long: 'Lofa',\n        short: 'LO',\n      },\n      {\n        long: 'Margibi',\n        short: 'MG',\n      },\n      {\n        long: 'Maryland',\n        short: 'MY',\n      },\n      {\n        long: 'Montserrado',\n        short: 'MO',\n      },\n      {\n        long: 'Nimba',\n        short: 'NI',\n      },\n      {\n        long: 'River Cess',\n        short: 'RI',\n      },\n      {\n        long: 'River Geee',\n        short: 'RG',\n      },\n      {\n        long: 'Sinoe',\n        short: 'SI',\n      },\n    ],\n  },\n  {\n    long: 'Libya',\n    short: 'LY',\n    regions: [\n      {\n        long: 'Al Buţnān',\n        short: 'BU',\n      },\n      {\n        long: 'Al Jabal al Akhḑar',\n        short: 'JA',\n      },\n      {\n        long: 'Al Jabal al Gharbī',\n        short: 'JG',\n      },\n      {\n        long: 'Al Jafārah',\n        short: 'JI',\n      },\n      {\n        long: 'Al Jufrah',\n        short: 'JU',\n      },\n      {\n        long: 'Al Kufrah',\n        short: 'FK',\n      },\n      {\n        long: 'Al Marj',\n        short: 'MJ',\n      },\n      {\n        long: 'Al Marquab',\n        short: 'MB',\n      },\n      {\n        long: 'Al Wāḩāt',\n        short: 'WA',\n      },\n      {\n        long: 'An Nuqaţ al Khams',\n        short: 'NQ',\n      },\n      {\n        long: 'Az Zāwiyah',\n        short: 'ZA',\n      },\n      {\n        long: 'Banghāzī',\n        short: 'BA',\n      },\n      {\n        long: 'Darnah',\n        short: 'DR',\n      },\n      {\n        long: 'Ghāt',\n        short: 'GH',\n      },\n      {\n        long: 'Mişrātah',\n        short: 'MI',\n      },\n      {\n        long: 'Murzuq',\n        short: 'MQ',\n      },\n      {\n        long: 'Nālūt',\n        short: 'NL',\n      },\n      {\n        long: 'Sabhā',\n        short: 'SB',\n      },\n      {\n        long: 'Surt',\n        short: 'SR',\n      },\n      {\n        long: 'Ţarābulus',\n        short: 'TB',\n      },\n      {\n        long: 'Yafran',\n        short: 'WD',\n      },\n      {\n        long: 'Wādī ash Shāţiʾ',\n        short: 'WS',\n      },\n    ],\n  },\n  {\n    long: 'Liechtenstein',\n    short: 'LI',\n    regions: [\n      {\n        long: 'Balzers',\n        short: '01',\n      },\n      {\n        long: 'Eschen',\n        short: '02',\n      },\n      {\n        long: 'Gamprin',\n        short: '03',\n      },\n      {\n        long: 'Mauren',\n        short: '04',\n      },\n      {\n        long: 'Planken',\n        short: '05',\n      },\n      {\n        long: 'Ruggell',\n        short: '06',\n      },\n      {\n        long: 'Schaan',\n        short: '07',\n      },\n      {\n        long: 'Schellenberg',\n        short: '08',\n      },\n      {\n        long: 'Triesen',\n        short: '09',\n      },\n      {\n        long: 'Triesenberg',\n        short: '10',\n      },\n      {\n        long: 'Vaduz',\n        short: '11',\n      },\n    ],\n  },\n  {\n    long: 'Lithuania',\n    short: 'LT',\n    regions: [\n      {\n        long: 'Alytaus',\n        short: 'AL',\n      },\n      {\n        long: 'Kauno',\n        short: 'KU',\n      },\n      {\n        long: 'Klaipėdos',\n        short: 'KL',\n      },\n      {\n        long: 'Marijampolės',\n        short: 'MR',\n      },\n      {\n        long: 'Panevėžio',\n        short: 'PN',\n      },\n      {\n        long: 'Šiaulių',\n        short: 'SA',\n      },\n      {\n        long: 'Tauragės',\n        short: 'TA',\n      },\n      {\n        long: 'Telšių',\n        short: 'TE',\n      },\n      {\n        long: 'Utenos',\n        short: 'UT',\n      },\n      {\n        long: 'Vilniaus',\n        short: 'VL',\n      },\n    ],\n  },\n  {\n    long: 'Luxembourg',\n    short: 'LU',\n    regions: [\n      {\n        long: 'Capellen',\n        short: 'CA',\n      },\n      {\n        long: 'Clevaux',\n        short: 'CL',\n      },\n      {\n        long: 'Diekirch',\n        short: 'DI',\n      },\n      {\n        long: 'Echternach',\n        short: 'EC',\n      },\n      {\n        long: 'Esch-sur-Alzette',\n        short: 'ES',\n      },\n      {\n        long: 'Grevenmacher',\n        short: 'GR',\n      },\n      {\n        long: 'Luxembourg',\n        short: 'LU',\n      },\n      {\n        long: 'Mersch',\n        short: 'ME',\n      },\n      {\n        long: 'Redange',\n        short: 'RD',\n      },\n      {\n        long: 'Remich',\n        short: 'RM',\n      },\n      {\n        long: 'Vianden',\n        short: 'VD',\n      },\n      {\n        long: 'Wiltz',\n        short: 'WI',\n      },\n    ],\n  },\n  {\n    long: 'Macao',\n    short: 'MO',\n    regions: [\n      {\n        long: 'Macao',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Macedonia, Republic of',\n    short: 'MK',\n    regions: [\n      {\n        long: 'Aračinovo',\n        short: '02',\n      },\n      {\n        long: 'Berovo',\n        short: '03',\n      },\n      {\n        long: 'Bitola',\n        short: '04',\n      },\n      {\n        long: 'Bogdanci',\n        short: '05',\n      },\n      {\n        long: 'Bogovinje',\n        short: '06',\n      },\n      {\n        long: 'Bosilovo',\n        short: '07',\n      },\n      {\n        long: 'Brvenica',\n        short: '08',\n      },\n      {\n        long: 'Centar Župa',\n        short: '78',\n      },\n      {\n        long: 'Čaška',\n        short: '80',\n      },\n      {\n        long: 'Češinovo-Obleševo',\n        short: '81',\n      },\n      {\n        long: 'Čučer Sandevo',\n        short: '82',\n      },\n      {\n        long: 'Debar',\n        short: '21',\n      },\n      {\n        long: 'Debarca',\n        short: '22',\n      },\n      {\n        long: 'Delčevo',\n        short: '23',\n      },\n      {\n        long: 'Demir Hisar',\n        short: '25',\n      },\n      {\n        long: 'Demir Kapija',\n        short: '24',\n      },\n      {\n        long: 'Doran',\n        short: '26',\n      },\n      {\n        long: 'Dolneni',\n        short: '27',\n      },\n      {\n        long: 'Gevgelija',\n        short: '18',\n      },\n      {\n        long: 'Gostivar',\n        short: '19',\n      },\n      {\n        long: 'Gradsko',\n        short: '20',\n      },\n      {\n        long: 'Ilinden',\n        short: '34',\n      },\n      {\n        long: 'Jegunovce',\n        short: '35',\n      },\n      {\n        long: 'Karbinci',\n        short: '37',\n      },\n      {\n        long: 'Kavadarci',\n        short: '36',\n      },\n      {\n        long: 'Kičevo',\n        short: '40',\n      },\n      {\n        long: 'Kočani',\n        short: '42',\n      },\n      {\n        long: 'Konče',\n        short: '41',\n      },\n      {\n        long: 'Kratovo',\n        short: '43',\n      },\n      {\n        long: 'Kriva Palanka',\n        short: '44',\n      },\n      {\n        long: 'Krivogaštani',\n        short: '45',\n      },\n      {\n        long: 'Kruševo',\n        short: '46',\n      },\n      {\n        long: 'Kumanovo',\n        short: '47',\n      },\n      {\n        long: 'Lipkovo',\n        short: '48',\n      },\n      {\n        long: 'Lozovo',\n        short: '49',\n      },\n      {\n        long: 'Makedonska Kamenica',\n        short: '51',\n      },\n      {\n        long: 'Makedonski Brod',\n        short: '52',\n      },\n      {\n        long: 'Mavrovo i Rostuša',\n        short: '50',\n      },\n      {\n        long: 'Mogila',\n        short: '53',\n      },\n      {\n        long: 'Negotino',\n        short: '54',\n      },\n      {\n        long: 'Novaci',\n        short: '55',\n      },\n      {\n        long: 'Novo Selo',\n        short: '56',\n      },\n      {\n        long: 'Ohrid',\n        short: '58',\n      },\n      {\n        long: 'Pehčevo',\n        short: '60',\n      },\n      {\n        long: 'Petrovec',\n        short: '59',\n      },\n      {\n        long: 'Plasnica',\n        short: '61',\n      },\n      {\n        long: 'Prilep',\n        short: '62',\n      },\n      {\n        long: 'Probištip',\n        short: '63',\n      },\n      {\n        long: 'Radoviš',\n        short: '',\n      },\n      {\n        long: 'Rankovce',\n        short: '65',\n      },\n      {\n        long: 'Resen',\n        short: '66',\n      },\n      {\n        long: 'Rosoman',\n        short: '67',\n      },\n      {\n        long: 'Skopje',\n        short: '85',\n      },\n      {\n        long: 'Sopište',\n        short: '70',\n      },\n      {\n        long: 'Staro Nagoričane',\n        short: '71',\n      },\n      {\n        long: 'Struga',\n        short: '72',\n      },\n      {\n        long: 'Strumica',\n        short: '73',\n      },\n      {\n        long: 'Studeničani',\n        short: '74',\n      },\n      {\n        long: 'Sveti Nikole',\n        short: '69',\n      },\n      {\n        long: 'Štip',\n        short: '83',\n      },\n      {\n        long: 'Tearce',\n        short: '75',\n      },\n      {\n        long: 'Tetovo',\n        short: '76',\n      },\n      {\n        long: 'Valandovo',\n        short: '10',\n      },\n      {\n        long: 'Vasilevo',\n        short: '11',\n      },\n      {\n        long: 'Veles',\n        short: '13',\n      },\n      {\n        long: 'Vevčani',\n        short: '12',\n      },\n      {\n        long: 'Vinica',\n        short: '14',\n      },\n      {\n        long: 'Vrapčište',\n        short: '16',\n      },\n      {\n        long: 'Zelenikovo',\n        short: '32',\n      },\n      {\n        long: 'Zrnovci',\n        short: '33',\n      },\n      {\n        long: 'Želino',\n        short: '30',\n      },\n    ],\n  },\n  {\n    long: 'Madagascar',\n    short: 'MG',\n    regions: [\n      {\n        long: 'Antananarivo',\n        short: 'T',\n      },\n      {\n        long: 'Antsiranana',\n        short: 'D',\n      },\n      {\n        long: 'Fianarantsoa',\n        short: 'F',\n      },\n      {\n        long: 'Mahajanga',\n        short: 'M',\n      },\n      {\n        long: 'Toamasina',\n        short: 'A',\n      },\n      {\n        long: 'Toliara',\n        short: 'U',\n      },\n    ],\n  },\n  {\n    long: 'Malawi',\n    short: 'MW',\n    regions: [\n      {\n        long: 'Balaka',\n        short: 'BA',\n      },\n      {\n        long: 'Blantyre',\n        short: 'BL',\n      },\n      {\n        long: 'Chikwawa',\n        short: 'CK',\n      },\n      {\n        long: 'Chiradzulu',\n        short: 'CR',\n      },\n      {\n        long: 'Chitipa',\n        short: 'CT',\n      },\n      {\n        long: 'Dedza',\n        short: 'DE',\n      },\n      {\n        long: 'Dowa',\n        short: 'DO',\n      },\n      {\n        long: 'Karonga',\n        short: 'KR',\n      },\n      {\n        long: 'Kasungu',\n        short: 'KS',\n      },\n      {\n        long: 'Likoma',\n        short: 'LK',\n      },\n      {\n        long: 'Lilongwe',\n        short: 'LI',\n      },\n      {\n        long: 'Machinga',\n        short: 'MH',\n      },\n      {\n        long: 'Mangochi',\n        short: 'MG',\n      },\n      {\n        long: 'Mchinji',\n        short: 'MC',\n      },\n      {\n        long: 'Mulanje',\n        short: 'MU',\n      },\n      {\n        long: 'Mwanza',\n        short: 'MW',\n      },\n      {\n        long: 'Mzimba',\n        short: 'MZ',\n      },\n      {\n        long: 'Nkhata Bay',\n        short: 'NE',\n      },\n      {\n        long: 'Nkhotakota',\n        short: 'NB',\n      },\n      {\n        long: 'Nsanje',\n        short: 'NS',\n      },\n      {\n        long: 'Ntcheu',\n        short: 'NU',\n      },\n      {\n        long: 'Ntchisi',\n        short: 'NI',\n      },\n      {\n        long: 'Phalombe',\n        short: 'PH',\n      },\n      {\n        long: 'Rumphi',\n        short: 'RU',\n      },\n      {\n        long: 'Salima',\n        short: 'SA',\n      },\n      {\n        long: 'Thyolo',\n        short: 'TH',\n      },\n      {\n        long: 'Zomba',\n        short: 'ZO',\n      },\n    ],\n  },\n  {\n    long: 'Malaysia',\n    short: 'MY',\n    regions: [\n      {\n        long: 'Johor',\n        short: '01',\n      },\n      {\n        long: 'Kedah',\n        short: '02',\n      },\n      {\n        long: 'Kelantan',\n        short: '03',\n      },\n      {\n        long: 'Melaka',\n        short: '04',\n      },\n      {\n        long: 'Negeri Sembilan',\n        short: '05',\n      },\n      {\n        long: 'Pahang',\n        short: '06',\n      },\n      {\n        long: 'Perak',\n        short: '08',\n      },\n      {\n        long: 'Perlis',\n        short: '09',\n      },\n      {\n        long: 'Pulau Pinang',\n        short: '07',\n      },\n      {\n        long: 'Sabah',\n        short: '12',\n      },\n      {\n        long: 'Sarawak',\n        short: '13',\n      },\n      {\n        long: 'Selangor',\n        short: '10',\n      },\n      {\n        long: 'Terengganu',\n        short: '11',\n      },\n      {\n        long: 'Wilayah Persekutuan (Kuala Lumpur)',\n        short: '14',\n      },\n      {\n        long: 'Wilayah Persekutuan (Labuan)',\n        short: '15',\n      },\n      {\n        long: 'Wilayah Persekutuan (Putrajaya)',\n        short: '16',\n      },\n    ],\n  },\n  {\n    long: 'Maldives',\n    short: 'MV',\n    regions: [\n      {\n        long: 'Alifu Alifu',\n        short: '02',\n      },\n      {\n        long: 'Alifu Dhaalu',\n        short: '00',\n      },\n      {\n        long: 'Baa',\n        short: '20',\n      },\n      {\n        long: 'Dhaalu',\n        short: '17',\n      },\n      {\n        long: 'Faafu',\n        short: '14',\n      },\n      {\n        long: 'Gaafu Alifu',\n        short: '27',\n      },\n      {\n        long: 'Gaafu Dhaalu',\n        short: '28',\n      },\n      {\n        long: 'Gnaviyani',\n        short: '29',\n      },\n      {\n        long: 'Haa Alifu',\n        short: '07',\n      },\n      {\n        long: 'Haa Dhaalu',\n        short: '23',\n      },\n      {\n        long: 'Kaafu',\n        short: '26',\n      },\n      {\n        long: 'Laamu',\n        short: '05',\n      },\n      {\n        long: 'Lhaviyani',\n        short: '03',\n      },\n      {\n        long: 'Malé',\n        short: 'MLE',\n      },\n      {\n        long: 'Meemu',\n        short: '12',\n      },\n      {\n        long: 'Noonu',\n        short: '25',\n      },\n      {\n        long: 'Raa',\n        short: '13',\n      },\n      {\n        long: 'Seenu',\n        short: '01',\n      },\n      {\n        long: 'Shaviyani',\n        short: '24',\n      },\n      {\n        long: 'Thaa',\n        short: '08',\n      },\n      {\n        long: 'Vaavu',\n        short: '04',\n      },\n    ],\n  },\n  {\n    long: 'Mali',\n    short: 'ML',\n    regions: [\n      {\n        long: 'Bamako',\n        short: 'BKO',\n      },\n      {\n        long: 'Gao',\n        short: '7',\n      },\n      {\n        long: 'Kayes',\n        short: '1',\n      },\n      {\n        long: 'Kidal',\n        short: '8',\n      },\n      {\n        long: 'Koulikoro',\n        short: '2',\n      },\n      {\n        long: 'Mopti',\n        short: '5',\n      },\n      {\n        long: 'Segou',\n        short: '4',\n      },\n      {\n        long: 'Sikasso',\n        short: '3',\n      },\n      {\n        long: 'Tombouctou',\n        short: '6',\n      },\n      {\n        long: 'Taoudénit',\n        short: '9',\n      },\n      {\n        long: 'Ménaka',\n        short: '10',\n      },\n    ],\n  },\n  {\n    long: 'Malta',\n    short: 'MT',\n    regions: [\n      {\n        long: 'Attard',\n        short: '01',\n      },\n      {\n        long: 'Balzan',\n        short: '02',\n      },\n      {\n        long: 'Birgu',\n        short: '03',\n      },\n      {\n        long: 'Birkirkara',\n        short: '04',\n      },\n      {\n        long: 'Birżebbuġa',\n        short: '05',\n      },\n      {\n        long: 'Bormla',\n        short: '06',\n      },\n      {\n        long: 'Dingli',\n        short: '07',\n      },\n      {\n        long: 'Fgura',\n        short: '08',\n      },\n      {\n        long: 'Floriana',\n        short: '09',\n      },\n      {\n        long: 'Fontana',\n        short: '10',\n      },\n      {\n        long: 'Guda',\n        short: '11',\n      },\n      {\n        long: 'Gżira',\n        short: '12',\n      },\n      {\n        long: 'Għajnsielem',\n        short: '13',\n      },\n      {\n        long: 'Għarb',\n        short: '14',\n      },\n      {\n        long: 'Għargħur',\n        short: '15',\n      },\n      {\n        long: 'Għasri',\n        short: '16',\n      },\n      {\n        long: 'Għaxaq',\n        short: '17',\n      },\n      {\n        long: 'Ħamrun',\n        short: '18',\n      },\n      {\n        long: 'Iklin',\n        short: '19',\n      },\n      {\n        long: 'Isla',\n        short: '20',\n      },\n      {\n        long: 'Kalkara',\n        short: '21',\n      },\n      {\n        long: 'Kerċem',\n        short: '22',\n      },\n      {\n        long: 'Kirkop',\n        short: '23',\n      },\n      {\n        long: 'Lija',\n        short: '24',\n      },\n      {\n        long: 'Luqa',\n        short: '25',\n      },\n      {\n        long: 'Marsa',\n        short: '26',\n      },\n      {\n        long: 'Marsaskala',\n        short: '27',\n      },\n      {\n        long: 'Marsaxlokk',\n        short: '28',\n      },\n      {\n        long: 'Mdina',\n        short: '29',\n      },\n      {\n        long: 'Mellieħa',\n        short: '30',\n      },\n      {\n        long: 'Mġarr',\n        short: '31',\n      },\n      {\n        long: 'Mosta',\n        short: '32',\n      },\n      {\n        long: 'Mqabba',\n        short: '33',\n      },\n      {\n        long: 'Msida',\n        short: '34',\n      },\n      {\n        long: 'Mtarfa',\n        short: '35',\n      },\n      {\n        long: 'Munxar',\n        short: '36',\n      },\n      {\n        long: 'Nadur',\n        short: '37',\n      },\n      {\n        long: 'Naxxar',\n        short: '38',\n      },\n      {\n        long: 'Paola',\n        short: '39',\n      },\n      {\n        long: 'Pembroke',\n        short: '40',\n      },\n      {\n        long: 'Pietà',\n        short: '41',\n      },\n      {\n        long: 'Qala',\n        short: '42',\n      },\n      {\n        long: 'Qormi',\n        short: '43',\n      },\n      {\n        long: 'Qrendi',\n        short: '44',\n      },\n      {\n        long: 'Rabat Għawdex',\n        short: '45',\n      },\n      {\n        long: 'Rabat Malta',\n        short: '46',\n      },\n      {\n        long: 'Safi',\n        short: '47',\n      },\n      {\n        long: 'San Ġiljan',\n        short: '48',\n      },\n      {\n        long: 'San Ġwann',\n        short: '49',\n      },\n      {\n        long: 'San Lawrenz',\n        short: '50',\n      },\n      {\n        long: 'San Pawl il-Baħar',\n        short: '51',\n      },\n      {\n        long: 'Sannat',\n        short: '52',\n      },\n      {\n        long: 'Santa Luċija',\n        short: '53',\n      },\n      {\n        long: 'Santa Venera',\n        short: '54',\n      },\n      {\n        long: 'Siġġiewi',\n        short: '55',\n      },\n      {\n        long: 'Sliema',\n        short: '56',\n      },\n      {\n        long: 'Swieqi',\n        short: '57',\n      },\n      {\n        long: 'Tai Xbiex',\n        short: '58',\n      },\n      {\n        long: 'Tarzien',\n        short: '59',\n      },\n      {\n        long: 'Valletta',\n        short: '60',\n      },\n      {\n        long: 'Xagħra',\n        short: '61',\n      },\n      {\n        long: 'Xewkija',\n        short: '62',\n      },\n      {\n        long: 'Xgħajra',\n        short: '63',\n      },\n      {\n        long: 'Żabbar',\n        short: '64',\n      },\n      {\n        long: 'Żebbuġ Għawde',\n        short: '65',\n      },\n      {\n        long: 'Żebbuġ Malta',\n        short: '66',\n      },\n      {\n        long: 'Żejtun',\n        short: '67',\n      },\n      {\n        long: 'Żurrieq',\n        short: '68',\n      },\n    ],\n  },\n  {\n    long: 'Marshall Islands',\n    short: 'MH',\n    regions: [\n      {\n        long: 'Ailinglaplap',\n        short: 'ALL',\n      },\n      {\n        long: 'Ailuk',\n        short: 'ALK',\n      },\n      {\n        long: 'Arno',\n        short: 'ARN',\n      },\n      {\n        long: 'Aur',\n        short: 'AUR',\n      },\n      {\n        long: 'Bikini and Kili',\n        short: 'KIL',\n      },\n      {\n        long: 'Ebon',\n        short: 'EBO',\n      },\n      {\n        long: 'Jabat',\n        short: 'JAB',\n      },\n      {\n        long: 'Jaluit',\n        short: 'JAL',\n      },\n      {\n        long: 'Kwajalein',\n        short: 'KWA',\n      },\n      {\n        long: 'Lae',\n        short: 'LAE',\n      },\n      {\n        long: 'Lib',\n        short: 'LIB',\n      },\n      {\n        long: 'Likiep',\n        short: 'LIK',\n      },\n      {\n        long: 'Majuro',\n        short: 'MAJ',\n      },\n      {\n        long: 'Maloelap',\n        short: 'MAL',\n      },\n      {\n        long: 'Mejit',\n        short: 'MEJ',\n      },\n      {\n        long: 'Namdrik',\n        short: 'NMK',\n      },\n      {\n        long: 'Namu',\n        short: 'NMU',\n      },\n      {\n        long: 'Rongelap',\n        short: 'RON',\n      },\n      {\n        long: 'Ujae',\n        short: 'UJA',\n      },\n      {\n        long: 'Utrik',\n        short: 'UTI',\n      },\n      {\n        long: 'Wotho',\n        short: 'WTH',\n      },\n      {\n        long: 'Wotje',\n        short: 'WTJ',\n      },\n    ],\n  },\n  {\n    long: 'Martinique',\n    short: 'MQ',\n    regions: [\n      {\n        long: 'Martinique',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Mauritania',\n    short: 'MR',\n    regions: [\n      {\n        long: 'Adrar',\n        short: '07',\n      },\n      {\n        long: 'Assaba',\n        short: '03',\n      },\n      {\n        long: 'Brakna',\n        short: '05',\n      },\n      {\n        long: 'Dakhlet Nouadhibou',\n        short: '08',\n      },\n      {\n        long: 'Gorgol',\n        short: '04',\n      },\n      {\n        long: 'Guidimaka',\n        short: '10',\n      },\n      {\n        long: 'Hodh Ech Chargui',\n        short: '01',\n      },\n      {\n        long: 'Hodh El Gharbi',\n        short: '02',\n      },\n      {\n        long: 'Inchiri',\n        short: '12',\n      },\n      {\n        long: 'Nouakchott Nord',\n        short: '14',\n      },\n      {\n        long: 'Nouakchott Ouest',\n        short: '13',\n      },\n      {\n        long: 'Nouakchott Sud',\n        short: '15',\n      },\n      {\n        long: 'Tagant',\n        short: '09',\n      },\n      {\n        long: 'Tiris Zemmour',\n        short: '11',\n      },\n      {\n        long: 'Trarza',\n        short: '06',\n      },\n    ],\n  },\n  {\n    long: 'Mauritius',\n    short: 'MU',\n    regions: [\n      {\n        long: 'Agalega Islands',\n        short: 'AG',\n      },\n      {\n        long: 'Beau Bassin-Rose Hill',\n        short: 'BR',\n      },\n      {\n        long: 'Black River',\n        short: 'BL',\n      },\n      {\n        long: 'Cargados Carajos Shoals',\n        short: 'CC',\n      },\n      {\n        long: 'Curepipe',\n        short: 'CU',\n      },\n      {\n        long: 'Flacq',\n        short: 'FL',\n      },\n      {\n        long: 'Grand Port',\n        short: 'GP',\n      },\n      {\n        long: 'Moka',\n        short: 'MO',\n      },\n      {\n        long: 'Pamplemousses',\n        short: 'PA',\n      },\n      {\n        long: 'Plaines Wilhems',\n        short: 'PW',\n      },\n      {\n        long: 'Port Louis (City)',\n        short: 'PU',\n      },\n      {\n        long: 'Port Louis',\n        short: 'PL',\n      },\n      {\n        long: 'Riviere du Rempart',\n        short: 'RR',\n      },\n      {\n        long: 'Rodrigues Island',\n        short: 'RO',\n      },\n      {\n        long: 'Savanne',\n        short: 'SA',\n      },\n      {\n        long: 'Vacoas-Phoenix',\n        short: 'CP',\n      },\n    ],\n  },\n  {\n    long: 'Mayotte',\n    short: 'YT',\n    regions: [\n      {\n        long: 'Dzaoudzi',\n        short: '01',\n      },\n      {\n        long: 'Pamandzi',\n        short: '02',\n      },\n      {\n        long: 'Mamoudzou',\n        short: '03',\n      },\n      {\n        long: 'Dembeni',\n        short: '04',\n      },\n      {\n        long: 'Bandrélé',\n        short: '05',\n      },\n      {\n        long: 'Kani-Kéli',\n        short: '06',\n      },\n      {\n        long: 'Bouéni',\n        short: '07',\n      },\n      {\n        long: 'Chirongui',\n        short: '08',\n      },\n      {\n        long: 'Sada',\n        short: '09',\n      },\n      {\n        long: 'Ouangani',\n        short: '10',\n      },\n      {\n        long: 'Chiconi',\n        short: '11',\n      },\n      {\n        long: 'Tsingoni',\n        short: '12',\n      },\n      {\n        long: \"M'Tsangamouji\",\n        short: '13',\n      },\n      {\n        long: 'Acoua',\n        short: '14',\n      },\n      {\n        long: 'Mtsamboro',\n        short: '15',\n      },\n      {\n        long: 'Bandraboua',\n        short: '16',\n      },\n      {\n        long: 'Koungou',\n        short: '17',\n      },\n    ],\n  },\n  {\n    long: 'Mexico',\n    short: 'MX',\n    regions: [\n      {\n        long: 'Aguascalientes',\n        short: 'AGU',\n      },\n      {\n        long: 'Baja California',\n        short: 'BCN',\n      },\n      {\n        long: 'Baja California Sur',\n        short: 'BCS',\n      },\n      {\n        long: 'Campeche',\n        short: 'CAM',\n      },\n      {\n        long: 'Ciudad de México',\n        short: 'DIF',\n      },\n      {\n        long: 'Chiapas',\n        short: 'CHP',\n      },\n      {\n        long: 'Chihuahua',\n        short: 'CHH',\n      },\n      {\n        long: 'Coahuila de Zaragoza',\n        short: 'COA',\n      },\n      {\n        long: 'Colima',\n        short: 'COL',\n      },\n      {\n        long: 'Durango',\n        short: 'DUR',\n      },\n      {\n        long: 'Estado de México',\n        short: 'MEX',\n      },\n      {\n        long: 'Guanajuato',\n        short: 'GUA',\n      },\n      {\n        long: 'Guerrero',\n        short: 'GRO',\n      },\n      {\n        long: 'Hidalgo',\n        short: 'HID',\n      },\n      {\n        long: 'Jalisco',\n        short: 'JAL',\n      },\n      {\n        long: 'Michoacán de Ocampo',\n        short: 'MIC',\n      },\n      {\n        long: 'Morelos',\n        short: 'MOR',\n      },\n      {\n        long: 'Nayarit',\n        short: 'NAY',\n      },\n      {\n        long: 'Nuevo León',\n        short: 'NLE',\n      },\n      {\n        long: 'Oaxaca',\n        short: 'OAX',\n      },\n      {\n        long: 'Puebla',\n        short: 'PUE',\n      },\n      {\n        long: 'Querétaro de Arteaga',\n        short: 'QUE',\n      },\n      {\n        long: 'Quintana Roo',\n        short: 'ROO',\n      },\n      {\n        long: 'San Luis Potosí',\n        short: 'SLP',\n      },\n      {\n        long: 'Sinaloa',\n        short: 'SIN',\n      },\n      {\n        long: 'Sonora',\n        short: 'SON',\n      },\n      {\n        long: 'Tabasco',\n        short: 'TAB',\n      },\n      {\n        long: 'Tamaulipas',\n        short: 'TAM',\n      },\n      {\n        long: 'Tlaxcala',\n        short: 'TLA',\n      },\n      {\n        long: 'Veracruz',\n        short: 'VER',\n      },\n      {\n        long: 'Yucatán',\n        short: 'YUC',\n      },\n      {\n        long: 'Zacatecas',\n        short: 'ZAC',\n      },\n    ],\n  },\n  {\n    long: 'Micronesia, Federated States of',\n    short: 'FM',\n    regions: [\n      {\n        long: 'Chuuk (Truk)',\n        short: 'TRK',\n      },\n      {\n        long: 'Kosrae',\n        short: 'KSA',\n      },\n      {\n        long: 'Pohnpei',\n        short: 'PNI',\n      },\n      {\n        long: 'Yap',\n        short: 'YAP',\n      },\n    ],\n  },\n  {\n    long: 'Moldova',\n    short: 'MD',\n    regions: [\n      {\n        long: 'Aenii Noi',\n        short: 'AN',\n      },\n      {\n        long: 'Basarabeasca',\n        short: 'BS',\n      },\n      {\n        long: 'Bălți',\n        short: 'BA',\n      },\n      {\n        long: 'Bender',\n        short: 'BD',\n      },\n      {\n        long: 'Briceni',\n        short: 'BR',\n      },\n      {\n        long: 'Cahul',\n        short: 'CA',\n      },\n      {\n        long: 'Cantemir',\n        short: 'CT',\n      },\n      {\n        long: 'Călărași',\n        short: 'CL',\n      },\n      {\n        long: 'Căușeni',\n        short: 'CS',\n      },\n      {\n        long: 'Chișinău',\n        short: 'CU',\n      },\n      {\n        long: 'Cimișlia',\n        short: 'CM',\n      },\n      {\n        long: 'Criuleni',\n        short: 'CR',\n      },\n      {\n        long: 'Dondușeni',\n        short: 'DO',\n      },\n      {\n        long: 'Drochia',\n        short: 'DR',\n      },\n      {\n        long: 'Dubăsari',\n        short: 'DU',\n      },\n      {\n        long: 'Edineț',\n        short: 'ED',\n      },\n      {\n        long: 'Fălești',\n        short: 'FA',\n      },\n      {\n        long: 'Florești',\n        short: 'FL',\n      },\n      {\n        long: 'Găgăuzia',\n        short: 'GA',\n      },\n      {\n        long: 'Glodeni',\n        short: 'GL',\n      },\n      {\n        long: 'Hîncești',\n        short: 'HI',\n      },\n      {\n        long: 'Ialoveni',\n        short: 'IA',\n      },\n      {\n        long: 'Leova',\n        short: 'LE',\n      },\n      {\n        long: 'Nisporeni',\n        short: 'NI',\n      },\n      {\n        long: 'Ocnița',\n        short: 'OC',\n      },\n      {\n        long: 'Orhei',\n        short: 'OR',\n      },\n      {\n        long: 'Rezina',\n        short: 'RE',\n      },\n      {\n        long: 'Rîșcani',\n        short: 'RI',\n      },\n      {\n        long: 'Sîngerei',\n        short: 'SI',\n      },\n      {\n        long: 'Soroca',\n        short: 'SO',\n      },\n      {\n        long: 'Stânga Nistrului',\n        short: 'SN',\n      },\n      {\n        long: 'Strășeni',\n        short: 'ST',\n      },\n      {\n        long: 'Șoldănești',\n        short: 'SD',\n      },\n      {\n        long: 'Ștefan Vodă',\n        short: 'SV',\n      },\n      {\n        long: 'Taraclia',\n        short: 'TA',\n      },\n      {\n        long: 'Telenești',\n        short: 'TE',\n      },\n      {\n        long: 'Ungheni',\n        short: 'UN',\n      },\n    ],\n  },\n  {\n    long: 'Monaco',\n    short: 'MC',\n    regions: [\n      {\n        long: 'Colle',\n        short: 'CL',\n      },\n      {\n        long: 'Condamine',\n        short: 'CO',\n      },\n      {\n        long: 'Fontvieille',\n        short: 'FO',\n      },\n      {\n        long: 'Gare',\n        short: 'GA',\n      },\n      {\n        long: 'Jardin Exotique',\n        short: 'JE',\n      },\n      {\n        long: 'Larvotto',\n        short: 'LA',\n      },\n      {\n        long: 'Malbousquet',\n        short: 'MA',\n      },\n      {\n        long: 'Monaco-Ville',\n        short: 'MO',\n      },\n      {\n        long: 'Moneghetti',\n        short: 'MG',\n      },\n      {\n        long: 'Monte-Carlo',\n        short: 'MC',\n      },\n      {\n        long: 'Moulins',\n        short: 'MU',\n      },\n      {\n        long: 'Port-Hercule',\n        short: 'PH',\n      },\n      {\n        long: 'Saint-Roman',\n        short: 'SR',\n      },\n      {\n        long: 'Sainte-Dévote',\n        short: 'SD',\n      },\n      {\n        long: 'Source',\n        short: 'SO',\n      },\n      {\n        long: 'Spélugues',\n        short: 'SP',\n      },\n      {\n        long: 'Vallon de la Rousse',\n        short: 'VR',\n      },\n    ],\n  },\n  {\n    long: 'Mongolia',\n    short: 'MN',\n    regions: [\n      {\n        long: 'Arhangay',\n        short: '073',\n      },\n      {\n        long: 'Bayan-Olgiy',\n        short: '071',\n      },\n      {\n        long: 'Bayanhongor',\n        short: '069',\n      },\n      {\n        long: 'Bulgan',\n        short: '067',\n      },\n      {\n        long: 'Darhan',\n        short: '037',\n      },\n      {\n        long: 'Dornod',\n        short: '061',\n      },\n      {\n        long: 'Dornogovi',\n        short: '063',\n      },\n      {\n        long: 'Dundgovi',\n        short: '059',\n      },\n      {\n        long: 'Dzavhan',\n        short: '057',\n      },\n      {\n        long: 'Govi-Altay',\n        short: '065',\n      },\n      {\n        long: 'Govi-Sumber',\n        short: '064',\n      },\n      {\n        long: 'Hovd',\n        short: '043',\n      },\n      {\n        long: 'Hovsgol',\n        short: '041',\n      },\n      {\n        long: 'Omnogovi',\n        short: '053',\n      },\n      {\n        long: 'Ovorhangay',\n        short: '055',\n      },\n      {\n        long: 'Selenge',\n        short: '049',\n      },\n      {\n        long: 'Suhbaatar',\n        short: '051',\n      },\n      {\n        long: 'Tov',\n        short: '047',\n      },\n      {\n        long: 'Ulaanbaatar',\n        short: '1',\n      },\n      {\n        long: 'Uvs',\n        short: '046',\n      },\n      {\n        long: 'Erdenet',\n        short: '074',\n      },\n    ],\n  },\n  {\n    long: 'Montenegro',\n    short: 'ME',\n    regions: [\n      {\n        long: 'Andrijevica',\n        short: '01',\n      },\n      {\n        long: 'Bar',\n        short: '02',\n      },\n      {\n        long: 'Berane',\n        short: '03',\n      },\n      {\n        long: 'Bijelo Polje',\n        short: '04',\n      },\n      {\n        long: 'Budva',\n        short: '05',\n      },\n      {\n        long: 'Cetinje',\n        short: '06',\n      },\n      {\n        long: 'Danilovgrad',\n        short: '07',\n      },\n      {\n        long: 'Gusinje',\n        short: '22',\n      },\n      {\n        long: 'Herceg Novi',\n        short: '08',\n      },\n      {\n        long: 'Kolašin',\n        short: '09',\n      },\n      {\n        long: 'Kotor',\n        short: '10',\n      },\n      {\n        long: 'Mojkovac',\n        short: '11',\n      },\n      {\n        long: 'Nikšić',\n        short: '12',\n      },\n      {\n        long: 'Petnica',\n        short: '23',\n      },\n      {\n        long: 'Plav',\n        short: '13',\n      },\n      {\n        long: 'Plužine',\n        short: '14',\n      },\n      {\n        long: 'Pljevlja',\n        short: '15',\n      },\n      {\n        long: 'Podgorica',\n        short: '16',\n      },\n      {\n        long: 'Rožaje',\n        short: '17',\n      },\n      {\n        long: 'Šavnik',\n        short: '18',\n      },\n      {\n        long: 'Tivat',\n        short: '19',\n      },\n      {\n        long: 'Ulcinj',\n        short: '20',\n      },\n      {\n        long: 'Žabljak',\n        short: '21',\n      },\n    ],\n  },\n  {\n    long: 'Montserrat',\n    short: 'MS',\n    regions: [\n      {\n        long: 'Saint Anthony',\n        short: 'undefined',\n      },\n      {\n        long: 'Saint Georges',\n        short: 'undefined',\n      },\n      {\n        long: \"Saint Peter's\",\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Morocco',\n    short: 'MA',\n    regions: [\n      {\n        long: 'Tanger-Tétouan-Al Hoceïma',\n        short: 'MA-01',\n      },\n      {\n        long: \"L'Oriental\",\n        short: 'MA-02',\n      },\n      {\n        long: 'Fès-Meknès',\n        short: 'MA-03',\n      },\n      {\n        long: 'Rabat-Salé-Kénitra',\n        short: 'MA-04',\n      },\n      {\n        long: 'Béni Mellal-Khénifra',\n        short: 'MA-05',\n      },\n      {\n        long: 'Casablanca-Settat',\n        short: 'MA-06',\n      },\n      {\n        long: 'Marrakech-Safi',\n        short: 'MA-07',\n      },\n      {\n        long: 'Drâa-Tafilalet',\n        short: 'MA-08',\n      },\n      {\n        long: 'Souss-Massa',\n        short: 'MA-09',\n      },\n      {\n        long: 'Guelmim-Oued Noun',\n        short: 'MA-10',\n      },\n      {\n        long: 'Laâyoune-Sakia El Hamra',\n        short: 'MA-11',\n      },\n      {\n        long: 'Dakhla-Oued Ed-Dahab',\n        short: 'MA-12',\n      },\n    ],\n  },\n  {\n    long: 'Mozambique',\n    short: 'MZ',\n    regions: [\n      {\n        long: 'Cabo Delgado',\n        short: 'P',\n      },\n      {\n        long: 'Gaza',\n        short: 'G',\n      },\n      {\n        long: 'Inhambane',\n        short: 'I',\n      },\n      {\n        long: 'Manica',\n        short: 'B',\n      },\n      {\n        long: 'Maputo',\n        short: 'L',\n      },\n      {\n        long: 'Maputo (City)',\n        short: 'MPM',\n      },\n      {\n        long: 'Nampula',\n        short: 'N',\n      },\n      {\n        long: 'Niassa',\n        short: 'A',\n      },\n      {\n        long: 'Sofala',\n        short: 'S',\n      },\n      {\n        long: 'Tete',\n        short: 'T',\n      },\n      {\n        long: 'Zambezia',\n        short: 'Q',\n      },\n    ],\n  },\n  {\n    long: 'Myanmar',\n    short: 'MM',\n    regions: [\n      {\n        long: 'Ayeyarwady',\n        short: '07',\n      },\n      {\n        long: 'Bago',\n        short: '02',\n      },\n      {\n        long: 'Chin',\n        short: '14',\n      },\n      {\n        long: 'Kachin',\n        short: '11',\n      },\n      {\n        long: 'Kayah',\n        short: '12',\n      },\n      {\n        long: 'Kayin',\n        short: '13',\n      },\n      {\n        long: 'Magway',\n        short: '03',\n      },\n      {\n        long: 'Mandalay',\n        short: '04',\n      },\n      {\n        long: 'Mon',\n        short: '15',\n      },\n      {\n        long: 'Nay Pyi Taw',\n        short: '18',\n      },\n      {\n        long: 'Rakhine',\n        short: '16',\n      },\n      {\n        long: 'Sagaing',\n        short: '01',\n      },\n      {\n        long: 'Shan',\n        short: '17',\n      },\n      {\n        long: 'Tanintharyi',\n        short: '05',\n      },\n      {\n        long: 'Yangon',\n        short: '06',\n      },\n    ],\n  },\n  {\n    long: 'Namibia',\n    short: 'NA',\n    regions: [\n      {\n        long: 'Erongo',\n        short: 'ER',\n      },\n      {\n        long: 'Hardap',\n        short: 'HA',\n      },\n      {\n        long: 'Kavango East',\n        short: 'KE',\n      },\n      {\n        long: 'Kavango West',\n        short: 'KW',\n      },\n      {\n        long: 'Karas',\n        short: 'KA',\n      },\n      {\n        long: 'Khomas',\n        short: 'KH',\n      },\n      {\n        long: 'Kunene',\n        short: 'KU',\n      },\n      {\n        long: 'Ohangwena',\n        short: 'OW',\n      },\n      {\n        long: 'Omaheke',\n        short: 'OH',\n      },\n      {\n        long: 'Omusati',\n        short: 'OS',\n      },\n      {\n        long: 'Oshana',\n        short: 'ON',\n      },\n      {\n        long: 'Oshikoto',\n        short: 'OT',\n      },\n      {\n        long: 'Otjozondjupa',\n        short: 'OD',\n      },\n      {\n        long: 'Zambezi',\n        short: 'CA',\n      },\n    ],\n  },\n  {\n    long: 'Nauru',\n    short: 'NR',\n    regions: [\n      {\n        long: 'Aiwo',\n        short: '01',\n      },\n      {\n        long: 'Anabar',\n        short: '02',\n      },\n      {\n        long: 'Anetan',\n        short: '03',\n      },\n      {\n        long: 'Anibare',\n        short: '04',\n      },\n      {\n        long: 'Baiti',\n        short: '05',\n      },\n      {\n        long: 'Boe',\n        short: '06',\n      },\n      {\n        long: 'Buada',\n        short: '07',\n      },\n      {\n        long: 'Denigomodu',\n        short: '08',\n      },\n      {\n        long: 'Ewa',\n        short: '09',\n      },\n      {\n        long: 'Ijuw',\n        short: '10',\n      },\n      {\n        long: 'Meneng',\n        short: '11',\n      },\n      {\n        long: 'Nibok',\n        short: '12',\n      },\n      {\n        long: 'Uaboe',\n        short: '13',\n      },\n      {\n        long: 'Yaren',\n        short: '14',\n      },\n    ],\n  },\n  {\n    long: 'Nepal',\n    short: 'NP',\n    regions: [\n      {\n        long: 'Province No. 1',\n        short: '1',\n      },\n      {\n        long: 'Province No. 2',\n        short: '2',\n      },\n      {\n        long: 'Bagmati Province',\n        short: '3',\n      },\n      {\n        long: 'Gandaki Province',\n        short: '4',\n      },\n      {\n        long: 'Lumbini Province',\n        short: '5',\n      },\n      {\n        long: 'Karnali Province',\n        short: '6',\n      },\n      {\n        long: 'Sudurpashchim',\n        short: '7',\n      },\n    ],\n  },\n  {\n    long: 'Netherlands',\n    short: 'NL',\n    regions: [\n      {\n        long: 'Drenthe',\n        short: 'DR',\n      },\n      {\n        long: 'Flevoland',\n        short: 'FL',\n      },\n      {\n        long: 'Friesland',\n        short: 'FR',\n      },\n      {\n        long: 'Gelderland',\n        short: 'GE',\n      },\n      {\n        long: 'Groningen',\n        short: 'GR',\n      },\n      {\n        long: 'Limburg',\n        short: 'LI',\n      },\n      {\n        long: 'Noord-Brabant',\n        short: 'NB',\n      },\n      {\n        long: 'Noord-Holland',\n        short: 'NH',\n      },\n      {\n        long: 'Overijssel',\n        short: 'OV',\n      },\n      {\n        long: 'Utrecht',\n        short: 'UT',\n      },\n      {\n        long: 'Zeeland',\n        short: 'ZE',\n      },\n      {\n        long: 'Zuid-Holland',\n        short: 'ZH',\n      },\n    ],\n  },\n  {\n    long: 'New Caledonia',\n    short: 'NC',\n    regions: [\n      {\n        long: 'Iles Loyaute',\n        short: 'undefined',\n      },\n      {\n        long: 'Nord',\n        short: 'undefined',\n      },\n      {\n        long: 'Sud',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'New Zealand',\n    short: 'NZ',\n    regions: [\n      {\n        long: 'Auckland',\n        short: 'AUK',\n      },\n      {\n        long: 'Bay of Plenty',\n        short: 'BOP',\n      },\n      {\n        long: 'Canterbury',\n        short: 'CAN',\n      },\n      {\n        long: 'Gisborne',\n        short: 'GIS',\n      },\n      {\n        long: \"Hawke's Bay\",\n        short: 'HKB',\n      },\n      {\n        long: 'Marlborough',\n        short: 'MBH',\n      },\n      {\n        long: 'Manawatu-Wanganui',\n        short: 'MWT',\n      },\n      {\n        long: 'Northland',\n        short: 'NTL',\n      },\n      {\n        long: 'Nelson',\n        short: 'NSN',\n      },\n      {\n        long: 'Otago',\n        short: 'OTA',\n      },\n      {\n        long: 'Southland',\n        short: 'STL',\n      },\n      {\n        long: 'Taranaki',\n        short: 'TKI',\n      },\n      {\n        long: 'Tasman',\n        short: 'TAS',\n      },\n      {\n        long: 'Waikato',\n        short: 'WKO',\n      },\n      {\n        long: 'Wellington',\n        short: 'WGN',\n      },\n      {\n        long: 'West Coast',\n        short: 'WTC',\n      },\n      {\n        long: 'Chatham Islands Territory',\n        short: 'CIT',\n      },\n    ],\n  },\n  {\n    long: 'Nicaragua',\n    short: 'NI',\n    regions: [\n      {\n        long: 'Boaco',\n        short: 'BO',\n      },\n      {\n        long: 'Carazo',\n        short: 'CA',\n      },\n      {\n        long: 'Chinandega',\n        short: 'CI',\n      },\n      {\n        long: 'Chontales',\n        short: 'CO',\n      },\n      {\n        long: 'Estelí',\n        short: 'ES',\n      },\n      {\n        long: 'Granada',\n        short: 'GR',\n      },\n      {\n        long: 'Jinotega',\n        short: 'JI',\n      },\n      {\n        long: 'León',\n        short: 'LE',\n      },\n      {\n        long: 'Madriz',\n        short: 'MD',\n      },\n      {\n        long: 'Managua',\n        short: 'MN',\n      },\n      {\n        long: 'Masaya',\n        short: 'MS',\n      },\n      {\n        long: 'Matagalpa',\n        short: 'MT',\n      },\n      {\n        long: 'Nueva Segovia',\n        short: 'NS',\n      },\n      {\n        long: 'Río San Juan',\n        short: 'SJ',\n      },\n      {\n        long: 'Rivas',\n        short: 'RI',\n      },\n      {\n        long: 'Atlántico Norte',\n        short: 'AN',\n      },\n      {\n        long: 'Atlántico Sur',\n        short: 'AS',\n      },\n    ],\n  },\n  {\n    long: 'Niger',\n    short: 'NE',\n    regions: [\n      {\n        long: 'Agadez',\n        short: '1',\n      },\n      {\n        long: 'Diffa',\n        short: '2',\n      },\n      {\n        long: 'Dosso',\n        short: '3',\n      },\n      {\n        long: 'Maradi',\n        short: '4',\n      },\n      {\n        long: 'Niamey',\n        short: '8',\n      },\n      {\n        long: 'Tahoua',\n        short: '5',\n      },\n      {\n        long: 'Tillabéri',\n        short: '6',\n      },\n      {\n        long: 'Zinder',\n        short: '7',\n      },\n    ],\n  },\n  {\n    long: 'Nigeria',\n    short: 'NG',\n    regions: [\n      {\n        long: 'Abia',\n        short: 'AB',\n      },\n      {\n        long: 'Abuja Federal Capital Territory',\n        short: 'FC',\n      },\n      {\n        long: 'Adamawa',\n        short: 'AD',\n      },\n      {\n        long: 'Akwa Ibom',\n        short: 'AK',\n      },\n      {\n        long: 'Anambra',\n        short: 'AN',\n      },\n      {\n        long: 'Bauchi',\n        short: 'BA',\n      },\n      {\n        long: 'Bayelsa',\n        short: 'BY',\n      },\n      {\n        long: 'Benue',\n        short: 'BE',\n      },\n      {\n        long: 'Borno',\n        short: 'BO',\n      },\n      {\n        long: 'Cross River',\n        short: 'CR',\n      },\n      {\n        long: 'Delta',\n        short: 'DE',\n      },\n      {\n        long: 'Ebonyi',\n        short: 'EB',\n      },\n      {\n        long: 'Edo',\n        short: 'ED',\n      },\n      {\n        long: 'Ekiti',\n        short: 'EK',\n      },\n      {\n        long: 'Enugu',\n        short: 'EN',\n      },\n      {\n        long: 'Gombe',\n        short: 'GO',\n      },\n      {\n        long: 'Imo',\n        short: 'IM',\n      },\n      {\n        long: 'Jigawa',\n        short: 'JI',\n      },\n      {\n        long: 'Kaduna',\n        short: 'KD',\n      },\n      {\n        long: 'Kano',\n        short: 'KN',\n      },\n      {\n        long: 'Katsina',\n        short: 'KT',\n      },\n      {\n        long: 'Kebbi',\n        short: 'KE',\n      },\n      {\n        long: 'Kogi',\n        short: 'KO',\n      },\n      {\n        long: 'Kwara',\n        short: 'KW',\n      },\n      {\n        long: 'Lagos',\n        short: 'LA',\n      },\n      {\n        long: 'Nassarawa',\n        short: 'NA',\n      },\n      {\n        long: 'Niger',\n        short: 'NI',\n      },\n      {\n        long: 'Ogun',\n        short: 'OG',\n      },\n      {\n        long: 'Ondo',\n        short: 'ON',\n      },\n      {\n        long: 'Osun',\n        short: 'OS',\n      },\n      {\n        long: 'Oyo',\n        short: 'OY',\n      },\n      {\n        long: 'Plateau',\n        short: 'PL',\n      },\n      {\n        long: 'Rivers',\n        short: 'RI',\n      },\n      {\n        long: 'Sokoto',\n        short: 'SO',\n      },\n      {\n        long: 'Taraba',\n        short: 'TA',\n      },\n      {\n        long: 'Yobe',\n        short: 'YO',\n      },\n      {\n        long: 'Zamfara',\n        short: 'ZA',\n      },\n    ],\n  },\n  {\n    long: 'Niue',\n    short: 'NU',\n    regions: [\n      {\n        long: 'Niue',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Norfolk Island',\n    short: 'NF',\n    regions: [\n      {\n        long: 'Norfolk Island',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Northern Mariana Islands',\n    short: 'MP',\n    regions: [\n      {\n        long: 'Northern Islands',\n        short: 'undefined',\n      },\n      {\n        long: 'Rota',\n        short: 'undefined',\n      },\n      {\n        long: 'Saipan',\n        short: 'undefined',\n      },\n      {\n        long: 'Tinian',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Norway',\n    short: 'NO',\n    regions: [\n      {\n        long: 'Akershus',\n        short: '02',\n      },\n      {\n        long: 'Aust-Agder',\n        short: '09',\n      },\n      {\n        long: 'Buskerud',\n        short: '06',\n      },\n      {\n        long: 'Finnmark',\n        short: '20',\n      },\n      {\n        long: 'Hedmark',\n        short: '04',\n      },\n      {\n        long: 'Hordaland',\n        short: '12',\n      },\n      {\n        long: 'Møre og Romsdal',\n        short: '15',\n      },\n      {\n        long: 'Nordland',\n        short: '18',\n      },\n      {\n        long: 'Nord-Trøndelag',\n        short: '17',\n      },\n      {\n        long: 'Oppland',\n        short: '05',\n      },\n      {\n        long: 'Oslo',\n        short: '03',\n      },\n      {\n        long: 'Rogaland',\n        short: '11',\n      },\n      {\n        long: 'Sogn og Fjordane',\n        short: '14',\n      },\n      {\n        long: 'Sør-Trøndelag',\n        short: '16',\n      },\n      {\n        long: 'Telemark',\n        short: '08',\n      },\n      {\n        long: 'Troms',\n        short: '19',\n      },\n      {\n        long: 'Vest-Agder',\n        short: '10',\n      },\n      {\n        long: 'Vestfold',\n        short: '07',\n      },\n      {\n        long: 'Østfold',\n        short: '01',\n      },\n      {\n        long: 'Jan Mayen',\n        short: '22',\n      },\n      {\n        long: 'Svalbard',\n        short: '21',\n      },\n    ],\n  },\n  {\n    long: 'Oman',\n    short: 'OM',\n    regions: [\n      {\n        long: 'Ad Dakhiliyah',\n        short: 'DA',\n      },\n      {\n        long: 'Al Buraymi',\n        short: 'BU',\n      },\n      {\n        long: 'Al Wusta',\n        short: 'WU',\n      },\n      {\n        long: 'Az Zahirah',\n        short: 'ZA',\n      },\n      {\n        long: 'Janub al Batinah',\n        short: 'BS',\n      },\n      {\n        long: 'Janub ash Sharqiyah',\n        short: 'SS',\n      },\n      {\n        long: 'Masqat',\n        short: 'MA',\n      },\n      {\n        long: 'Musandam',\n        short: 'MU',\n      },\n      {\n        long: 'Shamal al Batinah',\n        short: 'BJ',\n      },\n      {\n        long: 'Shamal ash Sharqiyah',\n        short: 'SJ',\n      },\n      {\n        long: 'Zufar',\n        short: 'ZU',\n      },\n    ],\n  },\n  {\n    long: 'Pakistan',\n    short: 'PK',\n    regions: [\n      {\n        long: 'Āzād Kashmīr',\n        short: 'JK',\n      },\n      {\n        long: 'Balōchistān',\n        short: 'BA',\n      },\n      {\n        long: 'Gilgit-Baltistān',\n        short: 'GB',\n      },\n      {\n        long: 'Islāmābād',\n        short: 'IS',\n      },\n      {\n        long: 'Khaībar Pakhtūnkhwās',\n        short: 'KP',\n      },\n      {\n        long: 'Punjāb',\n        short: 'PB',\n      },\n      {\n        long: 'Sindh',\n        short: 'SD',\n      },\n      {\n        long: 'Federally Administered Tribal Areas',\n        short: 'TA',\n      },\n    ],\n  },\n  {\n    long: 'Palau',\n    short: 'PW',\n    regions: [\n      {\n        long: 'Aimeliik',\n        short: '002',\n      },\n      {\n        long: 'Airai',\n        short: '004',\n      },\n      {\n        long: 'Angaur',\n        short: '010',\n      },\n      {\n        long: 'Hatobohei',\n        short: '050',\n      },\n      {\n        long: 'Kayangel',\n        short: '100',\n      },\n      {\n        long: 'Koror',\n        short: '150',\n      },\n      {\n        long: 'Melekeok',\n        short: '212',\n      },\n      {\n        long: 'Ngaraard',\n        short: '214',\n      },\n      {\n        long: 'Ngarchelong',\n        short: '218',\n      },\n      {\n        long: 'Ngardmau',\n        short: '222',\n      },\n      {\n        long: 'Ngatpang',\n        short: '224',\n      },\n      {\n        long: 'Ngchesar',\n        short: '226',\n      },\n      {\n        long: 'Ngeremlengui',\n        short: '227',\n      },\n      {\n        long: 'Ngiwal',\n        short: '228',\n      },\n      {\n        long: 'Peleliu',\n        short: '350',\n      },\n      {\n        long: 'Sonsoral',\n        short: '370',\n      },\n    ],\n  },\n  {\n    long: 'Palestine, State of',\n    short: 'PS',\n    regions: [\n      {\n        long: 'Ak Khalīl',\n        short: 'HBN',\n      },\n      {\n        long: 'Al Quds',\n        short: 'JEM',\n      },\n      {\n        long: 'Arīḩā wal Aghwār',\n        short: 'JRH',\n      },\n      {\n        long: 'Bayt Laḩm',\n        short: 'BTH',\n      },\n      {\n        long: 'Dayr al Balaḩ',\n        short: 'DEB',\n      },\n      {\n        long: 'Ghazzah',\n        short: 'GZA',\n      },\n      {\n        long: 'Janīn',\n        short: 'JEN',\n      },\n      {\n        long: 'Khān Yūnis',\n        short: 'KYS',\n      },\n      {\n        long: 'Nāblus',\n        short: 'NBS',\n      },\n      {\n        long: 'Qalqīyah',\n        short: 'QQA',\n      },\n      {\n        long: 'Rafaḩ',\n        short: 'RFH',\n      },\n      {\n        long: 'Rām Allāh wal Bīrah',\n        short: 'RBH',\n      },\n      {\n        long: 'Salfīt',\n        short: 'SLT',\n      },\n      {\n        long: 'Shamāl Ghazzah',\n        short: 'NGZ',\n      },\n      {\n        long: 'Ţūbās',\n        short: 'TBS',\n      },\n      {\n        long: 'Ţūlkarm',\n        short: 'TKM',\n      },\n    ],\n  },\n  {\n    long: 'Panama',\n    short: 'PA',\n    regions: [\n      {\n        long: 'Bocas del Toro',\n        short: '1',\n      },\n      {\n        long: 'Chiriquí',\n        short: '4',\n      },\n      {\n        long: 'Coclé',\n        short: '2',\n      },\n      {\n        long: 'Colón',\n        short: '3',\n      },\n      {\n        long: 'Darién',\n        short: '5',\n      },\n      {\n        long: 'Emberá',\n        short: 'EM',\n      },\n      {\n        long: 'Herrera',\n        short: '6',\n      },\n      {\n        long: 'Kuna Yala',\n        short: 'KY',\n      },\n      {\n        long: 'Los Santos',\n        short: '7',\n      },\n      {\n        long: 'Ngäbe-Buglé',\n        short: 'NB',\n      },\n      {\n        long: 'Panamá',\n        short: '8',\n      },\n      {\n        long: 'Panamá Oeste',\n        short: '10',\n      },\n      {\n        long: 'Veraguas',\n        short: '9',\n      },\n    ],\n  },\n  {\n    long: 'Papua New Guinea',\n    short: 'PG',\n    regions: [\n      {\n        long: 'Bougainville',\n        short: 'NSB',\n      },\n      {\n        long: 'Central',\n        short: 'CPM',\n      },\n      {\n        long: 'Chimbu',\n        short: 'CPK',\n      },\n      {\n        long: 'East New Britain',\n        short: 'EBR',\n      },\n      {\n        long: 'East Sepik',\n        short: 'ESW',\n      },\n      {\n        long: 'Eastern Highlands',\n        short: 'EHG',\n      },\n      {\n        long: 'Enga',\n        short: 'EPW',\n      },\n      {\n        long: 'Gulf',\n        short: 'GPK',\n      },\n      {\n        long: 'Hela',\n        short: 'HLA',\n      },\n      {\n        long: 'Jiwaka',\n        short: 'JWK',\n      },\n      {\n        long: 'Madang',\n        short: 'MOM',\n      },\n      {\n        long: 'Manus',\n        short: 'MRL',\n      },\n      {\n        long: 'Milne Bay',\n        short: 'MBA',\n      },\n      {\n        long: 'Morobe',\n        short: 'MPL',\n      },\n      {\n        long: 'Port Moresby',\n        short: 'NCD',\n      },\n      {\n        long: 'New Ireland',\n        short: 'NIK',\n      },\n      {\n        long: 'Northern',\n        short: 'NPP',\n      },\n      {\n        long: 'Southern Highlands',\n        short: 'SHM',\n      },\n      {\n        long: 'West New Britain',\n        short: 'WBK',\n      },\n      {\n        long: 'West Sepik',\n        short: 'SAN',\n      },\n      {\n        long: 'Western',\n        short: 'WPD',\n      },\n      {\n        long: 'Western Highlands',\n        short: 'WHM',\n      },\n    ],\n  },\n  {\n    long: 'Paraguay',\n    short: 'PY',\n    regions: [\n      {\n        long: 'Alto Paraguay',\n        short: '16',\n      },\n      {\n        long: 'Alto Parana',\n        short: '10',\n      },\n      {\n        long: 'Amambay',\n        short: '13',\n      },\n      {\n        long: 'Asuncion',\n        short: 'ASU',\n      },\n      {\n        long: 'Caaguazu',\n        short: '5',\n      },\n      {\n        long: 'Caazapa',\n        short: '6',\n      },\n      {\n        long: 'Canindeyu',\n        short: '14',\n      },\n      {\n        long: 'Central',\n        short: '11',\n      },\n      {\n        long: 'Concepcion',\n        short: '1',\n      },\n      {\n        long: 'Cordillera',\n        short: '3',\n      },\n      {\n        long: 'Boqueron',\n        short: '17',\n      },\n      {\n        long: 'Guaira',\n        short: '4',\n      },\n      {\n        long: 'Itapua',\n        short: '7',\n      },\n      {\n        long: 'Misiones',\n        short: '8',\n      },\n      {\n        long: 'Neembucu',\n        short: '12',\n      },\n      {\n        long: 'Paraguari',\n        short: '9',\n      },\n      {\n        long: 'Presidente Hayes',\n        short: '15',\n      },\n      {\n        long: 'San Pedro',\n        short: '2',\n      },\n    ],\n  },\n  {\n    long: 'Peru',\n    short: 'PE',\n    regions: [\n      {\n        long: 'Amazonas',\n        short: 'AMA',\n      },\n      {\n        long: 'Ancash',\n        short: 'ANC',\n      },\n      {\n        long: 'Apurimac',\n        short: 'APU',\n      },\n      {\n        long: 'Arequipa',\n        short: 'ARE',\n      },\n      {\n        long: 'Ayacucho',\n        short: 'AYA',\n      },\n      {\n        long: 'Cajamarca',\n        short: 'CAJ',\n      },\n      {\n        long: 'Callao',\n        short: 'CAL',\n      },\n      {\n        long: 'Cusco',\n        short: 'CUS',\n      },\n      {\n        long: 'Huancavelica',\n        short: 'HUV',\n      },\n      {\n        long: 'Huanuco',\n        short: 'HUC',\n      },\n      {\n        long: 'Ica',\n        short: 'ICA',\n      },\n      {\n        long: 'Junin',\n        short: 'JUN',\n      },\n      {\n        long: 'La Libertad',\n        short: 'LAL',\n      },\n      {\n        long: 'Lambayeque',\n        short: 'LAM',\n      },\n      {\n        long: 'Lima',\n        short: 'LIM',\n      },\n      {\n        long: 'Loreto',\n        short: 'LOR',\n      },\n      {\n        long: 'Madre de Dios',\n        short: 'MDD',\n      },\n      {\n        long: 'Moquegua',\n        short: 'MOQ',\n      },\n      {\n        long: 'Municipalidad Metropolitana de Lima',\n        short: 'LMA',\n      },\n      {\n        long: 'Pasco',\n        short: 'PAS',\n      },\n      {\n        long: 'Piura',\n        short: 'PIU',\n      },\n      {\n        long: 'Puno',\n        short: 'PUN',\n      },\n      {\n        long: 'San Martin',\n        short: 'SAM',\n      },\n      {\n        long: 'Tacna',\n        short: 'TAC',\n      },\n      {\n        long: 'Tumbes',\n        short: 'TUM',\n      },\n      {\n        long: 'Ucayali',\n        short: 'UCA',\n      },\n    ],\n  },\n  {\n    long: 'Philippines',\n    short: 'PH',\n    regions: [\n      {\n        long: 'Abra',\n        short: 'ABR',\n      },\n      {\n        long: 'Agusan del Norte',\n        short: 'AGN',\n      },\n      {\n        long: 'Agusan del Sur',\n        short: 'AGS',\n      },\n      {\n        long: 'Aklan',\n        short: 'AKL',\n      },\n      {\n        long: 'Albay',\n        short: 'ALB',\n      },\n      {\n        long: 'Antique',\n        short: 'ANT',\n      },\n      {\n        long: 'Apayao',\n        short: 'APA',\n      },\n      {\n        long: 'Aurora',\n        short: 'AUR',\n      },\n      {\n        long: 'Basilan',\n        short: 'BAS',\n      },\n      {\n        long: 'Bataan',\n        short: 'BAN',\n      },\n      {\n        long: 'Batanes',\n        short: 'BTN',\n      },\n      {\n        long: 'Batangas',\n        short: 'BTG',\n      },\n      {\n        long: 'Benguet',\n        short: 'BEN',\n      },\n      {\n        long: 'Biliran',\n        short: 'BIL',\n      },\n      {\n        long: 'Bohol',\n        short: 'BOH',\n      },\n      {\n        long: 'Bukidnon',\n        short: 'BUK',\n      },\n      {\n        long: 'Bulacan',\n        short: 'BUL',\n      },\n      {\n        long: 'Cagayan',\n        short: 'CAG',\n      },\n      {\n        long: 'Camarines Norte',\n        short: 'CAN',\n      },\n      {\n        long: 'Camarines Sur',\n        short: 'CAS',\n      },\n      {\n        long: 'Camiguin',\n        short: 'CAM',\n      },\n      {\n        long: 'Capiz',\n        short: 'CAP',\n      },\n      {\n        long: 'Catanduanes',\n        short: 'CAT',\n      },\n      {\n        long: 'Cavite',\n        short: 'CAV',\n      },\n      {\n        long: 'Cebu',\n        short: 'CEB',\n      },\n      {\n        long: 'Compostela',\n        short: 'COM',\n      },\n      {\n        long: 'Cotabato',\n        short: 'NCO',\n      },\n      {\n        long: 'Davao del Norte',\n        short: 'DAV',\n      },\n      {\n        long: 'Davao del Sur',\n        short: 'DAS',\n      },\n      {\n        long: 'Davao Occidental',\n        short: 'DVO',\n      },\n      {\n        long: 'Davao Oriental',\n        short: 'DAO',\n      },\n      {\n        long: 'Dinagat Islands',\n        short: 'DIN',\n      },\n      {\n        long: 'Eastern Samar',\n        short: 'EAS',\n      },\n      {\n        long: 'Guimaras',\n        short: 'GUI',\n      },\n      {\n        long: 'Ifugao',\n        short: 'IFU',\n      },\n      {\n        long: 'Ilocos Norte',\n        short: 'ILN',\n      },\n      {\n        long: 'Ilocos Sur',\n        short: 'ILS',\n      },\n      {\n        long: 'Iloilo',\n        short: 'ILI',\n      },\n      {\n        long: 'Isabela',\n        short: 'ISA',\n      },\n      {\n        long: 'Kalinga',\n        short: 'KAL',\n      },\n      {\n        long: 'La Union',\n        short: 'LUN',\n      },\n      {\n        long: 'Laguna',\n        short: 'LAG',\n      },\n      {\n        long: 'Lanao del Norte',\n        short: 'LAN',\n      },\n      {\n        long: 'Lanao del Sur',\n        short: 'LAS',\n      },\n      {\n        long: 'Leyte',\n        short: 'LEY',\n      },\n      {\n        long: 'Maguindanao',\n        short: 'MAG',\n      },\n      {\n        long: 'Masbate',\n        short: 'MAS',\n      },\n      {\n        long: 'Metro Manila',\n        short: '00',\n      },\n      {\n        long: 'Mindoro Occidental',\n        short: 'MDC',\n      },\n      {\n        long: 'Mindoro Oriental',\n        short: 'MDR',\n      },\n      {\n        long: 'Misamis Occidental',\n        short: 'MSC',\n      },\n      {\n        long: 'Misamis Oriental',\n        short: 'MSR',\n      },\n      {\n        long: 'Mountain Province',\n        short: 'MOU',\n      },\n      {\n        long: 'Negros Occidental',\n        short: 'NEC',\n      },\n      {\n        long: 'Negros Oriental',\n        short: 'NER',\n      },\n      {\n        long: 'Northern Samar',\n        short: 'NSA',\n      },\n      {\n        long: 'Nueva Ecija',\n        short: 'NUE',\n      },\n      {\n        long: 'Nueva Vizcaya',\n        short: 'NUV',\n      },\n      {\n        long: 'Palawan',\n        short: 'PLW',\n      },\n      {\n        long: 'Pampanga',\n        short: 'PAM',\n      },\n      {\n        long: 'Pangasinan',\n        short: 'PAN',\n      },\n      {\n        long: 'Quezon',\n        short: 'QUE',\n      },\n      {\n        long: 'Quirino',\n        short: 'QUI',\n      },\n      {\n        long: 'Rizal',\n        short: 'RIZ',\n      },\n      {\n        long: 'Romblon',\n        short: 'ROM',\n      },\n      {\n        long: 'Samar',\n        short: 'WSA',\n      },\n      {\n        long: 'Sarangani',\n        short: 'SAR',\n      },\n      {\n        long: 'Siquijor',\n        short: 'SIG',\n      },\n      {\n        long: 'Sorsogon',\n        short: 'SOR',\n      },\n      {\n        long: 'Southern Leyte',\n        short: 'SLE',\n      },\n      {\n        long: 'Sultan Kudarat',\n        short: 'AUK',\n      },\n      {\n        long: 'Sulu',\n        short: 'SLU',\n      },\n      {\n        long: 'Surigao del Norte',\n        short: 'SUN',\n      },\n      {\n        long: 'Surigao del Sur',\n        short: 'SUR',\n      },\n      {\n        long: 'Tarlac',\n        short: 'TAR',\n      },\n      {\n        long: 'Tawi-Tawi',\n        short: 'TAW',\n      },\n      {\n        long: 'Zambales',\n        short: 'ZMB',\n      },\n      {\n        long: 'Zamboanga del Norte',\n        short: 'ZAN',\n      },\n      {\n        long: 'Zamboanga del Sur',\n        short: 'ZAS',\n      },\n      {\n        long: 'Zamboanga Sibugay',\n        short: 'ZSI',\n      },\n    ],\n  },\n  {\n    long: 'Pitcairn',\n    short: 'PN',\n    regions: [\n      {\n        long: 'Pitcairn Islands',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Poland',\n    short: 'PL',\n    regions: [\n      {\n        long: 'Dolnośląskie',\n        short: 'DS',\n      },\n      {\n        long: 'Kujawsko-pomorskie',\n        short: 'KP',\n      },\n      {\n        long: 'Łódzkie',\n        short: 'LD',\n      },\n      {\n        long: 'Lubelskie',\n        short: 'LU',\n      },\n      {\n        long: 'Lubuskie',\n        short: 'LB',\n      },\n      {\n        long: 'Małopolskie',\n        short: 'MA',\n      },\n      {\n        long: 'Mazowieckie',\n        short: 'MZ',\n      },\n      {\n        long: 'Opolskie',\n        short: 'OP',\n      },\n      {\n        long: 'Podkarpackie',\n        short: 'PK',\n      },\n      {\n        long: 'Podlaskie',\n        short: 'PD',\n      },\n      {\n        long: 'Pomorskie',\n        short: 'PM',\n      },\n      {\n        long: 'Śląskie',\n        short: 'SL',\n      },\n      {\n        long: 'Świętokrzyskie',\n        short: 'SK',\n      },\n      {\n        long: 'Warmińsko-mazurskie',\n        short: 'WN',\n      },\n      {\n        long: 'Wielkopolskie',\n        short: 'WP',\n      },\n      {\n        long: 'Zachodniopomorskie',\n        short: 'ZP',\n      },\n    ],\n  },\n  {\n    long: 'Portugal',\n    short: 'PT',\n    regions: [\n      {\n        long: 'Açores',\n        short: '20',\n      },\n      {\n        long: 'Aveiro',\n        short: '01',\n      },\n      {\n        long: 'Beja',\n        short: '02',\n      },\n      {\n        long: 'Braga',\n        short: '03',\n      },\n      {\n        long: 'Bragança',\n        short: '04',\n      },\n      {\n        long: 'Castelo Branco',\n        short: '05',\n      },\n      {\n        long: 'Coimbra',\n        short: '06',\n      },\n      {\n        long: 'Évora',\n        short: '07',\n      },\n      {\n        long: 'Faro',\n        short: '08',\n      },\n      {\n        long: 'Guarda',\n        short: '09',\n      },\n      {\n        long: 'Leiria',\n        short: '10',\n      },\n      {\n        long: 'Lisboa',\n        short: '11',\n      },\n      {\n        long: 'Madeira',\n        short: '30',\n      },\n      {\n        long: 'Portalegre',\n        short: '12',\n      },\n      {\n        long: 'Porto',\n        short: '13',\n      },\n      {\n        long: 'Santarém',\n        short: '14',\n      },\n      {\n        long: 'Setúbal',\n        short: '15',\n      },\n      {\n        long: 'Viana do Castelo',\n        short: '16',\n      },\n      {\n        long: 'Vila Real',\n        short: '17',\n      },\n      {\n        long: 'Viseu',\n        short: '18',\n      },\n    ],\n  },\n  {\n    long: 'Puerto Rico',\n    short: 'PR',\n    regions: [\n      {\n        long: 'Adjuntas',\n        short: 'undefined',\n      },\n      {\n        long: 'Aguada',\n        short: 'undefined',\n      },\n      {\n        long: 'Aguadilla',\n        short: 'undefined',\n      },\n      {\n        long: 'Aguas Buenas',\n        short: 'undefined',\n      },\n      {\n        long: 'Aibonito',\n        short: 'undefined',\n      },\n      {\n        long: 'Anasco',\n        short: 'undefined',\n      },\n      {\n        long: 'Arecibo',\n        short: 'undefined',\n      },\n      {\n        long: 'Arroyo',\n        short: 'undefined',\n      },\n      {\n        long: 'Barceloneta',\n        short: 'undefined',\n      },\n      {\n        long: 'Barranquitas',\n        short: 'undefined',\n      },\n      {\n        long: 'Bayamon',\n        short: 'undefined',\n      },\n      {\n        long: 'Cabo Rojo',\n        short: 'undefined',\n      },\n      {\n        long: 'Caguas',\n        short: 'undefined',\n      },\n      {\n        long: 'Camuy',\n        short: 'undefined',\n      },\n      {\n        long: 'Canovanas',\n        short: 'undefined',\n      },\n      {\n        long: 'Carolina',\n        short: 'undefined',\n      },\n      {\n        long: 'Cat',\n        short: 'undefined',\n      },\n      {\n        long: 'Ceiba',\n        short: 'undefined',\n      },\n      {\n        long: 'Ciales',\n        short: 'undefined',\n      },\n      {\n        long: 'Cidra',\n        short: 'undefined',\n      },\n      {\n        long: 'Coamo',\n        short: 'undefined',\n      },\n      {\n        long: 'Comerio',\n        short: 'undefined',\n      },\n      {\n        long: 'Corozal',\n        short: 'undefined',\n      },\n      {\n        long: 'Culebra',\n        short: 'undefined',\n      },\n      {\n        long: 'Dorado',\n        short: 'undefined',\n      },\n      {\n        long: 'Fajardo',\n        short: 'undefined',\n      },\n      {\n        long: 'Florida',\n        short: 'undefined',\n      },\n      {\n        long: 'Guanica',\n        short: 'undefined',\n      },\n      {\n        long: 'Guayama',\n        short: 'undefined',\n      },\n      {\n        long: 'Guayanilla',\n        short: 'undefined',\n      },\n      {\n        long: 'Guaynabo',\n        short: 'undefined',\n      },\n      {\n        long: 'Gurabo',\n        short: 'undefined',\n      },\n      {\n        long: 'Hatillo',\n        short: 'undefined',\n      },\n      {\n        long: 'Hormigueros',\n        short: 'undefined',\n      },\n      {\n        long: 'Humacao',\n        short: 'undefined',\n      },\n      {\n        long: 'Isabe',\n        short: 'undefined',\n      },\n      {\n        long: 'Juana Diaz',\n        short: 'undefined',\n      },\n      {\n        long: 'Juncos',\n        short: 'undefined',\n      },\n      {\n        long: 'Lajas',\n        short: 'undefined',\n      },\n      {\n        long: 'Lares',\n        short: 'undefined',\n      },\n      {\n        long: 'Las Marias',\n        short: 'undefined',\n      },\n      {\n        long: 'Las oiza',\n        short: 'undefined',\n      },\n      {\n        long: 'Luquillo',\n        short: 'undefined',\n      },\n      {\n        long: 'Manati',\n        short: 'undefined',\n      },\n      {\n        long: 'Maricao',\n        short: 'undefined',\n      },\n      {\n        long: 'Maunabo',\n        short: 'undefined',\n      },\n      {\n        long: 'Mayaguez',\n        short: 'undefined',\n      },\n      {\n        long: 'Moca',\n        short: 'undefined',\n      },\n      {\n        long: 'Morovis',\n        short: 'undefined',\n      },\n      {\n        long: 'Naguabo',\n        short: 'undefined',\n      },\n      {\n        long: 'Naranjito',\n        short: 'undefined',\n      },\n      {\n        long: 'Orocovis',\n        short: 'undefined',\n      },\n      {\n        long: 'Patillas',\n        short: 'undefined',\n      },\n      {\n        long: 'Penuelas',\n        short: 'undefined',\n      },\n      {\n        long: 'Ponce',\n        short: 'undefined',\n      },\n      {\n        long: 'Quebradillas',\n        short: 'undefined',\n      },\n      {\n        long: 'Rincon',\n        short: 'undefined',\n      },\n      {\n        long: 'Rio Grande',\n        short: 'undefined',\n      },\n      {\n        long: 'Sabana linas',\n        short: 'undefined',\n      },\n      {\n        long: 'San German',\n        short: 'undefined',\n      },\n      {\n        long: 'San Juan',\n        short: 'undefined',\n      },\n      {\n        long: 'San Lorenzo',\n        short: 'undefined',\n      },\n      {\n        long: 'San Sebastian',\n        short: 'undefined',\n      },\n      {\n        long: 'Santa Isabel',\n        short: 'undefined',\n      },\n      {\n        long: 'Toa Alta',\n        short: 'undefined',\n      },\n      {\n        long: 'Toa Baja',\n        short: 'undefined',\n      },\n      {\n        long: 'Trujillo Alto',\n        short: 'undefined',\n      },\n      {\n        long: 'Utuado',\n        short: 'undefined',\n      },\n      {\n        long: 'Vega Alta',\n        short: 'undefined',\n      },\n      {\n        long: 'Vega ues',\n        short: 'undefined',\n      },\n      {\n        long: 'Villalba',\n        short: 'undefined',\n      },\n      {\n        long: 'Yabucoa',\n        short: 'undefined',\n      },\n      {\n        long: 'Yauco',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Qatar',\n    short: 'QA',\n    regions: [\n      {\n        long: 'Ad Dawḩah',\n        short: 'DA',\n      },\n      {\n        long: 'Al Khawr wa adh Dhakhīrah',\n        short: 'KH',\n      },\n      {\n        long: 'Al Wakrah',\n        short: 'WA',\n      },\n      {\n        long: 'Ar Rayyān',\n        short: 'RA',\n      },\n      {\n        long: 'Ash Shamāl',\n        short: 'MS',\n      },\n      {\n        long: 'Az̧ Za̧`āyin',\n        short: 'ZA',\n      },\n      {\n        long: 'Umm Şalāl',\n        short: 'US',\n      },\n    ],\n  },\n  {\n    long: 'Réunion',\n    short: 'RE',\n    regions: [\n      {\n        long: 'Réunion',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Romania',\n    short: 'RO',\n    regions: [\n      {\n        long: 'Alba',\n        short: 'AB',\n      },\n      {\n        long: 'Arad',\n        short: 'AR',\n      },\n      {\n        long: 'Arges',\n        short: 'AG',\n      },\n      {\n        long: 'Bacau',\n        short: 'BC',\n      },\n      {\n        long: 'Bihor',\n        short: 'BH',\n      },\n      {\n        long: 'Bistrita-Nasaud',\n        short: 'BN',\n      },\n      {\n        long: 'Botosani',\n        short: 'BT',\n      },\n      {\n        long: 'Braila',\n        short: 'BR',\n      },\n      {\n        long: 'Brasov',\n        short: 'BV',\n      },\n      {\n        long: 'Bucuresti',\n        short: 'B',\n      },\n      {\n        long: 'Buzau',\n        short: 'BZ',\n      },\n      {\n        long: 'Calarasi',\n        short: 'CL',\n      },\n      {\n        long: 'Caras-Severin',\n        short: 'CS',\n      },\n      {\n        long: 'Cluj',\n        short: 'CJ',\n      },\n      {\n        long: 'Constanta',\n        short: 'CT',\n      },\n      {\n        long: 'Covasna',\n        short: 'CV',\n      },\n      {\n        long: 'Dambovita',\n        short: 'DB',\n      },\n      {\n        long: 'Dolj',\n        short: 'DJ',\n      },\n      {\n        long: 'Galati',\n        short: 'GL',\n      },\n      {\n        long: 'Giurgiu',\n        short: 'GR',\n      },\n      {\n        long: 'Gorj',\n        short: 'GJ',\n      },\n      {\n        long: 'Harghita',\n        short: 'HR',\n      },\n      {\n        long: 'Hunedoara',\n        short: 'HD',\n      },\n      {\n        long: 'Ialomita',\n        short: 'IL',\n      },\n      {\n        long: 'Iasi',\n        short: 'IS',\n      },\n      {\n        long: 'Maramures',\n        short: 'MM',\n      },\n      {\n        long: 'Mehedinti',\n        short: 'MH',\n      },\n      {\n        long: 'Mures',\n        short: 'MS',\n      },\n      {\n        long: 'Neamt',\n        short: 'NT',\n      },\n      {\n        long: 'Olt',\n        short: 'OT',\n      },\n      {\n        long: 'Prahova',\n        short: 'PH',\n      },\n      {\n        long: 'Salaj',\n        short: 'SJ',\n      },\n      {\n        long: 'Satu Mare',\n        short: 'SM',\n      },\n      {\n        long: 'Sibiu',\n        short: 'SB',\n      },\n      {\n        long: 'Suceava',\n        short: 'SV',\n      },\n      {\n        long: 'Teleorman',\n        short: 'TR',\n      },\n      {\n        long: 'Timis',\n        short: 'TM',\n      },\n      {\n        long: 'Tulcea',\n        short: 'TL',\n      },\n      {\n        long: 'Valcea',\n        short: 'VL',\n      },\n      {\n        long: 'Vaslui',\n        short: 'VS',\n      },\n      {\n        long: 'Vrancea',\n        short: 'VN',\n      },\n    ],\n  },\n  {\n    long: 'Russian Federation',\n    short: 'RU',\n    regions: [\n      {\n        long: 'Republic of Adygea',\n        short: 'AD',\n      },\n      {\n        long: 'Republic of Altai (Gorno-Altaysk)',\n        short: 'AL',\n      },\n      {\n        long: 'Altai Krai',\n        short: 'ALT',\n      },\n      {\n        long: 'Amur Oblast',\n        short: 'AMU',\n      },\n      {\n        long: 'Arkhangelsk Oblast',\n        short: 'ARK',\n      },\n      {\n        long: 'Astrakhan Oblast',\n        short: 'AST',\n      },\n      {\n        long: 'Republic of Bashkortostan',\n        short: 'BA',\n      },\n      {\n        long: 'Belgorod Oblast',\n        short: 'BEL',\n      },\n      {\n        long: 'Bryansk Oblast',\n        short: 'BRY',\n      },\n      {\n        long: 'Republic of Buryatia',\n        short: 'BU',\n      },\n      {\n        long: 'Chechen Republic',\n        short: 'CE',\n      },\n      {\n        long: 'Chelyabinsk Oblast',\n        short: 'CHE',\n      },\n      {\n        long: 'Chukotka Autonomous Okrug',\n        short: 'CHU',\n      },\n      {\n        long: 'Chuvash Republic',\n        short: 'CU',\n      },\n      {\n        long: 'Republic of Dagestan',\n        short: 'DA',\n      },\n      {\n        long: 'Republic of Ingushetia',\n        short: 'IN',\n      },\n      {\n        long: 'Irkutsk Oblast',\n        short: 'IRK',\n      },\n      {\n        long: 'Ivanovo Oblast',\n        short: 'IVA',\n      },\n      {\n        long: 'Jewish Autonomous Oblast',\n        short: 'JEW',\n      },\n      {\n        long: 'Kabardino-Balkar Republic',\n        short: 'KB',\n      },\n      {\n        long: 'Kaliningrad Oblast',\n        short: 'KLN',\n      },\n      {\n        long: 'Republic of Kalmykia',\n        short: 'KL',\n      },\n      {\n        long: 'Kaluga Oblast',\n        short: 'KLU',\n      },\n      {\n        long: 'Kamchatka Krai',\n        short: 'KAM',\n      },\n      {\n        long: 'Karachay-Cherkess Republic',\n        short: 'KC',\n      },\n      {\n        long: 'Republic of Karelia',\n        short: 'KR',\n      },\n      {\n        long: 'Khabarovsk Krai',\n        short: 'KHA',\n      },\n      {\n        long: 'Republic of Khakassia',\n        short: 'KK',\n      },\n      {\n        long: 'Khanty-Mansi Autonomous Okrug - Yugra',\n        short: 'KHM',\n      },\n      {\n        long: 'Kemerovo Oblast',\n        short: 'KEM',\n      },\n      {\n        long: 'Kirov Oblast',\n        short: 'KIR',\n      },\n      {\n        long: 'Komi Republic',\n        short: 'KO',\n      },\n      {\n        long: 'Kostroma Oblast',\n        short: 'KOS',\n      },\n      {\n        long: 'Krasnodar Krai',\n        short: 'KDA',\n      },\n      {\n        long: 'Krasnoyarsk Krai',\n        short: 'KYA',\n      },\n      {\n        long: 'Kurgan Oblast',\n        short: 'KGN',\n      },\n      {\n        long: 'Kursk Oblast',\n        short: 'KRS',\n      },\n      {\n        long: 'Leningrad Oblast',\n        short: 'LEN',\n      },\n      {\n        long: 'Lipetsk Oblast',\n        short: 'LIP',\n      },\n      {\n        long: 'Magadan Oblast',\n        short: 'MAG',\n      },\n      {\n        long: 'Mari El Republic',\n        short: 'ME',\n      },\n      {\n        long: 'Republic of Mordovia',\n        short: 'MO',\n      },\n      {\n        long: 'Moscow Oblast',\n        short: 'MOS',\n      },\n      {\n        long: 'Moscow',\n        short: 'MOW',\n      },\n      {\n        long: 'Murmansk Oblast',\n        short: 'MU',\n      },\n      {\n        long: 'Nenets Autonomous Okrug',\n        short: 'NEN',\n      },\n      {\n        long: 'Nizhny Novgorod Oblast',\n        short: 'NIZ',\n      },\n      {\n        long: 'Novgorod Oblast',\n        short: 'NGR',\n      },\n      {\n        long: 'Novosibirsk Oblast',\n        short: 'NVS',\n      },\n      {\n        long: 'Omsk Oblast',\n        short: 'OMS',\n      },\n      {\n        long: 'Orenburg Oblast',\n        short: 'ORE',\n      },\n      {\n        long: 'Oryol Oblast',\n        short: 'ORL',\n      },\n      {\n        long: 'Penza Oblast',\n        short: 'PNZ',\n      },\n      {\n        long: 'Perm Krai',\n        short: 'PER',\n      },\n      {\n        long: 'Primorsky Krai',\n        short: 'PRI',\n      },\n      {\n        long: 'Pskov Oblast',\n        short: 'PSK',\n      },\n      {\n        long: 'Rostov Oblast',\n        short: 'ROS',\n      },\n      {\n        long: 'Ryazan Oblast',\n        short: 'RYA',\n      },\n      {\n        long: 'Saint Petersburg',\n        short: 'SPE',\n      },\n      {\n        long: 'Sakha (Yakutia) Republic',\n        short: 'SA',\n      },\n      {\n        long: 'Sakhalin Oblast',\n        short: 'SAK',\n      },\n      {\n        long: 'Samara Oblast',\n        short: 'SAM',\n      },\n      {\n        long: 'Saratov Oblast',\n        short: 'SAR',\n      },\n      {\n        long: 'Republic of North Ossetia-Alania',\n        short: 'NOA',\n      },\n      {\n        long: 'Smolensk Oblast',\n        short: 'SMO',\n      },\n      {\n        long: 'Stavropol Krai',\n        short: 'STA',\n      },\n      {\n        long: 'Sverdlovsk Oblast',\n        short: 'SVE',\n      },\n      {\n        long: 'Tambov Oblast',\n        short: 'TAM',\n      },\n      {\n        long: 'Republic of Tatarstan',\n        short: 'TA',\n      },\n      {\n        long: 'Tomsk Oblast',\n        short: 'TOM',\n      },\n      {\n        long: 'Tuva Republic',\n        short: 'TU',\n      },\n      {\n        long: 'Tula Oblast',\n        short: 'TUL',\n      },\n      {\n        long: 'Tver Oblast',\n        short: 'TVE',\n      },\n      {\n        long: 'Tyumen Oblast',\n        short: 'TYU',\n      },\n      {\n        long: 'Udmurt Republic',\n        short: 'UD',\n      },\n      {\n        long: 'Ulyanovsk Oblast',\n        short: 'ULY',\n      },\n      {\n        long: 'Vladimir Oblast',\n        short: 'VLA',\n      },\n      {\n        long: 'Volgograd Oblast',\n        short: 'VGG',\n      },\n      {\n        long: 'Vologda Oblast',\n        short: 'VLG',\n      },\n      {\n        long: 'Voronezh Oblast',\n        short: 'VOR',\n      },\n      {\n        long: 'Yamalo-Nenets Autonomous Okrug',\n        short: 'YAN',\n      },\n      {\n        long: 'Yaroslavl Oblast',\n        short: 'YAR',\n      },\n      {\n        long: 'Zabaykalsky Krai',\n        short: 'ZAB',\n      },\n    ],\n  },\n  {\n    long: 'Rwanda',\n    short: 'RW',\n    regions: [\n      {\n        long: 'Kigali',\n        short: '01',\n      },\n      {\n        long: 'Eastern',\n        short: '02',\n      },\n      {\n        long: 'Northern',\n        short: '03',\n      },\n      {\n        long: 'Western',\n        short: '04',\n      },\n      {\n        long: 'Southern',\n        short: '05',\n      },\n    ],\n  },\n  {\n    long: 'Saint Barthélemy',\n    short: 'BL',\n    regions: [\n      {\n        long: 'Au Vent',\n        short: '02',\n      },\n      {\n        long: 'Sous le Vent',\n        short: '01',\n      },\n    ],\n  },\n  {\n    long: 'Saint Helena, Ascension and Tristan da Cunha',\n    short: 'SH',\n    regions: [\n      {\n        long: 'Ascension',\n        short: 'AC',\n      },\n      {\n        long: 'Saint Helena',\n        short: 'HL',\n      },\n      {\n        long: 'Tristan da Cunha',\n        short: 'TA',\n      },\n    ],\n  },\n  {\n    long: 'Saint Kitts and Nevis',\n    short: 'KN',\n    regions: [\n      {\n        long: 'Saint Kitts',\n        short: 'K',\n      },\n      {\n        long: 'Nevis',\n        short: 'N',\n      },\n    ],\n  },\n  {\n    long: 'Saint Lucia',\n    short: 'LC',\n    regions: [\n      {\n        long: 'Anse-la-Raye',\n        short: '01',\n      },\n      {\n        long: 'Canaries',\n        short: '12',\n      },\n      {\n        long: 'Castries',\n        short: '02',\n      },\n      {\n        long: 'Choiseul',\n        short: '03',\n      },\n      {\n        long: 'Dennery',\n        short: '05',\n      },\n      {\n        long: 'Gros Islet',\n        short: '06',\n      },\n      {\n        long: 'Laborie',\n        short: '07',\n      },\n      {\n        long: 'Micoud',\n        short: '08',\n      },\n      {\n        long: 'Soufriere',\n        short: '10',\n      },\n      {\n        long: 'Vieux Fort',\n        short: '11',\n      },\n    ],\n  },\n  {\n    long: 'Saint Martin',\n    short: 'MF',\n    regions: [\n      {\n        long: 'Saint Martin',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Saint Pierre and Miquelon',\n    short: 'PM',\n    regions: [\n      {\n        long: 'Miquelon',\n        short: 'undefined',\n      },\n      {\n        long: 'Saint Pierre',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Saint Vincent and the Grenadines',\n    short: 'VC',\n    regions: [\n      {\n        long: 'Charlotte',\n        short: '01',\n      },\n      {\n        long: 'Grenadines',\n        short: '06',\n      },\n      {\n        long: 'Saint Andrew',\n        short: '02',\n      },\n      {\n        long: 'Saint David',\n        short: '03',\n      },\n      {\n        long: 'Saint George',\n        short: '04',\n      },\n      {\n        long: 'Saint Patrick',\n        short: '05',\n      },\n    ],\n  },\n  {\n    long: 'Samoa',\n    short: 'WS',\n    regions: [\n      {\n        long: \"A'ana\",\n        short: 'AA',\n      },\n      {\n        long: 'Aiga-i-le-Tai',\n        short: 'AL',\n      },\n      {\n        long: 'Atua',\n        short: 'AT',\n      },\n      {\n        long: \"Fa'asaleleaga\",\n        short: 'FA',\n      },\n      {\n        long: \"Gaga'emauga\",\n        short: 'GE',\n      },\n      {\n        long: 'Gagaifomauga',\n        short: 'GI',\n      },\n      {\n        long: 'Palauli',\n        short: 'PA',\n      },\n      {\n        long: \"Satupa'itea\",\n        short: 'SA',\n      },\n      {\n        long: 'Tuamasaga',\n        short: 'TU',\n      },\n      {\n        long: \"Va'a-o-Fonoti\",\n        short: 'VF',\n      },\n      {\n        long: 'Vaisigano',\n        short: 'VS',\n      },\n    ],\n  },\n  {\n    long: 'San Marino',\n    short: 'SM',\n    regions: [\n      {\n        long: 'Acquaviva',\n        short: '01',\n      },\n      {\n        long: 'Borgo Maggiore',\n        short: '06',\n      },\n      {\n        long: 'Chiesanuova',\n        short: '02',\n      },\n      {\n        long: 'Domagnano',\n        short: '03',\n      },\n      {\n        long: 'Faetano',\n        short: '04',\n      },\n      {\n        long: 'Fiorentino',\n        short: '05',\n      },\n      {\n        long: 'Montegiardino',\n        short: '08',\n      },\n      {\n        long: 'San Marino',\n        short: '07',\n      },\n      {\n        long: 'Serravalle',\n        short: '09',\n      },\n    ],\n  },\n  {\n    long: 'Sao Tome and Principe',\n    short: 'ST',\n    regions: [\n      {\n        long: 'Principe',\n        short: 'P',\n      },\n      {\n        long: 'Sao Tome',\n        short: 'S',\n      },\n    ],\n  },\n  {\n    long: 'Saudi Arabia',\n    short: 'SA',\n    regions: [\n      {\n        long: \"'Asir\",\n        short: '14',\n      },\n      {\n        long: 'Al Bahah',\n        short: '11',\n      },\n      {\n        long: 'Al Hudud ash Shamaliyah',\n        short: '08',\n      },\n      {\n        long: 'Al Jawf',\n        short: '12',\n      },\n      {\n        long: 'Al Madinah al Munawwarah',\n        short: '03',\n      },\n      {\n        long: 'Al Qasim',\n        short: '05',\n      },\n      {\n        long: 'Ar Riyad',\n        short: '01',\n      },\n      {\n        long: 'Ash Sharqiyah',\n        short: '04',\n      },\n      {\n        long: \"Ha'il\",\n        short: '06',\n      },\n      {\n        long: 'Jazan',\n        short: '09',\n      },\n      {\n        long: 'Makkah al Mukarramah',\n        short: '02',\n      },\n      {\n        long: 'Najran',\n        short: '10',\n      },\n      {\n        long: 'Tabuk',\n        short: '07',\n      },\n    ],\n  },\n  {\n    long: 'Senegal',\n    short: 'SN',\n    regions: [\n      {\n        long: 'Dakar',\n        short: 'DK',\n      },\n      {\n        long: 'Diourbel',\n        short: 'DB',\n      },\n      {\n        long: 'Fatick',\n        short: 'FK',\n      },\n      {\n        long: 'Kaffrine',\n        short: 'KA',\n      },\n      {\n        long: 'Kaolack',\n        short: 'KL',\n      },\n      {\n        long: 'Kedougou',\n        short: 'KE',\n      },\n      {\n        long: 'Kolda',\n        short: 'KD',\n      },\n      {\n        long: 'Louga',\n        short: 'LG',\n      },\n      {\n        long: 'Matam',\n        short: 'MT',\n      },\n      {\n        long: 'Saint-Louis',\n        short: 'SL',\n      },\n      {\n        long: 'Sedhiou',\n        short: 'SE',\n      },\n      {\n        long: 'Tambacounda',\n        short: 'TC',\n      },\n      {\n        long: 'Thies',\n        short: 'TH',\n      },\n      {\n        long: 'Ziguinchor',\n        short: 'ZG',\n      },\n    ],\n  },\n  {\n    long: 'Serbia',\n    short: 'RS',\n    regions: [\n      {\n        long: 'Beograd (Belgrade)',\n        short: '00',\n      },\n      {\n        long: 'Borski',\n        short: '14',\n      },\n      {\n        long: 'Braničevski',\n        short: '11',\n      },\n      {\n        long: 'Jablanički',\n        short: '23',\n      },\n      {\n        long: 'Južnobački',\n        short: '06',\n      },\n      {\n        long: 'Južnobanatski',\n        short: '04',\n      },\n      {\n        long: 'Kolubarski',\n        short: '09',\n      },\n      {\n        long: 'Kosovski',\n        short: '25',\n      },\n      {\n        long: 'Kosovsko-Mitrovački',\n        short: '28',\n      },\n      {\n        long: 'Kosovsko-Pomoravski',\n        short: '29',\n      },\n      {\n        long: 'Mačvanski',\n        short: '08',\n      },\n      {\n        long: 'Moravički',\n        short: '17',\n      },\n      {\n        long: 'Nišavski',\n        short: '20',\n      },\n      {\n        long: 'Pčinjski',\n        short: '24',\n      },\n      {\n        long: 'Pećki',\n        short: '26',\n      },\n      {\n        long: 'Pirotski',\n        short: '22',\n      },\n      {\n        long: 'Podunavski',\n        short: '10',\n      },\n      {\n        long: 'Pomoravski',\n        short: '13',\n      },\n      {\n        long: 'Prizrenski',\n        short: '27',\n      },\n      {\n        long: 'Rasinski',\n        short: '19',\n      },\n      {\n        long: 'Raški',\n        short: '18',\n      },\n      {\n        long: 'Severnobački',\n        short: '01',\n      },\n      {\n        long: 'Severnobanatski',\n        short: '03',\n      },\n      {\n        long: 'Srednjebanatski',\n        short: '02',\n      },\n      {\n        long: 'Sremski',\n        short: '07',\n      },\n      {\n        long: 'Šumadijski',\n        short: '12',\n      },\n      {\n        long: 'Toplički',\n        short: '21',\n      },\n      {\n        long: 'Zaječarski',\n        short: '15',\n      },\n      {\n        long: 'Zapadnobački',\n        short: '05',\n      },\n      {\n        long: 'Zlatiborski',\n        short: '16',\n      },\n    ],\n  },\n  {\n    long: 'Seychelles',\n    short: 'SC',\n    regions: [\n      {\n        long: 'Anse aux Pins',\n        short: '01',\n      },\n      {\n        long: 'Anse Boileau',\n        short: '02',\n      },\n      {\n        long: 'Anse Etoile',\n        short: '03',\n      },\n      {\n        long: 'Anse Royale',\n        short: '05',\n      },\n      {\n        long: 'Anu Cap',\n        short: '04',\n      },\n      {\n        long: 'Baie Lazare',\n        short: '06',\n      },\n      {\n        long: 'Baie Sainte Anne',\n        short: '07',\n      },\n      {\n        long: 'Beau Vallon',\n        short: '08',\n      },\n      {\n        long: 'Bel Air',\n        short: '09',\n      },\n      {\n        long: 'Bel Ombre',\n        short: '10',\n      },\n      {\n        long: 'Cascade',\n        short: '11',\n      },\n      {\n        long: 'Glacis',\n        short: '12',\n      },\n      {\n        long: \"Grand'Anse Mahe\",\n        short: '13',\n      },\n      {\n        long: \"Grand'Anse Praslin\",\n        short: '14',\n      },\n      {\n        long: 'La Digue',\n        short: '15',\n      },\n      {\n        long: 'La Riviere Anglaise',\n        short: '16',\n      },\n      {\n        long: 'Les Mamelles',\n        short: '24',\n      },\n      {\n        long: 'Mont Buxton',\n        short: '17',\n      },\n      {\n        long: 'Mont Fleuri',\n        short: '18',\n      },\n      {\n        long: 'Plaisance',\n        short: '19',\n      },\n      {\n        long: 'Pointe La Rue',\n        short: '20',\n      },\n      {\n        long: 'Port Glaud',\n        short: '21',\n      },\n      {\n        long: 'Roche Caiman',\n        short: '25',\n      },\n      {\n        long: 'Saint Louis',\n        short: '22',\n      },\n      {\n        long: 'Takamaka',\n        short: '23',\n      },\n    ],\n  },\n  {\n    long: 'Sierra Leone',\n    short: 'SL',\n    regions: [\n      {\n        long: 'Eastern',\n        short: 'E',\n      },\n      {\n        long: 'Northern',\n        short: 'N',\n      },\n      {\n        long: 'Southern',\n        short: 'S',\n      },\n      {\n        long: 'Western',\n        short: 'W',\n      },\n    ],\n  },\n  {\n    long: 'Singapore',\n    short: 'SG',\n    regions: [\n      {\n        long: 'Central Singapore',\n        short: '01',\n      },\n      {\n        long: 'North East',\n        short: '02',\n      },\n      {\n        long: 'North West',\n        short: '03',\n      },\n      {\n        long: 'South East',\n        short: '04',\n      },\n      {\n        long: 'South West',\n        short: '05',\n      },\n    ],\n  },\n  {\n    long: 'Sint Maarten (Dutch part)',\n    short: 'SX',\n    regions: [\n      {\n        long: 'Sint Maarten',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Slovakia',\n    short: 'SK',\n    regions: [\n      {\n        long: 'Banskobystricky',\n        short: 'BC',\n      },\n      {\n        long: 'Bratislavsky',\n        short: 'BL',\n      },\n      {\n        long: 'Kosicky',\n        short: 'KI',\n      },\n      {\n        long: 'Nitriansky',\n        short: 'NI',\n      },\n      {\n        long: 'Presovsky',\n        short: 'PV',\n      },\n      {\n        long: 'Trenciansky',\n        short: 'TC',\n      },\n      {\n        long: 'Trnavsky',\n        short: 'TA',\n      },\n      {\n        long: 'Zilinsky',\n        short: 'ZI',\n      },\n    ],\n  },\n  {\n    long: 'Slovenia',\n    short: 'SI',\n    regions: [\n      {\n        long: 'Ajdovscina',\n        short: '001',\n      },\n      {\n        long: 'Apace',\n        short: '195',\n      },\n      {\n        long: 'Beltinci',\n        short: '002',\n      },\n      {\n        long: 'Benedikt',\n        short: '148',\n      },\n      {\n        long: 'Bistrica ob Sotli',\n        short: '149',\n      },\n      {\n        long: 'Bled',\n        short: '003',\n      },\n      {\n        long: 'Bloke',\n        short: '150',\n      },\n      {\n        long: 'Bohinj',\n        short: '004',\n      },\n      {\n        long: 'Borovnica',\n        short: '005',\n      },\n      {\n        long: 'Bovec',\n        short: '006',\n      },\n      {\n        long: 'Braslovce',\n        short: '151',\n      },\n      {\n        long: 'Brda',\n        short: '007',\n      },\n      {\n        long: 'Brezice',\n        short: '009',\n      },\n      {\n        long: 'Brezovica',\n        short: '008',\n      },\n      {\n        long: 'Cankova',\n        short: '152',\n      },\n      {\n        long: 'Celje',\n        short: '011',\n      },\n      {\n        long: 'Cerklje na Gorenjskem',\n        short: '012',\n      },\n      {\n        long: 'Cerknica',\n        short: '013',\n      },\n      {\n        long: 'Cerkno',\n        short: '014',\n      },\n      {\n        long: 'Cerkvenjak',\n        short: '153',\n      },\n      {\n        long: 'Cirkulane',\n        short: '196',\n      },\n      {\n        long: 'Crensovci',\n        short: '015',\n      },\n      {\n        long: 'Crna na Koroskem',\n        short: '016',\n      },\n      {\n        long: 'Crnomelj',\n        short: '017',\n      },\n      {\n        long: 'Destrnik',\n        short: '018',\n      },\n      {\n        long: 'Divaca',\n        short: '019',\n      },\n      {\n        long: 'Dobje',\n        short: '154',\n      },\n      {\n        long: 'Dobrepolje',\n        short: '020',\n      },\n      {\n        long: 'Dobrna',\n        short: '155',\n      },\n      {\n        long: 'Dobrova-Polhov Gradec',\n        short: '021',\n      },\n      {\n        long: 'Dobrovnik',\n        short: '156',\n      },\n      {\n        long: 'Dol pri Ljubljani',\n        short: '022',\n      },\n      {\n        long: 'Dolenjske Toplice',\n        short: '157',\n      },\n      {\n        long: 'Domzale',\n        short: '023',\n      },\n      {\n        long: 'Dornava',\n        short: '024',\n      },\n      {\n        long: 'Dravograd',\n        short: '025',\n      },\n      {\n        long: 'Duplek',\n        short: '026',\n      },\n      {\n        long: 'Gorenja Vas-Poljane',\n        short: '027',\n      },\n      {\n        long: 'Gorisnica',\n        short: '028',\n      },\n      {\n        long: 'Gorje',\n        short: '207',\n      },\n      {\n        long: 'Gornja Radgona',\n        short: '029',\n      },\n      {\n        long: 'Gornji Grad',\n        short: '030',\n      },\n      {\n        long: 'Gornji Petrovci',\n        short: '031',\n      },\n      {\n        long: 'Grad',\n        short: '158',\n      },\n      {\n        long: 'Grosuplje',\n        short: '032',\n      },\n      {\n        long: 'Hajdina',\n        short: '159',\n      },\n      {\n        long: 'Hoce-Slivnica',\n        short: '160',\n      },\n      {\n        long: 'Hodos',\n        short: '161',\n      },\n      {\n        long: 'Horjul',\n        short: '162',\n      },\n      {\n        long: 'Hrastnik',\n        short: '034',\n      },\n      {\n        long: 'Hrpelje-Kozina',\n        short: '035',\n      },\n      {\n        long: 'Idrija',\n        short: '036',\n      },\n      {\n        long: 'Ig',\n        short: '037',\n      },\n      {\n        long: 'Ilirska Bistrica',\n        short: '038',\n      },\n      {\n        long: 'Ivancna Gorica',\n        short: '039',\n      },\n      {\n        long: 'Izola',\n        short: '040',\n      },\n      {\n        long: 'Jesenice',\n        short: '041',\n      },\n      {\n        long: 'Jursinci',\n        short: '042',\n      },\n      {\n        long: 'Kamnik',\n        short: '043',\n      },\n      {\n        long: 'Kanal',\n        short: '044',\n      },\n      {\n        long: 'Kidricevo',\n        short: '045',\n      },\n      {\n        long: 'Kobarid',\n        short: '046',\n      },\n      {\n        long: 'Kobilje',\n        short: '047',\n      },\n      {\n        long: 'Kocevje',\n        short: '048',\n      },\n      {\n        long: 'Komen',\n        short: '049',\n      },\n      {\n        long: 'Komenda',\n        short: '164',\n      },\n      {\n        long: 'Koper',\n        short: '050',\n      },\n      {\n        long: 'Kodanjevica na Krki',\n        short: '197',\n      },\n      {\n        long: 'Kostel',\n        short: '165',\n      },\n      {\n        long: 'Kozje',\n        short: '051',\n      },\n      {\n        long: 'Kranj',\n        short: '052',\n      },\n      {\n        long: 'Kranjska Gora',\n        short: '053',\n      },\n      {\n        long: 'Krizevci',\n        short: '166',\n      },\n      {\n        long: 'Krsko',\n        short: '054',\n      },\n      {\n        long: 'Kungota',\n        short: '055',\n      },\n      {\n        long: 'Kuzma',\n        short: '056',\n      },\n      {\n        long: 'Lasko',\n        short: '057',\n      },\n      {\n        long: 'Lenart',\n        short: '058',\n      },\n      {\n        long: 'Lendava',\n        short: '059',\n      },\n      {\n        long: 'Litija',\n        short: '060',\n      },\n      {\n        long: 'Ljubljana',\n        short: '061',\n      },\n      {\n        long: 'Ljubno',\n        short: '062',\n      },\n      {\n        long: 'Ljutomer',\n        short: '063',\n      },\n      {\n        long: 'Log-Dragomer',\n        short: '208',\n      },\n      {\n        long: 'Logatec',\n        short: '064',\n      },\n      {\n        long: 'Loska Dolina',\n        short: '065',\n      },\n      {\n        long: 'Loski Potok',\n        short: '066',\n      },\n      {\n        long: 'Lovrenc na Pohorju',\n        short: '167',\n      },\n      {\n        long: 'Lukovica',\n        short: '068',\n      },\n      {\n        long: 'Luce',\n        short: '067',\n      },\n      {\n        long: 'Majsperk',\n        short: '069',\n      },\n      {\n        long: 'Makole',\n        short: '198',\n      },\n      {\n        long: 'Maribor',\n        short: '070',\n      },\n      {\n        long: 'Markovci',\n        short: '168',\n      },\n      {\n        long: 'Medvode',\n        short: '071',\n      },\n      {\n        long: 'Menges',\n        short: '072',\n      },\n      {\n        long: 'Metlika',\n        short: '073',\n      },\n      {\n        long: 'Mezica',\n        short: '074',\n      },\n      {\n        long: 'Miklavz na Dravskem Polju',\n        short: '169',\n      },\n      {\n        long: 'Miren-Kostanjevica',\n        short: '075',\n      },\n      {\n        long: 'Mirna',\n        short: '212',\n      },\n      {\n        long: 'Mirna Pec',\n        short: '170',\n      },\n      {\n        long: 'Mislinja',\n        short: '076',\n      },\n      {\n        long: 'Mokronog-Trebelno',\n        short: '199',\n      },\n      {\n        long: 'Moravce',\n        short: '077',\n      },\n      {\n        long: 'Moravske Toplice',\n        short: '078',\n      },\n      {\n        long: 'Mozirje',\n        short: '079',\n      },\n      {\n        long: 'Murska Sobota',\n        short: '080',\n      },\n      {\n        long: 'Naklo',\n        short: '082',\n      },\n      {\n        long: 'Nazarje',\n        short: '083',\n      },\n      {\n        long: 'Nova Gorica',\n        short: '084',\n      },\n      {\n        long: 'Novo Mesto',\n        short: '085',\n      },\n      {\n        long: 'Odranci',\n        short: '086',\n      },\n      {\n        long: 'Ormoz',\n        short: '087',\n      },\n      {\n        long: 'Osilnica',\n        short: '088',\n      },\n      {\n        long: 'Pesnica',\n        short: '089',\n      },\n      {\n        long: 'Piran',\n        short: '090',\n      },\n      {\n        long: 'Pivka',\n        short: '091',\n      },\n      {\n        long: 'Podcetrtek',\n        short: '092',\n      },\n      {\n        long: 'Podlehnik',\n        short: '172',\n      },\n      {\n        long: 'Podvelka',\n        short: '093',\n      },\n      {\n        long: 'Poljcane',\n        short: '200',\n      },\n      {\n        long: 'Postojna',\n        short: '094',\n      },\n      {\n        long: 'Prebold',\n        short: '174',\n      },\n      {\n        long: 'Preddvor',\n        short: '095',\n      },\n      {\n        long: 'Prevalje',\n        short: '175',\n      },\n      {\n        long: 'Ptuj',\n        short: '096',\n      },\n      {\n        long: 'Race-Fram',\n        short: '098',\n      },\n      {\n        long: 'Radece',\n        short: '099',\n      },\n      {\n        long: 'Radenci',\n        short: '100',\n      },\n      {\n        long: 'Radlje ob Dravi',\n        short: '101',\n      },\n      {\n        long: 'Radovljica',\n        short: '102',\n      },\n      {\n        long: 'Ravne na Koroskem',\n        short: '103',\n      },\n      {\n        long: 'Razkrizje',\n        short: '176',\n      },\n      {\n        long: 'Recica ob Savinji',\n        short: '209',\n      },\n      {\n        long: 'Rence-Vogrsko',\n        short: '201',\n      },\n      {\n        long: 'Ribnica',\n        short: '104',\n      },\n      {\n        long: 'Ribnica na Poboriu',\n        short: '177',\n      },\n      {\n        long: 'Rogaska Slatina',\n        short: '106',\n      },\n      {\n        long: 'Rogasovci',\n        short: '105',\n      },\n      {\n        long: 'Rogatec',\n        short: '107',\n      },\n      {\n        long: 'Ruse',\n        short: '108',\n      },\n      {\n        long: 'Salovci',\n        short: '033',\n      },\n      {\n        long: 'Selnica ob Dravi',\n        short: '178',\n      },\n      {\n        long: 'Semic',\n        short: '109',\n      },\n      {\n        long: 'Sempeter-Vrtojba',\n        short: '183',\n      },\n      {\n        long: 'Sencur',\n        short: '117',\n      },\n      {\n        long: 'Sentilj',\n        short: '118',\n      },\n      {\n        long: 'Sentjernej',\n        short: '119',\n      },\n      {\n        long: 'Sentjur',\n        short: '120',\n      },\n      {\n        long: 'Sentrupert',\n        short: '211',\n      },\n      {\n        long: 'Sevnica',\n        short: '110',\n      },\n      {\n        long: 'Sezana',\n        short: '111',\n      },\n      {\n        long: 'Skocjan',\n        short: '121',\n      },\n      {\n        long: 'Skofja Loka',\n        short: '122',\n      },\n      {\n        long: 'Skofljica',\n        short: '123',\n      },\n      {\n        long: 'Slovenj Gradec',\n        short: '112',\n      },\n      {\n        long: 'Slovenska Bistrica',\n        short: '113',\n      },\n      {\n        long: 'Slovenske Konjice',\n        short: '114',\n      },\n      {\n        long: 'Smarje pri elsah',\n        short: '124',\n      },\n      {\n        long: 'Smarjeske Toplice',\n        short: '206',\n      },\n      {\n        long: 'Smartno ob Paki',\n        short: '125',\n      },\n      {\n        long: 'Smartno pri Litiji',\n        short: '194',\n      },\n      {\n        long: 'Sodrazica',\n        short: '179',\n      },\n      {\n        long: 'Solcava',\n        short: '180',\n      },\n      {\n        long: 'Sostanj',\n        short: '126',\n      },\n      {\n        long: 'Sredisce ob Dravi',\n        short: '202',\n      },\n      {\n        long: 'Starse',\n        short: '115',\n      },\n      {\n        long: 'Store',\n        short: '127',\n      },\n      {\n        long: 'Straza',\n        short: '203',\n      },\n      {\n        long: 'Sveta Ana',\n        short: '181',\n      },\n      {\n        long: 'Sveta Trojica v Slovenskih Goricah',\n        short: '204',\n      },\n      {\n        long: 'Sveta Andraz v Slovenskih Goricah',\n        short: '182',\n      },\n      {\n        long: 'Sveti Jurij',\n        short: '116',\n      },\n      {\n        long: 'Sveti Jurij v Slovenskih Goricah',\n        short: '210',\n      },\n      {\n        long: 'Sveti Tomaz',\n        short: '205',\n      },\n      {\n        long: 'Tabor',\n        short: '184',\n      },\n      {\n        long: 'Tisina',\n        short: '010',\n      },\n      {\n        long: 'Tolmin',\n        short: '128',\n      },\n      {\n        long: 'Trbovlje',\n        short: '129',\n      },\n      {\n        long: 'Trebnje',\n        short: '130',\n      },\n      {\n        long: 'Trnovska Vas',\n        short: '185',\n      },\n      {\n        long: 'Trzin',\n        short: '186',\n      },\n      {\n        long: 'Trzic',\n        short: '131',\n      },\n      {\n        long: 'Turnisce',\n        short: '132',\n      },\n      {\n        long: 'Velenje',\n        short: '133',\n      },\n      {\n        long: 'Velika Polana',\n        short: '187',\n      },\n      {\n        long: 'Velike Lasce',\n        short: '134',\n      },\n      {\n        long: 'Verzej',\n        short: '188',\n      },\n      {\n        long: 'Videm',\n        short: '135',\n      },\n      {\n        long: 'Vipava',\n        short: '136',\n      },\n      {\n        long: 'Vitanje',\n        short: '137',\n      },\n      {\n        long: 'Vodice',\n        short: '138',\n      },\n      {\n        long: 'Vojnik',\n        short: '139',\n      },\n      {\n        long: 'Vransko',\n        short: '189',\n      },\n      {\n        long: 'Vrhnika',\n        short: '140',\n      },\n      {\n        long: 'Vuzenica',\n        short: '141',\n      },\n      {\n        long: 'Zagorje ob Savi',\n        short: '142',\n      },\n      {\n        long: 'Zavrc',\n        short: '143',\n      },\n      {\n        long: 'Zrece',\n        short: '144',\n      },\n      {\n        long: 'Zalec',\n        short: '190',\n      },\n      {\n        long: 'Zelezniki',\n        short: '146',\n      },\n      {\n        long: 'Zetale',\n        short: '191',\n      },\n      {\n        long: 'Ziri',\n        short: '147',\n      },\n      {\n        long: 'Zirovnica',\n        short: '192',\n      },\n      {\n        long: 'Zuzemberk',\n        short: '193',\n      },\n    ],\n  },\n  {\n    long: 'Solomon Islands',\n    short: 'SB',\n    regions: [\n      {\n        long: 'Central',\n        short: 'CE',\n      },\n      {\n        long: 'Choiseul',\n        short: 'CH',\n      },\n      {\n        long: 'Guadalcanal',\n        short: 'GU',\n      },\n      {\n        long: 'Honiara',\n        short: 'CT',\n      },\n      {\n        long: 'Isabel',\n        short: 'IS',\n      },\n      {\n        long: 'Makira-Ulawa',\n        short: 'MK',\n      },\n      {\n        long: 'Malaita',\n        short: 'ML',\n      },\n      {\n        long: 'Rennell and Bellona',\n        short: 'RB',\n      },\n      {\n        long: 'Temotu',\n        short: 'TE',\n      },\n      {\n        long: 'Western',\n        short: 'WE',\n      },\n    ],\n  },\n  {\n    long: 'Somalia',\n    short: 'SO',\n    regions: [\n      {\n        long: 'Awdal',\n        short: 'AW',\n      },\n      {\n        long: 'Bakool',\n        short: 'BK',\n      },\n      {\n        long: 'Banaadir',\n        short: 'BN',\n      },\n      {\n        long: 'Bari',\n        short: 'BR',\n      },\n      {\n        long: 'Bay',\n        short: 'BY',\n      },\n      {\n        long: 'Galguduud',\n        short: 'GA',\n      },\n      {\n        long: 'Gedo',\n        short: 'GE',\n      },\n      {\n        long: 'Hiiraan',\n        short: 'HI',\n      },\n      {\n        long: 'Jubbada Dhexe',\n        short: 'JD',\n      },\n      {\n        long: 'Jubbada Hoose',\n        short: 'JH',\n      },\n      {\n        long: 'Mudug',\n        short: 'MU',\n      },\n      {\n        long: 'Nugaal',\n        short: 'NU',\n      },\n      {\n        long: 'Sanaag',\n        short: 'SA',\n      },\n      {\n        long: 'Shabeellaha Dhexe',\n        short: 'SD',\n      },\n      {\n        long: 'Shabeellaha Hoose',\n        short: 'SH',\n      },\n      {\n        long: 'Sool',\n        short: 'SO',\n      },\n      {\n        long: 'Togdheer',\n        short: 'TO',\n      },\n      {\n        long: 'Woqooyi Galbeed',\n        short: 'WO',\n      },\n    ],\n  },\n  {\n    long: 'South Africa',\n    short: 'ZA',\n    regions: [\n      {\n        long: 'Eastern Cape',\n        short: 'EC',\n      },\n      {\n        long: 'Free State',\n        short: 'FS',\n      },\n      {\n        long: 'Gauteng',\n        short: 'GT',\n      },\n      {\n        long: 'KwaZulu-Natal',\n        short: 'NL',\n      },\n      {\n        long: 'Limpopo',\n        short: 'LP',\n      },\n      {\n        long: 'Mpumalanga',\n        short: 'MP',\n      },\n      {\n        long: 'Northern Cape',\n        short: 'NC',\n      },\n      {\n        long: 'North West',\n        short: 'NW',\n      },\n      {\n        long: 'Western Cape',\n        short: 'WC',\n      },\n    ],\n  },\n  {\n    long: 'South Georgia and South Sandwich Islands',\n    short: 'GS',\n    regions: [\n      {\n        long: 'Bird Island',\n        short: 'undefined',\n      },\n      {\n        long: 'Bristol Island',\n        short: 'undefined',\n      },\n      {\n        long: 'Clerke Rocks',\n        short: 'undefined',\n      },\n      {\n        long: 'Montagu Island',\n        short: 'undefined',\n      },\n      {\n        long: 'Saunders Island',\n        short: 'undefined',\n      },\n      {\n        long: 'South Georgia',\n        short: 'undefined',\n      },\n      {\n        long: 'Southern Thule',\n        short: 'undefined',\n      },\n      {\n        long: 'Traversay Islands',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'South Sudan',\n    short: 'SS',\n    regions: [\n      {\n        long: 'Central Equatoria',\n        short: 'CE',\n      },\n      {\n        long: 'Eastern Equatoria',\n        short: 'EE',\n      },\n      {\n        long: 'Jonglei',\n        short: 'JG',\n      },\n      {\n        long: 'Lakes',\n        short: 'LK',\n      },\n      {\n        long: 'Northern Bahr el Ghazal',\n        short: 'BN',\n      },\n      {\n        long: 'Unity',\n        short: 'UY',\n      },\n      {\n        long: 'Upper Nile',\n        short: 'NU',\n      },\n      {\n        long: 'Warrap',\n        short: 'WR',\n      },\n      {\n        long: 'Western Bahr el Ghazal',\n        short: 'BW',\n      },\n      {\n        long: 'Western Equatoria',\n        short: 'EW',\n      },\n    ],\n  },\n  {\n    long: 'Spain',\n    short: 'ES',\n    regions: [\n      {\n        long: 'Albacete',\n        short: 'AB',\n      },\n      {\n        long: 'Alicante',\n        short: 'A',\n      },\n      {\n        long: 'Almería',\n        short: 'AN',\n      },\n      {\n        long: 'Araba/Álava',\n        short: 'VI',\n      },\n      {\n        long: 'Asturias',\n        short: 'O',\n      },\n      {\n        long: 'Ávila',\n        short: 'AV',\n      },\n      {\n        long: 'Badajoz',\n        short: 'BA',\n      },\n      {\n        long: 'Barcelona',\n        short: 'B',\n      },\n      {\n        long: 'Bizkaia',\n        short: 'BI',\n      },\n      {\n        long: 'Burgos',\n        short: 'BU',\n      },\n      {\n        long: 'Cáceres',\n        short: 'CC',\n      },\n      {\n        long: 'Cádiz',\n        short: 'CA',\n      },\n      {\n        long: 'Cantabria',\n        short: 'S',\n      },\n      {\n        long: 'Castellón/Castelló',\n        short: 'CS',\n      },\n      {\n        long: 'Ceuta',\n        short: 'CE',\n      },\n      {\n        long: 'Ciudad Real',\n        short: 'CR',\n      },\n      {\n        long: 'Córdoba',\n        short: 'CO',\n      },\n      {\n        long: 'A Coruña',\n        short: 'C',\n      },\n      {\n        long: 'Cuenca',\n        short: 'CU',\n      },\n      {\n        long: 'Gipuzkoa',\n        short: 'SS',\n      },\n      {\n        long: 'Girona',\n        short: 'GI',\n      },\n      {\n        long: 'Granada',\n        short: 'GR',\n      },\n      {\n        long: 'Guadalajara',\n        short: 'GU',\n      },\n      {\n        long: 'Huelva',\n        short: 'H',\n      },\n      {\n        long: 'Huesca',\n        short: 'HU',\n      },\n      {\n        long: 'Illes Balears',\n        short: 'PM',\n      },\n      {\n        long: 'Jaén',\n        short: 'J',\n      },\n      {\n        long: 'León',\n        short: 'LE',\n      },\n      {\n        long: 'Lleida',\n        short: 'L',\n      },\n      {\n        long: 'Lugo',\n        short: 'LU',\n      },\n      {\n        long: 'Madrid',\n        short: 'M',\n      },\n      {\n        long: 'Málaga',\n        short: 'MA',\n      },\n      {\n        long: 'Melilla',\n        short: 'ML',\n      },\n      {\n        long: 'Murcia',\n        short: 'MU',\n      },\n      {\n        long: 'Navarra/Nafarroa',\n        short: 'NA',\n      },\n      {\n        long: 'Ourense',\n        short: 'OR',\n      },\n      {\n        long: 'Palencia',\n        short: 'P',\n      },\n      {\n        long: 'Las Palmas',\n        short: 'GC',\n      },\n      {\n        long: 'Pontevedra',\n        short: 'PO',\n      },\n      {\n        long: 'La Rioja',\n        short: 'LO',\n      },\n      {\n        long: 'Salamanca',\n        short: 'SA',\n      },\n      {\n        long: 'Santa Cruz de Tenerife',\n        short: 'TF',\n      },\n      {\n        long: 'Segovia',\n        short: 'SG',\n      },\n      {\n        long: 'Sevilla',\n        short: 'SE',\n      },\n      {\n        long: 'Soria',\n        short: 'SO',\n      },\n      {\n        long: 'Tarragona',\n        short: 'T',\n      },\n      {\n        long: 'Teruel',\n        short: 'TE',\n      },\n      {\n        long: 'Toledo',\n        short: 'TO',\n      },\n      {\n        long: 'Valencia/València',\n        short: 'V',\n      },\n      {\n        long: 'Valladolid',\n        short: 'VA',\n      },\n      {\n        long: 'Zamora',\n        short: 'ZA',\n      },\n      {\n        long: 'Zaragoza',\n        short: 'Z',\n      },\n    ],\n  },\n  {\n    long: 'Sri Lanka',\n    short: 'LK',\n    regions: [\n      {\n        long: 'Basnahira',\n        short: '1',\n      },\n      {\n        long: 'Dakunu',\n        short: '3',\n      },\n      {\n        long: 'Madhyama',\n        short: '2',\n      },\n      {\n        long: 'Naegenahira',\n        short: '5',\n      },\n      {\n        long: 'Sabaragamuwa',\n        short: '9',\n      },\n      {\n        long: 'Uturu',\n        short: '4',\n      },\n      {\n        long: 'Uturumaeda',\n        short: '7',\n      },\n      {\n        long: 'Vayamba',\n        short: '6',\n      },\n      {\n        long: 'Uva',\n        short: '8',\n      },\n    ],\n  },\n  {\n    long: 'Sudan',\n    short: 'SD',\n    regions: [\n      {\n        long: 'Al Bahr al Ahmar',\n        short: 'RS',\n      },\n      {\n        long: 'Al Jazirah',\n        short: 'GZ',\n      },\n      {\n        long: 'Al Khartum',\n        short: 'KH',\n      },\n      {\n        long: 'Al Qadarif',\n        short: 'GD',\n      },\n      {\n        long: 'An Nil al Abyad',\n        short: 'NW',\n      },\n      {\n        long: 'An Nil al Azraq',\n        short: 'NB',\n      },\n      {\n        long: 'Ash Shamaliyah',\n        short: 'NO',\n      },\n      {\n        long: 'Gharb Darfur',\n        short: 'DW',\n      },\n      {\n        long: 'Gharb Kurdufan',\n        short: 'GK',\n      },\n      {\n        long: 'Janub Darfur',\n        short: 'DS',\n      },\n      {\n        long: 'Janub Kurdufan',\n        short: 'KS',\n      },\n      {\n        long: 'Kassala',\n        short: 'KA',\n      },\n      {\n        long: 'Nahr an Nil',\n        short: 'NR',\n      },\n      {\n        long: 'Shamal Darfur',\n        short: 'DN',\n      },\n      {\n        long: 'Sharq Darfur',\n        short: 'DE',\n      },\n      {\n        long: 'Shiamal Kurdufan',\n        short: 'KN',\n      },\n      {\n        long: 'Sinnar',\n        short: 'SI',\n      },\n      {\n        long: 'Wasat Darfur Zalinjay',\n        short: 'DC',\n      },\n    ],\n  },\n  {\n    long: 'Suriname',\n    short: 'SR',\n    regions: [\n      {\n        long: 'Brokopondo',\n        short: 'BR',\n      },\n      {\n        long: 'Commewijne',\n        short: 'CM',\n      },\n      {\n        long: 'Coronie',\n        short: 'CR',\n      },\n      {\n        long: 'Marowijne',\n        short: 'MA',\n      },\n      {\n        long: 'Nickerie',\n        short: 'NI',\n      },\n      {\n        long: 'Para',\n        short: 'PR',\n      },\n      {\n        long: 'Paramaribo',\n        short: 'PM',\n      },\n      {\n        long: 'Saramacca',\n        short: 'SA',\n      },\n      {\n        long: 'Sipaliwini',\n        short: 'SI',\n      },\n      {\n        long: 'Wanica',\n        short: 'WA',\n      },\n    ],\n  },\n  {\n    long: 'Swaziland',\n    short: 'SZ',\n    regions: [\n      {\n        long: 'Hhohho',\n        short: 'HH',\n      },\n      {\n        long: 'Lubombo',\n        short: 'LU',\n      },\n      {\n        long: 'Manzini',\n        short: 'MA',\n      },\n      {\n        long: 'Shiselweni',\n        short: 'SH',\n      },\n    ],\n  },\n  {\n    long: 'Sweden',\n    short: 'SE',\n    regions: [\n      {\n        long: 'Blekinge',\n        short: 'K',\n      },\n      {\n        long: 'Dalarna',\n        short: 'W',\n      },\n      {\n        long: 'Gävleborg',\n        short: 'X',\n      },\n      {\n        long: 'Gotland',\n        short: 'I',\n      },\n      {\n        long: 'Halland',\n        short: 'N',\n      },\n      {\n        long: 'Jämtland',\n        short: 'Z',\n      },\n      {\n        long: 'Jönköping',\n        short: 'F',\n      },\n      {\n        long: 'Kalmar',\n        short: 'H',\n      },\n      {\n        long: 'Kronoberg',\n        short: 'G',\n      },\n      {\n        long: 'Norrbotten',\n        short: 'BD',\n      },\n      {\n        long: 'Örebro',\n        short: 'T',\n      },\n      {\n        long: 'Östergötland',\n        short: 'E',\n      },\n      {\n        long: 'Skåne',\n        short: 'M',\n      },\n      {\n        long: 'Södermanland',\n        short: 'D',\n      },\n      {\n        long: 'Stockholm',\n        short: 'AB',\n      },\n      {\n        long: 'Uppsala',\n        short: 'C',\n      },\n      {\n        long: 'Värmland',\n        short: 'S',\n      },\n      {\n        long: 'Västerbotten',\n        short: 'AC',\n      },\n      {\n        long: 'Västernorrland',\n        short: 'Y',\n      },\n      {\n        long: 'Västmanland',\n        short: 'U',\n      },\n      {\n        long: 'Västra Götaland',\n        short: 'O',\n      },\n    ],\n  },\n  {\n    long: 'Switzerland',\n    short: 'CH',\n    regions: [\n      {\n        long: 'Aargau',\n        short: 'AG',\n      },\n      {\n        long: 'Appenzell Ausserrhoden',\n        short: 'AR',\n      },\n      {\n        long: 'Appenzell Innerhoden',\n        short: 'AI',\n      },\n      {\n        long: 'Basel-Landschaft',\n        short: 'BL',\n      },\n      {\n        long: 'Basel-Stadt',\n        short: 'BS',\n      },\n      {\n        long: 'Bern',\n        short: 'BE',\n      },\n      {\n        long: 'Fribourg',\n        short: 'FR',\n      },\n      {\n        long: 'Genève',\n        short: 'GE',\n      },\n      {\n        long: 'Glarus',\n        short: 'GL',\n      },\n      {\n        long: 'Graubünden',\n        short: 'GR',\n      },\n      {\n        long: 'Jura',\n        short: 'JU',\n      },\n      {\n        long: 'Luzern',\n        short: 'LU',\n      },\n      {\n        long: 'Neuchâtel',\n        short: 'NE',\n      },\n      {\n        long: 'Nidwalden',\n        short: 'NW',\n      },\n      {\n        long: 'Obwalden',\n        short: 'OW',\n      },\n      {\n        long: 'Sankt Gallen',\n        short: 'SG',\n      },\n      {\n        long: 'Schaffhausen',\n        short: 'SH',\n      },\n      {\n        long: 'Schwyz',\n        short: 'SZ',\n      },\n      {\n        long: 'Solothurn',\n        short: 'SO',\n      },\n      {\n        long: 'Thurgau',\n        short: 'TG',\n      },\n      {\n        long: 'Ticino',\n        short: 'TI',\n      },\n      {\n        long: 'Uri',\n        short: 'UR',\n      },\n      {\n        long: 'Valais',\n        short: 'VS',\n      },\n      {\n        long: 'Vaud',\n        short: 'VD',\n      },\n      {\n        long: 'Zug',\n        short: 'ZG',\n      },\n      {\n        long: 'Zürich',\n        short: 'ZH',\n      },\n    ],\n  },\n  {\n    long: 'Syrian Arab Republic',\n    short: 'SY',\n    regions: [\n      {\n        long: 'Al Hasakah',\n        short: 'HA',\n      },\n      {\n        long: 'Al Ladhiqiyah',\n        short: 'LA',\n      },\n      {\n        long: 'Al Qunaytirah',\n        short: 'QU',\n      },\n      {\n        long: 'Ar Raqqah',\n        short: 'RA',\n      },\n      {\n        long: \"As Suwayda'\",\n        short: 'SU',\n      },\n      {\n        long: \"Dar'a\",\n        short: 'DR',\n      },\n      {\n        long: 'Dayr az Zawr',\n        short: 'DY',\n      },\n      {\n        long: 'Dimashq',\n        short: 'DI',\n      },\n      {\n        long: 'Halab',\n        short: 'HL',\n      },\n      {\n        long: 'Hamah',\n        short: 'HM',\n      },\n      {\n        long: 'Hims',\n        short: 'HI',\n      },\n      {\n        long: 'Idlib',\n        short: 'ID',\n      },\n      {\n        long: 'Rif Dimashq',\n        short: 'RD',\n      },\n      {\n        long: 'Tartus',\n        short: 'TA',\n      },\n    ],\n  },\n  {\n    long: 'Taiwan',\n    short: 'TW',\n    regions: [\n      {\n        long: 'Chang-hua',\n        short: 'CHA',\n      },\n      {\n        long: 'Chia-i',\n        short: 'CYQ',\n      },\n      {\n        long: 'Hsin-chu',\n        short: 'HSQ',\n      },\n      {\n        long: 'Hua-lien',\n        short: 'HUA',\n      },\n      {\n        long: 'Kao-hsiung',\n        short: 'KHH',\n      },\n      {\n        long: 'Keelung',\n        short: 'KEE',\n      },\n      {\n        long: 'Kinmen',\n        short: 'KIN',\n      },\n      {\n        long: 'Lienchiang',\n        short: 'LIE',\n      },\n      {\n        long: 'Miao-li',\n        short: 'MIA',\n      },\n      {\n        long: \"Nan-t'ou\",\n        short: 'NAN',\n      },\n      {\n        long: \"P'eng-hu\",\n        short: 'PEN',\n      },\n      {\n        long: 'New Taipei',\n        short: 'NWT',\n      },\n      {\n        long: \"P'ing-tung\",\n        short: 'PING',\n      },\n      {\n        long: \"T'ai-chung\",\n        short: 'TXG',\n      },\n      {\n        long: \"T'ai-nan\",\n        short: 'TNN',\n      },\n      {\n        long: \"T'ai-pei\",\n        short: 'TPE',\n      },\n      {\n        long: \"T'ai-tung\",\n        short: 'TTT',\n      },\n      {\n        long: \"T'ao-yuan\",\n        short: 'TAO',\n      },\n      {\n        long: 'Yi-lan',\n        short: 'ILA',\n      },\n      {\n        long: 'Yun-lin',\n        short: 'YUN',\n      },\n    ],\n  },\n  {\n    long: 'Tajikistan',\n    short: 'TJ',\n    regions: [\n      {\n        long: 'Dushanbe',\n        short: 'DU',\n      },\n      {\n        long: 'Kŭhistoni Badakhshon',\n        short: 'GB',\n      },\n      {\n        long: 'Khatlon',\n        short: 'KT',\n      },\n      {\n        long: 'Sughd',\n        short: 'SU',\n      },\n    ],\n  },\n  {\n    long: 'Tanzania, United Republic of',\n    short: 'TZ',\n    regions: [\n      {\n        long: 'Arusha',\n        short: '01',\n      },\n      {\n        long: 'Coast',\n        short: '19',\n      },\n      {\n        long: 'Dar es Salaam',\n        short: '02',\n      },\n      {\n        long: 'Dodoma',\n        short: '03',\n      },\n      {\n        long: 'Iringa',\n        short: '04',\n      },\n      {\n        long: 'Kagera',\n        short: '05',\n      },\n      {\n        long: 'Kigoma',\n        short: '08',\n      },\n      {\n        long: 'Kilimanjaro',\n        short: '09',\n      },\n      {\n        long: 'Lindi',\n        short: '12',\n      },\n      {\n        long: 'Manyara',\n        short: '26',\n      },\n      {\n        long: 'Mara',\n        short: '13',\n      },\n      {\n        long: 'Mbeya',\n        short: '14',\n      },\n      {\n        long: 'Morogoro',\n        short: '16',\n      },\n      {\n        long: 'Mtwara',\n        short: '17',\n      },\n      {\n        long: 'Mwanza',\n        short: '18',\n      },\n      {\n        long: 'Pemba North',\n        short: '06',\n      },\n      {\n        long: 'Pemba South',\n        short: '10',\n      },\n      {\n        long: 'Rukwa',\n        short: '20',\n      },\n      {\n        long: 'Ruvuma',\n        short: '21',\n      },\n      {\n        long: 'Shinyanga',\n        short: '22',\n      },\n      {\n        long: 'Singida',\n        short: '23',\n      },\n      {\n        long: 'Tabora',\n        short: '24',\n      },\n      {\n        long: 'Tanga',\n        short: '25',\n      },\n      {\n        long: 'Zanzibar North',\n        short: '07',\n      },\n      {\n        long: 'Zanzibar Central/South',\n        short: '11',\n      },\n      {\n        long: 'Zanzibar Urban/West',\n        short: '15',\n      },\n    ],\n  },\n  {\n    long: 'Thailand',\n    short: 'TH',\n    regions: [\n      {\n        long: 'Amnat Charoen',\n        short: '37',\n      },\n      {\n        long: 'Ang Thong',\n        short: '15',\n      },\n      {\n        long: 'Bueng Kan',\n        short: '38',\n      },\n      {\n        long: 'Buri Ram',\n        short: '31',\n      },\n      {\n        long: 'Chachoengsao',\n        short: '24',\n      },\n      {\n        long: 'Chai Nat',\n        short: '18',\n      },\n      {\n        long: 'Chaiyaphum',\n        short: '36',\n      },\n      {\n        long: 'Chanthaburi',\n        short: '22',\n      },\n      {\n        long: 'Chiang Mai',\n        short: '50',\n      },\n      {\n        long: 'Chiang Rai',\n        short: '57',\n      },\n      {\n        long: 'Chon Buri',\n        short: '20',\n      },\n      {\n        long: 'Chumphon',\n        short: '86',\n      },\n      {\n        long: 'Kalasin',\n        short: '46',\n      },\n      {\n        long: 'Kamphaeng Phet',\n        short: '62',\n      },\n      {\n        long: 'Kanchanaburi',\n        short: '71',\n      },\n      {\n        long: 'Khon Kaen',\n        short: '40',\n      },\n      {\n        long: 'Krabi',\n        short: '81',\n      },\n      {\n        long: 'Krung Thep Mahanakhon (Bangkok)',\n        short: '10',\n      },\n      {\n        long: 'Lampang',\n        short: '52',\n      },\n      {\n        long: 'Lamphun',\n        short: '51',\n      },\n      {\n        long: 'Loei',\n        short: '42',\n      },\n      {\n        long: 'Lop Buri',\n        short: '16',\n      },\n      {\n        long: 'Mae Hong Son',\n        short: '58',\n      },\n      {\n        long: 'Maha Sarakham',\n        short: '44',\n      },\n      {\n        long: 'Mukdahan',\n        short: '49',\n      },\n      {\n        long: 'Nakhon Nayok',\n        short: '26',\n      },\n      {\n        long: 'Nakhon Phathom',\n        short: '73',\n      },\n      {\n        long: 'Nakhon Phanom',\n        short: '48',\n      },\n      {\n        long: 'Nakhon Ratchasima',\n        short: '30',\n      },\n      {\n        long: 'Nakhon Sawan',\n        short: '60',\n      },\n      {\n        long: 'Nakhon Si Thammarat',\n        short: '80',\n      },\n      {\n        long: 'Nan',\n        short: '55',\n      },\n      {\n        long: 'Narathiwat',\n        short: '96',\n      },\n      {\n        long: 'Nong Bua Lam Phu',\n        short: '39',\n      },\n      {\n        long: 'Nong Khai',\n        short: '43',\n      },\n      {\n        long: 'Nonthaburi',\n        short: '12',\n      },\n      {\n        long: 'Pathum Thani',\n        short: '13',\n      },\n      {\n        long: 'Pattani',\n        short: '94',\n      },\n      {\n        long: 'Phangnga',\n        short: '82',\n      },\n      {\n        long: 'Phatthalung',\n        short: '93',\n      },\n      {\n        long: 'Phayao',\n        short: '56',\n      },\n      {\n        long: 'Phetchabun',\n        short: '67',\n      },\n      {\n        long: 'Phetchaburi',\n        short: '76',\n      },\n      {\n        long: 'Phichit',\n        short: '66',\n      },\n      {\n        long: 'Phitsanulok',\n        short: '65',\n      },\n      {\n        long: 'Phra Nakhon Si Ayutthaya',\n        short: '14',\n      },\n      {\n        long: 'Phrae',\n        short: '54',\n      },\n      {\n        long: 'Phuket',\n        short: '83',\n      },\n      {\n        long: 'Prachin Buri',\n        short: '25',\n      },\n      {\n        long: 'Prachuap Khiri Khan',\n        short: '77',\n      },\n      {\n        long: 'Ranong',\n        short: '85',\n      },\n      {\n        long: 'Ratchaburi',\n        short: '70',\n      },\n      {\n        long: 'Rayong',\n        short: '21',\n      },\n      {\n        long: 'Roi Et',\n        short: '45',\n      },\n      {\n        long: 'Sa Kaeo',\n        short: '27',\n      },\n      {\n        long: 'Sakon Nakhon',\n        short: '47',\n      },\n      {\n        long: 'Samut Prakan',\n        short: '11',\n      },\n      {\n        long: 'Samut Sakhon',\n        short: '74',\n      },\n      {\n        long: 'Samut Songkhram',\n        short: '75',\n      },\n      {\n        long: 'Saraburi',\n        short: '19',\n      },\n      {\n        long: 'Satun',\n        short: '91',\n      },\n      {\n        long: 'Sing Buri',\n        short: '17',\n      },\n      {\n        long: 'Si Sa ket',\n        short: '33',\n      },\n      {\n        long: 'Songkhla',\n        short: '90',\n      },\n      {\n        long: 'Sukhothai',\n        short: '64',\n      },\n      {\n        long: 'Suphan Buri',\n        short: '72',\n      },\n      {\n        long: 'Surat Thani',\n        short: '84',\n      },\n      {\n        long: 'Surin',\n        short: '32',\n      },\n      {\n        long: 'Tak',\n        short: '63',\n      },\n      {\n        long: 'Trang',\n        short: '92',\n      },\n      {\n        long: 'Trat',\n        short: '23',\n      },\n      {\n        long: 'Ubon Ratchathani',\n        short: '34',\n      },\n      {\n        long: 'Udon Thani',\n        short: '41',\n      },\n      {\n        long: 'Uthai Thani',\n        short: '61',\n      },\n      {\n        long: 'Uttaradit',\n        short: '53',\n      },\n      {\n        long: 'Yala',\n        short: '95',\n      },\n      {\n        long: 'Yasothon',\n        short: '35',\n      },\n    ],\n  },\n  {\n    long: 'Timor-Leste',\n    short: 'TL',\n    regions: [\n      {\n        long: 'Aileu',\n        short: 'AL',\n      },\n      {\n        long: 'Ainaro',\n        short: 'AN',\n      },\n      {\n        long: 'Baucau',\n        short: 'BA',\n      },\n      {\n        long: 'Bobonaro',\n        short: 'BO',\n      },\n      {\n        long: 'Cova Lima',\n        short: 'CO',\n      },\n      {\n        long: 'Dili',\n        short: 'DI',\n      },\n      {\n        long: 'Ermera',\n        short: 'ER',\n      },\n      {\n        long: 'Lautem',\n        short: 'LA',\n      },\n      {\n        long: 'Liquica',\n        short: 'LI',\n      },\n      {\n        long: 'Manatuto',\n        short: 'MT',\n      },\n      {\n        long: 'Manufahi',\n        short: 'MF',\n      },\n      {\n        long: 'Oecussi',\n        short: 'OE',\n      },\n      {\n        long: 'Viqueque',\n        short: 'VI',\n      },\n    ],\n  },\n  {\n    long: 'Togo',\n    short: 'TG',\n    regions: [\n      {\n        long: 'Centre',\n        short: 'C',\n      },\n      {\n        long: 'Kara',\n        short: 'K',\n      },\n      {\n        long: 'Maritime',\n        short: 'M',\n      },\n      {\n        long: 'Plateaux',\n        short: 'P',\n      },\n      {\n        long: 'Savannes',\n        short: 'S',\n      },\n    ],\n  },\n  {\n    long: 'Tokelau',\n    short: 'TK',\n    regions: [\n      {\n        long: 'Atafu',\n        short: 'undefined',\n      },\n      {\n        long: 'Fakaofo',\n        short: 'undefined',\n      },\n      {\n        long: 'Nukunonu',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Tonga',\n    short: 'TO',\n    regions: [\n      {\n        long: \"'Eua\",\n        short: '01',\n      },\n      {\n        long: \"Ha'apai\",\n        short: '02',\n      },\n      {\n        long: 'Niuas',\n        short: '03',\n      },\n      {\n        long: 'Tongatapu',\n        short: '04',\n      },\n      {\n        long: \"Vava'u\",\n        short: '05',\n      },\n    ],\n  },\n  {\n    long: 'Trinidad and Tobago',\n    short: 'TT',\n    regions: [\n      {\n        long: 'Arima',\n        short: 'ARI',\n      },\n      {\n        long: 'Chaguanas',\n        short: 'CHA',\n      },\n      {\n        long: 'Couva-Tabaquite-Talparo',\n        short: 'CTT',\n      },\n      {\n        long: 'Diefo Martin',\n        short: 'DMN',\n      },\n      {\n        long: 'Mayaro-Rio Claro',\n        short: 'MRC',\n      },\n      {\n        long: 'Penal-Debe',\n        short: 'PED',\n      },\n      {\n        long: 'Point Fortin',\n        short: 'PTF',\n      },\n      {\n        long: 'Port-of-Spain',\n        short: 'POS',\n      },\n      {\n        long: 'Princes Town',\n        short: 'PRT',\n      },\n      {\n        long: 'San Fernando',\n        short: 'SFO',\n      },\n      {\n        long: 'San Juan-Laventille',\n        short: 'SJL',\n      },\n      {\n        long: 'Sangre Grande',\n        short: 'SGE',\n      },\n      {\n        long: 'Siparia',\n        short: 'SIP',\n      },\n      {\n        long: 'Tobago',\n        short: 'TOB',\n      },\n      {\n        long: 'Tunapuna-Piarco',\n        short: 'TUP',\n      },\n    ],\n  },\n  {\n    long: 'Tunisia',\n    short: 'TN',\n    regions: [\n      {\n        long: 'Ariana',\n        short: '12',\n      },\n      {\n        long: 'Beja',\n        short: '31',\n      },\n      {\n        long: 'Ben Arous',\n        short: '13',\n      },\n      {\n        long: 'Bizerte',\n        short: '23',\n      },\n      {\n        long: 'Gabes',\n        short: '81',\n      },\n      {\n        long: 'Gafsa',\n        short: '71',\n      },\n      {\n        long: 'Jendouba',\n        short: '32',\n      },\n      {\n        long: 'Kairouan',\n        short: '41',\n      },\n      {\n        long: 'Kasserine',\n        short: '42',\n      },\n      {\n        long: 'Kebili',\n        short: '73',\n      },\n      {\n        long: 'Kef',\n        short: '33',\n      },\n      {\n        long: 'Mahdia',\n        short: '53',\n      },\n      {\n        long: 'Medenine',\n        short: '82',\n      },\n      {\n        long: 'Monastir',\n        short: '52',\n      },\n      {\n        long: 'Nabeul',\n        short: '21',\n      },\n      {\n        long: 'Sfax',\n        short: '61',\n      },\n      {\n        long: 'Sidi Bouzid',\n        short: '43',\n      },\n      {\n        long: 'Siliana',\n        short: '34',\n      },\n      {\n        long: 'Sousse',\n        short: '51',\n      },\n      {\n        long: 'Tataouine',\n        short: '83',\n      },\n      {\n        long: 'Tozeur',\n        short: '72',\n      },\n      {\n        long: 'Tunis',\n        short: '11',\n      },\n      {\n        long: 'Zaghouan',\n        short: '22',\n      },\n    ],\n  },\n  {\n    long: 'Turkey',\n    short: 'TR',\n    regions: [\n      {\n        long: 'Adana',\n        short: '01',\n      },\n      {\n        long: 'Adiyaman',\n        short: '02',\n      },\n      {\n        long: 'Afyonkarahisar',\n        short: '03',\n      },\n      {\n        long: 'Agri',\n        short: '04',\n      },\n      {\n        long: 'Aksaray',\n        short: '68',\n      },\n      {\n        long: 'Amasya',\n        short: '05',\n      },\n      {\n        long: 'Ankara',\n        short: '06',\n      },\n      {\n        long: 'Antalya',\n        short: '07',\n      },\n      {\n        long: 'Ardahan',\n        short: '75',\n      },\n      {\n        long: 'Artvin',\n        short: '08',\n      },\n      {\n        long: 'Aydin',\n        short: '09',\n      },\n      {\n        long: 'Balikesir',\n        short: '10',\n      },\n      {\n        long: 'Bartin',\n        short: '74',\n      },\n      {\n        long: 'Batman',\n        short: '72',\n      },\n      {\n        long: 'Bayburt',\n        short: '69',\n      },\n      {\n        long: 'Bilecik',\n        short: '11',\n      },\n      {\n        long: 'Bingol',\n        short: '12',\n      },\n      {\n        long: 'Bitlis',\n        short: '13',\n      },\n      {\n        long: 'Bolu',\n        short: '14',\n      },\n      {\n        long: 'Burdur',\n        short: '15',\n      },\n      {\n        long: 'Bursa',\n        short: '16',\n      },\n      {\n        long: 'Canakkale',\n        short: '17',\n      },\n      {\n        long: 'Cankiri',\n        short: '18',\n      },\n      {\n        long: 'Corum',\n        short: '19',\n      },\n      {\n        long: 'Denizli',\n        short: '20',\n      },\n      {\n        long: 'Diyarbakir',\n        short: '21',\n      },\n      {\n        long: 'Duzce',\n        short: '81',\n      },\n      {\n        long: 'Edirne',\n        short: '22',\n      },\n      {\n        long: 'Elazig',\n        short: '23',\n      },\n      {\n        long: 'Erzincan',\n        short: '24',\n      },\n      {\n        long: 'Erzurum',\n        short: '25',\n      },\n      {\n        long: 'Eskisehir',\n        short: '26',\n      },\n      {\n        long: 'Gaziantep',\n        short: '27',\n      },\n      {\n        long: 'Giresun',\n        short: '28',\n      },\n      {\n        long: 'Gumushane',\n        short: '29',\n      },\n      {\n        long: 'Hakkari',\n        short: '30',\n      },\n      {\n        long: 'Hatay',\n        short: '31',\n      },\n      {\n        long: 'Igdir',\n        short: '76',\n      },\n      {\n        long: 'Isparta',\n        short: '32',\n      },\n      {\n        long: 'Istanbul',\n        short: '34',\n      },\n      {\n        long: 'Izmir',\n        short: '35',\n      },\n      {\n        long: 'Kahramanmaras',\n        short: '46',\n      },\n      {\n        long: 'Karabuk',\n        short: '78',\n      },\n      {\n        long: 'Karaman',\n        short: '70',\n      },\n      {\n        long: 'Kars',\n        short: '36',\n      },\n      {\n        long: 'Kastamonu',\n        short: '37',\n      },\n      {\n        long: 'Kayseri',\n        short: '38',\n      },\n      {\n        long: 'Kilis',\n        short: '79',\n      },\n      {\n        long: 'Kirikkale',\n        short: '71',\n      },\n      {\n        long: 'Kirklareli',\n        short: '39',\n      },\n      {\n        long: 'Kirsehir',\n        short: '40',\n      },\n      {\n        long: 'Kocaeli',\n        short: '41',\n      },\n      {\n        long: 'Konya',\n        short: '42',\n      },\n      {\n        long: 'Kutahya',\n        short: '43',\n      },\n      {\n        long: 'Malatya',\n        short: '44',\n      },\n      {\n        long: 'Manisa',\n        short: '45',\n      },\n      {\n        long: 'Mardin',\n        short: '47',\n      },\n      {\n        long: 'Mersin',\n        short: '33',\n      },\n      {\n        long: 'Mugla',\n        short: '48',\n      },\n      {\n        long: 'Mus',\n        short: '49',\n      },\n      {\n        long: 'Nevsehir',\n        short: '50',\n      },\n      {\n        long: 'Nigde',\n        short: '51',\n      },\n      {\n        long: 'Ordu',\n        short: '52',\n      },\n      {\n        long: 'Osmaniye',\n        short: '80',\n      },\n      {\n        long: 'Rize',\n        short: '53',\n      },\n      {\n        long: 'Sakarya',\n        short: '54',\n      },\n      {\n        long: 'Samsun',\n        short: '55',\n      },\n      {\n        long: 'Sanliurfa',\n        short: '63',\n      },\n      {\n        long: 'Siirt',\n        short: '56',\n      },\n      {\n        long: 'Sinop',\n        short: '57',\n      },\n      {\n        long: 'Sirnak',\n        short: '73',\n      },\n      {\n        long: 'Sivas',\n        short: '58',\n      },\n      {\n        long: 'Tekirdag',\n        short: '59',\n      },\n      {\n        long: 'Tokat',\n        short: '60',\n      },\n      {\n        long: 'Trabzon',\n        short: '61',\n      },\n      {\n        long: 'Tunceli',\n        short: '62',\n      },\n      {\n        long: 'Usak',\n        short: '64',\n      },\n      {\n        long: 'Van',\n        short: '65',\n      },\n      {\n        long: 'Yalova',\n        short: '77',\n      },\n      {\n        long: 'Yozgat',\n        short: '66',\n      },\n      {\n        long: 'Zonguldak',\n        short: '67',\n      },\n    ],\n  },\n  {\n    long: 'Turkmenistan',\n    short: 'TM',\n    regions: [\n      {\n        long: 'Ahal',\n        short: 'A',\n      },\n      {\n        long: 'Asgabat',\n        short: 'S',\n      },\n      {\n        long: 'Balkan',\n        short: 'B',\n      },\n      {\n        long: 'Dashoguz',\n        short: 'D',\n      },\n      {\n        long: 'Lebap',\n        short: 'L',\n      },\n      {\n        long: 'Mary',\n        short: 'M',\n      },\n    ],\n  },\n  {\n    long: 'Turks and Caicos Islands',\n    short: 'TC',\n    regions: [\n      {\n        long: 'Turks and Caicos Islands',\n        short: 'undefined',\n      },\n    ],\n  },\n  {\n    long: 'Tuvalu',\n    short: 'TV',\n    regions: [\n      {\n        long: 'Funafuti',\n        short: 'FUN',\n      },\n      {\n        long: 'Nanumanga',\n        short: 'NMG',\n      },\n      {\n        long: 'Nanumea',\n        short: 'NMA',\n      },\n      {\n        long: 'Niutao',\n        short: 'NIT',\n      },\n      {\n        long: 'Nui',\n        short: 'NUI',\n      },\n      {\n        long: 'Nukufetau',\n        short: 'NKF',\n      },\n      {\n        long: 'Nukulaelae',\n        short: 'NKL',\n      },\n      {\n        long: 'Vaitupu',\n        short: 'VAU',\n      },\n    ],\n  },\n  {\n    long: 'Uganda',\n    short: 'UG',\n    regions: [\n      {\n        long: 'Abim',\n        short: '317',\n      },\n      {\n        long: 'Adjumani',\n        short: '301',\n      },\n      {\n        long: 'Amolatar',\n        short: '314',\n      },\n      {\n        long: 'Amuria',\n        short: '216',\n      },\n      {\n        long: 'Amuru',\n        short: '319',\n      },\n      {\n        long: 'Apac',\n        short: '302',\n      },\n      {\n        long: 'Arua',\n        short: '303',\n      },\n      {\n        long: 'Budaka',\n        short: '217',\n      },\n      {\n        long: 'Bududa',\n        short: '223',\n      },\n      {\n        long: 'Bugiri',\n        short: '201',\n      },\n      {\n        long: 'Bukedea',\n        short: '224',\n      },\n      {\n        long: 'Bukwa',\n        short: '218',\n      },\n      {\n        long: 'Buliisa',\n        short: '419',\n      },\n      {\n        long: 'Bundibugyo',\n        short: '401',\n      },\n      {\n        long: 'Bushenyi',\n        short: '402',\n      },\n      {\n        long: 'Busia',\n        short: '202',\n      },\n      {\n        long: 'Butaleja',\n        short: '219',\n      },\n      {\n        long: 'Dokolo',\n        short: '318',\n      },\n      {\n        long: 'Gulu',\n        short: '304',\n      },\n      {\n        long: 'Hoima',\n        short: '403',\n      },\n      {\n        long: 'Ibanda',\n        short: '416',\n      },\n      {\n        long: 'Iganga',\n        short: '203',\n      },\n      {\n        long: 'Isingiro',\n        short: '417',\n      },\n      {\n        long: 'Jinja',\n        short: '204',\n      },\n      {\n        long: 'Kaabong',\n        short: '315',\n      },\n      {\n        long: 'Kabale',\n        short: '404',\n      },\n      {\n        long: 'Kabarole',\n        short: '405',\n      },\n      {\n        long: 'Kaberamaido',\n        short: '213',\n      },\n      {\n        long: 'Kalangala',\n        short: '101',\n      },\n      {\n        long: 'Kaliro',\n        short: '220',\n      },\n      {\n        long: 'Kampala',\n        short: '102',\n      },\n      {\n        long: 'Kamuli',\n        short: '205',\n      },\n      {\n        long: 'Kamwenge',\n        short: '413',\n      },\n      {\n        long: 'Kanungu',\n        short: '414',\n      },\n      {\n        long: 'Kapchorwa',\n        short: '206',\n      },\n      {\n        long: 'Kasese',\n        short: '406',\n      },\n      {\n        long: 'Katakwi',\n        short: '207',\n      },\n      {\n        long: 'Kayunga',\n        short: '112',\n      },\n      {\n        long: 'Kibaale',\n        short: '407',\n      },\n      {\n        long: 'Kiboga',\n        short: '103',\n      },\n      {\n        long: 'Kiruhura',\n        short: '418',\n      },\n      {\n        long: 'Kisoro',\n        short: '408',\n      },\n      {\n        long: 'Kitgum',\n        short: '305',\n      },\n      {\n        long: 'Koboko',\n        short: '316',\n      },\n      {\n        long: 'Kotido',\n        short: '306',\n      },\n      {\n        long: 'Kumi',\n        short: '208',\n      },\n      {\n        long: 'Kyenjojo',\n        short: '415',\n      },\n      {\n        long: 'Lira',\n        short: '307',\n      },\n      {\n        long: 'Luwero',\n        short: '104',\n      },\n      {\n        long: 'Lyantonde',\n        short: '116',\n      },\n      {\n        long: 'Manafwa',\n        short: '221',\n      },\n      {\n        long: 'Maracha',\n        short: '320',\n      },\n      {\n        long: 'Masaka',\n        short: '105',\n      },\n      {\n        long: 'Masindi',\n        short: '409',\n      },\n      {\n        long: 'Mayuge',\n        short: '214',\n      },\n      {\n        long: 'Mbale',\n        short: '209',\n      },\n      {\n        long: 'Mbarara',\n        short: '410',\n      },\n      {\n        long: 'Mityana',\n        short: '114',\n      },\n      {\n        long: 'Moroto',\n        short: '308',\n      },\n      {\n        long: 'Moyo',\n        short: '309',\n      },\n      {\n        long: 'Mpigi',\n        short: '106',\n      },\n      {\n        long: 'Mubende',\n        short: '107',\n      },\n      {\n        long: 'Mukono',\n        short: '108',\n      },\n      {\n        long: 'Nakapiripirit',\n        short: '311',\n      },\n      {\n        long: 'Nakaseke',\n        short: '115',\n      },\n      {\n        long: 'Nakasongola',\n        short: '109',\n      },\n      {\n        long: 'Namutumba',\n        short: '222',\n      },\n      {\n        long: 'Nebbi',\n        short: '310',\n      },\n      {\n        long: 'Ntungamo',\n        short: '411',\n      },\n      {\n        long: 'Oyam',\n        short: '321',\n      },\n      {\n        long: 'Pader',\n        short: '312',\n      },\n      {\n        long: 'Pallisa',\n        short: '210',\n      },\n      {\n        long: 'Rakai',\n        short: '110',\n      },\n      {\n        long: 'Rukungiri',\n        short: '412',\n      },\n      {\n        long: 'Sembabule',\n        short: '111',\n      },\n      {\n        long: 'Sironko',\n        short: '215',\n      },\n      {\n        long: 'Soroti',\n        short: '211',\n      },\n      {\n        long: 'Tororo',\n        short: '212',\n      },\n      {\n        long: 'Wakiso',\n        short: '113',\n      },\n      {\n        long: 'Yumbe',\n        short: '313',\n      },\n    ],\n  },\n  {\n    long: 'Ukraine',\n    short: 'UA',\n    regions: [\n      {\n        long: 'Cherkasy',\n        short: '71',\n      },\n      {\n        long: 'Chernihiv',\n        short: '74',\n      },\n      {\n        long: 'Chernivtsi',\n        short: '77',\n      },\n      {\n        long: 'Dnipropetrovsk',\n        short: '12',\n      },\n      {\n        long: 'Donetsk',\n        short: '14',\n      },\n      {\n        long: 'Ivano-Frankivsk',\n        short: '26',\n      },\n      {\n        long: 'Kharkiv',\n        short: '63',\n      },\n      {\n        long: 'Kherson',\n        short: '65',\n      },\n      {\n        long: 'Khmelnytskyi',\n        short: '68',\n      },\n      {\n        long: 'Kiev',\n        short: '32',\n      },\n      {\n        long: 'Kirovohrad',\n        short: '35',\n      },\n      {\n        long: 'Luhansk',\n        short: '09',\n      },\n      {\n        long: 'Lviv',\n        short: '46',\n      },\n      {\n        long: 'Mykolaiv',\n        short: '48',\n      },\n      {\n        long: 'Odessa',\n        short: '51',\n      },\n      {\n        long: 'Poltava',\n        short: '53',\n      },\n      {\n        long: 'Rivne',\n        short: '56',\n      },\n      {\n        long: 'Sumy',\n        short: '59',\n      },\n      {\n        long: 'Ternopil',\n        short: '61',\n      },\n      {\n        long: 'Vinnytsia',\n        short: '05',\n      },\n      {\n        long: 'Volyn',\n        short: '07',\n      },\n      {\n        long: 'Zakarpattia',\n        short: '21',\n      },\n      {\n        long: 'Zaporizhia',\n        short: '23',\n      },\n      {\n        long: 'Zhytomyr',\n        short: '18',\n      },\n      {\n        long: 'Avtonomna Respublika Krym',\n        short: '43',\n      },\n      {\n        long: 'Kyïv',\n        short: '30',\n      },\n      {\n        long: 'Sevastopol',\n        short: '40',\n      },\n    ],\n  },\n  {\n    long: 'United Arab Emirates',\n    short: 'AE',\n    regions: [\n      {\n        long: 'Abu Dhabi',\n        short: 'AZ',\n      },\n      {\n        long: 'Ajman',\n        short: 'AJ',\n      },\n      {\n        long: 'Dubai',\n        short: 'DU',\n      },\n      {\n        long: 'Fujairah',\n        short: 'FU',\n      },\n      {\n        long: 'Ras al Khaimah',\n        short: 'RK',\n      },\n      {\n        long: 'Sharjah',\n        short: 'SH',\n      },\n      {\n        long: 'Umm Al Quwain',\n        short: 'UQ',\n      },\n    ],\n  },\n  {\n    long: 'United Kingdom',\n    short: 'GB',\n    regions: [\n      {\n        long: 'Aberdeen City',\n        short: 'ABE',\n      },\n      {\n        long: 'Aberdeenshire',\n        short: 'ABD',\n      },\n      {\n        long: 'Angus',\n        short: 'ANS',\n      },\n      {\n        long: 'Antrim and Newtownabbey',\n        short: 'ANN',\n      },\n      {\n        long: 'Ards and North Down',\n        short: 'AND',\n      },\n      {\n        long: 'Argyll and Bute',\n        short: 'AGB',\n      },\n      {\n        long: 'Armagh, Banbridge and Craigavon',\n        short: 'ABC',\n      },\n      {\n        long: 'Barking and Dagenham',\n        short: 'BDG',\n      },\n      {\n        long: 'Barnet',\n        short: 'BNE',\n      },\n      {\n        long: 'Barnsley',\n        short: 'BNS',\n      },\n      {\n        long: 'Bath and North East Somerset',\n        short: 'BAS',\n      },\n      {\n        long: 'Bedford',\n        short: 'BDF',\n      },\n      {\n        long: 'Belfast',\n        short: 'BFS',\n      },\n      {\n        long: 'Bexley',\n        short: 'BEX',\n      },\n      {\n        long: 'Birmingham',\n        short: 'BIR',\n      },\n      {\n        long: 'Blackburn with Darwen',\n        short: 'BBD',\n      },\n      {\n        long: 'Blackpool',\n        short: 'BPL',\n      },\n      {\n        long: 'Blaenau Gwent',\n        short: 'BGW',\n      },\n      {\n        long: 'Bolton',\n        short: 'BOL',\n      },\n      {\n        long: 'Bournemouth',\n        short: 'BMH',\n      },\n      {\n        long: 'Bracknell Forest',\n        short: 'BRC',\n      },\n      {\n        long: 'Bradford',\n        short: 'BRD',\n      },\n      {\n        long: 'Brent',\n        short: 'BEN',\n      },\n      {\n        long: 'Bridgend',\n        short: 'BGE',\n      },\n      {\n        long: 'Brighton and Hove',\n        short: 'BNH',\n      },\n      {\n        long: 'Bristol, City of',\n        short: 'BST',\n      },\n      {\n        long: 'Bromley',\n        short: 'BRY',\n      },\n      {\n        long: 'Buckinghamshire',\n        short: 'BKM',\n      },\n      {\n        long: 'Bury',\n        short: 'BUR',\n      },\n      {\n        long: 'Caerphilly',\n        short: 'CAY',\n      },\n      {\n        long: 'Calderdale',\n        short: 'CLD',\n      },\n      {\n        long: 'Cambridgeshire',\n        short: 'CAM',\n      },\n      {\n        long: 'Camden',\n        short: 'CMD',\n      },\n      {\n        long: 'Cardiff',\n        short: 'CRF',\n      },\n      {\n        long: 'Carmarthenshire',\n        short: 'CMN',\n      },\n      {\n        long: 'Causeway Coast and Glens',\n        short: 'CCG',\n      },\n      {\n        long: 'Central Bedfordshire',\n        short: 'CBF',\n      },\n      {\n        long: 'Ceredigion',\n        short: 'CGN',\n      },\n      {\n        long: 'Cheshire East',\n        short: 'CHE',\n      },\n      {\n        long: 'Cheshire West and Chester',\n        short: 'CHW',\n      },\n      {\n        long: 'Clackmannanshire',\n        short: 'CLK',\n      },\n      {\n        long: 'Conwy',\n        short: 'CWY',\n      },\n      {\n        long: 'Cornwall',\n        short: 'CON',\n      },\n      {\n        long: 'Coventry',\n        short: 'COV',\n      },\n      {\n        long: 'Croydon',\n        short: 'CRY',\n      },\n      {\n        long: 'Cumbria',\n        short: 'CMA',\n      },\n      {\n        long: 'Darlington',\n        short: 'DAL',\n      },\n      {\n        long: 'Denbighshire',\n        short: 'DEN',\n      },\n      {\n        long: 'Derby',\n        short: 'DER',\n      },\n      {\n        long: 'Derbyshire',\n        short: 'DBY',\n      },\n      {\n        long: 'Derry and Strabane',\n        short: 'DRS',\n      },\n      {\n        long: 'Devon',\n        short: 'DEV',\n      },\n      {\n        long: 'Doncaster',\n        short: 'DNC',\n      },\n      {\n        long: 'Dorset',\n        short: 'DOR',\n      },\n      {\n        long: 'Dudley',\n        short: 'DUD',\n      },\n      {\n        long: 'Dumfries and Galloway',\n        short: 'DGY',\n      },\n      {\n        long: 'Dundee City',\n        short: 'DND',\n      },\n      {\n        long: 'Durham County',\n        short: 'DUR',\n      },\n      {\n        long: 'Ealing',\n        short: 'EAL',\n      },\n      {\n        long: 'East Ayrshire',\n        short: 'EAY',\n      },\n      {\n        long: 'East Dunbartonshire',\n        short: 'EDU',\n      },\n      {\n        long: 'East Lothian',\n        short: 'ELN',\n      },\n      {\n        long: 'East Renfrewshire',\n        short: 'ERW',\n      },\n      {\n        long: 'East Riding of Yorkshire',\n        short: 'ERY',\n      },\n      {\n        long: 'East Sussex',\n        short: 'ESX',\n      },\n      {\n        long: 'Edinburgh, City of',\n        short: 'EDH',\n      },\n      {\n        long: 'Eilean Siar',\n        short: 'ELS',\n      },\n      {\n        long: 'Enfield',\n        short: 'ENF',\n      },\n      {\n        long: 'Essex',\n        short: 'ESS',\n      },\n      {\n        long: 'Falkirk',\n        short: 'FAL',\n      },\n      {\n        long: 'Fermanagh and Omagh',\n        short: 'FMO',\n      },\n      {\n        long: 'Fife',\n        short: 'FIF',\n      },\n      {\n        long: 'Flintshire',\n        short: 'FLN',\n      },\n      {\n        long: 'Gateshead',\n        short: 'GAT',\n      },\n      {\n        long: 'Glasgow City',\n        short: 'GLG',\n      },\n      {\n        long: 'Gloucestershire',\n        short: 'GLS',\n      },\n      {\n        long: 'Greenwich',\n        short: 'GRE',\n      },\n      {\n        long: 'Gwynedd',\n        short: 'GWN',\n      },\n      {\n        long: 'Hackney',\n        short: 'HCK',\n      },\n      {\n        long: 'Halton',\n        short: 'HAL',\n      },\n      {\n        long: 'Hammersmith and Fulham',\n        short: 'HMF',\n      },\n      {\n        long: 'Hampshire',\n        short: 'HAM',\n      },\n      {\n        long: 'Haringey',\n        short: 'HRY',\n      },\n      {\n        long: 'Harrow',\n        short: 'HRW',\n      },\n      {\n        long: 'Hartlepool',\n        short: 'HPL',\n      },\n      {\n        long: 'Havering',\n        short: 'HAV',\n      },\n      {\n        long: 'Herefordshire',\n        short: 'HEF',\n      },\n      {\n        long: 'Hertfordshire',\n        short: 'HRT',\n      },\n      {\n        long: 'Highland',\n        short: 'HLD',\n      },\n      {\n        long: 'Hillingdon',\n        short: 'HIL',\n      },\n      {\n        long: 'Hounslow',\n        short: 'HNS',\n      },\n      {\n        long: 'Inverclyde',\n        short: 'IVC',\n      },\n      {\n        long: 'Isle of Anglesey',\n        short: 'AGY',\n      },\n      {\n        long: 'Isle of Wight',\n        short: 'IOW',\n      },\n      {\n        long: 'Isles of Scilly',\n        short: 'IOS',\n      },\n      {\n        long: 'Islington',\n        short: 'ISL',\n      },\n      {\n        long: 'Kensington and Chelsea',\n        short: 'KEC',\n      },\n      {\n        long: 'Kent',\n        short: 'KEN',\n      },\n      {\n        long: 'Kingston upon Hull',\n        short: 'KHL',\n      },\n      {\n        long: 'Kingston upon Thames',\n        short: 'KTT',\n      },\n      {\n        long: 'Kirklees',\n        short: 'KIR',\n      },\n      {\n        long: 'Knowsley',\n        short: 'KWL',\n      },\n      {\n        long: 'Lambeth',\n        short: 'LBH',\n      },\n      {\n        long: 'Lancashire',\n        short: 'LAN',\n      },\n      {\n        long: 'Leeds',\n        short: 'LDS',\n      },\n      {\n        long: 'Leicester',\n        short: 'LCE',\n      },\n      {\n        long: 'Leicestershire',\n        short: 'LEC',\n      },\n      {\n        long: 'Lewisham',\n        short: 'LEW',\n      },\n      {\n        long: 'Lincolnshire',\n        short: 'LIN',\n      },\n      {\n        long: 'Lisburn and Castlereagh',\n        short: 'LBC',\n      },\n      {\n        long: 'Liverpool',\n        short: 'LIV',\n      },\n      {\n        long: 'London, City of',\n        short: 'LND',\n      },\n      {\n        long: 'Luton',\n        short: 'LUT',\n      },\n      {\n        long: 'Manchester',\n        short: 'MAN',\n      },\n      {\n        long: 'Medway',\n        short: 'MDW',\n      },\n      {\n        long: 'Merthyr Tydfil',\n        short: 'MTY',\n      },\n      {\n        long: 'Merton',\n        short: 'MRT',\n      },\n      {\n        long: 'Mid and East Antrim',\n        short: 'MEA',\n      },\n      {\n        long: 'Mid Ulster',\n        short: 'MUL',\n      },\n      {\n        long: 'Middlesbrough',\n        short: 'MDB',\n      },\n      {\n        long: 'Midlothian',\n        short: 'MLN',\n      },\n      {\n        long: 'Milton Keynes',\n        short: 'MIK',\n      },\n      {\n        long: 'Monmouthshire',\n        short: 'MON',\n      },\n      {\n        long: 'Moray',\n        short: 'MRY',\n      },\n      {\n        long: 'Neath Port Talbot',\n        short: 'NTL',\n      },\n      {\n        long: 'Newcastle upon Tyne',\n        short: 'NET',\n      },\n      {\n        long: 'Newham',\n        short: 'NWM',\n      },\n      {\n        long: 'Newport',\n        short: 'NWP',\n      },\n      {\n        long: 'Newry, Mourne and Down',\n        short: 'NMD',\n      },\n      {\n        long: 'Norfolk',\n        short: 'NFK',\n      },\n      {\n        long: 'North Ayrshire',\n        short: 'NAY',\n      },\n      {\n        long: 'North East Lincolnshire',\n        short: 'NEL',\n      },\n      {\n        long: 'North Lanarkshire',\n        short: 'NLK',\n      },\n      {\n        long: 'North Lincolnshire',\n        short: 'NLN',\n      },\n      {\n        long: 'North Somerset',\n        short: 'NSM',\n      },\n      {\n        long: 'North Tyneside',\n        short: 'NTY',\n      },\n      {\n        long: 'North Yorkshire',\n        short: 'NYK',\n      },\n      {\n        long: 'Northamptonshire',\n        short: 'NTH',\n      },\n      {\n        long: 'Northumberland',\n        short: 'NBL',\n      },\n      {\n        long: 'Nottingham',\n        short: 'NGM',\n      },\n      {\n        long: 'Nottinghamshire',\n        short: 'NTT',\n      },\n      {\n        long: 'Oldham',\n        short: 'OLD',\n      },\n      {\n        long: 'Orkney Islands',\n        short: 'ORK',\n      },\n      {\n        long: 'Oxfordshire',\n        short: 'OXF',\n      },\n      {\n        long: 'Pembrokeshire',\n        short: 'PEM',\n      },\n      {\n        long: 'Perth and Kinross',\n        short: 'PKN',\n      },\n      {\n        long: 'Peterborough',\n        short: 'PTE',\n      },\n      {\n        long: 'Plymouth',\n        short: 'PLY',\n      },\n      {\n        long: 'Poole',\n        short: 'POL',\n      },\n      {\n        long: 'Portsmouth',\n        short: 'POR',\n      },\n      {\n        long: 'Powys',\n        short: 'POW',\n      },\n      {\n        long: 'Reading',\n        short: 'RDG',\n      },\n      {\n        long: 'Redbridge',\n        short: 'RDB',\n      },\n      {\n        long: 'Redcar and Cleveland',\n        short: 'RCC',\n      },\n      {\n        long: 'Renfrewshire',\n        short: 'RFW',\n      },\n      {\n        long: 'Rhondda, Cynon, Taff',\n        short: 'RCT',\n      },\n      {\n        long: 'Richmond upon Thames',\n        short: 'RIC',\n      },\n      {\n        long: 'Rochdale',\n        short: 'RCH',\n      },\n      {\n        long: 'Rotherham',\n        short: 'ROT',\n      },\n      {\n        long: 'Rutland',\n        short: 'RUT',\n      },\n      {\n        long: 'St. Helens',\n        short: 'SHN',\n      },\n      {\n        long: 'Salford',\n        short: 'SLF',\n      },\n      {\n        long: 'Sandwell',\n        short: 'SAW',\n      },\n      {\n        long: 'Scottish Borders, The',\n        short: 'SCB',\n      },\n      {\n        long: 'Sefton',\n        short: 'SFT',\n      },\n      {\n        long: 'Sheffield',\n        short: 'SHF',\n      },\n      {\n        long: 'Shetland Islands',\n        short: 'ZET',\n      },\n      {\n        long: 'Shropshire',\n        short: 'SHR',\n      },\n      {\n        long: 'Slough',\n        short: 'SLG',\n      },\n      {\n        long: 'Solihull',\n        short: 'SOL',\n      },\n      {\n        long: 'Somerset',\n        short: 'SOM',\n      },\n      {\n        long: 'South Ayrshire',\n        short: 'SAY',\n      },\n      {\n        long: 'South Gloucestershire',\n        short: 'SGC',\n      },\n      {\n        long: 'South Lanarkshire',\n        short: 'SLK',\n      },\n      {\n        long: 'South Tyneside',\n        short: 'STY',\n      },\n      {\n        long: 'Southampton',\n        short: 'STH',\n      },\n      {\n        long: 'Southend-on-Sea',\n        short: 'SOS',\n      },\n      {\n        long: 'Southwark',\n        short: 'SWK',\n      },\n      {\n        long: 'Staffordshire',\n        short: 'STS',\n      },\n      {\n        long: 'Stirling',\n        short: 'STG',\n      },\n      {\n        long: 'Stockport',\n        short: 'SKP',\n      },\n      {\n        long: 'Stockton-on-Tees',\n        short: 'STT',\n      },\n      {\n        long: 'Stoke-on-Trent',\n        short: 'STE',\n      },\n      {\n        long: 'Suffolk',\n        short: 'SFK',\n      },\n      {\n        long: 'Sunderland',\n        short: 'SND',\n      },\n      {\n        long: 'Surrey',\n        short: 'SRY',\n      },\n      {\n        long: 'Sutton',\n        short: 'STN',\n      },\n      {\n        long: 'Swansea',\n        short: 'SWA',\n      },\n      {\n        long: 'Swindon',\n        short: 'SWD',\n      },\n      {\n        long: 'Tameside',\n        short: 'TAM',\n      },\n      {\n        long: 'Telford and Wrekin',\n        short: 'TFW',\n      },\n      {\n        long: 'Thurrock',\n        short: 'THR',\n      },\n      {\n        long: 'Torbay',\n        short: 'TOB',\n      },\n      {\n        long: 'Torfaen',\n        short: 'TOF',\n      },\n      {\n        long: 'Tower Hamlets',\n        short: 'TWH',\n      },\n      {\n        long: 'Trafford',\n        short: 'TRF',\n      },\n      {\n        long: 'Vale of Glamorgan, The',\n        short: 'VGL',\n      },\n      {\n        long: 'Wakefield',\n        short: 'WKF',\n      },\n      {\n        long: 'Walsall',\n        short: 'WLL',\n      },\n      {\n        long: 'Waltham Forest',\n        short: 'WFT',\n      },\n      {\n        long: 'Wandsworth',\n        short: 'WND',\n      },\n      {\n        long: 'Warrington',\n        short: 'WRT',\n      },\n      {\n        long: 'Warwickshire',\n        short: 'WAR',\n      },\n      {\n        long: 'West Berkshire',\n        short: 'WBK',\n      },\n      {\n        long: 'West Dunbartonshire',\n        short: 'WDU',\n      },\n      {\n        long: 'West Lothian',\n        short: 'WLN',\n      },\n      {\n        long: 'West Sussex',\n        short: 'WSX',\n      },\n      {\n        long: 'Westminster',\n        short: 'WSM',\n      },\n      {\n        long: 'Wigan',\n        short: 'WGN',\n      },\n      {\n        long: 'Wiltshire',\n        short: 'WIL',\n      },\n      {\n        long: 'Windsor and Maidenhead',\n        short: 'WNM',\n      },\n      {\n        long: 'Wirral',\n        short: 'WRL',\n      },\n      {\n        long: 'Wokingham',\n        short: 'WOK',\n      },\n      {\n        long: 'Wolverhampton',\n        short: 'WLV',\n      },\n      {\n        long: 'Worcestershire',\n        short: 'WOR',\n      },\n      {\n        long: 'Wrexham',\n        short: 'WRX',\n      },\n      {\n        long: 'York',\n        short: 'YOR',\n      },\n    ],\n  },\n  {\n    long: 'United States',\n    short: 'US',\n    regions: [\n      {\n        long: 'Alabama',\n        short: 'AL',\n      },\n      {\n        long: 'Alaska',\n        short: 'AK',\n      },\n      {\n        long: 'American Samoa',\n        short: 'AS',\n      },\n      {\n        long: 'Arizona',\n        short: 'AZ',\n      },\n      {\n        long: 'Arkansas',\n        short: 'AR',\n      },\n      {\n        long: 'California',\n        short: 'CA',\n      },\n      {\n        long: 'Colorado',\n        short: 'CO',\n      },\n      {\n        long: 'Connecticut',\n        short: 'CT',\n      },\n      {\n        long: 'Delaware',\n        short: 'DE',\n      },\n      {\n        long: 'District of Columbia',\n        short: 'DC',\n      },\n      {\n        long: 'Micronesia',\n        short: 'FM',\n      },\n      {\n        long: 'Florida',\n        short: 'FL',\n      },\n      {\n        long: 'Georgia',\n        short: 'GA',\n      },\n      {\n        long: 'Guam',\n        short: 'GU',\n      },\n      {\n        long: 'Hawaii',\n        short: 'HI',\n      },\n      {\n        long: 'Idaho',\n        short: 'ID',\n      },\n      {\n        long: 'Illinois',\n        short: 'IL',\n      },\n      {\n        long: 'Indiana',\n        short: 'IN',\n      },\n      {\n        long: 'Iowa',\n        short: 'IA',\n      },\n      {\n        long: 'Kansas',\n        short: 'KS',\n      },\n      {\n        long: 'Kentucky',\n        short: 'KY',\n      },\n      {\n        long: 'Louisiana',\n        short: 'LA',\n      },\n      {\n        long: 'Maine',\n        short: 'ME',\n      },\n      {\n        long: 'Marshall Islands',\n        short: 'MH',\n      },\n      {\n        long: 'Maryland',\n        short: 'MD',\n      },\n      {\n        long: 'Massachusetts',\n        short: 'MA',\n      },\n      {\n        long: 'Michigan',\n        short: 'MI',\n      },\n      {\n        long: 'Minnesota',\n        short: 'MN',\n      },\n      {\n        long: 'Mississippi',\n        short: 'MS',\n      },\n      {\n        long: 'Missouri',\n        short: 'MO',\n      },\n      {\n        long: 'Montana',\n        short: 'MT',\n      },\n      {\n        long: 'Nebraska',\n        short: 'NE',\n      },\n      {\n        long: 'Nevada',\n        short: 'NV',\n      },\n      {\n        long: 'New Hampshire',\n        short: 'NH',\n      },\n      {\n        long: 'New Jersey',\n        short: 'NJ',\n      },\n      {\n        long: 'New Mexico',\n        short: 'NM',\n      },\n      {\n        long: 'New York',\n        short: 'NY',\n      },\n      {\n        long: 'North Carolina',\n        short: 'NC',\n      },\n      {\n        long: 'North Dakota',\n        short: 'ND',\n      },\n      {\n        long: 'Northern Mariana Islands',\n        short: 'MP',\n      },\n      {\n        long: 'Ohio',\n        short: 'OH',\n      },\n      {\n        long: 'Oklahoma',\n        short: 'OK',\n      },\n      {\n        long: 'Oregon',\n        short: 'OR',\n      },\n      {\n        long: 'Palau',\n        short: 'PW',\n      },\n      {\n        long: 'Pennsylvania',\n        short: 'PA',\n      },\n      {\n        long: 'Puerto Rico',\n        short: 'PR',\n      },\n      {\n        long: 'Rhode Island',\n        short: 'RI',\n      },\n      {\n        long: 'South Carolina',\n        short: 'SC',\n      },\n      {\n        long: 'South Dakota',\n        short: 'SD',\n      },\n      {\n        long: 'Tennessee',\n        short: 'TN',\n      },\n      {\n        long: 'Texas',\n        short: 'TX',\n      },\n      {\n        long: 'Utah',\n        short: 'UT',\n      },\n      {\n        long: 'Vermont',\n        short: 'VT',\n      },\n      {\n        long: 'Virgin Islands',\n        short: 'VI',\n      },\n      {\n        long: 'Virginia',\n        short: 'VA',\n      },\n      {\n        long: 'Washington',\n        short: 'WA',\n      },\n      {\n        long: 'West Virginia',\n        short: 'WV',\n      },\n      {\n        long: 'Wisconsin',\n        short: 'WI',\n      },\n      {\n        long: 'Wyoming',\n        short: 'WY',\n      },\n      {\n        long: 'Armed Forces Americas',\n        short: 'AA',\n      },\n      {\n        long: 'Armed Forces Europe, Canada, Africa and Middle East',\n        short: 'AE',\n      },\n      {\n        long: 'Armed Forces Pacific',\n        short: 'AP',\n      },\n    ],\n  },\n  {\n    long: 'United States Minor Outlying Islands',\n    short: 'UM',\n    regions: [\n      {\n        long: 'Baker Island',\n        short: '81',\n      },\n      {\n        long: 'Howland Island',\n        short: '84',\n      },\n      {\n        long: 'Jarvis Island',\n        short: '86',\n      },\n      {\n        long: 'Johnston Atoll',\n        short: '67',\n      },\n      {\n        long: 'Kingman Reef',\n        short: '89',\n      },\n      {\n        long: 'Midway Islands',\n        short: '71',\n      },\n      {\n        long: 'Navassa Island',\n        short: '76',\n      },\n      {\n        long: 'Palmyra Atoll',\n        short: '95',\n      },\n      {\n        long: 'Wake Island',\n        short: '79',\n      },\n      {\n        long: 'Bajo Nuevo Bank',\n        short: 'BN',\n      },\n      {\n        long: 'Serranilla Bank',\n        short: 'SB',\n      },\n    ],\n  },\n  {\n    long: 'Uruguay',\n    short: 'UY',\n    regions: [\n      {\n        long: 'Artigas',\n        short: 'AR',\n      },\n      {\n        long: 'Canelones',\n        short: 'CA',\n      },\n      {\n        long: 'Cerro Largo',\n        short: 'CL',\n      },\n      {\n        long: 'Colonia',\n        short: 'CO',\n      },\n      {\n        long: 'Durazno',\n        short: 'DU',\n      },\n      {\n        long: 'Flores',\n        short: 'FS',\n      },\n      {\n        long: 'Florida',\n        short: 'FD',\n      },\n      {\n        long: 'Lavalleja',\n        short: 'LA',\n      },\n      {\n        long: 'Maldonado',\n        short: 'MA',\n      },\n      {\n        long: 'Montevideo',\n        short: 'MO',\n      },\n      {\n        long: 'Paysandú',\n        short: 'PA',\n      },\n      {\n        long: 'Río Negro',\n        short: 'RN',\n      },\n      {\n        long: 'Rivera',\n        short: 'RV',\n      },\n      {\n        long: 'Rocha',\n        short: 'RO',\n      },\n      {\n        long: 'Salto',\n        short: 'SA',\n      },\n      {\n        long: 'San José',\n        short: 'SJ',\n      },\n      {\n        long: 'Soriano',\n        short: 'SO',\n      },\n      {\n        long: 'Tacuarembó',\n        short: 'TA',\n      },\n      {\n        long: 'Treinta y Tres',\n        short: 'TT',\n      },\n    ],\n  },\n  {\n    long: 'Uzbekistan',\n    short: 'UZ',\n    regions: [\n      {\n        long: 'Toshkent shahri',\n        short: 'TK',\n      },\n      {\n        long: 'Andijon',\n        short: 'AN',\n      },\n      {\n        long: 'Buxoro',\n        short: 'BU',\n      },\n      {\n        long: 'Farg‘ona',\n        short: 'FA',\n      },\n      {\n        long: 'Jizzax',\n        short: 'JI',\n      },\n      {\n        long: 'Namangan',\n        short: 'NG',\n      },\n      {\n        long: 'Navoiy',\n        short: 'NW',\n      },\n      {\n        long: 'Qashqadaryo (Qarshi)',\n        short: 'QA',\n      },\n      {\n        long: 'Samarqand',\n        short: 'SA',\n      },\n      {\n        long: 'Sirdaryo (Guliston)',\n        short: 'SI',\n      },\n      {\n        long: 'Surxondaryo (Termiz)',\n        short: 'SU',\n      },\n      {\n        long: 'Toshkent wiloyati',\n        short: 'TO',\n      },\n      {\n        long: 'Xorazm (Urganch)',\n        short: 'XO',\n      },\n      {\n        long: 'Qoraqalpog‘iston Respublikasi (Nukus)',\n        short: 'QR',\n      },\n    ],\n  },\n  {\n    long: 'Vanuatu',\n    short: 'VU',\n    regions: [\n      {\n        long: 'Malampa',\n        short: 'MAP',\n      },\n      {\n        long: 'Pénama',\n        short: 'PAM',\n      },\n      {\n        long: 'Sanma',\n        short: 'SAM',\n      },\n      {\n        long: 'Shéfa',\n        short: 'SEE',\n      },\n      {\n        long: 'Taféa',\n        short: 'TAE',\n      },\n      {\n        long: 'Torba',\n        short: 'TOB',\n      },\n    ],\n  },\n  {\n    long: 'Venezuela, Bolivarian Republic of',\n    short: 'VE',\n    regions: [\n      {\n        long: 'Dependencias Federales',\n        short: 'W',\n      },\n      {\n        long: 'Distrito Federal',\n        short: 'A',\n      },\n      {\n        long: 'Amazonas',\n        short: 'Z',\n      },\n      {\n        long: 'Anzoátegui',\n        short: 'B',\n      },\n      {\n        long: 'Apure',\n        short: 'C',\n      },\n      {\n        long: 'Aragua',\n        short: 'D',\n      },\n      {\n        long: 'Barinas',\n        short: 'E',\n      },\n      {\n        long: 'Bolívar',\n        short: 'F',\n      },\n      {\n        long: 'Carabobo',\n        short: 'G',\n      },\n      {\n        long: 'Cojedes',\n        short: 'H',\n      },\n      {\n        long: 'Delta Amacuro',\n        short: 'Y',\n      },\n      {\n        long: 'Falcón',\n        short: 'I',\n      },\n      {\n        long: 'Guárico',\n        short: 'J',\n      },\n      {\n        long: 'Lara',\n        short: 'K',\n      },\n      {\n        long: 'Mérida',\n        short: 'L',\n      },\n      {\n        long: 'Miranda',\n        short: 'M',\n      },\n      {\n        long: 'Monagas',\n        short: 'N',\n      },\n      {\n        long: 'Nueva Esparta',\n        short: 'O',\n      },\n      {\n        long: 'Portuguesa',\n        short: 'P',\n      },\n      {\n        long: 'Sucre',\n        short: 'R',\n      },\n      {\n        long: 'Táchira',\n        short: 'S',\n      },\n      {\n        long: 'Trujillo',\n        short: 'T',\n      },\n      {\n        long: 'Vargas',\n        short: 'X',\n      },\n      {\n        long: 'Yaracuy',\n        short: 'U',\n      },\n      {\n        long: 'Zulia',\n        short: 'V',\n      },\n    ],\n  },\n  {\n    long: 'Vietnam',\n    short: 'VN',\n    regions: [\n      {\n        long: 'An Giang',\n        short: '44',\n      },\n      {\n        long: 'Bà Rịa - Vũng Tàu',\n        short: '43',\n      },\n      {\n        long: 'Bình Dương',\n        short: '57',\n      },\n      {\n        long: 'Bình Phước',\n        short: '58',\n      },\n      {\n        long: 'Bình Định',\n        short: '31',\n      },\n      {\n        long: 'Bình Thuận',\n        short: '40',\n      },\n      {\n        long: 'Bạc Liêu',\n        short: '55',\n      },\n      {\n        long: 'Bắc Giang',\n        short: '54',\n      },\n      {\n        long: 'Bắc Kạn',\n        short: '53',\n      },\n      {\n        long: 'Bắc Ninh',\n        short: '56',\n      },\n      {\n        long: 'Bến Tre',\n        short: '50',\n      },\n      {\n        long: 'Cao Bằng',\n        short: '04',\n      },\n      {\n        long: 'Cà Mau',\n        short: 'undefined',\n      },\n      {\n        long: 'Đắk Lắk',\n        short: '33',\n      },\n      {\n        long: 'Đắk Nông',\n        short: '72',\n      },\n      {\n        long: 'Điện Biên',\n        short: '71',\n      },\n      {\n        long: 'Đồng Nai',\n        short: '39',\n      },\n      {\n        long: 'Đồng Tháp',\n        short: '45',\n      },\n      {\n        long: 'Gia Lai',\n        short: '30',\n      },\n      {\n        long: 'Hà Giang',\n        short: '03',\n      },\n      {\n        long: 'Hà Nam',\n        short: '63',\n      },\n      {\n        long: 'Hà Tây',\n        short: '15',\n      },\n      {\n        long: 'Hà Tĩnh',\n        short: '23',\n      },\n      {\n        long: 'Hải Dương',\n        short: '61',\n      },\n      {\n        long: 'Hậu Giang',\n        short: '73',\n      },\n      {\n        long: 'Hòa Bình',\n        short: '14',\n      },\n      {\n        long: 'Hưng Yên',\n        short: '66',\n      },\n      {\n        long: 'Khánh Hòa',\n        short: '34',\n      },\n      {\n        long: 'Kiên Giang',\n        short: '47',\n      },\n      {\n        long: 'Kon Tum',\n        short: '28',\n      },\n      {\n        long: 'Lai Châu',\n        short: '01',\n      },\n      {\n        long: 'Lâm Đồng',\n        short: '35',\n      },\n      {\n        long: 'Lạng Sơn',\n        short: '09',\n      },\n      {\n        long: 'Lào Cai',\n        short: '02',\n      },\n      {\n        long: 'Long An',\n        short: '41',\n      },\n      {\n        long: 'Nam Định',\n        short: '67',\n      },\n      {\n        long: 'Nghệ An',\n        short: '22',\n      },\n      {\n        long: 'Ninh Bình',\n        short: '18',\n      },\n      {\n        long: 'Ninh Thuận',\n        short: '36',\n      },\n      {\n        long: 'Phú Thọ',\n        short: '68',\n      },\n      {\n        long: 'Phú Yên',\n        short: '32',\n      },\n      {\n        long: 'Quảng Bình',\n        short: '24',\n      },\n      {\n        long: 'Quảng Nam',\n        short: '27',\n      },\n      {\n        long: 'Quảng Ngãi',\n        short: '29',\n      },\n      {\n        long: 'Quảng Ninh',\n        short: '13',\n      },\n      {\n        long: 'Quảng Trị',\n        short: '25',\n      },\n      {\n        long: 'Sóc Trăng',\n        short: '52',\n      },\n      {\n        long: 'Sơn La',\n        short: '05',\n      },\n      {\n        long: 'Tây Ninh',\n        short: '37',\n      },\n      {\n        long: 'Thái Bình',\n        short: '20',\n      },\n      {\n        long: 'Thái Nguyên',\n        short: '69',\n      },\n      {\n        long: 'Thanh Hóa',\n        short: '21',\n      },\n      {\n        long: 'Thừa Thiên–Huế',\n        short: '26',\n      },\n      {\n        long: 'Tiền Giang',\n        short: '46',\n      },\n      {\n        long: 'Trà Vinh',\n        short: '51',\n      },\n      {\n        long: 'Tuyên Quang',\n        short: '07',\n      },\n      {\n        long: 'Vĩnh Long',\n        short: '49',\n      },\n      {\n        long: 'Vĩnh Phúc',\n        short: '70',\n      },\n      {\n        long: 'Yên Bái',\n        short: '06',\n      },\n      {\n        long: 'Cần Thơ',\n        short: 'CT',\n      },\n      {\n        long: 'Đà Nẵng',\n        short: 'DN',\n      },\n      {\n        long: 'Hà Nội',\n        short: 'HN',\n      },\n      {\n        long: 'Hải Phòng',\n        short: 'HP',\n      },\n      {\n        long: 'Hồ Chí Minh (Sài Gòn)',\n        short: 'SG',\n      },\n    ],\n  },\n  {\n    long: 'Virgin Islands, British',\n    short: 'VG',\n    regions: [\n      {\n        long: 'Anegada',\n        short: 'ANG',\n      },\n      {\n        long: 'Jost Van Dyke',\n        short: 'JVD',\n      },\n      {\n        long: 'Tortola',\n        short: 'TTA',\n      },\n      {\n        long: 'Virgin Gorda',\n        short: 'VGD',\n      },\n    ],\n  },\n  {\n    long: 'Virgin Islands, U.S.',\n    short: 'VI',\n    regions: [\n      {\n        long: 'St. Thomas',\n        short: 'STH',\n      },\n      {\n        long: 'St. John',\n        short: 'SJO',\n      },\n      {\n        long: 'St. Croix',\n        short: 'SCR',\n      },\n    ],\n  },\n  {\n    long: 'Wallis and Futuna',\n    short: 'WF',\n    regions: [\n      {\n        long: 'Alo',\n        short: 'ALO',\n      },\n      {\n        long: 'Sigave',\n        short: 'SIG',\n      },\n      {\n        long: 'Wallis',\n        short: 'WAL',\n      },\n    ],\n  },\n  {\n    long: 'Western Sahara',\n    short: 'EH',\n    regions: [\n      {\n        long: 'Es Smara',\n        short: 'ESM',\n      },\n      {\n        long: 'Boujdour',\n        short: 'BOD',\n      },\n      {\n        long: 'Laâyoune',\n        short: 'LAA',\n      },\n      {\n        long: 'Aousserd',\n        short: 'AOU',\n      },\n      {\n        long: 'Oued ed Dahab',\n        short: 'OUD',\n      },\n    ],\n  },\n  {\n    long: 'Yemen',\n    short: 'YE',\n    regions: [\n      {\n        long: 'Abyān',\n        short: 'AB',\n      },\n      {\n        long: \"'Adan\",\n        short: 'AD',\n      },\n      {\n        long: \"Aḑ Ḑāli'\",\n        short: 'DA',\n      },\n      {\n        long: \"Al Bayḑā'\",\n        short: 'BA',\n      },\n      {\n        long: 'Al Ḩudaydah',\n        short: 'HU',\n      },\n      {\n        long: 'Al Jawf',\n        short: 'JA',\n      },\n      {\n        long: 'Al Mahrah',\n        short: 'MR',\n      },\n      {\n        long: 'Al Maḩwīt',\n        short: 'MW',\n      },\n      {\n        long: \"'Amrān\",\n        short: 'AM',\n      },\n      {\n        long: 'Dhamār',\n        short: 'DH',\n      },\n      {\n        long: 'Ḩaḑramawt',\n        short: 'HD',\n      },\n      {\n        long: 'Ḩajjah',\n        short: 'HJ',\n      },\n      {\n        long: 'Ibb',\n        short: 'IB',\n      },\n      {\n        long: 'Laḩij',\n        short: 'LA',\n      },\n      {\n        long: \"Ma'rib\",\n        short: 'MA',\n      },\n      {\n        long: 'Raymah',\n        short: 'RA',\n      },\n      {\n        long: 'Şā‘dah',\n        short: 'SD',\n      },\n      {\n        long: \"Şan‘ā'\",\n        short: 'SN',\n      },\n      {\n        long: 'Shabwah',\n        short: 'SH',\n      },\n      {\n        long: 'Tā‘izz',\n        short: 'TA',\n      },\n    ],\n  },\n  {\n    long: 'Zambia',\n    short: 'ZM',\n    regions: [\n      {\n        long: 'Central',\n        short: '02',\n      },\n      {\n        long: 'Copperbelt',\n        short: '08',\n      },\n      {\n        long: 'Eastern',\n        short: '03',\n      },\n      {\n        long: 'Luapula',\n        short: '04',\n      },\n      {\n        long: 'Lusaka',\n        short: '09',\n      },\n      {\n        long: 'Northern',\n        short: '05',\n      },\n      {\n        long: 'North-Western',\n        short: '06',\n      },\n      {\n        long: 'Southern',\n        short: '07',\n      },\n      {\n        long: 'Western',\n        short: '01',\n      },\n    ],\n  },\n  {\n    long: 'Zimbabwe',\n    short: 'ZW',\n    regions: [\n      {\n        long: 'Bulawayo',\n        short: 'BU',\n      },\n      {\n        long: 'Harare',\n        short: 'HA',\n      },\n      {\n        long: 'Manicaland',\n        short: 'MA',\n      },\n      {\n        long: 'Mashonaland Central',\n        short: 'MC',\n      },\n      {\n        long: 'Mashonaland East',\n        short: 'ME',\n      },\n      {\n        long: 'Mashonaland West',\n        short: 'MW',\n      },\n      {\n        long: 'Masvingo',\n        short: 'MV',\n      },\n      {\n        long: 'Matabeleland North',\n        short: 'MN',\n      },\n      {\n        long: 'Matabeleland South',\n        short: 'MS',\n      },\n      {\n        long: 'Midlands',\n        short: 'MI',\n      },\n    ],\n  },\n]\n","import React, { useState } from 'react'\nimport { FileUploader } from '@mobilizeyourtech/vision-core-react'\nimport { ImageCroppingTool } from './ImageCroppingTool'\nimport { CButton } from '@coreui/react'\nimport classnames from 'classnames'\nimport {\n  FILE_UPLOAD_MAX_SIZE_BYTES,\n  FILE_UPLOAD_MAX_SIZE_CONTENT,\n  UNCLASSIFIED_WARNING_PROMPT,\n} from '../../lib/helpers/utils'\n\nexport type TProps = {\n  onFile: (file: File | undefined) => void\n  value: File | string | undefined\n  required?: boolean\n  'data-testid'?: string\n  hideUploaderPlaceholder?: boolean\n}\nenum Mode {\n  UPLOAD,\n  EDIT,\n}\nexport const SingleImageUploader = (props: TProps) => {\n  const [mode, setMode] = useState<Mode>(props.value ? Mode.EDIT : Mode.UPLOAD)\n  const [value, setValue] = useState<File | string | undefined>(props.value)\n  const [isValidationSuspended, setIsValidationSuspended] = useState<boolean>(false)\n\n  const renderUploader = () => {\n    return (\n      <FileUploader\n        onDrop={(acceptedFiles) => {\n          setValue(acceptedFiles[0])\n          setMode(Mode.EDIT)\n        }}\n        text=\"Drop image file or click to upload.\"\n        subText={UNCLASSIFIED_WARNING_PROMPT}\n        additionalText={FILE_UPLOAD_MAX_SIZE_CONTENT}\n        accept={[\n          { value: 'image/jpg', displayValue: 'JPEG' },\n          { value: 'image/jpeg', displayValue: 'JPEG' },\n          { value: 'image/png', displayValue: 'PNG' },\n        ]}\n        hidePlaceholder={props.hideUploaderPlaceholder}\n        maxSize={FILE_UPLOAD_MAX_SIZE_BYTES}\n      />\n    )\n  }\n\n  const renderImageCroppingTool = () => {\n    return (\n      <ImageCroppingTool\n        image={value!}\n        onCrop={(value, suspense) => {\n          setIsValidationSuspended(suspense)\n          setValue(value)\n          props.onFile(value)\n        }}\n      />\n    )\n  }\n\n  const render = () => {\n    switch (mode) {\n      case Mode.UPLOAD:\n        return renderUploader()\n      case Mode.EDIT:\n        return renderImageCroppingTool()\n    }\n  }\n\n  return (\n    <section\n      className={classnames('SingleImageUploader d-flex h-100', {\n        ValidatedInput: props.required,\n        'form-control': props.required,\n        'is-valid': props.required && props.value && !isValidationSuspended,\n        'validation-suspended': isValidationSuspended,\n      })}\n      data-testid={props['data-testid']}\n    >\n      <div className=\"w-100\">\n        {props.required && (\n          <i\n            className={classnames('fas fa-asterisk required-icon', {\n              valid: !!props.value,\n            })}\n          />\n        )}\n        {render()}\n        <div className=\"image-tool-container\">\n          <CButton\n            data-testid=\"select-upload-mode\"\n            className=\"icon-button\"\n            onClick={() => {\n              setMode(Mode.UPLOAD)\n              props.onFile(undefined)\n            }}\n          >\n            <i className={classnames('fas fa-file-upload', { isActive: mode === Mode.UPLOAD })} />\n          </CButton>\n        </div>\n      </div>\n\n      {isValidationSuspended && (\n        <div className={'h-100 d-flex align-items-center'}>\n          <span className={'validation-suspense ps-2'}>\n            <i className=\"fa fa-spinner fa-spin\" />\n          </span>\n        </div>\n      )}\n    </section>\n  )\n}\n","import React from 'react'\nimport { CAlert } from '@coreui/react'\n\ntype TProps = {\n  color?: string\n  message: string | undefined\n  onToggleAlert?: () => void\n  'data-testid'?: string\n}\n\nexport const Alert = (props: TProps) => {\n  return (\n    <CAlert\n      data-testid={`${props['data-testid'] ? props['data-testid'] + '-' : ''}alert`}\n      visible\n      variant=\"solid\"\n      color={props.color || 'info'}\n    >\n      <p>{props.message}</p>\n      {props.onToggleAlert && (\n        <button\n          type=\"button\"\n          className=\"btn-close btn-close-white\"\n          aria-label=\"Close\"\n          data-testid=\"close-alert-btn\"\n          onClick={() => props.onToggleAlert!()}\n        />\n      )}\n    </CAlert>\n  )\n}\n","import React, { useState, useCallback, useEffect } from 'react'\nimport Cropper from 'react-easy-crop'\nimport { Point, Area } from 'react-easy-crop/types'\nimport { ApplicationStore, NotificationStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { useDebouncedCallback } from 'use-debounce'\n\ntype TProps = {\n  image: File | string\n  onCrop: (file: File | undefined, suspense: boolean) => void\n  notificationStore?: NotificationStore\n  debounceCropMs?: number\n}\n\nexport const ImageCroppingTool = inject(ApplicationStore.names.notificationStore)(\n  observer((props: TProps) => {\n    const [croppedPixels, onCropPixels] = useState<Area | undefined>(undefined)\n    const [zoom, onZoomChange] = useState<number>(1)\n    const [rotation, onRotationChange] = useState<number>(0)\n    const [crop, onCropChange] = useState<Point>({ x: 0, y: 0 })\n    const [_image] = useState<string>(\n      props.image instanceof File ? URL.createObjectURL(props.image) : props.image,\n    )\n\n    const doPerformCrop = async () => {\n      try {\n        const blob: Blob | null = await getCroppedImageBlob()\n        const file: File | null = blob && blobToFile(blob)\n        props.onCrop(file ? file : undefined, false)\n      } catch (err) {\n        handleRejection()\n      }\n    }\n\n    const debouncedCrop = useDebouncedCallback(\n      // function\n      doPerformCrop,\n      // delay in ms\n      props.debounceCropMs == null ? 300 : props.debounceCropMs,\n    )\n\n    const cropImage = () => {\n      props.onCrop(undefined, true)\n      debouncedCrop()\n    }\n\n    useEffect(() => {\n      croppedPixels && cropImage()\n    }, [croppedPixels, crop, rotation, zoom])\n\n    const blobToFile = (blob: Blob) => {\n      return new File([blob], 'image.jpg', {\n        type: 'image/jpeg',\n      })\n    }\n\n    const onCropComplete = useCallback((croppedArea: Area, croppedAreaPixels: Area) => {\n      onCropPixels(croppedAreaPixels)\n    }, [])\n\n    const createImage = async (url: string) => {\n      const imagePromise: Promise<HTMLImageElement | undefined> = new Promise((resolve, reject) => {\n        const newImage = new Image()\n        newImage.src = url\n        newImage.onload = () => resolve(newImage)\n        newImage.onerror = () => {\n          handleRejection()\n          reject('Error loading image')\n        }\n      })\n      return imagePromise\n    }\n\n    const handleRejection = () => {\n      return props.notificationStore?.setNotificationMessage(\n        'Something went wrong while processing image, please try again later',\n        'error',\n        3000,\n      )\n    }\n\n    const getCroppedImageBlob = async (\n      flip = { horizontal: false, vertical: false },\n    ): Promise<Blob | null> => {\n      const image = await createImage(_image)\n      const canvas: HTMLCanvasElement = document.createElement('canvas')\n      const ctx: CanvasRenderingContext2D | null = canvas.getContext('2d')\n\n      if (!ctx || !croppedPixels?.width || !croppedPixels?.height) {\n        return null\n      }\n\n      // calculate rotation radian angle\n      const rotationRadian = (rotation * Math.PI) / 180\n      const rotateSize = (width: number, height: number, rotation: number) => {\n        return {\n          width:\n            Math.abs(Math.cos(rotationRadian) * width) +\n            Math.abs(Math.sin(rotationRadian) * height),\n          height:\n            Math.abs(Math.sin(rotationRadian) * width) +\n            Math.abs(Math.cos(rotationRadian) * height),\n        }\n      }\n\n      if (image) {\n        // calculate bounding box of the rotated image\n        const { width: bBoxWidth, height: bBoxHeight } = rotateSize(\n          image.width,\n          image.height,\n          rotation,\n        )\n\n        // set canvas size to match the bounding box\n        canvas.width = bBoxWidth\n        canvas.height = bBoxHeight\n\n        // translate canvas context to a central location to allow rotating and flipping around the center\n        ctx.translate(bBoxWidth / 2, bBoxHeight / 2)\n        ctx.rotate(rotationRadian)\n        ctx.scale(flip.horizontal ? -1 : 1, flip.vertical ? -1 : 1)\n        ctx.translate(-image.width / 2, -image.height / 2)\n\n        // Transparent background\n        ctx.fillStyle = 'rgba(255, 255, 255, 1)'\n        ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n        // draw rotated image\n        ctx.drawImage(image, 0, 0)\n      }\n\n      // croppedAreaPixels values are bounding box relative\n      // extract the cropped image using these values\n      const data = ctx.getImageData(\n        croppedPixels.x,\n        croppedPixels.y,\n        croppedPixels.width,\n        croppedPixels.height,\n      )\n\n      // set canvas width to final desired crop size - this will clear existing context\n      canvas.width = croppedPixels.width\n      canvas.height = croppedPixels.height\n\n      // paste generated rotate image at the top left corner\n      ctx.putImageData(data, 0, 0)\n\n      // As a blob\n      const blob: Promise<Blob | null> = new Promise((resolve) => {\n        canvas?.toBlob((blob) => {\n          resolve(blob)\n        }, 'image/jpeg')\n      })\n\n      return blob\n    }\n\n    return (\n      <section className={'ImageCroppingTool isActive'} data-testid=\"image-cropping-tool\">\n        <div className=\"cropping-tools-container\">\n          <div className=\"cropper-container\">\n            <Cropper\n              image={_image}\n              crop={crop}\n              zoom={zoom}\n              rotation={rotation}\n              aspect={3 / 3}\n              onCropChange={onCropChange}\n              onCropComplete={onCropComplete}\n              onZoomChange={onZoomChange}\n              onRotationChange={onRotationChange}\n            />\n          </div>\n        </div>\n      </section>\n    )\n  }),\n)\n","import { countryRegionData } from './countryRegionData'\n\nexport const getCountryShort = (short: string) => countryRegionData.find((e) => e.short === short)\nexport const getCountryLong = (long: string) => countryRegionData.find((e) => e.long === long)\n","import React, { InputHTMLAttributes } from 'react'\nimport { CFormFeedback, CFormSelect } from '@coreui/react'\nimport classNames from 'classnames'\nimport { useValidation } from '../../lib/hooks'\nimport { CFormSelectProps } from '@coreui/react/dist/components/form/CFormSelect'\n\nexport type ValidatedSelectProps<P> = Omit<P, 'onChange' | 'required' | 'size'> & {\n  value?: string\n  required?: boolean\n  validate: (v: string) => string | undefined\n  onChange: (v: string | undefined) => any\n  renderInvalidMessage?: (invalidReason: string | undefined) => string | undefined\n}\n\n/**\n * Helper wrapper component around CoreUI CFormInput to consistently apply more modern reactive validation\n * @param props\n * @constructor\n */\nexport function ValidatedCFormSelect(\n  props: ValidatedSelectProps<CFormSelectProps & InputHTMLAttributes<HTMLSelectElement>>,\n) {\n  const { value, validate, renderInvalidMessage, onChange, required, ...rest } = props\n\n  const {\n    value: _value,\n    setValue,\n    isValid,\n    invalidReason,\n    showInvalidReason,\n    invokeValidation,\n    invalidMessage,\n  } = useValidation({\n    value: value || '',\n    validate,\n    required,\n    onChange,\n    renderInvalidMessage,\n  })\n\n  return (\n    <section className={'ValidatedInput'}>\n      {props.required && (\n        <i\n          data-testid=\"test-required-icon\"\n          className={classNames('fas fa-asterisk required-icon', {\n            invalid: showInvalidReason && invalidReason,\n            valid: isValid,\n          })}\n        />\n      )}\n      <CFormSelect\n        {...rest}\n        value={_value}\n        onChange={({ target: { value: v } }) => setValue(v)}\n        valid={isValid}\n        invalid={showInvalidReason && !!invalidReason}\n        onBlur={() => invokeValidation()}\n        required={required}\n      >\n        {rest.children}\n      </CFormSelect>\n\n      {showInvalidReason && (\n        <CFormFeedback invalid>{invalidReason !== 'required' && invalidMessage}</CFormFeedback>\n      )}\n    </section>\n  )\n}\n","import { isTCountry, isTRegion, TCountry, TRegion } from '../../lib/geography/countryRegionData'\nimport React from 'react'\nimport { getCountryShort } from '../../lib/geography/utils'\nimport { ValidatedCFormSelect } from './ValidatedCFormSelect'\n\ntype TProps = {\n  onSelect: (val: TRegion | undefined) => void\n  country?: string | TCountry\n  value?: string | TRegion\n  id?: string\n  required?: boolean\n  'data-testid'?: string\n}\nexport const RegionSelectInput = (props: TProps) => {\n  const getCountry = () => {\n    if (props.country && !props.value) {\n      return isTCountry(props.country) ? props.country.short : props.country\n    }\n    return 'US'\n  }\n\n  return (\n    <ValidatedCFormSelect\n      aria-label=\"region select\"\n      id={props.id}\n      onChange={(value) => {\n        value === '-1'\n          ? props.onSelect(undefined)\n          : props.onSelect(getCountryShort(getCountry())!.regions.find((r) => r.short === value)!)\n      }}\n      value={isTRegion(props.value) ? props.value.short : props.value || ''}\n      required={props.required}\n      data-testid={props['data-testid'] ? props['data-testid'] : 'region-input-select'}\n      validate={(v) => (v ? undefined : 'required')}\n    >\n      <option value=\"-1\">Select State/Province</option>\n      {getCountryShort(getCountry())!.regions.map((r) => (\n        <option key={r.short} value={r.short}>\n          {r.long} ({r.short})\n        </option>\n      ))}\n    </ValidatedCFormSelect>\n  )\n}\n","import { countryRegionData, isTCountry, TCountry } from '../../lib/geography/countryRegionData'\nimport React from 'react'\nimport { ValidatedCFormSelect } from './ValidatedCFormSelect'\n\ntype TProps = {\n  onSelect: (val: TCountry | undefined) => void\n  value?: string | TCountry\n  id?: string\n  required?: boolean\n  'data-testid'?: string\n}\nexport const CountrySelectInput = (props: TProps) => {\n  return (\n    <ValidatedCFormSelect\n      aria-label=\"country select\"\n      id={props.id}\n      onChange={(value) => {\n        value === '-1'\n          ? props.onSelect(undefined)\n          : props.onSelect(countryRegionData.find((r) => r.short === value)!)\n      }}\n      value={isTCountry(props.value) ? props.value.short : props.value || ''}\n      required={props.required}\n      data-testid={props['data-testid'] ? props['data-testid'] : 'country-input-select'}\n      validate={(v) => (v ? undefined : 'required')}\n    >\n      <option>Select Country</option>\n      {countryRegionData.map((r) => (\n        <option key={r.short} value={r.short}>\n          {r.long} ({r.short})\n        </option>\n      ))}\n    </ValidatedCFormSelect>\n  )\n}\n","import React, { useEffect } from 'react'\nimport { getTimezoneOptions, i18nTimezones, ITimezone, parseTimezone } from '../../lib/time'\nimport { CFormSelectProps } from '@coreui/react/dist/components/form/CFormSelect'\nimport { ValidatedCFormSelect } from './ValidatedCFormSelect'\n\nexport type ILabelStyle = 'original' | 'altName' | 'abbrev'\n\ntype TProps = {\n  value?: ITimezone\n  onSelect: (option: ITimezone | undefined) => void\n  placeholder?: string\n  labelStyle?: ILabelStyle\n} & Omit<CFormSelectProps, 'value' | 'onSelect'>\n\nexport const TimezoneSelect = (props: TProps) => {\n  const timezones = i18nTimezones\n\n  const { value, onSelect, placeholder, labelStyle, ...rest } = props\n\n  useEffect(() => {\n    if (!props.value) {\n      const defaultTz = parseTimezone(Intl.DateTimeFormat().resolvedOptions().timeZone, getOptions)\n      defaultTz && props.onSelect(defaultTz)\n    }\n  }, [props.value])\n\n  const getOptions = React.useMemo(() => {\n    return getTimezoneOptions(labelStyle)\n  }, [labelStyle, timezones])\n\n  const validate = (v: string) => {\n    if (rest.required) {\n      return v ? undefined : 'required'\n    }\n  }\n\n  return (\n    <section className=\"TimezoneSelect\">\n      <ValidatedCFormSelect\n        {...rest}\n        aria-label=\"timezone select\"\n        onChange={(v) => {\n          props.onSelect(parseTimezone(v!, getOptions))\n        }}\n        value={(!!props.value && parseTimezone(props.value, getOptions)?.value) || ''}\n        validate={validate}\n      >\n        {getOptions.map((o) => {\n          return (\n            <option\n              key={o.value}\n              value={o.value}\n              data-testid={`${\n                (rest as any)['data-testid'] ? (rest as any)['data-testid'] + '-' : ''\n              }option-${o.value}`}\n            >\n              {o.label.split('_').join(' ')}\n            </option>\n          )\n        })}\n      </ValidatedCFormSelect>\n    </section>\n  )\n}\n","import { CFormInputProps } from '@coreui/react/dist/components/form/CFormInput'\nimport React, { InputHTMLAttributes } from 'react'\nimport { CFormFeedback, CFormInput } from '@coreui/react'\nimport classNames from 'classnames'\nimport { useValidation } from '../../lib/hooks'\n\nexport type ValidatedInputProps<P> = Omit<P, 'onChange' | 'required'> & {\n  value?: string\n  required?: boolean\n  asterisk?: string\n  validate: (v: string) => string | undefined\n  onChange: (v: string | undefined) => any\n  renderInvalidMessage: (invalidReason: string | undefined) => string | undefined\n}\n\n/**\n * Helper wrapper component around CoreUI CFormInput to consistently apply more modern reactive validation\n * @param props\n * @constructor\n */\nexport function ValidatedCFormInput(\n  props: ValidatedInputProps<CFormInputProps & InputHTMLAttributes<HTMLInputElement>>,\n) {\n  const { value, validate, renderInvalidMessage, onChange, required, ...rest } = props\n\n  const {\n    value: _value,\n    setValue,\n    isValid,\n    invalidReason,\n    showInvalidReason,\n    invokeValidation,\n    invalidMessage,\n  } = useValidation({\n    value: value || '',\n    validate,\n    required,\n    onChange,\n    renderInvalidMessage,\n  })\n\n  return (\n    <section className={'ValidatedInput'}>\n      {props.required && (\n        <i\n          className={classNames('fas fa-asterisk required-icon', {\n            invalid: showInvalidReason && invalidReason,\n            valid: isValid,\n          })}\n          data-testid={'test-required-icon'}\n        />\n      )}\n      <CFormInput\n        {...rest}\n        value={_value}\n        onChange={({ target: { value: v } }) => {\n          setValue(v)\n        }}\n        valid={required ? isValid : !!_value && isValid}\n        invalid={showInvalidReason && !!invalidReason}\n        onBlur={() => invokeValidation()}\n        required={required}\n      />\n      {showInvalidReason && (\n        <CFormFeedback invalid>{invalidReason !== 'required' && invalidMessage}</CFormFeedback>\n      )}\n    </section>\n  )\n}\n","import React, { InputHTMLAttributes } from 'react'\nimport { CFormFeedback, CFormTextarea } from '@coreui/react'\nimport classNames from 'classnames'\nimport { useValidation } from '../../lib/hooks'\nimport { CFormTextareaProps } from '@coreui/react/dist/components/form/CFormTextarea'\n\nexport type ValidatedInputProps<P> = Omit<P, 'onChange' | 'required'> & {\n  value?: string\n  required?: boolean\n  asterisk?: string\n  validate: (v: string) => string | undefined\n  onChange: (v: string | undefined) => any\n  renderInvalidMessage: (invalidReason: string | undefined) => string | undefined\n}\n\n/**\n * Helper wrapper component around CoreUI CFormInput to consistently apply more modern reactive validation\n * @param props\n * @constructor\n */\nexport function ValidatedCFormTextArea(\n  props: ValidatedInputProps<CFormTextareaProps & InputHTMLAttributes<HTMLTextAreaElement>>,\n) {\n  const { value, validate, renderInvalidMessage, onChange, required, ...rest } = props\n\n  const {\n    value: _value,\n    setValue,\n    isValid,\n    invalidReason,\n    showInvalidReason,\n    invokeValidation,\n    invalidMessage,\n  } = useValidation({\n    value: value || '',\n    validate,\n    required,\n    onChange,\n    renderInvalidMessage,\n  })\n\n  return (\n    <section className={'ValidatedInput'}>\n      {props.required && (\n        <i\n          className={classNames('fas fa-asterisk required-icon', {\n            invalid: showInvalidReason && invalidReason,\n            valid: isValid,\n          })}\n          data-testid={'test-required-icon'}\n        />\n      )}\n      <CFormTextarea\n        {...rest}\n        value={_value}\n        onChange={({ target: { value: v } }) => {\n          setValue(v)\n        }}\n        valid={isValid}\n        invalid={showInvalidReason && !!invalidReason}\n        onBlur={() => invokeValidation()}\n        required={required}\n      />\n      {showInvalidReason && (\n        <CFormFeedback invalid>{invalidReason !== 'required' && invalidMessage}</CFormFeedback>\n      )}\n    </section>\n  )\n}\n","import React, { useEffect, useState } from 'react'\nimport { ApplicationStore, NotificationStore, UserData } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { CDropdownProps } from '@coreui/react/dist/components/dropdown/CDropdown'\nimport { ValidatedCFormSelect } from './ValidatedCFormSelect'\n\ntype TProps = Omit<\n  CDropdownProps & React.RefAttributes<HTMLDivElement | HTMLLIElement>,\n  'value' | 'onChange'\n> & {\n  value?: UserData\n  onChange: (value: UserData | undefined) => void\n  getDataFunction: () => Promise<Array<UserData>>\n  notificationStore?: NotificationStore\n}\n\nexport const SingleUserSelect = inject(\n  ApplicationStore.names.accountStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [users, setUsers] = useState<Array<UserData>>([])\n    const { getDataFunction } = props\n\n    useEffect(() => {\n      getDataFunction()\n        .then((data) => {\n          setUsers(data)\n        })\n        .catch((err) => {\n          props.notificationStore?.setNotificationMessage(\n            'Failed to get user data. Please try again',\n            'danger',\n            3000,\n          )\n          // TODO notificationStore\n        })\n    }, [])\n\n    const makeUserLabel = (user: UserData) => {\n      return `${user.firstName} ${user.lastName}`\n    }\n\n    const handleChange = (id: string | undefined) => {\n      props.onChange(users?.find((u) => u.id.toString() === id))\n      return\n    }\n\n    return (\n      <ValidatedCFormSelect\n        aria-label=\"select point of contact\"\n        id={props.id}\n        onChange={(v) => handleChange(v)}\n        value={props.value?.id.toString()}\n        required\n        data-testid={'single-user-select'}\n        validate={(v) => (v ? undefined : 'required')}\n      >\n        {users?.map((u) => (\n          <option key={u.id} value={u.id}>\n            {makeUserLabel(u)}\n          </option>\n        ))}\n      </ValidatedCFormSelect>\n    )\n  }),\n)\n","import React, { useEffect, useState } from 'react'\nimport GooglePlacesAutocomplete, { geocodeByPlaceId } from 'react-google-places-autocomplete'\nimport { arrayContainsAny, objectIsEmpty } from '../../lib/helpers/utils'\nimport { AddressForm } from '../form/fragments'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore } from '../../stores'\nimport GooglePlacesAutocompleteProps from 'react-google-places-autocomplete/build/GooglePlacesAutocomplete.types'\n\nexport type GoogleAddressData = {\n  addressLine1: string\n  addressLine1Parts?: {\n    streetNumber?: string\n    street?: string\n  }\n  addressLine2?: string\n  addressLine3?: string\n  city: string\n  stateOrProvince: string\n  country: string\n  postalCode: string\n}\n\nexport type GoogleSuggestAddressInputProps = {\n  onChange: (value: Partial<GoogleAddressData> | undefined) => void\n  value: Partial<GoogleAddressData>\n  required?: boolean\n  applicationStore?: ApplicationStore\n  isEditForm?: boolean\n  hideManualEntry?: boolean\n  googlePlacesAutoCompleteProps?: Omit<\n    GooglePlacesAutocompleteProps,\n    'apiKey' | 'debounce' | 'minLengthAutocomplete' | 'selectProps'\n  >\n  placeholder?: string\n}\n\n/**\n * Wrapper for google address select\n * @param props\n * @constructor\n */\nexport const GoogleSuggestAddressInput = inject('applicationStore')(\n  observer(\n    ({\n      hideManualEntry,\n      googlePlacesAutoCompleteProps,\n      placeholder = 'Search address...',\n      ...props\n    }: GoogleSuggestAddressInputProps) => {\n      const [googlePlaceData, setGooglePlaceData] = useState<any>()\n      const [rawFormVisible, setRawFormVisible] = useState<boolean>(false)\n\n      useEffect(() => {\n        const func = async () => {\n          if (googlePlaceData) {\n            const geocodeObj =\n              googlePlaceData &&\n              googlePlaceData.value &&\n              (await geocodeByPlaceId(googlePlaceData.value.place_id))\n            const addressObject = geocodeObj && getAddressObject(geocodeObj[0].address_components)\n            props.onChange(addressObject)\n          } else {\n            props.onChange(undefined)\n          }\n        }\n        func()\n      }, [googlePlaceData])\n\n      useEffect(() => {\n        if (props.value && !objectIsEmpty(props.value)) {\n          props.onChange(props.value)\n          setRawFormVisible(true)\n        }\n      }, [props.value])\n\n      const getAddressObject = (\n        address_components: Array<google.maps.GeocoderAddressComponent>,\n      ) => {\n        // TODO Address lines 2 and 3\n        const normalized = address_components.reduce(\n          (agg: Partial<GoogleAddressData>, c: google.maps.GeocoderAddressComponent) => {\n            if (c.types.includes('street_number')) {\n              return {\n                ...agg,\n                addressLine1Parts: { ...agg.addressLine1Parts, streetNumber: c.long_name },\n              }\n            } else if (arrayContainsAny(c.types, ['street_address', 'route'])) {\n              return {\n                ...agg,\n                addressLine1Parts: { ...agg.addressLine1Parts, street: c.long_name },\n              }\n            } else if (c.types.includes('administrative_area_level_1')) {\n              return {\n                ...agg,\n                stateOrProvince: c.short_name,\n              }\n            } else if (c.types.includes('locality')) {\n              return {\n                ...agg,\n                city: c.long_name,\n              }\n            } else if (c.types.includes('country')) {\n              return {\n                ...agg,\n                country: c.short_name,\n              }\n            } else if (c.types.includes('postal_code')) {\n              return {\n                ...agg,\n                postalCode: c.long_name,\n              }\n            }\n            return agg\n          },\n          {} as Partial<GoogleAddressData>,\n        )\n\n        if (normalized.addressLine1Parts?.street && normalized.addressLine1Parts.streetNumber) {\n          normalized.addressLine1 = `${normalized.addressLine1Parts.streetNumber} ${normalized.addressLine1Parts.street}`\n        }\n        return normalized\n      }\n\n      return (\n        <section className=\"GoogleSuggestAddressInput\">\n          {props.required && (\n            <i className=\"fas fa-asterisk required-icon\" data-testid={'test-required-icon'} />\n          )}\n          <div className=\"select-container\">\n            <GooglePlacesAutocomplete\n              {...googlePlacesAutoCompleteProps}\n              apiKey={props.applicationStore!.siteSettings!['googleApiKey']!}\n              debounce={100}\n              minLengthAutocomplete={3}\n              selectProps={{\n                isClearable: true,\n                placeholder: placeholder,\n                class: 'GoogleSuggestSelect',\n                onChange: (result: any) => {\n                  setGooglePlaceData(result)\n                },\n              }}\n            />\n            {!hideManualEntry && !rawFormVisible && (\n              <span\n                className=\"manual-raw-inputs-selector subtle\"\n                data-testid=\"manual-raw-address-selector\"\n                onClick={() => setRawFormVisible(true)}\n              >\n                + Enter address manually\n              </span>\n            )}\n          </div>\n\n          {!hideManualEntry && rawFormVisible && (\n            <AddressForm\n              onChange={(change) => props.onChange(change)}\n              // Value should probably always be present; putting the below code as a preventative measure\n              value={{\n                ...props.value,\n                country: props.value.country || 'US',\n              }}\n              idPrefix=\"headquarters\"\n            />\n          )}\n        </section>\n      )\n    },\n  ),\n)\n","import React, { PropsWithChildren } from 'react'\nimport { CButton, CModal, CModalBody, CModalFooter, CModalHeader, CModalTitle } from '@coreui/react'\n\ntype ConfirmationBoundaryModalProps = {\n  onCancel: () => void\n  onConfirm: () => void\n  isOpen: boolean\n  headerText?: string\n  isSuspended?: boolean\n  isConfirmDisabled?: boolean\n}\nexport const ConfirmationBoundaryModal = (\n  props: PropsWithChildren<ConfirmationBoundaryModalProps>,\n) => {\n  return (\n    <CModal size=\"lg\" alignment=\"center\" visible={props.isOpen} onClose={props.onCancel}>\n      <section\n        data-testid=\"are-you-sure-modal-content\"\n        className=\"confirmation-boundary-modal-content\"\n      >\n        <CModalHeader>\n          <CModalTitle className=\"text-center\">{props.headerText || 'Are you sure?'} </CModalTitle>\n        </CModalHeader>\n        <CModalBody>{props.children}</CModalBody>\n        <CModalFooter>\n          <CButton\n            color=\"primary\"\n            onClick={() => props.onConfirm()}\n            disabled={props.isSuspended || props.isConfirmDisabled}\n            data-testid=\"are-you-sure-confirm-btn\"\n          >\n            {props.isSuspended ? (\n              <i data-testid=\"suspense-spinner\" className=\"fa fa-spinner fa-spin\" />\n            ) : (\n              <i className=\"fas fa-check\" />\n            )}\n            Confirm\n          </CButton>\n          <CButton\n            color=\"secondary\"\n            onClick={() => props.onCancel()}\n            disabled={props.isSuspended}\n            data-testid={'are-you-sure-cancel-btn'}\n            className=\"cancel-button\"\n          >\n            Cancel\n          </CButton>\n        </CModalFooter>\n      </section>\n    </CModal>\n  )\n}\n","import { Link } from 'react-router-dom'\nimport React from 'react'\n\nexport const LegalLinks = () => {\n  return (\n    <div className=\"LegalLinks\">\n      <span>\n        <Link to={'/terms'}>Terms</Link>\n      </span>\n      <span>\n        <Link to={'/privacy'}>Privacy</Link>\n      </span>\n      <span>\n        <Link to={'/anti_spam'}>Anti Spam</Link>\n      </span>\n    </div>\n  )\n}\n","import React from 'react'\n\nexport const SupportLinks = () => {\n  return (\n    <div className=\"LegalLinks\">\n      <span>\n        <a href=\"https://mobilizeyourtech.com/docs\" target=\"_blank\" rel=\"noreferrer\">\n          Support\n        </a>\n      </span>\n    </div>\n  )\n}\n","import { CFormFeedback, CFormInput } from '@coreui/react'\nimport { InputHTMLAttributes, useEffect, useState } from 'react'\nimport { useDebouncedCallback } from 'use-debounce'\nimport classNames from 'classnames'\nimport { CFormInputProps } from '@coreui/react/dist/components/form/CFormInput'\n\nexport type AsyncValidatedTextInputProps = Omit<\n  CFormInputProps & InputHTMLAttributes<HTMLInputElement>,\n  'onChange' | 'value' | 'disabled'\n> & {\n  value?: string\n  validate: (value: string) => Promise<string | undefined>\n  makeValidationMessage: (invalidReason: string) => string | JSX.Element\n  onValue: (value: string | undefined) => void\n  asyncValidationDebounceMs?: number\n  'data-testid'?: string\n  placeholder?: string\n  disabled?: boolean\n}\nexport const AsyncValidatedTextInput = ({\n  value: _value,\n  validate: _validate,\n  onValue,\n  makeValidationMessage,\n  asyncValidationDebounceMs,\n  placeholder,\n  disabled,\n  ...props\n}: AsyncValidatedTextInputProps) => {\n  const [value, setValue] = useState<string | undefined>(_value)\n  const [isValid, setIsValid] = useState<boolean | undefined>()\n  const [invalidReason, setInvalidReason] = useState<string | undefined>()\n\n  useEffect(() => {\n    if (_value) {\n      validate(_value)\n    }\n  }, [])\n\n  const validate = async (value: string) => {\n    const result = await _validate(value)\n    setIsValid(result == null)\n    setInvalidReason(result)\n\n    if (result) {\n      onValue(undefined)\n    } else {\n      onValue(value)\n    }\n  }\n\n  const debouncedValidation = useDebouncedCallback(\n    // function\n    validate,\n    // delay in ms\n    asyncValidationDebounceMs == null ? 300 : asyncValidationDebounceMs,\n  )\n\n  const handleValueChange = (v: string) => {\n    setValue(v)\n    debouncedValidation(v)\n  }\n\n  const onBlur = () => {\n    if (!value) {\n      setIsValid(false)\n      setInvalidReason('required')\n      onValue(undefined)\n      return\n    }\n    validate(value)\n  }\n\n  return (\n    <section className={'ValidatedInput'}>\n      <i\n        className={classNames('fas fa-asterisk required-icon', {\n          invalid: invalidReason,\n          valid: isValid,\n        })}\n        data-testid={'test-required-icon'}\n      />\n      <CFormInput\n        {...props}\n        value={value || ''}\n        onChange={({ target: { value: v } }) => {\n          handleValueChange(v)\n        }}\n        valid={isValid}\n        invalid={!!invalidReason}\n        onBlur={onBlur}\n        required\n        placeholder={placeholder}\n        data-testid={props['data-testid']}\n        disabled={disabled}\n      />\n      {invalidReason && (\n        <CFormFeedback invalid>\n          {invalidReason !== 'required' && makeValidationMessage(invalidReason)}\n        </CFormFeedback>\n      )}\n    </section>\n  )\n}\n","import { CPopoverProps } from '@coreui/react/dist/components/popover/CPopover'\nimport { CPopover } from '@coreui/react'\nimport React from 'react'\n\nexport interface IconPopoverProps extends Omit<CPopoverProps, 'children'> {\n  iconClassName?: string\n}\nexport const IconPopover = ({ iconClassName, ...props }: IconPopoverProps) => {\n  return (\n    <CPopover\n      /* TODO this should be ['click', 'hover', 'focus'] since the component and the typescript supports it. However their prop type is wrong and it causes a console error */\n      trigger={'hover'}\n      {...props}\n    >\n      <i\n        tabIndex={0}\n        className={`clickable ${iconClassName ? iconClassName : 'fas fa-question-circle'}`}\n      />\n    </CPopover>\n  )\n}\n","import React, { PropsWithChildren } from 'react'\nimport { useState } from 'react'\nimport { CustomModal, formatUrlProtocol } from '@mobilizeyourtech/vision-core-react'\nimport { CButton } from '@coreui/react'\nimport parse from 'url-parse'\n\ntype TProps = {\n  url: string\n  linkText?: string\n  'data-testid'?: string\n}\n\nexport const PotentiallyExternalRedirectLink = (props: PropsWithChildren<TProps>) => {\n  const [isModalOpen, setIsModalOpen] = useState<boolean>(false)\n\n  const handleConfirm = () => {\n    const open = window.open()\n    open!.opener = null as any\n    open!.location = formatUrlProtocol(props.url) as any\n  }\n\n  const formatUrlForDisplay = (url: string): string => {\n    let formattedUrl = formatUrlProtocol(url)\n    let parsedUrl = parse(formattedUrl)\n\n    return parsedUrl.origin + parsedUrl.pathname\n  }\n\n  return (\n    <React.Fragment>\n      <span\n        className=\"potentially-external-redirect-link\"\n        data-testid={props['data-testid'] || 'potentially-external-redirect-link'}\n        onClick={() => setIsModalOpen(true)}\n      >\n        {props.children || props.linkText || props.url}\n      </span>\n      <CustomModal\n        isModalOpen={isModalOpen}\n        onClose={() => setIsModalOpen(false)}\n        className=\"potentially-external-redirect-link-confirm-modal\"\n      >\n        <section data-testid=\"potentially-external-redirect-link-confirm-modal\">\n          <div className=\"modal-body px-4\">\n            <h5 className=\"text-center mb-2\">You are being navigated away from this website!</h5>\n\n            <p className=\"text-center\">This link will navigate you away from this website to:</p>\n            <p className=\"text-center text-truncate\">\n              <b>{formatUrlForDisplay(props.url)}</b>\n            </p>\n            <br />\n          </div>\n          <div className=\"modal-footer\">\n            <CButton\n              data-testid=\"potentially-external-redirect-link-confirm-btn\"\n              onClick={() => handleConfirm()}\n            >\n              Take Me There\n            </CButton>\n            <CButton\n              data-testid=\"potentially-external-redirect-link-cancel-btn\"\n              onClick={() => setIsModalOpen(false)}\n              color=\"light\"\n            >\n              Cancel\n            </CButton>\n          </div>\n        </section>\n      </CustomModal>\n    </React.Fragment>\n  )\n}\n","import React, { useState } from 'react'\nimport ReactHtmlParser from 'react-html-parser'\nimport { useDebouncedCallback } from 'use-debounce'\n\ntype TProps = {\n  information?: string | JSX.Element\n  hasInfoIcon?: boolean\n  children?: JSX.Element\n  infoIconClassName?: string\n  className?: string\n  testId?: string\n  ariaLabel: string\n  onClick?: () => void\n  onKeyDown?: (toggle: boolean) => void\n}\n\nexport const CustomInformationPopup = (props: TProps) => {\n  const [infoPopup, toggleInfoPopup] = useState<boolean>(false)\n  const icon = props.hasInfoIcon ? 'fas fa-info-circle' : props.infoIconClassName\n\n  const toggleInfoPopupOpen = useDebouncedCallback((value) => toggleInfoPopup(value), 200)\n\n  const renderInformation = () => {\n    if (typeof props.information === 'string') {\n      return <span>{ReactHtmlParser(props.information)}</span>\n    }\n\n    return props.information\n  }\n\n  const ariaLabel = () => {\n    let str = props.ariaLabel || ''\n    if (typeof props.information === 'string') {\n      return `${str} ${props.information}`\n    }\n    return str\n  }\n\n  return (\n    <section className=\"CustomInformationPopup\">\n      {/* Render children (e.g. header text) to the left side of icon, otherwise we would need too many surgical scss styling  */}\n      {props.hasInfoIcon && props.children && props.children}\n\n      <div\n        className={`info-icon-container ${props.className}`}\n        aria-label={ariaLabel()}\n        tabIndex={0}\n        data-testid={props.testId || 'custom-info-popup-icon'}\n        onClick={props.onClick}\n        onMouseOver={() => toggleInfoPopupOpen(true)}\n        onMouseOut={() => toggleInfoPopupOpen(false)}\n        onKeyDown={({ key: keyPress }) => {\n          if (keyPress === 'Enter') {\n            toggleInfoPopup(true)\n            props.onKeyDown && props.onKeyDown(true)\n          } else {\n            toggleInfoPopup(false)\n            props.onKeyDown && props.onKeyDown(false)\n          }\n        }}\n      >\n        {/* Render children without the icon  */}\n        {!props.hasInfoIcon && props.children && props.children}\n\n        {/* Render default info icon after children to the right */}\n        {props.hasInfoIcon && <i className={icon} />}\n\n        {infoPopup && props.information && (\n          <div className=\"info-panel multiline\" data-testid=\"info-panel\">\n            {renderInformation()}\n          </div>\n        )}\n      </div>\n    </section>\n  )\n}\n","import { PaginationData } from '../../lib/types'\nimport { PaginationParams, ServerPageData } from '../../lib/types/Params'\nimport React, { useEffect, useRef, useState } from 'react'\nimport classnames from 'classnames'\nimport { Spinner } from './Spinner'\nimport { CustomInformationPopup } from './'\n\nexport interface DropdownItem {\n  id: string | number\n  label: string\n  description?: string\n}\n\ntype TProps<T extends DropdownItem> = {\n  getData: (params: PaginationParams) => Promise<ServerPageData<T>>\n  onSelect: (item: T) => void\n  selected?: T\n  placeholder?: string\n  isMultiselect?: boolean\n  scrollLoadOffsetPx?: number // default 50\n  loadingDebounceMs?: number\n  testId?: string\n  className?: string\n  isOpen?: boolean\n  onSelectNone?: () => void\n  infoIconClassName?: string // must match className for CustomInformationPop\n  required?: boolean\n  normalPlaceholderFont?: boolean\n}\n\nexport const ServerBackedDropdown = <T extends DropdownItem>(props: TProps<T>) => {\n  const [selected, setSelected] = useState<T | undefined>(props.selected)\n  const [items, setItems] = useState<Array<T> | undefined>(props.isOpen ? [] : undefined)\n  const [lastPage, setLastPage] = useState<PaginationData | undefined>(undefined)\n  const [isOpen, toggleIsOpen] = useState<boolean>(props.isOpen || false)\n  const [isLoadingData, setIsLoadingData] = useState<boolean>(true)\n  const [loadingError, setLoadingError] = useState<any>(undefined)\n  const dropdownRef = useRef<HTMLDivElement>(null)\n  const itemRefs = useRef<Array<HTMLDivElement>>([])\n  const ref: any = useRef(null)\n\n  const handleClickOutside = (e: MouseEvent | FocusEvent) => {\n    if (ref.current && !ref.current.contains(e.target)) {\n      toggleIsOpen(false)\n    }\n  }\n\n  const handleEscape = (e: KeyboardEvent) => {\n    if (e.key === 'Escape') {\n      toggleIsOpen(false)\n    }\n  }\n\n  const handleOpen = () => {\n    if (!items || items.length === 0) {\n      extendData()\n    }\n  }\n\n  useEffect(() => {\n    if (props.isOpen) {\n      handleOpen()\n    }\n  }, [props.isOpen, props.selected, items])\n\n  useEffect(() => {\n    setSelected(props.selected)\n  }, [props.selected])\n\n  useEffect(() => {\n    if (isOpen) {\n      document.addEventListener('mousedown', handleClickOutside)\n      document.addEventListener('focusin', handleClickOutside)\n      document.addEventListener('keydown', handleEscape)\n    }\n    return () => {\n      document.removeEventListener('mousedown', handleClickOutside)\n      document.removeEventListener('focusin', handleClickOutside)\n      document.removeEventListener('keydown', handleEscape)\n    }\n  }, [isOpen])\n\n  const extendData = async () => {\n    if (!isLoadingData) {\n      setIsLoadingData(true)\n    }\n    try {\n      const data = await props.getData({ page: lastPage ? lastPage.page + 1 : 1, perPage: 10 })\n      setItems([...(items || []), ...data.data])\n      setLastPage(data.pagination)\n    } catch (e) {\n      if (!items) {\n        setItems([])\n      }\n      setLoadingError(e)\n    } finally {\n      setTimeout(() => setIsLoadingData(false), props.loadingDebounceMs || 200)\n    }\n  }\n\n  const onScroll = (e: any) => {\n    if (isLoadingData || loadingError || (lastPage && lastPage.page === lastPage.pages)) {\n      return\n    }\n\n    const offset = props.scrollLoadOffsetPx || 50\n    if (e.target.scrollHeight - e.target.scrollTop >= e.target.clientHeight - offset) {\n      extendData()\n    }\n  }\n\n  const handleClick = () => {\n    if (isOpen) {\n      toggleIsOpen(false)\n    } else {\n      toggleIsOpen(true)\n      if (!items) {\n        extendData()\n      }\n    }\n  }\n\n  const handleSelect = (item: T) => {\n    setSelected(item)\n    props.onSelect(item)\n    toggleIsOpen(false)\n  }\n\n  const handleNoneSelect = () => {\n    if (props.onSelectNone) {\n      setSelected(undefined)\n      props.onSelectNone()\n      toggleIsOpen(false)\n    }\n  }\n\n  const renderItems = () => {\n    if (!items) {\n      return <span />\n    }\n\n    return (\n      <div\n        data-testid={`dropdown-menu${props.testId || ''}`}\n        className={classnames('dropdown-menu', {\n          active: isOpen,\n        })}\n        onScroll={onScroll}\n      >\n        {props.onSelectNone ? (\n          <div\n            data-testid=\"dropdown-item-select-none\"\n            tabIndex={-1}\n            className=\"dropdown-item clickable select-none\"\n            onClick={() => handleNoneSelect()}\n            role=\"option\"\n            aria-selected={false}\n            ref={(element) => {\n              if (element) {\n                itemRefs.current[0] = element\n              }\n            }}\n            onKeyDown={(e) => {\n              if (\n                e.key === 'Enter' &&\n                (e.target && (e.target as HTMLButtonElement)).className !==\n                  `${props.infoIconClassName}-info-icon`\n              ) {\n                handleNoneSelect()\n                dropdownRef.current && dropdownRef.current.focus()\n              } else if (e.key === 'ArrowDown') {\n                e.preventDefault()\n                itemRefs.current.length > 1 && itemRefs.current[1].focus()\n              } else if (e.key === 'ArrowUp') {\n                e.preventDefault()\n                dropdownRef.current && dropdownRef.current.focus()\n              }\n            }}\n          >\n            Select None\n          </div>\n        ) : null}\n        {items.map((i, idx) => {\n          return (\n            <div\n              key={i.id}\n              data-testid={`dropdown-item-${i.label?.toLowerCase() || ''}`}\n              className={classnames('dropdown-item clickable', {\n                selected: selected && i.id === selected.id,\n              })}\n              aria-selected={selected && i.id === selected.id}\n              id={i.label}\n              tabIndex={-1}\n              role=\"option\"\n              onClick={() => handleSelect(i)}\n              ref={(element) => {\n                if (element) {\n                  itemRefs.current[props.onSelectNone ? idx + 1 : idx] = element\n                }\n              }}\n              onKeyDown={(e) => {\n                if (\n                  e.key === 'Enter' &&\n                  (e.target && (e.target as HTMLButtonElement)).className !==\n                    `${props.infoIconClassName}-info-icon`\n                ) {\n                  handleSelect(i)\n                  dropdownRef.current && dropdownRef.current.focus()\n                } else if (e.key === 'ArrowDown') {\n                  e.preventDefault()\n                  let nextItemIndex = props.onSelectNone ? idx + 2 : idx + 1\n                  nextItemIndex < itemRefs.current.length && itemRefs.current[nextItemIndex].focus()\n                } else if (e.key === 'ArrowUp' && idx === 0) {\n                  e.preventDefault()\n                  props.onSelectNone\n                    ? itemRefs.current[0].focus()\n                    : dropdownRef.current && dropdownRef.current.focus()\n                } else if (e.key === 'ArrowUp') {\n                  e.preventDefault()\n                  let previousItemIndex = props.onSelectNone ? idx : idx - 1\n                  previousItemIndex > -1 && itemRefs.current[previousItemIndex].focus()\n                }\n              }}\n            >\n              <div className=\"label-description-container\">\n                <p>{i.label}</p>\n                {i.description && props.infoIconClassName && (\n                  <CustomInformationPopup\n                    infoIconClassName={props.infoIconClassName}\n                    hasInfoIcon={true}\n                    ariaLabel={`More info about ${i.label}`}\n                    information={i.description}\n                  />\n                )}\n              </div>\n\n              {i.description && !props.infoIconClassName && (\n                <span className={'dropdown-option-sublabel subtle'}>{i.description}</span>\n              )}\n            </div>\n          )\n        })}\n        {isLoadingData && (\n          <div\n            data-testid={`dropdown-item-loader${props.testId || ''}`}\n            className=\"dropdown-item no-click dropdown-item-loader\"\n          >\n            <Spinner className=\"dropdown-item-spinner\" />\n          </div>\n        )}\n        {!!loadingError && (\n          <div\n            data-testid={`dropdown-item-error${props.testId || ''}`}\n            className=\"dropdown-item no-click dropdown-item-error\"\n          >\n            <span>Error loading data...</span>\n          </div>\n        )}\n      </div>\n    )\n  }\n\n  return (\n    <div className={`ServerBackedDropdown ${props.className || ''}`} ref={ref}>\n      {props.required && <i className=\"fas fa-asterisk required-icon\"></i>}\n      <div className=\"dropdown\">\n        <div\n          data-testid={`dropdown-input${props.testId || ''}`}\n          className=\"clickable dropdown-input\"\n          ref={dropdownRef}\n          tabIndex={0}\n          role=\"listbox\"\n          onClick={handleClick}\n          aria-required={props.required}\n          onKeyDown={(e) => {\n            if (e.key === 'Enter') {\n              handleClick()\n            } else if (e.key === 'ArrowDown') {\n              e.preventDefault()\n              toggleIsOpen(true)\n              handleOpen()\n              itemRefs.current.length && itemRefs.current[0].focus()\n            }\n          }}\n        >\n          <p\n            className={classnames('dropdown-label', {\n              subtle: !props.normalPlaceholderFont && !selected,\n            })}\n            data-testid={`dropdown-value-or-placeholder${props.testId || ''}`}\n          >\n            {selected ? selected.label : props.placeholder || 'Select option...'}\n          </p>\n          {isOpen ? <i className=\"fas fa-caret-down\" /> : <i className=\"fas fa-caret-up\" />}\n        </div>\n\n        {isOpen && renderItems()}\n      </div>\n    </div>\n  )\n}\n","import { PropsWithChildren, useState } from 'react'\nimport classnames from 'classnames'\n\ntype TProps = {\n  id?: string\n  className?: string\n  headerText?: string\n  isExpanded?: boolean\n  onExpandChange?: (value: boolean) => void\n}\n\n// Line 30 is Expanded and WasExpanded - explains the loss of state\nexport const Collapsible = (props: PropsWithChildren<TProps>) => {\n  const [isExpanded, setIsExpanded] = useState<boolean>(\n    props.isExpanded == null ? true : props.isExpanded,\n  )\n  const chevronToggle = isExpanded ? 'up' : 'down'\n\n  return (\n    <div className={`collapsible ${props.className ? props.className : ''}`}>\n      <div\n        data-testid={`collapsible${props.className ? '-' + props.className : ''}`}\n        className={classnames('collapsible-header', { isExpanded })}\n        onClick={() => {\n          setIsExpanded(!isExpanded)\n          props.onExpandChange && props.onExpandChange(!isExpanded)\n        }}\n        tabIndex={0}\n        onKeyDown={({ key: keyPress }) => {\n          if (keyPress === 'Enter') {\n            setIsExpanded(!isExpanded)\n            props.onExpandChange && props.onExpandChange(!isExpanded)\n          }\n        }}\n      >\n        <h1>{props.headerText}</h1>\n        <i\n          className={`fas fa-chevron-${chevronToggle}`}\n          title=\"Toggle collapsible content\"\n          role=\"img\"\n          data-testid=\"chevron-toggle\"\n        />\n      </div>\n      <div\n        data-testid=\"collapsible-content\"\n        className={`collapsible-content ${isExpanded ? '' : 'd-none'}`}\n      >\n        {props.children}\n      </div>\n    </div>\n  )\n}\n","import {\n  SelectableItem,\n  ServerBackedMultiSelectAutoComplete,\n  PaginationParams,\n  isDirtySelectableItem,\n} from '@mobilizeyourtech/vision-core-react'\nimport { useEffect, useState } from 'react'\nimport { initializeSearchDropdown } from '../custom'\nimport { INaicsCodes } from '../form/fragments/listing'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../stores'\n\nexport interface UrlFederatedNaicsCodeMultiSelectAutoCompleteProps {\n  paramKey: 'naicsCodeIds' | 'awardNaicsCodeIds'\n  dataTestId?: string\n  serverStore?: ServerStore\n  notificationStore?: NotificationStore\n}\nexport const UrlFederatedNaicsCodeMultiSelectAutoComplete = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: UrlFederatedNaicsCodeMultiSelectAutoCompleteProps) => {\n    const [params, setParams] = useQueryParams({\n      [props.paramKey]: withDefault(StringParam, undefined),\n    })\n    const [selectedNaicsCodes, setSelectedNaicsCodes] = useState<Array<INaicsCodes>>([])\n\n    useEffect(() => {\n      if (params[props.paramKey] == null || params[props.paramKey]?.split(',').length === 0) {\n        setSelectedNaicsCodes([])\n      } else {\n        const currentIds = selectedNaicsCodes\n          .map((item) => item.id.toString())\n          .sort()\n          .join(',')\n        const paramIds = params[props.paramKey]!.split(',').sort().join(',')\n\n        if (currentIds !== paramIds) {\n          initializeSearchDropdown(\n            {\n              ids: params[props.paramKey],\n              getDropdownData: getIgniteNaicsCodes,\n              setSelected: setSelectedNaicsCodes,\n              typeForErrorMessage: 'naics codes',\n            },\n            props.notificationStore!,\n          )\n        }\n      }\n    }, [params[props.paramKey]])\n\n    const getIgniteNaicsCodes = async (p: PaginationParams & { ids?: string }) => {\n      return props.serverStore!.getNaicsCodes(p).then((response) => response)\n    }\n\n    const selectNaicsCodes = (selected: Array<INaicsCodes & SelectableItem>) => {\n      setParams({\n        ...params,\n        [props.paramKey]: selected.length === 0 ? undefined : selected.map((e) => e.id).join(','),\n      })\n      setSelectedNaicsCodes(selected)\n    }\n\n    const getSelectedNaicsCodes = () => {\n      return selectedNaicsCodes.map((t) => {\n        return { ...t, label: t.label }\n      })\n    }\n\n    return (\n      <ServerBackedMultiSelectAutoComplete\n        data-testid={props.dataTestId ? props.dataTestId : 'naics'}\n        loadMore={getIgniteNaicsCodes}\n        selections={getSelectedNaicsCodes()}\n        // DirtySelectableItems are only possible when allowDirty === true\n        onChange={(selected) => {\n          let _selected = selected.filter((e) => !isDirtySelectableItem(e)) as Array<\n            INaicsCodes & SelectableItem\n          >\n          selectNaicsCodes(_selected)\n        }}\n        placeholder=\"Select NAICS Codes\"\n        reloadOnOpen\n      />\n    )\n  }),\n)\n","import {\n  isDirtySelectableItem,\n  SelectableItem,\n  ServerBackedMultiSelectAutoComplete,\n  PaginationParams,\n} from '@mobilizeyourtech/vision-core-react'\nimport { useEffect, useState } from 'react'\nimport { initializeSearchDropdown } from '../custom'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore } from '../../stores'\nimport { ServerStore, TechnologyTypeResponse } from '../../stores/ServerStore'\n\nexport interface UrlFederatedIgniteTechnologyTypesMultiSelectAutoCompleteProps {\n  paramKey:\n    | 'listingTechnologyTypeIds'\n    | 'productTechnologyTypeIds'\n    | 'serviceTechnologyTypeIds'\n    | 'awardTechnologyTypeIds'\n  dataTestId?: string\n  serverStore?: ServerStore\n  notificationStore?: NotificationStore\n}\n\nexport const UrlFederatedTechnologyTypesMultiSelectAutoComplete = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: UrlFederatedIgniteTechnologyTypesMultiSelectAutoCompleteProps) => {\n    const [params, setParams] = useQueryParams({\n      [props.paramKey]: withDefault(StringParam, undefined),\n    })\n    const [selectedTechnologyTypes, setSelectedTechnologyTypes] = useState<\n      Array<TechnologyTypeResponse>\n    >([])\n\n    useEffect(() => {\n      if (params[props.paramKey] == null || params[props.paramKey]?.split(',').length === 0) {\n        setSelectedTechnologyTypes([])\n      } else {\n        const currentIds = selectedTechnologyTypes\n          .map((item) => item.id.toString())\n          .sort()\n          .join(',')\n        const paramIds = params[props.paramKey]!.split(',').sort().join(',')\n\n        if (currentIds !== paramIds) {\n          initializeSearchDropdown(\n            {\n              ids: params[props.paramKey],\n              getDropdownData: getTechnologyTypes,\n              setSelected: setSelectedTechnologyTypes,\n              typeForErrorMessage: 'technology types',\n            },\n            props.notificationStore!,\n          )\n        }\n      }\n    }, [params[props.paramKey]])\n\n    // Technology Types\n    const getTechnologyTypes = (p: PaginationParams & { ids?: string }) => {\n      return props.serverStore!.getTechnologyTypes(p).then((response) => response)\n    }\n\n    const selectTechnologyTypes = (selected: Array<TechnologyTypeResponse & SelectableItem>) => {\n      setSelectedTechnologyTypes(selected)\n      setParams({\n        ...params,\n        [props.paramKey]: selected.length === 0 ? undefined : selected.map((e) => e.id).join(','),\n      })\n    }\n\n    const getSelectedTechnologyTypes = () => {\n      return selectedTechnologyTypes.map((t) => {\n        return { ...t, label: t.name }\n      })\n    }\n\n    return (\n      <ServerBackedMultiSelectAutoComplete\n        data-testid={props.dataTestId ? props.dataTestId : 'tech'}\n        loadMore={getTechnologyTypes}\n        selections={getSelectedTechnologyTypes()}\n        // DirtySelectableItems are only possible when allowDirty === true\n        onChange={(selected) => {\n          let _selected = selected.filter((e) => !isDirtySelectableItem(e)) as Array<\n            TechnologyTypeResponse & SelectableItem\n          >\n          selectTechnologyTypes(_selected)\n        }}\n        placeholder={'Select Technology Types'}\n        reloadOnOpen\n      />\n    )\n  }),\n)\n","import {\n  isDirtySelectableItem,\n  ServerBackedMultiSelectAutoComplete,\n  PaginationParams,\n} from '@mobilizeyourtech/vision-core-react'\nimport { useEffect, useState } from 'react'\nimport { initializeSearchDropdown } from './'\nimport { IBusinessClassifications } from '../form/fragments/listing'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore, ConnectListingStore } from '../../stores'\n\nexport interface UrlFederatedIgniteBusinessClassificationsMultiSelectAutoCompleteProps {\n  paramKey: 'listingBusinessClassificationIds'\n  connectListingStore?: ConnectListingStore\n  notificationStore?: NotificationStore\n}\nexport const UrlFederatedBusinessClassificationsMultiSelectAutoComplete = inject(\n  ApplicationStore.names.connectListingStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: UrlFederatedIgniteBusinessClassificationsMultiSelectAutoCompleteProps) => {\n    const [params, setParams] = useQueryParams({\n      [props.paramKey]: withDefault(StringParam, undefined),\n    })\n    const [selectedBusinessClassifications, setSelectedBusinessClassifications] = useState<\n      Array<IBusinessClassifications>\n    >([])\n\n    useEffect(() => {\n      if (params[props.paramKey] == null || params[props.paramKey]?.split(',').length === 0) {\n        setSelectedBusinessClassifications([])\n      } else {\n        const currentIds = selectedBusinessClassifications\n          .map((item) => item.id.toString())\n          .sort()\n          .join(',')\n        const paramIds = params[props.paramKey]!.split(',').sort().join(',')\n\n        if (currentIds !== paramIds) {\n          initializeSearchDropdown(\n            {\n              ids: params.listingBusinessClassificationIds,\n              getDropdownData: getBusinessClassifications,\n              setSelected: setSelectedBusinessClassifications,\n              typeForErrorMessage: 'business classifications',\n            },\n            props.notificationStore!,\n          )\n        }\n      }\n    }, [params[props.paramKey]])\n\n    //Business Classifications\n    const getBusinessClassifications = async (p: PaginationParams & { ids?: string }) => {\n      return props\n        .connectListingStore!.getConnectBusinessClassifications(p)\n        .then((response) => response)\n    }\n\n    const selectBusinessClassifications = (selected: Array<IBusinessClassifications>) => {\n      setParams({\n        ...params,\n        listingBusinessClassificationIds:\n          selected.length === 0 ? undefined : selected.map((e) => e.id).join(','),\n      })\n\n      setSelectedBusinessClassifications(selected)\n    }\n\n    const getSelectedBusinessClassifications = () => {\n      return selectedBusinessClassifications.map((t) => {\n        return { ...t, label: t.name }\n      })\n    }\n\n    return (\n      <ServerBackedMultiSelectAutoComplete\n        data-testid={'business'}\n        loadMore={getBusinessClassifications}\n        selections={getSelectedBusinessClassifications()}\n        // DirtySelectableItems are only possible when allowDirty === true\n        onChange={(selected) => {\n          let _selected = selected.filter(\n            (e) => !isDirtySelectableItem(e),\n          ) as Array<IBusinessClassifications>\n          selectBusinessClassifications(_selected)\n        }}\n        placeholder={'Select Business Classifications'}\n        reloadOnOpen\n      />\n    )\n  }),\n)\n","import { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../stores'\nimport React, { useState } from 'react'\nimport { ChatThreadResponse } from '../../stores/ServerStore'\nimport { RichTooltip, SuspensefulButton } from '@mobilizeyourtech/vision-core-react'\n\ntype TProps = {\n  serverStore?: ServerStore\n  notificationStore?: NotificationStore\n  chatThread: ChatThreadResponse\n  onChatThreadUpdated: () => void\n}\n\nexport const ToggleChatStatusButton = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [isSuspending, setIsIsSuspending] = useState<boolean>(false)\n\n    const { id, status } = props.chatThread\n\n    const tooltipMessage = `This will ${status === 'active' ? 'pause' : 'unpause'} the chat thread.`\n\n    const pauseChatThread = () => {\n      setIsIsSuspending(true)\n\n      props.serverStore\n        ?.pauseChatThread(id)\n        .then(() => {\n          props.onChatThreadUpdated()\n        })\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Error pausing chat thread. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n        .finally(() => {\n          setTimeout(() => {\n            setIsIsSuspending(false)\n          }, 300)\n        })\n    }\n\n    const unpauseChatThread = () => {\n      setIsIsSuspending(true)\n      props.serverStore\n        ?.unpauseChatThread(id)\n        .then(() => {\n          props.onChatThreadUpdated()\n        })\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Error unpausing chat thread. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n        .finally(() => {\n          setTimeout(() => {\n            setIsIsSuspending(false)\n          }, 300)\n        })\n    }\n\n    const renderButton = () => {\n      return (\n        <SuspensefulButton\n          className=\"chat-pause-button d-flex align-items-center justify-content-center\"\n          isSuspended={isSuspending}\n          disabled={isSuspending || status === 'pre_active'}\n          icon={status === 'active' ? 'fas fa-pause' : 'fas fa-play'}\n          onClick={() => (status === 'active' ? pauseChatThread() : unpauseChatThread())}\n          data-testid=\"chat-pause-button\"\n        />\n      )\n    }\n\n    const renderButtonWithTooltip = () => {\n      return (\n        <RichTooltip\n          className=\"pause-button-tooltip\"\n          tooltipContent={`${tooltipMessage} This can be changed at any time.`}\n        >\n          {renderButton()}\n        </RichTooltip>\n      )\n    }\n\n    return (\n      <div className=\"pause-button-wrapper\">\n        {status === 'pre_active' ? renderButton() : renderButtonWithTooltip()}\n      </div>\n    )\n  }),\n)\n","import { ApplicationStore, UserStore } from '../../stores'\nimport { observer, inject } from 'mobx-react'\nimport { makeChatThreadHeadliner } from './ChatThreadCard'\nimport {\n  ChatParticipantResponse,\n  ChatThreadResponse,\n  isAccountParticipant,\n} from '../../stores/ServerStore'\nimport { ToggleChatStatusButton } from './ToggleChatStatusButton'\n\ntype ChatPanelHeaderProps = {\n  chatThread: ChatThreadResponse\n  userStore?: UserStore\n  onChatThreadUpdated: () => void\n}\n\nexport const ChatPanelHeader = inject(ApplicationStore.names.userStore)(\n  observer((props: ChatPanelHeaderProps) => {\n    const user = props.userStore?.currentUserData\n    const currentIsGovUser = props.userStore?.currentUserData?.userRoles.includes('gov')\n\n    const displayParticipantList = props.chatThread.participants.filter(\n      (participant: ChatParticipantResponse) => {\n        if (isAccountParticipant(participant) && !currentIsGovUser) {\n          return user?.accountId !== participant.participantId\n        } else if (isAccountParticipant(participant) && currentIsGovUser) {\n          return true\n        } else {\n          return user?.id !== participant.participantId\n        }\n      },\n    )\n\n    return (\n      <div className=\"chat-header d-flex justify-content-between\" data-testid={'chat-header'}>\n        <h5>\n          <span className=\"chat-header-span\">To: </span>\n          {makeChatThreadHeadliner(displayParticipantList)}\n        </h5>\n        {currentIsGovUser && (\n          <ToggleChatStatusButton\n            chatThread={props.chatThread}\n            onChatThreadUpdated={props.onChatThreadUpdated}\n          />\n        )}\n      </div>\n    )\n  }),\n)\n","import React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, UserStore } from '../../stores'\nimport { ChatMessageResponse, ChatThreadResponse } from '../../stores/ServerStore'\nimport { Spinner } from './index'\nimport { formatDate } from '../../lib/helpers/utils'\nimport { UserAvatar } from '../user'\nimport { CCardText, CRow } from '@coreui/react'\nimport { IntersectObservantPill } from '@mobilizeyourtech/vision-core-react'\n\ntype ChatThreadPanelMessagesProps = {\n  chatThread: ChatThreadResponse\n  userStore?: UserStore\n  chatMessages: Array<ChatMessageResponse>\n  latestMessageAtLoad: ChatMessageResponse | undefined\n  isExtending: boolean\n  isExtendingError: boolean\n  extendData: () => void\n  chatEndRef: React.MutableRefObject<any>\n  onViewNewestMessage: () => void\n  showNewMessageIndicator: boolean\n  timeout?: number\n  onChatThreadUpdated: () => void\n}\n\nexport const ChatThreadPanelMessages = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.serverStore,\n)(\n  observer((props: ChatThreadPanelMessagesProps) => {\n    const user = props.userStore!.currentUserData!\n    const [lastMessageSeenAtLoad] = useState<Date>(new Date(props.chatThread.lastMessageSeenAt))\n    const [hasUnreadMessages, setHasUnreadMessages] = useState<boolean>(false)\n    const [unreadMessageTimeout, setUnreadMessageTimeout] = useState<\n      ReturnType<typeof setTimeout> | undefined\n    >(undefined)\n\n    useEffect(() => {\n      setUnreadMessageTimeout(\n        setTimeout(() => {\n          setHasUnreadMessages(maybeShowMoreUnread())\n        }, props.timeout || 300),\n      )\n\n      return () => {\n        unreadMessageTimeout && clearTimeout(unreadMessageTimeout)\n      }\n    }, [props.latestMessageAtLoad])\n\n    const maybeShowMoreUnread = (): boolean => {\n      if (\n        props.chatMessages.length === 0 ||\n        !props.latestMessageAtLoad ||\n        props.chatThread.currentUserUnreadCount === 0 ||\n        props.chatThread.currentUserUnreadCount === undefined\n      )\n        return false\n\n      let latestMessageTime = new Date(props.latestMessageAtLoad.createdAt).getTime()\n      let latestMessageSeenTime = new Date(props.chatThread.lastMessageSeenAt).getTime()\n\n      return latestMessageTime > latestMessageSeenTime\n    }\n\n    const renderDivider = (dateBoundary: Date) => {\n      const now = new Date()\n\n      // NOTE: The chatMessages.length is included below to ensure that a single\n      // date grouping with more than 10 messages does not load all messages at\n      // once. This also allows us to maintain snapshot tests because the\n      // chatMessages.length can be predictable and consistent in testing.\n      return (\n        <div\n          key={`${dateBoundary.getFullYear()}.${dateBoundary.getMonth()}.${dateBoundary.getDate()}-${\n            props.chatMessages.length\n          }`}\n          className=\"date-divider py-1\"\n        >\n          <div className=\"boundary-value\" />\n          <div className=\"date-value\">\n            {now.getFullYear() === dateBoundary.getFullYear() &&\n            now.getMonth() === dateBoundary.getMonth() &&\n            now.getDate() === dateBoundary.getDate()\n              ? 'Today'\n              : formatDate(dateBoundary)}\n          </div>\n        </div>\n      )\n    }\n\n    const renderSeenAtDivider = (): JSX.Element => {\n      return (\n        <IntersectObservantPill\n          id={`new-messages-divider-${props.chatMessages.length}`}\n          key={`new-messages-divider-${props.chatMessages.length}`}\n          onVisible={() => {\n            unreadMessageTimeout && clearTimeout(unreadMessageTimeout)\n            setHasUnreadMessages(false)\n            props.onChatThreadUpdated()\n          }}\n          data-testid={'more-messages-intersection-observer'}\n        >\n          <div className={'last-message-seen-divider'} data-testid={'last-message-seen-divider'}>\n            <hr />\n            <span>New</span>\n          </div>\n        </IntersectObservantPill>\n      )\n    }\n\n    const renderChatMessage = (message: ChatMessageResponse, date: Date) => {\n      return (\n        <div\n          className=\"chat-card w-100 p-2 d-flex flex-row gap-2\"\n          key={message.id}\n          data-testid={`chat-message-${message.id}`}\n        >\n          <UserAvatar user={message.user} />\n          <div className=\"chat-card-text\">\n            <div className=\"chat-card-header-text d-flex gap-1 align-items-start justify-content-start\">\n              <h6 className=\"chat-user-name\">\n                {message.user.firstName} {message.user.lastName}\n              </h6>\n              <h6 className=\"chat-date\">{date.toLocaleTimeString()}</h6>\n            </div>\n            <CCardText className={user.id === message.userId ? 'outgoing' : 'incoming'}>\n              {message.content}\n            </CCardText>\n          </div>\n        </div>\n      )\n    }\n\n    const renderMessages = () => {\n      if (!props.latestMessageAtLoad) {\n        return\n      }\n\n      const latestMessage = new Date(props.latestMessageAtLoad.createdAt)\n      // setting prevMessage as first message so that even if there's only one message, the\n      // new message divider will render\n      let prevMessage: ChatMessageResponse = props.chatMessages[0]\n      let currentDivider: Date | undefined = undefined\n      let result: Array<JSX.Element> = []\n      let hasNewDivider = false\n\n      props.chatMessages.forEach((chat, idx) => {\n        let date = new Date(chat.createdAt)\n\n        if (!currentDivider) {\n          currentDivider = date\n          result = [...result, renderDivider(currentDivider)]\n        }\n        if (\n          currentDivider.getFullYear() !== date.getFullYear() ||\n          currentDivider.getMonth() !== date.getMonth() ||\n          currentDivider.getDate() !== date.getDate()\n        ) {\n          currentDivider = date\n          result = [...result, renderDivider(currentDivider)]\n        }\n\n        if (\n          !hasNewDivider && // if there isn't already a divider added\n          chat.userId !== props.userStore?.currentUserData?.id && // and this message was sent by someone other than the current user\n          new Date(prevMessage.createdAt).getTime() === lastMessageSeenAtLoad.getTime() && // and if prevMessage was the last one seen\n          date <= latestMessage // and the message was created before the latest message when user visited the thread\n        ) {\n          result = [...result, renderSeenAtDivider()]\n          hasNewDivider = true\n        }\n\n        // render newest message pill above the last message to hide the new messages\n        // notice as the last message scrolls into view\n        if (idx === props.chatMessages.length - 1) {\n          result = [...result, renderNewestMessagePill()]\n        }\n\n        result = [...result, renderChatMessage(chat, date)]\n\n        prevMessage = chat\n      })\n\n      return result\n    }\n\n    const renderNewestMessagePill = () => {\n      return (\n        <IntersectObservantPill\n          id={`chat-bottom-pill-${props.chatMessages.length}`}\n          key={`chat-bottom-pill-${props.chatMessages.length}`}\n          data-testid={'chat-bottom-pill'}\n          onVisible={props.onViewNewestMessage}\n        />\n      )\n    }\n\n    const renderMoreUnreadNotice = () => {\n      return (\n        <span className=\"more-unread-notice\" data-testid=\"more-unread-notice\">\n          More Unread\n        </span>\n      )\n    }\n\n    return (\n      <>\n        {hasUnreadMessages && renderMoreUnreadNotice()}\n        <div className=\"message-container\">\n          <div className=\"chat-wrapper\">\n            {!props.isExtending && !props.isExtendingError && (\n              <IntersectObservantPill\n                data-testid=\"observer\"\n                className=\"observer\"\n                id=\"message-top-observer\"\n                entryProps={{\n                  root: null,\n                  rootMargin: '100px',\n                  threshold: 0.5,\n                }}\n                onVisible={() => props.extendData()}\n              />\n            )}\n            {props.isExtending && (\n              <div className=\"observer-spinner-container d-flex justify-content-center pt-2\">\n                <Spinner className=\"message-suspense\" />\n              </div>\n            )}\n            {props.isExtendingError && (\n              <div className=\"d-flex justify-content-center align-items-center\">\n                <span className=\"text-center\">Error loading messages ...</span>\n              </div>\n            )}\n            <CRow className=\"chat-wrapper p-0 m-0\">{renderMessages()}</CRow>\n\n            {props.showNewMessageIndicator && (\n              <span\n                className={'new-message-indicator'}\n                onClick={() => props.chatEndRef.current.scrollIntoView()}\n              >\n                New Messages\n              </span>\n            )}\n\n            <span className=\"panel-end\" data-testid=\"panel-end\" ref={props.chatEndRef} />\n          </div>\n        </div>\n      </>\n    )\n  }),\n)\n","import {\n  Avatar,\n  CustomModal,\n  CustomModalProps,\n  SuspensefulButton,\n} from '@mobilizeyourtech/vision-core-react'\nimport { ApplicationStore, ServerStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { ConnectListingResponse, isConnectListingResponse } from '../../stores/ConnectListingStore'\nimport { GovUserData } from '../../stores/UserStore'\nimport { ChatParticipantIdentifiers } from '../../stores/ServerStore'\nimport { CFormTextarea } from '@coreui/react'\nimport { useState } from 'react'\nimport { validateLength } from '../../lib/helpers/validation'\nimport { useHistory } from 'react-router-dom'\nimport { Alert } from './Alert'\nimport { UNCLASSIFIED_WARNING_PROMPT } from '../../lib/helpers/utils'\n\nexport interface InitiateChatModalProps extends CustomModalProps {\n  serverStore?: ServerStore\n  target: ConnectListingResponse | GovUserData\n  participants: Array<ChatParticipantIdentifiers>\n}\n\nexport const InitiateChatModal = inject(ApplicationStore.names.serverStore)(\n  observer(({ serverStore, target, participants, ...props }: InitiateChatModalProps) => {\n    const history = useHistory()\n    const [message, setMessage] = useState<string>('')\n    const [isSubmitSuspended, setIsSubmitSuspended] = useState<boolean>(false)\n    const [error, setError] = useState<boolean>(false)\n\n    const renderAvatar = () => {\n      const first = isConnectListingResponse(target) ? target.name : target.firstName\n      const last = isConnectListingResponse(target) ? '' : target.lastName\n      const src = isConnectListingResponse(target) ? target.logo?.path : target.headshot?.path\n      return <Avatar prefix={first} suffix={last} src={src || ''} />\n    }\n\n    const renderName = () => {\n      return isConnectListingResponse(target)\n        ? target.name\n        : `${target.firstName} ${target.lastName}`\n    }\n\n    const onSubmit = () => {\n      setIsSubmitSuspended(true)\n      setError(false)\n      serverStore!\n        .createChatThread(participants, message)\n        .then((chatThread) => {\n          history.push(`/chat?threadId=${chatThread.id}`)\n        })\n        .catch(() => {\n          setError(true)\n          setIsSubmitSuspended(false)\n        })\n    }\n\n    return (\n      <CustomModal\n        {...props}\n        onClose={() => {\n          props.onClose()\n          setError(false)\n          setMessage('')\n          setIsSubmitSuspended(false)\n        }}\n      >\n        <section\n          className=\"InitiateChatForm d-flex flex-column gap-2 px-3 mb-3\"\n          data-testid={'InitiateChatModal'}\n        >\n          <div className=\"form-header d-flex flex-row gap-2 align-items-center\">\n            <div className=\"pe-2\">{renderAvatar()}</div>\n            <div>{renderName()}</div>\n          </div>\n          {error && (\n            <Alert\n              color={'danger'}\n              onToggleAlert={() => setError(false)}\n              message={'Error sending message. Please try again.'}\n            />\n          )}\n          <CFormTextarea\n            data-testid=\"initiate-chat-textarea-input\"\n            className=\"mt-3\"\n            placeholder={'Send a message...'}\n            value={message}\n            onChange={({ target: { value } }) => setMessage(value)}\n          />\n          <span className={'subtle'}>{UNCLASSIFIED_WARNING_PROMPT}</span>\n          <div className=\"d-flex w-100 justify-content-end mt-1\">\n            <SuspensefulButton\n              data-testid=\"initiate-chat-send-button\"\n              isSuspended={isSubmitSuspended}\n              disabled={!!validateLength(message, 2)}\n              onClick={onSubmit}\n              icon=\"fas fa-check\"\n            >\n              Send\n            </SuspensefulButton>\n          </div>\n        </section>\n      </CustomModal>\n    )\n  }),\n)\n","import { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ServerStore, UserStore } from '../../stores'\nimport {\n  RichTooltip,\n  SuspensefulButton,\n  SuspensefulButtonProps,\n} from '@mobilizeyourtech/vision-core-react'\nimport { useEffect, useState } from 'react'\nimport { ConnectListingResponse, isConnectListingResponse } from '../../stores/ConnectListingStore'\nimport { GovUserData, hasGovRole, hasIgniteRole, isUserData } from '../../stores/UserStore'\nimport { ChatParticipantIdentifiers, ChatThreadResponse } from '../../stores/ServerStore'\nimport { useHistory } from 'react-router-dom'\nimport { InitiateChatModal } from './InitiateChatModal'\nimport classnames from 'classnames'\n\nexport interface StartChatButtonProps\n  extends Omit<SuspensefulButtonProps, 'isSuspended' | 'onClick' | 'buttonText'> {\n  target: ConnectListingResponse | GovUserData\n  serverStore?: ServerStore\n  userStore?: UserStore\n  tooltipDebounceMs?: number\n}\n\nexport const StartChatButton = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.userStore,\n)(\n  observer(\n    ({\n      serverStore,\n      userStore,\n      target,\n      tooltipDebounceMs = 350,\n      ...props\n    }: StartChatButtonProps) => {\n      const history = useHistory()\n      const [isSuspended, setIsSuspended] = useState<boolean>(true)\n      const [isInitiateModalOpen, setIsInitiateModalOpen] = useState<boolean>(false)\n      const [disabledReason, setDisabledReason] = useState<string | undefined>(undefined)\n      const [participants, setParticipants] = useState<\n        Array<ChatParticipantIdentifiers> | undefined\n      >(undefined)\n      const [existingChatThread, setExistingChatThread] = useState<ChatThreadResponse | undefined>(\n        undefined,\n      )\n\n      const makeAndSetParticipants = () => {\n        if (isConnectListingResponse(target) && hasGovRole(userStore!.currentUserData!)) {\n          setParticipants([\n            {\n              participantType: 'Account',\n              participantId: target.accountId,\n            },\n            {\n              participantType: 'User',\n              participantId: userStore!.currentUserData!.id,\n            },\n          ])\n        } else if (isUserData(target) && hasIgniteRole(userStore!.currentUserData!)) {\n          setParticipants([\n            {\n              participantType: 'User',\n              participantId: target.id,\n            },\n            {\n              participantType: 'Account',\n              participantId: userStore!.currentAccountData!.id,\n            },\n          ])\n        } else {\n          // This means there is some unexpected illegal combination of participants\n          setDisabledReason(\n            `You are unable to chat with this ${\n              isConnectListingResponse(target) ? 'account' : 'user'\n            }`,\n          )\n        }\n      }\n\n      useEffect(() => {\n        makeAndSetParticipants()\n      }, [])\n\n      useEffect(() => {\n        if (participants) {\n          serverStore!\n            .findChatThreadByParticipants(participants)\n            .then((data) => {\n              if (isUserData(target) && !target.govUserSetting.allowMessageRequests && !data) {\n                setDisabledReason(\"This user's preferences do not allow new messages\")\n              }\n              setExistingChatThread(data)\n            })\n            .catch(() => {\n              setDisabledReason('Error initiating chat. Please refresh.')\n            })\n            .finally(() => setIsSuspended(false))\n        } else {\n          setIsSuspended(false)\n        }\n      }, [participants])\n\n      const onInvokeChat = () => {\n        if (existingChatThread) {\n          history.push(`/chat?threadId=${existingChatThread.id}`)\n          return\n        }\n        setIsInitiateModalOpen(true)\n      }\n\n      const renderTooltipContent = () => {\n        let message = disabledReason\n        const wider = !!disabledReason\n        if (!message) {\n          if (!existingChatThread) {\n            message = 'Start a chat'\n          } else {\n            message = 'Go to chat'\n          }\n        }\n        return <div className={classnames('chat-button-tooltip', { wider })}>{message}</div>\n      }\n\n      return (\n        <section className=\"StartChatButton\">\n          <RichTooltip\n            tooltipContent={renderTooltipContent()}\n            location={'bottom'}\n            timeout={tooltipDebounceMs}\n          >\n            <SuspensefulButton\n              {...props}\n              data-testid=\"start-chat-button\"\n              icon={!!disabledReason ? 'fas fa-comment-slash' : 'fas fa-comment'}\n              isSuspended={isSuspended}\n              disabled={!!disabledReason}\n              onClick={onInvokeChat}\n            >\n              Chat\n            </SuspensefulButton>\n          </RichTooltip>\n\n          {participants && (\n            <InitiateChatModal\n              target={target}\n              participants={participants}\n              isModalOpen={isInitiateModalOpen}\n              onClose={() => setIsInitiateModalOpen(false)}\n            />\n          )}\n        </section>\n      )\n    },\n  ),\n)\n","import { NamedServerArtifact, NamedWithLabelServerArtifact } from '../../lib/types'\nimport { PaginationParams, ServerPageData } from '@mobilizeyourtech/vision-core-react'\nimport { NotificationStore } from '../../stores'\nimport { Dispatch, SetStateAction } from 'react'\n\nexport { Alert } from './Alert'\nexport { Spinner } from './Spinner'\n\nexport { OrganizationDetails } from '../form/fragments/listing/OrganizationDetails'\nexport { ContractingDetails } from '../form/fragments/listing/ContractingDetails'\n\nexport { SingleImageUploader } from './SingleImageUploader'\nexport { ImageCroppingTool } from './ImageCroppingTool'\n\nexport { RegionSelectInput } from './RegionSelectInput'\nexport { CountrySelectInput } from './CountrySelectInput'\n\nexport { TimezoneSelect } from './TimezoneSelect'\nexport { ValidatedCFormSelect } from './ValidatedCFormSelect'\nexport { ValidatedCFormInput } from './ValidatedCFormInput'\nexport { ValidatedCFormTextArea } from './ValidatedCFormTextArea'\n\nexport { SingleUserSelect } from './SingleUserSelect'\nexport { GoogleSuggestAddressInput } from './GoogleSuggestAddressInput'\nexport { ConfirmationBoundaryModal } from './ConfirmationBoundaryModal'\nexport { LegalLinks } from './LegalLinks'\nexport { Pagination } from './Pagination'\nexport { SupportLinks } from './SupportLinks'\nexport { AsyncValidatedTextInput } from './AsyncValidatedTextInput'\nexport { IconPopover } from './IconPopover'\n\nexport { PotentiallyExternalRedirectLink } from './PotentiallyExternalRedirectLink'\nexport { CustomInformationPopup } from './CustomInformationPopup'\nexport { ServerBackedDropdown } from './ServerBackedDropdown'\nexport { CustomDropdown } from './CustomDropdown'\nexport { Collapsible } from './Collapsible'\nexport type { DropdownItem } from './ServerBackedDropdown'\nexport { UrlFederatedNaicsCodeMultiSelectAutoComplete } from './UrlFederatedNaicsCodeMultiSelectAutoComplete'\nexport { UrlFederatedTechnologyTypesMultiSelectAutoComplete } from './UrlFederatedTechnologyTypesMultiSelectAutoComplete'\nexport { UrlFederatedBusinessClassificationsMultiSelectAutoComplete } from './UrlFederatedBusinessClassificationsMultiSelectAutoComplete'\n\nexport { ChatPanelHeader } from './ChatPanelHeader'\nexport { ChatThreadPanelMessages } from './ChatThreadPanelMessages'\n\nexport { StartChatButton } from './StartChatButton'\nexport { ToggleChatStatusButton } from './ToggleChatStatusButton'\n\ntype SearchParamType<T extends NamedWithLabelServerArtifact | NamedServerArtifact> = {\n  ids: string | undefined\n  getDropdownData: (p: PaginationParams & { ids?: string }) => Promise<ServerPageData<T>>\n  setSelected: Dispatch<SetStateAction<T[]>>\n  typeForErrorMessage: string\n}\n\nexport const initializeSearchDropdown = <\n  T extends NamedWithLabelServerArtifact | NamedServerArtifact,\n>(\n  searchParams: SearchParamType<T>,\n  notificationStore: NotificationStore,\n) => {\n  if (searchParams.ids) {\n    searchParams\n      .getDropdownData({ page: 1, perPage: searchParams.ids?.split(',').length, ...searchParams })\n      .then((response) =>\n        searchParams.setSelected(\n          response.data.map((d) => {\n            const label = (d as NamedWithLabelServerArtifact).label\n            const name = (d as NamedServerArtifact).name\n\n            return { ...d, label: name ? name : label }\n          }),\n        ),\n      )\n      .catch(() =>\n        notificationStore?.setNotificationMessage(\n          'Failed to populate ' + searchParams.typeForErrorMessage + '. Please try again later',\n          'error',\n          3000,\n        ),\n      )\n  }\n}\n","export const validateEmail = (value: string | undefined): string | undefined => {\n  if (value && /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[a-z]{2,}$/.test(value)) {\n    return\n  }\n  return 'invalid_email'\n}\n\nexport const validatePassword = (value: string | undefined, minLength = 6): string | undefined => {\n  return (\n    validateLength(value, minLength) ||\n    validatePatternMatch(value, /(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-])/) ||\n    undefined\n  )\n}\n\nexport const validatePatternMatch = (\n  value: string | undefined,\n  pattern: RegExp,\n): string | undefined => {\n  if (value && pattern.test(value)) {\n    return\n  }\n  return 'pattern_mismatch'\n}\n\nexport const validateWebsite = (value: string | undefined) => {\n  return validatePatternMatch(\n    value,\n    /^((https?):\\/\\/)?([a-zA-Z0-9-_]+\\.[a-zA-Z0-9-_]+)*(\\/[a-zA-Z0-9-_.]+)*\\/?(\\?[a-zA-Z0-9-_.]*=[a-zA-Z0-9-_'\" .]*)*(&[a-zA-Z0-9-_.]*=[a-zA-Z0-9-_'\" .]*)*$/,\n  )\n}\n\nexport const validateValueMatch = (\n  left: string | undefined,\n  right: string | undefined,\n): string | undefined => {\n  if (left && right && left === right) {\n    return\n  }\n  return 'mismatch'\n}\n\nexport const validateLength = (value: string | undefined, min: number): string | undefined => {\n  if (value && value.length >= min) {\n    return\n  }\n  return 'insufficient_length'\n}\n\nexport const validateLineOfEffort = (arr: { details: string }[]): string | undefined => {\n  if (arr.some((el) => el.details && el.details.trim() !== '')) {\n    return\n  }\n  return 'need at least one valid line of effort'\n}\n\nexport const validateYear = (\n  value: string | number | undefined,\n  lowerBounds = 1800,\n  upperBounds: number = new Date().getFullYear(),\n): string | undefined => {\n  if (!value) {\n    return 'invalid_year'\n  }\n\n  const normalized = typeof value === 'string' ? Number(value) : value\n  if (isNaN(normalized)) {\n    return 'not_a_number'\n  }\n  if (normalized >= lowerBounds && normalized <= upperBounds) {\n    return\n  }\n  return 'year_out_of_bounds'\n}\n","import { SimpleCollapse } from '@mobilizeyourtech/vision-core-react'\nimport React from 'react'\nimport MobilizeVISIONLogo from '../../assets/brand/Ignite_Logo_Mobilize_Full_Color.png'\nimport { visionVisibilityIcon } from '../../assets/brand/vision_visibility_icon'\nimport { CCard, CCardBody, CLink } from '@coreui/react'\nimport { leftArrow } from '../../components/icons/leftArrow'\nimport { Link } from 'react-router-dom'\n\nexport const SignupOrSignin = () => {\n  const choices = [\n    {\n      icon: <i className=\"fas fa-user\" />,\n      header: 'I have a IGNITE Account',\n      nextStep: (\n        <>\n          <CLink data-testid={'signin-link'} className={'clickable'} href={'/signin'}>\n            Click here\n          </CLink>{' '}\n          to sign in to an existing Ignite account\n        </>\n      ),\n    },\n    {\n      icon: <i className=\"far fa-regular fa-user\" />,\n      header: 'I do not have an IGNITE Account',\n      nextStep: (\n        <>\n          <CLink data-testid={'signup-link'} className={'clickable'} href={'/gov_user'}>\n            Click here\n          </CLink>{' '}\n          to create an Ignite account\n        </>\n      ),\n    },\n  ]\n\n  return (\n    <section className=\"SignupChoice\">\n      <div className=\"choice-header w-100 d-flex justify-content-center\">\n        <Link\n          className=\"nav-back clickable\"\n          data-testid=\"nav-back\"\n          aria-label=\"navigate back to signin\"\n          tabIndex={0}\n          to=\"/\"\n        >\n          {leftArrow()}\n        </Link>\n        <img\n          src={MobilizeVISIONLogo}\n          className=\"MobilizeVisionLogo mb-3\"\n          alt=\"Mobilize Vision Logo\"\n        />\n      </div>\n\n      <div className=\"choice-prompt mt-3 d-flex flex-column justify-content-center\">\n        <div className=\"text-center\">\n          <h5>\n            <b>Choose the option that best represents you</b>\n          </h5>\n        </div>\n        <div className={'d-flex justify-content-center'}>\n          <SimpleCollapse className={'why-matter-collapse'} toggleContent={'Why does it matter?'}>\n            <p className=\"prompt-text text-center\">\n              VISION users get a VISION-verified badge {visionVisibilityIcon()}, establishing\n              greater trust and recognition in Ignite.\n            </p>\n          </SimpleCollapse>\n        </div>\n      </div>\n\n      <div className=\"d-flex w-100 justify-content-center gap-2 flex-wrap mt-2\">\n        {choices.map((choice, idx) => (\n          <CCard key={idx} className=\"choice-card\" data-testid={`signup-or-signin-choice-${idx}`}>\n            <CCardBody>\n              {choice.icon}\n              <h5 className=\"mt-1\">\n                <b>{choice.header}</b>\n              </h5>\n              <div className=\"mt-3\">Next Step: {choice.nextStep}</div>\n            </CCardBody>\n          </CCard>\n        ))}\n      </div>\n    </section>\n  )\n}\n","import React, { PropsWithChildren, useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../../stores'\nimport { Redirect, Route, Switch, useHistory, useLocation } from 'react-router-dom'\nimport {\n  AntiSpamPolicy,\n  ConfirmationInstructions,\n  ConfirmClaimLanding,\n  ConfirmEmailLanding,\n  Privacy,\n  RequestPasswordReset,\n  ResetPassword,\n  SignIn,\n  SignTermsAndPrivacy,\n  ClaimRequestSignUp,\n  InviteSignUp,\n  AcceptInviteLanding,\n  Terms,\n  SubmitClaimRequest,\n  SubmitClaimResult,\n  GovUserSignup,\n  SignupChoice,\n} from '../../views'\nimport { VisionRequestInterceptedError } from '../../lib/errors/utils'\nimport {\n  clearQParamSessionVariables,\n  getSessionQParam,\n  getSessionQUserExists,\n  removeQParamFromLocation,\n  setRedirectSessionVariables,\n  setSessionQParam,\n  setSessionQUserExists,\n} from '../../lib/helpers/sessionHelpers'\nimport { StringParam, useQueryParam } from 'use-query-params'\nimport { SignupOrSignin } from '../../views/signup/SignupOrSignin'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\n\ntype TProps = {\n  authStore?: AuthStore\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n}\nexport const AuthBoundary = inject(\n  ApplicationStore.names.authStore,\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: PropsWithChildren<TProps>) => {\n    const location = useLocation<any>()\n    const history = useHistory()\n    const [isLoading, setIsLoading] = useState<boolean>(true)\n    const [qParam, setQParam] = useQueryParam('q', StringParam)\n\n    const authenticated = props.authStore?.isAuthenticated()\n    const confirmed = props.userStore?.currentUserData?.confirmed\n\n    const initializeUserAndAccountData = async () => {\n      try {\n        const userData = await props.userStore!.retrieveCurrentUserData('technology_types')\n        let accountData\n        if (userData.userRoles.includes('ignite')) {\n          accountData = await props.userStore!.retrieveCurrentAccountData()\n        }\n\n        accountData && props.userStore?.setCurrentAccountData(accountData)\n        props.userStore?.setCurrentUserData(userData)\n        props.userStore?.createWebsocketConsumer()\n      } catch (err) {\n        if (!(err instanceof VisionRequestInterceptedError)) {\n          props.notificationStore?.setNotificationMessage(\n            'Failed to load user and account data. Please try again',\n            'danger',\n            3000,\n          )\n        }\n      }\n    }\n\n    const setQSessionVariables = async (params: string) => {\n      await props.userStore\n        ?.checkIfVisionUserHasAccountAndIsLinked(params)\n        .then((userHasAccount: { userExists: boolean; isLinked: boolean }) => {\n          setSessionQUserExists(userHasAccount)\n        })\n    }\n\n    const validateQAndInitializeUser = async () => {\n      // if q, store q in session store, pop it from the url\n      const stored_q = getSessionQParam()\n      const q = qParam\n      if (q && !stored_q) {\n        setSessionQParam(q)\n        setQParam(undefined)\n        try {\n          await setQSessionVariables(q)\n          if (props.authStore?.JWT) {\n            await initializeUserAndAccountData()\n          } else {\n            if (getSessionQUserExists()) {\n              history.push('/sign_in')\n            } else {\n              history.push('/signup_or_signin')\n            }\n          }\n        } catch (e) {\n          // decryption error\n          clearQParamSessionVariables()\n        }\n      } else {\n        setQParam(undefined)\n        if (props.authStore?.JWT) {\n          await initializeUserAndAccountData()\n        }\n      }\n    }\n\n    const initializeAuthBoundary = async () => {\n      await validateQAndInitializeUser()\n      setIsLoading(false)\n    }\n\n    useEffect(() => {\n      initializeAuthBoundary()\n    }, [props.authStore!.salt])\n\n    useEffect(() => {\n      let filteredLocation = removeQParamFromLocation(location)\n      setRedirectSessionVariables(filteredLocation)\n    }, [])\n\n    return (\n      <>\n        <SuspensionBoundary isLoading={isLoading}>\n          <Switch>\n            {!authenticated && <Route exact path=\"/signin\" component={SignIn} />}\n            {!authenticated && <Route exact path=\"/claim_signup\" component={ClaimRequestSignUp} />}\n            {!authenticated && <Route exact path=\"/claim\" component={SubmitClaimRequest} />}\n            {!authenticated && <Route exact path=\"/claim_result\" component={SubmitClaimResult} />}\n            {!authenticated && <Route exact path=\"/invite_signup\" component={InviteSignUp} />}\n            {!authenticated && (\n              <Route exact path=\"/accept_invite\" component={AcceptInviteLanding} />\n            )}\n            {!authenticated && (\n              <Route exact path=\"/confirm_claim\" component={ConfirmClaimLanding} />\n            )}\n            {!authenticated && <Route exact path=\"/gov_user\" component={GovUserSignup} />}\n            {!authenticated && (\n              <Route exact path=\"/request_password_reset\" component={RequestPasswordReset} />\n            )}\n            {!authenticated && <Route exact path=\"/reset_password\" component={ResetPassword} />}\n            {(!confirmed || !authenticated) && (\n              <Route exact path=\"/confirmation_instructions\" component={ConfirmationInstructions} />\n            )}\n            {authenticated && <Route exact path=\"/sign_terms\" component={SignTermsAndPrivacy} />}\n            <Route exact path=\"/confirm_email\" component={ConfirmEmailLanding} />\n            {!authenticated && <Route exact path=\"/terms\" component={Terms} />}\n            {!authenticated && <Route exact path=\"/privacy\" component={Privacy} />}\n            {!authenticated && <Route exact path=\"/anti_spam\" component={AntiSpamPolicy} />}\n            {!authenticated && <Route exact path=\"/signup/choice\" component={SignupChoice} />}\n            {!authenticated && <Route exact path=\"/signup_or_signin\" component={SignupOrSignin} />}\n            {!authenticated && <Redirect to=\"/signin\" />}\n            {authenticated && confirmed && props.children}\n          </Switch>\n        </SuspensionBoundary>\n      </>\n    )\n  }),\n)\n","import React, { useEffect } from 'react'\nimport { Route, Switch } from 'react-router-dom'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore } from './stores'\nimport './scss/style.scss'\nimport { AuthBoundary } from './components/boundary'\nimport { useErrorPropagator } from './lib/hooks'\nimport { Alert } from './components/custom'\n\ntype TProps = {\n  applicationStore?: ApplicationStore\n  notificationStore?: NotificationStore\n}\n\nconst loading = (\n  <div className=\"pt-3 text-center\">\n    <div className=\"sk-spinner sk-spinner-pulse\"></div>\n  </div>\n)\n\n// Containers\nconst DefaultLayout = React.lazy(() => import('./layout/DefaultLayout'))\n\nexport const App = inject(\n  'applicationStore',\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const { throwError } = useErrorPropagator()\n\n    useEffect(() => {\n      props.applicationStore\n        ?.getSiteSettings()\n        .then((data) => props.applicationStore?.setSiteSettings(data))\n        .catch((err) => {\n          props.notificationStore?.setNotificationMessage(\n            'Failed to initialize application settings. Please refresh the page',\n            'danger',\n            3000,\n            true,\n          )\n          throwError(err)\n        })\n    }, [])\n\n    return (\n      <section className=\"App\">\n        <Switch>\n          <React.Suspense fallback={loading}>\n            <Switch>\n              {props.applicationStore?.siteSettings && (\n                <AuthBoundary>\n                  <Route path=\"/\" render={(props) => <DefaultLayout {...(props as any)} />} />\n                </AuthBoundary>\n              )}\n            </Switch>\n            {props.notificationStore?.message && (\n              <div className=\"app-global-alert\" data-testid=\"app-global-alert\">\n                <Alert\n                  message={props.notificationStore.message}\n                  color={props.notificationStore.severity}\n                  onToggleAlert={() => props.notificationStore?.clearMessage()}\n                />\n              </div>\n            )}\n          </React.Suspense>\n        </Switch>\n      </section>\n    )\n  }),\n)\n","import 'react-app-polyfill/stable'\nimport 'core-js'\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport { App } from './App'\nimport { Provider } from 'mobx-react'\nimport { Route, Router } from 'react-router-dom'\nimport { createBrowserHistory } from 'history'\nimport { ApplicationStore } from './stores/ApplicationStore'\nimport { QueryParamProvider } from 'use-query-params'\nimport { LastLocationProvider } from 'react-router-last-location'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { ErrorFallback } from './components/boundary'\nimport TagManager from 'react-gtm-module'\n\nconst tagManagerArgs = {\n  gtmId: 'GTM-5PPXV3LB',\n}\n\nTagManager.initialize(tagManagerArgs)\n\nconst applicationStore = new ApplicationStore()\nconst history = createBrowserHistory()\n\nReactDOM.render(\n  <React.StrictMode>\n    <Provider applicationStore={applicationStore} {...applicationStore.getStores()}>\n      <Router history={history}>\n        <ErrorBoundary FallbackComponent={ErrorFallback} onReset={() => null}>\n          <QueryParamProvider ReactRouterRoute={Route}>\n            <LastLocationProvider>\n              <App />\n            </LastLocationProvider>\n          </QueryParamProvider>\n        </ErrorBoundary>\n      </Router>\n    </Provider>\n  </React.StrictMode>,\n  document.getElementById('root'),\n)\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\n// serviceWorker.unregister()\n","import { useHistory } from 'react-router-dom'\nimport { FallbackProps } from 'react-error-boundary'\nimport CompanyConnectorLogo from '../../assets/brand/Ignite_Logo_Full_Color.png'\nimport { CCard, CCardBody, CButton } from '@coreui/react'\n\nexport const ErrorFallback = (props: FallbackProps) => {\n  const { error } = props\n  const history = useHistory()\n\n  history.listen(() => {\n    props.resetErrorBoundary()\n  })\n\n  const determineErrorMessage = (e: any) => {\n    if (e.isAxiosError && e.response?.status === 404) {\n      return 'The requested resource does not exist'\n    }\n    return 'Something went wrong!'\n  }\n\n  return (\n    <div className=\"error-fallback d-flex justify-content-center align-items-center p-5\">\n      <CCard\n        data-testid=\"error-fallback\"\n        className=\"error-fallback-card d-flex flex-column p-1 justify-self-center text-center mt-5\"\n      >\n        <CCardBody className=\"error-fallback-content\">\n          <img src={CompanyConnectorLogo} className=\"ignite-loading\" alt=\"Ignite app loading\" />\n          <hr />\n          <p>{determineErrorMessage(error)}</p>\n          <p>\n            If you continue to experience issues, please contact{' '}\n            <a href=\"mailto:support@mobilizeignite.com\">support@mobilizeignite.com</a>\n          </p>\n          <br />\n          <CButton\n            data-testid=\"reset-error-boundary-button\"\n            size=\"lg\"\n            onClick={() => {\n              props.resetErrorBoundary()\n              history.push('/')\n            }}\n          >\n            <i className=\"fa fa-undo\" /> Take me back\n          </CButton>\n        </CCardBody>\n      </CCard>\n    </div>\n  )\n}\n","export default \"data:image/png;base64,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\"","import { ServerStore, UserData } from './'\nimport {\n  FileResponseData,\n  GenericNamedItemResponse,\n  GenericLabeledItemResponse,\n} from '../lib/types'\nimport { ServerPageData, PaginatedSearchableParams, PaginationParams } from '../lib/types/Params'\nimport { IBusinessClassifications, INaicsCodes } from '../components/form/fragments/listing'\nimport { GenericSearchMetadata, SocialMediaAccount } from './UserStore'\nimport { TechnologyTypeResponse } from './ServerStore'\nimport { IgniteAwardQueryParams } from './ListingStore'\n\nexport interface IdentifiedServerArtifact {\n  id: number\n}\n\nexport interface NamedServerArtifact {\n  name: string\n}\n\nexport interface IgniteSearchMetadataFulltextMatchType extends IdentifiedServerArtifact {\n  rank: number // a float\n  highlight?: string // only present if the highlight=true param was used\n}\n\nexport interface IgniteSearchMetadataTechnologyTypesMatchType extends IdentifiedServerArtifact {\n  technologyTypes: Array<NamedServerArtifact>\n}\n\nexport interface IgniteSearchMetadataNaicsCodesMatchType extends IdentifiedServerArtifact {\n  naicsCodes: Array<NamedServerArtifact & { code: string | number }>\n}\n\nexport interface IgniteSearchMetadataBusinessClassificationsMatchType\n  extends IdentifiedServerArtifact {\n  businessClassifications: Array<NamedServerArtifact>\n}\n\nexport type ConnectListingResponse = {\n  id: number\n  name: string\n  logo: FileResponseData\n  addressLine1: string\n  addressLine2?: string\n  addressLine3?: string\n  city: string\n  stateProvince: string\n  postalCode: string\n  country: string\n  capabilityStatement: string\n  dunsCode?: string\n  samCode?: string\n  uniqueEntityId: string\n  tagLine: string\n  website: string\n  yearFounded: string\n  createdAt: string\n  updatedAt: string\n  lastLogin: string\n  lastSync: string\n  profileUpdated: string\n  technologyTypes: Array<GenericNamedItemResponse>\n  socialMediaAccounts: Array<SocialMediaAccount>\n  businessClassifications: Array<GenericNamedItemResponse>\n  naicsCodes: Array<ConnectNaicsCode>\n  listingArtifactLinks?: Array<ConnectListingArtifactLink>\n  listingArtifactAttachments?: Array<ConnectListingArtifactAttachment>\n  pointOfContact?: UserData\n  accountId: number\n  // Only provided if the GET used any of our search filter params\n  searchMetadata?: {\n    fulltextSearchMetadata?: {\n      listings?: Array<IgniteSearchMetadataFulltextMatchType>\n      products?: Array<IgniteSearchMetadataFulltextMatchType>\n      services?: Array<IgniteSearchMetadataFulltextMatchType>\n      useCases?: Array<IgniteSearchMetadataFulltextMatchType>\n      awards?: Array<IgniteSearchMetadataFulltextMatchType>\n    }\n    highestRankedFulltextMatch?: IgniteSearchMetadataFulltextMatchType & {\n      artifactType: 'product' | 'service' | 'useCase' | 'award'\n    }\n    technologyTypeSearchMetadata: {\n      listings?: Array<IgniteSearchMetadataTechnologyTypesMatchType>\n      products?: Array<IgniteSearchMetadataTechnologyTypesMatchType>\n      services?: Array<IgniteSearchMetadataTechnologyTypesMatchType>\n      useCases?: Array<IgniteSearchMetadataTechnologyTypesMatchType>\n      awards?: Array<IgniteSearchMetadataTechnologyTypesMatchType>\n    }\n    naicsCodeSearchMetadata: {\n      listings?: Array<IgniteSearchMetadataNaicsCodesMatchType>\n    }\n    businessClassificationsSearchMetadata: {\n      listings?: Array<IgniteSearchMetadataBusinessClassificationsMatchType>\n    }\n    awardAmountRangeSearchMetadata: {\n      awards?: Array<IdentifiedServerArtifact>\n    }\n    awardContractNumberSearchMetadata: {\n      awards?: Array<IdentifiedServerArtifact>\n    }\n    awardDateRangeSearchMetadata: {\n      awards?: Array<IdentifiedServerArtifact>\n    }\n    awardPhaseSearchMetadata: {\n      awards?: Array<IdentifiedServerArtifact>\n    }\n    awardStateSearchMetadata: {\n      awards?: Array<IdentifiedServerArtifact>\n    }\n    awardNaicsCodesSearchMetadata: {\n      awards?: Array<IdentifiedServerArtifact>\n    }\n    matchedArtifacts: {\n      awards?: Array<IdentifiedServerArtifact>\n      products?: Array<IdentifiedServerArtifact>\n      services?: Array<IdentifiedServerArtifact>\n      useCases?: Array<IdentifiedServerArtifact>\n    }\n  }\n  // Only provided if the resourceMetadata was eager loaded\n  resourceMetadata?: {\n    products: {\n      total: number\n      technologyTypes: {\n        distinct: number\n      }\n    }\n    services: {\n      total: number\n      technologyTypes: {\n        distinct: number\n      }\n    }\n    useCases: {\n      total: number\n    }\n    awards: {\n      total: number\n      naicsCodes: {\n        distinct: number\n      }\n    }\n  }\n}\nexport const isConnectListingResponse = (o: any): o is ConnectListingResponse => {\n  if (o === undefined) return false\n  return 'id' in o && !!o['id'] && 'uniqueEntityId' in o && !!o['uniqueEntityId']\n}\n\nexport type ConnectNaicsCode = GenericNamedItemResponse & {\n  code: string\n}\n\nexport interface ConnectListingArtifactPricing {\n  id: string | number\n  amount: number\n  periodIncrement: string\n  periodValue: number\n}\n\nexport interface ConnectListingArtifactLink {\n  id: string | number\n  name: string\n  description: string\n  url: string\n}\n\nexport interface ConnectListingArtifactAttachment {\n  id: string | number\n  name: string\n  description: string\n  file: FileResponseData\n}\n\nexport interface ConnectListingArtifactTechnologyType {\n  artifactId: number\n  technologyTypeId: number\n  listingArtifactTechnologyTypeId: number\n  name: string\n}\n\nexport interface ConnectListingUseCaseData {\n  id: string | number\n  listingId: string | number\n  name: string\n  description: string\n  url?: string\n  logo?: FileResponseData\n  startDate?: string\n  endDate?: string\n  listingArtifactLinks?: Array<ConnectListingArtifactLink>\n  listingArtifactAttachments?: Array<ConnectListingArtifactAttachment>\n  listingArtifactTechnologyTypes?: Array<ConnectListingArtifactTechnologyType>\n}\nexport interface ConnectListingAwardData {\n  id: number\n  contractNumber: string\n  contractAwardDate?: string\n  contractStartDate?: string\n  contractEndDate?: string\n  awardAmount?: string\n  awardTitle?: string\n  productServiceCode?: string\n  principleNaicsCode?: string\n  state?: string\n  awardAbstract?: string\n  phase?: string\n  branch?: string\n  program?: string\n  piName?: string\n  piTitle?: string\n  piPhone?: string\n  piEmail?: string\n  awardYear?: string\n  researchInstitutionName?: string\n  searchMetadata?: GenericSearchMetadata\n}\nexport interface ConnectListingServiceProductData {\n  id: string | number\n  listingId: string | number\n  name: string\n  description: string\n  url?: string\n  logo?: FileResponseData\n  listingArtifactPricings?: Array<ConnectListingArtifactPricing>\n  listingArtifactLinks?: Array<ConnectListingArtifactLink>\n  listingArtifactAttachments?: Array<ConnectListingArtifactAttachment>\n  listingArtifactTechnologyTypes?: Array<ConnectListingArtifactTechnologyType>\n}\n\nexport type PersonData = {\n  name: string\n  email: string\n  phone: string\n  title: string\n  contactType: string\n}\n\nexport type ConnectSearchParams = PaginatedSearchableParams & { ids?: string }\n\nexport class ConnectListingStore extends ServerStore {\n  public getConnectListings = async (params: {\n    page: number | string\n    perPage: number | string\n    search?: string\n    searchListings?: string\n    searchProducts?: string\n    searchServices?: string\n    searchUseCases?: string\n    searchAwards?: string\n    listingTechnologyTypeIds?: string\n    listingBusinessClassificationIds?: string\n    naicsCodeIds?: string\n    listingIdentifier?: string\n    serviceTechnologyTypeIds?: string\n    productTechnologyTypeIds?: string\n    sort?: string\n    sortDirection?: string\n    eager?: string\n  }): Promise<ServerPageData<ConnectListingResponse>> => {\n    return this.server()\n      .get('/api/v1/connect/listings', { params })\n      .then(({ data }) => data as ServerPageData<ConnectListingResponse>)\n  }\n\n  public getConnectBusinessClassifications = async (\n    params: ConnectSearchParams,\n  ): Promise<ServerPageData<IBusinessClassifications>> => {\n    return this.server()\n      .get('/api/v1/connect/business_classifications', {\n        params,\n      })\n      .then(({ data }) => data as ServerPageData<IBusinessClassifications>)\n  }\n\n  public getConnectTechnologyTypes = async (\n    params: ConnectSearchParams,\n  ): Promise<ServerPageData<TechnologyTypeResponse>> => {\n    return this.server()\n      .get('/api/v1/connect/technology_types', {\n        params,\n      })\n      .then(({ data }) => data as ServerPageData<TechnologyTypeResponse>)\n  }\n\n  public getAwardsPhases = async (\n    params: PaginationParams,\n  ): Promise<ServerPageData<GenericLabeledItemResponse>> => {\n    return this.server()\n      .get('/api/v1/connect/awards/phases', { params })\n      .then(({ data }) => data)\n  }\n\n  public getSingleConnectListing = (\n    id: string | number,\n    eager?: string,\n  ): Promise<ConnectListingResponse> => {\n    return this.server()\n      .get(`/api/v1/connect/listings/${id}`, {\n        params: { eager },\n      })\n      .then(({ data }) => data)\n  }\n\n  public getConnectListingServices = async ({\n    listingId,\n    params,\n    eager,\n  }: {\n    listingId: string | number\n    params: PaginationParams\n    eager?: string\n  }): Promise<ServerPageData<ConnectListingServiceProductData>> => {\n    return this.server()\n      .get(`/api/v1/connect/listings/${listingId}/listing_services`, {\n        params: { page: params.page, perPage: params.perPage, eager: eager },\n      })\n      .then(({ data }) => data)\n  }\n\n  public getListingAwards = async ({\n    listingId,\n    params,\n  }: {\n    listingId: string | number\n    params: PaginationParams & IgniteAwardQueryParams\n  }): Promise<ServerPageData<ConnectListingAwardData>> => {\n    return this.server()\n      .get(`/api/v1/connect/listings/${listingId}/listing_awards`, {\n        params: { ...params },\n      })\n      .then(({ data }) => data)\n  }\n\n  public getSingleListingAward = ({\n    listingId,\n    awardId,\n    eager,\n  }: {\n    listingId: string\n    awardId: string\n    eager?: string\n  }): Promise<ConnectListingUseCaseData> => {\n    return this.server()\n      .get(`/api/v1/connect/listings/${listingId}/listing_awards/${awardId}`, { params: { eager } })\n      .then(({ data }) => data)\n  }\n\n  public getListingPersonData = async (\n    listingId: string | number,\n    params: PaginationParams,\n  ): Promise<ServerPageData<PersonData>> => {\n    return this.server()\n      .get(`/api/v1/connect/listings/${listingId}/people`, { params })\n      .then(({ data }) => data)\n  }\n\n  public getConnectListingProducts = async ({\n    listingId,\n    params,\n    eager,\n  }: {\n    listingId: string | number\n    params: PaginationParams\n    eager?: string\n  }): Promise<ServerPageData<ConnectListingServiceProductData>> => {\n    return this.server()\n      .get(`/api/v1/connect/listings/${listingId}/listing_products`, {\n        params: { page: params.page, perPage: params.perPage, eager: eager },\n      })\n      .then(({ data }) => data)\n  }\n\n  public getSingleListingProduct = async ({\n    listingId,\n    productId,\n    eager,\n  }: {\n    listingId: string\n    productId: string\n    eager?: string\n  }): Promise<ConnectListingServiceProductData> => {\n    return this.server()\n      .get(`/api/v1/connect/listings/${listingId}/listing_products/${productId}`, {\n        params: { eager },\n      })\n      .then(({ data }) => data)\n  }\n\n  public getSingleListingService = ({\n    listingId,\n    serviceId,\n    eager,\n  }: {\n    listingId: string\n    serviceId: string\n    eager?: string\n  }): Promise<ConnectListingServiceProductData> => {\n    return this.server()\n      .get(`/api/v1/connect/listings/${listingId}/listing_services/${serviceId}`, {\n        params: { eager },\n      })\n      .then(({ data }) => data)\n  }\n\n  public getConnectListingUseCases = async ({\n    listingId,\n    params,\n    eager,\n  }: {\n    listingId: string | number\n    params: PaginationParams\n    eager?: string\n  }): Promise<ServerPageData<ConnectListingUseCaseData>> => {\n    return this.server()\n      .get(`/api/v1/connect/listings/${listingId}/listing_use_cases`, {\n        params: { page: params.page, perPage: params.perPage, eager: eager },\n      })\n      .then(({ data }) => data)\n  }\n\n  public getSingleListingUseCase = ({\n    listingId,\n    useCaseId,\n    eager,\n  }: {\n    listingId: string\n    useCaseId: string\n    eager?: string\n  }): Promise<ConnectListingUseCaseData> => {\n    return this.server()\n      .get(`/api/v1/connect/listings/${listingId}/listing_use_cases/${useCaseId}`, {\n        params: { eager },\n      })\n      .then(({ data }) => data)\n  }\n\n  public getConnectNaicsCodes = async ({\n    page,\n    perPage,\n    ids,\n    search,\n  }: {\n    page: number | string\n    perPage: number | string\n    ids?: string\n    search?: string\n  }): Promise<ServerPageData<INaicsCodes>> => {\n    return this.server()\n      .get('/api/v1/connect/naics_codes', {\n        params: { page, perPage, ids, search },\n      })\n      .then(({ data }) => data as ServerPageData<INaicsCodes>)\n  }\n}\n","/* eslint-disable react/no-unescaped-entities */\n/* eslint-disable react/jsx-no-comment-textnodes */\nimport { useState } from 'react'\nimport {\n  OptionalImage,\n  formatUrlProtocol,\n  parseDate,\n  SimpleIconButton,\n} from '@mobilizeyourtech/vision-core-react'\nimport {\n  isUseCase,\n  ListingArtifactAttachment,\n  ListingArtifactLink,\n  ListingArtifactTechnologyType,\n  ListingServiceProductData,\n  ListingUseCaseData,\n} from '../../stores/ListingStore'\nimport {\n  CCardHeader,\n  CCardLink,\n  CNav,\n  CNavItem,\n  CNavLink,\n  CTabContent,\n  CTabPane,\n} from '@coreui/react'\nimport '../../scss/views/listings/custom-modal.scss'\nimport { ViewListingArtifactAttachmentOrLink } from './ViewListingArtifactAttachmentOrLink'\nimport { ViewListingArtifactTechnologyType } from './ViewListingArtifactTechnologyType'\n\ntype TProps = {\n  data: ListingServiceProductData | ListingUseCaseData\n  artifactType: string\n  handleEditClick: (artifactId: string | number) => void\n}\n\nexport const ViewListingArtifact = (props: TProps) => {\n  const [activeKey, setActiveKey] = useState<number>(1)\n  return (\n    <>\n      <div\n        className=\"d-flex flex-column justify-content-center align-items-center\"\n        data-testid=\"artifact-modal\"\n      >\n        <div className=\"header-content d-flex w-100 px-3 pb-3 align-items-center text-center justify-content-between\">\n          <OptionalImage src={props.data.logo?.path} className=\"service-logo\" />\n          <h4 className=\"service-name pt-3\">{props.data.name}</h4>\n          <SimpleIconButton\n            className=\"icon-container\"\n            data-testid={`edit-${props.artifactType}-button`}\n            onInvoke={() => props.handleEditClick(props.data.id)}\n            iconClassName=\"fas fa-pen\"\n          />\n        </div>\n        {props.data.url && (\n          <div className=\"header-url\">\n            <CCardLink\n              className=\"pb-4\"\n              target=\"_blank\"\n              href={formatUrlProtocol(props.data.url)}\n              rel=\"noreferrer\"\n            >\n              {props.data.url.replace(/^https?:\\/\\//, '')}\n            </CCardLink>\n          </div>\n        )}\n      </div>\n      <div className=\"px-4 pb-5\">\n        <p className=\"pb-3\">{props.data.description}</p>\n        {isUseCase(props.data) && (\n          <CCardHeader className=\"dates d-flex w-100 align-content-center justify-content-between mb-4\">\n            <p>\n              <span className=\"bold-label\">Start Date:</span>{' '}\n              {props.data.startDate ? (\n                parseDate(props.data.startDate)\n              ) : (\n                <span className=\"grey-label\">N/A</span>\n              )}\n            </p>\n            <p>\n              <span className=\"bold-label\">End Date:</span>{' '}\n              {props.data.endDate ? (\n                parseDate(props.data.endDate)\n              ) : (\n                <span className=\"grey-label\">N/A</span>\n              )}\n            </p>\n          </CCardHeader>\n        )}\n        <CNav variant=\"tabs\" role=\"tablist\">\n          <>\n            <CNavItem>\n              <CNavLink active={activeKey === 1} onClick={() => setActiveKey(1)}>\n                Attachments\n              </CNavLink>\n            </CNavItem>\n            <CNavItem>\n              <CNavLink active={activeKey === 2} onClick={() => setActiveKey(2)}>\n                Links\n              </CNavLink>\n            </CNavItem>\n            {!isUseCase(props.data) && (\n              <CNavItem>\n                <CNavLink active={activeKey === 3} onClick={() => setActiveKey(3)}>\n                  Technology Types\n                </CNavLink>\n              </CNavItem>\n            )}\n          </>\n        </CNav>\n        <CTabContent>\n          <CTabPane className=\"pt-3\" visible={activeKey === 1}>\n            {props.data.listingArtifactAttachments &&\n              props.data.listingArtifactAttachments.length < 1 && (\n                <p className=\"py-5 text-center\">{`Attachments not available for this ${\n                  props.artifactType === 'useCase'\n                    ? props.artifactType.replace('useCase', 'use case')\n                    : props.artifactType\n                }.`}</p>\n              )}\n            {props.data.listingArtifactAttachments?.map((attachment: ListingArtifactAttachment) => (\n              <ViewListingArtifactAttachmentOrLink key={attachment.id} data={attachment} />\n            ))}\n          </CTabPane>\n          <CTabPane className=\"pt-2\" visible={activeKey === 2}>\n            {props.data.listingArtifactLinks && props.data.listingArtifactLinks.length < 1 && (\n              <p className=\"py-5 text-center\">{`Links not available for this ${props.artifactType}.`}</p>\n            )}\n            {props.data.listingArtifactLinks?.map((link: ListingArtifactLink) => (\n              <ViewListingArtifactAttachmentOrLink key={link.id} data={link} />\n            ))}\n          </CTabPane>\n          {!isUseCase(props.data) && (\n            <CTabPane className=\"pt-3\" visible={activeKey === 3}>\n              {props.data.listingArtifactTechnologyTypes &&\n                props.data.listingArtifactTechnologyTypes.length < 1 && (\n                  <p className=\"py-5 text-center\">{`Technology types not available for this ${props.artifactType}.`}</p>\n                )}\n              {props.data.listingArtifactTechnologyTypes?.map(\n                (techType: ListingArtifactTechnologyType) => (\n                  <ViewListingArtifactTechnologyType\n                    key={techType.technologyTypeId}\n                    data={techType}\n                  />\n                ),\n              )}\n            </CTabPane>\n          )}\n        </CTabContent>\n      </div>\n    </>\n  )\n}\n","import { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { useRouteMatch } from 'react-router-dom'\n\nimport {\n  ListingStore,\n  NotificationStore,\n  ApplicationStore,\n  ConnectListingStore,\n} from '../../stores'\nimport {\n  isAward,\n  ListingAwardData,\n  ListingServiceProductData,\n  ListingUseCaseData,\n} from '../../stores/ListingStore'\nimport { CustomModal, SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport { CCardBody, CCardHeader, CModalBody } from '@coreui/react'\nimport { ViewListingArtifact } from './ViewListingArtifact'\nimport { ViewListingAward } from './ViewListingAward'\n\ntype TProps = {\n  listingStore?: ListingStore\n  connectListingStore?: ConnectListingStore\n  notificationStore?: NotificationStore\n  handleEditClick: (artifactId: string | number) => void\n  connect?: Boolean\n}\n\ninterface MatchParams {\n  id: string\n}\n\nconst ViewListingArtifactModal = inject(\n  ApplicationStore.names.listingStore,\n  ApplicationStore.names.connectListingStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [params, setParams] = useQueryParams({\n      artifactType: withDefault(StringParam, undefined),\n      artifactId: withDefault(StringParam, undefined),\n    })\n\n    const {\n      params: { id: listingId },\n    } = useRouteMatch<MatchParams>()\n\n    const [data, setData] = useState<\n      ListingServiceProductData | ListingUseCaseData | ListingAwardData | undefined\n    >(undefined)\n    const [isLoading, setIsLoading] = useState<boolean>(true)\n    const [error, setError] = useState<string | undefined>(undefined)\n\n    useEffect(() => {\n      if (params.artifactId && params.artifactType) {\n        setError(undefined)\n        setIsLoading(true)\n        let promise:\n          | Promise<ListingServiceProductData | ListingUseCaseData | ListingAwardData>\n          | undefined = undefined\n\n        let store = props.connect ? props.connectListingStore : props.listingStore\n        if (params.artifactType === 'service') {\n          promise = store!.getSingleListingService({\n            listingId,\n            serviceId: params.artifactId,\n            eager: 'links,attachments,technologyTypes',\n          })\n        } else if (params.artifactType === 'product') {\n          promise = store!.getSingleListingProduct({\n            listingId,\n            productId: params.artifactId,\n            eager: 'links,attachments,technologyTypes',\n          })\n        } else if (params.artifactType === 'use case') {\n          promise = store!.getSingleListingUseCase({\n            listingId,\n            useCaseId: params.artifactId,\n            eager: 'links,attachments',\n          })\n        } else if (params.artifactType === 'award') {\n          promise = store!.getSingleListingAward({\n            listingId,\n            awardId: params.artifactId,\n            eager: 'links,attachments,technologyTypes',\n          })\n        } else {\n          setError(`Unsupported listing artifact of type ${params.artifactType}`)\n          setTimeout(() => {\n            setIsLoading(false)\n          }, 1000)\n        }\n\n        promise\n          ?.then((response) => {\n            setData(response)\n          })\n          .catch(() => {\n            setError(`Unable to get ${params.artifactType} data; please try again later`)\n          })\n          .finally(() => {\n            setTimeout(() => {\n              setIsLoading(false)\n            }, 1000)\n          })\n      } else {\n        setData(undefined)\n      }\n    }, [params])\n\n    const renderArtifact = () => {\n      if (!data) {\n        return\n      }\n\n      if (isAward(data)) {\n        return <ViewListingAward data={data} />\n      }\n      return (\n        <ViewListingArtifact\n          data={data}\n          artifactType={params.artifactType!}\n          handleEditClick={(artifactId) => props.handleEditClick(artifactId)}\n        />\n      )\n    }\n    return (\n      <CustomModal\n        data-testid=\"CustomModal\"\n        className=\"CustomModal\"\n        isModalOpen={!!params.artifactType && !!params.artifactId}\n        onClose={() => setParams({ artifactId: undefined, artifactType: undefined })}\n        scrollable\n        size={data && isAward(data) ? 'lg' : undefined}\n      >\n        <CModalBody className=\"modal-body-wrapper\" data-testid=\"modal-body-wrapper\">\n          <SuspensionBoundary isLoading={isLoading} data-testid=\"loader\">\n            <div>\n              {error ? (\n                <CCardBody className=\"display-error d-flex w-100\">\n                  <CCardHeader className=\"w-100 d-flex justify-content-center\">{error}</CCardHeader>\n                </CCardBody>\n              ) : (\n                renderArtifact()\n              )}\n            </div>\n          </SuspensionBoundary>\n        </CModalBody>\n      </CustomModal>\n    )\n  }),\n)\n\nexport default ViewListingArtifactModal\n","import { useEffect, useState } from 'react'\n\nexport type WithValidatorParams<T> = {\n  value?: any\n  required?: boolean\n  validate: (v: T) => string | undefined\n  onChange: (v: T | undefined) => any\n  renderInvalidMessage?: (invalidReason: string | undefined) => string | undefined\n}\n\n/**\n * helpful hook to encapsulate our input validation state functions and logic\n * @param params\n */\nexport const useValidation = <T>(params: WithValidatorParams<T>) => {\n  const [value, _setValue] = useState<any>(params.value || '')\n  const [isValid, setIsValid] = useState<boolean>(!params.validate(value))\n  const [invalidReason, setInvalidReason] = useState<string | undefined>(params.validate(value))\n  const [showInvalidReason, setShowInvalidReason] = useState<boolean>(false)\n  const [invalidMessage, setInvalidMessage] = useState<string | undefined>(undefined)\n  const validateRequired = (v: string) => {\n    if (params.required && !v) {\n      return 'required'\n    }\n  }\n\n  // alternate heavy implementation: return value object\n  useEffect(() => {\n    if (params.value !== value) {\n      setValue(params.value)\n    }\n  }, [params.value])\n\n  // Effect to handle the change of value\n  const setValue = (_value: any) => {\n    _setValue(_value)\n    const _invalidReason = validateRequired(_value) || params.validate(_value)\n    setInvalidReason(_invalidReason)\n\n    if (!_invalidReason) {\n      setIsValid(true)\n      setShowInvalidReason(true)\n      setInvalidMessage(undefined)\n    } else {\n      setIsValid(false)\n      params.renderInvalidMessage && setInvalidMessage(params.renderInvalidMessage(_invalidReason))\n    }\n\n    params.onChange(_value)\n  }\n\n  const invokeValidation = () => {\n    const _invalidReason = validateRequired(value) || params.validate(value)\n    setIsValid(!_invalidReason)\n    setInvalidReason(_invalidReason)\n    setShowInvalidReason(true)\n  }\n\n  return {\n    value,\n    setValue,\n    isValid,\n    invalidReason,\n    showInvalidReason,\n    invokeValidation,\n    invalidMessage,\n  }\n}\n","import React from 'react'\n\nexport const useErrorPropagator = () => {\n  const [, setError] = React.useState()\n  const throwError = React.useCallback(\n    (e) => {\n      setError(() => {\n        throw e\n      })\n    },\n    [setError],\n  )\n\n  return { throwError }\n}\n","import React, { useEffect, useState } from 'react'\nimport {\n  ApplicationStore,\n  ServerStore,\n  NotificationStore,\n  SocialMediaTypeResponse,\n} from '../../../stores'\nimport { CCol, CInputGroupText, CInputGroup } from '@coreui/react'\nimport { ValidatedCFormInput } from '../../custom'\nimport { inject, observer } from 'mobx-react'\nimport { determineSocialMediaIconClassName } from '../../../lib/helpers/utils'\n\nexport type SocialMediaFormData = {\n  id?: number\n  socialMediaTypeId: number\n  identifier: string\n}\ntype TProps = {\n  value: Array<SocialMediaFormData>\n  onChange: (value: Array<SocialMediaFormData>) => void\n  serverStore?: ServerStore\n  notificationStore?: NotificationStore\n}\n\nexport const SocialMediaAccountsForm = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [socialMediaData, setSocialMediaData] = useState<\n      Array<SocialMediaTypeResponse> | undefined\n    >(undefined)\n\n    useEffect(() => {\n      props.serverStore\n        ?.getSocialMediaTypes()\n        .then((data) => setSocialMediaData(data))\n        .catch(() =>\n          props.notificationStore?.setNotificationMessage(\n            'Failed to retrieve social media data. Please try again',\n            'error',\n            3000,\n          ),\n        )\n    }, [])\n\n    const onSocialMediaChange = (change: SocialMediaFormData) => {\n      const existing = props.value.find((sm) => sm.socialMediaTypeId === change.socialMediaTypeId)\n      if (existing) {\n        props.onChange(\n          props.value.map((sm) => {\n            if (sm.socialMediaTypeId === change.socialMediaTypeId) {\n              return { ...sm, ...change }\n            }\n            return sm\n          }),\n        )\n      } else {\n        props.onChange([...(props.value || []), change])\n      }\n    }\n\n    const validateLength = (value: string | undefined, min: number): string | undefined => {\n      if (!value || (value && value.length >= min)) {\n        return\n      }\n\n      return 'insufficient_length'\n    }\n\n    return (\n      <React.Fragment>\n        {socialMediaData?.map((smt) => {\n          const id = `socialMedia${smt.name.replace(' ', '')}`\n          const existing = props.value.find((sm) => sm.socialMediaTypeId === smt.id)\n\n          return (\n            <CCol key={smt.id} className=\"sm-input-group\">\n              <CInputGroup>\n                <CInputGroupText id=\"basic-addon1\">\n                  <i className={determineSocialMediaIconClassName(smt.name)} />\n                </CInputGroupText>\n                <ValidatedCFormInput\n                  type=\"text\"\n                  id={id}\n                  data-testid={id}\n                  placeholder={smt.name}\n                  value={existing?.identifier || ''}\n                  onChange={(value) =>\n                    onSocialMediaChange({\n                      socialMediaTypeId: smt.id,\n                      identifier: value ? value : '',\n                    })\n                  }\n                  validate={(value) => validateLength(value, 2)}\n                  renderInvalidMessage={() => 'Must be at least 2 characters'}\n                />\n              </CInputGroup>\n            </CCol>\n          )\n        })}\n      </React.Fragment>\n    )\n  }),\n)\n","import { CCard, CCardText, CCol, CLink, CRow } from '@coreui/react'\nimport {\n  isAttachment,\n  isLink,\n  ListingArtifactAttachment,\n  ListingArtifactLink,\n} from '../../stores/ListingStore'\nimport { fileIconLookup, formatUrlProtocol } from '@mobilizeyourtech/vision-core-react'\n\ntype TProps = {\n  data?: ListingArtifactAttachment | ListingArtifactLink\n}\nexport const ViewListingArtifactAttachmentOrLink = (props: TProps) => {\n  return (\n    <CCard data-testid=\"listing-artifact-or-link\" className=\"listing-card p-2 mt-3 rounded\">\n      <CRow className=\"mt-2 justify-content-md-start px-2\">\n        {props.data && isLink(props.data) && (\n          <CLink\n            className=\"artifact-link\"\n            target=\"_blank\"\n            href={props.data.url && formatUrlProtocol(props.data.url)}\n          >\n            {props.data.name}\n          </CLink>\n        )}\n        {props.data && isAttachment(props.data) && (\n          <CRow className=\"d-flex align-items-center\">\n            <CCol className=\"attachment-image\" md={2}>\n              <CLink href={props.data.file.path} download>\n                {fileIconLookup(props.data.file.mimeType, '#005CB9')}\n              </CLink>\n            </CCol>\n            <CCol md={10}>\n              <CLink className=\"artifact-link\" href={props.data.file.path} download>\n                {props.data?.name}\n              </CLink>\n            </CCol>\n          </CRow>\n        )}\n        <CRow className=\"pt-2\">\n          <CCardText>{props.data?.description}</CCardText>\n        </CRow>\n      </CRow>\n    </CCard>\n  )\n}\n","import React from 'react'\nimport { CCard, CCardBody, CCardHeader, CCol, CFormLabel, CRow } from '@coreui/react'\nimport {\n  GoogleSuggestAddressInput,\n  SingleImageUploader,\n  SingleUserSelect,\n  ValidatedCFormInput,\n} from '../../../custom'\nimport { validateLength, validateWebsite, validateYear } from '../../../../lib/helpers/validation'\nimport { SocialMediaAccountsForm, SocialMediaFormData } from '../SocialMediaAccountsForm'\nimport { AccountStore, ApplicationStore, UserData } from '../../../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { GoogleAddressData } from '../../../custom/GoogleSuggestAddressInput'\n\ntype OrganizationDetailsType = {\n  value: Partial<ListingOrganizationFormData>\n  onChange: (value: Partial<ListingOrganizationFormData>) => void\n  accountStore?: AccountStore\n}\n\nexport type ListingOrganizationFormData = {\n  name: string\n  tagLine: string\n  logo: any\n  yearFounded: string\n  website: string\n  headquarters: Partial<GoogleAddressData>\n  socialMedia?: Array<SocialMediaFormData>\n  pointOfContact?: UserData\n}\n\nexport const OrganizationDetails = inject(\n  ApplicationStore.names.accountStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: OrganizationDetailsType) => {\n    return (\n      <section className=\"OrganizationDetails\">\n        <CCard>\n          <CCardHeader>Details</CCardHeader>\n          <CCardBody>\n            <CRow className=\"mb-2\">\n              <CFormLabel className=\"col-sm-3 colform-label\">Title</CFormLabel>\n              <CCol>\n                <ValidatedCFormInput\n                  required\n                  validate={(v) => validateLength(v, 2)}\n                  data-testid=\"organization-name-input\"\n                  placeholder=\"Product, service, or company name\"\n                  value={props.value.name || ''}\n                  onChange={(value: string | undefined) => {\n                    props.onChange({ ...props.value, name: value })\n                  }}\n                  renderInvalidMessage={() => 'Must be at least 2 characters'}\n                />\n              </CCol>\n            </CRow>\n\n            <CRow className=\"mb-2\">\n              <CFormLabel className=\"col-sm-3 colform-label\">Logo</CFormLabel>\n              <CCol sm={9}>\n                <SingleImageUploader\n                  required\n                  value={\n                    props.value.logo && !(props.value.logo instanceof File)\n                      ? props.value.logo.path\n                      : props.value.logo\n                  }\n                  onFile={(file) => props.onChange({ ...props.value, logo: file })}\n                  data-testid={'listing-logo-uploader'}\n                />\n              </CCol>\n            </CRow>\n\n            <CRow className=\"mb-2\">\n              <CFormLabel className=\"col-sm-3\">Tagline</CFormLabel>\n              <CCol>\n                <ValidatedCFormInput\n                  required\n                  validate={(v) => validateLength(v, 2)}\n                  data-testid=\"organization-tagline-input\"\n                  placeholder=\"Tagline\"\n                  value={props.value.tagLine || ''}\n                  onChange={(value: string | undefined) => {\n                    props.onChange({ ...props.value, tagLine: value })\n                  }}\n                  renderInvalidMessage={() => 'Must be at least 2 characters'}\n                />\n              </CCol>\n            </CRow>\n\n            <CRow>\n              <CFormLabel className=\"col-sm-3 colform-label\">Headquarters</CFormLabel>\n              <CCol>\n                <GoogleSuggestAddressInput\n                  onChange={(change) => props.onChange({ ...props.value, headquarters: change })}\n                  value={props.value.headquarters || {}}\n                  required\n                  isEditForm={true}\n                />\n              </CCol>\n            </CRow>\n\n            <CRow className=\"mb-2\">\n              <CFormLabel className=\"col-sm-3 colform-label\">Year Founded</CFormLabel>\n\n              <CCol>\n                <ValidatedCFormInput\n                  required\n                  type=\"number\"\n                  step=\"1\"\n                  validate={(v) => validateYear(v, 1700)}\n                  data-testid=\"year-founded-input\"\n                  placeholder=\"Year Founded\"\n                  value={props.value.yearFounded || ''}\n                  onChange={(value: string | undefined) => {\n                    props.onChange({ ...props.value, yearFounded: value })\n                  }}\n                  renderInvalidMessage={() => 'Year should be between 1700 and the current year'}\n                />\n              </CCol>\n            </CRow>\n\n            <CRow className=\"mb-2\">\n              <CFormLabel className=\"col-sm-3 colform-label\">Point of Contact</CFormLabel>\n              <CCol sm={9}>\n                <SingleUserSelect\n                  value={props.value.pointOfContact}\n                  onChange={(u) => {\n                    props.onChange({ ...props.value, pointOfContact: u })\n                  }}\n                  getDataFunction={() => props.accountStore!.getDefaultAccountUsers()}\n                />\n              </CCol>\n            </CRow>\n\n            <CRow className=\"mb-2\">\n              <CFormLabel className=\"col-sm-3 colform-label\">Website</CFormLabel>\n              <CCol>\n                <ValidatedCFormInput\n                  required\n                  validate={(v) => validateWebsite(v)}\n                  data-testid=\"website-input\"\n                  placeholder=\"Website\"\n                  value={props.value.website || ''}\n                  onChange={(value: string | undefined) => {\n                    props.onChange({ ...props.value, website: value })\n                  }}\n                  renderInvalidMessage={() => 'Invalid website url'}\n                />\n              </CCol>\n            </CRow>\n\n            <CRow className=\"mb-2 align-items-center\">\n              <CCol className=\"mb-2\">\n                <span className=\"optional-wrapper\">\n                  <CFormLabel className=\"colform-label\">\n                    Social Media <span className=\"subtle\">(Optional)</span>\n                  </CFormLabel>\n                </span>\n              </CCol>\n            </CRow>\n            <CRow className=\"mb-2 align-items-start\">\n              <SocialMediaAccountsForm\n                value={props.value.socialMedia || []}\n                onChange={(change) => props.onChange({ ...props.value, socialMedia: change })}\n              />\n            </CRow>\n          </CCardBody>\n        </CCard>\n      </section>\n    )\n  }),\n)\n","import React from 'react'\nimport { CCard, CCardBody, CCardHeader, CCol, CFormLabel, CRow } from '@coreui/react'\nimport { ValidatedCFormTextArea } from '../../../custom'\nimport { validateLength } from '../../../../lib/helpers/validation'\nimport { BusinessClassifications, IBusinessClassifications } from './BusinessClassifications'\nimport { INaicsCodes, NaicsCodes } from './NaicsCodes'\nimport { TechnologyFocusAreas } from './TechnologyFocusAreas'\nimport { Destructible } from '../../../../stores/ListingStore'\nimport { TechnologyTypeResponse } from '../../../../stores/ServerStore'\n\nexport type ListingContractingDetailsFormData = {\n  samCode?: string\n  dunsCode?: string\n  businessClassifications: Array<IBusinessClassifications & Destructible>\n  naicsCodes: Array<INaicsCodes & Destructible>\n  technologyTypes: Array<TechnologyTypeResponse & Destructible>\n  capabilityStatement: string\n}\n\ntype TProps = {\n  value: Partial<ListingContractingDetailsFormData>\n  onChange: (value: Partial<ListingContractingDetailsFormData>) => void\n}\n\nexport const ContractingDetails = (props: TProps) => {\n  return (\n    <section className=\"ContractingDetails\">\n      <CCard>\n        <CCardHeader>Contracting Details</CCardHeader>\n        <CCardBody>\n          <CRow className=\"mb-2\">\n            <CFormLabel className=\"colform-label\">Business Classifications</CFormLabel>\n            <CCol className=\"dropdown\">\n              <BusinessClassifications\n                selected={props.value.businessClassifications || []}\n                onChange={(change) =>\n                  props.onChange({ ...props.value, businessClassifications: change })\n                }\n              />\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-2\">\n            <CFormLabel className=\"colform-label\">NAICS Codes</CFormLabel>\n            <CCol className=\"dropdown\">\n              <NaicsCodes\n                selected={props.value.naicsCodes || []}\n                onChange={(change) => props.onChange({ ...props.value, naicsCodes: change })}\n              />\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-2\">\n            <CFormLabel className=\"colform-label\">Company Focus Areas</CFormLabel>\n            <CCol className=\"dropdown\">\n              <TechnologyFocusAreas\n                selected={props.value.technologyTypes || []}\n                onChange={(change) => props.onChange({ ...props.value, technologyTypes: change })}\n              />\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-2\">\n            <CFormLabel>Statement of Capabilities</CFormLabel>\n            <CCol>\n              <ValidatedCFormTextArea\n                type=\"text\"\n                placeholder=\"Statement of Capabilities\"\n                id=\"statement-capabilities\"\n                data-testid={'statement-of-capabilities-input'}\n                onChange={(value) => props.onChange({ ...props.value, capabilityStatement: value })}\n                validate={(v) => validateLength(v, 50)}\n                value={props.value.capabilityStatement}\n                renderInvalidMessage={() => 'Must be at least 50 characters'}\n                required\n              />\n            </CCol>\n          </CRow>\n        </CCardBody>\n      </CCard>\n    </section>\n  )\n}\n","import { ListingFormData } from '../../stores/ListingStore'\nimport { validateLength, validateWebsite, validateYear } from './validation'\nimport { NamedServerArtifact, NamedWithLabelServerArtifact, SubPageData } from '../types'\nimport { PaginationParams } from '../types/Params'\nimport { Dispatch, SetStateAction } from 'react'\nimport { NotificationStore } from '../../stores'\nimport { ServerPageData } from '@mobilizeyourtech/vision-core-react'\n\nexport const UNCLASSIFIED_WARNING_PROMPT =\n  'This system is able to handle information up to the UNCLASSIFIED level. Do not add any information or upload any documents that are classified.'\n\nexport const FILE_UPLOAD_MAX_SIZE_BYTES = 10000000 // 10MB\n\nexport const FILE_UPLOAD_MAX_SIZE_CONTENT = '10MB filesize limit'\nexport const uuid = () => {\n  let dt = new Date().getTime()\n  const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n    const r = (dt + Math.random() * 16) % 16 | 0\n    dt = Math.floor(dt / 16)\n    return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16)\n  })\n  return uuid\n}\n\nexport const months = [\n  'January',\n  'February',\n  'March',\n  'April',\n  'May',\n  'June',\n  'July',\n  'August',\n  'September',\n  'October',\n  'November',\n  'December',\n]\n\nexport const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n\nexport const formatDate = (date: Date) => {\n  return `${days[date.getDay()]}, ${\n    months[date.getMonth()]\n  } ${date.getDate()} ${date.getFullYear()}`\n}\n\nexport const determineSocialMediaIconClassName = (name: string) => {\n  switch (name.toLowerCase()) {\n    case 'facebook':\n      return 'fab fa-facebook'\n    case 'linkedin':\n      return 'fab fa-linkedin'\n    case 'twitter':\n      return 'fab fa-twitter-square'\n    default:\n      return undefined\n  }\n}\n\nexport const arrayContainsAny = (arr: any[], elements: any[]) => {\n  return arr.some((e) => elements.includes(e))\n}\n\nexport const objectIsEmpty = (obj: object) => {\n  return Object.keys(obj).length === 0 && Object.values(obj).every((v) => !v)\n}\n\nexport const capitalizeFirstLetter = (str: string) => {\n  const l = str.toLowerCase()\n  return l.charAt(0).toUpperCase() + l.slice(1)\n}\n\nexport const objectContainsAnyValue = (params: {\n  [key: string]: string | undefined | number | Date\n}) => {\n  return Object.values(params).some((value) => !!value)\n}\n\nexport const titleCase = (str: string) => {\n  const words = str.split(' ')\n  const formats = words.map((w) => {\n    return capitalizeFirstLetter(w)\n  })\n  return formats.join(' ')\n}\n\nexport const formatUrlProtocol = (url: string): string => {\n  return /^(http(s?)):\\/\\//i.test(url) ? url : `https://${url}`\n}\n\nexport const formatNumber = (num: string | number) => {\n  return num.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n}\n\nexport const isListingSubmittable = (formData: Partial<ListingFormData> | undefined): boolean => {\n  if (!formData) {\n    return false\n  }\n\n  let errors = [\n    validateWebsite(formData.website),\n    validateYear(formData.yearFounded),\n    validateLength(formData.capabilityStatement, 50),\n    validateLength(formData.name, 2),\n    validateLength(formData.tagLine, 2),\n    validateLength(formData.headquarters?.city, 2),\n    validateLength(formData.headquarters?.addressLine1, 2),\n    validateLength(formData.headquarters?.postalCode, 2),\n  ]\n\n  formData.socialMedia &&\n    formData.socialMedia.forEach((socialAccount) => {\n      if (socialAccount.identifier.length === 1) {\n        errors.push(validateLength(socialAccount.identifier, 2))\n      }\n    })\n\n  let validAttachments = formData.listingArtifactAttachmentsAttributes\n    ? formData.listingArtifactAttachmentsAttributes?.every((v) => !!v.file)\n    : true\n  let validLinks = formData.listingArtifactLinksAttributes\n    ? formData.listingArtifactLinksAttributes?.every((v) => !validateWebsite(v.url) && !!v.name)\n    : true\n  let validLogo = !!formData.logo\n\n  if (errors.some((err) => !!err)) {\n    return false\n  } else if (!validAttachments || !validLinks || !validLogo) {\n    return false\n  }\n\n  return [\n    formData.pointOfContact,\n    formData.headquarters?.stateOrProvince,\n    formData.headquarters?.country,\n  ].every((e) => !!e)\n}\n\ntype SearchParamType<T extends NamedWithLabelServerArtifact | NamedServerArtifact> = {\n  ids: string | undefined\n  getDropdownData: (p: PaginationParams & { ids?: string }) => Promise<ServerPageData<T>>\n  setSelected: Dispatch<SetStateAction<T[]>>\n  typeForErrorMessage: string\n}\n\nexport const initializeSearchDropdown = <\n  T extends NamedWithLabelServerArtifact | NamedServerArtifact,\n>(\n  searchParams: SearchParamType<T>,\n  notificationStore: NotificationStore,\n) => {\n  if (searchParams.ids) {\n    searchParams\n      .getDropdownData({\n        page: 1,\n        perPage: searchParams.ids?.split(',').length,\n        ...searchParams,\n      })\n      .then((response) =>\n        searchParams.setSelected(\n          response.data.map((d) => {\n            const label = (d as NamedWithLabelServerArtifact).label\n            const name = (d as NamedServerArtifact).name\n\n            return { ...d, label: name ? name : label }\n          }),\n        ),\n      )\n      .catch(() =>\n        notificationStore?.setNotificationMessage(\n          'Failed to populate ' + searchParams.typeForErrorMessage + '. Please try again later',\n          'error',\n          3000,\n        ),\n      )\n  }\n}\n\nexport const isSubPageData = <Type>(o: any): o is SubPageData<Type> => {\n  return 'data' in o && 'count' in o && 'path' in o\n}\n\nexport const generateRandomId = () => Math.random().toString(36).substring(2, 12)\n","import React from 'react'\nexport type TProps = {\n  className?: string\n}\nexport const Spinner = (props: TProps) => {\n  // Placeholder until we want our own custom\n  // sourced from https://icons8.com/preloaders/en/search/spinner\n  // Used a gif as opposed to css animations anticipating possible IE limitations\n  return (\n    <img\n      data-testid=\"spinner\"\n      className={props.className}\n      src={'/spinner.gif'}\n      alt={'Loading Screen'}\n    />\n  )\n}\n","import { useState, useRef, useEffect } from 'react'\nimport classnames from 'classnames'\n\nexport interface ICustomDropdownItem {\n  label: string\n}\n\nexport interface CustomDropdownProps<T extends ICustomDropdownItem> {\n  options: Array<string | T>\n  placeholder: string\n  selectedOption?: string | T\n  onSelect: (selection: string | T) => void\n  onSelectNone?: () => void\n  ariaRequired?: boolean\n  CustomDropdownClass?: string\n  dropdownClass?: string\n  dataTestId?: string\n  disabled?: boolean\n}\n\nexport const CustomDropdown = <T extends ICustomDropdownItem>(props: CustomDropdownProps<T>) => {\n  const [isExpanded, toggleIsExpanded] = useState<boolean>(false)\n\n  const itemRefs = useRef<Array<HTMLParagraphElement>>([])\n  const dropdownRef = useRef<HTMLDivElement>(null)\n  let node: any = useRef()\n\n  const handleTargetOutside = (e: MouseEvent | FocusEvent) => {\n    if (node.current.contains(e.target)) {\n      return\n    }\n    toggleIsExpanded(false)\n  }\n\n  const handleEscape = ({ key: kypress }: KeyboardEvent) => {\n    if (kypress === 'Escape') {\n      toggleIsExpanded(false)\n    }\n  }\n\n  useEffect(() => {\n    if (isExpanded) {\n      document.addEventListener('mousedown', handleTargetOutside)\n      document.addEventListener('focusin', handleTargetOutside)\n      document.addEventListener('keydown', handleEscape)\n    }\n    return () => {\n      document.removeEventListener('mousedown', handleTargetOutside)\n      document.removeEventListener('focusin', handleTargetOutside)\n      document.removeEventListener('keydown', handleEscape)\n    }\n  }, [isExpanded])\n\n  const isLabeled = (o: string | T | undefined): o is T => {\n    return o != null ? typeof o !== 'string' : false\n  }\n\n  const getDisplayLabel = (o: string | T | undefined): string | T | undefined => {\n    return isLabeled(o) ? o.label : o\n  }\n\n  return (\n    <section className={`CustomDropdown ${props.CustomDropdownClass}`} ref={node}>\n      <div\n        className={classnames('dropdown-value', props.dropdownClass, props.disabled && 'disabled')}\n        data-testid={props.dataTestId || `CustomDropdown-dropdown-value`}\n        tabIndex={0}\n        ref={dropdownRef}\n        onClick={() => {\n          if (props.disabled) return\n          toggleIsExpanded(!isExpanded)\n        }}\n        aria-required={props.ariaRequired}\n        role=\"listbox\"\n        aria-disabled={props.disabled}\n        onKeyDown={(e) => {\n          if (props.disabled) return\n          let { key: keyPress } = e\n          if (keyPress === 'Enter') {\n            toggleIsExpanded(!isExpanded)\n          } else if (keyPress === 'ArrowDown') {\n            e.preventDefault()\n            toggleIsExpanded(true)\n            itemRefs.current.length && itemRefs.current[0].focus()\n          }\n        }}\n      >\n        <p data-testid={'CustomDropdown-value'}>\n          {getDisplayLabel(props.selectedOption) || props.placeholder}\n        </p>\n        <div className=\"icon-container\">\n          <i className=\"fas fa-caret-up\" />\n          <i className=\"fas fa-caret-down\" />\n        </div>\n      </div>\n\n      {isExpanded && (\n        <div\n          data-testid=\"CustomDropdown-dropdown-menu\"\n          className={classnames('dropdown-menu', {\n            isExpanded: isExpanded,\n          })}\n        >\n          {props.onSelectNone && (\n            <p\n              data-testid=\"CustomDropdown-select-none\"\n              onClick={() => {\n                toggleIsExpanded(false)\n                props.onSelectNone && props.onSelectNone()\n              }}\n              className={'dropdown-item clickable select-none'}\n              tabIndex={-1}\n              ref={(element) => {\n                if (element) {\n                  itemRefs.current[0] = element\n                }\n              }}\n              onKeyDown={(e) => {\n                if (e.key === 'Enter') {\n                  props.onSelectNone && props.onSelectNone()\n                  toggleIsExpanded(false)\n                  dropdownRef.current && dropdownRef.current.focus()\n                } else if (e.key === 'ArrowDown') {\n                  e.preventDefault()\n                  itemRefs.current.length > 1 && itemRefs.current[1].focus()\n                } else if (e.key === 'ArrowUp') {\n                  e.preventDefault()\n                  dropdownRef.current && dropdownRef.current.focus()\n                }\n              }}\n            >\n              Select None\n            </p>\n          )}\n          {props.options.map((o, idx) => {\n            return (\n              <p\n                key={idx}\n                className={classnames('dropdown-item', {\n                  isActive: o === props.selectedOption,\n                })}\n                tabIndex={-1}\n                role=\"option\"\n                aria-selected={o === props.selectedOption}\n                data-testid={`CustomDropdown-item-${idx}`}\n                ref={(element) => {\n                  if (element) {\n                    itemRefs.current[props.onSelectNone ? idx + 1 : idx] = element\n                  }\n                }}\n                onClick={() => {\n                  toggleIsExpanded(false)\n                  props.onSelect(o)\n                }}\n                onKeyDown={(e) => {\n                  let { key: keyPress } = e\n                  if (keyPress === 'Enter') {\n                    toggleIsExpanded(false)\n                    props.onSelect(o)\n                  } else if (keyPress === 'ArrowDown') {\n                    e.preventDefault()\n                    let nextItemIndex = props.onSelectNone ? idx + 2 : idx + 1\n                    nextItemIndex < itemRefs.current.length &&\n                      itemRefs.current[nextItemIndex].focus()\n                  } else if (keyPress === 'ArrowUp') {\n                    e.preventDefault()\n                    let previousItemIndex = props.onSelectNone ? idx : idx - 1\n                    previousItemIndex > -1 && itemRefs.current[previousItemIndex].focus()\n                  }\n                }}\n              >\n                {getDisplayLabel(o)}\n              </p>\n            )\n          })}\n        </div>\n      )}\n    </section>\n  )\n}\n","import { makeAutoObservable } from 'mobx'\nimport {\n  ServerStore,\n  AuthStore,\n  UserStore,\n  NotificationStore,\n  ListingStore,\n  ConnectListingStore,\n} from './'\nimport { AccountStore } from './AccountStore'\nimport { AnalyticsStore } from './AnalyticsStore'\n\nexport class ApplicationStore {\n  public static names = {\n    serverStore: 'serverStore',\n    authStore: 'authStore',\n    userStore: 'userStore',\n    notificationStore: 'notificationStore',\n    listingStore: 'listingStore',\n    accountStore: 'accountStore',\n    connectListingStore: 'connectListingStore',\n    analyticsStore: 'analyticsStore',\n  }\n  public readonly serverStore\n  public readonly authStore\n  public readonly userStore\n  public readonly notificationStore\n  public readonly listingStore\n  public readonly accountStore: AccountStore\n  public readonly connectListingStore\n  public readonly analyticsStore\n\n  public sidebarShow = true\n  public sidebarUnfoldable = false\n  public siteSettings: { [key: string]: any } | undefined = undefined\n\n  constructor() {\n    makeAutoObservable(this)\n    this.authStore = new AuthStore()\n    this.notificationStore = new NotificationStore()\n    this.listingStore = new ListingStore(this.authStore, this.notificationStore)\n    this.serverStore = new ServerStore(this.authStore, this.notificationStore)\n    this.userStore = new UserStore(this.authStore, this.notificationStore)\n    this.accountStore = new AccountStore(this.authStore, this.notificationStore)\n    this.connectListingStore = new ConnectListingStore(this.authStore, this.notificationStore)\n    this.analyticsStore = new AnalyticsStore(this.authStore, this.notificationStore)\n  }\n\n  getStores = () => {\n    return {\n      [ApplicationStore.names.serverStore]: this.serverStore,\n      [ApplicationStore.names.authStore]: this.authStore,\n      [ApplicationStore.names.userStore]: this.userStore,\n      [ApplicationStore.names.notificationStore]: this.notificationStore,\n      [ApplicationStore.names.listingStore]: this.listingStore,\n      [ApplicationStore.names.accountStore]: this.accountStore,\n      [ApplicationStore.names.connectListingStore]: this.connectListingStore,\n      [ApplicationStore.names.analyticsStore]: this.analyticsStore,\n    }\n  }\n\n  public toggleSidebarShow() {\n    this.setSidebarShow(!this.sidebarShow)\n  }\n\n  public setSidebarShow(val: boolean) {\n    this.sidebarShow = val\n  }\n\n  public toggleSidebarUnfoldable() {\n    this.setSidebarUnfoldable(!this.sidebarUnfoldable)\n  }\n\n  public setSidebarUnfoldable(val: boolean) {\n    this.sidebarUnfoldable = val\n  }\n\n  public getSiteSettings(): Promise<{ [key: string]: any }> {\n    return this.serverStore\n      .server()\n      .get('/api/v1/site_settings')\n      .then(({ data }) => data)\n  }\n\n  public setSiteSettings(siteSettings: { [key: string]: any }) {\n    this.siteSettings = siteSettings\n  }\n\n  public checkSignupUserEmail(email: string): Promise<{ value: boolean }> {\n    return this.serverStore\n      .server()\n      .get('/api/v1/gov/check_email', { params: { email } })\n      .then(({ data }) => data)\n  }\n}\n","import { ServerPageData } from '@mobilizeyourtech/vision-core-react'\nimport { ServerStore } from './ServerStore'\nimport { AccountData, InvitedUserData, UserData } from './UserStore'\n\nexport type TermsOrPrivacyResponse = {\n  id: string | number\n  title: string\n  content: string\n  publishDate: string\n}\n\nexport type UserInviteData = {\n  firstName: string\n  lastName: string\n  email: string\n}\n\nexport type UserInviteResponse = {\n  id: number\n  firstName: string\n  lastName: string\n  email: string\n  accepted: boolean\n  inviteTokenExpiry: string\n}\n\nexport class AccountStore extends ServerStore {\n  public baseCurrentUserURL = '/api/v1/current_user'\n\n  public getDefaultAccountUsers(): Promise<Array<UserData>> {\n    return this.server()\n      .get(`${this.baseCurrentUserURL}/account/users`)\n      .then(({ data }) => data)\n  }\n\n  public getAccountUsers(\n    accountId: number,\n    page: string | number,\n    perPage: string | number,\n    includeUserInvites: boolean,\n  ): Promise<ServerPageData<UserData | InvitedUserData>> {\n    return this.server()\n      .get(`/api/v1/accounts/${accountId}/users`, {\n        params: { page, perPage, includeUserInvites },\n      })\n      .then(({ data }) => data)\n  }\n\n  public inviteUserToAccount(\n    accountId: string | number,\n    userData: Partial<UserInviteData>,\n  ): Promise<UserInviteResponse> {\n    return this.server().post(`/api/v1/accounts/${accountId}/user_invites`, userData)\n  }\n\n  public fetchUserInvite(\n    accountId: string | number,\n    userInviteId: string | number,\n  ): Promise<UserInviteResponse> {\n    return this.server()\n      .get(`/api/v1/accounts/${accountId}/user_invites/${userInviteId}`)\n      .then(({ data }) => data)\n  }\n\n  public editUserInvite(\n    accountId: string | number,\n    userInviteId: string | number,\n    userData: Partial<UserInviteData>,\n  ): Promise<UserInviteResponse> {\n    return this.server().patch(\n      `/api/v1/accounts/${accountId}/user_invites/${userInviteId}`,\n      userData,\n    )\n  }\n\n  public resendUserInvite(\n    accountId: string | number,\n    userInviteId: string | number,\n  ): Promise<UserInviteResponse> {\n    return this.server().patch(`/api/v1/accounts/${accountId}/user_invites/${userInviteId}/resend`)\n  }\n\n  public deleteUserInvite(\n    accountId: string | number,\n    userInviteId: string | number,\n  ): Promise<void> {\n    return this.server().delete(`/api/v1/accounts/${accountId}/user_invites/${userInviteId}`)\n  }\n\n  public getLatestTerms(): Promise<TermsOrPrivacyResponse> {\n    return this.server()\n      .get<TermsOrPrivacyResponse>('/api/v1/terms')\n      .then(({ data }) => data)\n  }\n\n  public getLatestPrivacy(): Promise<TermsOrPrivacyResponse> {\n    return this.server()\n      .get<TermsOrPrivacyResponse>('/api/v1/privacy')\n      .then(({ data }) => data)\n  }\n\n  public getLatestAntiSpamPolicy(): Promise<TermsOrPrivacyResponse> {\n    return this.server()\n      .get<TermsOrPrivacyResponse>('/api/v1/anti_spam_policy')\n      .then(({ data }) => data)\n  }\n\n  public signTerms(termId: string | number) {\n    return this.server().post(`/api/v1/terms/${termId}/sign`)\n  }\n\n  public signPrivacy(privacyId: string | number) {\n    return this.server().post(`/api/v1/privacy/${privacyId}/sign`)\n  }\n\n  public recordSetupPaymentSessionComplete(): Promise<AccountData> {\n    return this.server()\n      .patch(`/api/v1/current_user/account/mark_setup_session_complete`)\n      .then(({ data }) => data)\n  }\n}\n","import { ServerStore } from './ServerStore'\nimport { PaginationParams, ServerPageData } from '../lib/types/Params'\n\nexport type TechnologyTypeStatistic = {\n  id: number\n  listingAwardCount: number\n  listingAwardPct: string\n  listingCount: number\n  listingPct: string\n  listingProductCount: number\n  listingProductPct: string\n  listingServiceCount: number\n  listingServicePct: string\n  name: string\n  usersCount: number\n  usersPct: string\n  visionUsersCount: number\n  visionUsersPct: string\n}\n\nexport type PieChartCellDataRecord = {\n  testingId: string\n  name: string\n  value: number\n  id: string | number\n}\n\nexport type SBCTimelineStatistic = {\n  claimedListingsTotal: number\n  listingsTotal: number\n  month: string\n  usersTotal: number\n}\n\nexport type ActiveConversationStatistic = {\n  activeConversations: number\n  messagesSent: number\n  month: string\n}\n\nexport type DafUsersStatistic = {\n  userLogins: number\n  messagesSent: number\n  month: string\n}\n\nexport type SbcUsersStatistic = {\n  userLogins: number\n  messagesSent: number\n  month: string\n}\n\nexport type GovUsersTimelineStatistic = {\n  month: string\n  usersTotal: number\n  visionUsersTotal: number\n}\n\nexport type ListingPageViewStatistic = {\n  id: number\n  name: string\n  pageViews: number\n}\n\nexport type OrganizationUserStatistic = {\n  organization: string\n  usersCount: number\n}\n\nexport type GovUserChatResponseStatistic = {\n  value: string | number | null\n}\n\nexport type GovUserEngagedCompanies = {\n  count: number\n}\n\nexport class AnalyticsStore extends ServerStore {\n  public getTechnologyTypeStatistics = async (): Promise<Array<TechnologyTypeStatistic>> => {\n    return this.server()\n      .get('/api/v1/admin/statistics/technology_types_statistic')\n      .then(({ data }) => data as Array<TechnologyTypeStatistic>)\n  }\n\n  public getSBCTimelineStatistics = async (): Promise<Array<SBCTimelineStatistic>> => {\n    return this.server()\n      .get('/api/v1/admin/statistics/company_timeline_statistic')\n      .then(({ data }) => data as Array<SBCTimelineStatistic>)\n  }\n\n  public getGovUsersTimelineStatistics = async (): Promise<Array<GovUsersTimelineStatistic>> => {\n    return this.server()\n      .get('/api/v1/admin/statistics/gov_users_timeline_statistic')\n      .then(({ data }) => data as Array<GovUsersTimelineStatistic>)\n  }\n\n  public getListingPageViewStatistics(\n    params: PaginationParams,\n  ): Promise<ServerPageData<ListingPageViewStatistic>> {\n    return this.server()\n      .get('/api/v1/admin/statistics/listing_page_views_statistic', { params })\n      .then(({ data }) => data)\n  }\n\n  public getGovUserEngagedCompaniesStatistic = async (): Promise<GovUserEngagedCompanies> => {\n    return this.server()\n      .get('/api/v1/admin/statistics/count_gov_user_engaged_companies_statistic')\n      .then(({ data }) => data)\n  }\n\n  public getGovUserChatResponseStatistic = async (): Promise<GovUserChatResponseStatistic> => {\n    return this.server()\n      .get('/api/v1/admin/statistics/pct_gov_user_chat_response_statistic')\n      .then(({ data }) => data)\n  }\n\n  public getActiveConversationStatistics = async (): Promise<\n    Array<ActiveConversationStatistic>\n  > => {\n    return this.server()\n      .get('/api/v1/admin/statistics/active_conversations_statistic')\n      .then(({ data }) => data as Array<ActiveConversationStatistic>)\n  }\n\n  public getDafUserStatistics = async (): Promise<Array<DafUsersStatistic>> => {\n    return this.server()\n      .get('/api/v1/admin/statistics/daf_users_statistic')\n      .then(({ data }) => data as Array<DafUsersStatistic>)\n  }\n\n  public getSbcUserStatistics = async (): Promise<Array<SbcUsersStatistic>> => {\n    return this.server()\n      .get('/api/v1/admin/statistics/sbc_users_statistic')\n      .then(({ data }) => data as Array<SbcUsersStatistic>)\n  }\n\n  public getOrganizationUserStatistics(\n    params: PaginationParams,\n  ): Promise<ServerPageData<OrganizationUserStatistic>> {\n    return this.server()\n      .get('/api/v1/admin/statistics/organization_users_statistic', { params })\n      .then(({ data }) => data)\n  }\n}\n","import React from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ServerStore, NotificationStore } from '../../../../stores'\nimport { PaginationData, SearchableParams } from '../../../../lib/types/Params'\nimport {\n  isDirtySelectableItem,\n  SelectableItem,\n  ServerBackedMultiSelectAutoComplete,\n} from '@mobilizeyourtech/vision-core-react'\n\nexport interface IBusinessClassifications {\n  id: number\n  name: string\n}\n\ntype TProps = {\n  serverStore?: ServerStore\n  notificationStore?: NotificationStore\n  selected: Array<IBusinessClassifications & SelectableItem>\n  onChange: (nc: Array<IBusinessClassifications & SelectableItem>) => void\n}\n\nexport const BusinessClassifications = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const getBusinessClassifications = (params: SearchableParams) => {\n      return props.serverStore!.getBusinessClassifications(params).then((response) => ({\n        data: response.data.map((r) => ({ ...r, label: r.name })),\n        // This is a hack, since this isn't paginated\n        pagination: {\n          count: response.data.length,\n          page: 1,\n          pages: 1,\n        } as PaginationData,\n      }))\n    }\n\n    const getSelectedBusinessClassifications = () => {\n      return props.selected.map((nc) => {\n        return { ...nc, label: nc.name }\n      })\n    }\n\n    return (\n      <section className=\"BusinessClassifications\" data-testid=\"BusinessClassifications-section\">\n        <ServerBackedMultiSelectAutoComplete\n          loadMore={getBusinessClassifications}\n          onChange={(change) =>\n            // DirtySelectableItem is only possible if allowDirty were set to tru\n            props.onChange(\n              change.filter((e) => !isDirtySelectableItem(e)) as Array<\n                IBusinessClassifications & SelectableItem\n              >,\n            )\n          }\n          selections={getSelectedBusinessClassifications()}\n          placeholder={'Search and select multiple business classifications'}\n          className=\"business-classifications\"\n          data-testid={'business-classifications-select'}\n        />\n      </section>\n    )\n  }),\n)\n","import React from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ServerStore, NotificationStore } from '../../../../stores'\n\nimport { PaginatedSearchableParams, ServerPageData } from '../../../../lib/types/Params'\nimport {\n  isDirtySelectableItem,\n  SelectableItem,\n  ServerBackedMultiSelectAutoComplete,\n} from '@mobilizeyourtech/vision-core-react'\n\nexport interface INaicsCodes {\n  id: number\n  name: string\n  code: string\n  label: string\n}\n\ntype TProps = {\n  serverStore?: ServerStore\n  notificationStore?: NotificationStore\n  selected: Array<INaicsCodes & SelectableItem>\n  onChange: (nc: Array<INaicsCodes & SelectableItem>) => void\n}\n\nexport const NaicsCodes = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const getNaicsCodes = (\n      params: PaginatedSearchableParams,\n    ): Promise<ServerPageData<INaicsCodes & SelectableItem>> => {\n      return props.serverStore!.getNaicsCodes(params).then((response) => ({\n        pagination: response.pagination,\n        data: response.data.map((r) => ({ ...r, label: `(${r.code}) - ${r.name}` })),\n      }))\n    }\n\n    const getSelectedNaicsCodes = () => {\n      return props.selected.map((nc) => {\n        return { ...nc, label: `(${nc.code}) - ${nc.name}` }\n      })\n    }\n\n    return (\n      <section className=\"NaicsCodes\">\n        <ServerBackedMultiSelectAutoComplete\n          loadMore={getNaicsCodes}\n          onChange={(change) =>\n            // DirtySelectableItem is only possible if allowDirty were set to tru\n            props.onChange(\n              change.filter((e) => !isDirtySelectableItem(e)) as Array<\n                INaicsCodes & SelectableItem\n              >,\n            )\n          }\n          selections={getSelectedNaicsCodes()}\n          placeholder={'Search and select multiple NAICS codes'}\n          className=\"naics-codes\"\n          data-testid={'naics-codes-select'}\n        />\n      </section>\n    )\n  }),\n)\n","import React from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ServerStore, NotificationStore } from '../../../../stores'\nimport { PaginatedSearchableParams } from '../../../../lib/types/Params'\nimport {\n  isDirtySelectableItem,\n  SelectableItem,\n  ServerBackedMultiSelectAutoComplete,\n  ServerPageData,\n} from '@mobilizeyourtech/vision-core-react'\nimport { TechnologyTypeResponse } from '../../../../stores/ServerStore'\n\ntype TProps = {\n  serverStore?: ServerStore\n  notificationStore?: NotificationStore\n  selected: Array<TechnologyTypeResponse & SelectableItem>\n  onChange: (nc: Array<TechnologyTypeResponse & SelectableItem>) => void\n}\n\nexport const TechnologyFocusAreas = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const getTechnologyFocusAreas = (\n      params: PaginatedSearchableParams,\n    ): Promise<ServerPageData<TechnologyTypeResponse & SelectableItem>> => {\n      return props.serverStore!.getTechnologyTypes(params).then((response) => ({\n        pagination: response.pagination,\n        data: response.data.map((r) => {\n          return { ...r, label: r.name, technologyTypeId: r.id }\n        }),\n      }))\n    }\n\n    const getSelectedTechnologyFocusAreas = () => {\n      return props.selected.map((t) => {\n        return { ...t, label: t.name }\n      })\n    }\n\n    return (\n      <section className=\"TechnologyFocusAreas\">\n        <ServerBackedMultiSelectAutoComplete\n          loadMore={getTechnologyFocusAreas}\n          onChange={(change) =>\n            // DirtySelectableItem is only possible if allowDirty were set to tru\n            props.onChange(\n              change.filter((e) => !isDirtySelectableItem(e)) as Array<\n                TechnologyTypeResponse & SelectableItem\n              >,\n            )\n          }\n          selections={getSelectedTechnologyFocusAreas()}\n          placeholder={'Search and select multiple technologies'}\n          className=\"technology-focus-areas\"\n          data-testid={'technology-focus-areas-select'}\n        />\n      </section>\n    )\n  }),\n)\n","import React, { useEffect } from 'react'\nimport { CPagination, CPaginationItem, CFormSelect } from '@coreui/react'\nimport { PaginationData } from '../../lib/types'\nimport { NumberParam, useQueryParams, withDefault } from 'use-query-params'\nimport classNames from 'classnames'\n\ntype TProps = {\n  pagination: PaginationData\n  defaultPerPage?: number\n  customPerPages?: number[]\n}\n\nexport const Pagination = (props: TProps) => {\n  const AVAILABLE_PER_PAGES = [5, 10, 20]\n  const [paginationParams, setPaginationParams] = useQueryParams({\n    page: withDefault(NumberParam, props.pagination.page),\n    perPage: withDefault(NumberParam, 10),\n  })\n\n  const isPreviousPageEnabled = paginationParams.page && Number(paginationParams.page) > 1\n\n  const isNextPageEnabled = props.pagination.last > props.pagination.page\n\n  useEffect(() => {\n    if (props.pagination) {\n      if (paginationParams.page != null) {\n        if (paginationParams.page > props.pagination.pages) {\n          setPaginationParams((current) => ({ ...current, page: props.pagination.pages }))\n        } else if (paginationParams.page <= 0 || isNaN(paginationParams.page)) {\n          setPaginationParams(() => ({ ...paginationParams, page: 1 }))\n        }\n      }\n\n      if (paginationParams.perPage != null) {\n        if (paginationParams.perPage <= 0 || isNaN(paginationParams.perPage)) {\n          setPaginationParams((current) => ({ ...current, perPage: undefined }))\n        }\n      }\n    }\n  }, [paginationParams, props.pagination])\n\n  return (\n    <section className=\"Pagination pagination-container row\">\n      <div className=\"col-1\">\n        <CFormSelect\n          size=\"sm\"\n          className=\"pagination-select\"\n          data-testid=\"pagination-entries-select\"\n          aria-label=\"Number of items per page\"\n          value={paginationParams.perPage || props.defaultPerPage || 10}\n          onChange={(event) => {\n            setPaginationParams({ perPage: Number(event.target.value), page: 1 })\n          }}\n        >\n          {(props.customPerPages || AVAILABLE_PER_PAGES).map((perPage, index) => {\n            return (\n              <option\n                className=\"pagination-select-item\"\n                data-testid={`select-option-${perPage}`}\n                key={index}\n                value={perPage}\n              >\n                {perPage}\n              </option>\n            )\n          })}\n        </CFormSelect>\n      </div>\n      <div className=\"col text-center\">\n        <p>\n          {props.pagination.from} to {props.pagination.to} of {props.pagination.count} entries\n        </p>\n      </div>\n      <div className=\"col-auto\">\n        <CPagination aria-label=\"Page navigation example\">\n          <CPaginationItem\n            aria-label=\"Previous\"\n            aria-hidden=\"true\"\n            className={classNames('page-item', { disabled: !isPreviousPageEnabled })}\n            data-testid={`previous-page-li`}\n            disabled={!isPreviousPageEnabled}\n            onClick={() => {\n              isPreviousPageEnabled &&\n                setPaginationParams({ page: Number(paginationParams.page) - 1 })\n            }}\n          >\n            <span>&laquo;</span>\n          </CPaginationItem>\n          {props.pagination?.series.map((l: string | number) => {\n            return (\n              <CPaginationItem\n                key={l}\n                data-testid={`${l}-page-li`}\n                className={classNames('page-item', {\n                  active: props.pagination.page.toString() === l.toString(),\n                  disabled: l === 'gap',\n                })}\n                onClick={() => {\n                  setPaginationParams({ page: Number(l) })\n                }}\n              >\n                {l === 'gap' ? '...' : l}\n              </CPaginationItem>\n            )\n          })}\n          <CPaginationItem\n            aria-label=\"Next\"\n            aria-hidden=\"true\"\n            className={`page-item`}\n            data-testid={`next-page-li`}\n            disabled={!isNextPageEnabled}\n            onClick={() => {\n              isNextPageEnabled && setPaginationParams({ page: paginationParams.page + 1 })\n            }}\n          >\n            <span>&raquo;</span>\n          </CPaginationItem>\n        </CPagination>\n      </div>\n    </section>\n  )\n}\n","import { CBadge } from '@coreui/react'\nimport { ListingArtifactTechnologyType } from '../../stores/ListingStore'\n\ntype TProps = {\n  data: ListingArtifactTechnologyType\n}\n\nexport const ViewListingArtifactTechnologyType = (props: TProps) => {\n  return (\n    <div className=\"d-inline-block\">\n      <CBadge\n        data-testid={`listing-artifact-tech-type-${props.data.name}`}\n        color=\"primary\"\n        size=\"sm\"\n        className=\"px-3 py-2 mx-1\"\n      >\n        <p>{props.data.name}</p>\n      </CBadge>\n    </div>\n  )\n}\n","import { ListingAwardData } from '../../stores/ListingStore'\nimport { CBadge, CCard, CCardBody, CCardTitle, CCol, CContainer, CRow } from '@coreui/react'\nimport { parseDate } from '@mobilizeyourtech/vision-core-react'\nimport classnames from 'classnames'\n\nexport interface ViewListingAwardProps {\n  data: ListingAwardData\n}\n\nexport const ViewListingAward = (props: ViewListingAwardProps) => {\n  const renderPair = (name: string, value: any, multiline: boolean = false) => {\n    return (\n      <CRow className=\"mb-2\">\n        <CCol sm={5} lg={4} className={'text-secondary'}>\n          {name}\n        </CCol>\n\n        <CCol className={classnames({ multiline })}>{value}</CCol>\n      </CRow>\n    )\n  }\n\n  return (\n    <section\n      className={'ViewListingAward d-flex flex-column justify-content-center align-items-center'}\n    >\n      <CContainer>\n        <CCard className=\"mb-3\">\n          <CCardBody>\n            <CCardTitle className=\"pb-2 border-bottom border-bottom-light\">Detail</CCardTitle>\n            {renderPair('Title', props.data.awardTitle, true)}\n            {renderPair('Contract Number', props.data.contractNumber)}\n            {renderPair('Branch', props.data.branch)}\n            {renderPair('Program', props.data.program)}\n            {renderPair('Phase', props.data.phase)}\n            {renderPair('Product Service Code', props.data.productServiceCode)}\n            {renderPair('Principal NAICS Code', props.data.principleNaicsCode)}\n          </CCardBody>\n        </CCard>\n\n        {props.data.listingArtifactTechnologyTypes &&\n          props.data.listingArtifactTechnologyTypes.length > 0 && (\n            <CCard className=\"mb-3 p-2\">\n              <CCardBody>\n                <CCardTitle className=\"pb-2 border-bottom border-bottom-light\">\n                  Technology Types\n                </CCardTitle>\n                {props.data.listingArtifactTechnologyTypes.map((tt) => (\n                  <CBadge\n                    key={tt.technologyTypeId}\n                    color=\"primary\"\n                    className=\"ms-auto px-3 py-2 mx-2 mt-1\"\n                  >\n                    {tt.name}\n                  </CBadge>\n                ))}\n              </CCardBody>\n            </CCard>\n          )}\n\n        <CCard className=\"mb-3\">\n          <CCardBody>\n            <CCardTitle className=\"pb-2 border-bottom border-bottom-light\">Contract</CCardTitle>\n            {renderPair('Amount', props.data.awardAmount)}\n            {renderPair('State', props.data.state)}\n            {renderPair(\n              'Award Date',\n              props.data.contractAwardDate && parseDate(props.data.contractAwardDate),\n            )}\n            {renderPair(\n              'Start Date',\n              props.data.contractStartDate && parseDate(props.data.contractStartDate),\n            )}\n            {renderPair(\n              'End Date',\n              props.data.contractEndDate && parseDate(props.data.contractEndDate),\n            )}\n          </CCardBody>\n        </CCard>\n\n        <CCard className=\"mb-3\">\n          <CCardBody>\n            <CCardTitle className=\"pb-2 border-bottom border-bottom-light\">PI</CCardTitle>\n            {renderPair('Name', props.data.piName)}\n            {renderPair('Title', props.data.piTitle)}\n            {renderPair('Phone', props.data.piPhone)}\n            {renderPair('Email', props.data.piEmail)}\n            {renderPair('Research Institution', props.data.researchInstitutionName)}\n          </CCardBody>\n        </CCard>\n\n        <CCard className=\"mb-3\">\n          <CCardBody>\n            <CCardTitle className=\"pb-2 border-bottom border-bottom-light\">Description</CCardTitle>\n            <CRow className=\"mb-2\">\n              <CCol className=\"multiline\">{props.data.awardAbstract}</CCol>\n            </CRow>\n          </CCardBody>\n        </CCard>\n\n        {props.data.anticipatedBenefits && (\n          <CCard className=\"mb-3\">\n            <CCardBody>\n              <CCardTitle className=\"pb-2 border-bottom border-bottom-light\">\n                Anticipated Benefits\n              </CCardTitle>\n              <CRow className=\"mb-2\">\n                <CCol className=\"multiline\">{props.data.anticipatedBenefits}</CCol>\n              </CRow>\n            </CCardBody>\n          </CCard>\n        )}\n      </CContainer>\n    </section>\n  )\n}\n","import { inject, observer } from 'mobx-react'\nimport { StringParam, NumberParam, useQueryParams, withDefault } from 'use-query-params'\nimport { CustomDropdown, UrlFederatedTechnologyTypesMultiSelectAutoComplete } from '../../../custom'\nimport { DebouncedInput } from '@mobilizeyourtech/vision-core-react'\nimport { CCol, CFormInput } from '@coreui/react'\nimport DatePicker from 'react-date-picker'\nimport { ServerBackedDropdown, UrlFederatedNaicsCodeMultiSelectAutoComplete } from '../../../custom'\nimport {\n  ApplicationStore,\n  NotificationStore,\n  ConnectListingStore,\n  ServerStore,\n} from '../../../../stores'\nimport { PaginationParams } from '@mobilizeyourtech/vision-core-react'\nimport { makeDateComputerOffset } from '../../../../lib/time'\nimport { getISOLocalDate } from '@wojtekmaj/date-utils'\nimport { isoUSStateCodes } from '../../../../lib/geography/countryRegionData'\nimport classNames from 'classnames'\n\ninterface ConnectAwardSearchProps {\n  connectListingStore?: ConnectListingStore\n  notificationStore?: NotificationStore\n  serverStore?: ServerStore\n  isStandaloneAwardFilter?: boolean\n}\n\nexport const ConnectAwardSearch = inject(\n  ApplicationStore.names.connectListingStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.serverStore,\n)(\n  observer((props: ConnectAwardSearchProps) => {\n    const [params, setParams] = useQueryParams({\n      searchAwards: withDefault(StringParam, undefined),\n      awardPhase: withDefault(StringParam, undefined),\n      awardNaicsCodeIds: withDefault(StringParam, undefined),\n      awardContractNumber: withDefault(StringParam, undefined),\n      awardAmountMin: withDefault(NumberParam, undefined),\n      awardAmountMax: withDefault(NumberParam, undefined),\n      awardDateMin: withDefault(StringParam, undefined),\n      awardDateMax: withDefault(StringParam, undefined),\n      awardState: withDefault(StringParam, undefined),\n      awardTechnologyTypeIds: withDefault(StringParam, undefined),\n      sortBy: withDefault(StringParam, 'createdAt'),\n      sortDirection: withDefault(StringParam, 'desc'),\n    })\n\n    const getAwardsPhases = async (params: PaginationParams) => {\n      return props!.serverStore!.getAwardsPhases(params).then((response) => {\n        return {\n          data: response.data.map((data) => {\n            return { ...data, id: data.label }\n          }),\n          pagination: response.pagination,\n        }\n      })\n    }\n\n    const renderMinMaxAmounts = () => {\n      const minValue = params.awardAmountMin?.toString()\n      const maxValue = params.awardAmountMax?.toString()\n\n      return (\n        <div className=\"d-flex flex-row gap-2 align-items-center\">\n          <label placeholder=\"Min\">Amount</label>\n          <CFormInput\n            type=\"number\"\n            placeholder=\"Min\"\n            data-testid=\"min\"\n            value={minValue || ''}\n            onChange={({ target: { value } }) => {\n              setParams({\n                ...params,\n                awardAmountMin: value ? parseInt(value) : undefined,\n              })\n            }}\n          />\n          <label placeholder=\"Max\">To</label>\n          <CFormInput\n            type=\"number\"\n            placeholder=\"Max\"\n            data-testid=\"max\"\n            value={maxValue || ''}\n            onChange={({ target: { value } }) => {\n              setParams({\n                ...params,\n                awardAmountMax: value ? parseInt(value) : undefined,\n              })\n            }}\n          />\n        </div>\n      )\n    }\n\n    const renderMinMaxDates = () => {\n      return (\n        <div className=\"d-flex flex-row gap-2 align-items-center\">\n          <label className=\"fixed-width\" placeholder=\"Min\">\n            Date\n          </label>\n          <DatePicker\n            data-testid=\"min-date-picker\"\n            onChange={(value: Date) => {\n              setParams({ ...params, awardDateMin: value && getISOLocalDate(value) })\n            }}\n            maxDate={new Date()}\n            value={params.awardDateMin ? makeDateComputerOffset(params.awardDateMin) : undefined}\n            className={'calender'}\n            required={false}\n            openCalendarOnFocus={false}\n          />\n\n          <label placeholder=\"Max\">To</label>\n          <DatePicker\n            data-testid=\"max-date-picker\"\n            onChange={(value: Date) => {\n              setParams({ ...params, awardDateMax: value && getISOLocalDate(value) })\n            }}\n            maxDate={new Date()}\n            value={params.awardDateMax ? makeDateComputerOffset(params.awardDateMax) : undefined}\n            className={'calender'}\n            required={false}\n            openCalendarOnFocus={false}\n          />\n        </div>\n      )\n    }\n\n    return (\n      <section\n        className={classNames('d-flex flex-column gap-2', {\n          'gap-4': props.isStandaloneAwardFilter,\n        })}\n      >\n        <div>\n          <DebouncedInput\n            placeholder=\"Search Awards\"\n            data-testid=\"search-awards\"\n            className=\"award-search-input\"\n            value={params.searchAwards || ''}\n            onChange={(value) =>\n              setParams({\n                ...params,\n                searchAwards: value,\n              })\n            }\n          />\n        </div>\n\n        <div\n          className={classNames('d-flex flex-row gap-2', {\n            'gap-3': props.isStandaloneAwardFilter,\n          })}\n        >\n          <CCol>\n            <DebouncedInput\n              placeholder=\"Search Award Contract Number\"\n              className=\"award-contract-number\"\n              data-testid=\"search-awards-contract-num\"\n              value={params.awardContractNumber?.toString() || ''}\n              onChange={(value) =>\n                setParams({\n                  ...params,\n                  awardContractNumber: value,\n                })\n              }\n            />\n          </CCol>\n          <CCol>\n            <CustomDropdown\n              placeholder=\"Search State\"\n              CustomDropdownClass=\"m-0 p-0\"\n              dropdownClass=\"darker-strokes-border\"\n              data-testid=\"search-awards-state\"\n              options={isoUSStateCodes}\n              selectedOption={params.awardState}\n              onSelect={(value) => {\n                setParams({ ...params, awardState: value as string })\n              }}\n              onSelectNone={() => {\n                setParams({ ...params, awardState: undefined })\n              }}\n            />\n          </CCol>\n        </div>\n\n        <div\n          className={classNames('d-flex flex-row gap-2', {\n            'gap-3': props.isStandaloneAwardFilter,\n          })}\n        >\n          <CCol>\n            <ServerBackedDropdown\n              placeholder=\"Select Phase\"\n              getData={(params) => getAwardsPhases(params)}\n              onSelectNone={() => {\n                setParams({ ...params, awardPhase: undefined })\n              }}\n              onSelect={(selected) => {\n                setParams({ ...params, awardPhase: selected.label })\n              }}\n              selected={\n                params.awardPhase\n                  ? {\n                      id: params.awardPhase,\n                      label: params.awardPhase as string,\n                    }\n                  : undefined\n              }\n              testId=\"-awards-phases\"\n              normalPlaceholderFont={true}\n            />\n          </CCol>\n          <CCol>\n            <div>\n              <UrlFederatedNaicsCodeMultiSelectAutoComplete\n                paramKey=\"awardNaicsCodeIds\"\n                dataTestId={'naics-award'}\n              />\n            </div>\n          </CCol>\n        </div>\n\n        <div>\n          <UrlFederatedTechnologyTypesMultiSelectAutoComplete\n            paramKey=\"awardTechnologyTypeIds\"\n            dataTestId=\"tech-award\"\n          />\n        </div>\n\n        <div className=\"d-flex flex-row gap-2 flex-wrap align-items-center\">\n          {renderMinMaxAmounts()}\n          {renderMinMaxDates()}\n        </div>\n      </section>\n    )\n  }),\n)\n","import { ApplicationStore, NotificationStore, ServerStore } from '../../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { PaginatedSearchableParams } from '../../../lib/types/Params'\nimport { CCol, CFormLabel, CRow, CButton, CFormTextarea } from '@coreui/react'\nimport {\n  isDirtySelectableItem,\n  RichTextEditor,\n  SelectableItem,\n  ServerBackedMultiSelectAutoComplete,\n  SuspensefulButton,\n} from '@mobilizeyourtech/vision-core-react'\nimport React from 'react'\nimport { GovUserExtendedDataFormData, LineOfEffortFormData } from './types'\nimport { GovUserClassification, TechnologyTypeResponse } from '../../../stores/ServerStore'\nimport { GoogleSuggestAddressInput } from 'components/custom'\nimport classNames from 'classnames'\nimport DatePicker from 'react-date-picker'\n\nexport interface GovUserExtendedDataProfileFormProps {\n  value: Partial<GovUserExtendedDataFormData>\n  onChange: (value: Partial<GovUserExtendedDataFormData>) => void\n  applicationStore?: ApplicationStore\n  serverStore?: ServerStore\n  notificationStore?: NotificationStore\n}\n\nexport const GovUserExtendedDataProfileForm = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: GovUserExtendedDataProfileFormProps) => {\n    // TECH TYPES DROPDOWN START //////\n\n    const getTechnologyTypes = (params: PaginatedSearchableParams) => {\n      return props.serverStore!.getTechnologyTypes(params).then((response) => ({\n        pagination: response.pagination,\n        data: response.data.map((r) => {\n          return { ...r, label: r.name }\n        }),\n      }))\n    }\n    const getSelectedTechnologyTypes = () => {\n      if (props.value.technologyTypes === undefined) {\n        return []\n      }\n\n      return props.value.technologyTypes?.map((t) => {\n        return { ...t, label: t.name }\n      })\n    }\n\n    const renderCityStateInput = () => {\n      let locationValues: Array<String | undefined> = []\n      if (props.value.location) {\n        const { city, stateOrProvince, country } = props.value.location\n        locationValues = [city, stateOrProvince, country].filter(Boolean)\n      }\n\n      let placeholder = locationValues.length\n        ? `${locationValues.join(', ')}`\n        : 'Search City and State/Province...'\n\n      return (\n        <CRow className=\"mb-2\">\n          <CFormLabel\n            {...{ htmlFor: 'govUserExtendedDataCityAndState' }}\n            className=\"col-sm-2 col-form-label\"\n          >\n            City/State\n          </CFormLabel>\n          <CCol\n            className={classNames('location-input', locationValues.length > 0 && 'prepopulated')}\n            data-testid=\"location-input\"\n          >\n            <GoogleSuggestAddressInput\n              onChange={(value) => {\n                props.onChange({ ...props.value, location: value })\n              }}\n              value={props.value.location || {}}\n              hideManualEntry\n              googlePlacesAutoCompleteProps={{\n                autocompletionRequest: {\n                  types: ['(regions)'],\n                },\n              }}\n              placeholder={placeholder}\n            />\n          </CCol>\n        </CRow>\n      )\n    }\n\n    const renderGovEmployeeSinceYearInput = () => {\n      return (\n        <CRow className=\"mb-2 align-items-center\">\n          <CFormLabel\n            {...{ htmlFor: 'govUserExtendedDataGovEmployeeSinceYear' }}\n            className=\"col-8 col-form-label\"\n          >\n            What year did you begin your career in government/Department of Defense service?\n          </CFormLabel>\n          <DatePicker\n            className={classNames('col-4 gov-employee-since-year-input')}\n            value={\n              props.value.govEmployeeSinceYear\n                ? new Date(props.value.govEmployeeSinceYear, 0, 1)\n                : undefined\n            }\n            onChange={(year: Date) =>\n              props.onChange({\n                ...props.value,\n                govEmployeeSinceYear: year ? year.getFullYear() : undefined,\n              })\n            }\n            format=\"yyyy\"\n            maxDetail=\"decade\"\n            maxDate={new Date()}\n            data-testid=\"gov-employee-since-year-input\"\n          />\n        </CRow>\n      )\n    }\n\n    const renderLineOfEffortInputs = () => {\n      const lineOfEffortArray = (props.value.linesOfEffort as LineOfEffortFormData[]) || []\n\n      return lineOfEffortArray.map((loe, idx) => {\n        return !loe.destroy ? (\n          <div key={idx} className=\"d-flex flex-column w-100\">\n            {idx !== 0 && (\n              <div className=\"d-flex justify-content-end mb-1\">\n                <CButton\n                  onClick={() => removeLineOfEffort(idx)}\n                  className=\"delete-line-of-effort-btn d-flex justify-content-center align-items-center\"\n                  color=\"dark\"\n                  data-testid=\"remove-loe-button\"\n                >\n                  <i className=\"fas fa-times\" />\n                </CButton>\n              </div>\n            )}\n            <CFormTextarea\n              maxLength={300}\n              value={loe.details}\n              onChange={(e) => updateLineOfEffort(e.target.value, idx)}\n              data-testid=\"loe-input\"\n            />\n          </div>\n        ) : null\n      })\n    }\n\n    const addLineOfEffort = () => {\n      const newLineOfEffort: LineOfEffortFormData = { details: '' }\n      props.onChange({\n        linesOfEffort: [...(props.value.linesOfEffort || []), newLineOfEffort],\n      })\n    }\n\n    const removeLineOfEffort = (idx: number) => {\n      // TODO - this is temporary. To be refactored when implementing EDIT\n      const updatedLineOfEffort = [...props.value.linesOfEffort!]\n\n      const item = updatedLineOfEffort[idx]\n      if (item?.id) {\n        updatedLineOfEffort[idx] = { ...item, destroy: true }\n      } else {\n        updatedLineOfEffort.splice(idx, 1)\n      }\n\n      props.onChange({ linesOfEffort: updatedLineOfEffort })\n    }\n\n    const updateLineOfEffort = (value: string, idx: number) => {\n      const updatedLineOfEffort = props.value.linesOfEffort!.map((loe, i) =>\n        i === idx ? { ...loe, details: value } : loe,\n      )\n      props.onChange({\n        linesOfEffort: updatedLineOfEffort,\n      })\n    }\n\n    // TECH TYPES DROPDOWN END ///////\n\n    const technologyTypesRow = () => {\n      return (\n        <CRow className=\"mb-3\">\n          <CFormLabel className=\"w-100 col-xs-12 col-form-label\">\n            Technology Types <i className=\"fas fa-asterisk gov-required-icon\" />\n            (required)\n          </CFormLabel>\n          <CCol lg={9} xs={12}>\n            <ServerBackedMultiSelectAutoComplete\n              required\n              loadMore={getTechnologyTypes}\n              onChange={(selected) => {\n                props.onChange({\n                  technologyTypes: selected.filter((e) => !isDirtySelectableItem(e)) as Array<\n                    TechnologyTypeResponse & SelectableItem\n                  >,\n                })\n              }}\n              selections={getSelectedTechnologyTypes()}\n              placeholder=\"Select Technology Types...\"\n              className=\"technology-type-search-dropdown ValidatedInput\"\n              data-testid=\"technology-type-search-dropdown\"\n            />\n          </CCol>\n        </CRow>\n      )\n    }\n\n    const linesOfEffortRow = () => {\n      return (\n        <CRow className=\"mb-3\">\n          <CCol className={'col-12 col-sm-12 col-md-12 col-lg-9 col-xl-9'}>\n            <CFormLabel className=\"w-100 col-sm-2 col-form-label\">\n              Lines of Effort <i className=\"fas fa-asterisk gov-required-icon\" />\n              (required)\n            </CFormLabel>\n            <span className={'subtle'}>\n              What area or problem are you looking for new emerging technologies to solve for your\n              mission? (up to 6)\n              <br />\n              The more detail, the better. LOEs with more than 20 words (about 3 sentences) tend to\n              generate more specific matches in IGNITE. Don’t hesitate to elaborate on what you’re\n              looking for.\n            </span>\n            <CCol className=\"mt-2\">\n              {renderLineOfEffortInputs()}\n              <div className=\"d-flex justify-content-end align-items-end py-2\">\n                {props.value.linesOfEffort &&\n                  props.value.linesOfEffort.filter((loe) => !loe.destroy).length < 6 && (\n                    <SuspensefulButton\n                      icon=\"fas fa-plus\"\n                      className=\"d-inline justify-self-end align-self-end\"\n                      isSuspended={false}\n                      onClick={addLineOfEffort}\n                      data-testid=\"add-loe-button\"\n                    >\n                      Add new line of effort\n                    </SuspensefulButton>\n                  )}\n              </div>\n            </CCol>\n          </CCol>\n          <CCol className={'col-12 col-sm-12 col-md-12 col-lg-3 col-xl-3 mt-lg-5 exampleDiv'}>\n            <div>Example:</div>\n            <p>\n              Air Force Special Warfare unit is looking for portable electronic warfare systems with\n              excellent SWaP characteristics for field use. They must be able to cover 2-10GHz.\n            </p>\n          </CCol>\n        </CRow>\n      )\n    }\n\n    const profileDetailsRow = () => {\n      return (\n        <CRow className=\"mb-3\">\n          <CCol className={'col-12 col-sm-12 col-md-12 col-lg-9 col-xl-9'}>\n            <CFormLabel className=\"w-100 col-sm-2 col-form-label\">\n              About you <i className=\"fas fa-asterisk gov-required-icon\" />\n              (required)\n            </CFormLabel>\n            <span className={'subtle'}>\n              Role description and anything else you want people to know.\n            </span>\n            <CCol>\n              <RichTextEditor\n                className=\"profile-details-editor\"\n                data-testid=\"profile-details-editor\"\n                value={props.value.profileDetail}\n                onChange={(value) => {\n                  props.onChange({ profileDetail: value })\n                }}\n              />\n            </CCol>\n          </CCol>\n          <CCol className={'col-12 col-sm-12 col-md-12 col-lg-3 col-xl-3 mt-lg-5 exampleDiv'}>\n            <div>Example:</div>\n            <p>\n              Hi! I am a program manager working specifically in advanced manufacturing. I’m\n              especially interested in innovative 3D printing opportunities.\n            </p>\n          </CCol>\n        </CRow>\n      )\n    }\n\n    const getGovUserClassifications = async (p: PaginatedSearchableParams) => {\n      return props\n        .serverStore!.getGovUserClassifications({\n          ...p,\n          eager: 'govUserClassificationCategory',\n        })\n        .then((response) => {\n          return {\n            ...response,\n            data: response.data.map((classification) => {\n              return {\n                ...classification,\n                subLabel: classification.description,\n                categoryLabel: classification.govUserClassificationCategory\n                  ? classification.govUserClassificationCategory.name\n                  : 'Other',\n              }\n            }),\n          }\n        })\n    }\n\n    const govUserClassificationsRow = () => {\n      return (\n        <CRow className=\"mb-3\">\n          <CFormLabel className=\"w-100 col-xs-12 col-form-label\">\n            How do you want to interact with small businesses in IGNITE?{' '}\n            <i className=\"fas fa-asterisk gov-required-icon\" />\n            (required)\n          </CFormLabel>\n          <span className=\"subtle col-xs-12 mb-2\">\n            If selecting Technical Point of Contact, please reference{' '}\n            <a href=\"https://afwerx.com/wp-content/uploads/TPOC-FAQs-Open-Topic-SBIR-CLEARED_AFRL-2024-2219.pdf\">\n              these listed duties.\n            </a>\n            <br />\n            If you are unsure if you can sign a customer memo, please reference{' '}\n            <a href=\"https://afwerx.com/divisions/ventures/open-topic/\">\n              open topic resources.\n            </a>{' '}\n            More often than not, you are able to sign a customer memo.\n          </span>\n          <CCol lg={9} xs={12}>\n            <ServerBackedMultiSelectAutoComplete\n              loadMore={getGovUserClassifications}\n              onChange={(selected) => {\n                props.onChange({\n                  govUserClassifications: selected.filter(\n                    (e) => !isDirtySelectableItem(e),\n                  ) as Array<GovUserClassification & SelectableItem>,\n                })\n              }}\n              selections={props.value.govUserClassifications || []}\n              placeholder=\"Select desired interactions\"\n              data-testid=\"user-classification-multiselect\"\n              className=\"gov-user-classifications-multiselect ValidatedInput\"\n            />\n          </CCol>\n        </CRow>\n      )\n    }\n\n    return (\n      <div className={'GovUserExtendedDataProfileForm'}>\n        {renderCityStateInput()}\n        {renderGovEmployeeSinceYearInput()}\n        {linesOfEffortRow()}\n        {technologyTypesRow()}\n        {govUserClassificationsRow()}\n        {profileDetailsRow()}\n      </div>\n    )\n  }),\n)\n","import { CCard, CCardHeader, CCardBody } from '@coreui/react'\nimport { CCardProps } from '@coreui/react/dist/components/card/CCard'\nimport ReactHtmlParser from 'react-html-parser'\nimport classNames from 'classnames'\nimport { LineOfEffort } from 'stores/UserStore'\n\ninterface LinesOfEffortCardProps extends CCardProps {\n  linesOfEffort?: Array<LineOfEffort>\n}\n\nexport const LinesOfEffortCard = ({\n  linesOfEffort = [],\n  className,\n  ...props\n}: LinesOfEffortCardProps) => {\n  const linesOfEffortSection = () => {\n    if (linesOfEffort.length === 0) {\n      return <span className=\"subtle\">Nothing to show</span>\n    }\n\n    return (\n      <ol className=\"ps-3 mt-2\">\n        {linesOfEffort.map((lineOfEffort) => {\n          return <li key={lineOfEffort.id}>{ReactHtmlParser(lineOfEffort.details)}</li>\n        })}\n      </ol>\n    )\n  }\n\n  return (\n    <CCard className={classNames(className, 'ProfileDetailCard')} {...props}>\n      <CCardHeader component=\"h5\">\n        Lines of Effort\n        <br />\n        <span>Problem statements I am looking for solutions on</span>\n      </CCardHeader>\n      <CCardBody>{linesOfEffortSection()}</CCardBody>\n    </CCard>\n  )\n}\n","import { CCard, CCardHeader, CCardBody, CBadge, CCol, CRow } from '@coreui/react'\nimport { CCardProps } from '@coreui/react/dist/components/card/CCard'\nimport classNames from 'classnames'\nimport { GovUserClassification } from 'stores/ServerStore'\nimport Styles from './GovUserClassificationsCard.module.scss'\n\nexport interface GovUserClassificationsCardProps extends CCardProps {\n  govUserClassifications?: Array<GovUserClassification>\n}\n\nexport const GovUserClassificationsCard = ({\n  govUserClassifications = [],\n  className,\n  ...props\n}: GovUserClassificationsCardProps) => {\n  const govUserClassificationsSection = () => {\n    if (govUserClassifications.length === 0) {\n      return <span className=\"subtle\">Nothing to show</span>\n    }\n\n    return (\n      <CRow className=\"justify-content-md-start pt-2\">\n        {govUserClassifications.map((classification) => {\n          return (\n            <CCol key={classification.id} className={'col-md-auto px-1'}>\n              <CBadge\n                color=\"primary\"\n                title={classification.description}\n                className={Styles.classificationBadge}\n              >\n                {classification.name}\n              </CBadge>\n            </CCol>\n          )\n        })}\n      </CRow>\n    )\n  }\n\n  return (\n    <CCard className={classNames(className, Styles.GovUserClassificationsCard)} {...props}>\n      <CCardHeader component=\"h5\">Desired Interactions with Small Businesses</CCardHeader>\n      <CCardBody>{govUserClassificationsSection()}</CCardBody>\n    </CCard>\n  )\n}\n","export { UrlFederatedBasicDropdown } from './UrlFederatedInputs/UrlFederatedBasicDropdown/UrlFederatedBasicDropdown'\n","import { makeAutoObservable } from 'mobx'\nimport { uuid } from '../lib/helpers/utils'\n\nexport class AuthStore {\n  private readonly accessToken: string = 'vision-ignite-access-token'\n  public JWT: string | null\n  // This is a helpful value you can change if you ever want the AuthBoundary to reload its state\n  public salt: string\n\n  constructor() {\n    this.JWT = this.getJWT()\n    this.salt = uuid()\n    makeAutoObservable(this)\n  }\n\n  public setJWT(jwt: string | null) {\n    if (jwt) {\n      localStorage.setItem(this.accessToken, jwt)\n    } else {\n      localStorage.removeItem(this.accessToken)\n    }\n\n    this.JWT = jwt\n  }\n\n  public getJWT() {\n    if (!this.JWT) {\n      const jwt = localStorage.getItem(this.accessToken)\n      this.JWT = jwt\n    }\n    return this.JWT\n  }\n\n  public isAuthenticated() {\n    return !!this.getJWT()\n  }\n\n  public generateAndSetSalt() {\n    this.salt = uuid()\n  }\n}\n","import { makeAutoObservable } from 'mobx'\n\nexport class NotificationStore {\n  public message: string | undefined\n  public severity: string | undefined\n  public severityOptions: {\n    [success: string]: string\n  }\n  public isSuppressing: boolean | undefined = false\n\n  constructor() {\n    makeAutoObservable(this)\n    this.message = ''\n    this.severity = undefined\n    this.severityOptions = {\n      success: 'success',\n      danger: 'danger',\n      warning: 'warning',\n      info: 'info',\n    }\n  }\n\n  /**\n   *\n   * @param message\n   * @param severity\n   * @param timeout\n   * @param suppress setting this to true means to suppress all other notifications until this one is cleared. Really only the ServerStore interceptor should need to do this\n   */\n  public setNotificationMessage(\n    message: string | undefined,\n    severity?: string | undefined,\n    timeout?: number,\n    suppress?: boolean,\n  ) {\n    if (!this.isSuppressing) {\n      this.message = message\n      if (severity && !!this.severityOptions[severity]) {\n        this.severity = severity\n      } else {\n        this.severity = undefined\n      }\n\n      this.isSuppressing = suppress\n\n      if (timeout) {\n        setTimeout(() => {\n          this.clearMessage()\n        }, timeout)\n      }\n    }\n  }\n\n  /**\n   * Clear any message, including a suppressive one\n   */\n  public clearMessage() {\n    this.isSuppressing = false\n    return this.setNotificationMessage(undefined, undefined)\n  }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"GovUserClassificationsCard\":\"GovUserClassificationsCard_GovUserClassificationsCard__2a3xd\",\"classificationBadge\":\"GovUserClassificationsCard_classificationBadge__339ev\"};","import { StringParam, NumberParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Collapsible } from '../../../custom'\nimport { objectContainsAnyValue } from '../../../../lib/helpers/utils'\nimport { ConnectAwardSearch } from '../ConnectAwardSearch/ConnectAwardSearch'\n\nexport const ConnectCollapsibleAwardSearch = () => {\n  const [params] = useQueryParams({\n    searchAwards: withDefault(StringParam, undefined),\n    awardPhase: withDefault(StringParam, undefined),\n    awardNaicsCodeIds: withDefault(StringParam, undefined),\n    awardContractNumber: withDefault(StringParam, undefined),\n    awardAmountMin: withDefault(NumberParam, undefined),\n    awardAmountMax: withDefault(NumberParam, undefined),\n    awardDateMin: withDefault(StringParam, undefined),\n    awardDateMax: withDefault(StringParam, undefined),\n    awardState: withDefault(StringParam, undefined),\n    awardTechnologyTypeIds: withDefault(StringParam, undefined),\n  })\n\n  return (\n    <Collapsible\n      headerText=\"Award Info\"\n      className=\"awards\"\n      isExpanded={objectContainsAnyValue(params)}\n    >\n      <ConnectAwardSearch />\n    </Collapsible>\n  )\n}\n","import { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Collapsible, UrlFederatedTechnologyTypesMultiSelectAutoComplete } from '../../../custom'\nimport { DebouncedInput } from '@mobilizeyourtech/vision-core-react'\nimport { objectContainsAnyValue } from '../../../../lib/helpers/utils'\n\nexport const ConnectCollapsibleServiceSearch = () => {\n  const [params, setParams] = useQueryParams({\n    searchServices: withDefault(StringParam, undefined),\n    serviceTechnologyTypeIds: withDefault(StringParam, undefined),\n  })\n\n  return (\n    <Collapsible\n      headerText=\"Services\"\n      className=\"services\"\n      isExpanded={objectContainsAnyValue(params)}\n    >\n      <section className=\"IgniteCollapsibleServiceSearch\">\n        <DebouncedInput\n          placeholder=\"Search Services\"\n          data-testid=\"search-services\"\n          className=\"mb-2\"\n          value={params.searchServices || ''}\n          onChange={(value) =>\n            setParams({\n              ...params,\n              searchServices: value,\n            })\n          }\n        />\n\n        <div className=\"mb-2\">\n          <UrlFederatedTechnologyTypesMultiSelectAutoComplete\n            paramKey=\"serviceTechnologyTypeIds\"\n            dataTestId={'tech-service'}\n          />\n        </div>\n      </section>\n    </Collapsible>\n  )\n}\n","import { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Collapsible } from '../../../custom'\nimport { DebouncedInput } from '@mobilizeyourtech/vision-core-react'\nimport { objectContainsAnyValue } from '../../../../lib/helpers/utils'\n\nexport const ConnectCollapsibleUseCaseSearch = () => {\n  const [params, setParams] = useQueryParams({\n    searchUseCases: withDefault(StringParam, undefined),\n  })\n\n  return (\n    <Collapsible headerText=\"Use Cases\" isExpanded={objectContainsAnyValue(params)}>\n      <section className=\"IgniteCollapsibleUseCaseSearch\">\n        <DebouncedInput\n          placeholder=\"Search Use Cases\"\n          data-testid=\"search-use-cases\"\n          value={params.searchUseCases || ''}\n          onChange={(value) =>\n            setParams({\n              ...params,\n              searchUseCases: value,\n            })\n          }\n        />\n      </section>\n    </Collapsible>\n  )\n}\n","import { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Collapsible, UrlFederatedTechnologyTypesMultiSelectAutoComplete } from '../../../custom'\nimport { DebouncedInput } from '@mobilizeyourtech/vision-core-react'\nimport { objectContainsAnyValue } from '../../../../lib/helpers/utils'\n\nexport const ConnectCollapsibleProductSearch = () => {\n  const [params, setParams] = useQueryParams({\n    searchProducts: withDefault(StringParam, undefined),\n    productTechnologyTypeIds: withDefault(StringParam, undefined),\n  })\n\n  return (\n    <Collapsible\n      headerText=\"Products\"\n      className=\"products\"\n      isExpanded={objectContainsAnyValue(params)}\n    >\n      <section className=\"IgniteCollapsibleProductSearch\">\n        <DebouncedInput\n          placeholder=\"Search Products\"\n          data-testid=\"search-products\"\n          className=\"mb-2\"\n          value={params.searchProducts || ''}\n          onChange={(value) =>\n            setParams({\n              ...params,\n              searchProducts: value,\n            })\n          }\n        />\n\n        <div className=\"mb-2\">\n          <UrlFederatedTechnologyTypesMultiSelectAutoComplete\n            paramKey=\"productTechnologyTypeIds\"\n            dataTestId={'tech-product'}\n          />\n        </div>\n      </section>\n    </Collapsible>\n  )\n}\n","import { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Collapsible, CustomDropdown } from '../../../custom'\nimport {\n  UrlFederatedNaicsCodeMultiSelectAutoComplete,\n  UrlFederatedTechnologyTypesMultiSelectAutoComplete,\n  UrlFederatedBusinessClassificationsMultiSelectAutoComplete,\n} from '../../../custom'\nimport { DebouncedInput } from '@mobilizeyourtech/vision-core-react'\nimport { objectContainsAnyValue } from '../../../../lib/helpers/utils'\nimport { isoUSStateCodes } from '../../../../lib/geography/countryRegionData'\n\nexport const ConnectCollapsibleCompanySearch = () => {\n  const [params, setParams] = useQueryParams({\n    searchListings: withDefault(StringParam, undefined),\n    listingIdentifier: withDefault(StringParam, undefined),\n    listingState: withDefault(StringParam, undefined),\n  })\n\n  return (\n    <Collapsible headerText=\"Company Info\" isExpanded={objectContainsAnyValue(params)}>\n      <section className=\"IgniteCollapsibleCompanySearch\">\n        <DebouncedInput\n          placeholder=\"Search Companies\"\n          className=\"mb-2\"\n          data-testid=\"search-listings\"\n          value={params.searchListings || ''}\n          onChange={(value) =>\n            setParams({\n              ...params,\n              searchListings: value,\n            })\n          }\n        />\n        <div className=\"d-flex flex-row gap-2 mb-2\">\n          <div className={`col`}>\n            <DebouncedInput\n              placeholder=\"Search Identifier\"\n              className=\"listing-identifier\"\n              data-testid=\"listing-identifier\"\n              value={params.listingIdentifier || ''}\n              onChange={(value) =>\n                setParams({\n                  ...params,\n                  listingIdentifier: value,\n                })\n              }\n            />\n          </div>\n          <div className={`col`}>\n            <CustomDropdown\n              placeholder=\"Search State\"\n              CustomDropdownClass=\"mb-0\"\n              dropdownClass=\"darker-strokes-border\"\n              options={isoUSStateCodes}\n              selectedOption={params.listingState}\n              onSelect={(value) => {\n                setParams({ ...params, listingState: value as string })\n              }}\n              onSelectNone={() => {\n                setParams({ ...params, listingState: undefined })\n              }}\n            />\n          </div>\n        </div>\n\n        <div className=\"mb-2\">\n          <UrlFederatedNaicsCodeMultiSelectAutoComplete paramKey=\"naicsCodeIds\" />\n        </div>\n        <div className=\"mb-2\">\n          <UrlFederatedTechnologyTypesMultiSelectAutoComplete\n            paramKey=\"listingTechnologyTypeIds\"\n            dataTestId={'tech-product'}\n          />\n        </div>\n        <div className=\"mb-2\">\n          <UrlFederatedBusinessClassificationsMultiSelectAutoComplete paramKey=\"listingBusinessClassificationIds\" />\n        </div>\n      </section>\n    </Collapsible>\n  )\n}\n","import React from 'react'\nimport { useQueryParams, withDefault, StringParam } from 'use-query-params'\nimport {\n  CustomDropdown,\n  CustomDropdownProps,\n  ICustomDropdownItem,\n} from '../../../custom/CustomDropdown'\nimport classnames from 'classnames'\n\ntype UrlFederatedBasicDropdownItem = {\n  label: string\n  urlValue: string\n}\n\nexport interface UrlFederatedDropdownProps<T extends ICustomDropdownItem>\n  extends Omit<CustomDropdownProps<T>, 'onSelect' | 'onSelectNone' | 'options'> {\n  paramKey: string\n  options: Array<UrlFederatedBasicDropdownItem>\n  defaultParam?: string\n  'data-testid'?: string\n}\n\nexport const UrlFederatedBasicDropdown = <T extends ICustomDropdownItem>({\n  paramKey,\n  options,\n  defaultParam,\n  'data-testid': dataTestId = 'federated-dropdown',\n  ...props\n}: UrlFederatedDropdownProps<T>) => {\n  const [params, setParams] = useQueryParams({\n    [paramKey]: withDefault(StringParam, defaultParam ?? undefined),\n  })\n\n  const handleSelect = (selection: string | ICustomDropdownItem) => {\n    const urlVal = options.find((o) => o.label === selection)?.urlValue\n\n    return setParams({\n      [paramKey]: urlVal,\n    })\n  }\n\n  return (\n    <div data-testid={dataTestId} className=\"url-federated-dropdown w-100\">\n      <CustomDropdown\n        {...props}\n        onSelect={handleSelect}\n        CustomDropdownClass={classnames('UrlFederatedBasicDropdown', props.CustomDropdownClass)}\n        options={options.map((o) => o.label)}\n        selectedOption={options.find((o) => o.urlValue === params[paramKey])?.label}\n      />\n    </div>\n  )\n}\n\nexport default UrlFederatedBasicDropdown\n","export { ConnectCollapsibleAwardSearch } from './ConnectCollapsibleAwardSearch/ConnectCollapsibleAwardSearch'\nexport { ConnectAwardSearch } from './ConnectAwardSearch/ConnectAwardSearch'\nexport { ConnectCollapsibleServiceSearch } from './ConnectServiceSearch/ConnectCollapsibleServiceSearch'\nexport { ConnectCollapsibleUseCaseSearch } from './ConnectUseCaseSearch/ConnectCollapsibleUseCaseSearch'\nexport { ConnectCollapsibleProductSearch } from './ConnectProductSearch/ConnectCollapsibleProductSearch'\nexport { ConnectCollapsibleCompanySearch } from './ConnectCompanySearch/ConnectCollapsibleCompanySearch'\n","import { CCard, CCardBody, CCardTitle, CCol, CRow } from '@coreui/react'\nimport React, { useEffect, useState } from 'react'\nimport { ApplicationStore, ListingStore, NotificationStore, UserData } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { SocialMediaAccount } from '../../stores/UserStore'\nimport { determineSocialMediaIconClassName } from '../../lib/helpers/utils'\nimport { Avatar } from '@mobilizeyourtech/vision-core-react'\nimport { extractRestfulError } from '../../lib/errors/utils'\n\ntype TProps = {\n  listingId: number | string\n  notificationStore?: NotificationStore\n  listingStore?: ListingStore\n}\nexport const PointOfContactCard = inject(\n  ApplicationStore.names.listingStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [userData, setUserData] = useState<UserData | undefined>(undefined)\n    const [error, setError] = useState<string | undefined>(undefined)\n\n    useEffect(() => {\n      props.listingStore\n        ?.getPointOfContact(props.listingId)\n        .then((data) => {\n          setUserData(data)\n        })\n        .catch((error) => {\n          let errorResponse = extractRestfulError(error)\n          setError(errorResponse?.error ? errorResponse.error : 'UnhandledError')\n\n          if (errorResponse?.error !== 'NoUserPointOfContact') {\n            props.notificationStore?.setNotificationMessage(\n              'Failed to load primary contact data. Please try again.',\n              'danger',\n              3000,\n            )\n          }\n        })\n    }, [props.listingId])\n\n    const renderSocialMediaAccount = (sma: SocialMediaAccount) => {\n      return (\n        <CRow key={sma.id} data-testid=\"\">\n          <CCol>\n            <i className={determineSocialMediaIconClassName(sma.socialMediaTypeName)} />\n            <span>{sma.identifier}</span>\n          </CCol>\n        </CRow>\n      )\n    }\n\n    const renderUserData = (data: UserData) => {\n      return (\n        <>\n          <CRow className={'mb-2'}>\n            <CCol>\n              <strong>\n                {data.firstName} {data.lastName}\n              </strong>\n            </CCol>\n          </CRow>\n          <CRow>\n            <CCol>\n              <CRow className=\"mb-2\">\n                <CCol>\n                  <i className={'fas fa-shield-alt'} />\n                  <span>{data.title}</span>\n                </CCol>\n              </CRow>\n              <CRow>\n                <CCol>\n                  <i className={'far fa-envelope'} />\n                  <span>{data.email}</span>\n                </CCol>\n              </CRow>\n              <CRow>\n                <CCol>\n                  <i className={'fas fa-mobile-alt'} />\n                  <span>{data.cellPhone}</span>\n                </CCol>\n              </CRow>\n              <CRow>\n                <CCol>\n                  <i className={'fas fa-phone-alt'} />\n                  <span>{formatWorkPhone(data)}</span>\n                </CCol>\n              </CRow>\n            </CCol>\n            <CCol>\n              <CRow className=\"mt-2\">{data.socialMediaAccounts.map(renderSocialMediaAccount)}</CRow>\n            </CCol>\n          </CRow>\n        </>\n      )\n    }\n\n    const formatWorkPhone = (data: UserData): string | undefined => {\n      let result\n\n      if (!data.workPhone) {\n        result = undefined\n      } else if (!data.workPhoneExt) {\n        result = data.workPhone\n      } else if (data.workPhoneExt.toLowerCase().includes('x')) {\n        result = `${data.workPhone} ${data.workPhoneExt}`\n      } else {\n        result = `${data.workPhone} x${data.workPhoneExt}`\n      }\n\n      return result\n    }\n\n    const renderError = (error: string) => {\n      if (error === 'NoUserPointOfContact') {\n        return <p className=\"subtle\">No Point of Contact Data</p>\n      }\n\n      return <p className=\"subtle\">Error loading data</p>\n    }\n\n    return (\n      <CCard className=\"listing-card\">\n        <CCardBody>\n          <CCardTitle className=\"bold-text d-flex align-items-center\">\n            {userData && (\n              <Avatar\n                className=\"me-2\"\n                prefix={userData.firstName}\n                suffix={userData.lastName}\n                src={userData.headshot?.path}\n              />\n            )}\n            Primary Contact\n          </CCardTitle>\n          {userData && renderUserData(userData)}\n          {error && renderError(error)}\n        </CCardBody>\n      </CCard>\n    )\n  }),\n)\n","import { CBadge, CCard, CCardBody, CCardSubtitle, CCardTitle, CCol, CRow } from '@coreui/react'\nimport React, { useEffect, useState } from 'react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { IBusinessClassifications } from '../form/fragments/listing'\n\ntype TProps = {\n  path: string\n  notificationStore?: NotificationStore\n  serverStore?: ServerStore\n}\nexport const BusinessClassificationsCard = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [businessClassificationsData, setBusinessClassificationsData] = useState<\n      Array<IBusinessClassifications> | undefined\n    >(undefined)\n\n    useEffect(() => {\n      props.serverStore\n        ?.server()\n        .get<Array<IBusinessClassifications>>(props.path)\n        .then(({ data }) => {\n          setBusinessClassificationsData(data)\n        })\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Failed to load listing business classifications data. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }, [props.path])\n    return (\n      <CCard className=\"listing-card\">\n        <CCardBody>\n          <CCardTitle className=\"bold-text\">Business Classifications</CCardTitle>\n          <CCardSubtitle className=\"small-text\">\n            Business classifications can be explained in more detail on the {}\n            <a href=\"https://www.sba.gov\">Small Business Administration</a> website.\n          </CCardSubtitle>\n\n          <CRow className=\"mt-2 justify-content-md-start px-2\">\n            {businessClassificationsData?.map((bc) => {\n              const id = `businessClassifications${bc.id}`\n\n              return (\n                <CCol key={id} data-testid={id} className={'col-md-auto px-1'}>\n                  <CBadge color=\"primary\" className=\"text-wrap text-md-start\">\n                    {bc.name}\n                  </CBadge>\n                </CCol>\n              )\n            })}\n          </CRow>\n        </CCardBody>\n      </CCard>\n    )\n  }),\n)\n","import { CBadge, CCard, CCardBody, CCardSubtitle, CCardTitle, CCol, CRow } from '@coreui/react'\nimport React, { useEffect, useState } from 'react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { TechnologyTypeResponse } from '../../stores/ServerStore'\n\ntype TProps = {\n  path: string\n  notificationStore?: NotificationStore\n  serverStore?: ServerStore\n}\nexport const TechnologyFocusAreasCard = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [technologyTypeData, setTechnologyTypeData] = useState<\n      Array<TechnologyTypeResponse> | undefined\n    >(undefined)\n    useEffect(() => {\n      props.serverStore\n        ?.server()\n        .get<Array<TechnologyTypeResponse>>(props.path)\n        .then(({ data }) => {\n          setTechnologyTypeData(data)\n        })\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Failed to load listing technology data. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }, [props.path])\n\n    return (\n      <CCard className=\"listing-card\">\n        <CCardBody>\n          <CCardTitle className=\"bold-text\">Company Focuses</CCardTitle>\n          <CCardSubtitle className=\"small-text\">Technology focuses of your company.</CCardSubtitle>\n\n          <CRow className=\"mt-2 justify-content-md-start px-2\">\n            {technologyTypeData?.map((tt) => {\n              return (\n                <CCol key={tt.id} className={'col-md-auto px-1'}>\n                  <CBadge color=\"primary\" className=\"text-wrap text-md-start\">\n                    {tt.name}\n                  </CBadge>\n                </CCol>\n              )\n            })}\n          </CRow>\n        </CCardBody>\n      </CCard>\n    )\n  }),\n)\n","import React, { useEffect, useState } from 'react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { SocialMediaAccount } from '../../stores/UserStore'\nimport { CCol, CRow } from '@coreui/react'\nimport { determineSocialMediaIconClassName } from '../../lib/helpers/utils'\n\ntype TProps = {\n  path: string\n  notificationStore?: NotificationStore\n  serverStore?: ServerStore\n}\nexport const SocialMediaDetails = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [socialMediaData, setSocialMediaData] = useState<Array<SocialMediaAccount> | undefined>(\n      undefined,\n    )\n\n    useEffect(() => {\n      props.serverStore\n        ?.server()\n        .get<Array<SocialMediaAccount>>(props.path)\n        .then(({ data }) => {\n          setSocialMediaData(data)\n        })\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Failed to load listing social media data. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }, [props.path])\n    return (\n      <>\n        <strong>Social Media</strong>\n        {socialMediaData?.map((sma) => {\n          const id = `socialMedia${sma.socialMediaTypeName.replace(' ', '')}${sma.id}`\n\n          return (\n            <CRow key={id} data-testid={id}>\n              <CCol>\n                <i className={determineSocialMediaIconClassName(sma.socialMediaTypeName)} />\n                <span>{sma.identifier}</span>\n              </CCol>\n            </CRow>\n          )\n        })}\n      </>\n    )\n  }),\n)\n","import { ApplicationStore, NotificationStore, ServerStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport React, { useEffect, useState } from 'react'\nimport { CBadge, CCard, CCardBody, CCardTitle, CCol, CRow } from '@coreui/react'\nimport { INaicsCodes } from '../form/fragments/listing'\nimport { ProductServiceCode } from '../../stores/ListingStore'\n\ntype TProps = {\n  naicsCodesPath: string\n  samCode?: string\n  dunsCode?: string\n  cageCode?: string\n  samRegistrationDate?: string\n  samExpirationDate?: string\n  productServiceCodes?: Array<ProductServiceCode>\n  uniqueEntityId: string\n  notificationStore?: NotificationStore\n  serverStore?: ServerStore\n}\nexport const ContractingInformationCard = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [naicsCodesData, setNaicsCodesData] = useState<Array<INaicsCodes> | undefined>(undefined)\n    useEffect(() => {\n      props.serverStore\n        ?.server()\n        .get<Array<INaicsCodes>>(props.naicsCodesPath)\n        .then(({ data }) => {\n          setNaicsCodesData(data)\n        })\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Failed to load listing NAICS code data. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }, [props.naicsCodesPath])\n\n    const makeNaicsCodeLabel = (nc: INaicsCodes) => {\n      return `(${nc.code}) - ${nc.name}`\n    }\n\n    const makeProductServiceCodeLabel = (psc: ProductServiceCode) => {\n      if (psc.description) {\n        return `${psc.code} - ${psc.description}`\n      } else {\n        return `${psc.code}`\n      }\n    }\n\n    return (\n      <CCard className=\"listing-card\">\n        <CCardBody>\n          <CCardTitle className=\"bold-text\">Contracting Information</CCardTitle>\n\n          <CRow className=\"mb-2\">\n            <CCol>\n              <strong>Unique Entity ID</strong> {props.uniqueEntityId}\n            </CCol>\n          </CRow>\n          {props.samRegistrationDate && (\n            <CRow className=\"mb-2\">\n              <CCol>\n                <strong>SAM Registration Date</strong> {props.samRegistrationDate}\n              </CCol>\n            </CRow>\n          )}\n          {props.samExpirationDate && (\n            <CRow className=\"mb-2\">\n              <CCol>\n                <strong>SAM Expiration Date</strong> {props.samExpirationDate}\n              </CCol>\n            </CRow>\n          )}\n          {props.dunsCode && (\n            <CRow className=\"mb-2\">\n              <CCol>\n                <strong>DUNS</strong> {props.dunsCode}\n              </CCol>\n            </CRow>\n          )}\n          {props.cageCode && (\n            <CRow className=\"mb-2\">\n              <CCol>\n                <strong>Cage Code</strong> {props.cageCode}\n              </CCol>\n            </CRow>\n          )}\n          <CRow className=\"mb-2\">\n            <CCol>\n              <strong>Product and Service Codes</strong>\n            </CCol>\n          </CRow>\n          <CRow className=\"mt-2 justify-content-md-start px-2\">\n            {props.productServiceCodes?.map((psc) => {\n              const id = `psc${psc.id}`\n              return (\n                <CCol key={id} data-testid={id} className={'col-md-auto px-1'}>\n                  <CBadge color=\"primary\" className=\"text-wrap text-md-start\">\n                    {makeProductServiceCodeLabel(psc)}\n                  </CBadge>\n                </CCol>\n              )\n            })}\n          </CRow>\n          <CRow className=\"mb-2\">\n            <CCol>\n              <strong>NAICS Codes</strong>\n            </CCol>\n          </CRow>\n          <CRow className=\"mt-2 justify-content-md-start px-2\">\n            {naicsCodesData?.map((nc) => {\n              const id = `naicsCodes${nc.id}`\n\n              return (\n                <CCol key={id} data-testid={id} className={'col-md-auto px-1'}>\n                  <CBadge color=\"primary\" className=\"text-wrap text-md-start\">\n                    {makeNaicsCodeLabel(nc)}\n                  </CBadge>\n                </CCol>\n              )\n            })}\n          </CRow>\n        </CCardBody>\n      </CCard>\n    )\n  }),\n)\n","import { CBadge } from '@coreui/react'\nimport React from 'react'\nimport { ListingData } from '../../stores/ListingStore'\n\nexport type TProps = {\n  listing: ListingData\n}\nexport const ListingPublishedStatusIndicator = (props: TProps) => {\n  return props.listing.isPublished ? (\n    <CBadge className=\"listings-status-indicator align-middle published\" color=\"primary\">\n      Published\n    </CBadge>\n  ) : (\n    <CBadge className=\"listings-status-indicator align-middle\" color=\"secondary\">\n      Unpublished\n    </CBadge>\n  )\n}\n","import React, { useState } from 'react'\nimport { ListingData, ListingStore } from '../../stores/ListingStore'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore } from '../../stores'\nimport { CButton, CTooltip } from '@coreui/react'\nimport { ConfirmationBoundaryModal } from '../custom'\nimport { canListingPublish, canListingUnpublish } from '../../lib/listing/utils'\nimport { publishIcon } from '../../assets/brand/publishIcon'\nimport { unpublishIcon } from '../../assets/brand/unpublishIcon'\n\ntype TProps = {\n  listing: ListingData\n  listingStore?: ListingStore\n  notificationStore?: NotificationStore\n  onAction: (data: ListingData) => void\n  withText?: boolean\n}\nexport const ListingPublishOrUnpublishActionButton = inject(\n  ApplicationStore.names.listingStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [isPublishPromptOpen, setIsPublishPromptOpen] = useState<boolean>(false)\n    const [isPublishSuspending, setIsPublishSuspending] = useState<boolean>(false)\n    const [isUnpublishPromptOpen, setIsUnpublishPromptOpen] = useState<boolean>(false)\n    const [isUnpublishSuspending, setIsUnpublishSuspending] = useState<boolean>(false)\n\n    const onPublishConfirm = () => {\n      setIsPublishSuspending(true)\n      props.listingStore\n        ?.publishListing(props.listing.id)\n        .then((data) => {\n          setIsPublishSuspending(false)\n          setIsPublishPromptOpen(false)\n          props.notificationStore?.setNotificationMessage(\n            'Successfully published listing.',\n            'success',\n            3000,\n          )\n          props.onAction(data)\n        })\n        .catch(() => {\n          setIsPublishSuspending(false)\n          props.notificationStore?.setNotificationMessage(\n            'Failed to publish listing. Please try again',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    const onUnpublishConfirm = () => {\n      setIsUnpublishSuspending(true)\n      props.listingStore\n        ?.unpublishListing(props.listing.id)\n        .then((data) => {\n          setIsUnpublishSuspending(false)\n          setIsUnpublishPromptOpen(false)\n          props.notificationStore?.setNotificationMessage(\n            'Successfully unpublished listing.',\n            'success',\n            3000,\n          )\n          props.onAction(data)\n        })\n        .catch(() => {\n          setIsUnpublishSuspending(false)\n          props.notificationStore?.setNotificationMessage(\n            'Failed to unpublish listing. Please try again',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    const renderPublishActionButton = () => {\n      const isDisabled = !canListingPublish(props.listing)\n      return (\n        <>\n          <CTooltip content={'Publish this listing'}>\n            <CButton\n              className=\"span-btn publish-action-btn\"\n              data-testid=\"listing-publish-btn\"\n              onClick={() => setIsPublishPromptOpen(true)}\n              disabled={isDisabled}\n            >\n              {publishIcon()} {props.withText && <span>Publish</span>}\n            </CButton>\n          </CTooltip>\n          <ConfirmationBoundaryModal\n            onCancel={() => setIsPublishPromptOpen(false)}\n            onConfirm={onPublishConfirm}\n            isOpen={isPublishPromptOpen}\n            headerText={'Are you sure you want to publish this listing?'}\n            isSuspended={isPublishSuspending}\n          >\n            <p>\n              Once published, this listing is visible to all DoD VISION users. You can unpublish\n              this listing at any time.\n            </p>\n          </ConfirmationBoundaryModal>\n        </>\n      )\n    }\n\n    const renderUnpublishActionButton = () => {\n      const isDisabled = !canListingUnpublish(props.listing)\n\n      return (\n        <>\n          <CTooltip content={'Unpublish this listing'}>\n            <CButton\n              className=\"span-btn publish-action-btn\"\n              data-testid=\"listing-unpublish-btn\"\n              onClick={() => setIsUnpublishPromptOpen(true)}\n              disabled={isDisabled}\n            >\n              {unpublishIcon()} {props.withText && <span>Unpublish</span>}\n            </CButton>\n          </CTooltip>\n          <ConfirmationBoundaryModal\n            onCancel={() => setIsUnpublishPromptOpen(false)}\n            onConfirm={onUnpublishConfirm}\n            isOpen={isUnpublishPromptOpen}\n            headerText={'Are you sure you want to unpublish this listing?'}\n            isSuspended={isUnpublishSuspending}\n          >\n            <p>\n              By unpublishing this listing you will set this and all its content as hidden from DOD\n              VISION users. You can publish this again at anytime so long as the listing payment\n              status is in good standing.\n            </p>\n          </ConfirmationBoundaryModal>\n        </>\n      )\n    }\n\n    return props.listing.isPublished ? renderUnpublishActionButton() : renderPublishActionButton()\n  }),\n)\n","import { ListingData } from '../../stores/ListingStore'\n\nexport const canListingPublish = (listing: ListingData) => !listing.isPublished\n\nexport const canListingUnpublish = (listing: ListingData) => {\n  return listing.isPublished\n}\n","export const unpublishIcon = () => {\n  return (\n    <svg\n      width=\"18px\"\n      height=\"18px\"\n      version=\"1.1\"\n      viewBox=\"0 0 1200 1200\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <path\n        d=\"m1151 572.99-93.75-90.344c-114.82-109.65-265.55-173.88-424.18-180.72-22-2.5742-44.227-2.5742-66.227 0-68.785 3.2148-136.66 17.035-201.22 40.969l-152.31-145.05c-7.1953-6.8906-16.84-10.637-26.801-10.406-9.9609 0.23047-19.422 4.4141-26.289 11.629-6.8711 7.2188-10.586 16.871-10.328 26.832 0.25781 9.9609 4.4727 19.406 11.707 26.258l129.94 123.75c-54.457 28.293-104.58 64.242-148.85 106.75l-93.75 90.344c-7.3359 7.0703-11.48 16.82-11.48 27.008s4.1445 19.938 11.48 27.008l93.75 90.344c114.82 109.69 265.59 173.92 424.24 180.73 21.949 2.5586 44.121 2.5586 66.07-0.003906 59.004-2.8516 117.37-13.496 173.58-31.66l142.52 135.73v0.003906c7.1953 6.8906 16.836 10.637 26.797 10.406 9.9609-0.23047 19.422-4.4141 26.293-11.629 6.8711-7.2188 10.586-16.871 10.324-26.832-0.25781-9.9609-4.4688-19.406-11.707-26.258l-117.31-111.72c64.043-29.781 122.74-69.91 173.74-118.77l93.75-90.344c7.3242-7.0742 11.461-16.824 11.461-27.008s-4.1367-19.934-11.461-27.008zm-326.04 27.008c-0.011719 49.277-16.305 97.168-46.344 136.23l-54.629-52.027c27.078-39.387 33.691-89.348 17.793-134.43-15.898-45.078-52.395-79.836-98.191-93.52-45.801-13.684-95.383-4.6445-133.4 24.324l-55.098-52.473h-0.003906c34.426-29.18 76.863-47.277 121.75-51.918 15.422-0.59375 30.836-0.59375 46.246 0 55.348 5.7852 106.6 31.852 143.87 73.18 37.277 41.324 57.938 94.98 58.004 150.63zm-248.24 223.8c-50.273-5.1211-97.348-27.051-133.61-62.246-36.262-35.191-59.59-81.586-66.211-131.68-6.625-50.098 3.8477-100.96 29.719-144.37l56.457 53.766c-17.195 37.82-17.824 81.102-1.7383 119.41s47.434 68.156 86.477 82.355c39.043 14.199 82.238 11.461 119.18-7.5586l56.867 54.16c-30.129 20.023-64.664 32.434-100.65 36.168-15.504 0.60156-31.004 0.60156-46.488 0zm91.363-192.84-102.24-97.367 0.003907-0.003906c10.516-5.5625 22.219-8.5078 34.113-8.5898 19.883 0.023438 38.949 7.9336 53.008 21.992 14.059 14.059 21.969 33.125 21.992 53.008-0.035156 10.695-2.3828 21.254-6.8789 30.957zm-63.027 43.523c-1.7148 0.11719-3.3516 0.51562-5.0938 0.51562-19.887-0.019531-38.949-7.9297-53.012-21.988-14.059-14.062-21.969-33.125-21.988-53.012 0-0.5625 0.15234-1.082 0.16406-1.6367zm-476.06-74.484 65.734-63.336c45.387-43.504 97.66-79.195 154.7-105.63l1.6797 1.6016c-33.773 50.039-51.605 109.14-51.145 169.51 0.46094 60.371 19.191 119.19 53.723 168.71-58.684-26.594-112.43-62.945-158.96-107.52zm876.18 63.336h-0.003906c-46.52 44.566-100.26 80.922-158.94 107.52 34.977-50.113 53.73-109.75 53.727-170.86-0.003906-61.109-18.758-120.75-53.738-170.86 58.684 26.598 112.43 62.953 158.95 107.53l65.734 63.336z\"\n        fill=\"#111112\"\n      />\n    </svg>\n  )\n}\n","export const publishIcon = () => {\n  return (\n    <svg\n      width=\"18px\"\n      height=\"18px\"\n      version=\"1.1\"\n      viewBox=\"0 0 1200 1200\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <path\n        d=\"m787.43 74.961h-524.93c-45.227 0-112.5 29.961-112.5 112.5v825.07c0 45.227 29.961 112.5 112.5 112.5h675c45.227 0 112.5-29.961 112.5-112.5v-675c0-90.824-54.898-262.57-262.57-262.57zm183.6 225h-108.49c-30.227 0-37.051-20.625-37.5-37.5v-109.5c104.93 15.828 136.61 97.09 145.99 147zm-33.824 750.08h-299.7v-472.02l85.988 85.988c7.3125 7.3125 16.91 10.988 26.512 10.988s19.199-3.6758 26.512-10.988c14.664-14.664 14.664-38.363 0-53.023l-150-150c-14.664-14.664-38.363-14.664-53.023 0l-150 150c-14.664 14.664-14.664 38.363 0 53.023 14.664 14.664 38.363 14.664 53.023 0l85.988-85.988v472.01l-300 0.003906c-30.188 0-37.051-20.625-37.5-37.5v-825.08c0-30.188 20.625-37.051 37.5-37.5h487.54v112.5c0 45.227 29.961 112.5 112.5 112.5h112.46v637.57c0 30.113-20.512 37.016-37.801 37.504z\"\n        fill=\"#111112\"\n      />\n    </svg>\n  )\n}\n","import { observer } from 'mobx-react'\nimport { useState } from 'react'\nimport { ListingServiceProductData, ListingUseCaseData, isUseCase } from '../../stores/ListingStore'\nimport { CCard, CCardBody, CCardLink, CCardTitle } from '@coreui/react'\nimport {\n  OptionalImage,\n  ActionDropdown,\n  parseDate,\n  ActionDropdownMenuOption,\n  ActionConfirmationModal,\n  formatUrlProtocol,\n} from '@mobilizeyourtech/vision-core-react'\n\ntype TProps = {\n  listingArtifact: ListingServiceProductData | ListingUseCaseData\n  onDelete: (artifactId: string | number) => void\n  handleParamsChange: (id: string | number) => void\n  handleEdit: (artifactId: string | number) => void\n}\n\ninterface ArtifactMenuOption extends ActionDropdownMenuOption {\n  callback: () => void\n}\n\nexport const ListingArtifactCard = observer((props: TProps) => {\n  const [isConfirmationModalOpen, setIsConfirmationModalOpen] = useState<boolean>(false)\n  const artifactOptions: Array<ArtifactMenuOption> = [\n    {\n      id: 0,\n      name: 'Edit',\n      iconClassName: 'fa fa-pen',\n      callback: () => props.handleEdit(props.listingArtifact.id),\n    },\n    {\n      id: 1,\n      name: 'Remove',\n      iconClassName: 'fa fa-trash',\n      callback: () => setIsConfirmationModalOpen(true),\n    },\n  ]\n\n  return (\n    <CCard className=\"ListingArtifactCard\">\n      <ActionConfirmationModal\n        isModalOpen={isConfirmationModalOpen}\n        onSubmit={() => props.onDelete(props.listingArtifact.id)}\n        onClose={() => setIsConfirmationModalOpen(false)}\n        actionText={`Are you sure you want to delete ${props.listingArtifact.name}?`}\n        alignment=\"center\"\n      />\n\n      <CCardBody data-testid=\"card-body\">\n        <div className=\"listing-artifact-card-header\">\n          <div className=\"header-left\">\n            <OptionalImage\n              data-testid=\"optional-image\"\n              onClick={() => props.handleParamsChange(props.listingArtifact.id)}\n              className=\"artifact-logo\"\n              src={props.listingArtifact.logo?.path}\n            />\n            <div className=\"artifact-details\">\n              <CCardTitle onClick={() => props.handleParamsChange(props.listingArtifact.id)}>\n                {props.listingArtifact.name}\n              </CCardTitle>\n              <CCardLink href={formatUrlProtocol(props.listingArtifact.url!)} target=\"_blank\">\n                {props.listingArtifact.url && props.listingArtifact.url.replace(/^https?:\\/\\//, '')}\n              </CCardLink>\n            </div>\n          </div>\n          <div className=\"header-right\">\n            <ActionDropdown\n              menuOptions={artifactOptions}\n              onSelect={(option) => option.callback()}\n              data-testid={'artifact-actions'}\n              dropdownToggleProps={{\n                caret: false,\n              }}\n            />\n          </div>\n        </div>\n        {isUseCase(props.listingArtifact) && (\n          <div className=\"use-case-date-row\">\n            <p className=\"use-case-date\">\n              <span className=\"bold-label\">Start Date: </span>\n              {props.listingArtifact.startDate ? (\n                parseDate(props.listingArtifact.startDate)\n              ) : (\n                <span className=\"grey-label\">N/A</span>\n              )}\n            </p>\n            <p className=\"use-case-date\">\n              <span className=\"bold-label\">End Date: </span>\n              {props.listingArtifact.endDate ? (\n                parseDate(props.listingArtifact.endDate)\n              ) : (\n                <span className=\"grey-label\">N/A</span>\n              )}\n            </p>\n          </div>\n        )}\n        <p className=\"truncate-overflow\">{props.listingArtifact.description}</p>\n      </CCardBody>\n    </CCard>\n  )\n})\n","import { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ListingStore, NotificationStore } from '../../stores'\nimport { ListingServiceProductData } from '../../stores/ListingStore'\nimport { useRouteMatch } from 'react-router-dom'\nimport { useQueryParams, withDefault, NumberParam, StringParam } from 'use-query-params'\nimport { Pagination } from '../custom'\nimport { PaginationData } from '../../lib/types/Params'\nimport { CRow, CButton, CCard, CCardBody } from '@coreui/react'\nimport { ListingArtifactFormModal } from '../form'\nimport { ListingArtifactCard } from './ListingArtifactCard'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport ViewListingArtifactModal from './ViewListingArtifactModal'\n\ntype TProps = {\n  listingStore?: ListingStore\n  notificationStore?: NotificationStore\n  timeout?: number\n  /** Optional timeout for form modal - mostly passthrough for testing */\n}\ninterface MatchParams {\n  id: string\n}\n\nexport const ListingServicesTab = inject(\n  ApplicationStore.names.listingStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [pagination, setPagination] = useState<PaginationData | undefined>(undefined)\n    const [paginationParams] = useQueryParams({\n      page: withDefault(NumberParam, 1),\n      perPage: withDefault(NumberParam, 10),\n    })\n    const {\n      params: { id },\n    } = useRouteMatch<MatchParams>()\n\n    const [, setParams] = useQueryParams({\n      artifactId: withDefault(StringParam, undefined),\n      artifactType: withDefault(StringParam, undefined),\n    })\n\n    const [services, setServices] = useState<Array<ListingServiceProductData>>([])\n    const [editServiceId, setEditServiceId] = useState<string | number | undefined>(undefined)\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [isCreateModalVisible, setIsCreateModalVisible] = useState<boolean>(false)\n    const [error, setError] = useState<any>(undefined)\n\n    useEffect(() => {\n      getData()\n    }, [paginationParams])\n\n    const getData = () => {\n      setIsLoading(true)\n      props.listingStore\n        ?.getListingServices({\n          listingId: id,\n          params: paginationParams,\n        })\n        .then((response) => {\n          setServices(response.data)\n          setPagination(response.pagination)\n        })\n        .catch((error) => {\n          setError(error)\n          props.notificationStore?.setNotificationMessage('Error loading services', 'error', 3000)\n        })\n        .finally(() => setIsLoading(false))\n    }\n\n    const handleDelete = (serviceId: string | number) => {\n      props.listingStore\n        ?.deleteService({ listingId: id, serviceId })\n        .then(() => {\n          props.notificationStore?.setNotificationMessage('Service deleted', 'success', 3000)\n          getData()\n        })\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Could not delete Service - please reload and try again',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    const renderServiceContent = () => {\n      if (error) {\n        return (\n          <CCard className=\"no-services\">\n            <CCardBody\n              className={'subtle d-flex text-center align-items-center justify-content-center'}\n            >\n              Error loading Services - please reload\n            </CCardBody>\n          </CCard>\n        )\n      } else if (services.length > 0) {\n        return services.map((service) => {\n          return (\n            <ListingArtifactCard\n              listingArtifact={service}\n              onDelete={handleDelete}\n              key={service.id}\n              handleEdit={(id: string | number) => setEditServiceId(id)}\n              handleParamsChange={(id: string | number) =>\n                setParams({ artifactId: id as string, artifactType: 'service' })\n              }\n            />\n          )\n        })\n      } else if (pagination && pagination.count === 0) {\n        return (\n          <CCard className=\"no-services\">\n            <CCardBody\n              className={'subtle d-flex text-center align-items-center justify-content-center'}\n            >\n              There are no services to display\n            </CCardBody>\n          </CCard>\n        )\n      }\n    }\n\n    const handleSuccessfulUpdate = (artifactType: string, artifactId: string) => {\n      getData()\n      setParams({ artifactType, artifactId })\n    }\n\n    return (\n      <section className=\"ListingServicesTab\">\n        <ViewListingArtifactModal\n          handleEditClick={(artifactId) => {\n            setEditServiceId(artifactId)\n            setParams({ artifactType: undefined, artifactId: undefined })\n          }}\n        />\n        <ListingArtifactFormModal\n          artifact=\"service\"\n          listingId={id}\n          method=\"create\"\n          onSubmit={() => getData()}\n          visible={isCreateModalVisible}\n          setVisibility={setIsCreateModalVisible}\n          timeout={props.timeout}\n        />\n        <ListingArtifactFormModal\n          artifact=\"service\"\n          listingId={id}\n          method=\"update\"\n          onSubmit={(artifact, id) => handleSuccessfulUpdate(artifact, id.toString())}\n          visible={!!editServiceId}\n          setVisibility={() => setEditServiceId(undefined)}\n          artifactId={editServiceId}\n          timeout={props.timeout}\n        />\n        <div className=\"listing-services-tab-header\">\n          <h1>Services</h1>\n          <CButton\n            className=\"create-service-button\"\n            variant=\"ghost\"\n            disabled={isLoading}\n            data-testid=\"create-service-button\"\n            onClick={() => {\n              setIsCreateModalVisible(true)\n            }}\n          >\n            <i className=\"fa fa-plus\" />\n            Create Service\n          </CButton>\n        </div>\n        <SuspensionBoundary isLoading={isLoading}>\n          <CRow className=\"listing-services\" xxl={{ cols: 3 }}>\n            {renderServiceContent()}\n          </CRow>\n        </SuspensionBoundary>\n\n        <div className=\"pagination-container\">\n          {pagination && <Pagination pagination={pagination} />}\n        </div>\n      </section>\n    )\n  }),\n)\n","import { useState, useEffect } from 'react'\nimport { useRouteMatch } from 'react-router-dom'\nimport { useQueryParams, withDefault, NumberParam, StringParam } from 'use-query-params'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ListingStore, NotificationStore } from '../../stores'\nimport { ListingUseCaseData } from '../../stores/ListingStore'\nimport { PaginationData } from '../../lib/types/Params'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport { CCard, CButton, CCardBody, CRow } from '@coreui/react'\nimport { Pagination } from '../../components/custom/Pagination'\nimport { ListingArtifactCard } from './ListingArtifactCard'\nimport { ListingArtifactFormModal } from '../form'\nimport ViewListingArtifactModal from './ViewListingArtifactModal'\n\ntype TProps = {\n  listingStore?: ListingStore\n  notificationStore?: NotificationStore\n  timeout?: number\n}\n\ninterface MatchParams {\n  id: string\n}\n\nexport const ListingUseCasesTab = inject(\n  ApplicationStore.names.listingStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const {\n      params: { id },\n    } = useRouteMatch<MatchParams>()\n\n    const [paginationParams] = useQueryParams({\n      page: withDefault(NumberParam, 1),\n      perPage: withDefault(NumberParam, 10),\n    })\n\n    const [, setParams] = useQueryParams({\n      artifactId: withDefault(StringParam, undefined),\n      artifactType: withDefault(StringParam, undefined),\n    })\n\n    const [editUseCaseId, setEditUseCaseId] = useState<string | number | undefined>(undefined)\n    const [useCases, setUseCases] = useState<Array<ListingUseCaseData>>([])\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [isCreateModalVisible, setIsCreateModalVisible] = useState<boolean>(false)\n    const [pagination, setPagination] = useState<PaginationData | undefined>(undefined)\n    const [error, setError] = useState<any>(undefined)\n\n    useEffect(() => {\n      loadData()\n    }, [paginationParams])\n\n    const loadData = () => {\n      setIsLoading(true)\n      props.listingStore\n        ?.getListingUseCases({\n          listingId: id,\n          params: paginationParams,\n        })\n        .then((response) => {\n          setUseCases(response.data)\n          setPagination(response.pagination)\n        })\n        .catch((error) => {\n          setError(error)\n          props.notificationStore?.setNotificationMessage('Error loading Use Cases', 'error', 3000)\n        })\n        .finally(() => setIsLoading(false))\n    }\n\n    const handleDelete = (useCaseId: string | number) => {\n      props.listingStore\n        ?.deleteUseCase({ listingId: id, useCaseId })\n        .then(() => {\n          props.notificationStore?.setNotificationMessage('Use Case deleted', 'success', 3000)\n          loadData()\n        })\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Could not delete Use Case - please reload and try again',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    const handleSuccessfulUpdate = (artifactType: string, artifactId: string) => {\n      loadData()\n      setParams({ artifactType, artifactId })\n    }\n\n    const renderUseCaseContent = () => {\n      if (error) {\n        return (\n          <CCard className=\"no-use-cases\">\n            <CCardBody\n              className={'subtle d-flex text-center align-items-center justify-content-center'}\n            >\n              Error loading Use Cases - please reload\n            </CCardBody>\n          </CCard>\n        )\n      } else if (useCases.length > 0) {\n        return useCases.map((useCase) => {\n          return (\n            <ListingArtifactCard\n              handleParamsChange={(id: string | number) =>\n                setParams({ artifactId: id as string, artifactType: 'use case' })\n              }\n              handleEdit={(id) => setEditUseCaseId(id)}\n              listingArtifact={useCase}\n              key={useCase.id}\n              onDelete={handleDelete}\n            />\n          )\n        })\n      } else if (pagination && pagination.count === 0) {\n        return (\n          <CCard className=\"no-use-cases\">\n            <CCardBody\n              className={'subtle d-flex text-center align-items-center justify-content-center'}\n            >\n              There are no use cases to display\n            </CCardBody>\n          </CCard>\n        )\n      }\n    }\n\n    return (\n      <section className=\"ListingUseCasesTab\">\n        <ViewListingArtifactModal\n          handleEditClick={(artifactId) => {\n            setEditUseCaseId(artifactId)\n            setParams({ artifactType: undefined, artifactId: undefined })\n          }}\n        />\n        <ListingArtifactFormModal\n          artifact=\"use case\"\n          listingId={id}\n          method=\"create\"\n          onSubmit={() => loadData()}\n          visible={isCreateModalVisible}\n          setVisibility={setIsCreateModalVisible}\n          timeout={props?.timeout}\n        />\n        <ListingArtifactFormModal\n          artifact=\"use case\"\n          listingId={id}\n          method=\"update\"\n          onSubmit={(artifact, id) => handleSuccessfulUpdate(artifact, id.toString())}\n          visible={!!editUseCaseId}\n          setVisibility={() => setEditUseCaseId(undefined)}\n          artifactId={editUseCaseId}\n          timeout={props.timeout}\n        />\n        <div className=\"listing-use-cases-tab-header\">\n          <h1>Use Cases</h1>\n          <CButton\n            className=\"create-use-case-button\"\n            variant=\"ghost\"\n            disabled={isLoading}\n            data-testid=\"create-use-case-button\"\n            onClick={() => setIsCreateModalVisible(true)}\n          >\n            <i className=\"fa fa-plus\" />\n            Create Use Case\n          </CButton>\n        </div>\n        <SuspensionBoundary isLoading={isLoading}>\n          <CRow className=\"listing-use-cases\" xxl={{ cols: 3 }}>\n            {renderUseCaseContent()}\n          </CRow>\n        </SuspensionBoundary>\n\n        <div className=\"pagination-container\">\n          {pagination && <Pagination pagination={pagination} />}\n        </div>\n      </section>\n    )\n  }),\n)\n","import { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ListingStore, NotificationStore } from '../../stores'\nimport { ListingServiceProductData } from '../../stores/ListingStore'\nimport { useRouteMatch } from 'react-router-dom'\nimport { useQueryParams, withDefault, NumberParam, StringParam } from 'use-query-params'\nimport { Pagination } from '../custom'\nimport { PaginationData } from '../../lib/types/Params'\nimport { CCol, CRow, CButton, CCard, CCardBody } from '@coreui/react'\nimport { ListingArtifactCard } from './ListingArtifactCard'\nimport { ListingArtifactFormModal } from '../form'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport ViewListingArtifactModal from './ViewListingArtifactModal'\n\ntype TProps = {\n  listingStore?: ListingStore\n  notificationStore?: NotificationStore\n  timeout?: number\n}\n\ninterface MatchParams {\n  id: string\n}\n\nexport const ListingProductsTab = inject(\n  ApplicationStore.names.listingStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [pagination, setPagination] = useState<PaginationData | undefined>(undefined)\n    const [paginationParams] = useQueryParams({\n      page: withDefault(NumberParam, 1),\n      perPage: withDefault(NumberParam, 10),\n    })\n    const {\n      params: { id },\n    } = useRouteMatch<MatchParams>()\n\n    const [, setParams] = useQueryParams({\n      artifactId: withDefault(StringParam, undefined),\n      artifactType: withDefault(StringParam, undefined),\n    })\n\n    const [products, setProducts] = useState<Array<ListingServiceProductData>>([])\n    const [editProductId, setEditProductId] = useState<string | number | undefined>(undefined)\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [isCreateModalVisible, setIsCreateModalVisible] = useState<boolean>(false)\n    const [error, setError] = useState<any>(undefined)\n\n    useEffect(() => {\n      loadData()\n    }, [paginationParams])\n\n    const loadData = () => {\n      setIsLoading(true)\n      props.listingStore\n        ?.getListingProducts({\n          listingId: id,\n          params: paginationParams,\n        })\n        .then((response) => {\n          setProducts(response.data)\n          setPagination(response.pagination)\n        })\n        .catch((error) => {\n          setError(error)\n          props.notificationStore?.setNotificationMessage('Error loading products', 'error', 3000)\n        })\n        .finally(() => setIsLoading(false))\n    }\n\n    const handleDelete = (productId: string | number) => {\n      props.listingStore\n        ?.deleteProduct({ listingId: id, productId })\n        .then(() => {\n          props.notificationStore?.setNotificationMessage('Product deleted', 'success', 3000)\n          loadData()\n        })\n        .catch(() =>\n          props.notificationStore?.setNotificationMessage(\n            'Could not delete Product - please reload and try again',\n            'danger',\n            3000,\n          ),\n        )\n    }\n\n    const renderProductContent = () => {\n      if (error) {\n        return (\n          <CCol lg={3}>\n            <CCard className=\"no-products\">\n              <CCardBody\n                className={'subtle d-flex text-center align-items-center justify-content-center'}\n              >\n                Error loading Products - please reload\n              </CCardBody>\n            </CCard>\n          </CCol>\n        )\n      } else if (products.length > 0) {\n        return products.map((product) => {\n          return (\n            <ListingArtifactCard\n              handleParamsChange={(id: string | number) =>\n                setParams({ artifactId: id as string, artifactType: 'product' })\n              }\n              handleEdit={(id) => setEditProductId(id)}\n              listingArtifact={product}\n              onDelete={handleDelete}\n              key={product.id}\n            />\n          )\n        })\n      } else if (pagination && pagination.count === 0) {\n        return (\n          <CCard className=\"no-products\">\n            <CCardBody\n              className={'subtle d-flex text-center align-items-center justify-content-center'}\n            >\n              There are no products to display\n            </CCardBody>\n          </CCard>\n        )\n      }\n    }\n\n    const handleSuccessfulUpdate = (artifactType: string, artifactId: string) => {\n      loadData()\n      setParams({ artifactType, artifactId })\n    }\n\n    return (\n      <section className=\"ListingProductsTab\">\n        <ViewListingArtifactModal\n          handleEditClick={(id) => {\n            setEditProductId(id)\n            setParams({ artifactType: undefined, artifactId: undefined })\n          }}\n        />\n        <ListingArtifactFormModal\n          artifact=\"product\"\n          listingId={id}\n          method=\"create\"\n          onSubmit={() => loadData()}\n          visible={isCreateModalVisible}\n          setVisibility={setIsCreateModalVisible}\n          timeout={props.timeout}\n        />\n        <ListingArtifactFormModal\n          artifact=\"product\"\n          listingId={id}\n          method=\"update\"\n          onSubmit={(artifact, id) => handleSuccessfulUpdate(artifact, id.toString())}\n          visible={!!editProductId}\n          setVisibility={() => setEditProductId(undefined)}\n          timeout={props.timeout}\n          artifactId={editProductId}\n        />\n        <div className=\"listing-products-tab-header\">\n          <h1>Products</h1>\n          <CButton\n            className=\"create-product-button\"\n            variant=\"ghost\"\n            disabled={isLoading}\n            data-testid=\"create-product-button\"\n            onClick={() => {\n              setIsCreateModalVisible(true)\n            }}\n          >\n            <i className=\"fa fa-plus\" />\n            Create Product\n          </CButton>\n        </div>\n        <SuspensionBoundary isLoading={isLoading}>\n          <CRow className=\"listing-products\" xxl={{ cols: 3 }}>\n            {renderProductContent()}\n          </CRow>\n        </SuspensionBoundary>\n\n        <div className=\"pagination-container\">\n          {pagination && <Pagination pagination={pagination} />}\n        </div>\n      </section>\n    )\n  }),\n)\n","import { observer } from 'mobx-react'\nimport { ListingAwardData } from '../../stores/ListingStore'\nimport { CCard, CCardBody, CCardSubtitle, CCardTitle } from '@coreui/react'\nimport { parseDate } from '@mobilizeyourtech/vision-core-react'\nimport ReactHtmlParser from 'react-html-parser'\n\ntype TProps = {\n  award: ListingAwardData\n  handleParamsChange: (id: string | number) => void\n}\n\nexport const ListingAwardCard = observer((props: TProps) => {\n  return (\n    <CCard className=\"ListingAwardCard\" onClick={() => props.handleParamsChange(props.award.id)}>\n      <CCardBody data-testid=\"card-body\">\n        <div className=\"award-card-header pb-3\">\n          <div className=\"header-left\">\n            <div className=\"artifact-details\">\n              <CCardTitle className=\"truncate-overflow\">{props.award.awardTitle}</CCardTitle>\n              <CCardSubtitle className={'subtle'}>\n                {props.award.contractNumber}\n                {props.award.awardYear && '  -  ' + props.award.awardYear}\n                {props.award.phase && '  -  ' + props.award.phase}\n              </CCardSubtitle>\n            </div>\n          </div>\n        </div>\n        <div className=\"date-row\">\n          <p className=\"date\">\n            Contract Start Date:{' '}\n            {props.award.contractStartDate ? parseDate(props.award.contractStartDate) : 'N/A'}\n          </p>\n          <p className=\"date\">\n            Contract End Date:{' '}\n            {props.award.contractEndDate ? (\n              parseDate(props.award.contractEndDate)\n            ) : (\n              <span className=\"grey-label\">N/A</span>\n            )}\n          </p>\n        </div>\n        <div className=\"truncate-overflow\">\n          {props.award.searchMetadata?.highlight ? (\n            <div className={'search-highlight bold-color-primary-accent'}>\n              {ReactHtmlParser(props.award.searchMetadata.highlight)}\n            </div>\n          ) : (\n            <p className=\"truncate-overflow\">{props.award.awardAbstract}</p>\n          )}\n        </div>\n      </CCardBody>\n    </CCard>\n  )\n})\n","import { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ListingStore, NotificationStore } from '../../stores'\nimport { ListingAwardData } from '../../stores/ListingStore'\nimport { useRouteMatch } from 'react-router-dom'\nimport { useQueryParams, withDefault, NumberParam, StringParam } from 'use-query-params'\nimport { Pagination } from '../custom'\nimport { PaginationData } from '../../lib/types/Params'\nimport { CRow, CCard, CButton, CCardBody, CContainer } from '@coreui/react'\nimport { RichTooltip, SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport { ListingAwardCard } from './ListingAwardCard'\nimport ViewListingArtifactModal from './ViewListingArtifactModal'\nimport { ConnectAwardSearch } from '../Organisms/SearchFilters'\nimport { UrlFederatedBasicDropdown } from '../Molecules'\n\ntype TProps = {\n  listingStore?: ListingStore\n  notificationStore?: NotificationStore\n}\n\ninterface MatchParams {\n  id: string\n}\n\nexport const ListingAwardsTab = inject(\n  ApplicationStore.names.listingStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [pagination, setPagination] = useState<PaginationData | undefined>(undefined)\n    const [paginationParams] = useQueryParams({\n      page: withDefault(NumberParam, 1),\n      perPage: withDefault(NumberParam, 10),\n    })\n    const {\n      params: { id },\n    } = useRouteMatch<MatchParams>()\n\n    const [, setArtifactParams] = useQueryParams({\n      artifactId: withDefault(StringParam, undefined),\n      artifactType: withDefault(StringParam, undefined),\n    })\n\n    const [params, setParams] = useQueryParams({\n      searchAwards: withDefault(StringParam, undefined),\n      awardPhase: withDefault(StringParam, undefined),\n      awardNaicsCodeIds: withDefault(StringParam, undefined),\n      awardContractNumber: withDefault(StringParam, undefined),\n      awardAmountMin: withDefault(NumberParam, undefined),\n      awardAmountMax: withDefault(NumberParam, undefined),\n      awardDateMin: withDefault(StringParam, undefined),\n      awardDateMax: withDefault(StringParam, undefined),\n      awardState: withDefault(StringParam, undefined),\n      awardTechnologyTypeIds: withDefault(StringParam, undefined),\n      sortBy: withDefault(StringParam, 'createdAt'),\n      sortDirection: withDefault(StringParam, 'desc'),\n      highlight: withDefault(StringParam, 'true'),\n      eager: withDefault(StringParam, undefined),\n    })\n\n    const [awards, setAwards] = useState<Array<ListingAwardData>>([])\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [error, setError] = useState<any>(undefined)\n\n    const loadData = () => {\n      let isPromiseStale = false\n\n      setIsLoading(true)\n      props.listingStore\n        ?.getListingAwards({\n          listingId: id,\n          params: { ...params, ...paginationParams },\n        })\n        .then((response) => {\n          if (!isPromiseStale) {\n            setAwards(response.data)\n            setPagination(response.pagination)\n          }\n        })\n        .catch((error) => {\n          if (!isPromiseStale) {\n            setError(error)\n            props.notificationStore?.setNotificationMessage('Error loading awards', 'error', 3000)\n          }\n        })\n        .finally(() => {\n          setTimeout(() => {\n            setIsLoading(false)\n          }, 300)\n          return () => {\n            isPromiseStale = true\n          }\n        })\n    }\n\n    useEffect(() => {\n      loadData()\n    }, [paginationParams, params])\n\n    const resetSearch = () => {\n      setParams({\n        searchAwards: undefined,\n        awardPhase: undefined,\n        awardNaicsCodeIds: undefined,\n        awardContractNumber: undefined,\n        awardAmountMin: undefined,\n        awardAmountMax: undefined,\n        awardDateMin: undefined,\n        awardDateMax: undefined,\n        awardState: undefined,\n        awardTechnologyTypeIds: undefined,\n        sortBy: undefined,\n        sortDirection: undefined,\n        highlight: 'true',\n      })\n    }\n\n    const renderProductContent = () => {\n      if (error) {\n        return (\n          <CCard className=\"no-products\">\n            <CCardBody\n              className={'subtle d-flex text-center align-items-center justify-content-center'}\n            >\n              Error loading Awards - please reload\n            </CCardBody>\n          </CCard>\n        )\n      } else if (awards.length > 0) {\n        return awards.map((award) => {\n          return (\n            <ListingAwardCard\n              award={award}\n              key={award.id}\n              handleParamsChange={(id: string | number) =>\n                setArtifactParams({ artifactId: id as string, artifactType: 'award' })\n              }\n            />\n          )\n        })\n      } else if (pagination && pagination.count === 0) {\n        return (\n          <CCard className=\"no-awards\">\n            <CCardBody\n              className={'subtle d-flex text-center align-items-center justify-content-center'}\n            >\n              There are no awards to display\n            </CCardBody>\n          </CCard>\n        )\n      }\n    }\n\n    return (\n      <section className=\"ListingAwardsTab px-3\" data-testid={'listing-awards-tab'}>\n        <ViewListingArtifactModal\n          handleEditClick={(id) => {\n            setArtifactParams({ artifactType: undefined, artifactId: undefined })\n          }}\n        />\n        <div className=\"listing-awards-tab-header\">\n          <h1 className=\"ms-2\">Awards</h1>\n          <RichTooltip\n            aria-label={'alabel'}\n            tooltipContent={\n              <span className=\"awards-tooltip\">\n                Award data is populated from third party sources, so you may experience some latency\n                based on when an award is granted to when it is entered into those third party\n                sources.\n              </span>\n            }\n            location=\"top\"\n            timeout={300}\n          >\n            <i className=\"fas fa-info-circle\" />\n          </RichTooltip>\n        </div>\n        <CCard>\n          <CCardBody className=\"gap-2\">\n            <div className=\"d-flex flex-row justify-content-end align-items-center mb-3\">\n              <CButton data-testid=\"reset-btn\" onClick={() => resetSearch()}>\n                <i className=\"fas fa-redo\" />\n                Reset\n              </CButton>\n            </div>\n            <ConnectAwardSearch isStandaloneAwardFilter />\n          </CCardBody>\n        </CCard>\n        <CRow className=\"p-0\">\n          <div className=\"row w-100 my-2\">\n            <div id=\"sort-by-dropdown\" className=\"col-3 d-flex flex-column\">\n              <label className=\"input-label fw-bold\">Sort By</label>\n              <UrlFederatedBasicDropdown\n                options={[\n                  { label: 'Created At', urlValue: 'createdAt' },\n                  { label: 'Updated At', urlValue: 'updatedAt' },\n                ]}\n                data-testid=\"sort-by\"\n                paramKey={'sortBy'}\n                defaultParam={params['sortBy']}\n                placeholder=\"Select an option\"\n              />\n            </div>\n            <div id=\"order-by-dropdown\" className=\"col-3 d-flex flex-column\">\n              <label className=\"input-label ms-1 fw-bold\">Sort Order</label>\n              <UrlFederatedBasicDropdown\n                options={[\n                  { label: 'Ascending', urlValue: 'asc' },\n                  { label: 'Descending', urlValue: 'desc' },\n                ]}\n                data-testid=\"order-by\"\n                paramKey={'sortDirection'}\n                defaultParam={params['sortDirection']}\n                placeholder=\"Select an option\"\n              />\n            </div>\n          </div>\n        </CRow>\n        <SuspensionBoundary isLoading={isLoading}>\n          <CContainer>\n            <CRow className=\"listing-awards\" xxl={{ cols: 3 }}>\n              {renderProductContent()}\n            </CRow>\n          </CContainer>\n        </SuspensionBoundary>\n        <div className=\"pagination-container\">\n          {pagination && <Pagination pagination={pagination} />}\n        </div>\n      </section>\n    )\n  }),\n)\n","import React, { useState } from 'react'\nimport { ListingData, ListingStore } from '../../stores/ListingStore'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore } from '../../stores'\nimport { CButton, CTooltip } from '@coreui/react'\nimport { ConfirmationBoundaryModal } from '../custom'\nimport { visionVisibilityIcon } from '../../assets/brand/vision_visibility_icon'\n\ntype TProps = {\n  listing: ListingData\n  listingStore?: ListingStore\n  notificationStore?: NotificationStore\n  onAction: (data: ListingData) => void\n  withText?: boolean\n}\nexport const ListingVisionVisibilityActionButton = inject(\n  ApplicationStore.names.listingStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [isPromptOpen, setIsPromptOpen] = useState<boolean>(false)\n    const [isSuspending, setIsSuspending] = useState<boolean>(false)\n\n    const { isOnlyVisionVisible } = props.listing\n\n    const determineVisibilityMessage = () => {\n      return isOnlyVisionVisible\n        ? 'Successfully changed listing visibility to everyone'\n        : 'Successfully changed listing visibility to VISION users only.'\n    }\n\n    const toggleVisibilityConfirm = () => {\n      setIsSuspending(true)\n      props.listingStore\n        ?.setListingVisibility(props.listing.id, !isOnlyVisionVisible)\n        .then((data) => {\n          setIsSuspending(false)\n          setIsPromptOpen(false)\n          props.notificationStore?.setNotificationMessage(\n            determineVisibilityMessage(),\n            'success',\n            3000,\n          )\n          props.onAction(data)\n        })\n        .catch(() => {\n          setIsSuspending(false)\n          props.notificationStore?.setNotificationMessage(\n            'Failed to change listing visibility. Please try again',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    const renderToggleVisibilityButton = () => {\n      return (\n        <>\n          <CTooltip\n            content={`Make visible to ${isOnlyVisionVisible ? 'everyone' : 'VISION users only'} `}\n          >\n            <CButton\n              className=\"span-btn visibility-action-btn\"\n              data-testid={\n                isOnlyVisionVisible ? 'everyone-visibility-btn' : 'vision-visibility-btn'\n              }\n              onClick={() => setIsPromptOpen(true)}\n              disabled={isSuspending}\n            >\n              {isOnlyVisionVisible ? <i className=\"fa fa-users\"></i> : visionVisibilityIcon()}{' '}\n              {props.withText && (\n                <span>{`Make visible to ${\n                  isOnlyVisionVisible ? 'everyone' : 'VISION Only'\n                } `}</span>\n              )}\n            </CButton>\n          </CTooltip>\n          <ConfirmationBoundaryModal\n            onCancel={() => setIsPromptOpen(false)}\n            onConfirm={toggleVisibilityConfirm}\n            isOpen={isPromptOpen}\n            headerText={`Are you sure you want to make this listing viewable to ${\n              isOnlyVisionVisible ? 'everyone' : 'only VISION users'\n            }?`}\n            isSuspended={isSuspending}\n          >\n            <p>\n              {`Once selected, this listing is visible to ${\n                isOnlyVisionVisible ? 'everyone' : 'only DoD VISION users'\n              } . You can change this\n              setting at any time.`}\n            </p>\n          </ConfirmationBoundaryModal>\n        </>\n      )\n    }\n\n    return renderToggleVisibilityButton()\n  }),\n)\n","import { inject, observer } from 'mobx-react'\nimport { useRouteMatch } from 'react-router-dom'\nimport React, { useEffect, useState } from 'react'\nimport { parseDateTime } from '../../lib/time'\nimport { ApplicationStore, ListingStore, NotificationStore } from '../../stores'\nimport {\n  ListingArtifactAttachment,\n  ListingArtifactLink,\n  ListingData,\n} from '../../stores/ListingStore'\nimport {\n  CButton,\n  CButtonGroup,\n  CCard,\n  CCardBody,\n  CCardText,\n  CCardTitle,\n  CCol,\n  CContainer,\n  CRow,\n  CTooltip,\n  CNav,\n  CNavItem,\n  CNavLink,\n  CTabContent,\n  CTabPane,\n  CNavbar,\n  CBadge,\n} from '@coreui/react'\nimport {\n  BusinessClassificationsCard,\n  ContractingInformationCard,\n  ListingPublishedStatusIndicator,\n  ListingPublishOrUnpublishActionButton,\n  PointOfContactCard,\n  SocialMediaDetails,\n  TechnologyFocusAreasCard,\n  ListingServicesTab,\n  ListingUseCasesTab,\n  ListingProductsTab,\n  ListingAwardsTab,\n} from '../../components/listing'\nimport { formatUrlProtocol } from '../../lib/helpers/utils'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { ViewListingArtifactAttachmentOrLink } from '../../components/listing/ViewListingArtifactAttachmentOrLink'\nimport { OptionalImage } from '@mobilizeyourtech/vision-core-react'\nimport classnames from 'classnames'\nimport { visionVisibilityIcon } from '../../assets/brand/vision_visibility_icon'\n\ntype TProps = {\n  listingStore?: ListingStore\n  notificationStore?: NotificationStore\n}\n\ninterface MatchParams {\n  id: string\n}\n\nconst tabs = {\n  LISTING: 'STOREFRONT',\n  SERVICES: 'SERVICES',\n  PRODUCTS: 'PRODUCTS',\n  USE_CASES: 'USE_CASES',\n  AWARDS: 'AWARDS',\n}\n\nconst ViewListing = inject(\n  ApplicationStore.names.listingStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [params, setParams] = useQueryParams({\n      checkoutSuccess: withDefault(StringParam, undefined),\n      tab: withDefault(StringParam, tabs.LISTING),\n    })\n\n    const {\n      params: { id },\n    } = useRouteMatch<MatchParams>()\n    const [listing, setListing] = useState<ListingData | undefined>(undefined)\n\n    useEffect(() => {\n      props\n        .listingStore!.getSingleListing(id, 'links,attachments,productServiceCodes,views')\n        .then((listingResponse) => {\n          setListing(listingResponse)\n        })\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Unable to get listing data; please try again later',\n            'danger',\n          )\n        })\n    }, [params])\n\n    const renderStatusIndicator = (listing: ListingData) => {\n      if (!listing.isPublished) {\n        return (\n          <>\n            <i className=\"fa fa-circle grey\"></i>\n            <p className=\"visibility-status\">Visible to no one</p>\n          </>\n        )\n      } else if (listing.isOnlyVisionVisible) {\n        return (\n          <>\n            <CBadge className=\"vision-icon\">{visionVisibilityIcon()}</CBadge>\n            <p className=\"visibility-status\">Visible only to VISION users</p>\n          </>\n        )\n      } else {\n        return (\n          <>\n            <i className=\"fa fa-circle green\"></i>\n            <p className=\"visibility-status\">Visible to all government users</p>\n          </>\n        )\n      }\n    }\n\n    if (!listing) {\n      return <></>\n    }\n\n    return (\n      <section className=\"ViewListing\">\n        <CNavbar colorScheme=\"light\" placement=\"fixed-top\">\n          <CNav variant=\"tabs\" role=\"tablist\">\n            <CNavItem>\n              <CNavLink\n                active={params.tab === tabs.LISTING}\n                onClick={() => setParams({ tab: tabs.LISTING }, 'replace')}\n                data-testid=\"storefront-tab-button\"\n              >\n                Storefront\n              </CNavLink>\n            </CNavItem>\n            <CNavItem>\n              <CNavLink\n                active={params.tab === tabs.PRODUCTS}\n                onClick={() => setParams({ tab: tabs.PRODUCTS }, 'replace')}\n                data-testid=\"products-tab-button\"\n              >\n                Products\n              </CNavLink>\n            </CNavItem>\n            <CNavItem>\n              <CNavLink\n                active={params.tab === tabs.SERVICES}\n                onClick={() => setParams({ tab: tabs.SERVICES }, 'replace')}\n                data-testid=\"services-tab-button\"\n              >\n                Services\n              </CNavLink>\n            </CNavItem>\n            <CNavItem>\n              <CNavLink\n                active={params.tab === tabs.USE_CASES}\n                onClick={() => setParams({ tab: tabs.USE_CASES }, 'replace')}\n                data-testid=\"use-cases-tab-button\"\n              >\n                Use Cases\n              </CNavLink>\n            </CNavItem>\n            <CNavItem>\n              <CNavLink\n                active={params.tab === tabs.AWARDS}\n                onClick={() => setParams({ tab: tabs.AWARDS }, 'replace')}\n                data-testid=\"awards-tab-button\"\n              >\n                Awards\n              </CNavLink>\n            </CNavItem>\n          </CNav>\n        </CNavbar>\n\n        <CTabContent>\n          <CTabPane role=\"tabpanel\" visible={params.tab === tabs.LISTING}>\n            <div className=\"view-infobar container\">\n              <div className=\"view-infobar-status align-middle\">\n                <ListingPublishedStatusIndicator listing={listing} />\n                <div className=\"d-flex justify-content-center align-items-center ms-3\">\n                  {renderStatusIndicator(listing)}\n                </div>\n              </div>\n              <CButtonGroup role=\"group\">\n                {/* Disabling this per stakeholder request but leaving this commented for quick reenable */}\n                {/*<ListingVisionVisibilityActionButton*/}\n                {/*  listing={listing}*/}\n                {/*  onAction={(data) => setListing(data)}*/}\n                {/*/>*/}\n                <ListingPublishOrUnpublishActionButton\n                  listing={listing}\n                  onAction={(data) => setListing(data)}\n                />\n                <CTooltip content={'Edit this listing'}>\n                  <CButton\n                    className=\"edit-listing-btn span-btn\"\n                    href={`/storefront/${listing.id}/edit`}\n                  >\n                    <i className=\"fas fa-pencil-alt\" />\n                  </CButton>\n                </CTooltip>\n              </CButtonGroup>\n            </div>\n            <CContainer className=\"company-details\">\n              <CCard>\n                <CCardBody>\n                  <CRow className=\"mb-2\">\n                    <CCol className=\"listing-element-container\">\n                      <OptionalImage\n                        src={listing.logo?.path}\n                        title=\"Company Logo\"\n                        className=\"listing-logo\"\n                      />\n                    </CCol>\n\n                    <CCol xs={5}>\n                      <h3>{listing.name}</h3>\n                      <p className=\"bold-text\">{listing.tagLine}</p>\n                      <p>\n                        {listing.website && (\n                          <a\n                            target=\"_blank\"\n                            rel=\"noreferrer\"\n                            href={formatUrlProtocol(listing.website)}\n                          >\n                            {listing.website}\n                          </a>\n                        )}\n                      </p>\n                    </CCol>\n\n                    <CCol>\n                      <strong>Headquarters</strong>\n                      <p>{listing.addressLine1}</p>\n                      <p>{listing.addressLine2}</p>\n                      <p>{listing.addressLine3}</p>\n                      <p>\n                        {listing.city && listing.city + ','} {listing.stateProvince}{' '}\n                        {listing.postalCode}\n                      </p>\n                      <p>{listing.country}</p>\n                    </CCol>\n\n                    <CCol>\n                      <SocialMediaDetails path={listing.listingSocialMediaAccounts} />\n                    </CCol>\n                  </CRow>\n\n                  <CRow>\n                    <CCol className=\"listing-element-container\" />\n\n                    <CCol xs={5}>\n                      <p className=\"small-text\">Company Founded Year: {listing.yearFounded}</p>\n                      <p className=\"small-text\">\n                        Last Profile Sync: {parseDateTime(listing.updatedAt)}\n                      </p>\n                      <p className=\"small-text\">{`Profile Views in the Last 30 Days: ${\n                        listing.views ?? 0\n                      }`}</p>\n                    </CCol>\n                  </CRow>\n                </CCardBody>\n              </CCard>\n            </CContainer>\n\n            <CContainer>\n              <CRow>\n                <CCol lg={4}>\n                  <BusinessClassificationsCard path={listing.businessClassifications} />\n                  <ContractingInformationCard\n                    naicsCodesPath={listing.naicsCodes}\n                    samCode={listing.samCode}\n                    dunsCode={listing.dunsCode}\n                    cageCode={listing.cageCode}\n                    samExpirationDate={listing.samExpirationDate}\n                    samRegistrationDate={listing.samRegistrationDate}\n                    uniqueEntityId={listing.uniqueEntityId}\n                    productServiceCodes={listing.productServiceCodes}\n                  />\n                  <TechnologyFocusAreasCard path={listing.technologyTypes} />\n                  <CCard className=\"listing-card links\">\n                    <CCardBody>\n                      <CCardTitle className=\"bold-text pr-2\">Links</CCardTitle>\n\n                      {listing.listingArtifactLinks?.length === 0 ? (\n                        <CCardText className=\"subtle mr-2\">No Links to Show</CCardText>\n                      ) : (\n                        listing.listingArtifactLinks?.map((listing: ListingArtifactLink) => (\n                          <ViewListingArtifactAttachmentOrLink key={listing.id} data={listing} />\n                        ))\n                      )}\n                    </CCardBody>\n                  </CCard>\n                </CCol>\n\n                <CCol xs={8}>\n                  <PointOfContactCard listingId={listing.id} />\n\n                  <CCard className=\"listing-card\">\n                    <CCardBody>\n                      <CCardTitle className=\"listing-details bold-text\">\n                        Statement of Capabilities\n                      </CCardTitle>\n                      <CCardText\n                        className={classnames('multiline', {\n                          subtle: !listing.capabilityStatement,\n                        })}\n                      >\n                        {listing.capabilityStatement\n                          ? listing.capabilityStatement\n                          : 'No statement of capabilities'}\n                      </CCardText>\n                    </CCardBody>\n                  </CCard>\n                  <CCard className=\"listing-card\">\n                    <CCardBody>\n                      <CCardTitle className=\"bold-text pr-2\">Attachments</CCardTitle>\n                      {listing.listingArtifactAttachments?.length === 0 ? (\n                        <CCardText className=\"subtle mr-2\">No Attachments to Show</CCardText>\n                      ) : (\n                        listing.listingArtifactAttachments?.map(\n                          (attachment: ListingArtifactAttachment) => (\n                            <ViewListingArtifactAttachmentOrLink\n                              key={attachment.id}\n                              data={attachment}\n                            />\n                          ),\n                        )\n                      )}\n                    </CCardBody>\n                  </CCard>\n                </CCol>\n              </CRow>\n            </CContainer>\n          </CTabPane>\n          {params.tab === tabs.PRODUCTS && <ListingProductsTab />}\n          {params.tab === tabs.SERVICES && <ListingServicesTab />}\n          {params.tab === tabs.USE_CASES && <ListingUseCasesTab />}\n          {params.tab === tabs.AWARDS && <ListingAwardsTab />}\n        </CTabContent>\n      </section>\n    )\n  }),\n)\n\nexport default React.memo(ViewListing)\n","import { AuthStore, NotificationStore, ServerStore } from './'\nimport { action, makeObservable, observable } from 'mobx'\nimport { FileResponseData } from '../lib/types'\nimport { SignupUserData, SignupLoginData } from '../components/form/fragments'\nimport { validateLength, validatePassword, validateValueMatch } from '../lib/helpers/validation'\nimport { SelectableItem, ServerPageData } from '@mobilizeyourtech/vision-core-react'\nimport {\n  GovUserClassification,\n  GovUserOrganizationResponse,\n  TechnologyTypeResponse,\n} from './ServerStore'\nimport {\n  CountResponse,\n  GovUserPaginatedSearchableParams,\n  PaginationParams,\n  SortableParams,\n} from '../lib/types/Params'\nimport * as Cable from '@rails/actioncable'\nimport { Consumer } from '@rails/actioncable'\nimport { getFullSessionUrl } from '../lib/helpers/sessionHelpers'\nimport { LineOfEffortFormData } from 'components/form/fragments/types'\n\nexport type SocialMediaAccount = {\n  socialMediaTypeName: string\n  socialMediaTypeId: number\n  identifier: string\n  id: number\n}\n\nexport interface SocialMediaUserFormData {\n  socialMediaTypeId: number | string\n  identifier: string\n}\n\nexport interface ClaimRequestData {\n  id: number\n  firstName: string\n  lastName: string\n  email: string\n  accountId: number\n}\n\nexport interface DecryptedGovUserData {\n  firstName?: string\n  lastName?: string\n  email: string\n  visionPreferredUsername: string\n  position?: string\n  visionUserId: number\n}\n\nexport interface GenericSearchMetadata {\n  rank: number\n  highlight: string\n}\n\nexport type ConfirmationEmailBody = {\n  user?: { email: string }\n  redirectTo?: string\n}\n\nexport interface UserData {\n  id: number\n  accountId: number\n  firstName: string\n  lastName: string\n  email?: string\n  title: string\n  timezone: string\n  cellPhone: string\n  workPhone?: string\n  workPhoneExt?: string\n  headshot: FileResponseData | null\n  socialMediaAccounts: Array<SocialMediaAccount>\n  listings: string\n  isAdmin: boolean\n  confirmed: boolean\n  unconfirmedEmail?: string\n  userRoles: Array<string>\n  govUserExtendedData?: ExtendedGovernmentData\n  technologyTypes?: Array<TechnologyTypeResponse>\n  userAppNotificationSetting: UserNotificationSetting\n  userEmailNotificationSetting: UserNotificationSetting\n  isActive?: boolean\n}\n\nexport interface NotificationResponse {\n  id: number\n  notificationType: string\n  read: boolean\n  readAt?: string\n  message: string\n  createdAt: string\n  updatedAt: string\n\n  // present if notificationType === NewMessageNotification\n  chatThreadId?: number\n}\n\nexport interface NewMessageNotificationResponse extends NotificationResponse {\n  // present if notificationType === NewMessageNotification\n  chatThreadId: number\n}\n\nexport const isNewMessageNotification = (\n  o: NotificationResponse,\n): o is NewMessageNotificationResponse => {\n  return o.notificationType === 'NewMessageNotification'\n}\n\nexport const hasGovRole = (user: UserData | GovUserData) => {\n  return user.userRoles.includes('gov')\n}\n\nexport const hasIgniteRole = (user: UserData | GovUserData) => {\n  return user.userRoles.includes('ignite')\n}\n\nexport const isUserData = (o: any): o is UserData => {\n  if (o === undefined) return false\n  return 'id' in o && !!o['id'] && 'firstName' in o && !!o['firstName']\n}\n\nexport const isAccountData = (o: any): o is AccountData => {\n  if (o === undefined) return false\n  return 'uniqueEntityId' in o && !!o['uniqueEntityId'] && 'name' in o && !!o['name']\n}\n\nexport type LineOfEffort = {\n  id: number\n  govUserExtendedDataId: number\n  details: string\n}\n\nexport type ExtendedGovernmentData = {\n  govUserOrganization: GovUserOrganizationResponse\n  visionUserId: number\n  profileDetail: string\n  interactionDetail?: string\n  linesOfEffort: Array<LineOfEffort>\n  govUserClassifications?: Array<GovUserClassification>\n  city?: string\n  stateOrProvince?: string\n  country?: string\n  govEmployeeSinceYear?: number\n}\n\nexport type UserNotificationSetting = {\n  id: number\n  newChatMessage?: boolean\n  userId: number\n}\n\nexport interface GovUserData extends UserData {\n  govUserExtendedData: ExtendedGovernmentData\n  technologyTypes: Array<TechnologyTypeResponse>\n  govUserSetting: GovUserAccountSettings\n  searchMetadata?: GenericSearchMetadata\n  chatThreadIdsWithCurrentUserAccount?: Array<number>\n  activeChatThreadsCount?: number\n}\n\nexport interface InvitedUserData {\n  userInviteId: number\n  accountId: number\n  firstName: string\n  lastName: string\n  email: string\n  inviteTokenExpiry: string\n}\n\nexport type ClaimRequestForm = {\n  email: string\n  firstName: string\n  lastName: string\n  uniqueEntityId: string\n  recaptchaToken: string\n}\n\nexport type GovUserAccountSettings = {\n  id: number\n  userId: number\n  allowMessageRequests?: boolean\n}\n\nexport type ResendClaimFormData = {\n  claimToken: string\n}\n\nexport type ResendClaimFormDataAlternative = {\n  email: string\n  uniqueEntityId: string\n}\nexport const isResendClaimFormDataAlternative = (\n  o: ResendClaimFormData | ResendClaimFormDataAlternative,\n): o is ResendClaimFormDataAlternative => {\n  return 'email' in o && !!o.email && 'uniqueEntityId' in o && !!o.uniqueEntityId\n}\n\nexport type InviteUserSignupForm = {\n  user: {\n    password: string\n    confirmPassword: string\n    firstName: string\n    lastName: string\n    title: string\n    cellPhone: string\n    workPhone?: string\n    workPhoneExt?: string\n    timezone: string\n    headshot: File | string | undefined\n    socialMedia?: Array<SocialMediaUserFormData>\n  }\n  recaptchaToken: string\n  inviteToken: string\n}\n\nexport type ClaimRequestSignUpFormData = Omit<InviteUserSignupForm, 'inviteToken'> & {\n  claimToken: string\n}\n\nexport type GovUserSignUpFormData = {\n  user: {\n    password: string\n    confirmPassword: string\n    firstName: string\n    lastName: string\n    title: string\n    timezone: string\n    email: string\n    govUserOrganizationId: number\n    headshot: File | string | undefined\n    technologyTypes?: Array<TechnologyTypeResponse & SelectableItem>\n    encryptedVisionUserData?: string\n    profileDetail?: string\n    interactionDetail?: string\n    linesOfEffort?: Array<LineOfEffortFormData>\n    govUserClassifications?: Array<GovUserClassification & SelectableItem>\n    city?: string\n    stateOrProvince?: string\n    country?: string\n    govEmployeeSinceYear?: number\n  }\n  recaptchaToken: string\n}\n\nexport type UpdateUserForm = {\n  firstName: string\n  lastName: string\n  title: string\n  cellPhone?: string\n  workPhone?: string\n  workPhoneExt?: string\n  timezone: string\n  headshot?: File\n  socialMedia?: Array<{\n    id?: number\n    socialMediaTypeId: number | string\n    identifier: string\n    destroy?: boolean\n  }>\n  govUserExtendedDataAttributes?: {\n    govUserOrganizationId: number\n    profileDetail?: string\n    interactionDetail?: string\n    linesOfEffort: Array<LineOfEffortFormData>\n    govUserClassifications?: Array<GovUserClassification & SelectableItem>\n    city?: string\n    stateOrProvince?: string\n    country?: string\n    govEmployeeSinceYear?: number\n  }\n  technologyTypes?: Array<TechnologyTypeResponse & SelectableItem>\n}\n\nexport type UserFormData = SignupLoginData &\n  SignupUserData & {\n    recaptchaToken: string | null\n  }\n\nexport type AccountData = {\n  id: number\n  name: string\n  uniqueEntityId: string\n  defaultListingId: number | string | undefined\n  logo?: FileResponseData\n}\n\nexport type ChangePasswordData = {\n  currentPassword: string\n  password: string\n  passwordConfirmation: string\n}\n\nexport type UpdateAccountForm = {\n  name: string\n}\n\nexport const isUserSubmittable = (data: Partial<UserFormData>): boolean => {\n  let errors = [\n    validatePassword(data.password),\n    validateValueMatch(data.password, data.confirmPassword),\n    validateLength(data.firstName, 2),\n    validateLength(data.lastName, 2),\n    validateLength(data.title, 2),\n    validateLength(data.cellPhone, 2),\n  ]\n\n  if (errors.some((err) => !!err)) {\n    return false\n  }\n\n  let presence = [data.timezone, data.recaptchaToken].every((e) => !!e)\n\n  return presence\n}\n\nexport const claimErrorDictionary: { [key: string]: string } = {\n  InvalidClaimToken: 'The claim token provided is invalid',\n  ClaimPeriodExpired: 'The provided claim token has expired',\n  UnknownError: 'Something went wrong; please try again',\n}\n\nexport class UserStore extends ServerStore {\n  public readonly baseUserURL: string = '/api/v1/users'\n  public currentUserData?: UserData = undefined\n  public currentAccountData?: AccountData = undefined\n  public websocketConsumer?: Consumer = undefined\n\n  constructor(authStore: AuthStore, notificationStore: NotificationStore) {\n    super(authStore, notificationStore)\n    makeObservable(this, {\n      currentUserData: observable,\n      setCurrentUserData: action,\n      currentAccountData: observable,\n      setCurrentAccountData: action,\n      websocketConsumer: observable,\n      setWebsocketConsumer: action,\n    })\n  }\n\n  public setCurrentUserData(currentUserData: UserData | undefined) {\n    this.currentUserData = currentUserData\n  }\n\n  public setCurrentAccountData(currentAccountData: AccountData | undefined) {\n    this.currentAccountData = currentAccountData\n  }\n\n  public retrieveCurrentUserData = (eager?: string): Promise<GovUserData | UserData> => {\n    return this.server()\n      .get<GovUserData | UserData>('/api/v1/current_user', { params: { eager } })\n      .then(({ data }) => data)\n  }\n\n  public retrieveCurrentGovUserData = (eager?: string): Promise<GovUserData> => {\n    return this.server()\n      .get<GovUserData>('/api/v1/current_user', { params: { eager } })\n      .then(({ data }) => data)\n  }\n\n  public retrieveCurrentAccountData = (): Promise<AccountData> => {\n    return this.server()\n      .get<AccountData>('/api/v1/current_user/account')\n      .then(({ data }) => data)\n  }\n\n  public retrieveGovUserById = (id: string, eager?: string): Promise<GovUserData> => {\n    return this.server()\n      .get<GovUserData>(`/api/v1/gov/users/${id}`, { params: { eager } })\n      .then(({ data }) => data)\n  }\n\n  public updateUserSettings = (params: {\n    allowMessageRequests?: boolean\n    allowInAppNotifications?: boolean\n    allowByEmailNotifications?: boolean\n  }): Promise<GovUserData> => {\n    let payload = {\n      govUserSettingAttributes: {\n        allowMessageRequests: params.allowMessageRequests,\n      },\n      userAppNotificationSettingAttributes: {\n        newChatMessage: params.allowInAppNotifications,\n      },\n      userEmailNotificationSettingAttributes: {\n        newChatMessage: params.allowByEmailNotifications,\n      },\n      eager:\n        'technologyTypes,userEmailNotificationSetting,userAppNotificationSetting,govUserSetting',\n    }\n\n    return this.server()\n      .patch<GovUserData>('/api/v1/users', payload, {\n        headers: { 'Content-Type': 'application/json' },\n      })\n      .then(({ data }) => data)\n  }\n\n  public getGovUsers(\n    params: GovUserPaginatedSearchableParams,\n  ): Promise<ServerPageData<GovUserData>> {\n    return this.server()\n      .get(`/api/v1/gov/users`, {\n        params: {\n          ...params,\n          eager:\n            'technologyTypes,userEmailNotificationSetting,userAppNotificationSetting,chatThreadIdsWithCurrentUserAccount,isActive,lastLogin',\n        },\n      })\n      .then(({ data }) => data)\n  }\n\n  public signInUser = (email: string, password: string): Promise<any> => {\n    const payload = { user: { email, password } }\n    return this.server()\n      .post(`${this.baseUserURL}/sign_in`, payload, {\n        headers: {\n          'Content-Type': 'application/json',\n          Accept: 'application/json',\n          'X-User-Email': email,\n        },\n      })\n      .then((res) => {\n        this.authStore.setJWT(res.headers.authorization)\n        return res.data\n      })\n  }\n\n  public signOutUser = () => {\n    // Intentionally abandoning this promise to the server.\n    // The FE doesn't need to care if the serverside invalidation succeeded or not\n    this.server().delete(`${this.baseUserURL}/sign_out`)\n    this.setWebsocketConsumer(undefined)\n    this.authStore.setJWT(null)\n    this.setCurrentUserData(undefined)\n    this.setCurrentAccountData(undefined)\n  }\n\n  public submitClaimRequest = (form: ClaimRequestForm): Promise<ClaimRequestData> => {\n    return this.server()\n      .post<ClaimRequestData>('/api/v1/claim_requests', form, {\n        headers: { 'Content-Type': 'application/json' },\n      })\n      .then(({ data }) => data)\n  }\n\n  public resendClaim = (\n    form: ResendClaimFormData | ResendClaimFormDataAlternative,\n  ): Promise<ClaimRequestData> => {\n    return this.server()\n      .patch<ClaimRequestData>('/api/v1/claim_requests/resend', form, {\n        headers: { 'Content-Type': 'application/json' },\n      })\n      .then(({ data }) => data)\n  }\n\n  public inviteSignUp = (\n    form: InviteUserSignupForm,\n  ): Promise<UserData & { authorization: string }> => {\n    const formData = new FormData()\n    formData.append('recaptchaToken', form.recaptchaToken)\n    formData.append('firstName', form.user.firstName)\n    formData.append('lastName', form.user.lastName)\n    formData.append('title', form.user.title)\n    formData.append('cellPhone', form.user.cellPhone)\n    formData.append('timezone', form.user.timezone)\n    form.user.headshot && formData.append('headshot', form.user.headshot)\n    form.user.workPhone && formData.append('workPhone', form.user.workPhone)\n    form.user.workPhoneExt && formData.append('workPhoneExt', form.user.workPhoneExt)\n    formData.append('password', form.user.password)\n    formData.append('passwordConfirmation', form.user.confirmPassword)\n    formData.append('inviteToken', form.inviteToken)\n    form.user.socialMedia &&\n      form.user.socialMedia.forEach((sm, i) => {\n        formData.append(\n          `userSocialMediaAccountsAttributes[${i}][socialMediaTypeId]`,\n          sm.socialMediaTypeId.toString(),\n        )\n        formData.append(\n          `userSocialMediaAccountsAttributes[${i}][identifier]`,\n          sm.identifier.toString(),\n        )\n      })\n\n    return this.server()\n      .post<UserData>('/api/v1/user_invites/accept_invite', formData, {\n        headers: { 'Content-Type': 'multipart-form-data' },\n      })\n      .then(({ data, headers: { authorization } }) => ({ ...data, authorization }))\n  }\n\n  public claimSignUp = async (\n    form: ClaimRequestSignUpFormData,\n  ): Promise<UserData & { authorization: string }> => {\n    const formData = new FormData()\n    formData.append('recaptchaToken', form.recaptchaToken)\n    formData.append('firstName', form.user.firstName)\n    formData.append('lastName', form.user.lastName)\n    formData.append('title', form.user.title)\n    formData.append('cellPhone', form.user.cellPhone)\n    formData.append('timezone', form.user.timezone)\n    form.user.headshot && formData.append('headshot', form.user.headshot)\n    form.user.workPhone && formData.append('workPhone', form.user.workPhone)\n    form.user.workPhoneExt && formData.append('workPhoneExt', form.user.workPhoneExt)\n    formData.append('password', form.user.password)\n    formData.append('passwordConfirmation', form.user.confirmPassword)\n    formData.append('claimToken', form.claimToken)\n    form.user.socialMedia &&\n      form.user.socialMedia.forEach((sm, i) => {\n        formData.append(\n          `userSocialMediaAccountsAttributes[${i}][socialMediaTypeId]`,\n          sm.socialMediaTypeId.toString(),\n        )\n        formData.append(\n          `userSocialMediaAccountsAttributes[${i}][identifier]`,\n          sm.identifier.toString(),\n        )\n      })\n\n    return this.server()\n      .post<UserData>('/api/v1/claim_requests/claim_account', formData, {\n        headers: { 'Content-Type': 'multipart-form-data' },\n      })\n      .then(({ data, headers: { authorization } }) => ({ ...data, authorization }))\n  }\n\n  public govUserSignUp = async (\n    form: GovUserSignUpFormData,\n  ): Promise<UserData & { authorization: string }> => {\n    const formData = new FormData()\n    formData.append('recaptchaToken', form.recaptchaToken)\n    formData.append('firstName', form.user.firstName)\n    formData.append('lastName', form.user.lastName)\n    formData.append('title', form.user.title)\n    formData.append('timezone', form.user.timezone)\n    form.user.headshot && formData.append('headshot', form.user.headshot)\n    formData.append('password', form.user.password)\n    formData.append('passwordConfirmation', form.user.confirmPassword)\n    formData.append('email', form.user.email)\n    form.user.encryptedVisionUserData &&\n      formData.append('encryptedVisionUserData', form.user.encryptedVisionUserData)\n    formData.append('govUserOrganizationId', form.user.govUserOrganizationId.toString())\n\n    form.user.technologyTypes &&\n      form.user.technologyTypes.forEach((tt, i) => {\n        formData.append(`technologyTypes[][id]`, tt.id.toString())\n      })\n\n    form.user.govUserClassifications &&\n      form.user.govUserClassifications.forEach((c) => {\n        formData.append(\n          `govUserUserClassificationsAttributes[][govUserClassificationId]`,\n          c.id.toString(),\n        )\n      })\n\n    form.user.linesOfEffort &&\n      form.user.linesOfEffort\n        ?.filter((el) => el.details && el.details.trim() !== '')\n        .forEach((loe, i) => {\n          formData.append(`lineOfEffortsAttributes[${i}][details]`, loe.details)\n        })\n\n    form.user.profileDetail && formData.append('profileDetail', form.user.profileDetail.toString())\n    form.user.interactionDetail &&\n      formData.append('interactionDetail', form.user.interactionDetail.toString())\n\n    form.user.city && formData.append(`city`, form.user.city)\n    form.user.stateOrProvince && formData.append(`stateOrProvince`, form.user.stateOrProvince)\n    form.user.country && formData.append(`country`, form.user.country)\n\n    form.user?.govEmployeeSinceYear &&\n      formData.append('govEmployeeSinceYear', `${form.user.govEmployeeSinceYear}`)\n\n    let redirectTo = getFullSessionUrl()\n    redirectTo && formData.append('redirectTo', encodeURIComponent(redirectTo))\n\n    return this.server()\n      .post<UserData>('/api/v1/gov_users/signup', formData, {\n        headers: { 'Content-Type': 'multipart-form-data' },\n      })\n      .then(({ data, headers: { authorization } }) => ({ ...data, authorization }))\n  }\n\n  public updateUser = (form: UpdateUserForm): Promise<UserData & { authorization: string }> => {\n    const formData = new FormData()\n    formData.append('firstName', form.firstName)\n    formData.append('lastName', form.lastName)\n    formData.append('title', form.title)\n    form.cellPhone && formData.append('cellPhone', form.cellPhone)\n    formData.append('timezone', form.timezone)\n    form.headshot && formData.append('headshot', form.headshot)\n    form.workPhone && formData.append('workPhone', form.workPhone)\n    form.workPhoneExt && formData.append('workPhoneExt', form.workPhoneExt)\n    form.govUserExtendedDataAttributes?.govUserOrganizationId &&\n      formData.append(\n        `govUserExtendedDataAttributes[govUserOrganizationId]`,\n        form.govUserExtendedDataAttributes.govUserOrganizationId.toString(),\n      )\n\n    form.govUserExtendedDataAttributes?.profileDetail &&\n      formData.append(\n        `govUserExtendedDataAttributes[profileDetail]`,\n        form.govUserExtendedDataAttributes.profileDetail,\n      )\n    form.govUserExtendedDataAttributes?.interactionDetail &&\n      formData.append(\n        `govUserExtendedDataAttributes[interactionDetail]`,\n        form.govUserExtendedDataAttributes.interactionDetail,\n      )\n\n    formData.append(\n      `govUserExtendedDataAttributes[city]`,\n      form.govUserExtendedDataAttributes?.city || '',\n    )\n    formData.append(\n      `govUserExtendedDataAttributes[stateOrProvince]`,\n      form.govUserExtendedDataAttributes?.stateOrProvince || '',\n    )\n    formData.append(\n      `govUserExtendedDataAttributes[country]`,\n      form.govUserExtendedDataAttributes?.country || '',\n    )\n\n    formData.append(\n      'govUserExtendedDataAttributes[govEmployeeSinceYear]',\n      `${form.govUserExtendedDataAttributes?.govEmployeeSinceYear ?? ''}`,\n    )\n\n    form.govUserExtendedDataAttributes?.linesOfEffort &&\n      form.govUserExtendedDataAttributes?.linesOfEffort\n        .filter((loe) => {\n          // Strip out New LOEs that have empty details, but don't strip out existing LOEs that have empty details\n          const detailsEmpty = !loe.details || loe.details.trim() === ''\n          const newLoe = !loe.id\n\n          return !(newLoe && detailsEmpty)\n        })\n        .forEach((loe) => {\n          const destroy = loe.destroy || (loe.id && (!loe.details || loe.details.trim() === ''))\n\n          loe.id &&\n            formData.append(\n              `govUserExtendedDataAttributes[lineOfEffortsAttributes][][id]`,\n              loe.id.toString(),\n            )\n\n          formData.append(\n            `govUserExtendedDataAttributes[lineOfEffortsAttributes][][details]`,\n            loe.details,\n          )\n\n          destroy &&\n            formData.append(\n              `govUserExtendedDataAttributes[lineOfEffortsAttributes][][_destroy]`,\n              destroy.toString(),\n            )\n        })\n\n    form.govUserExtendedDataAttributes?.govUserClassifications &&\n      form.govUserExtendedDataAttributes.govUserClassifications.forEach((c) => {\n        formData.append(\n          `govUserExtendedDataAttributes[govUserUserClassificationsAttributes][][govUserClassificationId]`,\n          c.id.toString(),\n        )\n\n        c.destroy &&\n          formData.append(\n            `govUserExtendedDataAttributes[govUserUserClassificationsAttributes][][_destroy]`,\n            c.destroy.toString(),\n          )\n      })\n\n    form.socialMedia &&\n      form.socialMedia.forEach((sm, i) => {\n        formData.append(\n          `userSocialMediaAccountsAttributes[${i}][socialMediaTypeId]`,\n          sm.socialMediaTypeId.toString(),\n        )\n        formData.append(\n          `userSocialMediaAccountsAttributes[${i}][identifier]`,\n          sm.identifier.toString(),\n        )\n\n        sm.id && formData.append(`userSocialMediaAccountsAttributes[${i}][id]`, sm.id.toString())\n        sm.destroy &&\n          formData.append(\n            `userSocialMediaAccountsAttributes[${i}][_destroy]`,\n            sm.destroy.toString(),\n          )\n      })\n\n    form.technologyTypes &&\n      form.technologyTypes.forEach((tt, i) => {\n        formData.append(`technologyTypes[][id]`, tt.id.toString())\n        tt.destroy && formData.append(`technologyTypes[][_destroy]`, tt.destroy.toString())\n      })\n\n    return this.server()\n      .patch<UserData>('/api/v1/users', formData, {\n        headers: { 'Content-Type': 'multipart-form-data' },\n      })\n      .then(({ data, headers: { authorization } }) => ({ ...data, authorization }))\n  }\n\n  public changePassword = (\n    params: ChangePasswordData,\n  ): Promise<UserData & { authorization: string }> => {\n    return this.server()\n      .patch<UserData>(\n        '/api/v1/users',\n        { user: params },\n        {\n          headers: { 'Content-Type': 'application/json' },\n        },\n      )\n      .then(({ data, headers: { authorization } }) => ({ ...data, authorization }))\n  }\n\n  public resendConfirmationEmail(email?: string) {\n    const payload: ConfirmationEmailBody = {}\n    payload.user = email ? { email } : undefined\n    let redirect = getFullSessionUrl()\n    payload.redirectTo = redirect ? encodeURIComponent(redirect) : undefined\n\n    return this.server()\n      .post('/api/v1/users/confirmation', payload, {\n        headers: { 'Content-Type': 'application/json' },\n      })\n      .then(({ data }) => data)\n  }\n\n  public confirmUser(token: string) {\n    return this.server().get('/api/v1/users/confirmation', {\n      params: { confirmation_token: token },\n    })\n  }\n\n  public checkUserInvite(token: string) {\n    return this.server()\n      .get('/api/v1/user_invites/check_invite', {\n        params: { invite_token: token },\n      })\n      .then(({ data }) => data)\n  }\n\n  public checkClaim = async (claimToken: string): Promise<ClaimRequestData> => {\n    return this.server()\n      .get('/api/v1/claim_requests/check_claim', {\n        params: { claimToken },\n      })\n      .then(({ data }) => data)\n  }\n\n  public decryptAndValidateGovUserData = async (q: string): Promise<DecryptedGovUserData> => {\n    return this.server()\n      .get('/api/v1/gov_users/vision_redirection_data', {\n        params: { q },\n      })\n      .then(({ data }) => data)\n  }\n\n  public saveGovUserDataFromVision = async (q: string): Promise<DecryptedGovUserData> => {\n    return this.server()\n      .post('/api/v1/gov_users/save_vision_data_for_existing_users', { q })\n      .then(({ data }) => data)\n  }\n\n  public checkIfVisionUserHasAccountAndIsLinked = async (\n    q: string,\n  ): Promise<{ userExists: boolean; isLinked: boolean }> => {\n    return this.server()\n      .get('/api/v1/gov_users/user_exists_and_is_linked', {\n        params: { q },\n      })\n      .then(({ data }) => data)\n  }\n\n  public updateAccount = (form: UpdateAccountForm): Promise<AccountData> => {\n    const formData = new FormData()\n    formData.append('name', form.name)\n    return this.server()\n      .patch<AccountData>('/api/v1/current_user/account', formData, {\n        headers: { 'Content-Type': 'multipart-form-data' },\n      })\n      .then(({ data }) => data)\n  }\n\n  public changeEmail = (email: string) => {\n    return this.server()\n      .patch('/api/v1/users', { user: { email: email } })\n      .then(({ data }) => data)\n  }\n\n  public requestPasswordReset = (email: string): Promise<any> => {\n    return this.server()\n      .post<any>('/api/v1/users/password', { email: email })\n      .then((res: any) => res)\n  }\n\n  public resetPassword = (\n    password: string,\n    passwordConfirmation: string,\n    resetPasswordToken: string,\n  ): Promise<any> => {\n    const params = {\n      password: password,\n      passwordConfirmation: passwordConfirmation,\n      resetPasswordToken: resetPasswordToken,\n    }\n    return this.server()\n      .patch<any>('/api/v1/users/password', {\n        user: params,\n      })\n      .then((res: any) => res)\n  }\n\n  public cancelEmailChange = (): Promise<UserData> => {\n    return this.server()\n      .patch('/api/v1/users/confirmation/cancel')\n      .then(({ data }) => data)\n  }\n\n  public createWebsocketConsumer = () => {\n    if (!this.authStore.getJWT()) {\n      return\n    }\n\n    this.setWebsocketConsumer(Cable.createConsumer(`/cable?jwt=${this.authStore.getJWT()}`))\n  }\n\n  public setWebsocketConsumer = (value: Consumer | undefined) => {\n    this.websocketConsumer = value\n  }\n\n  public countNotifications = (params: { read?: boolean }): Promise<CountResponse> => {\n    return this.server()\n      .get('/api/v1/current_user/notifications/count', { params })\n      .then(({ data }) => data)\n  }\n\n  public getNotifications = (\n    params: PaginationParams & SortableParams & { read?: boolean },\n  ): Promise<ServerPageData<NotificationResponse>> => {\n    return this.server()\n      .get('/api/v1/current_user/notifications', { params })\n      .then(({ data }) => data)\n  }\n\n  public markAllNotificationsRead = (): Promise<undefined> => {\n    // Is a 204\n    return this.server()\n      .patch('/api/v1/current_user/notifications/read')\n      .then(({ data }) => data)\n  }\n\n  public markNotificationRead = (id: number): Promise<undefined> => {\n    // Is a 204\n    return this.server()\n      .patch(`/api/v1/current_user/notifications/${id}/read`)\n      .then(({ data }) => data)\n  }\n}\n","import { inject, observer } from 'mobx-react'\nimport { CBadge, CCardText } from '@coreui/react'\nimport {\n  ApplicationStore,\n  AuthStore,\n  NotificationStore,\n  ServerStore,\n  UserData,\n  UserStore,\n} from '../../stores'\n\nimport {\n  ChatMessageResponse,\n  ChatParticipantResponse,\n  ChatThreadResponse,\n  isAccountData,\n  isAccountParticipant,\n  isUserParticipant,\n} from '../../stores/ServerStore'\nimport { UserAvatar } from '../user'\nimport { AccountData } from '../../stores/UserStore'\nimport { SubPageData } from '../../lib/types'\nimport { Link } from 'react-router-dom'\nimport { Fragment } from 'react'\n\nexport const makeChatThreadHeadliner = (participantList: Array<ChatParticipantResponse>) =>\n  participantList.map((item: ChatParticipantResponse, index: number) => {\n    return (\n      <Fragment key={index}>\n        {index > 0 && index <= participantList.length - 1 && ', '}\n        {isAccountData(item.participant) ? (\n          <Link\n            className=\"clickable\"\n            to={`/ignite/listings/${item.participant.defaultListingId}`}\n            target=\"_blank\"\n          >\n            {item.participant.name}\n          </Link>\n        ) : (\n          <Link className=\"clickable\" to={`/gov/users/${item.participant.id}`} target=\"_blank\">\n            {item.participant.firstName + ' ' + item.participant.lastName}\n          </Link>\n        )}\n      </Fragment>\n    )\n  })\n\nexport type ChatThreadCardProps = {\n  value: ChatThreadResponse\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n  authStore?: AuthStore\n  serverStore?: ServerStore\n  selected?: boolean\n  onSelect: () => void\n}\n\nexport const ChatThreadCard = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.authStore,\n  ApplicationStore.names.serverStore,\n)(\n  observer((props: ChatThreadCardProps) => {\n    const chatThreadData = props.value\n    const user = props.userStore?.currentUserData\n    const currentIsGovUser = props.userStore?.currentUserData?.userRoles.includes('gov')\n\n    const displayParticipantList = chatThreadData.participants.filter(\n      (participant: ChatParticipantResponse) => {\n        if (isAccountParticipant(participant) && !currentIsGovUser) {\n          return user?.accountId !== participant.participantId\n        } else if (isAccountParticipant(participant) && currentIsGovUser) {\n          return true\n        } else {\n          return user?.id !== participant.participantId\n        }\n      },\n    )\n\n    // set which user or account will be the featured first participant\n    const featuredParticipant = () => {\n      return displayParticipantList[0]\n    }\n\n    const mostRecentSenderName = () => {\n      return (\n        (chatThreadData.userChatMessages as SubPageData<ChatMessageResponse>).data[0].user\n          .firstName +\n        ' ' +\n        (chatThreadData.userChatMessages as SubPageData<ChatMessageResponse>).data[0].user.lastName\n      )\n    }\n\n    const renderBadge = () => {\n      if (chatThreadData.currentUserUnreadCount > 999) {\n        return <CBadge>{'1K+'}</CBadge>\n      } else if (chatThreadData.currentUserUnreadCount > 0) {\n        return <CBadge>{chatThreadData.currentUserUnreadCount}</CBadge>\n      } else {\n        return\n      }\n    }\n\n    const renderFeaturedPhoto = () => {\n      if (isUserParticipant(featuredParticipant())) {\n        let featured = featuredParticipant()?.participant as UserData\n        return <UserAvatar user={featured} displayIsActive />\n      } else {\n        // Accounts will only display 1 initial.\n        let featured = featuredParticipant()?.participant as AccountData\n        return <UserAvatar user={featured} />\n      }\n    }\n\n    const onSelected = () => {\n      props.onSelect()\n    }\n\n    return (\n      <div\n        className={`chat-thread-card${\n          props.selected ? ' selected ' : ' '\n        }w-100 p-3 d-flex flex-row gap-2`}\n        onClick={() => onSelected()}\n        data-testid={`chat-thread-card-${chatThreadData.id}`}\n      >\n        {renderFeaturedPhoto()}\n        <div className=\"chat-thread-card-text\">\n          <div className=\"chat-thread-card-header-text d-flex gap-3 align-items-start justify-content-start\">\n            <h6 className=\"chat-thread-user-name\">\n              {makeChatThreadHeadliner(displayParticipantList)}\n            </h6>\n          </div>\n          <CCardText className=\"most-recent-chat-text subtle\">\n            {user?.id ===\n            (chatThreadData.userChatMessages as SubPageData<ChatMessageResponse>).data[0].userId\n              ? 'You: '\n              : `${mostRecentSenderName()}: `}\n            {(chatThreadData.userChatMessages as SubPageData<ChatMessageResponse>).data[0].content}\n          </CCardText>\n        </div>\n        <div className={'badge-frame'}>{renderBadge()}</div>\n      </div>\n    )\n  }),\n)\n\nexport default ChatThreadCard\n","import {\n  BulkFileUploader,\n  RichFileAccept,\n  ServerFileData,\n  RichTooltip,\n} from '@mobilizeyourtech/vision-core-react'\nimport { CCol, CFormLabel, CRow } from '@coreui/react'\nimport React from 'react'\nimport {\n  FILE_UPLOAD_MAX_SIZE_BYTES,\n  FILE_UPLOAD_MAX_SIZE_CONTENT,\n  UNCLASSIFIED_WARNING_PROMPT,\n} from '../../../../lib/helpers/utils'\n\nexport interface ListingArtifactAttachmentFormData {\n  id?: string | number\n  name?: string\n  description?: string\n  file: ServerFileData | File\n  destroy?: boolean\n}\n\nexport interface BulkAttachmentsProps {\n  formData: Array<ListingArtifactAttachmentFormData>\n  onChange: (change: Array<ListingArtifactAttachmentFormData>) => void\n}\n\nconst allowedFileTypes: Array<RichFileAccept> = [\n  { value: 'image/gif', displayValue: 'GIF (.gif)' },\n  { value: 'image/jpeg', displayValue: 'JPEG (.jpeg)' },\n  { value: 'image/png', displayValue: 'PNG (.png)' },\n  { value: 'image/svg+xml', displayValue: 'SVG (.svg)' },\n  { value: 'application/pdf', displayValue: 'PDF (.pdf)' },\n  { value: 'application/msword', displayValue: 'DOC (.doc)' },\n  {\n    value: 'application/vnd.ms-word.document.macroenabled.12',\n    displayValue: 'XML Word Macro-Enabled Document (.docm)',\n  },\n  {\n    value: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n    displayValue: 'XML Word Document (.docx)',\n  },\n  { value: 'text/csv', displayValue: 'CSV (.csv)' },\n  {\n    value: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n    displayValue: 'Excel Workbook (.xlsx)',\n  },\n  {\n    value: 'application/vnd.ms-excel.sheet.binary.macroenabled.12',\n    displayValue: 'Excel Binary Workbook (.xlsb)',\n  },\n  { value: 'application/vnd.ms-excel', displayValue: 'Excel Spreadsheet (.xls)' },\n  {\n    value: 'application/vnd.ms-excel.sheet.macroenabled.12',\n    displayValue: 'Excel Macro-Enabled Workbook (.xlsm)',\n  },\n  { value: 'text/plain', displayValue: 'CSV (.csv)' },\n  {\n    value: 'application/vnd.ms-powerpoint',\n    displayValue: 'PowerPoint Binary Presentation (.ppt)',\n  },\n  {\n    value: 'application/vnd.ms-powerpoint.presentation.macroenabled.12',\n    displayValue: 'PowerPoint Macro-Enabled Presentation (.pptm)',\n  },\n  {\n    value: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n    displayValue: 'PowerPoint XML Presentation (.pptx)',\n  },\n]\nexport const BulkAttachments = (props: BulkAttachmentsProps) => {\n  return (\n    <>\n      <CRow className=\"bulk-attachments\">\n        <CFormLabel className=\"col-form-label\">\n          Attachments\n          <RichTooltip\n            tooltipContent={\n              <span className=\"attachment-tooltip\">\n                Provide attachments that will give the government user a more robust picture of your\n                company&apos;s capabilities.\n              </span>\n            }\n            location=\"top\"\n            timeout={300}\n          >\n            <i className=\"fas fa-info-circle\" />\n          </RichTooltip>\n        </CFormLabel>\n        <BulkFileUploader\n          data-testid={'artifact-attachments-bulk-uploader'}\n          files={props.formData || []}\n          onChange={(change) => props.onChange(change)}\n          fileUploaderProps={{\n            accept: allowedFileTypes,\n            subText: UNCLASSIFIED_WARNING_PROMPT,\n            additionalText: FILE_UPLOAD_MAX_SIZE_CONTENT,\n            maxSize: FILE_UPLOAD_MAX_SIZE_BYTES,\n          }}\n        />\n        <CCol></CCol>\n      </CRow>\n    </>\n  )\n}\n","import { CFormLabel, CRow } from '@coreui/react'\nimport React from 'react'\nimport { BulkLinkInput } from '@mobilizeyourtech/vision-core-react'\n\nexport interface ListingArtifactLinkFormData {\n  id?: string | number\n  name?: string\n  description?: string\n  url: string\n  destroy?: boolean\n  destroyable?: boolean\n}\n\nexport interface ListingArtifactLinksAttributesProps {\n  formData: Array<ListingArtifactLinkFormData>\n  onChange: (change: Array<ListingArtifactLinkFormData>) => void\n}\n\nexport const BulkLinks = (props: ListingArtifactLinksAttributesProps) => {\n  return (\n    <CRow>\n      <CFormLabel className=\"col-form-label\">Links</CFormLabel>\n      <BulkLinkInput\n        data-testid=\"artifact-links-bulk-input\"\n        links={props.formData || []}\n        onChange={(change) => props.onChange(change)}\n        requiredFields={['name']}\n      />\n    </CRow>\n  )\n}\n","import { CButton, CCol, CContainer, CRow } from '@coreui/react'\nimport { SuspensionBoundary, ServerPageData } from '@mobilizeyourtech/vision-core-react'\nimport { inject, observer } from 'mobx-react'\nimport React, { useEffect, useState } from 'react'\nimport { NumberParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Pagination } from '../../components/custom'\nimport { UserDetailCard, CreateModal } from '../../components/user'\nimport { PaginationParams } from '../../lib/types/Params'\nimport {\n  AccountStore,\n  ApplicationStore,\n  NotificationStore,\n  UserData,\n  UserStore,\n} from '../../stores'\nimport { InvitedUserData } from '../../stores/UserStore'\n\ntype TProps = {\n  notificationStore?: NotificationStore\n  userStore?: UserStore\n  accountStore?: AccountStore\n}\n\nconst Users = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.accountStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [users, setUsers] = useState<ServerPageData<UserData | InvitedUserData> | undefined>(\n      undefined,\n    )\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [isModalOpen, setIsModalOpen] = useState<boolean>(false)\n\n    const [params] = useQueryParams({\n      page: withDefault(NumberParam, 1),\n      perPage: withDefault(NumberParam, 10),\n    })\n\n    const currentAccountId = props.userStore!.currentAccountData!.id\n    const { page, perPage } = params\n\n    const getUserData = (p: PaginationParams) => {\n      setIsLoading(true)\n\n      props.accountStore\n        ?.getAccountUsers(currentAccountId, p.page, p.perPage, true)\n        .then((data) => {\n          setUsers(data)\n        })\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Unable to get user data, please try again later',\n            'danger',\n            3000,\n          )\n        })\n        .finally(() => {\n          setTimeout(() => {\n            setIsLoading(false)\n          }, 300)\n        })\n    }\n\n    useEffect(() => {\n      getUserData(params)\n    }, [page, perPage])\n\n    return (\n      <div className=\"Users\">\n        <CreateModal\n          data-testid=\"invite-user-modal\"\n          isModalOpen={isModalOpen}\n          closeModal={() => {\n            setIsModalOpen(false)\n            getUserData(params)\n          }}\n        />\n        <div className=\"d-flex align-items-center justify-content-between\">\n          <h2 className=\"d-block py-2 px-4\">Users</h2>\n          <CButton\n            data-testid=\"invite-button\"\n            className=\"invite-icon-button\"\n            onClick={() => {\n              setIsModalOpen(true)\n            }}\n          >\n            <i className=\"fa fa-plus invite-icon\" />\n            <h6>Invite User</h6>\n          </CButton>\n        </div>\n        <CContainer className=\"user-card-container d-flex flex-wrap w-100 align-items-center justify-content-center\">\n          <SuspensionBoundary isLoading={isLoading}>\n            <CRow className=\"justify-content-center\">\n              {users?.data.map((user: UserData | InvitedUserData) => (\n                <CCol className=\"user-card-wrapper\" lg={3} key={user.email}>\n                  <UserDetailCard\n                    key={user.email}\n                    user={user}\n                    currentAccountId={currentAccountId}\n                    onSubmit={() => getUserData(params)}\n                  />\n                </CCol>\n              ))}\n            </CRow>\n          </SuspensionBoundary>\n        </CContainer>\n        {users?.pagination && <Pagination pagination={users.pagination} defaultPerPage={10} />}\n      </div>\n    )\n  }),\n)\n\nexport default Users\n","import React, { FormEvent, useState } from 'react'\nimport {\n  CButton,\n  CCard,\n  CCardBody,\n  CCardFooter,\n  CCol,\n  CContainer,\n  CForm,\n  CFormInput,\n  CRow,\n} from '@coreui/react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../stores'\nimport { inject, observer } from 'mobx-react'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { validateEmail } from '../lib/helpers/validation'\nimport { SupportLinks } from '../components/custom'\ntype TProps = {\n  userStore?: UserStore\n  authStore?: AuthStore\n  notificationStore?: NotificationStore\n}\n\nexport const ConfirmationInstructions = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.authStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [params] = useQueryParams({\n      key: withDefault(StringParam, ''),\n    })\n    const decodeKey = () => {\n      if (params.key) {\n        let buff = Buffer.from(params.key, 'base64')\n        return buff.toString('ascii')\n      } else {\n        return ''\n      }\n    }\n    const [email, setEmail] = useState<string>(decodeKey())\n    const [isSubmitting, setIsSubmitting] = useState<boolean>(false)\n\n    const isResendEnabled =\n      !isSubmitting && (!validateEmail(email) || props.authStore?.isAuthenticated())\n\n    const resendConfirmationEmail = (e: FormEvent<HTMLFormElement>) => {\n      setIsSubmitting(true)\n\n      e.preventDefault()\n      props.userStore\n        ?.resendConfirmationEmail(email)\n        .then(() => {\n          setIsSubmitting(false)\n          props.notificationStore?.setNotificationMessage(\n            'A new confirmation email has been sent.',\n            'success',\n            3000,\n          )\n        })\n        .catch(() => {\n          setIsSubmitting(false)\n          props.notificationStore?.setNotificationMessage(\n            'Unable to resend confirmation email. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    const determineContent = () => {\n      if (!props.authStore?.JWT && !params.key) {\n        return emailForm()\n      } else {\n        return resendButton()\n      }\n    }\n\n    const emailForm = () => {\n      return (\n        <section>\n          <CRow className=\"mb-2 justify-content-center\">\n            <CCol className=\"d-flex justify-content-center\">\n              <CFormInput\n                type=\"email\"\n                id=\"email-input\"\n                data-testid=\"email-input\"\n                placeholder=\"Email\"\n                onChange={(e: React.ChangeEvent<HTMLInputElement>) => setEmail(e.target.value)}\n                value={email}\n              />\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-2 justify-content-center\">{resendButton()}</CRow>\n        </section>\n      )\n    }\n\n    const resendButton = () => {\n      return (\n        <CCol className=\"d-flex justify-content-center\">\n          <CButton data-testid=\"submit-button\" type=\"submit\" disabled={!isResendEnabled}>\n            Resend Confirmation Email\n          </CButton>\n        </CCol>\n      )\n    }\n\n    return (\n      <section className=\"bg-light min-vh-100 d-flex flex-row align-items-center\">\n        <CContainer>\n          <CRow className=\"justify-content-center\">\n            <CCol md={9} lg={7} xl={6}>\n              <CCard>\n                <CCardBody className=\"p-4\">\n                  <CRow>\n                    <CCol>\n                      <h1 className=\"text-center\">Please Confirm Your Email</h1>\n                    </CCol>\n                  </CRow>\n                  <CRow className=\"mb-3\">\n                    <CCol>\n                      <p className=\"text-center\">\n                        An email has been sent to the email address you have provided. Please check\n                        your inbox and follow the link to confirm your account.\n                      </p>\n                      <br></br>\n                      <p className=\"text-center\">\n                        If you did not receive an email or the link did not work, please resend the\n                        confirmation email.\n                      </p>\n                    </CCol>\n                  </CRow>\n                  <CForm onSubmit={resendConfirmationEmail}>{determineContent()}</CForm>\n                </CCardBody>\n                <CCardFooter className=\"bg-white\">\n                  <CRow className=\"justify-content-center\">\n                    <CCol>\n                      <SupportLinks />\n                    </CCol>\n                  </CRow>\n                </CCardFooter>\n              </CCard>\n            </CCol>\n          </CRow>\n        </CContainer>\n      </section>\n    )\n  }),\n)\n\nexport default ConfirmationInstructions\n","export default \"data:image/png;base64,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\"","import { ApplicationStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { CCard, CCardBody, CCardHeader, CRow } from '@coreui/react'\nimport ReactHtmlParser from 'react-html-parser'\nimport React from 'react'\nimport { LinesOfEffortCard } from 'components/Organisms/EntityCards/LinesOfEffortCard/LinesOfEffortCard'\nimport { GovUserClassificationsCard } from 'components/Organisms/EntityCards/GovUserClassificationsCard/GovUserClassificationsCard'\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n}\n\nexport const GovUserExtendedProfileDetailCard = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const profileDetailSection = () => {\n      return (\n        <CRow>\n          <div className={'ql-editor'}>\n            {props.userStore?.currentUserData?.govUserExtendedData?.profileDetail &&\n              ReactHtmlParser(props.userStore.currentUserData.govUserExtendedData.profileDetail)}\n          </div>\n        </CRow>\n      )\n    }\n\n    return (\n      <>\n        <CCard className=\"ProfileDetailCard mt-3\">\n          <CCardHeader component=\"h5\">Problem Statement & Role Description</CCardHeader>\n          <CCardBody>{profileDetailSection()}</CCardBody>\n        </CCard>\n        <GovUserClassificationsCard\n          govUserClassifications={\n            props.userStore?.currentUserData?.govUserExtendedData?.govUserClassifications\n          }\n          className=\"mt-3\"\n        />\n        <LinesOfEffortCard\n          linesOfEffort={props.userStore?.currentUserData?.govUserExtendedData?.linesOfEffort}\n          className=\"mt-3\"\n        />\n      </>\n    )\n  }),\n)\n","import { inject, observer } from 'mobx-react'\nimport { ApplicationStore, UserStore } from '../../stores'\nimport { ActionDropdown, ActionDropdownMenuOption } from '@mobilizeyourtech/vision-core-react'\nimport React, { useState } from 'react'\nimport { CContainer, CModal, CModalBody, CModalHeader, CModalTitle } from '@coreui/react'\nimport { ChangeEmailForm, ChangePasswordForm, EditAccountForm, EditProfileForm } from '../form'\nimport { hasIgniteRole } from '../../stores/UserStore'\n\nexport interface AccountActionsProps {\n  userStore?: UserStore\n}\n\nexport const AccountActions = inject(ApplicationStore.names.userStore)(\n  observer((props: AccountActionsProps) => {\n    const [isEditProfileModalOpen, setIsEditProfileModalOpen] = useState<boolean>(false)\n    const [isChangePasswordModalOpen, setIsChangePasswordModalOpen] = useState<boolean>(false)\n    const [isChangeEmailModalOpen, setIsChangeEmailModalOpen] = useState<boolean>(false)\n    const [isEditAccountModalOpen, setIsEditAccountModalOpen] = useState<boolean>(false)\n\n    const onActionSelect = (o: ActionDropdownMenuOption) => {\n      switch (o.id) {\n        case 0:\n          setIsEditProfileModalOpen(true)\n          break\n        case 1:\n          setIsChangeEmailModalOpen(true)\n          break\n        case 2:\n          setIsChangePasswordModalOpen(true)\n          break\n        case 3:\n          setIsEditAccountModalOpen(true)\n          break\n      }\n    }\n\n    const options = React.useMemo(() => {\n      let ret = [\n        { id: 0, name: 'Edit Profile', iconClassName: 'fas fa-pencil-alt' },\n        { id: 1, name: 'Change Email', iconClassName: 'fas fa-edit' },\n        { id: 2, name: 'Change Password', iconClassName: 'fas fa-user-secret' },\n      ]\n\n      if (hasIgniteRole(props.userStore!.currentUserData!)) {\n        ret = [...ret, { id: 3, name: 'Edit Account', iconClassName: 'fas fa-pen' }]\n      }\n\n      return ret\n    }, [])\n\n    return (\n      <div className={'AccountActions'}>\n        <ActionDropdown\n          dropdownOptions={{ text: undefined, iconClassName: 'fa fa-bars' }}\n          menuOptions={options}\n          onSelect={onActionSelect}\n        />\n\n        <CModal\n          size=\"xl\"\n          alignment=\"center\"\n          visible={isEditProfileModalOpen}\n          onClose={() => setIsEditProfileModalOpen(false)}\n        >\n          <CModalHeader>\n            <CModalTitle>Edit Profile</CModalTitle>\n          </CModalHeader>\n          <CModalBody>\n            <CContainer>\n              <EditProfileForm onSubmitted={() => setIsEditProfileModalOpen(false)} />\n            </CContainer>\n          </CModalBody>\n        </CModal>\n\n        <CModal\n          size=\"lg\"\n          alignment=\"center\"\n          visible={isChangePasswordModalOpen}\n          onClose={() => setIsChangePasswordModalOpen(false)}\n        >\n          <CModalHeader>\n            <CModalTitle>Change Password</CModalTitle>\n          </CModalHeader>\n          <CModalBody>\n            <CContainer>\n              <ChangePasswordForm onSubmitted={() => setIsChangePasswordModalOpen(false)} />\n            </CContainer>\n          </CModalBody>\n        </CModal>\n\n        <CModal\n          size=\"lg\"\n          alignment=\"center\"\n          visible={isChangeEmailModalOpen}\n          onClose={() => setIsChangeEmailModalOpen(false)}\n        >\n          <CModalHeader>\n            <CModalTitle>Change Email</CModalTitle>\n          </CModalHeader>\n          <CModalBody>\n            <ChangeEmailForm onSubmitted={() => setIsChangeEmailModalOpen(false)} />\n          </CModalBody>\n        </CModal>\n\n        <CModal\n          size=\"lg\"\n          alignment=\"center\"\n          visible={isEditAccountModalOpen}\n          onClose={() => setIsEditAccountModalOpen(false)}\n        >\n          <CModalHeader>\n            <CModalTitle>Edit Account</CModalTitle>\n          </CModalHeader>\n          <CModalBody>\n            <CContainer>\n              <EditAccountForm onSubmitted={() => setIsEditAccountModalOpen(false)} />\n            </CContainer>\n          </CModalBody>\n        </CModal>\n      </div>\n    )\n  }),\n)\n","import { CBadge, CCard, CCardBody, CCardHeader, CCol, CRow } from '@coreui/react'\nimport React from 'react'\nimport { TechnologyTypeResponse } from '../../stores/ServerStore'\n\nexport interface GovUserTechnologyTypesCardProps {\n  technologyTypes: Array<TechnologyTypeResponse>\n}\n\nexport const GovUserTechnologyTypesCard = (props: GovUserTechnologyTypesCardProps) => {\n  return (\n    <CCard className=\"GovUserTechnologyTypesCard h-100\">\n      <CCardHeader className=\"py-2\" component=\"h5\">\n        Technology Types\n      </CCardHeader>\n      <CCardBody>\n        <CRow className=\"justify-content-md-start pt-2\">\n          {props.technologyTypes.map((tt) => {\n            return (\n              <CCol key={tt.name} className={'col-md-auto px-1 mb-2'}>\n                <CBadge color=\"primary\" className=\"text-wrap text-md-start py-2\">\n                  {tt.name}\n                </CBadge>\n              </CCol>\n            )\n          })}\n        </CRow>\n      </CCardBody>\n    </CCard>\n  )\n}\n","import React from 'react'\nimport { CCol, CContainer, CRow } from '@coreui/react'\nimport { ProfileDetailCard, AccountDetailCard, UserSettingsCard } from '../../components/user'\nimport { ApplicationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { GovUserExtendedProfileDetailCard } from '../../components/user/GovUserExtendedProfileDetailCard'\nimport { AccountActions } from '../../components/user/AccountActions'\nimport { GovUserTechnologyTypesCard } from '../../components/user/GovUserTechnologyTypesCard'\n\ntype TProps = {\n  userStore?: UserStore\n}\n\nconst Account = inject(ApplicationStore.names.userStore)(\n  observer((props: TProps) => {\n    return (\n      <section className=\"Account\">\n        <CContainer>\n          <CRow>\n            <CCol>\n              <div className={'d-flex flex-row justify-content-end px-4 mb-3'}>\n                <AccountActions />\n              </div>\n            </CCol>\n          </CRow>\n          <CRow className={'h-100'}>\n            <CCol className={'d-flex flex-column flex-1'}>\n              <ProfileDetailCard />\n            </CCol>\n            <CCol className={'d-flex flex-column gap-2 justify-content-start'}>\n              {props.userStore?.currentUserData?.userRoles.includes('ignite') && (\n                <CRow>\n                  <CCol>\n                    <AccountDetailCard />\n                  </CCol>\n                </CRow>\n              )}\n              <CRow>\n                <CCol>\n                  <UserSettingsCard />\n                </CCol>\n              </CRow>\n              {props.userStore?.currentUserData?.userRoles.includes('gov') && (\n                <CRow className={'h-100'}>\n                  <CCol className={'h-100'}>\n                    <GovUserTechnologyTypesCard\n                      technologyTypes={props.userStore?.currentUserData?.technologyTypes || []}\n                    />\n                  </CCol>\n                </CRow>\n              )}\n            </CCol>\n          </CRow>\n          {props.userStore?.currentUserData?.userRoles.includes('gov') && (\n            <CRow className=\"mt-2 mb-3\">\n              <CCol>\n                <GovUserExtendedProfileDetailCard />\n              </CCol>\n            </CRow>\n          )}\n        </CContainer>\n      </section>\n    )\n  }),\n)\n\nexport default Account\n","import spacetime from 'spacetime'\nimport { Spacetime } from 'spacetime/types/types'\nimport informal from 'spacetime-informal'\n\nexport type ICustomTimezone = {\n  [key: string]: string\n}\n\nexport const getCurrentISOStringOffset = () => {\n  const date = new Date()\n  var tzo = -date.getTimezoneOffset(),\n    dif = tzo >= 0 ? '+' : '-',\n    pad = function (num: number) {\n      return (num < 10 ? '0' : '') + num\n    }\n\n  return (\n    date.getFullYear() +\n    '-' +\n    pad(date.getMonth() + 1) +\n    '-' +\n    pad(date.getDate()) +\n    'T' +\n    pad(date.getHours()) +\n    ':' +\n    pad(date.getMinutes()) +\n    ':' +\n    pad(date.getSeconds()) +\n    dif +\n    pad(Math.floor(Math.abs(tzo) / 60)) +\n    ':' +\n    pad(Math.abs(tzo) % 60)\n  )\n}\n\nexport const makeDateComputerOffset = (str: string) => {\n  return new Date(str + 'T' + getCurrentISOStringOffset().split('T')[1])\n}\n\nexport const i18nTimezones: ICustomTimezone = {\n  'Pacific/Midway': 'Midway Island, Samoa',\n  'Pacific/Honolulu': 'Hawaii',\n  'America/Juneau': 'Alaska',\n  'America/Boise': 'Mountain Time',\n  'America/Dawson': 'Dawson, Yukon',\n  'America/Chihuahua': 'Chihuahua, La Paz, Mazatlan',\n  'America/Phoenix': 'Arizona',\n  'America/Chicago': 'Central Time',\n  'America/Regina': 'Saskatchewan',\n  'America/Mexico_City': 'Guadalajara, Mexico City, Monterrey',\n  'America/Belize': 'Central America',\n  'America/Detroit': 'Eastern Time',\n  'America/Bogota': 'Bogota, Lima, Quito',\n  'America/Caracas': 'Caracas, La Paz',\n  'America/Santiago': 'Santiago',\n  'America/St_Johns': 'Newfoundland and Labrador',\n  'America/Sao_Paulo': 'Brasilia',\n  'America/Tijuana': 'Tijuana',\n  'America/Argentina/Buenos_Aires': 'Buenos Aires, Georgetown',\n  'America/Godthab': 'Greenland',\n  'America/Los_Angeles': 'Pacific Time',\n  'Atlantic/Azores': 'Azores',\n  'Atlantic/Cape_Verde': 'Cape Verde Islands',\n  GMT: 'UTC',\n  'Europe/London': 'Edinburgh, London',\n  'Europe/Dublin': 'Dublin',\n  'Europe/Lisbon': 'Lisbon',\n  'Africa/Casablanca': 'Casablanca, Monrovia',\n  'Atlantic/Canary': 'Canary Islands',\n  'Europe/Belgrade': 'Belgrade, Bratislava, Budapest, Ljubljana, Prague',\n  'Europe/Sarajevo': 'Sarajevo, Skopje, Warsaw, Zagreb',\n  'Europe/Brussels': 'Brussels, Copenhagen, Madrid, Paris',\n  'Europe/Amsterdam': 'Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna',\n  'Africa/Algiers': 'West Central Africa',\n  'Europe/Bucharest': 'Bucharest',\n  'Africa/Cairo': 'Cairo',\n  'Europe/Helsinki': 'Helsinki, Kiev, Riga, Sofia, Tallinn, Vilnius',\n  'Europe/Athens': 'Athens, Istanbul, Minsk',\n  'Asia/Jerusalem': 'Jerusalem',\n  'Africa/Harare': 'Harare, Pretoria',\n  'Europe/Moscow': 'Moscow, St. Petersburg, Volgograd',\n  'Asia/Kuwait': 'Kuwait, Riyadh',\n  'Africa/Nairobi': 'Nairobi',\n  'Asia/Baghdad': 'Baghdad',\n  'Asia/Tehran': 'Tehran',\n  'Asia/Dubai': 'Abu Dhabi, Muscat',\n  'Asia/Baku': 'Baku, Tbilisi, Yerevan',\n  'Asia/Kabul': 'Kabul',\n  'Asia/Yekaterinburg': 'Ekaterinburg',\n  'Asia/Karachi': 'Islamabad, Karachi, Tashkent',\n  'Asia/Kolkata': 'Chennai, Kolkata, Mumbai, New Delhi',\n  'Asia/Kathmandu': 'Kathmandu',\n  'Asia/Dhaka': 'Astana, Dhaka',\n  'Asia/Colombo': 'Sri Jayawardenepura',\n  'Asia/Almaty': 'Almaty, Novosibirsk',\n  'Asia/Rangoon': 'Yangon Rangoon',\n  'Asia/Bangkok': 'Bangkok, Hanoi, Jakarta',\n  'Asia/Krasnoyarsk': 'Krasnoyarsk',\n  'Asia/Shanghai': 'Beijing, Chongqing, Hong Kong SAR, Urumqi',\n  'Asia/Kuala_Lumpur': 'Kuala Lumpur, Singapore',\n  'Asia/Taipei': 'Taipei',\n  'Australia/Perth': 'Perth',\n  'Asia/Irkutsk': 'Irkutsk, Ulaanbaatar',\n  'Asia/Seoul': 'Seoul',\n  'Asia/Tokyo': 'Osaka, Sapporo, Tokyo',\n  'Asia/Yakutsk': 'Yakutsk',\n  'Australia/Darwin': 'Darwin',\n  'Australia/Adelaide': 'Adelaide',\n  'Australia/Sydney': 'Canberra, Melbourne, Sydney',\n  'Australia/Brisbane': 'Brisbane',\n  'Australia/Hobart': 'Hobart',\n  'Asia/Vladivostok': 'Vladivostok',\n  'Pacific/Guam': 'Guam, Port Moresby',\n  'Asia/Magadan': 'Magadan, Solomon Islands, New Caledonia',\n  'Asia/Kamchatka': 'Kamchatka, Marshall Islands',\n  'Pacific/Fiji': 'Fiji Islands',\n  'Pacific/Auckland': 'Auckland, Wellington',\n  'Pacific/Tongatapu': \"Nuku'alofa\",\n}\n\nexport type ITimezoneOption = {\n  value: string\n  label: string\n  abbrev?: string\n  altName?: string\n  offset?: number\n}\n\nexport type ITimezone = ITimezoneOption | string\n\nexport const scoreTimezoneOption = (currentTime: Spacetime, tz: ITimezoneOption) => {\n  let score = 0\n  if (\n    currentTime.timezones[tz.value.toLowerCase()] &&\n    !!currentTime.timezones[tz.value.toLowerCase()].dst === currentTime.timezone().hasDst\n  ) {\n    if (\n      tz.value.toLowerCase().indexOf(currentTime.tz.substr(currentTime.tz.indexOf('/') + 1)) !== -1\n    ) {\n      score += 8\n    }\n    if (\n      tz.label.toLowerCase().indexOf(currentTime.tz.substr(currentTime.tz.indexOf('/') + 1)) !== -1\n    ) {\n      score += 4\n    }\n    if (tz.value.toLowerCase().indexOf(currentTime.tz.substr(0, currentTime.tz.indexOf('/')))) {\n      score += 2\n    }\n    score += 1\n  } else if (tz.value === 'GMT') {\n    score += 1\n  }\n  return { tz, score }\n}\n\nexport const findFuzzyTz = (\n  zone: string,\n  timeZoneOptions: Array<ITimezoneOption>,\n): ITimezoneOption | undefined => {\n  let currentTime: Spacetime\n  try {\n    currentTime = spacetime.now(zone)\n  } catch (err) {\n    return undefined\n  }\n  return timeZoneOptions\n    .filter((tz: ITimezoneOption) => tz.offset === currentTime.timezone().current.offset)\n    .map((tz: ITimezoneOption) => scoreTimezoneOption(currentTime, tz))\n    .sort((a, b) => b.score - a.score)\n    .map(({ tz, score }) => tz)[0]\n}\n\nexport const parseTimezone = (zone: ITimezone, timeZoneOptions: Array<ITimezoneOption>) => {\n  if (typeof zone === 'object' && zone.value && zone.label) return zone\n  if (typeof zone === 'string') {\n    return (\n      timeZoneOptions.find((tz) => tz.value === zone) ||\n      (zone.indexOf('/') !== -1 ? findFuzzyTz(zone, timeZoneOptions) : undefined)\n    )\n  } else if (zone.value && !zone.label) {\n    return timeZoneOptions.find((tz) => tz.value === zone.value)\n  }\n}\n\nexport const parseDateTime = (timestamp: string): string => {\n  const date = new Date(timestamp)\n  return `${date.toLocaleDateString('en-US')} at ${date.toLocaleTimeString('en-US', {\n    hour: '2-digit',\n    minute: '2-digit',\n  })}`\n}\n\nexport const parseDate = (timestamp: string): string => {\n  return new Date(timestamp).toLocaleDateString('en-US')\n}\n\nexport const getTimezoneData = (\n  zone: string,\n  zoneLabel: string,\n  labelStyle: string,\n): ITimezoneOption => {\n  const now = spacetime.now().goto(zone)\n  const tz = now.timezone()\n  const tzStrings = informal.display(zone)\n\n  let label = ''\n  let abbrev = zone\n  let altName = zone\n\n  if (tzStrings && tzStrings.daylight && tzStrings.standard) {\n    abbrev = now.isDST() ? tzStrings.daylight.abbrev : tzStrings.standard.abbrev\n    altName = now.isDST() ? tzStrings.daylight.name : tzStrings.standard.name\n  }\n\n  const min = tz.current.offset * 60\n  const hr = `${(min / 60) ^ 0}:` + (min % 60 === 0 ? '00' : Math.abs(min % 60))\n\n  const hrTemp = hr.includes('-') ? hr : `+${hr}`\n  const prefix = `(GMT${hrTemp}) ${zoneLabel}`\n\n  switch (labelStyle) {\n    case 'original':\n      label = prefix\n      break\n    case 'altName':\n      const altTemp = !altName.includes('/') ? `(${altName})` : ''\n      label = `${prefix} ${altTemp}`\n      break\n    case 'abbrev':\n      const abbrevTemp = abbrev.length < 5 ? `(${abbrev})` : ''\n      label = `${prefix} ${abbrevTemp}`\n      break\n    default:\n      label = `${prefix}`\n  }\n\n  return {\n    value: zone,\n    label: label,\n    offset: tz.current.offset,\n    abbrev: abbrev,\n    altName: altName,\n  }\n}\n\nexport const getTimezoneOptions = (labelStyle = 'original'): Array<ITimezoneOption> => {\n  return Object.entries(i18nTimezones)\n    .reduce((selectOptions, zone) => {\n      selectOptions.push(getTimezoneData(zone[0], zone[1], labelStyle))\n\n      return selectOptions\n    }, [] as ITimezoneOption[])\n    .sort((a: ITimezoneOption, b: ITimezoneOption) => (a.offset || 0) - (b.offset || 0))\n}\n\nexport const withGrace = (func: (timeout?: number) => void, timeout?: number) => {\n  setTimeout(func, timeout || 300)\n}\n\n/**\n * Number of milliseconds in one second\n */\nexport const second: number = 1000\n\n/**\n * Number of milliseconds in one minute\n */\nexport const minute: number = second * 60\n\n/**\n * Number of milliseconds in one hour\n */\nexport const hour: number = minute * 60\n\n/**\n * Number of milliseconds in one day\n */\nexport const day: number = hour * 24\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"govUserConnectorChip\":\"GovUserConnectorChip_govUserConnectorChip__37ZxW\"};","import { RestfulMessage } from '../types'\n\nexport const extractRestfulError = (error: any): RestfulMessage | undefined => {\n  if (error?.response?.data) {\n    return error.response.data\n  }\n  return undefined\n}\n\nexport class VisionRequestInterceptedError extends Error {}\n","import { Location } from 'history'\nexport enum SESSION_VARIABLES {\n  PATH_NAME = 'PATH_NAME',\n  QUERY = 'QUERY',\n  Q_PARAM = 'Q_PARAM',\n  Q_USER_EXISTS = 'Q_USER_EXISTS',\n  LINKED_TO_VISION = 'LINKED_TO_VISION',\n}\n\n///////////////////////////////////\n// Redirect Session Helpers\n///////////////////////////////////\nexport const setRedirectSessionVariables = (location: Location<any>) => {\n  let noStoredSessionRedirect = !getFullSessionUrl()\n  let redirectTo = new URLSearchParams(location.search).get('redirectTo')\n\n  if (noStoredSessionRedirect || redirectTo) {\n    let pathName = location.pathname\n    let queryParams = location.search\n\n    if (redirectTo) {\n      pathName = redirectTo.split('?')[0]\n      queryParams = redirectTo.split('?')[1] ? '?' + redirectTo.split('?')[1] : ''\n    }\n\n    window.sessionStorage.setItem(SESSION_VARIABLES.PATH_NAME, pathName)\n    window.sessionStorage.setItem(SESSION_VARIABLES.QUERY, queryParams)\n  }\n}\nexport const clearRedirectSessionVariables = () => {\n  window.sessionStorage.removeItem(SESSION_VARIABLES.PATH_NAME)\n  window.sessionStorage.removeItem(SESSION_VARIABLES.QUERY)\n}\nexport const getSessionPath = () => {\n  return window.sessionStorage.getItem(SESSION_VARIABLES.PATH_NAME)\n}\nexport const getSessionQuery = () => {\n  return window.sessionStorage.getItem(SESSION_VARIABLES.QUERY)\n}\nexport const getFullSessionUrl = () => {\n  let ret = undefined\n\n  if (getSessionPath()) {\n    ret = getSessionPath()\n  }\n\n  if (ret && getSessionQuery()) {\n    ret = ret + getSessionQuery()\n  }\n\n  return ret\n}\n\n///////////////////////////////////\n// Redirect Session Helpers\n///////////////////////////////////\n\n///////////////////////////////////\n// Q Param Session Helpers\n///////////////////////////////////\nexport const clearQParamSessionVariables = () => {\n  window.sessionStorage.removeItem(SESSION_VARIABLES.Q_PARAM)\n  window.sessionStorage.removeItem(SESSION_VARIABLES.Q_USER_EXISTS)\n  window.sessionStorage.removeItem(SESSION_VARIABLES.LINKED_TO_VISION)\n}\n\nexport const setSessionQParam = (q: string) => {\n  window.sessionStorage.setItem(SESSION_VARIABLES.Q_PARAM, q)\n}\n\nexport const setSessionQUserExists = (args: { userExists: boolean; isLinked: boolean }) => {\n  window.sessionStorage.setItem(SESSION_VARIABLES.LINKED_TO_VISION, args.isLinked.toString())\n  window.sessionStorage.setItem(SESSION_VARIABLES.Q_USER_EXISTS, args.userExists.toString())\n}\n\nexport const getSessionQParam = () => {\n  let ret = window.sessionStorage.getItem(SESSION_VARIABLES.Q_PARAM)\n  return ret || null\n}\n\nexport const getSessionQUserExists = () => {\n  let ret = window.sessionStorage.getItem(SESSION_VARIABLES.Q_USER_EXISTS)\n  return ret ? Boolean(JSON.parse(ret)) : null\n}\n\nexport const getSessionQUserLinkedToVision = () => {\n  let ret = window.sessionStorage.getItem(SESSION_VARIABLES.LINKED_TO_VISION)\n  return ret ? Boolean(JSON.parse(ret)) : null\n}\n\nexport const removeQParamFromLocation = (location: Location<any>) => {\n  let search = new URLSearchParams(location.search)\n  search.delete('q')\n  location.search = '?' + search.toString()\n  return location\n}\n\n///////////////////////////////////\n// Q Param Session Helpers\n///////////////////////////////////\n","export const leftArrow = () => {\n  return (\n    <svg\n      className=\"left-arrow\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n      width=\"100\"\n      height=\"100\"\n      viewBox=\"0 0 100 100\"\n    >\n      <g transform=\"translate(50 50) scale(0.69 0.69) rotate(-180) translate(-50 -50)\">\n        <svg\n          xmlnsdc=\"http://purl.org/dc/elements/1.1/\"\n          xmlnsrdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n          xmlnssvg=\"http://www.w3.org/2000/svg\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          version=\"1.1\"\n          x=\"0px\"\n          y=\"0px\"\n          viewBox=\"0 0 100 100\"\n        >\n          <g transform=\"translate(0,-952.36218)\">\n            <path\n              d=\"m 77.247459,1000.3632 -15.99914,-17.99999 c -1.03011,-1.22844 -3.06617,-1.33786 -4.26072,-0.26859 -1.1944,1.06926 -1.315,3.10913 -0.2078,4.26859 l 11.56189,13 -43.3418,0 c -1.6568,0 -2.9999,1.34319 -2.9999,2.99999 0,1.6569 1.3431,3 2.9999,3 l 43.3418,0 -11.56189,13 c -1.1072,1.1595 -0.9574,3.1957 0.2371,4.265 1.19449,1.0692 3.20131,0.9634 4.23142,-0.265 l 15.99914,-18 c 1.04459,-1.4553 0.96135,-2.7618 0,-4 z\"\n              fillOpacity=\"1\"\n              stroke=\"none\"\n              marker=\"none\"\n              visibility=\"visible\"\n              display=\"inline\"\n              overflow=\"visible\"\n            ></path>\n          </g>\n        </svg>\n      </g>\n    </svg>\n  )\n}\n","import { CCol, CFormInput, CRow } from '@coreui/react'\nimport { CountrySelectInput, RegionSelectInput, ValidatedCFormInput } from '../../custom'\nimport React from 'react'\nimport { validateLength } from '../../../lib/helpers/validation'\n\nexport type AddressData = {\n  addressLine1: string\n  addressLine2?: string\n  addressLine3?: string\n  city: string\n  stateOrProvince: string\n  country: string\n  postalCode: string\n}\n\ntype TProps = {\n  onChange: (value: Partial<AddressData>) => void\n  value?: Partial<AddressData>\n  idPrefix?: string\n}\n\nexport const AddressForm = (props: TProps) => {\n  const makeId = (value: string) => {\n    if (props.idPrefix) {\n      return `${props.idPrefix}-${value}`\n    }\n    return value\n  }\n\n  const onChange = (v: Partial<AddressData>) => {\n    return props.onChange({ ...props.value, ...v })\n  }\n\n  return (\n    <section className=\"AddressForm\">\n      <CRow className=\"mb-1\" xs={{ gutter: 2 }}>\n        <CCol>\n          <ValidatedCFormInput\n            id={makeId('addressLine1Input')}\n            value={props.value?.addressLine1 || ''}\n            placeholder={'Address Line 1'}\n            onChange={(value) => onChange({ addressLine1: value })}\n            required\n            data-testid={makeId('test-addressLine1Input')}\n            validate={(v) => validateLength(v, 2)}\n            renderInvalidMessage={() => 'Must be at least 2 characters'}\n          />\n        </CCol>\n      </CRow>\n\n      <CRow className=\"mb-1\" xs={{ gutter: 2 }}>\n        <CCol>\n          <CFormInput\n            id={makeId('addressLine2Input')}\n            value={props.value?.addressLine2 || ''}\n            placeholder=\"Address Line 2\"\n            onChange={({ target: { value } }) => onChange({ addressLine2: value })}\n            data-testid={makeId('test-addressLine2Input')}\n          />\n        </CCol>\n      </CRow>\n\n      <CRow className=\"mb-1\" xs={{ gutter: 2 }}>\n        <CCol>\n          <CFormInput\n            id={makeId('addressLine3Input')}\n            value={props.value?.addressLine3 || ''}\n            placeholder=\"Address Line 3\"\n            onChange={({ target: { value } }) => onChange({ addressLine3: value })}\n            data-testid={makeId('test-addressLine3Input')}\n          />\n        </CCol>\n      </CRow>\n\n      <CRow className=\"mb-1 justify-content-between\" xs={{ gutter: 2 }}>\n        <CCol>\n          <ValidatedCFormInput\n            id={makeId('addressCityInput')}\n            value={props.value?.city || ''}\n            placeholder=\"City\"\n            onChange={(value) => onChange({ city: value })}\n            required\n            data-testid={makeId('test-addressCityInput')}\n            validate={(v) => validateLength(v, 2)}\n            renderInvalidMessage={() => 'Must be at least 2 characters'}\n          />\n        </CCol>\n\n        <CCol className=\"mb-1 region-select-col\">\n          <RegionSelectInput\n            value={props.value?.stateOrProvince}\n            onSelect={(r) => onChange({ stateOrProvince: r?.short })}\n            country={props.value?.country}\n            id={makeId('addressStateProvinceInput')}\n            required\n            data-testid={makeId('test-addressStateProvinceInput')}\n          />\n        </CCol>\n      </CRow>\n\n      <CRow className=\"mb-1\">\n        <CCol>\n          <CountrySelectInput\n            id={makeId('addressCountryInput')}\n            value={props.value?.country || 'US'}\n            onSelect={(v) => onChange({ country: v?.short, stateOrProvince: undefined })}\n            required\n            data-testid={makeId('test-addressCountryInput')}\n          />\n        </CCol>\n        <CCol>\n          <ValidatedCFormInput\n            id={makeId('addressPostalCodeInput')}\n            value={props.value?.postalCode || ''}\n            placeholder=\"Postal Code\"\n            onChange={(value) => onChange({ postalCode: value })}\n            required\n            data-testid={makeId('test-addressPostalCodeInput')}\n            validate={(v) => validateLength(v, 2)}\n            renderInvalidMessage={() => 'Must be at least 2 characters'}\n          />\n        </CCol>\n      </CRow>\n    </section>\n  )\n}\n","import { CCol, CFormLabel, CRow } from '@coreui/react'\nimport React from 'react'\nimport { AsyncValidatedTextInput, IconPopover, ValidatedCFormInput } from '../../custom'\nimport { validateLength } from '../../../lib/helpers/validation'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ServerStore } from '../../../stores'\n\nexport type SignupAccountData = {\n  name: string\n  uniqueEntityId: string\n}\ntype TProps = {\n  value: Partial<SignupAccountData>\n  onChange: (value: Partial<SignupAccountData>) => void\n  serverStore?: ServerStore\n  asyncValidationDebounceMs?: number\n  disabled?: string[]\n  isAccountNameHidden?: boolean\n}\nexport const SignupAccountForm = inject(ApplicationStore.names.serverStore)(\n  observer((props: TProps) => {\n    const validateUniqueEntityId = async (value: string) => {\n      // Force to say this is valid (i.e. in edit when the user cannot change their Unique Entity ID\n      if (props.disabled?.includes('uniqueEntityId') && props.value.uniqueEntityId) {\n        return undefined\n      }\n\n      try {\n        const data = await props.serverStore?.checkUniqueEntity(value)\n        return data ? undefined : 'InvalidUniqueEntityId'\n      } catch (_e) {\n        return 'ServerError'\n      }\n    }\n\n    const craftInvalidMessage = (invalidReason: string) => {\n      switch (invalidReason) {\n        case 'InvalidUniqueEntityId':\n          return (\n            <p data-testid=\"ueid-error\">\n              Invalid Unique Entity Id. Please contact our support team at{' '}\n              <a href=\"mailto:support@mobilizeignite.com\">support@mobilizeignite.com</a>.\n            </p>\n          )\n        default:\n          return 'Error validating Unique Entity ID. Please try again.'\n      }\n    }\n\n    const accountNameInput = () => {\n      if (props.isAccountNameHidden) {\n        return\n      }\n      return (\n        <CRow className=\"mb-3\">\n          <CFormLabel {...{ htmlFor: 'signupAccountName' }} className=\"col-sm-2 col-form-label\">\n            Account Name\n          </CFormLabel>\n          <CCol>\n            <ValidatedCFormInput\n              type=\"text\"\n              id=\"signupAccountName\"\n              data-testid={'signupAccountName'}\n              placeholder=\"Account Name\"\n              value={props.value.name || ''}\n              onChange={(value) => props.onChange({ ...props.value, name: value })}\n              required\n              validate={(v) => validateLength(v, 2)}\n              renderInvalidMessage={() => 'Must be a minimum of 2 characters'}\n            />\n          </CCol>\n        </CRow>\n      )\n    }\n\n    return (\n      <>\n        {accountNameInput()}\n        <CRow className=\"mb-3\">\n          <CFormLabel {...{ htmlFor: 'signupUniqueEntityId' }} className=\"col-sm-2 col-form-label\">\n            Unique Entity ID\n            <IconPopover\n              content={\n                <span>\n                  The <a href={'https://sam.gov'}>SAM.GOV</a> unique entity indentifier. A valid\n                  unique entity identifier is required for signup and only one account per unique\n                  entity identifier is supported within IGNITE.\n                </span>\n              }\n              placement={'right'}\n              iconClassName={'fas fa-question-circle ms-2 text-primary'}\n            />\n          </CFormLabel>\n          <CCol>\n            <AsyncValidatedTextInput\n              value={props.value.uniqueEntityId}\n              onValue={(value) => {\n                props.onChange({ ...props.value, uniqueEntityId: value })\n              }}\n              validate={validateUniqueEntityId}\n              makeValidationMessage={craftInvalidMessage}\n              data-testid=\"signupUniqueEntityId\"\n              placeholder={'Unique Entity ID'}\n              disabled={props.disabled?.includes('uniqueEntityId')}\n            />\n          </CCol>\n        </CRow>\n      </>\n    )\n  }),\n)\n","/**\n * NOTE\n *\n * Deprecated\n *\n * This is gettting added temporarily until we recreate the ServerBackedAutoComplete in VCR (https://app.clickup.com/t/86dvpmveu)\n * Once that work is complete, this entire file can be removed.\n */\n\nimport React, { useState, useEffect, useRef, ReactNode, PropsWithChildren } from 'react'\nimport { useDebouncedCallback } from 'use-debounce'\nimport classnames from 'classnames'\nimport {\n  PaginationData,\n  PaginationParams,\n  ServerPageData,\n  Spinner,\n} from '@mobilizeyourtech/vision-core-react'\n\nimport './server-backed-autocomplete.scss'\n\nexport interface AutoCompleteItem {\n  id: string | number\n  label: string\n  shortLabel?: string\n  sublabel?: string\n  categoryLabel?: string\n}\n\ntype InputProps = {\n  id?: string\n  label?: string\n  required?: boolean\n  requiredBreach?: boolean\n  value?: any\n  inputComponent?: any\n  inputProps?: React.DetailedHTMLProps<\n    React.InputHTMLAttributes<HTMLInputElement>,\n    HTMLInputElement\n  >\n  className?: string\n  maxLength?: number\n  inputAriaLabel?: string\n}\n\nconst Input = (props: PropsWithChildren<InputProps>) => {\n  const renderLabel = () => {\n    return (\n      <div className=\"input-label-container\">\n        <div className=\"input-label d-flex justify-content-center align-items-center gap-1\">\n          <label>{props.label}</label>\n          {props.required && <span className=\"subtle\">(Required)</span>}\n        </div>\n      </div>\n    )\n  }\n\n  return (\n    <div id={props.id} className={`Input${props.className ? props.className : ''}`}>\n      {!!props.label && renderLabel()}\n      <div className=\"input-container\">\n        {props.inputComponent}\n        {<div className=\"child-container\">{props.children}</div>}\n      </div>\n    </div>\n  )\n}\n\nexport interface ServerBackedAutoCompleteProps<T extends AutoCompleteItem>\n  extends Omit<\n    React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>,\n    'onSelect'\n  > {\n  getDataFunction: (params: PaginationParams & { search?: string }) => Promise<ServerPageData<T>>\n  onSelect: (selected: T | undefined) => void\n  /**\n   * @param {string} testId - ID used to target specific components in tests. This\n   * attribute is added to several sub components within the ServerBackedAutoComplete:\n   * - ${testId}-testid for the container div\n   * - autocomplete-input${testId} for the input\n   * - dropdown-item-loader${testId} for the loading spinner\n   * - dropdown-item-error${testId} for the error loading message\n   */\n  testId?: string\n  selected?: T\n  placeholder?: string\n  label?: string\n  required?: boolean\n  loadingBounceMs?: number // mainly just a test entry point\n  searchDebounceMs?: number // default 500\n  scrollDebounceMs?: number // default 200\n  scrollLoadOffsetPx?: number // default 50\n  clearInput?: boolean\n  inputAriaLabel?: string\n  ariaRequired?: boolean\n  renderSelectItemContent?: (item: T) => ReactNode\n  disabled?: boolean\n}\n\n// @deprecated - Remove and Replace usages once in VCR\nexport const ServerBackedAutoComplete = <T extends AutoCompleteItem>(\n  props: ServerBackedAutoCompleteProps<T>,\n) => {\n  const [selectOptions, setSelectOptions] = useState<Array<T> | undefined>(undefined)\n  const [lastPage, setLastPage] = useState<PaginationData | undefined>(undefined)\n\n  const [search, setSearchValue] = useState<string | undefined>(undefined)\n\n  const [optionsLoading, setOptionsLoading] = useState(false)\n  const [isExtending, setIsExtending] = useState(false)\n  const [loadingError, setLoadingError] = useState(undefined)\n\n  const [isActive, setIsActive] = useState(false)\n  const [requiredBreach, setRequiredBreach] = useState(false)\n\n  const ref: any = useRef(null)\n  const itemRefs = useRef<Array<HTMLDivElement>>([])\n  const inputRef = useRef<HTMLInputElement>(null)\n\n  const handleTargetOutside = (e: MouseEvent | FocusEvent) => {\n    if (ref.current && !ref.current.contains(e.target)) {\n      setIsActive(false)\n      inputRef.current && inputRef.current.blur()\n    }\n  }\n\n  const handleEscape = ({ key: kypress }: KeyboardEvent) => {\n    if (kypress === 'Escape') {\n      setIsActive(false)\n      inputRef.current && inputRef.current.blur()\n    }\n  }\n\n  useEffect(() => {\n    !props.selected && setSearchValue(undefined)\n  }, [props.selected])\n\n  useEffect(() => {\n    if (isActive) {\n      document.addEventListener('mousedown', handleTargetOutside)\n      document.addEventListener('focusin', handleTargetOutside)\n      document.addEventListener('keydown', handleEscape)\n    }\n    return () => {\n      document.removeEventListener('mousedown', handleTargetOutside)\n      document.removeEventListener('focusin', handleTargetOutside)\n      document.removeEventListener('keydown', handleEscape)\n    }\n  }, [isActive])\n\n  // Function to replace data (typically with a new search)\n  const getData = (searchValue?: string) => {\n    setOptionsLoading(true)\n    return props\n      .getDataFunction({\n        page: 1,\n        perPage: 10,\n        search: searchValue === '' ? undefined : searchValue,\n      })\n      .then((page) => {\n        setSelectOptions(page.data)\n        setLastPage(page.pagination)\n      })\n      .catch((e) => {\n        setLoadingError(e)\n      })\n      .finally(() => setTimeout(() => setOptionsLoading(false), props.loadingBounceMs || 200))\n  }\n\n  const debounceChange = useDebouncedCallback(\n    // function\n    (v) => getData(v),\n    // delay in ms\n    props.searchDebounceMs ? props.searchDebounceMs : 500,\n  )\n\n  // Function to extend data, typically on scroll with an existing search\n  const extendData = async () => {\n    try {\n      setIsExtending(true)\n      const page = await props.getDataFunction({\n        // @ts-ignore\n        page: lastPage.page + 1,\n        perPage: 10,\n        search: search === '' ? undefined : search,\n      })\n\n      setSelectOptions([...(selectOptions || []), ...page.data])\n      setLastPage(page.pagination)\n    } catch (e) {\n      setLoadingError(e as any)\n    } finally {\n      setIsExtending(false)\n    }\n  }\n\n  const onScrollBottom = () => {\n    if (!isExtending && lastPage!.page !== lastPage!.pages) {\n      extendData()\n    }\n  }\n\n  const debouncedScroll = useDebouncedCallback(\n    // function\n    () => onScrollBottom(),\n    // delay in ms\n    props.scrollDebounceMs == null ? 200 : props.scrollDebounceMs,\n  )\n\n  const onScroll = (e: any) => {\n    const offset = props.scrollLoadOffsetPx || 50\n    if (e.target.scrollHeight - e.target.scrollTop >= e.target.clientHeight - offset) {\n      debouncedScroll()\n    }\n  }\n\n  const makeItemLabel = (item?: T) => {\n    if (!item) {\n      return undefined\n    }\n    return item.shortLabel ? `${item.shortLabel} - ${item.label}` : item.label\n  }\n\n  const renderOptionsContent = () => {\n    if (selectOptions == null) {\n      return <span />\n    } else if (optionsLoading) {\n      return (\n        <div\n          data-testid=\"dropdown-item-loader\"\n          className=\"dropdown-item no-click dropdown-item-loader\"\n        >\n          <Spinner className=\"dropdown-item-spinner\" />\n        </div>\n      )\n    }\n\n    if (selectOptions!.length === 0) {\n      return <a className=\"dropdown-item no-click subtle\">No matches...</a>\n    }\n\n    const renderSelectItem = (item: T, idx: number) => {\n      return (\n        <div\n          className=\"clickable autoselect-option dropdown-item\"\n          data-testid={`${item.id || idx}-testid`}\n          key={item.id}\n          tabIndex={-1}\n          role=\"option\"\n          aria-selected={props.selected && item.id === props.selected.id}\n          ref={(element) => {\n            if (element) {\n              itemRefs.current[idx] = element\n            }\n          }}\n          onMouseDown={() => {\n            setRequiredBreach(false)\n            setSearchValue(item.label)\n            props.onSelect && props.onSelect(item)\n            setIsActive(false)\n          }}\n          onKeyDown={(e) => {\n            let { key: kyprss } = e\n            if (kyprss === 'Enter') {\n              e.preventDefault()\n              setRequiredBreach(false)\n              setSearchValue(item.label)\n              props.onSelect && props.onSelect(item)\n              inputRef.current && inputRef.current.focus()\n              setIsActive(false)\n            } else if (kyprss === 'ArrowDown') {\n              e.preventDefault()\n              idx + 1 < itemRefs.current.length && itemRefs.current[idx + 1].focus()\n            } else if (kyprss === 'ArrowUp' && idx === 0) {\n              e.preventDefault()\n              inputRef.current && inputRef.current.focus()\n            } else if (kyprss === 'ArrowUp') {\n              e.preventDefault()\n              idx - 1 > -1 && itemRefs.current[idx - 1].focus()\n            }\n          }}\n        >\n          {props.renderSelectItemContent ? (\n            props.renderSelectItemContent!(item)\n          ) : (\n            <>\n              <p>{makeItemLabel(item)}</p>\n              {item.sublabel && (\n                <span className={'autoselect-option-sublabel subtle'}>{item.sublabel}</span>\n              )}\n            </>\n          )}\n        </div>\n      )\n    }\n\n    let category: string | undefined\n\n    return selectOptions.map((option, index) => {\n      let divider\n\n      if (option.categoryLabel && option.categoryLabel !== category) {\n        divider = (\n          <div\n            className=\"categoryDivider p-3\"\n            data-testid=\"category-divider\"\n            title={option.categoryLabel}\n          >\n            {option.categoryLabel}\n          </div>\n        )\n        category = option.categoryLabel\n      }\n\n      return (\n        <>\n          {divider}\n          {renderSelectItem(option, index)}\n        </>\n      )\n    })\n  }\n\n  const renderOptions = () => {\n    if (!isActive) {\n      return null\n    }\n\n    return (\n      <div className=\"dropdown\">\n        <div\n          data-testid={'dropdown-menu'}\n          className={classnames('dropdown-menu', {\n            active: isActive,\n          })}\n          onScroll={onScroll}\n        >\n          {renderOptionsContent()}\n\n          {isExtending && !optionsLoading && (\n            <div\n              data-testid={`dropdown-item-loader${props.testId || ''}`}\n              className=\"dropdown-item no-click dropdown-item-loader\"\n            >\n              <Spinner className=\"dropdown-item-spinner\" />\n            </div>\n          )}\n          {!!loadingError && (\n            <div\n              data-testid={`dropdown-item-error${props.testId || ''}`}\n              className=\"dropdown-item no-click dropdown-item-error\"\n            >\n              <span>Error loading data...</span>\n            </div>\n          )}\n        </div>\n      </div>\n    )\n  }\n\n  const clearSelect = () => {\n    setSearchValue(undefined)\n    props.onSelect(undefined)\n  }\n\n  return (\n    <>\n      <div\n        className={classnames('ServerBackedAutoComplete AutoComplete', props.className)}\n        ref={ref}\n      >\n        <i\n          className={classnames('fas fa-asterisk required-icon', {\n            invalid: props.required && requiredBreach,\n          })}\n          data-testid={'test-required-icon'}\n        />\n        <Input\n          label={props.label}\n          required={props.required}\n          requiredBreach={requiredBreach}\n          inputComponent={\n            <input\n              disabled={props.disabled}\n              type=\"text\"\n              aria-label={props.inputAriaLabel}\n              aria-required={props.required || props.ariaRequired}\n              role=\"listbox\"\n              data-testid={`autocomplete-input${props.testId || ''}`}\n              className={classnames(\n                'autoselect form-control',\n                props.required && requiredBreach ? 'invalid is-invalid' : '',\n              )}\n              ref={inputRef}\n              value={!props.clearInput ? makeItemLabel(props.selected) || search || '' : ''}\n              placeholder={props.placeholder}\n              onFocus={() => {\n                setIsActive(true)\n                clearSelect()\n                getData('')\n              }}\n              onBlur={() => {\n                if (props.required && !props.selected) {\n                  setRequiredBreach(true)\n                }\n              }}\n              onKeyDown={(e) => {\n                const { key: kypress } = e\n                if (kypress === 'ArrowDown') {\n                  e.preventDefault()\n                  itemRefs.current[0].focus()\n                }\n              }}\n              onChange={({ target: { value } }) => {\n                setSearchValue(value)\n                props.onSelect(undefined)\n                debounceChange(value)\n              }}\n            />\n          }\n        >\n          {renderOptions()}\n        </Input>\n        {(props.selected || (selectOptions && selectOptions!.length === 0)) && !props.disabled && (\n          <span\n            data-testid=\"clear-input\"\n            onClick={() => clearSelect()}\n            tabIndex={0}\n            aria-label=\"Clear selection\"\n            onKeyDown={({ key: kypress }) => {\n              if (kypress === 'Enter') {\n                clearSelect()\n              }\n            }}\n            className=\"clear-button\"\n          >\n            <i className=\"fas fa-x\" />\n          </span>\n        )}\n      </div>\n    </>\n  )\n}\n","import { PaginationParams, ServerPageData } from '@mobilizeyourtech/vision-core-react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore } from 'stores'\nimport classnames from 'classnames'\n\nimport {\n  AutoCompleteItem,\n  ServerBackedAutoComplete,\n  ServerBackedAutoCompleteProps,\n} from 'components/custom/ServerBackedAutoComplete/ServerBackedAutoComplete'\nimport { GovUserOrganizationResponse } from 'stores/ServerStore'\nimport { GovUserOrganizationParams } from 'lib/types/Params'\n\nexport interface GovUserOrganizationAutoCompleteInputProps\n  extends Omit<\n    ServerBackedAutoCompleteProps<GovUserOrganizationResponse & AutoCompleteItem>,\n    'getDataFunction'\n  > {\n  getOrganizations: (\n    params: GovUserOrganizationParams,\n  ) => Promise<ServerPageData<GovUserOrganizationResponse>>\n  notificationStore?: NotificationStore\n}\n\nexport const GovUserOrganizationAutoCompleteInput = inject(\n  ApplicationStore.names.notificationStore,\n)(\n  observer(\n    ({\n      getOrganizations,\n      notificationStore: _notificationStore,\n      ...props\n    }: GovUserOrganizationAutoCompleteInputProps) => {\n      const loadOrganizations = (p: PaginationParams & { ids?: string }) => {\n        return getOrganizations(p).then((res) => {\n          return {\n            data: res.data.map((i) => {\n              return { ...i, label: i.name, categoryLabel: i.category }\n            }),\n            pagination: res.pagination,\n          }\n        })\n      }\n\n      return (\n        <ServerBackedAutoComplete\n          {...props}\n          className={classnames(props.className)}\n          getDataFunction={loadOrganizations}\n          testId=\"-organization\"\n          selected={\n            props.selected\n              ? {\n                  ...props.selected,\n                  label: props.selected.longName,\n                  shortLabel: props.selected.shortName,\n                }\n              : undefined\n          }\n        />\n      )\n    },\n  ),\n)\n","import React from 'react'\nimport { CCol, CFormLabel, CRow } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../../stores'\nimport { GovUserExtendedDataFormData } from './types'\nimport { GovUserOrganizationAutoCompleteInput } from 'components/Molecules/AutoCompleteInputs/GovUserOrganizationAutoCompleteInput/GovUserOrganizationAutoCompleteInput'\n\nexport interface GovUserExtendedDataOrganizationFormProps {\n  value: Partial<GovUserExtendedDataFormData>\n  onChange: (value: Partial<GovUserExtendedDataFormData>) => void\n  serverStore?: ServerStore\n  notificationStore?: NotificationStore\n}\nexport const GovUserExtendedDataOrganizationForm = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: GovUserExtendedDataOrganizationFormProps) => {\n    return (\n      <>\n        <CRow className=\"mb-3\">\n          <CFormLabel\n            {...{ htmlFor: 'signupOrganizationName' }}\n            className=\"col-sm-2 col-form-label d-flex justify-content-between\"\n          >\n            <span>Organization Name</span>\n          </CFormLabel>\n          <CCol>\n            <GovUserOrganizationAutoCompleteInput\n              placeholder=\"Organization\"\n              getOrganizations={(p) => {\n                return props.serverStore!.getGovUserOrganizations({\n                  ...p,\n                  eager: 'category',\n                  sort: 'category',\n                })\n              }}\n              selected={props.value.govUserOrganization}\n              onSelect={(value) => {\n                props.onChange({\n                  govUserOrganization: value,\n                })\n              }}\n              required\n            />\n          </CCol>\n        </CRow>\n      </>\n    )\n  }),\n)\n","import React from 'react'\nimport { CCol, CFormInput, CFormLabel, CRow } from '@coreui/react'\nimport { SingleImageUploader, TimezoneSelect, ValidatedCFormInput } from '../../custom'\nimport { validateLength } from '../../../lib/helpers/validation'\nimport { ITimezone } from '../../../lib/time'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../../stores'\nimport { SocialMediaAccountsForm, SocialMediaFormData } from './SocialMediaAccountsForm'\n\nexport type SignupUserData = {\n  firstName: string\n  lastName: string\n  title: string\n  cellPhone: string\n  workPhone?: string\n  workPhoneExt?: string\n  timezone: ITimezone\n  socialMedia?: Array<SocialMediaFormData>\n  headshot: File | string | undefined\n}\n\ntype TProps = {\n  value: Partial<SignupUserData>\n  onChange: (value: Partial<SignupUserData>) => void\n  serverStore?: ServerStore\n  notificationStore?: NotificationStore\n  isGovUser?: boolean\n}\nexport const SignupUserForm = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const defaultCharLengthMessage = 'Must be a minimum of 2 characters'\n\n    const firstNameRow = () => {\n      return (\n        <CRow className=\"mb-3\">\n          <CFormLabel {...{ htmlFor: 'signupUserFirstName' }} className=\"col-sm-2 col-form-label\">\n            First Name\n          </CFormLabel>\n          <CCol>\n            <ValidatedCFormInput\n              type=\"text\"\n              id=\"signupUserFirstName\"\n              data-testid=\"signupUserFirstName\"\n              placeholder=\"First Name\"\n              value={props.value.firstName || ''}\n              onChange={(value) => {\n                props.onChange({ firstName: value })\n              }}\n              required\n              validate={(v) => validateLength(v, 2)}\n              renderInvalidMessage={() => defaultCharLengthMessage}\n            />\n          </CCol>\n        </CRow>\n      )\n    }\n    const lastNameRow = () => {\n      return (\n        <CRow className=\"mb-3\">\n          <CFormLabel {...{ htmlFor: 'signupUserLastName' }} className=\"col-sm-2 col-form-label\">\n            Last Name\n          </CFormLabel>\n          <CCol>\n            <ValidatedCFormInput\n              type=\"text\"\n              id=\"signupUserLastName\"\n              data-testid=\"signupUserLastName\"\n              placeholder=\"Last Name\"\n              value={props.value.lastName || ''}\n              onChange={(value) => props.onChange({ lastName: value })}\n              required\n              validate={(v) => validateLength(v, 2)}\n              renderInvalidMessage={() => defaultCharLengthMessage}\n            />\n          </CCol>\n        </CRow>\n      )\n    }\n    const headShotRow = () => {\n      return (\n        <CRow className=\"mb-3\">\n          <CFormLabel className=\"col-sm-2 col-form-label\">Profile Image</CFormLabel>\n          <CCol>\n            <SingleImageUploader\n              data-testid={'userHeadshotUploader'}\n              onFile={(file) => {\n                props.onChange({ headshot: file })\n              }}\n              value={props.value.headshot}\n            />\n          </CCol>\n        </CRow>\n      )\n    }\n    const titleRow = () => {\n      return (\n        <CRow className=\"mb-3\">\n          <CFormLabel {...{ htmlFor: 'signupUserTitle' }} className=\"col-sm-2 col-form-label\">\n            {props.isGovUser ? 'Duty Title/Rank' : 'Title'}\n          </CFormLabel>\n          <CCol>\n            <ValidatedCFormInput\n              type=\"text\"\n              id=\"signupUserTitle\"\n              data-testid=\"signupUserTitle\"\n              placeholder=\"Title\"\n              value={props.value.title || ''}\n              onChange={(value) => props.onChange({ title: value })}\n              required\n              validate={(v) => validateLength(v, 2)}\n              renderInvalidMessage={() => defaultCharLengthMessage}\n            />\n          </CCol>\n\n          <CCol className={'col-12 col-lg-3 small'}>\n            <div>Example:</div>\n            <ul>\n              <li>Assured PNT Lead</li>\n              <li>Supervisory Engineer Automated Test System Division</li>\n            </ul>\n          </CCol>\n        </CRow>\n      )\n    }\n    const timeZoneRow = () => {\n      return (\n        <CRow className=\"mb-3\">\n          <CFormLabel {...{ htmlFor: 'signupUserTimezone' }} className=\"col-sm-2 col-form-label\">\n            Timezone\n          </CFormLabel>\n          <CCol>\n            <TimezoneSelect\n              id=\"signupUserTimezone\"\n              data-testid=\"testSignupUserTimezone\"\n              required\n              value={props.value.timezone}\n              onSelect={(v) => {\n                props.onChange({ timezone: v })\n              }}\n            />\n          </CCol>\n        </CRow>\n      )\n    }\n    const contactInfoInputs = () => {\n      return (\n        <>\n          <CRow className=\"mb-3\" data-testid={'igniteUserFormView'}>\n            <CFormLabel {...{ htmlFor: 'signupUserCellPhone' }} className=\"col-sm-2 col-form-label\">\n              Mobile Phone\n            </CFormLabel>\n            <CCol>\n              <ValidatedCFormInput\n                type=\"text\"\n                id=\"signupUserCellPhone\"\n                data-testid=\"signupUserCellPhone\"\n                placeholder=\"Mobile Phone\"\n                value={props.value.cellPhone || ''}\n                onChange={(value) => props.onChange({ cellPhone: value })}\n                required\n                /* TODO valid phone */\n                validate={(v) => validateLength(v, 2)}\n                renderInvalidMessage={() => defaultCharLengthMessage}\n              />\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-3\">\n            <CFormLabel {...{ htmlFor: 'signupUserWorkPhone' }} className=\"col-sm-2 col-form-label\">\n              Work Phone\n            </CFormLabel>\n            <CCol>\n              <CFormInput\n                type=\"text\"\n                id=\"signupUserWorkPhone\"\n                data-testid=\"signupUserWorkPhone\"\n                placeholder=\"Work Phone\"\n                value={props.value.workPhone || ''}\n                onChange={({ target: { value } }) => props.onChange({ workPhone: value })}\n              />\n            </CCol>\n            <CFormLabel\n              {...{ htmlFor: 'signupUserWorkPhoneExt' }}\n              className=\"col-sm-2 col-form-label\"\n            >\n              Work Extension\n            </CFormLabel>\n            <CCol sm={3}>\n              <CFormInput\n                type=\"text\"\n                id=\"signupUserWorkPhoneExt\"\n                data-testid=\"signupUserWorkPhoneExt\"\n                placeholder=\"Work Extension\"\n                value={props.value.workPhoneExt || ''}\n                onChange={({ target: { value } }) => props.onChange({ workPhoneExt: value })}\n              />\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-3\">\n            <SocialMediaAccountsForm\n              value={props.value.socialMedia || []}\n              onChange={(change) => props.onChange({ socialMedia: change })}\n            />\n          </CRow>\n        </>\n      )\n    }\n\n    return (\n      <>\n        {firstNameRow()}\n        {lastNameRow()}\n        {headShotRow()}\n\n        {timeZoneRow()}\n        {titleRow()}\n        {!props.isGovUser && contactInfoInputs()}\n      </>\n    )\n  }),\n)\n","import { CCol, CFormLabel, CRow, CFormFeedback } from '@coreui/react'\nimport {\n  validateEmail,\n  validatePassword,\n  validateValueMatch,\n} from '../../../lib/helpers/validation'\nimport { AsyncValidatedTextInput, IconPopover, ValidatedCFormInput } from '../../custom'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore } from '../../../stores'\n\nexport type SignupLoginData = {\n  email: string\n  password: string\n  confirmPassword: string\n  emailValid: boolean\n}\n\ntype TProps = {\n  value: Partial<SignupLoginData>\n  onChange: (value: Partial<SignupLoginData>) => void\n  isEmailHidden?: boolean\n  disableEmail?: boolean\n  isVisionUser?: boolean\n  applicationStore?: ApplicationStore\n  openConnectVisionAccountModal?: () => void\n  visionAccountConnected?: boolean\n}\n\nexport const SignupLoginForm = inject('applicationStore')(\n  observer((props: TProps) => {\n    const onEmailChange = async (email: string | undefined) => {\n      if (!email) {\n        return props.onChange({ email, emailValid: false })\n      }\n\n      const emailValidReason = await asyncValidateEmail(email)\n      return props.onChange({ email, emailValid: emailValidReason == null })\n    }\n\n    const asyncValidateEmail = async (email: string) => {\n      if (props.disableEmail) {\n        return\n      }\n\n      const syncValidation = validateEmail(email)\n      if (syncValidation) {\n        return syncValidation\n      }\n\n      if (!props.isVisionUser) {\n        const { value } = await props.applicationStore!.checkSignupUserEmail(email)\n        if (!value) {\n          return 'disallowed_email'\n        }\n      }\n    }\n\n    const makeEmailValidationMessage = (reason: string): string => {\n      if (reason === 'invalid_email') {\n        return 'Provide a valid email'\n      } else if (reason === 'disallowed_email') {\n        return 'This email is not currently allowed for Ignite government user signup. Please contact support to request access.'\n      }\n      return ''\n    }\n\n    const emailInput = () => {\n      if (props.isEmailHidden) {\n        return\n      }\n      return (\n        <CRow className=\"mb-3\">\n          <CFormLabel {...{ htmlFor: 'signupUserEmail' }} className=\"col-sm-2 col-form-label\">\n            Email\n          </CFormLabel>\n          <CCol>\n            <AsyncValidatedTextInput\n              type=\"email\"\n              id=\"signupUserEmail\"\n              data-testid=\"signupUserEmail\"\n              placeholder=\"Email\"\n              value={props.value.email}\n              required\n              onValue={onEmailChange}\n              disabled={props.disableEmail}\n              validate={asyncValidateEmail}\n              makeValidationMessage={makeEmailValidationMessage}\n            />\n            {/* Toggle-able helper text */}\n            {!props.visionAccountConnected && (\n              <CFormFeedback\n                className=\"mt-1\"\n                onClick={props.openConnectVisionAccountModal}\n                data-testid=\"connect-vision-account-feedback\"\n              >\n                <span className=\"clickable\">\n                  <u>Connect your VISION account to IGNITE</u>\n                </span>\n              </CFormFeedback>\n            )}\n            <span className=\"subtle\">\n              E-mail addresses will never be shared or displayed to a small business or other IGNITE\n              users.\n            </span>\n          </CCol>\n        </CRow>\n      )\n    }\n\n    return (\n      <>\n        {emailInput()}\n        <CRow className=\"mb-3\">\n          <CFormLabel {...{ htmlFor: 'signupUserPassword' }} className=\"col-sm-2 col-form-label\">\n            Password\n            <IconPopover\n              content={\n                <span>\n                  Must be at least 6 characters, contain at least one capital and lowercase letter,\n                  number, and special character (#?!@$%^&*-)\n                </span>\n              }\n              placement={'right'}\n              iconClassName={'fas fa-question-circle ms-2 text-primary'}\n            />\n          </CFormLabel>\n\n          <CCol>\n            <ValidatedCFormInput\n              type=\"password\"\n              id=\"signupUserPassword\"\n              data-testid=\"signupUserPassword\"\n              placeholder=\"Password\"\n              value={props.value.password || ''}\n              onChange={(password: string | undefined) => props.onChange({ password })}\n              required\n              validate={(v) => validatePassword(v, 6)}\n              renderInvalidMessage={() =>\n                'Must be at least 6 characters, contain at least one capital and lowercase letter, number, and special character (#?!@$%^&*-)'\n              }\n            />\n          </CCol>\n          <CRow></CRow>\n        </CRow>\n        <CRow className=\"mb-3\">\n          <CFormLabel\n            {...{ htmlFor: 'signupUserConfirmPassword' }}\n            className=\"col-sm-2 col-form-label\"\n          >\n            Confirm Password\n          </CFormLabel>\n\n          <CCol>\n            <ValidatedCFormInput\n              type=\"password\"\n              id=\"signupUserConfirmPassword\"\n              data-testid=\"signupUserConfirmPassword\"\n              placeholder=\"Confirm Password\"\n              value={props.value.confirmPassword || ''}\n              required\n              onChange={(confirmPassword: string | undefined) =>\n                props.onChange({ confirmPassword })\n              }\n              validate={(v) => validateValueMatch(props.value.password, v)}\n              renderInvalidMessage={() => 'Passwords must match'}\n            />\n          </CCol>\n        </CRow>\n      </>\n    )\n  }),\n)\n","import { CCol, CFormLabel, CRow } from '@coreui/react'\nimport React from 'react'\nimport { IconPopover, ValidatedCFormInput } from '../../custom'\nimport { validateEmail, validateLength } from '../../../lib/helpers/validation'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, NotificationStore, ServerStore } from '../../../stores'\n\nexport type ClaimRequestFormData = {\n  firstName: string\n  lastName: string\n  email: string\n}\n\ntype TProps = {\n  value: Partial<ClaimRequestFormData>\n  onChange: (value: Partial<ClaimRequestFormData>) => void\n  serverStore?: ServerStore\n  notificationStore?: NotificationStore\n}\nexport const ClaimRequestForm = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const onChange = (change: Partial<ClaimRequestFormData>) =>\n      props.onChange({ ...props.value, ...change })\n\n    const defaultCharLengthMessage = 'Must be a minimum of 2 characters'\n\n    return (\n      <>\n        <CRow className=\"mb-3\">\n          <CFormLabel {...{ htmlFor: 'claimRequestEmail' }} className=\"col-sm-2 col-form-label\">\n            Email\n            <IconPopover\n              content={\n                <span>\n                  To be eligible to claim an existing account, you must submit the claim request\n                  using an email that matches available PI/POC data records from previously awarded\n                  contracts or that matches the same domain as the associated entity data from{' '}\n                  <a href={'https://sam.gov'}>SAM.GOV</a> or{' '}\n                  <a href={'https://www.sbir.gov/'}>SBIR.GOV</a>. After submitting the claim, you\n                  will be required to verify you are the owner of this email. If you are unable,\n                  please contact support to request a path to access.\n                </span>\n              }\n              placement={'right'}\n              iconClassName={'fas fa-question-circle ms-2 text-primary'}\n            />\n          </CFormLabel>\n\n          <CCol>\n            <ValidatedCFormInput\n              type=\"email\"\n              id=\"claimRequestEmail\"\n              data-testid=\"claimRequestEmail\"\n              placeholder=\"Email\"\n              value={props.value.email}\n              required\n              onChange={(email: string | undefined) => {\n                onChange({ email })\n              }}\n              validate={validateEmail}\n              renderInvalidMessage={() => 'Provide a valid email'}\n            />\n          </CCol>\n        </CRow>\n        <CRow className=\"mb-3\">\n          <CFormLabel {...{ htmlFor: 'claimRequestFirstName' }} className=\"col-sm-2 col-form-label\">\n            First Name\n          </CFormLabel>\n          <CCol>\n            <ValidatedCFormInput\n              type=\"text\"\n              id=\"claimRequestFirstName\"\n              data-testid=\"claimRequestFirstName\"\n              placeholder=\"First Name\"\n              value={props.value.firstName || ''}\n              onChange={(value) => {\n                onChange({ firstName: value })\n              }}\n              required\n              validate={(v) => validateLength(v, 2)}\n              renderInvalidMessage={() => defaultCharLengthMessage}\n            />\n          </CCol>\n        </CRow>\n        <CRow className=\"mb-3\">\n          <CFormLabel {...{ htmlFor: 'claimRequestLastName' }} className=\"col-sm-2 col-form-label\">\n            Last Name\n          </CFormLabel>\n          <CCol>\n            <ValidatedCFormInput\n              type=\"text\"\n              id=\"claimRequestLastName\"\n              data-testid=\"claimRequestLastName\"\n              placeholder=\"Last Name\"\n              value={props.value.lastName || ''}\n              onChange={(value) => onChange({ lastName: value })}\n              required\n              validate={(v) => validateLength(v, 2)}\n              renderInvalidMessage={() => defaultCharLengthMessage}\n            />\n          </CCol>\n        </CRow>\n      </>\n    )\n  }),\n)\n","import { CButton, CCol, CForm, CFormLabel, CRow } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport React, { FormEvent, useState } from 'react'\nimport { validateEmail } from '../../lib/helpers/validation'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../../stores'\nimport { ValidatedCFormInput } from '../custom'\n\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n  authStore?: AuthStore\n  onSubmitted?: () => void\n}\nexport const ChangeEmailForm = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.authStore,\n)(\n  observer((props: TProps) => {\n    const [hasValidated, setHasValidated] = useState<boolean>(false)\n    const [isSubmitting, setIsSubmitting] = useState<boolean>(false)\n    const [email, setEmail] = useState<string | undefined>('')\n\n    const onSubmit = (e: FormEvent<HTMLFormElement>) => {\n      e.preventDefault()\n\n      setHasValidated(true)\n      setIsSubmitting(true)\n      props.userStore\n        ?.changeEmail(email!)\n        .then((data) => {\n          props.onSubmitted && props.onSubmitted()\n          setTimeout(() => props.userStore?.setCurrentUserData(data), 500)\n          props.notificationStore?.setNotificationMessage(\n            `Email confirmation has been sent to ${email}`,\n            'success',\n            3000,\n          )\n          setIsSubmitting(false)\n        })\n        .catch((err) => {\n          setIsSubmitting(false)\n          props.notificationStore?.setNotificationMessage(\n            'Failed to change email, please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    const resendEmail = (unconfirmedEmail: string) => {\n      setIsSubmitting(true)\n      props.userStore\n        ?.changeEmail(unconfirmedEmail)\n        .then((data) => {\n          props.onSubmitted && props.onSubmitted()\n          setTimeout(() => props.userStore?.setCurrentUserData(data), 500)\n          props.notificationStore?.setNotificationMessage(\n            `Email confirmation has been sent to ${unconfirmedEmail}`,\n            'success',\n            3000,\n          )\n          setIsSubmitting(false)\n        })\n        .catch((err) => {\n          setIsSubmitting(false)\n          props.notificationStore?.setNotificationMessage(\n            'Failed to change email, please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    const cancelEmailChange = () => {\n      setIsSubmitting(true)\n      props.userStore\n        ?.cancelEmailChange()\n        .then((data) => {\n          props.onSubmitted && props.onSubmitted()\n          props.notificationStore?.setNotificationMessage(\n            `Change email has been undone`,\n            'success',\n            3000,\n          )\n          setTimeout(() => props.userStore?.setCurrentUserData(data), 500)\n          setIsSubmitting(false)\n        })\n        .catch(() => {\n          setIsSubmitting(false)\n          props.notificationStore?.setNotificationMessage(\n            'Failed to undo change email. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    const isSubmittable = () => {\n      return !validateEmail(email)\n    }\n\n    const emailForm = () => {\n      return (\n        <div>\n          <CForm\n            onSubmit={onSubmit}\n            validated={hasValidated}\n            className=\"needs-validation\"\n            {...{ noValidate: true }}\n          >\n            <CRow className=\"mb-3\">\n              <p>\n                An email will be sent to the requested email. Until it is confirmed, you will use\n                your current email for logging in.\n              </p>\n            </CRow>\n            <CRow className=\"mb-3\">\n              <CFormLabel {...{ htmlFor: 'changeUserEmail' }} className=\"col-sm-2 col-form-label\">\n                Email\n              </CFormLabel>\n\n              <CCol>\n                <ValidatedCFormInput\n                  type=\"email\"\n                  id=\"changeUserEmail\"\n                  data-testid=\"changeUserEmail\"\n                  placeholder=\"Email\"\n                  value={email}\n                  required\n                  onChange={(email: string | undefined) => {\n                    setEmail(email)\n                  }}\n                  validate={validateEmail}\n                  renderInvalidMessage={() => 'Provide a valid email'}\n                />\n              </CCol>\n            </CRow>\n\n            <CRow className=\"action-row justify-content-end\">\n              <CCol sm={3} className=\"text-end\">\n                <CButton\n                  type=\"submit\"\n                  data-testid=\"save-button\"\n                  disabled={isSubmitting || !isSubmittable()}\n                >\n                  {isSubmitting ? (\n                    <i data-testid=\"suspense-spinner\" className=\"fa fa-spinner fa-spin\" />\n                  ) : (\n                    <i className=\"fas fa-save\" />\n                  )}\n                  Change email\n                </CButton>\n              </CCol>\n            </CRow>\n          </CForm>\n        </div>\n      )\n    }\n\n    const unconfirmedForm = () => {\n      return (\n        <div>\n          <CRow className=\"pb-3\">\n            <p>\n              A confirmation email has been sent to{' '}\n              {props.userStore?.currentUserData?.unconfirmedEmail}\n            </p>\n          </CRow>\n          <CRow className=\"button-row\">\n            <CButton\n              color=\"primary\"\n              data-testid=\"resend-confirmation-button\"\n              disabled={isSubmitting}\n              onClick={() => resendEmail(props.userStore?.currentUserData?.unconfirmedEmail!)}\n            >\n              <i className=\"fas fa-check\" />\n              Resend Confirmation\n            </CButton>\n            <CButton\n              onClick={cancelEmailChange}\n              disabled={isSubmitting}\n              color=\"secondary\"\n              data-testid=\"cancel-confirmation-button\"\n            >\n              <i className=\"fas fa-times\" />\n              Undo Change Email\n            </CButton>\n          </CRow>\n        </div>\n      )\n    }\n\n    const determineContent = () => {\n      if (props.userStore?.currentUserData?.unconfirmedEmail) {\n        return unconfirmedForm()\n      } else {\n        return emailForm()\n      }\n    }\n\n    return (\n      <section className=\"ChangeEmailForm\" data-testid=\"ChangeEmailForm\">\n        {determineContent()}\n      </section>\n    )\n  }),\n)\n","import React, { FormEvent, useState } from 'react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { CButton, CCol, CForm, CFormLabel, CRow } from '@coreui/react'\nimport { IconPopover, ValidatedCFormInput } from '../custom'\nimport { validateLength, validatePassword, validateValueMatch } from '../../lib/helpers/validation'\nimport { ChangePasswordData } from '../../stores/UserStore'\nimport { extractRestfulError } from '../../lib/errors/utils'\n\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n  authStore?: AuthStore\n  onSubmitted?: () => void\n}\nexport const ChangePasswordForm = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.authStore,\n)(\n  observer((props: TProps) => {\n    const [formData, setFormData] = useState<Partial<ChangePasswordData>>({})\n    const [hasValidated, setHasValidated] = useState<boolean>(false)\n    const [isSubmitting, setIsSubmitting] = useState<boolean>(false)\n\n    const isSubmittable = (): boolean => {\n      let errors = [\n        validateLength(formData.currentPassword, 6),\n        validatePassword(formData.password, 6),\n        validateValueMatch(formData.password, formData.passwordConfirmation),\n      ]\n\n      if (errors.some((err) => !!err)) {\n        return false\n      }\n\n      return true\n    }\n\n    const onSubmit = (e: FormEvent<HTMLFormElement>) => {\n      e.preventDefault()\n\n      setHasValidated(true)\n      setIsSubmitting(true)\n      props.userStore\n        ?.changePassword(formData as ChangePasswordData)\n        .then(() => {\n          setTimeout(() => {\n            // auth store salt to reload data\n            setIsSubmitting(false)\n            props.authStore?.generateAndSetSalt()\n            props.notificationStore?.setNotificationMessage(\n              'Password changed successfully.',\n              'success',\n              3000,\n            )\n            props.onSubmitted && props.onSubmitted()\n          }, 500)\n        })\n        .catch((err) => {\n          const e = extractRestfulError(err)\n          setIsSubmitting(false)\n          props.notificationStore?.setNotificationMessage(\n            e && e.status === 400 ? e.message : 'Failed to change password, please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    const onChange = (change: Partial<ChangePasswordData>) =>\n      setFormData({ ...formData, ...change })\n\n    return (\n      <section className=\"EditProfileForm\" data-testid=\"change-password-form\">\n        <CForm\n          onSubmit={onSubmit}\n          validated={hasValidated}\n          className=\"needs-validation\"\n          {...{ noValidate: true }}\n        >\n          <CRow className=\"mb-3\">\n            <CFormLabel {...{ htmlFor: 'currentPassword' }} className=\"col-sm-3 col-form-label\">\n              Current Password\n            </CFormLabel>\n\n            <CCol>\n              <ValidatedCFormInput\n                type=\"password\"\n                id=\"currentPassword\"\n                data-testid=\"currentPassword\"\n                placeholder=\"Current Password\"\n                value={formData.currentPassword || ''}\n                onChange={(currentPassword: string | undefined) => onChange({ currentPassword })}\n                required\n                validate={(v) => validatePassword(v, 6)}\n                renderInvalidMessage={() => undefined}\n              />\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-3\">\n            <CFormLabel {...{ htmlFor: 'newPassword' }} className=\"col-sm-3 col-form-label\">\n              New Password\n              <IconPopover\n                content={\n                  <span>\n                    Must be at least 6 characters, contain at least one capital and lowercase\n                    letter, number, and special character (#?!@$%^&*-)\n                  </span>\n                }\n                placement={'right'}\n                iconClassName={'fas fa-question-circle ms-2 text-primary'}\n              />\n            </CFormLabel>\n\n            <CCol>\n              <ValidatedCFormInput\n                type=\"password\"\n                id=\"newPassword\"\n                data-testid=\"newPassword\"\n                placeholder=\"New Password\"\n                value={formData.password || ''}\n                required\n                onChange={(newPassword: string | undefined) => onChange({ password: newPassword })}\n                validate={(v) => validatePassword(v, 6)}\n                renderInvalidMessage={() =>\n                  'Must be at least 6 characters, contain at least one capital and lowercase letter, number, and special character (#?!@$%^&*-)'\n                }\n              />\n            </CCol>\n          </CRow>\n\n          <CRow className=\"mb-3\">\n            <CFormLabel {...{ htmlFor: 'confirmNewPassword' }} className=\"col-sm-3 col-form-label\">\n              Confirm New Password\n            </CFormLabel>\n\n            <CCol>\n              <ValidatedCFormInput\n                type=\"password\"\n                id=\"confirmNewPassword\"\n                data-testid=\"confirmNewPassword\"\n                placeholder=\"Confirm New Password\"\n                value={formData.passwordConfirmation || ''}\n                required\n                onChange={(confirmNewPassword: string | undefined) =>\n                  onChange({ passwordConfirmation: confirmNewPassword })\n                }\n                validate={(v) => validateValueMatch(formData.password, v)}\n                renderInvalidMessage={() => 'New passwords must match'}\n              />\n            </CCol>\n          </CRow>\n\n          <CRow className=\"action-row justify-content-end\">\n            <CCol sm={2} className=\"text-end\">\n              <CButton\n                type=\"submit\"\n                data-testid=\"save-button\"\n                disabled={!isSubmittable() || isSubmitting}\n              >\n                {isSubmitting ? (\n                  <i data-testid=\"suspense-spinner\" className=\"fa fa-spinner fa-spin\" />\n                ) : (\n                  <i className=\"fas fa-save\" />\n                )}\n                Save\n              </CButton>\n            </CCol>\n          </CRow>\n        </CForm>\n      </section>\n    )\n  }),\n)\n","import React, { FormEvent, useState } from 'react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { SignupAccountData, SignupAccountForm } from './fragments'\nimport { CButton, CCol, CForm, CRow } from '@coreui/react'\nimport { validateLength } from '../../lib/helpers/validation'\n\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n  authStore?: AuthStore\n  onSubmitted?: () => void\n}\n\nexport const EditAccountForm = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.authStore,\n)(\n  observer((props: TProps) => {\n    const [formData, setFormData] = useState<Partial<SignupAccountData>>({\n      name: props.userStore?.currentAccountData?.name,\n      uniqueEntityId: props.userStore?.currentAccountData?.uniqueEntityId,\n    })\n    const [hasValidated, setHasValidated] = useState<boolean>(false)\n    const [isSubmitting, setIsSubmitting] = useState<boolean>(false)\n\n    const isSubmittable = (): boolean => {\n      let nameError = validateLength(formData.name, 2)\n\n      if (nameError) {\n        return false\n      }\n\n      return [formData.name].every((e) => !!e)\n    }\n\n    const onSubmit = (e: FormEvent<HTMLFormElement>) => {\n      e.preventDefault()\n\n      setHasValidated(true)\n      setIsSubmitting(true)\n      props.userStore\n        ?.updateAccount({\n          name: formData.name!,\n        })\n        .then(() => {\n          setTimeout(() => {\n            // auth store salt to reload data\n            setIsSubmitting(false)\n            props.authStore?.generateAndSetSalt()\n            props.notificationStore?.setNotificationMessage(\n              'Account updated successfully.',\n              'success',\n              3000,\n            )\n            props.onSubmitted && props.onSubmitted()\n          }, 500)\n        })\n        .catch(() => {\n          setIsSubmitting(false)\n          props.notificationStore?.setNotificationMessage(\n            'Failed to update account, please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    return (\n      <section className=\"EditAccountForm EditProfileForm\" data-testid=\"edit-account-form\">\n        <CForm\n          onSubmit={onSubmit}\n          validated={hasValidated}\n          className=\"needs-validation\"\n          {...{ noValidate: true }}\n        >\n          <SignupAccountForm\n            value={formData}\n            onChange={(v) => setFormData(v)}\n            disabled={['uniqueEntityId']}\n          />\n\n          <CRow className=\"action-row justify-content-end\">\n            <CCol sm={3} className=\"text-end\">\n              <CButton\n                type=\"submit\"\n                data-testid=\"save-button\"\n                disabled={!isSubmittable() || isSubmitting}\n              >\n                {isSubmitting ? (\n                  <i data-testid=\"suspense-spinner\" className=\"fa fa-spinner fa-spin\" />\n                ) : (\n                  <i className=\"fas fa-save\" />\n                )}\n                Save\n              </CButton>\n            </CCol>\n          </CRow>\n        </CForm>\n      </section>\n    )\n  }),\n)\n","import React, { FormEvent, useState } from 'react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { GovUserExtendedDataOrganizationForm, SignupUserData, SignupUserForm } from './fragments'\nimport { CButton, CCol, CForm, CRow } from '@coreui/react'\nimport { getTimezoneOptions, parseTimezone } from '../../lib/time'\nimport { validateLength } from '../../lib/helpers/validation'\nimport { hasGovRole } from '../../stores/UserStore'\nimport { GovUserExtendedDataFormData } from './fragments/types'\nimport { GovUserExtendedDataProfileForm } from './fragments/GovUserExtendedDataProfileForm'\n\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n  authStore?: AuthStore\n  onSubmitted?: () => void\n}\n\nexport const EditProfileForm = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.authStore,\n)(\n  observer(({ userStore, ...props }: TProps) => {\n    const isGovUser = hasGovRole(userStore?.currentUserData!)\n\n    const [formData, setFormData] = useState<Partial<SignupUserData>>({\n      firstName: userStore?.currentUserData?.firstName,\n      lastName: userStore?.currentUserData?.lastName,\n      title: userStore?.currentUserData?.title,\n      cellPhone: userStore?.currentUserData?.cellPhone,\n      workPhone: userStore?.currentUserData?.workPhone,\n      workPhoneExt: userStore?.currentUserData?.workPhoneExt,\n      timezone: parseTimezone(userStore!.currentUserData!.timezone, getTimezoneOptions('original')),\n      headshot: userStore?.currentUserData?.headshot?.path,\n      socialMedia: userStore?.currentUserData?.socialMediaAccounts,\n    })\n    const [govUserExtendedFormData, setGovUserExtendedFormData] = useState<\n      Partial<GovUserExtendedDataFormData> | undefined\n    >(\n      isGovUser\n        ? {\n            govUserOrganization:\n              userStore!.currentUserData!.govUserExtendedData!.govUserOrganization,\n            technologyTypes: userStore?.currentUserData?.technologyTypes?.map((r) => {\n              return { ...r, label: r.name, destroyable: true }\n            }),\n            profileDetail: userStore?.currentUserData?.govUserExtendedData?.profileDetail,\n            interactionDetail: userStore?.currentUserData?.govUserExtendedData?.interactionDetail,\n            linesOfEffort:\n              !userStore?.currentUserData?.govUserExtendedData?.linesOfEffort ||\n              userStore?.currentUserData?.govUserExtendedData?.linesOfEffort.length === 0\n                ? [{ details: '' }]\n                : userStore.currentUserData.govUserExtendedData.linesOfEffort,\n            govUserClassifications:\n              userStore?.currentUserData?.govUserExtendedData?.govUserClassifications?.map(\n                (classification) => {\n                  return {\n                    ...classification,\n                    categoryLabel: classification.govUserClassificationCategory\n                      ? classification.govUserClassificationCategory.name\n                      : 'Other',\n                    subLabel: classification.description,\n                    destroyable: true,\n                  }\n                },\n              ),\n            location: {\n              city: userStore?.currentUserData?.govUserExtendedData?.city,\n              stateOrProvince: userStore?.currentUserData?.govUserExtendedData?.stateOrProvince,\n              country: userStore?.currentUserData?.govUserExtendedData?.country,\n            },\n            govEmployeeSinceYear:\n              userStore?.currentUserData?.govUserExtendedData?.govEmployeeSinceYear,\n          }\n        : undefined,\n    )\n    const [hasValidated, setHasValidated] = useState<boolean>(false)\n    const [isSubmitting, setIsSubmitting] = useState<boolean>(false)\n\n    const onSubmit = (e: FormEvent<HTMLFormElement>) => {\n      e.preventDefault()\n\n      setHasValidated(true)\n      setIsSubmitting(true)\n\n      const govUserExtendedDataAttributes = isGovUser\n        ? {\n            govUserOrganizationId: govUserExtendedFormData!.govUserOrganization!.id,\n            profileDetail: govUserExtendedFormData!.profileDetail,\n            interactionDetail: govUserExtendedFormData!.interactionDetail,\n            linesOfEffort: govUserExtendedFormData!.linesOfEffort!,\n            govUserClassifications: govUserExtendedFormData?.govUserClassifications,\n            city: govUserExtendedFormData?.location?.city,\n            stateOrProvince: govUserExtendedFormData?.location?.stateOrProvince,\n            country: govUserExtendedFormData?.location?.country,\n            govEmployeeSinceYear: govUserExtendedFormData?.govEmployeeSinceYear,\n          }\n        : undefined\n\n      userStore\n        ?.updateUser({\n          firstName: formData.firstName!,\n          lastName: formData.lastName!,\n          title: formData.title!,\n          cellPhone: isGovUser ? undefined : formData.cellPhone,\n          workPhone: isGovUser ? undefined : formData.workPhone,\n          workPhoneExt: isGovUser ? undefined : formData.workPhoneExt,\n          timezone:\n            typeof formData.timezone === 'string' ? formData.timezone : formData.timezone!.value,\n          headshot: formData.headshot instanceof File ? formData.headshot : undefined,\n          // TODO destroy semantics,\n          socialMedia: isGovUser\n            ? undefined\n            : formData.socialMedia?.map((sm) => {\n                return {\n                  ...sm,\n                  destroy: (sm as any).id && !sm.identifier ? true : undefined,\n                }\n              }),\n          govUserExtendedDataAttributes,\n          technologyTypes: isGovUser ? govUserExtendedFormData!.technologyTypes : undefined,\n        })\n        .then(() => {\n          setTimeout(() => {\n            // auth store salt to reload data\n            setIsSubmitting(false)\n            props.authStore?.generateAndSetSalt()\n            props.notificationStore?.setNotificationMessage(\n              'Profile updated successfully.',\n              'success',\n              3000,\n            )\n            props.onSubmitted && props.onSubmitted()\n          }, 500)\n        })\n        .catch(() => {\n          setIsSubmitting(false)\n          props.notificationStore?.setNotificationMessage(\n            'Failed to update profile, please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    const isSubmittable = (): boolean => {\n      let errors = [\n        validateLength(formData.firstName, 2),\n        validateLength(formData.lastName, 2),\n        validateLength(formData.title, 2),\n      ]\n\n      if (isGovUser) {\n        if (!govUserExtendedFormData?.govUserOrganization?.id) {\n          return false\n        }\n\n        if (\n          !govUserExtendedFormData?.technologyTypes ||\n          govUserExtendedFormData.technologyTypes.length < 1 ||\n          govUserExtendedFormData.technologyTypes.every((tt) => tt.destroy) ||\n          !govUserExtendedFormData?.govUserClassifications ||\n          govUserExtendedFormData.govUserClassifications.length < 1 ||\n          govUserExtendedFormData.govUserClassifications.every((c) => c.destroy) ||\n          !govUserExtendedFormData?.linesOfEffort ||\n          govUserExtendedFormData.linesOfEffort.length < 1 ||\n          govUserExtendedFormData.linesOfEffort.every(\n            (loe) => loe.destroy || loe.details.trim() === '',\n          )\n        ) {\n          return false\n        }\n\n        errors.push(\n          validateLength(govUserExtendedFormData?.profileDetail?.replace(/<[^>]*>/g, ''), 2),\n        )\n      } else {\n        errors.push(\n          // TODO: Validate phone\n          validateLength(formData.cellPhone, 2),\n        )\n\n        formData.socialMedia &&\n          formData.socialMedia.forEach((socialAccount) => {\n            if (socialAccount.identifier.length === 1) {\n              errors.push(validateLength(socialAccount.identifier, 2))\n            }\n          })\n      }\n\n      if (errors.some((err) => !!err)) {\n        return false\n      }\n\n      return [formData.timezone].every((e) => !!e)\n    }\n\n    return (\n      <section className=\"EditProfileForm\" data-testid=\"edit-profile-form\">\n        <CForm\n          onSubmit={onSubmit}\n          validated={hasValidated}\n          className=\"needs-validation\"\n          {...{ noValidate: true }}\n        >\n          {isGovUser && (\n            <CRow>\n              <CCol>\n                <GovUserExtendedDataOrganizationForm\n                  value={govUserExtendedFormData!}\n                  onChange={(value) => {\n                    setGovUserExtendedFormData((prev) => ({\n                      ...prev,\n                      ...value,\n                    }))\n                  }}\n                />\n              </CCol>\n            </CRow>\n          )}\n          <SignupUserForm\n            value={formData}\n            onChange={(v) => {\n              setFormData((prev) => ({ ...prev, ...v }))\n            }}\n            isGovUser={isGovUser}\n          />\n          {isGovUser && (\n            <CRow>\n              <CCol>\n                <GovUserExtendedDataProfileForm\n                  value={govUserExtendedFormData!}\n                  onChange={(value) => {\n                    setGovUserExtendedFormData((prev) => ({\n                      ...prev,\n                      ...value,\n                    }))\n                  }}\n                />\n              </CCol>\n            </CRow>\n          )}\n          <CRow className=\"action-row justify-content-end\">\n            <CCol sm={3} className=\"text-end\">\n              <CButton\n                type=\"submit\"\n                data-testid=\"save-button\"\n                disabled={!isSubmittable() || isSubmitting}\n              >\n                {isSubmitting ? (\n                  <i data-testid=\"suspense-spinner\" className=\"fa fa-spinner fa-spin\" />\n                ) : (\n                  <i className=\"fas fa-save\" />\n                )}\n                Save\n              </CButton>\n            </CCol>\n          </CRow>\n        </CForm>\n      </section>\n    )\n  }),\n)\n","import React, { useState } from 'react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { CCol, CForm, CFormInput, CFormLabel, CRow } from '@coreui/react'\nimport { SuspensefulButton } from '@mobilizeyourtech/vision-core-react'\nimport {\n  isResendClaimFormDataAlternative,\n  ResendClaimFormData,\n  ResendClaimFormDataAlternative,\n} from '../../stores/UserStore'\n\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n  authStore?: AuthStore\n  formData: ResendClaimFormData | ResendClaimFormDataAlternative\n}\nexport const ResendClaimForm = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.authStore,\n)(\n  observer((props: TProps) => {\n    const [isSubmitting, setIsSubmitting] = useState<boolean>(false)\n\n    const onSubmit = () => {\n      setIsSubmitting(true)\n\n      props\n        .userStore!.resendClaim(props.formData)\n        .then(({ ...claimdata }) => {\n          setIsSubmitting(false)\n          props.notificationStore?.setNotificationMessage(\n            'Claim email has been resent.',\n            'success',\n            3000,\n          )\n        })\n        .catch((error) => {\n          setIsSubmitting(false)\n          props.notificationStore?.setNotificationMessage(\n            'Failed to resend claim email, please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    return (\n      <section className=\"EditProfileForm\" data-testid=\"change-password-form\">\n        <CForm data-testid=\"resend-form\">\n          {isResendClaimFormDataAlternative(props.formData) && (\n            <>\n              <CRow className=\"mb-2 justify-content-md-center\">\n                <CCol>\n                  <CFormLabel {...{ htmlFor: 'resend-claim-uei-input' }} className=\"col-form-label\">\n                    Unique Entity Id\n                  </CFormLabel>\n                  <CFormInput\n                    type=\"text\"\n                    id=\"resend-claim-uei-input\"\n                    data-testid=\"uei-input\"\n                    value={props.formData.uniqueEntityId}\n                    readOnly={true}\n                  />\n                </CCol>\n              </CRow>\n              <CRow className=\"mb-2 justify-content-md-center\">\n                <CCol>\n                  <CFormLabel\n                    {...{ htmlFor: 'resend-claim-email-input' }}\n                    className=\"col-form-label\"\n                  >\n                    Email\n                  </CFormLabel>\n                  <CFormInput\n                    type=\"email\"\n                    id=\"resend-claim-email-input\"\n                    data-testid=\"email-input\"\n                    value={props.formData.email}\n                    readOnly={true}\n                  />\n                </CCol>\n              </CRow>\n            </>\n          )}\n\n          <CRow className=\"mb-2 justify-content-md-center\">\n            <CCol className=\"d-flex justify-content-md-center\">\n              <SuspensefulButton\n                isSuspended={isSubmitting}\n                onClick={onSubmit}\n                disabled={isSubmitting}\n                data-testid=\"claim-resend-button\"\n                icon=\"fas fa-check\"\n              >\n                Resend\n              </SuspensefulButton>\n            </CCol>\n          </CRow>\n        </CForm>\n      </section>\n    )\n  }),\n)\n","import React from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, ServerStore, NotificationStore } from '../../../../stores'\nimport { PaginatedSearchableParams } from '../../../../lib/types/Params'\nimport {\n  isDirtySelectableItem,\n  SelectableItem,\n  ServerBackedMultiSelectAutoComplete,\n} from '@mobilizeyourtech/vision-core-react'\nimport { ListingArtifactTechnologyType } from '../../../../stores/ListingStore'\nimport { TechnologyTypeResponse } from '../../../../stores/ServerStore'\n\ntype TProps = {\n  serverStore?: ServerStore\n  notificationStore?: NotificationStore\n  selected: Array<(ListingArtifactTechnologyType & SelectableItem) | TechnologyTypeResponse>\n  onChange: (\n    nc: Array<(ListingArtifactTechnologyType & SelectableItem) | TechnologyTypeResponse>,\n  ) => void\n}\n\nexport const ListingArtifactTechnologyFocusAreas = inject(\n  ApplicationStore.names.serverStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const getTechnologyFocusAreas = (params: PaginatedSearchableParams) => {\n      return props.serverStore!.getTechnologyTypes(params).then((response) => ({\n        pagination: response.pagination,\n        data: response.data.map((r) => {\n          return { ...r, label: r.name }\n        }),\n      }))\n    }\n\n    const getSelectedTechnologyFocusAreas = () => {\n      return props.selected.map((t) => {\n        return { ...t, label: t.name }\n      })\n    }\n\n    return (\n      <section className=\"TechnologyFocusAreas\">\n        <ServerBackedMultiSelectAutoComplete\n          loadMore={getTechnologyFocusAreas}\n          onChange={(change) =>\n            // DirtySelectableItem is only possible if allowDirty were set to tru\n            props.onChange(\n              change.filter((e) => !isDirtySelectableItem(e)) as Array<\n                ListingArtifactTechnologyType & SelectableItem\n              >,\n            )\n          }\n          selections={getSelectedTechnologyFocusAreas()}\n          placeholder={'Search and select multiple technologies'}\n          className=\"technology-focus-areas\"\n          data-testid={'technology-focus-areas-select'}\n        />\n      </section>\n    )\n  }),\n)\n","import { CCol, CFormLabel, CRow } from '@coreui/react'\nimport { SingleImageUploader, ValidatedCFormInput, ValidatedCFormTextArea } from '../../../custom'\nimport { validateLength, validateWebsite } from '../../../../lib/helpers/validation'\nimport {\n  isServerFileData,\n  SelectableItem,\n  ServerFileData,\n} from '@mobilizeyourtech/vision-core-react'\nimport { titleCase } from '../../../../lib/helpers/utils'\nimport DatePicker from 'react-date-picker'\nimport { ListingArtifactTechnologyType } from '../../../../stores/ListingStore'\nimport { ListingArtifactTechnologyFocusAreas } from '.'\nimport { TechnologyTypeResponse } from '../../../../stores/ServerStore'\n\nexport interface GenericListingArtifactFormData {\n  name: string\n  description: string\n  url?: string\n  logo?: File | ServerFileData\n  startDate?: string\n  endDate?: string\n  listingArtifactTechnologyTypesAttributes?: Array<\n    (ListingArtifactTechnologyType & SelectableItem) | TechnologyTypeResponse\n  >\n}\nexport const extractGenericListingArtifactFormData = <T,>({\n  name,\n  description,\n  url,\n  logo,\n  startDate,\n  endDate,\n  listingArtifactTechnologyTypesAttributes,\n}: T & Partial<GenericListingArtifactFormData>) => ({\n  name,\n  description,\n  url,\n  logo,\n  startDate,\n  endDate,\n  listingArtifactTechnologyTypesAttributes,\n})\n\nexport interface GenericListingArtifactFormFragmentProps {\n  formData: Partial<GenericListingArtifactFormData>\n  onChange: (change: Partial<GenericListingArtifactFormData>) => void\n  artifact: 'product' | 'service' | 'use case'\n}\nexport const GenericListingArtifactFormFragment = (\n  props: GenericListingArtifactFormFragmentProps,\n) => {\n  const renderDatePicker = (label: string, formKey: string, value?: string) => {\n    return (\n      <>\n        <CFormLabel\n          {...{ htmlFor: `listing-artifact-${formKey}-input` }}\n          className=\"col-sm-2 col-form-label\"\n        >\n          {label}\n        </CFormLabel>\n        <CCol xs={4}>\n          <DatePicker\n            calendarAriaLabel={label}\n            clearAriaLabel={`Clear ${label} input`}\n            onChange={(date: Date) =>\n              props.onChange({ ...props.formData, [formKey]: date?.toISOString() })\n            }\n            value={value ? new Date(value) : undefined}\n            openCalendarOnFocus={false}\n            className=\"calendar\"\n          />\n        </CCol>\n      </>\n    )\n  }\n\n  return (\n    <>\n      <CRow className=\"mb-3\">\n        <CFormLabel {...{ htmlFor: 'listing-artifact-name-input' }} className=\"col-sm-2\">\n          Name\n        </CFormLabel>\n        <CCol>\n          <ValidatedCFormInput\n            required\n            data-testid={'listing-artifact-name-input'}\n            id=\"listing-artifact-name-input\"\n            value={props.formData.name || ''}\n            validate={(v) => validateLength(v, 2)}\n            onChange={(v) => props.onChange({ ...props.formData, name: v })}\n            renderInvalidMessage={() => 'Must be a minimum of 2 characters'}\n            placeholder={`${titleCase(props.artifact)} name`}\n          />\n        </CCol>\n      </CRow>\n\n      <CRow className=\"mb-3\">\n        <CFormLabel\n          {...{ htmlFor: 'listing-artifact-description-input' }}\n          className=\"col-sm-2 col-form-label\"\n        >\n          Description\n        </CFormLabel>\n        <CCol>\n          <ValidatedCFormTextArea\n            type=\"text\"\n            placeholder={`${titleCase(props.artifact)} description`}\n            id={'listing-artifact-description-input'}\n            data-testid={'listing-artifact-description-input'}\n            onChange={(value) => props.onChange({ ...props.formData, description: value })}\n            value={props.formData.description || ''}\n            validate={(v) => validateLength(v, 2)}\n            renderInvalidMessage={() => 'Must be at least 2 characters'}\n            required\n          />\n        </CCol>\n      </CRow>\n\n      <CRow className=\"mb-3\">\n        <CFormLabel\n          {...{ htmlFor: 'listing-artifact-url-input' }}\n          className=\"col-sm-2 col-form-label\"\n        >\n          Url\n        </CFormLabel>\n        <CCol>\n          <ValidatedCFormInput\n            type=\"text\"\n            data-testid={'listing-artifact-url-input'}\n            id={'listing-artifact-url-input'}\n            onChange={(value) => props.onChange({ ...props.formData, url: value })}\n            value={props.formData.url || ''}\n            validate={(v) => validateWebsite(v)}\n            renderInvalidMessage={() => 'Invalid url'}\n            placeholder={`${titleCase(props.artifact)} website or url`}\n          />\n        </CCol>\n      </CRow>\n      {props.artifact !== 'use case' && (\n        <CRow className=\"mb-3\">\n          <CFormLabel\n            {...{ htmlFor: 'listing-artifact-technology-dropdown' }}\n            className=\"col-sm-2 col-form-label\"\n          >\n            Technology Types\n          </CFormLabel>\n          <CCol>\n            <ListingArtifactTechnologyFocusAreas\n              selected={props.formData.listingArtifactTechnologyTypesAttributes || []}\n              data-testid=\"tech-type-dropdown\"\n              onChange={(change) =>\n                props.onChange({\n                  ...props.formData,\n                  listingArtifactTechnologyTypesAttributes: change,\n                })\n              }\n            />\n          </CCol>\n        </CRow>\n      )}\n\n      {props.artifact === 'use case' && (\n        <CRow className=\"mb-3 align-items-center\">\n          {renderDatePicker('Start Date', 'startDate', props.formData.startDate)}\n          {renderDatePicker('End Date', 'endDate', props.formData.endDate)}\n        </CRow>\n      )}\n\n      <CRow className=\"mb-3\">\n        <CFormLabel className=\"col-sm-2 col-form-label\">Logo</CFormLabel>\n        <CCol>\n          <SingleImageUploader\n            data-testid={'artifact-logo-uploader'}\n            onFile={(f) => props.onChange({ ...props.formData, logo: f })}\n            value={\n              props.formData.logo && isServerFileData(props.formData.logo)\n                ? props.formData.logo.path\n                : props.formData.logo\n            }\n          />\n        </CCol>\n      </CRow>\n    </>\n  )\n}\n","import {\n  extractGenericListingArtifactFormData,\n  GenericListingArtifactFormData,\n  GenericListingArtifactFormFragment,\n} from './fragments/listing/GenericListingArtifact'\nimport { Wizard, WizardStepProps } from '@mobilizeyourtech/vision-core-react'\nimport {\n  BulkAttachments,\n  ListingArtifactAttachmentFormData,\n} from './fragments/listing/BulkAttachments'\nimport { BulkLinks, ListingArtifactLinkFormData } from './fragments/listing/BulkLinks'\nimport { useMemo } from 'react'\nimport { titleCase } from '../../lib/helpers/utils'\nimport { validateLength, validateWebsite } from '../../lib/helpers/validation'\n\nexport type ListingArtifactFormData = GenericListingArtifactFormData & {\n  listingArtifactAttachmentsAttributes?: Array<ListingArtifactAttachmentFormData>\n  listingArtifactLinksAttributes?: Array<ListingArtifactLinkFormData>\n}\nexport interface GenericListingArtifactFormFragmentProps {\n  formData: Partial<ListingArtifactFormData>\n  onChange: (change: Partial<ListingArtifactFormData>) => void\n  submittable?: boolean // Meaning should this wizard expose the submit button or should it be controlled above this?\n  artifact: 'product' | 'service' | 'use case'\n}\n\nexport const isListingArtifactSubmittable = (formData: Partial<ListingArtifactFormData>) => {\n  // Required fields\n  const required = [formData.name].every((f) => !!f)\n  const valid = [\n    validateLength(formData.name, 2),\n    validateLength(formData.description, 2),\n    formData.url ? validateWebsite(formData.url) : undefined,\n  ].every((v) => !v)\n\n  const validAttachments = formData.listingArtifactAttachmentsAttributes\n    ? formData.listingArtifactAttachmentsAttributes?.every((v) => !!v.file)\n    : true\n  const validLinks = formData.listingArtifactLinksAttributes\n    ? formData.listingArtifactLinksAttributes?.every((v) => !validateWebsite(v.url) && !!v.name)\n    : true\n\n  return required && valid && validAttachments && validLinks\n}\n\nexport const ListingArtifactFormWizard = (props: GenericListingArtifactFormFragmentProps) => {\n  const steps = useMemo(\n    () => [\n      {\n        label: titleCase(props.artifact),\n        render: (_props: WizardStepProps<Partial<ListingArtifactFormData>>) => (\n          <GenericListingArtifactFormFragment\n            artifact={props.artifact}\n            formData={extractGenericListingArtifactFormData(_props.formData)}\n            onChange={(change) => _props.onChange({ ..._props.formData, ...change })}\n          />\n        ),\n      },\n      {\n        label: 'Files',\n        render: (_props: WizardStepProps<Partial<ListingArtifactFormData>>) => (\n          <BulkAttachments\n            formData={_props.formData.listingArtifactAttachmentsAttributes || []}\n            onChange={(change) =>\n              _props.onChange({ ..._props.formData, listingArtifactAttachmentsAttributes: change })\n            }\n          />\n        ),\n      },\n      {\n        label: 'Links',\n        render: (_props: WizardStepProps<Partial<ListingArtifactFormData>>) => (\n          <BulkLinks\n            formData={_props.formData.listingArtifactLinksAttributes || []}\n            onChange={(change) =>\n              _props.onChange({ ..._props.formData, listingArtifactLinksAttributes: change })\n            }\n          />\n        ),\n      },\n    ],\n    [props.artifact],\n  )\n\n  return (\n    <section className=\"ListingArtifactFormWizard\" data-testid=\"ListingArtifactFormWizard\">\n      <Wizard\n        steps={steps}\n        formData={props.formData}\n        onComplete={() => {}}\n        onFormDataChange={props.onChange}\n        canComplete={isListingArtifactSubmittable}\n        submittable={false}\n      />\n    </section>\n  )\n}\n","import { useState, useEffect } from 'react'\nimport { ApplicationStore, ListingStore, NotificationStore } from '../../stores'\nimport { inject, observer } from 'mobx-react'\nimport { PropsWithChildren } from 'react'\nimport { CModalBody, CModalFooter } from '@coreui/react'\nimport {\n  CustomModal,\n  SuspensefulButton,\n  SuspensionBoundary,\n} from '@mobilizeyourtech/vision-core-react'\nimport {\n  isListingArtifactSubmittable,\n  ListingArtifactFormWizard,\n  ListingArtifactFormData,\n} from './ListingArtifactFormWizard'\nimport { isUseCase, ListingServiceProductData, ListingUseCaseData } from '../../stores/ListingStore'\nimport { capitalizeFirstLetter, titleCase } from '../../lib/helpers/utils'\n\nexport type ListingArtifactFormModalProps = {\n  listingId: string\n  artifact: 'product' | 'service' | 'use case'\n  method: 'get' | 'create' | 'update'\n  onSubmit: (artifact: string, responseId: string | number) => void\n  visible: boolean\n  setVisibility: (bool: boolean) => void\n  listingStore?: ListingStore\n  notificationStore?: NotificationStore\n  artifactId?: string | number\n  /** Optional ID - will preload data for id if present */\n  timeout?: number\n  /** Optional timeout interval - mostly for testing, will default to 300 if absent */\n}\ninterface ListingArtifactDirectory {\n  [key: string]: {\n    [key: string]: () => Promise<ListingServiceProductData>\n  }\n}\n\nexport const ListingArtifactFormModal = inject(\n  ApplicationStore.names.listingStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer(\n    ({\n      artifact,\n      listingId,\n      method,\n      ...props\n    }: PropsWithChildren<ListingArtifactFormModalProps>) => {\n      const [formData, setFormData] = useState<Partial<ListingArtifactFormData>>({})\n      const [suspending, setSuspense] = useState<boolean>(false)\n\n      const directory: ListingArtifactDirectory = {\n        service: {\n          create: () =>\n            props.listingStore!.createListingService({\n              listingId,\n              payload: formData as ListingArtifactFormData,\n            }),\n          update: () =>\n            props.listingStore!.updateListingService({\n              listingId,\n              serviceId: props.artifactId as string,\n              payload: formData as ListingArtifactFormData,\n            }),\n          get: () =>\n            props.listingStore!.getSingleListingService({\n              listingId,\n              serviceId: props.artifactId as string,\n              eager: 'links,attachments,technologyTypes',\n            }),\n        },\n        product: {\n          create: () =>\n            props.listingStore!.createListingProduct({\n              listingId,\n              payload: formData as ListingArtifactFormData,\n            }),\n          update: () =>\n            props.listingStore!.updateListingProduct({\n              listingId,\n              productId: props.artifactId as string,\n              payload: formData as ListingArtifactFormData,\n            }),\n          get: () =>\n            props.listingStore!.getSingleListingProduct({\n              listingId,\n              productId: props.artifactId as string,\n              eager: 'links,attachments,technologyTypes',\n            }),\n        },\n        'use case': {\n          create: () =>\n            props.listingStore!.createListingUseCase({\n              listingId,\n              payload: formData as ListingArtifactFormData,\n            }),\n          update: () =>\n            props.listingStore!.updateListingUseCase({\n              listingId,\n              useCaseId: props.artifactId as string,\n              payload: formData as ListingArtifactFormData,\n            }),\n          get: () =>\n            props.listingStore!.getSingleListingUseCase({\n              listingId,\n              useCaseId: props.artifactId as string,\n              eager: 'links,attachments',\n            }),\n        },\n      }\n\n      useEffect(() => {\n        if (props.artifactId) {\n          getData()\n        }\n      }, [props.artifactId])\n\n      const composePreloadedData = (response: ListingServiceProductData | ListingUseCaseData) => {\n        let dataWithAttributes = {\n          listingArtifactAttachmentsAttributes: response.listingArtifactAttachments!.map(\n            (attachment) => {\n              return { destroy: false, destroyable: true, ...attachment }\n            },\n          ),\n          listingArtifactLinksAttributes: response.listingArtifactLinks!.map((link) => {\n            return { destroy: false, destroyable: true, ...link }\n          }),\n          listingArtifactTechnologyTypesAttributes: !isUseCase(response)\n            ? response.listingArtifactTechnologyTypes!.map((techType) => {\n                // Formulate this for presence in a dropdown of Technology Type selectables\n                return {\n                  id: techType.technologyTypeId,\n                  ...techType,\n                  destroy: false,\n                  destroyable: true,\n                }\n              })\n            : undefined,\n\n          ...response,\n        }\n\n        let {\n          listingArtifactLinks,\n          listingArtifactAttachments,\n          listingArtifactTechnologyTypes,\n          ...composedFormData\n        } = dataWithAttributes\n\n        return composedFormData\n      }\n\n      const getData = async () => {\n        try {\n          let response = await directory[artifact]['get']()\n          setFormData(composePreloadedData(response))\n        } catch {\n          props.notificationStore?.setNotificationMessage(\n            `Unable to load data for listing ${artifact} - please reload and try again.`,\n            'danger',\n            3000,\n          )\n        }\n      }\n\n      const canSubmit = () => isListingArtifactSubmittable(formData)\n\n      const switchOff = () => {\n        props.setVisibility(false)\n        setTimeout(() => {\n          setFormData({})\n        }, props.timeout || 300)\n      }\n\n      const onSubmit = async () => {\n        setSuspense(true)\n\n        try {\n          let response = await directory[artifact][method]()\n          switchOff()\n          props.onSubmit(artifact, response.id)\n          props.notificationStore?.setNotificationMessage(\n            `Successfully submitted listing ${artifact}`,\n            'success',\n            3000,\n          )\n        } catch (err) {\n          props.notificationStore?.setNotificationMessage(\n            `Unable to submit ${method} listing ${artifact} form at the moment, please try again later.`,\n            'danger',\n            3000,\n          )\n        } finally {\n          setSuspense(false)\n        }\n      }\n\n      const composeHeaderText = () => {\n        return capitalizeFirstLetter(method) + ' Listing ' + titleCase(artifact)\n      }\n\n      return (\n        <section\n          className=\"ListingArtifactFormModal\"\n          data-testid={`ListingArtifactFormModal-${method}`}\n        >\n          <CustomModal\n            isModalOpen={props.visible}\n            onClose={() => switchOff()}\n            size=\"lg\"\n            headerContent={composeHeaderText()}\n            scrollable\n          >\n            <CModalBody>\n              <SuspensionBoundary\n                isLoading={!!props.artifactId && Object.keys(formData).length === 0}\n              >\n                <ListingArtifactFormWizard\n                  formData={formData}\n                  onChange={(change: Partial<ListingArtifactFormData>) => {\n                    setFormData({ ...formData, ...change })\n                  }}\n                  submittable={canSubmit()}\n                  artifact={artifact}\n                />\n              </SuspensionBoundary>\n            </CModalBody>\n            <CModalFooter>\n              <SuspensefulButton\n                data-testid={'submit-button'}\n                isSuspended={suspending}\n                onClick={() => onSubmit()}\n                disabled={suspending || !canSubmit()}\n                icon=\"fas fa-check\"\n              >\n                Submit\n              </SuspensefulButton>\n            </CModalFooter>\n          </CustomModal>\n        </section>\n      )\n    },\n  ),\n)\n","import React, { useEffect, useState } from 'react'\nimport { CButton, CCard, CCardBody, CCol, CContainer, CRow } from '@coreui/react'\nimport { AccountStore, ApplicationStore, AuthStore, NotificationStore } from '../stores'\nimport { inject, observer } from 'mobx-react'\nimport { TermsOrPrivacyResponse } from '../stores/AccountStore'\nimport { Redirect } from 'react-router-dom'\nimport { parseDate } from '../lib/time'\nimport ReactHtmlParser from 'react-html-parser'\n\ntype TProps = {\n  accountStore?: AccountStore\n  notificationStore?: NotificationStore\n  authStore?: AuthStore\n}\nexport const SignTermsAndPrivacy = inject(\n  ApplicationStore.names.accountStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.authStore,\n)(\n  observer((props: TProps) => {\n    const [term, setTerm] = useState<TermsOrPrivacyResponse | undefined>()\n    const [hasSignedTerm, setHasSignedTerm] = useState<boolean>(false)\n    const [privacy, setPrivacy] = useState<TermsOrPrivacyResponse | undefined>()\n    const [hasSignedPrivacy, setHasSignedPrivacy] = useState<boolean>(false)\n    const [isAgreeSuspended, setIsAgreeSuspended] = useState<boolean>(false)\n\n    useEffect(() => {\n      Promise.all([props.accountStore!.getLatestTerms(), props.accountStore!.getLatestPrivacy()])\n        .then(([t, p]) => {\n          setTerm(t)\n          setPrivacy(p)\n        })\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Failed to load terms and privacy data. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }, [])\n\n    useEffect(() => {\n      if (hasSignedPrivacy && hasSignedTerm) {\n        props.authStore!.generateAndSetSalt()\n      }\n    }, [hasSignedPrivacy, hasSignedTerm])\n\n    const signTerm = () => {\n      return props.accountStore!.signTerms(term!.id).then(() => {\n        setTimeout(() => {\n          setHasSignedTerm(true)\n          setIsAgreeSuspended(false)\n        }, 1000)\n      })\n    }\n    const signPrivacy = () => {\n      return props.accountStore!.signPrivacy(privacy!.id).then(() => {\n        setTimeout(() => {\n          setHasSignedTerm(true)\n          setHasSignedPrivacy(true)\n        }, 1000)\n      })\n    }\n    const onAgree = (key: string) => {\n      setIsAgreeSuspended(true)\n\n      const signer = key === 'term' ? signTerm : signPrivacy\n\n      return signer().catch(() => {\n        setIsAgreeSuspended(false)\n        props.notificationStore?.setNotificationMessage(\n          `Failed to sign ${key}. Please try again`,\n          'danger',\n          3000,\n        )\n      })\n    }\n\n    const renderSignerFor = (key: string, obj: TermsOrPrivacyResponse) => {\n      return (\n        <div key={`${key}-${obj.id}`} className=\"terms-privacy-signer\">\n          <CRow>\n            <CCol>\n              <h1 className=\"text-center\">{obj.title}</h1>\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-3\">\n            <CCol>\n              <div className=\"text-center subtle\">\n                <strong>Effective Date: {parseDate(obj.publishDate)}</strong>\n              </div>\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-3\">\n            <CCol>\n              <div className={'content-container-wrapper p-3'}>{ReactHtmlParser(obj.content)}</div>\n            </CCol>\n          </CRow>\n          <CRow className=\"justify-content-md-center\">\n            <CCol className=\"d-flex justify-content-center\">\n              <CButton\n                data-testid=\"agree-button\"\n                disabled={isAgreeSuspended}\n                onClick={() => onAgree(key)}\n              >\n                {isAgreeSuspended ? (\n                  <i data-testid=\"agree-suspense-spinner\" className=\"fa fa-spinner fa-spin\" />\n                ) : (\n                  <i className=\"fas fa-check\" />\n                )}\n                Agree\n              </CButton>\n            </CCol>\n          </CRow>\n        </div>\n      )\n    }\n\n    const determineRender = () => {\n      if (!term || !privacy) {\n        return <span data-testid=\"tandpsuspense\" />\n      }\n\n      if (!hasSignedTerm) {\n        return renderSignerFor('term', term)\n      }\n      if (!hasSignedPrivacy) {\n        return renderSignerFor('privacy', privacy)\n      }\n\n      return <Redirect to={'/'} />\n    }\n\n    return (\n      <section className=\"TermsAndPrivacy bg-light min-vh-100 d-flex flex-row align-items-center\">\n        <CContainer>\n          <CRow className=\"justify-content-center\">\n            <CCard>\n              <CCardBody>{determineRender()}</CCardBody>\n            </CCard>\n          </CRow>\n        </CContainer>\n      </section>\n    )\n  }),\n)\n\nexport default SignTermsAndPrivacy\n","import React, { FormEvent, useEffect, useState } from 'react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../stores'\nimport { inject, observer } from 'mobx-react'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Redirect } from 'react-router-dom'\nimport {\n  CButton,\n  CCard,\n  CCardBody,\n  CCardFooter,\n  CCol,\n  CContainer,\n  CForm,\n  CFormInput,\n  CRow,\n} from '@coreui/react'\nimport { Spinner, SupportLinks } from '../components/custom'\nimport { extractRestfulError } from '../lib/errors/utils'\nimport { validateEmail } from '../lib/helpers/validation'\n\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n  authStore?: AuthStore\n}\nexport const ConfirmEmailLanding = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.authStore,\n)(\n  observer((props: TProps) => {\n    const [params] = useQueryParams({\n      confirmationToken: withDefault(StringParam, undefined),\n    })\n    const [success, setSuccess] = useState<boolean | undefined>(false)\n    const [isSuspending, setIsSuspending] = useState<boolean>(true)\n    const [knownErrorReason, setKnownErrorReason] = useState<string | undefined>(undefined)\n    const [email, setEmail] = useState<string>('')\n\n    useEffect(() => {\n      if (params.confirmationToken) {\n        // For suspense with other loaders (i.e. the AuthBoundary)\n        setTimeout(() => {\n          props.userStore\n            ?.confirmUser(params.confirmationToken!)\n            .then((result) => {\n              setTimeout(() => {\n                setSuccess(true)\n                setIsSuspending(false)\n              }, 1000)\n            })\n            .catch((error) => {\n              setKnownErrorReason(extractRestfulError(error)?.error)\n              setSuccess(false)\n              setIsSuspending(false)\n            })\n        }, 1000)\n      } else {\n        setIsSuspending(false)\n      }\n    }, [])\n\n    const resendConfirmationEmail = (e: FormEvent<HTMLFormElement>) => {\n      e.preventDefault()\n\n      setIsSuspending(true)\n      props.userStore\n        ?.resendConfirmationEmail(email)\n        .then(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Resend confirmation email success.',\n            'success',\n            3000,\n          )\n        })\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Unable to resend confirmation email. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n      setIsSuspending(false)\n    }\n\n    const renderSuspense = () => {\n      return (\n        <>\n          <CRow className=\"mb-2 justify-content-md-center\">\n            <CCol>\n              <h2 className=\"text-center\">Confirming your account...</h2>\n            </CCol>\n          </CRow>\n          <CRow>\n            <CCol className=\"d-flex justify-content-center\">\n              <Spinner />\n            </CCol>\n          </CRow>\n        </>\n      )\n    }\n\n    const determineFailureMessage = () => {\n      // TODO pretty these messages up a bit\n      switch (knownErrorReason) {\n        case 'InvalidConfirmationToken':\n          return 'The confirmation token is invalid.'\n        case 'ConfirmationPeriodExpired':\n          return 'This confirmation link has expired.'\n        default:\n          return 'There was a problem confirming your account.'\n      }\n    }\n\n    const renderFailure = () => {\n      return (\n        <>\n          <CRow className=\"mb-2 justify-content-md-center\">\n            <CCol>\n              <h2 className=\"text-center\">Failed to Confirm Account</h2>\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-3\">\n            <CCol>\n              <p className=\"text-center subtle\">{determineFailureMessage()}</p>\n            </CCol>\n          </CRow>\n\n          <CRow className=\"mb-2 justify-content-md-center\">\n            <CCol>\n              <p className=\"text-center\">\n                Use the form below to resend a confirmation email if needed. If the email provided\n                is in our records and that account is not already confirmed, a new confirmation\n                email will be sent.\n              </p>\n            </CCol>\n          </CRow>\n          <CForm onSubmit={resendConfirmationEmail}>\n            <CRow className=\"mb-2 justify-content-center\">\n              <CCol className=\"d-flex justify-content-center\">\n                <CFormInput\n                  type=\"email\"\n                  id=\"email-input\"\n                  data-testid=\"email-input\"\n                  placeholder=\"Email\"\n                  onChange={(e: React.ChangeEvent<HTMLInputElement>) => setEmail(e.target.value)}\n                  value={email}\n                />\n              </CCol>\n            </CRow>\n            <CRow className=\"mb-3 justify-content-center\">\n              <CCol className=\"d-flex justify-content-center\">\n                <CButton\n                  data-testid=\"submit-button\"\n                  disabled={!!validateEmail(email) || isSuspending}\n                  type=\"submit\"\n                >\n                  Resend Confirmation Email\n                </CButton>\n              </CCol>\n            </CRow>\n          </CForm>\n        </>\n      )\n    }\n\n    const renderSuccess = () => {\n      return (\n        <>\n          <CRow className=\"mb-2 justify-content-md-center\">\n            <CCol>\n              <h2 className=\"text-center\">Your account has been confirmed!</h2>\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-2 justify-content-center\">\n            <CCol className=\"d-flex justify-content-center\">\n              <CButton href=\"/\">Continue</CButton>\n            </CCol>\n          </CRow>\n        </>\n      )\n    }\n\n    return (\n      <section className=\"bg-light min-vh-100 d-flex flex-row align-items-center\">\n        {!params.confirmationToken && <Redirect to=\"/\" />}\n        <CContainer>\n          <CRow className=\"justify-content-center\">\n            <CCol md={9} lg={7} xl={6}>\n              <CCard>\n                <CCardBody className=\"p-4\">\n                  {isSuspending && renderSuspense()}\n                  {!isSuspending && (success ? renderSuccess() : renderFailure())}\n                </CCardBody>\n                <CCardFooter className=\"bg-white\">\n                  <CRow className=\"justify-content-center\">\n                    <CCol>\n                      <SupportLinks />\n                    </CCol>\n                  </CRow>\n                </CCardFooter>\n              </CCard>\n            </CCol>\n          </CRow>\n        </CContainer>\n      </section>\n    )\n  }),\n)\n\nexport default ConfirmEmailLanding\n","import { CButton, CCol, CFormInput, CLink } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport React, { SyntheticEvent, useState } from 'react'\nimport { ApplicationStore, NotificationStore, UserStore } from '../stores'\nimport MobilizeVISIONLogo from '../assets/brand/Ignite_Logo_Mobilize_Full_Color.png'\nimport { useHistory } from 'react-router-dom'\n\ntype TProps = {\n  applicationStore?: ApplicationStore\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n}\n\nexport const RequestPasswordReset = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [email, setEmail] = useState<string>('')\n    const mobilizeVisionLogo = MobilizeVISIONLogo\n    const history = useHistory()\n    const [isSubmitting, setIsSubmitting] = useState<boolean>(false)\n\n    const requestReset = (e: SyntheticEvent) => {\n      setIsSubmitting(true)\n      e.preventDefault()\n\n      props.userStore\n        ?.requestPasswordReset(email)\n        .then((res) => {\n          props.notificationStore?.setNotificationMessage(\n            'If the email provided is in our records, an email will be sent with instructions to reset your password',\n            'info',\n            5000,\n          )\n          history.push('/signin')\n        })\n        .catch((err) => {\n          props.notificationStore?.setNotificationMessage(\n            'Something went wrong. Please try again.',\n            'danger',\n            5000,\n          )\n          setIsSubmitting(false)\n        })\n    }\n\n    return (\n      <section className=\"RequestReset\">\n        <div className=\"sign-in-modal\">\n          <img\n            src={mobilizeVisionLogo}\n            className=\"MobilizeVisionLogo mb-4\"\n            alt=\"Mobilize Vision Logo\"\n          />\n          <h5>Forgot your password?</h5>\n          <p>Fill in your email and we will send you password reset instructions.</p>\n          <form data-testid=\"request-reset-password-form\" onSubmit={(e) => requestReset(e)}>\n            <CFormInput\n              type=\"email\"\n              id=\"email-input\"\n              data-testid=\"email-input\"\n              placeholder=\"Email\"\n              onChange={(e: React.ChangeEvent<HTMLInputElement>) => setEmail(e.target.value)}\n              value={email}\n            />\n            <CButton\n              type=\"submit\"\n              disabled={email === '' || isSubmitting}\n              className=\"btn\"\n              data-testid=\"btn-request-password-reset\"\n            >\n              Request Password Reset\n            </CButton>\n          </form>\n          <CCol className=\"link-group\">\n            <CLink className=\"clickable\" href=\"/claim\">\n              Claim account\n            </CLink>\n            <CLink className=\"clickable\" href=\"/signin\">\n              Sign in\n            </CLink>\n          </CCol>\n        </div>\n      </section>\n    )\n  }),\n)\n","import { CButton, CCol, CLink } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport React, { SyntheticEvent, useEffect, useState } from 'react'\nimport { ApplicationStore, NotificationStore, UserStore } from '../stores'\nimport MobilizeVISIONLogo from '../assets/brand/Ignite_Logo_Mobilize_Full_Color.png'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { ValidatedCFormInput } from '../components/custom'\nimport { validatePassword, validateValueMatch } from '../lib/helpers/validation'\nimport { useHistory } from 'react-router-dom'\n\ntype TProps = {\n  applicationStore?: ApplicationStore\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n}\n\nexport const ResetPassword = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [params] = useQueryParams({\n      resetPasswordToken: withDefault(StringParam, undefined),\n    })\n\n    const history = useHistory()\n    const [password, setPassword] = useState<string | undefined>('')\n    const [confirmPassword, setConfirmPassword] = useState<string | undefined>('')\n    const mobilizeVisionLogo = MobilizeVISIONLogo\n\n    const isSubmittable = (): boolean => {\n      let errors = [validatePassword(password, 6), validateValueMatch(password, confirmPassword)]\n\n      if (errors.some((err) => !!err)) {\n        return false\n      }\n\n      return true\n    }\n\n    const resetPassword = (e: SyntheticEvent) => {\n      e.preventDefault()\n\n      props.userStore\n        ?.resetPassword(password!, confirmPassword!, params.resetPasswordToken!)\n        .then((res) => {\n          props.notificationStore?.setNotificationMessage(\n            'Your password has been reset. Please login using your new password.',\n            'info',\n            5000,\n          )\n          history.push('/signin')\n        })\n        .catch((err) => {\n          props.notificationStore?.setNotificationMessage(\n            'Unable to reset your password. Please try again',\n            'danger',\n            5000,\n          )\n        })\n    }\n\n    useEffect(() => {\n      if (!params.resetPasswordToken) {\n        history.push('/signin')\n      }\n    }, [params])\n\n    return (\n      <section className=\"RequestReset\">\n        <div className=\"sign-in-modal\">\n          <img\n            src={mobilizeVisionLogo}\n            className=\"MobilizeVisionLogo mb-4\"\n            alt=\"Mobilize Vision Logo\"\n          />\n          <h5>Reset your password.</h5>\n          <p>Fill in and confirm your new password.</p>\n          <form data-testid=\"request-reset-password-form\" onSubmit={(e) => resetPassword(e)}>\n            <ValidatedCFormInput\n              type=\"password\"\n              id=\"signupUserPassword\"\n              data-testid=\"resetUserPassword\"\n              placeholder=\"Password\"\n              value={password || ''}\n              onChange={(password: string | undefined) => setPassword(password)}\n              required\n              validate={(v) => validatePassword(v, 6)}\n              renderInvalidMessage={() =>\n                'Must be at least 6 characters, contain at least one capital and lowercase letter, number, and special character'\n              }\n            />\n            <ValidatedCFormInput\n              type=\"password\"\n              id=\"signupUserPassword\"\n              data-testid=\"resetUserPasswordConfirmation\"\n              placeholder=\"Confirm Password\"\n              value={confirmPassword || ''}\n              onChange={(confirmPassword: string | undefined) =>\n                setConfirmPassword(confirmPassword)\n              }\n              required\n              validate={(v) => validateValueMatch(password, v)}\n              renderInvalidMessage={() => 'Passwords must match'}\n            />\n            <CButton\n              type=\"submit\"\n              disabled={!isSubmittable()}\n              className=\"btn\"\n              data-testid=\"btn-request-password-reset\"\n            >\n              Reset Password\n            </CButton>\n          </form>\n          <CCol className=\"link-group\">\n            <CLink href=\"/claim\">Claim account</CLink>\n            <CLink href=\"/signin\">Sign in</CLink>\n            <CLink href=\"/request_password_reset\">Request reset password</CLink>\n          </CCol>\n        </div>\n      </section>\n    )\n  }),\n)\n","import React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { AccountStore, ApplicationStore, AuthStore, NotificationStore } from '../stores'\nimport { TermsOrPrivacyResponse } from '../stores/AccountStore'\nimport { CCard, CCardBody, CCol, CContainer, CRow } from '@coreui/react'\nimport ReactHtmlParser from 'react-html-parser'\nimport { parseDate } from '../lib/time'\nimport classnames from 'classnames'\nimport { Link } from 'react-router-dom'\nimport { leftArrow } from '../components/icons/leftArrow'\n\ntype TProps = {\n  authStore?: AuthStore\n  accountStore?: AccountStore\n  notificationStore?: NotificationStore\n}\nexport const Terms = inject(\n  ApplicationStore.names.authStore,\n  ApplicationStore.names.accountStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [term, setTerm] = useState<TermsOrPrivacyResponse | undefined>(undefined)\n\n    useEffect(() => {\n      props\n        .accountStore!.getLatestTerms()\n        .then((data) => setTerm(data))\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Failed to load terms. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }, [])\n\n    const renderData = (data: TermsOrPrivacyResponse) => {\n      return (\n        <>\n          <CRow>\n            <CCol>\n              <h1 className=\"text-center\">{data.title}</h1>\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-3\">\n            <CCol>\n              <div className=\"text-center subtle\">\n                <strong>Effective Date: {parseDate(data.publishDate)}</strong>\n              </div>\n            </CCol>\n          </CRow>\n\n          <CRow className=\"mb-3\">\n            <CCol>\n              <div className={'content-container-wrapper p-3'}>{ReactHtmlParser(data.content)}</div>\n            </CCol>\n          </CRow>\n        </>\n      )\n    }\n\n    return (\n      <section\n        className={classnames('PolicyPage', {\n          'bg-light min-vh-100 d-flex flex-row align-items-center justify-content-center':\n            !props.authStore?.isAuthenticated(),\n        })}\n      >\n        <CCard>\n          <CCardBody>\n            <CContainer>\n              {!props.authStore?.isAuthenticated() && (\n                <Link\n                  className=\"nav-back clickable\"\n                  data-testid=\"nav-back\"\n                  aria-label=\"navigate back to previous page\"\n                  tabIndex={0}\n                  to=\"/\"\n                >\n                  {leftArrow()}\n                </Link>\n              )}\n              {term && renderData(term)}\n            </CContainer>\n          </CCardBody>\n        </CCard>\n      </section>\n    )\n  }),\n)\n","import React, { useEffect, useState } from 'react'\nimport { AccountStore, ApplicationStore, AuthStore, NotificationStore } from '../stores'\nimport { inject, observer } from 'mobx-react'\nimport { TermsOrPrivacyResponse } from '../stores/AccountStore'\nimport { CCard, CCardBody, CCol, CContainer, CRow } from '@coreui/react'\nimport { parseDate } from '../lib/time'\nimport ReactHtmlParser from 'react-html-parser'\nimport classnames from 'classnames'\nimport { Link } from 'react-router-dom'\nimport { leftArrow } from '../components/icons/leftArrow'\n\ntype TProps = {\n  authStore?: AuthStore\n  accountStore?: AccountStore\n  notificationStore?: NotificationStore\n}\nexport const Privacy = inject(\n  ApplicationStore.names.authStore,\n  ApplicationStore.names.accountStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [privacy, setPrivacy] = useState<TermsOrPrivacyResponse | undefined>(undefined)\n\n    useEffect(() => {\n      props\n        .accountStore!.getLatestPrivacy()\n        .then((data) => setPrivacy(data))\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Failed to load privacy statement. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }, [])\n\n    const renderData = (data: TermsOrPrivacyResponse) => {\n      return (\n        <>\n          <CRow>\n            <CCol>\n              <h1 className=\"text-center\">{data.title}</h1>\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-3\">\n            <CCol>\n              <div className=\"text-center subtle\">\n                <strong>Effective Date: {parseDate(data.publishDate)}</strong>\n              </div>\n            </CCol>\n          </CRow>\n\n          <CRow className=\"mb-3\">\n            <CCol>\n              <div className={'content-container-wrapper p-3'}>{ReactHtmlParser(data.content)}</div>\n            </CCol>\n          </CRow>\n        </>\n      )\n    }\n\n    return (\n      <section\n        className={classnames('PolicyPage', {\n          'bg-light min-vh-100 d-flex flex-row align-items-center justify-content-center':\n            !props.authStore?.isAuthenticated(),\n        })}\n      >\n        <CCard>\n          <CCardBody>\n            <CContainer>\n              {!props.authStore?.isAuthenticated() && (\n                <Link\n                  className=\"nav-back clickable\"\n                  data-testid=\"nav-back\"\n                  aria-label=\"navigate back to previous page\"\n                  tabIndex={0}\n                  to=\"/\"\n                >\n                  {leftArrow()}\n                </Link>\n              )}\n              {privacy && renderData(privacy)}\n            </CContainer>\n          </CCardBody>\n        </CCard>\n      </section>\n    )\n  }),\n)\n","import React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { AccountStore, ApplicationStore, AuthStore, NotificationStore } from '../stores'\nimport { TermsOrPrivacyResponse } from '../stores/AccountStore'\nimport { CCard, CCardBody, CCol, CContainer, CRow } from '@coreui/react'\nimport ReactHtmlParser from 'react-html-parser'\nimport { parseDate } from '../lib/time'\nimport classnames from 'classnames'\nimport { Link } from 'react-router-dom'\nimport { leftArrow } from '../components/icons/leftArrow'\n\ntype TProps = {\n  authStore?: AuthStore\n  accountStore?: AccountStore\n  notificationStore?: NotificationStore\n}\nexport const AntiSpamPolicy = inject(\n  ApplicationStore.names.authStore,\n  ApplicationStore.names.accountStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [data, setData] = useState<TermsOrPrivacyResponse | undefined>(undefined)\n\n    useEffect(() => {\n      props\n        .accountStore!.getLatestAntiSpamPolicy()\n        .then((data) => setData(data))\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Failed to load policy. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n    }, [])\n\n    const renderData = (data: TermsOrPrivacyResponse) => {\n      return (\n        <>\n          <CRow>\n            <CCol>\n              <h1 className=\"text-center\">{data.title}</h1>\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-3\">\n            <CCol>\n              <div className=\"text-center subtle\">\n                <strong>Effective Date: {parseDate(data.publishDate)}</strong>\n              </div>\n            </CCol>\n          </CRow>\n\n          <CRow className=\"mb-3\">\n            <CCol>\n              <div className={'content-container-wrapper p-3'}>{ReactHtmlParser(data.content)}</div>\n            </CCol>\n          </CRow>\n        </>\n      )\n    }\n\n    return (\n      <section\n        className={classnames('PolicyPage', {\n          'bg-light min-vh-100 d-flex flex-row align-items-center justify-content-center':\n            !props.authStore?.isAuthenticated(),\n        })}\n      >\n        <CCard>\n          <CCardBody>\n            <CContainer>\n              {!props.authStore?.isAuthenticated() && (\n                <Link\n                  className=\"nav-back clickable\"\n                  data-testid=\"nav-back\"\n                  aria-label=\"navigate back to previous page\"\n                  tabIndex={0}\n                  to=\"/\"\n                >\n                  {leftArrow()}\n                </Link>\n              )}\n              {data && renderData(data)}\n            </CContainer>\n          </CCardBody>\n        </CCard>\n      </section>\n    )\n  }),\n)\n","import React, { SyntheticEvent, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../stores'\nimport { useHistory } from 'react-router-dom'\nimport MobilizeVISIONLogo from '../assets/brand/Ignite_Logo_Mobilize_Full_Color.png'\nimport { CButton, CFormInput } from '@coreui/react'\nimport { LegalLinks } from '../components/custom'\n\ntype TProps = {\n  applicationStore?: ApplicationStore\n  userStore?: UserStore\n  authStore?: AuthStore\n  notificationStore?: NotificationStore\n}\n\nexport const SignIn = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.authStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const history = useHistory()\n    const [email, setEmail] = useState<string>('')\n    const [password, setPassword] = useState<string>('')\n    const mobilizeVisionLogo = MobilizeVISIONLogo\n\n    const signInUser = (e: SyntheticEvent) => {\n      e.preventDefault()\n\n      return props.userStore\n        ?.signInUser(email, password)\n        .then(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Successfully signed in!',\n            'success',\n            3000,\n          )\n          props.authStore?.generateAndSetSalt()\n        })\n        .catch((err) => {\n          props.notificationStore?.setNotificationMessage(\n            err.response?.data?.message || 'Failed to sign in, please try again later.',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    const goToClaim = () => {\n      history.push('/claim')\n    }\n\n    const goToGovUserSignup = () => {\n      history.push('/gov_user')\n    }\n\n    return (\n      <section className=\"SignIn\">\n        <div className=\"sign-in-modal\">\n          <img\n            src={mobilizeVisionLogo}\n            className=\"MobilizeVisionLogo mb-3\"\n            alt=\"Mobilize Vision Logo\"\n          />\n          <div className=\"sub-title text-center mt-3\">\n            <b>Login</b>\n            <br />\n            <p className={'text-center subtle mt-1 px-5'}>\n              VISION users, if you haven’t created an Ignite account, click “Sign Up” below.\n            </p>\n          </div>\n          <form className=\"sign-in-form\" data-testid=\"sign-in-form\" onSubmit={(e) => signInUser(e)}>\n            <CFormInput\n              type=\"email\"\n              id=\"email-input\"\n              data-testid=\"email-input\"\n              placeholder=\"Email\"\n              onChange={(e: React.ChangeEvent<HTMLInputElement>) => setEmail(e.target.value)}\n              value={email}\n            />\n            <CFormInput\n              type=\"password\"\n              id=\"password-input\"\n              data-testid=\"password-input\"\n              placeholder=\"Password\"\n              onChange={(e: React.ChangeEvent<HTMLInputElement>) => setPassword(e.target.value)}\n              value={password}\n            />\n            <CButton\n              type=\"submit\"\n              disabled={email === '' || password === ''}\n              className=\"btn login m-2\"\n              data-testid=\"btn-login\"\n            >\n              Login\n            </CButton>\n          </form>\n          <a className=\"clickable\" href=\"/request_password_reset\" data-testid={'request-reset-btn'}>\n            Forgot password?\n          </a>\n          <div className=\"sub-title text-center mt-3 mb-2\">\n            <b>Don&apos;t have an Ignite account?</b>\n            <br />\n          </div>\n          <CButton className=\"btn create\" onClick={goToClaim} data-testid={'create-account-btn'}>\n            Claim an account (SBIR/STTR Companies)\n          </CButton>\n          <CButton\n            className=\"btn signup mt-2 mb-5\"\n            color=\"dark\"\n            onClick={goToGovUserSignup}\n            data-testid={'sign-up-btn'}\n          >\n            Sign Up (Government Users)\n          </CButton>\n          <div>\n            <div>\n              <span className={'me-2'}>\n                <a\n                  href=\"https://www.mobilizeyourtech.com/products/ignite/docs/ignite-faq\"\n                  target=\"_blank\"\n                  rel=\"noopener noreferrer\"\n                >\n                  IGNITE FAQ\n                </a>\n              </span>\n              <span>\n                <a href={'mailto:support@mobilizeignite.com'} target=\"_blank\" rel=\"noreferrer\">\n                  support@mobilizeignite.com\n                </a>\n              </span>\n            </div>\n            <LegalLinks />\n          </div>\n        </div>\n      </section>\n    )\n  }),\n)\n","import React, { useState } from 'react'\nimport { CCard, CCardBody, CCol, CContainer, CForm, CRow } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../stores'\nimport {\n  SignupLoginData,\n  SignupLoginForm,\n  SignupUserData,\n  SignupUserForm,\n} from '../components/form/fragments'\nimport { validateLength, validatePassword, validateValueMatch } from '../lib/helpers/validation'\nimport ReCAPTCHA from 'react-google-recaptcha'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { SuspensefulButton } from '@mobilizeyourtech/vision-core-react'\nimport { Link } from 'react-router-dom'\nimport { leftArrow } from '../components/icons/leftArrow'\n\ntype InviteUserFormData = SignupLoginData & SignupUserData\n\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n  authStore?: AuthStore\n  applicationStore?: ApplicationStore\n}\nexport const InviteSignUp = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.authStore,\n  'applicationStore',\n)(\n  observer((props: TProps) => {\n    const [params] = useQueryParams({\n      inviteToken: withDefault(StringParam, undefined),\n      firstName: withDefault(StringParam, undefined),\n      lastName: withDefault(StringParam, undefined),\n    })\n    const [invitedUserData, setInvitedUserData] = useState<Partial<InviteUserFormData>>({\n      firstName: params.firstName,\n      lastName: params.lastName,\n    })\n    const [hasValidated, setHasValidated] = useState<boolean>(false)\n    const [recaptchaToken, setRecaptchaToken] = useState<string | null>(null)\n    const [isSubmitting, setIsSubmitting] = useState<boolean>(false)\n\n    const isSubmittable = (): boolean => {\n      let errors = [\n        validatePassword(invitedUserData.password),\n        validateValueMatch(invitedUserData.password, invitedUserData.confirmPassword),\n        validateLength(invitedUserData.firstName, 2),\n        validateLength(invitedUserData.lastName, 2),\n        validateLength(invitedUserData.title, 2),\n        validateLength(invitedUserData.cellPhone, 2),\n      ]\n\n      if (errors.some((err) => !!err)) {\n        return false\n      }\n\n      let presence = [invitedUserData.timezone, recaptchaToken].every((e) => !!e)\n\n      return presence\n    }\n\n    const onSubmit = () => {\n      if (!isSubmittable()) {\n        return\n      }\n\n      setHasValidated(true)\n      setIsSubmitting(true)\n\n      props\n        .userStore!.inviteSignUp({\n          user: {\n            password: invitedUserData.password!,\n            confirmPassword: invitedUserData.confirmPassword!,\n            firstName: invitedUserData.firstName!,\n            lastName: invitedUserData.lastName!,\n            title: invitedUserData.title!,\n            cellPhone: invitedUserData.cellPhone!,\n            workPhone: invitedUserData.workPhone,\n            workPhoneExt: invitedUserData.workPhoneExt,\n            timezone:\n              typeof invitedUserData.timezone === 'string'\n                ? invitedUserData.timezone\n                : invitedUserData.timezone!.value,\n            headshot: invitedUserData.headshot,\n            socialMedia: invitedUserData.socialMedia,\n          },\n          recaptchaToken: recaptchaToken!,\n          inviteToken: params.inviteToken!,\n        })\n        .then(({ authorization, ...userdata }) => {\n          setIsSubmitting(false)\n\n          props.notificationStore?.setNotificationMessage(\n            'Account successfully created!',\n            'success',\n            3000,\n            true,\n          )\n          props.authStore!.setJWT(authorization)\n          props.authStore!.generateAndSetSalt()\n        })\n        .catch(() => {\n          setIsSubmitting(false)\n          props.notificationStore?.setNotificationMessage(\n            'Something went wrong, please try again',\n            'danger',\n            3000,\n          )\n        })\n    }\n    return (\n      <section className=\"InviteSignUp\">\n        <CForm validated={hasValidated} className=\"needs-validation\" {...{ noValidate: true }}>\n          <CContainer>\n            <CCard>\n              <CCardBody>\n                <div className=\"bounded-container d-flex align-items-center\">\n                  <Link\n                    className=\"nav-back clickable\"\n                    data-testid=\"nav-back\"\n                    aria-label=\"navigate back to signin\"\n                    tabIndex={0}\n                    to=\"/\"\n                  >\n                    {leftArrow()}\n                  </Link>\n                  <h5>Invite Sign Up</h5>\n                </div>\n                <CRow>\n                  <CCol>\n                    <div className=\"bounded-container\">\n                      <h6>\n                        <b>Your Login</b>\n                      </h6>\n                      <SignupLoginForm\n                        value={invitedUserData}\n                        onChange={(value) => setInvitedUserData((prev) => ({ ...prev, ...value }))}\n                        isEmailHidden={true}\n                      />\n                    </div>\n                  </CCol>\n                </CRow>\n                <CRow>\n                  <CCol>\n                    <div className=\"bounded-container\">\n                      <h6>\n                        <b>Your User</b>\n                      </h6>\n                      <SignupUserForm\n                        value={invitedUserData}\n                        onChange={(value) => setInvitedUserData((prev) => ({ ...prev, ...value }))}\n                      />\n                    </div>\n                  </CCol>\n                </CRow>\n                <CContainer className=\"recaptcha-container\">\n                  <ReCAPTCHA\n                    sitekey={props.applicationStore!.siteSettings!['recaptchaSiteKey']}\n                    onChange={(token) => setRecaptchaToken(token)}\n                    data-testid=\"recaptcha-checkbox\"\n                  />\n                </CContainer>\n                <CRow className=\"justify-content-md-center\">\n                  <CCol sm={2} className=\"d-flex justify-content-md-center\">\n                    <SuspensefulButton\n                      isSuspended={isSubmitting}\n                      onClick={onSubmit}\n                      disabled={!isSubmittable() || isSubmitting}\n                      data-testid=\"signup-button\"\n                      icon=\"fas fa-check\"\n                    >\n                      Sign Up\n                    </SuspensefulButton>\n                  </CCol>\n                </CRow>\n              </CCardBody>\n            </CCard>\n          </CContainer>\n        </CForm>\n      </section>\n    )\n  }),\n)\n","import React, { useEffect, useState } from 'react'\nimport {\n  ApplicationStore,\n  AuthStore,\n  NotificationStore,\n  UserStore,\n  InvitedUserData,\n} from '../stores'\nimport { inject, observer } from 'mobx-react'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Redirect } from 'react-router-dom'\nimport { CCard, CCardBody, CCardFooter, CCol, CContainer, CRow } from '@coreui/react'\nimport { SupportLinks } from '../components/custom'\nimport { extractRestfulError } from '../lib/errors/utils'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\n\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n  authStore?: AuthStore\n}\n\nexport const AcceptInviteLanding = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.authStore,\n)(\n  observer((props: TProps) => {\n    const [params] = useQueryParams({\n      inviteToken: withDefault(StringParam, undefined),\n    })\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [knownErrorReason, setKnownErrorReason] = useState<string | undefined>(undefined)\n    const [invite, setInvite] = useState<InvitedUserData | undefined>(undefined)\n\n    useEffect(() => {\n      checkToken()\n    }, [])\n\n    const checkToken = () => {\n      setIsLoading(true)\n      if (params.inviteToken) {\n        // For suspense with other loaders (i.e. the AuthBoundary)\n        props.userStore\n          ?.checkUserInvite(params.inviteToken!)\n          .then((inviteResponse) => {\n            setInvite(inviteResponse)\n          })\n          .catch((error) => {\n            setKnownErrorReason(extractRestfulError(error)?.error || 'Unknown')\n          })\n          .finally(() => setIsLoading(false))\n      } else {\n        setIsLoading(false)\n      }\n    }\n    const renderCheckResults = () => {\n      if (!!invite && !knownErrorReason) {\n        return (\n          <Redirect\n            to={`/invite_signup?inviteToken=${params.inviteToken}&firstName=${invite?.firstName}&lastName=${invite?.lastName}`}\n          />\n        )\n      } else {\n        return renderFailure()\n      }\n    }\n\n    const determineFailureMessage = () => {\n      switch (knownErrorReason) {\n        case 'InvalidInviteToken':\n          return 'The invite token is invalid.'\n        case 'InvitePeriodExpired':\n          return 'This invite token expired.'\n        default:\n          return 'There was a problem validating your invite.'\n      }\n    }\n\n    const renderFailure = () => {\n      return (\n        <>\n          <CRow className=\"mb-2 justify-content-md-center\">\n            <CCol>\n              <h2 className=\"text-center\">Failed to Confirm Invite</h2>\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-3\">\n            <CCol>\n              <p className=\"text-center subtle\">{determineFailureMessage()}</p>\n            </CCol>\n          </CRow>\n\n          <CRow className=\"mb-2 justify-content-md-center\">\n            <CCol>\n              <p className=\"text-center\">\n                Please reach out to your Ignite administrator regarding your invite. If you already\n                have an account, you may go to our <a href=\"/\">sign in</a> page and log in there.\n              </p>\n            </CCol>\n          </CRow>\n        </>\n      )\n    }\n\n    return (\n      <section className=\"bg-light min-vh-100 d-flex flex-row align-items-center\">\n        <CContainer>\n          <CRow className=\"justify-content-center\">\n            <CCol md={9} lg={7} xl={6}>\n              <CCard>\n                <CCardBody className=\"p-4\">\n                  <SuspensionBoundary isLoading={isLoading}>\n                    {renderCheckResults()}\n                  </SuspensionBoundary>\n                </CCardBody>\n                <CCardFooter className=\"bg-white\">\n                  <CRow className=\"justify-content-center\">\n                    <CCol>\n                      <SupportLinks />\n                    </CCol>\n                  </CRow>\n                </CCardFooter>\n              </CCard>\n            </CCol>\n          </CRow>\n        </CContainer>\n      </section>\n    )\n  }),\n)\n\nexport default AcceptInviteLanding\n","import React, { useEffect, useState } from 'react'\nimport { useQueryParams, StringParam, withDefault } from 'use-query-params'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, UserStore, AuthStore, NotificationStore } from '../stores'\nimport { ClaimRequestData, claimErrorDictionary } from '../stores/UserStore'\nimport { extractRestfulError } from '../lib/errors/utils'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport { SupportLinks } from '../components/custom'\nimport { CCard, CCardBody, CCardFooter, CCol, CContainer, CRow } from '@coreui/react'\nimport { Redirect } from 'react-router-dom'\nimport { ResendClaimForm } from '../components/form'\n\ninterface ConfirmClaimLandingProps {\n  userStore?: UserStore\n  authStore?: AuthStore\n  notificationStore?: NotificationStore\n}\n\nexport const ConfirmClaimLanding = inject(\n  ApplicationStore.names.authStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.userStore,\n  'applicationStore',\n)(\n  observer((props: ConfirmClaimLandingProps) => {\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [claimRequest, setClaimRequest] = useState<ClaimRequestData | undefined>(undefined)\n    const [error, setError] = useState<string | undefined>(undefined)\n    const [params] = useQueryParams({\n      claimToken: withDefault(StringParam, undefined),\n    })\n\n    useEffect(() => {\n      setIsLoading(true)\n\n      if (params.claimToken) {\n        props.userStore\n          ?.checkClaim(params.claimToken)\n          .then((claimRequest) => {\n            setClaimRequest(claimRequest)\n          })\n          .catch((error) => {\n            let errorMessage = extractRestfulError(error)\n            if (errorMessage?.error && claimErrorDictionary.hasOwnProperty(errorMessage.error)) {\n              setError(errorMessage.error)\n            } else {\n              setError('UnknownError')\n            }\n          })\n          .finally(() => setIsLoading(false))\n      } else {\n        setIsLoading(false)\n        setError('InvalidClaimToken')\n      }\n    }, [])\n\n    const renderFailure = () => {\n      if (error === 'ClaimPeriodExpired') {\n        return (\n          <>\n            <CRow className=\"mb-2 justify-content-md-center\">\n              <CCol>\n                <h2 className=\"text-center\">Claim Request Failed</h2>\n              </CCol>\n            </CRow>\n            <CRow className=\"mb-2 justify-content-md-center\">\n              <CCol className=\"text-center\">\n                <p>\n                  The claim token provided is expired. Please click resend if you would like us to\n                  resend a claim email. If already have an account, you may go to{' '}\n                  <a href=\"/\">sign in</a>.\n                </p>\n              </CCol>\n            </CRow>\n            <ResendClaimForm formData={{ claimToken: params.claimToken! }} />\n          </>\n        )\n      }\n      return (\n        <>\n          <CRow className=\"mb-2 justify-content-md-center\">\n            <CCol>\n              <h2 className=\"text-center\">Failed to Confirm Claim Request</h2>\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-3\">\n            <CCol>\n              <p className=\"text-center\">{error && claimErrorDictionary[error]}</p>\n            </CCol>\n          </CRow>\n\n          <CRow className=\"mb-2 justify-content-md-center\">\n            <CCol>\n              <p className=\"text-center\">\n                If you already have an account, you may go to our <a href=\"/\">sign in</a> page and\n                log in there.\n              </p>\n            </CCol>\n          </CRow>\n        </>\n      )\n    }\n\n    if (!params.claimToken) {\n      return <Redirect to={'/'} />\n    }\n\n    return (\n      <section className=\"bg-light min-vh-100 d-flex flex-row align-items-center\">\n        <CContainer>\n          <CRow className=\"justify-content-center\">\n            <CCol md={9} lg={7} xl={6}>\n              <CCard>\n                <CCardBody className=\"p-4\">\n                  <SuspensionBoundary isLoading={isLoading}>\n                    {error && renderFailure()}\n                    {!error && !!claimRequest && (\n                      <Redirect\n                        to={`/claim_signup?claimToken=${params.claimToken}&firstName=${claimRequest.firstName}&lastName=${claimRequest.lastName}`}\n                      />\n                    )}\n                  </SuspensionBoundary>\n                </CCardBody>\n                <CCardFooter className=\"bg-white\">\n                  <CRow className=\"justify-content-center\">\n                    <CCol>\n                      <SupportLinks />\n                    </CCol>\n                  </CRow>\n                </CCardFooter>\n              </CCard>\n            </CCol>\n          </CRow>\n        </CContainer>\n      </section>\n    )\n  }),\n)\n","import { useState } from 'react'\nimport { CCard, CCardBody, CCol, CContainer, CForm, CRow } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../stores'\nimport { UserFormData, isUserSubmittable, claimErrorDictionary } from '../stores/UserStore'\nimport { SignupLoginForm, SignupUserForm } from '../components/form/fragments'\nimport ReCAPTCHA from 'react-google-recaptcha'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { SuspensefulButton } from '@mobilizeyourtech/vision-core-react'\nimport { Link } from 'react-router-dom'\nimport { leftArrow } from '../components/icons/leftArrow'\nimport { extractRestfulError } from '../lib/errors/utils'\n\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n  authStore?: AuthStore\n  applicationStore?: ApplicationStore\n}\nexport const ClaimRequestSignUp = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.authStore,\n  'applicationStore',\n)(\n  observer((props: TProps) => {\n    const [params] = useQueryParams({\n      claimToken: withDefault(StringParam, undefined),\n      firstName: withDefault(StringParam, undefined),\n      lastName: withDefault(StringParam, undefined),\n    })\n    const [newUserData, setNewUserData] = useState<Partial<UserFormData>>({\n      firstName: params.firstName,\n      lastName: params.lastName,\n      recaptchaToken: null,\n    })\n    const [hasValidated, setHasValidated] = useState<boolean>(false)\n    const [isSubmitting, setIsSubmitting] = useState<boolean>(false)\n\n    const onSubmit = () => {\n      if (!isUserSubmittable(newUserData)) {\n        return\n      }\n\n      setHasValidated(true)\n      setIsSubmitting(true)\n\n      props\n        .userStore!.claimSignUp({\n          user: {\n            password: newUserData.password!,\n            confirmPassword: newUserData.confirmPassword!,\n            firstName: newUserData.firstName!,\n            lastName: newUserData.lastName!,\n            title: newUserData.title!,\n            cellPhone: newUserData.cellPhone!,\n            workPhone: newUserData.workPhone,\n            workPhoneExt: newUserData.workPhoneExt,\n            timezone:\n              typeof newUserData.timezone === 'string'\n                ? newUserData.timezone\n                : newUserData.timezone!.value,\n            headshot: newUserData.headshot,\n            socialMedia: newUserData.socialMedia,\n          },\n          recaptchaToken: newUserData.recaptchaToken!,\n          claimToken: params.claimToken!,\n        })\n        .then(({ authorization }) => {\n          props.notificationStore?.setNotificationMessage(\n            'Account successfully claimed!',\n            'success',\n            3000,\n          )\n          props.authStore!.setJWT(authorization)\n          props.authStore!.generateAndSetSalt()\n        })\n        .catch((errorResponse) => {\n          let restfulError = extractRestfulError(errorResponse)\n          let errorMessage: string\n\n          if (restfulError?.error && claimErrorDictionary.hasOwnProperty(restfulError.error)) {\n            errorMessage = restfulError.error\n          } else {\n            errorMessage = 'UnknownError'\n          }\n\n          props.notificationStore?.setNotificationMessage(\n            claimErrorDictionary[errorMessage],\n            'danger',\n            3000,\n          )\n        })\n        .finally(() => setIsSubmitting(false))\n    }\n    return (\n      <section className=\"ClaimSignUp\">\n        <CForm validated={hasValidated} className=\"needs-validation\" {...{ noValidate: true }}>\n          <CContainer>\n            <CCard>\n              <CCardBody>\n                <div className=\"bounded-container d-flex align-items-center\">\n                  <Link\n                    className=\"nav-back clickable\"\n                    data-testid=\"nav-back\"\n                    aria-label=\"navigate back to signin\"\n                    tabIndex={0}\n                    to=\"/\"\n                  >\n                    {leftArrow()}\n                  </Link>\n                  <h5>Sign Up</h5>\n                </div>\n                <CRow>\n                  <CCol>\n                    <div className=\"bounded-container\">\n                      <h6>\n                        <b>Your Login</b>\n                      </h6>\n                      <SignupLoginForm\n                        value={newUserData}\n                        onChange={(value) => setNewUserData((prev) => ({ ...prev, ...value }))}\n                        isEmailHidden={true}\n                      />\n                    </div>\n                  </CCol>\n                </CRow>\n                <CRow>\n                  <CCol>\n                    <div className=\"bounded-container\">\n                      <h6>\n                        <b>Your User</b>\n                      </h6>\n                      <SignupUserForm\n                        value={newUserData}\n                        onChange={(value) => setNewUserData((prev) => ({ ...prev, ...value }))}\n                      />\n                    </div>\n                  </CCol>\n                </CRow>\n                <CContainer className=\"recaptcha-container\">\n                  <ReCAPTCHA\n                    sitekey={props.applicationStore!.siteSettings!['recaptchaSiteKey']}\n                    onChange={(token) => setNewUserData({ ...newUserData, recaptchaToken: token })}\n                    data-testid=\"recaptcha-checkbox\"\n                  />\n                </CContainer>\n                <CRow className=\"justify-content-md-center\">\n                  <CCol sm={2} className=\"d-flex justify-content-md-center\">\n                    <SuspensefulButton\n                      isSuspended={isSubmitting}\n                      onClick={onSubmit}\n                      disabled={!isUserSubmittable(newUserData) || isSubmitting}\n                      data-testid=\"signup-button\"\n                      icon=\"fas fa-check\"\n                    >\n                      Sign Up\n                    </SuspensefulButton>\n                  </CCol>\n                </CRow>\n              </CCardBody>\n            </CCard>\n          </CContainer>\n        </CForm>\n      </section>\n    )\n  }),\n)\n","import React, { useState } from 'react'\nimport { CCard, CCardBody, CCol, CContainer, CForm, CRow } from '@coreui/react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../stores'\nimport {\n  SignupAccountData,\n  SignupAccountForm,\n  ClaimRequestFormData,\n  ClaimRequestForm,\n} from '../components/form/fragments'\nimport { leftArrow } from '../components/icons/leftArrow'\nimport { Link } from 'react-router-dom'\nimport { validateEmail, validateLength } from '../lib/helpers/validation'\nimport ReCAPTCHA from 'react-google-recaptcha'\nimport { SuspensefulButton } from '@mobilizeyourtech/vision-core-react'\nimport { extractRestfulError } from '../lib/errors/utils'\nimport { Redirect } from 'react-router-dom'\n\ntype claimFormData = SignupAccountData & ClaimRequestFormData & { recaptchaToken: string | null }\n\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n  authStore?: AuthStore\n  applicationStore?: ApplicationStore\n}\nexport const SubmitClaimRequest = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.authStore,\n  'applicationStore',\n)(\n  observer((props: TProps) => {\n    const [hasValidated, setHasValidated] = useState<boolean>(false)\n    const [isSubmitting, setIsSubmitting] = useState<boolean>(false)\n    const [redirectPath, setRedirectPath] = useState<string | undefined>(undefined)\n\n    const [claimData, setClaimData] = useState<Partial<claimFormData>>({ recaptchaToken: null })\n\n    const isSubmittable = (): boolean => {\n      let errors = [\n        validateEmail(claimData.email),\n        validateLength(claimData.firstName, 2),\n        validateLength(claimData.lastName, 2),\n      ]\n\n      if (errors.some((err) => !!err)) {\n        return false\n      }\n\n      let presence = [claimData.recaptchaToken, claimData.uniqueEntityId].every((e) => !!e)\n\n      return presence\n    }\n\n    const onSubmit = () => {\n      if (!isSubmittable()) {\n        return\n      }\n\n      setHasValidated(true)\n      setIsSubmitting(true)\n\n      props\n        .userStore!.submitClaimRequest({\n          email: claimData.email!,\n          firstName: claimData.firstName!,\n          lastName: claimData.lastName!,\n          uniqueEntityId: claimData.uniqueEntityId!,\n          recaptchaToken: claimData.recaptchaToken!,\n        })\n        .then(({ ...claimdata }) => {\n          setIsSubmitting(false)\n          setRedirectPath(\n            `/claim_result?resultMessage=ClaimSuccess&uniqueEntityId=${claimData.uniqueEntityId}&email=${claimData.email}`,\n          )\n        })\n        .catch((error) => {\n          setIsSubmitting(false)\n          const knownError = extractRestfulError(error)?.error\n          if (knownError) {\n            knownError === 'ClaimRequestAlreadyExists'\n              ? setRedirectPath(\n                  `/claim_result?resultMessage=${knownError}&uniqueEntityId=${claimData.uniqueEntityId}&email=${claimData.email}`,\n                )\n              : setRedirectPath(`/claim_result?resultMessage=${knownError}`)\n          } else {\n            props.notificationStore?.setNotificationMessage(\n              'Something went wrong, please try again',\n              'danger',\n              3000,\n            )\n          }\n        })\n    }\n\n    if (redirectPath) {\n      return <Redirect to={redirectPath} />\n    }\n\n    return (\n      <section className=\"Claim\">\n        <CForm validated={hasValidated} className=\"needs-validation\" {...{ noValidate: true }}>\n          <CContainer>\n            <CCard>\n              <CCardBody>\n                <div className=\"bounded-container d-flex align-items-center\">\n                  <Link\n                    className=\"nav-back clickable\"\n                    data-testid=\"nav-back\"\n                    aria-label=\"navigate back to signin\"\n                    tabIndex={0}\n                    to=\"/\"\n                  >\n                    {leftArrow()}\n                  </Link>\n                  <h5>Request to Claim Account</h5>\n                </div>\n                <CRow>\n                  <CCol>\n                    <div className=\"bounded-container\">\n                      <h6>\n                        <b>Account</b>\n                      </h6>\n                      <SignupAccountForm\n                        value={claimData}\n                        onChange={(value) => setClaimData(value)}\n                        isAccountNameHidden={true}\n                      />\n                    </div>\n                  </CCol>\n                </CRow>\n                <CRow>\n                  <CCol>\n                    <div className=\"bounded-container\">\n                      <h6>\n                        <b>Your Information</b>\n                      </h6>\n                      <ClaimRequestForm\n                        value={claimData}\n                        onChange={(value) => setClaimData(value)}\n                      />\n                    </div>\n                  </CCol>\n                </CRow>\n                <CContainer className=\"recaptcha-container\">\n                  <ReCAPTCHA\n                    sitekey={props.applicationStore!.siteSettings!['recaptchaSiteKey']}\n                    onChange={(token) => {\n                      setClaimData({ ...claimData, recaptchaToken: token })\n                    }}\n                    data-testid=\"recaptcha-checkbox\"\n                  />\n                </CContainer>\n                <CRow className=\"justify-content-md-center\">\n                  <CCol sm={2} className=\"d-flex justify-content-md-center\">\n                    <SuspensefulButton\n                      isSuspended={isSubmitting}\n                      onClick={onSubmit}\n                      disabled={!isSubmittable() || isSubmitting}\n                      data-testid=\"claim-request-button\"\n                      icon=\"fas fa-check\"\n                    >\n                      Submit\n                    </SuspensefulButton>\n                  </CCol>\n                </CRow>\n              </CCardBody>\n            </CCard>\n          </CContainer>\n        </CForm>\n      </section>\n    )\n  }),\n)\n","import { inject, observer } from 'mobx-react'\nimport { StringParam, useQueryParams, withDefault } from 'use-query-params'\nimport { CCard, CCardBody, CCardFooter, CCol, CContainer, CRow } from '@coreui/react'\nimport { SupportLinks } from '../components/custom'\nimport { Redirect } from 'react-router-dom'\nimport React from 'react'\nimport { ApplicationStore, AuthStore, NotificationStore, UserStore } from '../stores'\nimport { ResendClaimForm } from '../components/form'\n\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n  authStore?: AuthStore\n  applicationStore?: ApplicationStore\n}\nexport const SubmitClaimResult = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.authStore,\n  'applicationStore',\n)(\n  observer((props: TProps) => {\n    const [params] = useQueryParams({\n      resultMessage: withDefault(StringParam, undefined),\n      email: withDefault(StringParam, undefined),\n      uniqueEntityId: withDefault(StringParam, undefined),\n    })\n\n    const determineTitle = () => {\n      if (params.resultMessage === 'ClaimSuccess') {\n        return 'Claim Request Processed'\n      }\n      return 'Claim Request Unsuccessful'\n    }\n\n    const failureMessage = () => {\n      switch (params.resultMessage) {\n        case 'UserAlreadyExists':\n          return 'A user already exists with the email provided.'\n        default:\n          return 'There was a problem creating your claim request.'\n      }\n    }\n\n    const resultSuccessResend = (): boolean => {\n      return params.resultMessage === 'ClaimSuccess' && !!params.email && !!params.uniqueEntityId\n    }\n\n    const resultFailureResend = (): boolean => {\n      return (\n        params.resultMessage === 'ClaimRequestAlreadyExists' &&\n        !!params.email &&\n        !!params.uniqueEntityId\n      )\n    }\n\n    const resultSamInstructions = (): boolean => {\n      return (\n        params.resultMessage === 'EmailUnmatched' ||\n        params.resultMessage === 'AccountAlreadyClaimed'\n      )\n    }\n\n    const shouldDisplayResendForm = (): boolean => {\n      return (\n        params.resultMessage === 'ClaimSuccess' ||\n        params.resultMessage === 'ClaimRequestAlreadyExists'\n      )\n    }\n\n    const determineResult = () => {\n      if (resultSuccessResend()) {\n        return (\n          <p className=\"text-center\" data-testid=\"result-success-and-form\">\n            To claim your Ignite account, please check your email and follow the instructions. If\n            you do not receive an email, please verify the info below and click resend for a new\n            claim email to be sent to you. If the info is incorrect, you may try again{' '}\n            <a href=\"/claim\">here</a> or go to <a href=\"/\">sign in</a>.\n          </p>\n        )\n      } else if (resultFailureResend()) {\n        return (\n          <p className=\"text-center\" data-testid=\"result-failure-and-form\">\n            The email provided already has a claim request in progress. Please verify the\n            information below and click resend if you would like us to resend a claim email. If the{' '}\n            information is incorrect, you may try again <a href=\"/claim\">here</a> or go to{' '}\n            <a href=\"/\">sign in</a>.\n          </p>\n        )\n      } else if (resultSamInstructions()) {\n        return (\n          <p className=\"text-center\" data-testid={params.resultMessage + 'Explanation'}>\n            It looks like that email does not match our records or the account has already been\n            claimed. Ignite listings are tied to your{' '}\n            <a href={'https://sam.gov/content/home'}>Sam.gov</a> listing, so if you&apos;re sure you\n            typed the email correctly, here&apos;s what to do next:\n          </p>\n        )\n      } else if (params.resultMessage === 'ClaimSuccess') {\n        return (\n          <p className=\"text-center\" data-testid=\"result-success\">\n            Your claim request has been successfully submitted. To claim your Ignite account, please\n            check your email and follow the instructions.\n          </p>\n        )\n      } else {\n        return (\n          <p className=\"text-center\" data-testid={params.resultMessage}>\n            {failureMessage()} You may try again <a href=\"/claim\">here</a> or go to{' '}\n            <a href=\"/\">sign in</a>.\n          </p>\n        )\n      }\n    }\n\n    const renderResendForm = () => {\n      if (params.email && params.uniqueEntityId) {\n        return (\n          <ResendClaimForm\n            formData={{ email: params.email, uniqueEntityId: params.uniqueEntityId }}\n          />\n        )\n      }\n    }\n\n    const renderListedInstructions = () => {\n      if (resultSamInstructions()) {\n        return (\n          <ol data-testid={params.resultMessage + 'List'}>\n            <li>\n              Contact{' '}\n              <a href={'https://sam.gov/content/home'} target=\"_blank\" rel=\"noreferrer\">\n                Sam.gov\n              </a>{' '}\n              to find the Point of Contact email on your account. Try again with that email address.\n            </li>\n            <li>\n              Contact{' '}\n              <a href={'mailto:support@mobilizeignite.com'} target=\"_blank\" rel=\"noreferrer\">\n                support@mobilizeignite.com\n              </a>{' '}\n              if you have any questions about the application.\n            </li>\n            <li>\n              You may also try to claim your account again <a href=\"/claim\">here</a> or{' '}\n              <a href=\"/\">sign in</a>.\n            </li>\n          </ol>\n        )\n      }\n    }\n    const renderResult = () => {\n      return (\n        <>\n          <CRow className=\"mb-2 justify-content-md-center\">\n            <CCol>\n              <h2 className=\"text-center\">{determineTitle()}</h2>\n            </CCol>\n          </CRow>\n          <CRow className=\"mb-2 justify-content-md-center\">\n            <CCol>{determineResult()}</CCol>\n          </CRow>\n          <CRow className=\"mb-2 justify-content-md-center\">\n            <CCol>{renderListedInstructions()}</CCol>\n          </CRow>\n          {shouldDisplayResendForm() && renderResendForm()}\n        </>\n      )\n    }\n\n    if (!params.resultMessage) {\n      return <Redirect to={'/'} />\n    }\n\n    return (\n      <section className=\"bg-light min-vh-100 d-flex flex-row align-items-center\">\n        <CContainer>\n          <CRow className=\"justify-content-center\">\n            <CCol md={9} lg={7} xl={6}>\n              <CCard>\n                <CCardBody className=\"p-4\">{renderResult()}</CCardBody>\n                <CCardFooter className=\"bg-white\">\n                  <CRow className=\"justify-content-center\">\n                    <CCol>\n                      <SupportLinks />\n                    </CCol>\n                  </CRow>\n                </CCardFooter>\n              </CCard>\n            </CCol>\n          </CRow>\n        </CContainer>\n      </section>\n    )\n  }),\n)\n","export const visionLogoCobalt = () => {\n  return (\n    <svg\n      width=\"100%\"\n      height=\"100%\"\n      viewBox=\"0 0 100 100\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <path\n        d=\"M69.3499 4.22001L53.0699 41.87H75.3399L34.9999 94.76C39.5481 95.9647 44.2349 96.5665 48.9399 96.55C77.1299 96.55 97.6199 76.24 97.6199 48.4C97.5899 27.76 86.4699 11.41 69.3499 4.22001ZM22.6599 54.12L62.4999 1.92001C58.0574 0.798099 53.4919 0.237065 48.9099 0.250005C20.7199 0.250005 0.409912 20.38 0.409912 48.4C0.409912 68.84 11.4099 85.22 28.3399 92.49L44.9299 54.12H22.6599Z\"\n        fill=\"#005CB9\"\n      />\n    </svg>\n  )\n}\n","import React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore, UserStore, AuthStore, NotificationStore } from '../stores'\nimport {\n  CustomModal,\n  SuspensefulButton,\n  SuspensionBoundary,\n} from '@mobilizeyourtech/vision-core-react'\nimport {\n  CCard,\n  CCardBody,\n  CCol,\n  CContainer,\n  CForm,\n  CRow,\n  CLink,\n  CFormCheck,\n  CModalBody,\n} from '@coreui/react'\nimport { Link, Redirect } from 'react-router-dom'\nimport {\n  SignupLoginData,\n  SignupLoginForm,\n  SignupUserData,\n  SignupUserForm,\n  GovUserExtendedDataOrganizationForm,\n} from '../components/form/fragments'\nimport {\n  validateLength,\n  validateLineOfEffort,\n  validatePassword,\n  validateValueMatch,\n} from '../lib/helpers/validation'\nimport { leftArrow } from '../components/icons/leftArrow'\nimport ReCAPTCHA from 'react-google-recaptcha'\nimport { GovUserExtendedDataProfileForm } from '../components/form/fragments/GovUserExtendedDataProfileForm'\nimport { GovUserExtendedDataFormData } from '../components/form/fragments/types'\nimport { extractRestfulError } from '../lib/errors/utils'\nimport { visionLogoCobalt } from '../assets/brand/visionLogoCobalt'\nimport { clearQParamSessionVariables, getSessionQParam } from '../lib/helpers/sessionHelpers'\n\ntype GovUserFormData = SignupLoginData & SignupUserData\n\ninterface GovUserSignupProps {\n  userStore?: UserStore\n  authStore?: AuthStore\n  notificationStore?: NotificationStore\n  applicationStore?: ApplicationStore\n}\n\nexport const GovUserSignup = inject(\n  ApplicationStore.names.authStore,\n  ApplicationStore.names.notificationStore,\n  ApplicationStore.names.userStore,\n  'applicationStore',\n)(\n  observer((props: GovUserSignupProps) => {\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [govUserSignupData, setGovUserSignupData] = useState<Partial<GovUserFormData>>({})\n    const [govUserExtendedData, setGovUserExtendedData] = useState<\n      Partial<GovUserExtendedDataFormData>\n    >({\n      linesOfEffort: [{ details: '' }],\n    })\n    const [hasValidated, setHasValidated] = useState<boolean>(false)\n    const [recaptchaToken, setRecaptchaToken] = useState<string | null>(null)\n    const [isSubmitting, setIsSubmitting] = useState<boolean>(false)\n    const [redirect, setRedirect] = useState<string | undefined>(undefined)\n    const [connectVisionAccountHelpModalVisible, setConnectVisionAccountHelpModalVisible] =\n      useState<boolean>(false)\n    const [unclassifiedConfirmation, setUnclassifiedCofirmation] = useState(false)\n    const [spamProtectionModalVisible, setSpamProtectionModalVisible] = useState(false)\n\n    const decryptGovUserData = (params: string) => {\n      // The user is coming from VISION\n      props.userStore\n        ?.decryptAndValidateGovUserData(params)\n        .then((decryptedGovUserData) => {\n          setGovUserSignupData({ ...decryptedGovUserData, title: decryptedGovUserData.position! })\n        })\n        .catch((error) => {\n          let message = extractRestfulError(error)?.error\n          if (message === 'UserAlreadyExists') {\n            props.notificationStore?.setNotificationMessage(\n              'A User with your Vision email already exists. Please log in.',\n              'info',\n              5000,\n              true,\n            )\n          }\n          clearQParamSessionVariables()\n          setRedirect('/')\n        })\n        .finally(() => {\n          setIsLoading(false)\n        })\n    }\n\n    useEffect(() => {\n      setIsLoading(true)\n      const q = getSessionQParam()\n      // Intentionally having this consider a blank string as presence\n      if (q?.trim() === '') {\n        setIsLoading(false)\n        setRedirect('/')\n      } else if (q) {\n        decryptGovUserData(q)\n      } else {\n        // The user is a non-VISION gov user\n        setIsLoading(false)\n      }\n    }, [])\n\n    const isSubmittable = (): boolean => {\n      if (!govUserSignupData.emailValid) {\n        return false\n      }\n\n      if (!govUserExtendedData?.technologyTypes || govUserExtendedData.technologyTypes.length < 1) {\n        return false\n      }\n\n      if (\n        !govUserExtendedData?.govUserClassifications ||\n        govUserExtendedData.govUserClassifications.length < 1\n      ) {\n        return false\n      }\n\n      if (!govUserExtendedData.linesOfEffort || govUserExtendedData.linesOfEffort.length < 1) {\n        return false\n      }\n\n      let errors = [\n        validatePassword(govUserSignupData.password),\n        validateValueMatch(govUserSignupData.password, govUserSignupData.confirmPassword),\n        validateLength(govUserSignupData.firstName, 2),\n        validateLength(govUserSignupData.lastName, 2),\n        validateLength(govUserSignupData.title, 2),\n        validateLength(govUserExtendedData.profileDetail?.replace(/<[^>]*>/g, ''), 2),\n        validateLineOfEffort(govUserExtendedData.linesOfEffort),\n      ]\n\n      if (errors.some((err) => !!err)) {\n        return false\n      }\n\n      let presence = [\n        govUserExtendedData.govUserOrganization?.id,\n        govUserSignupData.timezone,\n        unclassifiedConfirmation,\n        recaptchaToken,\n      ].every((e) => !!e)\n\n      return presence\n    }\n\n    const onSubmit = () => {\n      if (!isSubmittable()) {\n        return\n      }\n\n      setHasValidated(true)\n      setIsSubmitting(true)\n\n      props\n        .userStore!.govUserSignUp({\n          user: {\n            password: govUserSignupData.password!,\n            confirmPassword: govUserSignupData.confirmPassword!,\n            firstName: govUserSignupData.firstName!,\n            lastName: govUserSignupData.lastName!,\n            email: govUserSignupData.email!,\n            title: govUserSignupData.title!,\n            timezone:\n              typeof govUserSignupData.timezone === 'string'\n                ? govUserSignupData.timezone\n                : govUserSignupData.timezone!.value,\n            headshot: govUserSignupData.headshot,\n            encryptedVisionUserData: getSessionQParam() || undefined,\n            govUserOrganizationId: govUserExtendedData.govUserOrganization!.id,\n            technologyTypes: govUserExtendedData.technologyTypes,\n            profileDetail: govUserExtendedData.profileDetail,\n            interactionDetail: govUserExtendedData.interactionDetail,\n            linesOfEffort: govUserExtendedData?.linesOfEffort?.filter(\n              (el) => el.details && el.details.trim() !== '',\n            ),\n            govUserClassifications: govUserExtendedData.govUserClassifications,\n            city: govUserExtendedData.location?.city,\n            stateOrProvince: govUserExtendedData.location?.stateOrProvince,\n            country: govUserExtendedData.location?.country,\n            govEmployeeSinceYear: govUserExtendedData.govEmployeeSinceYear,\n          },\n          recaptchaToken: recaptchaToken!,\n        })\n        .then(({ authorization, ...userdata }) => {\n          setIsSubmitting(false)\n\n          props.notificationStore?.setNotificationMessage(\n            'Account successfully created!',\n            'success',\n            3000,\n            true,\n          )\n          props.authStore!.setJWT(authorization)\n          props.authStore!.generateAndSetSalt()\n        })\n        .catch(() => {\n          setIsSubmitting(false)\n          props.notificationStore?.setNotificationMessage(\n            'Something went wrong, please try again',\n            'danger',\n            3000,\n          )\n        })\n    }\n\n    if (redirect) {\n      return <Redirect to={redirect} />\n    }\n\n    return (\n      <section className=\"GovUserSignup\">\n        <SuspensionBoundary isLoading={isLoading}>\n          <CustomModal\n            className=\"GovUserSignupModal\"\n            isModalOpen={connectVisionAccountHelpModalVisible}\n            onClose={() => setConnectVisionAccountHelpModalVisible(false)}\n          >\n            <>\n              <div className=\"d-flex px-4 pb-4\">\n                <div className=\"vision-logo-md\" data-testid=\"vision-logo-md\">\n                  {visionLogoCobalt()}\n                </div>\n                <h4 className=\"mt-1 px-3 flex-grow-1\">Connecting your VISION account to IGNITE</h4>\n              </div>\n              <ol className=\"ol-inside-modal-body\">\n                <li>\n                  <CLink\n                    className=\"clickable\"\n                    href={`${props.applicationStore?.siteSettings?.visionUrl}/ignite/connect`}\n                  >\n                    Click here\n                  </CLink>{' '}\n                  to access IGNITE within VISION (you will be navigated to the IGNITE search page\n                  within VISION)\n                </li>\n                <li>On the IGNITE search page, click the &quot;View in IGNITE&quot; button</li>\n                <li>\n                  After clicking the &quot;View in IGNITE&quot; button you will be navigated back to\n                  this page with your VISION account information populated and ready to be linked to\n                  your new IGNITE account\n                </li>\n              </ol>\n            </>\n          </CustomModal>\n          <CForm validated={hasValidated} className=\"needs-validation\" {...{ noValidate: true }}>\n            <CContainer>\n              <CCard>\n                <CCardBody>\n                  <div className=\"bounded-container d-flex align-items-center\">\n                    <Link\n                      className=\"nav-back clickable\"\n                      data-testid=\"nav-back\"\n                      aria-label=\"navigate back to signin\"\n                      tabIndex={0}\n                      to=\"/\"\n                    >\n                      {leftArrow()}\n                    </Link>\n                    <h5>Sign Up</h5>\n                    {/* TODO put this chip/card into a component/atom when time allows */}\n                    {getSessionQParam() ? (\n                      <div className=\"d-flex flex-grow-1 justify-content-end\">\n                        <div className=\"d-flex align-items-center border border-success rounded p-2 bg-light\">\n                          <div className=\"vision-logo-sm d-flex align-items-center\">\n                            {visionLogoCobalt()}\n                          </div>\n                          <div className=\"px-2\">\n                            Your VISION account will be linked to your new IGNITE account\n                          </div>\n                        </div>\n                      </div>\n                    ) : (\n                      <div className=\"d-flex flex-grow-1 justify-content-end\">\n                        <div\n                          onClick={() => setConnectVisionAccountHelpModalVisible(true)}\n                          className=\"clickable d-flex align-items-center border border-secondary rounded p-2 bg-light\"\n                          data-testid=\"connect-vision-account-card\"\n                        >\n                          <div className=\"vision-logo-sm d-flex align-items-center\">\n                            {visionLogoCobalt()}\n                          </div>\n                          <div className=\"bold-label-600 px-2\">VISION User?</div>\n                          <span>\n                            <u>Connect your VISION account to IGNITE</u>\n                          </span>\n                        </div>\n                      </div>\n                    )}\n                  </div>\n                  <CRow>\n                    <CCol>\n                      <div className=\"bounded-container\">\n                        <h6>\n                          <b>Your Login</b>\n                        </h6>\n                        <SignupLoginForm\n                          value={govUserSignupData}\n                          onChange={(value) =>\n                            setGovUserSignupData((prev) => ({ ...prev, ...value }))\n                          }\n                          disableEmail={!!getSessionQParam()}\n                          isVisionUser={!!getSessionQParam()}\n                          openConnectVisionAccountModal={() => {\n                            setConnectVisionAccountHelpModalVisible(true)\n                          }}\n                          visionAccountConnected={!!getSessionQParam()}\n                        />\n                      </div>\n                    </CCol>\n                  </CRow>\n                  <CRow>\n                    <CCol>\n                      <div className=\"bounded-container\">\n                        <h6>\n                          <b>Your Organization</b>\n                        </h6>\n                        <GovUserExtendedDataOrganizationForm\n                          value={govUserExtendedData}\n                          onChange={(value) => {\n                            setGovUserExtendedData((prev) => ({ ...prev, ...value }))\n                          }}\n                        />\n                      </div>\n                    </CCol>\n                  </CRow>\n                  <CRow>\n                    <CCol>\n                      <div className=\"bounded-container\">\n                        <h6>\n                          <b>Your User</b>\n                        </h6>\n                        <SignupUserForm\n                          value={govUserSignupData}\n                          onChange={(value) =>\n                            setGovUserSignupData((prev) => ({ ...prev, ...value }))\n                          }\n                          isGovUser={true}\n                        />\n                      </div>\n                    </CCol>\n                  </CRow>\n                  <CRow>\n                    <CCol>\n                      <div className=\"bounded-container\">\n                        <CustomModal\n                          isModalOpen={spamProtectionModalVisible}\n                          onClose={() => setSpamProtectionModalVisible(false)}\n                          headerContent={\n                            <h4 className={'mb-0'}>How IGNITE protects you from spam</h4>\n                          }\n                        >\n                          <CModalBody className={'pt-0'}>\n                            <CRow className={'d-flex gap-2'}>\n                              <CCol className={'col-12'}>\n                                <CRow className={'d-flex'}>\n                                  <CCol className={'col-1'}>\n                                    <i\n                                      className={'fa fa-regular fa-comment primary-accent-label'}\n                                    />\n                                  </CCol>\n                                  <CCol className={'col-11'}>\n                                    <span>You can disable new communications at any time.</span>\n                                  </CCol>\n                                </CRow>\n                              </CCol>\n                              <CCol className={'col-12'}>\n                                <CRow>\n                                  <CCol className={'col-1'}>\n                                    <i\n                                      className={'fa fa-regular fa-shield-alt primary-accent-label'}\n                                    />\n                                  </CCol>\n                                  <CCol className={'col-11'}>\n                                    <span>\n                                      Small businesses can only send 1 message to you to initiate a\n                                      conversation. They can not send more messages until you have\n                                      replied to the first one.\n                                    </span>\n                                  </CCol>\n                                </CRow>\n                              </CCol>\n                              <CCol className={'col-12'}>\n                                <CRow>\n                                  <CCol className={'col-1'}>\n                                    <i className={'fa fa-regular fa-lock primary-accent-label'} />\n                                  </CCol>\n                                  <CCol className={'col-11'}>\n                                    <span>\n                                      At any time, you can pause communications with a small\n                                      business. They will be unable to contact you until you\n                                      un-pause.\n                                    </span>\n                                  </CCol>\n                                </CRow>\n                              </CCol>\n                              <CCol className={'col-12'}>\n                                <CRow>\n                                  <CCol className={'col-1'}>\n                                    <i\n                                      className={\n                                        'fa fa-regular fa-user-shield primary-accent-label'\n                                      }\n                                    />\n                                  </CCol>\n                                  <CCol className={'col-11'}>\n                                    <span>\n                                      You have control of the conversation. If you feel like someone\n                                      is misusing the system and spamming you, contact{' '}\n                                      <a\n                                        href={'mailto:support@mobilizeignite.com'}\n                                        target=\"_blank\"\n                                        rel=\"noreferrer\"\n                                      >\n                                        support@mobilizeignite.com\n                                      </a>{' '}\n                                      and our team will address the issue.\n                                    </span>\n                                  </CCol>\n                                </CRow>\n                              </CCol>\n                            </CRow>\n                          </CModalBody>\n                        </CustomModal>\n                        <h6>\n                          <b>Your Profile</b>\n                        </h6>\n                        <div className={'mb-2'}>\n                          <span>\n                            Important: Your profile information is how people will find in you in\n                            IGNITE. The more thorough your answers, the better your chances of\n                            making connections.\n                          </span>\n                        </div>\n                        <div className=\"d-flex flex-grow-1 justify-content-start mb-4\">\n                          <div\n                            onClick={() => setSpamProtectionModalVisible(true)}\n                            className=\"clickable d-flex align-items-center border border-secondary rounded p-2 bg-light\"\n                            data-testid=\"spam-protection-card\"\n                          >\n                            <i\n                              className={'fa fa-regular fa-shield-alt me-1 primary-accent-label'}\n                            />\n                            <span>\n                              <u>How IGNITE protects you from spam</u>\n                            </span>\n                          </div>\n                        </div>\n                        <GovUserExtendedDataProfileForm\n                          value={govUserExtendedData}\n                          onChange={(value) =>\n                            setGovUserExtendedData((prev) => ({ ...prev, ...value }))\n                          }\n                        />\n                        <div className={'mb-2'}>\n                          <CFormCheck\n                            data-testid=\"unclassified-confirmation-checkbox\"\n                            onChange={() => setUnclassifiedCofirmation(!unclassifiedConfirmation)}\n                            checked={unclassifiedConfirmation}\n                            label={\n                              <div>\n                                <div>\n                                  I affirm that all information I have inputted is unclassified.{' '}\n                                  <i className=\"fas fa-asterisk gov-required-icon\" />\n                                  (required)\n                                </div>\n                                <em>\n                                  IGNITE handles information at a non-CUI level. Do not add any\n                                  information or upload any documents that are classified or\n                                  Controlled Unclassified Information (CUI)\n                                </em>\n                              </div>\n                            }\n                          />\n                        </div>\n                      </div>\n                    </CCol>\n                  </CRow>\n                  <CContainer className=\"recaptcha-container\">\n                    <ReCAPTCHA\n                      sitekey={props.applicationStore!.siteSettings!['recaptchaSiteKey']}\n                      onChange={(token) => setRecaptchaToken(token)}\n                      data-testid=\"recaptcha-checkbox\"\n                    />\n                  </CContainer>\n                  <CRow className=\"justify-content-md-center\">\n                    <CCol sm={2} className=\"d-flex justify-content-md-center\">\n                      <SuspensefulButton\n                        isSuspended={isSubmitting}\n                        onClick={onSubmit}\n                        disabled={!isSubmittable() || isSubmitting}\n                        data-testid=\"signup-button\"\n                        icon=\"fas fa-check\"\n                      >\n                        Sign Up\n                      </SuspensefulButton>\n                    </CCol>\n                  </CRow>\n                </CCardBody>\n              </CCard>\n            </CContainer>\n          </CForm>\n        </SuspensionBoundary>\n      </section>\n    )\n  }),\n)\n","import { Chip, ChipColors, ChipProps } from '@mobilizeyourtech/vision-core-react'\nimport classNames from 'classnames'\n\nimport Styles from './GovUserConnectorChip.module.scss'\nimport { GovUserData } from 'stores/UserStore'\n\nexport interface GovUserConnectorChipProps\n  extends Omit<ChipProps, 'label' | 'color' | 'badgeValue' | 'chipBackground' | 'icon' | 'size'> {\n  govUser: GovUserData | undefined\n  'data-testid'?: string\n}\n\nexport const GovUserConnectorChip = ({ govUser, ...props }: GovUserConnectorChipProps) => {\n  if (!govUser?.activeChatThreadsCount) return null\n\n  let label = 'Connector'\n  let badge = '1+'\n\n  if (govUser.activeChatThreadsCount >= 5 && govUser.activeChatThreadsCount < 10) {\n    label = 'Super Connector'\n    badge = '5+'\n  } else if (govUser.activeChatThreadsCount >= 10 && govUser.activeChatThreadsCount < 25) {\n    label = 'Mega Connector'\n    badge = '10+'\n  } else if (govUser.activeChatThreadsCount >= 25 && govUser.activeChatThreadsCount < 50) {\n    label = 'Ultra Connector'\n    badge = '25+'\n  } else if (govUser.activeChatThreadsCount >= 50) {\n    label = 'Giga Connector'\n    badge = '50+'\n  }\n\n  return (\n    <Chip\n      {...props}\n      className={classNames(props.className, Styles.govUserConnectorChip)}\n      icon=\"fa fa-bolt\"\n      label={label}\n      badgeValue={badge}\n      chipColor={ChipColors.BLUE}\n      chipBackground\n      chipSize=\"small\"\n      data-testid={props['data-testid'] ?? 'gov-user-connector-chip'}\n      // FIXME: Update to use VCR's Tooltip component when available\n      title={`${govUser.firstName} has ${govUser.activeChatThreadsCount} active connection(s) with small businesses`}\n      displayTitle={false}\n    />\n  )\n}\n","import { inject, observer } from 'mobx-react'\nimport { useRouteMatch, useHistory } from 'react-router-dom'\nimport React, { useEffect, useState } from 'react'\nimport { ApplicationStore, NotificationStore, UserStore } from '../../stores'\nimport {\n  CCard,\n  CCardBody,\n  CCol,\n  CContainer,\n  CRow,\n  CBadge,\n  CButton,\n  CCardHeader,\n  CCardText,\n  CTooltip,\n} from '@coreui/react'\n\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport { GovUserData } from '../../stores/UserStore'\nimport { leftArrow } from '../../components/icons/leftArrow'\nimport { StartChatButton } from '../../components/custom'\nimport ReactHtmlParser from 'react-html-parser'\nimport { visionVisibilityIcon } from '../../assets/brand/vision_visibility_icon'\nimport { UserAvatar } from '../../components/user'\nimport { LinesOfEffortCard } from 'components/Organisms/EntityCards/LinesOfEffortCard/LinesOfEffortCard'\nimport { GovUserClassificationsCard } from 'components/Organisms/EntityCards/GovUserClassificationsCard/GovUserClassificationsCard'\nimport { GovUserConnectorChip } from 'components/Atoms/Chips/GovUserConnectorChip/GovUserConnectorChip'\n\ntype TProps = {\n  userStore?: UserStore\n  notificationStore?: NotificationStore\n}\n\ninterface MatchParams {\n  id: string\n}\n\nexport const ViewIndividualGovUser = inject(\n  ApplicationStore.names.userStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const {\n      params: { id },\n    } = useRouteMatch<MatchParams>()\n    const [govUser, setGovUser] = useState<GovUserData | undefined>(undefined)\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [error, setError] = useState<boolean>(false)\n\n    const navigate = useHistory()\n    const goBack = () => {\n      navigate.goBack()\n    }\n\n    useEffect(() => {\n      setIsLoading(true)\n      props.userStore\n        ?.retrieveGovUserById(id, 'technologyTypes,govUserSetting,isActive,activeChatThreadsCount')\n        .then((data) => setGovUser(data))\n        .catch((err) => {\n          setError(err)\n          props.notificationStore?.setNotificationMessage(\n            'Error retrieving gov user. Please try again.',\n            'danger',\n            3000,\n          )\n        })\n        .finally(() => {\n          setTimeout(() => {\n            setIsLoading(false)\n          }, 300)\n        })\n    }, [])\n\n    const renderLocation = () => {\n      let locationValues: Array<String | undefined> = []\n      if (govUser?.govUserExtendedData) {\n        const { city, stateOrProvince, country } = govUser?.govUserExtendedData\n        locationValues = [city, stateOrProvince, country].filter(Boolean)\n      }\n\n      return (\n        <div className=\"d-flex flex-wrap align-items-center\">\n          <div className=\"col-4 col-lg-12 col-xl-4 category\">\n            <p>\n              <i className=\"fa fa-location-arrow\" />\n              Location\n            </p>\n          </div>\n          <div className=\"col-8 col-lg-12 col-xl-8 mt-0\" data-testid=\"location\">\n            <p>{locationValues.join(', ')}</p>\n          </div>\n        </div>\n      )\n    }\n\n    const renderYearsOfExperience = () => {\n      if (!govUser?.govUserExtendedData.govEmployeeSinceYear) return null\n\n      let yearsOfExperience = ''\n      const currentYear = new Date().getFullYear()\n      const experience = currentYear - govUser?.govUserExtendedData.govEmployeeSinceYear\n\n      if (experience <= 5) {\n        yearsOfExperience = '0-5'\n      } else if (experience > 5 && experience <= 10) {\n        yearsOfExperience = '6-10'\n      } else if (experience > 10 && experience <= 15) {\n        yearsOfExperience = '11-15'\n      } else if (experience > 15 && experience <= 20) {\n        yearsOfExperience = '16-20'\n      } else if (experience > 20) {\n        yearsOfExperience = '20+'\n      }\n      return (\n        <div className=\"d-flex flex-wrap align-items-center\">\n          <div className=\"col-4 col-lg-12 col-xl-4 category\">\n            <p>Years of Gov. Service</p>\n          </div>\n          <div className=\"col-8 col-lg-12 col-xl-8 mt-0\" data-testid=\"years-of-experience\">\n            <p>{yearsOfExperience}</p>\n          </div>\n        </div>\n      )\n    }\n\n    const UserInfoCard = () => {\n      return (\n        <CCard className=\"gov-user info-row-card py-3 px-4\">\n          <CCardHeader className=\"d-flex justify-content-between align-items-center gap-3 flex-wrap\">\n            <h5 className=\"m-0\">User Info</h5>\n            <GovUserConnectorChip govUser={govUser} />\n          </CCardHeader>\n          <CCardBody className=\"d-flex row\">\n            <div className=\"d-flex flex-wrap align-items-center\">\n              <div className=\"col-4 col-lg-12 col-xl-4 mt-0 category\">\n                <p>Name</p>\n              </div>\n              <div className=\"col-8 col-lg-12 col-xl-8 mt-0\">\n                <p>{govUser?.firstName + ' ' + govUser?.lastName}</p>\n              </div>\n            </div>\n            <div className=\"d-flex flex-wrap align-items-center\">\n              <div className=\"col-4 col-lg-12 col-xl-4 mt-0 category\">\n                <p>Title/Rank</p>\n              </div>\n              <div className=\"col-8 col-lg-12 col-xl-8 mt-0\">\n                <p>{govUser?.title}</p>\n              </div>\n            </div>\n            {renderYearsOfExperience()}\n            <div className=\"d-flex flex-wrap align-items-center\">\n              <div className=\"col-4 col-lg-12 col-xl-4 mt-0 category\">\n                <p>Organization</p>\n              </div>\n              <div className=\"col-8 col-lg-12 col-xl-8 mt-0\">\n                <p>{govUser?.govUserExtendedData.govUserOrganization.name}</p>\n              </div>\n            </div>\n            <div className=\"d-flex flex-wrap align-items-center\">\n              <div className=\"col-4 col-lg-12 col-xl-4 mt-0 category\">\n                <p>\n                  <i className=\"fa fa-clock\" />\n                  Time Zone\n                </p>\n              </div>\n              <div className=\"col-8 col-lg-12 col-xl-8 mt-0\">\n                <p>{govUser?.timezone.split('_').join(' ')}</p>\n              </div>\n            </div>\n            {renderLocation()}\n          </CCardBody>\n        </CCard>\n      )\n    }\n\n    const ProblemStatementCard = () => {\n      return (\n        <CCard className=\"gov-user info-row-card py-3 px-4\">\n          <CCardHeader component={'h5'}>Problem Statement & Role Description</CCardHeader>\n          <CCardBody className=\"px-0\">\n            <div className={'ql-editor'}>\n              {govUser?.govUserExtendedData.profileDetail &&\n                ReactHtmlParser(govUser?.govUserExtendedData.profileDetail)}\n            </div>\n          </CCardBody>\n        </CCard>\n      )\n    }\n\n    const renderUser = (user: GovUserData) => (\n      <CContainer className=\"IndividualGovUser\">\n        <div className={'py-4 d-flex justify-content-between'}>\n          <div className=\"gov-user-header d-flex flex-row justify-content-start align-items-center gap-3\">\n            <CButton data-testid=\"back-btn\" className=\"go-back\" variant=\"ghost\" onClick={goBack}>\n              {leftArrow()}\n            </CButton>\n            <div className=\"gov-user-avatar d-flex justify-content-center align-items-center\">\n              <UserAvatar user={user} displayIsActive />\n            </div>\n            <div className=\"gov-user-title d-flex justify-content-center align-items-center\">\n              <h4>\n                {user.firstName} {user.lastName}{' '}\n              </h4>\n              {user.govUserExtendedData.visionUserId && (\n                <CTooltip content={'Verified VISION user'}>\n                  <div className=\"d-flex justify-content-center align-items-center ms-2 mb-1 icon-container\">\n                    {visionVisibilityIcon()}\n                  </div>\n                </CTooltip>\n              )}\n            </div>\n          </div>\n          <div>{govUser && <StartChatButton target={govUser} />}</div>\n        </div>\n\n        <div className=\"d-flex flex-column gap-3 p-3\">\n          <CRow xs={{ gutterY: '1rem' }}>\n            <CCol lg={6}>\n              <UserInfoCard />\n            </CCol>\n            <CCol lg={6}>\n              <GovUserClassificationsCard\n                govUserClassifications={user.govUserExtendedData.govUserClassifications}\n                className=\"gov-user info-row-card py-3 px-4\"\n              />\n            </CCol>\n          </CRow>\n          <CRow\n            xs={{ gutterY: '1rem' }}\n            className=\"gov-user-column d-flex row justify-content-start\"\n          >\n            <CCol xs={12} className=\"gov-user-column\">\n              <ProblemStatementCard />\n            </CCol>\n            <CCol xs={12} className=\"gov-user-column\">\n              <LinesOfEffortCard\n                linesOfEffort={user.govUserExtendedData.linesOfEffort}\n                className=\"gov-user loe-card py-3 px-4\"\n                data-testid=\"loe-card\"\n              />\n            </CCol>\n            <CCol xs={12} className=\"gov-user-column\">\n              <CCard className=\"gov-user info-row-card py-3 px-4\">\n                <CCardHeader component=\"h5\">Technology Types</CCardHeader>\n                <CCardBody>\n                  <CRow className=\"justify-content-md-start pt-2\">\n                    {user.technologyTypes.map((tt) => {\n                      return (\n                        <CCol key={tt.name} className={'col-md-auto px-1 mb-2'}>\n                          <CBadge color=\"primary\" className=\"text-wrap text-md-start py-2\">\n                            {tt.name}\n                          </CBadge>\n                        </CCol>\n                      )\n                    })}\n                  </CRow>\n                </CCardBody>\n              </CCard>\n            </CCol>\n          </CRow>\n        </div>\n      </CContainer>\n    )\n\n    const renderError = () => (\n      <CContainer\n        data-testid=\"error-container\"\n        className=\"error-container w-100 d-flex align-items-center justify-content-center\"\n      >\n        <CCard className=\"gov-user error justify-content-center align-items-center\">\n          <CCardBody className=\"d-flex justify-content-center align-items-center\">\n            <CCardText>Error retrieving gov user. Please try again.</CCardText>\n          </CCardBody>\n        </CCard>\n      </CContainer>\n    )\n\n    return (\n      <section className=\"ViewIndividualGovUser\">\n        <SuspensionBoundary isLoading={isLoading}>\n          {!error && govUser ? renderUser(govUser) : renderError()}\n        </SuspensionBoundary>\n      </section>\n    )\n  }),\n)\n","import { CCard, CCol, CRow } from '@coreui/react'\nimport { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\n\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\n\ntype TProps = {\n  analyticsStore?: AnalyticsStore\n  notificationStore?: NotificationStore\n}\n\nexport const AdminAnalyticsResponseRateHeader = inject(\n  ApplicationStore.names.analyticsStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [error, setError] = useState<boolean>(false)\n    const [adminAnalyticsData, setAdminAnalyticsData] = useState<{\n      govUserResponseRatePctg: number | string | null\n      govUserEngagedCompanies: number\n    }>()\n\n    const convertResponseRate =\n      adminAnalyticsData?.govUserResponseRatePctg &&\n      (Number(adminAnalyticsData.govUserResponseRatePctg) * 100).toFixed(0)\n\n    const getGovUserEngagedCompaines = () => {\n      return props.analyticsStore!.getGovUserEngagedCompaniesStatistic()\n    }\n\n    const getGovUserChatResponseStats = () => {\n      return props.analyticsStore!.getGovUserChatResponseStatistic()\n    }\n\n    const getHeaderResponse = async () => {\n      setIsLoading(true)\n      try {\n        const res = await Promise.all([getGovUserChatResponseStats(), getGovUserEngagedCompaines()])\n        setAdminAnalyticsData({\n          govUserResponseRatePctg: res[0].value,\n          govUserEngagedCompanies: res[1].count,\n        })\n      } catch (err) {\n        setError(true)\n        props.notificationStore?.setNotificationMessage(\n          'Error retrieving response rate data. Please try again.',\n          'danger',\n          3000,\n        )\n      } finally {\n        setTimeout(() => {\n          setIsLoading(false)\n        }, 300)\n      }\n    }\n\n    useEffect(() => {\n      getHeaderResponse()\n    }, [])\n\n    return (\n      <CCard className=\"card-body py-4\">\n        <SuspensionBoundary isLoading={isLoading}>\n          {error ? (\n            <div className=\"text-center\">Error retrieving government user response rate data</div>\n          ) : (\n            <CRow className=\"analytics-response-rate-header\">\n              <CCol className=\"col-md-12 col-lg-6\">\n                <div className=\"d-flex flex-row justify-content-sm-start justify-content-md-center align-items-center gap-2 pt-2\">\n                  <h1 className=\"analytics-header-digits\">{convertResponseRate}%</h1>\n                  <div className=\"anaylytics-header-text d-flex\">\n                    <h3 className=\"mt-2 text-wrap\">Average government user response rate</h3>\n                  </div>\n                </div>\n              </CCol>\n              <CCol className=\"col-md-12 col-lg-6\">\n                {' '}\n                <div className=\"d-flex flex-row justify-content-sm-start justify-content-md-center align-items-center gap-2 pt-2\">\n                  <h1 className=\"analytics-header-digits\">\n                    {adminAnalyticsData?.govUserEngagedCompanies}\n                  </h1>\n                  <div className=\"anaylytics-header-text d-flex\">\n                    <h3 className=\"mt-2 text-wrap\">\n                      Companies engaged in chats with government users\n                    </h3>\n                  </div>\n                </div>\n              </CCol>\n            </CRow>\n          )}\n        </SuspensionBoundary>\n      </CCard>\n    )\n  }),\n)\n","import React from 'react'\nimport { Legend, Line, LineChart, ResponsiveContainer, Tooltip, XAxis, YAxis } from 'recharts'\nimport { months } from '../../lib/helpers/utils'\n\ntype TProps = {\n  data?: Array<Record<string, any>>\n  chartLines: Array<{ displayName: string; dataKey: string; color: string }>\n  xAxis: string\n  chartId: string\n  width?: number\n}\n\nconst formatLegend = (value: string) => {\n  return <span style={{ color: '#000000' }}>{`${value}`}</span>\n}\n\nconst formatXDate = (iprops: any) => {\n  let date = new Date(iprops.payload.value)\n  let formattedDate = `${months[date.getUTCMonth()]?.substr(0, 3)} ${date\n    .getUTCFullYear()\n    .toString()\n    .substr(-2)}`\n  return (\n    <g\n      transform={`translate(${iprops.x},${iprops.y})`}\n      data-testid={`x-axis-${iprops.payload.value}`}\n      tabIndex={0}\n    >\n      <text x={0} y={0} dy={16} textAnchor=\"middle\">\n        {formattedDate}\n      </text>\n    </g>\n  )\n}\n\nexport const IgniteLineChart = (props: TProps) => {\n  const renderLines = () => {\n    return props.chartLines.map((chartLine) => {\n      let total = props.data?.map((a: Record<string, any>) => a[chartLine.dataKey])?.slice(-1)\n      let label = chartLine.displayName + ' (' + (total ? total : '0') + ')'\n\n      return (\n        <Line\n          key={chartLine.dataKey}\n          isAnimationActive={!props.chartLines}\n          name={label}\n          type=\"monotone\"\n          dataKey={chartLine.dataKey}\n          stroke={chartLine.color}\n          dot={{ fill: chartLine.color }}\n        />\n      )\n    })\n  }\n\n  return (\n    <div data-testid={props.chartId}>\n      <ResponsiveContainer width={props.width || '100%'} height={300} debounce={0}>\n        <LineChart id={props.chartId} data={props.data} margin={{ right: 40, top: 20 }}>\n          <XAxis\n            dataKey={props.xAxis}\n            name={props.xAxis}\n            padding={{ left: 10, right: 10 }}\n            tick={formatXDate}\n          />\n          <YAxis padding={{ bottom: 10 }} />\n          <Tooltip />\n          {renderLines()}\n          <Legend\n            iconType=\"circle\"\n            layout=\"horizontal\"\n            verticalAlign=\"top\"\n            align=\"right\"\n            wrapperStyle={{ paddingBottom: '20px' }}\n            formatter={formatLegend}\n          />\n        </LineChart>\n      </ResponsiveContainer>\n    </div>\n  )\n}\n","import { SBCTimelineStatistic } from '../../../../stores/AnalyticsStore'\nimport { IgniteLineChart } from '../../../lineChart/IgniteLineChart'\n\ntype TProp = {\n  data?: SBCTimelineStatistic[]\n  width?: number\n}\nexport const AdminAnalyticsSBCTimelineLineChart = (props: TProp) => {\n  let chartLines = [\n    { displayName: 'Claimed Listings', dataKey: 'claimedListingsTotal', color: '#FFB742' },\n    { displayName: 'SBC Users', dataKey: 'usersTotal', color: '#f0483e' },\n    { displayName: 'Total Listings', dataKey: 'listingsTotal', color: '#0070D8' },\n  ]\n\n  return (\n    <div\n      data-testid=\"admin-analytics-sbc-timeline-line-chart\"\n      id=\"admin-analytics-sbc-timeline-line-chart\"\n    >\n      <IgniteLineChart\n        data={props.data}\n        chartLines={chartLines}\n        xAxis=\"month\"\n        width={props.width}\n        chartId=\"sbc-timeline-line-chart\"\n      />\n    </div>\n  )\n}\n","import { CCard } from '@coreui/react'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { SBCTimelineStatistic } from '../../../stores/AnalyticsStore'\nimport { AdminAnalyticsSBCTimelineLineChart } from './lineCharts/AdminAnalyticsSBCTimelineLineChart'\n\ntype TProps = {\n  analyticsStore?: AnalyticsStore\n  notificationStore?: NotificationStore\n}\nexport const AdminAnalyticsSBCTimelineStatistics = inject(\n  ApplicationStore.names.analyticsStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [error, setError] = useState<string | undefined>(undefined)\n    const [sbcTimelineStatistics, setSBCTimelineStatistics] =\n      useState<Array<SBCTimelineStatistic>>()\n\n    useEffect(() => {\n      setIsLoading(true)\n      props\n        .analyticsStore!.getSBCTimelineStatistics()\n        .then((data) => {\n          setSBCTimelineStatistics(data)\n        })\n        .catch((e) => {\n          props.notificationStore?.setNotificationMessage(\n            'Error loading SBC Timeline Statistic Data',\n            'error',\n            3000,\n          )\n          setError(e)\n        })\n        .finally(() => {\n          setTimeout(() => {\n            setIsLoading(false)\n          }, 300)\n        })\n    }, [])\n\n    const LineChart = (props: { data?: SBCTimelineStatistic[] }) => {\n      let noResult = (\n        <div\n          id=\"admin-analytics-line-chart-and-table-absent\"\n          data-testid=\"sbc-timeline-chart-absent\"\n          className=\"text-center\"\n        >\n          Error occurred while loading results\n        </div>\n      )\n\n      return (\n        <div>\n          <CCard className=\"card-body\">\n            <SuspensionBoundary isLoading={!error && isLoading}>\n              <div className=\"row\">\n                <div className=\"col-sm-12 col-xl-10 offset-xl-1\">\n                  <div\n                    className=\"stat-header\"\n                    id=\"admin-analytics-line-chart-and-table-card-header \"\n                  >\n                    <h2 className=\"mb-0\">SBC Timeline</h2>\n                  </div>\n                  {!error ? <AdminAnalyticsSBCTimelineLineChart data={props.data} /> : noResult}\n                </div>\n              </div>\n            </SuspensionBoundary>\n          </CCard>\n        </div>\n      )\n    }\n\n    return <LineChart data={sbcTimelineStatistics} />\n  }),\n)\n\nexport default <AdminAnalyticsSBCTimelineStatistics />\n","import { PieChart, Pie, Cell, Legend } from 'recharts'\n\nexport type IgnitePieChartPlaceHolderProps = {\n  name: string\n}\n\nexport const IgnitePieChartPlaceHolder = (props: IgnitePieChartPlaceHolderProps) => {\n  const colors = {\n    strokes: '#ECECEC',\n    unclickable: '#A2A2A2',\n  }\n\n  const data = [{ name: 'No Results', value: 1200, fill: colors.strokes }]\n\n  const style = {\n    top: '50%',\n    transform: 'translate(40%, -30%)',\n    lineHeight: '30px',\n    left: '66%',\n  }\n\n  const formatLegend = (value: string) => {\n    return (\n      !parseInt(value) && (\n        <span style={{ color: colors.unclickable, padding: '10px' }}>{value}</span>\n      )\n    )\n  }\n\n  return (\n    <div data-testid={`${props.name}-empty`}>\n      <PieChart height={175} width={300}>\n        <Pie\n          dataKey=\"value\"\n          data={data}\n          cy=\"50%\"\n          cx=\"75%\"\n          outerRadius={80}\n          innerRadius={60}\n          paddingAngle={-10}\n          isAnimationActive={true}\n        >\n          {data.map((_, index) => (\n            <Cell key={`cell-${index}`} fill={colors.strokes} />\n          ))}\n        </Pie>\n        <Legend\n          iconType={'circle'}\n          iconSize={20}\n          layout=\"vertical\"\n          verticalAlign=\"middle\"\n          align={'right'}\n          wrapperStyle={style}\n          formatter={formatLegend}\n        />\n      </PieChart>\n    </div>\n  )\n}\n","import { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { titleCase } from '@mobilizeyourtech/vision-core-react'\nimport { PieChart, Pie, Cell, Legend } from 'recharts'\n\nimport { IgnitePieChartPlaceHolder } from './IgnitePieChartPlaceholder'\nimport { PieChartCellDataRecord } from '../../stores/AnalyticsStore'\n\ntype TProps = {\n  data?: PieChartCellDataRecord[]\n  name: string\n}\n\nconst colors = [\n  '#0070D8',\n  '#455766',\n  '#FFB742',\n  '#89E2FD',\n  '#00AC7E',\n  '#f0483e',\n  '#960700',\n  '#01b189',\n  '#008566',\n  '#973A85',\n]\n\nconst style = {\n  top: '50%',\n  transform: 'translate(40%, -30%)',\n  lineHeight: '30px',\n}\n\nlet filterEmptyItems = (array?: PieChartCellDataRecord[]) => {\n  return array?.slice().filter(function (a) {\n    return a.value > 0\n  })\n}\nexport const isGraphEmpty = (data: PieChartCellDataRecord[] | undefined) => {\n  let noArray = data === undefined\n  let noItemsInArray = data && data?.length === 0\n  let noValuesInArrayItems = data && data?.length > 0 && data.every((entry) => entry.value === 0)\n\n  return noArray || noItemsInArray || noValuesInArrayItems\n}\n\nexport const IgnitePieChart = inject()(\n  observer((props: TProps) => {\n    const [data, setData] = useState<Array<PieChartCellDataRecord> | undefined>(props.data || [])\n\n    useEffect(() => {\n      setData(props.data)\n    }, [props.data])\n\n    const formatLegend = (value: string, entry: any) => {\n      return (\n        <span\n          tabIndex={0}\n          className=\"text-truncate legend-item\"\n          data-testid={`${entry.payload.testingId}`}\n        >\n          {`${titleCase(value)}`}\n        </span>\n      )\n    }\n\n    useEffect(() => {}, [window.innerWidth])\n\n    const Chart = (props: TProps) => {\n      let filteredData = filterEmptyItems(props.data)\n      return (\n        <div data-testid={props.name}>\n          <PieChart height={160} width={290}>\n            <Pie\n              dataKey=\"value\"\n              startAngle={90}\n              endAngle={-270}\n              data={filteredData}\n              cy=\"50%\"\n              cx=\"75%\"\n              outerRadius={80}\n              innerRadius={60}\n              nameKey={'name'}\n              paddingAngle={3}\n            >\n              {filteredData?.map((entry, index) => (\n                <Cell key={`cell-${index}`} fill={colors[index]} />\n              ))}\n            </Pie>\n            <Legend\n              iconType={'circle'}\n              iconSize={20}\n              layout=\"vertical\"\n              verticalAlign=\"middle\"\n              align={'right'}\n              wrapperStyle={style}\n              formatter={formatLegend}\n            />\n          </PieChart>\n        </div>\n      )\n    }\n\n    return (\n      <div className=\"pie-chart-container\">\n        {isGraphEmpty(data) && <IgnitePieChartPlaceHolder {...props} />}\n        {!isGraphEmpty(data) && <Chart {...props} />}\n      </div>\n    )\n  }),\n)\n\nexport default IgnitePieChart\n","import { PieChartCellDataRecord, TechnologyTypeStatistic } from '../../../../stores/AnalyticsStore'\nimport IgnitePieChart from '../../../piechart/IgnitePieChart'\n\ntype TProps = {\n  data?: Array<TechnologyTypeStatistic>\n}\n\nlet getTopTenRecordsByField = (\n  array: Record<string, any>[],\n  field: string,\n): Array<PieChartCellDataRecord> => {\n  let sortOnFieldDescFunc = (a: Record<string, any>, b: Record<string, any>) =>\n    a[field] < b[field] ? 1 : -1\n\n  return array\n    .slice()\n    .sort(sortOnFieldDescFunc)\n    .slice(0, 10)\n    .map((d) => {\n      return { id: d.id, testingId: field + '-' + d.id, name: d.name, value: d[field] }\n    })\n}\nexport const AdminAnalyticsTechnologyTypePieCharts = (props: TProps) => {\n  let focusData = props.data && getTopTenRecordsByField(props.data, 'listingCount')\n  let productData = props.data && getTopTenRecordsByField(props.data, 'listingProductCount')\n  let serviceData = props.data && getTopTenRecordsByField(props.data, 'listingServiceCount')\n  let awardData = props.data && getTopTenRecordsByField(props.data, 'listingAwardCount')\n  let govUsersData = props.data && getTopTenRecordsByField(props.data, 'usersCount')\n  let visionUsersData = props.data && getTopTenRecordsByField(props.data, 'visionUsersCount')\n\n  return (\n    <div id=\"technology-type-pie-charts-container\">\n      <div className=\"row stat-header technology-types-card-header\">\n        <div className=\"col-sm-11 offset-xl-1\">\n          <h2>Technology Types At a Glance</h2>\n        </div>\n      </div>\n      <div className=\"row justify-content-left\">\n        <div className=\" col-sm-5 col-xl-4 offset-xl-1\">\n          <h3>Top 10 Company Focuses</h3>\n          <IgnitePieChart data={focusData} name=\"technology-type-focuses-pie-chart\" />\n        </div>\n        <div className=\"col-sm-5 col-xl-4 offset-sm-1 offset-xxl-2\">\n          <h3>Top 10 Company Products</h3>\n          <IgnitePieChart data={productData} name=\"technology-type-products-pie-chart\" />\n        </div>\n      </div>\n      <div className=\"row justify-content-left\">\n        <div className=\" col-sm-5 col-xl-4 offset-xl-1\">\n          <h3>Top 10 Company Services</h3>\n          <IgnitePieChart data={serviceData} name=\"technology-type-services-pie-chart\" />\n        </div>\n        <div className=\" col-sm-5 col-xl-4 offset-sm-1 offset-xxl-2\">\n          <h3>Top 10 Company Awards</h3>\n          <IgnitePieChart data={awardData} name=\"technology-type-awards-pie-chart\" />\n        </div>\n      </div>\n      <div className=\"row justify-content-left\">\n        <div className=\" col-sm-5 col-xl-4 offset-xl-1 \">\n          <h3>Top 10 with Government Users</h3>\n          <IgnitePieChart data={govUsersData} name=\"technology-type-gov-users-pie-chart\" />\n        </div>\n        <div className=\" col-sm-5 col-xl-4 offset-sm-1 offset-xxl-2\">\n          <h3>Top 10 with Vision Users</h3>\n          <IgnitePieChart data={visionUsersData} name=\"technology-type-vision-users-pie-chart\" />\n        </div>\n      </div>\n    </div>\n  )\n}\n\nexport default AdminAnalyticsTechnologyTypePieCharts\n","import {\n  CCollapse,\n  CTable,\n  CTableBody,\n  CTableDataCell,\n  CTableHead,\n  CTableHeaderCell,\n  CTableRow,\n} from '@coreui/react'\nimport React, { useState } from 'react'\nimport { TechnologyTypeStatistic } from '../../../../stores/AnalyticsStore'\n\ntype TProps = {\n  data?: Array<TechnologyTypeStatistic>\n}\n\nexport const AdminAnalyticsTechnologyTypeTable = (props: TProps) => {\n  const [visible, setVisible] = useState(false)\n\n  const tableRow = (rowData: TechnologyTypeStatistic) => {\n    let percent = (_string: string) => {\n      return (Number(_string) * 100).toString().substr(0, 2) + '%'\n    }\n    let listingPct = ' (' + percent(rowData.listingPct) + ')'\n    let listingProductPct = ' (' + percent(rowData.listingProductPct) + ')'\n    let listingServicePct = ' (' + percent(rowData.listingServicePct) + ')'\n    let usersPct = ' (' + percent(rowData.usersPct) + ')'\n    let visionUsersPct = ' (' + percent(rowData.visionUsersPct) + ')'\n\n    return (\n      <CTableRow key={rowData.name}>\n        <CTableDataCell>{rowData.name}</CTableDataCell>\n        <CTableDataCell data-testid=\"listing-count-container\">\n          <b>{rowData.listingCount}</b>\n          {listingPct}\n        </CTableDataCell>\n        <CTableDataCell data-testid=\"listing-product-count-container\">\n          <b>{rowData.listingProductCount}</b>\n          {listingProductPct}\n        </CTableDataCell>\n        <CTableDataCell data-testid=\"listing-service-count-container\">\n          <b>{rowData.listingServiceCount}</b>\n          {listingServicePct}\n        </CTableDataCell>\n        <CTableDataCell data-testid=\"listing-users-count-container\">\n          <b>{rowData.usersCount}</b>\n          {usersPct}\n        </CTableDataCell>\n        <CTableDataCell data-testid=\"listing-vision-users-count-container\">\n          <b>{rowData.visionUsersCount}</b>\n          {visionUsersPct}\n        </CTableDataCell>\n      </CTableRow>\n    )\n  }\n\n  const techTypeTable = () => {\n    if (!visible) {\n      return\n    }\n    return (\n      <CTable\n        bordered\n        data-testid=\"admin-analytics-technology-type-table\"\n        id=\"admin-analytics-technology-type-table\"\n      >\n        <CTableHead color=\"dark\">\n          <CTableRow>\n            <CTableHeaderCell scope=\"col\" className=\"text-truncate\">\n              Technology Type\n            </CTableHeaderCell>\n            <CTableHeaderCell scope=\"col\">Company Focuses</CTableHeaderCell>\n            <CTableHeaderCell scope=\"col\">Company Products</CTableHeaderCell>\n            <CTableHeaderCell scope=\"col\">Company Services</CTableHeaderCell>\n            <CTableHeaderCell scope=\"col\">Government Users</CTableHeaderCell>\n            <CTableHeaderCell scope=\"col\">Vision Users</CTableHeaderCell>\n          </CTableRow>\n        </CTableHead>\n        <CTableBody>\n          {props.data?.map((row) => {\n            return tableRow(row)\n          })}\n        </CTableBody>\n      </CTable>\n    )\n  }\n\n  const tableToggleMessage = () => {\n    if (visible) {\n      return (\n        <div>\n          See Less Technology Types Data\n          <i\n            id=\"toggle-technology-type-angle-up\"\n            data-testid=\"toggle-technology-type-angle-up\"\n            className=\"fas fa-angle-up\"\n          />\n        </div>\n      )\n    } else {\n      return (\n        <div>\n          See All Technology Types Data\n          <i\n            id=\"toggle-technology-type-angle-down\"\n            data-testid=\"toggle-technology-type-angle-down\"\n            className=\"fas fa-angle-down\"\n          />\n        </div>\n      )\n    }\n  }\n\n  return (\n    <div id=\"technology-type-table-container\">\n      <br />\n      <h4\n        id=\"toggle-technology-type-table\"\n        data-testid=\"see-less-technology-type\"\n        onClick={() => {\n          setVisible(!visible)\n        }}\n      >\n        {tableToggleMessage()}\n      </h4>\n      <CCollapse\n        id=\"see-less-technology-type-collapse\"\n        data-testid=\"see-less-technology-type-collapse\"\n        visible={visible}\n      >\n        {techTypeTable()}\n      </CCollapse>\n    </div>\n  )\n}\n\nexport default AdminAnalyticsTechnologyTypeTable\n","import { CCard } from '@coreui/react'\nimport { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\n\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { TechnologyTypeStatistic } from '../../../stores/AnalyticsStore'\n\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport { AdminAnalyticsTechnologyTypePieCharts } from './pieCharts/AdminAnalyticsTechnologyTypePieCharts'\nimport { AdminAnalyticsTechnologyTypeTable } from './tables/AdminAnalyticsTechnologyTypeTable'\n\ntype TProps = {\n  analyticsStore?: AnalyticsStore\n  notificationStore?: NotificationStore\n}\n\nexport const AdminAnalyticsTechnologyTypeStatistics = inject(\n  ApplicationStore.names.analyticsStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [technologyTypeStatistics, setTechnologyTypeStatistics] = useState<\n      Array<TechnologyTypeStatistic>\n    >([])\n\n    useEffect(() => {\n      setIsLoading(true)\n      props\n        .analyticsStore!.getTechnologyTypeStatistics()\n        .then((data) => {\n          setTechnologyTypeStatistics(data)\n        })\n        .catch(() => {\n          props.notificationStore?.setNotificationMessage(\n            'Error loading Technology Type Statistic Data',\n            'error',\n            3000,\n          )\n        })\n        .finally(() => {\n          setTimeout(() => {\n            setIsLoading(false)\n          }, 300)\n        })\n    }, [])\n\n    return (\n      <div\n        id=\"admin-analytics-technology-type-statistics-container\"\n        className=\"user-card-container d-flex flex-wrap w-100 align-items-center justify-content-center\"\n      >\n        <CCard className=\"card-body\">\n          <SuspensionBoundary isLoading={isLoading}>\n            <AdminAnalyticsTechnologyTypePieCharts data={technologyTypeStatistics} />\n            <AdminAnalyticsTechnologyTypeTable data={technologyTypeStatistics} />\n          </SuspensionBoundary>\n        </CCard>\n      </div>\n    )\n  }),\n)\n","import { GovUsersTimelineStatistic } from '../../../../stores/AnalyticsStore'\nimport { IgniteLineChart } from '../../../lineChart/IgniteLineChart'\n\ntype TProp = {\n  data?: GovUsersTimelineStatistic[]\n  width?: number\n}\nexport const AdminAnalyticsGovUsersTimelineLineChart = (props: TProp) => {\n  let chartLines = [\n    { displayName: 'VISION Users', dataKey: 'visionUsersTotal', color: '#f0483e' },\n    { displayName: 'Total Government Users', dataKey: 'usersTotal', color: '#0070D8' },\n  ]\n\n  return (\n    <div\n      data-testid=\"admin-analytics-gov-users-timeline-line-chart\"\n      id=\"admin-analytics-gov-users-timeline-line-chart\"\n    >\n      <IgniteLineChart\n        data={props.data}\n        chartLines={chartLines}\n        xAxis=\"month\"\n        width={props.width}\n        chartId=\"sbc-timeline-line-chart\"\n      />\n    </div>\n  )\n}\n","import { CCard } from '@coreui/react'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { GovUsersTimelineStatistic } from '../../../stores/AnalyticsStore'\nimport { AdminAnalyticsGovUsersTimelineLineChart } from './lineCharts/AdminAnalyticsGovUsersTimelineLineChart'\n\ntype TProps = {\n  analyticsStore?: AnalyticsStore\n  notificationStore?: NotificationStore\n}\nexport const AdminAnalyticsGovUsersTimelineStatistics = inject(\n  ApplicationStore.names.analyticsStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [error, setError] = useState<string | undefined>(undefined)\n    const [govUsersTimelineStatistics, setGovUsersTimelineStatistics] =\n      useState<Array<GovUsersTimelineStatistic>>()\n\n    useEffect(() => {\n      setIsLoading(true)\n      props\n        .analyticsStore!.getGovUsersTimelineStatistics()\n        .then((data) => {\n          setGovUsersTimelineStatistics(data)\n        })\n        .catch((e) => {\n          props.notificationStore?.setNotificationMessage(\n            'Error loading Gov User Timeline Statistic Data',\n            'error',\n            3000,\n          )\n          setError(e)\n        })\n        .finally(() => {\n          setTimeout(() => {\n            setIsLoading(false)\n          }, 300)\n        })\n    }, [])\n\n    const LineChart = (props: { data?: GovUsersTimelineStatistic[] }) => {\n      let noResult = (\n        <div\n          id=\"admin-analytics-line-chart-and-table-absent\"\n          data-testid=\"gov-users-timeline-chart-absent\"\n          className=\"text-center\"\n        >\n          Error occurred while loading results\n        </div>\n      )\n\n      return (\n        <div>\n          <CCard className=\"card-body\">\n            <SuspensionBoundary isLoading={!error && isLoading}>\n              <div className=\"row\">\n                <div className=\"col-sm-12 col-xl-10 offset-xl-1\">\n                  <div\n                    className=\"stat-header\"\n                    id=\"admin-analytics-line-chart-and-table-card-header\"\n                  >\n                    <h2 className=\"mb-0\">Government Timelines</h2>\n                  </div>\n                  {!error ? (\n                    <AdminAnalyticsGovUsersTimelineLineChart data={props.data} />\n                  ) : (\n                    noResult\n                  )}\n                </div>\n              </div>\n            </SuspensionBoundary>\n          </CCard>\n        </div>\n      )\n    }\n\n    return <LineChart data={govUsersTimelineStatistics} />\n  }),\n)\n\nexport default <AdminAnalyticsGovUsersTimelineStatistics />\n","import {\n  CTable,\n  CTableBody,\n  CTableDataCell,\n  CTableHead,\n  CTableHeaderCell,\n  CTableRow,\n} from '@coreui/react'\nimport { ListingPageViewStatistic } from '../../../../stores/AnalyticsStore'\n\ntype TProps = {\n  data?: Array<ListingPageViewStatistic>\n}\n\nexport const AdminAnalyticsListingPageViewsTable = (props: TProps) => {\n  const tableRow = (rowData: ListingPageViewStatistic) => {\n    return (\n      <CTableRow key={rowData.name}>\n        <CTableDataCell data-testid=\"listing-page-name-container\" className=\"text-center\">\n          <h3 className=\"m-0\">{rowData.name}</h3>\n        </CTableDataCell>\n        <CTableDataCell data-testid=\"listing-page-views-count-container\" className=\"text-center\">\n          <h3 className=\"m-0\">{rowData.pageViews}</h3>\n        </CTableDataCell>\n      </CTableRow>\n    )\n  }\n\n  const listingPageViewTable = () => {\n    return (\n      <CTable\n        bordered\n        data-testid=\"admin-analytics-listing-page-view-table\"\n        id=\"admin-analytics-listing-page-view-table\"\n      >\n        <CTableHead color=\"dark\">\n          <CTableRow>\n            <CTableHeaderCell scope=\"col\" className=\"w-50 text-center\">\n              <h3 className=\"m-0\">SBC Organization</h3>\n            </CTableHeaderCell>\n            <CTableHeaderCell scope=\"col\" className=\"w-50 text-center\">\n              <h3 className=\"m-0\">Number of Page Views</h3>\n            </CTableHeaderCell>\n          </CTableRow>\n        </CTableHead>\n        <CTableBody>\n          {props.data?.map((row) => {\n            return tableRow(row)\n          })}\n        </CTableBody>\n      </CTable>\n    )\n  }\n\n  return <div id=\"listing-page-view-table-container\">{listingPageViewTable()}</div>\n}\n\nexport default AdminAnalyticsListingPageViewsTable\n","import { CCard } from '@coreui/react'\nimport React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\n\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { ListingPageViewStatistic } from '../../../stores/AnalyticsStore'\n\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport AdminAnalyticsListingPageViewsTable from './tables/AdminAnalyticsListingPageViewsTable'\n\ntype TProps = {\n  analyticsStore?: AnalyticsStore\n  notificationStore?: NotificationStore\n}\n\nexport const AdminAnalyticsListingPageViewsStatistics = inject(\n  ApplicationStore.names.analyticsStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [error, setError] = useState<string | undefined>(undefined)\n    const [listingPageViewsStatistics, setListingPageViewsStatistics] = useState<\n      Array<ListingPageViewStatistic>\n    >([])\n\n    useEffect(() => {\n      setIsLoading(true)\n      props\n        .analyticsStore!.getListingPageViewStatistics({ page: 1, perPage: 10 })\n        .then((response) => {\n          setListingPageViewsStatistics(response.data)\n        })\n        .catch((e) => {\n          props.notificationStore?.setNotificationMessage(\n            'Error loading Listing Page Views Statistic Data',\n            'error',\n            3000,\n          )\n          setError(e)\n        })\n        .finally(() => {\n          setTimeout(() => {\n            setIsLoading(false)\n          }, 300)\n        })\n    }, [])\n    const ListingPageViewsTable = (props: { data?: ListingPageViewStatistic[] }) => {\n      let noResult = (\n        <div\n          id=\"admin-analytics-line-chart-and-table-absent\"\n          data-testid=\"listing-page-view-table-absent\"\n          className=\"text-center\"\n        >\n          Error occurred while loading results\n        </div>\n      )\n      return (\n        <div\n          id=\"admin-analytics-listing-page-views-statistics-container\"\n          className=\"user-card-container d-flex flex-wrap w-100 align-items-center justify-content-center\"\n        >\n          <CCard className=\"card-body\">\n            <SuspensionBoundary isLoading={isLoading}>\n              <div className=\"row\">\n                <div className=\"col-sm-12 col-xl-10 offset-xl-1\">\n                  <div\n                    className=\"stat-header\"\n                    id=\"admin-analytics-line-chart-and-table-card-header \"\n                  >\n                    <h2 className=\"mb-0\">Top SBC Organization Views</h2>\n                  </div>\n                  {!error ? <AdminAnalyticsListingPageViewsTable data={props.data} /> : noResult}\n                </div>\n              </div>\n            </SuspensionBoundary>\n          </CCard>\n        </div>\n      )\n    }\n    return <ListingPageViewsTable data={listingPageViewsStatistics} />\n  }),\n)\n\nexport default <AdminAnalyticsListingPageViewsStatistics />\n","import { ActiveConversationStatistic } from '../../../../stores/AnalyticsStore'\nimport { IgniteLineChart } from '../../../lineChart/IgniteLineChart'\n\ntype TProp = {\n  data?: ActiveConversationStatistic[]\n  width?: number\n}\nexport const ActiveConversationStatisticLineChart = (props: TProp) => {\n  let chartLines = [\n    { displayName: 'Active Conversations', dataKey: 'activeConversations', color: '#f0483e' },\n    { displayName: 'Messages Sent', dataKey: 'messagesSent', color: '#0070D8' },\n  ]\n\n  return (\n    <div\n      data-testid=\"active-conversations-statistic-line-chart\"\n      id=\"active-conversations-statistic-line-chart\"\n    >\n      <IgniteLineChart\n        data={props.data}\n        chartLines={chartLines}\n        xAxis=\"month\"\n        width={props.width}\n        chartId=\"sbc-timeline-line-chart\"\n      />\n    </div>\n  )\n}\n","import { CCard } from '@coreui/react'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { ActiveConversationStatistic } from '../../../stores/AnalyticsStore'\nimport { ActiveConversationStatisticLineChart } from './lineCharts/ActiveConversationStatisticLineChart'\n\ntype TProps = {\n  analyticsStore?: AnalyticsStore\n  notificationStore?: NotificationStore\n}\nexport const ActiveConversationStatistics = inject(\n  ApplicationStore.names.analyticsStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [error, setError] = useState<string | undefined>(undefined)\n    const [activeConversationStatistics, setActiveConversationStatistics] =\n      useState<Array<ActiveConversationStatistic>>()\n\n    useEffect(() => {\n      setIsLoading(true)\n      props\n        .analyticsStore!.getActiveConversationStatistics()\n        .then((data) => {\n          setActiveConversationStatistics(data)\n        })\n        .catch((e) => {\n          props.notificationStore?.setNotificationMessage(\n            'Error loading Active Conversation Statistic Data',\n            'error',\n            3000,\n          )\n          setError(e)\n        })\n        .finally(() => {\n          setTimeout(() => {\n            setIsLoading(false)\n          }, 300)\n        })\n    }, [])\n\n    const LineChart = (props: { data?: ActiveConversationStatistic[] }) => {\n      let noResult = (\n        <div\n          id=\"admin-analytics-line-chart-and-table-absent\"\n          data-testid=\"active-conversation-chart-absent\"\n          className=\"text-center\"\n        >\n          Error occurred while loading results\n        </div>\n      )\n\n      return (\n        <div>\n          <CCard className=\"card-body\">\n            <SuspensionBoundary isLoading={!error && isLoading}>\n              <div className=\"row\">\n                <div className=\"col-sm-12 col-xl-10 offset-xl-1\">\n                  <div\n                    className=\"stat-header\"\n                    id=\"admin-analytics-line-chart-and-table-card-header \"\n                  >\n                    <h2 className=\"mb-0\">Active Conversations</h2>\n                  </div>\n                  {!error ? <ActiveConversationStatisticLineChart data={props.data} /> : noResult}\n                </div>\n              </div>\n            </SuspensionBoundary>\n          </CCard>\n        </div>\n      )\n    }\n\n    return <LineChart data={activeConversationStatistics} />\n  }),\n)\n\nexport default <ActiveConversationStatistics />\n","import { DafUsersStatistic } from '../../../../stores/AnalyticsStore'\nimport { IgniteLineChart } from '../../../lineChart/IgniteLineChart'\n\ntype TProp = {\n  data?: DafUsersStatistic[]\n  width?: number\n}\nexport const DafUserStatisticsLineChart = (props: TProp) => {\n  let chartLines = [\n    { displayName: 'DAF Logins', dataKey: 'userLogins', color: '#f0483e' },\n    { displayName: 'DAF Messages Sent', dataKey: 'messagesSent', color: '#0070D8' },\n  ]\n\n  return (\n    <div\n      data-testid=\"daf-user-statistics-line-chart-container\"\n      id=\"daf-user-statistics-line-chart-container\"\n    >\n      <IgniteLineChart\n        data={props.data}\n        chartLines={chartLines}\n        xAxis=\"month\"\n        width={props.width}\n        chartId=\"daf-user-statistics-line-chart\"\n      />\n    </div>\n  )\n}\n","import { CCard } from '@coreui/react'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { DafUsersStatistic } from '../../../stores/AnalyticsStore'\nimport { DafUserStatisticsLineChart } from './lineCharts/DafUserStatisticLineChart'\n\ntype TProps = {\n  analyticsStore?: AnalyticsStore\n  notificationStore?: NotificationStore\n}\nexport const DafUsersStatistics = inject(\n  ApplicationStore.names.analyticsStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [error, setError] = useState<string | undefined>(undefined)\n    const [dafUserStatistics, setDafUserStatistics] = useState<Array<DafUsersStatistic>>()\n\n    useEffect(() => {\n      setIsLoading(true)\n      props\n        .analyticsStore!.getDafUserStatistics()\n        .then((data) => {\n          setDafUserStatistics(data)\n        })\n        .catch((e) => {\n          props.notificationStore?.setNotificationMessage(\n            'Error loading DAF User Statistic Data',\n            'error',\n            3000,\n          )\n          setError(e)\n        })\n        .finally(() => {\n          setTimeout(() => {\n            setIsLoading(false)\n          }, 300)\n        })\n    }, [])\n\n    const LineChart = (props: { data?: DafUsersStatistic[] }) => {\n      let noResult = (\n        <div\n          id=\"admin-analytics-line-chart-and-table-absent\"\n          data-testid=\"daf-user-statistics-chart-absent\"\n          className=\"text-center\"\n        >\n          Error occurred while loading results\n        </div>\n      )\n\n      return (\n        <div>\n          <CCard className=\"card-body\">\n            <SuspensionBoundary isLoading={!error && isLoading}>\n              <div className=\"row\">\n                <div className=\"col-sm-12 col-xl-10 offset-xl-1\">\n                  <div\n                    className=\"stat-header\"\n                    id=\"admin-analytics-line-chart-and-table-card-header \"\n                  >\n                    <h2 className=\"mb-0\">DAF Users</h2>\n                  </div>\n                  {!error ? <DafUserStatisticsLineChart data={props.data} /> : noResult}\n                </div>\n              </div>\n            </SuspensionBoundary>\n          </CCard>\n        </div>\n      )\n    }\n\n    return <LineChart data={dafUserStatistics} />\n  }),\n)\n\nexport default <DafUsersStatistics />\n","import { SbcUsersStatistic } from '../../../../stores/AnalyticsStore'\nimport { IgniteLineChart } from '../../../lineChart/IgniteLineChart'\n\ntype TProp = {\n  data?: SbcUsersStatistic[]\n  width?: number\n}\nexport const SbcUserStatisticLineChart = (props: TProp) => {\n  let chartLines = [\n    { displayName: 'SBC Logins', dataKey: 'userLogins', color: '#f0483e' },\n    { displayName: 'SBC Messages Sent', dataKey: 'messagesSent', color: '#0070D8' },\n  ]\n\n  return (\n    <div data-testid=\"sbc-user-statistics-line-chart\" id=\"sbc-user-statistics-line-chart\">\n      <IgniteLineChart\n        data={props.data}\n        chartLines={chartLines}\n        xAxis=\"month\"\n        width={props.width}\n        chartId=\"sbc-users-line-chart\"\n      />\n    </div>\n  )\n}\n","import { CCard } from '@coreui/react'\nimport { SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { SbcUsersStatistic } from '../../../stores/AnalyticsStore'\nimport { SbcUserStatisticLineChart } from './lineCharts/SbcUserStatisticLineChart'\n\ntype TProps = {\n  analyticsStore?: AnalyticsStore\n  notificationStore?: NotificationStore\n}\nexport const SbcUserStatistics = inject(\n  ApplicationStore.names.analyticsStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [error, setError] = useState<string | undefined>(undefined)\n    const [sbcUserStatistics, setSbcUserStatistics] = useState<Array<SbcUsersStatistic>>()\n\n    useEffect(() => {\n      setIsLoading(true)\n      props\n        .analyticsStore!.getSbcUserStatistics()\n        .then((data) => {\n          setSbcUserStatistics(data)\n        })\n        .catch((e) => {\n          props.notificationStore?.setNotificationMessage(\n            'Error loading SBC User Statistic Data',\n            'error',\n            3000,\n          )\n          setError(e)\n        })\n        .finally(() => {\n          setTimeout(() => {\n            setIsLoading(false)\n          }, 300)\n        })\n    }, [])\n\n    const LineChart = (props: { data?: SbcUsersStatistic[] }) => {\n      let noResult = (\n        <div\n          id=\"admin-analytics-line-chart-and-table-absent\"\n          data-testid=\"sbc-user-statistic-chart-absent\"\n          className=\"text-center\"\n        >\n          Error occurred while loading results\n        </div>\n      )\n\n      return (\n        <div>\n          <CCard className=\"card-body\">\n            <SuspensionBoundary isLoading={!error && isLoading}>\n              <div className=\"row\">\n                <div className=\"col-sm-12 col-xl-10 offset-xl-1\">\n                  <div\n                    className=\"stat-header\"\n                    id=\"admin-analytics-line-chart-and-table-card-header \"\n                  >\n                    <h2 className=\"mb-0\">SBC Users</h2>\n                  </div>\n                  {!error ? <SbcUserStatisticLineChart data={props.data} /> : noResult}\n                </div>\n              </div>\n            </SuspensionBoundary>\n          </CCard>\n        </div>\n      )\n    }\n\n    return <LineChart data={sbcUserStatistics} />\n  }),\n)\n\nexport default <SbcUserStatistics />\n","import {\n  CTable,\n  CTableBody,\n  CTableDataCell,\n  CTableHead,\n  CTableHeaderCell,\n  CTableRow,\n} from '@coreui/react'\nimport { OrganizationUserStatistic } from '../../../../stores/AnalyticsStore'\n\ntype TProps = {\n  data?: Array<OrganizationUserStatistic>\n}\n\nexport const OrganizationUserStatisticTable = (props: TProps) => {\n  const tableRow = (rowData: OrganizationUserStatistic) => {\n    return (\n      <CTableRow key={rowData.organization}>\n        <CTableDataCell\n          data-testid=\"organization-user-statistics-name-container\"\n          className=\"text-center organization-user-statistics-name-container\"\n        >\n          {rowData.organization}\n        </CTableDataCell>\n        <CTableDataCell\n          data-testid=\"organization-user-statistic-count-container\"\n          className=\"text-center\"\n        >\n          <h3 className=\"m-0\">{rowData.usersCount}</h3>\n        </CTableDataCell>\n      </CTableRow>\n    )\n  }\n\n  const OrganizationUsersTable = () => {\n    return (\n      <CTable\n        bordered\n        data-testid=\"organization-user-statistic-table\"\n        id=\"organization-user-statistic-table\"\n      >\n        <CTableHead color=\"dark\">\n          <CTableRow>\n            <CTableHeaderCell scope=\"col\" className=\"w-50 text-center\">\n              <h3 className=\"m-0\">Organization</h3>\n            </CTableHeaderCell>\n            <CTableHeaderCell scope=\"col\" className=\"w-50 text-center\">\n              <h3 className=\"m-0\">Number of Users</h3>\n            </CTableHeaderCell>\n          </CTableRow>\n        </CTableHead>\n        <CTableBody>\n          {props.data?.map((row) => {\n            return tableRow(row)\n          })}\n        </CTableBody>\n      </CTable>\n    )\n  }\n\n  return <div id=\"organization-user-statistic-table-container\">{OrganizationUsersTable()}</div>\n}\n\nexport default OrganizationUserStatisticTable\n","import { CCard } from '@coreui/react'\nimport React, { useEffect, useState } from 'react'\nimport { inject, observer } from 'mobx-react'\n\nimport { AnalyticsStore, ApplicationStore, NotificationStore } from '../../../stores'\nimport { OrganizationUserStatistic } from '../../../stores/AnalyticsStore'\n\nimport { PaginationData, SuspensionBoundary } from '@mobilizeyourtech/vision-core-react'\nimport OrganizationUserTable from './tables/OrganizationUserStatisticTable'\nimport { NumberParam, useQueryParams, withDefault } from 'use-query-params'\nimport { Pagination } from '../../custom'\n\ntype TProps = {\n  analyticsStore?: AnalyticsStore\n  notificationStore?: NotificationStore\n}\n\nexport const OrganizationUserStatistics = inject(\n  ApplicationStore.names.analyticsStore,\n  ApplicationStore.names.notificationStore,\n)(\n  observer((props: TProps) => {\n    const [organizationUserStatistics, setOrganizationUserStatistics] = useState<\n      Array<OrganizationUserStatistic>\n    >([])\n    const [pagination, setPagination] = useState<PaginationData | undefined>(undefined)\n    const [paginationParams] = useQueryParams({\n      page: withDefault(NumberParam, 1),\n      perPage: withDefault(NumberParam, 10),\n    })\n    const [isLoading, setIsLoading] = useState<boolean>(false)\n    const [error, setError] = useState<string | undefined>(undefined)\n\n    const loadData = () => {\n      setIsLoading(true)\n      props.analyticsStore\n        ?.getOrganizationUserStatistics(paginationParams)\n        .then((response) => {\n          setOrganizationUserStatistics(response.data)\n          setPagination(response.pagination)\n        })\n        .catch((e) => {\n          props.notificationStore?.setNotificationMessage(\n            'Error loading Organization User Statistic Data',\n            'error',\n            3000,\n          )\n          setError(e)\n        })\n        .finally(() => {\n          setTimeout(() => {\n            setIsLoading(false)\n          }, 300)\n        })\n    }\n\n    useEffect(() => {\n      loadData()\n    }, [paginationParams])\n\n    const Table = (props: { data?: OrganizationUserStatistic[] }) => {\n      let noResult = (\n        <div\n          id=\"admin-analytics-line-chart-and-table-absent\"\n          data-testid=\"organization-user-view-table-absent\"\n          className=\"text-center\"\n        >\n          Error occurred while loading results\n        </div>\n      )\n      return (\n        <div\n          id=\"organization-user-statistics-container\"\n          className=\"user-card-container d-flex flex-wrap w-100 align-items-center justify-content-center\"\n        >\n          <CCard className=\"card-body\">\n            <SuspensionBoundary isLoading={isLoading}>\n              <div className=\"row\">\n                <div className=\"col-sm-12 col-xl-10 offset-xl-1\">\n                  <div\n                    className=\"stat-header\"\n                    id=\"admin-analytics-line-chart-and-table-card-header\"\n                  >\n                    <h2>Organization Users</h2>\n                  </div>\n                  {!error ? <OrganizationUserTable data={props.data} /> : noResult}\n                </div>\n              </div>\n            </SuspensionBoundary>\n            <div className=\"pagination-container\">\n              {pagination && <Pagination pagination={pagination} defaultPerPage={10} />}\n            </div>\n          </CCard>\n        </div>\n      )\n    }\n    return <Table data={organizationUserStatistics} />\n  }),\n)\n\nexport default <OrganizationUserStatistics />\n","import { AdminAnalyticsResponseRateHeader } from '../../components/admin/adminAnalytics/AdminAnalyticsResponseRateStatistics'\nimport { AdminAnalyticsSBCTimelineStatistics } from '../../components/admin/adminAnalytics/AdminAnalyticsSBCTimelineStatistics'\nimport { AdminAnalyticsTechnologyTypeStatistics } from '../../components/admin/adminAnalytics/AdminAnalyticsTechnologyTypeStatistics'\nimport { AdminAnalyticsGovUsersTimelineStatistics } from '../../components/admin/adminAnalytics/AdminAnalyticsGovUserTimelineStatistics'\nimport { AdminAnalyticsListingPageViewsStatistics } from '../../components/admin/adminAnalytics/AdminAnalyticsListingPageViewsStatistics'\nimport { ActiveConversationStatistics } from '../../components/admin/adminAnalytics/ActiveConversationStatistics'\nimport { DafUsersStatistics } from '../../components/admin/adminAnalytics/DafUsersStatistics'\nimport { SbcUserStatistics } from '../../components/admin/adminAnalytics/SbcUsersStatistics'\nimport { OrganizationUserStatistics } from '../../components/admin/adminAnalytics/OrganizationUserStatistic'\n\nexport const AdminAnalytics = () => {\n  return (\n    <div className=\"admin-analytics\">\n      <AdminAnalyticsResponseRateHeader />\n      <AdminAnalyticsTechnologyTypeStatistics />\n      <AdminAnalyticsSBCTimelineStatistics />\n      <AdminAnalyticsGovUsersTimelineStatistics />\n      <AdminAnalyticsListingPageViewsStatistics />\n      <ActiveConversationStatistics />\n      <DafUsersStatistics />\n      <SbcUserStatistics />\n      <OrganizationUserStatistics />\n    </div>\n  )\n}\n","import { SimpleCollapse } from '@mobilizeyourtech/vision-core-react'\nimport React from 'react'\nimport MobilizeVISIONLogo from '../../assets/brand/Ignite_Logo_Mobilize_Full_Color.png'\nimport { visionVisibilityIcon } from '../../assets/brand/vision_visibility_icon'\nimport { CCard, CCardBody, CLink } from '@coreui/react'\nimport { leftArrow } from '../../components/icons/leftArrow'\nimport { Link } from 'react-router-dom'\nimport { inject, observer } from 'mobx-react'\nimport { ApplicationStore } from '../../stores'\n\nconst choices = [\n  {\n    icon: visionVisibilityIcon('vision-badge-blue'),\n    header: 'I have a VISION Account',\n    nextStep: 'Connect your VISION account to Ignite',\n    instructions: (siteSettings: { [key: string]: any }) => {\n      return (\n        <ol>\n          <li>\n            <CLink className=\"clickable\" href={siteSettings.visionUrl} target={'_blank'}>\n              Login\n            </CLink>{' '}\n            to your VISION account\n          </li>\n          <li>Click &quot;Ignite SBIR|STTR&quot; in the left sidebar</li>\n          <li>\n            On the Ignite search page OR an Ignite storefront, click the &quot;View in Ignite&quot;\n            button\n          </li>\n          <li>Follow the instructions to create your Ignite account</li>\n        </ol>\n      )\n    },\n  },\n  {\n    icon: visionVisibilityIcon('vision-badge-grey'),\n    header: 'My organization has a VISION license, but I have not created my account',\n    nextStep: 'Create a VISION account and connect it to Ignite',\n    instructions: (siteSettings: { [key: string]: any }) => (\n      <div>\n        <ol>\n          <li>\n            <CLink\n              className=\"clickable\"\n              href=\"https://mobilizeyourtech.com/vision-signup\"\n              target={'_blank'}\n            >\n              Click here\n            </CLink>{' '}\n            for instructions on how to create your VISION account\n          </li>\n          <li>Click &quot;Ignite SBIR|STTR&quot; in the left sidebar</li>\n          <li>\n            On the Ignite search page OR an Ignite storefront, click the &quot;View in Ignite&quot;\n            button\n          </li>\n          <li>Follow the instructions to create your Ignite account</li>\n        </ol>\n\n        <div className=\"mt-2 not-sure-instruction\">\n          Not sure if your organization has a VISION license?\n        </div>\n\n        <div className=\"mt-1\">\n          <a href=\"mailto:support@mobilizeignite.com\">Click here</a> to email us and we&apos;ll help\n          you find out.\n        </div>\n      </div>\n    ),\n  },\n  {\n    icon: <i className=\"fas fa-user\" />,\n    header: 'My organization does not have a VISION license',\n    nextStep: (\n      <>\n        <CLink className={'clickable'} href={'/gov_user'}>\n          Click here\n        </CLink>{' '}\n        to create an Ignite account\n      </>\n    ),\n  },\n]\n\nexport type SignupChoiceProps = {\n  applicationStore?: ApplicationStore\n}\nexport const SignupChoice = inject('applicationStore')(\n  observer((props: SignupChoiceProps) => {\n    return (\n      <section className=\"SignupChoice\">\n        <div className=\"choice-header w-100 d-flex justify-content-center\">\n          <Link\n            className=\"nav-back clickable\"\n            data-testid=\"nav-back\"\n            aria-label=\"navigate back to signin\"\n            tabIndex={0}\n            to=\"/\"\n          >\n            {leftArrow()}\n          </Link>\n          <img\n            src={MobilizeVISIONLogo}\n            className=\"MobilizeVisionLogo mb-3\"\n            alt=\"Mobilize Vision Logo\"\n          />\n        </div>\n\n        <div className=\"choice-prompt mt-3 d-flex flex-column justify-content-center\">\n          <div className=\"text-center\">\n            <h5>\n              <b>Choose the option that best represents you</b>\n            </h5>\n          </div>\n          <div className={'d-flex justify-content-center'}>\n            <SimpleCollapse className={'why-matter-collapse'} toggleContent={'Why does it matter?'}>\n              <p className=\"prompt-text text-center\">\n                {/*Some SBIR/STTR companies choose to only show their storefronts to users with VISION*/}\n                {/*accounts connected. Connecting your VISION account to your Ignite account will*/}\n                {/*ensure that you can view these storefronts.*/}\n                {/*<br />*/}\n                {/*<br />*/}\n                VISION users get a VISION-verified badge {visionVisibilityIcon()}, establishing\n                greater trust and recognition in Ignite.\n              </p>\n            </SimpleCollapse>\n          </div>\n        </div>\n\n        <div className=\"d-flex w-100 justify-content-center gap-2 flex-wrap mt-2\">\n          {choices.map((choice, idx) => (\n            <CCard key={idx} className=\"choice-card\" data-testid={`signup-choice-${idx}`}>\n              <CCardBody>\n                {choice.icon}\n                <h5 className=\"mt-1\">\n                  <b>{choice.header}</b>\n                </h5>\n                <div className=\"mt-3\">Next Step: {choice.nextStep}</div>\n\n                {choice.instructions && (\n                  <SimpleCollapse\n                    data-testid={`signup-choice-instructions-${idx}`}\n                    className=\"mt-1\"\n                    toggleContent={'Click for instructions'}\n                  >\n                    {choice.instructions(props.applicationStore!.siteSettings!)}\n                  </SimpleCollapse>\n                )}\n              </CCardBody>\n            </CCard>\n          ))}\n        </div>\n      </section>\n    )\n  }),\n)\n"],"sourceRoot":""}