{"version":3,"file":"index-ClNILlFV.js","sources":["../../../../types/index.ts","../../../../core/auth.tsx","../../../../core/config.ts","../../../../core/errors.ts","../../../../core/api/base.ts","../../../../core/api/flag.ts","../../../../core/api/appConfiguration.ts","../../../../core/apm.ts","../../../../ui/Spinner/index.tsx","../../../../ui/Loadable/index.tsx","../../../../core/api/merchant.ts","../../types/graphql.tsx","../../types/map.tsx","../../../../uiv2/link.tsx","../../../../uiv2/spinner.tsx","../../../../uiv2/button.tsx","../../../../ui/Page/section.tsx","../../pages/home/index.tsx","../../../../ui/Banner/index.tsx","../../../../ui/Button/index.tsx","../../../../ui/ErrorBoundary/index.tsx","../../../../ui/Form/switch.tsx","../../../../ui/VerticalLayout/index.tsx","../../pages/setups/settings.tsx","../../pages/setups/shopify.tsx","../../../../ui/Color/index.tsx","../../pages/setups/referralLink.tsx","../../../../ui/Form/text.tsx","../../pages/setups/qrCode.tsx","../../../../uiv2/slideout.tsx","../../pages/setups/lightspeedRetailRSeries.tsx","../../pages/setups/embeddedMarketingPage.tsx","../../pages/setups/woocommerce.tsx","../../pages/setups/checkfront.tsx","../../../../core/window.tsx","../../pages/setups/rental.tsx","../../pages/insurance/product/channels.tsx","../../../../ui/Page/navigation.tsx","../../../../uiv2/select.tsx","../../../../ui/Table/index.tsx","../../../../uiv2/fieldset.tsx","../../pages/insurance/product/referrals.tsx","../../../../core/api/plaid.ts","../../../../ui/Badge/index.tsx","../../../../uiv2/input.tsx","../../../../uiv2/textarea.tsx","../../../../uiv2/checkbox.tsx","../../../../core/mapbox.tsx","../../pages/commercial/naics.tsx","../../pages/commercial/form.tsx","../../pages/insurance/product/payment.tsx","../../pages/insurance/product/payouts.tsx","../../pages/insurance/product/index.tsx","../../../../uiv2/dialog.tsx","../../pages/team/index.tsx","../../pages/risk/index.tsx","../../../../ui/Modal/slideout.tsx","../../../../ui/Form/builder.tsx","../../../../ui/Form/select.tsx","../../../../ui/Form/datepicker.tsx","../../pages/rental/components.tsx","../../pages/rental/RentalWaiverForm.tsx","../../pages/rental/RentalWaiverSentPage.tsx","../../../../core/statics.ts","../../pages/rental/RentalBookingDetailsPage.tsx","../../../../ui/Form/checkbox.tsx","../../../../ui/Form/address.tsx","../../../../ui/common.tsx","../../../../ui/Attachment/lozenge.tsx","../../../../ui/Attachment/index.tsx","../../pages/rental/RentalClaimForm.tsx","../../pages/rental/RentalAssetPage.tsx","../../../../ui/Form/radio.tsx","../../../../ui/Card/index.tsx","../../../../ui/Page/footer.tsx","../../../../ui/Page/index.tsx","../../../../core/stripe.tsx","../../../../core/analytics/googletags.ts","../../../../core/analytics/analytics.ts","../../../../core/payment.tsx","../../pages/rental/RentalSettings.tsx","../../pages/rental/index.tsx","../../pages/invite/index.tsx","../../pages/insurance/business/table.tsx","../../../../uiv2/listbox.tsx","../../../../ui/Logo/index.tsx","../../../../uiv2/heading.tsx","../../pages/commercial/context.tsx","../../pages/commercial/common.tsx","../../pages/insurance/business/index.tsx","../../pages/index.tsx","../../../../ui/Form/progress.tsx","../../authenticated.tsx","../../../../ui/Form/option.tsx","../../pages/personalization/forms.tsx","../../pages/personalization/index.tsx","../../onboard.tsx","../../../../core/ga.ts","../../../../ui/Form/digits.tsx","../../pages/signin/index.tsx","../../../../core/api/user.ts","../../../../core/debounce.ts","../../../../core/hubspot.tsx","../../pages/certificate/certificate.tsx","../../pages/certificate/skeleton.tsx","../../pages/certificate/index.tsx","../../pages/commercial/landing.tsx","../../../../uiv2/text.tsx","../../../../uiv2/divider.tsx","../../../../uiv2/badge.tsx","../../../../uiv2/combobox.tsx","../../../../uiv2/skeleton.tsx","../../pages/commercial/app.tsx","../../index.tsx"],"sourcesContent":["///////////////////////////////////////////////////////\n// SDK-specific types //\n///////////////////////////////////////////////////////\n\nimport { CSSProperties } from 'react';\n\nexport type EcommercePlatform = 'shopify' | 'magento' | 'custom';\n\nexport type DeepPartial = T extends Date | File | number | string\n ? T\n : T extends object\n ? {\n [P in keyof T]?: DeepPartial;\n }\n : T;\n\nexport interface InitOptions {\n apiKey: string;\n integrationID?: string;\n platform?: EcommercePlatform;\n apiBaseUrl?: string;\n metricsBaseUrl?: string;\n staticsBaseUrl?: string;\n environment?: string;\n}\n\nexport interface OysterWidgetState {\n // map of policy ID to policy for each policy added to cart\n Policies?: Record;\n}\n\nexport enum WidgetRenderStyle {\n default = '',\n switch = 'switch',\n single_line = 'single_line',\n cart_widget = 'cart_widget',\n registration_widget = 'registration_widget',\n card_selection_widget = 'card_selection_widget'\n}\n\nexport interface WidgetStyle {\n renderStyle?: WidgetRenderStyle;\n center?: boolean;\n title?: CSSProperties;\n addCoverageButton?: CSSProperties;\n fonts?: FontProperties[];\n}\n\nexport interface FontProperties {\n family: string;\n src: string;\n stretch?: string;\n style?: string;\n weight?: string;\n display?: string;\n unicodeRange?: string;\n}\n\nexport enum WidgetFlowStyle {\n product = 'product',\n hybrid = 'hybrid',\n full = 'full',\n single_click = 'single_click',\n registration = 'registration'\n}\n\nexport interface WidgetFlow {\n style: WidgetFlowStyle;\n enableDefaultInsurance?: boolean;\n}\n\nexport interface InjectOptions {\n products: Product[];\n selectedPolicyId?: string;\n hasInsuranceProductInCart?: boolean;\n insured?: Insured;\n style?: WidgetStyle;\n flow?: WidgetFlow;\n subChannel?: ReferralSubChannel;\n}\n\nexport interface InjectBadgesOptions {\n test?: string;\n}\n\nexport interface InjectSubtotalBadgeOptions {\n products?: Product[];\n addBadgeToItems?: boolean;\n invertBadgeColor?: boolean;\n}\n\nexport interface ShopifyCheckout {\n id: number;\n attributes: Record;\n email: string;\n\n // eslint-disable-next-line\n billing_address: any;\n\n // eslint-disable-next-line\n line_items: any[];\n\n metafields: Record>;\n productType?: ProductType;\n}\n\nexport interface ConfirmPurchaseOptions {\n policyIds: string[];\n productSkus: string[];\n insured?: Insured;\n shopifyCheckout?: ShopifyCheckout;\n injectPostPurchase?: boolean;\n}\n\nexport type InjectCallback = (selectedPolicy?: Policy) => void;\nexport type ConfirmPurchaseCallback = (policy: Policy | null, err?: Error) => void;\n\n///////////////////////////////////////////////////////\n// Types corresponding to product models //\n///////////////////////////////////////////////////////\n\nexport enum ProductType {\n bike = 'bike',\n offroad = 'offroad_vehicle',\n motorcycle = 'motorcycle',\n jewelry = 'jewelry',\n phone = 'phone',\n electronics = 'electronics'\n}\n\nexport enum AdditionalMerchantProductType {\n collectibles = 'collectibles',\n furniture = 'furniture',\n fashion = 'fashion',\n food_and_beverage = 'food_and_beverage',\n beauty_and_supplements = 'beauty_and_supplements',\n outdoor_sports = 'outdoor_sports',\n other = 'other'\n}\n\nexport type MerchantProductType = ProductType | AdditionalMerchantProductType;\n\nexport interface Product {\n ID?: string;\n Type: ProductType;\n SKU: string;\n Name: string;\n Description: string;\n ImageURL: string;\n Quantity: number;\n Price: Price;\n Pending?: boolean;\n HasNotReceived?: boolean;\n Details: T;\n}\n\nexport enum BikeType {\n roadTrack = 'road_track',\n mountain = 'mountain',\n hybridCruiser = 'hybrid_cruiser',\n recumbent = 'recumbent',\n tandem = 'tandem',\n bmx = 'bmx',\n tricycle = 'tricycle',\n electric = 'electric'\n}\n\nexport enum BikeFrameType {\n none = '',\n aluminum = 'aluminum',\n carbonFiber = 'carbon_fiber',\n steel = 'steel',\n titatium = 'titanium',\n wood = 'wood',\n other = 'other'\n}\n\nexport enum BikePowerSource {\n none = '',\n throttleAssist20MPH = 'throttle_assist_20_mph',\n pedalAssist20MPH = 'pedal_assist_20_mph',\n pedalAssist28MPH = 'pedal_assist_28_mph',\n other = 'other'\n}\n\nexport enum MotorProductType {\n // Motorcycles\n preferred_tour = 'preferred_tour',\n tour = 'tour',\n sport_tour = 'sport_tour',\n non_touring_bmw = 'non_touring_bmw',\n big_twin = 'big_twin',\n low_surcharge = 'low_surcharge',\n high_surcharge = 'high_surcharge',\n professional_racing_surcharge = 'professional_racing_surcharge',\n naked_sport = 'naked_sport',\n sportster = 'sportster',\n cruiser = 'cruiser',\n high_performance_cruiser = 'high_performance_cruiser',\n moped = 'moped',\n scooter = 'scooter',\n street_bike = 'street_bike',\n off_road_trail_bike = 'off_road_trail_bike',\n tour_trike = 'tour_trike',\n\n // Offroad vehicles\n sport_performance_atv = 'sport_performance_atv',\n recreation_utility_atv = 'recreation_utility_atv',\n super_utility_atv = 'super_utility_atv',\n golf_cart = 'golf_cart'\n}\n\nexport enum ActivationSource {\n TrackingNumber = 'TrackingNumber',\n SetStartDate = 'SetStartDate',\n ManuallyActivate = 'ManuallyActivate'\n}\n\nexport interface ActivationTrigger {\n Source: ActivationSource;\n TrackingNumber?: string;\n StartDate?: string;\n}\n\nexport interface MotorProduct {\n ModelYear: string;\n PurchaseYear: string;\n\n Type: MotorProductType;\n Make: string;\n Model: string;\n VIN: string;\n CCSize: string;\n\n EstimatedAnnualMileage: string;\n AccessoryValue?: Price;\n\n HasElectronicAlarm?: boolean;\n HasTrackingSystem?: boolean;\n HasLienHolder?: boolean;\n IsPerformanceEnhanced?: boolean;\n IsStructurallyModified?: boolean;\n}\n\nexport const MotorProductValidationKeys: (keyof MotorProduct)[] = [\n 'ModelYear',\n 'PurchaseYear',\n\n 'Type',\n 'Make',\n 'Model',\n 'VIN',\n 'CCSize',\n\n // 'EstimatedAnnualMileage', - this one is checked on a later page\n 'AccessoryValue'\n];\n\nexport interface BikeProduct {\n Type: BikeType;\n FrameType: BikeFrameType;\n PowerSource?: BikePowerSource;\n CanUnlock?: boolean;\n IsPendingSerialNumber?: boolean;\n StartLater?: boolean;\n\n ModelYear: string;\n PurchaseYear: string;\n Make: string;\n Model: string;\n FrameSerialNumber: string;\n IsSecondHandPurchase: boolean;\n\n TotalInsuredValue?: Price;\n}\n\nexport const BikeProductValidationKeys: (keyof BikeProduct)[] = [\n 'Type',\n 'FrameType',\n 'PowerSource',\n 'CanUnlock',\n 'ModelYear',\n 'PurchaseYear',\n 'Make',\n 'Model',\n 'FrameSerialNumber',\n 'TotalInsuredValue'\n];\n\nexport enum ElectronicsType {\n laptop = 'laptop',\n iPhone = 'iphone',\n smartPhone = 'smartphone',\n iPad = 'ipad',\n smallElectronics = 'small_electronics',\n gamingSystem = 'gaming_system',\n eReaderKindle = 'ereader_kindle',\n tablet = 'tablet'\n}\n\nexport interface ElectronicsProduct {\n Type: ElectronicsType;\n Manufacturer: string;\n Model: string;\n SerialNumber: string;\n PurchaseReceiptFileIDs?: string[];\n\n _PurchaseReceiptFiles?: File[];\n}\n\nexport const ElectronicsProductValidationKeys: (keyof ElectronicsProduct)[] = [\n 'Type',\n 'Manufacturer',\n 'Model',\n 'SerialNumber'\n];\n\nexport interface JewelryProduct {\n Type: string;\n Metal: string;\n Brand: string;\n StoneType: string;\n StoneWeight: string;\n StoneCarat: string;\n StoneColor: string;\n StoneClarity: string;\n InSafe: boolean;\n IsNewPurchase: boolean;\n AppraisalFileIDs?: string[];\n\n _AppraisalFiles?: File[];\n}\n\nexport const JewelryProductValidationKeys: (keyof JewelryProduct)[] = [\n 'Type',\n 'Metal',\n 'Brand',\n 'StoneType',\n 'StoneWeight',\n 'StoneCarat',\n 'StoneColor',\n 'StoneClarity'\n];\n\n///////////////////////////////////////////////////////\n// Types corresponding to policy models //\n///////////////////////////////////////////////////////\n\nexport enum Cadence {\n year = 'year',\n month = 'month'\n}\n\nexport enum PolicyState {\n unknown = '',\n offerSubmitted = 'offer_submitted',\n applicationSubmitted = 'application_submitted',\n quoteActive = 'quote_active',\n quoteSigned = 'quote_signed',\n policyBinding = 'policy_binding',\n policyInforce = 'policy_inforce',\n policyCanceled = 'policy_canceled',\n policyExpired = 'policy_expired'\n}\n\nexport enum PolicyType {\n bike = 'bike',\n markelBike = 'markel_bike',\n markelOffroad = 'markel_offroad',\n markelMotorcycle = 'markel_motorcycle',\n minicoJewelry = 'minico_jewelry',\n chubbJewelry = 'chubb_jewelry',\n worthAveElectronics = 'worth_ave_electronics'\n}\n\nexport interface PolicyTableValues {\n CreatedAt: Date;\n InsuredItems: Product[];\n}\n\nexport interface Policy {\n ID: string;\n Name: string;\n UserID: string;\n MerchantID: string;\n\n Type: PolicyType;\n State: PolicyState;\n\n InsuredItems: Product[];\n Underwriting: Underwriting;\n Coverage: Coverage;\n ReferralChannelInfo?: PolicyReferralChannelInfo;\n\n Price?: Price;\n PaymentCadence: Cadence;\n DisableAutoRenew: boolean;\n\n CreatedAt: Date;\n StartedAt: Date;\n ExpiresAt: Date;\n}\n\nexport interface Price {\n Amount: number;\n Currency: string;\n}\n\nexport interface Coverage {\n Deductible: DiscreteOption;\n Options: Option[];\n ActivationTrigger?: ActivationTrigger;\n}\n\nexport interface PolicyReferralChannelInfo {\n ReferralChannel: ReferralChannelType;\n ReferralSubChannel: ReferralSubChannel;\n Settings: MerchantReferralSettings | MarketingCampaignSettings | DirectReferralSettings;\n}\n\nexport enum ReferralSubChannel {\n product = 'ProductPage',\n addToCartButton = 'AddToCartButton',\n cart = 'CartPage',\n confirm = 'OrderConfirmationPage',\n defaultInsurance = 'DefaultInsurance',\n unknown = ''\n}\n\nexport interface MerchantReferralSettings {\n MerchantID: string;\n IntegrationID: string;\n}\n\nexport interface MarketingCampaignSettings {\n Source: string;\n Campaign: string;\n Term: string;\n Medium: string;\n PageHistory: string[];\n}\n\nexport interface DirectReferralSettings {\n Parameters: string;\n PageHistory: string[];\n}\n\nexport enum ReferralChannelType {\n ReferralChannelMerchant = 'Merchant',\n ReferralChannelMarketingCampaign = 'Marketing Campaign',\n ReferralChannelDirect = 'Direct'\n}\n\nexport enum BikeUsageType {\n casual = 'casual',\n fitness = 'fitness',\n commute = 'commute',\n competition = 'competition'\n}\n\nexport enum MarkelPersonalCharacteristicFlag {\n homeowner = 'homeowner',\n motorcycle_endorsed = 'motorcycle_endorsed',\n taken_safety_course = 'taken_safety_course',\n taken_mature_driver_course = 'taken_mature_driver_course'\n}\n\nexport interface MarkelMotorCriteria {\n ZipCode: string;\n\n YearsOfExperience: string;\n MinorViolations: string;\n MajorViolations: string;\n AtFaultAccidents: string;\n\n DriversLicenseNumber: string;\n DriversLicenseState: string;\n\n PersonalCharacteristicFlags: MarkelPersonalCharacteristicFlag[];\n}\n\nexport interface BikeCriteria {\n ZipCode: string;\n UsageTypes: BikeUsageType[];\n\n StorageAddressLine1: string;\n StorageAddressLine2: string;\n StorageCity: string;\n StorageState: string;\n StorageZipCode: string;\n ResidentialIsStorage: boolean;\n}\n\nexport interface MarkelBikeCriteria {\n ZipCode: string;\n UsageTypes: BikeUsageType[];\n\n StorageAddressLine1: string;\n StorageAddressLine2: string;\n StorageCity: string;\n StorageState: string;\n StorageZipCode: string;\n ResidentialIsStorage: boolean;\n YearsOfExperience: string;\n}\n\nexport enum JewelryUnderwritingFlag {\n default = 'default',\n exhibition = 'exhibition',\n bankruptcy = 'bankruptcy',\n judgment = 'judgment',\n conviction = 'conviction'\n}\n\nexport enum JewelryStorageLocationFlag {\n central_station_fire = 'central_station_fire',\n burglar_alarm = 'burglar_alarm',\n central_station_burglar_alarm = 'central_station_burglar_alarm',\n deadbolts = 'deadbolts',\n below_ground = 'below_ground',\n off_the_ground = 'off_the_ground',\n near_fire_hydrant = 'near_fire_hydrant',\n flood_zone = 'flood_zone',\n has_doorman = 'has_doorman',\n storage_climate_controlled = 'storage_climate_controlled'\n}\n\nexport interface JewelryPriorLoss {\n lossIdentifier: string;\n dateOfLoss: Date;\n lossAmount: number;\n description: string;\n}\n\nexport interface JewelryCriteria {\n ZipCode: string;\n PriorLosses: JewelryPriorLoss[];\n UnderwritingFlags: JewelryUnderwritingFlag[];\n UnderwritingJustification: string;\n\n StorageStreetAddress: string;\n StorageAptFloor: string;\n StorageAptUnit: string;\n StorageCity: string;\n StorageState: string;\n StorageZipCode: string;\n StorageIsResidential: boolean;\n\n ConstructionType: string;\n ConstructionYear: string;\n StorageLocationFlags: JewelryStorageLocationFlag[];\n\n HasAdditionalInsured: boolean;\n AdditionalInsuredFirstName: string;\n AdditionalInsuredLastName: string;\n\n IsCurrentlyInsured: boolean;\n CurrentInsurerName: string;\n}\n\nexport interface ChubbAddress {\n line1: string;\n line2: string;\n city: string;\n postalCode: string;\n stateOrProvinceName: string;\n}\n\nexport interface ChubbLoss {\n lossIdentifier: string;\n causeOfLossCode: string;\n sourceOfLossCode: string;\n causeOfLossDescription: string;\n dateOfLoss: string;\n lossPaidDate: string;\n lossPaidAmount: number;\n lossType: string;\n lossCatastrophe: boolean;\n lossStatus: string;\n}\nexport interface ChubbJewelryCriteria {\n ZipCode: string;\n PriorLosses: ChubbLoss[];\n\n StorageAddress: ChubbAddress;\n StorageIsResidential: boolean;\n\n ConstructionType: string;\n ResidenceType: string;\n\n AcceptConsumerDisclosure: string;\n\n HasAdditionalInsured: boolean;\n AdditionalInsuredFirstName: string;\n AdditionalInsuredLastName: string;\n AdditionalInsuredOccupation: string;\n AdditionalInsuredOccupationDetails: string;\n AdditionalInsuredDateOfBirth: { Day: string; Month: string; Year: string };\n\n IsCoveredItemsElevated: boolean;\n IsStoredInClimateControlledStorage: boolean;\n\n OccupationDetails: string;\n OtherOccupationDetails: string;\n\n CentralStationFireAlarm: boolean;\n TwentyFourHourSecurity: boolean;\n SignalContinuity: boolean;\n FullTimeCaretaker: boolean;\n GatedCommunity: boolean;\n GatedCommunityPatrol: boolean;\n FiftyPercentJewelryKeptInVault: boolean;\n SafeAtHome: boolean;\n HasInHouseEmployees: boolean;\n InHouseEmployees: string;\n InsuredTravel: string;\n AverageJewelryValueOnTravel: number;\n JewelrySafeguardOnTravel: string;\n JewelrySafeguardAtHomeInsuredOnTravel: string;\n}\n\nexport interface Underwriting {\n Criteria:\n | MarkelMotorCriteria\n | BikeCriteria\n | MarkelBikeCriteria\n | JewelryCriteria\n | ChubbJewelryCriteria;\n Insured: Insured;\n Underwriter?: string;\n}\n\nexport type OptionDetails =\n | BooleanOption\n | DiscreteOption\n | MultiDiscreteOption\n | RangeOption\n | TextOption;\n\nexport enum OptionType {\n boolean = 'boolean',\n discrete = 'discrete',\n multi_discrete = 'multi_discrete',\n range = 'range',\n text = 'text'\n}\n\nexport interface Option {\n ID: string;\n Name: string;\n Description: string;\n Required: boolean;\n Enabled: boolean;\n Type: OptionType;\n Option: OptionDetails;\n}\n\nexport interface BooleanOption {\n ValueLabel: string;\n}\n\nexport interface DiscreteOption {\n Value: string;\n AllowedValues: string[];\n AllowedValueDescriptions: Record;\n}\n\nexport interface MultiDiscreteOption {\n Values: string[];\n AllowedValues: string[];\n AllowedValueDescriptions?: Record;\n}\n\nexport interface RangeOption {\n Value: number;\n MinValue: number;\n MaxValue: number;\n Step: number;\n}\n\nexport interface TextOption {\n Value: string;\n Validators: string[];\n}\n\nexport enum Gender {\n male = 'male',\n female = 'female',\n non_binary = 'non_binary',\n other = 'other'\n}\n\nexport interface Insured {\n FirstName: string;\n LastName: string;\n Email: string;\n Phone?: string;\n Occupation?: string;\n Gender?: Gender;\n MaritalStatus?:\n | 'married'\n | 'single'\n | 'divorced'\n | 'separated'\n | 'widowed'\n | 'civil_union'\n | 'domestic_partnership';\n DateOfBirth?: { Day: string; Month: string; Year: string };\n\n AddressLine1?: string;\n AddressLine2?: string;\n AddressCity?: string;\n AddressState?: string;\n AddressZipCode?: string;\n}\n\n///////////////////////////////////////////////////////\n// Types corresponding to files and metadata //\n///////////////////////////////////////////////////////\n\nexport interface AttachmentFile {\n ID: string;\n Name: string;\n Type: string;\n Size: number;\n\n Attachment?: AttachmentDetails;\n}\n\nexport interface AttachmentDetails {\n FileID: string;\n RefID: string;\n Role: DefaultFileRoles;\n EntityType: string;\n\n CreatedAt: Date;\n UpdatedAt: Date;\n}\n\nexport enum DefaultFileRoles {\n jewelryAppraisal = 'JewelryAppraisal',\n purchaseReceipt = 'PurchaseReceipt',\n\n waiverClaimAttachment = 'WaiverClaimAttachment',\n waiverLDWDocument = 'LossDamageWaiver',\n signedRentalAgreement = 'SignedRentalAgreement',\n merchantRentalPDTA = 'ProgramDescriptionTermsAccepance',\n\n commercialDocument = 'CommercialDocument',\n unknown = 'Unknown'\n}\n\n///////////////////////////////////////////////////////\n// Types corresponding to claim models //\n///////////////////////////////////////////////////////\n\nexport enum ClaimState {\n unknown = '',\n awaitingProcessing = 'awaiting_processing',\n collectingInformation = 'collecting_information',\n settled = 'settled',\n denied = 'denied'\n}\n\nexport enum ClaimType {\n // General claim types\n unknown = '',\n theft = 'theft',\n damage = 'damage', // for electronics: includes cracked screen and spills\n injury = 'injury', // bike only\n liability = 'liability', // bike only\n other = 'other',\n\n // Electronics-specific claim types\n electricalBreakdown = 'electrical_breakdown', // only if caused by lightning\n mechanicalBreakdown = 'mechanical_breakdown', // only if warranty is added\n naturalDisaster = 'natural_disaster', // fire, flood, lightning, natural disaster, wind\n waterDamage = 'water_damage' // includes spill\n}\n\nexport interface Claim {\n ID: string;\n State: ClaimState;\n UserID: string;\n Policy: Policy;\n Product: Product;\n\n Types: ClaimType[];\n Sections: ClaimSection[];\n\n IncidentDate: Date;\n Attachments: Record;\n Data: Record;\n\n CreatedAt: Date;\n UpdatedAt: Date;\n}\n\nexport enum ClaimSectionItemType {\n checkbox = 'checkbox',\n select = 'select',\n text = 'text',\n date = 'date',\n location = 'location',\n longText = 'long_text',\n upload = 'upload',\n confirm = 'confirm'\n}\n\nexport type ClaimSectionItemDetails =\n | CheckboxItem\n | SelectItem\n | TextItem\n | DateItem\n | LocationItem\n | LongTextItem\n | UploadItem\n | ConfirmItem;\n\nexport interface ClaimSection {\n ID: string;\n Field: string;\n Title: string;\n Description: string;\n Items: ClaimSectionItem[];\n}\n\nexport interface ClaimSectionItem {\n SubField: string;\n SubTitle?: string;\n Description?: string;\n Type: ClaimSectionItemType;\n Item: ClaimSectionItemDetails;\n}\n\n// eslint-disable-next-line\nexport interface CheckboxItem {}\n\nexport interface SectionItemDescription {\n Title: string;\n Description: string;\n Value: string;\n Icon: string;\n}\n\nexport interface SelectItem {\n AllowedValues: SectionItemDescription[];\n}\n\nexport interface TextItem {\n Required?: boolean;\n}\n\n// eslint-disable-next-line\nexport interface DateItem {}\n\nexport interface LocationItem {\n AddressField: string;\n LongitudeField: string;\n LatitudeField: string;\n}\n\nexport interface LongTextItem {\n Field: string;\n}\n\nexport interface UploadItem {\n Name: string;\n Description: string;\n AllowedTypes: string[];\n MaxSize: number;\n NumRequired: number;\n}\n\nexport interface Confirmation {\n Title: string;\n Description: string;\n}\n\nexport interface ConfirmItem {\n Confirmation: Confirmation[];\n}\nexport interface ClaimAttachment {\n ID: string;\n Name: string;\n Type: string;\n Size: number;\n URL: string;\n}\n\n///////////////////////////////////////////////////////\n// Types corresponding to user models //\n///////////////////////////////////////////////////////\n\nexport interface User {\n ID: string;\n FirstName: string;\n LastName: string;\n Email: string;\n PublicHandle: string;\n CreatedAt: Date;\n}\n\nexport interface UserVerification {\n ID: string;\n Secret: string;\n Status: string;\n Error: string;\n CreatedAt: Date;\n}\n\nexport enum ReferralStatus {\n created = 'created',\n fulfilled = 'fulfilled'\n}\n\nexport interface UserReferral {\n ID: string;\n Referrer: {\n UserID: string;\n FirstName: string;\n LastName: string;\n Email: string;\n BusinessName: string;\n };\n Referee: {\n UserID: string;\n FirstName: string;\n LastName: string;\n Email: string;\n BusinessName: string;\n };\n Status: ReferralStatus;\n Reward: number;\n CreatedAt: Date;\n UpdatedAt: Date;\n}\n\nexport interface AccountSummary {\n PaymentMethods?: PaymentMethod[];\n PastStatements: Statement[];\n User?: User;\n Verification?: UserVerification;\n}\n\nexport enum VerificationStatus {\n RequiresInput = 'requires_input',\n Processing = 'processing',\n Verified = 'verified',\n Canceled = 'canceled'\n}\n\nexport interface PaymentMethod {\n ID: string;\n Brand: string;\n ExpMonth: number;\n ExpYear: number;\n LastFour: string;\n Default: boolean;\n}\n\nexport interface Statement {\n ID: string;\n\n StatementDate: Date;\n GeneratedAt: Date;\n\n PolicyStatements: PolicyStatement[];\n Currency: string;\n TaxRate: number;\n\n SubTotal: number;\n TaxTotal: number;\n Total: number;\n}\n\nexport interface PolicyStatement {\n Name: string;\n LineItems: LineItem[];\n Adjustments: LineItem[];\n Total: number;\n}\n\nexport interface LineItem {\n Title: string;\n Description: string;\n Price: Price;\n}\n\n///////////////////////////////////////////////////////\n// Types corresponding to general models //\n///////////////////////////////////////////////////////\n\nexport interface ValidationError {\n Field: string;\n SubField?: string;\n Message: string;\n}\n\n///////////////////////////////////////////////////////\n// Types corresponding to merchant models //\n///////////////////////////////////////////////////////\n\nexport interface Address {\n AddressLine1: string;\n AddressLine2?: string;\n\n // Level 1 administrative division depending on country. For example, this is\n // the state in the U.S., the province in Canada, etc.\n Zone: string;\n\n // Level 2 administrative division depending on country. For example, this is\n // the county in the U.S., prefectural city in China, division in India, etc.\n SubZone?: string;\n\n // Level 3 administrative division depending on country. For example, this is\n // the city in the U.S., a muncipality in Austria, a ward in Singapore, etc.\n City: string;\n\n // Country-specific mailing identifier, e.g. ZIP Code in the U.S., Post Code\n // in the U.K., etc.\n PostalCode: string;\n}\n\nexport enum PaymentMethodType {\n Electronic = 'Electronic',\n Check = 'Check',\n Unknown = ''\n}\n\nexport enum SalesChannelType {\n Online = 'Online',\n Dealer = 'Dealer',\n InStore = 'InStore',\n Rental = 'Rental'\n}\n\nexport enum OnlineSalesChannelType {\n Shopify = 'Shopify',\n WooCommerce = 'WooCommerce',\n BigCommerce = 'BigCommerce',\n Lightspeed = 'Lightspeed eCommerce',\n Checkfront = 'Checkfront',\n Adobe = 'Adobe Commerce (Magento)',\n Custom = 'Custom',\n Other = 'Other'\n}\n\nexport enum InStoreSalesChannelType {\n ShopifyPOS = 'Shopify PoS',\n LightspeedRSeries = 'Lightspeed R-Series',\n LightspeedXSeries = 'Lightspeed X-Series',\n Ascend = 'Ascend',\n Edge = 'EDGE',\n Square = 'Square',\n Other = 'Other'\n}\n\nexport enum BusinessOperationType {\n RetailECommerce = 'Retail or E-Commerce',\n Wholesale = 'Wholesale',\n Manufacturing = 'Manufacturing',\n ServiceOrRepair = 'Service or Repair',\n Rental = 'Rental',\n Other = 'Other'\n}\n\nexport enum BusinessInsuranceType {\n BusinessOwners = 'Business Owners',\n CommercialAuto = 'Commercial Auto',\n Cyber = 'Cyber',\n DirectorsAndOfficers = 'Directors and Officers',\n GeneralLiability = 'General Liability',\n JewelersBlock = 'Jewelers Block',\n Other = 'Other',\n Property = 'Property',\n Rental = 'Rental',\n ShippingAndTransportation = 'Shipping and Transportation',\n UmbrellaExcess = 'Umbrella or Excess',\n WorkersCompensation = 'Workers Compensation'\n}\n\nexport enum RentalProductType {\n BikesAndEbikes = 'Bikes and eBikes',\n Kayaks = 'Kayaks',\n Other = 'Other',\n Paddleboards = 'Paddleboards'\n}\n\nexport interface Personalization {\n // Toggle the various types of insurance in the onboarding flow\n BusinessInsuranceEnabled: boolean;\n ProductInsuranceEnabled: boolean;\n RentalInsuranceEnabled: boolean;\n\n // Business insurance settings\n BusinessOperationTypes?: BusinessOperationType[];\n BusinessOperationTypesOtherDesc: string;\n\n BusinessRevenueBreakdownRetail: string;\n BusinessRevenueBreakdownWholesale: string;\n BusinessRevenueBreakdownManufacturing: string;\n BusinessRevenueBreakdownServiceOrRepair: string;\n BusinessRevenueBreakdownRental: string;\n BusinessRevenueBreakdownOther: string;\n BusinessRevenueBreakdownRentalPercentGuided: string;\n\n BusinessTotalPayroll: string;\n\n BusinessManufactureOrWholesaleOwnBrand?: boolean;\n\n BusinessInsuranceTypes?: BusinessInsuranceType[];\n BusinessInsuranceTypesOtherDesc: string;\n\n BusinessNumberOfPriorLosses?: string;\n\n BusinessInsuranceFilloutFormSubmitted: boolean;\n\n // Personal insurance settings\n SalesChannels?: SalesChannelType[];\n\n OnlineSalesChannelType?: OnlineSalesChannelType;\n OnlineSalesChannelName?: string;\n ShopifyAdminURL?: string;\n\n InStoreSalesChannelType?: InStoreSalesChannelType;\n InStoreSalesChannelName?: string;\n\n RentalChannelName?: string;\n\n ProductAnnualRevenue: string;\n\n // Rental insurance settings\n RentalProductTypes?: RentalProductType[];\n RentalProductTypeOtherDesc: string;\n\n RentalMotorizedAssetsExceedEBikeClassification?: boolean;\n\n RentalMaximumAssetValue: string;\n RentalAverageAssetValue: string;\n\n RentalAnnualRevenue: string;\n RentalAnnualVolume: string;\n\n RentalPlatformName: string;\n RentalPointOfSaleName: string;\n}\n\nexport interface BusinessProfile {\n Name: string;\n DBA: string;\n Email: string;\n Phone: string;\n Domain: string;\n Address: Address;\n PaymentMethod: PaymentMethodType;\n\n ProductVerticals?: ProductType[];\n Personalization: Personalization;\n}\n\nexport interface Merchant {\n ID: string;\n MercuryRecipientID: string;\n BusinessProfile: BusinessProfile;\n CreatedAt: Date;\n PublicHandle: string;\n}\n\nexport interface MerchantUser {\n ID: string;\n MerchantID: string;\n\n FirstName: string;\n LastName: string;\n Email: string;\n Phone: string;\n\n ActivationToken?: string;\n CreatedAt: Date;\n}\n\nexport interface MerchantIntegration {\n ID: string;\n Type: MerchantIntegrationType;\n Settings: MerchantIntegrationSettings;\n Status: MerchantIntegrationStatus;\n}\n\nexport enum MerchantIntegrationStatus {\n active = 'Active',\n pending = 'Pending',\n disabled = 'Disabled',\n inactive = 'Inactive'\n}\n\nexport enum MerchantIntegrationType {\n qr_code = 'QRCode',\n referral_link = 'ReferralLink',\n embeddable_marketing_page = 'EmbeddableMarketingPage',\n shopify = 'Shopify',\n custom = 'Custom',\n checkfront = 'Checkfront',\n lsretail_rseries = 'LSRetailRSeries',\n woocommerce = 'WooCommerce',\n not_available = ''\n}\n\nexport type MerchantIntegrationSettings =\n | ShopifyIntegrationSettings\n | LSRetailRSeriesIntegrationSettings\n | QRCodeIntegrationSettings\n | ReferralLinkIntegrationSettings\n | EmbeddableMarketingPageIntegrationSettings\n | WooCommerceIntegrationSettings\n | CustomIntegrationSettings;\n\nexport interface ShopifyIntegrationSettings {\n ShopName: string;\n InsuranceProductID?: string;\n CartPageWidgetEnabled: boolean;\n OrderConfirmationPageWidgetEnabled: boolean;\n ProductPageAddToCartTriggerEnabled: boolean;\n ProductPageWidgetEnabled: boolean;\n UseOysterProductAsIndicator?: boolean;\n OrderConfirmationPageWidgetFirstLoad: Date;\n}\n\nexport interface LSRetailRSeriesIntegrationSettings {\n AccountID: string;\n AccountName: string;\n EmailMarketingEnabled: boolean;\n EmailMarketingRequiresOptIn: boolean;\n EmailMarketingCategoriesEnabled: string[] | null;\n}\n\nexport interface QRCodeIntegrationSettings {\n ReferralLink: string;\n BrandColor?: string;\n FirstDownload?: string;\n}\n\nexport interface ReferralLinkIntegrationSettings {\n ReferralLink: string;\n BrandColor?: string;\n FirstPageLoad?: string;\n}\n\nexport interface EmbeddableMarketingPageIntegrationSettings {\n ReferralLink: string;\n FirstPageLoad?: string;\n}\n\nexport interface WooCommerceIntegrationSettings {\n BaseURL: string;\n OysterVirtualProductID?: number;\n CartPageWidgetEnabled: boolean;\n OrderConfirmationPageWidgetEnabled: boolean;\n ProductPageAddToCartTriggerEnabled: boolean;\n ProductPageWidgetEnabled: boolean;\n}\n\nexport interface CustomIntegrationSettings {\n Data: string;\n}\n\nexport interface MerchantRentalConfiguration {\n ID: string;\n MerchantID: string;\n Details: MerchantRentalConfigurationDetails;\n}\n\nexport interface PublicMerchantRentalConfiguration {\n BillingMode: BillingMode;\n UnifiedWaiverFlowEnabled: boolean;\n AutoRenewWaiver: boolean;\n}\n\nexport enum BillingMode {\n Customer = 'Customer',\n Merchant = 'Merchant'\n}\n\nexport interface MerchantRentalConfigurationDetails {\n BillingMode: BillingMode;\n Pricing: RentalPricingConfiguration;\n State: RentalPolicyState;\n PolicyDocument: AttachmentFile;\n AutoRenewWaiver: boolean;\n UnifiedWaiverFlowEnabled: boolean;\n}\n\nexport enum RentalPolicyState {\n unknown = 'Unknown',\n registered = 'Registered',\n submitted = 'Submitted',\n approved = 'Approved',\n approved_blanket = 'ApprovedBlanketPolicy',\n denied = 'Denied'\n}\n\nexport interface RentalPricingConfiguration {\n Currency: string;\n AssetValueUnitDenominator: number;\n DailyRatingPerValueUnit: number;\n WeeklyRatingPerValueUnit: number;\n MonthlyRatingPerValueUnit: number;\n MinimumPremium: number;\n\n MerchantFeePercent: number;\n MerchantFeeAbs: number;\n MerchantDeductible: number;\n PlatformFeePercent: number;\n PlatformFeeAbs: number;\n}\n\nexport enum MercuryPaymentTypes {\n electronic = 'electronic',\n check = 'check',\n unknown = ''\n}\n\nexport interface ReferralLinkIntegration {\n MerchantName: string;\n IntegrationID: string;\n IntegrationType: MerchantIntegrationType;\n Settings: ReferralLinkIntegrationSettings;\n Disabled?: boolean;\n}\n\nexport enum FeatureFlagExperiments {\n oneliner_widget = 'force_render_oneliner_widget',\n single_click_flow = 'single_click_flow',\n show_logo_on_widget = 'show_logo_on_widget'\n}\n\nexport interface FeatureFlag {\n ID: string;\n Value: boolean;\n}\n\nexport enum MerchantAppType {\n rental = 'rental',\n unknown = ''\n}\n\nexport interface WaiverEntry {\n Waiver?: RentalWaiver;\n Booking?: RentalBooking;\n}\n\nexport enum WaiverState {\n pending = 'Pending',\n canceled = 'Canceled',\n active = 'Active',\n expired = 'Expired',\n upcoming_renewal = 'UpcomingRenewal',\n renewal_canceled = 'RenewalCanceled',\n unknown = ''\n}\n\nexport interface RentalWaiver {\n ID: string;\n MerchantID: string;\n RentalBookingID: string;\n State: WaiverState;\n Details: WaiverDetails;\n}\n\nexport interface WaiverDetails {\n BillingMode: BillingMode;\n WaiverReferenceNumber: string;\n Assets: WaiverAsset[];\n Premium: WaiverPremium;\n PremiumRounding: Price;\n SignatureReference?: AttachmentFile;\n}\n\nexport interface WaiverAsset {\n // Either Asset or BookingLineItem will be present\n Asset?: RentalAsset;\n Premium: WaiverPremium;\n Accessories: AssetAccessory[];\n BookingLineItem?: BookingLineItem;\n}\n\nexport interface WaiverPremium {\n Currency: string;\n Base: number;\n Total: number;\n\n ProcessingFeeAmount: number;\n MerchantFeeAmount: number;\n OysterFeeAmount: number;\n}\n\nexport interface RentalAsset {\n ID: string;\n MerchantID: string;\n\n Type: AssetType;\n Name: string;\n Description: string;\n Value: number;\n Details: AssetDetails;\n}\n\nexport enum AssetType {\n bicycle = 'Bicycle',\n kayak = 'Kayak',\n paddleboard = 'Paddleboard',\n scooter = 'Scooter',\n motorcycle = 'Motorcycle',\n atv = 'ATV',\n other = 'Other'\n}\n\nexport interface AssetDetails {\n SerialNumber: string;\n AvailableAccessories: AssetAccessory[];\n}\n\nexport interface AssetAccessory {\n Name: string;\n Value: number;\n}\n\nexport interface RentalBooking {\n ID: string;\n MerchantID: string;\n\n State: RentalBookingState;\n Details: RentalBookingDetails;\n StartTime: Date;\n EndTime: Date;\n}\n\nexport enum RentalBookingState {\n Unknown = '',\n Confirmed = 'Confirmed'\n}\n\nexport interface BookingLineItem {\n Name: string;\n SKU: string;\n ExternalID: string;\n SerialNumber: string;\n StartDate: Date;\n EndDate: Date;\n Total: number;\n SubTotal: number;\n TaxTotal: number;\n Quantity: number;\n}\n\nexport interface RentalBookingDetails {\n BookingReference: string;\n Insured: Insured;\n Assets?: RentalAsset[];\n Accessories: AssetAccessory[];\n AutoRenew: boolean;\n BookingPlatformDomain?: string;\n BookingLineItems?: BookingLineItem[];\n}\n\nexport interface RentalClaim {\n ID: string;\n MerchantID: string;\n RentalWaiverID: string;\n\n State: RentalClaimState;\n Details: RentalClaimDetails;\n}\n\nexport enum RentalClaimState {\n unknown = '',\n logged = 'Logged',\n submitted = 'Submitted',\n approved = 'Approved',\n denied = 'Denied',\n requires_information = 'RequiresInformation'\n}\n\nexport enum RentalDamageType {\n unknown = '',\n fire = 'Fire',\n theft = 'Theft',\n water = 'Water',\n accident = 'Accident',\n other = 'Other'\n}\n\nexport interface RentalClaimDetails {\n ClaimNumber: string;\n Assets: WaiverAsset[];\n\n IncidentDate: Date;\n IncidentCause: string;\n IncidentAddress: RentalClaimAddress;\n\n DamageType: RentalDamageType;\n\n PoliceReportFiled?: boolean;\n NameOfEmergencyDepartment?: string;\n ReportOrIncidentNumber?: string;\n SourceOfWaterDamage?: string;\n EquipmentExposedToRain?: boolean;\n HasOtherInsuranceCoverage?: boolean;\n}\n\nexport interface RentalClaimAddress {\n AddressLine1?: string;\n AddressLine2?: string;\n AddressCity?: string;\n AddressState?: string;\n AddressZipCode?: string;\n}\n\nexport enum TransactionType {\n credit = 'Credit',\n debit = 'Debit'\n}\n\nexport enum TransactionState {\n created = 'Created',\n pending = 'Pending',\n success = 'Success',\n failure = 'Failure',\n canceled = 'Canceled',\n unknown = ''\n}\n\nexport enum TransactionProcessor {\n stripe = 'Stripe',\n mercury_ach = 'MercuryACH',\n mercury_check = 'MercuryCheck'\n}\n\nexport interface Transaction {\n ID: string;\n PaymentAccountID: string;\n\n Type: TransactionType;\n State: TransactionState;\n Processor: TransactionProcessor;\n ProcessorID: string;\n\n Amount: number;\n Currency: string;\n\n CreatedAt: Date;\n UpdatedAt: Date;\n ClearedAt: Date;\n}\n\nexport enum BusinessLocationType {\n unknown = '',\n home = 'Home',\n buildingLeased = 'BuildingLeased',\n buildingOwned = 'BuildingOwned'\n}\n\nexport interface BusinessInformation {\n // Identity\n BusinessName: string;\n DBA: string;\n Email: string;\n Website: string;\n FirstName?: string;\n LastName?: string;\n PhoneNumber?: string;\n\n // Operation\n ProductVerticals: ProductType[];\n Operations?: BusinessOperationType[];\n InsuranceTypes?: BusinessInsuranceType[];\n NumberOfEmployees?: number;\n BusinessAgeInMonths?: number;\n OptInOysterBundle?: boolean;\n ManufactureOrWholesaleOwnBrand?: boolean;\n\n // Location\n MailingAddress?: Address;\n Address?: Address;\n SquareFootage?: number;\n LocationType?: BusinessLocationType;\n HasSprinklers?: boolean;\n BuildingValue?: number;\n BPPValue?: number;\n\n // Limits\n GLLimit?: number;\n BPPLimit?: number;\n BuildingLimit?: number;\n\n // Stats\n AnnualRevenue?: number;\n AnnualPayroll?: number;\n RetailRevenue?: number;\n WholesaleRevenue?: number;\n ManufacturingRevenue?: number;\n ServiceOrRepairRevenue?: number;\n RentalRevenue?: number;\n OtherRevenue?: number;\n RentalPercentGuided?: number;\n\n BPPDeductible?: number;\n BuildingDeductible?: number;\n\n PolicyStartDate?: Date;\n}\n\nexport enum WorflowStatus {\n Started = 'started',\n Completed = 'completed',\n Canceled = 'canceled',\n Failed = 'failed'\n}\n\nexport enum InsightSourceType {\n Shopify = 'shopify',\n PolicyDocument = 'policy_doc'\n}\n\nexport interface WorkflowError {\n Code: string;\n Desc: string;\n}\n\nexport interface Insights {\n ID: string;\n WorkflowID: string;\n Source: InsightSourceType;\n\n BusinessInformation: BusinessInformation;\n WorkflowStatus: WorflowStatus;\n WorkflowError: WorkflowError;\n}\n\nexport interface CommercialPolicyQuote {\n ID: string;\n\n Type: BusinessInsuranceType;\n Limit: number;\n Quote: Price;\n OysterPartnerQuote: Price;\n StartDate: Date;\n EndDate: Date;\n\n CreatedAt: Date;\n}\n\nexport interface BusinessInsuranceApplication {\n ID: string;\n MerchantID: string;\n\n BusinessInformation: BusinessInformation;\n Integrations?: MerchantIntegration[];\n FileIDs?: string[];\n\n // TODO: Rename this to Extractions\n Insights: Insights[];\n\n AggregatedInformation: BusinessInformation;\n\n Quotes?: CommercialPolicyQuote[];\n\n // TODO: Rename this to Insights\n AIInsights: string[];\n CreatedAt: Date;\n UpdatedAt: Date;\n}\n","import apm from '@oysterjs/core/apm';\n\nimport * as React from 'react';\nimport { MerchantUser, User } from '@oysterjs/types';\n\ninterface Auth {\n Token?: string;\n // TODO: the backend currently returns a separate field, `MerchantUser`\n // for merchant users. We should unify these based on the typing here.\n User?: T;\n MerchantUser?: MerchantUser;\n}\n\nexport type SetAuthFn = (auth: Auth) => void;\n\nexport const useAuth = (): [Auth, SetAuthFn] => {\n const getAuth = () => {\n const data = window.localStorage.getItem('oyster_token');\n if (data) {\n const auth: Auth = JSON.parse(data);\n apm().setUserContext({\n id: auth.User?.ID || auth.MerchantUser?.ID,\n email: auth.User?.Email || auth.MerchantUser?.Email\n });\n return auth;\n }\n\n return {};\n };\n\n const setAuth = (auth: Auth) => {\n apm().setUserContext({\n id: auth.User?.ID || auth.MerchantUser?.ID,\n email: auth.User?.Email || auth.MerchantUser?.Email\n });\n\n window.localStorage.setItem('oyster_token', JSON.stringify(auth));\n _setAuth(auth);\n };\n\n const [auth, _setAuth] = React.useState(getAuth());\n\n React.useEffect(() => {\n const updateAuth = () => setAuth(getAuth());\n window.addEventListener('storage', updateAuth);\n return () => window.removeEventListener('storage', updateAuth);\n }, []);\n\n return [auth, setAuth];\n};\n\nexport const getToken = (): string | null => {\n const data = window.localStorage.getItem('oyster_token');\n return !data ? null : JSON.parse(data)?.Token;\n};\n\nexport const getUser = (): T | null => {\n const data = window.localStorage.getItem('oyster_token');\n return !data ? null : JSON.parse(data)?.User || JSON.parse(data)?.MerchantUser;\n};\n\nexport const resetToken = (redirect?: string): void => {\n window.localStorage.removeItem('oyster_token');\n window.location.href = `/signin${redirect ? `?redirect=${encodeURIComponent(redirect)}` : ''}`;\n};\n","export type Environment = 'production' | 'staging' | 'dev' | 'local';\n\nexport type Service = 'getoyster' | 'dashboard' | 'partners' | 'oysterjs' | 'webhooks';\nexport type Backend = 'admin' | 'api' | 'merchant' | 'integrate' | 'metrics' | 'statics';\n\nconst getEnvironment = (): Environment => {\n if (typeof window === 'undefined') {\n return 'local';\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const environment = process.env.OYSTER_ENVIRONMENT || window?.oyster?.opts?.environment;\n switch (environment) {\n case 'production':\n case 'staging':\n case 'dev':\n case 'local':\n return environment;\n default:\n return 'local';\n }\n};\n\nconst getApiBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://api.withoyster.com';\n case 'staging':\n return 'https://api.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('api');\n case 'local':\n return 'http://localhost:8080';\n }\n};\n\nconst getAdminBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://admin.oysterinc.net';\n case 'staging':\n return 'https://admin.staging.oysterinc.net';\n case 'dev':\n return devServiceUrl('admin');\n case 'local':\n return 'http://localhost:8080';\n }\n};\n\nconst getMerchantBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://merchant.withoyster.com';\n case 'staging':\n return 'https://merchant.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('merchant');\n case 'local':\n return 'http://localhost:8084';\n }\n};\n\nconst getMetricsBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://mtx.withoyster.com';\n case 'staging':\n return 'https://mtx.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('metrics');\n case 'local':\n return 'http://localhost:8083';\n }\n};\n\nconst getStaticsBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://s.withoyster.com';\n case 'staging':\n return 'https://s.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('statics');\n case 'local':\n return 'http://localhost:8081';\n }\n};\n\nconst getIntegrateBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://integrate.withoyster.com';\n case 'staging':\n return 'https://integrate.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('integrate');\n case 'local':\n return 'http://localhost:8085';\n }\n};\n\nconst getOysterJsBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://js.withoyster.com';\n case 'staging':\n return 'https://js.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('oysterjs');\n case 'local':\n return 'http://localhost:8001';\n }\n};\n\nconst getDashboardBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://dashboard.withoyster.com';\n case 'staging':\n return 'https://dashboard.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('dashboard');\n case 'local':\n return 'http://localhost:8180';\n }\n};\n\nconst getGetOysterBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://get.withoyster.com';\n case 'staging':\n return 'https://get.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('getoyster');\n case 'local':\n return 'http://localhost:8181';\n }\n};\n\nconst getPartnersBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://partners.withoyster.com';\n case 'staging':\n return 'https://partners.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('partners');\n case 'local':\n return 'http://localhost:8182';\n }\n};\n\nconst getWebhooksBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://webhooks.withoyster.com';\n case 'staging':\n return 'https://webhooks.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('webhooks');\n case 'local':\n return 'http://localhost:8080';\n }\n};\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nconst getServiceName = (): Service => (process.env.SERVICE_NAME as Service) || '';\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nconst getServiceVersion = (): string => process.env.SERVICE_VERSION || '';\n\nconst devServiceUrl = (service: string) => {\n // Get the user from the URL\n const [, user] = window.location.host.split('.');\n\n // Host will be in the format of {service}.{user}.dev.oysterinc.net\n return `https://${service}.${user}.dev.oysterinc.net`;\n};\n\nconst getSecret = (secretName: string, devSecret?: string) =>\n devSecret || window?.['oyster']?.['opts']?.[secretName];\n\n// Configuration defines the various configuration values that can\n// be set on the app\ntype StaticConfiguration = {\n readonly serviceName: Service;\n readonly serviceVersion: string;\n readonly environment: Environment;\n readonly serviceBaseUrl: { [K in Service]: string };\n readonly backendBaseUrl: { [K in Backend]: string };\n readonly secrets: {\n readonly mapboxPublicKey?: string;\n readonly shopifyPublicKey?: string;\n readonly stripePublicKey?: string;\n readonly coterieStripePublicKey?: string;\n readonly sentryDsn?: string;\n };\n};\n\ntype DynamicConfiguration = {\n readonly merchant?: {\n readonly id?: string;\n readonly apiKey?: string;\n readonly integrationId?: string;\n };\n};\n\nlet dynamicConfig: DynamicConfiguration = {};\nexport const configure = (opts: DynamicConfiguration) => {\n dynamicConfig = opts;\n};\n\nexport type Configuration = StaticConfiguration & DynamicConfiguration;\n\n// config builds and exports the configuration for usage.\nexport default (): Configuration => ({\n serviceName: getServiceName(),\n serviceVersion: getServiceVersion(),\n environment: getEnvironment(),\n serviceBaseUrl: {\n dashboard: getDashboardBaseUrl(),\n getoyster: getGetOysterBaseUrl(),\n partners: getPartnersBaseUrl(),\n oysterjs: getOysterJsBaseUrl(),\n webhooks: getWebhooksBaseUrl()\n },\n backendBaseUrl: {\n admin: getAdminBaseUrl(),\n api: getApiBaseUrl(),\n merchant: getMerchantBaseUrl(),\n integrate: getIntegrateBaseUrl(),\n metrics: getMetricsBaseUrl(),\n statics: getStaticsBaseUrl()\n },\n secrets: {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n mapboxPublicKey: getSecret('mapboxPublicKey', process.env.MAPBOX_PUBLIC_KEY),\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n shopifyPublicKey: getSecret('shopifyPublicKey', process.env.SHOPIFY_PUBLIC_KEY),\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n stripePublicKey: getSecret('stripePublicKey', process.env.STRIPE_PUBLIC_KEY),\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n coterieStripePublicKey: getSecret(\n 'coterieStripePublicKey',\n process.env.COTERIE_STRIPE_PUBLIC_KEY\n ),\n sentryDsn: process.env.SENTRY_DSN\n },\n ...dynamicConfig\n});\n","import { GraphQLErrors } from '@apollo/client/errors';\nimport { ValidationError } from '@oysterjs/types';\n\nexport const isValidationError = (err: unknown): err is ValidationError => {\n return (err as { Type?: string }).Type === 'validation_error';\n};\n\nexport const isUnderwritingError = (\n err: unknown\n): err is { Message: string; Type: string; Code: string } => {\n return (err as { Type?: string }).Type === 'underwriting_error';\n};\n\nexport const isType = (\n err: unknown,\n type: string\n): err is { Message: string; Type: string; Code: string } => {\n return (err as { Type?: string }).Type === type;\n};\n\nexport enum ErrorCode {\n unknown = '',\n unsupportedGeo = 'unsupported_geo',\n riskRejected = 'risk_rejected',\n alreadySubmitted = 'already_submitted',\n submissionFailed = 'submission_failed'\n}\n\nexport enum ErrorType {\n unknown = '',\n\n networkError = 'js.fetch.network_error',\n unknownApiError = 'js.api.unknown_error',\n\n validationError = 'validation_error',\n processingError = 'processing_error',\n underwritingError = 'underwriting_error',\n preconditionFailed = 'precondition_failed'\n}\n\nexport interface WrappedErrorOptions {\n code: ErrorCode;\n type: ErrorType;\n details?: string;\n metadata?: Record;\n cause?: WrappedError | Error;\n}\n\nexport class WrappedError extends Error {\n constructor(\n message: string,\n public opts: WrappedErrorOptions = { code: ErrorCode.unknown, type: ErrorType.unknown }\n ) {\n super(message);\n this.name = 'WrappedError';\n }\n\n type = () => {\n return this.opts.type;\n };\n\n code = () => {\n return this.opts.code;\n };\n\n details = () => {\n return this.opts.details;\n };\n\n cause = () => {\n return this.opts.cause;\n };\n\n metadata = () => {\n return this.opts.metadata || {};\n };\n\n getValidationError = () => {\n return {\n Field: this.opts.metadata?.Field || '',\n SubField: this.opts.metadata?.SubField || '',\n Message: this.message\n };\n };\n\n getGraphQLSchemaValidationError = () => {\n return {\n field: this.opts.metadata?.Field || '',\n subField: this.opts.metadata?.SubField || '',\n message: this.message\n };\n };\n\n // Figure out how to type this better\n // eslint-disable-next-line\n static fromApiError(err: any): WrappedError {\n const x = new WrappedError(err.Message, {\n code: err.Code || ErrorCode.unknown,\n type: err.Type || ErrorType.unknown,\n metadata: {\n Field: err.Field,\n SubField: err.SubField,\n RequestID: err.RequestID\n }\n });\n return x;\n }\n\n static fromValidationError(validationError: ValidationError): WrappedError {\n return new WrappedError(validationError.Message, {\n code: ErrorCode.unknown,\n type: ErrorType.validationError,\n metadata: {\n Field: validationError.Field,\n SubField: validationError.SubField || ''\n }\n });\n }\n\n static fromGraphQLError(errors: GraphQLErrors): WrappedError {\n return new WrappedError(errors.join(''), {\n code: ErrorCode.unknown,\n type: ErrorType.networkError\n });\n }\n\n // Figure out how to type this better\n // eslint-disable-next-line\n static asWrappedError(err: any): WrappedError {\n // TODO: this does not yet handle converting non-WrappedErrors\n // to WrappedError, as Javascript is weird about `instanceof`\n // mixed with catch blocks.\n return err;\n }\n}\n","import { getToken, resetToken } from '@oysterjs/core/auth';\nimport config from '@oysterjs/core/config';\nimport { ErrorCode, ErrorType, WrappedError } from '@oysterjs/core/errors';\n\nexport const getEncodedQueryString = (m: Record): string => {\n const params = new URLSearchParams();\n Object.entries(m).forEach(([key, value]) => {\n if (value) {\n params.set(key, value.toString());\n }\n });\n\n return params.toString();\n};\n\ninterface RequestOpts extends RequestInit {\n redirectUrl?: string;\n disableUnauthorizedRedirect?: boolean;\n}\n\nexport const Get = (path: RequestInfo, init?: RequestOpts) =>\n request(path, undefined, { ...init, method: 'GET' });\n\nexport const Post = (path: RequestInfo, json?: unknown, opts?: RequestOpts) =>\n request(path, json ? JSON.stringify(json) : undefined, { ...opts, method: 'POST' });\n\nexport const Put = (path: RequestInfo, json?: unknown, opts?: RequestOpts) =>\n request(path, json ? JSON.stringify(json) : undefined, { ...opts, method: 'PUT' });\n\nexport const Delete = (path: RequestInfo, json?: unknown, opts?: RequestOpts) =>\n request(path, json ? JSON.stringify(json) : undefined, { ...opts, method: 'DELETE' });\n\nconst request = (path: RequestInfo, json: string | undefined, opts: RequestOpts): Promise =>\n fetch(config().backendBaseUrl.api + path, {\n ...opts,\n mode: 'cors',\n credentials: 'include',\n headers: {\n ...(json ? { 'Content-Type': 'application/json' } : {}),\n ...(getToken() ? { Authorization: `Bearer ${getToken()}` } : {}),\n ...opts.headers\n },\n body: opts.body || json\n })\n .catch((err) => {\n throw new WrappedError('Error performing network request', {\n code: ErrorCode.unknown,\n type: ErrorType.networkError,\n details: `Error performing ${opts.method} ${path}`,\n cause: err\n });\n })\n .then((res) =>\n res.json().then((data) => {\n if (res.status < 300 && data) {\n return data;\n }\n\n if (!opts.disableUnauthorizedRedirect && res.status === 401) {\n resetToken(opts.redirectUrl);\n return data;\n }\n\n if (data.Error) {\n throw WrappedError.fromApiError(data.Error);\n }\n\n throw new WrappedError(`An unknown error with status ${res.status} occurred`, {\n type: ErrorType.unknownApiError,\n code: ErrorCode.unknown,\n details: data.toString()\n });\n })\n );\n","import apm from '@oysterjs/core/apm';\nimport { FeatureFlag, MerchantUser } from '@oysterjs/types';\nimport { Get, getEncodedQueryString } from './base';\nimport { getUser } from '@oysterjs/core/auth';\nimport config from '@oysterjs/core/config';\n\nconst getFlagOptions = () =>\n getEncodedQueryString({\n MerchantAPIKey: config().merchant?.apiKey,\n MerchantID: getUser()?.MerchantID,\n UserID: apm().getSession().userId\n });\n\nconst evaluateFlag = (flagId: string) => Get(`/flag/${flagId}?${getFlagOptions()}`);\n\nconst listFlags: () => Promise<{ FeatureFlags: FeatureFlag[] }> = () =>\n Get(`/flags?${getFlagOptions()}`);\n\nconst evaluateBooleanFlag = (flag: string) =>\n evaluateFlag<{ Enabled: boolean }>(flag).then((d) => d.Enabled);\n\nexport const shouldRender = () => evaluateBooleanFlag('render_widget');\n\nexport const shouldRenderPostCheckoutOffer = () =>\n evaluateBooleanFlag('render_post_checkout_offer');\n\nexport const enableDefaultInsurance = () => evaluateBooleanFlag('enable_default_insurance');\n\nexport const enableCartWidget = () => evaluateBooleanFlag('enable_cart_widget');\n\nexport const shouldRenderOnelinerWidget = () => evaluateBooleanFlag('force_render_oneliner_widget');\n\nexport const shouldRenderLandingPage = () => evaluateBooleanFlag('render_marketing_page');\n\nexport const enableCommercialOauth = () => evaluateBooleanFlag('enable_commercial_oauth');\n\nexport const enableCommercialDocumentExtraction = () =>\n evaluateBooleanFlag('enable_commercial_document_extraction');\n\nexport const allowCartWidgetObservables = () =>\n evaluateBooleanFlag('allow_cart_widget_observables');\n\nexport const enableRiskManagement = () => evaluateBooleanFlag('enable-risk-management');\n\nexport const retrieveAllFeatureFlags = (): Promise =>\n listFlags().then((res) => res.FeatureFlags);\n","import { FeatureFlag, FeatureFlagExperiments } from '@oysterjs/types';\nimport { retrieveAllFeatureFlags } from './flag';\n\nlet appConfiguration: AppConfiguration;\n\nexport interface AppConfiguration {\n ensureFeatureFlags(): Promise;\n getAll(): Promise;\n getAllSync(): FeatureFlag[];\n get(flagId: string): Promise;\n update(flagId: string, updateFunction: (featureFlag: FeatureFlag) => void): Promise;\n}\n\nclass MainAppConfiguration implements AppConfiguration {\n featureFlags: FeatureFlag[] = [];\n retrieveFlagsPromise: Promise | undefined;\n\n async ensureFeatureFlags(): Promise {\n if (this.featureFlags.length === 0) {\n if (!this.retrieveFlagsPromise) {\n // Set a 2 second timeout so we don't have missing events\n // if FF API is not available\n const timeoutPromise = new Promise((resolve) => {\n const timeoutId = setTimeout(() => {\n clearTimeout(timeoutId);\n resolve(undefined);\n }, 2000);\n });\n\n this.retrieveFlagsPromise = Promise.race([timeoutPromise, retrieveAllFeatureFlags()]);\n }\n\n // Update flags variable on resolve\n await this.retrieveFlagsPromise?.then((res) => {\n if (res) {\n this.featureFlags = res;\n }\n });\n\n // Clean up the promise\n this.retrieveFlagsPromise = undefined;\n }\n\n return;\n }\n\n async getAll(): Promise {\n await this.ensureFeatureFlags();\n return this.featureFlags;\n }\n\n getAllSync(): FeatureFlag[] {\n return this.featureFlags;\n }\n\n async get(flagId: string): Promise {\n await this.ensureFeatureFlags();\n return this.featureFlags.find((ff) => ff.ID === flagId);\n }\n\n async update(flagId: string, updateFunction: (featureFlag: FeatureFlag) => void): Promise {\n await this.ensureFeatureFlags();\n const updateIndex = this.featureFlags.findIndex((f) => f.ID === flagId);\n if (updateIndex >= 0) {\n // Update existing feature flags\n updateFunction(this.featureFlags[updateIndex]);\n } else {\n // Create a new feature flag and insert it\n const ff: FeatureFlag = {\n ID: flagId,\n Value: false\n };\n updateFunction(ff);\n\n this.featureFlags = [...this.featureFlags, ff];\n }\n\n return;\n }\n}\n\nexport class MockAppConfiguration implements AppConfiguration {\n featureFlags = [\n {\n ID: FeatureFlagExperiments.oneliner_widget,\n Value: true\n }\n ];\n\n async ensureFeatureFlags(): Promise {\n return;\n }\n async getAll(): Promise {\n return this.featureFlags;\n }\n getAllSync(): FeatureFlag[] {\n return this.featureFlags;\n }\n async get(flagId: string): Promise {\n return this.featureFlags.find((ff) => ff.ID === flagId);\n }\n async update(): Promise {\n // Do nothing for now\n return;\n }\n}\n\n// This needs to be called after apm has been initialized.\nexport const init = async () => {\n appConfiguration = new MainAppConfiguration();\n await appConfiguration.ensureFeatureFlags();\n};\n\nexport const setAppConfiguration = (config: AppConfiguration) => {\n appConfiguration = config;\n};\n\n// eslint-disable-next-line\n// @ts-ignore\nexport default (): AppConfiguration => appConfiguration;\n","import * as Sentry from '@sentry/react';\nimport appConfiguration from './api/appConfiguration';\nimport { ReferralSubChannel } from '@oysterjs/types';\nimport { getUser } from './auth';\nimport config from './config';\n\nclass Apm {\n constructor(private session: Session) {}\n\n // eslint-disable-next-line\n captureError(error: any) {\n if (Sentry.isInitialized()) {\n Sentry.captureException(error);\n }\n }\n\n setUserContext(userObject: { id?: string; email?: string }) {\n if (Sentry.isInitialized()) {\n Sentry.setUser(userObject);\n }\n this.session.userId = userObject.id?.toString() || this.session.userId;\n }\n\n setProductInfo(product) {\n if (!product) return;\n\n const key = `oyster_product_for_user_${this.getSession().userId}`;\n window.sessionStorage.setItem(key, JSON.stringify(product));\n\n let itemList: string[] = JSON.parse(\n window.sessionStorage.getItem('oyster_session_product_keys') || '[]'\n );\n\n if (itemList) {\n itemList = itemList.filter((item) => item !== key);\n window.sessionStorage.setItem(\n 'oyster_session_product_keys',\n JSON.stringify([...itemList, key])\n );\n } else {\n window.sessionStorage.setItem('oyster_session_product_keys', JSON.stringify([key]));\n }\n }\n\n getSession(): Session {\n return this.session;\n }\n\n getSessionId() {\n return Sentry.getReplay()?.getReplayId();\n }\n\n getProductInfo() {\n const key = `oyster_product_for_user_${this.getSession().userId}`;\n return JSON.parse(window.sessionStorage.getItem(key) || '\"\"');\n }\n\n clearProductInfo() {\n const key = `oyster_product_for_user_${this.getSession().userId}`;\n window.sessionStorage.removeItem(key);\n }\n\n setReferralSubChannel(subChannel?: ReferralSubChannel) {\n if (!subChannel) {\n this.clearReferralSubChannel();\n return;\n }\n\n const key = `oyster_referral_subchannel_for_user_${this.getSession().userId}`;\n window.sessionStorage.setItem(key, subChannel);\n }\n\n getReferralSubChannel(): ReferralSubChannel {\n const key = `oyster_referral_subchannel_for_user_${this.getSession().userId}`;\n return (window.sessionStorage.getItem(key) || ReferralSubChannel.unknown) as ReferralSubChannel;\n }\n\n clearReferralSubChannel() {\n const key = `oyster_referral_subchannel_for_user_${this.getSession().userId}`;\n window.sessionStorage.removeItem(key);\n }\n\n // eslint-disable-next-line\n async sendEvent(id: string, metadata?: Record) {\n const productType = this.getProductInfo();\n const data = {\n UserID: getUser()?.ID || this.session.userId,\n PageLoadID: this.session.pageLoadId\n };\n const featureFlags = await appConfiguration().getAll();\n\n // Get formatted feature flags\n let formattedFeatureFlags = {};\n featureFlags.forEach(\n (ff) =>\n (formattedFeatureFlags = {\n ...formattedFeatureFlags,\n [ff.ID]: ff.Value\n })\n );\n\n const updatedMetadata = {\n ...metadata,\n ProductType: productType,\n feature_flags: formattedFeatureFlags,\n referral_sub_channel: metadata?.referral_sub_channel || this.getReferralSubChannel() // Prioritize passed-in values\n };\n\n const url = `${config().backendBaseUrl.metrics}/event/${id}`;\n\n fetch(url, {\n method: 'POST',\n mode: 'cors',\n credentials: 'same-origin',\n headers: {\n 'Content-type': 'application/json',\n 'X-Merchant-API-Key': config().merchant?.apiKey || metadata?.merchant_api_key || '',\n 'X-Merchant-Integration-ID':\n config().merchant?.integrationId || metadata?.integration_id || ''\n },\n body: JSON.stringify({ ...data, Metadata: updatedMetadata })\n });\n }\n}\n\nlet apm: Apm;\n\ninterface Session {\n userId: string;\n pageLoadId: string;\n merchantId?: string;\n}\n\nconst initSession = (): Session => {\n const getRandomString = (len: number): string => {\n const characters = '0123456789abcdef';\n let str = '';\n for (let i = 0; i < len; i++) {\n str += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n return str;\n };\n\n // Check if we have an authenticated user ID\n let userId = getUser()?.ID;\n\n // Check if we already stored an ID locally\n if (!userId) {\n userId = window.localStorage.getItem('oyster_user_id') || undefined;\n }\n\n // Otherwise, generate an ID and store it\n if (!userId) {\n userId = getRandomString(24);\n window.localStorage.setItem('oyster_user_id', userId);\n }\n\n return {\n userId,\n pageLoadId: getRandomString(24)\n };\n};\n\nexport const init = (): void => {\n const session = initSession();\n\n Sentry.init({\n dsn: config().secrets.sentryDsn,\n integrations: [\n Sentry.browserTracingIntegration(),\n Sentry.browserProfilingIntegration(),\n Sentry.captureConsoleIntegration({\n levels: ['error']\n }),\n Sentry.extraErrorDataIntegration(),\n Sentry.httpClientIntegration(),\n Sentry.reactRouterV5BrowserTracingIntegration({ history }),\n Sentry.replayIntegration({\n networkDetailAllowUrls: [\n window.location.origin,\n config().backendBaseUrl.api,\n config().backendBaseUrl.integrate,\n config().backendBaseUrl.merchant,\n config().backendBaseUrl.metrics,\n config().backendBaseUrl.statics\n ],\n networkCaptureBodies: true,\n networkRequestHeaders: ['X-Merchant-Integration-ID', 'X-Merchant-API-Key'],\n maskAllText: false,\n blockAllMedia: false\n }),\n Sentry.sessionTimingIntegration()\n ],\n\n autoSessionTracking: true,\n enabled: true,\n enableTracing: true,\n\n environment: config().environment,\n release: config().serviceVersion,\n\n // Set tracesSampleRate to 1.0 to capture 100%\n // of transactions for performance monitoring.\n tracesSampleRate: 1.0,\n\n // Set `tracePropagationTargets` to control for which URLs distributed tracing should be enabled\n tracePropagationTargets: [\n config().backendBaseUrl.api,\n config().backendBaseUrl.integrate,\n config().backendBaseUrl.merchant,\n config().backendBaseUrl.metrics,\n config().backendBaseUrl.statics\n ],\n\n // Capture Replay for 100% of all sessions,\n // plus for 100% of sessions with an error\n replaysSessionSampleRate: 1.0,\n replaysOnErrorSampleRate: 1.0\n });\n\n apm = new Apm(session);\n};\n\nexport const embeddedInit = (): void => {\n const session = initSession();\n apm = new Apm(session);\n};\n\n// eslint-disable-next-line\n// @ts-ignore\nexport default (): Apm => apm;\n","export const Spinner = ({\n color,\n size,\n centerHorizontal\n}: {\n color?: string;\n size?: number;\n centerHorizontal?: boolean;\n}): JSX.Element => (\n \n \n \n \n \n);\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nimport { Spinner } from '../Spinner';\n\ninterface Props {\n request: Promise;\n exactlyOnce?: boolean;\n hideSpinner?: boolean;\n inline?: boolean;\n children: (data: T) => JSX.Element | null;\n}\n\nexport const LoadableContainer = styled.div<{ inline?: boolean }>`\n width: 100%;\n box-sizing: border-box;\n ${(props) =>\n props.inline\n ? ''\n : `\n padding: 40px 0px;display: flex;\n flex-direction: row;\n justify-content: center;\n `}\n`;\n\nexport function Loadable(props: Props): JSX.Element | null {\n const [data, setData] = React.useState(null);\n\n React.useEffect(() => {\n if (!props.exactlyOnce || !data) {\n props.request.then(setData);\n }\n }, [props.request]);\n\n if (!data) {\n return props.hideSpinner ? null : (\n \n \n \n );\n }\n\n return props.children(data);\n}\n","import { getToken, resetToken } from '@oysterjs/core/auth';\nimport { ApolloClient, InMemoryCache, createHttpLink, from } from '@apollo/client';\nimport { removeTypenameFromVariables } from '@apollo/client/link/remove-typename';\nimport {\n DeepPartial,\n Merchant,\n MerchantUser,\n MerchantIntegration,\n ReferralLinkIntegration,\n PolicyTableValues,\n MerchantIntegrationType,\n MerchantRentalConfiguration,\n RentalWaiver,\n WaiverEntry,\n RentalAsset,\n RentalBooking,\n RentalClaim,\n AttachmentFile,\n ValidationError,\n Transaction,\n UserReferral,\n MerchantRentalConfigurationDetails,\n Insured,\n BusinessInformation,\n DefaultFileRoles,\n BusinessInsuranceApplication,\n PublicMerchantRentalConfiguration\n} from '@oysterjs/types';\nimport { Delete, Get, getEncodedQueryString, Post, Put } from './base';\nimport config from '../config';\n\nexport const getMerchantGraphQLClient = () => {\n const removeTypenameLink = removeTypenameFromVariables();\n const link = from([\n removeTypenameLink,\n createHttpLink({\n uri: `${config().backendBaseUrl.api}/merchant/graphql/query`,\n credentials: 'include',\n headers: {\n ...(getToken() ? { Authorization: `Bearer ${getToken()}` } : {})\n }\n })\n ]);\n return new ApolloClient({\n cache: new InMemoryCache(),\n link\n });\n};\n\nexport const createMerchant = (data: {\n Merchant: DeepPartial;\n MerchantUser: Partial;\n AccessCode: string;\n}) => Post('/merchant', data);\n\nexport const merchantUserSignInInit = (email: string, redirect?: string) =>\n Post(\n '/merchant/user/signin/init',\n { Email: email, Redirect: redirect },\n { disableUnauthorizedRedirect: true }\n );\n\nexport const merchantUserSignInComplete = (email: string, code: string) =>\n Post<{ Token: string; MerchantUser: MerchantUser }>(\n '/merchant/user/signin/complete',\n { Email: email, LoginCode: code },\n { disableUnauthorizedRedirect: true }\n );\n\nexport const merchantUserSignOut = () =>\n Post('/merchant/user/signout', { disableUnauthorizedRedirect: true });\n\nexport const getMerchantAccount = (redirectUrl?: string) =>\n Get<{\n Merchant: Merchant;\n MerchantUser: MerchantUser;\n PersonalizationError?: ValidationError;\n }>('/merchant', { redirectUrl });\n\nexport const getMerchantIntegrations = (redirectUrl?: string) =>\n Get<{\n ApiKey: string;\n Integrations: MerchantIntegration[];\n }>('/merchant/integration', { redirectUrl });\n\nexport const updateMerchantIntegration = (integration: MerchantIntegration) =>\n Put<{ Integration: MerchantIntegration }>(`/merchant/integration/${integration.ID}`, {\n Integration: integration\n });\n\nexport const updateMerchantAccount = (data: { Merchant: DeepPartial }) =>\n Put<{ Merchant: Merchant }>('/merchant', { Merchant: data.Merchant });\n\nexport const personalizeMerchant = (merchant: Merchant, discardUpdateOnError?: boolean) =>\n Post<{ Merchant: Merchant; NextValidationError?: ValidationError }>(\n `/merchant/personalize?${getEncodedQueryString({\n DiscardUpdateOnError: discardUpdateOnError\n })}`,\n {\n BusinessProfile: merchant.BusinessProfile\n }\n );\n\nexport const linkMerchantWithShopify = (\n shop: string,\n integrationData: string,\n redirectUrl: string\n) => {\n if (!getToken()) {\n resetToken(redirectUrl);\n return Promise.resolve();\n } else {\n return Post(\n '/merchant/link-integration',\n {\n Type: 'Shopify',\n ExternalID: shop,\n IntegrationData: integrationData\n },\n { redirectUrl }\n );\n }\n};\n\nexport const linkBIApplicationWithShopify = (\n shop: string,\n integrationData: string,\n redirectUrl: string,\n biApplicationID: string\n) => {\n return Post(\n '/merchant/link-bi-integration',\n {\n Type: 'Shopify',\n ExternalID: shop,\n IntegrationData: integrationData,\n BIApplicationID: biApplicationID\n },\n { redirectUrl }\n );\n};\n\nexport const linkMerchantWithLightspeedRetailRSeries = (\n _: string,\n integrationData: string,\n redirectUrl: string\n) => {\n if (!getToken()) {\n resetToken(redirectUrl);\n return Promise.resolve();\n } else {\n return Post(\n '/merchant/link-integration',\n {\n Type: 'LSRetailRSeries',\n IntegrationData: integrationData\n },\n { redirectUrl }\n );\n }\n};\n\nexport const linkMerchantWithCheckfront = (\n _: string,\n integrationData: string,\n redirectUrl: string\n) => {\n if (!getToken()) {\n resetToken(redirectUrl);\n return Promise.resolve();\n } else {\n return Post(\n '/merchant/link-integration',\n {\n Type: 'Checkfront',\n IntegrationData: integrationData\n },\n { redirectUrl }\n );\n }\n};\n\nexport const requestEmbeddablePage = () =>\n Get<{\n Integration: MerchantIntegration;\n }>('/merchant/integration/embeddable-page').then((res) => res.Integration);\n\nexport const requestCheckfront = () =>\n Get<{\n Integration: MerchantIntegration;\n }>('/merchant/integration/checkfront').then((res) => res.Integration);\n\nexport const requestQRCode = () =>\n Get<{\n Integration: MerchantIntegration;\n QRCode: string;\n }>('/merchant/integration/QRCode');\n\nexport const requestQRCodePdf = () =>\n Get<{ DocumentUrl: string; DocumentZip: string }>('/merchant/integration/QRCode/pdf');\n\nexport const getMerchantReferrals = (start: Date, end: Date) =>\n Get<{ Referrals: PolicyTableValues[] }>(\n `/merchant/referrals?startTime=${start.toISOString()}&endTime=${end.toISOString()}`\n );\n\nexport const getMerchantTransactions = (start: Date, end: Date) =>\n Get<{ Transactions: Transaction[] }>(\n `/merchant/transactions?startTime=${start.toISOString()}&endTime=${end.toISOString()}`\n );\n\nexport const getMerchantLink = (\n integrationType?: MerchantIntegrationType,\n externalID?: string,\n integrationID?: string\n) =>\n Get(\n `/merchant/referrallink?${getEncodedQueryString({\n externalID,\n integrationID,\n integrationType\n })}`\n );\n\nexport const getMerchantUsers = () => Get<{ Users: MerchantUser[] }>('/merchant/users');\nexport const createMerchantUser = (user: Partial) =>\n Post('/merchant/users', { MerchantUser: user });\n\n// RENTAL APIs\n\nexport const getMerchantRentalConfiguration = (): Promise<{\n Configuration?: MerchantRentalConfiguration;\n ReferralLink?: string;\n QRCodeBase64?: string;\n}> => Get('/merchant/rental');\n\nexport const getPublicMerchantRentalConfiguration = (\n integrationId: string\n): Promise<{\n Configuration: PublicMerchantRentalConfiguration;\n}> => Get('/merchant/rental/public', { headers: { 'X-Merchant-Integration-Id': integrationId } });\n\nexport const updateMerchantRentalConfiguration = (\n settings: DeepPartial\n): Promise<{\n Configuration: MerchantRentalConfiguration;\n}> => Put('/merchant/rental', { Settings: settings });\n\nexport const getMerchantRentalPaymentSetup = (): Promise<{\n PaymentMethod?: { BankName: string; LastFour: string };\n SetupIntentClientSecret?: string;\n}> => Get('/merchant/rental/payment');\n\nexport const getRentalDocuments = () =>\n Get<{ Metadata: AttachmentFile[] }>(`/merchant/rental/waiverdocuments`).then(\n (d) => d.Metadata || []\n );\n\nexport const uploadRentalDocuments = (files: File[]) => {\n const form = new FormData();\n files.forEach((file) => form.append('files[]', file));\n return Post<{ Metadata: AttachmentFile[] }>(`/merchant/rental/waiverdocuments`, undefined, {\n body: form\n }).then((d) => d.Metadata || []);\n};\n\nexport const deleteRentalDocument = (id: string) =>\n Delete<{ Metadata: AttachmentFile[] }>(`/merchant/rental/waiverdocuments/${id}`).then(\n (d) => d.Metadata || []\n );\n\nexport const getRentalWaivers = (): Promise =>\n Get<{\n Entries: WaiverEntry[];\n }>('/merchant/rental/waivers').then((d) => d.Entries);\n\nexport const getRentalWaiver = (waiverId: string): Promise =>\n Get<{\n Entry: WaiverEntry;\n }>(`/merchant/rental/waiver/${waiverId}`).then((d) => d.Entry);\n\nexport const getRentalBooking = (bookingId: string): Promise =>\n Get<{\n Entry: WaiverEntry;\n }>(`/merchant/rental/booking/${bookingId}`).then((d) => d.Entry);\n\nexport const createRentalBooking = (\n booking: RentalBooking,\n integrationId?: string\n): Promise<{ UpdatedBooking: RentalBooking; UpdatedWaiver?: RentalWaiver }> =>\n Post<{\n Booking: RentalBooking;\n Waiver: RentalWaiver;\n }>(\n '/merchant/rental/booking',\n { Booking: booking },\n { headers: { 'X-Merchant-Integration-Id': integrationId || '' } }\n ).then((d) => ({\n UpdatedBooking: d.Booking,\n UpdatedWaiver: d.Waiver\n }));\n\nexport const updateRentalBooking = (\n booking: RentalBooking,\n integrationId?: string\n): Promise<{ UpdatedBooking: RentalBooking; UpdatedWaiver?: RentalWaiver }> =>\n Put<{\n Booking: RentalBooking;\n Waiver: RentalWaiver;\n }>(\n `/merchant/rental/booking/${booking.ID}`,\n { Booking: booking },\n { headers: { 'X-Merchant-Integration-Id': integrationId || '' } }\n ).then((d) => ({\n UpdatedBooking: d.Booking,\n UpdatedWaiver: d.Waiver\n }));\n\nexport const getWaiverPricing = (\n booking: RentalBooking,\n waiver: RentalWaiver,\n integrationId?: string\n): Promise =>\n Post<{\n Waiver: RentalWaiver;\n }>(\n '/merchant/rental/waiver/price',\n { Booking: booking, Waiver: waiver },\n { headers: { 'X-Merchant-Integration-Id': integrationId || '' } }\n ).then((d) => d.Waiver);\n\nexport const createRentalWaiver = (\n booking: RentalBooking,\n waiver: RentalWaiver,\n sendEmail: boolean,\n integrationId?: string\n): Promise<{ UpdatedBooking: RentalBooking; UpdatedWaiver: RentalWaiver }> =>\n Post<{\n Booking: RentalBooking;\n Waiver: RentalWaiver;\n }>(\n '/merchant/rental/waiver',\n { Booking: booking, Waiver: waiver, SendEmail: sendEmail },\n { headers: { 'X-Merchant-Integration-Id': integrationId || '' } }\n ).then((d) => ({\n UpdatedBooking: d.Booking,\n UpdatedWaiver: d.Waiver\n }));\n\nexport const updateRentalWaiver = (\n booking: RentalBooking,\n waiver: RentalWaiver,\n sendEmail: boolean,\n integrationId?: string\n): Promise<{ UpdatedBooking: RentalBooking; UpdatedWaiver: RentalWaiver }> =>\n Put<{\n Booking: RentalBooking;\n Waiver: RentalWaiver;\n }>(\n '/merchant/rental/waiver',\n { Booking: booking, Waiver: waiver, SendEmail: sendEmail },\n { headers: { 'X-Merchant-Integration-Id': integrationId || '' } }\n ).then((d) => ({\n UpdatedBooking: d.Booking,\n UpdatedWaiver: d.Waiver\n }));\n\nexport const createMerchantRentalAsset = (asset: DeepPartial) =>\n Post<{ Asset: RentalAsset }>(`/merchant/rental/assets`, { Asset: asset }).then((r) => r.Asset);\n\nexport const deleteMerchantRentalAsset = (assetId: string) =>\n Delete(`/merchant/rental/assets/${assetId}`);\n\nexport const addRentalAssetSerialNumber = (\n assetId: string,\n serialNumber: string,\n integrationId?: string\n) =>\n Put<{ Asset: RentalAsset }>(\n `/merchant/rental/assets/${assetId}/serialnumber`,\n {\n SerialNumber: serialNumber\n },\n { headers: { 'X-Merchant-Integration-Id': integrationId || '' } }\n ).then((r) => r.Asset);\n\nexport const getRentalWaiverPaymentSession = (waiverId: string): Promise =>\n Post<{ StripeClientSecret: string }>(`/merchant/rental/waiver/${waiverId}/payment`).then((d) => {\n return d.StripeClientSecret;\n });\n\nexport const getRentalWaiverAgreementInformation = (\n waiverId: string\n): Promise<{\n SignedDate: Date;\n CustomerName: string;\n MerchantName: string;\n RentalBookingDate: Date;\n RentalBookingDurationInDays: number;\n}> => Post(`/merchant/rental/waiver/${waiverId}/agreement`);\n\nexport const completeRentalBooking = (\n bookingId: string,\n signatureData: string,\n insured?: DeepPartial\n): Promise =>\n Post<{\n Booking: RentalBooking;\n }>(`/merchant/rental/booking/${bookingId}/complete`, {\n Insured: insured,\n SignatureData: signatureData\n }).then((d) => d.Booking);\n\nexport const completeRentalWaiver = (\n waiverId: string,\n signatureData: string,\n insured?: DeepPartial\n): Promise =>\n Post<{\n Waiver: RentalWaiver;\n }>(`/merchant/rental/waiver/${waiverId}/complete`, {\n Insured: insured,\n SignatureData: signatureData\n }).then((d) => d.Waiver);\n\nexport const cancelBookingRenewal = (bookingId: string): Promise =>\n Post<{\n Booking: RentalBooking;\n }>(`/merchant/rental/booking/${bookingId}/cancel-renew`).then((d) => d.Booking);\n\nexport const getMerchantRentalAssets = (integrationId?: string): Promise =>\n Get<{\n Assets?: RentalAsset[];\n }>('/merchant/rental/assets', {\n headers: { 'X-Merchant-Integration-Id': integrationId || '' }\n }).then((d) => d.Assets || []);\n\nexport const getRentalBookingFiles = (id: string) =>\n Get<{\n Files: AttachmentFile[] | null;\n }>(`/merchant/rental/booking/${id}/files`).then((res) => res.Files);\n\nexport const getRentalClaimByWaiverId = (\n waiverId: string\n): Promise<{ Entry: WaiverEntry; Claim?: RentalClaim; Attachments: AttachmentFile[] }> =>\n Get<{\n Entry: WaiverEntry;\n Claim?: RentalClaim;\n Attachments: AttachmentFile[];\n }>(`/merchant/rental/waiver/${waiverId}/claim`);\n\nexport const getRentalClaim = (\n id: string\n): Promise<{ Entry: WaiverEntry; Claim: RentalClaim; Attachments: AttachmentFile[] }> =>\n Get<{\n Entry: WaiverEntry;\n Claim: RentalClaim;\n Attachments: AttachmentFile[];\n }>(`/merchant/rental/claim/${id}`);\n\nexport const createRentalClaim = (claim: RentalClaim): Promise =>\n Post<{ UpdatedClaim: RentalClaim }>(`/merchant/rental/claim`, {\n Claim: claim\n }).then((res) => res.UpdatedClaim);\n\nexport const updateRentalClaim = (id: string, claim: RentalClaim): Promise =>\n Put<{ UpdatedClaim: RentalClaim }>(`/merchant/rental/claim/${id}`, {\n Claim: claim\n }).then((res) => res.UpdatedClaim);\n\nexport const uploadClaimAttachments = (claimId: string, fileRole: string, files: File[]) => {\n const form = new FormData();\n files.forEach((file) => form.append('files[]', file));\n form.append('FileRole', fileRole);\n return Post<{ Metadata: AttachmentFile[] }>(\n `/merchant/rental/claim/${claimId}/attachment`,\n undefined,\n {\n body: form\n }\n ).then((d) => d.Metadata || []);\n};\n\nexport const getMerchantReferralList = () =>\n Get<{ Referrals: UserReferral[] }>('/merchant/referral/list').then((d) => d.Referrals || []);\n\nexport const getMerchantBIApplication = (applicationID: string) =>\n Get<{ Application: BusinessInsuranceApplication }>(`/merchant/bi/${applicationID}`).then(\n (d) => d.Application\n );\n\nexport const updateMerchantBIApplication = (\n applicationID: string,\n businessInformation: BusinessInformation\n) =>\n Put<{ Application: BusinessInsuranceApplication; NextValidationError?: ValidationError }>(\n `/merchant/bi/${applicationID}`,\n {\n BusinessInformation: businessInformation\n }\n );\n\nexport const createMerchantBIApplication = (businessInformation: BusinessInformation) =>\n Post<{ Application: BusinessInsuranceApplication; NextValidationError?: ValidationError }>(\n `/merchant/bi`,\n {\n BusinessInformation: businessInformation\n }\n );\n\nexport const uploadCommercialDocuments = (\n applicationID: string,\n fileRole: DefaultFileRoles,\n files: File[],\n existingFileIDs?: string[]\n) => {\n const form = new FormData();\n form.append('FileRole', fileRole);\n if (existingFileIDs) {\n form.append('ExistingFileIDs', JSON.stringify(existingFileIDs));\n }\n files.forEach((file) => form.append('files[]', file));\n return Post<{ Metadata: AttachmentFile[] }>(\n `/merchant/commercial/${applicationID}/documents`,\n undefined,\n {\n body: form\n }\n ).then((res) => res.Metadata);\n};\n\nexport const triggerCommercialDataExtraction = (applicationID: string) =>\n Post<{ Application: BusinessInsuranceApplication }>(\n `/merchant/commercial/${applicationID}/verify`,\n null\n );\n\nexport const retrieveCommercialDataExtraction = (applicationID: string, force: boolean) =>\n Get<{ Completed: boolean; Application: BusinessInsuranceApplication }>(\n `/merchant/commercial/${applicationID}/verify/retrieve?force=${force}`\n );\n\nexport const submitBusinessInsuraceApplication = (applicationID: string) =>\n Post<{ Redirect: string; Application: BusinessInsuranceApplication }>(\n `/merchant/bi/${applicationID}/complete`,\n null\n );\n","import { gql } from '@apollo/client';\nimport * as Apollo from '@apollo/client';\nexport type Maybe = T | null | undefined;\nexport type InputMaybe = T | null | undefined;\nexport type Exact = { [K in keyof T]: T[K] };\nexport type MakeOptional = Omit & { [SubKey in K]?: Maybe };\nexport type MakeMaybe = Omit & { [SubKey in K]: Maybe };\nexport type MakeEmpty = {\n [_ in K]?: never;\n};\nexport type Incremental =\n | T\n | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\nconst defaultOptions = {} as const;\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string };\n String: { input: string; output: string };\n Boolean: { input: boolean; output: boolean };\n Int: { input: number; output: number };\n Float: { input: number; output: number };\n /** Int64 represents a 64-bit integer */\n Int64: { input: number; output: number };\n /** Time represents a timestamp */\n Time: { input: Date; output: Date };\n};\n\nexport enum AchPaymentStatus {\n Canceled = 'CANCELED',\n Failed = 'FAILED',\n Pending = 'PENDING',\n Sent = 'SENT'\n}\n\n/** Details for a request to add an additional insured to a policy */\nexport type AddAdditionalInsuredRequest = {\n __typename?: 'AddAdditionalInsuredRequest';\n /** Address of the additional insured */\n address: Address;\n /** Name of the additional insured */\n name: Scalars['String']['output'];\n /** Relationship between the policyholder and additional insured */\n relationship: Scalars['String']['output'];\n};\n\n/** Input type for adding an additional insured request */\nexport type AddAdditionalInsuredRequestInput = {\n /** Address of the additional insured */\n address: AddressInput;\n /** Name of the additional insured */\n name: Scalars['String']['input'];\n /** Relationship between the policyholder and additional insured */\n relationship: Scalars['String']['input'];\n};\n\n/** Describes an address that can be accepted as input */\nexport type Address = {\n __typename?: 'Address';\n /**\n * Level 3 administrative division depending on country. For example, this is\n * the city in the U.S., a muncipality in Austria, a ward in Singapore, etc.\n */\n city: Scalars['String']['output'];\n /** First line of the address. */\n line1: Scalars['String']['output'];\n /** Optional second line of the address. */\n line2?: Maybe;\n /**\n * Country-specific mailing identifier, e.g. ZIP Code in the U.S., Post Code\n * in the U.K., etc.\n */\n postalCode: Scalars['String']['output'];\n /**\n * Level 2 administrative division depending on country. For example, this is\n * the county in the U.S., prefectural city in China, division in India, etc.\n */\n subZone?: Maybe;\n /**\n * Level 1 administrative division depending on country. For example, this is\n * the state in the U.S., the province in Canada, etc.\n */\n zone: Scalars['String']['output'];\n};\n\n/** Describes an address that can be accepted as input */\nexport type AddressInput = {\n /**\n * Level 3 administrative division depending on country. For example, this is\n * the city in the U.S., a muncipality in Austria, a ward in Singapore, etc.\n */\n city: Scalars['String']['input'];\n /** First line of the address. */\n line1: Scalars['String']['input'];\n /** Optional second line of the address. */\n line2?: InputMaybe;\n /**\n * Country-specific mailing identifier, e.g. ZIP Code in the U.S., Post Code\n * in the U.K., etc.\n */\n postalCode: Scalars['String']['input'];\n /**\n * Level 2 administrative division depending on country. For example, this is\n * the county in the U.S., prefectural city in China, division in India, etc.\n */\n subZone?: InputMaybe;\n /**\n * Level 1 administrative division depending on country. For example, this is\n * the state in the U.S., the province in Canada, etc.\n */\n zone: Scalars['String']['input'];\n};\n\n/**\n * Describes the Ascend billable that this policy is associated with. This\n * type represents the response from the Ascend /v1/billables API\n */\nexport type AscendBillable = {\n __typename?: 'AscendBillable';\n /** Fee collected by your agency (dollars). Fully earned, not financeable, and funded directly to your agency. */\n agencyFees: Scalars['Float']['output'];\n /** The identifier assigned to the quote/endorsement by the issuing carrier or wholesaler. */\n billableIdentifier: Scalars['String']['output'];\n /** Fee collected by the wholesaler (dollars). Fully earned, not financeable, and funded directly to the wholesaler. */\n brokerFees: Scalars['Float']['output'];\n /** An insurance company. */\n carrier: AscendCarrier;\n /** A type of coverage. */\n coverageType: AscendCoverage;\n /** A short description to explain to the insured what they are purchasing. */\n description?: Maybe;\n /** The unique identifier for the billable */\n id: Scalars['String']['output'];\n /** Determines if the carrier can audit customer raising premium significantly. */\n isAuditable: Scalars['Boolean']['output'];\n /** Determines if specific lines of business are filed with other bureaus which they have to notify on cancelation. */\n isFiled: Scalars['Boolean']['output'];\n /** Determines if the policy is fined by 10% on top of earned premium when insured cancels */\n isShortRate: Scalars['Boolean']['output'];\n /** Set state determined extended cancelation period for the policy. */\n minDaysToCancel: Scalars['Int']['output'];\n /** The minimum rate to charge insureds when they decide to finance. */\n minEarnedRate: Scalars['Float']['output'];\n /** Any additional fees that come with the policy (dollars). This fee is treated as non-refundable & fully earned. */\n otherFees: Scalars['Float']['output'];\n /** Payouts created for this program, if any. This corresponds to the data returned from the /v1/payouts endpoint */\n payouts: Array;\n /** Any policy fees that come with the billable (dollars). This fee is treated as non-refundable & fully earned. */\n policyFees: Scalars['Float']['output'];\n /** The amount to pay for the insurance policy (dollars). */\n premium: Scalars['Float']['output'];\n /** Your commission rate for this policy. */\n sellerCommissionRate?: Maybe;\n /** The amount of surplus lines tax to be collected (dollars). */\n surplusLinesTax: Scalars['Float']['output'];\n /** Any taxes & unearned fees (dollars). Taxes and fees are financed. */\n taxesAndFees: Scalars['Float']['output'];\n /** An insurance wholesaler or MGA. */\n wholesaler?: Maybe;\n};\n\n/** An insurance company. */\nexport type AscendCarrier = {\n __typename?: 'AscendCarrier';\n /** A human readable unique identifier. */\n id: Scalars['String']['output'];\n /** The carrier display name. */\n title: Scalars['String']['output'];\n};\n\n/** A type of coverage. */\nexport type AscendCoverage = {\n __typename?: 'AscendCoverage';\n /** A human readable unique identifier. */\n id: Scalars['String']['output'];\n /** The coverage type display name. */\n title: Scalars['String']['output'];\n};\n\n/** A document representing a transaction between the insured and Ascend. */\nexport type AscendInvoice = {\n __typename?: 'AscendInvoice';\n /** The checkout url of the invoice. */\n checkoutUrl?: Maybe;\n /** The date by which the invoice should be paid. */\n dueDate?: Maybe;\n /** The invoice unique identifier. */\n id: Scalars['String']['output'];\n /** The unique identifier of the insured invoice is attached to. */\n insuredID: Scalars['String']['output'];\n /** A number assigned to uniquely identify the invoice. */\n invoiceNumber: Scalars['String']['output'];\n /** The url of the invoice document. */\n invoiceUrl?: Maybe;\n /** The date when the invoice was shared with the insured. */\n issuedAt?: Maybe;\n /** The date when the invoice was paid by the insured. */\n paidAt?: Maybe;\n /** The name of the insured/business paying for the invoice. */\n payerName: Scalars['String']['output'];\n /** It represents the payment instrument used by an insured. */\n paymentMethod?: Maybe;\n /** The unique identifier of the program invoice is attached to. */\n programID?: Maybe;\n /** The current state of the invoice. */\n status: Scalars['String']['output'];\n /** The total amount charged, in dollars. */\n totalAmount: Scalars['Float']['output'];\n};\n\n/** A loan associated with an Ascend program */\nexport type AscendLoan = {\n __typename?: 'AscendLoan';\n /** The amount financed through the loan represented in dollars. */\n amountFinanced: Scalars['Float']['output'];\n /** The total annual rate charged. */\n apr: Scalars['Float']['output'];\n /** The date when the loan was created. The date uses UTC and is represented in the ISO8601 format. */\n createdAt: Scalars['Time']['output'];\n /** The initial up-front payment represented in dollars. */\n downPayment: Scalars['Float']['output'];\n /** The loan unique identifier. */\n id: Scalars['String']['output'];\n /** The number of payments that will be made to repay the loan. */\n numberOfPayments: Scalars['Int']['output'];\n /** The current state of the loan. */\n status: Scalars['String']['output'];\n /** The amount that will be payed in each payment in dollars. */\n termPayment: Scalars['Float']['output'];\n /** The date when the loan was last updated. The date uses UTC and is represented in the ISO8601 format. */\n updatedAt: Scalars['Time']['output'];\n};\n\n/** The account the Ascend payout was made to */\nexport type AscendPayableAccount = {\n __typename?: 'AscendPayableAccount';\n /** The ID of the payable account */\n id: Scalars['String']['output'];\n /** The last four digits of the bank account */\n lastFour: Scalars['String']['output'];\n /** The owner name of the bank account */\n ownerName: Scalars['String']['output'];\n /** The routing number of the bank account */\n routingNumber: Scalars['String']['output'];\n /** The usage type of the bank account */\n usageType: AscendPayableAccountUsageType;\n};\n\nexport enum AscendPayableAccountUsageType {\n /** Organization's bank account we transfer commissions to. */\n CommissionAccount = 'COMMISSION_ACCOUNT',\n /** Paid out to carrier/wholesaler */\n SupplierAccount = 'SUPPLIER_ACCOUNT',\n /** Organization's bank account we transfer full premium to. */\n TrustAccount = 'TRUST_ACCOUNT'\n}\n\nexport type AscendPaymentMethod = {\n __typename?: 'AscendPaymentMethod';\n type: AscendPaymentMethodType;\n};\n\nexport enum AscendPaymentMethodType {\n AchCreditTransfer = 'ACH_CREDIT_TRANSFER',\n AchDebit = 'ACH_DEBIT',\n Card = 'CARD'\n}\n\n/** A payout from Ascend to an entity */\nexport type AscendPayout = {\n __typename?: 'AscendPayout';\n /** The date the payout was created */\n createdAt: Scalars['Time']['output'];\n /** The date that the payout failed */\n failedAt?: Maybe;\n /** The gross amount paid out, in dollars. */\n grossPayoutAmount: Scalars['Float']['output'];\n /** The payout unique identifier */\n id: Scalars['String']['output'];\n /** If found, the details of the bank transaction on Oyster's side */\n linkedBankTransaction?: Maybe;\n /** The net amount paid out, in dollars. */\n netPayoutAmount: Scalars['Float']['output'];\n /** The date that the payout was paid */\n paidAt?: Maybe;\n /** The account that the payout was made to */\n payableAccount: AscendPayableAccount;\n /** The date that the payout will be paid */\n payingAt?: Maybe;\n /** The type of the recipient */\n recipientType: AscendRecipientType;\n /** The reference number included in the bank memo associated with this payout */\n reference?: Maybe;\n /** The current state of the payout */\n status: AscendPayoutStatus;\n /** The type of the payout */\n type: AscendPayoutType;\n};\n\n/** The status of the payout */\nexport enum AscendPayoutStatus {\n /** The payout has been canceled */\n Canceled = 'CANCELED',\n /** The payout has failed to reach the payable account. */\n Failed = 'FAILED',\n /** The payout is blocked until the invoice release_date when funds can be paid to the payable account. */\n OnHold = 'ON_HOLD',\n /** The payout has been paid to designated PayableAccount */\n Paid = 'PAID',\n /** The payout has been initiated but we have not received confirmation that it has cleared. */\n Paying = 'PAYING',\n /** The payout is waiting for confirmation from servicer indicating it has been funded. */\n Transferred = 'TRANSFERRED',\n /** Initial state, no action has been taken on the payout. */\n Unpaid = 'UNPAID'\n}\n\n/** The type of the payout */\nexport enum AscendPayoutType {\n /** Transfer cumulative supplier funding to org so that they can pay out to supplier - paid to the organization's trust account */\n AgentSupplierFunding = 'AGENT_SUPPLIER_FUNDING',\n /** Policy's commission paid to organization's commission account */\n Commission = 'COMMISSION',\n /** Policy's full premium (premium w/ commission) paid to organization's trust account */\n FullPremium = 'FULL_PREMIUM',\n /** Policy's net premium (full premium - commission) paid out to org's trust account (direct bill) */\n NetPremium = 'NET_PREMIUM',\n /** Payout to agency's commission account for one-off invoice */\n OneOff = 'ONE_OFF',\n /** Payout to org for additional funds they have transferred to us - paid to the organization's commission account */\n Overpayment = 'OVERPAYMENT',\n /** Policy's premium paid out to supplier's honor_supplier_account or supplier_account (agency bill) */\n Supplier = 'SUPPLIER',\n /** Payout to agency's trust account for surplus line taxes */\n SurplusLinesTax = 'SURPLUS_LINES_TAX',\n /** Financed policy's downpayment paid to honor's downpayment account */\n TakeRate = 'TAKE_RATE'\n}\n\n/** A collection of insurance quotes pooled to produce 1 checkout link. */\nexport type AscendProgram = {\n __typename?: 'AscendProgram';\n /** The date the program was archived. The date uses UTC and is represented in the ISO8601 format. */\n archivedAt?: Maybe;\n /** The date the program was checked out. The date uses UTC and is represented in the ISO8601 format. */\n checkedOutAt?: Maybe;\n /** The date the program was created. The date uses UTC and is represented in the ISO8601 format. */\n createdAt: Scalars['Time']['output'];\n /** The unique identifier for the program */\n id: Scalars['String']['output'];\n /** Invoices created for this program, if any. This corresponds to the data returned from the /v1/invoices endpoint */\n invoices: Array;\n /** Financing details for this program, if any. This corresponds to the data returned from the /v1/loans endpoint */\n loans: Array;\n /** A URL to complete the checkout process. */\n programUrl: Scalars['String']['output'];\n /** The payment option chosen by the insured during the checkout process. */\n selectedPaymentOptionType?: Maybe;\n /** The state of the program */\n status: AscendProgramStatus;\n /** The date the program was last updated. The date uses UTC and is represented in the ISO8601 format. */\n updatedAt: Scalars['Time']['output'];\n};\n\nexport enum AscendProgramCreationMode {\n BundleWithExistingQuote = 'BUNDLE_WITH_EXISTING_QUOTE',\n CreateProgram = 'CREATE_PROGRAM',\n UseSpecificProgramId = 'USE_SPECIFIC_PROGRAM_ID'\n}\n\n/** The status of a program */\nexport enum AscendProgramStatus {\n Archived = 'ARCHIVED',\n CheckedOut = 'CHECKED_OUT',\n Created = 'CREATED',\n Elected = 'ELECTED',\n Purchased = 'PURCHASED',\n ReadyForCheckout = 'READY_FOR_CHECKOUT'\n}\n\n/** The type of the Ascend recipient */\nexport enum AscendRecipientType {\n Account = 'ACCOUNT',\n Carrier = 'CARRIER',\n Organization = 'ORGANIZATION',\n Wholesaler = 'WHOLESALER'\n}\n\n/** An insurance wholesaler or MGA. */\nexport type AscendWholesaler = {\n __typename?: 'AscendWholesaler';\n /** A human readable unique identifier. */\n id: Scalars['String']['output'];\n /** The wholesaler display name. */\n title: Scalars['String']['output'];\n};\n\nexport type AvailableCoverageLimit = {\n __typename?: 'AvailableCoverageLimit';\n insuranceType: InsuranceType;\n limits: InsuranceLimits;\n};\n\n/** Represents the construction type of a building. */\nexport enum BuildingConstructionType {\n /** A fire resistive construction type. */\n FireResistive = 'FIRE_RESISTIVE',\n /** A frame construction type. */\n Frame = 'FRAME',\n /** A joisted masonry construction type. */\n JoistedMasonry = 'JOISTED_MASONRY',\n /** A masonry non-combustible construction type. */\n MasonryNonCombustible = 'MASONRY_NON_COMBUSTIBLE',\n /** A modified fire resistive construction type. */\n ModifiedFireResistive = 'MODIFIED_FIRE_RESISTIVE',\n /** A non-combustible construction type. */\n NonCombustible = 'NON_COMBUSTIBLE'\n}\n\n/** Represents the building location ownership type */\nexport enum BuildingOwnershipType {\n /** The building is a home that is owned by the business. */\n Home = 'HOME',\n /** The building is leased by the business. */\n Leased = 'LEASED',\n /** The building is owned by the business. */\n Owned = 'OWNED'\n}\n\n/** Represents the type of roof on a building. */\nexport enum BuildingRoofType {\n /** Asphalt shingles roof type. */\n AsphaltShingles = 'ASPHALT_SHINGLES',\n /** Built-up gravel roof type. */\n BuiltUpGravel = 'BUILT_UP_GRAVEL',\n /** Built-up without gravel roof type. */\n BuiltUpWithoutGravel = 'BUILT_UP_WITHOUT_GRAVEL',\n /** Clay tiles roof type. */\n ClayTiles = 'CLAY_TILES',\n /** Foam roof type. */\n Foam = 'FOAM',\n /** Metal roof type. */\n Metal = 'METAL',\n /** Modified bitumen roof type. */\n ModifiedBitumen = 'MODIFIED_BITUMEN',\n /** Single-ply ballasted roof type. */\n SinglePlyBallasted = 'SINGLE_PLY_BALLASTED',\n /** Single-ply PVC TPO roof type. */\n SinglePlyPvcTpo = 'SINGLE_PLY_PVC_TPO',\n /** Single-ply SPDM rubber roof type. */\n SinglePlySpdmRubber = 'SINGLE_PLY_SPDM_RUBBER',\n /** Wood shingles roof type. */\n WoodShingles = 'WOOD_SHINGLES'\n}\n\n/** Represents the type of burglar alarm installed at a business location. */\nexport enum BurglarAlarmType {\n /** A central burglar alarm type. */\n BurglarCentral = 'BURGLAR_CENTRAL',\n /** A local burglar alarm type. */\n BurglarLocal = 'BURGLAR_LOCAL',\n /** No burglar alarm. */\n BurglarNone = 'BURGLAR_NONE',\n /** A police and fire burglar alarm type. */\n BurglarPoliceFire = 'BURGLAR_POLICE_FIRE'\n}\n\n/** BusinessApplication represents an application */\nexport type BusinessApplication = {\n __typename?: 'BusinessApplication';\n /** The annual revenue of the business. */\n annualRevenue: Scalars['Float']['output'];\n /** The 'doing business as' name of the business. */\n businessDba: Scalars['String']['output'];\n /** The name of the business. */\n businessName: Scalars['String']['output'];\n /** The primary contact information for the business. */\n contact: BusinessContact;\n /** CoverForce applications associated with this application */\n coverforceApplications: Array;\n /** The date the application was originally created */\n createdAt: Scalars['Time']['output'];\n /** Information about the employees at the business */\n employeeInfo: BusinessEmployeeInfo;\n /** The Federal Employer Identification Number of the business. */\n fein: Scalars['String']['output'];\n /** SHA-256 hash of the application data */\n fingerprint: Scalars['String']['output'];\n /** The ID of the business application */\n id: Scalars['ID']['output'];\n /** The desired effective date of the insurance. */\n insuranceEffectiveAt?: Maybe;\n /** The types of insurance the business is applying for. */\n insuranceTypes: Array;\n /** Indicates whether the business is a non-profit organization. */\n isNonProfit: Scalars['Boolean']['output'];\n /** The legal entity type of the business. */\n legalEntityType?: Maybe;\n /** List of locations associated with the business. */\n locations: Array;\n /** The mailing address of the business. */\n mailingAddress: Address;\n /** The North American Industry Classification System code of the business. */\n naicsCode: Scalars['String']['output'];\n /** A description of the nature of the business. */\n natureOfBusiness: Scalars['String']['output'];\n /** Information about the business owners. */\n owners: Array;\n /** Any past policy losses */\n pastPolicyLosses: Array;\n /**\n * Carriers that will quote one or more coverages for this application.\n * Can only be queried after the application has been completed.\n */\n quotableCarriers: Array;\n /** Current quotes for this application, if any are available. */\n quotes: Array;\n /** Carriers selected by the customer to generate quotes for. */\n selectedCarriers: Array;\n /** The selected insurance limits for the application. */\n selectedLimits: InsuranceLimits;\n /** State of the application */\n state: BusinessApplicationState;\n /** Answers to underwriting questions. */\n underwritingAnswers: Array;\n /** Underwriting questions needed on this application. */\n underwritingQuestions: Array;\n /** Underwriting statements and disclosures that the insured needs to acknowledge. */\n underwritingStatements: Array;\n /** The date this application was last updated */\n updatedAt: Scalars['Time']['output'];\n /** The version of this application */\n version: Scalars['Int64']['output'];\n /**\n * The previous versions of this application, subject to the specified limit and offset.\n * The first version in this list will be this version (i.e. identical to the current application), followed by the version before that, and so-forth.\n */\n versionHistory: Array;\n /** The website of the business. */\n website: Scalars['String']['output'];\n /** The year the business was founded. */\n yearOfFounding: Scalars['String']['output'];\n /** The number of years of management experience the business has. */\n yearsOfManagementExperience: Scalars['Int']['output'];\n};\n\n/** BusinessApplication represents an application */\nexport type BusinessApplicationVersionHistoryArgs = {\n limit?: InputMaybe;\n offset?: InputMaybe;\n};\n\nexport enum BusinessApplicationCarrier {\n Amtrust = 'AMTRUST',\n Biberk = 'BIBERK',\n Chubb = 'CHUBB',\n Cna = 'CNA',\n Coalition = 'COALITION',\n Coterie = 'COTERIE',\n Employers = 'EMPLOYERS',\n Gaig = 'GAIG',\n Guard = 'GUARD',\n Hiscox = 'HISCOX',\n Libertymutual = 'LIBERTYMUTUAL',\n Markel = 'MARKEL',\n Nationwide = 'NATIONWIDE',\n Next = 'NEXT',\n Progressive = 'PROGRESSIVE',\n Travelers = 'TRAVELERS'\n}\n\nexport type BusinessApplicationQuote = {\n __typename?: 'BusinessApplicationQuote';\n /** The carrier that has offered this quote */\n carrier: BusinessApplicationCarrier;\n /** The link to the carrier portal to view and modify the quote */\n carrierBridgingLink?: Maybe;\n /** The link to the carrier portal to bind and claim the policy */\n carrierPurchaseLink?: Maybe;\n /** The ID of the quote in the carrier system */\n carrierQuoteId: Scalars['String']['output'];\n /** The ID of the quote */\n id: Scalars['String']['output'];\n /** The effective date of the insurance */\n insuranceEffectiveDate: Scalars['Time']['output'];\n /** The expiration date of the insurance */\n insuranceExpiryDate: Scalars['Time']['output'];\n /** List of payment plans available for this quote if the quote is bindable */\n paymentPlans: Array;\n /** If this policy is binding, the policy ID from the carrier system. */\n policyId?: Maybe;\n /** The type of insurance policy */\n policyType: InsuranceType;\n /** The premium amount for the policy */\n premiumAmount: Scalars['Float']['output'];\n /** The URL of the quote proposal PDF */\n quoteProposalUrl?: Maybe;\n /** The state of the quote */\n state: BusinessApplicationQuoteState;\n /** The tax amount for the policy */\n taxAmount: Scalars['Float']['output'];\n /** The total amount for the policy */\n totalAmount: Scalars['Float']['output'];\n /** The type of quote */\n type: BusinessApplicationQuoteType;\n};\n\n/** Type representing a payment plan for a business application quote */\nexport type BusinessApplicationQuotePaymentPlan = {\n __typename?: 'BusinessApplicationQuotePaymentPlan';\n /** Description of the payment plan */\n description: Scalars['String']['output'];\n /** Initial down payment amount */\n downAmount: Scalars['Float']['output'];\n /** Due date for the down payment */\n downDueAt?: Maybe;\n /** Amount for each installment */\n installmentAmount: Scalars['Float']['output'];\n /** Number of installments */\n installmentCount: Scalars['Int']['output'];\n /** Due date for the installments */\n installmentDueAt?: Maybe;\n /** Fee charged for each installment */\n installmentFee: Scalars['Float']['output'];\n /** Frequency of the installments */\n installmentFrequency: PaymentPlanInstallmentFrequency;\n /** Method of payment for the plan */\n paymentMethod: PaymentPlanPaymentMethodType;\n /** Unique identifier for the payment plan */\n paymentPlanId: Scalars['String']['output'];\n /** Title of the payment plan */\n title: Scalars['String']['output'];\n /** Total amount to be paid */\n totalAmount: Scalars['Float']['output'];\n /** Total fees associated with the payment plan */\n totalFees: Scalars['Float']['output'];\n};\n\n/** Enum representing the possible states of a business application quote */\nexport enum BusinessApplicationQuoteState {\n /** The quote is in the process of being bound */\n Binding = 'BINDING',\n /** The quote has been created */\n Created = 'CREATED'\n}\n\n/** Enum representing the different types of quotes for a business application */\nexport enum BusinessApplicationQuoteType {\n /** Quote that can be bound online */\n BindOnline = 'BIND_ONLINE',\n /** Quote that serves as a bridge between different stages */\n Bridge = 'BRIDGE',\n /** Quote that has been declined */\n Decline = 'DECLINE',\n /** Quote that has failed for some reason */\n Failed = 'FAILED',\n /** Quote that needs to be referred for further review */\n Refer = 'REFER'\n}\n\n/** The state of business application */\nexport enum BusinessApplicationState {\n /** The application has been canceled and is no longer active */\n Canceled = 'CANCELED',\n /** The application has been created but no further action has been taken */\n Created = 'CREATED',\n /** A quote has been generated for the application */\n Quoted = 'QUOTED',\n /** The application is in the process of being quoted */\n Quoting = 'QUOTING',\n /** The application has been submitted for review or processing */\n Submitted = 'SUBMITTED'\n}\n\n/** Describes the reason why an application was updated */\nexport enum BusinessApplicationUpdateReasonCode {\n /** Placeholder reason codes until the use case becomes more clear */\n Unknown = 'UNKNOWN'\n}\n\n/** Describes the type of update that occured to a application */\nexport enum BusinessApplicationUpdateType {\n /** The application was canceled and is no longer active */\n CancelApplication = 'CANCEL_APPLICATION',\n /** The application was created, either directely or by completing an offer */\n CreateApplication = 'CREATE_APPLICATION',\n /** The application was completed and submitted, and is now ready to be reviewed by the carrier */\n SubmitApplication = 'SUBMIT_APPLICATION',\n /** The application was updated. Requires manual inspection of the application to determine the actual update */\n UpdateApplication = 'UPDATE_APPLICATION'\n}\n\n/** Describes a particular version of an application */\nexport type BusinessApplicationVersion = {\n __typename?: 'BusinessApplicationVersion';\n /** The full application object that includes all of the updates made in this version and all previous versions */\n businessApplication: BusinessApplication;\n /** The date this version was created */\n createdAt: Scalars['Time']['output'];\n /** Produces a human-readable string that can be used to diff against another application version. */\n diffableJson: Scalars['String']['output'];\n /** The version number of the previous application version, if there is any. If this field is null, then this version is the only version */\n previousVersion?: Maybe;\n /** The ID of the entity that initiated the update, depending on the type */\n updateInitiatorId: Scalars['String']['output'];\n /** The type of the entity that initiated the update */\n updateInitiatorType: UpdateInitiatorType;\n /** Indicates whether this update is 'private' in the sense that it should not be displayed to the policyholder */\n updatePrivate: Scalars['Boolean']['output'];\n /** A human-readable description of the reason why this update was made */\n updateReason?: Maybe;\n /** A programmatic representation of the reason why this update was made */\n updateReasonCode?: Maybe;\n /** The types of updates made between this version and the previous version */\n updateTypes: Array;\n /** The version number of this application version */\n version: Scalars['Int64']['output'];\n};\n\n/** A business category */\nexport type BusinessCategory = {\n __typename?: 'BusinessCategory';\n /** The category */\n category: Scalars['String']['output'];\n /** The full path of the category, starting with the root category and including the category itself */\n categoryPath: Array;\n /** The ID of the category */\n id: Scalars['ID']['output'];\n /** The legacy product vertical, if applicable */\n legacyProductVertical?: Maybe;\n /** The parent category */\n parent?: Maybe;\n /** The risk score of the category */\n riskScore: Scalars['Float']['output'];\n};\n\n/** Represents a contact person for the business. */\nexport type BusinessContact = {\n __typename?: 'BusinessContact';\n /** The email address of the contact person. */\n email: Scalars['String']['output'];\n /** The name of the contact person. */\n fullName: Scalars['String']['output'];\n /** The phone number of the contact person. */\n phone: Scalars['String']['output'];\n};\n\n/** Represents a contact person for the business. */\nexport type BusinessContactInput = {\n /** The email address of the contact person. */\n email?: InputMaybe;\n /** The name of the contact person. */\n fullName?: InputMaybe;\n /** The phone number of the contact person. */\n phone?: InputMaybe;\n};\n\n/** Represents information about the employees at a business location. */\nexport type BusinessEmployeeInfo = {\n __typename?: 'BusinessEmployeeInfo';\n /** The job code ID associated with the employees. */\n jobCode: Scalars['String']['output'];\n /** The number of full-time employees at the business location. */\n numFullTimeEmployees: Scalars['Int']['output'];\n /** The number of part-time employees at the business location. */\n numPartTimeEmployees: Scalars['Int']['output'];\n /** The total payroll amount for all employees at the business location. */\n totalEmployeePayroll: Scalars['Float']['output'];\n};\n\n/** Represents information about the employees at a business location. */\nexport type BusinessEmployeeInfoInput = {\n /** The job code ID associated with the employees. */\n jobCode?: InputMaybe;\n /** The number of full-time employees at the business location. */\n numFullTimeEmployees?: InputMaybe;\n /** The number of part-time employees at the business location. */\n numPartTimeEmployees?: InputMaybe;\n /** The total payroll amount for all employees at the business location. */\n totalEmployeePayroll?: InputMaybe;\n};\n\n/** Input type for business insurance personalization details */\nexport type BusinessInsurancePersonalizationInput = {\n /** Description for other insurance types not listed */\n insuranceOtherDesc?: InputMaybe;\n /** List of insurance types required by the business */\n insuranceTypes: Array;\n /** Description for other operation types not listed */\n operationOtherDesc?: InputMaybe;\n /** List of operation types for the business */\n operationTypes: Array;\n /** Revenue from manufacturing operations */\n revenueManufacturing?: InputMaybe;\n /** Revenue from other operations */\n revenueOther?: InputMaybe;\n /** Revenue from rental operations */\n revenueRental?: InputMaybe;\n /** Percentage of rental revenue that is guided */\n revenueRentalPercentGuided?: InputMaybe;\n /** Revenue from retail operations */\n revenueRetail?: InputMaybe;\n /** Revenue from service or repair operations */\n revenueServiceOrRepair?: InputMaybe;\n /** Revenue from wholesale operations */\n revenueWholesale?: InputMaybe;\n /** Total payroll for the business */\n totalPayroll?: InputMaybe;\n};\n\n/** Represents the legal entity type of a business. */\nexport enum BusinessLegalEntityType {\n /** An association. */\n Association = 'ASSOCIATION',\n /** A corporation. */\n Corporation = 'CORPORATION',\n /** An estate. */\n Estate = 'ESTATE',\n /** An executor. */\n Executor = 'EXECUTOR',\n /** A general partnership. */\n GeneralPartnership = 'GENERAL_PARTNERSHIP',\n /** A government entity. */\n GovernmentEntity = 'GOVERNMENT_ENTITY',\n /** An individual. */\n Individual = 'INDIVIDUAL',\n /** Joint employers. */\n JointEmployers = 'JOINT_EMPLOYERS',\n /** A joint venture. */\n JointVenture = 'JOINT_VENTURE',\n /** A labor union. */\n LaborUnion = 'LABOR_UNION',\n /** A limited liability company. */\n LimitedLiabilityCompany = 'LIMITED_LIABILITY_COMPANY',\n /** A limited liability partnership. */\n LimitedLiabilityPartnership = 'LIMITED_LIABILITY_PARTNERSHIP',\n /** A limited partnership. */\n LimitedPartnership = 'LIMITED_PARTNERSHIP',\n /** Multiple statuses. */\n MultipleStatus = 'MULTIPLE_STATUS',\n /** A non-profit association. */\n NonProfitAssociation = 'NON_PROFIT_ASSOCIATION',\n /** A non-profit corporation. */\n NonProfitCorporation = 'NON_PROFIT_CORPORATION',\n /** An S corporation. */\n SCorporation = 'S_CORPORATION',\n /** Tenants in common. */\n TenantsInCommon = 'TENANTS_IN_COMMON',\n /** A trust. */\n Trust = 'TRUST'\n}\n\n/** Represents a business location. */\nexport type BusinessLocation = {\n __typename?: 'BusinessLocation';\n /** The address of the business location. */\n address: Address;\n /** Information about the building of the business location. */\n buildingInfo: BusinessLocationBuildingInfo;\n /** Information about the employees at the business location. */\n employeeInfo: BusinessEmployeeInfo;\n /** The unique identifier of the business location. */\n id: Scalars['ID']['output'];\n /** Indicates whether this is the primary business location. */\n isPrimary: Scalars['Boolean']['output'];\n};\n\n/** Represents information about the building of a business location. */\nexport type BusinessLocationBuildingInfo = {\n __typename?: 'BusinessLocationBuildingInfo';\n /** The annual sales of the business location. */\n annualSales: Scalars['Float']['output'];\n /** The area occupied by the business. */\n areaOccupiedByBusiness: Scalars['Float']['output'];\n /** The building coverage amount. */\n buildingCoverage: Scalars['Float']['output'];\n /** The type of burglar alarm installed at the business location. */\n burglarAlarmType?: Maybe;\n /** The construction type of the building. */\n constructionType?: Maybe;\n /** The year the electrical wiring was last updated. */\n electricalWiringUpdateYear: Scalars['String']['output'];\n /** The year the heating system was last updated. */\n heatingUpdateYear: Scalars['String']['output'];\n /** The type of ownership of this business location. */\n ownershipType?: Maybe;\n /** The personal property coverage amount. */\n personalPropertyCoverage: Scalars['Float']['output'];\n /** The year the plumbing system was last updated. */\n plumbingUpdateYear: Scalars['String']['output'];\n /** The type of roof on the building. */\n roofType?: Maybe;\n /** The year the roof was last updated. */\n roofUpdateYear: Scalars['String']['output'];\n /** The percentage of the building that is sprinklered. */\n sprinkleredPercentage: Scalars['Float']['output'];\n /** The total area of the building. */\n totalArea: Scalars['Float']['output'];\n /** The total number of stories in the building. */\n totalStories: Scalars['Int']['output'];\n /** The year the building was built. */\n yearBuilt: Scalars['String']['output'];\n};\n\n/** Represents information about the building of a business location. */\nexport type BusinessLocationBuildingInfoInput = {\n /** The annual sales of the business location. */\n annualSales?: InputMaybe;\n /** The area occupied by the business. */\n areaOccupiedByBusiness?: InputMaybe;\n /** The building coverage amount. */\n buildingCoverage?: InputMaybe;\n /** The type of burglar alarm installed at the business location. */\n burglarAlarmType?: InputMaybe;\n /** The construction type of the building. */\n constructionType?: InputMaybe;\n /** The year the electrical wiring was last updated. */\n electricalWiringUpdateYear?: InputMaybe;\n /** The year the heating system was last updated. */\n heatingUpdateYear?: InputMaybe;\n /** Indicates whether the business owns the building. */\n ownershipType?: InputMaybe;\n /** The personal property coverage amount. */\n personalPropertyCoverage?: InputMaybe;\n /** The year the plumbing system was last updated. */\n plumbingUpdateYear?: InputMaybe;\n /** The type of roof on the building. */\n roofType?: InputMaybe;\n /** The year the roof was last updated. */\n roofUpdateYear?: InputMaybe;\n /** The percentage of the building that is sprinklered. */\n sprinkleredPercentage?: InputMaybe;\n /** The total area of the building. */\n totalArea?: InputMaybe;\n /** The total number of stories in the building. */\n totalStories?: InputMaybe;\n /** The year the building was built. */\n yearBuilt?: InputMaybe;\n};\n\nexport type BusinessLocationInput = {\n address: AddressInput;\n buildingInfo: BusinessLocationBuildingInfoInput;\n employeeInfo: BusinessEmployeeInfoInput;\n id: Scalars['String']['input'];\n isPrimary: Scalars['Boolean']['input'];\n};\n\n/** Represents an owner of the business. */\nexport type BusinessOwner = {\n __typename?: 'BusinessOwner';\n /** The annual payroll of the business owner. */\n annualPayroll: Scalars['Float']['output'];\n /** The date of birth of the business owner. */\n dateOfBirth?: Maybe;\n /** The full name of the business owner. */\n fullName: Scalars['String']['output'];\n /** The job code associated with the business owner. */\n jobCode?: Maybe;\n /** The location ID associated with the business owner. */\n locationId: Scalars['String']['output'];\n};\n\n/** Represents an owner of the business. */\nexport type BusinessOwnerInput = {\n /** The annual payroll of the business owner. */\n annualPayroll: Scalars['Float']['input'];\n /** The date of birth of the business owner. */\n dateOfBirth: Scalars['String']['input'];\n /** The full name of the business owner. */\n fullName: Scalars['String']['input'];\n /** The job code of the business owner. */\n jobCode: Scalars['String']['input'];\n};\n\n/** Business Policy represents the business or commercial insurance policy */\nexport type BusinessPolicy = {\n __typename?: 'BusinessPolicy';\n /** The broker providing this policy, if any */\n broker?: Maybe;\n /** If the policy was canceled or nonrenewed, information about the latest instance of cancellation or nonrenewal */\n cancellation?: Maybe;\n /** The carrier providing this policy */\n carrier: InsuranceCarrier;\n /** The date the policy object was originally created */\n createdAt: Scalars['Time']['output'];\n /** Detailed information extracted from the policy document, if available */\n details?: Maybe;\n /** The timestamp when this policy expires */\n expiresAt?: Maybe;\n /** The external/carrier ID of the policy */\n externalId: Scalars['ID']['output'];\n /** All attached files for this application */\n files: Array;\n /** The internal ID of the policy */\n id: Scalars['ID']['output'];\n /** The timestamp when this policy is inforce */\n inforceAt?: Maybe;\n /** The timestamp when this policy was issued */\n issuedAt?: Maybe;\n /** The market this policy was written in */\n market: InsuranceMarket;\n /** Merchant that is associated with the policy */\n merchant?: Maybe;\n /** The number or external identifier associated with this policy within the carrier system */\n policyNumber: Scalars['String']['output'];\n /** The pricing information for this policy */\n pricing: BusinessPolicyPricing;\n /** The number or external identifier associated with this quote within the carrier system */\n quoteNumber: Scalars['String']['output'];\n /** If the policy was reinstated, information about the latest instance of when it was reinstated */\n reinstatement?: Maybe;\n /** If this policy was renewed from another policy, information about the renewal and its previous versions */\n renewal?: Maybe;\n /** The source of the policy, and associated details */\n source: BusinessPolicySource;\n /** The current state of the policy */\n state: PolicyState;\n /** The type of insurance this policy represents */\n type: InsuranceType;\n /** The date this policy object was last updated */\n updatedAt: Scalars['Time']['output'];\n /** The version of this policy */\n version: Scalars['Int64']['output'];\n /** The previous versions of this policy. The first version in this list will be this version (i.e. identical to the current policy), followed by the version before that, and so-forth. */\n versionHistory?: Maybe>;\n};\n\n/** Details about agency billing for a business policy */\nexport type BusinessPolicyAgencyBilling = {\n __typename?: 'BusinessPolicyAgencyBilling';\n /** Details about Ascend billable, if applicable */\n ascendBillable?: Maybe;\n /** Details about Ascend program, if applicable */\n ascendProgram?: Maybe;\n /** Details about Stripe invoice, if applicable */\n stripeInvoice?: Maybe;\n /** The type of agency billing used */\n type: BusinessPolicyAgencyBillingType;\n};\n\n/** The type of agency billing used for the policy */\nexport enum BusinessPolicyAgencyBillingType {\n /** Billing is handled through Ascend */\n Ascend = 'ASCEND',\n /** Billing is handled manually */\n Manual = 'MANUAL',\n /** Billing is handled through Stripe invoices */\n StripeInvoice = 'STRIPE_INVOICE'\n}\n\n/** The billing type of policy, indicating how the policy is billed */\nexport enum BusinessPolicyBillingType {\n /** Policy is billed by Oyster and then paid to the carrier */\n Agency = 'AGENCY',\n /** Policy is billed directly by the carrier */\n Direct = 'DIRECT',\n /** Billing type is unknown or not specified */\n Unknown = 'UNKNOWN'\n}\n\n/** A blanket additional insured for the policy */\nexport type BusinessPolicyBlanketAdditionalInsured = {\n __typename?: 'BusinessPolicyBlanketAdditionalInsured';\n /** The description of the blanket additional insured */\n description: Scalars['String']['output'];\n /** The form numbers that reference the blanket additional insured */\n formNumbers: Array;\n /** Supporting quotes from the policy document */\n quotes: Array;\n /** The reasoning for why the blanket additional insured is included */\n reasoning: Scalars['String']['output'];\n /** The type of the blanket additional insured */\n type: Scalars['String']['output'];\n};\n\n/** Detailed information about a policy cancellation */\nexport type BusinessPolicyCancellation = {\n __typename?: 'BusinessPolicyCancellation';\n /** The date and time when the cancellation was initiated */\n canceledAt: Scalars['Time']['output'];\n /** The entity that initiated the cancellation */\n canceledBy: BusinessPolicyCancellationSource;\n /** The date and time when the cancellation becomes effective */\n effectiveAt: Scalars['Time']['output'];\n /** The reason for the cancellation */\n reason: BusinessPolicyCancellationReason;\n /** A detailed description of the cancellation reason */\n reasonDescription: Scalars['String']['output'];\n /** The commission that Oyster will return to the customer */\n returnCommission: Scalars['Float']['output'];\n /** The premium that Oyster will return to the carrier or broker */\n returnPremium: Scalars['Float']['output'];\n /** The type of cancellation */\n type: BusinessPolicyCancellationType;\n};\n\n/** The reason for policy cancellation */\nexport enum BusinessPolicyCancellationReason {\n /** Carrier closed the insurance class */\n CarrierClosedClass = 'CARRIER_CLOSED_CLASS',\n /** Cancellation due to loss history */\n CarrierLossHistory = 'CARRIER_LOSS_HISTORY',\n /** Carrier cancelled due to non-payment */\n CarrierNonpayment = 'CARRIER_NONPAYMENT',\n /** Carrier's underwriting decision */\n CarrierUnderwritingReason = 'CARRIER_UNDERWRITING_REASON',\n /** Insured closed their business */\n InsuredClosedBusiness = 'INSURED_CLOSED_BUSINESS',\n /** Insured found better coverage elsewhere */\n InsuredFoundBetterCoverage = 'INSURED_FOUND_BETTER_COVERAGE',\n /** Insured found a better price elsewhere */\n InsuredFoundBetterPrice = 'INSURED_FOUND_BETTER_PRICE',\n /** Insured failed to make payments */\n InsuredNonpayment = 'INSURED_NONPAYMENT',\n /** Insured no longer has exposure requiring coverage */\n InsuredNoExposure = 'INSURED_NO_EXPOSURE',\n /** Other unspecified reason */\n Other = 'OTHER',\n /** Oyster found better coverage for the insured */\n OysterFoundBetterCoverage = 'OYSTER_FOUND_BETTER_COVERAGE',\n /** Oyster found a better price for the insured */\n OysterFoundBetterPrice = 'OYSTER_FOUND_BETTER_PRICE'\n}\n\n/** The source of the policy cancellation */\nexport enum BusinessPolicyCancellationSource {\n /** Cancellation initiated by the carrier */\n Carrier = 'CARRIER',\n /** Cancellation initiated by the insured */\n Insured = 'INSURED',\n /** Cancellation initiated by Oyster */\n Oyster = 'OYSTER'\n}\n\n/** The type of policy cancellation */\nexport enum BusinessPolicyCancellationType {\n /** Standard cancellation of the policy */\n Cancellation = 'CANCELLATION',\n /** Non-renewal of the policy */\n Nonrenewal = 'NONRENEWAL',\n /** Expiration of the quote without conversion to a policy */\n QuoteExpired = 'QUOTE_EXPIRED'\n}\n\n/** Description of a policy coverage or exclusion */\nexport type BusinessPolicyCoverageOrExclusionDescription = {\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n /** The description of the coverage or exclusion */\n description: Scalars['String']['output'];\n /** Supporting quotes from the policy document */\n policyQuotes: Array;\n /** The title of the coverage or exclusion */\n title: Scalars['String']['output'];\n};\n\n/** An endorsement for the policy */\nexport type BusinessPolicyEndorsement = {\n __typename?: 'BusinessPolicyEndorsement';\n /** The form numbers that reference the endorsement */\n formNumbers: Array;\n /** Whether the endorsement is included */\n included: Scalars['Boolean']['output'];\n /** Supporting quotes from the policy document */\n quotes: Array;\n /** The reasoning for why the endorsement is included */\n reasoning: Scalars['String']['output'];\n};\n\n/** The endorsements for the policy */\nexport type BusinessPolicyEndorsements = {\n __typename?: 'BusinessPolicyEndorsements';\n /** Whether the primary and non-contributory coverage endorsement is included */\n primaryAndNonContributoryCoverage: BusinessPolicyEndorsement;\n /** Whether the waiver of subrogation endorsement is included */\n waiverOfSubrogation: BusinessPolicyEndorsement;\n};\n\n/** Entity involved in the policy */\nexport type BusinessPolicyEntity = {\n __typename?: 'BusinessPolicyEntity';\n /** The address of the entity */\n address: Address;\n /** The name of the entity */\n name: Scalars['String']['output'];\n};\n\n/** Extra limits for the policy, not covered by the standard limits */\nexport type BusinessPolicyExtraInsuranceLimit = {\n __typename?: 'BusinessPolicyExtraInsuranceLimit';\n /** The limit for the extra coverage */\n limit: Scalars['Float']['output'];\n /** The name of the limit */\n name: Scalars['String']['output'];\n};\n\n/** Policy details extracted from the policy document */\nexport type BusinessPolicyExtractedDetails = {\n __typename?: 'BusinessPolicyExtractedDetails';\n /** The blanket additional insureds for the policy */\n blanketAdditionalInsureds: Array;\n /** The carrier on the policy */\n carrier?: Maybe;\n /** The carrier's NAIC code */\n carrierNaic?: Maybe;\n /** The coverage descriptions for the policy */\n coverageDescriptions: Array;\n /** The deductible for the policy */\n deductible?: Maybe;\n /** The endorsements for the policy */\n endorsements: BusinessPolicyEndorsements;\n /** The exclusion descriptions for the policy */\n exclusionDescriptions: Array;\n /** Extra limits for the policy, not covered by the standard limits */\n extraLimits: Array;\n /** The insured on the policy */\n insured?: Maybe;\n /** The limits for the policy */\n limits: BusinessPolicyInsuranceLimits;\n /** The insured locations for the policy */\n locations: Array;\n /** The named additional insureds for the policy */\n namedAdditionalInsureds: Array;\n /** The policy number */\n policyNumber?: Maybe;\n /** A summary of the policy details */\n summary?: Maybe;\n};\n\nexport type BusinessPolicyInput = {\n agencyBillingType?: InputMaybe;\n /** Additional fees collected by Oyster as revenue. */\n agencyFees: Scalars['Float']['input'];\n ascendExistingQuoteRefId?: InputMaybe;\n ascendProgramCreationMode?: InputMaybe;\n ascendProgramId?: InputMaybe;\n billingType: BusinessPolicyBillingType;\n /** Fees collected by the wholesale broker */\n brokerFees: Scalars['Float']['input'];\n /** The portion of the wholesale broker fees that get kicked back to Oyster, as revenue */\n brokerFeesOysterPortion: Scalars['Float']['input'];\n brokerId?: InputMaybe;\n carrierId: Scalars['String']['input'];\n estimatedCommission: Scalars['Float']['input'];\n expiresAt?: InputMaybe;\n id: Scalars['String']['input'];\n inforceAt?: InputMaybe;\n issuedAt?: InputMaybe;\n market: InsuranceMarket;\n minimumEarnedPremium: Scalars['Float']['input'];\n /** Other fees incurred on this policy, not collected by Oyster as revenue */\n otherFees: Scalars['Float']['input'];\n /** Payment interval of the policy. If billed via ASCEND, leave this blank */\n paymentIntervalType?: InputMaybe;\n paymentOccurrencesPerInterval: Scalars['Int']['input'];\n /** Fees collected by the carrier to administer the policy or program */\n policyFees: Scalars['Float']['input'];\n policyNumber?: InputMaybe;\n /** The actual premium of the policy */\n premium: Scalars['Float']['input'];\n quoteNumber: Scalars['String']['input'];\n sourceAgentId: Scalars['String']['input'];\n sourceLeadId?: InputMaybe;\n sourceNotes: Scalars['String']['input'];\n sourceProcessType: BusinessPolicySourceProcessType;\n sourceSubType?: InputMaybe;\n sourceType: BusinessPolicySourceType;\n state: PolicyState;\n /** Taxes levied on the policy premium and any taxable fees */\n taxes: Scalars['Float']['input'];\n /** Total amount to charge for the policy, including premium and all taxes and fees */\n total: Scalars['Float']['input'];\n type: InsuranceType;\n};\n\n/** Limits for the policy. The policy has the coverage and associated limit if the value is non null or zero. */\nexport type BusinessPolicyInsuranceLimits = {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: Maybe;\n cyberRetentionLimit?: Maybe;\n glAggregateLimit?: Maybe;\n glMedicalPerOccurrenceLimit?: Maybe;\n glMedicalPerPersonLimit?: Maybe;\n glPerOccurrenceLimit?: Maybe;\n glPersonalAndAdvertisingInjuryLimit?: Maybe;\n glProductsAndCompletedOperationsLimit?: Maybe;\n glRentedPremisesDamageLimit?: Maybe;\n propertyBuildingLimit?: Maybe;\n propertyContentsLimit?: Maybe;\n umbrellaOrExcessAggregateLimit?: Maybe;\n umbrellaOrExcessPerOccurrenceLimit?: Maybe;\n wcPerAccidentLimit?: Maybe;\n wcPerDiseaseEmployeeLimit?: Maybe;\n wcPerDiseasePolicyLimit?: Maybe;\n};\n\nexport type BusinessPolicyLocation = {\n __typename?: 'BusinessPolicyLocation';\n /** The address of the location */\n address: Address;\n /** The limits for the location */\n limits: BusinessPolicyInsuranceLimits;\n};\n\n/** A named additional insured for the policy */\nexport type BusinessPolicyNamedAdditionalInsured = {\n __typename?: 'BusinessPolicyNamedAdditionalInsured';\n /** The address of the named additional insured */\n address: Address;\n /** The form numbers that reference the named additional insured */\n formNumbers: Array;\n /** The type of the named additional insured */\n name: Scalars['String']['output'];\n /** Supporting quotes from the policy document */\n quotes: Array;\n /** The reasoning for why the named additional insured is included */\n reasoning: Scalars['String']['output'];\n};\n\n/** Represents all pricing information for a policy */\nexport type BusinessPolicyPricing = {\n __typename?: 'BusinessPolicyPricing';\n /** The adjusted commission that Oyster will receive for this policy, which is the estimated commission minus any returns to the carrier or broker. If the policy is not canceled, this will be nil. */\n adjustedCommission?: Maybe;\n /** The adjusted premium that Oyster will receive for this policy, which is the premium minus any returns to the customer. If the policy is not canceled, this will be nil. */\n adjustedPremium?: Maybe;\n /** Add a resolver to compute adjusted commission + our fees. If the policy is not canceled, this will be the same as estimatedRevenue */\n adjustedRevenue: Scalars['Float']['output'];\n /** If billing type is AGENCY, this specifies information about the agency bill */\n agencyBilling?: Maybe;\n /** Additional fees collected by Oyster as revenue. */\n agencyFees: Scalars['Float']['output'];\n /** The billing type */\n billingType: BusinessPolicyBillingType;\n /** Fees collected by the wholesale broker */\n brokerFees: Scalars['Float']['output'];\n /** The portion of the wholesale broker fees that get kicked back to Oyster, as revenue */\n brokerFeesOysterPortion: Scalars['Float']['output'];\n /** Estimate of the commission Oyster receive for this policy */\n estimatedCommission: Scalars['Float']['output'];\n /** Add a resolver to compute estimated commission + our fees */\n estimatedRevenue: Scalars['Float']['output'];\n /** The interval type of payment plan. Leave null if currently unknown */\n intervalType?: Maybe;\n /** The minimum premium that must be paid for policy, regardless of cancellation, if any */\n minimumEarnedPremium: Scalars['Float']['output'];\n /** Other fees incurred on this policy, not collected by Oyster as revenue */\n otherFees: Scalars['Float']['output'];\n /** Fees collected by the carrier to administer the policy or program */\n policyFees: Scalars['Float']['output'];\n /** The premium for this policy */\n premium: Scalars['Float']['output'];\n /** Taxes levied on the policy premium and any taxable fees */\n taxes: Scalars['Float']['output'];\n /** The total price paid for this policy */\n total: Scalars['Float']['output'];\n};\n\nexport type BusinessPolicyQueryInput = {\n id: Scalars['ID']['input'];\n type: BusinessPolicyQueryInputType;\n};\n\nexport enum BusinessPolicyQueryInputType {\n MerchantId = 'MERCHANT_ID',\n PolicyId = 'POLICY_ID'\n}\n\n/** Information about a policy reinstatement */\nexport type BusinessPolicyReinstatement = {\n __typename?: 'BusinessPolicyReinstatement';\n /** The date and time when the reinstatement becomes effective */\n effectiveAt: Scalars['Time']['output'];\n /** A description of the reason for reinstatement */\n reasonDescription: Scalars['String']['output'];\n /** The date and time when the reinstatement was processed */\n reinstatedAt: Scalars['Time']['output'];\n};\n\n/** Information about policy renewals */\nexport type BusinessPolicyRenewal = {\n __typename?: 'BusinessPolicyRenewal';\n /** List of policies that renew this policy */\n nextPolicies: Array;\n /** List of previous policies that this policy renews */\n previousPolicies: Array;\n};\n\n/** Detailed information about the source of a business policy */\nexport type BusinessPolicySource = {\n __typename?: 'BusinessPolicySource';\n /** The Oyster agent associated with this policy, if any */\n agent?: Maybe;\n /** The ID of the lead, if applicable */\n leadId?: Maybe;\n /** Additional notes about the policy source */\n notes: Scalars['String']['output'];\n /** The type of process used to handle the policy */\n processType: BusinessPolicySourceProcessType;\n /** The subtype of the policy source, if applicable */\n subType?: Maybe;\n /** The main type of the policy source */\n type: BusinessPolicySourceType;\n};\n\n/** Describes the process type for handling the business policy */\nexport enum BusinessPolicySourceProcessType {\n /** Process led by an agent */\n AgentLed = 'AGENT_LED',\n /** Self-service process */\n SelfServe = 'SELF_SERVE'\n}\n\n/** Specifies the subtype of the business policy source */\nexport enum BusinessPolicySourceSubType {\n /** Referral from an accounting partner */\n AccountingPartner = 'ACCOUNTING_PARTNER',\n /** Referral from an agency */\n Agency = 'AGENCY',\n /** Lead from Bold Penguin */\n BoldPenguin = 'BOLD_PENGUIN',\n /** Referral from a customer */\n Customer = 'CUSTOMER',\n /** Other type of referral */\n OtherReferral = 'OTHER_REFERRAL',\n /** Lead from Tivly */\n Tivly = 'TIVLY'\n}\n\n/** Describes the source where the business deal comes from */\nexport enum BusinessPolicySourceType {\n /** Cross-sell through Go-To-Market strategy */\n GtmCrossSell = 'GTM_CROSS_SELL',\n /** Inbound lead or inquiry */\n Inbound = 'INBOUND',\n /** Other unspecified source */\n Other = 'OTHER',\n /** Paid lead acquisition */\n PaidLead = 'PAID_LEAD',\n /** Referral from an existing connection */\n Referral = 'REFERRAL'\n}\n\n/** Describes the reason why an application was updated */\nexport enum BusinessPolicyUpdateReasonCode {\n /** Placeholder reason codes until the use case becomes more clear */\n Unknown = 'UNKNOWN'\n}\n\n/** Describes the type of update that occured to a policy */\nexport enum BusinessPolicyUpdateType {\n /** The policy was canceled and is no longer active */\n CancelPolicy = 'CANCEL_POLICY',\n /** The policy was created */\n CreatePolicy = 'CREATE_POLICY',\n /** The policy expired and its no longer active */\n ExpirePolicy = 'EXPIRE_POLICY',\n /** The policy was reinstated after previously being canceled */\n ReinstatePolicy = 'REINSTATE_POLICY',\n /** The policy was created as a renewal */\n RenewPolicy = 'RENEW_POLICY',\n /** The policy was updated with new details extracted from the policy document */\n UpdateExtractedDetails = 'UPDATE_EXTRACTED_DETAILS',\n /** The policy was updated. Requires manual inspection of the policy to determine the actual update */\n UpdatePolicy = 'UPDATE_POLICY'\n}\n\n/** Describes a particular version of a policy */\nexport type BusinessPolicyVersion = {\n __typename?: 'BusinessPolicyVersion';\n /** The full policy object that includes all of the updates made in this version and all previous versions */\n businessPolicy: BusinessPolicy;\n /** The date this version was created */\n createdAt: Scalars['Time']['output'];\n /** Produces a human-readable string that can be used to diff against another policy version. */\n diffableJson: Scalars['String']['output'];\n /** The version number of the previous policy version, if there is any. If this field is null, then this version is the only version */\n previousVersion?: Maybe;\n /** The ID of the entity that initiated the update, depending on the type */\n updateInitiatorId: Scalars['String']['output'];\n /** The type of the entity that initiated the update */\n updateInitiatorType: UpdateInitiatorType;\n /** Indicates whether this update is 'private' in the sense that it should not be displayed to the policyholder */\n updatePrivate: Scalars['Boolean']['output'];\n /** A human-readable description of the reason why this update was made */\n updateReason?: Maybe;\n /** A programmatic representation of the reason why this update was made */\n updateReasonCode?: Maybe;\n /** The types of updates made between this version and the previous version */\n updateTypes: Array;\n /** The version number of this policy version */\n version: Scalars['Int64']['output'];\n};\n\nexport type CancelBusinessPolicyInput = {\n canceledBy: BusinessPolicyCancellationSource;\n effectiveAt: Scalars['Time']['input'];\n reason: BusinessPolicyCancellationReason;\n reasonDescription: Scalars['String']['input'];\n returnCommission: Scalars['Float']['input'];\n returnPremium: Scalars['Float']['input'];\n type: BusinessPolicyCancellationType;\n};\n\n/** Details for a request to cancel a policy */\nexport type CancelPolicyRequest = {\n __typename?: 'CancelPolicyRequest';\n /** ID of the policy to be cancelled */\n policyId: Scalars['ID']['output'];\n /** Reason for cancelling the policy */\n reason: Scalars['String']['output'];\n};\n\n/** Input type for canceling a policy request */\nexport type CancelPolicyRequestInput = {\n /** ID of the policy to be cancelled */\n policyId: Scalars['ID']['input'];\n /** Reason for cancelling the policy */\n reason: Scalars['String']['input'];\n};\n\n/** CertificateCoverage represents a specific coverage in the insurance certificate. */\nexport type CertificateCoverage = {\n __typename?: 'CertificateCoverage';\n /** The date when the coverage becomes effective */\n effectiveDate: Scalars['Time']['output'];\n /** The date when the coverage expires */\n expirationDate: Scalars['Time']['output'];\n /** Indicates if there is a waiver of subrogation */\n hasWaiverOfSubrogation: Scalars['Boolean']['output'];\n /** Indicates if the certificate holder is an additional insured */\n holderIsAdditionalInsured: Scalars['Boolean']['output'];\n /** The insurer providing this coverage */\n insurer: CoverageInsurer;\n /** A list of limits for this coverage */\n limits: Array;\n /** The policy number for this coverage */\n policyNumber: Scalars['String']['output'];\n /** The type of insurance coverage */\n type: InsuranceType;\n};\n\n/** CertificateDetails contains the detailed information of an insurance certificate. */\nexport type CertificateDetails = {\n __typename?: 'CertificateDetails';\n /** The entity that holds the certificate */\n certificateHolder: CertificateEntity;\n /** The unique identifier for the certificate */\n certificateNumber: Scalars['String']['output'];\n /** A list of coverages included in the certificate */\n coverages: Array;\n /** A description of the operations covered by the certificate */\n descriptionOfOperations: Scalars['String']['output'];\n /** The entity that is insured */\n insured: CertificateEntity;\n /** The entity that produced the certificate */\n producer: CertificateEntity;\n};\n\n/** CertificateEntity represents an entity involved in the insurance certificate. */\nexport type CertificateEntity = {\n __typename?: 'CertificateEntity';\n /** The address of the entity */\n address: Scalars['String']['output'];\n /** The name of the entity */\n name: Scalars['String']['output'];\n};\n\n/** CertificateLimit represents a specific limit in the insurance coverage. */\nexport type CertificateLimit = {\n __typename?: 'CertificateLimit';\n /** The monetary value of the limit */\n limit: Scalars['Float']['output'];\n /** The name of the limit */\n name: Scalars['String']['output'];\n};\n\n/** Represents an action required for compliance */\nexport type ComplianceAction = {\n __typename?: 'ComplianceAction';\n /** The person assigned to complete this action */\n assignee?: Maybe;\n /** The person who completed this action, if applicable */\n completedBy?: Maybe;\n /** The date when this action was completed, if applicable */\n completionDate?: Maybe;\n /** List of requirements for completing this action */\n completionRequirements: Array;\n /** List of compliance items associated with this action */\n complianceItems: Array;\n /** Detailed description of the compliance action */\n description: Scalars['String']['output'];\n /** The date by which this action should be completed */\n dueDate: Scalars['Time']['output'];\n /** Unique identifier for the compliance action */\n id: Scalars['ID']['output'];\n /** Current status of the compliance action */\n status: ComplianceActionStatus;\n /** Title of the compliance action */\n title: Scalars['String']['output'];\n};\n\n/** Represents a person assigned to or who completed a compliance action */\nexport type ComplianceActionAssignee = {\n __typename?: 'ComplianceActionAssignee';\n /** Email address of the assignee */\n email: Scalars['String']['output'];\n /** Unique identifier for the assignee */\n id: Scalars['ID']['output'];\n /** Full name of the assignee */\n name: Scalars['String']['output'];\n};\n\n/** Represents a requirement for completing a compliance action */\nexport type ComplianceActionCompletionRequirement = {\n __typename?: 'ComplianceActionCompletionRequirement';\n /** Detailed description of the completion requirement */\n description: Scalars['String']['output'];\n /** Unique identifier for the completion requirement */\n id: Scalars['ID']['output'];\n /** Title of the completion requirement */\n title: Scalars['String']['output'];\n};\n\n/** Represents the status of a compliance action */\nexport enum ComplianceActionStatus {\n /** The action has been completed */\n Closed = 'CLOSED',\n /** The action is still pending completion */\n Open = 'OPEN'\n}\n\n/** Represents a group of compliance items */\nexport type ComplianceGroup = {\n __typename?: 'ComplianceGroup';\n /** Detailed description of the compliance group */\n description: Scalars['String']['output'];\n /** List of compliance items within this group */\n items: Array;\n /** Unique identifier for the compliance group */\n slug: Scalars['ID']['output'];\n /** Title of the compliance group */\n title: Scalars['String']['output'];\n};\n\n/** Represents a specific compliance item */\nexport type ComplianceItem = {\n __typename?: 'ComplianceItem';\n /** List of actions associated with this compliance item */\n actions: Array;\n /** Detailed description of the compliance item */\n description: Scalars['String']['output'];\n /** Unique identifier for the compliance item */\n id: Scalars['ID']['output'];\n /** List of reference materials related to this compliance item */\n referenceMaterials: Array;\n /** List of requirements for this compliance item */\n requirements: Array;\n /** Slug identifier for the compliance item */\n slug: Scalars['String']['output'];\n /** List of standards associated with this compliance item */\n standards: Array;\n /** Title of the compliance item */\n title: Scalars['String']['output'];\n};\n\n/** Represents reference material for compliance */\nexport type ComplianceReferenceMaterial = {\n __typename?: 'ComplianceReferenceMaterial';\n /** Detailed description of the reference material */\n description: Scalars['String']['output'];\n /** Title of the reference material */\n title: Scalars['String']['output'];\n /** URL to access the reference material */\n url: Scalars['String']['output'];\n};\n\n/** Represents a specific requirement for compliance */\nexport type ComplianceRequirement = {\n __typename?: 'ComplianceRequirement';\n /** Detailed description of the compliance requirement */\n description: Scalars['String']['output'];\n /** Title of the compliance requirement */\n title: Scalars['String']['output'];\n};\n\n/** Represents a compliance standard */\nexport type ComplianceStandard = {\n __typename?: 'ComplianceStandard';\n /** Detailed description of the compliance standard */\n description: Scalars['String']['output'];\n /** Title of the compliance standard */\n title: Scalars['String']['output'];\n /** URL for more information about the standard */\n url: Scalars['String']['output'];\n};\n\n/** CoverageInsurer represents the insurance company providing the coverage. */\nexport type CoverageInsurer = {\n __typename?: 'CoverageInsurer';\n /** The National Association of Insurance Commissioners (NAIC) number of the insurer */\n naic: Scalars['String']['output'];\n /** The name of the insurance company */\n name: Scalars['String']['output'];\n};\n\n/** Represents information about the associated CoverForce application. */\nexport type CoverforceApplication = {\n __typename?: 'CoverforceApplication';\n /** The ID of the policy that is binding, if any was selected */\n bindingPolicyId?: Maybe;\n /** The ID of the quote that is binding, if any was selected */\n bindingQuoteId?: Maybe;\n /** The ID of the associated CoverForce application. */\n id: Scalars['ID']['output'];\n /** The fingerprint of the application last submitted for quotes. */\n lastApplicationFingerprint: Scalars['String']['output'];\n /** The timestamp that the Coverforce application was last submitted for quotes */\n lastQuotesRefreshedAt?: Maybe;\n /** The type of insurance the CoverForce application is for. */\n type: InsuranceType;\n};\n\nexport type CreateApplicationInput = {\n /** The legal name of the business applying for insurance. */\n businessName: Scalars['String']['input'];\n /** The email address of the contact person for the business application. */\n email: Scalars['String']['input'];\n /** The name of the contact person for the business application. */\n fullName: Scalars['String']['input'];\n /** The phone number of the contact person for the business application. */\n phone: Scalars['String']['input'];\n};\n\nexport type CreateBusinessPoliciesInput = {\n insured: InsuredInput;\n merchantId: Scalars['String']['input'];\n policies: Array;\n};\n\n/** Details for a request to create a Certificate of Insurance */\nexport type CreateCoiRequest = {\n __typename?: 'CreateCoiRequest';\n /** Whether the certificate holder should be listed as additional insured */\n additionalInsured: Scalars['Boolean']['output'];\n /** Relationship between policyholder and additional insured, if applicable */\n additionalInsuredRelationship?: Maybe;\n /** Additional details about the relationship, if applicable */\n additionalInsuredRelationshipDescription?: Maybe;\n /** Address of the certificate holder */\n address: Address;\n /** Name of the certificate holder */\n name: Scalars['String']['output'];\n};\n\n/** Input type for creating a Certificate of Insurance request */\nexport type CreateCoiRequestInput = {\n /** Whether the certificate holder should be listed as additional insured */\n additionalInsured: Scalars['Boolean']['input'];\n /** Relationship between policyholder and additional insured, if applicable */\n additionalInsuredRelationship?: InputMaybe;\n /** Additional details about the relationship, if applicable */\n additionalInsuredRelationshipDescription?: InputMaybe;\n /** Address of the certificate holder */\n address: AddressInput;\n /** Name of the certificate holder */\n name: Scalars['String']['input'];\n};\n\nexport type CreateFileInput = {\n bytesBase64: Scalars['String']['input'];\n name: Scalars['String']['input'];\n notes: Scalars['String']['input'];\n role: FileRole;\n visibility: FileVisibility;\n};\n\n/** Input type for creating a new merchant */\nexport type CreateMerchantInput = {\n /** Physical address of the business */\n address: AddressInput;\n /** ID of the business category */\n businessCategoryId: Scalars['String']['input'];\n /** 'Doing Business As' name of the business */\n businessDba: Scalars['String']['input'];\n /** Legal name of the business */\n businessName: Scalars['String']['input'];\n /** Email address for the business */\n email: Scalars['String']['input'];\n /** Personalization details for the merchant */\n personalization?: InputMaybe;\n /** Phone number for the business */\n phone: Scalars['String']['input'];\n /** First name of the primary user */\n userFirstName: Scalars['String']['input'];\n /** Last name of the primary user */\n userLastName: Scalars['String']['input'];\n /** Website of the business */\n website: Scalars['String']['input'];\n};\n\n/** Input type for creating a new service request */\nexport type CreateServiceRequestInput = {\n /** Details specific to additional insured requests */\n addAdditionalInsured?: InputMaybe;\n /** Details specific to policy cancellation requests */\n cancelPolicy?: InputMaybe;\n /** Details specific to Certificate of Insurance requests */\n createCoi?: InputMaybe;\n /** Additional details about the request */\n details: Scalars['String']['input'];\n /** Details specific to document requests */\n documentRequest?: InputMaybe;\n /** Details specific to question requests */\n question?: InputMaybe;\n /** Type of service request */\n type: ServiceRequestType;\n};\n\n/** Details for a request for policy-related documents */\nexport type DocumentRequest = {\n __typename?: 'DocumentRequest';\n /** Type of document being requested */\n type: DocumentRequestType;\n};\n\n/** Input type for requesting policy-related documents */\nexport type DocumentRequestInput = {\n /** Type of document being requested */\n type?: InputMaybe;\n};\n\n/** Types of documents that can be requested */\nexport enum DocumentRequestType {\n /** Insurance binder document */\n Binder = 'BINDER',\n /** Certificate of Insurance */\n Certificate = 'CERTIFICATE',\n /** Policy endorsement document */\n Endorsement = 'ENDORSEMENT',\n /** Other document types */\n Other = 'OTHER',\n /** Full policy documentation */\n PolicyDocument = 'POLICY_DOCUMENT'\n}\n\n/**\n * A file describes a document that is attached to an object, with\n * metadata and URLs to fetch it.\n */\nexport type File = {\n __typename?: 'File';\n /** The internal URL to fetch the file */\n adminUrl: Scalars['String']['output'];\n /** The timestamp this file was created */\n createdAt: Scalars['Time']['output'];\n /** The details of this specific file, depending on the file role */\n details?: Maybe;\n /** The unique identifier of the file */\n id: Scalars['ID']['output'];\n /** The file name, for display and download purposes */\n name: Scalars['String']['output'];\n /** The notes associated with the file */\n notes: Scalars['String']['output'];\n /** The role of the file, i.e. how it relates to the object it is attached to */\n role: FileRole;\n /** The size of the file in bytes, if available */\n size: Scalars['Int']['output'];\n /** The file MIME type */\n type: Scalars['String']['output'];\n /** The timestamp this file was updated */\n updatedAt: Scalars['Time']['output'];\n /** The public URL to fetch the file, if the file is visible to the user */\n url?: Maybe;\n /** The visibility of the file, i.e. who can view this file */\n visibility: FileVisibility;\n};\n\n/**\n * FileDetails is a union type that represents different types of file details.\n * Currently, it only includes CertificateDetails.\n */\nexport type FileDetails = CertificateDetails;\n\n/** File role describes a type of file related to an object */\nexport enum FileRole {\n /** The file is a form generated as part of an application */\n ApplicationForm = 'APPLICATION_FORM',\n /** The file is a binder, a pre-coverage confirmation document */\n Binder = 'BINDER',\n /** The file is a certificate of insurance */\n Certificate = 'CERTIFICATE',\n /** The file is a template to generate a certificate of liability insurance */\n CertificateOfLiabilityInsuranceTemplate = 'CERTIFICATE_OF_LIABILITY_INSURANCE_TEMPLATE',\n /** The file is an endorsement, affixed to the policy document */\n Endorsement = 'ENDORSEMENT',\n /** The file is an invoice, generally for internal tracking purposes */\n Invoice = 'INVOICE',\n /** The file is a loss policy release, issued when a policy is canceled by the customer */\n LossPolicyRelease = 'LOSS_POLICY_RELEASE',\n /** The file is a notice of cancellation, issued when a policy is being canceled or nonrenewed by the carrier */\n NoticeOfCancellation = 'NOTICE_OF_CANCELLATION',\n /** The file is of another type */\n Other = 'OTHER',\n /** The file is a policy document */\n PolicyDocument = 'POLICY_DOCUMENT',\n /** The file is a quote document */\n QuoteDocument = 'QUOTE_DOCUMENT',\n /** The file role is unknown */\n Unknown = 'UNKNOWN'\n}\n\n/** File visibility describes who is able to view a file */\nexport enum FileVisibility {\n /** Only internal users can view this file */\n Internal = 'INTERNAL',\n /** End users and internal users can view this file */\n User = 'USER'\n}\n\nexport type GenerateCertificateInput = {\n additionalInsured: Scalars['Boolean']['input'];\n additionalInsuredRelationship?: InputMaybe;\n additionalInsuredRelationshipDescription?: InputMaybe;\n address: AddressInput;\n name: Scalars['String']['input'];\n notes: Scalars['String']['input'];\n};\n\nexport type GetBusinessApplication = {\n id?: InputMaybe;\n merchantId?: InputMaybe;\n policyId?: InputMaybe;\n};\n\nexport type InsuranceCarrier = {\n __typename?: 'InsuranceCarrier';\n /** If available, the ID of this carrier in Ascend */\n ascendId?: Maybe;\n /** Human readable short identifier of this carrier */\n id: Scalars['String']['output'];\n /** True if this insurance entity is a broker which we use to access a carrier */\n isBroker: Scalars['Boolean']['output'];\n /** True if this insurance entity is a carrier with binding authority */\n isCarrier: Scalars['Boolean']['output'];\n /** Legal name of this carrier */\n name: Scalars['String']['output'];\n /** The types of insurance policies supported by this carrier */\n supportedPolicies?: Maybe>;\n};\n\nexport type InsuranceLimits = {\n __typename?: 'InsuranceLimits';\n bopAggregateLimit?: Maybe;\n bopPerOccurrenceLimit?: Maybe;\n coverageState: Scalars['String']['output'];\n cyberAggregateLimit?: Maybe;\n cyberRetentionLimit?: Maybe;\n glAggregateLimit?: Maybe;\n glPerOccurrenceLimit?: Maybe;\n wcPerAccidentLimit?: Maybe;\n wcPerDiseaseEmployeeLimit?: Maybe;\n wcPerDiseasePolicyLimit?: Maybe;\n};\n\nexport type InsuranceLimitsInput = {\n bopAggregateLimit?: InputMaybe;\n bopPerOccurrenceLimit?: InputMaybe;\n coverageState: Scalars['String']['input'];\n cyberAggregateLimit?: InputMaybe;\n cyberRetentionLimit?: InputMaybe;\n glAggregateLimit?: InputMaybe;\n glPerOccurrenceLimit?: InputMaybe;\n wcPerAccidentLimit?: InputMaybe;\n wcPerDiseaseEmployeeLimit?: InputMaybe;\n wcPerDiseasePolicyLimit?: InputMaybe;\n};\n\n/** Describes the market the insurance policy was written in. */\nexport enum InsuranceMarket {\n /** The admitted market */\n Admitted = 'ADMITTED',\n /** The Excess and Surplus (E&S) market */\n ExcessAndSurplus = 'EXCESS_AND_SURPLUS'\n}\n\n/** Insurance type for business insurance */\nexport enum InsuranceType {\n AccidentAndHealth = 'ACCIDENT_AND_HEALTH',\n BusinessOwners = 'BUSINESS_OWNERS',\n CommercialAuto = 'COMMERCIAL_AUTO',\n Cyber = 'CYBER',\n DirectorsAndOfficers = 'DIRECTORS_AND_OFFICERS',\n EmploymentPracticesLiability = 'EMPLOYMENT_PRACTICES_LIABILITY',\n ErrorsAndOmission = 'ERRORS_AND_OMISSION',\n GeneralLiability = 'GENERAL_LIABILITY',\n JewelersBlock = 'JEWELERS_BLOCK',\n Other = 'OTHER',\n Package = 'PACKAGE',\n ProductLiability = 'PRODUCT_LIABILITY',\n ProfessionalLiability = 'PROFESSIONAL_LIABILITY',\n Property = 'PROPERTY',\n Rental = 'RENTAL',\n ShippingAndTransportation = 'SHIPPING_AND_TRANSPORTATION',\n UmbrellaOrExcess = 'UMBRELLA_OR_EXCESS',\n WorkersCompensation = 'WORKERS_COMPENSATION'\n}\n\nexport type InsuredInput = {\n addressCity: Scalars['String']['input'];\n addressLine1: Scalars['String']['input'];\n addressLine2: Scalars['String']['input'];\n addressState: Scalars['String']['input'];\n addressZipCode: Scalars['String']['input'];\n businessName: Scalars['String']['input'];\n email: Scalars['String']['input'];\n firstName: Scalars['String']['input'];\n lastName: Scalars['String']['input'];\n phone: Scalars['String']['input'];\n};\n\n/** Details of a bank transaction linked to a payout */\nexport type LinkedBankTransaction = {\n __typename?: 'LinkedBankTransaction';\n /** The amount of the transaction in dollars */\n amount: Scalars['Float']['output'];\n /** The ID of the counterparty in the bank account's system */\n counterPartyId: Scalars['String']['output'];\n /** The name of the counterparty */\n counterPartyName: Scalars['String']['output'];\n /** The date the transaction was created */\n createdAt: Scalars['Time']['output'];\n /** The link to the transaction in the partner bank's system */\n dashboardLink: Scalars['String']['output'];\n /** The bank description of the transaction */\n description: Scalars['String']['output'];\n /** The ID of the transaction in the bank account */\n id: Scalars['String']['output'];\n /** The memo line of the transaction */\n memo: Scalars['String']['output'];\n /** The status of the transaction in the bank account */\n status: AchPaymentStatus;\n};\n\n/** Describes a merchant partner's account */\nexport type Merchant = {\n __typename?: 'Merchant';\n /** The business' physical address */\n address: Address;\n /** Any applications that this merchant has submitted */\n applications: Array;\n /** The business category that this business belongs to */\n businessCategory?: Maybe;\n /** The date this merchant was created */\n createdAt: Scalars['Time']['output'];\n /** The business' dba */\n dba: Scalars['String']['output'];\n /** The business' website domain */\n domain: Scalars['String']['output'];\n /** The business' email address */\n email: Scalars['String']['output'];\n /** Any files that are associated with this merchant */\n files: Array;\n /** The ID of the merchant */\n id: Scalars['ID']['output'];\n /** The merchant's API keys */\n keys?: Maybe>;\n /** The Mercury recipient ID for this merchant, used to determine the payout information for this merchant */\n mercuryRecipientId?: Maybe;\n /** The business' name */\n name: Scalars['String']['output'];\n /** The merchant's preferred payment method */\n paymentMethod: MerchantPaymentMethod;\n /** The business' contact phone number */\n phone: Scalars['String']['output'];\n /** List of product verticals this business sells */\n productVerticals: Array;\n /** The date this merchant was last updated */\n updatedAt: Scalars['Time']['output'];\n /** The users that can access this merchant's account */\n users: Array;\n};\n\n/** A merchant's API key */\nexport type MerchantKey = {\n __typename?: 'MerchantKey';\n /** The API key the merchant uses to authenticate themselves via the API/SDK */\n apiKey: Scalars['ID']['output'];\n /** The date this API key was created */\n createdAt: Scalars['Time']['output'];\n /** The Merchant that this API key belongs to */\n merchant?: Maybe;\n /** The date this API key was updated */\n updatedAt: Scalars['Time']['output'];\n};\n\n/** The payment method */\nexport enum MerchantPaymentMethod {\n /** The merchant has opted to be paid out via physical check */\n Check = 'CHECK',\n /** The merchant has opted to be paid out via ACH and has connected a bank account */\n Electronic = 'ELECTRONIC',\n /** The merchant has not selected a payment method */\n Unknown = 'UNKNOWN'\n}\n\n/** A user that can log into the merchant's account */\nexport type MerchantUser = {\n __typename?: 'MerchantUser';\n /** The email address of the user */\n email: Scalars['String']['output'];\n /** The first name of the user */\n firstName: Scalars['String']['output'];\n /** The ID of the user */\n id: Scalars['ID']['output'];\n /** The last name of the user */\n lastName: Scalars['String']['output'];\n};\n\nexport type Mutation = {\n __typename?: 'Mutation';\n /**\n * Adds a new business location to an existing business application.\n *\n * Arguments:\n * applicationId: The unique identifier of the business application.\n * location: The input data required to add a new business location.\n *\n * Returns:\n * The updated BusinessApplication object with the new location added.\n */\n addBusinessLocation: BusinessApplication;\n /**\n * Binds a quote to a business application.\n *\n * Arguments:\n * applicationId: The unique identifier of the business application.\n * quoteId: The unique identifier of the quote to bind.\n * paymentPlanId: The ID of the payment plan to use.\n * paymentMethod: The payment method to use.\n *\n * Returns:\n * The updated BusinessApplication object with the quote bound.\n */\n bindQuote: BusinessApplication;\n /** Delete the document and remove the reference from the given business policy */\n businessPolicyDeleteDocument?: Maybe;\n /** Upload the document for this business policy to S3 */\n businessPolicyUploadDocument: File;\n /** Cancel the specified business insurance policy */\n cancelBusinessPolicy: BusinessPolicy;\n /**\n * Creates a new business application.\n *\n * Arguments:\n * application: The input data required to create a new business application.\n *\n * Returns:\n * The created BusinessApplication object.\n */\n createBusinessApplication: BusinessApplication;\n /** Create business insurance policies according to specification */\n createBusinessPolicies: Array;\n /** Create a new merchant */\n createMerchant?: Maybe;\n /** Create a service request */\n createServiceRequest: ServiceRequest;\n /** Deletes the specified business insurance policy */\n deleteBusinessPolicy?: Maybe;\n /** Generate a certificate of insurance with the given inputs for the current merchant */\n generateCertificate?: Maybe;\n /**\n * Starts the quote process for a business application if it's not already quoting\n *\n * Arguments:\n * applicationId: The unique identifier of the business application.\n *\n * Returns:\n * The updated BusinessApplication object.\n */\n quoteBusinessApplication: BusinessApplication;\n /** Reinstate the specified business insurance policy */\n reinstateBusinessPolicy: BusinessPolicy;\n /**\n * Removes a business location from an existing business application.\n *\n * Arguments:\n * applicationId: The unique identifier of the business application.\n * locationId: The unique identifier of the business location to remove.\n *\n * Returns:\n * The updated BusinessApplication object with the location removed.\n */\n removeBusinessLocation: BusinessApplication;\n /** Renew the specified business insurance policy */\n renewBusinessPolicy: BusinessPolicy;\n /** Add a message to the policy AI conversation */\n riskManagementAddPolicyConversationMessage: Array;\n /** Mark an action item as complete */\n riskManagementMarkActionItemComplete: ComplianceAction;\n /** Update the assignee of an action item */\n riskManagementSetActionItemAssignee: ComplianceAction;\n /** Update the due date of an action item */\n riskManagementSetActionItemDueDate: ComplianceAction;\n /** Set up the risk management data for a merchant */\n riskManagementSetup: RiskManagementData;\n /**\n * Submits and finalizes the business application if not already submitted. This\n * indicates that a customer has finished submitting their information and is\n * ready to be reviewed by an agent.\n *\n * Arguments:\n * applicationId: The unique identifier of the business application.\n *\n * Returns:\n * The updated BusinessApplication object.\n */\n submitBusinessApplication: BusinessApplication;\n /**\n * Updates an existing business application.\n *\n * Arguments:\n * id: The unique identifier of the business application to update.\n * application: The input data required to update the business application.\n *\n * Returns:\n * The updated BusinessApplication object.\n */\n updateBusinessApplication: BusinessApplication;\n /**\n * Updates an existing business location in a business application.\n *\n * Arguments:\n * applicationId: The unique identifier of the business application.\n * locationId: The unique identifier of the business location to update.\n * location: The input data required to update the business location.\n *\n * Returns:\n * The updated BusinessApplication object with the updated location.\n */\n updateBusinessLocation: BusinessApplication;\n /** Update the specified business insurance policy */\n updateBusinessPolicy: BusinessPolicy;\n /** Update an existing merchant */\n updateMerchant?: Maybe;\n};\n\nexport type MutationAddBusinessLocationArgs = {\n applicationId: Scalars['ID']['input'];\n location: BusinessLocationInput;\n};\n\nexport type MutationBindQuoteArgs = {\n applicationId: Scalars['ID']['input'];\n paymentMethod?: InputMaybe;\n paymentPlanId?: InputMaybe;\n quoteId: Scalars['ID']['input'];\n};\n\nexport type MutationBusinessPolicyDeleteDocumentArgs = {\n fileId: Scalars['ID']['input'];\n policyId: Scalars['ID']['input'];\n};\n\nexport type MutationBusinessPolicyUploadDocumentArgs = {\n policyId: Scalars['ID']['input'];\n req: CreateFileInput;\n};\n\nexport type MutationCancelBusinessPolicyArgs = {\n id: Scalars['ID']['input'];\n req: CancelBusinessPolicyInput;\n};\n\nexport type MutationCreateBusinessApplicationArgs = {\n application: CreateApplicationInput;\n};\n\nexport type MutationCreateBusinessPoliciesArgs = {\n req: CreateBusinessPoliciesInput;\n};\n\nexport type MutationCreateMerchantArgs = {\n req: CreateMerchantInput;\n};\n\nexport type MutationCreateServiceRequestArgs = {\n input: CreateServiceRequestInput;\n};\n\nexport type MutationDeleteBusinessPolicyArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type MutationGenerateCertificateArgs = {\n req: GenerateCertificateInput;\n};\n\nexport type MutationQuoteBusinessApplicationArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type MutationReinstateBusinessPolicyArgs = {\n id: Scalars['ID']['input'];\n req: ReinstateBusinessPolicyInput;\n};\n\nexport type MutationRemoveBusinessLocationArgs = {\n applicationId: Scalars['ID']['input'];\n locationId: Scalars['ID']['input'];\n};\n\nexport type MutationRenewBusinessPolicyArgs = {\n id: Scalars['ID']['input'];\n req: RenewBusinessPolicyInput;\n};\n\nexport type MutationRiskManagementAddPolicyConversationMessageArgs = {\n message: Scalars['String']['input'];\n policyId: Scalars['ID']['input'];\n};\n\nexport type MutationRiskManagementMarkActionItemCompleteArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type MutationRiskManagementSetActionItemAssigneeArgs = {\n id: Scalars['ID']['input'];\n userId: Scalars['ID']['input'];\n};\n\nexport type MutationRiskManagementSetActionItemDueDateArgs = {\n dueDate: Scalars['Time']['input'];\n id: Scalars['ID']['input'];\n};\n\nexport type MutationRiskManagementSetupArgs = {\n input: RiskManagementSetupInput;\n};\n\nexport type MutationSubmitBusinessApplicationArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type MutationUpdateBusinessApplicationArgs = {\n application: UpdateApplicationInput;\n id: Scalars['ID']['input'];\n};\n\nexport type MutationUpdateBusinessLocationArgs = {\n applicationId: Scalars['ID']['input'];\n location: BusinessLocationInput;\n locationId: Scalars['ID']['input'];\n};\n\nexport type MutationUpdateBusinessPolicyArgs = {\n id: Scalars['ID']['input'];\n req: UpdateBusinessPolicyInput;\n};\n\nexport type MutationUpdateMerchantArgs = {\n id: Scalars['ID']['input'];\n req: UpdateMerchantInput;\n};\n\nexport enum OperationType {\n ManufacturingDesign = 'MANUFACTURING_DESIGN',\n Other = 'OTHER',\n Rental = 'RENTAL',\n Retail = 'RETAIL',\n Service = 'SERVICE',\n Wholesale = 'WHOLESALE'\n}\n\nexport type OysterAgent = {\n __typename?: 'OysterAgent';\n email: Scalars['String']['output'];\n id: Scalars['String']['output'];\n name: Scalars['String']['output'];\n};\n\nexport type PastPolicyLoss = {\n __typename?: 'PastPolicyLoss';\n /** The date when the claim was made. */\n claimDate?: Maybe;\n /** The status of the claim. */\n claimStatus?: Maybe;\n /** The date when the loss occurred. */\n lossDate?: Maybe;\n /** A description of the loss. */\n lossDescription: Scalars['String']['output'];\n /** The 2-letter state code where the loss occurred. */\n lossState: Scalars['String']['output'];\n /** The type of loss that occurred. */\n lossType?: Maybe;\n /** The date when the policy became effective. */\n policyEffectiveDate?: Maybe;\n /** The date when the policy expired. */\n policyExpirationDate?: Maybe;\n /** The type of insurance policy. */\n policyType?: Maybe;\n /** The total amount paid for the claim. */\n totalPaidAmount: Scalars['Float']['output'];\n /** The total amount reserved for the claim. */\n totalReservedAmount: Scalars['Float']['output'];\n};\n\nexport enum PastPolicyLossClaimStatus {\n /** The claim has been closed. */\n Closed = 'CLOSED',\n /** The claim is currently open. */\n Open = 'OPEN',\n Unknown = 'UNKNOWN'\n}\n\nexport type PastPolicyLossInput = {\n /** The date when the claim was made. */\n claimDate: Scalars['String']['input'];\n /** The status of the claim. */\n claimStatus?: InputMaybe;\n /** The date when the loss occurred. */\n lossDate: Scalars['String']['input'];\n /** A description of the loss. */\n lossDescription: Scalars['String']['input'];\n /** The 2-letter state code where the loss occurred. */\n lossState: Scalars['String']['input'];\n /** The type of loss that occurred. */\n lossType?: InputMaybe;\n /** The date when the policy became effective. */\n policyEffectiveDate: Scalars['String']['input'];\n /** The date when the policy expired. */\n policyExpirationDate: Scalars['String']['input'];\n /** The type of insurance policy. */\n policyType?: InputMaybe;\n /** The total amount paid for the claim. */\n totalPaidAmount: Scalars['Float']['input'];\n /** The total amount reserved for the claim. */\n totalReservedAmount: Scalars['Float']['input'];\n};\n\nexport enum PastPolicyLossType {\n BodilyInjuryOther = 'BODILY_INJURY_OTHER',\n BusinessInterruption = 'BUSINESS_INTERRUPTION',\n ComputerFraud = 'COMPUTER_FRAUD',\n ContingentBusinessInterruption = 'CONTINGENT_BUSINESS_INTERRUPTION',\n CyberIncident = 'CYBER_INCIDENT',\n DigitalData = 'DIGITAL_DATA',\n EmployeePractices = 'EMPLOYEE_PRACTICES',\n ErrorsAndOmissions = 'ERRORS_AND_OMISSIONS',\n Fire = 'FIRE',\n FoodSpoilage = 'FOOD_SPOILAGE',\n FundTransferFraud = 'FUND_TRANSFER_FRAUD',\n GeneralLiabilityProducts = 'GENERAL_LIABILITY_PRODUCTS',\n GlPropertyDamage = 'GL_PROPERTY_DAMAGE',\n Hail = 'HAIL',\n Indemnity = 'INDEMNITY',\n InlandMarine = 'INLAND_MARINE',\n LiabilityMedicalPayments = 'LIABILITY_MEDICAL_PAYMENTS',\n MediaLiability = 'MEDIA_LIABILITY',\n Medical = 'MEDICAL',\n MedicalAndIndemnity = 'MEDICAL_AND_INDEMNITY',\n NetworkExtortion = 'NETWORK_EXTORTION',\n Other = 'OTHER',\n PaymentCard = 'PAYMENT_CARD',\n PersonalInjury = 'PERSONAL_INJURY',\n PrivacyAndNetworkSecurity = 'PRIVACY_AND_NETWORK_SECURITY',\n ProfessionalLiability = 'PROFESSIONAL_LIABILITY',\n PropertyDamageCollapse = 'PROPERTY_DAMAGE_COLLAPSE',\n PropertyDamageOther = 'PROPERTY_DAMAGE_OTHER',\n RegulatoryProceeding = 'REGULATORY_PROCEEDING',\n SlipFallInside = 'SLIP_FALL_INSIDE',\n SlipFallOutside = 'SLIP_FALL_OUTSIDE',\n SocialEngineeringFraud = 'SOCIAL_ENGINEERING_FRAUD',\n TechnologyErrorsAndOmissions = 'TECHNOLOGY_ERRORS_AND_OMISSIONS',\n Theft = 'THEFT',\n Unknown = 'UNKNOWN',\n Vandalism = 'VANDALISM',\n WaterNonWeatherRelated = 'WATER_NON_WEATHER_RELATED',\n Windstorm = 'WINDSTORM'\n}\n\n/** PaymentIntervalType enumerates the interval of a fee occurrence */\nexport enum PaymentIntervalType {\n /** Describes an annual payment */\n Annual = 'ANNUAL',\n /** Describes a monthly payment */\n Monthly = 'MONTHLY',\n /** Describes a non-recurring payment */\n None = 'NONE',\n /** Describes a quarterly payment */\n Quarterly = 'QUARTERLY'\n}\n\n/** How the customer chose to pay */\nexport enum PaymentOptionType {\n AnnualPayInFull = 'ANNUAL_PAY_IN_FULL',\n MonthlyFinanced = 'MONTHLY_FINANCED'\n}\n\n/** Enum representing the frequency of installments for a payment plan */\nexport enum PaymentPlanInstallmentFrequency {\n /** Monthly installments */\n Monthly = 'MONTHLY',\n /** No recurring installments */\n None = 'NONE',\n /** Quarterly installments */\n Quarterly = 'QUARTERLY'\n}\n\n/** Enum representing the different payment methods available for a payment plan */\nexport enum PaymentPlanPaymentMethodType {\n /** Payment via credit card */\n CreditCard = 'CREDIT_CARD',\n /** Payment via direct debit */\n DirectDebit = 'DIRECT_DEBIT',\n /** Payment via electronic fund transfer */\n ElectronicFundTransfer = 'ELECTRONIC_FUND_TRANSFER'\n}\n\n/** Input type for overall personalization details */\nexport type PersonalizationInput = {\n /** Business insurance personalization details */\n businessInsurance?: InputMaybe;\n};\n\n/** Represents the policy AI conversation for a policy */\nexport type PolicyConversationMessage = {\n __typename?: 'PolicyConversationMessage';\n /** List of attachments for the message */\n attachments: Array;\n /** The content of the message */\n content: Scalars['String']['output'];\n /** The ID of the message */\n id: Scalars['ID']['output'];\n /** The role of the message */\n role: PolicyConversationMessageRole;\n /** The timestamp of the message */\n timestamp: Scalars['Time']['output'];\n};\n\n/** Represents an attachment for a policy AI conversation message */\nexport type PolicyConversationMessageAttachment = {\n __typename?: 'PolicyConversationMessageAttachment';\n /** The content of the attachment */\n content: Scalars['String']['output'];\n /** The type of the attachment */\n type: PolicyConversationMessageAttachmentType;\n};\n\n/** Represents the type of an attachment for a policy AI conversation message */\nexport enum PolicyConversationMessageAttachmentType {\n /** A quote from a document */\n Quote = 'QUOTE'\n}\n\n/** Represents the role of a policy AI conversation message */\nexport enum PolicyConversationMessageRole {\n /** The message is from the AI */\n Ai = 'AI',\n /** The message is from the user */\n User = 'USER'\n}\n\n/** The enumeration of states for business policy */\nexport enum PolicyState {\n /** The policy is in the process of being bound or finalized */\n Binding = 'BINDING',\n /** The policy has been terminated or canceled before its expiration date */\n Canceled = 'CANCELED',\n /** The policy has reached its expiration date and is no longer active */\n Expired = 'EXPIRED',\n /** The policy is currently active and in force */\n Inforce = 'INFORCE',\n /** The policy is in a pending state, awaiting further action or information */\n Pending = 'PENDING',\n /** The policy has been submitted for review or approval */\n Submitted = 'SUBMITTED',\n /** The state of the policy is unknown or not determined */\n Unknown = 'UNKNOWN'\n}\n\n/** The type of a single insured item on a policy */\nexport enum ProductType {\n BeautyAndSupplements = 'BEAUTY_AND_SUPPLEMENTS',\n /** A bike or eBike */\n Bike = 'BIKE',\n /** A collectible */\n Collectibles = 'COLLECTIBLES',\n /** An electronics item, such as a phone, laptop, or tablet */\n Electronics = 'ELECTRONICS',\n /** Fashion pieces */\n Fashion = 'FASHION',\n FoodAndBeverage = 'FOOD_AND_BEVERAGE',\n /** Furniture items */\n Furniture = 'FURNITURE',\n /** A jewelry item */\n Jewelry = 'JEWELRY',\n /** A motorcycle, moped, scooter, or other higher-powered motor vehicle */\n Motorcycle = 'MOTORCYCLE',\n /** An ATV, UTV, or other offroad vehicle */\n OffroadVehicle = 'OFFROAD_VEHICLE',\n /** Other producs */\n Other = 'OTHER',\n OutdoorSports = 'OUTDOOR_SPORTS',\n TobaccoCbdSmokeShop = 'TOBACCO_CBD_SMOKE_SHOP',\n /** An unknown product type. This value should be impossible */\n Unknown = 'UNKNOWN'\n}\n\nexport type Query = {\n __typename?: 'Query';\n /** Retrieve a business application by ID */\n businessApplication: BusinessApplication;\n /** Retrieve all business applications */\n businessApplications: Array;\n /** Fetch all business categories */\n businessCategories: Array;\n businessPolicies: Array;\n businessPolicy?: Maybe;\n carriers: Array;\n certificate?: Maybe;\n /**\n * Returns the available limits for a particular application and state.\n *\n * Arguments:\n * applicationId: The unique identifier of the business application.\n * state: The state for which to retrieve the available limits.\n *\n * Returns:\n * A list of AvailableCoverageLimit objects representing the available coverage limits.\n */\n coverageLimits: Array;\n /** Fetch a single merchant by ID */\n merchant?: Maybe;\n /** Fetch all merchants */\n merchants: Array;\n /** Get the policy AI conversation for a policy ID */\n policyConversation: Array;\n /** Get the risk management data for a merchant */\n riskManagement?: Maybe;\n /** Get a service request by ID */\n serviceRequest?: Maybe;\n /** Get the service requests for a merchant, if the user is a merchant, otherwise get all service requests */\n serviceRequests: Array;\n};\n\nexport type QueryBusinessApplicationArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type QueryBusinessPolicyArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type QueryCertificateArgs = {\n certificateNumber: Scalars['String']['input'];\n};\n\nexport type QueryCoverageLimitsArgs = {\n applicationId: Scalars['ID']['input'];\n state: Scalars['String']['input'];\n};\n\nexport type QueryMerchantArgs = {\n id?: InputMaybe;\n};\n\nexport type QueryPolicyConversationArgs = {\n policyId: Scalars['ID']['input'];\n};\n\nexport type QueryServiceRequestArgs = {\n id: Scalars['ID']['input'];\n};\n\n/** Details for a request for questions about policies, account, or billing, etc. */\nexport type QuestionRequest = {\n __typename?: 'QuestionRequest';\n /** ID of the policy related to the question, if applicable */\n policyId?: Maybe;\n /** Question from the customer */\n question: Scalars['String']['output'];\n /** Type of question */\n type: QuestionRequestType;\n};\n\n/** Input type for requesting questions */\nexport type QuestionRequestInput = {\n /** ID of the policy related to the question, if applicable */\n policyId?: InputMaybe;\n /** Question from the customer */\n question: Scalars['String']['input'];\n /** Type of question */\n type?: InputMaybe;\n};\n\n/** Types of questions that can be requested */\nexport enum QuestionRequestType {\n /** Question about account management */\n Account = 'ACCOUNT',\n /** Question about billing and payments */\n Billing = 'BILLING',\n /** Other questions */\n Other = 'OTHER',\n /** Question about policies */\n Policy = 'POLICY'\n}\n\nexport type ReinstateBusinessPolicyInput = {\n effectiveAt: Scalars['Time']['input'];\n reasonDescription: Scalars['String']['input'];\n};\n\nexport type RenewBusinessPolicyInput = {\n agencyBillingType?: InputMaybe;\n /** Additional fees collected by Oyster as revenue. */\n agencyFees: Scalars['Float']['input'];\n ascendProgramCreationMode?: InputMaybe;\n ascendProgramId?: InputMaybe;\n billingType: BusinessPolicyBillingType;\n /** Fees collected by the wholesale broker */\n brokerFees: Scalars['Float']['input'];\n /** The portion of the wholesale broker fees that get kicked back to Oyster, as revenue */\n brokerFeesOysterPortion: Scalars['Float']['input'];\n /** The estimated commission Oyster earns on this policy */\n estimatedCommission: Scalars['Float']['input'];\n expiresAt?: InputMaybe;\n inforceAt?: InputMaybe;\n issuedAt?: InputMaybe;\n /** Other fees incurred on this policy, not collected by Oyster as revenue */\n otherFees: Scalars['Float']['input'];\n /** Fees collected by the carrier to administer the policy or program */\n policyFees: Scalars['Float']['input'];\n policyNumber?: InputMaybe;\n /** The actual premium of the policy */\n premium: Scalars['Float']['input'];\n quoteNumber: Scalars['String']['input'];\n state: PolicyState;\n /** Taxes levied on the policy premium and any taxable fees */\n taxes: Scalars['Float']['input'];\n /** Total amount to charge for the policy, including premium and all taxes and fees */\n total: Scalars['Float']['input'];\n};\n\n/** Represents the risk management data for a merchant */\nexport type RiskManagementData = {\n __typename?: 'RiskManagementData';\n /** List of action items related to the merchant's risk management */\n actionItems: Array;\n /** List of compliance groups associated with the merchant */\n compliance: Array;\n};\n\nexport type RiskManagementSetupInput = {\n /** Description of any upcoming changes to the business */\n changeDescription: Scalars['String']['input'];\n /** List of compliance frameworks that the merchant is subject to */\n complianceFrameworks: Scalars['String']['input'];\n /** Description of the business */\n description: Scalars['String']['input'];\n};\n\n/** Role mapped to auth model values */\nexport enum Role {\n Admin = 'ADMIN',\n AgencyUser = 'AGENCY_USER',\n Anonymous = 'ANONYMOUS',\n Bpo = 'BPO',\n User = 'USER'\n}\n\n/** Represents a service request submitted by a merchant */\nexport type ServiceRequest = {\n __typename?: 'ServiceRequest';\n /** Details specific to additional insured requests */\n addAdditionalInsured?: Maybe;\n /** AI-generated annotations and analysis results for this service request */\n annotations: ServiceRequestAnnotations;\n /** Details specific to policy cancellation requests */\n cancelPolicy?: Maybe;\n /** When the request was closed, if applicable */\n closedAt?: Maybe;\n /** Details specific to Certificate of Insurance requests */\n createCoi?: Maybe;\n /** When the request was created */\n createdAt: Scalars['Time']['output'];\n /** Additional details about the request */\n details: Scalars['String']['output'];\n /** Details specific to document requests */\n documentRequest?: Maybe;\n /** Events, such as actions and messages, related to this service request */\n events: Array;\n /** Unique identifier for the service request */\n id: Scalars['ID']['output'];\n /** The merchant associated with the service request */\n merchant: Merchant;\n /** Details specific to question requests */\n question?: Maybe;\n /** Current state of the request */\n state: ServiceRequestState;\n /** Type of service request */\n type: ServiceRequestType;\n /** When the request was last updated */\n updatedAt: Scalars['Time']['output'];\n};\n\n/** AI-generated summary of the service request */\nexport type ServiceRequestAnnotations = {\n __typename?: 'ServiceRequestAnnotations';\n /** Whether AI is enabled for this service request */\n aiEnabled: Scalars['Boolean']['output'];\n /** AI-generated summary of the service request */\n summary: Scalars['String']['output'];\n};\n\n/** An event, such as an AI message or a human message, related to a service request */\nexport type ServiceRequestEvent = {\n __typename?: 'ServiceRequestEvent';\n /** Type of event */\n type: ServiceRequestEventType;\n};\n\n/** Type of event, such as an AI message or a human message, related to a service request */\nexport enum ServiceRequestEventType {\n /** An AI message generated for this service request */\n AiMessage = 'AI_MESSAGE',\n /** A human message added to this service request */\n HumanMessage = 'HUMAN_MESSAGE'\n}\n\n/** Current state of a service request */\nexport enum ServiceRequestState {\n /** Request has been completed */\n Closed = 'CLOSED',\n /** Request is still being processed */\n Open = 'OPEN'\n}\n\n/** Type of service request that can be created */\nexport enum ServiceRequestType {\n /** Request to add an additional insured to a policy */\n AddAdditionalInsured = 'ADD_ADDITIONAL_INSURED',\n /** Request to cancel an existing policy */\n CancelPolicy = 'CANCEL_POLICY',\n /** Request to create a Certificate of Insurance */\n CreateCoi = 'CREATE_COI',\n /** Request for policy-related documents */\n DocumentRequest = 'DOCUMENT_REQUEST',\n /** Request to modify/endorse an existing policy */\n EndorsePolicy = 'ENDORSE_POLICY',\n /** Other miscellaneous requests */\n Other = 'OTHER',\n /** Question about policies, account, or billing, etc. */\n Question = 'QUESTION'\n}\n\n/** The Stripe invoice information used to bill a policy */\nexport type StripeInvoice = {\n __typename?: 'StripeInvoice';\n id: Scalars['String']['output'];\n};\n\n/** Represents an answer to an underwriting question. */\nexport type UnderwritingAnswer = {\n __typename?: 'UnderwritingAnswer';\n /** The answer to the question. */\n answer: Scalars['String']['output'];\n /** The ID of the location associated with the answer. */\n locationId?: Maybe;\n /** The ID of the question associated with the answer. */\n questionId: Scalars['ID']['output'];\n};\n\nexport type UnderwritingAnswerInput = {\n answer: Scalars['String']['input'];\n locationId?: InputMaybe;\n questionId: Scalars['String']['input'];\n};\n\n/** Represents an answer option for an underwriting question. */\nexport type UnderwritingAnswerOption = {\n __typename?: 'UnderwritingAnswerOption';\n /** The display text of the answer option. */\n displayText: Scalars['String']['output'];\n /** The value of the answer option. */\n value: Scalars['String']['output'];\n};\n\n/** Represents an underwriting question. */\nexport type UnderwritingQuestion = {\n __typename?: 'UnderwritingQuestion';\n /** The possible answer options for the question. */\n answerOptions?: Maybe>;\n /** Carriers that require an answer to this question\" */\n carriers: Array;\n /** The default answer to the question, if any. */\n defaultAnswer?: Maybe;\n /** Question IDs that are dependent on this question. */\n dependentQuestions: Array;\n /** Indicates whether the question has a parent question. */\n hasParentQuestion: Scalars['Boolean']['output'];\n /** The unique identifier of the underwriting question. */\n id: Scalars['ID']['output'];\n /** The ID of the location associated with the question. */\n locationId?: Maybe;\n /** The text of the underwriting question. */\n question: Scalars['String']['output'];\n /** The tooltip providing additional information about the question. */\n tooltip: Scalars['String']['output'];\n /** The type of the underwriting question. */\n type: UnderwritingQuestionType;\n};\n\n/** Represents a dependency between underwriting questions. */\nexport type UnderwritingQuestionDependency = {\n __typename?: 'UnderwritingQuestionDependency';\n /** The condition that must be met for the dependent questions to be shown. */\n condition?: Maybe;\n /** The IDs of the questions that are dependent on the parent question. */\n dependentQuestionIds: Array;\n /** The type of the dependency. */\n type: UnderwritingQuestionDependencyType;\n};\n\nexport enum UnderwritingQuestionDependencyType {\n /** Indicates that a question should be shown if the condition matches */\n Conditional = 'CONDITIONAL',\n /** Indicates that a question should always be shown */\n Direct = 'DIRECT'\n}\n\n/** Represents the type of an underwriting question. */\nexport enum UnderwritingQuestionType {\n /** A date question. */\n Date = 'DATE',\n /** An email question. */\n Email = 'EMAIL',\n /** A multi-select dropdown question. */\n Multiselectdropdown = 'MULTISELECTDROPDOWN',\n /** A number question. */\n Number = 'NUMBER',\n /** A phone number question. */\n Phonenumber = 'PHONENUMBER',\n /** A radio button question. */\n Radio = 'RADIO',\n /** A single-select dropdown question. */\n Singleselectdropdown = 'SINGLESELECTDROPDOWN',\n /** A text question. */\n Text = 'TEXT',\n /** A year question. */\n Year = 'YEAR'\n}\n\n/** Represents an underwriting statement. */\nexport type UnderwritingStatement = {\n __typename?: 'UnderwritingStatement';\n /** The carrier that the underwriting statement is associated with. */\n carrier: BusinessApplicationCarrier;\n /** Formatted markdown string with the underwriting statement. */\n markdown: Scalars['String']['output'];\n};\n\n/** Represents the type of an underwriting statement. */\nexport enum UnderwritingStatementType {\n /** A payment statement. */\n Payment = 'PAYMENT',\n /** An underwriting statement. */\n Underwriting = 'UNDERWRITING'\n}\n\nexport type UpdateApplicationInput = {\n /** The annual revenue of the business. */\n annualRevenue?: InputMaybe;\n /** The \"Doing Business As\" name of the business. */\n businessDba?: InputMaybe;\n /** The legal name of the business. */\n businessName?: InputMaybe;\n /** The information for the the contact person on the business application. */\n contact?: InputMaybe;\n /** Information about the employees at the business location. */\n employeeInfo?: InputMaybe;\n /** The Federal Employer Identification Number (FEIN) of the business. */\n fein?: InputMaybe;\n /** The desired effective date for the insurance policy. */\n insuranceEffectiveAt?: InputMaybe;\n /** The insurance types the business is interested in. */\n insuranceTypes?: InputMaybe>;\n /** The legal entity type of the business. */\n legalEntityType?: InputMaybe;\n /** The mailing address of the business. */\n mailingAddress?: InputMaybe;\n /** The NAICS classification code for the business. */\n naicsCode?: InputMaybe;\n /** The owners of the business. */\n owners?: InputMaybe>;\n /** The past policy losses of the business. */\n pastPolicyLosses?: InputMaybe>;\n /** The carriers that this business wants quotes from */\n selectedCarriers?: InputMaybe>;\n /** The selected insurance limits for the business. */\n selectedLimits?: InputMaybe;\n /** The underwriting answers for the business. */\n underwritingAnswers?: InputMaybe>;\n /** The year the business was founded. */\n yearOfFounding?: InputMaybe;\n /** The years of management experience of the business. */\n yearsOfManagementExperience?: InputMaybe;\n};\n\nexport type UpdateBusinessPolicyInput = {\n /** Additional fees collected by Oyster as revenue. */\n agencyFees?: InputMaybe;\n ascendBillableId?: InputMaybe;\n ascendProgramId?: InputMaybe;\n /** Fees collected by the wholesale broker */\n brokerFees?: InputMaybe;\n /** The portion of the wholesale broker fees that get kicked back to Oyster, as revenue */\n brokerFeesOysterPortion?: InputMaybe;\n brokerId?: InputMaybe;\n carrierId?: InputMaybe;\n estimatedCommission?: InputMaybe;\n expiresAt?: InputMaybe;\n inforceAt?: InputMaybe;\n issuedAt?: InputMaybe;\n market?: InputMaybe;\n minimumEarnedPremium?: InputMaybe;\n /** Other fees incurred on this policy, not collected by Oyster as revenue */\n otherFees?: InputMaybe;\n paymentIntervalType?: InputMaybe;\n paymentOccurrencesPerInterval?: InputMaybe;\n /** Fees collected by the carrier to administer the policy or program */\n policyFees?: InputMaybe;\n policyNumber?: InputMaybe;\n /** The actual premium of the policy */\n premium?: InputMaybe;\n quoteNumber?: InputMaybe;\n sourceAgentId?: InputMaybe;\n sourceLeadId?: InputMaybe;\n sourceNotes?: InputMaybe;\n sourceProcessType?: InputMaybe;\n sourceSubType?: InputMaybe;\n sourceType?: InputMaybe;\n state?: InputMaybe;\n /** Taxes levied on the policy premium and any taxable fees */\n taxes?: InputMaybe;\n /** Total amount to charge for the policy, including premium and all taxes and fees */\n total?: InputMaybe;\n type?: InputMaybe;\n updateReason: Scalars['String']['input'];\n};\n\n/** Describes the type of entity that initiated an update */\nexport enum UpdateInitiatorType {\n /** Anonymous indicates an unauthenticated external user */\n Anonymous = 'ANONYMOUS',\n /** BPO indicates a Business Process Outsourcing entity */\n Bpo = 'BPO',\n /** Cronjob indicates a scheduled automated job */\n Cronjob = 'CRONJOB',\n /** Oyster indicates an internal employee at Oyster */\n Oyster = 'OYSTER',\n /** User indicates an authenticated external user */\n User = 'USER',\n /** Workflow indicates a Temporal workflow */\n Workflow = 'WORKFLOW'\n}\n\n/** Input type for updating an existing merchant */\nexport type UpdateMerchantInput = {\n /** New business category ID for the merchant */\n businessCategoryId?: InputMaybe;\n /** New 'Doing Business As' name of the business */\n businessDba?: InputMaybe;\n /** New legal name of the business */\n businessName?: InputMaybe;\n};\n\n/** Enumeration of validation codes used to categorize validation errors. */\nexport enum ValidationCode {\n /** Indicates that a required field is missing */\n Required = 'REQUIRED',\n /** Indicates that a field failed validation checks */\n ValidationFailed = 'VALIDATION_FAILED'\n}\n\n/** Describes a validation error for a specific field or set of fields. */\nexport type ValidationError = {\n __typename?: 'ValidationError';\n /** The type of validation error that occurred */\n code: ValidationCode;\n /** An array of field names associated with the validation error. May contain multiple fields for related errors. */\n field: Array;\n /** A human-readable message describing the validation error */\n message: Scalars['String']['output'];\n};\n\nexport type CertificateDetailsFieldsFragment = {\n __typename?: 'CertificateDetails';\n certificateNumber: string;\n descriptionOfOperations: string;\n insured: { __typename?: 'CertificateEntity'; name: string; address: string };\n producer: { __typename?: 'CertificateEntity'; name: string; address: string };\n certificateHolder: { __typename?: 'CertificateEntity'; name: string; address: string };\n coverages: Array<{\n __typename?: 'CertificateCoverage';\n type: InsuranceType;\n effectiveDate: Date;\n expirationDate: Date;\n policyNumber: string;\n holderIsAdditionalInsured: boolean;\n hasWaiverOfSubrogation: boolean;\n limits: Array<{ __typename?: 'CertificateLimit'; name: string; limit: number }>;\n insurer: { __typename?: 'CoverageInsurer'; name: string; naic: string };\n }>;\n};\n\nexport type GetCertificateQueryVariables = Exact<{\n certificateNumber: Scalars['String']['input'];\n}>;\n\nexport type GetCertificateQuery = {\n __typename?: 'Query';\n certificate?:\n | {\n __typename?: 'File';\n url?: string | null | undefined;\n details?:\n | {\n __typename?: 'CertificateDetails';\n certificateNumber: string;\n descriptionOfOperations: string;\n insured: { __typename?: 'CertificateEntity'; name: string; address: string };\n producer: { __typename?: 'CertificateEntity'; name: string; address: string };\n certificateHolder: {\n __typename?: 'CertificateEntity';\n name: string;\n address: string;\n };\n coverages: Array<{\n __typename?: 'CertificateCoverage';\n type: InsuranceType;\n effectiveDate: Date;\n expirationDate: Date;\n policyNumber: string;\n holderIsAdditionalInsured: boolean;\n hasWaiverOfSubrogation: boolean;\n limits: Array<{ __typename?: 'CertificateLimit'; name: string; limit: number }>;\n insurer: { __typename?: 'CoverageInsurer'; name: string; naic: string };\n }>;\n }\n | null\n | undefined;\n }\n | null\n | undefined;\n};\n\nexport type GenerateCertificateMutationVariables = Exact<{\n req: GenerateCertificateInput;\n}>;\n\nexport type GenerateCertificateMutation = {\n __typename?: 'Mutation';\n generateCertificate?:\n | {\n __typename?: 'File';\n details?:\n | { __typename?: 'CertificateDetails'; certificateNumber: string }\n | null\n | undefined;\n }\n | null\n | undefined;\n};\n\nexport type GetCoverageLimitsQueryVariables = Exact<{\n applicationId: Scalars['ID']['input'];\n state: Scalars['String']['input'];\n}>;\n\nexport type GetCoverageLimitsQuery = {\n __typename?: 'Query';\n coverageLimits: Array<{\n __typename?: 'AvailableCoverageLimit';\n insuranceType: InsuranceType;\n limits: {\n __typename?: 'InsuranceLimits';\n bopAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n coverageState: string;\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n }>;\n};\n\nexport type ApplicationFieldsFragment = {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n};\n\nexport type ApplicationQuoteFieldsFragment = {\n __typename?: 'BusinessApplication';\n quotes: Array<{\n __typename?: 'BusinessApplicationQuote';\n carrier: BusinessApplicationCarrier;\n id: string;\n policyType: InsuranceType;\n premiumAmount: number;\n quoteProposalUrl?: string | null | undefined;\n state: BusinessApplicationQuoteState;\n totalAmount: number;\n type: BusinessApplicationQuoteType;\n paymentPlans: Array<{\n __typename?: 'BusinessApplicationQuotePaymentPlan';\n description: string;\n downAmount: number;\n downDueAt?: Date | null | undefined;\n installmentAmount: number;\n installmentCount: number;\n installmentDueAt?: Date | null | undefined;\n installmentFee: number;\n installmentFrequency: PaymentPlanInstallmentFrequency;\n paymentMethod: PaymentPlanPaymentMethodType;\n paymentPlanId: string;\n title: string;\n totalAmount: number;\n totalFees: number;\n }>;\n }>;\n};\n\nexport type ApplicationQuotableCarrierFieldsFragment = {\n __typename?: 'BusinessApplication';\n quotableCarriers: Array<{\n __typename?: 'InsuranceCarrier';\n ascendId?: string | null | undefined;\n id: string;\n isBroker: boolean;\n isCarrier: boolean;\n name: string;\n supportedPolicies?: Array | null | undefined;\n }>;\n};\n\nexport type GetBusinessApplicationQueryVariables = Exact<{\n id: Scalars['ID']['input'];\n includeQuotes?: InputMaybe;\n includeQuotableCarriers?: InputMaybe;\n}>;\n\nexport type GetBusinessApplicationQuery = {\n __typename?: 'Query';\n businessApplication: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n quotes: Array<{\n __typename?: 'BusinessApplicationQuote';\n carrier: BusinessApplicationCarrier;\n id: string;\n policyType: InsuranceType;\n premiumAmount: number;\n quoteProposalUrl?: string | null | undefined;\n state: BusinessApplicationQuoteState;\n totalAmount: number;\n type: BusinessApplicationQuoteType;\n paymentPlans: Array<{\n __typename?: 'BusinessApplicationQuotePaymentPlan';\n description: string;\n downAmount: number;\n downDueAt?: Date | null | undefined;\n installmentAmount: number;\n installmentCount: number;\n installmentDueAt?: Date | null | undefined;\n installmentFee: number;\n installmentFrequency: PaymentPlanInstallmentFrequency;\n paymentMethod: PaymentPlanPaymentMethodType;\n paymentPlanId: string;\n title: string;\n totalAmount: number;\n totalFees: number;\n }>;\n }>;\n quotableCarriers: Array<{\n __typename?: 'InsuranceCarrier';\n ascendId?: string | null | undefined;\n id: string;\n isBroker: boolean;\n isCarrier: boolean;\n name: string;\n supportedPolicies?: Array | null | undefined;\n }>;\n };\n};\n\nexport type CreateBusinessApplicationMutationVariables = Exact<{\n application: CreateApplicationInput;\n}>;\n\nexport type CreateBusinessApplicationMutation = {\n __typename?: 'Mutation';\n createBusinessApplication: { __typename?: 'BusinessApplication'; id: string };\n};\n\nexport type UpdateBusinessApplicationMutationVariables = Exact<{\n id: Scalars['ID']['input'];\n application: UpdateApplicationInput;\n includeQuotes?: InputMaybe;\n includeQuotableCarriers?: InputMaybe;\n}>;\n\nexport type UpdateBusinessApplicationMutation = {\n __typename?: 'Mutation';\n updateBusinessApplication: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n quotes: Array<{\n __typename?: 'BusinessApplicationQuote';\n carrier: BusinessApplicationCarrier;\n id: string;\n policyType: InsuranceType;\n premiumAmount: number;\n quoteProposalUrl?: string | null | undefined;\n state: BusinessApplicationQuoteState;\n totalAmount: number;\n type: BusinessApplicationQuoteType;\n paymentPlans: Array<{\n __typename?: 'BusinessApplicationQuotePaymentPlan';\n description: string;\n downAmount: number;\n downDueAt?: Date | null | undefined;\n installmentAmount: number;\n installmentCount: number;\n installmentDueAt?: Date | null | undefined;\n installmentFee: number;\n installmentFrequency: PaymentPlanInstallmentFrequency;\n paymentMethod: PaymentPlanPaymentMethodType;\n paymentPlanId: string;\n title: string;\n totalAmount: number;\n totalFees: number;\n }>;\n }>;\n quotableCarriers: Array<{\n __typename?: 'InsuranceCarrier';\n ascendId?: string | null | undefined;\n id: string;\n isBroker: boolean;\n isCarrier: boolean;\n name: string;\n supportedPolicies?: Array | null | undefined;\n }>;\n };\n};\n\nexport type QuoteBusinessApplicationMutationVariables = Exact<{\n id: Scalars['ID']['input'];\n}>;\n\nexport type QuoteBusinessApplicationMutation = {\n __typename?: 'Mutation';\n quoteBusinessApplication: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n quotes: Array<{\n __typename?: 'BusinessApplicationQuote';\n carrier: BusinessApplicationCarrier;\n id: string;\n policyType: InsuranceType;\n premiumAmount: number;\n quoteProposalUrl?: string | null | undefined;\n state: BusinessApplicationQuoteState;\n totalAmount: number;\n type: BusinessApplicationQuoteType;\n paymentPlans: Array<{\n __typename?: 'BusinessApplicationQuotePaymentPlan';\n description: string;\n downAmount: number;\n downDueAt?: Date | null | undefined;\n installmentAmount: number;\n installmentCount: number;\n installmentDueAt?: Date | null | undefined;\n installmentFee: number;\n installmentFrequency: PaymentPlanInstallmentFrequency;\n paymentMethod: PaymentPlanPaymentMethodType;\n paymentPlanId: string;\n title: string;\n totalAmount: number;\n totalFees: number;\n }>;\n }>;\n quotableCarriers: Array<{\n __typename?: 'InsuranceCarrier';\n ascendId?: string | null | undefined;\n id: string;\n isBroker: boolean;\n isCarrier: boolean;\n name: string;\n supportedPolicies?: Array | null | undefined;\n }>;\n };\n};\n\nexport type SubmitBusinessApplicationMutationVariables = Exact<{\n id: Scalars['ID']['input'];\n}>;\n\nexport type SubmitBusinessApplicationMutation = {\n __typename?: 'Mutation';\n submitBusinessApplication: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n quotes: Array<{\n __typename?: 'BusinessApplicationQuote';\n carrier: BusinessApplicationCarrier;\n id: string;\n policyType: InsuranceType;\n premiumAmount: number;\n quoteProposalUrl?: string | null | undefined;\n state: BusinessApplicationQuoteState;\n totalAmount: number;\n type: BusinessApplicationQuoteType;\n paymentPlans: Array<{\n __typename?: 'BusinessApplicationQuotePaymentPlan';\n description: string;\n downAmount: number;\n downDueAt?: Date | null | undefined;\n installmentAmount: number;\n installmentCount: number;\n installmentDueAt?: Date | null | undefined;\n installmentFee: number;\n installmentFrequency: PaymentPlanInstallmentFrequency;\n paymentMethod: PaymentPlanPaymentMethodType;\n paymentPlanId: string;\n title: string;\n totalAmount: number;\n totalFees: number;\n }>;\n }>;\n quotableCarriers: Array<{\n __typename?: 'InsuranceCarrier';\n ascendId?: string | null | undefined;\n id: string;\n isBroker: boolean;\n isCarrier: boolean;\n name: string;\n supportedPolicies?: Array | null | undefined;\n }>;\n };\n};\n\nexport type AddBusinessApplicationLocationMutationVariables = Exact<{\n applicationId: Scalars['ID']['input'];\n location: BusinessLocationInput;\n}>;\n\nexport type AddBusinessApplicationLocationMutation = {\n __typename?: 'Mutation';\n businessApplication: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n };\n};\n\nexport type UpdateBusinessApplicationLocationMutationVariables = Exact<{\n applicationId: Scalars['ID']['input'];\n locationId: Scalars['ID']['input'];\n location: BusinessLocationInput;\n}>;\n\nexport type UpdateBusinessApplicationLocationMutation = {\n __typename?: 'Mutation';\n businessApplication: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n };\n};\n\nexport type RemoveBusinessApplicationLocationMutationVariables = Exact<{\n applicationId: Scalars['ID']['input'];\n locationId: Scalars['ID']['input'];\n}>;\n\nexport type RemoveBusinessApplicationLocationMutation = {\n __typename?: 'Mutation';\n businessApplication: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n };\n};\n\nexport type BindQuoteMutationVariables = Exact<{\n applicationId: Scalars['ID']['input'];\n quoteId: Scalars['ID']['input'];\n paymentPlanId?: InputMaybe;\n paymentMethod?: InputMaybe;\n}>;\n\nexport type BindQuoteMutation = {\n __typename?: 'Mutation';\n bindQuote: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n quotes: Array<{\n __typename?: 'BusinessApplicationQuote';\n carrier: BusinessApplicationCarrier;\n id: string;\n policyType: InsuranceType;\n premiumAmount: number;\n quoteProposalUrl?: string | null | undefined;\n state: BusinessApplicationQuoteState;\n totalAmount: number;\n type: BusinessApplicationQuoteType;\n paymentPlans: Array<{\n __typename?: 'BusinessApplicationQuotePaymentPlan';\n description: string;\n downAmount: number;\n downDueAt?: Date | null | undefined;\n installmentAmount: number;\n installmentCount: number;\n installmentDueAt?: Date | null | undefined;\n installmentFee: number;\n installmentFrequency: PaymentPlanInstallmentFrequency;\n paymentMethod: PaymentPlanPaymentMethodType;\n paymentPlanId: string;\n title: string;\n totalAmount: number;\n totalFees: number;\n }>;\n }>;\n quotableCarriers: Array<{\n __typename?: 'InsuranceCarrier';\n ascendId?: string | null | undefined;\n id: string;\n isBroker: boolean;\n isCarrier: boolean;\n name: string;\n supportedPolicies?: Array | null | undefined;\n }>;\n };\n};\n\nexport type BusinessPolicyDetailFieldsFragment = {\n __typename?: 'BusinessPolicy';\n details?:\n | {\n __typename?: 'BusinessPolicyExtractedDetails';\n deductible?: number | null | undefined;\n policyNumber?: string | null | undefined;\n summary?: string | null | undefined;\n blanketAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyBlanketAdditionalInsured';\n type: string;\n description: string;\n }>;\n carrier?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n coverageDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n exclusionDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n extraLimits: Array<{\n __typename?: 'BusinessPolicyExtraInsuranceLimit';\n limit: number;\n name: string;\n }>;\n insured?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n locations: Array<{\n __typename?: 'BusinessPolicyLocation';\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n }>;\n namedAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyNamedAdditionalInsured';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }>;\n }\n | null\n | undefined;\n};\n\nexport type BusinessPolicyFieldsFragment = {\n __typename?: 'BusinessPolicy';\n id: string;\n type: InsuranceType;\n policyNumber: string;\n state: PolicyState;\n inforceAt?: Date | null | undefined;\n expiresAt?: Date | null | undefined;\n files: Array<{\n __typename?: 'File';\n id: string;\n name: string;\n role: FileRole;\n url?: string | null | undefined;\n }>;\n carrier: { __typename?: 'InsuranceCarrier'; name: string };\n pricing: {\n __typename?: 'BusinessPolicyPricing';\n billingType: BusinessPolicyBillingType;\n intervalType?: PaymentIntervalType | null | undefined;\n premium: number;\n total: number;\n };\n details?:\n | {\n __typename?: 'BusinessPolicyExtractedDetails';\n deductible?: number | null | undefined;\n policyNumber?: string | null | undefined;\n summary?: string | null | undefined;\n blanketAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyBlanketAdditionalInsured';\n type: string;\n description: string;\n }>;\n carrier?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n coverageDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n exclusionDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n extraLimits: Array<{\n __typename?: 'BusinessPolicyExtraInsuranceLimit';\n limit: number;\n name: string;\n }>;\n insured?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n locations: Array<{\n __typename?: 'BusinessPolicyLocation';\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n }>;\n namedAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyNamedAdditionalInsured';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }>;\n }\n | null\n | undefined;\n};\n\nexport type GetMerchantBusinessPoliciesQueryVariables = Exact<{ [key: string]: never }>;\n\nexport type GetMerchantBusinessPoliciesQuery = {\n __typename?: 'Query';\n businessPolicies: Array<{\n __typename?: 'BusinessPolicy';\n id: string;\n type: InsuranceType;\n policyNumber: string;\n state: PolicyState;\n inforceAt?: Date | null | undefined;\n expiresAt?: Date | null | undefined;\n files: Array<{\n __typename?: 'File';\n id: string;\n name: string;\n role: FileRole;\n url?: string | null | undefined;\n }>;\n carrier: { __typename?: 'InsuranceCarrier'; name: string };\n pricing: {\n __typename?: 'BusinessPolicyPricing';\n billingType: BusinessPolicyBillingType;\n intervalType?: PaymentIntervalType | null | undefined;\n premium: number;\n total: number;\n };\n details?:\n | {\n __typename?: 'BusinessPolicyExtractedDetails';\n deductible?: number | null | undefined;\n policyNumber?: string | null | undefined;\n summary?: string | null | undefined;\n blanketAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyBlanketAdditionalInsured';\n type: string;\n description: string;\n }>;\n carrier?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n coverageDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n exclusionDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n extraLimits: Array<{\n __typename?: 'BusinessPolicyExtraInsuranceLimit';\n limit: number;\n name: string;\n }>;\n insured?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n locations: Array<{\n __typename?: 'BusinessPolicyLocation';\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n }>;\n namedAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyNamedAdditionalInsured';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }>;\n }\n | null\n | undefined;\n }>;\n};\n\nexport type GetMerchantBusinessPolicyQueryVariables = Exact<{\n id: Scalars['ID']['input'];\n}>;\n\nexport type GetMerchantBusinessPolicyQuery = {\n __typename?: 'Query';\n businessPolicy?:\n | {\n __typename?: 'BusinessPolicy';\n id: string;\n type: InsuranceType;\n policyNumber: string;\n state: PolicyState;\n inforceAt?: Date | null | undefined;\n expiresAt?: Date | null | undefined;\n files: Array<{\n __typename?: 'File';\n id: string;\n name: string;\n role: FileRole;\n url?: string | null | undefined;\n }>;\n carrier: { __typename?: 'InsuranceCarrier'; name: string };\n pricing: {\n __typename?: 'BusinessPolicyPricing';\n billingType: BusinessPolicyBillingType;\n intervalType?: PaymentIntervalType | null | undefined;\n premium: number;\n total: number;\n };\n details?:\n | {\n __typename?: 'BusinessPolicyExtractedDetails';\n deductible?: number | null | undefined;\n policyNumber?: string | null | undefined;\n summary?: string | null | undefined;\n blanketAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyBlanketAdditionalInsured';\n type: string;\n description: string;\n }>;\n carrier?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n coverageDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n exclusionDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n extraLimits: Array<{\n __typename?: 'BusinessPolicyExtraInsuranceLimit';\n limit: number;\n name: string;\n }>;\n insured?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n locations: Array<{\n __typename?: 'BusinessPolicyLocation';\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n }>;\n namedAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyNamedAdditionalInsured';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }>;\n }\n | null\n | undefined;\n }\n | null\n | undefined;\n};\n\nexport type FileFieldsFragment = {\n __typename?: 'File';\n id: string;\n name: string;\n role: FileRole;\n url?: string | null | undefined;\n createdAt: Date;\n details?:\n | {\n __typename?: 'CertificateDetails';\n certificateNumber: string;\n descriptionOfOperations: string;\n certificateHolder: { __typename?: 'CertificateEntity'; name: string; address: string };\n insured: { __typename?: 'CertificateEntity'; name: string; address: string };\n }\n | null\n | undefined;\n};\n\nexport type MerchantFieldsFragment = {\n __typename?: 'Merchant';\n id: string;\n name: string;\n files: Array<{\n __typename?: 'File';\n id: string;\n name: string;\n role: FileRole;\n url?: string | null | undefined;\n createdAt: Date;\n details?:\n | {\n __typename?: 'CertificateDetails';\n certificateNumber: string;\n descriptionOfOperations: string;\n certificateHolder: { __typename?: 'CertificateEntity'; name: string; address: string };\n insured: { __typename?: 'CertificateEntity'; name: string; address: string };\n }\n | null\n | undefined;\n }>;\n};\n\nexport type GetMerchantQueryVariables = Exact<{ [key: string]: never }>;\n\nexport type GetMerchantQuery = {\n __typename?: 'Query';\n merchant?:\n | {\n __typename?: 'Merchant';\n id: string;\n name: string;\n files: Array<{\n __typename?: 'File';\n id: string;\n name: string;\n role: FileRole;\n url?: string | null | undefined;\n createdAt: Date;\n details?:\n | {\n __typename?: 'CertificateDetails';\n certificateNumber: string;\n descriptionOfOperations: string;\n certificateHolder: {\n __typename?: 'CertificateEntity';\n name: string;\n address: string;\n };\n insured: { __typename?: 'CertificateEntity'; name: string; address: string };\n }\n | null\n | undefined;\n }>;\n }\n | null\n | undefined;\n};\n\nexport type ActionItemFieldsFragment = {\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n};\n\nexport type RiskManagementDataFieldsFragment = {\n __typename?: 'RiskManagementData';\n compliance: Array<{\n __typename?: 'ComplianceGroup';\n slug: string;\n title: string;\n description: string;\n items: Array<{\n __typename?: 'ComplianceItem';\n description: string;\n id: string;\n slug: string;\n title: string;\n actions: Array<{\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n }>;\n referenceMaterials: Array<{\n __typename?: 'ComplianceReferenceMaterial';\n description: string;\n title: string;\n url: string;\n }>;\n requirements: Array<{\n __typename?: 'ComplianceRequirement';\n description: string;\n title: string;\n }>;\n standards: Array<{\n __typename?: 'ComplianceStandard';\n description: string;\n title: string;\n url: string;\n }>;\n }>;\n }>;\n actionItems: Array<{\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n }>;\n};\n\nexport type RiskManagementSetupMutationVariables = Exact<{\n description: Scalars['String']['input'];\n changeDescription: Scalars['String']['input'];\n complianceFrameworks: Scalars['String']['input'];\n}>;\n\nexport type RiskManagementSetupMutation = {\n __typename?: 'Mutation';\n riskManagementSetup: {\n __typename?: 'RiskManagementData';\n compliance: Array<{\n __typename?: 'ComplianceGroup';\n slug: string;\n title: string;\n description: string;\n items: Array<{\n __typename?: 'ComplianceItem';\n description: string;\n id: string;\n slug: string;\n title: string;\n actions: Array<{\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n }>;\n referenceMaterials: Array<{\n __typename?: 'ComplianceReferenceMaterial';\n description: string;\n title: string;\n url: string;\n }>;\n requirements: Array<{\n __typename?: 'ComplianceRequirement';\n description: string;\n title: string;\n }>;\n standards: Array<{\n __typename?: 'ComplianceStandard';\n description: string;\n title: string;\n url: string;\n }>;\n }>;\n }>;\n actionItems: Array<{\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n }>;\n };\n};\n\nexport type GetRiskManagementQueryVariables = Exact<{ [key: string]: never }>;\n\nexport type GetRiskManagementQuery = {\n __typename?: 'Query';\n riskManagement?:\n | {\n __typename?: 'RiskManagementData';\n compliance: Array<{\n __typename?: 'ComplianceGroup';\n slug: string;\n title: string;\n description: string;\n items: Array<{\n __typename?: 'ComplianceItem';\n description: string;\n id: string;\n slug: string;\n title: string;\n actions: Array<{\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | {\n __typename?: 'ComplianceActionAssignee';\n email: string;\n id: string;\n name: string;\n }\n | null\n | undefined;\n completedBy?:\n | {\n __typename?: 'ComplianceActionAssignee';\n email: string;\n id: string;\n name: string;\n }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n }>;\n referenceMaterials: Array<{\n __typename?: 'ComplianceReferenceMaterial';\n description: string;\n title: string;\n url: string;\n }>;\n requirements: Array<{\n __typename?: 'ComplianceRequirement';\n description: string;\n title: string;\n }>;\n standards: Array<{\n __typename?: 'ComplianceStandard';\n description: string;\n title: string;\n url: string;\n }>;\n }>;\n }>;\n actionItems: Array<{\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n }>;\n }\n | null\n | undefined;\n};\n\nexport type RiskManagementSetActionItemDueDateMutationVariables = Exact<{\n id: Scalars['ID']['input'];\n dueDate: Scalars['Time']['input'];\n}>;\n\nexport type RiskManagementSetActionItemDueDateMutation = {\n __typename?: 'Mutation';\n riskManagementSetActionItemDueDate: {\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n };\n};\n\nexport type RiskManagementSetActionItemAssigneeMutationVariables = Exact<{\n id: Scalars['ID']['input'];\n userId: Scalars['ID']['input'];\n}>;\n\nexport type RiskManagementSetActionItemAssigneeMutation = {\n __typename?: 'Mutation';\n riskManagementSetActionItemAssignee: {\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n };\n};\n\nexport type RiskManagementMarkActionItemCompleteMutationVariables = Exact<{\n id: Scalars['ID']['input'];\n}>;\n\nexport type RiskManagementMarkActionItemCompleteMutation = {\n __typename?: 'Mutation';\n riskManagementMarkActionItemComplete: {\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n };\n};\n\nexport type PolicyConversationMessageFieldsFragment = {\n __typename?: 'PolicyConversationMessage';\n content: string;\n id: string;\n role: PolicyConversationMessageRole;\n timestamp: Date;\n attachments: Array<{\n __typename?: 'PolicyConversationMessageAttachment';\n content: string;\n type: PolicyConversationMessageAttachmentType;\n }>;\n};\n\nexport type GetPolicyConversationQueryVariables = Exact<{\n policyId: Scalars['ID']['input'];\n}>;\n\nexport type GetPolicyConversationQuery = {\n __typename?: 'Query';\n policyConversation: Array<{\n __typename?: 'PolicyConversationMessage';\n content: string;\n id: string;\n role: PolicyConversationMessageRole;\n timestamp: Date;\n attachments: Array<{\n __typename?: 'PolicyConversationMessageAttachment';\n content: string;\n type: PolicyConversationMessageAttachmentType;\n }>;\n }>;\n};\n\nexport type AddPolicyConversationMessageMutationVariables = Exact<{\n policyId: Scalars['ID']['input'];\n message: Scalars['String']['input'];\n}>;\n\nexport type AddPolicyConversationMessageMutation = {\n __typename?: 'Mutation';\n riskManagementAddPolicyConversationMessage: Array<{\n __typename?: 'PolicyConversationMessage';\n content: string;\n id: string;\n role: PolicyConversationMessageRole;\n timestamp: Date;\n attachments: Array<{\n __typename?: 'PolicyConversationMessageAttachment';\n content: string;\n type: PolicyConversationMessageAttachmentType;\n }>;\n }>;\n};\n\nexport const CertificateDetailsFieldsFragmentDoc = gql`\n fragment CertificateDetailsFields on CertificateDetails {\n certificateNumber\n insured {\n name\n address\n }\n producer {\n name\n address\n }\n certificateHolder {\n name\n address\n }\n descriptionOfOperations\n coverages {\n type\n effectiveDate\n expirationDate\n policyNumber\n holderIsAdditionalInsured\n hasWaiverOfSubrogation\n limits {\n name\n limit\n }\n insurer {\n name\n naic\n }\n }\n }\n`;\nexport const ApplicationFieldsFragmentDoc = gql`\n fragment ApplicationFields on BusinessApplication {\n annualRevenue\n businessDba\n businessName\n contact {\n fullName\n email\n phone\n }\n employeeInfo {\n numFullTimeEmployees\n numPartTimeEmployees\n totalEmployeePayroll\n }\n fein\n id\n insuranceEffectiveAt\n insuranceTypes\n legalEntityType\n locations {\n id\n address {\n line1\n line2\n city\n zone\n postalCode\n }\n buildingInfo {\n annualSales\n areaOccupiedByBusiness\n buildingCoverage\n burglarAlarmType\n constructionType\n ownershipType\n personalPropertyCoverage\n sprinkleredPercentage\n totalArea\n totalStories\n yearBuilt\n }\n employeeInfo {\n numPartTimeEmployees\n numFullTimeEmployees\n totalEmployeePayroll\n jobCode\n }\n isPrimary\n }\n mailingAddress {\n line1\n line2\n city\n zone\n postalCode\n }\n naicsCode\n owners {\n fullName\n annualPayroll\n dateOfBirth\n jobCode\n }\n pastPolicyLosses {\n claimDate\n claimStatus\n lossDate\n lossDescription\n lossState\n lossType\n policyEffectiveDate\n policyExpirationDate\n policyType\n totalPaidAmount\n totalReservedAmount\n }\n selectedCarriers\n selectedLimits {\n coverageState\n wcPerAccidentLimit\n wcPerDiseaseEmployeeLimit\n wcPerDiseasePolicyLimit\n glPerOccurrenceLimit\n glAggregateLimit\n bopPerOccurrenceLimit\n bopAggregateLimit\n cyberRetentionLimit\n cyberAggregateLimit\n }\n state\n underwritingAnswers {\n answer\n locationId\n questionId\n }\n underwritingQuestions {\n id\n answerOptions {\n displayText\n value\n }\n carriers\n defaultAnswer\n dependentQuestions {\n condition\n dependentQuestionIds\n type\n }\n hasParentQuestion\n locationId\n question\n tooltip\n type\n }\n underwritingStatements {\n carrier\n markdown\n }\n yearOfFounding\n yearsOfManagementExperience\n }\n`;\nexport const ApplicationQuoteFieldsFragmentDoc = gql`\n fragment ApplicationQuoteFields on BusinessApplication {\n quotes {\n carrier\n id\n paymentPlans {\n description\n downAmount\n downDueAt\n installmentAmount\n installmentCount\n installmentDueAt\n installmentFee\n installmentFrequency\n paymentMethod\n paymentPlanId\n title\n totalAmount\n totalFees\n }\n policyType\n premiumAmount\n quoteProposalUrl\n state\n totalAmount\n type\n }\n }\n`;\nexport const ApplicationQuotableCarrierFieldsFragmentDoc = gql`\n fragment ApplicationQuotableCarrierFields on BusinessApplication {\n quotableCarriers {\n ascendId\n id\n isBroker\n isCarrier\n name\n supportedPolicies\n }\n }\n`;\nexport const BusinessPolicyDetailFieldsFragmentDoc = gql`\n fragment BusinessPolicyDetailFields on BusinessPolicy {\n details {\n blanketAdditionalInsureds {\n type\n description\n }\n carrier {\n name\n address {\n line1\n line2\n city\n zone\n postalCode\n }\n }\n coverageDescriptions {\n description\n policyQuotes\n title\n }\n deductible\n exclusionDescriptions {\n description\n policyQuotes\n title\n }\n extraLimits {\n limit\n name\n }\n insured {\n name\n address {\n line1\n line2\n city\n zone\n postalCode\n }\n }\n limits {\n cyberAggregateLimit\n cyberRetentionLimit\n glAggregateLimit\n glMedicalPerOccurrenceLimit\n glMedicalPerPersonLimit\n glPerOccurrenceLimit\n glPersonalAndAdvertisingInjuryLimit\n glProductsAndCompletedOperationsLimit\n glRentedPremisesDamageLimit\n propertyBuildingLimit\n propertyContentsLimit\n umbrellaOrExcessAggregateLimit\n umbrellaOrExcessPerOccurrenceLimit\n wcPerAccidentLimit\n wcPerDiseaseEmployeeLimit\n wcPerDiseasePolicyLimit\n }\n locations {\n address {\n line1\n line2\n city\n zone\n postalCode\n }\n limits {\n cyberAggregateLimit\n cyberRetentionLimit\n glAggregateLimit\n glMedicalPerOccurrenceLimit\n glMedicalPerPersonLimit\n glPerOccurrenceLimit\n glPersonalAndAdvertisingInjuryLimit\n glProductsAndCompletedOperationsLimit\n glRentedPremisesDamageLimit\n propertyBuildingLimit\n propertyContentsLimit\n umbrellaOrExcessAggregateLimit\n umbrellaOrExcessPerOccurrenceLimit\n wcPerAccidentLimit\n wcPerDiseaseEmployeeLimit\n wcPerDiseasePolicyLimit\n }\n }\n namedAdditionalInsureds {\n name\n address {\n line1\n line2\n city\n zone\n postalCode\n }\n }\n policyNumber\n summary\n }\n }\n`;\nexport const BusinessPolicyFieldsFragmentDoc = gql`\n fragment BusinessPolicyFields on BusinessPolicy {\n id\n type\n files {\n id\n name\n role\n url\n }\n policyNumber\n state\n inforceAt\n expiresAt\n carrier {\n name\n }\n pricing {\n billingType\n intervalType\n premium\n total\n }\n ...BusinessPolicyDetailFields\n }\n ${BusinessPolicyDetailFieldsFragmentDoc}\n`;\nexport const FileFieldsFragmentDoc = gql`\n fragment FileFields on File {\n id\n name\n role\n url\n createdAt\n details {\n ... on CertificateDetails {\n certificateNumber\n certificateHolder {\n name\n address\n }\n insured {\n name\n address\n }\n descriptionOfOperations\n }\n }\n }\n`;\nexport const MerchantFieldsFragmentDoc = gql`\n fragment MerchantFields on Merchant {\n id\n name\n files {\n ...FileFields\n }\n }\n ${FileFieldsFragmentDoc}\n`;\nexport const ActionItemFieldsFragmentDoc = gql`\n fragment ActionItemFields on ComplianceAction {\n assignee {\n email\n id\n name\n }\n completedBy {\n email\n id\n name\n }\n completionDate\n completionRequirements {\n description\n title\n }\n complianceItems {\n id\n title\n }\n description\n dueDate\n id\n status\n title\n }\n`;\nexport const RiskManagementDataFieldsFragmentDoc = gql`\n fragment RiskManagementDataFields on RiskManagementData {\n compliance {\n slug\n title\n description\n items {\n actions {\n ...ActionItemFields\n }\n description\n id\n referenceMaterials {\n description\n title\n url\n }\n requirements {\n description\n title\n }\n slug\n standards {\n description\n title\n url\n }\n title\n }\n }\n actionItems {\n ...ActionItemFields\n }\n }\n ${ActionItemFieldsFragmentDoc}\n`;\nexport const PolicyConversationMessageFieldsFragmentDoc = gql`\n fragment PolicyConversationMessageFields on PolicyConversationMessage {\n attachments {\n content\n type\n }\n content\n id\n role\n timestamp\n }\n`;\nexport const GetCertificateDocument = gql`\n query GetCertificate($certificateNumber: String!) {\n certificate(certificateNumber: $certificateNumber) {\n url\n details {\n ...CertificateDetailsFields\n }\n }\n }\n ${CertificateDetailsFieldsFragmentDoc}\n`;\n\n/**\n * __useGetCertificateQuery__\n *\n * To run a query within a React component, call `useGetCertificateQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetCertificateQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetCertificateQuery({\n * variables: {\n * certificateNumber: // value for 'certificateNumber'\n * },\n * });\n */\nexport function useGetCertificateQuery(\n baseOptions: Apollo.QueryHookOptions &\n ({ variables: GetCertificateQueryVariables; skip?: boolean } | { skip: boolean })\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery(\n GetCertificateDocument,\n options\n );\n}\nexport function useGetCertificateLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery(\n GetCertificateDocument,\n options\n );\n}\nexport function useGetCertificateSuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery(\n GetCertificateDocument,\n options\n );\n}\nexport type GetCertificateQueryHookResult = ReturnType;\nexport type GetCertificateLazyQueryHookResult = ReturnType;\nexport type GetCertificateSuspenseQueryHookResult = ReturnType<\n typeof useGetCertificateSuspenseQuery\n>;\nexport type GetCertificateQueryResult = Apollo.QueryResult<\n GetCertificateQuery,\n GetCertificateQueryVariables\n>;\nexport const GenerateCertificateDocument = gql`\n mutation GenerateCertificate($req: GenerateCertificateInput!) {\n generateCertificate(req: $req) {\n details {\n ... on CertificateDetails {\n certificateNumber\n }\n }\n }\n }\n`;\nexport type GenerateCertificateMutationFn = Apollo.MutationFunction<\n GenerateCertificateMutation,\n GenerateCertificateMutationVariables\n>;\n\n/**\n * __useGenerateCertificateMutation__\n *\n * To run a mutation, you first call `useGenerateCertificateMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useGenerateCertificateMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [generateCertificateMutation, { data, loading, error }] = useGenerateCertificateMutation({\n * variables: {\n * req: // value for 'req'\n * },\n * });\n */\nexport function useGenerateCertificateMutation(\n baseOptions?: Apollo.MutationHookOptions<\n GenerateCertificateMutation,\n GenerateCertificateMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation(\n GenerateCertificateDocument,\n options\n );\n}\nexport type GenerateCertificateMutationHookResult = ReturnType<\n typeof useGenerateCertificateMutation\n>;\nexport type GenerateCertificateMutationResult = Apollo.MutationResult;\nexport type GenerateCertificateMutationOptions = Apollo.BaseMutationOptions<\n GenerateCertificateMutation,\n GenerateCertificateMutationVariables\n>;\nexport const GetCoverageLimitsDocument = gql`\n query GetCoverageLimits($applicationId: ID!, $state: String!) {\n coverageLimits(applicationId: $applicationId, state: $state) {\n insuranceType\n limits {\n bopAggregateLimit\n bopPerOccurrenceLimit\n coverageState\n cyberAggregateLimit\n cyberRetentionLimit\n glAggregateLimit\n glPerOccurrenceLimit\n wcPerAccidentLimit\n wcPerDiseaseEmployeeLimit\n wcPerDiseasePolicyLimit\n }\n }\n }\n`;\n\n/**\n * __useGetCoverageLimitsQuery__\n *\n * To run a query within a React component, call `useGetCoverageLimitsQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetCoverageLimitsQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetCoverageLimitsQuery({\n * variables: {\n * applicationId: // value for 'applicationId'\n * state: // value for 'state'\n * },\n * });\n */\nexport function useGetCoverageLimitsQuery(\n baseOptions: Apollo.QueryHookOptions &\n ({ variables: GetCoverageLimitsQueryVariables; skip?: boolean } | { skip: boolean })\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery(\n GetCoverageLimitsDocument,\n options\n );\n}\nexport function useGetCoverageLimitsLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery(\n GetCoverageLimitsDocument,\n options\n );\n}\nexport function useGetCoverageLimitsSuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions<\n GetCoverageLimitsQuery,\n GetCoverageLimitsQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery(\n GetCoverageLimitsDocument,\n options\n );\n}\nexport type GetCoverageLimitsQueryHookResult = ReturnType;\nexport type GetCoverageLimitsLazyQueryHookResult = ReturnType;\nexport type GetCoverageLimitsSuspenseQueryHookResult = ReturnType<\n typeof useGetCoverageLimitsSuspenseQuery\n>;\nexport type GetCoverageLimitsQueryResult = Apollo.QueryResult<\n GetCoverageLimitsQuery,\n GetCoverageLimitsQueryVariables\n>;\nexport const GetBusinessApplicationDocument = gql`\n query GetBusinessApplication(\n $id: ID!\n $includeQuotes: Boolean = false\n $includeQuotableCarriers: Boolean = false\n ) {\n businessApplication(id: $id) {\n ...ApplicationFields\n ...ApplicationQuoteFields @include(if: $includeQuotes)\n ...ApplicationQuotableCarrierFields @include(if: $includeQuotableCarriers)\n }\n }\n ${ApplicationFieldsFragmentDoc}\n ${ApplicationQuoteFieldsFragmentDoc}\n ${ApplicationQuotableCarrierFieldsFragmentDoc}\n`;\n\n/**\n * __useGetBusinessApplicationQuery__\n *\n * To run a query within a React component, call `useGetBusinessApplicationQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetBusinessApplicationQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetBusinessApplicationQuery({\n * variables: {\n * id: // value for 'id'\n * includeQuotes: // value for 'includeQuotes'\n * includeQuotableCarriers: // value for 'includeQuotableCarriers'\n * },\n * });\n */\nexport function useGetBusinessApplicationQuery(\n baseOptions: Apollo.QueryHookOptions<\n GetBusinessApplicationQuery,\n GetBusinessApplicationQueryVariables\n > &\n ({ variables: GetBusinessApplicationQueryVariables; skip?: boolean } | { skip: boolean })\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery(\n GetBusinessApplicationDocument,\n options\n );\n}\nexport function useGetBusinessApplicationLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions<\n GetBusinessApplicationQuery,\n GetBusinessApplicationQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery(\n GetBusinessApplicationDocument,\n options\n );\n}\nexport function useGetBusinessApplicationSuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions<\n GetBusinessApplicationQuery,\n GetBusinessApplicationQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery(\n GetBusinessApplicationDocument,\n options\n );\n}\nexport type GetBusinessApplicationQueryHookResult = ReturnType<\n typeof useGetBusinessApplicationQuery\n>;\nexport type GetBusinessApplicationLazyQueryHookResult = ReturnType<\n typeof useGetBusinessApplicationLazyQuery\n>;\nexport type GetBusinessApplicationSuspenseQueryHookResult = ReturnType<\n typeof useGetBusinessApplicationSuspenseQuery\n>;\nexport type GetBusinessApplicationQueryResult = Apollo.QueryResult<\n GetBusinessApplicationQuery,\n GetBusinessApplicationQueryVariables\n>;\nexport const CreateBusinessApplicationDocument = gql`\n mutation CreateBusinessApplication($application: CreateApplicationInput!) {\n createBusinessApplication(application: $application) {\n id\n }\n }\n`;\nexport type CreateBusinessApplicationMutationFn = Apollo.MutationFunction<\n CreateBusinessApplicationMutation,\n CreateBusinessApplicationMutationVariables\n>;\n\n/**\n * __useCreateBusinessApplicationMutation__\n *\n * To run a mutation, you first call `useCreateBusinessApplicationMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useCreateBusinessApplicationMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [createBusinessApplicationMutation, { data, loading, error }] = useCreateBusinessApplicationMutation({\n * variables: {\n * application: // value for 'application'\n * },\n * });\n */\nexport function useCreateBusinessApplicationMutation(\n baseOptions?: Apollo.MutationHookOptions<\n CreateBusinessApplicationMutation,\n CreateBusinessApplicationMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n CreateBusinessApplicationMutation,\n CreateBusinessApplicationMutationVariables\n >(CreateBusinessApplicationDocument, options);\n}\nexport type CreateBusinessApplicationMutationHookResult = ReturnType<\n typeof useCreateBusinessApplicationMutation\n>;\nexport type CreateBusinessApplicationMutationResult =\n Apollo.MutationResult;\nexport type CreateBusinessApplicationMutationOptions = Apollo.BaseMutationOptions<\n CreateBusinessApplicationMutation,\n CreateBusinessApplicationMutationVariables\n>;\nexport const UpdateBusinessApplicationDocument = gql`\n mutation UpdateBusinessApplication(\n $id: ID!\n $application: UpdateApplicationInput!\n $includeQuotes: Boolean = false\n $includeQuotableCarriers: Boolean = false\n ) {\n updateBusinessApplication(id: $id, application: $application) {\n ...ApplicationFields\n ...ApplicationQuoteFields @include(if: $includeQuotes)\n ...ApplicationQuotableCarrierFields @include(if: $includeQuotableCarriers)\n }\n }\n ${ApplicationFieldsFragmentDoc}\n ${ApplicationQuoteFieldsFragmentDoc}\n ${ApplicationQuotableCarrierFieldsFragmentDoc}\n`;\nexport type UpdateBusinessApplicationMutationFn = Apollo.MutationFunction<\n UpdateBusinessApplicationMutation,\n UpdateBusinessApplicationMutationVariables\n>;\n\n/**\n * __useUpdateBusinessApplicationMutation__\n *\n * To run a mutation, you first call `useUpdateBusinessApplicationMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useUpdateBusinessApplicationMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [updateBusinessApplicationMutation, { data, loading, error }] = useUpdateBusinessApplicationMutation({\n * variables: {\n * id: // value for 'id'\n * application: // value for 'application'\n * includeQuotes: // value for 'includeQuotes'\n * includeQuotableCarriers: // value for 'includeQuotableCarriers'\n * },\n * });\n */\nexport function useUpdateBusinessApplicationMutation(\n baseOptions?: Apollo.MutationHookOptions<\n UpdateBusinessApplicationMutation,\n UpdateBusinessApplicationMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n UpdateBusinessApplicationMutation,\n UpdateBusinessApplicationMutationVariables\n >(UpdateBusinessApplicationDocument, options);\n}\nexport type UpdateBusinessApplicationMutationHookResult = ReturnType<\n typeof useUpdateBusinessApplicationMutation\n>;\nexport type UpdateBusinessApplicationMutationResult =\n Apollo.MutationResult;\nexport type UpdateBusinessApplicationMutationOptions = Apollo.BaseMutationOptions<\n UpdateBusinessApplicationMutation,\n UpdateBusinessApplicationMutationVariables\n>;\nexport const QuoteBusinessApplicationDocument = gql`\n mutation QuoteBusinessApplication($id: ID!) {\n quoteBusinessApplication(id: $id) {\n ...ApplicationFields\n ...ApplicationQuoteFields\n ...ApplicationQuotableCarrierFields @include(if: false)\n }\n }\n ${ApplicationFieldsFragmentDoc}\n ${ApplicationQuoteFieldsFragmentDoc}\n ${ApplicationQuotableCarrierFieldsFragmentDoc}\n`;\nexport type QuoteBusinessApplicationMutationFn = Apollo.MutationFunction<\n QuoteBusinessApplicationMutation,\n QuoteBusinessApplicationMutationVariables\n>;\n\n/**\n * __useQuoteBusinessApplicationMutation__\n *\n * To run a mutation, you first call `useQuoteBusinessApplicationMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useQuoteBusinessApplicationMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [quoteBusinessApplicationMutation, { data, loading, error }] = useQuoteBusinessApplicationMutation({\n * variables: {\n * id: // value for 'id'\n * },\n * });\n */\nexport function useQuoteBusinessApplicationMutation(\n baseOptions?: Apollo.MutationHookOptions<\n QuoteBusinessApplicationMutation,\n QuoteBusinessApplicationMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n QuoteBusinessApplicationMutation,\n QuoteBusinessApplicationMutationVariables\n >(QuoteBusinessApplicationDocument, options);\n}\nexport type QuoteBusinessApplicationMutationHookResult = ReturnType<\n typeof useQuoteBusinessApplicationMutation\n>;\nexport type QuoteBusinessApplicationMutationResult =\n Apollo.MutationResult;\nexport type QuoteBusinessApplicationMutationOptions = Apollo.BaseMutationOptions<\n QuoteBusinessApplicationMutation,\n QuoteBusinessApplicationMutationVariables\n>;\nexport const SubmitBusinessApplicationDocument = gql`\n mutation SubmitBusinessApplication($id: ID!) {\n submitBusinessApplication(id: $id) {\n ...ApplicationFields\n ...ApplicationQuoteFields\n ...ApplicationQuotableCarrierFields @include(if: false)\n }\n }\n ${ApplicationFieldsFragmentDoc}\n ${ApplicationQuoteFieldsFragmentDoc}\n ${ApplicationQuotableCarrierFieldsFragmentDoc}\n`;\nexport type SubmitBusinessApplicationMutationFn = Apollo.MutationFunction<\n SubmitBusinessApplicationMutation,\n SubmitBusinessApplicationMutationVariables\n>;\n\n/**\n * __useSubmitBusinessApplicationMutation__\n *\n * To run a mutation, you first call `useSubmitBusinessApplicationMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useSubmitBusinessApplicationMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [submitBusinessApplicationMutation, { data, loading, error }] = useSubmitBusinessApplicationMutation({\n * variables: {\n * id: // value for 'id'\n * },\n * });\n */\nexport function useSubmitBusinessApplicationMutation(\n baseOptions?: Apollo.MutationHookOptions<\n SubmitBusinessApplicationMutation,\n SubmitBusinessApplicationMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n SubmitBusinessApplicationMutation,\n SubmitBusinessApplicationMutationVariables\n >(SubmitBusinessApplicationDocument, options);\n}\nexport type SubmitBusinessApplicationMutationHookResult = ReturnType<\n typeof useSubmitBusinessApplicationMutation\n>;\nexport type SubmitBusinessApplicationMutationResult =\n Apollo.MutationResult;\nexport type SubmitBusinessApplicationMutationOptions = Apollo.BaseMutationOptions<\n SubmitBusinessApplicationMutation,\n SubmitBusinessApplicationMutationVariables\n>;\nexport const AddBusinessApplicationLocationDocument = gql`\n mutation AddBusinessApplicationLocation($applicationId: ID!, $location: BusinessLocationInput!) {\n businessApplication: addBusinessLocation(applicationId: $applicationId, location: $location) {\n ...ApplicationFields\n }\n }\n ${ApplicationFieldsFragmentDoc}\n`;\nexport type AddBusinessApplicationLocationMutationFn = Apollo.MutationFunction<\n AddBusinessApplicationLocationMutation,\n AddBusinessApplicationLocationMutationVariables\n>;\n\n/**\n * __useAddBusinessApplicationLocationMutation__\n *\n * To run a mutation, you first call `useAddBusinessApplicationLocationMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useAddBusinessApplicationLocationMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [addBusinessApplicationLocationMutation, { data, loading, error }] = useAddBusinessApplicationLocationMutation({\n * variables: {\n * applicationId: // value for 'applicationId'\n * location: // value for 'location'\n * },\n * });\n */\nexport function useAddBusinessApplicationLocationMutation(\n baseOptions?: Apollo.MutationHookOptions<\n AddBusinessApplicationLocationMutation,\n AddBusinessApplicationLocationMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n AddBusinessApplicationLocationMutation,\n AddBusinessApplicationLocationMutationVariables\n >(AddBusinessApplicationLocationDocument, options);\n}\nexport type AddBusinessApplicationLocationMutationHookResult = ReturnType<\n typeof useAddBusinessApplicationLocationMutation\n>;\nexport type AddBusinessApplicationLocationMutationResult =\n Apollo.MutationResult;\nexport type AddBusinessApplicationLocationMutationOptions = Apollo.BaseMutationOptions<\n AddBusinessApplicationLocationMutation,\n AddBusinessApplicationLocationMutationVariables\n>;\nexport const UpdateBusinessApplicationLocationDocument = gql`\n mutation UpdateBusinessApplicationLocation(\n $applicationId: ID!\n $locationId: ID!\n $location: BusinessLocationInput!\n ) {\n businessApplication: updateBusinessLocation(\n applicationId: $applicationId\n locationId: $locationId\n location: $location\n ) {\n ...ApplicationFields\n }\n }\n ${ApplicationFieldsFragmentDoc}\n`;\nexport type UpdateBusinessApplicationLocationMutationFn = Apollo.MutationFunction<\n UpdateBusinessApplicationLocationMutation,\n UpdateBusinessApplicationLocationMutationVariables\n>;\n\n/**\n * __useUpdateBusinessApplicationLocationMutation__\n *\n * To run a mutation, you first call `useUpdateBusinessApplicationLocationMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useUpdateBusinessApplicationLocationMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [updateBusinessApplicationLocationMutation, { data, loading, error }] = useUpdateBusinessApplicationLocationMutation({\n * variables: {\n * applicationId: // value for 'applicationId'\n * locationId: // value for 'locationId'\n * location: // value for 'location'\n * },\n * });\n */\nexport function useUpdateBusinessApplicationLocationMutation(\n baseOptions?: Apollo.MutationHookOptions<\n UpdateBusinessApplicationLocationMutation,\n UpdateBusinessApplicationLocationMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n UpdateBusinessApplicationLocationMutation,\n UpdateBusinessApplicationLocationMutationVariables\n >(UpdateBusinessApplicationLocationDocument, options);\n}\nexport type UpdateBusinessApplicationLocationMutationHookResult = ReturnType<\n typeof useUpdateBusinessApplicationLocationMutation\n>;\nexport type UpdateBusinessApplicationLocationMutationResult =\n Apollo.MutationResult;\nexport type UpdateBusinessApplicationLocationMutationOptions = Apollo.BaseMutationOptions<\n UpdateBusinessApplicationLocationMutation,\n UpdateBusinessApplicationLocationMutationVariables\n>;\nexport const RemoveBusinessApplicationLocationDocument = gql`\n mutation RemoveBusinessApplicationLocation($applicationId: ID!, $locationId: ID!) {\n businessApplication: removeBusinessLocation(\n applicationId: $applicationId\n locationId: $locationId\n ) {\n ...ApplicationFields\n }\n }\n ${ApplicationFieldsFragmentDoc}\n`;\nexport type RemoveBusinessApplicationLocationMutationFn = Apollo.MutationFunction<\n RemoveBusinessApplicationLocationMutation,\n RemoveBusinessApplicationLocationMutationVariables\n>;\n\n/**\n * __useRemoveBusinessApplicationLocationMutation__\n *\n * To run a mutation, you first call `useRemoveBusinessApplicationLocationMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useRemoveBusinessApplicationLocationMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [removeBusinessApplicationLocationMutation, { data, loading, error }] = useRemoveBusinessApplicationLocationMutation({\n * variables: {\n * applicationId: // value for 'applicationId'\n * locationId: // value for 'locationId'\n * },\n * });\n */\nexport function useRemoveBusinessApplicationLocationMutation(\n baseOptions?: Apollo.MutationHookOptions<\n RemoveBusinessApplicationLocationMutation,\n RemoveBusinessApplicationLocationMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n RemoveBusinessApplicationLocationMutation,\n RemoveBusinessApplicationLocationMutationVariables\n >(RemoveBusinessApplicationLocationDocument, options);\n}\nexport type RemoveBusinessApplicationLocationMutationHookResult = ReturnType<\n typeof useRemoveBusinessApplicationLocationMutation\n>;\nexport type RemoveBusinessApplicationLocationMutationResult =\n Apollo.MutationResult;\nexport type RemoveBusinessApplicationLocationMutationOptions = Apollo.BaseMutationOptions<\n RemoveBusinessApplicationLocationMutation,\n RemoveBusinessApplicationLocationMutationVariables\n>;\nexport const BindQuoteDocument = gql`\n mutation BindQuote(\n $applicationId: ID!\n $quoteId: ID!\n $paymentPlanId: String\n $paymentMethod: PaymentPlanPaymentMethodType\n ) {\n bindQuote(\n applicationId: $applicationId\n quoteId: $quoteId\n paymentPlanId: $paymentPlanId\n paymentMethod: $paymentMethod\n ) {\n ...ApplicationFields\n ...ApplicationQuoteFields\n ...ApplicationQuotableCarrierFields @include(if: false)\n }\n }\n ${ApplicationFieldsFragmentDoc}\n ${ApplicationQuoteFieldsFragmentDoc}\n ${ApplicationQuotableCarrierFieldsFragmentDoc}\n`;\nexport type BindQuoteMutationFn = Apollo.MutationFunction<\n BindQuoteMutation,\n BindQuoteMutationVariables\n>;\n\n/**\n * __useBindQuoteMutation__\n *\n * To run a mutation, you first call `useBindQuoteMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useBindQuoteMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [bindQuoteMutation, { data, loading, error }] = useBindQuoteMutation({\n * variables: {\n * applicationId: // value for 'applicationId'\n * quoteId: // value for 'quoteId'\n * paymentPlanId: // value for 'paymentPlanId'\n * paymentMethod: // value for 'paymentMethod'\n * },\n * });\n */\nexport function useBindQuoteMutation(\n baseOptions?: Apollo.MutationHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation(\n BindQuoteDocument,\n options\n );\n}\nexport type BindQuoteMutationHookResult = ReturnType;\nexport type BindQuoteMutationResult = Apollo.MutationResult;\nexport type BindQuoteMutationOptions = Apollo.BaseMutationOptions<\n BindQuoteMutation,\n BindQuoteMutationVariables\n>;\nexport const GetMerchantBusinessPoliciesDocument = gql`\n query GetMerchantBusinessPolicies {\n businessPolicies {\n ...BusinessPolicyFields\n }\n }\n ${BusinessPolicyFieldsFragmentDoc}\n`;\n\n/**\n * __useGetMerchantBusinessPoliciesQuery__\n *\n * To run a query within a React component, call `useGetMerchantBusinessPoliciesQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetMerchantBusinessPoliciesQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetMerchantBusinessPoliciesQuery({\n * variables: {\n * },\n * });\n */\nexport function useGetMerchantBusinessPoliciesQuery(\n baseOptions?: Apollo.QueryHookOptions<\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery<\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesQueryVariables\n >(GetMerchantBusinessPoliciesDocument, options);\n}\nexport function useGetMerchantBusinessPoliciesLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions<\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery<\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesQueryVariables\n >(GetMerchantBusinessPoliciesDocument, options);\n}\nexport function useGetMerchantBusinessPoliciesSuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions<\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery<\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesQueryVariables\n >(GetMerchantBusinessPoliciesDocument, options);\n}\nexport type GetMerchantBusinessPoliciesQueryHookResult = ReturnType<\n typeof useGetMerchantBusinessPoliciesQuery\n>;\nexport type GetMerchantBusinessPoliciesLazyQueryHookResult = ReturnType<\n typeof useGetMerchantBusinessPoliciesLazyQuery\n>;\nexport type GetMerchantBusinessPoliciesSuspenseQueryHookResult = ReturnType<\n typeof useGetMerchantBusinessPoliciesSuspenseQuery\n>;\nexport type GetMerchantBusinessPoliciesQueryResult = Apollo.QueryResult<\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesQueryVariables\n>;\nexport const GetMerchantBusinessPolicyDocument = gql`\n query GetMerchantBusinessPolicy($id: ID!) {\n businessPolicy(id: $id) {\n ...BusinessPolicyFields\n }\n }\n ${BusinessPolicyFieldsFragmentDoc}\n`;\n\n/**\n * __useGetMerchantBusinessPolicyQuery__\n *\n * To run a query within a React component, call `useGetMerchantBusinessPolicyQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetMerchantBusinessPolicyQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetMerchantBusinessPolicyQuery({\n * variables: {\n * id: // value for 'id'\n * },\n * });\n */\nexport function useGetMerchantBusinessPolicyQuery(\n baseOptions: Apollo.QueryHookOptions<\n GetMerchantBusinessPolicyQuery,\n GetMerchantBusinessPolicyQueryVariables\n > &\n ({ variables: GetMerchantBusinessPolicyQueryVariables; skip?: boolean } | { skip: boolean })\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery(\n GetMerchantBusinessPolicyDocument,\n options\n );\n}\nexport function useGetMerchantBusinessPolicyLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions<\n GetMerchantBusinessPolicyQuery,\n GetMerchantBusinessPolicyQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery<\n GetMerchantBusinessPolicyQuery,\n GetMerchantBusinessPolicyQueryVariables\n >(GetMerchantBusinessPolicyDocument, options);\n}\nexport function useGetMerchantBusinessPolicySuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions<\n GetMerchantBusinessPolicyQuery,\n GetMerchantBusinessPolicyQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery<\n GetMerchantBusinessPolicyQuery,\n GetMerchantBusinessPolicyQueryVariables\n >(GetMerchantBusinessPolicyDocument, options);\n}\nexport type GetMerchantBusinessPolicyQueryHookResult = ReturnType<\n typeof useGetMerchantBusinessPolicyQuery\n>;\nexport type GetMerchantBusinessPolicyLazyQueryHookResult = ReturnType<\n typeof useGetMerchantBusinessPolicyLazyQuery\n>;\nexport type GetMerchantBusinessPolicySuspenseQueryHookResult = ReturnType<\n typeof useGetMerchantBusinessPolicySuspenseQuery\n>;\nexport type GetMerchantBusinessPolicyQueryResult = Apollo.QueryResult<\n GetMerchantBusinessPolicyQuery,\n GetMerchantBusinessPolicyQueryVariables\n>;\nexport const GetMerchantDocument = gql`\n query GetMerchant {\n merchant {\n ...MerchantFields\n }\n }\n ${MerchantFieldsFragmentDoc}\n`;\n\n/**\n * __useGetMerchantQuery__\n *\n * To run a query within a React component, call `useGetMerchantQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetMerchantQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetMerchantQuery({\n * variables: {\n * },\n * });\n */\nexport function useGetMerchantQuery(\n baseOptions?: Apollo.QueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery(GetMerchantDocument, options);\n}\nexport function useGetMerchantLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery(\n GetMerchantDocument,\n options\n );\n}\nexport function useGetMerchantSuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery(\n GetMerchantDocument,\n options\n );\n}\nexport type GetMerchantQueryHookResult = ReturnType;\nexport type GetMerchantLazyQueryHookResult = ReturnType;\nexport type GetMerchantSuspenseQueryHookResult = ReturnType;\nexport type GetMerchantQueryResult = Apollo.QueryResult<\n GetMerchantQuery,\n GetMerchantQueryVariables\n>;\nexport const RiskManagementSetupDocument = gql`\n mutation RiskManagementSetup(\n $description: String!\n $changeDescription: String!\n $complianceFrameworks: String!\n ) {\n riskManagementSetup(\n input: {\n description: $description\n changeDescription: $changeDescription\n complianceFrameworks: $complianceFrameworks\n }\n ) {\n ...RiskManagementDataFields\n }\n }\n ${RiskManagementDataFieldsFragmentDoc}\n`;\nexport type RiskManagementSetupMutationFn = Apollo.MutationFunction<\n RiskManagementSetupMutation,\n RiskManagementSetupMutationVariables\n>;\n\n/**\n * __useRiskManagementSetupMutation__\n *\n * To run a mutation, you first call `useRiskManagementSetupMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useRiskManagementSetupMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [riskManagementSetupMutation, { data, loading, error }] = useRiskManagementSetupMutation({\n * variables: {\n * description: // value for 'description'\n * changeDescription: // value for 'changeDescription'\n * complianceFrameworks: // value for 'complianceFrameworks'\n * },\n * });\n */\nexport function useRiskManagementSetupMutation(\n baseOptions?: Apollo.MutationHookOptions<\n RiskManagementSetupMutation,\n RiskManagementSetupMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation(\n RiskManagementSetupDocument,\n options\n );\n}\nexport type RiskManagementSetupMutationHookResult = ReturnType<\n typeof useRiskManagementSetupMutation\n>;\nexport type RiskManagementSetupMutationResult = Apollo.MutationResult;\nexport type RiskManagementSetupMutationOptions = Apollo.BaseMutationOptions<\n RiskManagementSetupMutation,\n RiskManagementSetupMutationVariables\n>;\nexport const GetRiskManagementDocument = gql`\n query GetRiskManagement {\n riskManagement {\n ...RiskManagementDataFields\n }\n }\n ${RiskManagementDataFieldsFragmentDoc}\n`;\n\n/**\n * __useGetRiskManagementQuery__\n *\n * To run a query within a React component, call `useGetRiskManagementQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetRiskManagementQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetRiskManagementQuery({\n * variables: {\n * },\n * });\n */\nexport function useGetRiskManagementQuery(\n baseOptions?: Apollo.QueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery(\n GetRiskManagementDocument,\n options\n );\n}\nexport function useGetRiskManagementLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery(\n GetRiskManagementDocument,\n options\n );\n}\nexport function useGetRiskManagementSuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions<\n GetRiskManagementQuery,\n GetRiskManagementQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery(\n GetRiskManagementDocument,\n options\n );\n}\nexport type GetRiskManagementQueryHookResult = ReturnType;\nexport type GetRiskManagementLazyQueryHookResult = ReturnType;\nexport type GetRiskManagementSuspenseQueryHookResult = ReturnType<\n typeof useGetRiskManagementSuspenseQuery\n>;\nexport type GetRiskManagementQueryResult = Apollo.QueryResult<\n GetRiskManagementQuery,\n GetRiskManagementQueryVariables\n>;\nexport const RiskManagementSetActionItemDueDateDocument = gql`\n mutation RiskManagementSetActionItemDueDate($id: ID!, $dueDate: Time!) {\n riskManagementSetActionItemDueDate(id: $id, dueDate: $dueDate) {\n ...ActionItemFields\n }\n }\n ${ActionItemFieldsFragmentDoc}\n`;\nexport type RiskManagementSetActionItemDueDateMutationFn = Apollo.MutationFunction<\n RiskManagementSetActionItemDueDateMutation,\n RiskManagementSetActionItemDueDateMutationVariables\n>;\n\n/**\n * __useRiskManagementSetActionItemDueDateMutation__\n *\n * To run a mutation, you first call `useRiskManagementSetActionItemDueDateMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useRiskManagementSetActionItemDueDateMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [riskManagementSetActionItemDueDateMutation, { data, loading, error }] = useRiskManagementSetActionItemDueDateMutation({\n * variables: {\n * id: // value for 'id'\n * dueDate: // value for 'dueDate'\n * },\n * });\n */\nexport function useRiskManagementSetActionItemDueDateMutation(\n baseOptions?: Apollo.MutationHookOptions<\n RiskManagementSetActionItemDueDateMutation,\n RiskManagementSetActionItemDueDateMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n RiskManagementSetActionItemDueDateMutation,\n RiskManagementSetActionItemDueDateMutationVariables\n >(RiskManagementSetActionItemDueDateDocument, options);\n}\nexport type RiskManagementSetActionItemDueDateMutationHookResult = ReturnType<\n typeof useRiskManagementSetActionItemDueDateMutation\n>;\nexport type RiskManagementSetActionItemDueDateMutationResult =\n Apollo.MutationResult;\nexport type RiskManagementSetActionItemDueDateMutationOptions = Apollo.BaseMutationOptions<\n RiskManagementSetActionItemDueDateMutation,\n RiskManagementSetActionItemDueDateMutationVariables\n>;\nexport const RiskManagementSetActionItemAssigneeDocument = gql`\n mutation RiskManagementSetActionItemAssignee($id: ID!, $userId: ID!) {\n riskManagementSetActionItemAssignee(id: $id, userId: $userId) {\n ...ActionItemFields\n }\n }\n ${ActionItemFieldsFragmentDoc}\n`;\nexport type RiskManagementSetActionItemAssigneeMutationFn = Apollo.MutationFunction<\n RiskManagementSetActionItemAssigneeMutation,\n RiskManagementSetActionItemAssigneeMutationVariables\n>;\n\n/**\n * __useRiskManagementSetActionItemAssigneeMutation__\n *\n * To run a mutation, you first call `useRiskManagementSetActionItemAssigneeMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useRiskManagementSetActionItemAssigneeMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [riskManagementSetActionItemAssigneeMutation, { data, loading, error }] = useRiskManagementSetActionItemAssigneeMutation({\n * variables: {\n * id: // value for 'id'\n * userId: // value for 'userId'\n * },\n * });\n */\nexport function useRiskManagementSetActionItemAssigneeMutation(\n baseOptions?: Apollo.MutationHookOptions<\n RiskManagementSetActionItemAssigneeMutation,\n RiskManagementSetActionItemAssigneeMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n RiskManagementSetActionItemAssigneeMutation,\n RiskManagementSetActionItemAssigneeMutationVariables\n >(RiskManagementSetActionItemAssigneeDocument, options);\n}\nexport type RiskManagementSetActionItemAssigneeMutationHookResult = ReturnType<\n typeof useRiskManagementSetActionItemAssigneeMutation\n>;\nexport type RiskManagementSetActionItemAssigneeMutationResult =\n Apollo.MutationResult;\nexport type RiskManagementSetActionItemAssigneeMutationOptions = Apollo.BaseMutationOptions<\n RiskManagementSetActionItemAssigneeMutation,\n RiskManagementSetActionItemAssigneeMutationVariables\n>;\nexport const RiskManagementMarkActionItemCompleteDocument = gql`\n mutation RiskManagementMarkActionItemComplete($id: ID!) {\n riskManagementMarkActionItemComplete(id: $id) {\n ...ActionItemFields\n }\n }\n ${ActionItemFieldsFragmentDoc}\n`;\nexport type RiskManagementMarkActionItemCompleteMutationFn = Apollo.MutationFunction<\n RiskManagementMarkActionItemCompleteMutation,\n RiskManagementMarkActionItemCompleteMutationVariables\n>;\n\n/**\n * __useRiskManagementMarkActionItemCompleteMutation__\n *\n * To run a mutation, you first call `useRiskManagementMarkActionItemCompleteMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useRiskManagementMarkActionItemCompleteMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [riskManagementMarkActionItemCompleteMutation, { data, loading, error }] = useRiskManagementMarkActionItemCompleteMutation({\n * variables: {\n * id: // value for 'id'\n * },\n * });\n */\nexport function useRiskManagementMarkActionItemCompleteMutation(\n baseOptions?: Apollo.MutationHookOptions<\n RiskManagementMarkActionItemCompleteMutation,\n RiskManagementMarkActionItemCompleteMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n RiskManagementMarkActionItemCompleteMutation,\n RiskManagementMarkActionItemCompleteMutationVariables\n >(RiskManagementMarkActionItemCompleteDocument, options);\n}\nexport type RiskManagementMarkActionItemCompleteMutationHookResult = ReturnType<\n typeof useRiskManagementMarkActionItemCompleteMutation\n>;\nexport type RiskManagementMarkActionItemCompleteMutationResult =\n Apollo.MutationResult;\nexport type RiskManagementMarkActionItemCompleteMutationOptions = Apollo.BaseMutationOptions<\n RiskManagementMarkActionItemCompleteMutation,\n RiskManagementMarkActionItemCompleteMutationVariables\n>;\nexport const GetPolicyConversationDocument = gql`\n query GetPolicyConversation($policyId: ID!) {\n policyConversation(policyId: $policyId) {\n ...PolicyConversationMessageFields\n }\n }\n ${PolicyConversationMessageFieldsFragmentDoc}\n`;\n\n/**\n * __useGetPolicyConversationQuery__\n *\n * To run a query within a React component, call `useGetPolicyConversationQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetPolicyConversationQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetPolicyConversationQuery({\n * variables: {\n * policyId: // value for 'policyId'\n * },\n * });\n */\nexport function useGetPolicyConversationQuery(\n baseOptions: Apollo.QueryHookOptions<\n GetPolicyConversationQuery,\n GetPolicyConversationQueryVariables\n > &\n ({ variables: GetPolicyConversationQueryVariables; skip?: boolean } | { skip: boolean })\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery(\n GetPolicyConversationDocument,\n options\n );\n}\nexport function useGetPolicyConversationLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions<\n GetPolicyConversationQuery,\n GetPolicyConversationQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery(\n GetPolicyConversationDocument,\n options\n );\n}\nexport function useGetPolicyConversationSuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions<\n GetPolicyConversationQuery,\n GetPolicyConversationQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery(\n GetPolicyConversationDocument,\n options\n );\n}\nexport type GetPolicyConversationQueryHookResult = ReturnType;\nexport type GetPolicyConversationLazyQueryHookResult = ReturnType<\n typeof useGetPolicyConversationLazyQuery\n>;\nexport type GetPolicyConversationSuspenseQueryHookResult = ReturnType<\n typeof useGetPolicyConversationSuspenseQuery\n>;\nexport type GetPolicyConversationQueryResult = Apollo.QueryResult<\n GetPolicyConversationQuery,\n GetPolicyConversationQueryVariables\n>;\nexport const AddPolicyConversationMessageDocument = gql`\n mutation AddPolicyConversationMessage($policyId: ID!, $message: String!) {\n riskManagementAddPolicyConversationMessage(policyId: $policyId, message: $message) {\n ...PolicyConversationMessageFields\n }\n }\n ${PolicyConversationMessageFieldsFragmentDoc}\n`;\nexport type AddPolicyConversationMessageMutationFn = Apollo.MutationFunction<\n AddPolicyConversationMessageMutation,\n AddPolicyConversationMessageMutationVariables\n>;\n\n/**\n * __useAddPolicyConversationMessageMutation__\n *\n * To run a mutation, you first call `useAddPolicyConversationMessageMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useAddPolicyConversationMessageMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [addPolicyConversationMessageMutation, { data, loading, error }] = useAddPolicyConversationMessageMutation({\n * variables: {\n * policyId: // value for 'policyId'\n * message: // value for 'message'\n * },\n * });\n */\nexport function useAddPolicyConversationMessageMutation(\n baseOptions?: Apollo.MutationHookOptions<\n AddPolicyConversationMessageMutation,\n AddPolicyConversationMessageMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n AddPolicyConversationMessageMutation,\n AddPolicyConversationMessageMutationVariables\n >(AddPolicyConversationMessageDocument, options);\n}\nexport type AddPolicyConversationMessageMutationHookResult = ReturnType<\n typeof useAddPolicyConversationMessageMutation\n>;\nexport type AddPolicyConversationMessageMutationResult =\n Apollo.MutationResult;\nexport type AddPolicyConversationMessageMutationOptions = Apollo.BaseMutationOptions<\n AddPolicyConversationMessageMutation,\n AddPolicyConversationMessageMutationVariables\n>;\n","import { InsuranceType } from './graphql';\n\nexport const getDisplayInsuranceType = (type: InsuranceType | undefined): string => {\n switch (type) {\n case InsuranceType.AccidentAndHealth:\n return 'Accident and Health';\n case InsuranceType.BusinessOwners:\n return 'Business Owners';\n case InsuranceType.CommercialAuto:\n return 'Auto';\n case InsuranceType.Cyber:\n return 'Cyber';\n case InsuranceType.DirectorsAndOfficers:\n return 'Directors and Officers';\n case InsuranceType.EmploymentPracticesLiability:\n return 'Employment Practices Liability';\n case InsuranceType.ErrorsAndOmission:\n return 'Errors and Omission Liability';\n case InsuranceType.GeneralLiability:\n return 'General Liability';\n case InsuranceType.JewelersBlock:\n return 'Jewelers Block';\n case InsuranceType.Other:\n return 'Other';\n case InsuranceType.Package:\n return 'Package';\n case InsuranceType.ProductLiability:\n return 'Product Liability';\n case InsuranceType.ProfessionalLiability:\n return 'Professional Liability';\n case InsuranceType.Property:\n return 'Property';\n case InsuranceType.Rental:\n return 'Rental';\n case InsuranceType.ShippingAndTransportation:\n return 'Shipping and Transportation';\n case InsuranceType.UmbrellaOrExcess:\n return 'Umbrella or Excess';\n case InsuranceType.WorkersCompensation:\n return 'Workers Compensation';\n default:\n return 'Unknown';\n }\n};\n","/**\n * TODO: Update this component to use your client-side framework's link\n * component. We've provided examples of how to do this for Next.js, Remix, and\n * Inertia.js in the Catalyst documentation:\n *\n * https://catalyst.tailwindui.com/docs#client-side-router-integration\n */\n\nimport * as Headless from '@headlessui/react';\nimport React, { forwardRef } from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\n\nexport const Link = forwardRef(function Link(\n props: { href: string } & React.ComponentPropsWithoutRef<'a'>,\n ref: React.ForwardedRef\n) {\n return props.href.startsWith('/') ? (\n \n \n \n ) : (\n \n \n \n );\n});\n","import clsx from 'clsx';\n\nconst colors = {\n red: 'border-t-red-500',\n orange: 'border-t-orange-500',\n amber: 'border-t-amber-400',\n yellow: 'border-t-yellow-400',\n lime: 'border-t-lime-400',\n green: 'border-t-green-500',\n emerald: 'border-t-emerald-500',\n teal: 'border-t-teal-500',\n cyan: 'border-t-cyan-400',\n sky: 'border-t-sky-500',\n blue: 'border-t-blue-500',\n indigo: 'border-t-indigo-500',\n violet: 'border-t-violet-500',\n purple: 'border-t-purple-500',\n fuchsia: 'border-t-fuchsia-400',\n pink: 'border-t-pink-400',\n rose: 'border-t-rose-400',\n zinc: 'border-t-zinc-600',\n neutral: 'border-t-neutral-500',\n white: 'border-t-white'\n};\n\nexport const Spinner = ({\n color,\n size\n}: {\n color?: keyof typeof colors;\n size?:\n | 'size-6'\n | 'size-8'\n | 'size-10'\n | 'size-12'\n | 'size-14'\n | 'size-16'\n | 'size-20'\n | 'size-24';\n}) => (\n
\n \n
\n);\n","import * as Headless from '@headlessui/react';\nimport clsx from 'clsx';\nimport React, { forwardRef } from 'react';\nimport { Link } from './link';\nimport { Spinner } from './spinner';\n\nconst styles = {\n base: [\n // Base\n 'relative isolate inline-flex items-center justify-center gap-x-2 rounded-lg border text-base/6 font-semibold',\n // Sizing\n 'px-[calc(theme(spacing[3.5])-1px)] py-[calc(theme(spacing[2.5])-1px)] sm:px-[calc(theme(spacing.3)-1px)] sm:py-[calc(theme(spacing[1.5])-1px)] sm:text-sm/6',\n // Focus\n 'focus:outline-none data-[focus]:outline data-[focus]:outline-2 data-[focus]:outline-offset-2 data-[focus]:outline-primary-500',\n // Disabled\n 'data-[disabled]:opacity-50',\n // Icon\n '[&>[data-slot=icon]]:-mx-0.5 [&>[data-slot=icon]]:my-0.5 [&>[data-slot=icon]]:size-5 [&>[data-slot=icon]]:shrink-0 [&>[data-slot=icon]]:text-[--btn-icon] [&>[data-slot=icon]]:sm:my-1 [&>[data-slot=icon]]:sm:size-4 forced-colors:[--btn-icon:ButtonText] forced-colors:data-[hover]:[--btn-icon:ButtonText]'\n ],\n solid: [\n // Optical border, implemented as the button background to avoid corner artifacts\n 'border-transparent bg-[--btn-border]',\n // Dark mode: border is rendered on `after` so background is set to button background\n 'dark:bg-[--btn-bg]',\n // Button background, implemented as foreground layer to stack on top of pseudo-border layer\n 'before:absolute before:inset-0 before:-z-10 before:rounded-[calc(theme(borderRadius.lg)-1px)] before:bg-[--btn-bg]',\n // Drop shadow, applied to the inset `before` layer so it blends with the border\n 'before:shadow',\n // Background color is moved to control and shadow is removed in dark mode so hide `before` pseudo\n 'dark:before:hidden',\n // Dark mode: Subtle white outline is applied using a border\n 'dark:border-white/5',\n // Shim/overlay, inset to match button foreground and used for hover state + highlight shadow\n 'after:absolute after:inset-0 after:-z-10 after:rounded-[calc(theme(borderRadius.lg)-1px)]',\n // Inner highlight shadow\n 'after:shadow-[shadow:inset_0_1px_theme(colors.white/15%)]',\n // White overlay on hover\n 'after:data-[active]:bg-[--btn-hover-overlay] after:data-[hover]:bg-[--btn-hover-overlay]',\n // Dark mode: `after` layer expands to cover entire button\n 'dark:after:-inset-px dark:after:rounded-lg',\n // Disabled\n 'before:data-[disabled]:shadow-none after:data-[disabled]:shadow-none'\n ],\n outline: [\n // Base\n 'border-neutral-950/10 text-neutral-950 data-[active]:bg-neutral-950/[2.5%] data-[hover]:bg-neutral-950/[2.5%]',\n // Dark mode\n 'dark:border-white/15 dark:text-white dark:[--btn-bg:transparent] dark:data-[active]:bg-white/5 dark:data-[hover]:bg-white/5',\n // Icon\n '[--btn-icon:theme(colors.neutral.500)] data-[active]:[--btn-icon:theme(colors.neutral.700)] data-[hover]:[--btn-icon:theme(colors.neutral.700)] dark:data-[active]:[--btn-icon:theme(colors.neutral.400)] dark:data-[hover]:[--btn-icon:theme(colors.neutral.400)]'\n ],\n plain: [\n // Base\n 'border-transparent text-neutral-950 data-[active]:bg-neutral-950/5 data-[hover]:bg-neutral-950/5',\n // Dark mode\n 'dark:text-white dark:data-[active]:bg-white/10 dark:data-[hover]:bg-white/10',\n // Icon\n '[--btn-icon:theme(colors.neutral.500)] data-[active]:[--btn-icon:theme(colors.neutral.700)] data-[hover]:[--btn-icon:theme(colors.neutral.700)] dark:[--btn-icon:theme(colors.neutral.500)] dark:data-[active]:[--btn-icon:theme(colors.neutral.400)] dark:data-[hover]:[--btn-icon:theme(colors.neutral.400)]'\n ],\n colors: {\n 'dark/neutral': [\n 'text-white [--btn-bg:theme(colors.neutral.900)] [--btn-border:theme(colors.neutral.950/90%)] [--btn-hover-overlay:theme(colors.white/10%)]',\n 'dark:text-white dark:[--btn-bg:theme(colors.neutral.600)] dark:[--btn-hover-overlay:theme(colors.white/5%)]',\n '[--btn-icon:theme(colors.neutral.400)] data-[active]:[--btn-icon:theme(colors.neutral.300)] data-[hover]:[--btn-icon:theme(colors.neutral.300)]'\n ],\n light: [\n 'text-neutral-950 [--btn-bg:white] [--btn-border:theme(colors.neutral.950/10%)] [--btn-hover-overlay:theme(colors.neutral.950/2.5%)] data-[active]:[--btn-border:theme(colors.neutral.950/15%)] data-[hover]:[--btn-border:theme(colors.neutral.950/15%)]',\n 'dark:text-white dark:[--btn-hover-overlay:theme(colors.white/5%)] dark:[--btn-bg:theme(colors.neutral.800)]',\n '[--btn-icon:theme(colors.neutral.500)] data-[active]:[--btn-icon:theme(colors.neutral.700)] data-[hover]:[--btn-icon:theme(colors.neutral.700)] dark:[--btn-icon:theme(colors.neutral.500)] dark:data-[active]:[--btn-icon:theme(colors.neutral.400)] dark:data-[hover]:[--btn-icon:theme(colors.neutral.400)]'\n ],\n 'dark/white': [\n 'text-white [--btn-bg:theme(colors.neutral.900)] [--btn-border:theme(colors.neutral.950/90%)] [--btn-hover-overlay:theme(colors.white/10%)]',\n 'dark:text-neutral-950 dark:[--btn-bg:white] dark:[--btn-hover-overlay:theme(colors.neutral.950/5%)]',\n '[--btn-icon:theme(colors.neutral.400)] data-[active]:[--btn-icon:theme(colors.neutral.300)] data-[hover]:[--btn-icon:theme(colors.neutral.300)] dark:[--btn-icon:theme(colors.neutral.500)] dark:data-[active]:[--btn-icon:theme(colors.neutral.400)] dark:data-[hover]:[--btn-icon:theme(colors.neutral.400)]'\n ],\n dark: [\n 'text-white [--btn-bg:theme(colors.neutral.900)] [--btn-border:theme(colors.neutral.950/90%)] [--btn-hover-overlay:theme(colors.white/10%)]',\n 'dark:[--btn-hover-overlay:theme(colors.white/5%)] dark:[--btn-bg:theme(colors.neutral.800)]',\n '[--btn-icon:theme(colors.neutral.400)] data-[active]:[--btn-icon:theme(colors.neutral.300)] data-[hover]:[--btn-icon:theme(colors.neutral.300)]'\n ],\n white: [\n 'text-neutral-950 [--btn-bg:white] [--btn-border:theme(colors.neutral.950/10%)] [--btn-hover-overlay:theme(colors.neutral.950/2.5%)] data-[active]:[--btn-border:theme(colors.neutral.950/15%)] data-[hover]:[--btn-border:theme(colors.neutral.950/15%)]',\n 'dark:[--btn-hover-overlay:theme(colors.neutral.950/5%)]',\n '[--btn-icon:theme(colors.neutral.400)] data-[active]:[--btn-icon:theme(colors.neutral.500)] data-[hover]:[--btn-icon:theme(colors.neutral.500)]'\n ],\n neutral: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.neutral.600)] [--btn-border:theme(colors.neutral.700/90%)]',\n 'dark:[--btn-hover-overlay:theme(colors.white/5%)]',\n '[--btn-icon:theme(colors.neutral.400)] data-[active]:[--btn-icon:theme(colors.neutral.300)] data-[hover]:[--btn-icon:theme(colors.neutral.300)]'\n ],\n indigo: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.indigo.500)] [--btn-border:theme(colors.indigo.600/90%)]',\n '[--btn-icon:theme(colors.indigo.300)] data-[active]:[--btn-icon:theme(colors.indigo.200)] data-[hover]:[--btn-icon:theme(colors.indigo.200)]'\n ],\n cyan: [\n 'text-cyan-950 [--btn-bg:theme(colors.cyan.300)] [--btn-border:theme(colors.cyan.400/80%)] [--btn-hover-overlay:theme(colors.white/25%)]',\n '[--btn-icon:theme(colors.cyan.500)]'\n ],\n red: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.red.600)] [--btn-border:theme(colors.red.700/90%)]',\n '[--btn-icon:theme(colors.red.300)] data-[active]:[--btn-icon:theme(colors.red.200)] data-[hover]:[--btn-icon:theme(colors.red.200)]'\n ],\n orange: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.orange.500)] [--btn-border:theme(colors.orange.600/90%)]',\n '[--btn-icon:theme(colors.orange.300)] data-[active]:[--btn-icon:theme(colors.orange.200)] data-[hover]:[--btn-icon:theme(colors.orange.200)]'\n ],\n amber: [\n 'text-amber-950 [--btn-hover-overlay:theme(colors.white/25%)] [--btn-bg:theme(colors.amber.400)] [--btn-border:theme(colors.amber.500/80%)]',\n '[--btn-icon:theme(colors.amber.600)]'\n ],\n yellow: [\n 'text-yellow-950 [--btn-hover-overlay:theme(colors.white/25%)] [--btn-bg:theme(colors.yellow.300)] [--btn-border:theme(colors.yellow.400/80%)]',\n '[--btn-icon:theme(colors.yellow.600)] data-[active]:[--btn-icon:theme(colors.yellow.700)] data-[hover]:[--btn-icon:theme(colors.yellow.700)]'\n ],\n lime: [\n 'text-lime-950 [--btn-hover-overlay:theme(colors.white/25%)] [--btn-bg:theme(colors.lime.300)] [--btn-border:theme(colors.lime.400/80%)]',\n '[--btn-icon:theme(colors.lime.600)] data-[active]:[--btn-icon:theme(colors.lime.700)] data-[hover]:[--btn-icon:theme(colors.lime.700)]'\n ],\n green: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.green.600)] [--btn-border:theme(colors.green.700/90%)]',\n '[--btn-icon:theme(colors.white/60%)] data-[active]:[--btn-icon:theme(colors.white/80%)] data-[hover]:[--btn-icon:theme(colors.white/80%)]'\n ],\n emerald: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.emerald.600)] [--btn-border:theme(colors.emerald.700/90%)]',\n '[--btn-icon:theme(colors.white/60%)] data-[active]:[--btn-icon:theme(colors.white/80%)] data-[hover]:[--btn-icon:theme(colors.white/80%)]'\n ],\n teal: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.teal.600)] [--btn-border:theme(colors.teal.700/90%)]',\n '[--btn-icon:theme(colors.white/60%)] data-[active]:[--btn-icon:theme(colors.white/80%)] data-[hover]:[--btn-icon:theme(colors.white/80%)]'\n ],\n sky: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.sky.500)] [--btn-border:theme(colors.sky.600/80%)]',\n '[--btn-icon:theme(colors.white/60%)] data-[active]:[--btn-icon:theme(colors.white/80%)] data-[hover]:[--btn-icon:theme(colors.white/80%)]'\n ],\n blue: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.blue.600)] [--btn-border:theme(colors.blue.700/90%)]',\n '[--btn-icon:theme(colors.blue.400)] data-[active]:[--btn-icon:theme(colors.blue.300)] data-[hover]:[--btn-icon:theme(colors.blue.300)]'\n ],\n violet: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.violet.500)] [--btn-border:theme(colors.violet.600/90%)]',\n '[--btn-icon:theme(colors.violet.300)] data-[active]:[--btn-icon:theme(colors.violet.200)] data-[hover]:[--btn-icon:theme(colors.violet.200)]'\n ],\n purple: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.purple.500)] [--btn-border:theme(colors.purple.600/90%)]',\n '[--btn-icon:theme(colors.purple.300)] data-[active]:[--btn-icon:theme(colors.purple.200)] data-[hover]:[--btn-icon:theme(colors.purple.200)]'\n ],\n fuchsia: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.fuchsia.500)] [--btn-border:theme(colors.fuchsia.600/90%)]',\n '[--btn-icon:theme(colors.fuchsia.300)] data-[active]:[--btn-icon:theme(colors.fuchsia.200)] data-[hover]:[--btn-icon:theme(colors.fuchsia.200)]'\n ],\n pink: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.pink.500)] [--btn-border:theme(colors.pink.600/90%)]',\n '[--btn-icon:theme(colors.pink.300)] data-[active]:[--btn-icon:theme(colors.pink.200)] data-[hover]:[--btn-icon:theme(colors.pink.200)]'\n ],\n rose: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.rose.500)] [--btn-border:theme(colors.rose.600/90%)]',\n '[--btn-icon:theme(colors.rose.300)] data-[active]:[--btn-icon:theme(colors.rose.200)] data-[hover]:[--btn-icon:theme(colors.rose.200)]'\n ]\n }\n};\n\ntype ButtonProps = (\n | { color?: keyof typeof styles.colors; outline?: never; plain?: never }\n | { color?: never; outline: true; plain?: never }\n | { color?: never; outline?: never; plain: true }\n) & { loading?: boolean; className?: string; children: React.ReactNode } & (\n | Omit\n | Omit, 'className'>\n );\n\nexport const Button = forwardRef(function Button(\n { color, outline, plain, className, loading, children, ...props }: ButtonProps,\n ref: React.ForwardedRef\n) {\n const classes = clsx(\n className,\n styles.base,\n outline\n ? styles.outline\n : plain\n ? styles.plain\n : clsx(styles.solid, styles.colors[color ?? 'dark/neutral'])\n );\n\n return 'href' in props ? (\n }>\n {children}\n \n ) : (\n \n {children}\n \n );\n});\n\n/**\n * Expand the hit area to at least 44×44px on touch devices\n */\nexport function TouchTarget({ children }: { children: React.ReactNode }) {\n return (\n <>\n \n {children}\n \n );\n}\n\nexport const PrimaryButton = forwardRef(function Button(\n {\n loading,\n className,\n children,\n ...props\n }: React.PropsWithChildren<\n { loading?: boolean; className?: string } & (\n | Omit\n | Omit, 'className'>\n )\n >,\n ref: React.ForwardedRef\n) {\n const classes = clsx(\n 'w-full bg-primary-500 text-white shadow-sm hover:bg-primary-50 hover:text-primary-700 hover:outline hover:outline-primary-700 cursor-pointer',\n 'font-heading transition-all',\n 'mt-6 block rounded-md px-3 py-3 text-center text-sm font-semibold leading-6 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-500',\n 'data-[disabled]:opacity-75 data-[disabled]:cursor-not-allowed data-[disabled]:hover:bg-primary-500 data-[disabled]:hover:text-white data-[disabled]:hover:outline-none data-[disabled]:focus-visible:outline-none',\n 'flex items-center justify-center',\n className\n );\n\n return 'href' in props ? (\n }>\n {children}\n \n ) : (\n \n \n {!loading && children}\n {loading && }\n \n \n );\n});\n","import React from 'react';\n\nexport const PageTitle = (\n props: React.PropsWithChildren<{\n title: string;\n description?: string | JSX.Element;\n badge?: JSX.Element;\n }>\n) => (\n
\n

{props.title}

\n {props.badge &&
{props.badge}
}\n {props.description &&

{props.description}

}\n
{props.children}
\n
\n);\n\nexport const PageSection = (\n props: React.PropsWithChildren<{ title: string; description?: string }>\n) => (\n
\n

{props.title}

\n {props.description &&

{props.description}

}\n
{props.children}
\n
\n);\n","import clsx from 'clsx';\n\nimport {\n MerchantIntegration,\n MerchantRentalConfiguration,\n PolicyTableValues,\n WaiverEntry\n} from '@oysterjs/types';\nimport { getDisplayInsuranceType } from '../../types/map';\nimport { BusinessPolicyFieldsFragment, FileRole, PolicyState } from '../../types/graphql';\nimport { Button } from '@oysterjs/uiv2/button';\nimport { ArrowRightIcon, DocumentIcon, ShieldCheckIcon } from '@heroicons/react/24/outline';\nimport { MerchantFieldsFragment } from '../../types/graphql';\nimport { PageTitle } from '@oysterjs/ui/Page/section';\nimport { useHistory } from 'react-router';\n\ninterface HomePageProps {\n merchant: MerchantFieldsFragment;\n businessPolicies: BusinessPolicyFieldsFragment[];\n policyReferrals?: PolicyTableValues[];\n integrations: MerchantIntegration[];\n rentalConfiguration?: MerchantRentalConfiguration;\n rentalWaivers: WaiverEntry[];\n}\n\nconst getBadgeColor = (status: PolicyState): string => {\n switch (status) {\n case PolicyState.Inforce:\n return 'bg-green-50 text-green-700 ring-green-600/20';\n case PolicyState.Binding:\n case PolicyState.Pending:\n return 'bg-amber-50 text-amber-700 ring-amber-600/20';\n case PolicyState.Canceled:\n return 'bg-red-50 text-red-700 ring-red-600/20';\n default:\n return 'bg-neutral-50 text-neutral-700 ring-neutral-600/20';\n }\n};\n\nconst ChannelBadge = (props: { state: PolicyState }) => (\n \n {props.state || 'UNKNOWN'}\n \n);\n\nconst BusinessInsuranceSection = (props: HomePageProps) => {\n const history = useHistory();\n const policies = props.businessPolicies.filter((p) => p.state !== PolicyState.Expired);\n\n if (policies.length) {\n return (\n
    \n {policies.map((p) => (\n history.push(`/insurance/overview/policy/${p.id}`)}\n >\n
    \n
    \n
    \n

    \n {getDisplayInsuranceType(p.type)}\n

    \n \n
    \n
    \n

    {p.carrier?.name || 'N/A'}

    \n \n \n {' '}\n

    {p.policyNumber || 'N/A'}

    \n
    \n\n {p.expiresAt && (\n

    \n Expires{' '}\n {new Intl.DateTimeFormat('en-US', { dateStyle: 'medium' }).format(\n new Date(p.expiresAt)\n )}\n

    \n )}\n
    \n
    \n \n
    \n
    \n \n ))}\n
\n );\n }\n\n return (\n
\n

\n You have no business insurance policies.\n

\n
\n \n
\n
\n );\n};\n\nconst CertificatesSection = (props: HomePageProps) => {\n const certificates =\n props.merchant?.files\n ?.filter((f) => f.role === FileRole.Certificate)\n .filter((f) => !!f.details?.certificateNumber)\n .sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()) || [];\n\n const history = useHistory();\n\n if (certificates.length) {\n return (\n
\n );\n }\n\n return (\n
\n history.push(`/insurance/certificates/create`)}\n >\n
\n

No certificates created.

\n \n Create Certificate\n \n
\n
\n \n );\n};\n\nexport const HomePage = (props: HomePageProps) => {\n const history = useHistory();\n\n return (\n
\n \n
\n
\n

\n Business Insurance\n

\n

\n View and manage your business insurance policies\n

\n
\n
\n {props.businessPolicies.length > 0 && (\n \n )}\n \n
\n
\n \n\n {/* {props.businessPolicies.length > 0 && (\n <>\n
\n
\n

\n Certificates of Insurance\n

\n

\n Recently created certificates of insurance\n

\n
\n
\n \n
\n
\n \n \n )} */}\n\n
\n {props.businessPolicies.length > 0 && (\n
\n
\n
\n

\n Certificates of Insurance\n

\n

\n Recently created certificates of insurance\n

\n
\n {/*
\n \n
*/}\n
\n \n
\n )}\n {/*
\n
\n
\n

Integrations

\n

Your live integrations and channels

\n
\n
\n \n
\n
\n {integrations.length > 0 && (\n \n {integrations.map((integration) => (\n \n ))}\n \n )}\n {integrations.length === 0 && (\n
\n

You have no live integrations.

\n
\n \n
\n
\n )}\n
*/}\n
\n
\n
\n

\n Risk Management\n

\n

Manage business risk

\n
\n
\n
\n history.push(`/risk`)}\n >\n
\n

No data available.

\n \n Set up risk management\n \n
\n
\n
\n
\n
\n \n );\n};\n","import * as React from 'react';\nimport { IoInformationCircleOutline } from 'react-icons/io5';\nimport styled from 'styled-components';\n\nconst BannerContainer = styled.div`\n background: #fff3f0;\n padding: 20px 20px;\n border-radius: 8px;\n box-sizing: border-box;\n width: 100%;\n\n transition: 0.15s all ease-in-out;\n\n display: flex;\n flex-direction: row;\n gap: 10px;\n`;\n\nconst ContentContainer = styled.div`\n width: 100%;\n display: flex;\n flex-direction: row;\n gap: 10px;\n\n @media (max-width: 600px) {\n flex-direction: column;\n }\n`;\n\nconst IconContainer = styled.div`\n font-size: 1.2em;\n`;\n\nconst TextContainer = styled.div`\n flex-grow: 1;\n`;\n\nconst ActionContainer = styled.div`\n min-width: 180px;\n height: 100%;\n display: flex;\n justify-content: flex-end;\n\n @media (max-width: 600px) {\n justify-content: flex-start;\n }\n`;\n\nconst TitleText = styled.div`\n font-weight: 500;\n font-size: 0.9em;\n padding-bottom: 5px;\n`;\n\nconst DescriptionText = styled.div`\n font-size: 0.8em;\n color: #555555;\n`;\n\ninterface BannerProps {\n title: string;\n description: string | JSX.Element;\n bannerAction?: JSX.Element;\n}\n\nexport const Banner: React.FunctionComponent<\n React.AllHTMLAttributes & BannerProps\n> = (props): JSX.Element => (\n \n \n \n \n \n \n {props.title}\n {props.description}\n \n {props.bannerAction && {props.bannerAction}}\n \n \n);\n","import * as React from 'react';\nimport { Link } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { Spinner } from '../Spinner';\n\nconst UnstyledLink = styled.a`\n color: inherit;\n text-decoration: inherit;\n\n &:visited {\n color: inherit;\n text-decoration: inherit;\n }\n`;\n\nconst ButtonContainerComponent = styled.div`\n display: flex;\n flex-direction: row;\n gap: 0px 6px;\n\n width: 100%;\n justify-content: ${(props) => (props.center ? 'center' : 'left')};\n`;\n\ninterface ButtonContainerProps {\n center?: boolean;\n}\n\nexport const ButtonContainer = (\n props: React.PropsWithChildren & ButtonContainerProps>\n) => {props.children};\n\nconst ButtonComponent = styled.button<{\n primary?: boolean;\n loading?: boolean;\n}>`\n border: 0;\n\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 5px;\n\n padding: 10px 15px;\n border-radius: 30px;\n user-select: none;\n\n font-size: 0.8em;\n font-weight: 500;\n\n min-width: 100px;\n justify-content: center;\n\n color: ${(props) => (props.primary ? 'white' : '#333333')};\n background: ${(props) => (props.primary ? '#0ea5e9' : '#fafafa')};\n border: ${(props) => (props.primary ? '1px solid transparent' : '1px solid #DADADA')};\n font-family: 'Rubik', 'Helvetica Neue', 'Helvetica', Arial, sans-serif;\n\n opacity: ${(props) => (props.loading || props.disabled ? 0.6 : 1)};\n cursor: ${(props) => (props.loading || props.disabled ? 'default' : 'pointer')};\n\n transition: all 0.15s ease-in-out;\n\n &:active {\n transform: ${(props) => {\n if (props.loading || props.disabled) {\n return 'none';\n }\n return 'translateY(2px)';\n }};\n background: ${(props) => {\n if (props.loading || props.disabled) {\n return props.primary ? '#0ea5e9' : '#fafafa';\n }\n return props.primary ? '#269985' : 'rgb(212, 212, 212)';\n }};\n }\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n`;\n\nconst ButtonDivComponent = styled.div<{\n primary?: boolean;\n loading?: boolean;\n disabled?: boolean;\n}>`\n border: 0;\n\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 5px;\n\n padding: 10px 15px;\n border-radius: 30px;\n user-select: none;\n\n font-size: 0.8em;\n font-weight: 500;\n\n color: ${(props) => (props.primary ? 'white' : '#333333')};\n background: ${(props) => (props.primary ? '#0ea5e9' : '#fafafa')};\n border: ${(props) => (props.primary ? '1px solid transparent' : '1px solid #DADADA')};\n font-family: 'Rubik', 'Helvetica Neue', 'Helvetica', Arial, sans-serif;\n\n opacity: ${(props) => (props.loading || props.disabled ? 0.6 : 1)};\n cursor: ${(props) => (props.loading || props.disabled ? 'default' : 'pointer')};\n\n transition: all 0.15s ease-in-out;\n\n :active {\n transform: translateY(2px);\n background: ${(props) => {\n if (props.loading || props.disabled) {\n return props.primary ? '#0ea5e9' : '#fafafa';\n }\n return props.primary ? '#269985' : 'rgb(212, 212, 212)';\n }};\n }\n\n :first-child {\n margin-left: 0;\n }\n\n :last-child {\n margin-right: 0;\n }\n`;\n\ninterface ButtonProps {\n primary?: boolean;\n loading?: boolean;\n disabled?: boolean;\n icon?: JSX.Element;\n leftIcon?: JSX.Element;\n style?: React.CSSProperties;\n}\n\ninterface LinkProps {\n href: string;\n target?: string;\n onClick?: () => void;\n}\n\nexport const ButtonLink = (props: React.PropsWithChildren) =>\n props.disabled ? (\n \n \n navigator.clipboard.writeText(props.link)}\n >\n Copied!\n \n \n);\n\nexport const ReferralLinkSetup = (props: {\n onUpdateIntegration: (integration: MerchantIntegration) => Promise;\n integration?: MerchantIntegration;\n}) => {\n const referralLink = (props.integration?.Settings as ReferralLinkIntegrationSettings)\n .ReferralLink;\n\n return (\n <>\n {props.integration && (\n <>\n \n \n {(settings: ReferralLinkIntegrationSettings, _, onUpdateSettings) => (\n \n onUpdateSettings({ ...settings, BrandColor: color })\n }\n />\n }\n />\n )}\n \n

Usage Tips

\n
    \n
  • Add the referral link to your website
  • \n
  • Add the referral link to order confirmation emails
  • \n
  • Publish the referral link on social media accounts
  • \n
\n \n )}\n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { NumericFormat, OnValueChange } from 'react-number-format';\n\nexport const ErrorDisplay = styled.div`\n font-size: 0.8em;\n margin-top: 5px;\n color: #d1344b;\n`;\n\nexport const TextInputComponent = styled.input<{\n error?: string | null | false | true;\n currency?: boolean | false;\n}>`\n border: 0;\n outline: none;\n\n border-radius: 20px;\n border: ${(props) => (props.error ? '2px solid #d1344b' : '2px solid #e8e8e8')};\n box-sizing: border-box;\n font-family: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 1em;\n padding: 8px 16px;\n\n padding-left: ${(props) => props.currency && '30px'};\n\n width: 100%;\n\n transition: 0.15s all;\n\n &:focus {\n border: 2px solid #0ea5e9;\n }\n\n &:focus + .suggestions-container {\n display: block;\n }\n`;\n\nexport const TextInput = React.forwardRef(\n (\n props: React.AllHTMLAttributes & {\n error?: string | null | false | true;\n currency?: boolean | false;\n },\n ref: React.Ref\n ) => (\n <>\n
\n {props.currency && (\n \n $\n \n )}\n \n {props.error && props.error !== true && {props.error}}\n
\n \n )\n);\n\nexport const CurrencyComponent = styled(NumericFormat)<{\n error?: string | null | false | true;\n currency?: boolean | false;\n}>`\n border: 0;\n outline: none;\n\n border-radius: 20px;\n border: ${(props) => (props.error ? '2px solid #d1344b' : '2px solid #e8e8e8')};\n box-sizing: border-box;\n font-family: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 1em;\n padding: 8px 16px;\n\n width: 100%;\n\n transition: 0.15s all;\n\n &:focus {\n border: 2px solid #0ea5e9;\n }\n\n &:focus + .suggestions-container {\n display: block;\n }\n`;\n\nexport const CurrencyInput = (\n props: React.AllHTMLAttributes & {\n error?: string | null | false | true;\n currency?: boolean | false;\n value?: string | number;\n onValueChange?: OnValueChange;\n style?: React.CSSProperties;\n }\n) => {\n return (\n
\n \n {props.error && props.error !== true && {props.error}}\n
\n );\n};\n\nconst SuggestionsContainer = styled.div`\n position: absolute;\n display: none;\n box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.25);\n box-sizing: border-box;\n border-radius: 8px;\n z-index: 100;\n background: white;\n font-size: 0.9em;\n\n &:hover {\n display: block;\n }\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n ul li {\n padding: 10px 20px;\n\n &:first-child {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n\n &:last-child {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n }\n\n &:hover {\n background: #0ea5e9;\n color: white;\n cursor: pointer;\n }\n }\n`;\n\nconst Suggestions = (props: {\n suggestions: string[];\n onSelect?: (suggestion: string, index: number) => void;\n}) => (\n \n
    \n {props.suggestions.map((s, i) => (\n
  • (props.onSelect ? props.onSelect(s, i) : null)}>\n {s}\n
  • \n ))}\n
\n
\n);\n\ninterface AutocompleteTextInputProps {\n suggestions: string[];\n id?: string;\n value?: string;\n error?: boolean;\n disabled?: boolean;\n onChange?: (value: string) => void;\n onSelectSuggestion?: (suggestion: string, index: number) => void;\n}\n\nexport const AutocompleteTextInput = (props: AutocompleteTextInputProps): JSX.Element => {\n const [selectedSuggestion, setSelectedSuggestion] = React.useState(false);\n return (\n
\n {\n setSelectedSuggestion(false);\n props.onChange?.(e.currentTarget.value);\n }}\n disabled={props.disabled}\n />\n {props.suggestions.length > 0 && !selectedSuggestion && (\n {\n setSelectedSuggestion(true);\n props.onSelectSuggestion?.(suggestion, index);\n }}\n />\n )}\n
\n );\n};\nexport const TextAreaInputComponent = styled.textarea<{ error?: string | null | false }>`\n border: 0;\n outline: none;\n\n border-radius: 20px;\n border: ${(props) => (props.error ? '2px solid #d1344b' : '2px solid #e8e8e8')};\n box-sizing: border-box;\n font-family: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 1em;\n padding: 12px 16px;\n\n width: 100%;\n\n transition: 0.15s all;\n\n &:focus {\n border: 2px solid #0ea5e9;\n }\n`;\n\nexport const TextAreaInput: React.FunctionComponent<\n React.AllHTMLAttributes & { error?: string | null | false }\n> = (props) => (\n <>\n \n {props.error && {props.error}}\n \n);\n","import * as React from 'react';\nimport { Button } from '@oysterjs/uiv2/button';\nimport { requestQRCodePdf } from '@oysterjs/core/api/merchant';\nimport { MerchantIntegration, QRCodeIntegrationSettings } from '@oysterjs/types';\nimport { ErrorDisplay } from '@oysterjs/ui/Form/text';\nimport { ChannelSetting, ChannelSettingsWrapper } from './settings';\nimport { ColorPicker } from '@oysterjs/ui/Color';\n\nexport const QRCodeSetup = (props: {\n onUpdateIntegration: (integration: MerchantIntegration) => Promise;\n integration?: MerchantIntegration;\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [err, setErr] = React.useState('');\n\n const onDownload = () => {\n setErr('');\n setLoading(true);\n requestQRCodePdf()\n .then((res) => {\n const binaryString = window.atob(res.DocumentZip);\n const binaryLen = binaryString.length;\n\n const arrayBuffer = new ArrayBuffer(binaryLen);\n const intArray = new Uint8Array(arrayBuffer);\n for (let i = 0; i < binaryLen; i++) {\n intArray[i] = binaryString.charCodeAt(i);\n }\n\n const blob = new Blob([arrayBuffer], { type: 'application/zip' });\n window.open(URL.createObjectURL(blob), '_self');\n })\n .catch(() => {\n setErr(\n 'Seems like something went wrong, please contact partners@withoyster.com to get your marketing kit!'\n );\n })\n .finally(() => setLoading(false));\n };\n\n return (\n <>\n {props.integration && (\n <>\n \n {err && {err}}\n \n {(settings: QRCodeIntegrationSettings, _, onUpdateSettings) => (\n \n onUpdateSettings({ ...settings, BrandColor: color })\n }\n />\n }\n />\n )}\n \n

Usage Tips

\n
    \n
  • Download the print the marketing kit
  • \n
  • Display the QR code flyer in your store near checkout
  • \n
  • Insert the QR code flyer in product packaging
  • \n
\n \n )}\n \n );\n};\n","import React from 'react';\nimport { Dialog, DialogBackdrop, DialogPanel, DialogTitle } from '@headlessui/react';\nimport { XMarkIcon } from '@heroicons/react/24/outline';\n\nexport const Slideout = (\n props: React.PropsWithChildren<{\n showing?: boolean;\n title: string;\n onClose: () => void;\n }>\n) => {\n return (\n \n \n\n
\n
\n
\n \n
\n
\n
\n \n {props.title}\n \n
\n \n \n Close panel\n \n \n
\n
\n
\n
{props.children}
\n
\n \n
\n
\n
\n
\n );\n};\n","import { Button, ButtonContainer } from '@oysterjs/ui/Button';\nimport { Switch } from '@oysterjs/ui/Form/switch';\nimport { TextAreaInput } from '@oysterjs/ui/Form/text';\nimport { VerticalLayout } from '@oysterjs/ui/VerticalLayout';\nimport config from '@oysterjs/core/config';\nimport { LSRetailRSeriesIntegrationSettings, MerchantIntegration } from '@oysterjs/types';\nimport { ChannelSetting, ChannelSettingsWrapper, Step } from './settings';\n\nexport const LightspeedRetailRSeriesSetup = (props: {\n integration?: MerchantIntegration;\n onUpdateIntegration: (integration: MerchantIntegration) => Promise;\n}) => {\n if (!props.integration) {\n const installUrl = `${config().backendBaseUrl.integrate}/lsretail-rseries/authorize`;\n return (\n <>\n

\n To start offering insurance for your products in your Lightspeed store, you need to\n install the{' '}\n \n Oyster app\n {' '}\n and link your store with your Oyster account.\n

\n \n \n Ensure that you are logged into the Lightspeed store you'd like to install the Oyster\n app in. Then,{' '}\n \n click here to install Oyster\n {' '}\n in your store.\n \n \n Oyster will ask for specific permissions to read product and order data. We will use\n this information to determine the insurance eligibility of products and customers and\n send post-purchase email offers to customers based on the eligiblity criteria you\n define.\n \n \n Configure which products and customers are eligible to receive insurance offers via\n email.\n \n \n \n );\n }\n\n return (\n \n {(settings: LSRetailRSeriesIntegrationSettings, loading, onUpdateSettings) => (\n <>\n \n onUpdateSettings({\n ...settings,\n EmailMarketingEnabled: !settings.EmailMarketingEnabled\n })\n }\n />\n }\n />\n {settings.EmailMarketingEnabled && (\n <>\n \n onUpdateSettings({\n ...settings,\n EmailMarketingRequiresOptIn: !settings.EmailMarketingRequiresOptIn\n })\n }\n />\n }\n />\n \n \n \n {\n const elem = document.querySelector(\n '#ls-retail-product-categories'\n );\n if (elem) {\n const categories = elem.value\n .split('\\n')\n .map((s) => s.trim())\n .filter((s) => s.length > 0);\n onUpdateSettings({\n ...settings,\n EmailMarketingCategoriesEnabled: categories.length > 0 ? categories : null\n });\n }\n }}\n >\n Save Categories\n \n \n \n \n )}\n \n )}\n \n );\n};\n","import React from 'react';\nimport { requestEmbeddablePage } from '@oysterjs/core/api/merchant';\nimport { Button } from '@oysterjs/uiv2/button';\nimport { ErrorDetail, ErrorDetails } from '@oysterjs/ui/ErrorBoundary';\nimport { MerchantIntegration } from '@oysterjs/types';\n\nexport const EmbeddablePageSetup = (props: {\n apiKey: string;\n integration?: MerchantIntegration;\n}) => {\n const [integration, setIntegration] = React.useState(props.integration);\n const [loading, setLoading] = React.useState(false);\n\n const onSetup = async () => {\n if (integration) {\n return;\n }\n\n setLoading(true);\n const empIntegration = await requestEmbeddablePage();\n setIntegration(empIntegration);\n setLoading(false);\n };\n\n const div = `
`;\n const script = `\n`;\n return (\n <>\n {!integration && (\n
\n

\n In just a few minutes, add a fully-managed page to your website that offers Oyster\n insurance to your customers. You'll receive credit for any referrals that originate from\n this page.\n

\n \n
\n \n
\n
\n )}\n {integration && (\n <>\n

\n First, create an empty page dedicated to Oyster in your store. On this page, add an HTML\n element to house the Oyster information.\n

\n \n \n \n

Then, paste this script.

\n \n \n \n

\n You're all set! The script takes care of everything else.\n

\n \n )}\n \n );\n};\n","import React from 'react';\nimport { ButtonLink } from '@oysterjs/ui/Button';\nimport { Switch } from '@oysterjs/ui/Form/switch';\nimport { VerticalLayout } from '@oysterjs/ui/VerticalLayout';\nimport config from '@oysterjs/core/config';\nimport {\n MerchantIntegration,\n MerchantIntegrationStatus,\n WooCommerceIntegrationSettings\n} from '@oysterjs/types';\nimport { ChannelSetting, ChannelSettingsWrapper, Step } from './settings';\nimport { Banner } from '@oysterjs/ui/Banner';\nimport { IoArrowForward, IoLockClosed, IoOpenOutline } from 'react-icons/io5';\nimport { ErrorDetail, ErrorDetails } from '@oysterjs/ui/ErrorBoundary';\nimport { TextInput } from '@oysterjs/ui/Form/text';\n\nexport const WooCommerceSetup = (props: {\n apiKey: string;\n integration?: MerchantIntegration;\n onUpdateIntegration: (integration: MerchantIntegration) => Promise;\n}) => {\n const [validInstallUrl, setValidInstallUrl] = React.useState('');\n const [storeUrl, setStoreUrl] = React.useState('');\n\n const updateInstallUrl = (url: string) => {\n setStoreUrl(url);\n\n try {\n const parsedUrl = new URL(url.trim());\n\n if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') {\n throw new Error();\n }\n\n if (!/^[a-zA-Z][^\\s]+\\.[^.\\s]+$/i.test(parsedUrl.hostname.trim())) {\n throw new Error();\n }\n\n parsedUrl.hash = '';\n parsedUrl.password = '';\n parsedUrl.pathname = '';\n parsedUrl.search = '';\n parsedUrl.username = '';\n\n const installUrl = new URL(config().backendBaseUrl.integrate + '/woocommerce/authorize');\n installUrl.search = new URLSearchParams({ store_url: parsedUrl.toString() }).toString();\n\n setValidInstallUrl(installUrl.toString());\n } catch (e) {\n setValidInstallUrl('');\n }\n };\n\n React.useEffect(() => {\n const params = new URLSearchParams(window.location.search);\n updateInstallUrl(params.get('store_url') || '');\n }, [window.location.search]);\n\n if (!props.integration || props.integration.Status === MerchantIntegrationStatus.pending) {\n return (\n <>\n

\n To start offering insurance for your products in your WooCommerce store, you need to\n authorize Oyster to access your store and install the Oyster WooCommerce plugin.\n

\n \n \n Ensure that you are logged into the WooCommerce store you'd like to install the Oyster\n app in. Then, enter your store URL here and click the button to authorize Oyster.\n
\n
\n updateInstallUrl(e.currentTarget.value)}\n style={{ maxWidth: '100%' }}\n />\n
\n
\n }\n icon={}\n primary\n disabled={!validInstallUrl}\n href={validInstallUrl}\n >\n Authorize\n \n
\n
\n
\n \n Oyster will ask for specific permissions to read product and order data. We will use\n this information to determine the insurance eligibility of products and customers and\n send customers who opted in their insurance information.\n \n \n Follow the instructions to install the Oyster WooCommerce plugin so that your customers\n can add insurance when they check out.\n \n
\n \n );\n }\n\n return (\n <>\n {props.integration.Status === MerchantIntegrationStatus.inactive && (\n }\n primary\n >\n Continue Setup\n \n }\n />\n )}\n
\n
\n \n \n \n \n \n \n
\n \n {(settings: WooCommerceIntegrationSettings, loading, onUpdateSettings) => (\n <>\n \n onUpdateSettings({\n ...settings,\n ProductPageWidgetEnabled: !settings.ProductPageWidgetEnabled\n })\n }\n />\n }\n />\n \n )}\n \n
\n \n );\n};\n","import * as React from 'react';\n\nimport { Button } from '@oysterjs/uiv2/button';\nimport {\n MerchantIntegration,\n MerchantIntegrationStatus,\n MerchantRentalConfiguration,\n RentalPolicyState\n} from '@oysterjs/types';\nimport { ErrorDetail, ErrorDetails } from '@oysterjs/ui/ErrorBoundary';\nimport config from '@oysterjs/core/config';\nimport { getMerchantRentalConfiguration, requestCheckfront } from '@oysterjs/core/api/merchant';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport { useHistory } from 'react-router';\n\nexport const CheckfrontSetup = (props: {\n integration?: MerchantIntegration;\n onUpdateIntegration: (integration: MerchantIntegration) => Promise;\n publicHandle: string;\n}) => {\n const history = useHistory();\n const [integration, setIntegration] = React.useState(props.integration);\n const [loading, setLoading] = React.useState(false);\n const [configuration, setConfiguration] = React.useState();\n\n const onFetchConfigurationData = async () => {\n setLoading(true);\n try {\n const config = await getMerchantRentalConfiguration();\n setConfiguration(config.Configuration);\n } finally {\n setLoading(false);\n }\n };\n\n React.useEffect(() => {\n onFetchConfigurationData();\n }, []);\n\n const onSetup = async () => {\n if (integration) {\n return;\n }\n\n setLoading(true);\n try {\n const checkfrontIntegration = await requestCheckfront();\n setIntegration(checkfrontIntegration);\n } finally {\n setLoading(false);\n }\n };\n\n const onClickRentalApp = () => {\n history.push('/integrations/channels/rental');\n };\n\n const notificationURL = `${config().serviceBaseUrl.webhooks}/checkfront/${props.publicHandle}`;\n\n return (\n <>\n {loading && }\n {!loading &&\n (!configuration || configuration?.Details.State !== RentalPolicyState.approved) && (\n
\n

\n Before you can integrate with Checkfront, please finish setting up your rental\n configuration. You can do so by going back and setting up Rental Insurance. You\n can also click the button below to link you there.\n

\n \n
\n )}\n {!loading &&\n !integration &&\n configuration &&\n configuration?.Details.State === RentalPolicyState.approved && (\n
\n

\n In just a few minutes, add an integration that offers Oyster rental insurance to your\n customers on you Checkfront account.\n

\n \n
\n )}\n {!loading &&\n integration &&\n integration.Status != MerchantIntegrationStatus.active &&\n configuration &&\n configuration?.Details.State === RentalPolicyState.approved && (\n <>\n

\n To start offering insurance for bookings in your Checkfront store, you need to set up\n a webhook in your Checkfront Account with Oyster.\n

\n

\n Do so by going to Manage > Developer > Webhooks. Click{' '}\n + Add Webhook and enter the following values:\n

\n \n \n \n \n \n )}\n {!loading &&\n integration &&\n integration.Status == MerchantIntegrationStatus.active &&\n configuration &&\n configuration?.Details.State === RentalPolicyState.approved && (\n

\n Your Checkfront account is all set up! Please contact{' '}\n \n partners@withoyster.com\n {' '}\n if you would like to remove this integration.\n

\n )}\n \n );\n};\n","import React from 'react';\n\nexport const useWindowScrollPosition = (): {\n scrollPosX: number;\n scrollPosY: number;\n} => {\n const [scrollPosX, setScrollPosX] = React.useState(window.scrollX);\n const [scrollPosY, setScrollPosY] = React.useState(window.scrollY);\n\n React.useEffect(() => {\n const onscroll = () => {\n setScrollPosX(window.scrollX);\n setScrollPosY(window.scrollY);\n };\n\n window.addEventListener('scroll', onscroll);\n return () => window.removeEventListener('scroll', onscroll);\n }, [setScrollPosX, setScrollPosY]);\n\n return { scrollPosX, scrollPosY };\n};\n\nexport const useWindowDimensions = (): {\n innerWidth: number;\n innerHeight: number;\n} => {\n const [innerWidth, setInnerWidth] = React.useState(window.innerWidth);\n const [innerHeight, setInnerHeight] = React.useState(window.innerHeight);\n\n React.useEffect(() => {\n const onresize = () => {\n setInnerWidth(window.innerWidth);\n setInnerHeight(window.innerHeight);\n };\n\n window.addEventListener('resize', onresize);\n return () => window.removeEventListener('resize', onresize);\n }, [setInnerWidth, setInnerHeight]);\n\n return { innerWidth, innerHeight };\n};\n\nexport const openPageInNewTab = (url: string): Window | null => {\n return window.open(url, '_blank');\n};\n\nexport const openAsyncPageInNewTab = (\n urlPromise: Promise\n): Window | null => {\n // First open an empty tab synchronously\n const w = openPageInNewTab('');\n if (w != null) {\n // Resolve location when promise is finished\n urlPromise.then((url) => {\n // If the URL is resolved correctly, set the location, otherwise close the window\n if (url) {\n w.location = url;\n } else {\n w.close();\n }\n });\n }\n\n return w;\n};\n","import { Merchant, MerchantRentalConfiguration, RentalPolicyState } from '@oysterjs/types';\nimport { Button } from '@oysterjs/uiv2/button';\nimport config from '@oysterjs/core/config';\nimport { openPageInNewTab } from '@oysterjs/core/window';\nimport { getUser } from '@oysterjs/core/auth';\n\nexport const MerchantRentalSetup = (props: {\n merchant?: Merchant;\n configuration?: MerchantRentalConfiguration;\n onContinueToRental: () => void;\n}) => {\n const getDescription = (): JSX.Element => {\n if (!props.configuration) {\n return (\n <>\n

\n Offering theft and damage waivers for your rental customers is a simple process. Here's\n how it works:\n

\n
    \n
  • Oyster will issue your business an insurance policy at no cost.
  • \n
  • \n Before completing a rental transaction, you can offer customers the option to purchase\n a waiver.\n
  • \n
  • If a covered loss occurs, you can file a claim and get reimbursed.
  • \n
  • You earn additional revenue for each waiver your customers purchase.
  • \n
\n \n );\n }\n\n switch (props.configuration?.Details.State) {\n case RentalPolicyState.registered:\n return (\n

\n Your policy application has been received. We will follow up with you after it has been\n processed.\n

\n );\n case RentalPolicyState.submitted:\n return (\n

\n Our team is reviewing your information and will be in touch soon. If you have any\n questions, please feel free to contact us.\n

\n );\n case RentalPolicyState.approved:\n return (\n

\n Your application has been approved! Click on the button below to use the rental app.\n

\n );\n case RentalPolicyState.approved_blanket:\n return (\n

\n Your application has been approved! Click on the button below to use the rental app and\n submit claims.\n

\n );\n case RentalPolicyState.denied:\n return (\n

\n Your policy application has been denied. Please contact us to troubleshoot.\n

\n );\n default:\n throw new Error('Unknown rental configuration state.');\n }\n };\n\n const merchantUser = getUser();\n\n const onApply = () => {\n const params = new URLSearchParams();\n params.set('id', props.merchant?.ID || '');\n params.set('email', props.merchant?.BusinessProfile.Email || '');\n params.set('phone', props.merchant?.BusinessProfile.Phone || '');\n params.set('domain', props.merchant?.BusinessProfile.Domain || '');\n\n params.set('fn', merchantUser?.FirstName || '');\n params.set('ln', merchantUser?.LastName || '');\n\n const merchantAddress = props.merchant?.BusinessProfile.Address;\n params.set('a1', merchantAddress?.AddressLine1 || '');\n if (merchantAddress?.AddressLine2) {\n params.set('a2', props.merchant?.BusinessProfile.Address.AddressLine2 || '');\n }\n params.set('c', merchantAddress?.City || '');\n params.set('s', merchantAddress?.Zone || '');\n params.set('z', merchantAddress?.PostalCode || '');\n\n let filloutFormId = 'nothing';\n switch (config().environment) {\n case 'local':\n filloutFormId = 'x7BhnjHjbJus';\n break;\n case 'staging':\n filloutFormId = '3Wbim9bv9Zus';\n break;\n case 'dev':\n filloutFormId = 'bPBWYEm25kus';\n break;\n case 'production':\n // On production, the fillout form is embedded in our website\n openPageInNewTab(`http://www.withoyster.com/rental-insurance-app?${params.toString()}`);\n return;\n default:\n throw new Error('Invalid environment.');\n }\n\n openPageInNewTab(`https://form.fillout.com/t/${filloutFormId}?${params.toString()}`);\n };\n\n return (\n <>\n {getDescription()}\n {!props.configuration && (\n \n )}\n {props.configuration &&\n (props.configuration.Details.State === RentalPolicyState.approved ||\n props.configuration.Details.State === RentalPolicyState.approved_blanket) && (\n \n )}\n \n );\n};\n","import * as React from 'react';\nimport clsx from 'clsx';\n\nimport {\n Merchant,\n MerchantIntegration,\n MerchantIntegrationStatus,\n MerchantIntegrationType,\n MerchantRentalConfiguration,\n RentalPolicyState\n} from '@oysterjs/types';\nimport { useHistory, useLocation } from 'react-router';\nimport { ShopifySetup } from '../../setups/shopify';\nimport { ReferralLinkSetup } from '../../setups/referralLink';\nimport { QRCodeSetup } from '../../setups/qrCode';\nimport { Slideout } from '@oysterjs/uiv2/slideout';\nimport { LightspeedRetailRSeriesSetup } from '../../setups/lightspeedRetailRSeries';\nimport { EmbeddablePageSetup } from '../../setups/embeddedMarketingPage';\nimport { WooCommerceSetup } from '../../setups/woocommerce';\nimport { CheckfrontSetup } from '../../setups/checkfront';\nimport {\n BookmarkIcon,\n BuildingStorefrontIcon,\n LinkIcon,\n QrCodeIcon\n} from '@heroicons/react/20/solid';\nimport { DocumentCheckIcon } from '@heroicons/react/24/outline';\nimport { ErrorBoundaryV2 } from '@oysterjs/ui/ErrorBoundary';\nimport { MerchantRentalSetup } from '../../setups/rental';\n\nconst productInsuranceChannels: MerchantIntegrationType[] = [\n MerchantIntegrationType.referral_link,\n MerchantIntegrationType.qr_code,\n MerchantIntegrationType.embeddable_marketing_page,\n MerchantIntegrationType.shopify,\n MerchantIntegrationType.lsretail_rseries,\n MerchantIntegrationType.woocommerce\n];\n\nconst rentalInsuranceChannels: MerchantIntegrationType[] = [MerchantIntegrationType.checkfront];\n\nconst getChannelLabel = (type: MerchantIntegrationType) => {\n switch (type) {\n case MerchantIntegrationType.shopify:\n return 'Shopify';\n case MerchantIntegrationType.lsretail_rseries:\n return 'Lightspeed';\n case MerchantIntegrationType.woocommerce:\n return 'WooCommerce';\n case MerchantIntegrationType.checkfront:\n return 'Checkfront';\n case MerchantIntegrationType.qr_code:\n return 'Marketing Kit';\n case MerchantIntegrationType.referral_link:\n return 'Referral Link';\n case MerchantIntegrationType.embeddable_marketing_page:\n return 'Marketing Page';\n case MerchantIntegrationType.custom:\n return 'Other';\n default:\n return '';\n }\n};\n\nconst getChannelDescription = (type: MerchantIntegrationType) => {\n switch (type) {\n case MerchantIntegrationType.shopify:\n return 'Configure the Oyster Shopify app to offer customers peace-of-mind.';\n case MerchantIntegrationType.lsretail_rseries:\n return 'Configure the Oyster Lightspeed app to offer customers peace-of-mind.';\n case MerchantIntegrationType.woocommerce:\n return 'Configure the Oyster WooCommerce plugin to offer customers peace-of-mind.';\n case MerchantIntegrationType.qr_code:\n return 'Print out, display, or mail physical insurance offers to your customers.';\n case MerchantIntegrationType.referral_link:\n return 'Offer customers insurance anywhere with your own landing page.';\n case MerchantIntegrationType.embeddable_marketing_page:\n return 'Embed Oyster insurance information on a page on your website.';\n case MerchantIntegrationType.checkfront:\n return 'Configure the Oyster CheckFront app to offer customers peace-of-mind.';\n case MerchantIntegrationType.custom:\n return 'I use a different online sales platform.';\n default:\n return '';\n }\n};\n\nconst getChannelImage = (type: MerchantIntegrationType) => {\n switch (type) {\n case MerchantIntegrationType.shopify:\n return ;\n case MerchantIntegrationType.lsretail_rseries:\n return ;\n case MerchantIntegrationType.woocommerce:\n return ;\n case MerchantIntegrationType.checkfront:\n return ;\n case MerchantIntegrationType.qr_code:\n return ;\n case MerchantIntegrationType.referral_link:\n return ;\n case MerchantIntegrationType.embeddable_marketing_page:\n return ;\n case MerchantIntegrationType.custom:\n return ;\n default:\n return <>;\n }\n};\n\nconst getChannelPath = (type: MerchantIntegrationType) => {\n switch (type) {\n case MerchantIntegrationType.shopify:\n return '/integrations/channels/shopify';\n case MerchantIntegrationType.lsretail_rseries:\n return '/integrations/channels/lsretail-rseries';\n case MerchantIntegrationType.woocommerce:\n return '/integrations/channels/woocommerce';\n case MerchantIntegrationType.qr_code:\n return '/integrations/channels/qrcode';\n case MerchantIntegrationType.referral_link:\n return '/integrations/channels/referral';\n case MerchantIntegrationType.embeddable_marketing_page:\n return '/integrations/channels/embeddable-page';\n case MerchantIntegrationType.checkfront:\n return '/integrations/channels/checkfront';\n default:\n return '/integrations/channels';\n }\n};\n\nconst getBadgeColor = (status: MerchantIntegrationStatus): string => {\n switch (status) {\n case MerchantIntegrationStatus.active:\n return 'bg-green-50 text-green-700 ring-green-600/20';\n case MerchantIntegrationStatus.pending:\n return 'bg-amber-50 text-amber-700 ring-amber-600/20';\n case MerchantIntegrationStatus.disabled:\n return 'bg-red-50 text-red-700 ring-red-600/20';\n case MerchantIntegrationStatus.inactive:\n return 'bg-neutral-50 text-neutral-700 ring-neutral-600/20';\n }\n};\n\nconst getRentalConfigurationStatus = (configuration?: MerchantRentalConfiguration) => {\n switch (configuration?.Details.State) {\n case RentalPolicyState.submitted:\n case RentalPolicyState.registered:\n return MerchantIntegrationStatus.pending;\n case RentalPolicyState.approved:\n case RentalPolicyState.approved_blanket:\n return MerchantIntegrationStatus.active;\n }\n};\n\nconst ChannelBadge = (props: { status?: MerchantIntegrationStatus }) => (\n \n {props.status || 'Not added'}\n \n);\n\nexport const ChannelCard = (props: {\n type: MerchantIntegrationType;\n status?: MerchantIntegrationStatus;\n}) => {\n const history = useHistory();\n return (\n history.push(getChannelPath(props.type))}\n />\n );\n};\n\nconst Card = (props: {\n label: string;\n status?: MerchantIntegrationStatus;\n description: string;\n image: React.JSX.Element;\n onClick?: () => void;\n}) => (\n \n
\n
\n
\n

{props.label}

\n \n
\n

{props.description}

\n
\n {props.image}\n
\n \n);\n\ninterface ChannelSlideoutContentProps {\n title: string;\n description: string;\n integrationStatus?: MerchantIntegrationStatus;\n}\n\nconst ChannelSlideoutContent = (props: React.PropsWithChildren) => (\n <>\n
\n

{props.title}

\n \n
\n

{props.description}

\n
{props.children}
\n \n);\n\nexport const ChannelsListPage = (props: {\n apiKey: string;\n merchant: Merchant;\n merchantIntegrations: MerchantIntegration[];\n rentalConfiguration?: MerchantRentalConfiguration;\n onUpdateIntegration: (integration: MerchantIntegration) => Promise;\n}) => {\n const history = useHistory();\n const location = useLocation();\n\n const onClickRental = () => {\n if (props.rentalConfiguration?.Details.State === RentalPolicyState.approved) {\n history.push('/rental');\n }\n\n history.push('/integrations/channels/rental');\n };\n\n const integrationByType = (type: MerchantIntegrationType): MerchantIntegration | undefined => {\n return props.merchantIntegrations?.find((i) => i.Type === type);\n };\n\n return (\n
\n
\n

Product Insurance

\n

\n Configure the channels you use and offer insurance to your customers through them.\n

\n
\n
    \n {props.merchantIntegrations.map(\n (integration) =>\n productInsuranceChannels.includes(integration.Type) && (\n \n )\n )}\n {productInsuranceChannels\n .filter((integration) => {\n return props.merchantIntegrations.every(\n (merchantIntegration) => merchantIntegration.Type != integration\n );\n })\n .map((integration) => (\n \n ))}\n
\n\n
\n

Rental Insurance

\n

\n Configure the channels you use and offer rental waivers to your customers through them.\n

\n
\n
    \n }\n onClick={onClickRental}\n />\n {props.merchantIntegrations.map(\n (integration) =>\n rentalInsuranceChannels.includes(integration.Type) && (\n \n )\n )}\n {rentalInsuranceChannels\n .filter((integration) => {\n return props.merchantIntegrations.every(\n (merchantIntegration) => merchantIntegration.Type != integration\n );\n })\n .map((integration) => (\n \n ))}\n
\n history.replace('/integrations/channels')}\n >\n i.Type === MerchantIntegrationType.woocommerce)\n ?.Status\n }\n >\n \n \n \n history.replace('/integrations/channels')}\n >\n i.Type === MerchantIntegrationType.lsretail_rseries\n )?.Status\n }\n >\n \n \n \n history.replace('/integrations/channels')}\n >\n \n \n \n \n history.replace('/integrations/channels')}\n >\n \n i.Type === MerchantIntegrationType.shopify\n )}\n onUpdateIntegration={props.onUpdateIntegration}\n >\n \n \n history.replace('/integrations/channels')}\n >\n i.Type === MerchantIntegrationType.referral_link\n )?.Status\n }\n >\n \n \n \n history.replace('/integrations/channels')}\n >\n \n \n \n \n history.replace('/integrations/channels')}\n >\n \n \n \n \n history.replace('/integrations/channels')}\n >\n \n \n history.replace('/rental')}\n />\n \n \n \n
\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport { Redirect, Route, Switch, useHistory, useRouteMatch } from 'react-router';\nimport { NavLink } from 'react-router-dom';\ninterface PageNavigationRoute {\n path: string;\n title: string;\n count?: number;\n exact?: boolean;\n absolute?: boolean;\n render: () => JSX.Element;\n}\n\ninterface PageNavigationProps {\n routes: PageNavigationRoute[];\n redirect?: Record;\n}\n\nexport const PageNavigation = (props: React.PropsWithChildren) => {\n const { url, path } = useRouteMatch();\n const history = useHistory();\n const concatPath = (base: string, relative: string) =>\n `${base.replace(/\\/+$/, '')}/${relative.replace(/\\/+$/, '').replace(/^\\/+/, '')}`;\n\n return (\n
\n
\n \n window.location.pathname.includes(concatPath(url, tab.path)))\n ?.path\n }\n onChange={(e) => history.push(concatPath(url, e.currentTarget.value))}\n className=\"block w-full rounded-md border-neutral-300 py-2 pl-3 pr-10 text-base focus:border-primary-500 focus:outline-none focus:ring-primary-500 sm:text-sm\"\n >\n {props.routes.map((tab) => (\n \n ))}\n \n
\n
\n
\n \n
\n
\n
\n \n {props.routes.map((route) => (\n \n ))}\n {Object.entries(props.redirect || {}).map(([from, to]) => (\n \n ))}\n \n
\n
\n );\n};\n","import * as Headless from '@headlessui/react';\nimport clsx from 'clsx';\nimport React, { forwardRef } from 'react';\n\nexport const Select = forwardRef(function Select(\n {\n className,\n multiple,\n ...props\n }: { className?: string } & Omit,\n ref: React.ForwardedRef\n) {\n return (\n \n \n {/* {!multiple && (\n \n \n \n \n \n \n )} */}\n \n );\n});\n","import styled from 'styled-components';\n\nexport const Table = styled.table`\n border-collapse: collapse;\n width: 100%;\n margin: 20px 0px;\n\n tr td,\n tr th {\n padding: 16px 16px;\n vertical-align: top;\n vertical-align: middle;\n border-bottom: 1px solid #f2f2f2;\n\n :first-child {\n padding-left: 0px;\n }\n\n :last-child {\n padding-right: 0px;\n vertical-align: middle;\n }\n }\n\n thead tr td,\n thead tr th {\n padding: 8px 16px;\n font-weight: 600;\n font-size: 0.85em;\n color: #666666;\n border-bottom: 3px solid #eaeaea;\n }\n\n tbody tr {\n td.labeled {\n div:last-child {\n color: #999999;\n font-size: 0.85em;\n margin-top: 5px;\n }\n }\n }\n\n @media (max-width: 600px) {\n thead tr td {\n padding: 8px 8px;\n }\n\n tr td {\n padding: 16px 8px;\n }\n }\n`;\n","import * as Headless from '@headlessui/react';\nimport clsx from 'clsx';\nimport React from 'react';\n\nexport function Fieldset({\n className,\n ...props\n}: { className?: string } & Omit) {\n return (\n *+[data-slot=control]]:mt-6 [&>[data-slot=text]]:mt-1')}\n />\n );\n}\n\nexport function Legend({\n className,\n ...props\n}: { className?: string } & Omit) {\n return (\n \n );\n}\n\nexport function FieldGroup({ className, ...props }: React.ComponentPropsWithoutRef<'div'>) {\n return
;\n}\n\nexport function Field({\n className,\n ...props\n}: { className?: string } & Omit) {\n return (\n [data-slot=label]+[data-slot=control]]:mt-2',\n '[&>[data-slot=label]+[data-slot=description]]:mt-1',\n '[&>[data-slot=description]+[data-slot=control]]:mt-2',\n '[&>[data-slot=control]+[data-slot=description]]:mt-2',\n '[&>[data-slot=control]+[data-slot=error]]:mt-2',\n '[&>[data-slot=label]]:font-medium'\n )}\n />\n );\n}\n\nexport function Label({\n className,\n ...props\n}: { className?: string } & Omit) {\n return (\n \n );\n}\n\nexport function Description({\n className,\n ...props\n}: { className?: string } & Omit) {\n return (\n \n );\n}\n\nexport function ErrorMessage({\n className,\n ...props\n}: { className?: string } & Omit) {\n return (\n \n );\n}\n","import * as React from 'react';\n\nimport { Select } from '@oysterjs/uiv2/select';\nimport { getMerchantReferrals, getMerchantTransactions } from '@oysterjs/core/api/merchant';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport { PolicyTableValues, TransactionType } from '@oysterjs/types';\nimport { Table } from '@oysterjs/ui/Table';\nimport { Description, Field, FieldGroup, Fieldset, Label } from '@oysterjs/uiv2/fieldset';\n\nconst monthList = [\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 ReferralItem = (props: { referral: PolicyTableValues }) => {\n const item = props.referral.InsuredItems[0];\n return (\n \n {new Intl.DateTimeFormat('en-US').format(new Date(props.referral.CreatedAt))}\n {item.Name}\n \n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'usd',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(item.Price.Amount)}\n \n \n );\n};\n\nconst AsyncMerchantReferrals = (props: { startDate: Date; endDate: Date }) => (\n \n {([referrals, transactions]) => {\n const payouts = transactions.Transactions?.filter((t) => t.Type === TransactionType.credit);\n if (referrals.Referrals.length == 0)\n return (\n
\n \n \n \n \n \n \n \n

No data

\n

\n There were no referrals eligible for payout in this month.\n

\n
\n );\n else\n return (\n <>\n \n \n \n \n \n \n \n \n \n {referrals.Referrals.map((referral) => (\n \n ))}\n \n
DateItemValue
\n {payouts && payouts.length > 0 && (\n \n \n \n \n \n \n \n \n \n \n {payouts.map((payout) => (\n \n \n \n \n \n \n ))}\n \n
DateTransaction IDAmountStatus
{new Date(payout.CreatedAt).toLocaleDateString()}{payout.ProcessorID || 'TBD'}\n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: payout.Currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(payout.Amount)}\n {payout.State}
\n )}\n \n );\n }}\n \n);\nconst getMonthsDate = (today: Date) =>\n [0, 1, 2, 3, 4, 5, 6].map((diff) => ({\n start: Date.UTC(today.getUTCFullYear(), today.getUTCMonth() - diff, 1, 0, 0, 0, 0),\n end: Date.UTC(today.getUTCFullYear(), today.getUTCMonth() + 1 - diff, 1, 0, 0, 0, 0)\n }));\n\nconst getMonthName = (date: Date): string => monthList[date.getUTCMonth()];\n\nexport const ReferralsPage = () => {\n const monthOptions = getMonthsDate(new Date()).map(({ start, end }, i) => ({\n index: i.toString(),\n title: `${getMonthName(new Date(start))} ${new Date(start).getUTCFullYear()}`,\n start,\n end\n }));\n\n const [month, setMonth] = React.useState(monthOptions[0]);\n\n return (\n <>\n
e.preventDefault()}>\n
\n \n \n \n Select the month of data you want to explore.\n {\n setMonth(monthOptions[parseInt(e.currentTarget.value)]);\n }}\n >\n {monthOptions.map((opt) => (\n \n ))}\n \n \n \n
\n
\n \n \n );\n};\n","import { Address, MercuryPaymentTypes, PaymentMethodType } from '@oysterjs/types';\nimport { Get, Post } from './base';\n\nexport const setMerchantPayment = (data: {\n PublicToken: string;\n PaymentType: MercuryPaymentTypes;\n Address?: Partial
;\n}) => Post('/merchant/payment', data);\n\nexport const getMerchantPayment = () =>\n Get<{ Address: Address; PaymentType: PaymentMethodType; MercuryRecipientID: string }>(\n '/merchant/payment'\n );\n\nexport const connectToPlaid = () => Get<{ LinkToken: string }>('/merchant/plaid');\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nconst BadgeContainer = styled.div<{ color: string }>`\n display: flex;\n gap: 5px;\n justify-content: center;\n align-items: center;\n border-radius: 20px;\n padding: 4px 12px;\n background: ${(props) => props.color};\n box-sizing: border-box;\n font-size: 0.75em;\n font-weight: 500;\n color: #333333;\n`;\n\nexport const Badge = (\n props: React.PropsWithChildren<{\n icon?: JSX.Element;\n label: string;\n color: string;\n textColor?: string;\n display?: string;\n }>\n) => (\n
\n \n {props.icon && (\n
\n {props.icon}\n
\n )}\n
{props.label}
\n
\n
\n);\n","import * as Headless from '@headlessui/react';\nimport clsx from 'clsx';\nimport React, { forwardRef, useState } from 'react';\n\nexport function InputGroup({ children }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n [data-slot=icon]]:pointer-events-none [&>[data-slot=icon]]:absolute [&>[data-slot=icon]]:top-3 [&>[data-slot=icon]]:z-10 [&>[data-slot=icon]]:size-5 sm:[&>[data-slot=icon]]:top-2.5 sm:[&>[data-slot=icon]]:size-4',\n '[&>[data-slot=icon]:first-child]:left-3 sm:[&>[data-slot=icon]:first-child]:left-2.5 [&>[data-slot=icon]:last-child]:right-3 sm:[&>[data-slot=icon]:last-child]:right-2.5',\n '[&>[data-slot=icon]]:text-neutral-500 dark:[&>[data-slot=icon]]:text-neutral-400'\n )}\n >\n {children}\n \n );\n}\n\nconst dateTypes = ['date', 'datetime-local', 'month', 'time', 'week'];\ntype DateType = (typeof dateTypes)[number];\n\nexport const Input = forwardRef(function Input(\n {\n className,\n ...props\n }: {\n className?: string;\n type?: 'email' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url' | DateType;\n } & Omit,\n ref: React.ForwardedRef\n) {\n return (\n \n \n \n );\n});\n\nexport const CurrencyInput = forwardRef(function CurrenctInput(\n {\n className,\n onChange,\n ...props\n }: {\n className?: string;\n onChange?: (val: number) => void;\n } & Omit,\n ref: React.ForwardedRef\n) {\n const [value, setValue] = useState();\n const [displayValue, setDisplayValue] = useState(props.value?.toString() || '');\n\n const formatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n });\n\n const parsedValue = parseFloat(props.value?.toString() || '');\n\n React.useEffect(() => {\n const value = parseFloat(props.value?.toString() || '');\n if (!isNaN(value)) {\n // Set the actual numeric value\n setValue(value);\n\n // Set the display value\n setDisplayValue(formatter.format(value));\n }\n }, [props.value]);\n\n return (\n \n {\n setDisplayValue(e.currentTarget.value);\n setValue(parseFloat(e.currentTarget.value.replace(/[^0-9.]/g, '')));\n }}\n onBlur={() => {\n if (value !== undefined && !isNaN(value)) {\n setDisplayValue(formatter.format(value));\n onChange?.(value);\n } else {\n if (!isNaN(parsedValue)) {\n setDisplayValue(formatter.format(parsedValue));\n }\n onChange?.(NaN);\n }\n }}\n className={clsx([\n // Basic layout\n 'relative block w-full appearance-none rounded-lg px-[calc(theme(spacing[3.5])-1px)] py-[calc(theme(spacing[2.5])-1px)] sm:px-[calc(theme(spacing[3])-1px)] sm:py-[calc(theme(spacing[1.5])-1px)]',\n // Typography\n 'text-base/6 text-neutral-950 placeholder:text-neutral-400 sm:text-sm/6 dark:text-white',\n // Border\n 'border border-neutral-950/10 data-[hover]:border-neutral-950/20 dark:border-white/10 dark:data-[hover]:border-white/20',\n // Background color\n 'bg-transparent dark:bg-white/5',\n // Hide default focus styles\n 'focus:outline-none focus:ring-0',\n // Invalid state\n 'data-[invalid]:border-red-500 data-[invalid]:data-[hover]:border-red-500 data-[invalid]:dark:border-red-500 data-[invalid]:data-[hover]:dark:border-red-500',\n // Disabled state\n 'data-[disabled]:border-neutral-950/20 dark:data-[hover]:data-[disabled]:border-white/15 data-[disabled]:dark:border-white/15 data-[disabled]:dark:bg-white/[2.5%]',\n // System icons\n 'dark:[color-scheme:dark]'\n ])}\n />\n \n );\n});\n\nexport const PercentageInput = forwardRef(function PercentageInput(\n {\n className,\n onChange,\n ...props\n }: {\n className?: string;\n onChange?: (val: number) => void;\n } & Omit,\n ref: React.ForwardedRef\n) {\n const [value, setValue] = useState();\n const [displayValue, setDisplayValue] = useState(props.value?.toString() || '');\n\n const formatter = new Intl.NumberFormat('en-US', {\n style: 'percent',\n minimumFractionDigits: 0,\n maximumFractionDigits: 2\n });\n\n const parsedValue = parseFloat(props.value?.toString() || '');\n\n React.useEffect(() => {\n const value = parseFloat(props.value?.toString() || '');\n if (!isNaN(value)) {\n // Set the actual numeric value\n setValue(value);\n\n // Set the display value\n setDisplayValue(formatter.format(value));\n }\n }, [props.value]);\n\n return (\n \n {\n setDisplayValue(e.currentTarget.value);\n\n // Percentages are a special case. If the value ends with %, not only do we have to remove it,\n // we also need to divide the value by 100 to get the actual numeric value.\n setValue(parseFloat(e.currentTarget.value.replace(/[^0-9.]/g, '')) / 100);\n }}\n onBlur={() => {\n if (value !== undefined && !isNaN(value)) {\n setDisplayValue(formatter.format(value));\n onChange?.(value);\n } else {\n if (!isNaN(parsedValue)) {\n setDisplayValue(formatter.format(parsedValue));\n }\n onChange?.(NaN);\n }\n }}\n className={clsx([\n // Basic layout\n 'relative block w-full appearance-none rounded-lg px-[calc(theme(spacing[3.5])-1px)] py-[calc(theme(spacing[2.5])-1px)] sm:px-[calc(theme(spacing[3])-1px)] sm:py-[calc(theme(spacing[1.5])-1px)]',\n // Typography\n 'text-base/6 text-neutral-950 placeholder:text-neutral-400 sm:text-sm/6 dark:text-white',\n // Border\n 'border border-neutral-950/10 data-[hover]:border-neutral-950/20 dark:border-white/10 dark:data-[hover]:border-white/20',\n // Background color\n 'bg-transparent dark:bg-white/5',\n // Hide default focus styles\n 'focus:outline-none focus:ring-0',\n // Invalid state\n 'data-[invalid]:border-red-500 data-[invalid]:data-[hover]:border-red-500 data-[invalid]:dark:border-red-500 data-[invalid]:data-[hover]:dark:border-red-500',\n // Disabled state\n 'data-[disabled]:border-neutral-950/20 dark:data-[hover]:data-[disabled]:border-white/15 data-[disabled]:dark:border-white/15 data-[disabled]:dark:bg-white/[2.5%]',\n // System icons\n 'dark:[color-scheme:dark]'\n ])}\n />\n \n );\n});\n","import * as Headless from '@headlessui/react';\nimport clsx from 'clsx';\nimport React, { forwardRef } from 'react';\n\nexport const Textarea = forwardRef(function Textarea(\n {\n className,\n resizable = true,\n ...props\n }: { className?: string; resizable?: boolean } & Omit,\n ref: React.ForwardedRef\n) {\n return (\n \n \n \n );\n});\n","import * as Headless from '@headlessui/react';\nimport clsx from 'clsx';\nimport React from 'react';\n\nexport function CheckboxGroup({ className, ...props }: React.ComponentPropsWithoutRef<'div'>) {\n return (\n \n );\n}\n\nexport function CheckboxField({\n className,\n ...props\n}: { className?: string } & Omit) {\n return (\n [data-slot=control]]:col-start-1 [&>[data-slot=control]]:row-start-1 [&>[data-slot=control]]:justify-self-center',\n // Label layout\n '[&>[data-slot=label]]:col-start-2 [&>[data-slot=label]]:row-start-1 [&>[data-slot=label]]:justify-self-start',\n // Description layout\n '[&>[data-slot=description]]:col-start-2 [&>[data-slot=description]]:row-start-2',\n // With description\n '[&_[data-slot=label]]:has-[[data-slot=description]]:font-medium'\n )}\n />\n );\n}\n\nconst base = [\n // Basic layout\n 'relative isolate flex size-[1.125rem] items-center justify-center rounded-[0.3125rem] sm:size-4',\n // Background color + shadow applied to inset pseudo element, so shadow blends with border in light mode\n 'before:absolute before:inset-0 before:-z-10 before:rounded-[calc(0.3125rem-1px)] before:bg-white before:shadow',\n // Background color when checked\n 'before:group-data-[checked]:bg-[--checkbox-checked-bg]',\n // Background color is moved to control and shadow is removed in dark mode so hide `before` pseudo\n 'dark:before:hidden',\n // Background color applied to control in dark mode\n 'dark:bg-white/5 dark:group-data-[checked]:bg-[--checkbox-checked-bg]',\n // Border\n 'border border-zinc-950/15 group-data-[checked]:border-transparent group-data-[checked]:group-data-[hover]:border-transparent group-data-[hover]:border-zinc-950/30 group-data-[checked]:bg-[--checkbox-checked-border]',\n 'dark:border-white/15 dark:group-data-[checked]:border-white/5 dark:group-data-[checked]:group-data-[hover]:border-white/5 dark:group-data-[hover]:border-white/30',\n // Inner highlight shadow\n 'after:absolute after:inset-0 after:rounded-[calc(0.3125rem-1px)] after:shadow-[inset_0_1px_theme(colors.white/15%)]',\n 'dark:after:-inset-px dark:after:hidden dark:after:rounded-[0.3125rem] dark:group-data-[checked]:after:block',\n // Focus ring\n 'group-data-[focus]:outline group-data-[focus]:outline-2 group-data-[focus]:outline-offset-2 group-data-[focus]:outline-primary-500',\n // Disabled state\n 'group-data-[disabled]:opacity-50',\n 'group-data-[disabled]:border-zinc-950/25 group-data-[disabled]:bg-zinc-950/5 group-data-[disabled]:[--checkbox-check:theme(colors.zinc.950/50%)] group-data-[disabled]:before:bg-transparent',\n 'dark:group-data-[disabled]:border-white/20 dark:group-data-[disabled]:bg-white/[2.5%] dark:group-data-[disabled]:[--checkbox-check:theme(colors.white/50%)] dark:group-data-[disabled]:group-data-[checked]:after:hidden',\n // Forced colors mode\n 'forced-colors:[--checkbox-check:HighlightText] forced-colors:[--checkbox-checked-bg:Highlight] forced-colors:group-data-[disabled]:[--checkbox-check:Highlight]',\n 'dark:forced-colors:[--checkbox-check:HighlightText] dark:forced-colors:[--checkbox-checked-bg:Highlight] dark:forced-colors:group-data-[disabled]:[--checkbox-check:Highlight]'\n];\n\nconst colors = {\n 'dark/zinc': [\n '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.zinc.900)] [--checkbox-checked-border:theme(colors.zinc.950/90%)]',\n 'dark:[--checkbox-checked-bg:theme(colors.zinc.600)]'\n ],\n 'dark/white': [\n '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.zinc.900)] [--checkbox-checked-border:theme(colors.zinc.950/90%)]',\n 'dark:[--checkbox-check:theme(colors.zinc.900)] dark:[--checkbox-checked-bg:theme(colors.white)] dark:[--checkbox-checked-border:theme(colors.zinc.950/15%)]'\n ],\n white:\n '[--checkbox-check:theme(colors.zinc.900)] [--checkbox-checked-bg:theme(colors.white)] [--checkbox-checked-border:theme(colors.zinc.950/15%)]',\n dark: '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.zinc.900)] [--checkbox-checked-border:theme(colors.zinc.950/90%)]',\n zinc: '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.zinc.600)] [--checkbox-checked-border:theme(colors.zinc.700/90%)]',\n red: '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.red.600)] [--checkbox-checked-border:theme(colors.red.700/90%)]',\n orange:\n '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.orange.500)] [--checkbox-checked-border:theme(colors.orange.600/90%)]',\n amber:\n '[--checkbox-check:theme(colors.amber.950)] [--checkbox-checked-bg:theme(colors.amber.400)] [--checkbox-checked-border:theme(colors.amber.500/80%)]',\n yellow:\n '[--checkbox-check:theme(colors.yellow.950)] [--checkbox-checked-bg:theme(colors.yellow.300)] [--checkbox-checked-border:theme(colors.yellow.400/80%)]',\n lime: '[--checkbox-check:theme(colors.lime.950)] [--checkbox-checked-bg:theme(colors.lime.300)] [--checkbox-checked-border:theme(colors.lime.400/80%)]',\n green:\n '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.green.600)] [--checkbox-checked-border:theme(colors.green.700/90%)]',\n emerald:\n '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.emerald.600)] [--checkbox-checked-border:theme(colors.emerald.700/90%)]',\n teal: '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.teal.600)] [--checkbox-checked-border:theme(colors.teal.700/90%)]',\n cyan: '[--checkbox-check:theme(colors.cyan.950)] [--checkbox-checked-bg:theme(colors.cyan.300)] [--checkbox-checked-border:theme(colors.cyan.400/80%)]',\n sky: '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.sky.500)] [--checkbox-checked-border:theme(colors.sky.600/80%)]',\n primary:\n '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.primary.600)] [--checkbox-checked-border:theme(colors.primary.700/90%)]',\n indigo:\n '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.indigo.500)] [--checkbox-checked-border:theme(colors.indigo.600/90%)]',\n violet:\n '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.violet.500)] [--checkbox-checked-border:theme(colors.violet.600/90%)]',\n purple:\n '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.purple.500)] [--checkbox-checked-border:theme(colors.purple.600/90%)]',\n fuchsia:\n '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.fuchsia.500)] [--checkbox-checked-border:theme(colors.fuchsia.600/90%)]',\n pink: '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.pink.500)] [--checkbox-checked-border:theme(colors.pink.600/90%)]',\n rose: '[--checkbox-check:theme(colors.white)] [--checkbox-checked-bg:theme(colors.rose.500)] [--checkbox-checked-border:theme(colors.rose.600/90%)]'\n};\n\ntype Color = keyof typeof colors;\n\nexport function Checkbox({\n color = 'dark/zinc',\n className,\n ...props\n}: {\n color?: Color;\n className?: string;\n} & Omit) {\n return (\n \n \n \n {/* Checkmark icon */}\n \n {/* Indeterminate icon */}\n \n \n \n \n );\n}\n","import config from './config';\n\nexport const MAPBOX_PUBLIC_KEY = () => config().secrets.mapboxPublicKey || '';\n\nexport const getLocationSuggestions = (\n address: string\n): Promise<{ address: string; coordinates: [number, number] }[]> =>\n // TODO: add proximity to user zip code\n fetch(\n `https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURI(\n address\n )}.json?access_token=${MAPBOX_PUBLIC_KEY()}&autocomplete=true&country=us&types=locality,neighborhood,address,poi`\n ).then((res) =>\n res.json().then((data) => {\n if (res.status === 200 && data) {\n // parse data\n return data.features.map((f) => ({ address: f.place_name, coordinates: f.center }));\n }\n if (data) {\n throw new Error(JSON.stringify(data));\n }\n throw new Error('ugh?');\n })\n );\n\nexport const getMapURL = (\n longitude: number,\n latitude: number,\n opts?: { zoomLevel?: number; height?: number; width?: number }\n): string =>\n `https://api.mapbox.com/styles/v1/mapbox/streets-v11/static/pin-l+0EA5E9(${longitude},${latitude})/${longitude},${latitude},${\n opts?.zoomLevel || 12\n },0/${opts?.width || 400}x${opts?.height || 280}@2x?access_token=${MAPBOX_PUBLIC_KEY()}`;\n","export const states = [\n { value: 'AL', name: 'Alabama' },\n { value: 'AK', name: 'Alaska' },\n // { value: 'AS', name: 'American Samoa' },\n { value: 'AZ', name: 'Arizona' },\n { value: 'AR', name: 'Arkansas' },\n { value: 'CA', name: 'California' },\n { value: 'CO', name: 'Colorado' },\n { value: 'CT', name: 'Connecticut' },\n { value: 'DE', name: 'Delaware' },\n { value: 'DC', name: 'Distict of Columbia' },\n { value: 'FL', name: 'Florida' },\n { value: 'GA', name: 'Georgia' },\n // { value: 'GU', name: 'Guam' },\n { value: 'HI', name: 'Hawaii' },\n { value: 'ID', name: 'Idaho' },\n { value: 'IL', name: 'Illinois' },\n { value: 'IN', name: 'Indiana' },\n { value: 'IA', name: 'Iowa' },\n { value: 'KS', name: 'Kansas' },\n { value: 'KY', name: 'Kentucky' },\n { value: 'LA', name: 'Louisiana' },\n { value: 'ME', name: 'Maine' },\n { value: 'MD', name: 'Maryland' },\n { value: 'MA', name: 'Massachusetts' },\n { value: 'MI', name: 'Michigan' },\n { value: 'MN', name: 'Minnesota' },\n { value: 'MS', name: 'Mississippi' },\n { value: 'MO', name: 'Missouri' },\n { value: 'MT', name: 'Montana' },\n { value: 'NE', name: 'Nebraska' },\n { value: 'NV', name: 'Nevada' },\n { value: 'NH', name: 'New Hampshire' },\n { value: 'NJ', name: 'New Jersey' },\n { value: 'NM', name: 'New Mexico' },\n { value: 'NY', name: 'New York' },\n { value: 'NC', name: 'North Carolina' },\n { value: 'ND', name: 'North Dakota' },\n // { value: 'MP', name: 'Northern Marina Islands' },\n { value: 'OH', name: 'Ohio' },\n { value: 'OK', name: 'Oklahoma' },\n { value: 'OR', name: 'Oregon' },\n { value: 'PA', name: 'Pennsylvania' },\n // { value: 'PR', name: 'Puerto Rico' },\n { value: 'RI', name: 'Rhode Island' },\n { value: 'SC', name: 'South Carolina' },\n { value: 'SD', name: 'South Dakota' },\n { value: 'TN', name: 'Tennessee' },\n { value: 'TX', name: 'Texas' },\n // { value: 'TT', name: 'Trust Territories' },\n { value: 'UT', name: 'Utah' },\n { value: 'VT', name: 'Vermont' },\n { value: 'VA', name: 'Virginia' },\n // { value: 'VI', name: 'Virgin Islands' },\n { value: 'WA', name: 'Washington' },\n { value: 'WV', name: 'West Virginia' },\n { value: 'WI', name: 'Wisconsin' },\n { value: 'WY', name: 'Wyoming' }\n];\n\nexport const naics = {\n '111110': {\n title: 'Soybean Farming',\n description:\n 'This industry comprises establishments primarily engaged in growing soybeans and/or producing soybean seeds.'\n },\n '111120': {\n title: 'Oilseed (except Soybean) Farming',\n description:\n 'This industry comprises establishments primarily engaged in growing fibrous oilseed producing plants and/or producing oilseed seeds, such as sunflower, safflower, flax, rape, canola, and sesame.'\n },\n '111130': {\n title: 'Dry Pea and Bean Farming',\n description:\n 'This industry comprises establishments primarily engaged in growing dry peas, beans, and/or lentils.'\n },\n '111140': {\n title: 'Wheat Farming',\n description:\n 'This industry comprises establishments primarily engaged in growing wheat and/or producing wheat seeds.'\n },\n '111150': {\n title: 'Corn Farming',\n description:\n 'This industry comprises establishments primarily engaged in growing corn (except sweet corn) and/or producing corn seeds.'\n },\n '111160': {\n title: 'Rice Farming',\n description:\n 'This industry comprises establishments primarily engaged in growing rice (except wild rice) and/or producing rice seeds.'\n },\n '111191': {\n title: 'Oilseed and Grain Combination Farming',\n description:\n \"This U.S. industry comprises establishments engaged in growing a combination of oilseed(s) and grain(s) with no one oilseed (or family of oilseeds) or grain (or family of grains) accounting for one-half of the establishment's agricultural production (value of crops for market). These establishments may produce oilseed(s) and grain(s) seeds and/or grow oilseed(s) and grain(s).\"\n },\n '111199': {\n title: 'All Other Grain Farming',\n description:\n 'This U.S. industry comprises establishments primarily engaged in growing grains and/or producing grain(s) seeds (except wheat, corn, rice, and oilseed(s) and grain(s) combinations).'\n },\n '111211': {\n title: 'Potato Farming',\n description:\n 'This U.S. industry comprises establishments primarily engaged in growing potatoes and/or producing seed potatoes.'\n },\n '111219': {\n title: 'Other Vegetable (except Potato) and Melon Farming',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) growing melons and/or vegetables (except potatoes; dry peas; dry beans; field, silage, or seed corn; and sugar beets); (2) producing vegetable and/or melon seeds; and (3) growing vegetable and/or melon bedding plants.'\n },\n '111310': {\n title: 'Orange Groves',\n description: 'This industry comprises establishments primarily engaged in growing oranges.'\n },\n '111320': {\n title: 'Citrus (except Orange) Groves',\n description:\n 'This industry comprises establishments primarily engaged in growing citrus fruits (except oranges).'\n },\n '111331': {\n title: 'Apple Orchards',\n description: 'This U.S. industry comprises establishments primarily engaged in growing apples.'\n },\n '111332': {\n title: 'Grape Vineyards',\n description:\n 'This U.S. industry comprises establishments primarily engaged in growing grapes and/or growing grapes to sun dry into raisins.'\n },\n '111333': {\n title: 'Strawberry Farming',\n description:\n 'This U.S. industry comprises establishments primarily engaged in growing strawberries.'\n },\n '111334': {\n title: 'Berry (except Strawberry) Farming',\n description: 'This U.S. industry comprises establishments primarily engaged in growing berries.'\n },\n '111335': {\n title: 'Tree Nut Farming',\n description:\n 'This U.S. industry comprises establishments primarily engaged in growing tree nuts.'\n },\n '111336': {\n title: 'Fruit and Tree Nut Combination Farming',\n description:\n \"This U.S. industry comprises establishments primarily engaged in growing a combination of fruit(s) and tree nut(s) with no one fruit (or family of fruit) or family of tree nuts accounting for one-half of the establishment's agricultural production (i.e., value of crops for market).\"\n },\n '111339': {\n title: 'Other Noncitrus Fruit Farming',\n description:\n 'This U.S. industry comprises establishments primarily engaged in growing noncitrus fruits (except apples, grapes, berries, and fruit(s) and tree nut(s) combinations).'\n },\n '111411': {\n title: 'Mushroom Production',\n description:\n 'This U.S. industry comprises establishments primarily engaged in growing mushrooms under cover in mines underground, or in other controlled environments.'\n },\n '111419': {\n title: 'Other Food Crops Grown Under Cover',\n description:\n 'This U.S. industry comprises establishments primarily engaged in growing food crops (except mushrooms) under glass or protective cover.'\n },\n '111421': {\n title: 'Nursery and Tree Production',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) growing nursery products, nursery stock, shrubbery, bulbs, fruit stock, sod, and so forth, under cover or in open fields and/or (2) growing short rotation woody trees with a growth and harvest cycle of 10 years or less for pulp or tree stock.'\n },\n '111422': {\n title: 'Floriculture Production',\n description:\n 'This U.S. industry comprises establishments primarily engaged in growing and/or producing floriculture products (e.g., cut flowers and roses, cut cultivated greens, potted flowering and foliage plants, and flower seeds) under cover and in open fields.'\n },\n '111910': {\n title: 'Tobacco Farming',\n description: 'This industry comprises establishments primarily engaged in growing tobacco.'\n },\n '111920': {\n title: 'Cotton Farming',\n description: 'This industry comprises establishments primarily engaged in growing cotton.'\n },\n '111930': {\n title: 'Sugarcane Farming',\n description: 'This industry comprises establishments primarily engaged in growing sugarcane.'\n },\n '111940': {\n title: 'Hay Farming',\n description:\n 'This industry comprises establishments primarily engaged in growing hay, alfalfa, clover, and/or mixed hay.'\n },\n '111991': {\n title: 'Sugar Beet Farming',\n description:\n 'This U.S. industry comprises establishments primarily engaged in growing sugar beets.'\n },\n '111992': {\n title: 'Peanut Farming',\n description: 'This U.S. industry comprises establishments primarily engaged in growing peanuts.'\n },\n '111998': {\n title: 'All Other Miscellaneous Crop Farming',\n description:\n \"This U.S. industry comprises establishments primarily engaged in one of the following: (1) growing crops (except oilseeds and/or grains; vegetables and/or melons; fruits and/or tree nuts; greenhouse, nursery, and/or floriculture products; tobacco; cotton; sugarcane; hay; sugar beets; or peanuts); (2) growing a combination of crops (except a combination of oilseed(s) and grain(s); and a combination of fruit(s) and tree nut(s)) with no one crop or family of crops accounting for one-half of the establishment's agricultural production (i.e., value of crops for market); or (3) gathering tea or maple sap.\"\n },\n '112111': {\n title: 'Beef Cattle Ranching and Farming',\n description:\n 'This U.S. industry comprises establishments primarily engaged in raising cattle (including cattle for dairy herd replacements).'\n },\n '112112': {\n title: 'Cattle Feedlots',\n description:\n 'This U.S. industry comprises establishments primarily engaged in feeding cattle for fattening.'\n },\n '112120': {\n title: 'Dairy Cattle and Milk Production',\n description: 'This industry comprises establishments primarily engaged in milking dairy cattle.'\n },\n '112130': {\n title: 'Dual-Purpose Cattle Ranching and Farming',\n description:\n 'This industry comprises establishments primarily engaged in raising cattle for both milking and meat production.'\n },\n '112210': {\n title: 'Hog and Pig Farming',\n description:\n 'This industry comprises establishments primarily engaged in raising hogs and pigs. These establishments may include farming activities, such as breeding, farrowing, and the raising of weanling pigs, feeder pigs, or market size hogs.'\n },\n '112310': {\n title: 'Chicken Egg Production',\n description:\n 'This industry comprises establishments primarily engaged in raising chickens for egg production. The eggs produced may be for use as table eggs or hatching eggs.'\n },\n '112320': {\n title: 'Broilers and Other Meat Type Chicken Production',\n description:\n 'This industry comprises establishments primarily engaged in raising broilers, fryers, roasters, and other meat type chickens.'\n },\n '112330': {\n title: 'Turkey Production',\n description:\n 'This industry comprises establishments primarily engaged in raising turkeys for meat or egg production.'\n },\n '112340': {\n title: 'Poultry Hatcheries',\n description:\n 'This industry comprises establishments primarily engaged in hatching poultry of any kind.'\n },\n '112390': {\n title: 'Other Poultry Production',\n description:\n 'This industry comprises establishments primarily engaged in raising poultry (except chickens for meat or egg production and turkeys).'\n },\n '112410': {\n title: 'Sheep Farming',\n description:\n 'This industry comprises establishments primarily engaged in raising sheep and lambs, or feeding lambs for fattening. The sheep or lambs may be raised for sale or wool production.'\n },\n '112420': {\n title: 'Goat Farming',\n description: 'This industry comprises establishments primarily engaged in raising goats.'\n },\n '112511': {\n title: 'Finfish Farming and Fish Hatcheries',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) farm raising finfish (e.g., catfish, trout, goldfish, tropical fish, minnows) and/or (2) hatching fish of any kind.'\n },\n '112512': {\n title: 'Shellfish Farming',\n description:\n 'This U.S. industry comprises establishments primarily engaged in farm raising shellfish (e.g., crayfish, shrimp, oysters, clams, mollusks).'\n },\n '112519': {\n title: 'Other Aquaculture',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) farm raising of aquatic animals (except finfish and shellfish) and/or (2) farm raising of aquatic plants. Alligator, algae, frog, seaweed, or turtle production is included in this industry.'\n },\n '112910': {\n title: 'Apiculture',\n description:\n \"This industry comprises establishments primarily engaged in raising bees. These establishments may collect and gather honey; and/or sell queen bees, packages of bees, royal jelly, bees' wax, propolis, venom, pollen, and/or other bee products.\"\n },\n '112920': {\n title: 'Horses and Other Equine Production',\n description:\n 'This industry comprises establishments primarily engaged in raising horses, mules, donkeys, and other equines.'\n },\n '112930': {\n title: 'Fur-Bearing Animal and Rabbit Production',\n description:\n 'This industry comprises establishments primarily engaged in raising fur-bearing animals including rabbits. These animals may be raised for sale or for their pelt production.'\n },\n '112990': {\n title: 'All Other Animal Production',\n description:\n \"This industry comprises establishments primarily engaged in (1) raising animals (except cattle, hogs and pigs, poultry, sheep and goats, aquaculture, apiculture, horses and other equines; and fur-bearing animals including rabbits) or (2) raising a combination of animals, with no one animal or family of animals accounting for one-half of the establishment's agricultural production (i.e., value of animals for market).\"\n },\n '113110': {\n title: 'Timber Tract Operations',\n description:\n 'This industry comprises establishments primarily engaged in the operation of timber tracts for the purpose of selling standing timber.'\n },\n '113210': {\n title: 'Forest Nurseries and Gathering of Forest Products',\n description:\n 'This industry comprises establishments primarily engaged in (1) growing trees for reforestation and/or (2) gathering forest products, such as gums, barks, balsam needles, rhizomes, fibers, Spanish moss, ginseng, and truffles.'\n },\n '113310': {\n title: 'Logging',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) cutting timber; (2) cutting and transporting timber; and (3) producing wood chips in the field.'\n },\n '114111': {\n title: 'Finfish Fishing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in the commercial catching or taking of finfish (e.g., bluefish, salmon, trout, tuna) from their natural habitat.'\n },\n '114112': {\n title: 'Shellfish Fishing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in the commercial catching or taking of shellfish (e.g., clams, crabs, lobsters, mussels, oysters, sea urchins, shrimp) from their natural habitat.'\n },\n '114119': {\n title: 'Other Marine Fishing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in the commercial catching or taking of marine animals (except finfish and shellfish).'\n },\n '114210': {\n title: 'Hunting and Trapping',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) commercial hunting and trapping; (2) operating commercial game preserves, such as game retreats; and (3) operating hunting preserves.'\n },\n '115111': {\n title: 'Cotton Ginning',\n description: 'This U.S. industry comprises establishments primarily engaged in ginning cotton.'\n },\n '115112': {\n title: 'Soil Preparation, Planting, and Cultivating',\n description:\n 'This U.S. industry comprises establishments primarily engaged in performing a soil preparation activity or crop production service, such as plowing, fertilizing, seed bed preparation, planting, cultivating, and crop protecting services.'\n },\n '115113': {\n title: 'Crop Harvesting, Primarily by Machine',\n description:\n 'This U.S. industry comprises establishments primarily engaged in mechanical harvesting, picking, and combining of crops, and related activities. The machinery used is provided by the servicing establishment.'\n },\n '115114': {\n title: 'Postharvest Crop Activities (except Cotton Ginning)',\n description:\n 'This U.S. industry comprises establishments primarily engaged in performing services on crops, subsequent to their harvest, with the intent of preparing them for market or further processing. These establishments provide postharvest activities, such as crop cleaning, sun drying, shelling, fumigating, curing, sorting, grading, packing, and cooling.'\n },\n '115115': {\n title: 'Farm Labor Contractors and Crew Leaders',\n description:\n 'This U.S. industry comprises establishments primarily engaged in supplying labor for agricultural production or harvesting.'\n },\n '115116': {\n title: 'Farm Management Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing farm management services on a contract or fee basis usually to citrus groves, orchards, or vineyards. These establishments always provide management and may arrange or contract for the partial or the complete operations of the farm establishment(s) they manage. Operational activities may include cultivating, harvesting, and/or other specialized agricultural support activities.'\n },\n '115210': {\n title: 'Support Activities for Animal Production',\n description:\n 'This industry comprises establishments primarily engaged in performing support activities related to raising livestock (e.g., cattle, goats, hogs, horses, poultry, sheep). These establishments may perform one or more of the following: (1) breeding services for animals, including companion animals (e.g., cats, dogs, pet birds); (2) pedigree record services; (3) boarding horses; (4) dairy herd improvement activities; (5) livestock spraying; and (6) sheep dipping and shearing.'\n },\n '115310': {\n title: 'Support Activities for Forestry',\n description:\n 'This industry comprises establishments primarily engaged in performing particular support activities related to timber production, wood technology, forestry economics and marketing, and forest protection. These establishments may provide support activities for forestry, such as estimating timber, forest firefighting, forest pest control, treating burned forests from the air for reforestation or on an emergency basis, and consulting on wood attributes and reforestation.'\n },\n '211120': {\n title: 'Crude Petroleum Extraction',\n description:\n 'This industry comprises establishments primarily engaged in (1) the exploration, development, and/or the production of petroleum from wells in which the hydrocarbons will initially flow or can be produced using normal or enhanced drilling and extraction techniques or (2) the production of crude petroleum from surface shales or tar sands or from reservoirs in which the hydrocarbons are semisolids. Establishments in this industry operate oil wells on their own account or for others on a contract or fee basis.'\n },\n '211130': {\n title: 'Natural Gas Extraction',\n description:\n 'This industry comprises establishments primarily engaged in (1) the exploration, development, and/or the production of natural gas from wells in which the hydrocarbons will initially flow or can be produced using normal or enhanced drilling and extraction techniques or (2) the recovery of liquid hydrocarbons from oil and gas field gases. Establishments primarily engaged in sulfur recovery from natural gas are included in this industry.'\n },\n '212114': {\n title: 'Surface Coal Mining',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) surface mining of bituminous coal, lignite, and anthracite coal; (2) developing bituminous coal, lignite, and anthracite coal surface mine sites; (3) surface mining and beneficiating (e.g., cleaning, washing, screening, and sizing) of bituminous coal, lignite, and anthracite coal; or (4) beneficiating (e.g., cleaning, washing, screening, and sizing), but not mining, bituminous coal, lignite, and anthracite coal.'\n },\n '212115': {\n title: 'Underground Coal Mining',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) underground mining of bituminous and anthracite coal; (2) developing bituminous and anthracite coal underground mine sites; and (3) underground mining and beneficiating (e.g., cleaning, washing, screening, and sizing) of bituminous and anthracite coal.'\n },\n '212210': {\n title: 'Iron Ore Mining',\n description:\n 'This industry comprises establishments primarily engaged in (1) developing mine sites, mining, and/or beneficiating (i.e., preparing) iron ores and manganiferous ores valued chiefly for their iron content and/or (2) producing sinter iron ore (except iron ore produced in iron and steel mills) and other iron ore agglomerates.'\n },\n '212220': {\n title: 'Gold Ore and Silver Ore Mining',\n description:\n 'This industry comprises establishments primarily engaged in developing the mine site, mining, and/or beneficiating (i.e., preparing) ores valued chiefly for their gold and/or silver content. Establishments primarily engaged in the transformation of the gold and silver into bullion or dore bar in combination with mining activities are included in this industry.'\n },\n '212230': {\n title: 'Copper, Nickel, Lead, and Zinc Mining',\n description:\n 'This industry comprises establishments primarily engaged in developing the mine site, mining, and/or beneficiating (i.e., preparing) ores valued chiefly for their copper, nickel, lead, or zinc content. Beneficiating includes the transformation of ores into concentrates. Establishments primarily engaged in recovering copper concentrates by the precipitation, leaching, or electrowinning of copper ore are included in this industry.'\n },\n '212290': {\n title: 'Other Metal Ore Mining',\n description:\n 'This industry comprises establishments primarily engaged in developing the mine site, mining, and/or beneficiating (i.e., preparing) metal ores (except iron and manganiferous ores valued for their iron content, gold ore, silver ore, copper, nickel, lead, and zinc ore).'\n },\n '212311': {\n title: 'Dimension Stone Mining and Quarrying',\n description:\n 'This U.S. industry comprises establishments primarily engaged in developing the mine site and/or mining or quarrying dimension stone (i.e., rough blocks and/or slabs of stone).'\n },\n '212312': {\n title: 'Crushed and Broken Limestone Mining and Quarrying',\n description:\n 'This U.S. industry comprises (1) establishments primarily engaged in developing the mine site, mining or quarrying crushed and broken limestone (including related rocks, such as dolomite, cement rock, marl, travertine, and calcareous tufa) and (2) preparation plants primarily engaged in beneficiating limestone (e.g., grinding or pulverizing).'\n },\n '212313': {\n title: 'Crushed and Broken Granite Mining and Quarrying',\n description:\n 'This U.S. industry comprises (1) establishments primarily engaged in developing the mine site, and/or mining or quarrying crushed and broken granite (including related rocks, such as gneiss, syenite (except nepheline), and diorite) and (2) preparation plants primarily engaged in beneficiating granite (e.g., grinding or pulverizing).'\n },\n '212319': {\n title: 'Other Crushed and Broken Stone Mining and Quarrying',\n description:\n 'This U.S. industry comprises: (1) establishments primarily engaged in developing the mine site and/or mining or quarrying crushed and broken stone (except limestone and granite); (2) preparation plants primarily engaged in beneficiating (e.g., grinding and pulverizing) stone (except limestone and granite); and (3) establishments primarily engaged in mining or quarrying bituminous limestone and bituminous sandstone.'\n },\n '212321': {\n title: 'Construction Sand and Gravel Mining',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) operating commercial grade (i.e., construction) sand and gravel pits; (2) dredging for commercial grade sand and gravel; and (3) washing, screening, or otherwise preparing commercial grade sand and gravel.'\n },\n '212322': {\n title: 'Industrial Sand Mining',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) operating industrial grade sand pits; (2) dredging for industrial grade sand; and (3) washing, screening, or otherwise preparing industrial grade sand.'\n },\n '212323': {\n title: 'Kaolin, Clay, and Ceramic and Refractory Minerals Mining',\n description:\n 'This U.S. industry comprises (1) establishments primarily engaged in developing the mine site and/or mining clay (e.g., china clay, paper clay and slip clay) or ceramic and refractory minerals and (2) establishments primarily engaged in beneficiating (i.e., preparing) clay or ceramic and refractory minerals.'\n },\n '212390': {\n title: 'Other Nonmetallic Mineral Mining and Quarrying',\n description:\n 'This industry comprises establishments primarily engaged in developing the mine site, mining, and/or milling or otherwise beneficiating (i.e., preparing) nonmetallic minerals (except coal, stone, sand, gravel, clay, and ceramic and refractory minerals). Drylake brine operations are included in this industry, as well as establishments engaged in producing the specified minerals from underground and open pit mines.'\n },\n '213111': {\n title: 'Drilling Oil and Gas Wells',\n description:\n 'This U.S. industry comprises establishments primarily engaged in drilling oil and gas wells for others on a contract or fee basis. This industry includes contractors that specialize in spudding in, drilling in, redrilling, and directional drilling.'\n },\n '213112': {\n title: 'Support Activities for Oil and Gas Operations',\n description:\n 'This U.S. industry comprises establishments primarily engaged in performing support activities, on a contract or fee basis, for oil and gas operations (except geophysical surveying and mapping, site preparation, construction, and transportation activities). Services included are exploration; excavating slush pits and cellars, well surveying; running, cutting, and pulling casings, tubes, and rods; cementing wells, shooting wells; perforating well casings; acidizing and chemically treating wells; and cleaning out, bailing, and swabbing wells.'\n },\n '213113': {\n title: 'Support Activities for Coal Mining',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing support activities for coal mining (except geophysical surveying and mapping, site preparation, construction, and transportation activities) on a contract or fee basis. Exploration for coal is included in this industry. Exploration services include traditional prospecting methods, such as taking core samples and making geological observations at prospective sites.'\n },\n '213114': {\n title: 'Support Activities for Metal Mining',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing support activities (except geophysical surveying and mapping, site preparation, construction, and transportation activities), on a contract or fee basis, for the mining and quarrying of metallic minerals and for the extraction of metal ores. Exploration for these minerals is included in this industry. Exploration services include traditional prospecting methods, such as taking core samples and making geological observations at prospective sites.'\n },\n '213115': {\n title: 'Support Activities for Nonmetallic Minerals (except Fuels) Mining',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing support activities, on a contract or fee basis, for the mining and quarrying of nonmetallic minerals (except fuel) and for the extraction of nonmetallic minerals (except geophysical surveying and mapping, site preparation, construction, and transportation activities). Exploration for these minerals is included in this industry. Exploration services include traditional prospecting methods, such as taking core samples and making geological observations at prospective sites.'\n },\n '221111': {\n title: 'Hydroelectric Power Generation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating hydroelectric power generation facilities. These facilities use water power to drive a turbine and produce electric energy. The electric energy produced in these establishments is provided to electric power transmission systems or to electric power distribution systems.'\n },\n '221112': {\n title: 'Fossil Fuel Electric Power Generation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating fossil fuel powered electric power generation facilities. These facilities use fossil fuels, such as coal, oil, or gas, in internal combustion or combustion turbine conventional steam process to produce electric energy. The electric energy produced in these establishments is provided to electric power transmission systems or to electric power distribution systems.'\n },\n '221113': {\n title: 'Nuclear Electric Power Generation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating nuclear electric power generation facilities. These facilities use nuclear power to produce electric energy. The electric energy produced in these establishments is provided to electric power transmission systems or to electric power distribution systems.'\n },\n '221114': {\n title: 'Solar Electric Power Generation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating solar electric power generation facilities. These facilities use energy from the sun to produce electric energy. The electric energy produced in these establishments is provided to electric power transmission systems or to electric power distribution systems.'\n },\n '221115': {\n title: 'Wind Electric Power Generation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating wind electric power generation facilities. These facilities use wind power to drive a turbine and produce electric energy. The electric energy produced in these establishments is provided to electric power transmission systems or to electric power distribution systems.'\n },\n '221116': {\n title: 'Geothermal Electric Power Generation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating geothermal electric power generation facilities. These facilities use heat derived from the Earth to produce electric energy. The electric energy produced in these establishments is provided to electric power transmission systems or to electric power distribution systems.'\n },\n '221117': {\n title: 'Biomass Electric Power Generation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating biomass electric power generation facilities. These facilities use biomass (e.g., wood, waste, alcohol fuels) to produce electric energy. The electric energy produced in these establishments is provided to electric power transmission systems or to electric power distribution systems.'\n },\n '221118': {\n title: 'Other Electric Power Generation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating electric power generation facilities (except hydroelectric, fossil fuel, nuclear, solar, wind, geothermal, biomass). These facilities convert other forms of energy, such as tidal power, into electric energy. The electric energy produced in these establishments is provided to electric power transmission systems or to electric power distribution systems.'\n },\n '221121': {\n title: 'Electric Bulk Power Transmission and Control',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating electric power transmission systems and/or controlling (i.e., regulating voltages) the transmission of electricity from the generating source to distribution centers or other electric utilities. The transmission system includes lines and transformer stations.'\n },\n '221122': {\n title: 'Electric Power Distribution',\n description:\n 'This U.S. industry comprises electric power establishments primarily engaged in either (1) operating electric power distribution systems (i.e., consisting of lines, poles, meters, and wiring) or (2) operating as electric power brokers or agents that arrange the sale of electricity via power distribution systems operated by others.'\n },\n '221210': {\n title: 'Natural Gas Distribution',\n description:\n 'This industry comprises: (1) establishments primarily engaged in operating gas distribution systems (e.g., mains, meters); (2) establishments known as gas marketers that buy gas from the well and sell it to a distribution system; (3) establishments known as gas brokers or agents that arrange the sale of gas over gas distribution systems operated by others; and (4) establishments primarily engaged in transmitting and distributing gas to final consumers.'\n },\n '221310': {\n title: 'Water Supply and Irrigation Systems',\n description:\n 'This industry comprises establishments primarily engaged in operating water treatment plants and/or operating water supply systems. The water supply system may include pumping stations, aqueducts, and/or distribution mains. The water may be used for drinking, irrigation, or other uses.'\n },\n '221320': {\n title: 'Sewage Treatment Facilities',\n description:\n 'This industry comprises establishments primarily engaged in operating sewer systems or sewage treatment facilities that collect, treat, and dispose of waste.'\n },\n '221330': {\n title: 'Steam and Air-Conditioning Supply',\n description:\n 'This industry comprises establishments primarily engaged in providing steam, heated air, or cooled air. The steam distribution may be through mains.'\n },\n '236115': {\n title: 'New Single-Family Housing Construction (except For-Sale Builders)',\n description:\n 'This U.S. industry comprises general contractor establishments primarily responsible for the entire construction of new single-family housing, such as single-family detached houses and town houses or row houses where each housing unit (1) is separated from its neighbors by a ground-to-roof wall and (2) has no housing units constructed above or below. This industry includes general contractors responsible for the on-site assembly of modular and prefabricated houses. Single-family housing design-build firms and single-family construction management firms acting as general contractors are included in this industry.'\n },\n '236116': {\n title: 'New Multifamily Housing Construction (except For-Sale Builders)',\n description:\n 'This U.S. industry comprises general contractor establishments primarily responsible for the construction of new multifamily residential housing units (e.g., high-rise, garden, town house apartments, and condominiums where each unit is not separated from its neighbors by a ground-to-roof wall). Multifamily design-build firms and multifamily housing construction management firms acting as general contractors are included in this industry.'\n },\n '236117': {\n title: 'New Housing For-Sale Builders',\n description:\n 'This U.S. industry comprises establishments primarily engaged in building new homes on land that is owned or controlled by the builder rather than the homebuyer or investor. The land is included with the sale of the home. Establishments in this industry build single-family and/or multifamily homes. These establishments are often referred to as merchant builders, but are also known as production or for-sale builders.'\n },\n '236118': {\n title: 'Residential Remodelers',\n description:\n 'This U.S. industry comprises establishments primarily responsible for the remodeling construction (including additions, alterations, reconstruction, maintenance, and repairs) of houses and other residential buildings, single-family and multifamily. Included in this industry are remodeling general contractors, for-sale remodelers, remodeling design-build firms, and remodeling project construction management firms.'\n },\n '236210': {\n title: 'Industrial Building Construction',\n description:\n 'This industry comprises establishments primarily responsible for the construction (including new work, additions, alterations, maintenance, and repairs) of industrial buildings (except warehouses). The construction of selected additional structures, whose production processes are similar to those for industrial buildings (e.g., incinerators, cement plants, blast furnaces, and similar nonbuilding structures), is included in this industry. Included in this industry are industrial building general contractors, industrial building for-sale builders, industrial building design-build firms, and industrial building construction management firms.'\n },\n '236220': {\n title: 'Commercial and Institutional Building Construction',\n description:\n 'This industry comprises establishments primarily responsible for the construction (including new work, additions, alterations, maintenance, and repairs) of commercial and institutional buildings and related structures, such as stadiums, grain elevators, and indoor swimming facilities. This industry includes establishments responsible for the on-site assembly of modular or prefabricated commercial and institutional buildings. Included in this industry are commercial and institutional building general contractors, commercial and institutional building for-sale builders, commercial and institutional building design-build firms, and commercial and institutional building project construction management firms.'\n },\n '237110': {\n title: 'Water and Sewer Line and Related Structures Construction',\n description:\n 'This industry comprises establishments primarily engaged in the construction of water and sewer lines, mains, pumping stations, treatment plants, and storage tanks. The work performed may include new work, reconstruction, rehabilitation, and repairs. Specialty trade contractors are included in this industry if they are engaged in activities primarily related to water, sewer line, and related structures construction. All structures (including buildings) that are integral parts of water and sewer networks (e.g., storage tanks, pumping stations, water treatment plants, and sewage treatment plants) are included in this industry.'\n },\n '237120': {\n title: 'Oil and Gas Pipeline and Related Structures Construction',\n description:\n 'This industry comprises establishments primarily engaged in the construction of oil and gas lines, mains, refineries, and storage tanks. The work performed may include new work, reconstruction, rehabilitation, and repairs. Specialty trade contractors are included in this industry if they are engaged in activities primarily related to oil and gas pipeline and related structures construction. All structures (including buildings) that are integral parts of oil and gas networks (e.g., storage tanks, pumping stations, and refineries) are included in this industry.'\n },\n '237130': {\n title: 'Power and Communication Line and Related Structures Construction',\n description:\n 'This industry comprises establishments primarily engaged in the construction of power lines and towers, power plants, and radio, television, and telecommunications transmitting/receiving towers. The work performed may include new work, reconstruction, rehabilitation, and repairs. Specialty trade contractors are included in this industry if they are engaged in activities primarily related to power and communication line and related structures construction. All structures (including buildings) that are integral parts of power and communication networks (e.g., transmitting towers, substations, and power plants) are included.'\n },\n '237210': {\n title: 'Land Subdivision',\n description:\n 'This industry comprises establishments primarily engaged in servicing land and subdividing real property into lots, for subsequent sale to builders. Servicing of land may include excavation work for the installation of roads and utility lines. The extent of work may vary from project to project. Land subdivision precedes building activity and the subsequent building is often residential, but may also be commercial tracts and industrial parks. These establishments may do all the work themselves or subcontract the work to others. Establishments that perform only the legal subdivision of land are not included in this industry.'\n },\n '237310': {\n title: 'Highway, Street, and Bridge Construction',\n description:\n 'This industry comprises establishments primarily engaged in the construction of highways (including elevated), streets, roads, airport runways, public sidewalks, or bridges. The work performed may include new work, reconstruction, rehabilitation, and repairs. Specialty trade contractors are included in this industry if they are engaged in activities primarily related to highway, street, and bridge construction (e.g., installing guardrails on highways).'\n },\n '237990': {\n title: 'Other Heavy and Civil Engineering Construction',\n description:\n 'This industry comprises establishments primarily engaged in heavy and civil engineering construction projects (excluding highway, street, bridge, and distribution line construction). The work performed may include new work, reconstruction, rehabilitation, and repairs. Specialty trade contractors are included in this industry if they are engaged in activities primarily related to heavy and civil engineering construction projects (excluding highway, street, bridge, distribution line, oil and gas structure, and utilities building and structure construction). Construction projects involving water resources (e.g., dredging and land drainage), development of marine facilities, and projects involving open space improvement (e.g., parks and trails) are included in this industry.'\n },\n '238110': {\n title: 'Poured Concrete Foundation and Structure Contractors',\n description:\n 'This industry comprises establishments primarily engaged in pouring and finishing concrete foundations and structural elements. This industry also includes establishments performing grout and shotcrete work. The work performed may include new work, additions, alterations, maintenance, and repairs.'\n },\n '238120': {\n title: 'Structural Steel and Precast Concrete Contractors',\n description:\n 'This industry comprises establishments primarily engaged in (1) erecting and assembling structural parts made from steel or precast concrete (e.g., steel beams, structural steel components, and similar products of precast concrete) and/or (2) assembling and installing other steel construction products (e.g., steel rods, bars, rebar, mesh, and cages) to reinforce poured-in-place concrete. The work performed may include new work, additions, alterations, maintenance, and repairs.'\n },\n '238130': {\n title: 'Framing Contractors',\n description:\n 'This industry comprises establishments primarily engaged in structural framing and sheathing using materials other than structural steel or concrete. The work performed may include new work, additions, alterations, maintenance, and repairs.'\n },\n '238140': {\n title: 'Masonry Contractors',\n description:\n 'This industry comprises establishments primarily engaged in masonry work, stone setting, bricklaying, and other stone work. The work performed may include new work, additions, alterations, maintenance, and repairs.'\n },\n '238150': {\n title: 'Glass and Glazing Contractors',\n description:\n 'This industry comprises establishments primarily engaged in installing glass panes in prepared openings (i.e., glazing work) and other glass work for buildings. The work performed may include new work, additions, alterations, maintenance, and repairs.'\n },\n '238160': {\n title: 'Roofing Contractors',\n description:\n 'This industry comprises establishments primarily engaged in roofing. This industry also includes establishments treating roofs (i.e., spraying, painting, or coating) and installing skylights. The work performed may include new work, additions, alterations, maintenance, and repairs.'\n },\n '238170': {\n title: 'Siding Contractors',\n description:\n 'This industry comprises establishments primarily engaged in installing siding of wood, aluminum, vinyl, or other exterior finish material (except brick, stone, stucco, or curtain wall). This industry also includes establishments installing gutters and downspouts. The work performed may include new work, additions, alterations, maintenance, and repairs.'\n },\n '238190': {\n title: 'Other Foundation, Structure, and Building Exterior Contractors',\n description:\n 'This industry comprises establishments primarily engaged in building foundation and structure trades work (except poured concrete, structural steel, precast concrete, framing, masonry, glass and glazing, roofing, and siding). The work performed may include new work, additions, alterations, maintenance, and repairs.'\n },\n '238210': {\n title: 'Electrical Contractors and Other Wiring Installation Contractors',\n description:\n 'This industry comprises establishments primarily engaged in installing and servicing electrical wiring and equipment. Contractors included in this industry may include both the parts and labor when performing work. These contractors may perform new work, additions, alterations, maintenance, and repairs.'\n },\n '238220': {\n title: 'Plumbing, Heating, and Air-Conditioning Contractors',\n description:\n 'This industry comprises establishments primarily engaged in installing and servicing plumbing, heating, and air-conditioning equipment. Contractors in this industry may provide both parts and labor when performing work. The work performed may include new work, additions, alterations, maintenance, and repairs.'\n },\n '238290': {\n title: 'Other Building Equipment Contractors',\n description:\n 'This industry comprises establishments primarily engaged in installing or servicing building equipment (except electrical, plumbing, heating, cooling, or ventilation equipment). The repair and maintenance of miscellaneous building equipment is included in this industry. The work performed may include new work, additions, alterations, maintenance, and repairs.'\n },\n '238310': {\n title: 'Drywall and Insulation Contractors',\n description:\n 'This industry comprises establishments primarily engaged in drywall, plaster work, and building insulation work. Plaster work includes applying plain or ornamental plaster, and installation of lath to receive plaster. The work performed may include new work, additions, alterations, maintenance, and repairs. Establishments primarily engaged in providing firestop services are included in this industry.'\n },\n '238320': {\n title: 'Painting and Wall Covering Contractors',\n description:\n 'This industry comprises establishments primarily engaged in interior or exterior painting or interior wall covering. The work performed may include new work, additions, alterations, maintenance, and repairs.'\n },\n '238330': {\n title: 'Flooring Contractors',\n description:\n 'This industry comprises establishments primarily engaged in the installation of resilient floor tile, carpeting, linoleum, and hardwood flooring. The work performed may include new work, additions, alterations, maintenance, and repairs.'\n },\n '238340': {\n title: 'Tile and Terrazzo Contractors',\n description:\n 'This industry comprises establishments primarily engaged in setting and installing ceramic tile, stone (interior only), and mosaic and/or mixing marble particles and cement to make terrazzo at the job site. The work performed may include new work, additions, alterations, maintenance, and repairs.'\n },\n '238350': {\n title: 'Finish Carpentry Contractors',\n description:\n 'This industry comprises establishments primarily engaged in finish carpentry work. The work performed may include new work, additions, alterations, maintenance, and repairs.'\n },\n '238390': {\n title: 'Other Building Finishing Contractors',\n description:\n 'This industry comprises establishments primarily engaged in building finishing trade work (except drywall, plaster, and insulation work; painting and wall covering work; flooring work; tile and terrazzo work; and finish carpentry work). The work performed may include new work, additions, alterations, maintenance, and repairs.'\n },\n '238910': {\n title: 'Site Preparation Contractors',\n description:\n 'This industry comprises establishments primarily engaged in site preparation activities, such as excavating and grading, demolition of buildings and other structures, and septic system installation. Earthmoving and land clearing for all types of sites (e.g., building, nonbuilding, mining) is included in this industry. Establishments primarily engaged in construction equipment rental with operator (except cranes) are also included.'\n },\n '238990': {\n title: 'All Other Specialty Trade Contractors',\n description:\n 'This industry comprises establishments primarily engaged in specialized trades (except foundation, structure, and building exterior contractors; building equipment contractors; building finishing contractors; and site preparation contractors). The specialty trade work performed includes new work, additions, alterations, maintenance, and repairs.'\n },\n '311111': {\n title: 'Dog and Cat Food Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing dog and cat food from ingredients, such as grains, oilseed mill products, and meat products.'\n },\n '311119': {\n title: 'Other Animal Food Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing animal food (except dog and cat) from ingredients, such as grains, oilseed mill products, and meat products.'\n },\n '311211': {\n title: 'Flour Milling',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) milling flour or meal from grains (except rice) or vegetables and/or (2) milling flour and preparing flour mixes or doughs.'\n },\n '311212': {\n title: 'Rice Milling',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one of the following: (1) milling rice; (2) cleaning and polishing rice; or (3) milling, cleaning, and polishing rice. The establishments in this industry may package the rice they mill with other ingredients.'\n },\n '311213': {\n title: 'Malt Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing malt from barley, rye, or other grains.'\n },\n '311221': {\n title: 'Wet Corn Milling and Starch Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in wet milling corn and other vegetables (except to make ethyl alcohol). Examples of products made in these establishments are corn sweeteners, such as glucose, dextrose, and fructose; corn oil; and starches (except laundry).'\n },\n '311224': {\n title: 'Soybean and Other Oilseed Processing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in crushing oilseeds and tree nuts, such as soybeans, cottonseeds, linseeds, peanuts, and sunflower seeds. Examples of products produced in these establishments are oilseed oils, cakes, meals, and protein isolates and concentrates.'\n },\n '311225': {\n title: 'Fats and Oils Refining and Blending',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) manufacturing shortening and margarine from purchased fats and oils; (2) refining and/or blending vegetable, oilseed, and tree nut oils from purchased oils; and (3) blending purchased animal fats with purchased vegetable fats.'\n },\n '311230': {\n title: 'Breakfast Cereal Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing breakfast cereal foods.'\n },\n '311313': {\n title: 'Beet Sugar Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing refined beet sugar from sugar beets.'\n },\n '311314': {\n title: 'Cane Sugar Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) processing sugarcane and/or (2) refining cane sugar from raw cane sugar.'\n },\n '311340': {\n title: 'Nonchocolate Confectionery Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing nonchocolate confectioneries. Included in this industry are establishments primarily engaged in retailing nonchocolate confectionery products not for immediate consumption made on the premises.'\n },\n '311351': {\n title: 'Chocolate and Confectionery Manufacturing from Cacao Beans',\n description:\n 'This U.S. industry comprises establishments primarily engaged in shelling, roasting, and grinding cacao beans and making chocolate cacao products and chocolate confectioneries.'\n },\n '311352': {\n title: 'Confectionery Manufacturing from Purchased Chocolate',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing chocolate confectioneries from chocolate produced elsewhere. Included in this industry are establishments primarily engaged in retailing chocolate confectionery products not for immediate consumption made on the premises from chocolate made elsewhere.'\n },\n '311411': {\n title: 'Frozen Fruit, Juice, and Vegetable Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing frozen fruits; frozen vegetables; and frozen fruit juices, ades, drinks, cocktail mixes and concentrates.'\n },\n '311412': {\n title: 'Frozen Specialty Food Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing frozen specialty foods (except seafood), such as frozen dinners, entrees, and side dishes; frozen pizza; frozen whipped topping; and frozen waffles, pancakes, and French toast.'\n },\n '311421': {\n title: 'Fruit and Vegetable Canning',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing canned, pickled, and brined fruits and vegetables. Examples of products made in these establishments are canned juices; canned jams and jellies; canned tomato-based sauces, such as catsup, salsa, chili sauce, spaghetti sauce, barbeque sauce, and tomato paste; and pickles, relishes, and sauerkraut.'\n },\n '311422': {\n title: 'Specialty Canning',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing canned specialty foods. Examples of products made in these establishments are canned baby food, canned baked beans, canned soups (except seafood), canned spaghetti, and other canned nationality foods.'\n },\n '311423': {\n title: 'Dried and Dehydrated Food Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) drying (including freeze-dried) and/or dehydrating fruits, vegetables, and soup mixes and bouillon and/or (2) drying and/or dehydrating ingredients and packaging them with other purchased ingredients, such as rice and dry pasta.'\n },\n '311511': {\n title: 'Fluid Milk Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing processed milk products, such as pasteurized milk or cream and sour cream and/or (2) manufacturing fluid milk dairy substitutes from soybeans and other nondairy substances.'\n },\n '311512': {\n title: 'Creamery Butter Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing creamery butter from milk and/or processed milk products.'\n },\n '311513': {\n title: 'Cheese Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing cheese products (except cottage cheese) from raw milk and/or processed milk products and/or (2) manufacturing cheese substitutes from soybean and other nondairy substances.'\n },\n '311514': {\n title: 'Dry, Condensed, and Evaporated Dairy Product Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing dry, condensed, and evaporated milk and dairy substitute products.'\n },\n '311520': {\n title: 'Ice Cream and Frozen Dessert Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing ice cream, frozen yogurts, frozen ices, sherbets, frozen tofu, and other frozen desserts (except bakery products).'\n },\n '311611': {\n title: 'Animal (except Poultry) Slaughtering',\n description:\n 'This U.S. industry comprises establishments primarily engaged in slaughtering animals (except poultry and small game). Establishments that slaughter and prepare meats are included in this industry.'\n },\n '311612': {\n title: 'Meat Processed from Carcasses',\n description:\n 'This U.S. industry comprises establishments primarily engaged in processing or preserving meat and meat byproducts (except poultry and small game) from purchased meats. This industry includes establishments primarily engaged in assembly cutting and packing of meats (i.e., boxed meats) from purchased meats.'\n },\n '311613': {\n title: 'Rendering and Meat Byproduct Processing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in rendering animal fat, bones, and meat scraps.'\n },\n '311615': {\n title: 'Poultry Processing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) slaughtering poultry and small game and/or (2) preparing processed poultry and small game meat and meat byproducts.'\n },\n '311710': {\n title: 'Seafood Product Preparation and Packaging',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) canning seafood (including soup); (2) smoking, salting, and drying seafood; (3) eviscerating fresh fish by removing heads, fins, scales, bones, and entrails; (4) shucking and packing fresh shellfish; (5) processing marine fats and oils; and (6) freezing seafood. Establishments known as \"floating factory ships\" that are engaged in the gathering and processing of seafood into canned seafood products are included in this industry.'\n },\n '311811': {\n title: 'Retail Bakeries',\n description:\n 'This U.S. industry comprises establishments primarily engaged in retailing bread and other bakery products not for immediate consumption made on the premises from flour, not from prepared dough.'\n },\n '311812': {\n title: 'Commercial Bakeries',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing fresh and frozen bread and bread-type rolls and other fresh bakery (except cookies and crackers) products.'\n },\n '311813': {\n title: 'Frozen Cakes, Pies, and Other Pastries Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing frozen bakery products (except bread), such as cakes, pies, and doughnuts.'\n },\n '311821': {\n title: 'Cookie and Cracker Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing cookies, crackers, and other products, such as ice cream cones.'\n },\n '311824': {\n title: 'Dry Pasta, Dough, and Flour Mixes Manufacturing from Purchased Flour',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing dry pasta and/or (2) manufacturing prepared flour mixes or dough from flour ground elsewhere. The establishments in this industry may package the dry pasta they manufacture with other ingredients.'\n },\n '311830': {\n title: 'Tortilla Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing tortillas.'\n },\n '311911': {\n title: 'Roasted Nuts and Peanut Butter Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) salting, roasting, drying, cooking, or canning nuts; (2) processing grains or seeds into snacks; and (3) manufacturing peanut butter and other nut butters.'\n },\n '311919': {\n title: 'Other Snack Food Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing snack foods (except roasted nuts and peanut butter).'\n },\n '311920': {\n title: 'Coffee and Tea Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) roasting coffee; (2) manufacturing coffee and tea concentrates (including instant and freeze-dried); (3) blending tea; (4) manufacturing herbal tea; and (5) manufacturing coffee extracts, flavorings, and syrups.'\n },\n '311930': {\n title: 'Flavoring Syrup and Concentrate Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing flavoring syrup drink concentrates and related products for soda fountain use or for the manufacture of soft drinks.'\n },\n '311941': {\n title: 'Mayonnaise, Dressing, and Other Prepared Sauce Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing mayonnaise, salad dressing, vinegar, mustard, horseradish, soy sauce, tartar sauce, Worcestershire sauce, and other prepared sauces (except tomato-based and gravy).'\n },\n '311942': {\n title: 'Spice and Extract Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing spices, table salt, seasonings, flavoring extracts (except coffee and meat), and natural food colorings and/or (2) manufacturing dry mix food preparations, such as salad dressing mixes, gravy and sauce mixes, frosting mixes, and other dry mix preparations.'\n },\n '311991': {\n title: 'Perishable Prepared Food Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing perishable prepared foods, such as salads, sandwiches, prepared meals, fresh pizza, fresh pasta, and peeled or cut vegetables.'\n },\n '311999': {\n title: 'All Other Miscellaneous Food Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing food (except animal food; grain and oilseed milling; sugar and confectionery products; preserved fruits, vegetables, and specialties; dairy products; meat products; seafood products; bakeries and tortillas; snack foods; coffee and tea; flavoring syrups and concentrates; seasonings and dressings; and perishable prepared food). Included in this industry are establishments primarily engaged in mixing purchased dried and/or dehydrated ingredients including those mixing purchased dried and/or dehydrated ingredients for soup mixes and bouillon.'\n },\n '312111': {\n title: 'Soft Drink Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing soft drinks and artificially carbonated waters.'\n },\n '312112': {\n title: 'Bottled Water Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in purifying and bottling water (including naturally carbonated).'\n },\n '312113': {\n title: 'Ice Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing ice.'\n },\n '312120': {\n title: 'Breweries',\n description:\n 'This industry comprises establishments primarily engaged in brewing beer, ale, lager, malt liquors, and nonalcoholic beer.'\n },\n '312130': {\n title: 'Wineries',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) growing grapes and manufacturing wines and brandies; (2) manufacturing wines and brandies from grapes and other fruits grown elsewhere; and (3) blending wines and brandies.'\n },\n '312140': {\n title: 'Distilleries',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) distilling potable liquors (except brandies); (2) distilling and blending liquors; and (3) blending and mixing liquors and other ingredients.'\n },\n '312230': {\n title: 'Tobacco Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in (1) stemming and redrying tobacco and/or (2) manufacturing cigarettes or other tobacco products.'\n },\n '313110': {\n title: 'Fiber, Yarn, and Thread Mills',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) spinning yarn; (2) manufacturing thread of any fiber; (3) texturizing, throwing, twisting, and winding purchased yarn or manmade fibers and filaments; and (4) producing hemp yarn and further processing into rope or bags.'\n },\n '313210': {\n title: 'Broadwoven Fabric Mills',\n description:\n 'This industry comprises establishments primarily engaged in weaving broadwoven fabrics and felts (except tire fabrics and rugs). Establishments in this industry may weave only, weave and finish, or weave, finish, and further fabricate fabric products.'\n },\n '313220': {\n title: 'Narrow Fabric Mills and Schiffli Machine Embroidery',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) weaving or braiding narrow fabrics in their final form or initially made in wider widths that are specially constructed for narrower widths; (2) making fabric-covered elastic yarn and thread; and (3) manufacturing Schiffli machine embroideries. Establishments in this industry may weave only; weave and finish; or weave, finish, and further fabricate fabric products.'\n },\n '313230': {\n title: 'Nonwoven Fabric Mills',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing nonwoven fabrics and felts. Processes used include bonding and/or interlocking fibers by mechanical, chemical, thermal, or solvent means, or by combinations thereof.'\n },\n '313240': {\n title: 'Knit Fabric Mills',\n description:\n 'This industry comprises establishments primarily engaged in one of the following: (1) knitting weft (i.e., circular) and warp (i.e., flat) fabric; (2) knitting and finishing weft and warp fabric; (3) manufacturing lace; or (4) manufacturing, dyeing, and finishing lace and lace goods. Establishments in this industry may knit only; knit and finish; or knit, finish, and further fabricate fabric products (except apparel).'\n },\n '313310': {\n title: 'Textile and Fabric Finishing Mills',\n description:\n 'This industry comprises (1) establishments primarily engaged in finishing textiles, fabrics, and apparel and (2) establishments of converters who buy fabric goods in the grey, have them finished on contract, and sell at wholesale. Finishing operations include: bleaching, dyeing, printing (e.g., roller, screen, flock, plisse), stonewashing, and other mechanical finishing, such as preshrinking, shrinking, sponging, calendering, mercerizing, and napping; as well as cleaning, scouring, and the preparation of natural fibers and raw stock.'\n },\n '313320': {\n title: 'Fabric Coating Mills',\n description:\n 'This industry comprises establishments primarily engaged in coating, laminating, varnishing, waxing, and rubberizing textiles and apparel.'\n },\n '314110': {\n title: 'Carpet and Rug Mills',\n description:\n 'This industry comprises establishments primarily engaged in (1) manufacturing woven, tufted, and other carpets and rugs, such as art squares, floor mattings, needlepunch carpeting, and door mats and mattings, from textile materials or from twisted paper, grasses, reeds, sisal, jute, or rags and/or (2) finishing carpets and rugs.'\n },\n '314120': {\n title: 'Curtain and Linen Mills',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing household textile products, such as curtains, draperies, linens, bedspreads, sheets, tablecloths, towels, and shower curtains, from purchased materials. The household textile products may be made on a stock or custom basis for sale to individual retail customers.'\n },\n '314910': {\n title: 'Textile Bag and Canvas Mills',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing textile bags (except luggage) or other canvas and canvas-like products, such as awnings, sails, tarpaulins, and tents from purchased textile fabrics or yarns.'\n },\n '314994': {\n title: 'Rope, Cordage, Twine, Tire Cord, and Tire Fabric Mills',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing rope, cable, cordage, twine, and related products from all materials (e.g., abaca, sisal, henequen, cotton, paper, jute, flax, manmade fibers including glass) and/or (2) manufacturing cord and fabric of polyester, rayon, cotton, glass, steel, or other materials for use in reinforcing rubber tires, industrial belting, and similar uses.'\n },\n '314999': {\n title: 'All Other Miscellaneous Textile Product Mills',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing textile products (except carpets and rugs; curtains and linens; textile bags and canvas products; rope, cordage, and twine; and tire cords and tire fabrics) from purchased materials. These establishments may further embellish the textile products they manufacture with decorative stitching. Establishments primarily engaged in adding decorative stitching such as embroidery or other art needlework on textile products, including apparel, on a contract or fee basis for the trade, are included in this industry.'\n },\n '315120': {\n title: 'Apparel Knitting Mills',\n description:\n 'This industry comprises establishments primarily engaged in knitting apparel or knitting fabric and then manufacturing apparel. Jobbers, performing entrepreneurial functions involved in knitting apparel and accessories, are included.'\n },\n '315210': {\n title: 'Cut and Sew Apparel Contractors',\n description:\n 'This industry comprises establishments commonly referred to as contractors primarily engaged in (1) cutting materials owned by others for apparel and accessories and/or (2) sewing materials owned by others for apparel and accessories.'\n },\n '315250': {\n title: 'Cut and Sew Apparel Manufacturing (except Contractors)',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing cut and sew apparel from purchased fabric. Clothing jobbers, who perform entrepreneurial functions involved in apparel manufacture, including buying raw materials, designing and preparing samples, arranging for apparel to be made from their materials, and marketing finished apparel, are included.'\n },\n '315990': {\n title: 'Apparel Accessories and Other Apparel Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing apparel and accessories (except apparel knitting mills, cut and sew apparel contractors, and cut and sew apparel manufacturing (except contractors)). Jobbers, who perform entrepreneurial functions involved in apparel accessories manufacture, including buying raw materials, designing and preparing samples, arranging for apparel accessories to be made from their materials, and marketing finished apparel accessories, are included. Examples of products made by these establishments are belts, caps, gloves (except medical, safety, sporting), hats, and neckties.'\n },\n '316110': {\n title: 'Leather and Hide Tanning and Finishing',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) tanning, currying, and finishing hides and skins; (2) having others process hides and skins on a contract basis; and (3) dyeing or dressing furs.'\n },\n '316210': {\n title: 'Footwear Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing footwear (except orthopedic extension footwear).'\n },\n '316990': {\n title: 'Other Leather and Allied Product Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing leather products (except footwear and apparel) from purchased leather or leather substitutes (e.g., fabric, plastics).'\n },\n '321113': {\n title: 'Sawmills',\n description:\n 'This U.S. industry comprises establishments primarily engaged in sawing dimension lumber, boards, beams, timbers, poles, ties, shingles, shakes, siding, and wood chips from logs or bolts. Sawmills may plane the rough lumber that they make with a planing machine to achieve smoothness and uniformity of size.'\n },\n '321114': {\n title: 'Wood Preservation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) treating wood sawed, planed, or shaped in other establishments with creosote or other preservatives, such as alkaline copper quat, copper azole, and sodium borates, to prevent decay and to protect against fire and insects and/or (2) sawing round wood poles, pilings, and posts and treating them with preservatives.'\n },\n '321211': {\n title: 'Hardwood Veneer and Plywood Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing hardwood veneer and/or hardwood plywood.'\n },\n '321212': {\n title: 'Softwood Veneer and Plywood Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing softwood veneer and/or softwood plywood.'\n },\n '321215': {\n title: 'Engineered Wood Member Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing fabricated or laminated wood arches, wood roof and floor trusses, and/or other fabricated or laminated wood structural members.'\n },\n '321219': {\n title: 'Reconstituted Wood Product Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing reconstituted wood sheets and boards.'\n },\n '321911': {\n title: 'Wood Window and Door Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing window and door units, sash, window and door frames, and doors from wood or wood clad with metal or plastics.'\n },\n '321912': {\n title: 'Cut Stock, Resawing Lumber, and Planing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) manufacturing dimension lumber from purchased lumber; (2) manufacturing dimension stock (i.e., shapes) or cut stock; (3) resawing the output of sawmills; and (4) planing purchased lumber. These establishments generally use woodworking machinery, such as jointers, planers, lathes, and routers to shape wood.'\n },\n '321918': {\n title: 'Other Millwork (including Flooring)',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing millwork (except wood windows, wood doors, and cut stock).'\n },\n '321920': {\n title: 'Wood Container and Pallet Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing wood pallets, wood box shook, wood boxes, other wood containers, and wood parts for pallets and containers.'\n },\n '321991': {\n title: 'Manufactured Home (Mobile Home) Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in making manufactured homes (i.e., mobile homes) and nonresidential mobile buildings. Manufactured homes are designed to accept permanent water, sewer, and utility connections and although equipped with wheels, they are not intended for regular highway movement.'\n },\n '321992': {\n title: 'Prefabricated Wood Building Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing prefabricated wood buildings and wood sections and panels for prefabricated wood buildings.'\n },\n '321999': {\n title: 'All Other Miscellaneous Wood Product Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing wood products (except establishments operating sawmills and preservation facilities; establishments manufacturing veneer, engineered wood products, millwork, wood containers, pallets, and wood container parts; and establishments making manufactured homes (i.e., mobile homes) and prefabricated buildings and components).'\n },\n '322110': {\n title: 'Pulp Mills',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing pulp without manufacturing paper or paperboard. The pulp is made by separating the cellulose fibers from the other impurities in wood or other materials, such as used or recycled rags, linters, scrap paper, and straw.'\n },\n '322120': {\n title: 'Paper Mills',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing paper from pulp. These establishments may manufacture or purchase pulp. In addition, the establishments may convert the paper they make. The activity of making paper classifies an establishment into this industry regardless of the output.'\n },\n '322130': {\n title: 'Paperboard Mills',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing paperboard (e.g., can/drum stock, container board, corrugating medium, folding carton stock, linerboard, tube) from pulp. These establishments may manufacture or purchase pulp. In addition, the establishments may also convert the paperboard they make.'\n },\n '322211': {\n title: 'Corrugated and Solid Fiber Box Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in laminating purchased paper or paperboard into corrugated or solid fiber boxes and related products, such as pads, partitions, pallets, and corrugated paper without manufacturing paperboard. These boxes are generally used for shipping.'\n },\n '322212': {\n title: 'Folding Paperboard Box Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in converting paperboard (except corrugated) into folding paperboard boxes without manufacturing paper and paperboard.'\n },\n '322219': {\n title: 'Other Paperboard Container Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in converting paperboard into paperboard containers (except corrugated, solid fiber, and folding paperboard boxes) without manufacturing paperboard.'\n },\n '322220': {\n title: 'Paper Bag and Coated and Treated Paper Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) cutting and coating paper and paperboard; (2) cutting and laminating paper, paperboard, and other flexible materials (except plastics film to plastics film); (3) manufacturing bags, multiwall bags, sacks of paper, metal foil, coated paper, laminates, or coated combinations of paper and foil with plastics film; (4) manufacturing laminated aluminum and other converted metal foils from purchased foils; and (5) surface coating paper or paperboard.'\n },\n '322230': {\n title: 'Stationery Product Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in converting paper or paperboard into products used for writing, filing, art work, and similar applications.'\n },\n '322291': {\n title: 'Sanitary Paper Product Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in converting purchased sanitary paper stock or wadding into sanitary paper products, such as facial tissues, handkerchiefs, table napkins, toilet paper, towels, disposable diapers, sanitary napkins, and tampons.'\n },\n '322299': {\n title: 'All Other Converted Paper Product Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in converting paper or paperboard into products (except containers, bags, coated and treated paper, stationery products, and sanitary paper products) or converting pulp into pulp products, such as egg cartons, food trays, and other food containers from molded pulp.'\n },\n '323111': {\n title: 'Commercial Printing (except Screen and Books)',\n description:\n 'This U.S. industry comprises establishments primarily engaged in commercial printing (except screen printing, books printing) without publishing (except fabric grey goods printing). The printing processes used in this industry include, but are not limited to, lithographic, gravure, flexographic, letterpress, engraving, and various digital printing technologies. This industry includes establishments engaged in commercial printing on purchased stock materials, such as stationery, invitations, labels, and similar items, on a job-order basis. Establishments primarily engaged in traditional printing activities combined with document photocopying services (i.e., quick printers) or primarily engaged in printing graphical materials using digital printing equipment are included in this industry.'\n },\n '323113': {\n title: 'Commercial Screen Printing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in screen printing without publishing (except books, fabric grey goods, and manifold business forms). This industry includes establishments engaged in screen printing on purchased stock materials, such as stationery, invitations, labels, and similar items, on a job-order basis. Establishments primarily engaged in printing on apparel and textile products, such as T-shirts, caps, jackets, towels, and napkins, are included in this industry.'\n },\n '323117': {\n title: 'Books Printing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in printing or printing and binding books and pamphlets without publishing.'\n },\n '323120': {\n title: 'Support Activities for Printing',\n description:\n 'This industry comprises establishments primarily engaged in performing prepress and postpress services in support of printing activities. Prepress services may include such things as platemaking, typesetting, trade binding, and sample mounting. Postpress services include such things as book or paper bronzing, die cutting, edging, embossing, folding, gilding, gluing, and indexing.'\n },\n '324110': {\n title: 'Petroleum Refineries',\n description:\n 'This industry comprises establishments primarily engaged in refining crude petroleum into refined petroleum. Petroleum refining involves one or more of the following activities: (1) fractionation; (2) straight distillation of crude oil; and (3) cracking.'\n },\n '324121': {\n title: 'Asphalt Paving Mixture and Block Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing asphalt and tar paving mixtures and blocks from purchased asphaltic materials.'\n },\n '324122': {\n title: 'Asphalt Shingle and Coating Materials Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) saturating purchased mats and felts with asphalt or tar from purchased asphaltic materials and (2) manufacturing asphalt and tar and roofing cements and coatings from purchased asphaltic materials.'\n },\n '324191': {\n title: 'Petroleum Lubricating Oil and Grease Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in blending or compounding refined petroleum to make lubricating oils and greases and/or re-refining used petroleum lubricating oils.'\n },\n '324199': {\n title: 'All Other Petroleum and Coal Products Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing petroleum products (except asphalt paving, roofing, and saturated materials and lubricating oils and greases) from refined petroleum and coal products made in coke ovens not integrated with a steel mill.'\n },\n '325110': {\n title: 'Petrochemical Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in (1) manufacturing acyclic (i.e., aliphatic) hydrocarbons such as ethylene, propylene, and butylene made from refined petroleum or liquid hydrocarbons and/or (2) manufacturing cyclic aromatic hydrocarbons such as benzene, toluene, styrene, xylene, ethyl benzene, and cumene made from refined petroleum or liquid hydrocarbons.'\n },\n '325120': {\n title: 'Industrial Gas Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing industrial organic and inorganic gases in compressed, liquid, and solid forms.'\n },\n '325130': {\n title: 'Synthetic Dye and Pigment Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing synthetic organic and inorganic dyes and pigments, such as lakes and toners (except electrostatic and photographic).'\n },\n '325180': {\n title: 'Other Basic Inorganic Chemical Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing basic inorganic chemicals (except industrial gases and synthetic dyes and pigments).'\n },\n '325193': {\n title: 'Ethyl Alcohol Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing nonpotable ethyl alcohol.'\n },\n '325194': {\n title: 'Cyclic Crude, Intermediate, and Gum and Wood Chemical Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) distilling wood or gum into products, such as tall oil and wood distillates; (2) distilling coal tars; (3) manufacturing wood or gum chemicals, such as naval stores, natural tanning materials, charcoal briquettes, and charcoal (except activated); and (4) manufacturing cyclic crudes or cyclic intermediates (i.e., hydrocarbons, except aromatic petrochemicals) from refined petroleum or natural gas.'\n },\n '325199': {\n title: 'All Other Basic Organic Chemical Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing basic organic chemical products (except aromatic petrochemicals, industrial gases, synthetic organic dyes and pigments, gum and wood chemicals, cyclic crudes and intermediates, and ethyl alcohol).'\n },\n '325211': {\n title: 'Plastics Material and Resin Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing resins, plastics materials, and nonvulcanizable thermoplastic elastomers and mixing and blending resins on a custom basis and/or (2) manufacturing noncustomized synthetic resins.'\n },\n '325212': {\n title: 'Synthetic Rubber Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing synthetic rubber.'\n },\n '325220': {\n title: 'Artificial and Synthetic Fibers and Filaments Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in (1) manufacturing cellulosic (e.g., rayon, acetate) and noncellulosic (e.g., nylon, polyolefin, polyester) fibers and filaments in the form of monofilament, filament yarn, staple, or tow or (2) manufacturing and texturizing cellulosic and noncellulosic fibers and filaments.'\n },\n '325311': {\n title: 'Nitrogenous Fertilizer Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) manufacturing nitrogenous fertilizer materials; (2) manufacturing fertilizers from sewage or animal waste; and (3) manufacturing nitrogenous materials and mixing with other ingredients into fertilizers.'\n },\n '325312': {\n title: 'Phosphatic Fertilizer Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing phosphatic fertilizer materials or (2) manufacturing phosphatic materials and mixing with other ingredients into fertilizers.'\n },\n '325314': {\n title: 'Fertilizer (Mixing Only) Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in mixing ingredients made elsewhere into fertilizers.'\n },\n '325315': {\n title: 'Compost Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing compost through the controlled aerobic, biological decomposition and curing of biodegradable materials.'\n },\n '325320': {\n title: 'Pesticide and Other Agricultural Chemical Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in the formulation and preparation of agricultural and household pest control chemicals (except fertilizers).'\n },\n '325411': {\n title: 'Medicinal and Botanical Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing uncompounded medicinal chemicals and their derivatives (i.e., generally for use by pharmaceutical preparation manufacturers) and/or (2) grading, grinding, and milling uncompounded botanicals.'\n },\n '325412': {\n title: 'Pharmaceutical Preparation Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing in-vivo diagnostic substances and pharmaceutical preparations (except biological) intended for internal and external consumption in dose forms, such as ampoules, tablets, capsules, vials, ointments, powders, solutions, and suspensions.'\n },\n '325413': {\n title: 'In-Vitro Diagnostic Substance Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing in-vitro (i.e., not taken internally) diagnostic substances, such as chemical, biological, or radioactive substances. The substances are used for diagnostic tests that are performed in test tubes, petri dishes, machines, and other diagnostic test-type devices.'\n },\n '325414': {\n title: 'Biological Product (except Diagnostic) Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing vaccines, toxoids, blood fractions, and culture media of plant or animal origin (except diagnostic).'\n },\n '325510': {\n title: 'Paint and Coating Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in (1) mixing pigments, solvents, and binders into paints and other coatings, such as stains, varnishes, lacquers, enamels, shellacs, and water-repellent coatings for concrete and masonry, and/or (2) manufacturing allied paint products, such as putties, paint and varnish removers, paint brush cleaners, and frit.'\n },\n '325520': {\n title: 'Adhesive Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing adhesives, glues, and caulking compounds.'\n },\n '325611': {\n title: 'Soap and Other Detergent Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing and packaging bath, facial, and hand soaps, hand sanitizers, and other detergents, such as laundry and dishwashing detergents; toothpaste gels and tooth powders; and natural glycerin.'\n },\n '325612': {\n title: 'Polish and Other Sanitation Good Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing and packaging polishes and specialty cleaning preparations.'\n },\n '325613': {\n title: 'Surface Active Agent Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing bulk surface active agents for use as wetting agents, emulsifiers, and penetrants and/or (2) manufacturing textile and leather finishing agents used to reduce tension or speed the drying process.'\n },\n '325620': {\n title: 'Toilet Preparation Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in preparing, blending, compounding, and packaging toilet preparations, such as perfumes, shaving preparations, hair preparations, face creams, lotions (including sunscreens), and other cosmetic preparations.'\n },\n '325910': {\n title: 'Printing Ink Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing printing and inkjet inks and inkjet cartridges.'\n },\n '325920': {\n title: 'Explosives Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing explosives.'\n },\n '325991': {\n title: 'Custom Compounding of Purchased Resins',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) custom mixing and blending plastics resins made elsewhere or (2) reformulating plastics resins from recycled plastics products.'\n },\n '325992': {\n title: 'Photographic Film, Paper, Plate, Chemical, and Copy Toner Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing sensitized film, sensitized paper, sensitized cloth, sensitized plates, toners (i.e., for photocopiers, laser printers, and similar electrostatic printing devices), toner cartridges, and photographic chemicals.'\n },\n '325998': {\n title: 'All Other Miscellaneous Chemical Product and Preparation Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing chemical products (except basic chemicals, resins, and synthetic rubber; cellulosic and noncellulosic fibers and filaments; pesticides, fertilizers, and other agricultural chemicals; pharmaceuticals and medicines; paints, coatings and adhesives; soaps, cleaning compounds, and toilet preparations; printing inks; explosives; custom compounding of purchased resins; and photographic films, papers, plates, chemicals, and copy toners).'\n },\n '326111': {\n title: 'Plastics Bag and Pouch Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) converting plastics resins into plastics bags or pouches and/or (2) forming, coating, or laminating plastics film or sheet into single-web or multiweb plastics bags or pouches. Establishments in this industry may print on the bags or pouches they manufacture.'\n },\n '326112': {\n title: 'Plastics Packaging Film and Sheet (including Laminated) Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in converting plastics resins into plastics packaging (flexible) film and packaging sheet.'\n },\n '326113': {\n title: 'Unlaminated Plastics Film and Sheet (except Packaging) Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in converting plastics resins into plastics film and unlaminated sheet (except packaging).'\n },\n '326121': {\n title: 'Unlaminated Plastics Profile Shape Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in converting plastics resins into nonrigid plastics profile shapes (except film, sheet, bags, and hoses), such as rod, tube, and sausage casings.'\n },\n '326122': {\n title: 'Plastics Pipe and Pipe Fitting Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in converting plastics resins into plastics pipes and pipe fittings.'\n },\n '326130': {\n title: 'Laminated Plastics Plate, Sheet (except Packaging), and Shape Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in laminating plastics profile shapes such as plate, sheet (except packaging), and rod. The lamination process generally involves bonding or impregnating profiles with plastics resins and compressing them under heat.'\n },\n '326140': {\n title: 'Polystyrene Foam Product Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing polystyrene foam products.'\n },\n '326150': {\n title: 'Urethane and Other Foam Product (except Polystyrene) Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing plastics foam products (except polystyrene).'\n },\n '326160': {\n title: 'Plastics Bottle Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing plastics bottles.'\n },\n '326191': {\n title: 'Plastics Plumbing Fixture Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing plastics or fiberglass plumbing fixtures. Examples of products made by these establishments are plastics or fiberglass bathtubs, hot tubs, portable toilets, and shower stalls.'\n },\n '326199': {\n title: 'All Other Plastics Product Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing plastics products (except film, sheet, bags, profile shapes, pipes, pipe fittings, laminates, foam products, bottles, plumbing fixtures, and hoses).'\n },\n '326211': {\n title: 'Tire Manufacturing (except Retreading)',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing tires and inner tubes from natural and synthetic rubber.'\n },\n '326212': {\n title: 'Tire Retreading',\n description:\n 'This U.S. industry comprises establishments primarily engaged in retreading or rebuilding tires.'\n },\n '326220': {\n title: 'Rubber and Plastics Hoses and Belting Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing rubber hose and/or plastics (reinforced) hose and belting from natural and synthetic rubber and/or plastics resins. Establishments manufacturing garden hoses from purchased hose are included in this industry.'\n },\n '326291': {\n title: 'Rubber Product Manufacturing for Mechanical Use',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing rubber goods (except tubing) for mechanical applications, using the processes of molding, extruding or lathe-cutting. Products of this industry are generally parts for motor vehicles, machinery, and equipment.'\n },\n '326299': {\n title: 'All Other Rubber Product Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing rubber products (except tires; hoses and belting; and molded, extruded, and lathe-cut rubber goods for mechanical applications (except rubber tubing)) from natural and synthetic rubber. Establishments manufacturing rubber tubing made from natural and synthetic rubber, regardless of process used, are included in this industry.'\n },\n '327110': {\n title: 'Pottery, Ceramics, and Plumbing Fixture Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in shaping, molding, glazing, and firing pottery, ceramics, plumbing fixtures, and electrical supplies made entirely or partly of clay or other ceramic materials.'\n },\n '327120': {\n title: 'Clay Building Material and Refractories Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in shaping, molding, baking, burning, or hardening clay refractories, nonclay refractories, ceramic tile, structural clay tile, brick, and other structural clay building materials. A refractory is a material that will retain its shape and chemical identity when subjected to high temperatures and is used in applications that require extreme resistance to heat, such as furnace linings.'\n },\n '327211': {\n title: 'Flat Glass Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing flat glass by melting silica sand or cullet or (2) manufacturing both flat glass and laminated glass by melting silica sand or cullet.'\n },\n '327212': {\n title: 'Other Pressed and Blown Glass and Glassware Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing glass by melting silica sand or cullet and making pressed, blown, or shaped glass or glassware (except glass packaging containers).'\n },\n '327213': {\n title: 'Glass Container Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing glass packaging, bottling, and canning containers.'\n },\n '327215': {\n title: 'Glass Product Manufacturing Made of Purchased Glass',\n description:\n 'This U.S. industry comprises establishments primarily engaged in coating, laminating, tempering, or shaping purchased glass.'\n },\n '327310': {\n title: 'Cement Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing Portland, natural, masonry, pozzolanic, and other hydraulic cements. Cement manufacturing establishments may calcine earths or mine, quarry, manufacture, or purchase lime.'\n },\n '327320': {\n title: 'Ready-Mix Concrete Manufacturing',\n description:\n 'This industry comprises establishments, such as batch plants or mix plants, primarily engaged in manufacturing concrete delivered to a purchaser in a plastic and unhardened state. Ready-mix concrete manufacturing establishments may mine, quarry, or purchase sand and gravel.'\n },\n '327331': {\n title: 'Concrete Block and Brick Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing concrete block and brick.'\n },\n '327332': {\n title: 'Concrete Pipe Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing concrete pipe.'\n },\n '327390': {\n title: 'Other Concrete Product Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing concrete products (except block, brick, and pipe).'\n },\n '327410': {\n title: 'Lime Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing lime from calcitic limestone, dolomitic limestone, or other calcareous materials, such as coral, chalk, and shells. Lime manufacturing establishments may mine, quarry, collect, or purchase the sources of calcium carbonate.'\n },\n '327420': {\n title: 'Gypsum Product Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing gypsum products, such as wallboard, plaster, plasterboard, molding, ornamental moldings, statuary, and architectural plaster work. Gypsum product manufacturing establishments may mine, quarry, or purchase gypsum.'\n },\n '327910': {\n title: 'Abrasive Product Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing abrasive grinding wheels of natural or synthetic materials, abrasive-coated products, and other abrasive products.'\n },\n '327991': {\n title: 'Cut Stone and Stone Product Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in cutting, shaping, and finishing granite, marble, limestone, slate, and other stone for building and miscellaneous uses. Stone product manufacturing establishments may mine, quarry, or purchase stone.'\n },\n '327992': {\n title: 'Ground or Treated Mineral and Earth Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in calcining, dead burning, or otherwise processing beyond beneficiation, clays, ceramic and refractory minerals, barite, and miscellaneous nonmetallic minerals.'\n },\n '327993': {\n title: 'Mineral Wool Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing mineral wool and mineral wool (i.e., fiberglass) insulation products made of such siliceous materials as rock, slag, and glass or combinations thereof.'\n },\n '327999': {\n title: 'All Other Miscellaneous Nonmetallic Mineral Product Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing nonmetallic mineral products (except pottery, ceramics, and plumbing fixtures; clay building materials and refractories; glass and glass products; cement; ready-mix concrete; concrete products; lime; gypsum products; abrasive products; cut stone and stone products; ground and treated minerals and earth; and mineral wool).'\n },\n '331110': {\n title: 'Iron and Steel Mills and Ferroalloy Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) direct reduction of iron ore; (2) manufacturing pig iron in molten or solid form; (3) converting pig iron into steel; (4) making steel; (5) making steel and manufacturing shapes (e.g., bar, plate, rod, sheet, strip, wire); (6) making steel and forming pipe and tube; and (7) manufacturing electrometallurgical ferroalloys. Ferroalloys add critical elements, such as silicon and manganese for carbon steel and chromium, vanadium, tungsten, titanium, and molybdenum for low- and high-alloy metals. Ferroalloys include iron-rich alloys and more pure forms of elements added during the steel manufacturing process that alter or improve the characteristics of the metal.'\n },\n '331210': {\n title: 'Iron and Steel Pipe and Tube Manufacturing from Purchased Steel',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing welded, riveted, or seamless pipe and tube from purchased iron or steel.'\n },\n '331221': {\n title: 'Rolled Steel Shape Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in rolling or drawing shapes (except wire), such as plate, sheet, strip, rod, and bar, from purchased steel.'\n },\n '331222': {\n title: 'Steel Wire Drawing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in drawing wire from purchased steel.'\n },\n '331313': {\n title: 'Alumina Refining and Primary Aluminum Production',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) refining alumina (i.e., aluminum oxide) generally from bauxite; (2) making aluminum from alumina; and/or (3) making aluminum from alumina and rolling, drawing, extruding, or casting the aluminum they make into primary forms. Establishments in this industry may make primary aluminum or aluminum-based alloys from alumina.'\n },\n '331314': {\n title: 'Secondary Smelting and Alloying of Aluminum',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) recovering aluminum and aluminum alloys from scrap and/or dross (i.e., secondary smelting) and making billet or ingot (except by rolling) and/or (2) manufacturing alloys, powder, paste, or flake from purchased aluminum.'\n },\n '331315': {\n title: 'Aluminum Sheet, Plate, and Foil Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) flat rolling or continuous casting sheet, plate, foil and welded tube from purchased aluminum and/or (2) recovering aluminum from scrap and flat rolling or continuous casting sheet, plate, foil, and welded tube in integrated mills.'\n },\n '331318': {\n title: 'Other Aluminum Rolling, Drawing, and Extruding',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) rolling, drawing, or extruding shapes (except flat rolled sheet, plate, foil, and welded tube) from purchased aluminum and/or (2) recovering aluminum from scrap and rolling, drawing, or extruding shapes (except flat rolled sheet, plate, foil, and welded tube) in integrated mills.'\n },\n '331410': {\n title: 'Nonferrous Metal (except Aluminum) Smelting and Refining',\n description:\n 'This industry comprises establishments primarily engaged in (1) smelting ores into nonferrous metals and/or (2) the primary refining of nonferrous metals (except aluminum) by electrolytic methods or other processes.'\n },\n '331420': {\n title: 'Copper Rolling, Drawing, Extruding, and Alloying',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) recovering copper or copper alloys from scraps; (2) alloying purchased copper; (3) rolling, drawing, or extruding shapes (e.g., bar, plate, sheet, strip, tube, wire) from purchased copper; and (4) recovering copper or copper alloys from scrap and rolling, drawing, or extruding shapes (e.g., bar, plate, sheet, strip, tube, wire).'\n },\n '331491': {\n title: 'Nonferrous Metal (except Copper and Aluminum) Rolling, Drawing, and Extruding',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) rolling, drawing, or extruding shapes (e.g., bar, plate, sheet, strip, tube) from purchased nonferrous metals and/or (2) recovering nonferrous metals from scrap and rolling, drawing, and/or extruding shapes (e.g., bar, plate, sheet, strip, tube) in integrated mills.'\n },\n '331492': {\n title:\n 'Secondary Smelting, Refining, and Alloying of Nonferrous Metal (except Copper and Aluminum)',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) alloying purchased nonferrous metals and/or (2) recovering nonferrous metals from scrap. Establishments in this industry make primary forms (e.g., bar, billet, bloom, cake, ingot, slab, slug, wire) using smelting or refining processes.'\n },\n '331511': {\n title: 'Iron Foundries',\n description:\n 'This U.S. industry comprises establishments primarily engaged in pouring molten pig iron or iron alloys into molds to manufacture castings (e.g., cast iron manhole covers, cast iron pipe, cast iron skillets). Establishments in this industry purchase iron made in other establishments.'\n },\n '331512': {\n title: 'Steel Investment Foundries',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing steel investment castings. Investment molds are formed by covering a wax shape with a refractory slurry. After the refractory slurry hardens, the wax is melted, leaving a seamless mold. Investment molds provide highly detailed, consistent castings. Establishments in this industry purchase steel made in other establishments.'\n },\n '331513': {\n title: 'Steel Foundries (except Investment)',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing steel castings (except steel investment castings). Establishments in this industry purchase steel made in other establishments.'\n },\n '331523': {\n title: 'Nonferrous Metal Die-Casting Foundries',\n description:\n 'This U.S. industry comprises establishments primarily engaged in introducing molten nonferrous metal, under high pressure, into molds or dies to make nonferrous metal die-castings. Establishments in this industry purchase nonferrous metals made in other establishments.'\n },\n '331524': {\n title: 'Aluminum Foundries (except Die-Casting)',\n description:\n 'This U.S. industry comprises establishments primarily engaged in pouring molten aluminum into molds to manufacture aluminum castings (except nonferrous die-castings). Establishments in this industry purchase aluminum made in other establishments.'\n },\n '331529': {\n title: 'Other Nonferrous Metal Foundries (except Die-Casting)',\n description:\n 'This U.S. industry comprises establishments primarily engaged in pouring molten nonferrous metals (except aluminum) into molds to manufacture nonferrous castings (except nonferrous die-castings and aluminum castings). Establishments in this industry purchase nonferrous metals, such as copper, nickel, lead, and zinc, made in other establishments.'\n },\n '332111': {\n title: 'Iron and Steel Forging',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing iron and steel forgings from purchased iron and steel by hammering mill shapes. Establishments making iron and steel forgings and further manufacturing (e.g., machining, assembling) a specific manufactured product are classified in the industry of the finished product. Iron and steel forging establishments may perform surface finishing operations, such as cleaning and deburring, on the forgings they manufacture.'\n },\n '332112': {\n title: 'Nonferrous Forging',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing nonferrous forgings from purchased nonferrous metals by hammering mill shapes. Establishments making nonferrous forgings and further manufacturing (e.g., machining, assembling) a specific manufactured product are classified in the industry of the finished product. Nonferrous forging establishments may perform surface finishing operations, such as cleaning and deburring, on the forgings they manufacture.'\n },\n '332114': {\n title: 'Custom Roll Forming',\n description:\n 'This U.S. industry comprises establishments primarily engaged in custom roll forming metal products by use of rotary motion of rolls with various contours to bend or shape the products.'\n },\n '332117': {\n title: 'Powder Metallurgy Part Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing powder metallurgy products using any of the various powder metallurgy processing techniques, such as pressing and sintering or metal injection molding. Establishments in this industry generally make a wide range of parts on a job or order basis.'\n },\n '332119': {\n title: 'Metal Crown, Closure, and Other Metal Stamping (except Automotive)',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) stamping metal crowns and closures, such as bottle caps and home canning lids and rings, and/or (2) manufacturing other unfinished metal stampings and spinning unfinished metal products (except automotive, cans, and coins). Establishments making metal stampings and metal spun products and further manufacturing (e.g., machining, assembling) a specific product are classified in the industry of the finished product. Metal stamping and metal spun products establishments may perform surface finishing operations, such as cleaning and deburring, on the products they manufacture.'\n },\n '332215': {\n title: 'Metal Kitchen Cookware, Utensil, Cutlery, and Flatware (except Precious) Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing metal kitchen cookware (except by casting (e.g., cast iron skillets) or stamped without further fabrication), utensils, and/or nonprecious and precious plated metal cutlery and flatware.'\n },\n '332216': {\n title: 'Saw Blade and Handtool Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing saw blades, all types (including those for power sawing machines) and/or (2) manufacturing nonpowered handtools and edge tools.'\n },\n '332311': {\n title: 'Prefabricated Metal Building and Component Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing prefabricated metal buildings, panels, and sections.'\n },\n '332312': {\n title: 'Fabricated Structural Metal Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in fabricating structural metal products, such as assemblies of concrete reinforcing bars and fabricated bar joists.'\n },\n '332313': {\n title: 'Plate Work Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing fabricated metal plate work by cutting, punching, bending, shaping, and welding purchased metal plate.'\n },\n '332321': {\n title: 'Metal Window and Door Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing metal framed windows (i.e., typically using purchased glass) and metal doors. Examples of products made by these establishments are metal door frames; metal framed window and door screens; and metal molding and trim (except automotive).'\n },\n '332322': {\n title: 'Sheet Metal Work Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing sheet metal work (except stampings).'\n },\n '332323': {\n title: 'Ornamental and Architectural Metal Work Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing ornamental and architectural metal work, such as staircases, metal open steel flooring, fire escapes, railings, and scaffolding.'\n },\n '332410': {\n title: 'Power Boiler and Heat Exchanger Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing power boilers and heat exchangers. Establishments in this industry may perform installation in addition to manufacturing power boilers and heat exchangers.'\n },\n '332420': {\n title: 'Metal Tank (Heavy Gauge) Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in cutting, forming, and joining heavy gauge metal to manufacture tanks, vessels, and other containers.'\n },\n '332431': {\n title: 'Metal Can Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing metal cans, lids, and ends.'\n },\n '332439': {\n title: 'Other Metal Container Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing metal (light gauge) containers (except cans).'\n },\n '332510': {\n title: 'Hardware Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing metal hardware, such as metal hinges, metal handles, keys, and locks (except coin- or card-operated, time locks).'\n },\n '332613': {\n title: 'Spring Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing springs from purchased wire, strip, or rod.'\n },\n '332618': {\n title: 'Other Fabricated Wire Product Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing fabricated wire products (except springs) made from purchased wire.'\n },\n '332710': {\n title: 'Machine Shops',\n description:\n 'This industry comprises establishments known as machine shops primarily engaged in machining metal and plastic parts and parts of other composite materials on a job or order basis. Generally machine shop jobs are low volume using machine tools, such as lathes (including computer numerically controlled); automatic screw machines; and machines for boring, grinding, milling, and additive manufacturing.'\n },\n '332721': {\n title: 'Precision Turned Product Manufacturing',\n description:\n 'This U.S. industry comprises establishments known as precision turned manufacturers primarily engaged in machining precision products of all materials on a job or order basis. Generally precision turned product jobs are large volume using machines, such as automatic screw machines, rotary transfer machines, computer numerically controlled (CNC) lathes, or turning centers.'\n },\n '332722': {\n title: 'Bolt, Nut, Screw, Rivet, and Washer Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing metal bolts, nuts, screws, rivets, washers, and other industrial fasteners using machines, such as headers, threaders, and nut forming machines.'\n },\n '332811': {\n title: 'Metal Heat Treating',\n description:\n 'This U.S. industry comprises establishments primarily engaged in heat treating, such as annealing, tempering, and brazing, and cryogenically treating metals and metal products for the trade.'\n },\n '332812': {\n title:\n 'Metal Coating, Engraving (except Jewelry and Silverware), and Allied Services to Manufacturers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) enameling, lacquering, and varnishing metals and metal products; (2) hot dip galvanizing metals and metal products; (3) engraving, chasing, or etching metals and metal products (except jewelry; personal goods carried on or about the person, such as compacts and cigarette cases; precious metal products (except precious plated flatware and other plated ware); and printing plates); (4) powder coating metals and metal products; and (5) providing other metal surfacing services for the trade. Included in this industry are establishments that perform these processes on other materials, such as plastics, in addition to metals.'\n },\n '332813': {\n title: 'Electroplating, Plating, Polishing, Anodizing, and Coloring',\n description:\n 'This U.S. industry comprises establishments primarily engaged in electroplating, plating, anodizing, coloring, buffing, polishing, cleaning, and sandblasting metals and metal products for the trade. Included in this industry are establishments that perform these processes on other materials, such as plastics, in addition to metals.'\n },\n '332911': {\n title: 'Industrial Valve Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing industrial valves and valves for water works and municipal water systems.'\n },\n '332912': {\n title: 'Fluid Power Valve and Hose Fitting Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing fluid power valves and hose fittings.'\n },\n '332913': {\n title: 'Plumbing Fixture Fitting and Trim Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing plumbing fixture fittings and trim of all materials, such as faucets, flush valves, and shower heads.'\n },\n '332919': {\n title: 'Other Metal Valve and Pipe Fitting Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing metal valves (except industrial valves, fluid power valves, fluid power hose fittings, and plumbing fixture fittings and trim).'\n },\n '332991': {\n title: 'Ball and Roller Bearing Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing ball and roller bearings of all materials.'\n },\n '332992': {\n title: 'Small Arms Ammunition Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing small arms ammunition.'\n },\n '332993': {\n title: 'Ammunition (except Small Arms) Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing ammunition (except small arms). Examples of products made by these establishments are bombs, depth charges, rockets (except guided missiles), grenades, mines, and torpedoes.'\n },\n '332994': {\n title: 'Small Arms, Ordnance, and Ordnance Accessories Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing small arms, other ordnance, and/or ordnance accessories.'\n },\n '332996': {\n title: 'Fabricated Pipe and Pipe Fitting Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in fabricating, such as cutting, threading, and bending, metal pipes and pipe fittings made from purchased metal pipe.'\n },\n '332999': {\n title: 'All Other Miscellaneous Fabricated Metal Product Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing fabricated metal products (except forgings and stampings, cutlery and handtools, architectural and structural metals, boilers, tanks, shipping containers, hardware, spring and wire products, machine shop products, turned products, screws, nuts and bolts, metal valves, ball and roller bearings, ammunition, small arms and other ordnances and accessories, and fabricated pipes and pipe fittings).'\n },\n '333111': {\n title: 'Farm Machinery and Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing agricultural and farm machinery and equipment, and other turf and grounds care equipment, including planting, harvesting, and grass mowing equipment (except lawn and garden-type).'\n },\n '333112': {\n title: 'Lawn and Garden Tractor and Home Lawn and Garden Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing powered lawnmowers, lawn and garden tractors, and other home lawn and garden equipment, such as tillers, shredders, yard vacuums, and leaf blowers.'\n },\n '333120': {\n title: 'Construction Machinery Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing construction machinery, surface mining machinery, and logging equipment.'\n },\n '333131': {\n title: 'Mining Machinery and Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing underground mining machinery and equipment, such as coal breakers, mining cars, core drills, coal cutters, and rock drills, and (2) manufacturing mineral beneficiating machinery and equipment used in surface or underground mines.'\n },\n '333132': {\n title: 'Oil and Gas Field Machinery and Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing oil and gas field machinery and equipment, such as oil and gas field drilling machinery and equipment; oil and gas field production machinery and equipment; and oil and gas field derricks, and (2) manufacturing water well drilling machinery.'\n },\n '333241': {\n title: 'Food Product Machinery Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing food and beverage manufacturing-type machinery and equipment, such as dairy product plant machinery and equipment (e.g., homogenizers, pasteurizers, ice cream freezers), bakery machinery and equipment (e.g., dough mixers, bake ovens, pastry rolling machines), meat and poultry processing and preparation machinery, and other commercial food products machinery (e.g., slicers, choppers, and mixers).'\n },\n '333242': {\n title: 'Semiconductor Machinery Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing wafer processing equipment, semiconductor assembly and packaging equipment, and other semiconductor making machinery.'\n },\n '333243': {\n title: 'Sawmill, Woodworking, and Paper Machinery Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing sawmill and woodworking machinery (except handheld), such as circular and band sawing equipment, planing machinery, and sanding machinery, and/or (2) manufacturing paper industry machinery for making paper and paper products, such as pulp making machinery, paper and paperboard making machinery, and paper and paperboard converting machinery.'\n },\n '333248': {\n title: 'All Other Industrial Machinery Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing industrial machinery (except agricultural and farm-type; construction and mining machinery; food manufacturing-type machinery; semiconductor making machinery; and sawmill, woodworking, and paper making machinery).'\n },\n '333310': {\n title: 'Commercial and Service Industry Machinery Manufacturing',\n description:\n \"This industry comprises establishments primarily engaged in manufacturing commercial and service industry machinery, such as optical instruments and lenses (except ophthalmic), photographic and photocopying equipment, automatic vending machinery, commercial laundry and drycleaning machinery, office machinery, automotive maintenance equipment (except mechanics' handtools), and commercial-type cooking equipment.\"\n },\n '333413': {\n title: 'Industrial and Commercial Fan and Blower and Air Purification Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing stationary air purification equipment, such as industrial dust and fume collection equipment, electrostatic precipitation equipment, warm air furnace filters, air washers, and other dust collection equipment, and/or (2) manufacturing attic fans and industrial and commercial fans and blowers, such as commercial exhaust fans and commercial ventilating fans.'\n },\n '333414': {\n title: 'Heating Equipment (except Warm Air Furnaces) Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing heating equipment (except electric and warm air furnaces), such as heating boilers, heating stoves, floor and wall furnaces, and wall and baseboard heating units.'\n },\n '333415': {\n title:\n 'Air-Conditioning and Warm Air Heating Equipment and Commercial and Industrial Refrigeration Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing air-conditioning (except motor vehicle) and warm air furnace equipment and/or (2) manufacturing commercial and industrial refrigeration and freezer equipment.'\n },\n '333511': {\n title: 'Industrial Mold Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing industrial molds for casting metals or forming other materials, such as plastics, glass, or rubber.'\n },\n '333514': {\n title: 'Special Die and Tool, Die Set, Jig, and Fixture Manufacturing',\n description:\n 'This U.S. industry comprises establishments, known as tool and die shops, primarily engaged in manufacturing special tools and fixtures, such as cutting dies and jigs.'\n },\n '333515': {\n title: 'Cutting Tool and Machine Tool Accessory Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing accessories and attachments for metal cutting and metal forming machine tools.'\n },\n '333517': {\n title: 'Machine Tool Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing metal cutting machine tools (except handtools) and/or (2) manufacturing metal forming machine tools (except handtools), such as punching, sheering, bending, forming, pressing, forging and die-casting machines.'\n },\n '333519': {\n title: 'Rolling Mill and Other Metalworking Machinery Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing rolling mill machinery and equipment and/or other metalworking machinery (except industrial molds; special dies and tools, die sets, jigs, and fixtures; cutting tools and machine tool accessories; and machine tools).'\n },\n '333611': {\n title: 'Turbine and Turbine Generator Set Units Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing turbines (except aircraft); and complete turbine generator set units, such as steam, hydraulic, gas, and wind.'\n },\n '333612': {\n title: 'Speed Changer, Industrial High-Speed Drive, and Gear Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing gears, speed changers, and industrial high-speed drives (except hydrostatic).'\n },\n '333613': {\n title: 'Mechanical Power Transmission Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing mechanical power transmission equipment (except motor vehicle and aircraft), such as plain bearings, clutches (except motor vehicle and electromagnetic industrial control), couplings, joints, and drive chains.'\n },\n '333618': {\n title: 'Other Engine Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing internal combustion engines (except automotive gasoline and aircraft).'\n },\n '333912': {\n title: 'Air and Gas Compressor Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing general purpose air and gas compressors, such as reciprocating compressors, centrifugal compressors, vacuum pumps (except laboratory), and nonagricultural spraying and dusting compressors and spray gun units.'\n },\n '333914': {\n title: 'Measuring, Dispensing, and Other Pumping Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing measuring and dispensing pumps, such as gasoline pumps and lubricating oil measuring and dispensing pumps and/or (2) manufacturing general purpose pumps and pumping equipment (except fluid power pumps and motors), such as reciprocating pumps, turbine pumps, centrifugal pumps, rotary pumps, diaphragm pumps, domestic water system pumps, oil well and oil field pumps, and sump pumps.'\n },\n '333921': {\n title: 'Elevator and Moving Stairway Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing elevators and moving stairways.'\n },\n '333922': {\n title: 'Conveyor and Conveying Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing conveyors and conveying equipment, such as gravity conveyors, trolley conveyors, tow conveyors, pneumatic tube conveyors, carousel conveyors, farm conveyors, and belt conveyors.'\n },\n '333923': {\n title: 'Overhead Traveling Crane, Hoist, and Monorail System Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing overhead traveling cranes, hoists, and monorail systems.'\n },\n '333924': {\n title: 'Industrial Truck, Tractor, Trailer, and Stacker Machinery Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing industrial trucks, tractors, trailers, and stackers (i.e., truck-type) such as forklifts, pallet loaders and unloaders, and portable loading docks.'\n },\n '333991': {\n title: 'Power-Driven Handtool Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing power-driven (e.g., battery, corded, pneumatic) handtools, such as drills, screwguns, circular saws, chain saws, staplers, and nailers.'\n },\n '333992': {\n title: 'Welding and Soldering Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing welding and soldering equipment and accessories (except transformers), such as arc, resistance, gas, plasma, laser, electron beam, and ultrasonic welding equipment; welding electrodes; coated or cored welding wire; and soldering equipment (except handheld).'\n },\n '333993': {\n title: 'Packaging Machinery Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing packaging machinery, such as wrapping, bottling, canning, and labeling machinery.'\n },\n '333994': {\n title: 'Industrial Process Furnace and Oven Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing industrial process ovens, induction and dielectric heating equipment, and kilns (except cement, chemical, wood). Included in this industry are establishments manufacturing laboratory furnaces and ovens.'\n },\n '333995': {\n title: 'Fluid Power Cylinder and Actuator Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing fluid power (i.e., hydraulic and pneumatic) cylinders and actuators.'\n },\n '333996': {\n title: 'Fluid Power Pump and Motor Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing fluid power (i.e., hydraulic and pneumatic) pumps and motors.'\n },\n '333998': {\n title: 'All Other Miscellaneous General Purpose Machinery Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing general purpose machinery (except ventilating, heating, air-conditioning, and commercial refrigeration equipment; metalworking machinery; engines, turbines, and power transmission equipment; pumps and compressors; material handling equipment; power-driven handtools; welding and soldering equipment; packaging machinery; industrial process furnaces and ovens; fluid power cylinders and actuators; and fluid power pumps and motors).'\n },\n '334111': {\n title: 'Electronic Computer Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing and/or assembling electronic computers, such as mainframes, personal computers, workstations, laptops, and computer servers. Computers can be analog, digital, or hybrid. Digital computers, the most common type, are devices that do all of the following: (1) store the processing program or programs and the data immediately necessary for the execution of the program; (2) can be freely programmed in accordance with the requirements of the user; (3) perform arithmetical computations specified by the user; and (4) execute, without human intervention, a processing program that requires the computer to modify its execution by logical decision during the processing run. Analog computers are capable of simulating mathematical models and contain at least analog, control, and programming elements. The manufacture of computers includes the assembly or integration of processors, coprocessors, memory, storage, and input/output devices into a user-programmable final product.'\n },\n '334112': {\n title: 'Computer Storage Device Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing computer storage devices that allow the storage and retrieval of data from a phase change, magnetic, optical, or magnetic/optical media. Examples of products made by these establishments are computer disk drives, USB flash drives, and tape storage and backup units.'\n },\n '334118': {\n title: 'Computer Terminal and Other Computer Peripheral Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing computer terminals and other computer peripheral equipment (except storage devices).'\n },\n '334210': {\n title: 'Telephone Apparatus Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing wire telephone and data communications equipment. These products may be stand-alone or board-level components of a larger system. Examples of products made by these establishments are central office switching equipment, cordless and wire telephones (except cellular), PBX equipment, telephone answering machines, LAN modems, multi-user modems, and other data communications equipment, such as bridges, routers, and gateways.'\n },\n '334220': {\n title: 'Radio and Television Broadcasting and Wireless Communications Equipment Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing radio and television broadcast and wireless communications equipment. Examples of products made by these establishments are transmitting and receiving antennas, cable television equipment, GPS equipment, pagers, cellular phones, mobile communications equipment, and radio and television studio and broadcasting equipment.'\n },\n '334290': {\n title: 'Other Communications Equipment Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing communications equipment (except telephone apparatus, radio and television broadcast equipment, and wireless communications equipment).'\n },\n '334310': {\n title: 'Audio and Video Equipment Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing electronic audio and video equipment for home entertainment, motor vehicles, and public address and musical instrument amplification. Examples of products made by these establishments are digital video recorders, televisions, stereo equipment, speaker systems, household-type video cameras, jukeboxes, and amplifiers for musical instruments and public address systems.'\n },\n '334412': {\n title: 'Bare Printed Circuit Board Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing bare (i.e., rigid or flexible) printed circuit boards without mounted electronic components. These establishments print, perforate, plate, screen, etch, or photoprint interconnecting pathways for electric current on laminates.'\n },\n '334413': {\n title: 'Semiconductor and Related Device Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing semiconductors and related solid-state devices. Examples of products made by these establishments are integrated circuits, memory chips, microprocessors, diodes, transistors, solar cells, and other optoelectronic devices.'\n },\n '334416': {\n title: 'Capacitor, Resistor, Coil, Transformer, and Other Inductor Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) manufacturing electronic fixed and variable capacitors and condensers; (2) manufacturing electronic resistors, such as fixed and variable resistors, resistor networks, thermistors, and varistors; and (3) manufacturing electronic inductors, such as coils and transformers.'\n },\n '334417': {\n title: 'Electronic Connector Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing electronic connectors, such as coaxial, cylindrical, rack and panel, pin and sleeve, printed circuit, and fiber optic.'\n },\n '334418': {\n title: 'Printed Circuit Assembly (Electronic Assembly) Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in loading components onto printed circuit boards or who manufacture and ship loaded printed circuit boards. Also known as printed circuit assemblies, electronics assemblies, or modules, these products are printed circuit boards that have some or all of the semiconductor and electronic components inserted or mounted and are inputs to a wide variety of electronic systems and devices.'\n },\n '334419': {\n title: 'Other Electronic Component Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing electronic components (except bare printed circuit boards; semiconductors and related devices; electronic capacitors; electronic resistors; coils, transformers, and other inductors; connectors; and loaded printed circuit boards).'\n },\n '334510': {\n title: 'Electromedical and Electrotherapeutic Apparatus Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing electromedical and electrotherapeutic apparatus, such as magnetic resonance imaging equipment, medical ultrasound equipment, pacemakers, hearing aids, electrocardiographs, and electromedical endoscopic equipment.'\n },\n '334511': {\n title:\n 'Search, Detection, Navigation, Guidance, Aeronautical, and Nautical System and Instrument Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing search, detection, navigation, guidance, aeronautical, and nautical systems and instruments. Examples of products made by these establishments are aircraft instruments (except engine), flight recorders, navigational instruments and systems, radar systems and equipment, and sonar systems and equipment.'\n },\n '334512': {\n title:\n 'Automatic Environmental Control Manufacturing for Residential, Commercial, and Appliance Use',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing automatic controls and regulators for applications, such as heating, air-conditioning, refrigeration, and appliances.'\n },\n '334513': {\n title:\n 'Instruments and Related Products Manufacturing for Measuring, Displaying, and Controlling Industrial Process Variables',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing instruments and related devices for measuring, displaying, indicating, recording, transmitting, and controlling industrial process variables. These instruments measure, display, or control (monitor, analyze, and so forth) industrial process variables, such as temperature, humidity, pressure, vacuum, combustion, flow, level, viscosity, density, acidity, concentration, and rotation.'\n },\n '334514': {\n title: 'Totalizing Fluid Meter and Counting Device Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing totalizing (i.e., registering) fluid meters and counting devices. Examples of products made by these establishments are gas consumption meters, water consumption meters, parking meters, taxi meters, motor vehicle gauges, and fare collection equipment.'\n },\n '334515': {\n title: 'Instrument Manufacturing for Measuring and Testing Electricity and Electrical Signals',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing instruments for measuring and testing the characteristics of electricity and electrical signals. Examples of products made by these establishments are circuit and continuity testers, voltmeters, ohm meters, wattmeters, multimeters, and semiconductor test equipment.'\n },\n '334516': {\n title: 'Analytical Laboratory Instrument Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing instruments and instrumentation systems for laboratory analysis of the chemical or physical composition or concentration of samples of solid, fluid, gaseous, or composite material.'\n },\n '334517': {\n title: 'Irradiation Apparatus Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing irradiation apparatus and tubes for applications, such as medical diagnostic, medical therapeutic, industrial, research, and scientific evaluation. Irradiation can take the form of beta-rays, gamma-rays, X-rays, or other ionizing radiation.'\n },\n '334519': {\n title: 'Other Measuring and Controlling Device Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing measuring and controlling devices (except search, detection, navigation, guidance, aeronautical, and nautical instruments and systems; automatic environmental controls for residential, commercial, and appliance use; instruments for measurement, display, and control of industrial process variables; totalizing fluid meters and counting devices; instruments for measuring and testing electricity and electrical signals; analytical laboratory instruments; irradiation equipment; and electromedical and electrotherapeutic apparatus).'\n },\n '334610': {\n title: 'Manufacturing and Reproducing Magnetic and Optical Media',\n description:\n 'This industry comprises establishments primarily engaged in (1) manufacturing optical and magnetic media, such as blank audio tapes, blank video tapes, and blank diskettes, and/or (2) mass duplicating (i.e., making copies) audio, video, software, and other data on magnetic, optical, and similar media. These establishments do not generally develop software or produce audio or video content.'\n },\n '335131': {\n title: 'Residential Electric Lighting Fixture Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing fixed or portable residential electric lighting fixtures and lamp shades of metal, paper, or textiles. Residential electric lighting fixtures include those for use both inside and outside the residence.'\n },\n '335132': {\n title: 'Commercial, Industrial, and Institutional Electric Lighting Fixture Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing commercial, industrial, and institutional electric lighting fixtures.'\n },\n '335139': {\n title: 'Electric Lamp Bulb and Other Lighting Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing electric light bulbs, tubes, and parts (except glass blanks for electric light bulbs and light emitting diodes (LEDs)), electric lighting fixtures (except residential, commercial, industrial, institutional, and vehicular electric lighting fixtures), and nonelectric lighting equipment.'\n },\n '335210': {\n title: 'Small Electrical Appliance Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing small electric appliances and electric housewares, household-type fans (except attic fans), household-type vacuum cleaners, and other electric household-type floor care machines.'\n },\n '335220': {\n title: 'Major Household Appliance Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing household-type cooking appliances, household-type laundry equipment, household-type refrigerators, upright and chest freezers, and other electrical and nonelectrical major household-type appliances, such as dishwashers, water heaters, and garbage disposal units.'\n },\n '335311': {\n title: 'Power, Distribution, and Specialty Transformer Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing power, distribution, and specialty transformers (except electronic components). Industrial-type and consumer-type transformers in this industry vary (e.g., step up or step down) voltage but do not convert alternating to direct or direct to alternating current.'\n },\n '335312': {\n title: 'Motor and Generator Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing electric motors (except internal combustion engine starting motors), power generators (except battery charging alternators for internal combustion engines), and motor generator sets (except turbine generator set units). This industry includes establishments rewinding armatures on a factory basis.'\n },\n '335313': {\n title: 'Switchgear and Switchboard Apparatus Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing switchgear and switchboard apparatus.'\n },\n '335314': {\n title: 'Relay and Industrial Control Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing relays, motor starters and controllers, and other industrial controls and control accessories.'\n },\n '335910': {\n title: 'Battery Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing primary and storage batteries.'\n },\n '335921': {\n title: 'Fiber Optic Cable Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing insulated fiber optic cable from purchased fiber optic strand.'\n },\n '335929': {\n title: 'Other Communication and Energy Wire Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing insulated wire and cable of nonferrous metals from purchased wire.'\n },\n '335931': {\n title: 'Current-Carrying Wiring Device Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing current-carrying wiring devices.'\n },\n '335932': {\n title: 'Noncurrent-Carrying Wiring Device Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing noncurrent-carrying wiring devices.'\n },\n '335991': {\n title: 'Carbon and Graphite Product Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing carbon, graphite, and metal-graphite brushes and brush stock; carbon or graphite electrodes for thermal and electrolytic uses; carbon and graphite fibers; and other carbon, graphite, and metal-graphite products.'\n },\n '335999': {\n title: 'All Other Miscellaneous Electrical Equipment and Component Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing industrial and commercial electric apparatus and other equipment (except lighting equipment, household appliances, transformers, motors, generators, switchgear, relays, industrial controls, batteries, communication and energy wire and cable, wiring devices, and carbon and graphite products). Examples of products made by these establishments are power converters (i.e., AC to DC and DC to AC), power supplies, surge suppressors, and similar equipment for industrial-type and consumer-type equipment.'\n },\n '336110': {\n title: 'Automobile and Light Duty Motor Vehicle Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in (1) manufacturing complete automobiles and light duty motor vehicles (i.e., body and chassis or unibody) or (2) manufacturing automobile and light duty motor vehicle chassis only. Vehicles made include passenger cars, light duty trucks, light duty vans, pick-up trucks, minivans, and sport utility vehicles.'\n },\n '336120': {\n title: 'Heavy Duty Truck Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in (1) manufacturing heavy duty truck chassis and assembling complete heavy duty trucks, buses, heavy duty motor homes, and other special purpose heavy duty motor vehicles for highway use or (2) manufacturing heavy duty truck chassis only.'\n },\n '336211': {\n title: 'Motor Vehicle Body Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing truck and bus bodies and cabs and automobile bodies. The products made may be sold separately or may be assembled on purchased chassis and sold as complete vehicles.'\n },\n '336212': {\n title: 'Truck Trailer Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing truck trailers, truck trailer chassis, cargo container chassis, detachable trailer bodies, and detachable trailer chassis for sale separately.'\n },\n '336213': {\n title: 'Motor Home Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing motor homes on purchased chassis and/or (2) manufacturing conversion vans on an assembly line basis. Motor homes are units where the motor and the living quarters are integrated in the same unit.'\n },\n '336214': {\n title: 'Travel Trailer and Camper Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) manufacturing travel trailers and campers designed to attach to motor vehicles; (2) manufacturing pick-up coaches (i.e., campers) and caps (i.e., covers) for mounting on pick-up trucks; and (3) manufacturing automobile, utility, and light-truck trailers. Travel trailers do not have their own motor but are designed to be towed by a motor unit, such as an automobile or a light truck.'\n },\n '336310': {\n title: 'Motor Vehicle Gasoline Engine and Engine Parts Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in (1) manufacturing and/or rebuilding motor vehicle gasoline engines and engine parts and/or (2) manufacturing and/or rebuilding carburetors, pistons, piston rings, and engine valves, whether or not for vehicular use.'\n },\n '336320': {\n title: 'Motor Vehicle Electrical and Electronic Equipment Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing and/or rebuilding electrical and electronic equipment for motor vehicles and internal combustion engines. The products made can be used for all types of transportation equipment (i.e., aircraft, automobiles, trucks, trains, ships) or stationary internal combustion engine applications.'\n },\n '336330': {\n title: 'Motor Vehicle Steering and Suspension Components (except Spring) Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing and/or rebuilding motor vehicle steering mechanisms and suspension components (except springs).'\n },\n '336340': {\n title: 'Motor Vehicle Brake System Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing and/or rebuilding motor vehicle brake systems and related components.'\n },\n '336350': {\n title: 'Motor Vehicle Transmission and Power Train Parts Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing and/or rebuilding motor vehicle transmissions and power train parts.'\n },\n '336360': {\n title: 'Motor Vehicle Seating and Interior Trim Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing motor vehicle seating, seats, seat frames, seat belts, and interior trimmings.'\n },\n '336370': {\n title: 'Motor Vehicle Metal Stamping',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing motor vehicle stampings, such as fenders, tops, body parts, trim, and molding.'\n },\n '336390': {\n title: 'Other Motor Vehicle Parts Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing and/or rebuilding motor vehicle parts and accessories (except motor vehicle gasoline engines and engine parts, motor vehicle electrical and electronic equipment, motor vehicle steering and suspension components, motor vehicle brake systems, motor vehicle transmissions and power train parts, motor vehicle seating and interior trim, and motor vehicle stampings).'\n },\n '336411': {\n title: 'Aircraft Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) manufacturing or assembling complete aircraft; (2) developing and making aircraft prototypes; (3) aircraft conversion (i.e., major modifications to systems); and (4) complete aircraft overhaul and rebuilding (i.e., periodic restoration of aircraft to original design specifications).'\n },\n '336412': {\n title: 'Aircraft Engine and Engine Parts Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) manufacturing aircraft engines and engine parts; (2) developing and making prototypes of aircraft engines and engine parts; (3) aircraft propulsion system conversion (i.e., major modifications to systems); and (4) aircraft propulsion systems overhaul and rebuilding (i.e., periodic restoration of aircraft propulsion system to original design specifications).'\n },\n '336413': {\n title: 'Other Aircraft Parts and Auxiliary Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing aircraft parts or auxiliary equipment (except engines and aircraft fluid power subassemblies) and/or (2) developing and making prototypes of aircraft parts and auxiliary equipment. Auxiliary equipment includes such items as crop dusting apparatus, armament racks, inflight refueling equipment, and external fuel tanks.'\n },\n '336414': {\n title: 'Guided Missile and Space Vehicle Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing complete guided missiles and space vehicles and/or (2) developing and making prototypes of guided missiles or space vehicles.'\n },\n '336415': {\n title:\n 'Guided Missile and Space Vehicle Propulsion Unit and Propulsion Unit Parts Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing guided missile and/or space vehicle propulsion units and propulsion unit parts and/or (2) developing and making prototypes of guided missile and space vehicle propulsion units and propulsion unit parts.'\n },\n '336419': {\n title: 'Other Guided Missile and Space Vehicle Parts and Auxiliary Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) manufacturing guided missile and space vehicle parts and auxiliary equipment (except guided missile and space vehicle propulsion units and propulsion unit parts) and/or (2) developing and making prototypes of guided missile and space vehicle parts and auxiliary equipment.'\n },\n '336510': {\n title: 'Railroad Rolling Stock Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) manufacturing and/or rebuilding locomotives, locomotive frames, and parts; (2) manufacturing railroad, street, and rapid transit cars and car equipment for operation on rails for freight and passenger service; and (3) manufacturing rail layers, ballast distributors, rail tamping equipment, and other railway track maintenance equipment.'\n },\n '336611': {\n title: 'Ship Building and Repairing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating shipyards. Shipyards are fixed facilities with drydocks and fabrication equipment capable of building a ship, defined as watercraft typically suitable or intended for other than personal or recreational use. Activities of shipyards include the construction of ships, their repair, conversion and alteration, the production of prefabricated ship and barge sections, and specialized services, such as ship scaling.'\n },\n '336612': {\n title: 'Boat Building',\n description:\n 'This U.S. industry comprises establishments primarily engaged in building boats. Boats are defined as watercraft not built in shipyards and typically of the type suitable or intended for personal use. Included in this industry are establishments that manufacture heavy-duty inflatable rubber or inflatable plastic boats (RIBs).'\n },\n '336991': {\n title: 'Motorcycle, Bicycle, and Parts Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing motorcycles, bicycles, tricycles and similar equipment, and parts.'\n },\n '336992': {\n title: 'Military Armored Vehicle, Tank, and Tank Component Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing complete military armored vehicles, combat tanks, specialized components for combat tanks, and self-propelled weapons.'\n },\n '336999': {\n title: 'All Other Transportation Equipment Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing transportation equipment (except motor vehicles, motor vehicle parts, boats, ships, railroad rolling stock, aerospace products, motorcycles, bicycles, armored vehicles, and tanks).'\n },\n '337110': {\n title: 'Wood Kitchen Cabinet and Countertop Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing wood or plastics laminated on wood kitchen cabinets, bathroom vanities, and countertops (except freestanding). The cabinets and counters may be made on a stock or custom basis.'\n },\n '337121': {\n title: 'Upholstered Household Furniture Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing upholstered household-type furniture. The furniture may be made on a stock or custom basis.'\n },\n '337122': {\n title: 'Nonupholstered Wood Household Furniture Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing nonupholstered wood household-type furniture and freestanding cabinets (except television, stereo, and sewing machine cabinets). The furniture may be made on a stock or custom basis and may be assembled or unassembled (i.e., knockdown).'\n },\n '337126': {\n title: 'Household Furniture (except Wood and Upholstered) Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing nonupholstered household-type furniture of materials other than wood, such as metal, plastics, reed, rattan, wicker, and fiberglass. The furniture may be partially upholstered (e.g., chairs with upholstered seats or backs), made on a stock or custom basis, and may be assembled or unassembled (i.e., knockdown).'\n },\n '337127': {\n title: 'Institutional Furniture Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing institutional-type furniture (e.g., library, school, theater, and church furniture). Included in this industry are establishments primarily engaged in manufacturing general purpose hospital, laboratory, and dental furniture (e.g., tables, stools, and benches). The furniture may be made on a stock or custom basis and may be assembled or unassembled (i.e., knockdown).'\n },\n '337211': {\n title: 'Wood Office Furniture Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing wood office-type furniture. The furniture may be made on a stock or custom basis and may be assembled or unassembled (i.e., knockdown).'\n },\n '337212': {\n title: 'Custom Architectural Woodwork and Millwork Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing custom designed interiors consisting of architectural woodwork and fixtures utilizing wood, wood products, and plastics laminates. All of the industry output is made to individual order on a job shop basis and requires skilled craftsmen as a labor input. A job might include custom manufacturing of display fixtures, gondolas, wall shelving units, entrance and window architectural detail, sales and reception counters, wall paneling, and matching furniture.'\n },\n '337214': {\n title: 'Office Furniture (except Wood) Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing nonwood office-type furniture. The furniture may be made on a stock or custom basis and may be assembled or unassembled (i.e., knockdown).'\n },\n '337215': {\n title: 'Showcase, Partition, Shelving, and Locker Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing wood and nonwood office and store fixtures, shelving, lockers, frames, partitions, and related fabricated products of wood and nonwood materials, including plastics laminated fixture tops. The products are made on a stock or custom basis and may be assembled or unassembled (i.e., knockdown). Establishments exclusively making furniture parts (e.g., frames) are included in this industry.'\n },\n '337910': {\n title: 'Mattress Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing innerspring, box spring, and noninnerspring mattresses.'\n },\n '337920': {\n title: 'Blind and Shade Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing one or more of the following: venetian blinds, other window blinds, and shades; curtain and drapery rods and poles; and/or curtain and drapery fixtures. The blinds and shades may be made on a stock or custom basis and may be made of any material.'\n },\n '339112': {\n title: 'Surgical and Medical Instrument Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing medical, surgical, ophthalmic, and veterinary instruments and apparatus (except electrotherapeutic, electromedical, and irradiation apparatus). Examples of products made by these establishments are syringes, hypodermic needles, anesthesia apparatus, blood transfusion equipment, catheters, surgical clamps, and medical thermometers.'\n },\n '339113': {\n title: 'Surgical Appliance and Supplies Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing surgical appliances and supplies. Examples of products made by these establishments are orthopedic devices, prosthetic appliances, surgical dressings, crutches, surgical sutures, personal industrial safety devices (except protective eyewear), hospital beds, and operating room tables.'\n },\n '339114': {\n title: 'Dental Equipment and Supplies Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing dental equipment and supplies used by dental laboratories and offices of dentists, such as dental chairs, dental instrument delivery systems, dental hand instruments, dental impression material, and dental cements.'\n },\n '339115': {\n title: 'Ophthalmic Goods Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing ophthalmic goods. Examples of products made by these establishments are prescription eyeglasses (except grinding lenses in a retail setting), contact lenses, sunglasses, eyeglass frames, reading glasses made to standard powers, and protective eyewear.'\n },\n '339116': {\n title: 'Dental Laboratories',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing dentures, crowns, bridges, and orthodontic appliances customized for individual application.'\n },\n '339910': {\n title: 'Jewelry and Silverware Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) manufacturing, engraving, chasing, or etching fine and costume jewelry; (2) manufacturing, engraving, chasing, or etching metal personal goods (i.e., small articles carried on or about the person, such as compacts or cigarette cases); (3) manufacturing, engraving, chasing, or etching precious metal solid, precious metal clad, or pewter flatware and other hollowware; (4) stamping coins; (5) manufacturing unassembled jewelry parts and stock shop products, such as sheet, wire, and tubing; (6) cutting, slabbing, tumbling, carving, engraving, polishing, or faceting precious or semiprecious stones and gems; (7) recutting, repolishing, and setting gem stones; and (8) drilling, sawing, and peeling cultured and costume pearls. This industry includes establishments primarily engaged in manufacturing precious solid, precious clad, and precious plated jewelry and personal goods.'\n },\n '339920': {\n title: 'Sporting and Athletic Goods Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing sporting and athletic goods (except apparel and footwear).'\n },\n '339930': {\n title: 'Doll, Toy, and Game Manufacturing',\n description:\n \"This industry comprises establishments primarily engaged in manufacturing complete dolls, doll parts, doll clothes, action figures, toys, games (including electronic, such as gaming consoles and devices and handheld video games), hobby kits, and children's vehicles (except metal bicycles and tricycles).\"\n },\n '339940': {\n title: 'Office Supplies (except Paper) Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing office supplies. Examples of products made by these establishments are pens, pencils, felt tip markers, crayons, chalk, pencil sharpeners, staplers, modeling clay, hand operated stamps, stamp pads, stencils, carbon paper, and inked ribbons.'\n },\n '339950': {\n title: 'Sign Manufacturing',\n description:\n 'This industry comprises establishments primarily engaged in manufacturing signs and related displays of all materials (except printing paper and paperboard signs, notices, displays).'\n },\n '339991': {\n title: 'Gasket, Packing, and Sealing Device Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing gaskets, packing, and sealing devices of all materials.'\n },\n '339992': {\n title: 'Musical Instrument Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing musical instruments (except toys).'\n },\n '339993': {\n title: 'Fastener, Button, Needle, and Pin Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing fasteners, buttons, needles, pins, and buckles (except made of precious metals or precious and semiprecious stones and gems).'\n },\n '339994': {\n title: 'Broom, Brush, and Mop Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing brooms, mops, and brushes.'\n },\n '339995': {\n title: 'Burial Casket Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in manufacturing burial caskets, cases, and vaults (except concrete).'\n },\n '339999': {\n title: 'All Other Miscellaneous Manufacturing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in miscellaneous manufacturing (except medical equipment and supplies, jewelry and silverware, sporting and athletic goods, dolls, toys, games, office supplies, signs, gaskets, packing, and sealing devices, musical instruments, fasteners, buttons, needles, pins, brooms, brushes, mops, and burial caskets).'\n },\n '423110': {\n title: 'Automobile and Other Motor Vehicle Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of new and used passenger automobiles, trucks, trailers, and other motor vehicles, such as motorcycles, motor homes, and snowmobiles.'\n },\n '423120': {\n title: 'Motor Vehicle Supplies and New Parts Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of motor vehicle supplies, accessories, tools, and equipment; and new motor vehicle parts (except new tires and tubes).'\n },\n '423130': {\n title: 'Tire and Tube Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of new and/or used tires and tubes for passenger and commercial vehicles.'\n },\n '423140': {\n title: 'Motor Vehicle Parts (Used) Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of used motor vehicle parts (except used tires and tubes) and establishments primarily engaged in dismantling motor vehicles for the purpose of selling the parts.'\n },\n '423210': {\n title: 'Furniture Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of furniture (except hospital beds, medical furniture, and drafting tables).'\n },\n '423220': {\n title: 'Home Furnishing Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of home furnishings and/or housewares.'\n },\n '423310': {\n title: 'Lumber, Plywood, Millwork, and Wood Panel Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of lumber; plywood; reconstituted wood fiber products; wood fencing; doors and windows and their frames (all materials); wood roofing and siding; and/or other wood or metal millwork.'\n },\n '423320': {\n title: 'Brick, Stone, and Related Construction Material Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of stone, cement, lime, construction sand, and gravel; brick; asphalt and concrete mixtures; and/or concrete, stone, and structural clay products.'\n },\n '423330': {\n title: 'Roofing, Siding, and Insulation Material Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of nonwood roofing and nonwood siding and insulation materials.'\n },\n '423390': {\n title: 'Other Construction Material Merchant Wholesalers',\n description:\n 'This industry comprises (1) establishments primarily engaged in the merchant wholesale distribution of manufactured homes (i.e., mobile homes) and/or prefabricated buildings and (2) establishments primarily engaged in the merchant wholesale distribution of construction materials (except lumber, plywood, millwork, wood panels, brick, stone, roofing, siding, electrical and wiring supplies, and insulation materials).'\n },\n '423410': {\n title: 'Photographic Equipment and Supplies Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of photographic equipment and supplies (except office equipment).'\n },\n '423420': {\n title: 'Office Equipment Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of office machines and related equipment (except computers and computer peripheral equipment).'\n },\n '423430': {\n title: 'Computer and Computer Peripheral Equipment and Software Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of computers, computer peripheral equipment, loaded computer boards, and/or computer software.'\n },\n '423440': {\n title: 'Other Commercial Equipment Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of commercial and related machines and equipment (except photographic equipment and supplies; office equipment; and computers and computer peripheral equipment and software) generally used in restaurants and stores.'\n },\n '423450': {\n title: 'Medical, Dental, and Hospital Equipment and Supplies Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of professional medical equipment, instruments, and supplies (except ophthalmic equipment and instruments and goods used by ophthalmologists, optometrists, and opticians).'\n },\n '423460': {\n title: 'Ophthalmic Goods Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of professional equipment, instruments, and/or goods sold, prescribed, or used by ophthalmologists, optometrists, and opticians.'\n },\n '423490': {\n title: 'Other Professional Equipment and Supplies Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of professional equipment and supplies (except ophthalmic goods and medical, dental, and hospital equipment and supplies).'\n },\n '423510': {\n title: 'Metal Service Centers and Other Metal Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of products of the primary metals industries. Service centers maintain inventory and may perform functions, such as sawing, shearing, bending, leveling, cleaning, or edging, on a custom basis as part of sales transactions.'\n },\n '423520': {\n title: 'Coal and Other Mineral and Ore Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of coal, coke, metal ores, and/or nonmetallic minerals (except precious and semiprecious stones and minerals used in construction, such as sand and gravel).'\n },\n '423610': {\n title:\n 'Electrical Apparatus and Equipment, Wiring Supplies, and Related Equipment Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of electrical construction materials; wiring supplies; electric light fixtures; light bulbs; and/or electrical power equipment for the generation, transmission, distribution, or control of electric energy.'\n },\n '423620': {\n title:\n 'Household Appliances, Electric Housewares, and Consumer Electronics Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of household-type gas and electric appliances (except water heaters and heating stoves (i.e., noncooking)), room air-conditioners, and/or household-type audio or video equipment.'\n },\n '423690': {\n title: 'Other Electronic Parts and Equipment Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of electronic parts and equipment (except electrical apparatus and equipment, wiring supplies, and construction materials; electrical and electronic appliances; and television sets and radios).'\n },\n '423710': {\n title: 'Hardware Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of hardware, knives, or handtools.'\n },\n '423720': {\n title: 'Plumbing and Heating Equipment and Supplies (Hydronics) Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of plumbing equipment, hydronic heating equipment, household-type water heaters, and/or supplies.'\n },\n '423730': {\n title: 'Warm Air Heating and Air-Conditioning Equipment and Supplies Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of warm air heating and air-conditioning equipment and supplies.'\n },\n '423740': {\n title: 'Refrigeration Equipment and Supplies Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of refrigeration equipment (except household-type refrigerators, freezers, and air-conditioners).'\n },\n '423810': {\n title: 'Construction and Mining (except Oil Well) Machinery and Equipment Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of specialized machinery, equipment, and related parts generally used in construction, mining (except oil well), and logging activities.'\n },\n '423820': {\n title: 'Farm and Garden Machinery and Equipment Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of specialized machinery, equipment, and related parts generally used in agricultural, farm, and lawn and garden activities.'\n },\n '423830': {\n title: 'Industrial Machinery and Equipment Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of specialized machinery, equipment, and related parts generally used in manufacturing, oil well, and warehousing activities.'\n },\n '423840': {\n title: 'Industrial Supplies Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of supplies for machinery and equipment generally used in manufacturing, oil well, and warehousing activities.'\n },\n '423850': {\n title: 'Service Establishment Equipment and Supplies Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of specialized equipment and supplies of the type used by service establishments (except specialized equipment and supplies used in offices, stores, hotels, restaurants, schools, health and medical facilities, photographic facilities, and specialized equipment used in transportation and construction activities).'\n },\n '423860': {\n title: 'Transportation Equipment and Supplies (except Motor Vehicle) Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of transportation equipment and supplies (except marine pleasure craft and motor vehicles).'\n },\n '423910': {\n title: 'Sporting and Recreational Goods and Supplies Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of sporting goods and accessories; billiard and pool supplies; sporting firearms and ammunition; and/or marine pleasure craft, equipment, and supplies.'\n },\n '423920': {\n title: 'Toy and Hobby Goods and Supplies Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of games, toys, fireworks, playing cards, hobby goods and supplies, and/or related goods.'\n },\n '423930': {\n title: 'Recyclable Material Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of automotive scrap, industrial scrap, and other recyclable materials. Included in this industry are auto wreckers primarily engaged in dismantling motor vehicles for the purpose of wholesaling scrap.'\n },\n '423940': {\n title: 'Jewelry, Watch, Precious Stone, and Precious Metal Merchant Wholesalers',\n description:\n \"This industry comprises establishments primarily engaged in the merchant wholesale distribution of jewelry, precious and semiprecious stones, precious metals and metal flatware, costume jewelry, watches, clocks, silverware, and/or jewelers' findings.\"\n },\n '423990': {\n title: 'Other Miscellaneous Durable Goods Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of durable goods (except motor vehicles and motor vehicle parts and supplies; furniture and home furnishings; lumber and other construction materials; professional and commercial equipment and supplies; metals and minerals (except petroleum); electrical goods; hardware, and plumbing and heating equipment and supplies; machinery, equipment, and supplies; sporting and recreational goods and supplies; toy and hobby goods and supplies; recyclable materials; and jewelry, watches, precious stones, and precious metals).'\n },\n '424110': {\n title: 'Printing and Writing Paper Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of bulk printing and/or writing paper generally on rolls for further processing.'\n },\n '424120': {\n title: 'Stationery and Office Supplies Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of stationery, office supplies, and/or gift wrap.'\n },\n '424130': {\n title: 'Industrial and Personal Service Paper Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of kraft wrapping and other coarse paper, paperboard, converted paper (except stationery and office supplies), and/or related disposable plastics products.'\n },\n '424210': {\n title: \"Drugs and Druggists' Sundries Merchant Wholesalers\",\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of biological and medical products; botanical drugs and herbs; and pharmaceutical products intended for internal and/or external consumption in such forms as ampoules, tablets, capsules, vials, ointments, powders, solutions, and suspensions.'\n },\n '424310': {\n title: 'Piece Goods, Notions, and Other Dry Goods Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of piece goods, fabrics, knitting yarns (except industrial), thread and other notions, and/or hair accessories.'\n },\n '424340': {\n title: 'Footwear Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of footwear of leather, rubber, and other materials, including athletic footwear (except specialty athletic footwear).'\n },\n '424350': {\n title: 'Clothing and Clothing Accessories Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of clothing and clothing accessories.'\n },\n '424410': {\n title: 'General Line Grocery Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of a general line (wide range) of groceries.'\n },\n '424420': {\n title: 'Packaged Frozen Food Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of packaged frozen foods (except dairy products).'\n },\n '424430': {\n title: 'Dairy Product (except Dried or Canned) Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of dairy products (except dried or canned).'\n },\n '424440': {\n title: 'Poultry and Poultry Product Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of poultry and/or poultry products (except canned and packaged frozen).'\n },\n '424450': {\n title: 'Confectionery Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of confectioneries; salted or roasted nuts; popcorn; potato, corn, and similar chips; and/or fountain fruits and syrups.'\n },\n '424460': {\n title: 'Fish and Seafood Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of fish and seafood (except canned or packaged frozen).'\n },\n '424470': {\n title: 'Meat and Meat Product Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of meats and meat products (except canned and packaged frozen) and/or lard.'\n },\n '424480': {\n title: 'Fresh Fruit and Vegetable Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of fresh fruits and vegetables.'\n },\n '424490': {\n title: 'Other Grocery and Related Products Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of groceries and related products (except a general line of groceries; packaged frozen food; dairy products (except dried and canned); poultry products (except canned); confectioneries; fish and seafood (except canned); meat products (except canned); and fresh fruits and vegetables). Included in this industry are establishments primarily engaged in the bottling and merchant wholesale distribution of spring and mineral waters processed by others.'\n },\n '424510': {\n title: 'Grain and Field Bean Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of grains, such as corn, wheat, oats, barley, and unpolished rice; dry beans; and soybeans and other inedible beans. Included in this industry are establishments primarily engaged in operating country or terminal grain elevators primarily for the purpose of wholesaling.'\n },\n '424520': {\n title: 'Livestock Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of livestock (except horses and mules).'\n },\n '424590': {\n title: 'Other Farm Product Raw Material Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of farm products (except grain and field beans, livestock, raw milk, live poultry, and fresh fruits and vegetables).'\n },\n '424610': {\n title: 'Plastics Materials and Basic Forms and Shapes Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of plastics materials and resins, and unsupported plastics film, sheet, sheeting, rod, tube, and other basic forms and shapes.'\n },\n '424690': {\n title: 'Other Chemical and Allied Products Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of chemicals and allied products (except agricultural and medicinal chemicals, paints and varnishes, fireworks, and plastics materials and basic forms and shapes).'\n },\n '424710': {\n title: 'Petroleum Bulk Stations and Terminals',\n description:\n 'This industry comprises establishments with bulk liquid storage facilities primarily engaged in the merchant wholesale distribution of crude petroleum and petroleum products, including liquefied petroleum gas.'\n },\n '424720': {\n title:\n 'Petroleum and Petroleum Products Merchant Wholesalers (except Bulk Stations and Terminals)',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of petroleum and petroleum products (except from bulk liquid storage facilities).'\n },\n '424810': {\n title: 'Beer and Ale Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of beer, ale, porter, and other fermented malt beverages.'\n },\n '424820': {\n title: 'Wine and Distilled Alcoholic Beverage Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of wine, distilled alcoholic beverages, and/or neutral spirits and ethyl alcohol used in blended wines and distilled liquors.'\n },\n '424910': {\n title: 'Farm Supplies Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of farm supplies, such as animal feeds, fertilizers, agricultural chemicals, pesticides, plant seeds, and plant bulbs.'\n },\n '424920': {\n title: 'Book, Periodical, and Newspaper Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of books, periodicals, and newspapers.'\n },\n '424930': {\n title: \"Flower, Nursery Stock, and Florists' Supplies Merchant Wholesalers\",\n description:\n \"This industry comprises establishments primarily engaged in the merchant wholesale distribution of flowers, florists' supplies, and/or nursery stock (except plant seeds and plant bulbs).\"\n },\n '424940': {\n title: 'Tobacco Product and Electronic Cigarette Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of tobacco products, such as cigarettes, snuff, cigars, pipe tobacco, and electronic cigarettes (including related parts and accessories).'\n },\n '424950': {\n title: 'Paint, Varnish, and Supplies Merchant Wholesalers',\n description:\n 'This industry comprises establishments primarily engaged in the merchant wholesale distribution of paints, varnishes, and similar coatings; pigments; wallpaper; and supplies, such as paintbrushes and rollers.'\n },\n '424990': {\n title: 'Other Miscellaneous Nondurable Goods Merchant Wholesalers',\n description:\n \"This industry comprises establishments primarily engaged in the merchant wholesale distribution of nondurable goods (except printing and writing paper; stationery and office supplies; industrial and personal service paper; drugs and druggists' sundries; apparel, piece goods, and notions; grocery and related products; farm product raw materials; chemical and allied products; petroleum and petroleum products; beer, wine, and distilled alcoholic beverages; farm supplies; books, periodicals, and newspapers; flowers, nursery stock, and florists' supplies; tobacco and tobacco products; and paint, varnishes, wallpaper, and supplies).\"\n },\n '425120': {\n title: 'Wholesale Trade Agents and Brokers',\n description:\n 'This industry comprises wholesale trade agents and brokers acting on behalf of buyers or sellers in the wholesale distribution of goods, including those that use the Internet or other electronic means to bring together buyers and sellers. Agents and brokers do not take title to the goods being sold but rather receive a commission or fee for their service. Agents and brokers for all durable and nondurable goods are included in this industry.'\n },\n '441110': {\n title: 'New Car Dealers',\n description:\n 'This industry comprises establishments primarily engaged in retailing new automobiles and light trucks, such as sport utility vehicles, and passenger and cargo vans, or retailing these new vehicles in combination with activities, such as repair services, retailing used cars, and selling replacement parts and accessories.'\n },\n '441120': {\n title: 'Used Car Dealers',\n description:\n 'This industry comprises establishments primarily engaged in retailing used automobiles and light trucks, such as sport utility vehicles, and passenger and cargo vans.'\n },\n '441210': {\n title: 'Recreational Vehicle Dealers',\n description:\n 'This industry comprises establishments primarily engaged in retailing new and/or used recreational vehicles commonly referred to as RVs or retailing these new vehicles in combination with activities, such as repair services and selling replacement parts and accessories.'\n },\n '441222': {\n title: 'Boat Dealers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) retailing new and/or used boats or retailing new boats in combination with activities, such as repair services and selling replacement parts and accessories, and/or (2) retailing new and/or used outboard motors, boat trailers, marine supplies, parts, and accessories.'\n },\n '441227': {\n title: 'Motorcycle, ATV, and All Other Motor Vehicle Dealers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in retailing new and/or used motorcycles, motor scooters, motorbikes, mopeds, off-road all-terrain vehicles (ATV), personal watercraft, utility trailers, and other motor vehicles (except automobiles, light trucks, recreational vehicles, and boats) or retailing these new vehicles in combination with activities, such as repair services and selling replacement parts and accessories.'\n },\n '441330': {\n title: 'Automotive Parts and Accessories Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing new, used, and/or rebuilt automotive parts and accessories, with or without repairing automobiles; and/or establishments primarily engaged in retailing and installing automotive accessories.'\n },\n '441340': {\n title: 'Tire Dealers',\n description:\n 'This industry comprises establishments primarily engaged in retailing new and/or used tires and tubes or retailing new tires in combination with automotive repair services.'\n },\n '444110': {\n title: 'Home Centers',\n description:\n 'This industry comprises establishments generally known as home centers primarily engaged in retailing a general line of new home repair and improvement materials and supplies, such as lumber, plumbing goods, electrical goods, tools, housewares, hardware, and lawn and garden supplies, with no one merchandise line predominating.'\n },\n '444120': {\n title: 'Paint and Wallpaper Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing paint, wallpaper, and related supplies.'\n },\n '444140': {\n title: 'Hardware Retailers',\n description:\n \"This industry comprises establishments primarily engaged in retailing a general line of new hardware items, such as tools and builders' hardware.\"\n },\n '444180': {\n title: 'Other Building Material Dealers',\n description:\n 'This industry comprises establishments (except home centers, paint and wallpaper retailers, and hardware retailers) primarily engaged in retailing specialized lines of new building materials, such as lumber, fencing, glass, doors, plumbing fixtures and supplies, electrical supplies, prefabricated buildings and kits, and kitchen and bath cabinets and countertops to be installed.'\n },\n '444230': {\n title: 'Outdoor Power Equipment Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing new outdoor power equipment or retailing new outdoor power equipment in combination with activities, such as repair services and selling replacement parts.'\n },\n '444240': {\n title: 'Nursery, Garden Center, and Farm Supply Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing nursery and garden products, such as trees, shrubs, plants, seeds, bulbs, and sod, that are predominantly grown elsewhere. These establishments may sell a limited amount of a product they grow themselves. Also included in this industry are establishments primarily engaged in retailing farm supplies, such as animal (except pet) feed, fertilizers, agricultural chemicals, and pesticides.'\n },\n '445110': {\n title: 'Supermarkets and Other Grocery Retailers (except Convenience Retailers)',\n description:\n 'This industry comprises establishments generally known as supermarkets and other grocery retailers (except convenience retailers) primarily engaged in retailing a general line of food, such as canned and frozen foods; fresh fruits and vegetables; and fresh and prepared meats, fish, and poultry. Included in this industry are delicatessen-type establishments primarily engaged in retailing a general line of food.'\n },\n '445131': {\n title: 'Convenience Retailers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in retailing a limited line of groceries that generally includes milk, bread, soda, and snacks, such as convenience stores or food marts (except those operating fuel pumps).'\n },\n '445132': {\n title: 'Vending Machine Operators',\n description:\n 'This U.S. industry comprises establishments primarily engaged in retailing merchandise through vending machines that they service.'\n },\n '445230': {\n title: 'Fruit and Vegetable Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing fresh fruits and vegetables.'\n },\n '445240': {\n title: 'Meat Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing fresh, frozen, or cured meats and poultry not for immediate consumption. Delicatessen-type establishments primarily engaged in retailing fresh meat are included in this industry.'\n },\n '445250': {\n title: 'Fish and Seafood Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing fresh, frozen, or cured fish and seafood products not for immediate consumption.'\n },\n '445291': {\n title: 'Baked Goods Retailers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in retailing baked goods not for immediate consumption and not made on the premises.'\n },\n '445292': {\n title: 'Confectionery and Nut Retailers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in retailing candy and other confections, nuts, and popcorn not for immediate consumption and not made on the premises.'\n },\n '445298': {\n title: 'All Other Specialty Food Retailers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in retailing miscellaneous specialty foods (except fruit and vegetables, meat, fish, seafood, confections, nuts, popcorn, and baked goods) not for immediate consumption and not made on the premises.'\n },\n '445320': {\n title: 'Beer, Wine, and Liquor Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing packaged alcoholic beverages, such as ale, beer, wine, and liquor.'\n },\n '449110': {\n title: 'Furniture Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing new furniture, such as household furniture (e.g., baby furniture, box springs, and mattresses) and outdoor furniture; office furniture (except sold in combination with office supplies and equipment); and/or furniture sold in combination with major appliances, home electronics, home furnishings, or floor coverings.'\n },\n '449121': {\n title: 'Floor Covering Retailers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in retailing new floor coverings, such as rugs and carpets, laminate and vinyl floor coverings, linoleum flooring, and floor tile (except ceramic tile or hardwood floor coverings only); or retailing new floor coverings in combination with installation and repair services.'\n },\n '449122': {\n title: 'Window Treatment Retailers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in retailing new window treatments, such as curtains, drapes, blinds, and shades.'\n },\n '449129': {\n title: 'All Other Home Furnishings Retailers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in retailing new home furnishings (except furniture, floor coverings, and window treatments).'\n },\n '449210': {\n title: 'Electronics and Appliance Retailers',\n description:\n 'This industry comprises establishments primarily engaged in one of the following: (1) retailing an array of new household-type appliances and consumer-type electronic products, such as televisions, computers, electronic tablets, and cameras; (2) specializing in retailing a single line of new consumer-type electronic products; (3) retailing these new products in combination with repair and support services; (4) retailing new prepackaged or downloadable computer software (without publishing); and/or (5) retailing prerecorded audio and video media, such as downloadable digital music and video files (without production or publishing), CDs, and DVDs.'\n },\n '455110': {\n title: 'Department Stores',\n description:\n 'This industry comprises establishments generally known as department stores that have separate departments for general lines of new merchandise, such as apparel, jewelry, home furnishings, and toys, with no one merchandise line predominating. Department stores may sell perishable groceries, such as fresh fruits, vegetables, and dairy products, but such sales are insignificant. Department stores with fixed point-of-sale locations may have separate customer checkout areas in each department, central customer checkout areas, or both.'\n },\n '455211': {\n title: 'Warehouse Clubs and Supercenters',\n description:\n 'This U.S. industry comprises establishments generally known as warehouse clubs, superstores, or supercenters, primarily engaged in retailing a general line of groceries, including a significant amount and variety of fresh fruits, vegetables, dairy products, meats, and other perishable groceries, in combination with a general line of new merchandise, such as apparel, furniture, and appliances.'\n },\n '455219': {\n title: 'All Other General Merchandise Retailers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in retailing new and used general merchandise (except department stores, warehouse clubs, superstores, and supercenters). These establishments retail a general line of new and used merchandise, such as apparel, automotive parts, dry goods, groceries, hardware, housewares or home furnishings, and other lines in limited amounts, with none of the lines predominating. This industry also includes establishments primarily engaged in retailing a general line of new and used merchandise on an auction basis.'\n },\n '456110': {\n title: 'Pharmacies and Drug Retailers',\n description:\n 'This industry comprises establishments generally known as pharmacies and drug retailers engaged in retailing prescription or nonprescription drugs and medicines.'\n },\n '456120': {\n title: 'Cosmetics, Beauty Supplies, and Perfume Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing cosmetics, perfumes, toiletries, and personal grooming products.'\n },\n '456130': {\n title: 'Optical Goods Retailers',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) retailing and fitting prescription eyeglasses and contact lenses; (2) retailing prescription eyeglasses in combination with the grinding of lenses to order on the premises; and (3) retailing nonprescription eyeglasses.'\n },\n '456191': {\n title: 'Food (Health) Supplement Retailers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in retailing food supplement products, such as vitamins, nutrition supplements, and body enhancing supplements.'\n },\n '456199': {\n title: 'All Other Health and Personal Care Retailers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in retailing specialized lines of health and personal care merchandise (except drugs, medicines, cosmetics, beauty supplies, perfumes, optical goods, and food supplement products).'\n },\n '457110': {\n title: 'Gasoline Stations with Convenience Stores',\n description:\n 'This industry comprises establishments primarily engaged in retailing automotive fuels (e.g., gasoline, diesel fuel, gasohol, alternative fuels) in combination with a limited line of groceries. These establishments can either be in a convenience store (i.e., food mart) setting or a gasoline station setting. These establishments may also provide automotive repair services.'\n },\n '457120': {\n title: 'Other Gasoline Stations',\n description:\n 'This industry comprises establishments generally known as gasoline stations (except those with convenience stores) or truck stops primarily engaged in (1) retailing automotive fuels (e.g., gasoline, diesel fuel, gasohol, alternative fuels) or (2) retailing these fuels in combination with activities, such as providing repair services; selling automotive oils, replacement parts, and accessories; and/or providing food services.'\n },\n '457210': {\n title: 'Fuel Dealers',\n description:\n 'This industry comprises establishments primarily engaged in retailing heating oil, liquefied petroleum (LP) gas, and other fuels via direct selling (i.e., home delivery).'\n },\n '458110': {\n title: 'Clothing and Clothing Accessories Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing general or specialized lines of new clothing and clothing accessories, such as hats and caps, costume jewelry, gloves, handbags, ties, wigs, toupees, and belts. These establishments may provide basic alterations, such as hemming, taking in or letting out seams, or lengthening or shortening sleeves.'\n },\n '458210': {\n title: 'Shoe Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing all types of new footwear (except hosiery and specialty sports footwear, such as golf shoes, bowling shoes, and cleated shoes). Establishments primarily engaged in retailing new tennis shoes or sneakers are included in this industry.'\n },\n '458310': {\n title: 'Jewelry Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing one or more of the following items: (1) new jewelry (except costume jewelry); (2) new sterling and plated silverware; and (3) new watches and clocks. Also included are establishments retailing these new products in combination with lapidary work and/or repair services.'\n },\n '458320': {\n title: 'Luggage and Leather Goods Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing new luggage, briefcases, and trunks, or retailing these new products in combination with a general line of leather items (except leather apparel), such as belts, gloves, and handbags.'\n },\n '459110': {\n title: 'Sporting Goods Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing new sporting goods, such as bicycles and bicycle parts; camping equipment; exercise and fitness equipment; athletic uniforms; specialty sports footwear; and other sporting goods, equipment, and accessories.'\n },\n '459120': {\n title: 'Hobby, Toy, and Game Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing new toys, games, and hobby and craft supplies (except needlecraft).'\n },\n '459130': {\n title: 'Sewing, Needlework, and Piece Goods Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing new sewing supplies, fabrics, patterns, yarns, and other needlework accessories or retailing these products in combination with new sewing machines.'\n },\n '459140': {\n title: 'Musical Instrument and Supplies Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing new musical instruments, sheet music, and related supplies; or retailing these new products in combination with musical instrument repair, rental, or music instruction.'\n },\n '459210': {\n title: 'Book Retailers and News Dealers',\n description:\n 'This industry comprises establishments primarily engaged in retailing new books, newspapers, magazines, and other periodicals (without publishing).'\n },\n '459310': {\n title: 'Florists',\n description:\n 'This industry comprises establishments generally known as florists primarily engaged in retailing cut flowers, floral arrangements, and potted plants grown elsewhere. These establishments may prepare the arrangements they sell.'\n },\n '459410': {\n title: 'Office Supplies and Stationery Retailers',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) retailing new office supplies, stationery, and school supplies; (2) retailing a combination of new office equipment, furniture, and supplies; and (3) retailing new office equipment, furniture, and supplies in combination with selling new computers.'\n },\n '459420': {\n title: 'Gift, Novelty, and Souvenir Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing new gifts, novelty merchandise, souvenirs, greeting cards, seasonal and holiday decorations, and curios.'\n },\n '459510': {\n title: 'Used Merchandise Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing used merchandise, antiques, and secondhand goods (except motor vehicles, such as automobiles, RVs, motorcycles, and boats; motor vehicle parts; tires; and mobile homes). This industry includes establishments retailing used merchandise on an auction basis.'\n },\n '459910': {\n title: 'Pet and Pet Supplies Retailers',\n description:\n 'This industry comprises establishments primarily engaged in retailing pets, pet foods, and pet supplies.'\n },\n '459920': {\n title: 'Art Dealers',\n description:\n 'This industry comprises establishments primarily engaged in retailing original and limited edition art works created by others. Included in this industry are establishments primarily engaged in displaying works of art for retail sale in art galleries.'\n },\n '459930': {\n title: 'Manufactured (Mobile) Home Dealers',\n description:\n 'This industry comprises establishments primarily engaged in retailing new and/or used manufactured homes (i.e., mobile homes), parts, and equipment.'\n },\n '459991': {\n title: 'Tobacco, Electronic Cigarette, and Other Smoking Supplies Retailers',\n description:\n \"This U.S. industry comprises establishments primarily engaged in retailing cigarettes, electronic cigarettes, cigars, tobacco, pipes, and other smokers' supplies.\"\n },\n '459999': {\n title: 'All Other Miscellaneous Retailers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in retailing miscellaneous specialized lines of merchandise (except motor vehicle and parts dealers; building material and garden equipment and supplies dealers; food and beverage retailers; furniture, home furnishings, electronics, and appliance retailers; general merchandise retailers; health and personal care retailers; gasoline stations and fuel dealers; clothing, clothing accessories, shoe, and jewelry retailers; sporting goods, hobby, and musical instrument retailers; book retailers and news dealers; florists; office supplies, stationery, and gift retailers; used merchandise retailers; pet and pet supplies retailers; art dealers; manufactured (mobile) home dealers; and tobacco, electronic cigarette, and other smoking supplies retailers).'\n },\n '481111': {\n title: 'Scheduled Passenger Air Transportation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing air transportation of passengers or passengers and freight over regular routes and on regular schedules. Establishments in this industry operate flights even if partially loaded. Scheduled air passenger carriers including commuter and helicopter carriers (except scenic and sightseeing) are included in this industry.'\n },\n '481112': {\n title: 'Scheduled Freight Air Transportation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing air transportation of cargo without transporting passengers over regular routes and on regular schedules. Establishments in this industry operate flights even if partially loaded. Establishments primarily engaged in providing scheduled air transportation of mail on a contract basis are included in this industry.'\n },\n '481211': {\n title: 'Nonscheduled Chartered Passenger Air Transportation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing air transportation of passengers or passengers and cargo with no regular routes and regular schedules.'\n },\n '481212': {\n title: 'Nonscheduled Chartered Freight Air Transportation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing air transportation of cargo without transporting passengers with no regular routes and regular schedules.'\n },\n '481219': {\n title: 'Other Nonscheduled Air Transportation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing air transportation with no regular routes and regular schedules (except nonscheduled chartered passenger and/or cargo air transportation). These establishments provide a variety of specialty air transportation or flying services based on individual customer needs using general purpose aircraft.'\n },\n '482111': {\n title: 'Line-Haul Railroads',\n description:\n 'This U.S. industry comprises establishments known as line-haul railroads primarily engaged in operating railroads for the transport of passengers and/or cargo over a long distance within a rail network. These establishments provide for the intercity movement of trains between the terminals and stations on main and branch lines of a line-haul rail network (except for local switching services).'\n },\n '482112': {\n title: 'Short Line Railroads',\n description:\n 'This U.S. industry comprises establishments known as short-line railroads primarily engaged in operating railroads for the transport of cargo over a short distance on local rail lines not part of a rail network.'\n },\n '483111': {\n title: 'Deep Sea Freight Transportation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing deep sea transportation of cargo to or from foreign ports.'\n },\n '483112': {\n title: 'Deep Sea Passenger Transportation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing deep sea transportation of passengers to or from foreign ports.'\n },\n '483113': {\n title: 'Coastal and Great Lakes Freight Transportation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing water transportation of cargo in coastal waters, on the Great Lakes System, or deep seas between ports of the United States, Puerto Rico, and United States island possessions or protectorates. Marine transportation establishments using the facilities of the St. Lawrence Seaway Authority Commission are considered to be using the Great Lakes Water Transportation System. Establishments primarily engaged in providing coastal and/or Great Lakes barge transportation services are included in this industry.'\n },\n '483114': {\n title: 'Coastal and Great Lakes Passenger Transportation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing water transportation of passengers in coastal waters, the Great Lakes System, or deep seas between ports of the United States, Puerto Rico, and United States island possessions and protectorates. Marine transportation establishments using the facilities of the St. Lawrence Seaway Authority Commission are considered to be using the Great Lakes Water Transportation System.'\n },\n '483211': {\n title: 'Inland Water Freight Transportation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing inland water transportation of cargo on lakes, rivers, or intracoastal waterways (except on the Great Lakes System).'\n },\n '483212': {\n title: 'Inland Water Passenger Transportation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing inland water transportation of passengers on lakes, rivers, or intracoastal waterways (except on the Great Lakes System).'\n },\n '484110': {\n title: 'General Freight Trucking, Local',\n description:\n 'This industry comprises establishments primarily engaged in providing local general freight trucking. General freight trucking establishments handle a wide variety of commodities, generally palletized and transported in a container or van trailer. Local general freight trucking establishments usually provide trucking within a metropolitan area which may cross state lines. Generally the trips are same-day return.'\n },\n '484121': {\n title: 'General Freight Trucking, Long-Distance, Truckload',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing long-distance general freight truckload (TL) trucking. These long-distance general freight truckload carrier establishments provide full truck movement of freight from origin to destination. The shipment of freight on a truck is characterized as a full single load not combined with other shipments.'\n },\n '484122': {\n title: 'General Freight Trucking, Long-Distance, Less Than Truckload',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing long-distance, general freight, less than truckload (LTL) trucking. LTL carriage is characterized as multiple shipments combined onto a single truck for multiple deliveries within a network. These establishments are generally characterized by the following network activities: local pick-up, local sorting and terminal operations, line-haul, destination sorting and terminal operations, and local delivery.'\n },\n '484210': {\n title: 'Used Household and Office Goods Moving',\n description:\n 'This industry comprises establishments primarily engaged in providing local or long-distance trucking of used household, used institutional, or used commercial furniture and equipment. Incidental packing and storage activities are often provided by these establishments.'\n },\n '484220': {\n title: 'Specialized Freight (except Used Goods) Trucking, Local',\n description:\n 'This industry comprises establishments primarily engaged in providing local, specialized trucking. Local trucking establishments provide trucking within a metropolitan area that may cross state lines. Generally the trips are same-day return.'\n },\n '484230': {\n title: 'Specialized Freight (except Used Goods) Trucking, Long-Distance',\n description:\n 'This industry comprises establishments primarily engaged in providing long-distance specialized trucking. These establishments provide trucking between metropolitan areas that may cross North American country borders.'\n },\n '485111': {\n title: 'Mixed Mode Transit Systems',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating local and suburban ground passenger transit systems using more than one mode of transport over regular routes and on regular schedules within a metropolitan area and its adjacent nonurban areas.'\n },\n '485112': {\n title: 'Commuter Rail Systems',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating local and suburban commuter rail systems over regular routes and on a regular schedule within a metropolitan area and its adjacent nonurban areas. Commuter rail is usually characterized by reduced fares, multiple ride and commutation tickets, and mostly used by passengers during the morning and evening peak periods.'\n },\n '485113': {\n title: 'Bus and Other Motor Vehicle Transit Systems',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating local and suburban passenger transportation systems using buses or other motor vehicles over regular routes and on regular schedules within a metropolitan area and its adjacent nonurban areas.'\n },\n '485119': {\n title: 'Other Urban Transit Systems',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating local and suburban ground passenger transit systems (except mixed mode transit systems, commuter rail systems, and buses and other motor vehicles) over regular routes and on regular schedules within a metropolitan area and its adjacent nonurban areas.'\n },\n '485210': {\n title: 'Interurban and Rural Bus Transportation',\n description:\n 'This industry comprises establishments primarily engaged in providing bus passenger transportation over regular routes and on regular schedules, principally outside a single metropolitan area and its adjacent nonurban areas.'\n },\n '485310': {\n title: 'Taxi and Ridesharing Services',\n description:\n 'This industry comprises establishments primarily engaged in providing passenger transportation by automobile or van, not operated over regular routes and on regular schedules. Establishments of taxicab owner/operators, taxicab fleet operators, taxicab organizations, ridesharing services (including arrangement services), and ride hailing services (including arrangement services) are included in this industry.'\n },\n '485320': {\n title: 'Limousine Service',\n description:\n 'This industry comprises establishments primarily engaged in providing an array of specialty and luxury passenger transportation services via limousine or luxury sedan generally on a reserved basis. These establishments do not operate over regular routes and on regular schedules.'\n },\n '485410': {\n title: 'School and Employee Bus Transportation',\n description:\n 'This industry comprises establishments primarily engaged in providing buses and other motor vehicles to transport pupils to and from school or employees to and from work.'\n },\n '485510': {\n title: 'Charter Bus Industry',\n description:\n \"This industry comprises establishments primarily engaged in providing buses for charter. These establishments provide bus services to meet customers' road transportation needs and generally do not operate over fixed routes and on regular schedules.\"\n },\n '485991': {\n title: 'Special Needs Transportation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing special needs transportation (except to and from school or work) for the disabled or elderly. These establishments may use specially equipped vehicles to provide passenger transportation.'\n },\n '485999': {\n title: 'All Other Transit and Ground Passenger Transportation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing ground passenger transportation (except urban transit systems; interurban and rural bus transportation, taxi and/or limousine services (except shuttle services), school and employee bus transportation, charter bus services, and special needs transportation). Establishments primarily engaged in operating shuttle services and car pools or vanpools (except ridesharing and ridesharing arrangement services) are included in this industry. Shuttle services establishments generally provide travel on regular routes and on regular schedules between hotels, airports, or other destination points.'\n },\n '486110': {\n title: 'Pipeline Transportation of Crude Oil',\n description:\n 'This industry comprises establishments primarily engaged in the pipeline transportation of crude oil.'\n },\n '486210': {\n title: 'Pipeline Transportation of Natural Gas',\n description:\n 'This industry comprises establishments primarily engaged in the pipeline transportation of natural gas from processing plants to local distribution systems. This industry includes the storage of natural gas because the storage is usually done by the pipeline establishment and because a pipeline is inherently a network in which all the nodes are interdependent.'\n },\n '486910': {\n title: 'Pipeline Transportation of Refined Petroleum Products',\n description:\n 'This industry comprises establishments primarily engaged in the pipeline transportation of refined petroleum products.'\n },\n '486990': {\n title: 'All Other Pipeline Transportation',\n description:\n 'This industry comprises establishments primarily engaged in the pipeline transportation of products (except crude oil, natural gas, and refined petroleum products).'\n },\n '487110': {\n title: 'Scenic and Sightseeing Transportation, Land',\n description:\n 'This industry comprises establishments primarily engaged in providing scenic and sightseeing transportation on land, such as sightseeing buses and trolleys, steam train excursions, and horse-drawn sightseeing rides. The services provided are usually local and involve same-day return to place of origin.'\n },\n '487210': {\n title: 'Scenic and Sightseeing Transportation, Water',\n description:\n 'This industry comprises establishments primarily engaged in providing scenic and sightseeing transportation on water. The services provided are usually local and involve same-day return to place of origin.'\n },\n '487990': {\n title: 'Scenic and Sightseeing Transportation, Other',\n description:\n 'This industry comprises establishments primarily engaged in providing scenic and sightseeing transportation (except on land and water). The services provided are usually local and involve same-day return to place of departure.'\n },\n '488111': {\n title: 'Air Traffic Control',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing air traffic control (except military) services to regulate the flow of air traffic.'\n },\n '488119': {\n title: 'Other Airport Operations',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) operating international, national, or civil airports, or public flying fields or (2) supporting airport operations, such as rental of hangar space, and providing baggage handling and/or cargo handling services.'\n },\n '488190': {\n title: 'Other Support Activities for Air Transportation',\n description:\n 'This industry comprises establishments primarily engaged in providing specialized services for air transportation (except air traffic control and other airport operations).'\n },\n '488210': {\n title: 'Support Activities for Rail Transportation',\n description:\n 'This industry comprises establishments primarily engaged in providing specialized services for railroad transportation, including servicing, routine repairing (except factory conversion, overhaul, or rebuilding of rolling stock), and maintaining rail cars; loading and unloading rail cars; and operating independent terminals.'\n },\n '488310': {\n title: 'Port and Harbor Operations',\n description:\n 'This industry comprises establishments primarily engaged in operating ports, harbors (including docking and pier facilities), or canals.'\n },\n '488320': {\n title: 'Marine Cargo Handling',\n description:\n 'This industry comprises establishments primarily engaged in providing stevedoring and other marine cargo handling services (except warehousing).'\n },\n '488330': {\n title: 'Navigational Services to Shipping',\n description:\n 'This industry comprises establishments primarily engaged in providing navigational services to shipping. Marine salvage establishments are included in this industry.'\n },\n '488390': {\n title: 'Other Support Activities for Water Transportation',\n description:\n 'This industry comprises establishments primarily engaged in providing services to water transportation (except port and harbor operations; marine cargo handling services; and navigational services to shipping).'\n },\n '488410': {\n title: 'Motor Vehicle Towing',\n description:\n 'This industry comprises establishments primarily engaged in towing light or heavy motor vehicles, both local and long-distance. These establishments may provide incidental services, such as storage and emergency road repair services.'\n },\n '488490': {\n title: 'Other Support Activities for Road Transportation',\n description:\n 'This industry comprises establishments primarily engaged in providing services (except motor vehicle towing) to road network users.'\n },\n '488510': {\n title: 'Freight Transportation Arrangement',\n description:\n 'This industry comprises establishments primarily engaged in arranging transportation of freight between shippers and carriers. These establishments are usually known as freight forwarders, marine shipping agents, or customs brokers and offer a combination of services spanning transportation modes but do not directly provide shipping services.'\n },\n '488991': {\n title: 'Packing and Crating',\n description:\n 'This U.S. industry comprises establishments primarily engaged in packing, crating, and otherwise preparing goods for transportation.'\n },\n '488999': {\n title: 'All Other Support Activities for Transportation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing support activities to transportation (except for air transportation; rail transportation; water transportation; road transportation; freight transportation arrangement; and packing and crating).'\n },\n '491110': {\n title: 'Postal Service',\n description:\n 'This industry comprises establishments primarily engaged in providing mail services under a universal service obligation. Mail services include the carriage of letters, printed matter, or mailable packages, including acceptance, collection, processing, and delivery. Due to the infrastructure requirements of providing mail service under a universal service obligation, postal service establishments often provide parcel and express delivery services in addition to the mail service. Establishments primarily engaged in performing one or more parts of the basic mail service, such as sorting, routing and/or delivery (except bulk transportation of mail) are included in this industry.'\n },\n '492110': {\n title: 'Couriers and Express Delivery Services',\n description:\n \"This industry comprises establishments primarily engaged in providing air, surface, or combined mode courier and express delivery services of parcels, but not operating under a universal service obligation. These parcels can include goods and documents, but the express delivery services are not part of the normal mail service. These services are generally between metropolitan areas, urban centers, or international, but the establishments of this industry form a network that includes local pick-up and delivery to serve their customers' needs.\"\n },\n '492210': {\n title: 'Local Messengers and Local Delivery',\n description:\n 'This industry comprises establishments primarily engaged in providing local messenger and delivery services of small items within a single metropolitan area or within an urban center. These establishments generally provide point-to-point pick-up and delivery and do not operate as part of an intercity courier network.'\n },\n '493110': {\n title: 'General Warehousing and Storage',\n description:\n 'This industry comprises establishments primarily engaged in operating merchandise warehousing and storage facilities. These establishments generally handle goods in containers, such as boxes, barrels, and/or drums, using equipment, such as forklifts, pallets, and racks. They are not specialized in handling bulk products of any particular type, size, or quantity of goods or products.'\n },\n '493120': {\n title: 'Refrigerated Warehousing and Storage',\n description:\n 'This industry comprises establishments primarily engaged in operating refrigerated warehousing and storage facilities. Establishments primarily engaged in the storage of furs for the trade are included in this industry. The services provided by these establishments include blast freezing, tempering, and modified atmosphere storage services.'\n },\n '493130': {\n title: 'Farm Product Warehousing and Storage',\n description:\n 'This industry comprises establishments primarily engaged in operating bulk farm product warehousing and storage facilities (except refrigerated). Grain elevators primarily engaged in storage are included in this industry.'\n },\n '493190': {\n title: 'Other Warehousing and Storage',\n description:\n 'This industry comprises establishments primarily engaged in operating warehousing and storage facilities (except general merchandise, refrigerated, and farm product warehousing and storage).'\n },\n '512110': {\n title: 'Motion Picture and Video Production',\n description:\n 'This industry comprises establishments primarily engaged in producing, or producing and distributing motion pictures, videos, television programs, or television commercials.'\n },\n '512120': {\n title: 'Motion Picture and Video Distribution',\n description:\n 'This industry comprises establishments primarily engaged in acquiring distribution rights and distributing film and video productions to motion picture theaters, television networks and stations, other media broadcast and streaming outlets, and exhibitors.'\n },\n '512131': {\n title: 'Motion Picture Theaters (except Drive-Ins)',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating motion picture theaters (except drive-ins) and/or exhibiting motion pictures or videos at film festivals, and so forth.'\n },\n '512132': {\n title: 'Drive-In Motion Picture Theaters',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating drive-in motion picture theaters.'\n },\n '512191': {\n title: 'Teleproduction and Other Postproduction Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing specialized motion picture or video postproduction services, such as editing, film/tape transfers, subtitling, credits, closed captioning, and animation and special effects.'\n },\n '512199': {\n title: 'Other Motion Picture and Video Industries',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing motion picture and video services (except motion picture and video production, distribution, exhibition, and teleproduction and other postproduction services).'\n },\n '512230': {\n title: 'Music Publishers',\n description:\n 'This industry comprises establishments primarily engaged in acquiring and registering copyrights for musical compositions in accordance with law and promoting and authorizing the use of these compositions in recordings, radio, television, motion pictures, live performances, print, or other media. Establishments in this industry represent the interests of the songwriter or other owners of musical compositions to produce revenues from the use of such works, generally through licensing agreements. These establishments may own the copyright or act as administrator of the music copyrights on behalf of copyright owners. Publishers of music books and sheet music are included in this industry.'\n },\n '512240': {\n title: 'Sound Recording Studios',\n description:\n 'This industry comprises establishments primarily engaged in providing the facilities and technical expertise for sound recording in a studio. This industry includes establishments that provide audio production and postproduction services to produce master recordings. These establishments may provide audio services for film, television, and video productions.'\n },\n '512250': {\n title: 'Record Production and Distribution',\n description:\n 'This industry comprises establishments primarily engaged in record production and/or releasing, promoting, and distributing sound recordings to wholesalers, retailers, or directly to the public. These establishments contract with artists, arrange and finance the production of original master recordings, and/or produce master recordings themselves, such as digital music and compact discs. Establishments in this industry hold the copyright to the master recording, or obtain reproduction and distribution rights to master recordings produced by others, and derive most of their revenues from the sales, leasing, licensing, or distribution of master recordings.'\n },\n '512290': {\n title: 'Other Sound Recording Industries',\n description:\n 'This industry comprises establishments primarily engaged in providing sound recording services (except record production, distribution, music publishing, and sound recording in a studio). Establishments in this industry provide services, such as the audio recording of meetings and conferences.'\n },\n '513110': {\n title: 'Newspaper Publishers',\n description:\n 'This industry comprises establishments known as newspaper publishers. Establishments in this industry carry out operations necessary for producing and distributing newspapers, including gathering news; writing news columns, feature stories, and editorials; and selling and preparing advertisements. These establishments may publish newspapers in print or electronic form, including exclusively on the Internet.'\n },\n '513120': {\n title: 'Periodical Publishers',\n description:\n 'This industry comprises establishments known either as magazine publishers or periodical publishers. These establishments carry out the operations necessary for producing and distributing magazines and other periodicals, such as gathering, writing, and editing articles, and selling and preparing advertisements. These establishments may publish magazines and other periodicals in print or electronic form, including exclusively on the Internet.'\n },\n '513130': {\n title: 'Book Publishers',\n description:\n 'This industry comprises establishments known as book publishers. Establishments in this industry carry out design, editing, and marketing activities necessary for producing and distributing books. These establishments may publish books in print, electronic, or audio form, including exclusively on the Internet.'\n },\n '513140': {\n title: 'Directory and Mailing List Publishers',\n description:\n 'This industry comprises establishments primarily engaged in publishing directories, mailing lists, and collections or compilations of fact. The products are typically protected in their selection, arrangement and/or presentation. Examples are lists of mailing addresses, telephone directories, directories of businesses, collections or compilations of proprietary drugs or legal case results, compilations of public records, etc. These establishments may publish directories and mailing lists in print or electronic form, including exclusively on the Internet.'\n },\n '513191': {\n title: 'Greeting Card Publishers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in publishing greeting cards. These establishments may publish works in print or electronic form, including exclusively on the Internet.'\n },\n '513199': {\n title: 'All Other Publishers',\n description:\n 'This U.S. industry comprises establishments generally known as publishers (except newspaper, magazine, book, directory, mailing list, music, software, and greeting card publishers). These establishments may publish works in print or electronic form, including exclusively on the Internet.'\n },\n '513210': {\n title: 'Software Publishers',\n description:\n 'This industry comprises establishments primarily engaged in software publishing. Establishments in this industry carry out operations necessary for producing and distributing computer software, such as designing, providing documentation, assisting in installation, and providing support services to software purchasers. These establishments may design, develop, and publish, or publish only. These establishments may publish and distribute software through subscriptions and/or downloads.'\n },\n '516110': {\n title: 'Radio Broadcasting Stations',\n description:\n 'This industry comprises establishments primarily engaged in broadcasting aural programs by radio to the public. These establishments operate radio broadcasting studios and facilities for the programming and transmission of programs to the public. Programming may originate in their own studio, from an affiliated network, or from external sources.'\n },\n '516120': {\n title: 'Television Broadcasting Stations',\n description:\n 'This industry comprises establishments primarily engaged in broadcasting images together with sound. These establishments operate television broadcasting studios and facilities for the programming and transmission of programs to the public. Programming may originate in their own studio, from an affiliated network, or from external sources.'\n },\n '516210': {\n title:\n 'Media Streaming Distribution Services, Social Networks, and Other Media Networks and Content Providers',\n description:\n 'This industry comprises establishments primarily providing media streaming distribution services, operating social network sites, operating media broadcasting and cable television networks, and supplying information, such as news reports, articles, pictures, and features, to the news media. These establishments distribute textual, audio, and/or video content of general or specific interest.'\n },\n '517111': {\n title: 'Wired Telecommunications Carriers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating, maintaining, and/or providing access to transmission facilities and infrastructure that they own and/or lease for the transmission of voice, data, text, sound, and video using wired telecommunications networks. Transmission facilities may be based on a single technology or a combination of technologies. Establishments in this industry use the wired telecommunications network facilities that they operate to provide a variety of services, such as wired telephony services, including VoIP services; wired (cable) audio and video programming distribution; and wired broadband Internet services. By exception, establishments providing satellite television distribution services using facilities and infrastructure that they operate are included in this industry.'\n },\n '517112': {\n title: 'Wireless Telecommunications Carriers (except Satellite)',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating and maintaining switching and transmission facilities to provide communications via the airwaves. Establishments in this industry have spectrum licenses and provide services using that spectrum, such as cellular phone services, paging services, wireless Internet access, and wireless video services.'\n },\n '517121': {\n title: 'Telecommunications Resellers',\n description:\n 'This U.S. industry comprises establishments engaged in purchasing access and network capacity from owners and operators of telecommunications networks and reselling wired and wireless telecommunications services to businesses and households (except satellite telecommunications and agents for wireless telecommunications services). Establishments in this industry resell telecommunications; they do not operate transmission facilities and infrastructure.'\n },\n '517122': {\n title: 'Agents for Wireless Telecommunications Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in acting as agents for wireless telecommunications carriers and resellers, selling wireless plans on a commission basis.'\n },\n '517410': {\n title: 'Satellite Telecommunications',\n description:\n 'This industry comprises establishments primarily engaged in providing telecommunications services to other establishments in the telecommunications and broadcasting industries by forwarding and receiving communications signals via a system of satellites or reselling satellite telecommunications.'\n },\n '517810': {\n title: 'All Other Telecommunications',\n description:\n 'This industry comprises establishments primarily engaged in providing specialized telecommunications services, such as satellite tracking, communications telemetry, and radar station operation. This industry also includes establishments primarily engaged in providing satellite terminal stations and associated facilities connected with one or more terrestrial systems and capable of transmitting telecommunications to, and receiving telecommunications from, satellite systems. Establishments providing Internet services or Voice over Internet protocol (VoIP) services via client-supplied telecommunications connections are also included in this industry. Establishments in this industry do not operate as telecommunications carriers.'\n },\n '518210': {\n title: 'Computing Infrastructure Providers, Data Processing, Web Hosting, and Related Services',\n description:\n 'This industry comprises establishments primarily engaged in providing computing infrastructure, data processing services, Web hosting services (except software publishing), and related services, including streaming support services (except streaming distribution services). Data processing establishments provide complete processing and specialized reports from data supplied by clients or provide automated data processing and data entry services.'\n },\n '519210': {\n title: 'Libraries and Archives',\n description:\n 'This industry comprises establishments primarily engaged in providing library or archive services. These establishments are engaged in maintaining collections of documents (e.g., books, journals, newspapers, and music) and facilitating the use of such documents (recorded information regardless of its physical form and characteristics) as required to meet the informational, research, educational, or recreational needs of their user. These establishments may also acquire, research, store, preserve, and generally make accessible to the public historical documents, photographs, maps, audio material, audiovisual material, and other archival material of historical interest. All or portions of these collections may be accessible electronically.'\n },\n '519290': {\n title: 'Web Search Portals and All Other Information Services',\n description:\n 'This industry comprises establishments primarily engaged in operating Web sites that use a search engine to generate and maintain extensive databases of Internet addresses and content in an easily searchable format (and known as Web search portals) or providing other information services not elsewhere classified. Establishments known as Web search portals often provide additional Internet services, such as email, connections to other Web sites, auctions, news, and other limited content.'\n },\n '521110': {\n title: 'Monetary Authorities-Central Bank',\n description:\n \"This industry comprises establishments primarily engaged in performing central banking functions, such as issuing currency, managing the Nation's money supply and international reserves, holding deposits that represent the reserves of other banks and other central banks, and acting as a fiscal agent for the central government.\"\n },\n '522110': {\n title: 'Commercial Banking',\n description:\n 'This industry comprises establishments primarily engaged in accepting demand and other deposits and making commercial, industrial, and consumer loans. Commercial banks and branches of foreign banks are included in this industry.'\n },\n '522130': {\n title: 'Credit Unions',\n description:\n \"This industry comprises establishments primarily engaged in accepting members' share deposits in cooperatives that are organized to offer consumer loans to their members.\"\n },\n '522180': {\n title: 'Savings Institutions and Other Depository Credit Intermediation',\n description:\n 'This industry comprises establishments primarily engaged in accepting deposits, making mortgage, real estate, and other consumer and commercial loans, and investing in high-grade securities (except commercial banking and credit unions). Savings and loan associations, savings banks, private banks (i.e., unincorporated banks), and establishments known as industrial banks or Morris Plans and primarily engaged in accepting deposits are included in this industry.'\n },\n '522210': {\n title: 'Credit Card Issuing',\n description:\n 'This industry comprises establishments primarily engaged in providing credit by issuing credit cards. Credit card issuance provides the funds required to purchase goods and services in return for payment of the full balance or payments on an installment basis. Credit card banks are included in this industry.'\n },\n '522220': {\n title: 'Sales Financing',\n description:\n 'This industry comprises establishments primarily engaged in sales financing or sales financing in combination with leasing. Sales financing establishments are primarily engaged in lending money for the purpose of providing collateralized goods through a contractual installment sales agreement, either directly from or through arrangements with dealers.'\n },\n '522291': {\n title: 'Consumer Lending',\n description:\n 'This U.S. industry comprises establishments primarily engaged in making unsecured cash loans to consumers.'\n },\n '522292': {\n title: 'Real Estate Credit',\n description:\n 'This U.S. industry comprises establishments primarily engaged in lending funds with real estate as collateral.'\n },\n '522299': {\n title: 'International, Secondary Market, and All Other Nondepository Credit Intermediation',\n description:\n 'This U.S. industry comprises (1) establishments primarily engaged in providing working capital funds to U.S. exporters, lending funds to foreign buyers of U.S. goods, and/or lending funds to domestic buyers of imported goods; (2) establishments primarily engaged in buying, pooling, and repackaging loans for sale to others on the secondary market; and (3) establishments primarily providing other nondepository credit (except credit card issuing, sales financing, consumer lending, and real estate credit). Examples of types of lending in this industry are short-term inventory credit, agricultural lending (except real estate and sales financing), and consumer cash lending secured by personal property.'\n },\n '522310': {\n title: 'Mortgage and Nonmortgage Loan Brokers',\n description:\n 'This industry comprises establishments primarily engaged in arranging loans by bringing borrowers and lenders together on a commission or fee basis.'\n },\n '522320': {\n title: 'Financial Transactions Processing, Reserve, and Clearinghouse Activities',\n description:\n 'This industry comprises establishments primarily engaged in providing one or more of the following: (1) financial transaction processing (except central bank); (2) reserve and liquidity services (except central bank); and/or (3) check or other financial instrument clearinghouse services (except central bank).'\n },\n '522390': {\n title: 'Other Activities Related to Credit Intermediation',\n description:\n 'This industry comprises establishments primarily engaged in facilitating credit intermediation (except mortgage and loan brokerage; and financial transactions processing, reserve, and clearinghouse activities).'\n },\n '523150': {\n title: 'Investment Banking and Securities Intermediation',\n description:\n 'This industry comprises establishments primarily engaged in underwriting, originating, and/or maintaining markets for issues of securities, or acting as agents (i.e., brokers) between buyers and sellers in buying or selling securities on a commission or transaction fee basis. Investment bankers act as principals (i.e., investors who buy or sell on their own account) in firm commitment transactions or act as agents in best effort and standby commitments. This industry also includes establishments acting as principals in buying or selling securities generally on a spread basis, such as securities dealers or stock option dealers.'\n },\n '523160': {\n title: 'Commodity Contracts Intermediation',\n description:\n 'This industry comprises establishments primarily engaged in acting as principals (i.e., investors who buy or sell for their own account) in buying or selling spot or futures commodity contracts or options, such as precious metals, foreign currency, oil, or agricultural products, generally on a spread basis, or acting as agents (i.e., brokers) in buying or selling spot or futures commodity contracts or options on a commission or transaction fee basis.'\n },\n '523210': {\n title: 'Securities and Commodity Exchanges',\n description:\n 'This industry comprises establishments primarily engaged in furnishing physical or electronic marketplaces for the purpose of facilitating the buying and selling of stocks, stock options, bonds, or commodity contracts.'\n },\n '523910': {\n title: 'Miscellaneous Intermediation',\n description:\n 'This industry comprises establishments primarily engaged in acting as principals (except investment bankers, securities dealers, and commodity contracts dealers) in buying or selling financial contracts generally on a spread basis. Principals are investors that buy or sell for their own account.'\n },\n '523940': {\n title: 'Portfolio Management and Investment Advice',\n description:\n 'This industry comprises establishments primarily engaged in managing the portfolio assets (i.e., funds) of others on a fee or commission basis and/or providing customized investment advice to clients on a fee basis. Establishments providing portfolio management have the authority to make investment decisions, and they derive fees based on the size and/or overall performance of the portfolio. Establishments providing investment advice provide financial planning advice and investment counseling to meet the goals and needs of specific clients, but do not have the authority to execute trades.'\n },\n '523991': {\n title: 'Trust, Fiduciary, and Custody Activities',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing trust, fiduciary, and custody services to others, as instructed, on a fee or contract basis, such as bank trust offices and escrow agencies (except real estate).'\n },\n '523999': {\n title: 'Miscellaneous Financial Investment Activities',\n description:\n 'This U.S. industry comprises establishments primarily engaged in acting as agents and/or brokers (except securities brokerages and commodity contracts brokerages) in buying or selling financial contracts and those providing financial investment services (except securities and commodity exchanges; portfolio management; investment advice; and trust, fiduciary, and custody services) on a fee or commission basis.'\n },\n '524113': {\n title: 'Direct Life Insurance Carriers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in initially underwriting (i.e., assuming the risk and assigning premiums) annuities and life insurance policies, disability income insurance policies, and accidental death and dismemberment insurance policies.'\n },\n '524114': {\n title: 'Direct Health and Medical Insurance Carriers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in initially underwriting (i.e., assuming the risk and assigning premiums) health and medical insurance policies. Group hospitalization plans and HMO establishments that provide health and medical insurance policies without providing health care services are included in this industry.'\n },\n '524126': {\n title: 'Direct Property and Casualty Insurance Carriers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in initially underwriting (i.e., assuming the risk and assigning premiums) insurance policies that protect policyholders against losses that may occur as a result of property damage or liability.'\n },\n '524127': {\n title: 'Direct Title Insurance Carriers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in initially underwriting (i.e., assuming the risk and assigning premiums) insurance policies to protect the owners of real estate or real estate creditors against loss sustained by reason of any title defect to real property.'\n },\n '524128': {\n title: 'Other Direct Insurance (except Life, Health, and Medical) Carriers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in initially underwriting (e.g., assuming the risk, assigning premiums) insurance policies (except life, disability income, accidental death and dismemberment, health and medical, property and casualty, and title insurance policies).'\n },\n '524130': {\n title: 'Reinsurance Carriers',\n description:\n 'This industry comprises establishments primarily engaged in assuming all or part of the risk associated with existing insurance policies originally underwritten by other insurance carriers.'\n },\n '524210': {\n title: 'Insurance Agencies and Brokerages',\n description:\n 'This industry comprises establishments primarily engaged in acting as agents (i.e., brokers) in selling annuities and insurance policies.'\n },\n '524291': {\n title: 'Claims Adjusting',\n description:\n 'This U.S. industry comprises establishments primarily engaged in investigating, appraising, and settling insurance claims.'\n },\n '524292': {\n title:\n 'Pharmacy Benefit Management and Other Third Party Administration of Insurance and Pension Funds',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing pharmacy benefit management (PBM) services and other third party administration services of insurance and pension funds, such as claims processing and other administrative services to insurance carriers, employee benefit plans, and self-insurance funds.'\n },\n '524298': {\n title: 'All Other Insurance Related Activities',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing insurance services on a contract or fee basis (except insurance agencies and brokerages, claims adjusting, and third party administration). Insurance advisory services, insurance actuarial services, and insurance ratemaking services are included in this industry.'\n },\n '525110': {\n title: 'Pension Funds',\n description:\n \"This industry comprises legal entities (i.e., funds, plans, and/or programs) organized to provide retirement income benefits exclusively for the sponsor's employees or members.\"\n },\n '525120': {\n title: 'Health and Welfare Funds',\n description:\n \"This industry comprises legal entities (i.e., funds, plans, and/or programs) organized to provide medical, surgical, hospital, vacation, training, and other health- and welfare-related employee benefits exclusively for the sponsor's employees or members.\"\n },\n '525190': {\n title: 'Other Insurance Funds',\n description:\n \"This industry comprises legal entities (i.e., funds (except pension, and health- and welfare-related employee benefit funds)) organized to provide insurance exclusively for the sponsor, firm, or its employees or members. Self-insurance funds (except employee benefit funds) and workers' compensation insurance funds are included in this industry.\"\n },\n '525910': {\n title: 'Open-End Investment Funds',\n description:\n 'This industry comprises legal entities (i.e., open-end investment funds) organized to pool assets that consist of securities or other financial instruments. Shares in these pools are offered to the public in an initial offering with additional shares offered continuously and perpetually and redeemed at a specific price determined by the net asset value.'\n },\n '525920': {\n title: 'Trusts, Estates, and Agency Accounts',\n description:\n 'This industry comprises legal entities, trusts, estates, or agency accounts, administered on behalf of the beneficiaries under the terms of a trust agreement, will, or agency agreement.'\n },\n '525990': {\n title: 'Other Financial Vehicles',\n description:\n 'This industry comprises legal entities (i.e., funds (except insurance and employee benefit funds; open-end investment funds; trusts, estates, and agency accounts)). Included in this industry are mortgage real estate investment trusts (REITs).'\n },\n '531110': {\n title: 'Lessors of Residential Buildings and Dwellings',\n description:\n 'This industry comprises establishments primarily engaged in acting as lessors of buildings used as residences or dwellings, such as single-family homes, apartment buildings, and town homes. Included in this industry are owner-lessors and establishments renting real estate and then acting as lessors in subleasing it to others. The establishments in this industry may manage the property themselves or have another establishment manage it for them.'\n },\n '531120': {\n title: 'Lessors of Nonresidential Buildings (except Miniwarehouses)',\n description:\n 'This industry comprises establishments primarily engaged in acting as lessors of buildings (except miniwarehouses and self-storage units) that are not used as residences or dwellings. Included in this industry are: (1) owner-lessors of nonresidential buildings; (2) establishments renting real estate and then acting as lessors in subleasing it to others; and (3) establishments providing full service office space, whether on a lease or service contract basis. The establishments in this industry may manage the property themselves or have another establishment manage it for them.'\n },\n '531130': {\n title: 'Lessors of Miniwarehouses and Self-Storage Units',\n description:\n 'This industry comprises establishments primarily engaged in renting or leasing space for self-storage. These establishments provide secure space (i.e., rooms, compartments, lockers, containers, or outdoor space) where clients can store and retrieve their goods.'\n },\n '531190': {\n title: 'Lessors of Other Real Estate Property',\n description:\n 'This industry comprises establishments primarily engaged in acting as lessors of real estate (except buildings), such as manufactured home (i.e., mobile home) sites, vacant lots, and grazing land.'\n },\n '531210': {\n title: 'Offices of Real Estate Agents and Brokers',\n description:\n 'This industry comprises establishments primarily engaged in acting as agents and/or brokers in one or more of the following: (1) selling real estate for others; (2) buying real estate for others; and (3) renting real estate for others.'\n },\n '531311': {\n title: 'Residential Property Managers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in managing residential real estate for others.'\n },\n '531312': {\n title: 'Nonresidential Property Managers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in managing nonresidential real estate for others.'\n },\n '531320': {\n title: 'Offices of Real Estate Appraisers',\n description:\n 'This industry comprises establishments primarily engaged in estimating the fair market value of real estate.'\n },\n '531390': {\n title: 'Other Activities Related to Real Estate',\n description:\n 'This industry comprises establishments primarily engaged in performing real estate related services (except lessors of real estate, offices of real estate agents and brokers, real estate property managers, and offices of real estate appraisers).'\n },\n '532111': {\n title: 'Passenger Car Rental',\n description:\n 'This U.S. industry comprises establishments primarily engaged in renting passenger cars without drivers, generally for short periods of time.'\n },\n '532112': {\n title: 'Passenger Car Leasing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in leasing passenger cars without drivers, generally for long periods of time.'\n },\n '532120': {\n title: 'Truck, Utility Trailer, and RV (Recreational Vehicle) Rental and Leasing',\n description:\n 'This industry comprises establishments primarily engaged in renting or leasing, without drivers, one or more of the following: trucks, truck tractors, buses, semi-trailers, utility trailers, or RVs (recreational vehicles).'\n },\n '532210': {\n title: 'Consumer Electronics and Appliances Rental',\n description:\n 'This industry comprises establishments primarily engaged in renting consumer electronics equipment and appliances, such as televisions, stereos, and refrigerators. Included in this industry are appliance rental centers.'\n },\n '532281': {\n title: 'Formal Wear and Costume Rental',\n description:\n 'This U.S. industry comprises establishments primarily engaged in renting clothing, such as formal wear, costumes (e.g., theatrical), or other clothing (except laundered uniforms and work apparel).'\n },\n '532282': {\n title: 'Video Tape and Disc Rental',\n description:\n 'This U.S. industry comprises establishments primarily engaged in renting prerecorded video tapes and discs for home electronic equipment, including renting through vending machines.'\n },\n '532283': {\n title: 'Home Health Equipment Rental',\n description:\n 'This U.S. industry comprises establishments primarily engaged in renting home-type health and invalid equipment, such as wheelchairs, hospital beds, oxygen tanks, walkers, and crutches.'\n },\n '532284': {\n title: 'Recreational Goods Rental',\n description:\n 'This U.S. industry comprises establishments primarily engaged in renting recreational goods, such as bicycles, canoes, motorcycles, skis, sailboats, beach chairs, and beach umbrellas.'\n },\n '532289': {\n title: 'All Other Consumer Goods Rental',\n description:\n 'This U.S. industry comprises establishments primarily engaged in renting consumer goods and products (except consumer electronics and appliances; formal wear and costumes; prerecorded video tapes and discs for home electronic equipment; home health furniture and equipment; and recreational goods). Included in this industry are furniture rental centers and party rental supply centers.'\n },\n '532310': {\n title: 'General Rental Centers',\n description:\n \"This industry comprises establishments primarily engaged in renting a range of consumer, commercial, and industrial equipment. Establishments in this industry typically operate from conveniently located facilities where they maintain inventories of goods and equipment that they rent for short periods of time. The type of equipment that establishments in this industry provide often includes, but is not limited to: audio visual equipment, contractors' and builders' tools and equipment, home repair tools, lawn and garden equipment, moving equipment and supplies, and party and banquet equipment and supplies.\"\n },\n '532411': {\n title: 'Commercial Air, Rail, and Water Transportation Equipment Rental and Leasing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in renting or leasing off-highway transportation equipment without operators, such as aircraft, railroad cars, steamships, or tugboats.'\n },\n '532412': {\n title: 'Construction, Mining, and Forestry Machinery and Equipment Rental and Leasing',\n description:\n 'This U.S. industry comprises establishments primarily engaged in renting or leasing heavy equipment without operators that may be used for construction, mining, or forestry, such as bulldozers, earthmoving equipment, well drilling machinery and equipment, or cranes.'\n },\n '532420': {\n title: 'Office Machinery and Equipment Rental and Leasing',\n description:\n 'This industry comprises establishments primarily engaged in renting or leasing office machinery and equipment, such as computers, office furniture, duplicating machines (i.e., copiers), or facsimile machines.'\n },\n '532490': {\n title: 'Other Commercial and Industrial Machinery and Equipment Rental and Leasing',\n description:\n 'This industry comprises establishments primarily engaged in renting or leasing nonconsumer-type machinery and equipment (except heavy construction, transportation, mining, and forestry machinery and equipment without operators; and office machinery and equipment). Establishments in this industry rent or lease products, such as manufacturing equipment; metalworking, telecommunications, motion picture, theatrical machinery and equipment, or service industry machinery; institutional (i.e., public building) furniture, such as furniture for schools, theaters, or buildings; or agricultural equipment without operators.'\n },\n '533110': {\n title: 'Lessors of Nonfinancial Intangible Assets (except Copyrighted Works)',\n description:\n 'This industry comprises establishments primarily engaged in assigning rights to assets, such as patents, trademarks, brand names, and/or franchise agreements, for which a royalty payment or licensing fee is paid to the asset holder.'\n },\n '541110': {\n title: 'Offices of Lawyers',\n description:\n 'This industry comprises offices of legal practitioners known as lawyers or attorneys (i.e., counselors-at-law) primarily engaged in the practice of law. Establishments in this industry may provide expertise in a range or in specific areas of law, such as criminal law, corporate law, family and estate law, patent law, real estate law, or tax law.'\n },\n '541120': {\n title: 'Offices of Notaries',\n description:\n 'This industry comprises establishments (except offices of lawyers and attorneys) primarily engaged in drafting, approving, and executing legal documents, such as real estate transactions, wills, and contracts; and in receiving, indexing, and storing such documents.'\n },\n '541191': {\n title: 'Title Abstract and Settlement Offices',\n description:\n 'This U.S. industry comprises establishments (except offices of lawyers and attorneys) primarily engaged in one or more of the following activities: (1) researching public land records to gather information relating to real estate titles; (2) preparing documents necessary for the transfer of the title, financing, and settlement; (3) conducting final real estate settlements and closings; and (4) filing legal and other documents relating to the sale of real estate. Real estate settlement offices, title abstract companies, and title search companies are included in this industry.'\n },\n '541199': {\n title: 'All Other Legal Services',\n description:\n 'This U.S. industry comprises establishments of legal practitioners (except offices of lawyers and attorneys, settlement offices, and title abstract offices). These establishments are primarily engaged in providing specialized legal or paralegal services.'\n },\n '541211': {\n title: 'Offices of Certified Public Accountants',\n description:\n 'This U.S. industry comprises establishments of accountants that are certified to audit the accounting records of public and private organizations and to attest to compliance with generally accepted accounting practices. Offices of certified public accountants (CPAs) may provide one or more of the following accounting services: (1) auditing financial statements; (2) designing accounting systems; (3) preparing financial statements; (4) developing budgets; and (5) providing advice on matters related to accounting. These establishments may also provide related services, such as bookkeeping, tax return preparation, and payroll processing.'\n },\n '541213': {\n title: 'Tax Preparation Services',\n description:\n 'This U.S. industry comprises establishments (except offices of CPAs) engaged in providing tax return preparation services without also providing accounting, bookkeeping, billing, or payroll processing services. Basic knowledge of tax law and filing requirements is required.'\n },\n '541214': {\n title: 'Payroll Services',\n description:\n 'This U.S. industry comprises establishments (except offices of CPAs) engaged in the following without also providing accounting, bookkeeping, or billing services: (1) collecting information on hours worked, pay rates, deductions, and other payroll-related data from their clients and (2) using that information to generate paychecks, payroll reports, and tax filings. These establishments may use data processing and tabulating techniques as part of providing their services.'\n },\n '541219': {\n title: 'Other Accounting Services',\n description:\n 'This U.S. industry comprises establishments (except offices of CPAs) engaged in providing accounting services (except tax return preparation services only or payroll services only). These establishments may also provide tax return preparation or payroll services. Accountant (except CPA) offices, bookkeeper offices, and billing offices are included in this industry.'\n },\n '541310': {\n title: 'Architectural Services',\n description:\n 'This industry comprises establishments primarily engaged in planning and designing residential, institutional, leisure, commercial, and industrial buildings and structures by applying knowledge of design, construction procedures, zoning regulations, building codes, and building materials.'\n },\n '541320': {\n title: 'Landscape Architectural Services',\n description:\n 'This industry comprises establishments primarily engaged in planning and designing the development of land areas for projects, such as parks and other recreational areas; airports; highways; hospitals; schools; land subdivisions; and commercial, industrial, and residential areas, by applying knowledge of land characteristics, location of buildings and structures, use of land areas, and design of landscape projects.'\n },\n '541330': {\n title: 'Engineering Services',\n description:\n 'This industry comprises establishments primarily engaged in applying physical laws and principles of engineering in the design, development, and utilization of machines, materials, instruments, structures, processes, and systems. The assignments undertaken by these establishments may involve any of the following activities: provision of advice, preparation of feasibility studies, preparation of preliminary and final plans and designs, provision of technical services during the construction or installation phase, inspection and evaluation of engineering projects, and related services.'\n },\n '541340': {\n title: 'Drafting Services',\n description:\n 'This industry comprises establishments primarily engaged in drawing detailed layouts, plans, and illustrations of buildings, structures, systems, or components from engineering and architectural specifications.'\n },\n '541350': {\n title: 'Building Inspection Services',\n description:\n 'This industry comprises establishments primarily engaged in providing building inspection services. These establishments typically evaluate all aspects of the building structure and component systems and prepare a report on the physical condition of the property, generally for buyers or others involved in real estate transactions. Building inspection bureaus and establishments providing home inspection services are included in this industry.'\n },\n '541360': {\n title: 'Geophysical Surveying and Mapping Services',\n description:\n 'This industry comprises establishments primarily engaged in gathering, interpreting, and mapping geophysical data. Establishments in this industry often specialize in locating and measuring the extent of subsurface resources, such as oil, gas, and minerals, but they may also conduct surveys for engineering purposes. Establishments in this industry use a variety of surveying techniques depending on the purpose of the survey, including magnetic surveys, gravity surveys, seismic surveys, or electrical and electromagnetic surveys.'\n },\n '541370': {\n title: 'Surveying and Mapping (except Geophysical) Services',\n description:\n 'This industry comprises establishments primarily engaged in performing surveying and mapping services of the surface of the earth, including the sea floor. These services may include surveying and mapping of areas above or below the surface of the earth, such as the creation of view easements or segregating rights in parcels of land by creating underground utility easements.'\n },\n '541380': {\n title: 'Testing Laboratories and Services',\n description:\n 'This industry comprises establishments primarily engaged in performing physical, chemical, and other analytical testing services, such as acoustics or vibration testing, assaying, biological testing (except medical and veterinary), calibration testing, electrical and electronic testing, geotechnical testing, mechanical testing, nondestructive testing, or thermal testing. The testing may occur in a laboratory or on-site.'\n },\n '541410': {\n title: 'Interior Design Services',\n description:\n 'This industry comprises establishments primarily engaged in planning, designing, and administering projects in interior spaces to meet the physical and aesthetic needs of people using them, taking into consideration building codes, health and safety regulations, traffic patterns and floor planning, mechanical and electrical needs, and interior fittings and furniture. Interior designers and interior design consultants work in areas, such as hospitality design, health care design, institutional design, commercial and corporate design, and residential design. This industry also includes interior decorating consultants engaged exclusively in providing aesthetic services associated with interior spaces.'\n },\n '541420': {\n title: 'Industrial Design Services',\n description:\n 'This industry comprises establishments primarily engaged in creating and developing designs and specifications that optimize the use, value, and appearance of products. These services can include the determination of the materials, construction, mechanisms, shape, color, and surface finishes of the product, taking into consideration human characteristics and needs, safety, market appeal, and efficiency in production, distribution, use, and maintenance. Establishments providing automobile or furniture industrial design services or industrial design consulting services are included in this industry.'\n },\n '541430': {\n title: 'Graphic Design Services',\n description:\n 'This industry comprises establishments primarily engaged in planning, designing, and managing the production of visual communication in order to convey specific messages or concepts, clarify complex information, or project visual identities. These services can include the design of printed materials, packaging, advertising, signage systems, and corporate identification (logos). This industry also includes commercial artists engaged exclusively in generating drawings and illustrations requiring technical accuracy or interpretative skills.'\n },\n '541490': {\n title: 'Other Specialized Design Services',\n description:\n 'This industry comprises establishments primarily engaged in providing professional design services (except architectural, landscape architecture, engineering, interior, industrial, graphic, and computer systems design).'\n },\n '541511': {\n title: 'Custom Computer Programming Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in writing, modifying, testing, and supporting software to meet the needs of a particular customer.'\n },\n '541512': {\n title: 'Computer Systems Design Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in planning and designing computer systems that integrate computer hardware, software, and communication technologies. The hardware and software components of the system may be provided by this establishment or company as part of integrated services or may be provided by third parties or vendors. These establishments often install the system and train and support users of the system.'\n },\n '541513': {\n title: 'Computer Facilities Management Services',\n description:\n \"This U.S. industry comprises establishments primarily engaged in providing on-site management and operation of clients' computer systems and/or data processing facilities. Establishments providing computer systems or data processing facilities support services are included in this industry.\"\n },\n '541519': {\n title: 'Other Computer Related Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing computer related services (except custom programming, systems integration design, and facilities management services). Establishments providing computer disaster recovery services or software installation services are included in this industry.'\n },\n '541611': {\n title: 'Administrative Management and General Management Consulting Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing operating advice and assistance to businesses and other organizations on administrative management issues, such as financial planning and budgeting, equity and asset management, records management, office planning, strategic and organizational planning, site selection, new business start-up, and business process improvement. This industry also includes establishments of general management consultants that provide a full range of administrative, human resource, marketing, process, physical distribution, logistics, or other management consulting services to clients.'\n },\n '541612': {\n title: 'Human Resources Consulting Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing advice and assistance to businesses and other organizations in one or more of the following areas: (1) human resource and personnel policies, practices, and procedures; (2) employee benefits planning, communication, and administration; (3) compensation systems planning; and (4) wage and salary administration.'\n },\n '541613': {\n title: 'Marketing Consulting Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing operating advice and assistance to businesses and other organizations on marketing issues, such as developing marketing objectives and policies, sales forecasting, new product developing and pricing, licensing and franchise planning, and marketing planning and strategy.'\n },\n '541614': {\n title: 'Process, Physical Distribution, and Logistics Consulting Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing operating advice and assistance to businesses and other organizations in: (1) manufacturing operations improvement; (2) productivity improvement; (3) production planning and control; (4) quality assurance and quality control; (5) inventory management; (6) distribution networks; (7) warehouse use, operations, and utilization; (8) transportation and shipment of goods and materials; and (9) materials management and handling.'\n },\n '541618': {\n title: 'Other Management Consulting Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing management consulting services (except administrative and general management consulting; human resources consulting; marketing consulting; or process, physical distribution, and logistics consulting). Establishments providing telecommunications or utilities management consulting services are included in this industry.'\n },\n '541620': {\n title: 'Environmental Consulting Services',\n description:\n 'This industry comprises establishments primarily engaged in providing advice and assistance to businesses and other organizations on environmental issues, such as the control of environmental contamination from pollutants, toxic substances, and hazardous materials. These establishments identify problems (e.g., inspect buildings for hazardous materials), measure and evaluate risks, and recommend solutions. They employ a multidisciplined staff of scientists, engineers, and other technicians with expertise in areas, such as air and water quality, asbestos contamination, remediation, ecological restoration, and environmental law. Establishments providing sanitation or site remediation consulting services are included in this industry.'\n },\n '541690': {\n title: 'Other Scientific and Technical Consulting Services',\n description:\n 'This industry comprises establishments primarily engaged in providing advice and assistance to businesses and other organizations on scientific and technical issues (except environmental).'\n },\n '541713': {\n title: 'Research and Development in Nanotechnology',\n description:\n 'This U.S. industry comprises establishments primarily engaged in conducting nanotechnology research and experimental development. Nanotechnology research and experimental development involves the study of matter at the nanoscale (i.e., a scale of about 1 to 100 nanometers). This research and development in nanotechnology may result in development of new nanotechnology processes or in prototypes of new or altered materials and/or products that may be reproduced, utilized, or implemented by various industries.'\n },\n '541714': {\n title: 'Research and Development in Biotechnology (except Nanobiotechnology)',\n description:\n 'This U.S. industry comprises establishments primarily engaged in conducting biotechnology (except nanobiotechnology) research and experimental development. Biotechnology (except nanobiotechnology) research and experimental development involves the study of the use of microorganisms and cellular and biomolecular processes to develop or alter living or non-living materials. This research and development in biotechnology (except nanobiotechnology) may result in development of new biotechnology (except nanobiotechnology) processes or in prototypes of new or genetically-altered products that may be reproduced, utilized, or implemented by various industries.'\n },\n '541715': {\n title:\n 'Research and Development in the Physical, Engineering, and Life Sciences (except Nanotechnology and Biotechnology)',\n description:\n 'This U.S. industry comprises establishments primarily engaged in conducting research and experimental development (except nanotechnology and biotechnology research and experimental development) in the physical, engineering, and life sciences, such as agriculture, electronics, environmental, biology, botany, computers, chemistry, food, fisheries, forests, geology, health, mathematics, medicine, oceanography, pharmacy, physics, veterinary, and other allied subjects.'\n },\n '541720': {\n title: 'Research and Development in the Social Sciences and Humanities',\n description:\n 'This industry comprises establishments primarily engaged in conducting research and analyses in cognitive development, sociology, psychology, language, behavior, economic, and other social science and humanities research.'\n },\n '541810': {\n title: 'Advertising Agencies',\n description:\n 'This industry comprises establishments primarily engaged in creating advertising campaigns and placing such advertising in print and digital periodicals, newspapers, radio and television, or other media. These establishments are organized to provide a full range of services (i.e., through in-house capabilities or subcontracting), including advice, creative services, account management, production of advertising content, media planning, and buying (i.e., placing advertising).'\n },\n '541820': {\n title: 'Public Relations Agencies',\n description:\n 'This industry comprises establishments primarily engaged in designing and implementing public relations campaigns. These campaigns are designed to promote the interests and image of their clients. Establishments providing lobbying, political consulting, or public relations consulting are included in this industry.'\n },\n '541830': {\n title: 'Media Buying Agencies',\n description:\n 'This industry comprises establishments primarily engaged in purchasing advertising time or space from media outlets and reselling it to advertising agencies or individual companies directly.'\n },\n '541840': {\n title: 'Media Representatives',\n description:\n 'This industry comprises establishments of independent representatives primarily engaged in selling media time or space for media owners.'\n },\n '541850': {\n title: 'Indoor and Outdoor Display Advertising',\n description:\n 'This industry comprises establishments primarily engaged in creating and designing public display advertising campaign materials, such as printed, painted, or electronic displays; and/or placing such displays on indoor or outdoor billboards and panels, or on or within transit vehicles or facilities, shopping malls, retail (in-store) displays, and other display structures or sites.'\n },\n '541860': {\n title: 'Direct Mail Advertising',\n description:\n 'This industry comprises establishments primarily engaged in (1) creating and designing advertising campaigns for the purpose of distributing advertising materials (e.g., coupons, flyers, samples) or specialties (e.g., keychains, magnets, pens with customized messages imprinted) by mail or other direct distribution and/or (2) preparing such advertising materials or specialties for mailing or other direct distribution. These establishments may also compile, maintain, sell, and rent mailing lists.'\n },\n '541870': {\n title: 'Advertising Material Distribution Services',\n description:\n 'This industry comprises establishments primarily engaged in the direct distribution or delivery of advertisements (e.g., circulars, coupons, handbills) or samples. Establishments in this industry use methods, such as delivering advertisements or samples door-to-door, placing flyers or coupons on car windshields in parking lots, or handing out samples in retail stores.'\n },\n '541890': {\n title: 'Other Services Related to Advertising',\n description:\n 'This industry comprises establishments primarily engaged in providing advertising services (except advertising agency services, public relations agency services, media buying agency services, media representative services, display advertising services, direct mail advertising services, advertising material distribution services, and marketing consulting services).'\n },\n '541910': {\n title: 'Marketing Research and Public Opinion Polling',\n description:\n 'This industry comprises establishments primarily engaged in systematically gathering, recording, tabulating, and presenting marketing and public opinion data.'\n },\n '541921': {\n title: 'Photography Studios, Portrait',\n description:\n 'This U.S. industry comprises establishments known as portrait studios primarily engaged in providing still, video, or digital portrait photography services.'\n },\n '541922': {\n title: 'Commercial Photography',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing commercial photography services, generally for advertising agencies, publishers, and other business and industrial users.'\n },\n '541930': {\n title: 'Translation and Interpretation Services',\n description:\n 'This industry comprises establishments primarily engaged in translating written material and interpreting speech from one language to another and establishments primarily engaged in providing sign language services.'\n },\n '541940': {\n title: 'Veterinary Services',\n description:\n 'This industry comprises establishments of licensed veterinary practitioners primarily engaged in the practice of veterinary medicine, dentistry, or surgery for animals; and establishments primarily engaged in providing testing services for licensed veterinary practitioners.'\n },\n '541990': {\n title: 'All Other Professional, Scientific, and Technical Services',\n description:\n 'This industry comprises establishments primarily engaged in the provision of professional, scientific, or technical services (except legal services; accounting, tax preparation, bookkeeping, and related services; architectural, engineering, and related services; specialized design services; computer systems design and related services; management, scientific, and technical consulting services; scientific research and development services; advertising, public relations, and related services; market research and public opinion polling; photographic services; translation and interpretation services; and veterinary services).'\n },\n '551111': {\n title: 'Offices of Bank Holding Companies',\n description:\n 'This U.S. industry comprises legal entities known as bank holding companies primarily engaged in holding the securities of (or other equity interests in) companies and enterprises for the purpose of owning a controlling interest or influencing the management decisions of these firms. The holding companies in this industry do not administer, oversee, and manage other establishments of the company or enterprise whose securities they hold.'\n },\n '551112': {\n title: 'Offices of Other Holding Companies',\n description:\n 'This U.S. industry comprises legal entities known as holding companies (except bank holding) primarily engaged in holding the securities of (or other equity interests in) companies and enterprises for the purpose of owning a controlling interest or influencing the management decisions of these firms. The holding companies in this industry do not administer, oversee, and manage other establishments of the company or enterprise whose securities they hold.'\n },\n '551114': {\n title: 'Corporate, Subsidiary, and Regional Managing Offices',\n description:\n 'This U.S. industry comprises establishments (except government establishments) primarily engaged in administering, overseeing, and managing other establishments of the company or enterprise. These establishments normally undertake the strategic or organizational planning and decision-making role of the company or enterprise. Establishments in this industry may hold the securities of the company or enterprise.'\n },\n '561110': {\n title: 'Office Administrative Services',\n description:\n 'This industry comprises establishments primarily engaged in providing a range of day-to-day office administrative services, such as financial planning; billing and recordkeeping; personnel; and physical distribution and logistics, for others on a contract or fee basis. These establishments do not provide operating staff to carry out the complete operations of a business.'\n },\n '561210': {\n title: 'Facilities Support Services',\n description:\n \"This industry comprises establishments primarily engaged in providing operating staff to perform a combination of support services within a client's facilities. Establishments in this industry typically provide a combination of services, such as janitorial, maintenance, trash disposal, guard and security, mail routing, reception, laundry, and related services to support operations within facilities. These establishments provide operating staff to carry out these support activities, but are not involved with or responsible for the core business or activities of the client. Establishments providing facilities (except computer and/or data processing) operation support services and establishments providing private jail services or operating correctional facilities (i.e., jails) on a contract or fee basis are included in this industry.\"\n },\n '561311': {\n title: 'Employment Placement Agencies',\n description:\n 'This U.S. industry comprises establishments primarily engaged in listing employment vacancies and in recruiting, referring, or placing applicants for employment. The individuals referred or placed are not employees of the employment agencies.'\n },\n '561312': {\n title: 'Executive Search Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing executive search, recruitment, and placement services for clients with specific executive and senior management position requirements. The range of services provided by these establishments may include developing a search strategy and position specification based on the culture and needs of the client; researching, identifying, screening, and interviewing candidates; verifying candidate qualifications; and assisting in final offer negotiations and assimilation of the selected candidate. The individuals identified, recruited, or placed are not employees of the executive search services establishments.'\n },\n '561320': {\n title: 'Temporary Help Services',\n description:\n \"This industry comprises establishments primarily engaged in supplying workers to clients' businesses for limited periods of time to supplement the working force of the client. The individuals provided are employees of the temporary help services establishment. However, these establishments do not provide direct supervision of their employees at the clients' work sites.\"\n },\n '561330': {\n title: 'Professional Employer Organizations',\n description:\n \"This industry comprises establishments primarily engaged in providing human resources and human resource management services to client businesses and households. Establishments in this industry operate in a co-employment relationship with client businesses or organizations and are specialized in performing a wide range of human resource and personnel management duties, such as payroll, payroll tax, benefits administration, workers' compensation, unemployment, and human resource administration. Professional employer organizations (PEOs) are responsible for payroll, including withholding and remitting employment-related taxes, for some or all of the employees of their clients, and also serve as the employer of those employees for benefits and related purposes.\"\n },\n '561410': {\n title: 'Document Preparation Services',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) letter or resume writing; (2) document editing or proofreading; (3) typing, word processing, or desktop publishing; and (4) stenography (except court reporting or stenotype recording), transcription, and other secretarial services.'\n },\n '561421': {\n title: 'Telephone Answering Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in answering telephone calls and relaying messages on behalf of clients or for other establishments of the same enterprise.'\n },\n '561422': {\n title: 'Telemarketing Bureaus and Other Contact Centers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating call centers that initiate or receive communications via telephone, facsimile, email, or other communication modes for purposes such as: (1) promoting products or services, (2) taking orders, (3) soliciting contributions, and (4) providing information or assistance regarding products or services. Telemarketing bureaus and other contact centers provide these services on behalf of clients and do not own the products or provide the services that they are representing, or they serve other establishments of the same enterprise.'\n },\n '561431': {\n title: 'Private Mail Centers',\n description:\n 'This U.S. industry comprises (1) establishments primarily engaged in providing mailbox rental and other postal and mailing (except direct mail advertising) services or (2) establishments engaged in providing these mailing services along with one or more other office support services, such as facsimile services, word processing services, on-site PC rental services, and office product sales.'\n },\n '561439': {\n title: 'Other Business Service Centers (including Copy Shops)',\n description:\n 'This U.S. industry comprises (1) establishments generally known as copy centers or shops primarily engaged in providing photocopying, duplicating, blueprinting, and other document copying services, without also providing printing services (e.g., offset printing, quick printing, digital printing, prepress services) and (2) establishments (except private mail centers) engaged in providing a range of office support services (except printing services), such as document copying services, facsimile services, word processing services, on-site PC rental services, and office product sales.'\n },\n '561440': {\n title: 'Collection Agencies',\n description:\n 'This industry comprises establishments primarily engaged in collecting payments for claims and remitting payments collected to their clients.'\n },\n '561450': {\n title: 'Credit Bureaus',\n description:\n 'This industry comprises establishments primarily engaged in compiling information, such as credit and employment histories, and providing the information to financial institutions, retailers, and others who have a need to evaluate the creditworthiness of individuals and businesses.'\n },\n '561491': {\n title: 'Repossession Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in repossessing tangible assets (e.g., automobiles, boats, equipment, planes, furniture, appliances) for the creditor as a result of delinquent debts.'\n },\n '561492': {\n title: 'Court Reporting and Stenotype Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing verbatim reporting and stenotype recording of live legal proceedings and transcribing subsequent recorded materials.'\n },\n '561499': {\n title: 'All Other Business Support Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing business support services (except secretarial and other document preparation services; telephone answering and telemarketing services; private mail services or document copying services conducted as separate activities or in conjunction with other office support services; monetary debt collection services; credit reporting services; repossession services; and court reporting and stenotype recording services).'\n },\n '561510': {\n title: 'Travel Agencies',\n description:\n 'This industry comprises establishments primarily engaged in acting as agents in selling travel, tour, and accommodation services to the general public and commercial clients.'\n },\n '561520': {\n title: 'Tour Operators',\n description:\n 'This industry comprises establishments primarily engaged in arranging and assembling tours. The tours are sold through travel agencies or tour operators. Travel or wholesale tour operators are included in this industry.'\n },\n '561591': {\n title: 'Convention and Visitors Bureaus',\n description:\n 'This U.S. industry comprises establishments primarily engaged in marketing and promoting communities and facilities to businesses and leisure travelers through a range of activities, such as assisting organizations in locating meeting and convention sites; providing travel information on area attractions, lodging accommodations, restaurants; providing maps; and organizing group tours of local historical, recreational, and cultural attractions.'\n },\n '561599': {\n title: 'All Other Travel Arrangement and Reservation Services',\n description:\n 'This U.S. industry comprises establishments (except travel agencies, tour operators, and convention and visitors bureaus) primarily engaged in providing travel arrangement and reservation services.'\n },\n '561611': {\n title: 'Investigation and Personal Background Check Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing investigation, detective, and personal background check services.'\n },\n '561612': {\n title: 'Security Guards and Patrol Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing guard and patrol services, such as bodyguard, guard dog, and parking security services.'\n },\n '561613': {\n title: 'Armored Car Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in picking up and delivering money, receipts, or other valuable items. These establishments maintain personnel and equipment to protect such properties while in transit.'\n },\n '561621': {\n title: 'Security Systems Services (except Locksmiths)',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) selling security alarm systems, such as burglar and fire alarms, along with installation, repair, or monitoring services or (2) remote monitoring of electronic security alarm systems.'\n },\n '561622': {\n title: 'Locksmiths',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) selling mechanical or electronic locking devices, safes, and security vaults, along with installation, repair, rebuilding, or adjusting services or (2) installing, repairing, rebuilding, and adjusting mechanical or electronic locking devices, safes, and security vaults.'\n },\n '561710': {\n title: 'Exterminating and Pest Control Services',\n description:\n 'This industry comprises establishments primarily engaged in exterminating and controlling birds, mosquitoes, rodents, termites, and other insects and pests (except for crop production and forestry production). Establishments providing fumigation services are included in this industry.'\n },\n '561720': {\n title: 'Janitorial Services',\n description:\n 'This industry comprises establishments primarily engaged in cleaning building interiors, interiors of transportation equipment (e.g., aircraft, rail cars, ships), and/or windows.'\n },\n '561730': {\n title: 'Landscaping Services',\n description:\n 'This industry comprises (1) establishments primarily engaged in providing landscape care and maintenance services and/or installing trees, shrubs, plants, lawns, or gardens and (2) establishments primarily engaged in providing these services along with the design of landscape plans and/or the construction (i.e., installation) of walkways, retaining walls, decks, fences, ponds, and similar structures.'\n },\n '561740': {\n title: 'Carpet and Upholstery Cleaning Services',\n description:\n 'This industry comprises establishments primarily engaged in cleaning and dyeing used rugs, carpets, and upholstery.'\n },\n '561790': {\n title: 'Other Services to Buildings and Dwellings',\n description:\n 'This industry comprises establishments primarily engaged in providing services to buildings and dwellings (except exterminating and pest control; janitorial; landscaping care and maintenance; and carpet and upholstery cleaning).'\n },\n '561910': {\n title: 'Packaging and Labeling Services',\n description:\n 'This industry comprises establishments primarily engaged in packaging client-owned materials. The services may include labeling and/or imprinting the package.'\n },\n '561920': {\n title: 'Convention and Trade Show Organizers',\n description:\n 'This industry comprises establishments primarily engaged in organizing, promoting, and/or managing events, such as business and trade shows, conventions, conferences, and meetings (whether or not they manage and provide the staff to operate the facilities in which these events take place).'\n },\n '561990': {\n title: 'All Other Support Services',\n description:\n 'This industry comprises establishments primarily engaged in providing day-to-day business and other organizational support services (except office administrative services, facilities support services, employment services, business support services, travel arrangement and reservation services, security and investigation services, services to buildings and other structures, packaging and labeling services, and convention and trade show organizing services).'\n },\n '562111': {\n title: 'Solid Waste Collection',\n description:\n 'This U.S. industry comprises establishments primarily engaged in one or more of the following: (1) collecting and/or hauling nonhazardous solid waste (i.e., garbage) within a local area; (2) operating nonhazardous solid waste transfer stations; and (3) collecting and/or hauling mixed recyclable materials within a local area.'\n },\n '562112': {\n title: 'Hazardous Waste Collection',\n description:\n 'This U.S. industry comprises establishments primarily engaged in collecting and/or hauling hazardous waste within a local area and/or operating hazardous waste transfer stations. Hazardous waste collection establishments may be responsible for the identification, treatment, packaging, and labeling of waste for the purposes of transport.'\n },\n '562119': {\n title: 'Other Waste Collection',\n description:\n 'This U.S. industry comprises establishments primarily engaged in collecting and/or hauling waste (except nonhazardous solid waste and hazardous waste) within a local area. Establishments engaged in brush or rubble removal services are included in this industry.'\n },\n '562211': {\n title: 'Hazardous Waste Treatment and Disposal',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) operating treatment and/or disposal facilities for hazardous waste or (2) the combined activity of collecting and/or hauling of hazardous waste materials within a local area and operating treatment or disposal facilities for hazardous waste.'\n },\n '562212': {\n title: 'Solid Waste Landfill',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) operating landfills for the disposal of nonhazardous solid waste or (2) the combined activity of collecting and/or hauling nonhazardous waste materials within a local area and operating landfills for the disposal of nonhazardous solid waste. These establishments may produce byproducts, such as methane.'\n },\n '562213': {\n title: 'Solid Waste Combustors and Incinerators',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating combustors and incinerators for the disposal of nonhazardous solid waste. These establishments may produce byproducts, such as electricity and steam.'\n },\n '562219': {\n title: 'Other Nonhazardous Waste Treatment and Disposal',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) operating nonhazardous waste treatment and disposal facilities (except landfills, combustors, incinerators, and sewer systems or sewage treatment facilities) or (2) the combined activity of collecting and/or hauling of nonhazardous waste materials within a local area and operating waste treatment or disposal facilities (except landfills, combustors, incinerators, and sewer systems or sewage treatment facilities). Compost dumps are included in this industry.'\n },\n '562910': {\n title: 'Remediation Services',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) remediation and cleanup of contaminated buildings, mine sites, soil, or ground water; (2) integrated mine reclamation activities, including demolition, soil remediation, waste water treatment, hazardous material removal, contouring land, and revegetation; and (3) asbestos, lead paint, and other toxic material abatement.'\n },\n '562920': {\n title: 'Materials Recovery Facilities',\n description:\n 'This industry comprises establishments primarily engaged in (1) operating facilities for separating and sorting recyclable materials from nonhazardous waste streams (i.e., garbage) and/or (2) operating facilities where commingled recyclable materials, such as paper, plastics, used beverage cans, and metals, are sorted into distinct categories.'\n },\n '562991': {\n title: 'Septic Tank and Related Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) pumping (i.e., cleaning) septic tanks and cesspools and/or (2) renting and/or servicing portable toilets.'\n },\n '562998': {\n title: 'All Other Miscellaneous Waste Management Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing waste management services (except waste collection, waste treatment and disposal, remediation, operation of materials recovery facilities, septic tank pumping and related services, and waste management consulting services).'\n },\n '611110': {\n title: 'Elementary and Secondary Schools',\n description:\n 'This industry comprises establishments primarily engaged in furnishing academic courses and associated course work that comprise a basic preparatory education. A basic preparatory education ordinarily constitutes kindergarten through 12th grade. This industry includes school boards and school districts.'\n },\n '611210': {\n title: 'Junior Colleges',\n description:\n \"This industry comprises establishments primarily engaged in furnishing academic, or academic and technical, courses and granting associate degrees, certificates, or diplomas below the baccalaureate level. The requirement for admission to an associate or equivalent degree program is at least a high school diploma or equivalent general academic training. Instruction may be provided in diverse settings, such as the establishment's or client's training facilities, educational institutions, the workplace, or the home, and through diverse means, such as correspondence, television, the Internet, or other electronic and distance-learning methods. The training provided by these establishments may include the use of simulators and simulation methods.\"\n },\n '611310': {\n title: 'Colleges, Universities, and Professional Schools',\n description:\n \"This industry comprises establishments primarily engaged in furnishing academic courses and granting degrees at baccalaureate or graduate levels. The requirement for admission is at least a high school diploma or equivalent general academic training. Instruction may be provided in diverse settings, such as the establishment's or client's training facilities, educational institutions, the workplace, or the home, and through diverse means, such as correspondence, television, the Internet, or other electronic and distance-learning methods. The training provided by these establishments may include the use of simulators and simulation methods.\"\n },\n '611410': {\n title: 'Business and Secretarial Schools',\n description:\n \"This industry comprises establishments primarily engaged in offering courses in office procedures and secretarial and stenographic skills and may offer courses in basic office skills, such as word processing. In addition, these establishments may offer such classes as office machine operation, reception, communications, and other skills designed for individuals pursuing a clerical or secretarial career. Instruction may be provided in diverse settings, such as the establishment's or client's training facilities, educational institutions, the workplace, or the home, and through diverse means, such as correspondence, television, the Internet, or other electronic and distance-learning methods. The training provided by these establishments may include the use of simulators and simulation methods.\"\n },\n '611420': {\n title: 'Computer Training',\n description:\n \"This industry comprises establishments primarily engaged in conducting computer training (except computer repair), such as instruction in computer programming, software applications, computerized business systems, computer electronics technology, computer operations, and local area network management. Instruction may be provided in diverse settings, such as the establishment's or client's training facilities, educational institutions, the workplace, or the home, and through diverse means, such as correspondence, television, the Internet, or other electronic and distance-learning methods. The training provided by these establishments may include the use of simulators and simulation methods.\"\n },\n '611430': {\n title: 'Professional and Management Development Training',\n description:\n \"This industry comprises establishments primarily engaged in offering an array of short duration courses and seminars for management and professional development. Training for career development may be provided directly to individuals or through employers' training programs, and courses may be customized or modified to meet the special needs of customers. Instruction may be provided in diverse settings, such as the establishment's or client's training facilities, educational institutions, the workplace, or the home, and through diverse means, such as correspondence, television, the Internet, or other electronic and distance-learning methods. The training provided by these establishments may include the use of simulators and simulation methods.\"\n },\n '611511': {\n title: 'Cosmetology and Barber Schools',\n description:\n 'This U.S. industry comprises establishments primarily engaged in offering training in barbering, hair styling, or the cosmetic arts, such as makeup or skin care. These schools provide job-specific certification.'\n },\n '611512': {\n title: 'Flight Training',\n description:\n 'This U.S. industry comprises establishments primarily engaged in offering aviation and flight training. These establishments may offer vocational training, recreational training, or both.'\n },\n '611513': {\n title: 'Apprenticeship Training',\n description:\n 'This U.S. industry comprises establishments primarily engaged in offering apprenticeship training programs. These programs involve applied training as well as course work.'\n },\n '611519': {\n title: 'Other Technical and Trade Schools',\n description:\n 'This U.S. industry comprises establishments primarily engaged in offering job or career vocational or technical courses (except cosmetology and barber training, aviation and flight training, and apprenticeship training). The curriculums offered by these schools are highly structured and specialized and lead to job-specific certification.'\n },\n '611610': {\n title: 'Fine Arts Schools',\n description:\n 'This industry comprises establishments primarily engaged in offering instruction in the arts, including dance, art, drama, and music.'\n },\n '611620': {\n title: 'Sports and Recreation Instruction',\n description:\n 'This industry comprises establishments, such as camps and schools, primarily engaged in offering instruction in athletic activities. Overnight and day sports instruction camps are included in this industry.'\n },\n '611630': {\n title: 'Language Schools',\n description:\n 'This industry comprises establishments primarily engaged in offering foreign language instruction (including sign language). These establishments are designed to offer language instruction ranging from conversational skills for personal enrichment to intensive training courses for career or educational opportunities.'\n },\n '611691': {\n title: 'Exam Preparation and Tutoring',\n description:\n 'This U.S. industry comprises establishments primarily engaged in offering preparation for standardized examinations and/or academic tutoring services.'\n },\n '611692': {\n title: 'Automobile Driving Schools',\n description:\n 'This U.S. industry comprises establishments primarily engaged in offering automobile driving instruction.'\n },\n '611699': {\n title: 'All Other Miscellaneous Schools and Instruction',\n description:\n 'This U.S. industry comprises establishments primarily engaged in offering instruction (except academic schools, colleges, and universities; business, computer, and management instruction; technical and trade instruction; and fine arts, sports, recreation, language, exam preparation, tutoring, and automobile driving instruction).'\n },\n '611710': {\n title: 'Educational Support Services',\n description:\n 'This industry comprises establishments primarily engaged in providing non-instructional services that support educational processes or systems.'\n },\n '621111': {\n title: 'Offices of Physicians (except Mental Health Specialists)',\n description:\n 'This U.S. industry comprises establishments of health practitioners having the degree of M.D. (Doctor of Medicine) or D.O. (Doctor of Osteopathic Medicine) primarily engaged in the independent practice of general or specialized medicine (except psychiatry or psychoanalysis) or surgery. These practitioners operate private or group practices in their own offices (e.g., centers, clinics) or in the facilities of others, such as hospitals or HMO medical centers.'\n },\n '621112': {\n title: 'Offices of Physicians, Mental Health Specialists',\n description:\n 'This U.S. industry comprises establishments of health practitioners having the degree of M.D. (Doctor of Medicine) or D.O. (Doctor of Osteopathic Medicine) primarily engaged in the independent practice of psychiatry or psychoanalysis. These practitioners operate private or group practices in their own offices (e.g., centers, clinics) or in the facilities of others, such as hospitals or HMO medical centers.'\n },\n '621210': {\n title: 'Offices of Dentists',\n description:\n 'This industry comprises establishments of health practitioners having the degree of D.M.D. (Doctor of Dental Medicine), D.D.S. (Doctor of Dental Surgery), or D.D.Sc. (Doctor of Dental Science) primarily engaged in the independent practice of general or specialized dentistry or dental surgery. These practitioners operate private or group practices in their own offices (e.g., centers, clinics) or in the facilities of others, such as hospitals or HMO medical centers. They can provide either comprehensive preventive, cosmetic, or emergency care, or specialize in a single field of dentistry.'\n },\n '621310': {\n title: 'Offices of Chiropractors',\n description:\n 'This industry comprises establishments of health practitioners having the degree of D.C. (Doctor of Chiropractic) primarily engaged in the independent practice of chiropractic. These practitioners provide diagnostic and therapeutic treatment of neuromusculoskeletal and related disorders through the manipulation and adjustment of the spinal column and extremities, and operate private or group practices in their own offices (e.g., centers, clinics) or in the facilities of others, such as hospitals or HMO medical centers.'\n },\n '621320': {\n title: 'Offices of Optometrists',\n description:\n 'This industry comprises establishments of health practitioners having the degree of O.D. (Doctor of Optometry) primarily engaged in the independent practice of optometry. These practitioners examine, diagnose, treat, and manage diseases and disorders of the visual system, the eye, and associated structures as well as diagnose related systemic conditions. Offices of optometrists prescribe and/or provide eyeglasses, contact lenses, low vision aids, and vision therapy. They operate private or group practices in their own offices (e.g., centers, clinics) or in the facilities of others, such as hospitals or HMO medical centers, and may also provide the same services as opticians, such as selling and fitting prescription eyeglasses and contact lenses.'\n },\n '621330': {\n title: 'Offices of Mental Health Practitioners (except Physicians)',\n description:\n 'This industry comprises establishments of independent mental health practitioners (except physicians) primarily engaged in (1) the diagnosis and treatment of mental, emotional, and behavioral disorders and/or (2) the diagnosis and treatment of individual or group social dysfunction brought about by such causes as mental illness, alcohol and substance abuse, physical and emotional trauma, or stress. These practitioners operate private or group practices in their own offices (e.g., centers, clinics) or in the facilities of others, such as hospitals or HMO medical centers.'\n },\n '621340': {\n title: 'Offices of Physical, Occupational and Speech Therapists, and Audiologists',\n description:\n 'This industry comprises establishments of independent health practitioners primarily engaged in one of the following: (1) providing physical therapy services to patients who have impairments, functional limitations, disabilities, or changes in physical functions and health status resulting from injury, disease or other causes, or who require prevention, wellness or fitness services; (2) planning and administering educational, recreational, and social activities designed to help patients or individuals with disabilities regain physical or mental functioning or adapt to their disabilities; and (3) diagnosing and treating speech, language, or hearing problems. These practitioners operate private or group practices in their own offices (e.g., centers, clinics) or in the facilities of others, such as hospitals or HMO medical centers.'\n },\n '621391': {\n title: 'Offices of Podiatrists',\n description:\n 'This U.S. industry comprises establishments of health practitioners having the degree of D.P.M. (Doctor of Podiatric Medicine) primarily engaged in the independent practice of podiatry. These practitioners diagnose and treat diseases and deformities of the foot and operate private or group practices in their own offices (e.g., centers, clinics) or in the facilities of others, such as hospitals or HMO medical centers.'\n },\n '621399': {\n title: 'Offices of All Other Miscellaneous Health Practitioners',\n description:\n 'This U.S. industry comprises establishments of independent health practitioners (except physicians; dentists; chiropractors; optometrists; mental health specialists; physical, occupational, and speech therapists; audiologists; and podiatrists). These practitioners operate private or group practices in their own offices (e.g., centers, clinics) or in the facilities of others, such as hospitals or HMO medical centers.'\n },\n '621410': {\n title: 'Family Planning Centers',\n description:\n 'This industry comprises establishments with medical staff primarily engaged in providing a range of family planning services on an outpatient basis, such as contraceptive services, genetic and prenatal counseling, voluntary sterilization, and therapeutic and medically induced termination of pregnancy.'\n },\n '621420': {\n title: 'Outpatient Mental Health and Substance Abuse Centers',\n description:\n 'This industry comprises establishments with medical staff primarily engaged in providing outpatient services related to the diagnosis and treatment of mental health disorders and alcohol and other substance abuse. These establishments generally treat patients who do not require inpatient treatment. They may provide a counseling staff and information regarding a wide range of mental health and substance abuse issues and/or refer patients to more extensive treatment programs, if necessary.'\n },\n '621491': {\n title: 'HMO Medical Centers',\n description:\n 'This U.S. industry comprises establishments with physicians and other medical staff primarily engaged in providing a range of outpatient medical services to the health maintenance organization (HMO) subscribers with a focus generally on primary health care. These establishments are owned by the HMO. Included in this industry are HMO establishments that both provide health care services and underwrite health and medical insurance policies.'\n },\n '621492': {\n title: 'Kidney Dialysis Centers',\n description:\n 'This U.S. industry comprises establishments with medical staff primarily engaged in providing outpatient kidney or renal dialysis services.'\n },\n '621493': {\n title: 'Freestanding Ambulatory Surgical and Emergency Centers',\n description:\n 'This U.S. industry comprises establishments with physicians and other medical staff primarily engaged in (1) providing surgical services (e.g., orthoscopic and cataract surgery) on an outpatient basis or (2) providing emergency care services (e.g., setting broken bones, treating lacerations, or tending to patients suffering injuries as a result of accidents, trauma, or medical conditions necessitating immediate medical care) on an outpatient basis. Outpatient surgical establishments have specialized facilities, such as operating and recovery rooms, and specialized equipment, such as anesthetic or X-ray equipment.'\n },\n '621498': {\n title: 'All Other Outpatient Care Centers',\n description:\n 'This U.S. industry comprises establishments with medical staff primarily engaged in providing general or specialized outpatient care (except family planning centers, outpatient mental health and substance abuse centers, HMO medical centers, kidney dialysis centers, and freestanding ambulatory surgical and emergency centers). Centers or clinics of health practitioners with different degrees from more than one industry practicing within the same establishment (e.g., Doctor of Medicine and Doctor of Dental Medicine) are included in this industry.'\n },\n '621511': {\n title: 'Medical Laboratories',\n description:\n 'This U.S. industry comprises establishments known as medical laboratories primarily engaged in providing analytic or diagnostic services, including body fluid analysis, generally to the medical profession or to the patient on referral from a health practitioner.'\n },\n '621512': {\n title: 'Diagnostic Imaging Centers',\n description:\n 'This U.S. industry comprises establishments known as diagnostic imaging centers primarily engaged in producing images of the patient generally on referral from a health practitioner.'\n },\n '621610': {\n title: 'Home Health Care Services',\n description:\n 'This industry comprises establishments primarily engaged in providing skilled nursing services in the home, along with a range of the following: personal care services; homemaker and companion services; physical therapy; medical social services; medications; medical equipment and supplies; counseling; 24-hour home care; occupation and vocational therapy; dietary and nutritional services; speech therapy; audiology; and high-tech care, such as intravenous therapy.'\n },\n '621910': {\n title: 'Ambulance Services',\n description:\n 'This industry comprises establishments primarily engaged in providing transportation of patients by ground or air, along with medical care. These services are often provided during a medical emergency but are not restricted to emergencies. The vehicles are equipped with lifesaving equipment operated by medically trained personnel.'\n },\n '621991': {\n title: 'Blood and Organ Banks',\n description:\n 'This U.S. industry comprises establishments primarily engaged in collecting, storing, and distributing blood and blood products and storing and distributing body organs.'\n },\n '621999': {\n title: 'All Other Miscellaneous Ambulatory Health Care Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing ambulatory health care services (except offices of physicians, dentists, and other health practitioners; outpatient care centers; medical and diagnostic laboratories; home health care providers; ambulances; and blood and organ banks).'\n },\n '622110': {\n title: 'General Medical and Surgical Hospitals',\n description:\n 'This industry comprises establishments known and licensed as general medical and surgical hospitals primarily engaged in providing diagnostic and medical treatment (both surgical and nonsurgical) to inpatients with any of a wide variety of medical conditions. These establishments maintain inpatient beds and provide patients with food services that meet their nutritional requirements. These hospitals have an organized staff of physicians and other medical staff to provide patient care services. These establishments usually provide other services, such as outpatient services, anatomical pathology services, diagnostic X-ray services, clinical laboratory services, operating room services for a variety of procedures, and pharmacy services.'\n },\n '622210': {\n title: 'Psychiatric and Substance Abuse Hospitals',\n description:\n 'This industry comprises establishments known and licensed as psychiatric and substance abuse hospitals primarily engaged in providing diagnostic, medical treatment, and monitoring services for inpatients who suffer from mental illness or substance abuse disorders. The treatment often requires an extended stay in the hospital. These establishments maintain inpatient beds and provide patients with food services that meet their nutritional requirements. They have an organized staff of physicians and other medical staff to provide patient care services. Psychiatric, psychological, and social work services are available at the facility. These hospitals usually provide other services, such as outpatient services, clinical laboratory services, diagnostic X-ray services, and electroencephalograph services.'\n },\n '622310': {\n title: 'Specialty (except Psychiatric and Substance Abuse) Hospitals',\n description:\n 'This industry comprises establishments known and licensed as specialty hospitals primarily engaged in providing diagnostic and medical treatment to inpatients with a specific type of disease or medical condition (except psychiatric or substance abuse). Hospitals providing long-term care for the chronically ill and hospitals providing rehabilitation, restorative, and adjustive services to physically challenged or disabled people are included in this industry. These establishments maintain inpatient beds and provide patients with food services that meet their nutritional requirements. They have an organized staff of physicians and other medical staff to provide patient care services. These hospitals may provide other services, such as outpatient services, diagnostic X-ray services, clinical laboratory services, operating room services, physical therapy services, educational and vocational services, and psychological and social work services.'\n },\n '623110': {\n title: 'Nursing Care Facilities (Skilled Nursing Facilities)',\n description:\n 'This industry comprises establishments primarily engaged in providing inpatient nursing and rehabilitative services. The care is generally provided for an extended period of time to individuals requiring nursing care. These establishments have a permanent core staff of registered or licensed practical nurses who, along with other staff, provide nursing and continuous personal care services.'\n },\n '623210': {\n title: 'Residential Intellectual and Developmental Disability Facilities',\n description:\n 'This industry comprises establishments (e.g., group homes, hospitals, intermediate care facilities) primarily engaged in providing residential care services for persons with intellectual and developmental disabilities. These facilities may provide some health care, though the focus is room, board, protective supervision, and counseling.'\n },\n '623220': {\n title: 'Residential Mental Health and Substance Abuse Facilities',\n description:\n 'This industry comprises establishments primarily engaged in providing residential care and treatment for patients with mental health and substance abuse illnesses. These establishments provide room, board, supervision, and counseling services. Although medical services may be available at these establishments, they are incidental to the counseling, mental rehabilitation, and support services offered. These establishments generally provide a wide range of social services in addition to counseling.'\n },\n '623311': {\n title: 'Continuing Care Retirement Communities',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing a range of residential and personal care services with on-site nursing care facilities for (1) the elderly and other persons who are unable to fully care for themselves and/or (2) the elderly and other persons who do not desire to live independently. Individuals live in a variety of residential settings with meals, housekeeping, social, leisure, and other services available to assist residents in daily living. Assisted living facilities with on-site nursing care facilities are included in this industry.'\n },\n '623312': {\n title: 'Assisted Living Facilities for the Elderly',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing residential and personal care services without nursing care for (1) the elderly or other persons who are unable to fully care for themselves and/or (2) the elderly or other persons who do not desire to live independently. The care typically includes room, board, supervision, and assistance in daily living, such as housekeeping services.'\n },\n '623990': {\n title: 'Other Residential Care Facilities',\n description:\n 'This industry comprises establishments primarily engaged in providing residential care (except residential intellectual and developmental disability facilities, residential mental health and substance abuse facilities, continuing care retirement communities, and assisted living facilities for the elderly). These establishments also provide supervision and personal care services.'\n },\n '624110': {\n title: 'Child and Youth Services',\n description:\n 'This industry comprises establishments primarily engaged in providing nonresidential social assistance services for children and youth. These establishments provide for the welfare of children in such areas as adoption and foster care, drug prevention, life skills training, and positive social development.'\n },\n '624120': {\n title: 'Services for the Elderly and Persons with Disabilities',\n description:\n 'This industry comprises establishments primarily engaged in providing nonresidential social assistance services to improve the quality of life for the elderly or persons with intellectual and/or developmental disabilities. These establishments provide for the welfare of these individuals in such areas as day care, non-medical home care or homemaker services, social activities, group support, and companionship.'\n },\n '624190': {\n title: 'Other Individual and Family Services',\n description:\n 'This industry comprises establishments primarily engaged in providing nonresidential individual and family social assistance services (except those specifically directed toward children, the elderly, or persons with intellectual and/or developmental disabilities).'\n },\n '624210': {\n title: 'Community Food Services',\n description:\n 'This industry comprises establishments primarily engaged in the collection, preparation, and delivery of food for the needy. Establishments in this industry may also distribute clothing and blankets to the poor. These establishments may prepare and deliver meals to persons who by reason of age, disability, or illness are unable to prepare meals for themselves; collect and distribute salvageable or donated food; or prepare and provide meals at fixed or mobile locations. Food banks, meal delivery programs, and soup kitchens are included in this industry.'\n },\n '624221': {\n title: 'Temporary Shelters',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing (1) short-term emergency shelter for victims of domestic violence, sexual assault, or child abuse and/or (2) temporary residential shelter for homeless individuals or families, runaway youth, and patients and families caught in medical crises. These establishments may operate their own shelters or may subsidize housing using existing homes, apartments, hotels, or motels.'\n },\n '624229': {\n title: 'Other Community Housing Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing one or more of the following community housing services: (1) transitional housing to low-income individuals and families; (2) volunteer construction or repair of low-cost housing, in partnership with the homeowner who may assist in the construction or repair work; and (3) the repair of homes for elderly or disabled homeowners. These establishments may subsidize housing using existing homes, apartments, hotels, or motels or may require a low-cost mortgage or sweat equity. These establishments may also provide low-income families with furniture and household supplies.'\n },\n '624230': {\n title: 'Emergency and Other Relief Services',\n description:\n 'This industry comprises establishments primarily engaged in providing food, shelter, clothing, medical relief, resettlement, and counseling to victims of domestic or international disasters or conflicts (e.g., wars).'\n },\n '624310': {\n title: 'Vocational Rehabilitation Services',\n description:\n 'This industry comprises (1) establishments primarily engaged in providing vocational rehabilitation or habilitation services, such as job counseling, job training, and work experience, to unemployed and underemployed persons, persons with disabilities, and persons who have a job market disadvantage because of lack of education, job skill, or experience and (2) establishments primarily engaged in providing training and employment to persons with disabilities. Vocational rehabilitation job training facilities (except schools) and sheltered workshops (i.e., work experience centers) are included in this industry.'\n },\n '624410': {\n title: 'Child Care Services',\n description:\n 'This industry comprises establishments primarily engaged in providing care and early learning opportunities for infants and children. These establishments generally care for children from birth through school age and may also offer pre-kindergarten, kindergarten, and/or before- or after-school educational programs. The care and early learning provided by these establishments may include opportunities for development in health, social and emotional learning, and family engagement.'\n },\n '711110': {\n title: 'Theater Companies and Dinner Theaters',\n description:\n 'This industry comprises (1) companies, groups, or theaters primarily engaged in producing the following live theatrical presentations: musicals; operas; plays; and comedy, improvisational, mime, and puppet shows and (2) establishments, commonly known as dinner theaters, engaged in producing live theatrical productions and in providing food and beverages for consumption on the premises. Theater groups or companies may or may not operate their own theater or other facility for staging their shows.'\n },\n '711120': {\n title: 'Dance Companies',\n description:\n 'This industry comprises companies, groups, or theaters primarily engaged in producing all types of live theatrical dance (e.g., ballet, contemporary dance, folk dance) presentations. Dance companies or groups may or may not operate their own theater or other facility for staging their shows.'\n },\n '711130': {\n title: 'Musical Groups and Artists',\n description:\n 'This industry comprises (1) groups primarily engaged in producing live musical entertainment (except theatrical musical or opera productions) and (2) independent (i.e., freelance) artists primarily engaged in providing live musical entertainment. Musical groups and artists may perform in front of a live audience or in a studio, and may or may not operate their own facilities for staging their shows.'\n },\n '711190': {\n title: 'Other Performing Arts Companies',\n description:\n 'This industry comprises companies or groups (except theater companies, dance companies, and musical groups and artists) primarily engaged in producing live theatrical presentations.'\n },\n '711211': {\n title: 'Sports Teams and Clubs',\n description:\n 'This U.S. industry comprises professional or semiprofessional sports teams or clubs primarily engaged in participating in live sporting events, such as baseball, basketball, football, hockey, soccer, and jai alai games, before a paying audience. These establishments may or may not operate their own arena, stadium, or other facility for presenting these events.'\n },\n '711212': {\n title: 'Racetracks',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating racetracks without casinos. These establishments may also present and/or promote the events, such as auto, dog, and horse races, held in these facilities.'\n },\n '711219': {\n title: 'Other Spectator Sports',\n description:\n 'This U.S. industry comprises (1) independent athletes, such as professional or semiprofessional golfers, boxers, and race car drivers, primarily engaged in participating in live sporting or racing events before a paying audience; (2) owners of racing participants, such as cars, dogs, and horses, primarily engaged in entering them in racing events or other spectator events; and (3) establishments, such as sports trainers, primarily engaged in providing specialized services required to support participants in sports events or competitions.'\n },\n '711310': {\n title: 'Promoters of Performing Arts, Sports, and Similar Events with Facilities',\n description:\n 'This industry comprises establishments primarily engaged in (1) organizing, promoting, and/or managing live performing arts productions, sports events, and similar events, such as state fairs, county fairs, agricultural fairs, concerts, and festivals, held in facilities that they manage and operate and/or (2) managing and providing the staff to operate arenas, stadiums, theaters, or other related facilities for rent to other promoters.'\n },\n '711320': {\n title: 'Promoters of Performing Arts, Sports, and Similar Events without Facilities',\n description:\n 'This industry comprises promoters primarily engaged in organizing, promoting, and/or managing live performing arts productions, sports events, and similar events, such as state fairs, county fairs, agricultural fairs, concerts, and festivals, in facilities that are managed and operated by others. Theatrical (except motion picture) booking agencies are included in this industry.'\n },\n '711410': {\n title: 'Agents and Managers for Artists, Athletes, Entertainers, and Other Public Figures',\n description:\n \"This industry comprises establishments of agents and managers primarily engaged in representing and/or managing creative and performing artists, sports figures, entertainers, and other public figures. The representation and management includes activities, such as representing clients in contract negotiations; managing or organizing clients' financial affairs; and generally promoting the careers of their clients.\"\n },\n '711510': {\n title: 'Independent Artists, Writers, and Performers',\n description:\n 'This industry comprises independent (i.e., freelance) individuals primarily engaged in performing in artistic productions, in creating artistic and cultural works or productions, or in providing technical expertise necessary for these productions. This industry also includes athletes and other celebrities exclusively engaged in endorsing products and making speeches or public appearances for which they receive a fee.'\n },\n '712110': {\n title: 'Museums',\n description:\n 'This industry comprises establishments primarily engaged in the preservation and exhibition of objects of historical, cultural, and/or educational value.'\n },\n '712120': {\n title: 'Historical Sites',\n description:\n 'This industry comprises establishments primarily engaged in the preservation and exhibition of sites, buildings, forts, or communities that describe events or persons of particular historical interest. Archeological sites, battlefields, historical ships, and pioneer villages are included in this industry.'\n },\n '712130': {\n title: 'Zoos and Botanical Gardens',\n description:\n 'This industry comprises establishments primarily engaged in the preservation and exhibition of live plant and animal life displays.'\n },\n '712190': {\n title: 'Nature Parks and Other Similar Institutions',\n description:\n 'This industry comprises establishments primarily engaged in the preservation and exhibition of natural areas or settings.'\n },\n '713110': {\n title: 'Amusement and Theme Parks',\n description:\n 'This industry comprises establishments, known as amusement or theme parks, primarily engaged in operating a variety of attractions, such as mechanical rides, water rides, games, shows, theme exhibits, refreshment stands, and picnic grounds. These establishments may lease space to others on a concession basis.'\n },\n '713120': {\n title: 'Amusement Arcades',\n description:\n 'This industry comprises establishments primarily engaged in operating amusement (except gambling, billiard, or pool) arcades and parlors.'\n },\n '713210': {\n title: 'Casinos (except Casino Hotels)',\n description:\n 'This industry comprises establishments primarily engaged in operating gambling facilities that offer table wagering games along with other gambling activities, such as slot machines and sports betting. These establishments often provide food and beverage services. Included in this industry are floating casinos (i.e., gambling cruises, riverboat casinos) and casinos with racetracks.'\n },\n '713290': {\n title: 'Other Gambling Industries',\n description:\n 'This industry comprises establishments primarily engaged in operating gambling facilities (except casinos or casino hotels) or providing gambling services.'\n },\n '713910': {\n title: 'Golf Courses and Country Clubs',\n description:\n 'This industry comprises (1) establishments primarily engaged in operating golf courses (except miniature) and (2) establishments primarily engaged in operating golf courses, along with dining facilities and other recreational facilities that are known as country clubs. These establishments often provide food and beverage services, equipment rental services, and golf instruction services.'\n },\n '713920': {\n title: 'Skiing Facilities',\n description:\n 'This industry comprises establishments engaged in (1) operating downhill, cross country, or related skiing areas and/or (2) operating equipment, such as ski lifts and tows. These establishments often provide food and beverage services, equipment rental services, and ski instruction services. Four season resorts without accommodations are included in this industry.'\n },\n '713930': {\n title: 'Marinas',\n description:\n 'This industry comprises establishments, commonly known as marinas, engaged in operating docking and/or storage facilities for pleasure craft owners, with or without one or more related activities, such as retailing fuel and marine supplies; and repairing, maintaining, or renting pleasure boats.'\n },\n '713940': {\n title: 'Fitness and Recreational Sports Centers',\n description:\n 'This industry comprises establishments primarily engaged in operating fitness and recreational sports facilities featuring exercise and other active physical fitness conditioning or recreational sports activities, such as swimming, skating, or racquet sports.'\n },\n '713950': {\n title: 'Bowling Centers',\n description:\n 'This industry comprises establishments engaged in operating bowling centers. These establishments often provide food and beverage services.'\n },\n '713990': {\n title: 'All Other Amusement and Recreation Industries',\n description:\n 'This industry comprises establishments (except amusement parks and arcades; gambling industries; golf courses and country clubs; skiing facilities; marinas; fitness and recreational sports centers; and bowling centers) primarily engaged in providing recreational and amusement services.'\n },\n '721110': {\n title: 'Hotels (except Casino Hotels) and Motels',\n description:\n 'This industry comprises establishments primarily engaged in providing short-term lodging in facilities known as hotels, motor hotels, resort hotels, and motels. The establishments in this industry may offer food and beverage services, recreational services, conference rooms, convention services, laundry services, parking, and other services.'\n },\n '721120': {\n title: 'Casino Hotels',\n description:\n 'This industry comprises establishments primarily engaged in providing short-term lodging in hotel facilities with a casino on the premises. The casino on premises includes table wagering games and may include other gambling activities, such as slot machines and sports betting. These establishments generally offer a range of services and amenities, such as food and beverage services, entertainment, valet parking, swimming pools, and conference and convention facilities. Included in this industry are casino hotels with racetracks.'\n },\n '721191': {\n title: 'Bed-and-Breakfast Inns',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing short-term lodging in facilities known as bed-and-breakfast inns. These establishments provide short-term lodging in private homes or small buildings converted for this purpose. Bed-and-breakfast inns are characterized by a highly personalized service and inclusion of a full breakfast in the room rate.'\n },\n '721199': {\n title: 'All Other Traveler Accommodation',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing short-term lodging (except hotels, motels, casino hotels, and bed-and-breakfast inns).'\n },\n '721211': {\n title: 'RV (Recreational Vehicle) Parks and Campgrounds',\n description:\n 'This U.S. industry comprises establishments primarily engaged in operating sites to accommodate campers and their equipment, including tents, tent trailers, travel trailers, and RVs (recreational vehicles). These establishments may provide access to facilities, such as washrooms, laundry rooms, recreation halls, playgrounds, stores, and snack bars.'\n },\n '721214': {\n title: 'Recreational and Vacation Camps (except Campgrounds)',\n description:\n \"This U.S. industry comprises establishments primarily engaged in operating overnight recreational camps, such as children's camps, family vacation camps, hunting and fishing camps, and outdoor adventure retreats, that offer trail riding, white water rafting, hiking, and similar activities. These establishments provide accommodation facilities, such as cabins and fixed campsites, and other amenities, such as food services, recreational facilities and equipment, and organized recreational activities.\"\n },\n '721310': {\n title: \"Rooming and Boarding Houses, Dormitories, and Workers' Camps\",\n description:\n \"This industry comprises establishments primarily engaged in operating rooming and boarding houses and similar facilities, such as fraternity houses, sorority houses, off campus dormitories, residential clubs, and workers' camps. These establishments provide temporary or longer-term accommodations, which, for the period of occupancy, may serve as a principal residence. These establishments also may provide complementary services, such as housekeeping, meals, and laundry services.\"\n },\n '722310': {\n title: 'Food Service Contractors',\n description:\n \"This industry comprises establishments primarily engaged in providing food services at institutional, governmental, commercial, or industrial locations of others based on contractual arrangements with these types of organizations for a specified period of time. The establishments of this industry provide food services for the convenience of the contracting organization or the contracting organization's customers. The contractual arrangement of these establishments with contracting organizations may vary by type of facility operated (e.g., cafeteria, restaurant, fast-food eating place), revenue sharing, cost structure, and personnel provided. Management staff is always provided by food service contractors.\"\n },\n '722320': {\n title: 'Caterers',\n description:\n 'This industry comprises establishments primarily engaged in providing single event-based food services. These establishments generally have equipment and vehicles to transport meals and snacks to events and/or prepare food at an off-premise site. Banquet halls with catering staff are included in this industry. Examples of events catered by establishments in this industry are graduation parties, wedding receptions, business or retirement luncheons, and trade shows.'\n },\n '722330': {\n title: 'Mobile Food Services',\n description:\n 'This industry comprises establishments primarily engaged in preparing and serving meals and snacks for immediate consumption from motorized vehicles or nonmotorized carts. The establishment is the central location from which the caterer route is serviced, not each vehicle or cart. Included in this industry are establishments primarily engaged in providing food services from vehicles, such as hot dog carts and ice cream trucks.'\n },\n '722410': {\n title: 'Drinking Places (Alcoholic Beverages)',\n description:\n 'This industry comprises establishments known as bars, taverns, nightclubs, or drinking places primarily engaged in preparing and serving alcoholic beverages for immediate consumption. These establishments may also provide limited food services.'\n },\n '722511': {\n title: 'Full-Service Restaurants',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing food services to patrons who order and are served while seated (i.e., waiter/waitress service) and pay after eating. These establishments may provide this type of food service to patrons in combination with selling alcoholic beverages, providing carryout services, or presenting live nontheatrical entertainment.'\n },\n '722513': {\n title: 'Limited-Service Restaurants',\n description:\n \"This U.S. industry comprises establishments primarily engaged in providing food services (except snack and nonalcoholic beverage bars) where patrons generally order or select items and pay before eating. Food and drink may be consumed on premises, taken out, or delivered to the customer's location. Some establishments in this industry may provide these food services in combination with selling alcoholic beverages.\"\n },\n '722514': {\n title: 'Cafeterias, Grill Buffets, and Buffets',\n description:\n 'This U.S. industry comprises establishments, known as cafeterias, grill buffets, or buffets, primarily engaged in preparing and serving meals for immediate consumption using cafeteria-style or buffet serving equipment, such as steam tables, refrigerated areas, display grills, and self-service nonalcoholic beverage dispensing equipment. Patrons select from food and drink items on display in a continuous cafeteria line or from buffet stations.'\n },\n '722515': {\n title: 'Snack and Nonalcoholic Beverage Bars',\n description:\n 'This U.S. industry comprises establishments primarily engaged in (1) preparing and/or serving a specialty snack, such as ice cream, frozen yogurt, cookies, or popcorn, or (2) serving nonalcoholic beverages, such as coffee, juices, or sodas for consumption on or near the premises. These establishments may carry and sell a combination of snack, nonalcoholic beverage, and other related products (e.g., coffee beans, mugs, coffee makers) but generally promote and sell a unique snack or nonalcoholic beverage.'\n },\n '811111': {\n title: 'General Automotive Repair',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing (1) a wide range of mechanical and electrical repair and maintenance services for automotive vehicles, such as passenger cars, trucks, and vans, and all trailers or (2) engine repair and replacement.'\n },\n '811114': {\n title: 'Specialized Automotive Repair',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing specialized mechanical or electrical repair and maintenance services (except engine repair and replacement) for automotive vehicles, such as passenger cars, trucks, and vans, and all trailers.'\n },\n '811121': {\n title: 'Automotive Body, Paint, and Interior Repair and Maintenance',\n description:\n 'This U.S. industry comprises establishments primarily engaged in repairing or customizing automotive vehicle and trailer bodies and interiors; and/or painting automotive vehicles and trailer bodies.'\n },\n '811122': {\n title: 'Automotive Glass Replacement Shops',\n description:\n 'This U.S. industry comprises establishments primarily engaged in replacing, repairing, and/or tinting automotive vehicle glass, such as passenger car, truck, and van glass.'\n },\n '811191': {\n title: 'Automotive Oil Change and Lubrication Shops',\n description:\n 'This U.S. industry comprises establishments primarily engaged in changing motor oil and lubricating the chassis of automotive vehicles, such as passenger cars, trucks, and vans.'\n },\n '811192': {\n title: 'Car Washes',\n description:\n 'This U.S. industry comprises establishments primarily engaged in cleaning, washing, and/or waxing automotive vehicles, such as passenger cars, trucks, and vans, and trailers.'\n },\n '811198': {\n title: 'All Other Automotive Repair and Maintenance',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing automotive repair and maintenance services (except mechanical and electrical repair and maintenance; body, paint, interior, and glass repair; motor oil change and lubrication; and car washing) for automotive vehicles, such as passenger cars, trucks, and vans, and all trailers.'\n },\n '811210': {\n title: 'Electronic and Precision Equipment Repair and Maintenance',\n description:\n 'This industry comprises establishments primarily engaged in repairing and maintaining one or more of the following: (1) consumer electronic equipment; (2) computers; (3) office machines; (4) communication equipment; and (5) other electronic and precision equipment and instruments, without retailing these products as new. Establishments in this industry repair items, such as microscopes, radar and sonar equipment, televisions, stereos, video recorders, computers, fax machines, photocopying machines, two-way radios, cellular telephones, and other communications equipment, scientific instruments, and medical equipment.'\n },\n '811310': {\n title:\n 'Commercial and Industrial Machinery and Equipment (except Automotive and Electronic) Repair and Maintenance',\n description:\n 'This industry comprises establishments primarily engaged in the repair and maintenance of commercial and industrial machinery and equipment. Establishments in this industry either sharpen/install commercial and industrial machinery blades and saws or provide welding (e.g., automotive, general) repair services; or repair agricultural and other heavy and industrial machinery and equipment (e.g., forklifts and other material handling equipment, machine tools, commercial refrigeration equipment, construction equipment, and mining machinery).'\n },\n '811411': {\n title: 'Home and Garden Equipment Repair and Maintenance',\n description:\n 'This U.S. industry comprises establishments primarily engaged in repairing and servicing home and garden equipment without retailing new home and garden equipment, such as lawnmowers, handheld power tools, edgers, snowblowers, leaf blowers, and trimmers.'\n },\n '811412': {\n title: 'Appliance Repair and Maintenance',\n description:\n 'This U.S. industry comprises establishments primarily engaged in repairing and servicing household appliances without retailing new appliances, such as refrigerators, stoves, washing machines, clothes dryers, and room air-conditioners.'\n },\n '811420': {\n title: 'Reupholstery and Furniture Repair',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) reupholstering furniture; (2) refinishing furniture; (3) repairing furniture; and (4) repairing and restoring furniture.'\n },\n '811430': {\n title: 'Footwear and Leather Goods Repair',\n description:\n 'This industry comprises establishments primarily engaged in repairing footwear and/or repairing other leather or leather-like goods without retailing new footwear and leather or leather-like goods, such as handbags and briefcases.'\n },\n '811490': {\n title: 'Other Personal and Household Goods Repair and Maintenance',\n description:\n 'This industry comprises establishments primarily engaged in repairing and servicing personal or household-type goods without retailing new personal or household-type goods (except home and garden equipment, appliances, furniture, and footwear and leather goods). Establishments in this industry repair items, such as garments; watches; jewelry; musical instruments; bicycles and motorcycles; and motorboats, canoes, sailboats, and other recreational boats.'\n },\n '812111': {\n title: 'Barber Shops',\n description:\n \"This U.S. industry comprises establishments known as barber shops or men's hair stylist shops primarily engaged in cutting, trimming, and styling men's and boys' hair; and/or shaving and trimming men's beards.\"\n },\n '812112': {\n title: 'Beauty Salons',\n description:\n \"This U.S. industry comprises establishments (except those known as barber shops or men's hair stylist shops) primarily engaged in one or more of the following: (1) cutting, trimming, shampooing, coloring, waving, or styling hair; (2) providing facials; and (3) applying makeup (except permanent makeup).\"\n },\n '812113': {\n title: 'Nail Salons',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing nail care services, such as manicures, pedicures, and nail extensions.'\n },\n '812191': {\n title: 'Diet and Weight Reducing Centers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing non-medical services to assist clients in attaining or maintaining a desired weight. The sale of weight reduction products, such as food supplements, may be an integral component of the program. These services typically include individual or group counseling, menu and exercise planning, and weight and body measurement monitoring.'\n },\n '812199': {\n title: 'Other Personal Care Services',\n description:\n 'This U.S. industry comprises establishments primarily engaged in providing personal care services (except hair, nail, facial, nonpermanent makeup, or non-medical diet and weight reducing services).'\n },\n '812210': {\n title: 'Funeral Homes and Funeral Services',\n description:\n 'This industry comprises establishments primarily engaged in preparing the dead for burial or interment and conducting funerals (i.e., providing facilities for wakes, arranging transportation for the dead, selling caskets and related merchandise). Funeral homes combined with crematories are included in this industry.'\n },\n '812220': {\n title: 'Cemeteries and Crematories',\n description:\n 'This industry comprises establishments primarily engaged in operating sites or structures reserved for the interment of human or animal remains and/or cremating the dead.'\n },\n '812310': {\n title: 'Coin-Operated Laundries and Drycleaners',\n description:\n 'This industry comprises establishments primarily engaged in (1) operating facilities with coin- or card-operated or similar self-service laundry and drycleaning equipment for customer use on the premises and/or (2) supplying and servicing coin- or card-operated or similar self-service laundry and drycleaning equipment for customer use in places of business operated by others, such as apartments and dormitories.'\n },\n '812320': {\n title: 'Drycleaning and Laundry Services (except Coin-Operated)',\n description:\n 'This industry comprises establishments primarily engaged in one or more of the following: (1) providing drycleaning services (except coin- or card-operated); (2) providing laundering services (except linen and uniform supply or coin- or card-operated); (3) providing drop-off and pick-up sites for laundries and/or drycleaners; and (4) providing specialty cleaning services for specific types of garments and other textile items (except carpets and upholstery), such as fur, leather, or suede garments; wedding gowns; hats; draperies; and pillows. These establishments may provide all, a combination of, or none of the cleaning services on the premises.'\n },\n '812331': {\n title: 'Linen Supply',\n description:\n 'This U.S. industry comprises establishments primarily engaged in supplying, on a rental or contract basis, laundered items, such as table and bed linens; towels; diapers; and uniforms, gowns, or coats of the type used by doctors, nurses, barbers, beauticians, and waitresses.'\n },\n '812332': {\n title: 'Industrial Launderers',\n description:\n 'This U.S. industry comprises establishments primarily engaged in supplying, on a rental or contract basis, laundered industrial work uniforms and related work clothing, such as protective apparel (flame and heat resistant) and clean room apparel; dust control items, such as treated mops, rugs, mats, dust tool covers, cloths, and shop or wiping towels.'\n },\n '812910': {\n title: 'Pet Care (except Veterinary) Services',\n description:\n 'This industry comprises establishments primarily engaged in providing pet care services (except veterinary), such as boarding, grooming, sitting, walking, and training pets.'\n },\n '812921': {\n title: 'Photofinishing Laboratories (except One-Hour)',\n description:\n 'This U.S. industry comprises establishments (except those known as \"one-hour\" photofinishing labs) primarily engaged in developing film and/or making photographic slides, prints, and enlargements.'\n },\n '812922': {\n title: 'One-Hour Photofinishing',\n description:\n 'This U.S. industry comprises establishments known as \"one-hour\" photofinishing labs primarily engaged in developing film and/or making photographic slides, prints, and enlargements on a short turnaround or while-you-wait basis.'\n },\n '812930': {\n title: 'Parking Lots and Garages',\n description:\n 'This industry comprises establishments primarily engaged in providing parking space for motor vehicles, usually on an hourly, daily, or monthly basis and/or valet parking services.'\n },\n '812990': {\n title: 'All Other Personal Services',\n description:\n 'This industry comprises establishments primarily engaged in providing personal services (except personal care services, death care services, drycleaning and laundry services, pet care services, photofinishing services, or parking space and/or valet parking services).'\n },\n '813110': {\n title: 'Religious Organizations',\n description:\n 'This industry comprises (1) establishments primarily engaged in operating religious organizations, such as churches, religious temples, mosques, and monasteries, and/or (2) establishments primarily engaged in administering an organized religion or promoting religious activities.'\n },\n '813211': {\n title: 'Grantmaking Foundations',\n description:\n 'This U.S. industry comprises establishments known as grantmaking foundations or charitable trusts. Establishments in this industry award grants from trust funds based on a competitive selection process or the preferences of the foundation managers and grantors; or fund a single entity, such as a museum or university.'\n },\n '813212': {\n title: 'Voluntary Health Organizations',\n description:\n 'This U.S. industry comprises establishments primarily engaged in raising funds for health related research, such as disease (e.g., heart, cancer, diabetes) prevention, health education, and patient services.'\n },\n '813219': {\n title: 'Other Grantmaking and Giving Services',\n description:\n 'This U.S. industry comprises establishments (except voluntary health organizations) primarily engaged in raising funds for a wide range of social welfare activities, such as educational, scientific, cultural, and health.'\n },\n '813311': {\n title: 'Human Rights Organizations',\n description:\n 'This U.S. industry comprises establishments primarily engaged in promoting causes associated with human rights either for a broad or specific constituency. Establishments in this industry address issues, such as protecting and promoting the broad constitutional rights and civil liberties of individuals and those suffering from neglect, abuse, or exploitation; promoting the interests of specific groups, such as children, women, senior citizens, or persons with disabilities; improving relations between racial, ethnic, and cultural groups; and promoting voter education and registration. These organizations may solicit contributions and offer memberships to support these causes.'\n },\n '813312': {\n title: 'Environment, Conservation and Wildlife Organizations',\n description:\n 'This U.S. industry comprises establishments primarily engaged in promoting the preservation and protection of the environment and wildlife. Establishments in this industry address issues, such as clean air and water; global warming; conserving and developing natural resources, including land, plant, water, and energy resources; and protecting and preserving wildlife and endangered species. These organizations may solicit contributions and offer memberships to support these causes.'\n },\n '813319': {\n title: 'Other Social Advocacy Organizations',\n description:\n 'This U.S. industry comprises establishments primarily engaged in social advocacy (except human rights and environmental protection, conservation, and wildlife preservation). Establishments in this industry address issues, such as peace and international understanding; community action (excluding civic organizations); or advancing social causes, such as firearms safety, drunk driving prevention, or drug abuse awareness. These organizations may solicit contributions and offer memberships to support these causes.'\n },\n '813410': {\n title: 'Civic and Social Organizations',\n description:\n 'This industry comprises establishments primarily engaged in promoting the civic and social interests of their members. Establishments in this industry may operate bars and restaurants for their members.'\n },\n '813910': {\n title: 'Business Associations',\n description:\n 'This industry comprises establishments primarily engaged in promoting the business interests of their members. These establishments may conduct research on new products and services; develop market statistics; sponsor quality and certification standards; lobby public officials; or publish newsletters, books, or periodicals for distribution to their members.'\n },\n '813920': {\n title: 'Professional Organizations',\n description:\n 'This industry comprises establishments primarily engaged in promoting the professional interests of their members and the profession as a whole. These establishments may conduct research; develop statistics; sponsor quality and certification standards; lobby public officials; or publish newsletters, books, or periodicals for distribution to their members.'\n },\n '813930': {\n title: 'Labor Unions and Similar Labor Organizations',\n description:\n 'This industry comprises establishments primarily engaged in promoting the interests of organized labor and union employees.'\n },\n '813940': {\n title: 'Political Organizations',\n description:\n 'This industry comprises establishments primarily engaged in promoting the interests of national, state, or local political parties or candidates. Included are political groups organized to raise funds for a political party or individual candidates.'\n },\n '813990': {\n title:\n 'Other Similar Organizations (except Business, Professional, Labor, and Political Organizations)',\n description:\n 'This industry comprises establishments (except religious organizations, social advocacy organizations, civic and social organizations, business associations, professional organizations, labor unions, and political organizations) primarily engaged in promoting the interests of their members.'\n },\n '814110': {\n title: 'Private Households',\n description:\n 'This industry comprises private households primarily engaged in employing workers on or about the premises in activities primarily concerned with the operation of the household. These private households may employ individuals, such as cooks, maids, nannies, butlers, non-medical personal care aides, and outside workers, such as gardeners, caretakers, and other maintenance workers.'\n },\n '921110': {\n title: 'Executive Offices',\n description:\n 'This industry comprises government establishments serving as offices of chief executives and their advisory committees and commissions. This industry includes offices of the president, governors, and mayors, in addition to executive advisory commissions.'\n },\n '921120': {\n title: 'Legislative Bodies',\n description:\n 'This industry comprises government establishments serving as legislative bodies and their advisory committees and commissions. Included in this industry are legislative bodies, such as Congress, state legislatures, and advisory and study legislative commissions.'\n },\n '921130': {\n title: 'Public Finance Activities',\n description:\n 'This industry comprises government establishments primarily engaged in public finance, taxation, and monetary policy. Included are financial administration activities, such as monetary policy; tax administration and collection; custody and disbursement of funds; debt and investment administration; auditing activities; and government employee retirement trust fund administration.'\n },\n '921140': {\n title: 'Executive and Legislative Offices, Combined',\n description:\n 'This industry comprises government establishments serving as councils and boards of commissioners or supervisors and such bodies where the chief executive (e.g., county executive or city mayor) is a member of the legislative body (e.g., county or city council) itself.'\n },\n '921150': {\n title: 'American Indian and Alaska Native Tribal Governments',\n description:\n 'This industry comprises American Indian and Alaska Native governing bodies. Establishments in this industry perform legislative, judicial, and administrative functions for their American Indian and Alaska Native lands. Included in this industry are American Indian and Alaska Native councils, courts, and law enforcement bodies.'\n },\n '921190': {\n title: 'Other General Government Support',\n description:\n 'This industry comprises government establishments primarily engaged in providing general support for government. Such support services include personnel services, election boards, and other general government support establishments that are not classified elsewhere in public administration.'\n },\n '922110': {\n title: 'Courts',\n description:\n \"This industry comprises civilian courts of law (except American Indian and Alaska Native tribal courts). Included in this industry are civilian courts, courts of law, and sheriffs' offices conducting court functions only.\"\n },\n '922120': {\n title: 'Police Protection',\n description:\n 'This industry comprises government establishments primarily engaged in criminal and civil law enforcement, police, traffic safety, and other activities related to the enforcement of the law and preservation of order. Combined police and fire departments are included in this industry.'\n },\n '922130': {\n title: 'Legal Counsel and Prosecution',\n description:\n 'This industry comprises government establishments primarily engaged in providing legal counsel or prosecution services for the government.'\n },\n '922140': {\n title: 'Correctional Institutions',\n description:\n 'This industry comprises government establishments primarily engaged in managing and operating correctional institutions. The facility is generally designed for the confinement, correction, and rehabilitation of adult and/or juvenile offenders sentenced by a court.'\n },\n '922150': {\n title: 'Parole Offices and Probation Offices',\n description:\n 'This industry comprises government establishments primarily engaged in judicially administering probation offices, parole offices and boards, and pardon boards.'\n },\n '922160': {\n title: 'Fire Protection',\n description:\n 'This industry comprises government establishments primarily engaged in firefighting and other related fire protection activities. Government establishments providing combined fire protection and ambulance or rescue services are classified in this industry.'\n },\n '922190': {\n title: 'Other Justice, Public Order, and Safety Activities',\n description:\n 'This industry comprises government establishments primarily engaged in public order and safety (except courts, police protection, legal counsel and prosecution, correctional institutions, parole offices, probation offices, pardon boards, and fire protection). These establishments include the general administration of public order and safety programs. Government establishments responsible for the collection of statistics on public safety are included in this industry.'\n },\n '923110': {\n title: 'Administration of Education Programs',\n description:\n 'This industry comprises government establishments primarily engaged in the central coordination, planning, supervision, and administration of funds, policies, intergovernmental activities, statistical reports and data collection, and centralized programs for educational administration. Government scholarship programs are included in this industry.'\n },\n '923120': {\n title: 'Administration of Public Health Programs',\n description:\n 'This industry comprises government establishments primarily engaged in the planning, administration, and coordination of public health programs and services, including environmental health activities, mental health, categorical health programs, health statistics, and immunization services. Government establishments primarily engaged in conducting public health-related inspections are included in this industry.'\n },\n '923130': {\n title:\n \"Administration of Human Resource Programs (except Education, Public Health, and Veterans' Affairs Programs)\",\n description:\n \"This industry comprises government establishments primarily engaged in the planning, administration, and coordination of programs for public assistance, social work, and welfare activities. The administration of Social Security, disability insurance, Medicare, unemployment insurance, and workers' compensation programs are included in this industry.\"\n },\n '923140': {\n title: \"Administration of Veterans' Affairs\",\n description:\n \"This industry comprises government establishments primarily engaged in the administration of programs of assistance, training, counseling, and other services to veterans and their dependents, heirs, or survivors. Included in this industry are Veterans' Affairs offices that maintain liaison and coordinate activities with other service organizations and governmental agencies.\"\n },\n '924110': {\n title: 'Administration of Air and Water Resource and Solid Waste Management Programs',\n description:\n 'This industry comprises government establishments primarily engaged in one or more of the following: (1) the administration, regulation, and enforcement of air and water resource programs; (2) the administration and regulation of solid waste management programs; (3) the administration and regulation of water and air pollution control and prevention programs; (4) the administration and regulation of flood control programs; (5) the administration and regulation of drainage development and water resource consumption programs; (6) the administration and regulation of toxic waste removal and cleanup programs; and (7) coordination of these activities at intergovernmental levels.'\n },\n '924120': {\n title: 'Administration of Conservation Programs',\n description:\n 'This industry comprises government establishments primarily engaged in the administration, regulation, supervision, and control of land use, including recreational areas; conservation and preservation of natural resources; erosion control; geological survey program administration; weather forecasting program administration; and the administration and protection of publicly and privately owned forest lands. Government establishments responsible for planning, management, regulation, and conservation of game, fish, and wildlife populations, including wildlife management areas and field stations; and other administrative matters relating to the protection of fish, game, and wildlife are included in this industry.'\n },\n '925110': {\n title: 'Administration of Housing Programs',\n description:\n 'This industry comprises government establishments primarily engaged in the administration and planning of housing programs.'\n },\n '925120': {\n title: 'Administration of Urban Planning and Community and Rural Development',\n description:\n 'This industry comprises government establishments primarily engaged in the administration and planning of the development of urban and rural areas. Included in this industry are government zoning boards and commissions.'\n },\n '926110': {\n title: 'Administration of General Economic Programs',\n description:\n 'This industry comprises government establishments primarily engaged in the administration, promotion, and development of economic resources, including business, industry, and tourism. Included in this industry are government establishments responsible for the development of general statistical data and analyses and promotion of the general economic well-being of the governed area.'\n },\n '926120': {\n title: 'Regulation and Administration of Transportation Programs',\n description:\n 'This industry comprises government establishments primarily engaged in the administration, regulation, licensing, planning, inspection, and investigation of transportation services and facilities. Included in this industry are government establishments responsible for motor vehicle and operator licensing, the Coast Guard (except the Coast Guard Academy), and parking authorities.'\n },\n '926130': {\n title: 'Regulation and Administration of Communications, Electric, Gas, and Other Utilities',\n description:\n 'This industry comprises government establishments primarily engaged in the administration, regulation, licensing, and inspection of utilities, such as communications, electric power (including fossil, nuclear, solar, water, and wind), gas and water supply, and sewerage.'\n },\n '926140': {\n title: 'Regulation of Agricultural Marketing and Commodities',\n description:\n 'This industry comprises government establishments primarily engaged in the planning, administration, and coordination of agricultural programs for production, marketing, and utilization, including educational and promotional activities. Included in this industry are government establishments responsible for regulating and controlling the grading and inspection of food, plants, animals, and other agricultural products.'\n },\n '926150': {\n title: 'Regulation, Licensing, and Inspection of Miscellaneous Commercial Sectors',\n description:\n 'This industry comprises government establishments primarily engaged in the regulation, licensing, and inspection of commercial sectors, such as retail trade, professional occupations, manufacturing, mining, construction, and services. Included in this industry are government establishments maintaining physical standards, regulating hazardous conditions not elsewhere classified, and enforcing alcoholic beverage control regulations.'\n },\n '927110': {\n title: 'Space Research and Technology',\n description:\n 'This industry comprises government establishments primarily engaged in the administration and operations of space flights, space research, and space exploration. Included in this industry are government establishments operating space flight centers.'\n },\n '928110': {\n title: 'National Security',\n description:\n 'This industry comprises government establishments of the Armed Forces, including the National Guard, primarily engaged in national security and related activities.'\n },\n '928120': {\n title: 'International Affairs',\n description:\n 'This industry comprises establishments of U.S. and foreign governments primarily engaged in international affairs and programs relating to other nations and peoples.'\n }\n};\n","import { Radio, RadioGroup } from '@headlessui/react';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport { Description, ErrorMessage, Field, FieldGroup, Label } from '@oysterjs/uiv2/fieldset';\nimport { Input } from '@oysterjs/uiv2/input';\nimport { Select } from '@oysterjs/uiv2/select';\nimport { Textarea } from '@oysterjs/uiv2/textarea';\nimport { Checkbox, CheckboxGroup } from '@oysterjs/uiv2/checkbox';\nimport { CheckboxField as __CheckboxField } from '@oysterjs/uiv2/checkbox';\nimport { AddressAutofill } from '@mapbox/search-js-react';\nimport { MAPBOX_PUBLIC_KEY } from '@oysterjs/core/mapbox';\nimport { Address } from '../../types/graphql';\nimport { states } from './naics';\n\ntype BaseFieldProps = {\n label: string;\n description?: string;\n value?: string;\n error?: string;\n onChange: (value: string) => void;\n};\n\nexport const DateField = (props: BaseFieldProps) => {\n return (\n \n \n {props.description && {props.description}}\n props.onChange(e.currentTarget.value)}\n />\n {props.error && {props.error}}\n \n );\n};\n\nexport const EmailField = (props: BaseFieldProps) => {\n return (\n \n \n {props.description && {props.description}}\n props.onChange(e.currentTarget.value)}\n />\n {props.error && {props.error}}\n \n );\n};\n\nexport const PhoneNumberField = (props: BaseFieldProps) => {\n return (\n \n \n {props.description && {props.description}}\n props.onChange(e.currentTarget.value)}\n />\n {props.error && {props.error}}\n \n );\n};\n\nexport const NumberField = (props: BaseFieldProps) => {\n return (\n \n \n {props.description && {props.description}}\n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => props.onChange(e.currentTarget.value)}\n />\n {props.error && {props.error}}\n \n );\n};\n\nexport const YearField = (props: BaseFieldProps) => {\n return (\n \n \n {props.description && {props.description}}\n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => props.onChange(e.currentTarget.value)}\n />\n {props.error && {props.error}}\n \n );\n};\n\nexport const TextField = (props: BaseFieldProps) => {\n return (\n \n \n {props.description && {props.description}}\n props.onChange(e.currentTarget.value)}\n />\n {props.error && {props.error}}\n \n );\n};\n\ntype SelectFieldProps = {\n options: { displayText: string; value: string }[];\n};\n\nexport const SelectField = (props: BaseFieldProps & SelectFieldProps) => {\n return (\n \n \n {props.description && {props.description}}\n props.onChange(e.currentTarget.value)}\n >\n \n {props.options.map((opt) => (\n \n ))}\n \n {props.error && {props.error}}\n \n );\n};\n\ntype RadioFieldProps = {\n options: { displayText: string; value: string }[];\n};\n\nexport const RadioField = (props: BaseFieldProps & RadioFieldProps) => {\n return (\n \n \n {props.description && {props.description}}\n \n {props.options.map((option) => (\n \n {option.displayText}\n \n ))}\n \n {props.error && {props.error}}\n \n );\n};\n\ntype MultiSelectFieldProps = {\n values: string[];\n options: { displayText: string; value: string }[];\n onChangeMulti: (values: string[]) => void;\n};\n\nexport const MultiSelectField = (props: BaseFieldProps & MultiSelectFieldProps) => {\n return (\n \n {props.label && }\n {props.description && {props.description}}\n \n {props.options.map((option) => (\n <__CheckboxField key={option.value}>\n \n props.onChangeMulti(\n checked\n ? [...props.values, option.value]\n : props.values.filter((v) => v !== option.value)\n )\n }\n />\n \n \n ))}\n \n {props.error && {props.error}}\n \n );\n};\n\nexport const CheckboxField = MultiSelectField;\n\nexport const AddressForm = (props: {\n onChange: (update: (prev: Address) => Address) => void;\n disabled?: boolean;\n addressTitle: string;\n addressDescription?: string;\n initialValue: Address;\n validationErrors?: {\n line1?: string;\n line2?: string;\n city?: string;\n zone?: string;\n postalCode?: string;\n };\n}) => {\n const onRetrieve = (res) => {\n const address = res?.features?.[0]?.properties;\n if (address) {\n props.onChange(() => ({\n line1: address.address_line1,\n line2: address.address_line2 || undefined,\n city: address.address_level2,\n zone: address.address_level1,\n postalCode: address.postcode\n }));\n }\n };\n\n const showSecondLine = !!props.initialValue.line2 || !!props.validationErrors?.line2;\n const showCityStateZip =\n !!props.initialValue.city ||\n !!props.initialValue.zone ||\n !!props.initialValue.postalCode ||\n !!props.validationErrors?.city ||\n !!props.validationErrors?.zone ||\n !!props.validationErrors?.postalCode;\n\n return (\n <>\n \n \n \n {props.addressDescription && {props.addressDescription}}\n
\n \n {\n const val = e.currentTarget.value;\n props.onChange((prev) => ({ ...prev, line1: val }));\n }}\n />\n \n
\n {props.validationErrors?.line1 && (\n {props.validationErrors?.line1}\n )}\n
\n
\n \n {showSecondLine && (\n \n \n \n {\n const val = e.currentTarget.value;\n props.onChange((prev) => ({ ...prev, line2: val }));\n }}\n />\n {props.validationErrors?.line2 && (\n {props.validationErrors?.line2}\n )}\n \n \n \n )}\n {showCityStateZip && (\n \n \n \n \n {\n const val = e.currentTarget.value;\n props.onChange((prev) => ({ ...prev, city: val }));\n }}\n />\n {props.validationErrors?.city && (\n {props.validationErrors?.city}\n )}\n \n \n \n {\n const val = e.currentTarget.value;\n props.onChange((prev) => ({ ...prev, zone: val }));\n }}\n >\n \n {states.map((state) => (\n \n ))}\n \n {props.validationErrors?.zone && (\n {props.validationErrors?.zone}\n )}\n \n \n \n {\n const val = e.currentTarget.value;\n props.onChange((prev) => ({ ...prev, postalCode: val }));\n }}\n />\n {props.validationErrors?.postalCode && (\n {props.validationErrors?.postalCode}\n )}\n \n \n \n )}\n \n \n );\n};\n","import React, { useCallback, useEffect } from 'react';\nimport clsx from 'clsx';\nimport { usePlaidLink } from 'react-plaid-link';\nimport styled from 'styled-components';\n\nimport { setMerchantPayment, connectToPlaid } from '@oysterjs/core/api/plaid';\nimport { Address, MercuryPaymentTypes, PaymentMethodType, ValidationError } from '@oysterjs/types';\nimport { Button } from '@oysterjs/uiv2/button';\nimport { ErrorType, WrappedError } from '@oysterjs/core/errors';\nimport { AddressForm } from '../../commercial/form';\nimport { ErrorMessage, Field, FieldGroup, Fieldset, Label } from '@oysterjs/uiv2/fieldset';\nimport { Checkbox as HeadlessCheckbox } from '@headlessui/react';\nimport { CheckCircleIcon } from '@heroicons/react/20/solid';\n\nconst SummaryContainer = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 30px;\n padding-bottom: 20px;\n`;\n\nconst SummerFieldContainer = styled.div`\n flex-direction: column;\n`;\n\nconst SummaryHeaderDescription = styled.div`\n font-size: 0.9em;\n`;\n\nconst SummaryHeaderTitle = styled.div`\n font-weight: 500;\n`;\n\ninterface SummaryHeaderProps {\n title?: string;\n description?: string;\n address?: Partial
;\n}\n\nconst getMercuryPaymentMethod = (paymentMethod: PaymentMethodType) => {\n switch (paymentMethod) {\n case PaymentMethodType.Check:\n return MercuryPaymentTypes.check;\n case PaymentMethodType.Electronic:\n return MercuryPaymentTypes.electronic;\n default:\n return MercuryPaymentTypes.unknown;\n }\n};\n\nexport const SummaryField: React.FunctionComponent> = (\n props\n) => (\n \n {props.title && {props.title}}\n {props.description && (\n \n {props.description}\n \n )}\n {props.address && (\n
\n {props.address.AddressLine1}\n {props.address.AddressLine2}\n \n {props.address.City + ', ' + props.address.Zone + ' ' + props.address.PostalCode}\n \n
\n )}\n
\n);\n\nexport const PayoutSummary = (props: {\n paymentMethod: PaymentMethodType;\n address: Partial
;\n onUpdatePayoutsInfo: (paymentMethod: PaymentMethodType, formAddress?: Partial
) => void;\n}) => {\n return (\n \n \n \n \n );\n};\n\nexport const UserPayment = (props: {\n loading: boolean;\n paymentMethod?: PaymentMethodType;\n address?: Partial
;\n onUpdatePayoutsInfo: (paymentMethod: PaymentMethodType, formAddress?: Partial
) => void;\n onSave?: () => void;\n error?: string;\n onUpdateLoading: (loading: boolean) => void;\n}) => {\n const [data, setData] = React.useState('');\n const [paymentMethod, setPaymentMethod] = React.useState(\n props.paymentMethod || PaymentMethodType.Unknown\n );\n const [token, setToken] = React.useState('');\n const [formAddress, setFormAddress] = React.useState({\n Address: props.address\n });\n const [validationError, setValidationError] = React.useState();\n\n const fetchToken = useCallback(async () => {\n const res = await connectToPlaid();\n setData(res.LinkToken);\n }, []);\n\n useEffect(() => {\n fetchToken();\n }, [fetchToken]);\n\n const onSuccess = useCallback(async (token) => {\n setPaymentMethod(PaymentMethodType.Electronic);\n if (validationError?.Field == 'PayoutMethod') {\n setValidationError(undefined);\n }\n setToken(token);\n }, []);\n\n const config = {\n token: data,\n onSuccess\n };\n\n const { open, ready, error } = usePlaidLink(config);\n\n const onClickCheck = () => {\n if (validationError?.Field == 'PayoutMethod') {\n setValidationError(undefined);\n }\n setPaymentMethod(PaymentMethodType.Check);\n };\n\n const onClick = (e: React.FormEvent) => {\n e.preventDefault();\n props.onUpdateLoading(true);\n setMerchantPayment({\n PublicToken: token,\n PaymentType: getMercuryPaymentMethod(paymentMethod),\n Address: formAddress.Address\n })\n .then(() => {\n props.onUpdatePayoutsInfo(paymentMethod, formAddress.Address);\n props.onSave?.();\n })\n .catch((e) => {\n const err = WrappedError.asWrappedError(e);\n if (err.type() == ErrorType.validationError) {\n setValidationError(err.getValidationError);\n }\n });\n };\n\n return (\n <>\n
\n
\n \n setFormAddress((prev) => {\n const newAddress = address({\n line1: prev.Address?.AddressLine1 || '',\n line2: prev.Address?.AddressLine2 || '',\n city: prev.Address?.City || '',\n zone: prev.Address?.Zone || '',\n postalCode: prev.Address?.PostalCode || ''\n });\n\n return {\n ...prev,\n Address: {\n AddressLine1: newAddress.line1,\n AddressLine2: newAddress.line2 || '',\n City: newAddress.city,\n Zone: newAddress.zone,\n PostalCode: newAddress.postalCode\n }\n };\n })\n }\n />\n \n \n \n
\n \n \n \n \n Receive Check\n \n \n We will send you a check to your business address.\n \n \n \n \n \n \n open()}\n aria-label=\"Connect Bank Account\"\n aria-description=\"We will send you an ACH payment to your bank account.\"\n disabled={!ready || props.loading}\n className={clsx([\n 'data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[disabled]:pointer-events-none',\n 'group relative flex cursor-pointer rounded-lg bg-white p-4 shadow-sm focus:outline-none border border-neutral-950/10 data-[hover]:border-neutral-950/20 data-[focus]:border-primary-500 data-[focus]:ring-2 data-[focus]:ring-primary-500 dark:bg-neutral-800 dark:border-white/10 dark:data-[hover]:border-white/20'\n ])}\n >\n \n \n \n Connect Bank Account\n \n \n We will send you an ACH payment to your bank account.\n \n \n \n \n \n \n
\n\n {(validationError?.Field == 'PayoutMethod' || error || props.error) && (\n \n {validationError?.Message || error?.toString?.() || props.error}\n \n )}\n
\n
\n
\n\n \n Save Payment Settings\n \n \n \n );\n};\n","import * as React from 'react';\nimport { IoArrowForward } from 'react-icons/io5';\nimport { getMerchantAccount } from '@oysterjs/core/api/merchant';\nimport { getMerchantPayment } from '@oysterjs/core/api/plaid';\nimport { Badge } from '@oysterjs/ui/Badge';\nimport { Banner } from '@oysterjs/ui/Banner';\nimport { ButtonLink } from '@oysterjs/ui/Button';\nimport { Loadable } from '@oysterjs/ui/Loadable';\n\nimport { ErrorCode, ErrorType } from '@oysterjs/core/errors';\nimport { Address, DeepPartial, Merchant, PaymentMethodType } from '@oysterjs/types';\nimport { PayoutSummary, UserPayment } from './payment';\n\nexport const AccountStatusBanner = (): JSX.Element => (\n \n {(res) => {\n const hasPayment = res.Merchant.BusinessProfile?.PaymentMethod;\n if (hasPayment) {\n return null;\n }\n\n const hasActionPayment = true;\n const titlePayment = 'Please add a payment method to your account';\n const descriptionPayment =\n 'We need to collect your preferred payment method to receive your payouts.';\n\n return (\n <>\n {!hasPayment && (\n }>\n Add Payment Method\n \n ) : undefined\n }\n >\n )}\n \n );\n }}\n \n);\n\nconst PayoutPage = (props: {\n paymentMethod: PaymentMethodType;\n address: Partial
;\n loading: boolean;\n onUpdateLoading: (loading: boolean) => void;\n onUpdatePayoutsInfo: (\n paymentMethod: PaymentMethodType,\n formAddress?: Partial
,\n mercuryRecipientID?: string\n ) => void;\n mercuryRecipientID?: string;\n error?: string;\n}) => {\n return props.mercuryRecipientID && !props.loading ? (\n \n ) : (\n \n );\n};\n\nexport const PayoutsPage = (props: { merchant: DeepPartial }) => {\n const [paymentMethod, setPaymentMethod] = React.useState(\n props.merchant.BusinessProfile?.PaymentMethod || PaymentMethodType.Unknown\n );\n const [mercuryRecipientID, setMercuryRecipientID] = React.useState(\n props.merchant.MercuryRecipientID\n );\n const [address, setAddress] = React.useState(props.merchant.BusinessProfile?.Address || {});\n const [error, setError] = React.useState('');\n const [loading, setLoading] = React.useState(\n !mercuryRecipientID && paymentMethod !== PaymentMethodType.Unknown && !!address\n );\n\n const merchantPayment = () => {\n getMerchantPayment()\n .then((res) => {\n setMercuryRecipientID(res.MercuryRecipientID);\n setPaymentMethod(res.PaymentType);\n setAddress(res.Address);\n })\n .catch((err) => {\n if (err.type() == ErrorType.processingError && err.code() == ErrorCode.submissionFailed) {\n setError(\n \"There seems to be something wrong with the address you've entered. Please double check that it is entered correctly. If this error persists, please contact us at partners@withoyster.com.\"\n );\n } else {\n setError(err.message);\n }\n })\n .finally(() => setLoading(false));\n };\n\n React.useEffect(() => {\n merchantPayment();\n }, []);\n\n const onUpdatePayoutsInfo = (\n paymentMethod: PaymentMethodType,\n formAddress?: Partial
\n ) => {\n setError('');\n setPaymentMethod(paymentMethod);\n setAddress(formAddress || address);\n\n merchantPayment();\n };\n\n const onUpdateLoading = (loading: boolean) => {\n setLoading(loading);\n };\n\n return (\n <>\n

Payouts

\n

\n {mercuryRecipientID\n ? \"You're all set! Payouts have been configured and you'll receive earned referral fees on a monthly basis.\"\n : loading\n ? 'Your payment method is being processed, please check back later to see if it succeeded.'\n : 'Enter your billing address and select your preferred payout method to receive referral fees.'}\n

\n
\n {mercuryRecipientID ? (\n \n ) : loading ? (\n \n ) : (\n \n )}\n
\n \n \n );\n};\n","import * as React from 'react';\n\nimport { Merchant, MerchantIntegration, MerchantRentalConfiguration } from '@oysterjs/types';\nimport { updateMerchantIntegration } from '@oysterjs/core/api/merchant';\nimport { PageTitle } from '@oysterjs/ui/Page/section';\nimport { ChannelsListPage } from './channels';\nimport { PageNavigation } from '@oysterjs/ui/Page/navigation';\nimport { ReferralsPage } from './referrals';\nimport { PayoutsPage } from './payouts';\n\nexport const IntegrationsPage = (props: {\n apiKey: string;\n merchant: Merchant;\n merchantIntegrations: MerchantIntegration[];\n rentalConfiguration?: MerchantRentalConfiguration;\n}) => {\n const [merchantIntegrations, setMerchantIntegrations] = React.useState(\n props.merchantIntegrations\n );\n\n const onUpdateIntegration = async (integration: MerchantIntegration) => {\n const res = await updateMerchantIntegration(integration);\n setMerchantIntegrations(\n merchantIntegrations.map((i) => (i.ID === integration.ID ? res.Integration : i))\n );\n };\n\n React.useEffect(() => {\n setMerchantIntegrations(props.merchantIntegrations);\n }, [props.merchantIntegrations]);\n\n return (\n <>\n \n (\n \n )\n },\n {\n path: '/reports',\n title: 'Reports',\n render: () => \n },\n {\n path: '/payouts',\n title: 'Payment Settings',\n render: () => \n }\n ]}\n />\n \n \n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport { motion } from 'motion/react';\nimport * as Headless from '@headlessui/react';\nimport { Text } from './text';\n\nconst sizes = {\n xs: 'sm:max-w-xs',\n sm: 'sm:max-w-sm',\n md: 'sm:max-w-md',\n lg: 'sm:max-w-lg',\n xl: 'sm:max-w-xl',\n '2xl': 'sm:max-w-2xl',\n '3xl': 'sm:max-w-3xl',\n '4xl': 'sm:max-w-4xl',\n '5xl': 'sm:max-w-5xl'\n};\n\nexport function MountableDialog({\n size = 'lg',\n className,\n children,\n ...props\n}: { size?: keyof typeof sizes; className?: string; children: React.ReactNode } & Omit<\n Headless.DialogProps,\n 'className'\n>) {\n return (\n \n \n\n
\n
\n \n \n {children}\n \n \n
\n
\n
\n );\n}\n\nexport function Dialog({\n size = 'lg',\n className,\n children,\n ...props\n}: { size?: keyof typeof sizes; className?: string; children: React.ReactNode } & Omit<\n Headless.DialogProps,\n 'className'\n>) {\n return (\n \n \n\n
\n
\n \n {children}\n \n
\n
\n
\n );\n}\n\nexport function DialogTitle({\n className,\n ...props\n}: { className?: string } & Omit) {\n return (\n \n );\n}\n\nexport function DialogDescription({\n className,\n ...props\n}: { className?: string } & Omit, 'className'>) {\n return (\n \n );\n}\n\nexport function DialogBody({ className, ...props }: React.ComponentPropsWithoutRef<'div'>) {\n return
;\n}\n\nexport function DialogActions({ className, ...props }: React.ComponentPropsWithoutRef<'div'>) {\n return (\n \n );\n}\n","import * as React from 'react';\nimport { Merchant, MerchantUser, ValidationError } from '@oysterjs/types';\nimport { PageTitle } from '@oysterjs/ui/Page/section';\nimport { Button } from '@oysterjs/uiv2/button';\nimport { createMerchantUser, getMerchantUsers } from '@oysterjs/core/api/merchant';\nimport { ErrorType, WrappedError } from '@oysterjs/core/errors';\nimport {\n Dialog,\n DialogActions,\n DialogBody,\n DialogDescription,\n DialogTitle\n} from '@oysterjs/uiv2/dialog';\nimport {\n Description,\n ErrorMessage,\n Field,\n FieldGroup,\n Fieldset,\n Label\n} from '@oysterjs/uiv2/fieldset';\nimport { Input } from '@oysterjs/uiv2/input';\n\nconst UserList = (props: { users: MerchantUser[] }) => (\n
    \n {props.users.map((user) => (\n
  • \n
    \n
    \n

    \n {user.FirstName} {user.LastName}\n

    \n

    {user.Email}

    \n
    \n
    \n {user.FirstName.charAt(0)}\n {user.LastName.charAt(0)}\n
    \n
    \n
  • \n ))}\n
\n);\n\nconst AddUserForm = (props: {\n open: boolean;\n onAddUser: (users: MerchantUser[]) => void;\n onClose: () => void;\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [validationError, setValidationError] = React.useState();\n const [formData, setFormData] = React.useState({\n FirstName: '',\n LastName: '',\n Email: ''\n });\n const [error, setError] = React.useState('');\n\n const handleAddUser = async (e: React.FormEvent) => {\n e.preventDefault();\n setLoading(true);\n try {\n await createMerchantUser(formData);\n props.onAddUser((await getMerchantUsers()).Users);\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.validationError) {\n setError('');\n setValidationError(err.getValidationError());\n } else {\n setValidationError(undefined);\n setError(err.message);\n }\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n Add Team Member\n Add the specified user to the account.\n
\n \n
\n \n \n \n The user's preferred first name.\n {\n const value = e.currentTarget.value;\n setFormData((prev) => ({ ...prev, FirstName: value }));\n }}\n />\n {validationError?.Field === 'FirstName' && (\n {validationError.Message}\n )}\n \n \n \n The user's preferred last name.\n {\n const value = e.currentTarget.value;\n setFormData((prev) => ({ ...prev, LastName: value }));\n }}\n />\n {validationError?.Field === 'LastName' && (\n {validationError.Message}\n )}\n \n \n \n The email address the user will use to log in.\n {\n const value = e.currentTarget.value;\n setFormData((prev) => ({ ...prev, Email: value }));\n }}\n />\n {validationError?.Field === 'Email' && (\n {validationError.Message}\n )}\n \n \n
\n
\n \n \n \n \n {error && {error}}\n
\n
\n );\n};\n\nexport const TeamPage = (props: { merchant: Merchant; merchantUsers: MerchantUser[] }) => {\n const [users, setUsers] = React.useState(props.merchantUsers);\n const [showAddUser, setShowAddUser] = React.useState(false);\n\n return (\n <>\n \n \n \n setShowAddUser(false)}\n onAddUser={(users) => {\n setUsers(users);\n setShowAddUser(false);\n }}\n />\n \n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport { useHistory, useLocation } from 'react-router';\nimport { NavLink } from 'react-router-dom';\nimport { PageTitle } from '@oysterjs/ui/Page/section';\nimport { Button as HeadlessButton } from '@headlessui/react';\nimport {\n Dialog,\n DialogTitle,\n DialogDescription,\n DialogBody,\n DialogActions\n} from '@oysterjs/uiv2/dialog';\nimport {\n ArrowTopRightOnSquareIcon,\n BellIcon,\n ChartBarIcon,\n CursorArrowRaysIcon,\n EyeIcon,\n ExclamationTriangleIcon as ExclamationTriangleIconOutline,\n LinkIcon\n} from '@heroicons/react/24/outline';\nimport { ArrowRightIcon, CheckCircleIcon, CheckIcon, XCircleIcon } from '@heroicons/react/20/solid';\nimport {\n Description,\n ErrorMessage,\n Field,\n FieldGroup,\n Fieldset,\n Label\n} from '@oysterjs/uiv2/fieldset';\nimport { Button } from '@oysterjs/uiv2/button';\nimport { Input } from '@oysterjs/uiv2/input';\nimport { Textarea } from '@oysterjs/uiv2/textarea';\nimport { Select } from '@oysterjs/uiv2/select';\nimport { Slideout } from '@oysterjs/uiv2/slideout';\nimport { RadioField } from '../commercial/form';\nimport {\n BusinessPolicyFieldsFragment,\n ComplianceActionStatus,\n PolicyConversationMessage,\n PolicyConversationMessageRole,\n PolicyState,\n RiskManagementDataFieldsFragment,\n RiskManagementMarkActionItemCompleteDocument,\n RiskManagementSetActionItemAssigneeDocument,\n RiskManagementSetActionItemDueDateDocument,\n useAddPolicyConversationMessageMutation,\n useGetPolicyConversationQuery,\n useGetRiskManagementQuery,\n useRiskManagementSetupMutation\n} from '../../types/graphql';\nimport { Merchant, MerchantUser } from '@oysterjs/types';\nimport { getMerchantGraphQLClient } from '@oysterjs/core/api/merchant';\nimport { getDisplayInsuranceType } from '../../types/map';\nimport { PageNavigation } from '@oysterjs/ui/Page/navigation';\n\nexport const RiskPage = (props: {\n merchant: Merchant;\n businessPolicies: BusinessPolicyFieldsFragment[];\n riskManagement: RiskManagementDataFieldsFragment | null;\n enableRiskManagement: boolean;\n}) => {\n const [showRiskManagementOnboarding, setShowRiskManagementOnboarding] = React.useState(false);\n\n const totalComplianceItems =\n props.riskManagement?.compliance?.reduce((acc, group) => acc + group.items.length, 0) || 1;\n const closedComplianceItems =\n props.riskManagement?.compliance?.reduce(\n (acc, group) =>\n acc +\n group.items.reduce(\n (acc, item) =>\n acc +\n (item.actions.length === 0 ||\n item.actions.find((action) => action.status === ComplianceActionStatus.Open)\n ? 0\n : 1),\n 0\n ),\n 0\n ) || 0;\n\n const compliancePercentage = closedComplianceItems / totalComplianceItems;\n\n const stats = [\n {\n id: 1,\n name: 'Action Items',\n stat: `${props.riskManagement?.actionItems.filter((item) => item.status === ComplianceActionStatus.Open).length} open`,\n icon: BellIcon,\n description: 'Total number of action items'\n },\n {\n id: 2,\n name: 'Compliance',\n stat: new Intl.NumberFormat('en-US', {\n style: 'percent',\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n }).format(compliancePercentage),\n icon: ChartBarIcon,\n description: 'Percentage of compliance'\n },\n {\n id: 3,\n name: 'Potential Risks',\n stat: '4',\n icon: ExclamationTriangleIconOutline,\n description: 'Total number of potential liabilities'\n }\n ];\n\n const actionItems = props.riskManagement?.actionItems || [];\n const complianceFactors: [string, number][] =\n props.riskManagement?.compliance\n ?.flatMap((group) => group.items)\n .map((item) => {\n const allActionItems = actionItems.filter((action) =>\n action.complianceItems.some((actionComplianceItem) => actionComplianceItem.id === item.id)\n );\n const completedItems = allActionItems.filter(\n (action) => action.status === ComplianceActionStatus.Closed\n );\n if (allActionItems.length > 0) {\n return [item.title, 1 - completedItems.length / allActionItems.length];\n }\n return [item.title, 0];\n }) || [];\n\n return (\n <>\n \n setShowRiskManagementOnboarding(false)}\n />\n\n
\n {(!props.riskManagement || (!!props.riskManagement && !props.enableRiskManagement)) && (\n
\n
\n
\n
\n

\n Manage your business risk\n

\n

\n Monitor and actively mitigate operational risks and compliance requirements.\n

\n
\n
\n setShowRiskManagementOnboarding(true)}\n >\n Get Started \n \n
\n
\n
\n {!!props.riskManagement && !props.enableRiskManagement && (\n
\n

\n Your submission has been received. Our team is setting up your risk management\n dashboard and will notify you when it's ready.\n

\n
\n )}\n {!props.riskManagement && (\n
\n
\n
\n \n \n \n
\n
\n

\n Get started with Oyster Risk Management\n

\n

\n Oyster Risk Management helps you monitor and actively mitigate operational\n risks and compliance requirements.\n

\n

How it works

\n
    \n
  • \n \n
    Choose your compliance requirements and frameworks
    \n
  • \n
  • \n \n
    View recommended compliance and action items
    \n
  • \n
  • \n \n
    Track your action completion and compliance progress
    \n
  • \n
\n
\n
\n
\n )}\n
\n )}\n {!!props.riskManagement && props.enableRiskManagement && (\n
\n
\n
\n
\n

\n Manage your business risk\n

\n

\n Monitor and actively mitigate operational risks and compliance requirements.\n

\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n {stats.map((item) => (\n
\n
\n
\n \n
\n

\n {item.name}\n

\n
\n
\n

{item.stat}

\n
\n
\n ))}\n
\n
\n
\n
\n {complianceFactors.map(([, threshold], index) => {\n const colorClasses: [number, string][] = [\n [0.25, 'bg-green-300'],\n [0.55, 'bg-green-200'],\n [1.0, 'bg-green-100']\n // [0.85, 'bg-yellow-100'],\n // [0.95, 'bg-yellow-200'],\n // [0.98, 'bg-red-100'],\n // [1.0, 'bg-red-200']\n ];\n const colorClass =\n colorClasses.find(([classThreshold]) => threshold <= classThreshold)?.[1] ||\n 'bg-neutral-300';\n\n return (\n \n
\n Risk factor {index + 1}: {Math.floor(threshold * 100)}% risk\n
\n
\n );\n })}\n
\n
\n
\n
\n
\n )}\n\n {/*
\n
\n
\n
\n

\n Risk modeling\n

\n

\n Ensure that your policies would still be adequate for your changing business\n

\n
\n
\n \n
\n
\n
\n
\n
\n
\n
Last Check-in
\n
March 15, 2024
\n
\n
\n
Annual Revenue
\n
$1,200,000
\n
\n
\n
Primary Operations
\n
Retail, E-Commerce
\n
\n
\n
Number of Employees
\n
25
\n
\n
\n
\n
*/}\n\n {getExplorablePolicies(props.businessPolicies).length > 0 && (\n
\n
\n
\n
\n

\n Explore your coverage\n

\n

\n Explore your policies and understand what you're covered for\n

\n
\n
\n \n
\n
\n
\n
\n )}\n
\n \n );\n};\n\nconst OnboardRiskManagement = (props: { open: boolean; onClose: () => void }) => {\n const history = useHistory();\n const [riskManagementSetupMutation, { loading, error }] = useRiskManagementSetupMutation();\n\n const [form, setForm] = React.useState({\n description: '',\n changeDescription: '',\n complianceFrameworks: ''\n });\n const [validationErrors, setValidationErrors] = React.useState({\n description: '',\n changeDescription: '',\n complianceFrameworks: ''\n });\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n\n // Validate the form\n let hasErrors = false;\n setValidationErrors((prev) => {\n const next = { ...prev };\n if (!form.description.trim()) {\n next.description = 'This field is required.';\n hasErrors = true;\n }\n if (!form.changeDescription.trim()) {\n next.changeDescription = 'This field is required.';\n hasErrors = true;\n }\n return next;\n });\n if (hasErrors) {\n return;\n }\n\n riskManagementSetupMutation({\n variables: {\n description: form.description,\n changeDescription: form.changeDescription,\n complianceFrameworks: form.complianceFrameworks\n }\n }).then((res) => {\n if (res.data?.riskManagementSetup) {\n history.push('/risk');\n props.onClose();\n }\n });\n };\n\n return (\n \n Get Started with Risk Management\n \n Answer the following questions and our team will set up your risk and compliance management\n dashboard.\n \n
\n \n
\n \n \n \n \n Tell us about your business, products and services, who your customers are, where\n you operate, etc.\n \n {\n const val = e.currentTarget.value;\n setForm((prev) => ({ ...prev, description: val }));\n setValidationErrors((prev) => ({ ...prev, description: '' }));\n }}\n invalid={!!validationErrors.description}\n />\n {!!validationErrors.description && (\n {validationErrors.description}\n )}\n \n \n \n \n Examples: new product launch, new location, hiring, revenue growth, etc.\n \n {\n const val = e.currentTarget.value;\n setForm((prev) => ({ ...prev, changeDescription: val }));\n setValidationErrors((prev) => ({ ...prev, changeDescription: '' }));\n }}\n invalid={!!validationErrors.changeDescription}\n />\n {!!validationErrors.changeDescription && (\n {validationErrors.changeDescription}\n )}\n \n \n \n \n Examples: GMP, SOC2, GDPR, PCI DSS, HIPAA, ISO 27001, NIST, etc.\n \n {\n const val = e.currentTarget.value;\n setForm((prev) => ({ ...prev, complianceFrameworks: val }));\n setValidationErrors((prev) => ({ ...prev, complianceFrameworks: '' }));\n }}\n invalid={!!validationErrors.complianceFrameworks}\n />\n {!!validationErrors.complianceFrameworks && (\n {validationErrors.complianceFrameworks}\n )}\n \n \n
\n
\n \n \n \n \n {error && {error.message}}\n
\n
\n );\n};\n\nconst getActionItemStatus = (action?: RiskManagementDataFieldsFragment['actionItems'][number]) => {\n let className = 'text-neutral-600 bg-neutral-50 ring-neutral-500/10';\n let title: string | undefined = action?.status;\n\n if (action?.status === ComplianceActionStatus.Closed) {\n className = 'text-green-700 bg-green-50 ring-green-600/20';\n }\n\n if (action?.status === ComplianceActionStatus.Open) {\n const dueDate = new Date(action.dueDate).toISOString().split('T')[0];\n const today = new Date().toISOString().split('T')[0];\n if (dueDate < today) {\n title = 'OVERDUE';\n className = 'text-yellow-800 bg-yellow-50 ring-yellow-600/20';\n }\n }\n\n return (\n \n {title}\n
\n );\n};\n\nconst ActionItems = (props: RiskDashboardPageProps) => {\n const history = useHistory();\n const location = useLocation();\n\n const [loading, setLoading] = React.useState(false);\n const [showConfirmation, setShowConfirmation] = React.useState(false);\n\n const selectedActionItemId = location.pathname.split('/').pop();\n const selectedActionItem = props.riskManagement?.actionItems.find(\n (item) => item.id === selectedActionItemId\n );\n\n const updateUser = async (actionId: string, userId: string) => {\n setLoading(true);\n try {\n await getMerchantGraphQLClient().mutate({\n mutation: RiskManagementSetActionItemAssigneeDocument,\n variables: {\n id: actionId,\n userId: userId\n }\n });\n\n await props.refetchRiskManagement();\n } finally {\n setLoading(false);\n }\n };\n\n const updateDueDate = async (actionId: string, dueDate: string) => {\n setLoading(true);\n try {\n await getMerchantGraphQLClient().mutate({\n mutation: RiskManagementSetActionItemDueDateDocument,\n variables: {\n id: actionId,\n dueDate: new Date(dueDate).toISOString()\n }\n });\n\n await props.refetchRiskManagement();\n } finally {\n setLoading(false);\n }\n };\n\n const markComplete = async (actionId: string) => {\n setLoading(true);\n try {\n await getMerchantGraphQLClient().mutate({\n mutation: RiskManagementMarkActionItemCompleteDocument,\n variables: {\n id: actionId\n }\n });\n\n await props.refetchRiskManagement();\n } finally {\n setLoading(false);\n setShowConfirmation(false);\n history.push('/risk/manage/actions');\n }\n };\n\n return (\n <>\n !(loading || props.loadingRiskManagement) && setShowConfirmation(false)}\n >\n Are you sure this action item is complete?\n \n This action item will be marked as complete and you won't be able to interact with it\n further. Only mark this as complete if you've verified that the action item has been\n completed.\n \n \n setShowConfirmation(false)}\n >\n Cancel\n \n markComplete(selectedActionItem?.id || '')}\n color=\"sky\"\n >\n Mark as complete\n \n \n \n\n \n !(loading || props.loadingRiskManagement) && history.push('/risk/manage/actions')\n }\n >\n

{selectedActionItem?.title}

\n {!!selectedActionItem?.complianceItems?.length && (\n
\n
\n \n
\n
\n

\n Linked to compliance items\n

\n {selectedActionItem?.complianceItems.map((item) => (\n \n {item.title}\n \n \n ))}\n
\n
\n )}\n\n
\n
\n
\n
\n Status\n
\n
\n {getActionItemStatus(selectedActionItem)}\n
\n
\n
\n
\n Assignee\n
\n
\n updateUser(selectedActionItem?.id || '', e.currentTarget.value)}\n >\n \n {props.users.map((user) => (\n \n ))}\n \n
\n
\n
\n
\n Due Date\n
\n
\n updateDueDate(selectedActionItem?.id || '', e.target.value)}\n />\n
\n
\n
\n
\n Description\n
\n
\n {selectedActionItem?.description}\n
\n
\n
\n
\n How to complete\n
\n
\n {selectedActionItem?.completionRequirements?.map((requirement) => (\n
\n

{requirement.title}

\n

{requirement.description}

\n
\n ))}\n
\n
\n
\n
\n\n setShowConfirmation(true)}\n >\n Mark as complete\n \n \n\n
\n
\n
\n
\n

\n Action Items\n

\n

\n Recommended actions to take to ensure your business is compliant and protected.\n

\n
\n
\n
\n
\n
\n
\n \n \n \n \n Action Item\n \n \n Status\n \n \n Assignee\n \n \n Due Date\n \n \n \n \n \n {[...(props.riskManagement?.actionItems || [])]\n .sort((a, b) => new Date(a.dueDate).getTime() - new Date(b.dueDate).getTime())\n .map((action) => (\n \n \n \n \n \n \n \n ))}\n \n
\n View\n
\n
{action.title}
\n {/*
*/}\n
\n {getActionItemStatus(action)}\n \n {action.assignee ? (\n
\n \n {action.assignee.name.split(' ')[0][0].toUpperCase()}\n {action.assignee.name.split(' ')[1][0].toUpperCase()}\n \n {action.assignee.name}\n
\n ) : (\n Unassigned\n )}\n
\n {!isNaN(new Date(action.dueDate).getTime()) ? (\n new Intl.DateTimeFormat('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n timeZone: 'UTC'\n }).format(new Date(action.dueDate))\n ) : (\n No due date\n )}\n \n \n View\n , {action.title}\n \n
\n
\n
\n
\n
\n \n );\n};\n\nconst ComplianceItems = (props: RiskDashboardPageProps) => {\n const history = useHistory();\n const location = useLocation();\n\n const selectedComplianceItemId = location.pathname.split('/').pop();\n const selectedComplianceItem = props.riskManagement?.compliance\n ?.flatMap((group) => [...group.items])\n .find((item) => item.id === selectedComplianceItemId);\n\n return (\n <>\n history.push('/risk/manage/compliance')}\n title=\"View compliance item\"\n >\n

\n {selectedComplianceItem?.title}\n

\n
\n
\n

Description

\n

{selectedComplianceItem?.description}

\n
\n\n
\n

Standards

\n
\n {selectedComplianceItem?.standards?.map((standard) => (\n \n {standard.title}\n \n \n ))}\n
\n
\n\n
\n

\n Reference Materials\n

\n
\n {selectedComplianceItem?.referenceMaterials?.map((material) => (\n \n {material.title}\n \n \n ))}\n
\n
\n\n {!selectedComplianceItem?.actions.length && (\n
\n

Requirements

\n
\n {selectedComplianceItem?.requirements?.map((requirement) => (\n {requirement.title}\n ))}\n
\n
\n )}\n\n {!!selectedComplianceItem?.actions.length && (\n
\n

Progress

\n

\n {\n selectedComplianceItem?.actions.filter(\n (a) => a.status === ComplianceActionStatus.Closed\n ).length\n }{' '}\n out of {selectedComplianceItem?.actions.length} linked action items completed.\n

\n
\n a.status === ComplianceActionStatus.Closed\n ).length /\n selectedComplianceItem?.actions.length) *\n 100\n }%`\n }}\n />\n
\n
\n )}\n\n {!!selectedComplianceItem?.actions.length && (\n
\n

\n Linked Action Items\n

\n
    \n {selectedComplianceItem?.actions.map((action) => (\n
  • \n
    \n
    \n {action.status === ComplianceActionStatus.Closed ? (\n \n ) : (\n
    \n )}\n \n {action.title}\n \n
    \n
    \n

    \n Due on{' '}\n \n

    \n \n \n \n {!!action.assignee && (\n

    Assigned to {action.assignee?.name}

    \n )}\n {!action.assignee &&

    Unassigned

    }\n
    \n
    \n
    \n \n \n View action item\n \n
    \n
  • \n ))}\n
\n
\n )}\n
\n \n\n
\n
\n
\n
\n

\n Compliance Requirements\n

\n

\n Based on your business type and insurance policies, here are the compliance\n requirements you should consider.\n

\n
\n
\n
\n
\n
\n
\n \n \n \n Completed\n \n \n Compliance Requirement\n \n \n \n \n {props.riskManagement?.compliance?.map((category) => (\n \n \n \n \n {category.items.map((item) => (\n \n \n \n \n \n ))}\n \n ))}\n \n
\n View\n
\n \n {category.title}\n
\n {item.actions.length > 0 &&\n !item.actions.find(\n (a) => a.status === ComplianceActionStatus.Open\n ) && }\n {item.title}\n \n View, {item.title}\n \n
\n
\n
\n
\n
\n \n );\n};\n\ninterface RiskDashboardPageProps {\n users: MerchantUser[];\n riskManagement: RiskManagementDataFieldsFragment | null;\n loadingRiskManagement: boolean;\n refetchRiskManagement: () => Promise;\n}\n\nexport const RiskDashboardPage = (props: {\n merchant: Merchant;\n users: MerchantUser[];\n businessPolicies: BusinessPolicyFieldsFragment[];\n riskManagement: RiskManagementDataFieldsFragment | null;\n}) => {\n const { data, loading, refetch } = useGetRiskManagementQuery();\n\n return (\n \n (\n \n ),\n count:\n props.riskManagement?.actionItems?.filter(\n (item) => item.status === ComplianceActionStatus.Open\n )?.length || 0\n },\n {\n path: '/compliance',\n title: 'Compliance',\n render: () => (\n \n ),\n count:\n props.riskManagement?.compliance?.reduce(\n (acc, group) => acc + group.items.length,\n 0\n ) || 0\n }\n ]}\n />\n \n );\n};\n\nconst ModelRiskFieldNote = (props: {\n original: string;\n changeAmount: string;\n positive: boolean;\n}) => (\n
\n {props.positive ? (\n <>\n {props.changeAmount} increase{' '}\n from {props.original}\n \n ) : (\n <>\n {props.changeAmount} decrease{' '}\n from {props.original}\n \n )}\n
\n);\n\nexport const ModelRiskPage = () => {\n const ref = React.useRef(null);\n const [showRiskModel, setShowRiskModel] = React.useState(false);\n\n const [form, setForm] = React.useState({\n annualRevenue: '120000',\n totalPayroll: '60000',\n primaryOperations: 'Retail, E-Commerce',\n productTypes: 'Bikes, Apparel, Accessories',\n additionalOperations: 'Bike Rentals, Bike Repairs, Bike Sales'\n });\n\n return (\n <>\n \n {showRiskModel && (\n
\n
\n
\n
\n

\n Your risk results\n

\n

\n Based on your information, here are our risk and insurance recommendations.\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
Cyber Insurance
\n

\n Coverage is adequate. No changes needed.\n

\n
\n \n
\n\n
\n
\n
General Liability
\n

\n Risk exposure exceeds policy limits. We recommend increasing your coverage.\n

\n

\n Estimated additional cost: $400/year\n

\n
\n \n
\n\n
\n
\n
Workers Compensation
\n

\n Risk exposure exceeds policy limits. We recommend increasing your coverage.\n

\n

\n Estimated additional cost: $1,600/year\n

\n
\n \n
\n\n
\n
\n
Rental Insurance
\n

\n Rentals are not covered by your existing insurance. We recommended a rental\n insurance policy.\n

\n

\n Estimated cost: $500 - $1,500/year\n

\n
\n \n
\n
\n\n
\n \n \n
\n
\n
\n
\n )}\n {!showRiskModel && (\n {\n e.preventDefault();\n setShowRiskModel(true);\n }}\n >\n
\n
\n
\n
\n

\n Business Size\n

\n

\n Update business size information to see how your insurance and risk requirements\n change.\n

\n
\n
\n
\n
\n
\n \n
\n \n \n \n The total annual revenue generated by your business.\n \n setForm({ ...form, annualRevenue: e.target.value })}\n />\n {!isNaN(parseFloat(form.annualRevenue)) &&\n parseFloat(form.annualRevenue) !== 120000 && (\n 120000}\n />\n )}\n \n \n \n \n The total annual employee payroll for your business.\n \n setForm({ ...form, totalPayroll: e.target.value })}\n />\n {!isNaN(parseFloat(form.totalPayroll)) &&\n parseFloat(form.totalPayroll) !== 60000 && (\n 60000}\n />\n )}\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n

\n Business Operations\n

\n

\n Update business operations information to see how your insurance and risk\n requirements change.\n

\n
\n
\n
\n
\n
\n \n
\n \n \n The primary operations of your business.\n setForm({ ...form, primaryOperations: e.target.value })}\n />\n \n \n \n The types of products you sell.\n setForm({ ...form, productTypes: e.target.value })}\n />\n \n
\n \n \n Describe any additional operations of your business.\n setForm({ ...form, additionalOperations: e.target.value })}\n />\n \n
\n
\n
\n
\n\n
\n
\n
\n
\n

\n Business Risk Factors\n

\n

\n Answer a few questions about your business' risk factors to see how your\n insurance and risk requirements change.\n

\n
\n
\n
\n
\n
\n \n {}}\n label=\"Do you manufacture using your own brand?\"\n options={[\n { value: 'YES', displayText: 'Yes' },\n { value: 'NO', displayText: 'No' }\n ]}\n />\n {}}\n label=\"Will bike rentals exceed 20% of your annual sales?\"\n options={[\n { value: 'YES', displayText: 'Yes' },\n { value: 'NO', displayText: 'No' }\n ]}\n />\n {}}\n label=\"Do you have a legally-reviewed rental liability release form?\"\n options={[\n { value: 'YES', displayText: 'Yes' },\n { value: 'NO', displayText: 'No' }\n ]}\n />\n \n
\n
\n
\n \n \n )}\n \n );\n};\n\nexport const ExploreRiskPage = (props: { businessPolicies: BusinessPolicyFieldsFragment[] }) => {\n const explorablePolicies = getExplorablePolicies(props.businessPolicies);\n if (!explorablePolicies.length) {\n return null;\n }\n\n const [selectedPolicy, setSelectedPolicy] = React.useState(\n explorablePolicies[0] || null\n );\n const [showPolicyQuotes, setShowPolicyQuotes] = React.useState>({});\n\n if (!selectedPolicy) {\n return (\n
\n \n \n \n

No policies

\n

\n You don't have any policies to explore. Get started by applying for one.\n

\n
\n \n \n
\n
\n );\n }\n\n const policyStats = [\n {\n name: 'Premium',\n value: new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(\n selectedPolicy.pricing.premium || 0\n )\n },\n // {\n // name: 'Deductible',\n // value: new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(\n // selectedPolicy.details?.deductible || 0\n // )\n // },\n {\n name: 'Policy Number',\n value: selectedPolicy.policyNumber || selectedPolicy.details?.policyNumber || 'N/A'\n },\n {\n name: 'Expiration',\n value: new Date(selectedPolicy.expiresAt || '').toLocaleDateString('en-US', {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric'\n })\n }\n ];\n\n const policyLimits = [\n { name: 'aggregate', limit: selectedPolicy.details?.limits?.cyberAggregateLimit },\n { name: 'retention', limit: selectedPolicy.details?.limits?.cyberRetentionLimit },\n { name: 'aggregate', limit: selectedPolicy.details?.limits?.glAggregateLimit },\n {\n name: 'medical per occurrence',\n limit: selectedPolicy.details?.limits?.glMedicalPerOccurrenceLimit\n },\n {\n name: 'medical per person',\n limit: selectedPolicy.details?.limits?.glMedicalPerPersonLimit\n },\n { name: 'per occurrence', limit: selectedPolicy.details?.limits?.glPerOccurrenceLimit },\n {\n name: 'personal and advertising injury',\n limit: selectedPolicy.details?.limits?.glPersonalAndAdvertisingInjuryLimit\n },\n {\n name: 'products and completed operations',\n limit: selectedPolicy.details?.limits?.glProductsAndCompletedOperationsLimit\n },\n {\n name: 'rented premises damage',\n limit: selectedPolicy.details?.limits?.glRentedPremisesDamageLimit\n },\n { name: 'building', limit: selectedPolicy.details?.limits?.propertyBuildingLimit },\n { name: 'contents', limit: selectedPolicy.details?.limits?.propertyContentsLimit },\n { name: 'per accident', limit: selectedPolicy.details?.limits?.wcPerAccidentLimit },\n {\n name: 'per disease (employee)',\n limit: selectedPolicy.details?.limits?.wcPerDiseaseEmployeeLimit\n },\n {\n name: 'per disease (policy)',\n limit: selectedPolicy.details?.limits?.wcPerDiseasePolicyLimit\n },\n ...(selectedPolicy.details?.extraLimits || []),\n ...(selectedPolicy.details?.locations?.flatMap((location) => [\n {\n name: `building (${location.address.line1})`,\n limit: location.limits?.propertyBuildingLimit\n },\n {\n name: `contents (${location.address.line1})`,\n limit: location.limits?.propertyContentsLimit\n }\n ]) || [])\n ].filter((limit) => !!limit?.limit);\n\n return (\n <>\n \n
e.preventDefault()}>\n
\n \n \n \n Select the policy you want to explore.\n {\n setSelectedPolicy(\n explorablePolicies.find((p) => p.id === e.currentTarget.value) || null\n );\n }}\n >\n {explorablePolicies.map((policy) => (\n \n ))}\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n

\n Policy overview\n

\n

Basic details about your policy.

\n
\n
\n
\n
\n
\n {policyStats.map((stat) => (\n \n
{stat.name}
\n
\n {stat.value}\n
\n
\n ))}\n \n
\n
\n
Insured Entity
\n
\n \n {selectedPolicy.details?.insured?.name || 'Unknown'}\n \n
\n {selectedPolicy.details?.insured?.address?.line1 || 'Unknown'}\n
\n \n {selectedPolicy.details?.insured?.address?.city || 'Unknown'},{' '}\n {selectedPolicy.details?.insured?.address?.zone || 'Unknown'}{' '}\n {selectedPolicy.details?.insured?.address?.postalCode || 'Unknown'}\n \n
\n
\n
\n
Carrier
\n
\n \n {selectedPolicy.details?.carrier?.name || 'Unknown'}\n \n
\n {selectedPolicy.details?.carrier?.address?.line1 || 'Unknown'}\n
\n \n {selectedPolicy.details?.carrier?.address?.city || 'Unknown'},{' '}\n {selectedPolicy.details?.carrier?.address?.zone || 'Unknown'}{' '}\n {selectedPolicy.details?.carrier?.address?.postalCode || 'Unknown'}\n \n
\n
\n
\n
Policy Summary
\n
\n {selectedPolicy.details?.summary || 'Unknown'}\n
\n
\n
\n
Limits
\n
\n {policyLimits.map((limit) => (\n
\n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n currency: 'USD'\n }).format(limit.limit || 0)}{' '}\n {limit.name}\n
\n ))}\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n

\n What's covered\n

\n

Coverage for your business.

\n
\n
\n
\n
\n
\n
\n {selectedPolicy.details?.coverageDescriptions?.map((coverage) => (\n
\n
\n \n {coverage.title}\n
\n
\n {coverage.description}\n
\n {coverage.policyQuotes.length > 0 && !showPolicyQuotes[coverage.title] && (\n \n setShowPolicyQuotes({\n ...showPolicyQuotes,\n [coverage.title]: true\n })\n }\n className=\"text-xs font-medium text-primary-500 hover:text-primary-800 inline-flex items-center gap-1 ml-6\"\n >\n Show relevant quotes \n \n )}\n {coverage.policyQuotes.length > 0 && showPolicyQuotes[coverage.title] && (\n
\n {coverage.policyQuotes.map((quote) => (\n \n {quote}\n
\n ))}\n
\n )}\n
\n ))}\n \n

\n The coverage descriptions provided here may not be complete, and may have\n important exclusions or limitations. For a full understanding of your coverage,\n please read your policy documents or speak with an insurance agent.\n

\n
\n
\n
\n\n
\n
\n
\n
\n

\n What's not covered\n

\n

\n Exclusions and other limitations on your policy.\n

\n
\n
\n
\n
\n
\n
\n {selectedPolicy.details?.exclusionDescriptions?.map((exclusion) => (\n
\n
\n \n {exclusion.title}\n
\n
\n {exclusion.description}\n
\n {exclusion.policyQuotes.length > 0 && !showPolicyQuotes[exclusion.title] && (\n \n setShowPolicyQuotes({\n ...showPolicyQuotes,\n [exclusion.title]: true\n })\n }\n className=\"text-xs font-medium text-primary-500 hover:text-primary-800 inline-flex items-center gap-1 ml-6\"\n >\n Show relevant quotes \n \n )}\n {exclusion.policyQuotes.length > 0 && showPolicyQuotes[exclusion.title] && (\n
\n {exclusion.policyQuotes.map((quote) => (\n \n {quote}\n
\n ))}\n
\n )}\n
\n ))}\n \n

\n The exclusions provided here may not be complete, and may have important caveats\n or conditions. For a full understanding of your policy, please read your policy\n documents or speak with an insurance agent.\n

\n
\n
\n \n \n\n
\n
\n
\n
\n
\n

\n Ask a question\n

\n

\n We'll find related information in your policy.\n

\n
\n
\n
\n
\n \n
\n
\n
\n \n \n );\n};\n\nconst PolicyChat = (props: { policyId: string }) => {\n // Load the initial conversation messages\n const {\n data: initialData,\n loading: initialLoading,\n refetch: refetchInitialData\n } = useGetPolicyConversationQuery({\n variables: { policyId: props.policyId }\n });\n\n // Send a message to the policy chat\n const [\n sendMessage,\n { data: sendMessageData, loading: sendMessageLoading, error: sendMessageError }\n ] = useAddPolicyConversationMessageMutation();\n\n // State for the chat\n const [editorText, setEditorText] = React.useState('');\n const [messages, setMessages] = React.useState([]);\n const [stagedMessage, setStagedMessage] = React.useState('');\n const [showAttachments, setShowAttachments] = React.useState>({});\n\n React.useEffect(() => {\n refetchInitialData({ policyId: props.policyId });\n }, [props.policyId]);\n\n React.useEffect(() => {\n if (initialData) {\n setMessages(initialData.policyConversation);\n }\n }, [initialData]);\n\n React.useEffect(() => {\n if (sendMessageData) {\n setMessages(sendMessageData.riskManagementAddPolicyConversationMessage);\n }\n }, [sendMessageData?.riskManagementAddPolicyConversationMessage]);\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n setEditorText('');\n setStagedMessage(editorText);\n await sendMessage({\n variables: { policyId: props.policyId, message: editorText }\n });\n setStagedMessage('');\n };\n\n if (initialLoading) {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n }\n\n return (\n
\n
\n
\n
\n
\n
\n                Hello! I'm here to look up information in your policy documents. What would you like\n                to know?\n              
\n
\n
\n {messages.map((message) => (\n \n \n
{message.content}
\n {message.attachments.length > 0 && !showAttachments[message.id] && (\n \n setShowAttachments({\n ...showAttachments,\n [message.id]: true\n })\n }\n className=\"text-xs font-medium text-primary-500 hover:text-primary-800 inline-flex items-center gap-1 mt-2\"\n >\n Show relevant quotes \n \n )}\n {message.attachments.length > 0 && showAttachments[message.id] && (\n
\n {message.attachments?.map((attachment) => (\n \n {attachment.content}\n
\n ))}\n
\n )}\n
\n
\n ))}\n {sendMessageLoading && (\n <>\n
\n
\n
{stagedMessage}
\n
\n
\n \n \n )}\n
\n

\n Please note: This assistant will attempt to find information in your policy. However,\n it is not a licensed agent. Always check your policy documents or schedule a call with\n an Oyster agent for the most accurate information.\n

\n
\n
\n
\n
\n
\n
\n \n \n \n setEditorText(e.target.value)}\n />\n {sendMessageError && {sendMessageError.message}}\n \n \n
\n\n \n Send Message\n \n \n
\n
\n );\n};\n\nconst AIChatProgress = () => {\n // Build a two-minute animation to keep the user engaged while the quote loads\n const steps = [\n { title: 'Loading policy documents...', maxDuration: 2000, maxWidth: 10 },\n { title: 'Reading carefully...', maxDuration: 6000, maxWidth: 45 },\n { title: 'Thinking...', maxDuration: 5000, maxWidth: 80 },\n { title: 'Thinking...', maxDuration: 8000, maxWidth: 90 },\n { title: 'Thinking...', maxDuration: 13000, maxWidth: 100 }\n ];\n\n const [stepIndex, setStepIndex] = React.useState(0);\n React.useEffect(() => {\n if (stepIndex === steps.length) {\n return;\n }\n\n const timeout = setTimeout(() => {\n setStepIndex((prev) => (prev >= steps.length - 1 ? prev : prev + 1));\n }, steps[stepIndex].maxDuration);\n\n return () => clearTimeout(timeout);\n }, [stepIndex]);\n\n return (\n
\n
\n
\n
\n
\n\n
\n {steps[stepIndex].title}\n
\n
\n
\n \n
\n
\n
\n
\n );\n};\n\nconst getExplorablePolicies = (policies: BusinessPolicyFieldsFragment[]) =>\n policies.filter(\n (policy) => policy.state === PolicyState.Inforce && !!policy.details?.carrier?.address.line1\n );\n","import * as React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { IoClose } from 'react-icons/io5';\nimport styled from 'styled-components';\n\nconst Overlay = styled.div`\n position: fixed;\n display: flex;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n background: rgba(250, 250, 250, 0.8);\n z-index: 999;\n\n &.slideout-enter {\n opacity: 0;\n }\n &.slideout-enter-active {\n opacity: 1;\n transition: 0.3s opacity ease;\n }\n &.slideout-exit {\n opacity: 1;\n }\n &.slideout-exit-active {\n opacity: 0;\n transition: 0.3s opacity ease;\n }\n\n @media (min-width: 660px) {\n &.slideout-enter .slideout-container {\n right: -60px;\n }\n &.slideout-enter-active .slideout-container {\n right: 0px;\n transition: 0.3s right ease;\n }\n &.slideout-exit .slideout-container {\n right: 0px;\n }\n &.slideout-exit-active .slideout-container {\n right: -60px;\n transition: 0.3s right ease;\n }\n }\n\n @media (max-width: 660px) {\n &.slideout-enter .slideout-container {\n top: 100%;\n }\n &.slideout-enter-active .slideout-container {\n top: 0px;\n transition: 0.3s top ease;\n }\n &.slideout-exit .slideout-container {\n top: 0px;\n }\n &.slideout-exit-active .slideout-container {\n top: 100%;\n transition: 0.3s top ease;\n }\n }\n`;\n\nconst SlideOutContainer = styled.div<{ wide?: boolean }>`\n background: white;\n box-shadow: 0px 0px 40px rgba(0, 0, 0, 0.1);\n position: absolute;\n top: 0;\n right: 0;\n width: ${(props) => (props.wide ? '1000px' : '660px')};\n height: 100%;\n box-sizing: border-box;\n\n @media (max-width: 660px) {\n top: 0;\n left: 0;\n width: 100%;\n }\n`;\n\nconst HeaderContainer = styled.div`\n height: 60px;\n width: 100%;\n border-bottom: 1px solid #f2f2f2;\n padding: 0px 20px;\n box-sizing: border-box;\n font-weight: 500;\n\n display: flex;\n align-items: center;\n gap: 10px;\n`;\n\nconst HeaderButtonContainer = styled.div`\n height: 30px;\n width: 30px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n color: #666666;\n transition: all 0.1s ease-in-out;\n\n &.clickable:hover {\n cursor: pointer;\n background-color: #666666;\n color: white;\n }\n`;\n\nconst Header = (props: { title: string; onBack?: () => void; onClose?: () => void }) => (\n \n \n
{props.title}
\n \n \n \n
\n \n);\n\nconst ContentBox = styled.div`\n position: absolute;\n top: 60px;\n padding: 20px 20px;\n height: calc(100% - 60px);\n box-sizing: border-box;\n width: 100%;\n overflow-y: auto;\n\n @media (max-width: 500px) {\n padding: 20px 0px;\n }\n`;\n\ninterface SlideOutProps {\n title?: string;\n showing?: boolean;\n wide?: boolean;\n onClose: () => void;\n onBack?: () => void;\n}\n\nexport const SlideOut = (\n props: React.PropsWithChildren & SlideOutProps>\n) => {\n const [overflowState, setOverflowState] = React.useState(document.body.style.overflow);\n\n React.useEffect(() => {\n if (props.showing) {\n setOverflowState(document.body.style.overflow);\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = overflowState;\n }\n\n return () => {\n document.body.style.overflow = overflowState;\n };\n }, [props.showing]);\n\n return (\n \n \n e.stopPropagation()}\n className=\"slideout-container\"\n >\n
\n {props.children}\n \n \n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { useId } from 'react-id-generator';\n\nexport const FormContainer = styled.form`\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n`;\n\nexport const FormRowContainer = styled.div<{\n breakMobile?: boolean;\n alignItems?: string;\n singleItem?: boolean;\n}>`\n display: flex;\n flex-direction: row;\n align-items: ${(props) => (props.alignItems ? props.alignItems : 'normal')};\n gap: 16px;\n width: 100%;\n max-width: ${(props) => (props.singleItem ? 'calc(50% - 8px)' : '100%')};\n\n @media (max-width: 600px) {\n max-width: 100%;\n flex-direction: ${(props) => (props.breakMobile ? 'column' : 'row')};\n }\n`;\n\nconst FormRowHeaderContainer = styled.div<{ paddingTop?: string }>`\n padding-top: ${(props) => (props.paddingTop ? props.paddingTop : '24px')};\n`;\n\nconst FormRowHeaderDescription = styled.div`\n color: #999999;\n font-size: 0.9em;\n padding-top: 4px;\n`;\n\nconst FormRowHeaderTitle = styled.div`\n font-size: 1.1em;\n font-weight: 500;\n`;\n\nconst FormRowError = styled.div`\n font-size: 0.8em;\n color: #d1344b;\n`;\n\ninterface FormRowProps {\n error?: string | false;\n breakMobile?: boolean;\n alignItems?: string;\n singleItem?: boolean;\n}\n\nexport const FormRow: React.FunctionComponent<\n React.PropsWithChildren & FormRowProps>\n> = (props) => (\n <>\n {props.children}\n {props.error && {props.error}}\n \n);\n\ninterface FormRowHeaderProps {\n title?: string;\n description?: string;\n paddingTop?: string;\n}\n\nexport const FormRowHeader: React.FunctionComponent> = (\n props\n) => (\n \n {props.title && {props.title}}\n {props.description && {props.description}}\n \n);\n\nconst FormColumnContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 4px;\n flex: 1 1 0;\n`;\n\nconst FormColumnTitle = styled.label`\n font-weight: 500;\n`;\n\nconst FormColumnDescription = styled.div`\n padding-bottom: 8px;\n font-size: 0.8em;\n color: #666666;\n`;\n\nconst FormColumnContents = styled.div``;\n\n// Temporary enum to distinguish the desired style\n// on the merchant form vs. the consumer forms. we'll\n// unify these styles once we have a design language.\nexport enum FormColumnStyle {\n merchant = 'merchant'\n}\n\ninterface FormColumnProps {\n title?: string;\n description?: string;\n label?: string;\n optional?: boolean;\n formColumnStyle?: FormColumnStyle;\n}\n\nexport const FormColumn: React.FunctionComponent<\n React.PropsWithChildren & FormColumnProps>\n> = (props) => {\n const [id] = useId();\n\n return (\n \n \n {props.title || props.label}\n {props.optional && (opt.)}\n \n {props.description && {props.description}}\n \n {React.Children.map(props.children, (child) =>\n React.isValidElement(child) ? React.cloneElement(child as JSX.Element, { id }) : child\n )}\n \n \n );\n};\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { ErrorDisplay, TextInputComponent } from './text';\nimport { IoAdd } from 'react-icons/io5';\nimport { Spinner } from '../Spinner';\n\nconst SelectInput = styled.select<{ error?: string | false | null }>`\n border: 0;\n outline: none;\n appearance: none;\n background: white;\n\n border-radius: 20px;\n border: ${(props) => (props.error ? '2px solid #d1344b' : '2px solid #e8e8e8')};\n box-sizing: border-box;\n font-size: 1em;\n padding: 8px 40px 8px 20px;\n\n width: 100%;\n\n transition: 0.15s all;\n\n &:focus {\n border: 2px solid #0ea5e9;\n }\n\n ::placeholder {\n color: #aaaaaa;\n }\n\n font-family: 'Inter', 'Helvetica Neue', 'Arial', sans-serif;\n`;\n\nconst Carat = styled.div`\n display: block;\n position: absolute;\n cursor: pointer;\n right: 1rem;\n top: 50%;\n margin-top: -1px;\n width: 0;\n height: 0;\n border-top: 5px solid #999;\n border-right: 5px solid transparent;\n border-left: 5px solid transparent;\n pointer-events: none;\n`;\n\nexport interface SelectProps {\n initialSelected?: string; // denotes uncontrolled\n selected?: string; // denotes controlled\n disabled?: boolean;\n style?: React.CSSProperties;\n\n error?: string | false | null;\n options?: { value: string; displayValue?: string }[];\n onChange?: (value: string) => void;\n}\n\nexport const Select = (\n props: React.AllHTMLAttributes & SelectProps\n): JSX.Element => {\n return (\n
\n
\n {\n e.stopPropagation();\n }}\n onChange={(e) => {\n e.stopPropagation();\n if (props.onChange) {\n props.onChange(e.currentTarget.value);\n }\n }}\n >\n {(props.options || []).map((option) => (\n \n ))}\n \n \n
\n {props.error && {props.error}}\n
\n );\n};\n\nexport const UnstyledSelect = (props: SelectProps): JSX.Element => {\n const [selected, setSelected] = React.useState(props.selected || props.initialSelected);\n\n React.useEffect(() => {\n setSelected(props.selected);\n }, [props.selected]);\n\n return (\n {\n e.stopPropagation();\n }}\n onChange={(e) => {\n e.stopPropagation();\n if (!props.selected) {\n setSelected(e.currentTarget.value);\n }\n if (props.onChange) {\n props.onChange(e.currentTarget.value);\n }\n }}\n value={selected}\n disabled={props.disabled}\n >\n {(props.options || []).map((option) => (\n \n ))}\n \n );\n};\n\nconst SearchableSelectOptionsContainer = styled.div`\n position: absolute;\n display: none;\n box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.25);\n box-sizing: border-box;\n border-radius: 8px;\n margin-top: 4px;\n z-index: 100;\n background: white;\n width: 100%;\n\n &:hover {\n display: block;\n }\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n ul li {\n padding: 10px 20px;\n font-size: 0.9em;\n\n &:first-child {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n\n &:last-child {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n }\n\n &:hover {\n background: #0ea5e9;\n color: white;\n cursor: pointer;\n\n span.highlighted {\n background: none;\n font-weight: normal;\n }\n }\n }\n\n li.add-item {\n border-top: 2px solid #f2f2f2;\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 0.9em;\n font-weight: 600;\n\n &.loading {\n background: #f8f8f8;\n cursor: wait;\n color: #666666;\n }\n }\n\n span.highlighted {\n background: yellow;\n font-weight: 600;\n }\n`;\n\nconst SearchableSelectOptions = (props: {\n options: string[];\n inputText: string;\n onSelect: (option: string) => void;\n onAdd: (option: string) => Promise;\n}) => {\n const [loading, setLoading] = React.useState(false);\n\n const handleAddOption = async () => {\n if (loading) {\n return;\n }\n\n try {\n setLoading(true);\n await props.onAdd(props.inputText);\n } finally {\n setLoading(false);\n }\n };\n\n const caseInsensitiveIndexOf = (s: string, sub: string) =>\n s.toLowerCase().indexOf(sub.toLowerCase());\n\n // Ranked options are the options to display in the dropdown. This is filtered\n // and ordered in an intuitive way for the user.\n const rankedOptions = props.options\n // First, only show options that contain the input string as a complete substring\n // unless the input string is empty, in which case show all opions.\n .filter((option) => !props.inputText || caseInsensitiveIndexOf(option, props.inputText) !== -1)\n // Next, build the sort key for each option. First, sort by the position of the\n // first complete substring match (prefer options that have the input text earlier\n // in the option rather than later). If the positions are the same, break the tie\n // by sorting based on the index option, keeping them in the original order (this is\n // also known as a stable sort). The final element is the actual option to render.\n .map((s, i): [number, number, string] => [caseInsensitiveIndexOf(s, props.inputText), i, s])\n // Generic sort comparator that sorts ascending by each corresponding element in the\n // sort key, checking subsequent elements in the key when prior elements are equal.\n .sort((a, b) => {\n for (let i = 0; i < a.length && i < b.length; i++) {\n if (a[i] !== b[i]) {\n return a[i] < b[i] ? -1 : 1;\n }\n }\n return 0;\n });\n\n return (\n \n
    \n
    \n {rankedOptions.map(([, , option]) => (\n
  • props.onSelect?.(option)}>\n {[...option].map((char, i) => (\n = caseInsensitiveIndexOf(option, props.inputText) &&\n i < caseInsensitiveIndexOf(option, props.inputText) + props.inputText.length\n ? 'highlighted'\n : undefined\n }\n >\n {char}\n \n ))}\n
  • \n ))}\n
    \n {!props.options.some((opt) => opt === props.inputText) && props.inputText != '' && (\n
  • \n {loading && (\n <>\n Adding \"{props.inputText}\"...\n \n )}\n {!loading && (\n <>\n Add \"{props.inputText}\"\n \n )}\n
  • \n )}\n
\n
\n );\n};\n\ninterface SearchableSelectProps {\n options: string[];\n initialValue?: string;\n disabled?: boolean;\n error?: string;\n onChange?: (value: string) => void;\n onAddOption?: (value: string) => Promise;\n onSelectOption?: (value: string) => void;\n}\n\nexport const SearchableSelect = (props: SearchableSelectProps): JSX.Element => {\n const [selectedOption, setSelectedOption] = React.useState(false);\n const [value, setValue] = React.useState(props.initialValue);\n\n React.useEffect(() => {\n setValue(props.initialValue);\n }, [props.initialValue]);\n\n return (\n
\n {\n setSelectedOption(false);\n setValue(e.currentTarget.value.trim());\n props.onChange?.(e.currentTarget.value.trim());\n }}\n onFocus={() => setSelectedOption(false)}\n disabled={props.disabled}\n />\n {!selectedOption && (\n {\n setSelectedOption(true);\n setValue(value);\n props.onSelectOption?.(value);\n }}\n onAdd={async (value: string) => {\n if (!props.onAddOption) {\n return;\n }\n\n await props.onAddOption(value);\n setSelectedOption(true);\n setValue(value);\n }}\n />\n )}\n {props.error && {props.error}}\n
\n );\n};\n","import { DayPicker, DayPickerProps } from 'react-day-picker';\nimport styled from 'styled-components';\nimport 'react-day-picker/src/style.css';\n\nconst DatePickerContainer = styled.div<{ loading?: boolean }>`\n .rdp {\n opacity: ${(props) => (props.loading ? 0.5 : 1.0)};\n pointer-events: ${(props) => (props.loading ? 'none' : 'auto')};\n transition: all 0.15s ease-in-out;\n\n margin: 0;\n\n .rdp-caption_label {\n padding: 0;\n border: 0;\n }\n\n .rdp-day_selected,\n .rdp-day_selected:hover,\n .rdp-day_selected:focus,\n .rdp-day_selected:active {\n background-color: #0ea5e9;\n border: 2px solid transparent;\n }\n\n .rdp-day,\n .rdp-day:hover,\n .rdp-day:focus,\n .rdp-day:active {\n border: 2px solid transparent;\n }\n\n .rdp-button:hover:not(.rdp-day_selected) {\n background-color: #e6f9f6;\n }\n }\n`;\n\nexport declare type DatePickerProps = {\n loading?: boolean;\n} & DayPickerProps;\n\nexport const DatePicker = (props: DatePickerProps): JSX.Element => {\n return (\n \n \n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Table } from '@oysterjs/ui/Table';\n\nexport const SettingsContainer = styled.div`\n margin-top: 20px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n`;\n\nexport const Setting = (\n props: React.PropsWithChildren<{ title: string; description: string; rightAction?: JSX.Element }>\n) => (\n
\n
\n
\n

{props.title}

\n {props.rightAction &&
{props.rightAction}
}\n
\n

\n {props.description}\n

\n
\n
{props.children}
\n
\n);\n\nexport const DetailsContainer = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 10px;\n\n & > div {\n flex: 1 0 0;\n flex-basis: 40%;\n box-sizing: border-box;\n\n &:not(:first-child) {\n max-width: calc(50% - 5px);\n }\n }\n\n @media (max-width: 600px) {\n flex-direction: column;\n\n & > div {\n &:not(:first-child) {\n max-width: 100%;\n }\n }\n }\n`;\n\nconst RentalSlideoutHeader = styled.div`\n justify-content: space-between;\n display: flex;\n align-items: center;\n gap: 0px;\n`;\n\ninterface RentalPageContainerProps {\n title: string;\n description: string;\n badge?: JSX.Element;\n}\n\nexport const RentalPageContainer = (props: React.PropsWithChildren) => (\n
\n \n

{props.title}

\n {props.badge}\n
\n

\n {props.description}\n

\n {props.children}\n
\n);\n\nconst StatementTable = styled(Table)`\n margin: 0;\n\n thead {\n text-align: left;\n }\n\n tbody tr td {\n border: 0;\n font-size: 0.9em;\n }\n\n tbody tr td:last-child,\n thead tr th:last-child {\n text-align: right;\n }\n\n tr.line-item td:last-child {\n font-weight: 500;\n }\n\n tr.line-item--no-adjustment td {\n border-bottom: 1px solid #f2f2f2;\n }\n\n tr.line-item--with-adjustment td {\n padding-bottom: 0px;\n }\n\n tr.line-item-adjustment td {\n font-size: 0.8em;\n padding-top: 4px;\n padding-bottom: 0px;\n color: #666666;\n }\n\n tr.line-item-adjustment--last-of-group td {\n padding-bottom: 16px;\n border-bottom: 1px solid #f2f2f2;\n }\n\n tr.summary-line td {\n font-weight: 500;\n padding-top: 8px;\n padding-bottom: 0px;\n }\n\n tr.summary-line--first-line td {\n border-top: 3px solid #eaeaea;\n }\n`;\n\ninterface Adjustment {\n description: string;\n amount: number;\n}\n\ninterface LineItem {\n waiverId: string;\n date: string;\n customer: string;\n assets: string[];\n rentalDuration: string;\n premium: number;\n adjustments: Adjustment[];\n}\n\nexport const Statement = (props: { lineItems: LineItem[] }) => (\n \n \n \n Date\n Customer\n Assets Rented\n Rental Duration\n Amount\n \n \n \n {props.lineItems.map((item) => (\n \n \n {item.date}\n {item.customer}\n {item.assets.join(', ')}\n {item.rentalDuration}\n \n {new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'USD'\n }).format(item.premium)}\n \n \n {item.adjustments.map((adjustment, i) => (\n \n \n {adjustment.description}\n \n {new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'USD'\n }).format(adjustment.amount)}\n \n \n ))}\n \n ))}\n \n Total Waivers\n {props.lineItems.length}\n \n \n Total Waiver Premium\n \n {new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'USD'\n }).format(props.lineItems.reduce((acc, curr) => acc + curr.premium, 0))}\n \n \n \n Total Premium Due\n \n {new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'USD'\n }).format(\n props.lineItems.reduce(\n (acc, curr) =>\n acc + curr.premium + curr.adjustments.reduce((acc2, curr) => acc2 + curr.amount, 0),\n 0\n )\n )}\n \n \n \n \n);\n","import React from 'react';\n\nimport {\n addRentalAssetSerialNumber,\n createRentalWaiver,\n getMerchantRentalAssets,\n getMerchantRentalConfiguration,\n getRentalWaiver,\n getWaiverPricing,\n updateRentalWaiver\n} from '@oysterjs/core/api/merchant';\nimport { Button, ButtonContainer } from '@oysterjs/ui/Button';\nimport { FormContainer, FormRowHeader, FormRow, FormColumn } from '@oysterjs/ui/Form/builder';\nimport { SearchableSelect, Select } from '@oysterjs/ui/Form/select';\nimport { ErrorDisplay, TextInput, TextInputComponent } from '@oysterjs/ui/Form/text';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport { DatePicker } from '@oysterjs/ui/Form/datepicker';\nimport { ErrorType, WrappedError } from '@oysterjs/core/errors';\nimport {\n RentalAsset,\n RentalWaiver,\n RentalBooking,\n Price,\n ValidationError,\n WaiverAsset,\n AssetAccessory,\n WaiverState,\n WaiverEntry,\n BillingMode,\n MerchantRentalConfiguration,\n RentalBookingState\n} from '@oysterjs/types';\nimport styled from 'styled-components';\nimport { RentalPageContainer } from './components';\nimport { openAsyncPageInNewTab } from '@oysterjs/core/window';\nimport config from '@oysterjs/core/config';\n\nconst CoveragePriceAmount = styled.span`\n font-weight: 100;\n font-size: 1.2em;\n vertical-align: baseline;\n`;\n\nconst getCurrentTime = (): Date => {\n const date = new Date();\n date.setMinutes(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n\n return date;\n};\n\nconst minimumRentalDuration = (config?: MerchantRentalConfiguration) =>\n config?.Details.AutoRenewWaiver === true ? 7 : 1;\n\nexport const RentalWaiverForm = (props: {\n waiverId?: string;\n onWaiverCreated: (\n booking: RentalBooking,\n waiver: RentalWaiver,\n showConfirmationInDashboard: boolean\n ) => void;\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [priceLoading, setPriceLoading] = React.useState(false);\n const [submitLoading, setSubmitLoading] = React.useState(0);\n const [inputChanged, setInputChanged] = React.useState(false);\n const [showDatePicker, setShowDatePicker] = React.useState(false);\n\n const [rentalConfiguration, setRentalConfiguration] =\n React.useState();\n const [availableAssets, setAvailableAssets] = React.useState([]);\n const [waiver, setWaiver] = React.useState();\n const [booking, setBooking] = React.useState();\n const [startTime, setStartTime] = React.useState(getCurrentTime());\n const [durationInDays, setDurationInDays] = React.useState(1);\n const [waiverPrice, setWaiverPrice] = React.useState({ Currency: 'usd', Amount: 0 });\n const [pricingUpdateIndex, setPricingUpdateIndex] = React.useState(0);\n\n const [error, setError] = React.useState();\n const [validationError, setValidationError] = React.useState();\n const [serialNumberErrors, setSerialNumberErrors] = React.useState<(boolean | undefined)[]>([]);\n\n const fetchData = async () => {\n setLoading(true);\n\n // Fetch rental configuration\n const res = await getMerchantRentalConfiguration();\n const minDurationInDays = res.Configuration ? minimumRentalDuration(res.Configuration) : 1;\n const autoRenewWaiver = !!res.Configuration?.Details.AutoRenewWaiver;\n setRentalConfiguration(res.Configuration);\n\n // Set the initial minimum duration (for renewable waivers, it should be 7 days)\n setDurationInDays(minDurationInDays);\n\n // Fetch assets\n const assets = await getMerchantRentalAssets();\n setAvailableAssets(assets);\n\n let entry: WaiverEntry | undefined;\n if (props.waiverId) {\n entry = await getRentalWaiver(props.waiverId);\n setBooking(entry.Booking);\n setWaiver(entry.Waiver);\n const e = new Date(entry.Booking?.EndTime || '');\n const s = new Date(entry.Booking?.StartTime || '');\n setStartTime(s);\n setDurationInDays(Math.max((e.valueOf() - s.valueOf()) / 86400000, minDurationInDays));\n }\n\n // Fetch booking\n if (!entry || !entry.Booking) {\n const endTime = new Date(startTime);\n endTime.setDate(endTime.getDate() + minDurationInDays);\n setBooking({\n ID: '',\n MerchantID: '',\n State: RentalBookingState.Confirmed,\n StartTime: startTime,\n EndTime: endTime,\n Details: {\n Assets: [assets[0]],\n Accessories: [],\n BookingReference: '',\n Insured: {\n FirstName: '',\n LastName: '',\n Email: ''\n },\n AutoRenew: autoRenewWaiver\n }\n });\n }\n\n // Fetch waiver\n if (!entry || !entry.Waiver) {\n setWaiver({\n ID: '',\n MerchantID: '',\n RentalBookingID: '',\n State: WaiverState.pending,\n Details: {\n BillingMode: BillingMode.Customer,\n Assets: [rentalAssetToWaiverAsset(assets[0])],\n WaiverReferenceNumber: '',\n Premium: {\n Base: 0,\n Total: 0,\n Currency: 'usd',\n MerchantFeeAmount: 0,\n OysterFeeAmount: 0,\n ProcessingFeeAmount: 0\n },\n PremiumRounding: {\n Amount: 0,\n Currency: 'usd'\n }\n }\n });\n }\n\n setLoading(false);\n setPricingUpdateIndex((i) => ++i);\n };\n\n const rentalAssetToWaiverAsset = (rentalAsset: RentalAsset): WaiverAsset => ({\n Asset: rentalAsset,\n Accessories: [],\n Premium: {\n Currency: 'usd',\n Base: 0,\n MerchantFeeAmount: 0,\n OysterFeeAmount: 0,\n ProcessingFeeAmount: 0,\n Total: 0\n }\n });\n\n React.useEffect(() => {\n fetchData();\n }, []);\n\n //================================================================\n // BOOKING, WAIVERS, AND ASSETS LOGIC\n //================================================================\n\n // Create a list of unique asset names\n const assetNames = Object.keys(\n availableAssets.map((a) => a.Name).reduce((acc, curr) => ({ ...acc, [curr]: true }), {})\n );\n\n // For each unique asset name, create a list of all the serial numbers and associated asset IDs\n const assetSerialNumbers = Object.fromEntries(\n assetNames.map((name) => [\n name,\n availableAssets\n .filter((a) => a.Name === name)\n .map((a) => ({ serialNumber: a.Details.SerialNumber, assetId: a.ID }))\n .filter((s) => !!s)\n ])\n );\n\n const onChangeBooking = (block: (booking: RentalBooking) => RentalBooking) => {\n if (booking) {\n setInputChanged(true);\n setBooking({ ...block(booking) });\n } else {\n throw new Error('Booking data change attempted without being initialized');\n }\n };\n\n const onChangeWaiver = (block: (waiver: RentalWaiver) => RentalWaiver) => {\n if (waiver) {\n setInputChanged(true);\n setWaiver({ ...block(waiver) });\n } else {\n throw new Error('Waiver data change attempted without being initialized');\n }\n };\n\n const onAddAsset = () => {\n if (booking) {\n onChangeBooking((currentBooking) => ({\n ...currentBooking,\n Details: {\n ...currentBooking.Details,\n Assets: [...(currentBooking.Details.Assets || []), availableAssets[0]]\n }\n }));\n }\n\n if (waiver) {\n onChangeWaiver((currentWaiver) => ({\n ...currentWaiver,\n Details: {\n ...currentWaiver.Details,\n Assets: [\n ...currentWaiver.Details.Assets,\n {\n Asset: availableAssets[0],\n Accessories: [],\n Premium: {\n Currency: 'usd',\n Base: 0,\n MerchantFeeAmount: 0,\n OysterFeeAmount: 0,\n ProcessingFeeAmount: 0,\n Total: 0\n }\n }\n ]\n }\n }));\n }\n };\n\n const onRemoveAsset = () => {\n clearSerialNumberError(waiver ? waiver.Details.Assets.length - 1 : 0);\n\n if (booking) {\n onChangeBooking((currentBooking) => {\n const updatedAssets = currentBooking.Details.Assets || [];\n updatedAssets.splice(updatedAssets.length - 1, 1);\n return {\n ...currentBooking,\n Details: {\n ...currentBooking.Details,\n Assets: updatedAssets\n }\n };\n });\n\n setPricingUpdateIndex((i) => ++i);\n }\n\n if (waiver) {\n onChangeWaiver((currentWaiver) => {\n const updatedAssets = currentWaiver.Details.Assets;\n updatedAssets.splice(updatedAssets.length - 1, 1);\n return {\n ...currentWaiver,\n Details: {\n ...currentWaiver.Details,\n Assets: updatedAssets\n }\n };\n });\n\n setPricingUpdateIndex((i) => ++i);\n }\n };\n\n //================================================================\n // SERIAL NUMBERS LOGIC\n //================================================================\n\n const setSerialNumberError = (index: number) =>\n setSerialNumberErrors((errors) => {\n const newErrors = [...errors];\n newErrors[index] = true;\n return newErrors;\n });\n\n const clearSerialNumberError = (index: number) =>\n setSerialNumberErrors((errors) => {\n const newErrors = [...errors];\n newErrors[index] = undefined;\n return newErrors;\n });\n\n const selectSerialNumber = (index: number, serialNumber: string, assets: RentalAsset[]) => {\n if (!serialNumber) {\n setSerialNumberError(index);\n return;\n }\n\n const selectedAsset = assets.find((ast) => ast.Details.SerialNumber === serialNumber);\n\n if (!selectedAsset) {\n setSerialNumberError(index);\n return;\n }\n\n onChangeWaiver((currentWaiver) => {\n currentWaiver.Details.Assets[index].Asset = selectedAsset;\n return currentWaiver;\n });\n\n onChangeBooking((currentBooking) => {\n if (currentBooking.Details.Assets) {\n currentBooking.Details.Assets[index] = selectedAsset;\n }\n return currentBooking;\n });\n\n setPricingUpdateIndex((i) => ++i);\n clearSerialNumberError(index);\n };\n\n const handleSelectSerialNumber = (index: number) => (serialNumber: string) =>\n selectSerialNumber(index, serialNumber, availableAssets);\n\n const handleAddSerialNumber = (index: number) => async (serialNumber: string) => {\n if (loading) {\n return;\n }\n\n setLoading(true);\n\n const assetId = waiver?.Details.Assets[index]?.Asset?.ID;\n if (!assetId) {\n throw new Error('Asset not found');\n }\n\n try {\n await addRentalAssetSerialNumber(assetId, serialNumber);\n const assets = await getMerchantRentalAssets();\n\n selectSerialNumber(index, serialNumber, assets);\n setAvailableAssets(assets);\n\n setError(undefined);\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n setError(err.message);\n } finally {\n setLoading(false);\n }\n };\n\n //================================================================\n // ACCESSORIES LOGIC\n //================================================================\n\n const onAddAccessory = (assetIndex: number, accessory: AssetAccessory) => {\n if (waiver) {\n const updatedAsset = {\n ...waiver.Details.Assets[assetIndex]\n };\n updatedAsset.Accessories = [...updatedAsset.Accessories, accessory];\n const updatedAssets = [\n ...waiver.Details.Assets.slice(0, assetIndex),\n updatedAsset,\n ...waiver.Details.Assets.slice(assetIndex + 1, waiver.Details.Assets.length)\n ];\n\n onChangeWaiver((currentWaiver) => {\n return {\n ...currentWaiver,\n Details: {\n ...currentWaiver.Details,\n Assets: updatedAssets\n }\n };\n });\n }\n\n if (booking) {\n onChangeBooking((currentBooking) => {\n return {\n ...currentBooking,\n Details: {\n ...currentBooking.Details,\n Accessories: [...currentBooking.Details.Accessories, accessory]\n }\n };\n });\n }\n\n setPricingUpdateIndex((i) => ++i);\n };\n\n const onRemoveAccessory = (assetIndex: number, accessory: AssetAccessory) => {\n if (waiver) {\n const updatedAsset = {\n ...waiver.Details.Assets[assetIndex]\n };\n const indexToRemove = updatedAsset.Accessories.findIndex(\n (acc) => acc.Name === accessory.Name && acc.Value === accessory.Value\n );\n if (indexToRemove !== -1) {\n updatedAsset.Accessories.splice(indexToRemove, 1);\n const updatedAssets = [\n ...waiver.Details.Assets.slice(0, assetIndex),\n updatedAsset,\n ...waiver.Details.Assets.slice(assetIndex + 1, waiver.Details.Assets.length)\n ];\n\n onChangeWaiver((currentWaiver) => {\n return {\n ...currentWaiver,\n Details: {\n ...currentWaiver.Details,\n Assets: updatedAssets\n }\n };\n });\n }\n }\n\n if (booking) {\n const indexToRemove = booking.Details.Accessories.findIndex(\n (acc) => acc.Name === accessory.Name && acc.Value === accessory.Value\n );\n\n if (indexToRemove !== -1) {\n onChangeBooking((currentBooking) => {\n const updatedAccessories = currentBooking.Details.Accessories;\n updatedAccessories.splice(indexToRemove, 1);\n return {\n ...currentBooking,\n Details: {\n ...currentBooking.Details,\n Accessories: updatedAccessories\n }\n };\n });\n }\n }\n\n setPricingUpdateIndex((i) => ++i);\n };\n\n //================================================================\n // DATE AND TIME LOGIC\n //================================================================\n\n const getStartTimeOptions = () => {\n const options: { value: string; displayValue: string }[] = [];\n for (let i = 0; i < 24; i++) {\n options.push({ value: i.toString(), displayValue: `${i.toString().padStart(2, '0')}:00` });\n }\n\n return options;\n };\n\n const updateBookingTimes = () => {\n if (booking) {\n onChangeBooking((currentBooking) => {\n currentBooking.StartTime = startTime;\n currentBooking.EndTime = new Date(startTime);\n currentBooking.EndTime.setDate(currentBooking.EndTime.getDate() + durationInDays);\n return currentBooking;\n });\n\n setPricingUpdateIndex((i) => ++i);\n }\n };\n\n React.useEffect(() => {\n updateBookingTimes();\n }, [startTime, durationInDays]);\n\n //================================================================\n // PRICING LOGIC\n //================================================================\n // TODO: Maybe we can re-use this somewhere\n function useDebounce(value: T, delay?: number): T {\n const [debouncedValue, setDebouncedValue] = React.useState(value);\n\n React.useEffect(() => {\n const timer = setTimeout(() => setDebouncedValue(value), delay || 500);\n return () => clearTimeout(timer);\n }, [value, delay]);\n\n return debouncedValue;\n }\n\n const debouncedPricingUpdateIndex = useDebounce(pricingUpdateIndex, 500);\n React.useEffect(() => {\n if (booking && waiver) {\n setPriceLoading(true);\n getWaiverPricing(booking, waiver)\n .then((updatedWaiver) => {\n onChangeWaiver(() => updatedWaiver);\n setWaiverPrice({\n Currency: updatedWaiver.Details.Premium.Currency,\n Amount: updatedWaiver.Details.Premium.Total\n });\n })\n .finally(() => setPriceLoading(false));\n }\n }, [!!booking, !!waiver, debouncedPricingUpdateIndex]);\n\n //================================================================\n // CREATE LOGIC\n //================================================================\n\n const onCreateOrUpdateWaiver = (sendEmail: boolean) => {\n if (booking && waiver) {\n let apiFunc = createRentalWaiver;\n if (booking.ID && waiver.ID) {\n apiFunc = updateRentalWaiver;\n }\n\n // Check that selected assets have a serial number and that the\n // serial number matches an available asset.\n let hasSerialNumberError = false;\n for (let i = 0; i < waiver.Details.Assets.length; i++) {\n const serialNumber = waiver.Details.Assets[i].Asset?.Details.SerialNumber;\n const asset = availableAssets.find((ast) => ast.Details.SerialNumber === serialNumber);\n\n if (!serialNumber || !asset) {\n setSerialNumberError(i);\n hasSerialNumberError = true;\n }\n }\n\n if (hasSerialNumberError) {\n return;\n }\n\n setSubmitLoading(sendEmail ? 1 : 2);\n setError(undefined);\n setValidationError(undefined);\n setInputChanged(false);\n const updateHandler = apiFunc(booking, waiver, sendEmail)\n .then((res) => {\n props.onWaiverCreated(res.UpdatedBooking, res.UpdatedWaiver, !sendEmail);\n if (!sendEmail) {\n return (\n config().serviceBaseUrl.getoyster +\n `/rental/waiver/${res.UpdatedWaiver.ID}/confirm?from=partner`\n );\n }\n })\n .catch((e) => {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.validationError) {\n setError('');\n setValidationError(err.getValidationError());\n } else {\n setValidationError(undefined);\n setError(err.message);\n }\n })\n .finally(() => setSubmitLoading(0));\n\n openAsyncPageInNewTab(updateHandler);\n }\n };\n\n return (\n \n {\n e.preventDefault();\n updateBookingTimes();\n }}\n >\n {loading && !booking && !waiver && }\n {booking && waiver && (\n <>\n \n \n \n {\n const value = e.currentTarget.value;\n onChangeBooking((b) => {\n b.Details.Insured.FirstName = value;\n return b;\n });\n }}\n disabled={!!submitLoading}\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangeBooking((b) => {\n b.Details.Insured.LastName = value;\n return b;\n });\n }}\n disabled={!!submitLoading}\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n onChangeBooking((b) => {\n b.Details.Insured.Email = value;\n return b;\n });\n }}\n disabled={!!submitLoading}\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangeBooking((b) => {\n b.Details.Insured.Phone = value;\n return b;\n });\n }}\n disabled={!!submitLoading}\n />\n \n \n\n \n \n \n {\n const value = e.currentTarget.value;\n onChangeBooking((b) => {\n b.Details.BookingReference = value;\n return b;\n });\n }}\n />\n \n \n \n \n setShowDatePicker(true)}\n />\n \n \n {\n const updatedTime = new Date(startTime);\n updatedTime.setHours(newStartHour as number, 0);\n setStartTime(updatedTime);\n }}\n disabled={!!submitLoading}\n />\n \n \n {\n const value = e.currentTarget.value;\n setDurationInDays(Number(value));\n }}\n error={\n !inputChanged &&\n validationError?.Field === 'Duration' &&\n validationError?.Message\n }\n disabled={!!submitLoading}\n />\n \n \n {showDatePicker && (\n \n {\n setShowDatePicker(false);\n date.setHours(\n startTime.getHours(),\n startTime.getMinutes(),\n startTime.getSeconds()\n );\n setStartTime(date);\n }}\n selected={startTime}\n disabled={(day) => {\n const today = new Date(new Date().setHours(0, 0, 0, 0));\n return day.getTime() < today.setDate(today.getDate());\n }}\n />\n \n )}\n\n \n {waiver &&\n waiver.Details.Assets.filter((asset) => !!asset.Asset).map((asset, index) => {\n const getAccessoriesQuantity = (\n list: AssetAccessory[],\n accessory: AssetAccessory\n ): number =>\n list.filter((acc) => acc.Name === accessory.Name && acc.Value === accessory.Value)\n .length;\n\n return (\n
\n \n \n ({ value: name }))}\n defaultValue={asset.Asset!.Name}\n onChange={(value) => {\n const selectedAsset = availableAssets.find((ast) => ast.Name === value);\n if (!selectedAsset) {\n throw new Error('Selected asset not found');\n }\n\n onChangeWaiver((currentWaiver) => {\n currentWaiver.Details.Assets[index].Asset = selectedAsset;\n currentWaiver.Details.Assets[index].Accessories = [];\n\n return currentWaiver;\n });\n\n onChangeBooking((currentBooking) => {\n if (currentBooking.Details.Assets) {\n currentBooking.Details.Assets[index] = selectedAsset;\n }\n currentBooking.Details.Accessories = [];\n\n return currentBooking;\n });\n\n clearSerialNumberError(index);\n setPricingUpdateIndex((i) => ++i);\n }}\n />\n \n \n a.serialNumber)\n .filter((s) => !!s)}\n initialValue={asset.Asset!.Details.SerialNumber}\n error={\n serialNumberErrors[index]\n ? 'Please choose a serial number or enter a new one and click \"add\"'\n : undefined\n }\n onChange={handleSelectSerialNumber(index)}\n onSelectOption={handleSelectSerialNumber(index)}\n onAddOption={handleAddSerialNumber(index)}\n />\n \n \n \n {asset.Asset!.Details.AvailableAccessories?.map((acc) => (\n \n \n {acc.Name}\n
\n onRemoveAccessory(index, acc)}\n >\n -\n \n

{getAccessoriesQuantity(asset.Accessories, acc)}

\n onAddAccessory(index, acc)}\n >\n +\n \n
\n ))}\n
\n
\n );\n })}\n
\n \n \n Remove asset\n \n
\n\n {/* Waiver pricing component */}\n \n
\n {priceLoading && }\n {!priceLoading && (\n \n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: waiverPrice.Currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(waiverPrice.Amount)}\n \n )}\n

\n Due at signing\n

\n
\n\n {/* Actions */}\n \n !!v)}\n loading={submitLoading === 1}\n style={{ marginRight: '10px', flexGrow: 1 }}\n onClick={() => onCreateOrUpdateWaiver(true)}\n >\n Send to customer\n \n !!v)}\n loading={submitLoading === 2}\n style={{ marginLeft: '10px', flexGrow: 1 }}\n onClick={() => onCreateOrUpdateWaiver(false)}\n >\n Sign waiver\n \n \n {error && error}\n \n )}\n \n \n );\n};\n","import { IoArrowForward } from 'react-icons/io5';\nimport { Button, ButtonContainer } from '@oysterjs/ui/Button';\nimport { RentalPageContainer } from './components';\n\nexport const RentalWaiverSentPage = (props: { onClose: () => void }) => (\n \n \"\"\n {props.onClose && (\n \n \n \n )}\n \n);\n","import { PolicyType } from '@oysterjs/types';\nimport config from './config';\n\nconst getStaticFileUrl = (path: string): string =>\n `${config().backendBaseUrl.statics}/${path.replace(/^\\/+/, '')}`;\n\nexport const getSamplePolicyUrl = (type: PolicyType): string => {\n switch (type) {\n case PolicyType.minicoJewelry:\n case PolicyType.chubbJewelry:\n return getStaticFileUrl('/policy/sample/m_jewelry');\n case PolicyType.markelOffroad:\n return getStaticFileUrl('/policy/sample/m_offroad');\n case PolicyType.markelMotorcycle:\n return getStaticFileUrl('/policy/sample/m_motorcycle');\n case PolicyType.markelBike:\n return getStaticFileUrl('/policy/sample/m_bike');\n case PolicyType.worthAveElectronics:\n return getStaticFileUrl('/policy/sample/w_electronics');\n default:\n return getStaticFileUrl(`/policy/sample/${type}`);\n }\n};\n\nexport const getDocumentUrl = (id: string): string => {\n return getStaticFileUrl(`/doc/${id}`);\n};\n\nexport const getPolicyDocumentUrl = (id: string): string => {\n return getStaticFileUrl(`/policy/doc/${id}`);\n};\n\nexport const getRentalDocumentUrl = (id: string): string => {\n return getStaticFileUrl(`/rental/doc/${id}`);\n};\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport {\n cancelBookingRenewal,\n getMerchantRentalConfiguration,\n getRentalBooking,\n getRentalBookingFiles,\n getRentalClaimByWaiverId\n} from '@oysterjs/core/api/merchant';\nimport { Button, ButtonContainer, ButtonLink } from '@oysterjs/ui/Button';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport {\n AttachmentFile,\n DefaultFileRoles,\n Insured,\n MerchantRentalConfiguration,\n RentalBooking,\n RentalClaim,\n RentalClaimState,\n RentalWaiver,\n WaiverState\n} from '@oysterjs/types';\nimport { DetailsContainer, RentalPageContainer } from './components';\nimport { Badge } from '@oysterjs/ui/Badge';\nimport { IoBicycle, IoPerson, IoRefresh } from 'react-icons/io5';\nimport { Table } from '@oysterjs/ui/Table';\nimport { getRentalDocumentUrl } from '@oysterjs/core/statics';\n\nconst InsuredItemContainer = styled.div`\n border-radius: 16px;\n padding: 16px;\n border: 2px dotted #eaeaea;\n transition: all 0.15s ease-in-out;\n display: flex;\n gap: 16px;\n flex: 1 0 0;\n`;\n\nconst InsuredItemDetails = styled.div`\n flex: 1 0 0px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n`;\n\nconst InsuredItemTitle = styled.div`\n gap: 16px;\n display: flex;\n justify-content: space-between;\n font-weight: 500;\n`;\n\nconst InsuredItemContent = styled.div`\n font-size: 0.9em;\n color: #666666;\n`;\n\nexport const RentalDescription = (props: {\n itemName: string;\n serialNumber: string;\n accessories: string[];\n startDate: Date;\n endDate: Date;\n}) => {\n const formattedRentalDate = () => {\n const f = new Intl.DateTimeFormat(undefined, {\n year: '2-digit',\n month: '2-digit',\n day: '2-digit'\n });\n\n return `${f.format(props.startDate)} - ${f.format(props.endDate)}`;\n };\n\n return (\n \n
\n \n
\n \n \n
{props.itemName}
\n
\n \n
{props.serialNumber}
\n {props.accessories.length > 0 &&
{props.accessories.join(', ')}
}\n
{formattedRentalDate()}
\n
\n
\n
\n );\n};\n\nexport const InsuredDescription = (props: { insured: Insured }) => (\n \n
\n \n
\n \n \n
\n {props.insured.FirstName} {props.insured.LastName}\n
\n
\n \n
{props.insured.Email}
\n {props.insured.AddressCity &&\n props.insured.AddressState &&\n props.insured.AddressZipCode && (\n
\n {props.insured.AddressCity.trim()}, {props.insured.AddressState.trim()}{' '}\n {props.insured.AddressZipCode.trim()}\n
\n )}\n {!props.insured.AddressCity && props.insured.Phone &&
{props.insured.Phone}
}\n
\n
\n
\n);\n\nexport const RenewalDescription = (props: {\n waiver?: RentalWaiver;\n booking: RentalBooking;\n showRenewalPeriod?: boolean;\n}) => {\n const f = new Intl.DateTimeFormat(undefined, {\n year: '2-digit',\n month: '2-digit',\n day: '2-digit'\n });\n\n return (\n \n
\n \n
\n \n \n
{props.waiver ? 'Booking and Waiver Renewal' : 'Booking Renewal'}
\n
\n \n {props.booking.Details.AutoRenew && !props.showRenewalPeriod && (\n <>Will renew on {`${f.format(new Date(props.booking.EndTime))}`}\n )}\n {props.booking.Details.AutoRenew && props.showRenewalPeriod && (\n <>\n Will renew every{' '}\n {`${\n (new Date(props.booking.EndTime).valueOf() -\n new Date(props.booking.StartTime).valueOf()) /\n 86400000\n }`}{' '}\n days\n \n )}\n {!props.booking.Details.AutoRenew && <>Renewal canceled}\n \n
\n
\n );\n};\n\nexport const RentalBookingDetailsPage = (props: {\n bookingId: string;\n onCreateWaiver: (booking: RentalBooking) => void;\n onViewWaiver: (waiver: RentalWaiver) => void;\n onFileClaim: (waiver: RentalWaiver) => void;\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [rentalConfig, setRentalConfig] = React.useState();\n const [waiver, setWaiver] = React.useState();\n const [booking, setBooking] = React.useState();\n const [claim, setClaim] = React.useState();\n const [files, setFiles] = React.useState(null);\n\n const onFetchData = async () => {\n if (!props.bookingId) {\n return;\n }\n\n // If we're refreshing, avoid loading flash by suppressing the loader\n if (!booking) {\n setLoading(true);\n }\n\n const entry = await getRentalBooking(props.bookingId);\n if (!entry.Booking) {\n throw new Error(`Booking ${props.bookingId} does not exist`);\n }\n setBooking(entry.Booking);\n setWaiver(entry.Waiver);\n\n const config = await getMerchantRentalConfiguration();\n setRentalConfig(config.Configuration);\n\n // Get claim if waiver exists\n if (entry.Waiver) {\n const res = await getRentalClaimByWaiverId(entry.Waiver?.ID);\n setClaim(res.Claim);\n }\n\n // Get documents/files if booking exists\n if (entry.Booking) {\n const res = await getRentalBookingFiles(entry.Booking?.ID);\n setFiles(res);\n }\n\n setLoading(false);\n };\n\n const onCancelRenewal = async () => {\n setLoading(true);\n const updatedBooking = await cancelBookingRenewal(props.bookingId);\n if (updatedBooking) {\n setBooking(updatedBooking);\n }\n setLoading(false);\n };\n\n React.useEffect(() => {\n onFetchData();\n }, [props.bookingId]);\n\n React.useEffect(() => {\n window.addEventListener('focus', onFetchData);\n return () => window.removeEventListener('focus', onFetchData);\n });\n\n const getCompactRentedAssets = (b: RentalBooking): string => {\n if (!b.Details.Assets?.length) {\n return '';\n }\n\n return (\n b.Details.Assets[0].Name +\n (b.Details.Assets.length > 1 ? ` and ${b.Details.Assets.length - 1} other(s)` : '')\n );\n };\n\n const getWaiverStatus = (b?: RentalBooking, w?: RentalWaiver) => {\n if (!b) {\n return ;\n }\n\n if (!w || w.State == WaiverState.unknown) {\n return ;\n }\n\n switch (w.State) {\n case WaiverState.pending:\n return ;\n case WaiverState.canceled:\n return ;\n case WaiverState.active:\n case WaiverState.expired:\n return ;\n default:\n return ;\n }\n };\n\n const getClaimStatus = (c?: RentalClaim) => {\n switch (c?.State) {\n case RentalClaimState.requires_information:\n return 'Please provide all required information and submit the claim.';\n case RentalClaimState.logged:\n case RentalClaimState.submitted:\n return 'Claim has been submitted. We will process your information and notify you of any updates.';\n case RentalClaimState.approved:\n return 'Claim has been approved.';\n case RentalClaimState.denied:\n return 'Claim has been denied. Please contact us if you need any support.';\n default:\n return undefined;\n }\n };\n\n const getFileNameForRentalFiles = (file: AttachmentFile): string => {\n switch (file.Attachment?.Role) {\n case DefaultFileRoles.signedRentalAgreement:\n return 'Signed Rental Agreement';\n case DefaultFileRoles.waiverLDWDocument:\n return 'Loss Damage Waiver';\n default:\n return 'Other';\n }\n return '';\n };\n\n return (\n \n {loading && }\n {!loading && booking && (\n <>\n \n \n {rentalConfig?.Details.AutoRenewWaiver &&\n waiver &&\n waiver.State === WaiverState.active && (\n \n )}\n {booking.Details.Assets?.map((asset) => (\n a.Name)}\n startDate={new Date(booking.StartTime)}\n endDate={new Date(booking.EndTime)}\n />\n ))}\n {booking.Details.BookingLineItems?.map((asset) => (\n a.Name)}\n startDate={new Date(booking.StartTime)}\n endDate={new Date(booking.EndTime)}\n />\n ))}\n \n\n \n {booking &&\n waiver &&\n rentalConfig?.Details.AutoRenewWaiver &&\n booking.Details.AutoRenew &&\n waiver &&\n waiver.State === WaiverState.active && (\n \n )}\n {(!waiver || waiver.State === WaiverState.unknown) && (\n \n )}\n {waiver && waiver.State === WaiverState.pending && (\n \n )}\n {waiver &&\n (waiver.State === WaiverState.active || waiver.State === WaiverState.expired) && (\n <>\n

{getClaimStatus(claim)}

\n {(!claim ||\n claim.State === RentalClaimState.unknown ||\n claim.State === RentalClaimState.requires_information) && (\n \n )}\n \n )}\n
\n\n {files && files.length > 0 && (\n \n \n \n \n \n \n \n \n {files.map((a) => (\n \n \n \n \n ))}\n \n
Booking documents and files
{getFileNameForRentalFiles(a)}\n \n View\n \n
\n )}\n \n )}\n \n );\n};\n","import styled from 'styled-components';\nimport { useId } from 'react-id-generator';\n\nconst CheckboxContainer = styled.div<{ disabled?: boolean; checked?: boolean }>`\n .checkbox-symbol {\n pointer-events: none;\n user-select: none;\n }\n\n .checkbox-container {\n box-sizing: border-box;\n background: #ffffff;\n }\n\n .checkbox-container * {\n box-sizing: border-box;\n }\n\n .checkbox-input {\n position: absolute;\n visibility: hidden;\n }\n\n .checkbox {\n user-select: none;\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n overflow: hidden;\n transition: all 0.15s ease;\n display: flex;\n }\n\n .checkbox span {\n vertical-align: middle;\n transform: translate3d(0, 0, 0);\n position: relative;\n margin-top: 2px;\n width: 16px;\n height: 16px;\n border-radius: 3px;\n transform: scale(1);\n border: 1px solid #cccfdb;\n transition: all 0.15s ease;\n background: ${(props) => (props.disabled ? '#ffffff' : props.checked ? '#0EA5E9' : 'white')};\n opacity: ${(props) => (props.disabled ? '0.3' : '1.0')};\n }\n\n .checkbox span svg {\n position: absolute;\n top: 3px;\n left: 2px;\n fill: none;\n stroke: #fff;\n stroke-dasharray: 16px;\n stroke-dashoffset: 16px;\n transition: all 0.15s ease;\n transform: translate3d(0, 0, 0);\n }\n\n .checkbox-input:checked + .checkbox span {\n background: #0ea5e9;\n border-color: #0ea5e9;\n animation: zoom-in-out 0.15s ease;\n }\n\n .checkbox-input:checked + .checkbox span svg {\n stroke-dashoffset: 0;\n }\n\n @keyframes zoom-in-out {\n 50% {\n transform: scale(0.9);\n }\n }\n`;\n\nexport interface CheckboxProps {\n label?: string;\n checked?: boolean;\n disabled?: boolean;\n onChange?: () => void;\n}\n\nexport const Checkbox = (props: CheckboxProps): JSX.Element => {\n const [id] = useId();\n return (\n \n
\n \n \n
\n
\n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { ValidationError } from '@oysterjs/types';\n\nimport { AutocompleteTextInput, TextInput } from './text';\nimport { getLocationSuggestions, getMapURL, MAPBOX_PUBLIC_KEY } from '@oysterjs/core/mapbox';\nimport { FormColumn, FormRow } from './builder';\nimport { AddressAutofill } from '@mapbox/search-js-react';\nimport config from '@oysterjs/core/config';\n\nconst ErrorDisplay = styled.div`\n font-size: 0.8em;\n margin-top: 5px;\n color: #d1344b;\n`;\n\ninterface AddressInputProps {\n id: string;\n\n onChange: (address: string, longitude: number, latitude: number) => void;\n disabled?: boolean;\n\n initialAddress?: [string, number, number];\n validationError?: ValidationError;\n}\n\nexport const AddressInput: React.FunctionComponent> = (\n props\n) => {\n const [state, setState] = React.useState<[string, number, number]>(\n props.initialAddress || ['', 0, 0]\n );\n const [suggestions, setSuggestions] = React.useState<\n {\n address: string;\n coordinates: [number, number];\n }[]\n >([]);\n const [validationError, setValidationError] = React.useState(props.validationError);\n\n React.useEffect(() => {\n setValidationError(props.validationError);\n }, [props.validationError]);\n\n const setData = (address: string, longitude: number, latitude: number) => {\n setState([address, longitude, latitude]);\n props.onChange(address, longitude, latitude);\n };\n\n return (\n <>\n s.address)}\n error={!!validationError}\n value={state[0]}\n onChange={(value) => {\n setData(value, 0, 0);\n setValidationError(undefined);\n getLocationSuggestions(value).then(setSuggestions);\n }}\n onSelectSuggestion={(suggestion, index) => {\n setData(suggestion, suggestions[index].coordinates[0], suggestions[index].coordinates[1]);\n setValidationError(undefined);\n }}\n disabled={props.disabled}\n />\n {validationError && {validationError?.Message}}\n {state[1] !== 0 && state[2] !== 0 && (\n \n )}\n \n );\n};\n\ninterface Address {\n businessName?: string;\n streetAddress?: string;\n streetAddressLine2?: string;\n aptFloor?: string;\n aptUnit?: string;\n city?: string;\n state?: string;\n zipCode?: string;\n}\n\ninterface AddressInputFormProps {\n showBusinessName?: boolean;\n showSecondLine?: boolean;\n singleSecondLine?: boolean;\n initialValue?: Address;\n validationError?: Partial>;\n onChange: (address: Address) => void;\n disabled?: boolean;\n}\n\nconst ConditionalWrapper = ({ condition, wrap, children }) =>\n condition ? wrap(children) : children;\n\nexport const AddressInputForm: React.FunctionComponent<\n React.PropsWithChildren\n> = (props) => {\n const [state, setState] = React.useState
(\n props.initialValue || {\n businessName: '',\n streetAddress: '',\n streetAddressLine2: '',\n aptFloor: '',\n aptUnit: '',\n city: '',\n state: '',\n zipCode: ''\n }\n );\n\n const onChange = (fn: (prev: Address) => Address) =>\n setState((prev) => {\n const next = fn(prev);\n props.onChange(next);\n return next;\n });\n\n return (\n <>\n {props.showBusinessName && (\n \n \n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, businessName: value }));\n }}\n autoComplete=\"organization\"\n />\n \n \n )}\n \n \n (\n {child}\n )}\n >\n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, streetAddress: value }));\n }}\n autoComplete=\"address-line1\"\n />\n \n \n \n {props.showSecondLine && props.singleSecondLine && (\n \n \n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, streetAddressLine2: value }));\n }}\n autoComplete=\"address-line2\"\n />\n \n \n )}\n {props.showSecondLine && !props.singleSecondLine && (\n \n \n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, aptFloor: value }));\n }}\n />\n \n \n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, aptUnit: value }));\n }}\n />\n \n \n )}\n \n \n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, city: value }));\n }}\n autoComplete=\"address-level2\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, state: value }));\n }}\n autoComplete=\"address-level1\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, zipCode: value }));\n }}\n inputMode=\"numeric\"\n autoComplete=\"postal-code\"\n />\n \n \n \n );\n};\n","import styled from 'styled-components';\nimport { IoArrowForward } from 'react-icons/io5';\nimport { Button, ButtonContainer } from '@oysterjs/ui/Button';\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\n\nexport const RequirementItem = (props: { name: string; description: string }): JSX.Element => (\n \n \n \n \n \n {props.name}\n {props.description}\n \n \n);\n\nexport const RequirementPage = ({\n items,\n onNext\n}: {\n items: Array<{ name: string; description: string }>;\n onNext: () => void;\n}): JSX.Element => (\n <>\n {items.map((item) => (\n \n ))}\n \n \n \n \n);\n\nexport const RequirementItemContainer = styled.div`\n padding: 16px 0px;\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n`;\n\nexport const RequirementCheckboxContainer = styled.div`\n width: 30px;\n`;\n\nexport const RequirementContentContainer = styled.div`\n width: calc(100% - 30px);\n`;\n\nexport const RequirementDescription = styled.div<{ marginTop?: string }>`\n color: #999999;\n font-size: 0.9em;\n margin-top: ${(props) => (props.marginTop ? props.marginTop : '5px')};\n`;\n\nexport const RequirementTitle = styled.div`\n font-weight: 500;\n`;\n\nexport const RequirementError = styled.div`\n font-size: 0.8em;\n margin-top: 10px;\n color: #d1344b;\n`;\n","import styled from 'styled-components';\n\nimport { IoAttachOutline, IoClose } from 'react-icons/io5';\n\nconst AttachmentLozengeContainer = styled.div<{ uploading?: boolean }>`\n opacity: ${(props) => (props.uploading ? 0.5 : 1.0)};\n pointer-events: ${(props) => (props.uploading ? 'none' : 'auto')};\n transition: all 0.15s ease-in-out;\n\n font-size: 0.8em;\n padding: 5px 10px;\n background: #eaeaea;\n border-radius: 30px;\n color: #333333;\n\n * {\n vertical-align: middle;\n }\n\n .close-icon {\n color: #666666;\n cursor: pointer;\n\n &:hover {\n color: #000000;\n }\n }\n`;\n\nconst formatSize = (size: number) => {\n if (size < 1024) {\n return `${size}B`;\n }\n if (size < 1024 * 1024) {\n return `${Math.round(size / 1024)}KB`;\n }\n if (size < 1024 * 1024 * 1024) {\n return `${Math.round(size / (1024 * 1024))}MB`;\n }\n return 'big';\n};\n\nexport const AttachmentLozenge = (props: {\n name: string;\n url?: string;\n size?: number;\n uploading?: boolean;\n onRemove?: () => void;\n}): JSX.Element => {\n return (\n e.stopPropagation()}\n >\n \n {props.name}\n {props.size != undefined && props.size > 0 && (\n <>\n {' '}({formatSize(props.size)})\n \n )}\n {props.onRemove && (\n {\n e.stopPropagation();\n if (props.onRemove) {\n props.onRemove();\n }\n }}\n />\n )}\n \n );\n};\n","import React from 'react';\nimport { IoCheckmarkCircle, IoEllipseOutline } from 'react-icons/io5';\nimport { AttachmentFile, ValidationError } from '@oysterjs/types';\nimport styled from 'styled-components';\nimport { ErrorDisplay } from '../Form/text';\nimport { Spinner } from '../Spinner';\nimport { AttachmentLozenge } from './lozenge';\n\nconst AttachmentContainer = styled.div<{ enabled?: boolean; error?: boolean; dragging?: boolean }>`\n box-shadow: ${(props) =>\n props.error ? '0 0 0 2px #d1344b' : props.enabled ? '0 0 0 0px #C8C8C8' : '0 0 0 2px #0ea5e9'};\n border: ${(props) =>\n props.error || !props.enabled ? '1px solid transparent' : '1px dashed #C8C8C8'};\n border-radius: 8px;\n transition: 0.15s all ease-in-out;\n padding: 16px;\n box-sizing: border-box;\n background: ${(props) => (props.dragging ? '#e2e2e2' : 'white')};\n\n display: flex;\n flex-direction: row;\n margin: 0px;\n cursor: pointer;\n\n * {\n pointer-events: none;\n }\n`;\n\nconst AttachmentCheckboxContainer = styled.div`\n width: 30px;\n`;\n\nconst AttachmentContentContainer = styled.div`\n width: calc(100% - 30px);\n`;\n\nconst AttachmentDescription = styled.div`\n color: #999999;\n font-size: 0.9em;\n margin-top: 5px;\n`;\n\nconst AttachmentContent = styled.div`\n font-size: 0.9em;\n margin-top: 5px;\n padding: 10px 0px 5px 0px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 5px;\n\n * {\n pointer-events: auto;\n }\n`;\n\nconst AttachmentHeaderContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n font-weight: 500;\n`;\n\nconst ChildrenContainer = styled.div`\n margin-top: 10px;\n`;\n\nconst getFilesFromEvent = (dataTransfer?: DataTransfer): File[] => {\n const files: File[] = [];\n\n if (dataTransfer && dataTransfer.items) {\n // Use DataTransferItemList interface to access the file(s)\n for (let i = 0; i < dataTransfer.items.length; i++) {\n // If dropped items aren't files, reject them\n if (dataTransfer.items[i].kind === 'file') {\n const file = dataTransfer.items[i].getAsFile();\n if (file) {\n files.push(file);\n }\n }\n }\n } else if (dataTransfer && dataTransfer.files) {\n // Use DataTransfer interface to access the file(s)\n for (let i = 0; i < dataTransfer.files.length || 0; i++) {\n const file = dataTransfer.files[i];\n if (file) {\n files.push(file);\n }\n }\n }\n\n return files;\n};\n\nexport interface AttachmentUploaderProps {\n title?: string;\n description?: string;\n multiple?: boolean;\n allowDeleteExisting?: boolean;\n attachments: AttachmentFile[];\n onAttachmentsAdded: (files: File[]) => Promise;\n onAttachmentRemoved?: (index: number, attachment?: AttachmentFile, file?: File) => Promise;\n validationError?: ValidationError;\n}\n\nexport const AttachmentUploader: React.FunctionComponent<\n React.PropsWithChildren\n> = (props) => {\n const [loading, setLoading] = React.useState(false);\n const [dragging, setDragging] = React.useState(false);\n\n const attachRef = React.useRef(null);\n\n const [validationError, setValidationError] = React.useState();\n const [existingAttachmentsList, setExistingAttachmentsList] = React.useState(\n []\n );\n const [newAttachmentsList, setNewAttachmentsList] = React.useState([]);\n\n React.useEffect(() => {\n setValidationError(props.validationError);\n }, [props.validationError]);\n\n React.useEffect(() => {\n // Set existing attachments\n setExistingAttachmentsList(props.attachments);\n\n // Remove new attachments that has the same name as existing attachments\n // This is for the case where we've uploaded the file and backend updates the list of attachments\n setNewAttachmentsList((prev) =>\n prev.filter(\n (newAttachment) =>\n props.attachments.findIndex(\n (uploadedAttachment) => uploadedAttachment.Name === newAttachment.name\n ) === -1\n )\n );\n }, [props]);\n\n const addFiles = (files: File[]) => {\n setValidationError(undefined);\n setNewAttachmentsList((prev) => [...prev, ...files]);\n setLoading(true);\n\n // Call the attachment added callback, remove new files if the call fails\n props\n .onAttachmentsAdded(files)\n .catch(() => {\n setNewAttachmentsList((prev) =>\n prev.filter((newAttachment) => files.indexOf(newAttachment) === -1)\n );\n })\n .finally(() => setLoading(false));\n };\n\n const onDragEnter = (e: { dataTransfer?: DataTransfer; preventDefault: () => void }) => {\n e.preventDefault();\n setDragging(true);\n };\n\n const onDragLeave = (e: { dataTransfer?: DataTransfer; preventDefault: () => void }) => {\n e.preventDefault();\n setDragging(false);\n };\n\n const onDragOver = (e: { dataTransfer?: DataTransfer; preventDefault: () => void }) => {\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'copy';\n }\n };\n\n const onDrop = (e: { dataTransfer?: DataTransfer; preventDefault: () => void }) => {\n e.preventDefault();\n setDragging(false);\n\n const files = getFilesFromEvent(e.dataTransfer);\n if (files.length > 0) {\n addFiles(files);\n }\n };\n\n return (\n
\n addFiles(Array.from(e.currentTarget?.files || []))}\n />\n attachRef?.current?.click()}\n >\n \n {!loading && newAttachmentsList.length + props.attachments.length === 0 && (\n \n )}\n {!loading && newAttachmentsList.length + props.attachments.length > 0 && (\n \n )}\n {loading && }\n \n \n {props.title && {props.title}}\n {props.description && {props.description}}\n {existingAttachmentsList.length + newAttachmentsList.length > 0 && (\n \n {existingAttachmentsList.map((attachment, index) => (\n {\n setLoading(true);\n if (props.onAttachmentRemoved) {\n props\n .onAttachmentRemoved(index, attachment, undefined)\n .then(() => setLoading(false));\n }\n }\n : undefined\n }\n />\n ))}\n {newAttachmentsList.map((file, index) => (\n {\n setLoading(true);\n if (props.onAttachmentRemoved) {\n props\n .onAttachmentRemoved(\n existingAttachmentsList.length + index,\n undefined,\n file\n )\n .then(() => {\n setNewAttachmentsList((prev) => {\n const newIndex = prev.indexOf(file);\n if (newIndex >= 0) {\n prev.splice(newIndex, 1);\n }\n return prev;\n });\n setLoading(false);\n });\n }\n }\n : undefined\n }\n />\n ))}\n \n )}\n {props.children && {props.children}}\n {validationError && (\n {validationError.Message}\n )}\n \n \n
\n );\n};\n","import React from 'react';\nimport { RentalPageContainer } from './components';\nimport { FormContainer, FormRowHeader, FormRow, FormColumn } from '@oysterjs/ui/Form/builder';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport {\n AssetAccessory,\n AttachmentFile,\n DefaultFileRoles,\n RentalAsset,\n RentalBooking,\n RentalClaim,\n RentalClaimState,\n RentalDamageType,\n ValidationError,\n WaiverEntry\n} from '@oysterjs/types';\nimport {\n getMerchantRentalAssets,\n getRentalClaimByWaiverId,\n createRentalClaim,\n uploadClaimAttachments,\n getRentalClaim,\n updateRentalClaim\n} from '@oysterjs/core/api/merchant';\nimport { WrappedError, ErrorType } from '@oysterjs/core/errors';\nimport { Select } from '@oysterjs/ui/Form/select';\nimport { ErrorDisplay, TextAreaInput, TextInput } from '@oysterjs/ui/Form/text';\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\nimport { AddressInputForm } from '@oysterjs/ui/Form/address';\nimport {\n RequirementItemContainer,\n RequirementCheckboxContainer,\n RequirementContentContainer,\n RequirementTitle,\n RequirementDescription\n} from '@oysterjs/ui/common';\nimport { AttachmentUploader } from '@oysterjs/ui/Attachment';\nimport { Button } from '@oysterjs/ui/Button';\nimport { DatePicker } from '@oysterjs/ui/Form/datepicker';\n\nconst getCurrentTime = (): Date => {\n const date = new Date();\n date.setMinutes(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n\n return date;\n};\n\nexport const RentalClaimForm = (props: {\n waiverId: string;\n claimId: string;\n onClaimSubmitted: (claim: RentalClaim, booking?: RentalBooking) => void;\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [submitLoading, setSubmitLoading] = React.useState(false);\n const [booking, setBooking] = React.useState();\n const [claim, setClaim] = React.useState();\n const [availableAssets, setAvailableAssets] = React.useState([]);\n const [attachments, setAttachments] = React.useState([]);\n const [filesToUpload, setFilesToUpload] = React.useState([]);\n\n const [incidentDate, setIncidentDate] = React.useState(getCurrentTime());\n const [showDatePicker, setShowDatePicker] = React.useState(false);\n\n const [error, setError] = React.useState();\n const [inputChanged, setInputChanged] = React.useState(false);\n const [validationError, setValidationError] = React.useState();\n\n const fetchData = async () => {\n if (!props.waiverId) {\n return;\n }\n\n try {\n setLoading(true);\n let res: { Entry: WaiverEntry; Claim?: RentalClaim; Attachments: AttachmentFile[] };\n if (props.waiverId) {\n res = await getRentalClaimByWaiverId(props.waiverId);\n } else if (props.claimId) {\n res = await getRentalClaim(props.claimId);\n } else {\n throw new Error(`No claim ID or waiver ID provided.`);\n }\n setBooking(res.Entry.Booking);\n setAttachments(res.Attachments || []);\n\n let claim: RentalClaim | undefined = res.Claim;\n if (!claim) {\n claim = {\n ID: '',\n MerchantID: '',\n RentalWaiverID: res.Entry.Waiver?.ID || '',\n State: RentalClaimState.requires_information,\n Details: {\n Assets: res.Entry.Waiver?.Details.Assets || [],\n ClaimNumber: '',\n DamageType: RentalDamageType.unknown,\n IncidentDate: new Date(),\n IncidentCause: '',\n IncidentAddress: {}\n }\n };\n }\n setClaim(claim);\n\n const assets = await getMerchantRentalAssets();\n setAvailableAssets(assets);\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.validationError) {\n setValidationError(err.getValidationError());\n } else {\n setValidationError(undefined);\n throw e;\n }\n } finally {\n setLoading(false);\n }\n };\n\n React.useEffect(() => {\n fetchData();\n }, [props.waiverId]);\n\n const onChangeClaim = (block: (claim: RentalClaim) => RentalClaim) => {\n setInputChanged(true);\n setClaim((prev) => {\n if (!prev) {\n throw new Error(`Updating claim without being initialized`);\n }\n\n return { ...block(prev) };\n });\n };\n\n const onAttachmentsAdded = (addedFiles) => {\n if (validationError?.Field == 'Attachment') {\n setValidationError(undefined);\n }\n\n setFilesToUpload((prev) => [...prev, ...addedFiles]);\n return Promise.resolve();\n };\n\n const onAttachmentRemoved = (index) => {\n if (validationError?.Field == 'Attachment') {\n setValidationError(undefined);\n }\n\n setFilesToUpload([\n ...filesToUpload.slice(0, index),\n ...filesToUpload.slice(index + 1, filesToUpload.length)\n ]);\n return Promise.resolve();\n };\n\n const getDamageTypeOptions = () => {\n return Object.values(RentalDamageType).map((d) => ({ value: d, displayValue: d }));\n };\n\n //================================================================\n // ASSETS LOGIC\n //================================================================\n\n const onAddAsset = () => {\n if (claim) {\n onChangeClaim((currentClaim) => ({\n ...currentClaim,\n Details: {\n ...currentClaim.Details,\n Assets: [\n ...currentClaim.Details.Assets,\n {\n Asset: availableAssets[0],\n Accessories: [],\n Premium: {\n Currency: 'usd',\n Base: 0,\n MerchantFeeAmount: 0,\n OysterFeeAmount: 0,\n ProcessingFeeAmount: 0,\n Total: 0\n }\n }\n ]\n }\n }));\n }\n };\n\n const onRemoveAsset = () => {\n if (claim) {\n onChangeClaim((currentClaim) => {\n const updatedAssets = currentClaim.Details.Assets;\n updatedAssets.splice(updatedAssets.length - 1, 1);\n return {\n ...currentClaim,\n Details: {\n ...currentClaim.Details,\n Assets: updatedAssets\n }\n };\n });\n }\n };\n\n const onAddAccessory = (assetIndex: number, accessory: AssetAccessory) => {\n if (claim) {\n const updatedAsset = {\n ...claim.Details.Assets[assetIndex]\n };\n updatedAsset.Accessories = [...updatedAsset.Accessories, accessory];\n const updatedAssets = [\n ...claim.Details.Assets.slice(0, assetIndex),\n updatedAsset,\n ...claim.Details.Assets.slice(assetIndex + 1, claim.Details.Assets.length)\n ];\n\n onChangeClaim((currentClaim) => {\n return {\n ...currentClaim,\n Details: {\n ...currentClaim.Details,\n Assets: updatedAssets\n }\n };\n });\n }\n };\n\n const onRemoveAccessory = (assetIndex: number, accessory: AssetAccessory) => {\n if (claim) {\n const updatedAsset = {\n ...claim.Details.Assets[assetIndex]\n };\n const indexToRemove = updatedAsset.Accessories.findIndex(\n (acc) => acc.Name === accessory.Name && acc.Value === accessory.Value\n );\n if (indexToRemove !== -1) {\n updatedAsset.Accessories.splice(indexToRemove, 1);\n const updatedAssets = [\n ...claim.Details.Assets.slice(0, assetIndex),\n updatedAsset,\n ...claim.Details.Assets.slice(assetIndex + 1, claim.Details.Assets.length)\n ];\n\n onChangeClaim((currentClaim) => {\n return {\n ...currentClaim,\n Details: {\n ...currentClaim.Details,\n Assets: updatedAssets\n }\n };\n });\n }\n }\n };\n\n //================================================================\n // SUBMISSION LOGIC\n //================================================================\n\n const onSubmitClaim = async () => {\n if (claim) {\n try {\n setSubmitLoading(true);\n setError(undefined);\n setValidationError(undefined);\n setInputChanged(false);\n\n const claimToSubmit = {\n ...claim,\n Details: {\n ...claim.Details,\n IncidentDate: incidentDate\n }\n };\n\n // Submit the claim\n let updatedClaim: RentalClaim;\n if (claim.ID || props.claimId) {\n updatedClaim = await updateRentalClaim(props.claimId, claimToSubmit);\n } else {\n updatedClaim = await createRentalClaim(claimToSubmit);\n }\n\n // Set the created claim as state claim in case there are\n // any further API errors.\n if (updatedClaim) {\n setClaim(updatedClaim);\n }\n\n // Upload the files\n if (filesToUpload.length > 0) {\n const updatedFiles = await uploadClaimAttachments(\n updatedClaim.ID,\n DefaultFileRoles.waiverClaimAttachment,\n filesToUpload\n );\n\n setAttachments(updatedFiles);\n setFilesToUpload([]);\n }\n\n props.onClaimSubmitted(updatedClaim, booking);\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.validationError) {\n setError('');\n setValidationError(err.getValidationError());\n } else {\n setValidationError(undefined);\n setError(err.message);\n }\n } finally {\n setSubmitLoading(false);\n }\n } else {\n throw new Error('Invalid claim state');\n }\n };\n\n return (\n \n {\n e.preventDefault();\n }}\n >\n {loading && }\n {claim && (\n <>\n \n {claim.Details.Assets.filter((asset) => !!asset.Asset).map((asset, index) => {\n const getDisplayName = (ast: RentalAsset): string =>\n `${ast.Name}${ast.Details.SerialNumber ? ` [${ast.Details.SerialNumber}]` : ''}`;\n\n const getAccessoriesQuantity = (\n list: AssetAccessory[],\n accessory: AssetAccessory\n ): number =>\n list.filter((acc) => acc.Name === accessory.Name && acc.Value === accessory.Value)\n .length;\n\n return (\n
\n \n \n {\n return {\n displayValue: getDisplayName(propsAsset),\n value: propsAsset.ID\n };\n })}\n value={asset.Asset!.ID}\n onChange={(value) => {\n const selectedAsset = availableAssets.find((ast) => ast.ID === value);\n if (!selectedAsset) {\n throw new Error('Selected asset not found');\n }\n\n onChangeClaim((currentClaim) => {\n currentClaim.Details.Assets[index].Asset = selectedAsset;\n currentClaim.Details.Assets[index].Accessories = [];\n\n return currentClaim;\n });\n }}\n />\n \n \n \n {asset.Asset!.Details.AvailableAccessories.map((acc) => (\n \n \n {acc.Name}\n
\n onRemoveAccessory(index, acc)}\n >\n -\n \n

{getAccessoriesQuantity(asset.Accessories, acc)}

\n onAddAccessory(index, acc)}\n >\n +\n \n
\n ))}\n
\n
\n );\n })}\n
\n \n \n Remove asset\n \n
\n \n \n \n setShowDatePicker(true)}\n />\n \n \n {showDatePicker && (\n \n {\n setShowDatePicker(false);\n date.setHours(\n incidentDate.getHours(),\n incidentDate.getMinutes(),\n incidentDate.getSeconds()\n );\n setIncidentDate(date);\n }}\n selected={incidentDate}\n disabled={(day) => {\n const today = new Date(new Date().setHours(0, 0, 0, 0));\n return day.getTime() < today.setDate(today.getDate());\n }}\n />\n \n )}\n\n \n \n \n onChangeClaim((c) => {\n c.Details.DamageType = v;\n return c;\n })\n }\n />\n \n \n\n {!inputChanged &&\n validationError?.Field === 'DamageType' &&\n validationError?.Message && {validationError?.Message}}\n\n {(claim.Details.DamageType === RentalDamageType.fire ||\n claim.Details.DamageType === RentalDamageType.theft ||\n claim.Details.DamageType === RentalDamageType.accident) && (\n <>\n {(claim.Details.DamageType === RentalDamageType.theft ||\n claim.Details.DamageType === RentalDamageType.accident) && (\n <>\n \n \n \n onChangeClaim((c) => {\n c.Details.PoliceReportFiled = !c.Details.PoliceReportFiled;\n return c;\n })\n }\n />\n \n \n Police report filed\n \n Check this box if a police report has been completed and filed.\n \n \n \n \n )}\n {(claim.Details.DamageType === RentalDamageType.fire ||\n !!claim.Details.PoliceReportFiled) && (\n <>\n \n \n {\n const value = e.currentTarget.value;\n onChangeClaim((c) => {\n c.Details.NameOfEmergencyDepartment = value;\n return c;\n });\n }}\n disabled={!!submitLoading}\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n onChangeClaim((c) => {\n c.Details.ReportOrIncidentNumber = value;\n return c;\n });\n }}\n disabled={!!submitLoading}\n />\n \n \n \n )}\n \n )}\n {claim.Details.DamageType === RentalDamageType.water && (\n <>\n \n \n {\n const value = e.currentTarget.value;\n onChangeClaim((c) => {\n c.Details.SourceOfWaterDamage = value;\n return c;\n });\n }}\n disabled={!!submitLoading}\n error={\n !inputChanged &&\n validationError?.Field === 'SourceOfWaterDamage' &&\n validationError?.Message\n }\n />\n \n \n \n )}\n \n {\n const value = e.currentTarget.value;\n onChangeClaim((c) => {\n c.Details.IncidentCause = value;\n return c;\n });\n }}\n disabled={!!submitLoading}\n error={\n !inputChanged &&\n validationError?.Field === 'IncidentCause' &&\n validationError?.Message\n }\n />\n \n \n onChangeClaim((c) => {\n claim.Details.IncidentAddress = {\n AddressLine1: addr.streetAddress || '',\n AddressLine2: addr.streetAddressLine2,\n AddressCity: addr.city || '',\n AddressState: addr.state || '',\n AddressZipCode: addr.zipCode || ''\n };\n return c;\n })\n }\n validationError={{\n streetAddress:\n !inputChanged &&\n validationError?.Field === 'AddressLine1' &&\n validationError?.Message,\n streetAddressLine2:\n !inputChanged &&\n validationError?.Field === 'AddressLine2' &&\n validationError?.Message,\n city:\n !inputChanged &&\n validationError?.Field === 'AddressCity' &&\n validationError?.Message,\n state:\n !inputChanged &&\n validationError?.Field === 'AddressState' &&\n validationError?.Message,\n zipCode:\n !inputChanged &&\n validationError?.Field === 'AddressZipCode' &&\n validationError?.Message\n }}\n />\n \n \n \n onChangeClaim((c) => {\n c.Details.HasOtherInsuranceCoverage = !c.Details.HasOtherInsuranceCoverage;\n return c;\n })\n }\n />\n \n \n Other Insurance Coverage\n \n Check this box if you have any other insurance coverage for the asset.\n \n \n \n \n \n \n onSubmitClaim()}\n >\n Submit Claim Request\n \n {error && error}\n \n )}\n \n \n );\n};\n","import React from 'react';\n\nimport {\n addRentalAssetSerialNumber,\n createMerchantRentalAsset,\n deleteMerchantRentalAsset\n} from '@oysterjs/core/api/merchant';\nimport { DeepPartial, RentalAsset, ValidationError } from '@oysterjs/types';\nimport { RentalPageContainer } from './components';\nimport { Table } from '@oysterjs/ui/Table';\nimport { Button, ButtonContainer, UnstyledButton } from '@oysterjs/ui/Button';\nimport { IoArrowForward, IoTrashOutline } from 'react-icons/io5';\nimport { FormColumn, FormContainer, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { ErrorDisplay, TextAreaInput, TextInput } from '@oysterjs/ui/Form/text';\nimport { ErrorType, WrappedError } from '@oysterjs/core/errors';\nimport { Banner } from '@oysterjs/ui/Banner';\nimport { Select } from '@oysterjs/ui/Form/select';\n\nexport const ViewRentalAssetPage = (props: {\n asset?: RentalAsset;\n assets: RentalAsset[];\n onChange: () => Promise;\n onClose: () => void;\n}) => {\n const [deleteSerialNumberLoading, setDeleteSerialNumberLoading] = React.useState(false);\n const [addSerialNumberLoading, setAddSerialNumberLoading] = React.useState(false);\n const [serialNumber, setSerialNumber] = React.useState('');\n const [error, setError] = React.useState();\n\n const asset = props.asset;\n if (!asset) {\n return null;\n }\n\n // Find all non-deleted assets whose name matches and does not have an\n // empty serial number.\n const serialNumberAssets = props.assets.filter(\n (a) => a.Name === asset.Name && !!a.Details.SerialNumber\n );\n\n const deleteAsset = async (assetId: string) => {\n if (deleteSerialNumberLoading) {\n return;\n }\n\n setDeleteSerialNumberLoading(true);\n\n try {\n await deleteMerchantRentalAsset(assetId);\n await props.onChange();\n\n setError(undefined);\n } catch (e) {\n setError(WrappedError.asWrappedError(e).message);\n } finally {\n setDeleteSerialNumberLoading(false);\n }\n };\n\n const addSerialNumber = async () => {\n if (addSerialNumberLoading) {\n return;\n }\n\n setAddSerialNumberLoading(true);\n\n try {\n await addRentalAssetSerialNumber(asset.ID, serialNumber);\n await props.onChange();\n\n setSerialNumber('');\n setError(undefined);\n } catch (e) {\n setError(WrappedError.asWrappedError(e).message);\n } finally {\n setAddSerialNumberLoading(false);\n }\n };\n\n return (\n \n \n \n \n \n \n \n \n \n {serialNumberAssets.map((a) => (\n \n \n \n \n ))}\n \n
Serial Number
{a.Details.SerialNumber}\n deleteAsset(a.ID)}\n disabled={deleteSerialNumberLoading}\n >\n \n \n
\n \n \n
\n
\n setSerialNumber(e.currentTarget.value)}\n disabled={addSerialNumberLoading}\n />\n
\n
\n \n Add Serial Number\n \n
\n
\n {error && {error}}\n
\n
\n );\n};\n\nexport const CreateRentalAssetPage = (props: {\n onCreate: (asset: RentalAsset) => Promise;\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n const [validationError, setValidationError] = React.useState();\n const [asset, _setAsset] = React.useState>({});\n\n const setAsset = (field: string, fn: React.SetStateAction>) => {\n if (validationError?.Field === field) {\n setValidationError(undefined);\n }\n\n _setAsset(fn);\n };\n\n const addAsset = async () => {\n if (loading) {\n return;\n }\n\n setLoading(true);\n\n try {\n const createdAsset = await createMerchantRentalAsset(asset);\n await props.onCreate(createdAsset);\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.validationError) {\n setValidationError(err.getValidationError());\n } else {\n setError(err.message);\n }\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n <>\n \n

\n An asset is defined as{' '}\n all items in your inventory of the same type, model, and value. For example, if you\n have ten (10) \"Aventon Level.2\" bikes, you would create one asset here with quantity \"10\"\n add each bike's serial number in the next step.\n

\n e.preventDefault()}>\n \n \n setAsset('Type', (prev) => ({ ...prev, Type: value }))}\n />\n \n \n {\n const value = e.currentTarget.value;\n setAsset('Name', (prev) => ({ ...prev, Name: value }));\n }}\n />\n \n \n\n \n \n {\n const value = parseFloat(e.currentTarget.value);\n setAsset('Value', (prev) => ({\n ...prev,\n Value: isNaN(value) ? undefined : value\n }));\n }}\n />\n \n \n \n \n \n\n \n \n {\n const value = e.currentTarget.value;\n setAsset('Description', (prev) => ({ ...prev, Description: value }));\n }}\n />\n \n \n\n \n \n \n {error && {error}}\n \n \n
\n );\n};\n","import styled from 'styled-components';\nimport { useId } from 'react-id-generator';\n\nconst RadioContainer = styled.div<{ disabled?: boolean; checked?: boolean }>`\n .radio-symbol {\n pointer-events: none;\n user-select: none;\n }\n\n .radio-container {\n box-sizing: border-box;\n background: #ffffff;\n }\n\n .radio-container * {\n box-sizing: border-box;\n }\n\n .radio-input {\n position: absolute;\n visibility: hidden;\n }\n\n .radio {\n user-select: none;\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n overflow: hidden;\n transition: all 0.15s ease;\n display: flex;\n }\n\n .radio span {\n vertical-align: middle;\n transform: translate3d(0, 0, 0);\n position: relative;\n margin-top: 2px;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n transform: scale(1);\n border: 1px solid #cccfdb;\n transition: all 0.15s ease;\n background: ${(props) => (props.disabled ? '#666666' : props.checked ? '#0EA5E9' : 'white')};\n }\n\n .radio span svg {\n position: absolute;\n top: 2px;\n left: 2px;\n fill: none;\n stroke: #fff;\n stroke-dasharray: 16px;\n stroke-dashoffset: 16px;\n transition: all 0.15s ease;\n transform: translate3d(0, 0, 0);\n }\n\n .radio-input:checked + .radio span {\n background: ${(props) => (props.disabled ? '' : '#0EA5E9')};\n border-color: ${(props) => (props.disabled ? '#666666' : '#0EA5E9')};\n animation: zoom-in-out 0.15s ease;\n }\n\n .radio-input:checked + .radio span svg {\n stroke-dashoffset: 0;\n }\n\n @keyframes zoom-in-out {\n 50% {\n transform: scale(0.9);\n }\n }\n`;\n\nexport interface RadioProps {\n label: string;\n id?: string;\n name?: string;\n checked?: boolean;\n disabled?: boolean;\n onChange?: () => void;\n}\n\nexport const Radio = (props: RadioProps): JSX.Element => {\n const [id] = useId();\n return (\n \n
\n \n \n
\n
\n );\n};\n","import * as React from 'react';\nimport { IoArrowForward, IoCheckmarkOutline, IoCheckmarkSharp } from 'react-icons/io5';\nimport styled from 'styled-components';\nimport { Button } from '../Button';\nimport { Spinner } from '../Spinner';\nimport { Checkbox } from '../Form/checkbox';\nimport { Radio } from '../Form/radio';\n\nexport const CardGallery = styled.ul`\n list-style: none;\n display: flex;\n flex-direction: row;\n justify-content: left;\n flex-wrap: wrap;\n gap: 40px;\n padding: 20px 0px 0px 0px;\n\n a {\n text-decoration: none;\n }\n`;\n\nconst CardContainer = styled.div<{ comingSoon?: boolean }>`\n box-shadow: ${(props) =>\n !props.comingSoon\n ? '0px 0px 12px rgba(55, 55, 55, 0.3)'\n : '0px 0px 12px rgba(55, 55, 55, 0.3)'};\n height: 260px;\n width: 240px;\n border-radius: 8px;\n transition: all 0.15s ease-in-out;\n cursor: ${(props) => (props.comingSoon ? 'default' : 'pointer')};\n position: relative;\n overflow-y: hidden;\n\n ${(props) =>\n !props.comingSoon\n ? `:hover {\n box-shadow: 0px 0px 24px rgba(55, 55, 55, 0.4);\n transform: scale(1.02);\n }`\n : ''}\n`;\n\nconst CardImage = styled.div`\n width: 100%;\n height: 160px;\n border-radius: 8px;\n display: flex;\n justify-content: center;\n align-items: flex-end;\n\n img {\n height: 85%;\n max-width: 190px;\n border-radius: 8px;\n }\n`;\n\nconst CardContents = styled.div`\n padding: 20px;\n\n h3 {\n margin: 0 0 5px 0;\n padding: 0;\n color: #333333;\n }\n\n h4 {\n margin: 0;\n padding: 0;\n font-weight: 400;\n color: #333333;\n font-size: 0.85em;\n }\n`;\n\nconst CardBadgeContainer = styled.div`\n position: absolute;\n top: 10px;\n right: 10px;\n`;\n\ninterface ComingSoonProps {\n product: string;\n}\n\nexport const ComingSoon: React.FunctionComponent> = () => {\n const [success, setSuccess] = React.useState(false);\n\n const onClick = () => {\n if (success) {\n return;\n }\n\n setSuccess(true);\n };\n\n return (\n
\n : }\n primary\n disabled={success}\n onClick={onClick}\n >\n Get notified\n \n
\n );\n};\n\nexport const Card = (props: {\n title: string;\n description: string;\n image: JSX.Element;\n badge?: JSX.Element;\n comingSoon?: boolean;\n onClick?: () => void;\n}): JSX.Element => {\n const ref = React.useRef(null);\n const [mouseOver, setMouseOver] = React.useState(false);\n\n React.useEffect(() => {\n if (!ref || !ref.current || !props.comingSoon) {\n return;\n }\n\n ref.current.scroll({\n top: mouseOver ? 300 : 0,\n left: 0,\n behavior: 'smooth'\n });\n }, [mouseOver]);\n\n return (\n setMouseOver(true)}\n onMouseLeave={() => setMouseOver(false)}\n aria-label={props.title}\n >\n \n {props.image}\n \n

{props.title}

\n

{props.description}

\n
\n {props.comingSoon && }\n
\n {props.badge && {props.badge}}\n \n );\n};\n\nconst SlimCardContainer = styled.div<{ selected?: boolean; disabled?: boolean }>`\n position: relative;\n display: flex;\n max-width: 320px;\n width: 100%;\n border-radius: 8px;\n transition: 0.15s all;\n cursor: pointer;\n opacity: ${(props) => (props.disabled ? 0.5 : 1.0)};\n border: ${(props) => (props.selected ? '1px solid transparent' : '1px dashed #C8C8C8')};\n box-shadow: ${(props) =>\n props.disabled && props.selected\n ? '0 0 0 1px #666666'\n : !props.disabled && props.selected\n ? '0 0 0 2px #0ea5e9'\n : '0 0 0 0px #C8C8C8'};\n`;\n\nconst SlimCardImage = styled.div`\n padding: 20px 10px 20px 20px;\n box-sizing: border-box;\n border-radius: 8px;\n text-align: center;\n\n img {\n width: 100%;\n border-radius: 8px;\n }\n\n svg {\n color: #4c617f;\n font-size: 1.8em;\n }\n`;\n\nconst SlimCardContents = styled(CardContents)`\n width: 100%;\n padding: 20px 20px 20px 10px;\n flex-grow: 1;\n\n h3 {\n margin: 0 0 2px 0;\n }\n`;\n\nconst CheckmarkBox = styled.div<{ selected?: boolean; disabled?: boolean }>`\n position: absolute;\n height: 30px;\n width: 30px;\n text-align: center;\n top: -2px;\n right: -2px;\n line-height: 32px;\n color: white;\n background: ${(props) => (props.disabled ? '#666666' : '#0EA5E9')};\n border-top-right-radius: 8px;\n border-bottom-left-radius: 8px;\n transition: 0.15s all;\n\n visibility: ${(props) => (props.selected ? 'visible' : 'hidden')};\n opacity: ${(props) => (props.selected ? 1 : 0)};\n`;\n\nconst TitleBadge = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nexport const SelectableOptionCard = (props: {\n title: string;\n description: string;\n image: JSX.Element;\n badge?: JSX.Element;\n titleAction?: JSX.Element;\n selected?: boolean;\n loading?: boolean;\n disabled?: boolean;\n onClick?: () => void;\n style?: React.CSSProperties;\n}): JSX.Element => (\n \n {props.image}\n \n \n

\n {props.title}\n

\n {(props.badge || props.titleAction) && (\n \n {props.badge}\n {props.titleAction}\n
\n )}\n \n

{props.description}

\n \n \n {!props.loading && }\n {props.loading && }\n \n \n);\n\nconst SelectableCheckboxCardContainer = styled.div<{ selected?: boolean; disabled?: boolean }>`\n position: relative;\n display: flex;\n max-width: 100%;\n width: 100%;\n border-radius: 8px;\n transition: 0.15s all;\n cursor: pointer;\n border: ${(props) => (props.selected ? '1px solid #0EA5E9' : '1px solid #E2E2E2')};\n`;\n\nconst SelectableCheckboxCardContents = styled.div`\n display: flex;\n gap: 8px;\n cursor: pointer;\n padding: 20px;\n flex-grow: 1;\n`;\n\nexport const SelectableCheckboxCard = (props: {\n title: string;\n subTitle: JSX.Element;\n description: JSX.Element;\n selected?: boolean;\n loading?: boolean;\n disabled?: boolean;\n onClick?: () => void;\n style?: React.CSSProperties;\n}): JSX.Element => (\n \n \n \n
\n {props.title}\n {props.subTitle}\n {props.description}\n
\n
\n \n);\n\nconst ItemizedItemsCardContainer = styled.div`\n position: relative;\n display: flex;\n max-width: 100%;\n width: 100%;\n border-radius: 8px;\n border: 1px solid #e2e2e2;\n`;\n\nconst ItemizedItemsCardContents = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 20px;\n flex-grow: 1;\n`;\n\nconst ItemContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n`;\n\nconst ItemizedItemsCardDivider = styled.div`\n width: 100%;\n height: 1.5px;\n border: 0;\n background-color: #e2e2e2;\n`;\n\ntype Items = {\n title: string;\n link?: string;\n price: number;\n};\n\ntype FeeDetails = {\n title: string;\n price: number;\n};\n\ntype PriceBreakdown = {\n subTotal: number;\n fees?: FeeDetails[];\n grandTotal: number;\n};\n\nexport const ItemizedItemsCard = (props: {\n items: Items[];\n price: PriceBreakdown;\n style?: React.CSSProperties;\n}): JSX.Element => (\n \n \n {props.items.map((item) => {\n return (\n
\n \n {item.title}\n {'$' + item.price}\n \n {item.link && (\n \n View quote document\n \n )}\n
\n );\n })}\n \n
\n \n Subtotal\n {'$' + props.price.subTotal}\n \n {props.price.fees &&\n props.price.fees.map((fee) => {\n return (\n \n {fee.title}\n {'$' + fee.price}\n \n );\n })}\n \n Total Due\n {'$' + props.price.grandTotal}\n \n
\n
\n
\n);\n\nconst RadioSelectableCardContainer = styled.div<{ selected?: boolean; disabled?: boolean }>`\n position: relative;\n flex-direction: column;\n display: flex;\n max-width: calc(33% - 16px);\n width: 100%;\n border-radius: 8px;\n transition: 0.15s all;\n cursor: pointer;\n border: ${(props) => (props.selected ? '1px solid #0EA5E9' : '1px solid #E2E2E2')};\n\n @media (max-width: 600px) {\n max-width: 100%;\n }\n`;\n\nconst RadioSelectableCardContents = styled.div`\n display: flex;\n gap: 8px;\n cursor: pointer;\n padding: 20px 20px 20px 20px;\n flex-grow: 1;\n`;\n\nconst RadioSelectableListItems = styled.div`\n display: flex;\n flex-direction: column;\n padding: 15px 15px 15px 20px;\n`;\n\nconst RadioSelectableCardDivider = styled.div<{ selected?: boolean }>`\n font-size: 12px;\n display: flex;\n align-items: center;\n color: ${(props) => (props.selected ? '#0EA5E9' : '#666666')};\n\n &::before,\n &::after {\n flex-grow: 1;\n content: '';\n border: 0;\n background-color: ${(props) => (props.selected ? '#0EA5E9' : '#E2E2E2')};\n height: 1.5px;\n }\n\n &::before {\n margin-right: 5px;\n }\n\n &::after {\n margin-left: 5px;\n }\n`;\n\nexport const RadioSelectableCard = (props: {\n title: string;\n subTitle: JSX.Element;\n description: JSX.Element;\n selected?: boolean;\n loading?: boolean;\n disabled?: boolean;\n checkItems?: string[];\n onClick?: () => void;\n style?: React.CSSProperties;\n}): JSX.Element => (\n \n \n \n
\n {props.title}\n {props.subTitle}\n {props.description}\n
\n
\n {props.checkItems && (\n <>\n \n What's covered\n \n \n {props.checkItems.map((label) => {\n return (\n \n \n {label}\n \n );\n })}\n \n \n )}\n \n);\n\nconst ShadowCardContainer = styled.div`\n background: #f6f6f6;\n border: 2px dashed #dfdfdf;\n height: 260px;\n width: 240px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n border-radius: 8px;\n transition: 0.15s all;\n cursor: pointer;\n\n color: #b2b2b2;\n\n svg {\n font-size: 3em;\n color: #b2b2b2;\n }\n\n :hover {\n border: 2px solid #dfdfdf;\n transform: scale(1.02);\n }\n`;\n\nexport const ShadowCard = (props: {\n icon: JSX.Element;\n description: string;\n onClick?: () => void;\n}): JSX.Element => (\n \n
{props.icon}
\n
{props.description}
\n
\n);\n\nexport const WidgetCardGallery = styled.ul`\n list-style: none;\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n gap: 10px;\n font-size: 0.8em;\n width: 400px;\n flex-wrap: wrap;\n padding-inline-start: 5px;\n\n a {\n text-decoration: none;\n }\n`;\n\nconst WidgetCardContainer = styled.div<{ selected?: boolean; disabled?: boolean }>`\n position: relative;\n display: flex;\n max-width: 160px;\n width: 100%;\n border-radius: 8px;\n transition: 0.15s all;\n cursor: pointer;\n opacity: ${(props) => (props.disabled ? 0.5 : 1.0)};\n border: ${(props) => (props.selected ? '1px solid transparent' : '1px dashed #C8C8C8')};\n background-color: ${(props) => (props.selected ? '#0ea5e930' : 'transparent')};\n box-shadow: ${(props) =>\n props.disabled && props.selected\n ? '0 0 0 1px #666666'\n : !props.disabled && props.selected\n ? '0 0 0 2px #0ea5e9'\n : '0 0 0 0px #C8C8C8'};\n`;\n\nconst WidgetCardContents = styled(CardContents)`\n width: 100%;\n padding: 8px;\n`;\n\nexport const WidgetOptionCard = (props: {\n title: JSX.Element;\n subtitle: JSX.Element;\n description: () => string | undefined;\n selected?: boolean;\n disabled?: boolean;\n onClick?: () => void;\n style?: React.CSSProperties;\n}): JSX.Element => (\n \n \n \n \n {props.title}\n {props.subtitle}\n
\n \n {!!props.description() &&

{props.description()}

}\n \n \n);\n","import config from '@oysterjs/core/config';\nimport { PolicyType } from '@oysterjs/types';\nimport styled from 'styled-components';\n\nconst FooterStandardContainer = styled.div`\n display: flex;\n justify-content: space-between;\n\n @media (max-width: 500px) {\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n gap: 10px;\n }\n`;\n\nconst FooterContainer = styled.div`\n padding: 20px 40px;\n display: flex;\n flex-direction: column;\n font-size: 0.8em;\n justify-content: space-between;\n gap: 10px;\n`;\n\nconst FooterLinksContainer = styled.div`\n display: flex;\n\n a {\n &:not(:last-child) {\n margin-right: 20px;\n }\n }\n`;\n\nconst OysterCopyright = (props: { color?: string }) => (\n
\n © 2024 Oyster Technologies, Inc.\n
\n);\n\nconst CustomFooter = (props: { policyType?: PolicyType }) => {\n switch (props.policyType) {\n case PolicyType.chubbJewelry:\n return (\n
\n Insurance described is offered by Oyster Insurance Agency, LLC (California license no.\n 6006158). Insurance is underwritten and provided by Federal Insurance Company (Whitehouse\n Station, NJ), a Chubb ® company. Chubb is the marketing name used to refer to\n subsidiaries of Chubb Limited providing insurance and related services. Coverage is\n subject to the language of the policies as actually issued.\n
\n );\n default:\n return <>;\n }\n};\n\nexport const FooterStandard = (props: { policyType?: PolicyType; color?: string }): JSX.Element => (\n \n \n \n \n \n Contact Us\n \n \n Terms\n \n \n Privacy\n \n \n \n \n \n);\n\nconst FooterMinimalContainer = styled.div`\n padding: 20px 40px;\n display: flex;\n font-size: 0.8em;\n justify-content: space-around;\n`;\n\nexport const FooterMinimal = (props: { color?: string }): JSX.Element => (\n \n \n \n);\n","import React from 'react';\nimport { PolicyType } from '@oysterjs/types';\nimport styled from 'styled-components';\nimport { FooterMinimal, FooterStandard } from './footer';\n\nconst PaneContainer = styled.div<{ gap: number }>`\n display: flex;\n flex-direction: row;\n width: 100%;\n gap: ${(props) => props.gap}px;\n\n @media (max-width: 700px) {\n display: block;\n }\n`;\n\nconst Pane = styled.div<{ gap: number; paneWidth: number }>`\n width: calc(${(props) => props.paneWidth}% - ${(props) => props.gap / 2}px);\n\n @media (max-width: 700px) {\n width: 100%;\n }\n`;\n\nexport const TwoPaneContainer: React.FunctionComponent<\n React.PropsWithChildren<{\n gap?: number;\n leftPaneWidth?: number;\n rightPane: JSX.Element;\n }>\n> = (props) => (\n \n \n {props.children}\n \n \n {props.rightPane}\n \n \n);\n\nexport enum FooterStyle {\n none,\n minimal,\n standard\n}\n\nconst PageContainerDiv = styled.div<{\n width?: number | string;\n marginTop?: number;\n marginRight?: number;\n marginLeft?: number;\n marginBottom?: number;\n}>`\n max-width: ${(props) =>\n props.width ? (isNaN(Number(props.width)) ? props.width : `${props.width}px`) : '1000px'};\n width: 100%;\n margin-top: ${(props) => (props.marginTop !== undefined ? `${props.marginTop}px` : 'auto')};\n margin-right: ${(props) => (props.marginRight !== undefined ? `${props.marginRight}px` : 'auto')};\n margin-bottom: ${(props) =>\n props.marginBottom !== undefined ? `${props.marginBottom}px` : 'auto'};\n margin-left: ${(props) => (props.marginLeft !== undefined ? `${props.marginLeft}px` : 'auto')};\n`;\n\nexport const PageContainer: React.FunctionComponent<\n React.PropsWithChildren<{\n width?: number | string;\n footerStyle?: FooterStyle;\n marginTop?: number;\n marginRight?: number;\n marginLeft?: number;\n marginBottom?: number;\n policyType?: PolicyType;\n footerTextColor?: string;\n }>\n> = (props) => {\n return (\n \n {props.children}\n {(props.footerStyle === undefined || props.footerStyle === FooterStyle.standard) && (\n \n )}\n {props.footerStyle === FooterStyle.minimal && }\n \n );\n};\n\nexport const PageSection = styled.div<{\n noBorder?: boolean;\n noPadding?: boolean;\n centered?: boolean;\n customPadding?: string;\n}>`\n padding: ${(props) =>\n props.customPadding ? props.customPadding : props.noPadding ? '0px 40px' : '20px 40px'};\n border-bottom: ${(props) => (props.noBorder ? '0' : '1px solid #f8f8f8')};\n ${(props) =>\n !props.centered\n ? ``\n : `\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n `}\n\n h2 {\n color: #666666;\n }\n`;\n","import { loadStripe, Stripe } from '@stripe/stripe-js';\nimport config from './config';\n\nconst STRIPE_PUBLIC_KEY = () => config().secrets.stripePublicKey || '';\nconst COTERIE_STRIPE_PUBLIC_KEY = () => config().secrets.coterieStripePublicKey || '';\n\nconst stripe = loadStripe(STRIPE_PUBLIC_KEY(), {\n apiVersion: '2020-08-27'\n});\n\nexport default (): Promise => stripe;\n\nexport const loadCoterieStripe = (): Promise =>\n loadStripe(COTERIE_STRIPE_PUBLIC_KEY(), {\n apiVersion: '2020-08-27'\n });\n","import React from 'react';\nimport { Analytics } from './analytics';\n\nconst tagId = 'AW-10974576559';\n\nexport enum GetOysterEventNames {\n GetAQuickQuote = 'Get A Quick Quote', // On the first page of getoyster\n ReviewCoverage = 'Review Coverage', // When users see their coverage after form inputs\n PaymentSubmitted = 'Payment Submitted', // When users submit their payment info\n PaymentMethodSubmitted = 'Payment Method Submitted', // When users submit their payment method to create a token\n OfferSubmitted = 'Offer Submitted', // When payment is accepted and policy is confirmed\n ApplicationSubmitted = 'Application Submitted', // When users activate their account\n\n WaiverPaymentSubmitted = 'Waiver Payment Submitted' // When users submit their payment info\n}\n\nconst install = () => {\n const scriptId = 'ga-gtag';\n\n if (document.getElementById(scriptId)) return;\n\n const { head } = document;\n const script = document.createElement('script');\n script.id = scriptId;\n script.type = 'text/javascript';\n script.src = `https://www.googletagmanager.com/gtag/js?id=${tagId}`;\n head.insertBefore(script, head.firstChild);\n\n const tagScript = document.createElement('script');\n tagScript.type = 'text/javascript';\n tagScript.innerText = `\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '${tagId}');\n `;\n head.insertBefore(tagScript, script);\n};\n\nexport const useGoogleTags = (): void => {\n React.useEffect(() => {\n install();\n }, []);\n};\n\nexport class GoogleTagAnalytics implements Analytics {\n identify(): void {\n // Do nothing\n }\n screen(): void {\n // Do nothing\n }\n event(name: string, properties: { [property: string]: unknown }): void {\n // Track only when Google Tag is installed\n if (window['dataLayer'] !== undefined && window['dataLayer'].length > 0) {\n const tagEvent = convertEvent(name);\n if (tagEvent.type) {\n window['gtag']('event', tagEvent.type, { send_to: tagEvent.sendTo, ...properties });\n }\n }\n }\n reset(): void {\n // Do nothing\n }\n}\n\ninterface GTagEvent {\n type: string;\n sendTo: string;\n}\n\nconst convertEvent = (name: string): GTagEvent => {\n switch (name) {\n case GetOysterEventNames.GetAQuickQuote:\n return {\n type: 'conversion',\n sendTo: `${tagId}/0FLjCNLW8toDEK__ivEo`\n };\n case GetOysterEventNames.ReviewCoverage:\n return {\n type: 'conversion',\n sendTo: `${tagId}/iiNpCNvW8toDEK__ivEo`\n };\n case GetOysterEventNames.OfferSubmitted:\n return {\n type: 'conversion',\n sendTo: `${tagId}/MbxmCIHex-YDEK__ivEo`\n };\n case GetOysterEventNames.ApplicationSubmitted:\n return {\n type: 'conversion',\n sendTo: `${tagId}/zQfFCKSfyNkDEK__ivEo`\n };\n default:\n return {\n type: '',\n sendTo: ''\n };\n }\n};\n","import React from 'react';\nimport config from '../config';\nimport { GoogleTagAnalytics } from './googletags';\n\nexport interface Analytics {\n identify(id: string, properties?: { [property: string]: string }): void;\n screen(name: string, properties?: { [property: string]: string }): void;\n event(name: string, properties?: { [property: string]: unknown }): void;\n reset(): void;\n}\n\nclass AggregateAnalytics implements Analytics {\n analytics: Analytics[];\n\n constructor() {\n this.analytics = [new GoogleTagAnalytics()];\n return;\n }\n\n identify(id: string, properties: { [property: string]: string }): void {\n try {\n this.analytics.forEach((a) => a.identify(id, properties));\n } catch (e) {\n if (config().environment !== 'production') {\n throw e;\n }\n }\n }\n screen(name: string, properties: { [property: string]: string }): void {\n try {\n this.analytics.forEach((a) => a.screen(name, properties));\n } catch (e) {\n if (config().environment !== 'production') {\n throw e;\n }\n }\n }\n event(name: string, properties: { [property: string]: unknown }): void {\n try {\n this.analytics.forEach((a) => a.event(name, properties));\n } catch (e) {\n if (config().environment !== 'production') {\n throw e;\n }\n }\n }\n reset(): void {\n try {\n this.analytics.forEach((a) => a.reset());\n } catch (e) {\n if (config().environment !== 'production') {\n throw e;\n }\n }\n }\n}\n\nexport const useAnalytics = (): Analytics => {\n const [analytics] = React.useState(new AggregateAnalytics());\n return analytics;\n};\n","import * as React from 'react';\nimport { IoArrowBack, IoArrowForward, IoLockClosed } from 'react-icons/io5';\nimport {\n useStripe,\n useElements,\n Elements,\n PaymentElement,\n CardElement\n} from '@stripe/react-stripe-js';\n\nimport { Button, ButtonContainer, UnstyledButton } from '@oysterjs/ui/Button';\nimport { ErrorDisplay } from '@oysterjs/ui/Form/text';\nimport { PageSection } from '@oysterjs/ui/Page';\nimport { Spinner } from '@oysterjs/ui/Spinner';\n\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport loadStripe from '@oysterjs/core/stripe';\nimport { PolicyType, PaymentMethod as IPaymentMethod } from '@oysterjs/types';\nimport { Table } from '@oysterjs/ui/Table';\nimport { useNavigate } from 'react-router';\nimport { useAnalytics } from '@oysterjs/core/analytics/analytics';\nimport { GetOysterEventNames } from '@oysterjs/core/analytics/googletags';\nimport {\n RequirementCheckboxContainer,\n RequirementContentContainer,\n RequirementDescription,\n RequirementItemContainer\n} from '@oysterjs/ui/common';\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\nimport { getDocumentUrl } from '@oysterjs/core/statics';\nimport { FaCcAmex, FaCcDiscover, FaCcMastercard, FaCcVisa, FaCreditCard } from 'react-icons/fa';\nimport { Stripe } from '@stripe/stripe-js';\n\nexport const PaymentMethod: React.FunctionComponent<\n React.PropsWithChildren<{ paymentMethod: IPaymentMethod }>\n> = (props) => (\n
\n
\n {(() => {\n switch (props.paymentMethod.Brand) {\n case 'visa':\n return ;\n case 'mastercard':\n return ;\n case 'discover':\n return ;\n case 'amex':\n return ;\n default:\n return ;\n }\n })()}\n
\n
\n
\n
\n
\n {props.paymentMethod.Brand.charAt(0).toUpperCase() +\n props.paymentMethod.Brand.substring(1)}{' '}\n {props.paymentMethod.LastFour}\n
\n
\n
\n
\n Expires {props.paymentMethod.ExpMonth}/{props.paymentMethod.ExpYear}\n
\n
\n
\n);\n\nconst PaymentDisclosure = (props: { policyType?: string; noPadding?: boolean }) => {\n const disclosure = (() => {\n switch (props.policyType) {\n case PolicyType.bike:\n case PolicyType.markelBike:\n return {\n name: 'Cyclist Compliance Disclosure',\n url: 'https://www.withoyster.com/cyclist-compliance-disclosures'\n };\n case PolicyType.minicoJewelry:\n return {\n name: 'Jewelry Compliance Disclosure',\n url: 'https://www.withoyster.com/jewelry-compliance-disclosures'\n };\n case PolicyType.worthAveElectronics:\n return {\n name: 'Electronics Compliance Disclosure',\n url: 'https://www.withoyster.com/electronics-compliance-disclosures'\n };\n default:\n return {\n name: 'Electronic Transaction Consent',\n url: 'https://www.withoyster.com/consent-to-electronic-transactions'\n };\n }\n })();\n\n return (\n
\n

\n By submitting this form, you allow Oyster to charge your card for future payments and agree\n to Oyster's{' '}\n \n Terms & Conditions\n {' '}\n ,{' '}\n \n Privacy Policy\n \n , and{' '}\n \n {disclosure.name}\n \n .\n

\n
\n );\n};\n\nexport const SubmissionDisclosure = (props: { policyType?: string; noPadding?: boolean }) => {\n const disclosure = (() => {\n switch (props.policyType) {\n case PolicyType.bike:\n case PolicyType.markelBike:\n return {\n name: 'Cyclist Compliance Disclosure',\n url: 'https://www.withoyster.com/cyclist-compliance-disclosures'\n };\n case PolicyType.minicoJewelry:\n return {\n name: 'Jewelry Compliance Disclosure',\n url: 'https://www.withoyster.com/jewelry-compliance-disclosures'\n };\n case PolicyType.worthAveElectronics:\n return {\n name: 'Electronics Compliance Disclosure',\n url: 'https://www.withoyster.com/electronics-compliance-disclosures'\n };\n default:\n return {\n name: 'Electronic Transaction Consent',\n url: 'https://www.withoyster.com/consent-to-electronic-transactions'\n };\n }\n })();\n\n return (\n
\n

\n By continuing with this application, you agree to Oyster's{' '}\n \n Terms & Conditions\n {' '}\n ,{' '}\n \n Privacy Policy\n \n , and{' '}\n \n {disclosure.name}\n \n .\n

\n
\n );\n};\n\nconst PaymentCollection = (props: {\n returnUrl: string;\n continueLabel?: string;\n setupOnly: boolean;\n onBack?: ((e) => void) | null;\n policyType?: string;\n underwriter?: string;\n hideLegal?: boolean;\n defaultName?: string;\n defaultEmail?: string;\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n const [hasConsent, setHasConsent] = React.useState(false);\n\n const stripe = useStripe();\n const elements = useElements();\n const analytics = useAnalytics();\n\n const handleSubmit = async () => {\n if (!stripe || !elements) {\n return;\n }\n\n if (props.policyType && props.policyType == PolicyType.chubbJewelry && !hasConsent) {\n setError('Please agree to the Electronic Transaction Consent.');\n return;\n }\n\n setLoading(true);\n analytics.event(GetOysterEventNames.PaymentSubmitted);\n\n const options = {\n elements,\n confirmParams: {\n return_url: props.returnUrl\n }\n };\n const { error } = props.setupOnly\n ? await stripe.confirmSetup(options)\n : await stripe.confirmPayment(options);\n\n if (error && error.type !== 'validation_error') {\n setError(error.message || '');\n }\n\n setLoading(false);\n };\n\n return (\n <>\n
\n \n \n {!props.hideLegal && (\n \n )}\n {props.policyType && props.policyType == PolicyType.markelBike && (\n
\n

\n Insurance Underwritten By: Markel Group Inc.\n

\n
\n )}\n\n {props.policyType && props.policyType == PolicyType.chubbJewelry && (\n <>\n {props.underwriter && (\n
\n

\n Insurance Underwritten By:{' '}\n {props.underwriter == 'FEDERAL' ? 'Federal Insurance Co' : props.underwriter}\n

\n
\n )}\n {\n e.stopPropagation();\n setHasConsent(!hasConsent);\n }}\n >\n \n {\n setHasConsent(!hasConsent);\n }}\n />\n \n \n \n I acknowledge that I’ve read and accepted the{' '}\n \n Electronic Communications Consent\n \n \n \n \n \n )}\n\n {(!stripe || !elements) && (\n
\n \n
\n )}\n {error && {error}}\n\n \n \n {props.onBack && (\n \n )}\n }\n icon={}\n primary\n disabled={!stripe || !elements}\n loading={loading}\n onClick={handleSubmit}\n >\n {props.continueLabel || 'Confirm'}\n \n \n \n \n );\n};\n\nexport const ShowDefaultPayment = (props: {\n confirmPaymentIntent: () => Promise;\n returnUrl: string;\n defaultPayment: IPaymentMethod;\n continueLabel?: string;\n policyType?: string;\n underwriter?: string;\n onBack?: ((e) => void) | null;\n}): JSX.Element => {\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n const [hasConsent, setHasConsent] = React.useState(false);\n\n const navigate = useNavigate();\n\n const handleSubmit = async () => {\n setError(undefined);\n setLoading(true);\n if (props.policyType && props.policyType == PolicyType.chubbJewelry && !hasConsent) {\n setError('Please agree to the Electronic Communications Consent.');\n }\n props\n .confirmPaymentIntent()\n .then(() => navigate(props.returnUrl.replace(window.location.origin, '')))\n .catch((err) => setError(err.message))\n .finally(() => setLoading(false));\n };\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Default Payment Method\n
\n \n
\n Oyster will use your default payment method to purchase this policy. If you would like\n to use a different payment method, you can change your default{' '}\n \n here\n \n .\n \n
\n \n {props.policyType && props.policyType == PolicyType.chubbJewelry && (\n <>\n {props.underwriter && (\n
\n

\n Insurance Underwritten By:{' '}\n {props.underwriter == 'FEDERAL' ? 'Federal Insurance Co' : props.underwriter}\n

\n
\n )}\n {\n e.stopPropagation();\n setHasConsent(!hasConsent);\n }}\n >\n \n {\n setHasConsent(!hasConsent);\n }}\n />\n \n \n \n I acknowledge that I’ve read and accepted the{' '}\n \n Electronic Communications Consent\n \n \n \n \n \n )}\n \n \n {props.onBack && (\n \n )}\n }\n icon={}\n loading={loading}\n primary\n onClick={handleSubmit}\n >\n {props.continueLabel || 'Confirm'}\n \n \n \n {error && {error}}\n \n );\n};\n\nexport const PaymentMethodInput: React.FunctionComponent<{\n getPaymentIntent: () => Promise;\n returnUrl: string;\n continueLabel?: string;\n policyType?: string;\n setupOnly: boolean;\n onBack?: ((e) => void) | null;\n underwriter?: string;\n hideLegal?: boolean;\n defaultName?: string;\n defaultEmail?: string;\n}> = (props) => (\n \n {(clientSecret) => (\n \n \n \n )}\n \n);\n\nconst CardElementTokenCollection = (props: {\n onTokenCreated: (token: string) => void;\n onError: (error: string) => void;\n onBack: ((e) => unknown) | null;\n onSkip: () => void;\n canSkip: boolean;\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n\n const stripe = useStripe();\n const elements = useElements();\n const analytics = useAnalytics();\n\n const handleSubmit = async () => {\n if (!stripe || !elements) {\n return;\n }\n\n setLoading(true);\n analytics.event(GetOysterEventNames.PaymentMethodSubmitted);\n\n const cardElements = elements.getElement('card')!;\n const result = await stripe.createToken(cardElements);\n if (result.error) {\n if (result.error.type !== 'validation_error') {\n props.onError(result.error.message || '');\n } else {\n setError(result.error.message);\n }\n } else {\n props.onTokenCreated(result.token.id);\n }\n\n setLoading(false);\n };\n\n return (\n <>\n
\n
\n \n
\n
\n

\n Please note that this policy is underwritten by Coterie. By submitting this form, you\n allow Coterie to make direct charges to this payment method.\n

\n
\n
\n {(!stripe || !elements) && (\n
\n \n
\n )}\n {error && {error}}\n\n \n \n {props.onBack && (\n \n )}\n }\n icon={}\n primary\n disabled={!stripe || !elements}\n loading={loading}\n onClick={handleSubmit}\n >\n Confirm\n \n \n {props.canSkip && (\n \n \n Get connected with an Oyster representative\n \n \n )}\n \n \n );\n};\n\nexport const CardElementTokenCollectionInput: React.FunctionComponent<{\n onTokenCreated: (token: string) => void;\n onError: (error: string) => void;\n onBack: ((e) => unknown) | null;\n onSkip: () => void;\n stripeProvider: () => Promise;\n canSkip: boolean;\n}> = (props) => (\n \n \n \n);\n","import React from 'react';\n\nimport { RentalPageContainer } from './components';\nimport { Button, ButtonContainer, LinkComponent, UnstyledButton } from '@oysterjs/ui/Button';\nimport { IoArrowForward, IoTrashOutline } from 'react-icons/io5';\nimport { FormColumn, FormContainer, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { Checkbox, CheckboxProps } from '@oysterjs/ui/Form/checkbox';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport {\n deleteRentalDocument,\n getMerchantRentalPaymentSetup,\n getRentalDocuments,\n uploadRentalDocuments\n} from '@oysterjs/core/api/merchant';\nimport { PaymentMethodInput } from '@oysterjs/core/payment';\nimport { Merchant } from '@oysterjs/types';\nimport { Table } from '@oysterjs/ui/Table';\nimport { AttachmentUploader } from '@oysterjs/ui/Attachment';\nimport { WrappedError } from '@oysterjs/core/errors';\nimport { ErrorDisplay } from '@oysterjs/ui/Form/text';\nimport { Spinner } from '@oysterjs/ui/Spinner';\n\nconst LabeledCheckbox = (props: CheckboxProps) => (\n
\n \n
{props.label}
\n
\n);\n\nexport const MerchantBilledInsuranceSettings = (props: {\n merchant?: Merchant;\n onEnable: () => void;\n}) => {\n const [agreementAccepted, setAgreementAccepted] = React.useState(false);\n\n return (\n \n \n {(setup) => (\n <>\n

\n Simplify the process to cover your customers and your rentals by paying for the\n waivers on behalf of the customer. You can then choose to consolidate the waiver\n charge into a single point-of-sale transaction at the time of rental.\n

\n

How it works

\n
    \n
  • Connect your bank account here.
  • \n
  • \n For subsequently-created waivers, Oyster won't collect premium from the customer.\n Instead, Oyster will count the premium for your store.\n
  • \n
  • \n At the start of the month, Oyster will send an invoice for the waiver premium owed\n from the prior month, accounting for any fees or remittances. Your account will be\n debited the quoted amount 7 days later.\n
  • \n
\n {setup.SetupIntentClientSecret && (\n Promise.resolve(setup.SetupIntentClientSecret || '')}\n returnUrl={window.location.origin + `/rental/settings/merchant-billing`}\n setupOnly\n hideLegal\n continueLabel=\"Connect Account\"\n defaultName={props.merchant?.BusinessProfile.Name}\n defaultEmail={props.merchant?.BusinessProfile.Email}\n />\n )}\n {setup.PaymentMethod && (\n e.preventDefault()}>\n \n \n \n {setup.PaymentMethod.BankName} {setup.PaymentMethod.LastFour}\n \n \n \n \n setAgreementAccepted((prev) => !prev)}\n />\n \n \n \n }\n disabled={!agreementAccepted}\n onClick={props.onEnable}\n >\n Accept and enable\n \n \n \n )}\n \n )}\n
\n \n );\n};\n\nexport const MerchantUnifiedWaiverFlowSettings = (props: {\n merchant?: Merchant;\n onEnable: (enabled: boolean) => void;\n}) => {\n // Fetch documents\n const [documents, setDocuments] = React.useState<{ Name: string; ID: string }[]>([]);\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n\n const getDocuments = async () => {\n setLoading(true);\n setError(undefined);\n\n try {\n setDocuments(await getRentalDocuments());\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n setError(err.message);\n } finally {\n setLoading(false);\n }\n };\n\n React.useEffect(() => {\n getDocuments();\n }, []);\n\n // Add documents\n const [attachments, setAttachments] = React.useState([]);\n const [uploadLoading, setUploadLoading] = React.useState(false);\n const [deleteLoading, setDeleteLoading] = React.useState(false);\n\n const onAttachmentsAdded = async (files: File[]) => setAttachments((prev) => [...prev, ...files]);\n\n const uploadDocuments = async () => {\n setUploadLoading(true);\n setError(undefined);\n\n try {\n if (attachments.length > 0) {\n const updatedFiles = await uploadRentalDocuments(attachments);\n setAttachments([]);\n setDocuments(updatedFiles);\n }\n\n props.onEnable(true);\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n setError(err.message);\n } finally {\n setUploadLoading(false);\n }\n };\n\n // Delete document\n const deleteDocument = async (id: string) => {\n setDeleteLoading(true);\n setError(undefined);\n\n try {\n setDocuments(await deleteRentalDocument(id));\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n setError(err.message);\n } finally {\n setDeleteLoading(false);\n }\n };\n\n return (\n \n

How it works

\n
    \n
  • Upload your rental documents and enable this feature.
  • \n
  • \n Provide your customers access to our flow via{' '}\n \n link or QR code\n \n .\n
  • \n
  • \n The customer fills out the information and reads, agrees to, and signs your documents.\n
  • \n
  • \n View the documents with an appended signature page as part of each booking's details.\n
  • \n
\n

Your rental documents

\n

View and manage the documents that customers are asked to agree to here.

\n {loading && }\n {!loading && documents.length > 0 && (\n \n \n \n \n \n \n \n \n {documents.map((a) => (\n \n \n \n \n ))}\n \n
Document Name
{a.Name}\n deleteDocument(a.ID)} disabled={loading}>\n \n \n
\n )}\n \n \n \n \n \n {error && {error}}\n \n );\n};\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport {\n IoShieldCheckmarkSharp,\n IoShieldOutline,\n IoChevronForwardSharp,\n IoCheckmarkSharp,\n IoAlertCircleSharp,\n IoPerson,\n IoBusiness,\n IoDownload\n} from 'react-icons/io5';\n\nimport {\n BillingMode,\n Merchant,\n MerchantRentalConfiguration,\n RentalAsset,\n RentalBooking,\n RentalPolicyState,\n RentalWaiver,\n WaiverEntry,\n WaiverState\n} from '@oysterjs/types';\nimport { PageTitle } from '@oysterjs/ui/Page/section';\nimport {\n getMerchantAccount,\n getMerchantRentalAssets,\n getMerchantRentalConfiguration,\n getRentalWaivers,\n requestQRCodePdf,\n updateMerchantRentalConfiguration\n} from '@oysterjs/core/api/merchant';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\nimport { Button, ButtonContainer, LinkComponent } from '@oysterjs/ui/Button';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport { Table } from '@oysterjs/ui/Table';\nimport { PageNavigation } from '@oysterjs/ui/Page/navigation';\nimport { SlideOut } from '@oysterjs/ui/Modal/slideout';\nimport { useHistory, useLocation } from 'react-router';\nimport { RentalWaiverForm } from '../rental/RentalWaiverForm';\nimport { RentalWaiverSentPage } from '../rental/RentalWaiverSentPage';\nimport { RentalBookingDetailsPage } from '../rental/RentalBookingDetailsPage';\nimport { RentalClaimForm } from '../rental/RentalClaimForm';\nimport { CreateRentalAssetPage, ViewRentalAssetPage } from '../rental/RentalAssetPage';\nimport { Setting, SettingsContainer, Statement } from '../rental/components';\nimport { CardGallery, SelectableOptionCard } from '@oysterjs/ui/Card';\nimport {\n MerchantBilledInsuranceSettings,\n MerchantUnifiedWaiverFlowSettings\n} from '../rental/RentalSettings';\nimport { WrappedError } from '@oysterjs/core/errors';\nimport { Loadable, LoadableContainer } from '@oysterjs/ui/Loadable';\nimport { Select } from '@oysterjs/ui/Form/select';\nimport { CopyableLink } from '../setups/referralLink';\nimport { ErrorDisplay } from '@oysterjs/ui/Form/text';\nimport { Switch } from '@oysterjs/ui/Form/switch';\nimport { MerchantRentalSetup } from '../setups/rental';\n\nconst RentalTable = styled(Table)`\n thead tr th {\n text-align: left;\n\n &:first-child {\n padding-right: 0px;\n }\n &:last-child {\n padding-left: 0px;\n }\n }\n\n tbody tr {\n &:hover {\n cursor: pointer;\n background: #f2f2f2;\n }\n }\n\n tbody tr td {\n svg {\n display: block;\n color: #637d8c;\n }\n\n &:first-child {\n padding-right: 0px;\n\n svg {\n float: right;\n }\n }\n\n &:last-child {\n padding-left: 0px;\n\n svg {\n float: left;\n }\n }\n }\n`;\n\nconst MerchantRentalList = (props: {\n rentalConfiguration: MerchantRentalConfiguration;\n waivers: WaiverEntry[];\n}) => {\n const history = useHistory();\n\n const onCreateNewWaiver = () => {\n history.push('/rental/overview/waiver/edit');\n };\n\n const onViewBooking = (bookingId: string) => {\n history.push(`/rental/overview/booking/${bookingId}/view`);\n };\n\n const onCreateClaim = () => {\n history.push(`/rental/overview/claim`);\n };\n\n return (\n <>\n {props.rentalConfiguration.Details.State === RentalPolicyState.approved && (\n \n \n \n )}\n {props.rentalConfiguration.Details.State === RentalPolicyState.approved_blanket && (\n \n \n \n )}\n {\n \n \n \n \n Rental Date\n Booking Reference\n Customer Name\n Email\n Assets\n \n \n \n \n {props.waivers.map((entry) => {\n if (!entry.Booking) {\n return;\n }\n\n return (\n onViewBooking(entry.Booking?.ID || '')}>\n \n {(() => {\n switch (entry.Waiver?.State) {\n case WaiverState.active:\n case WaiverState.expired:\n return ;\n default:\n return ;\n }\n })()}\n \n {new Date(entry.Booking.StartTime).toLocaleDateString()}\n {entry.Booking.Details.BookingReference}\n \n {entry.Booking.Details.Insured.FirstName}{' '}\n {entry.Booking.Details.Insured.LastName}\n \n {entry.Booking.Details.Insured.Email}\n \n {entry.Booking.Details.Assets?.map((asset) => (\n {`${asset.Name} [${asset.Details.SerialNumber}]`}
\n ))}\n {entry.Booking.Details.BookingLineItems?.map((asset) => (\n
{`${asset.Name} [${asset.SerialNumber}]`}
\n ))}\n \n \n \n \n \n );\n })}\n \n \n }\n {props.waivers.length === 0 && (\n

\n No waivers have been created yet. Click on create waiver button above to start.\n

\n )}\n \n );\n};\n\nconst MerchantRentalAssetManager = () => {\n const history = useHistory();\n\n const [assets, setAssets] = React.useState([]);\n const [loading, setLoading] = React.useState(false);\n\n const getAssetIdFromRentalUrl = (): string => {\n const pathMatch = window.location.pathname.match(/.*\\/rental\\/assets\\/(.*)\\/.*/);\n if (pathMatch && pathMatch.length > 1) {\n return pathMatch[1];\n } else {\n return '';\n }\n };\n\n // Create a list of unique asset names\n const assetGroups: [string, RentalAsset[]][] = Object.entries(\n assets.reduce((acc, curr) => ({ ...acc, [curr.Name]: [...(acc[curr.Name] || []), curr] }), {})\n );\n assetGroups.sort((a, b) => (a[0] < b[0] ? -1 : 1));\n\n const selectedAsset = assets.find((a) => a.ID === getAssetIdFromRentalUrl());\n\n const fetchAssets = async () => {\n setLoading(assets.length === 0);\n try {\n const assets = await getMerchantRentalAssets();\n\n // It's possible that the asset that the merchant is currently viewing has\n // been removed, even though there are other assets with the same name. In\n // that case, find an alternative asset with the same name to ensure that\n // there is continuity in the UX.\n if (selectedAsset && !assets.find((a) => a.ID === selectedAsset.ID)) {\n const replacementAsset = assets.find((a) => a.Name === selectedAsset.Name);\n if (replacementAsset) {\n history.replace(`/rental/assets/${replacementAsset.ID}/view`);\n } else {\n history.replace('/rental/assets');\n }\n }\n\n setAssets(assets);\n } finally {\n setLoading(false);\n }\n };\n\n React.useEffect(() => {\n fetchAssets();\n }, []);\n\n const onCreateAsset = () => history.push(`/rental/assets/create`);\n const onViewAsset = (assetId: string) => history.push(`/rental/assets/${assetId}/view`);\n\n return (\n <>\n {loading && (\n \n \n \n )}\n {!loading && (\n <>\n \n \n \n \n \n \n Asset Name\n Type\n Value\n Description\n Quantity\n \n \n \n \n {assetGroups.map(([name, assets]) => (\n onViewAsset(assets[0].ID)}>\n {assets[0].Name}\n {assets[0].Type}\n \n {new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'usd',\n maximumFractionDigits: 0\n }).format(assets[0].Value)}\n \n {assets[0].Description}\n {assets.length}\n \n \n \n \n ))}\n \n \n \n )}\n {!loading && assets.length === 0 && (\n

\n No rental assets has been added yet. Click on \"Create Asset\" above to start.\n

\n )}\n\n 0 &&\n /^\\/rental\\/assets\\/.*\\/view/.test(location.pathname)\n }\n onClose={() => history.replace('/rental/assets')}\n onBack={() => history.replace('/rental/assets')}\n >\n \n history.replace('/rental/assets')}\n />\n \n \n\n history.replace('/rental/assets')}\n onBack={() => history.replace('/rental/assets')}\n >\n \n {\n await fetchAssets();\n history.replace(`/rental/assets/${asset.ID}/view`);\n }}\n />\n \n \n \n );\n};\n\nconst MerchantRentalSettings = () => {\n const history = useHistory();\n\n const [merchant, setMerchant] = React.useState();\n const [configuration, setConfiguration] = React.useState();\n\n const [loading, setLoading] = React.useState(false);\n const [updateLoading, setUpdateLoading] = React.useState(false);\n const [updated, setUpdated] = React.useState(false);\n const [error, setError] = React.useState();\n\n const onFetchData = async () => {\n setLoading(true);\n try {\n const [merchant, config] = await Promise.all([\n getMerchantAccount(),\n getMerchantRentalConfiguration()\n ]);\n setMerchant(merchant.Merchant);\n setConfiguration(config.Configuration);\n } finally {\n setLoading(false);\n }\n };\n\n const onUpdate = async (\n fn: (config: MerchantRentalConfiguration) => MerchantRentalConfiguration\n ) => {\n // Store the original config so we can revert to it in case of an error\n const origConfig = configuration ? { ...configuration } : configuration;\n const updatedConfig = configuration ? fn(configuration).Details : {};\n\n // Set the loading flag and tentatively update the policy with the\n // desired changes.\n setUpdateLoading(true);\n setUpdated(false);\n setError(undefined);\n setConfiguration((config) => (config ? fn(config) : config));\n\n try {\n // Update the policy and set the policy based on the backend response,\n // which may have rejected the update.\n const res = await updateMerchantRentalConfiguration(updatedConfig);\n setConfiguration(res.Configuration);\n setUpdated(true);\n } catch (e) {\n // If there was an error, revert to the original policy\n const err = WrappedError.asWrappedError(e);\n setConfiguration(origConfig);\n setError(err.message);\n } finally {\n // In any case, set the loading flag to false\n setUpdateLoading(false);\n }\n };\n\n React.useEffect(() => {\n onFetchData();\n }, []);\n\n return (\n <>\n {loading && (\n \n \n \n )}\n {!loading && configuration && (\n <>\n \n \n \n \n onUpdate((prev) => ({\n ...prev,\n Details: { ...prev.Details, BillingMode: BillingMode.Customer }\n }))\n }\n image={}\n />\n history.push('/rental/settings/merchant-billing')}\n image={}\n />\n \n \n \n {\n if (!configuration?.Details.UnifiedWaiverFlowEnabled) {\n history.push('/rental/settings/unified-waiver-flow');\n } else {\n onUpdate((prev) => ({\n ...prev,\n Details: {\n ...prev.Details,\n UnifiedWaiverFlowEnabled: false\n }\n }));\n }\n }}\n />\n {configuration?.Details.UnifiedWaiverFlowEnabled && (\n
\n \n Manage rental documents\n \n
\n )}\n \n
\n {(updated || error) && (\n
\n {updated && (\n \n \n
Saved!
\n
\n )}\n {error && (\n \n \n
{error}
\n \n )}\n \n )}\n \n )}\n\n history.replace('/rental/settings')}\n onBack={() => history.replace('/rental/settings')}\n >\n \n {\n onUpdate((prev) => ({\n ...prev,\n Details: { ...prev.Details, BillingMode: BillingMode.Merchant }\n }));\n history.replace('/rental/settings');\n }}\n />\n \n \n\n history.replace('/rental/settings')}\n onBack={() => history.replace('/rental/settings')}\n >\n \n {\n onUpdate((prev) => ({\n ...prev,\n Details: { ...prev.Details, UnifiedWaiverFlowEnabled: enabled }\n }));\n history.replace('/rental/settings');\n }}\n />\n \n \n \n );\n};\n\nconst MerchantRentalResources = () => {\n const [configuration, setConfiguration] = React.useState();\n const [referralLink, setReferralLink] = React.useState();\n const [qrCode, setQrCode] = React.useState();\n\n const [loading, setLoading] = React.useState(false);\n const [downloadLoading, setDownloadLoading] = React.useState(false);\n const [error, setError] = React.useState();\n\n const onFetchData = async () => {\n setLoading(true);\n try {\n const config = await getMerchantRentalConfiguration();\n setConfiguration(config.Configuration);\n setReferralLink(config.ReferralLink);\n setQrCode(config.QRCodeBase64);\n } finally {\n setLoading(false);\n }\n };\n\n const onDownload = async () => {\n setError(undefined);\n setDownloadLoading(true);\n requestQRCodePdf()\n .then((res) => {\n const binaryString = window.atob(res.DocumentZip);\n const binaryLen = binaryString.length;\n\n const arrayBuffer = new ArrayBuffer(binaryLen);\n const intArray = new Uint8Array(arrayBuffer);\n for (let i = 0; i < binaryLen; i++) {\n intArray[i] = binaryString.charCodeAt(i);\n }\n\n const blob = new Blob([arrayBuffer], { type: 'application/zip' });\n window.open(URL.createObjectURL(blob), '_self');\n })\n .catch(() => {\n setError(\n 'Seems like something went wrong, please contact partners@withoyster.com to get your marketing kit!'\n );\n })\n .finally(() => setDownloadLoading(false));\n };\n\n React.useEffect(() => {\n onFetchData();\n }, []);\n\n return (\n <>\n {loading && (\n \n \n \n )}\n {!loading && configuration && (\n <>\n \n \n

\n Download and print this QR code. We recommend attaching it to every asset you rent\n out and writing the name and serial number for your customers to easily reference.\n

\n {qrCode && (\n \n )}\n {referralLink && (\n
\n \n
\n )}\n

\n Oyster also provides a co-branded marketing kit which includes a flyer summarizing\n the coverages of the waiver and the same QR code your customers can use to purchase\n a waiver. We recommend putting this up in your shop and sending it digitally for\n every reservation.\n

\n \n }\n loading={downloadLoading}\n onClick={onDownload}\n >\n Download your kit\n \n \n {error && {error}}\n \n
\n \n )}\n \n );\n};\n\nconst monthList = [\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\nconst getMonthsDate = (today: Date) =>\n [0, 1, 2, 3, 4, 5, 6].map((diff) => ({\n start: Date.UTC(today.getUTCFullYear(), today.getUTCMonth() - diff, 1, 0, 0, 0, 0),\n end: Date.UTC(today.getUTCFullYear(), today.getUTCMonth() + 1 - diff, 1, 0, 0, 0, 0)\n }));\n\nconst getMonthName = (date: Date): string => monthList[date.getUTCMonth()];\n\nexport const MerchantRentalStatementsPage = (props: { waivers: WaiverEntry[] }) => {\n const monthOptions = getMonthsDate(new Date()).map(({ start, end }) => ({\n title: `${getMonthName(new Date(start))} ${new Date(start).getUTCFullYear()}`,\n start,\n end\n }));\n\n const [selectedMonth, setSelectedMonth] = React.useState(monthOptions[0]);\n const waivers = props.waivers.filter(\n (w): w is { Waiver: RentalWaiver; Booking: RentalBooking } =>\n !!w.Waiver &&\n !!w.Booking &&\n [WaiverState.active, WaiverState.expired].includes(w.Waiver.State) &&\n new Date(w.Booking.StartTime).getTime() >= selectedMonth.start &&\n new Date(w.Booking.StartTime).getTime() < selectedMonth.end\n );\n\n return (\n
\n \n \n ({ value: o.title }))}\n onChange={(value) => setSelectedMonth(monthOptions.find((m) => m.title === value)!)}\n />\n \n \n {waivers.length === 0 &&

No waivers in this billing period.

}\n {waivers.length > 0 && }\n \n
\n
\n );\n};\n\nconst MerchantRentalStatement = (props: {\n waivers: { Waiver: RentalWaiver; Booking: RentalBooking }[];\n}) => {\n const calculateDuration = (booking: RentalBooking) => {\n const days = Math.ceil(\n (new Date(booking.EndTime).getTime() - new Date(booking.StartTime).getTime()) /\n (24 * 60 * 60 * 1000)\n );\n\n if (days === 1) {\n return `${days} day`;\n }\n\n return `${days} days`;\n };\n\n return (\n ({\n waiverId: waiver.Waiver.ID,\n date: new Date(waiver.Booking.StartTime).toLocaleDateString(),\n customer:\n waiver.Booking.Details.Insured.FirstName + ' ' + waiver.Booking.Details.Insured.LastName,\n assets:\n waiver.Waiver.Details.Assets?.map(\n (a) => a.Asset?.Name || a.BookingLineItem?.Name || ''\n ).filter((a) => !!a) || [],\n rentalDuration: calculateDuration(waiver.Booking),\n premium: waiver.Waiver.Details.Premium.Total,\n adjustments: [\n {\n description: 'Paid by customer',\n show: waiver.Waiver?.Details.BillingMode !== BillingMode.Merchant,\n amount: -waiver.Waiver.Details.Premium.Total\n },\n {\n description: 'Merchant Fee',\n show: waiver.Waiver.Details.Premium.MerchantFeeAmount > 0,\n amount: -waiver.Waiver.Details.Premium.MerchantFeeAmount\n }\n ].filter((a) => a.show)\n }))}\n />\n );\n};\n\nexport const MerchantRentalPage = () => {\n const history = useHistory();\n const location = useLocation();\n\n const [merchant, setMerchant] = React.useState();\n const [configuration, setConfiguration] = React.useState();\n const [loading, setLoading] = React.useState(false);\n\n const onFetchData = async () => {\n setLoading(true);\n try {\n const merchant = await getMerchantAccount();\n setMerchant(merchant.Merchant);\n const config = await getMerchantRentalConfiguration();\n setConfiguration(config.Configuration);\n } finally {\n setLoading(false);\n }\n };\n\n React.useEffect(() => {\n onFetchData();\n }, []);\n\n const getWaiverIdFromRentalUrl = (): string => {\n const pathMatch = window.location.pathname.match(/.*\\/rental\\/overview\\/waiver\\/(.*)\\/.*/);\n if (pathMatch && pathMatch.length > 1) {\n return pathMatch[1];\n } else {\n return '';\n }\n };\n\n const getBookingIdFromRentalUrl = (): string => {\n const pathMatch = window.location.pathname.match(/.*\\/rental\\/overview\\/booking\\/(.*)\\/.*/);\n if (pathMatch && pathMatch.length > 1) {\n return pathMatch[1];\n } else {\n return '';\n }\n };\n\n return (\n <>\n \n \n {loading && }\n {!loading &&\n merchant &&\n (!configuration || configuration?.Details.State !== RentalPolicyState.approved) && (\n history.replace('/rental')}\n />\n )}\n\n {!loading &&\n merchant &&\n configuration &&\n configuration?.Details.State === RentalPolicyState.approved && (\n (\n \n {(waivers) => (\n \n )}\n \n )\n },\n {\n path: '/assets',\n title: 'Asset Manager',\n render: () => \n },\n {\n path: '/resources',\n title: 'Resources',\n render: () => \n },\n {\n path: '/statements',\n title: 'Statements',\n render: () => (\n \n {(waivers) => }\n \n )\n },\n {\n path: '/settings',\n title: 'Settings',\n render: () => \n }\n ]}\n />\n )}\n\n history.replace('/rental/overview')}\n onBack={() => history.replace('/rental/overview')}\n >\n \n {\n onFetchData();\n if (showConfirmationInDashboard) {\n history.push(`/rental/overview/booking/${booking.ID}/view`);\n } else {\n history.push(`/rental/overview/waiver/${waiver.ID}/sent`);\n }\n }}\n />\n \n \n\n history.replace('/rental/overview')}\n onBack={() => history.replace('/rental/overview')}\n >\n \n history.push('/rental/overview/waiver/create')}\n onViewWaiver={(waiver) => history.push(`/rental/overview/waiver/${waiver.ID}/edit`)}\n onFileClaim={(waiver) => history.push(`/rental/overview/waiver/${waiver.ID}/claim`)}\n />\n \n \n\n history.replace('/rental/overview')}\n onBack={() => history.replace('/rental/overview')}\n >\n \n history.replace('/rental/overview')} />\n \n \n\n history.replace('/rental/overview')}\n onBack={() => history.replace('/rental/overview')}\n >\n \n {\n if (booking) {\n history.replace(`/rental/overview/booking/${booking.ID}/view`);\n } else {\n history.replace('/rental/overview');\n }\n }}\n />\n \n \n \n \n \n );\n};\n","import * as React from 'react';\nimport { IoCheckmark, IoCopyOutline, IoPaperPlane } from 'react-icons/io5';\n\nimport { Button } from '@oysterjs/ui/Button';\nimport { TextInput } from '@oysterjs/ui/Form/text';\nimport { TwoPaneContainer } from '@oysterjs/ui/Page';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport { VerticalLayout, VerticalLayoutItem } from '@oysterjs/ui/VerticalLayout';\nimport config from '@oysterjs/core/config';\nimport { Merchant, ReferralStatus } from '@oysterjs/types';\nimport { PageTitle } from '@oysterjs/ui/Page/section';\nimport { getMerchantReferralList } from '@oysterjs/core/api/merchant';\n\nconst ActivityItem = (props: {\n referree: string;\n date: string;\n amount: string;\n last?: boolean;\n}) => (\n } last={props.last}>\n <>\n \n
{props.referree}
\n
{props.amount}
\n \n
{props.date}
\n \n
\n);\n\nconst ReferralList = () => {\n return (\n <>\n

Your Referrals

\n \n r.filter((r) => r.Status === ReferralStatus.fulfilled)\n )}\n inline\n >\n {(data) => (\n <>\n {data.length === 0 &&

No referrals yet.

}\n {data.length > 0 && (\n \n {data.map((referral, i) => (\n \n ))}\n \n )}\n \n )}\n \n \n );\n};\n\nconst getInviteLinkHost = (): string => {\n const [, user] = window.location.host.split('.');\n switch (config().environment) {\n case 'production':\n return 'https://withoyster.com/m/invite';\n case 'staging':\n return 'https://withoyster.com/m/invite-staging';\n case 'dev':\n case 'local':\n return `https://withoyster.com/m/invite-dev-${user}`;\n }\n};\n\nexport const InvitePage = (props: { merchant: Merchant }): JSX.Element => {\n const link = `${getInviteLinkHost()}/${props.merchant.PublicHandle}`;\n\n const [copyClicked, setCopyClicked] = React.useState(false);\n\n React.useEffect(() => {\n if (!copyClicked) {\n return;\n }\n\n if (navigator && navigator.clipboard && navigator.clipboard.writeText) {\n navigator.clipboard.writeText(link).catch(() => 0);\n }\n\n const timeout = setTimeout(() => {\n setCopyClicked(false);\n }, 2000);\n\n return () => clearTimeout(timeout);\n }, [copyClicked]);\n\n return (\n }>\n \n For each merchant that joins Oyster using your referral link, you'll both receive $100.{' '}\n \n Terms apply\n \n .\n \n }\n />\n \n

Share your link

\n
\n
\n
\n \n
\n
\n : }\n primary\n disabled={copyClicked}\n onClick={() => setCopyClicked(true)}\n onPointerUp={() => setCopyClicked(true)}\n >\n Copy Link\n \n
\n
\n
\n
\n );\n};\n","import styled from 'styled-components';\n\nexport const ActionsContainer = styled.div`\n display: flex;\n flex-direction: row;\n margin: 12px 0px 12px 0px;\n gap: 12px;\n`;\n\nexport const Action = styled.button`\n border: 0;\n\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 6px;\n\n padding: 8px 16px;\n border-radius: 30px;\n user-select: none;\n\n font-size: 0.7em;\n font-weight: 500;\n\n justify-content: center;\n\n color: #333333;\n background: #eaeaea;\n font-family: 'Rubik', 'Helvetica Neue', 'Helvetica', Arial, sans-serif;\n cursor: pointer;\n\n transition: all 0.15s ease-in-out;\n\n svg {\n font-size: 1.2em;\n }\n\n &:hover {\n background: #e6e6e6;\n }\n\n &:active {\n background: #cccccc;\n }\n`;\n","'use client';\n\nimport * as Headless from '@headlessui/react';\nimport clsx from 'clsx';\nimport React, { Fragment } from 'react';\n\nexport function Listbox({\n className,\n placeholder,\n autoFocus,\n 'aria-label': ariaLabel,\n children: options,\n ...props\n}: {\n className?: string;\n placeholder?: React.ReactNode;\n autoFocus?: boolean;\n 'aria-label'?: string;\n children?: React.ReactNode;\n} & Omit, 'multiple'>) {\n return (\n \n \n {placeholder}\n }\n className={clsx([\n // Basic layout\n 'relative block w-full appearance-none rounded-lg py-[calc(theme(spacing[2.5])-1px)] sm:py-[calc(theme(spacing[1.5])-1px)]',\n // Set minimum height for when no value is selected\n 'min-h-11 sm:min-h-9',\n // Horizontal padding\n 'pl-[calc(theme(spacing[3.5])-1px)] pr-[calc(theme(spacing.7)-1px)] sm:pl-[calc(theme(spacing.3)-1px)]',\n // Typography\n 'text-left text-base/6 text-neutral-950 placeholder:text-neutral-400 sm:text-sm/6 dark:text-white forced-colors:text-[CanvasText]',\n // Border\n 'border border-neutral-950/10 group-data-[active]:border-neutral-950/20 group-data-[hover]:border-neutral-950/20 dark:border-white/10 dark:group-data-[active]:border-white/20 dark:group-data-[hover]:border-white/20',\n // Background color\n 'bg-transparent dark:bg-white/5',\n // Invalid state\n 'group-data-[invalid]:border-red-500 group-data-[invalid]:group-data-[hover]:border-red-500 group-data-[invalid]:dark:border-red-600 group-data-[invalid]:data-[hover]:dark:border-red-600',\n // Disabled state\n 'group-data-[disabled]:border-neutral-950/20 group-data-[disabled]:opacity-100 group-data-[disabled]:dark:border-white/15 group-data-[disabled]:dark:bg-white/[2.5%] dark:data-[hover]:group-data-[disabled]:border-white/15'\n ])}\n />\n \n \n \n \n \n \n \n \n {options}\n \n \n );\n}\n\nexport function ListboxOption({\n children,\n className,\n ...props\n}: { className?: string; children?: React.ReactNode } & Omit<\n Headless.ListboxOptionProps<'div', T>,\n 'className'\n>) {\n const sharedClasses = clsx(\n // Base\n 'flex min-w-0 items-center',\n // Icons\n '[&>[data-slot=icon]]:size-5 [&>[data-slot=icon]]:shrink-0 sm:[&>[data-slot=icon]]:size-4',\n '[&>[data-slot=icon]]:text-neutral-500 [&>[data-slot=icon]]:group-data-[focus]/option:text-white [&>[data-slot=icon]]:dark:text-neutral-400',\n 'forced-colors:[&>[data-slot=icon]]:text-[CanvasText] forced-colors:[&>[data-slot=icon]]:group-data-[focus]/option:text-[Canvas]',\n // Avatars\n '[&>[data-slot=avatar]]:-mx-0.5 [&>[data-slot=avatar]]:size-6 sm:[&>[data-slot=avatar]]:size-5'\n );\n\n return (\n \n {({ selectedOption }) => {\n if (selectedOption) {\n return
{children}
;\n }\n\n return (\n \n
\n );\n}\n\nexport function ListboxLabel({ className, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n \n );\n}\n\nexport function ListboxDescription({\n className,\n children,\n ...props\n}: React.ComponentPropsWithoutRef<'span'>) {\n return (\n \n {children}\n \n );\n}\n","import styled from 'styled-components';\n\nconst OysterLogoOldContainer = styled.div<{ inline?: boolean }>`\n display: ${(props) => (props.inline ? 'inline-block' : 'flex')};\n vertical-align: middle;\n justify-content: left;\n align-items: center;\n padding: ${(props) => (props.inline ? '0' : '10px 10px 10px 0px')};\n\n svg {\n vertical-align: middle;\n }\n`;\n\nconst OysterWordMarkContainer = styled.div`\n display: inline-block;\n vertical-align: middle;\n justify-content: left;\n align-items: center;\n padding: 0;\n\n svg {\n vertical-align: middle;\n }\n`;\n\nexport const OysterLogo = ({\n scale,\n color,\n className\n}: {\n scale?: number;\n color?: string;\n className?: string;\n}): JSX.Element => (\n
\n \n \n \n \n \n \n
\n);\n\nexport const OysterLogoOld = ({\n scale,\n inline,\n verticalAlign,\n light,\n color,\n textTransform\n}: {\n scale?: number;\n verticalAlign?: string;\n inline?: boolean;\n light?: boolean;\n color?: string;\n textTransform?: string;\n}): JSX.Element => (\n \n \n \n \n \n \n \n \n \n);\n\nexport const OysterWordMark = ({\n scale,\n forceLight\n}: {\n scale?: number;\n forceLight?: boolean;\n}): JSX.Element => (\n \n \n \n \n \n \n \n \n \n);\n","import clsx from 'clsx';\nimport React from 'react';\n\ntype HeadingProps = { level?: 1 | 2 | 3 | 4 | 5 | 6 } & React.ComponentPropsWithoutRef<\n 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n>;\n\nexport function Heading({ className, level = 1, ...props }: HeadingProps) {\n const Element: `h${typeof level}` = `h${level}`;\n\n return ;\n}\n\nexport function Subheading({ className, level = 2, ...props }: HeadingProps) {\n const Element: `h${typeof level}` = `h${level}`;\n\n return (\n \n );\n}\n","import React from 'react';\n\nimport {\n ApplicationFieldsFragment,\n ApplicationQuotableCarrierFieldsFragment,\n ApplicationQuoteFieldsFragment,\n GetBusinessApplicationDocument,\n GetBusinessApplicationQuery\n} from '../../types/graphql';\nimport { getMerchantGraphQLClient } from '@oysterjs/core/api/merchant';\nimport { ApolloError } from '@apollo/client';\n\nexport const ApplicationContext = React.createContext<\n ReturnType\n>({} as ReturnType);\n\nexport type BusinessApplication = ApplicationFieldsFragment &\n ApplicationQuoteFieldsFragment &\n ApplicationQuotableCarrierFieldsFragment;\n\nexport const useBusinessApplicationProvider = (\n id: string,\n includeQuotes: boolean,\n includeQuotableCarriers: boolean\n) => {\n const [application, setApplication] = React.useState();\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n\n const getApplication = async () => {\n const [res] = await Promise.all([\n getMerchantGraphQLClient()\n .query({\n errorPolicy: 'all',\n query: GetBusinessApplicationDocument,\n variables: { id, includeQuotes, includeQuotableCarriers }\n })\n .then((res) => {\n if (res.data?.businessApplication) {\n return res.data.businessApplication;\n }\n if (res.error?.message) {\n throw res.error;\n }\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n throw new Error('Application not found');\n }),\n new Promise((resolve) => setTimeout(resolve, 500))\n ]);\n\n return res;\n };\n\n const loadApplication = async (): Promise => {\n if (!id || loading) {\n return null;\n }\n\n setLoading(true);\n\n try {\n const res = await getApplication();\n setApplication(res);\n return res;\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n\n return null;\n };\n\n return {\n applicationId: id,\n application,\n loading,\n error,\n setError,\n updateApplication: setApplication,\n loadApplication,\n getApplication\n };\n};\n","import React from 'react';\nimport { useLocation } from 'react-router';\nimport styled from 'styled-components';\n\nimport { OysterWordMark } from '@oysterjs/ui/Logo';\nimport { Heading } from '@oysterjs/uiv2/heading';\nimport { useWindowScrollPosition } from '@oysterjs/core/window';\nimport { ApplicationContext, BusinessApplication, useBusinessApplicationProvider } from './context';\nimport { CSSTransition, SwitchTransition } from 'react-transition-group';\nimport { ErrorComponentV2 } from '@oysterjs/ui/ErrorBoundary';\nimport { BusinessApplicationState } from '../../types/graphql';\nimport { useHistory } from 'react-router-dom';\n\nconst ProgressBar = (props: { progress: number }) => {\n const scrollPos = useWindowScrollPosition();\n\n return (\n
\n \n
\n );\n};\n\nexport const ApplicationWrapper = (\n props: React.PropsWithChildren<{\n id: string;\n includeQuotes?: boolean;\n includeQuotableCarriers?: boolean;\n }>\n) => {\n const value = useBusinessApplicationProvider(\n props.id,\n !!props.includeQuotes,\n !!props.includeQuotableCarriers\n );\n return !props.id ? null : (\n {props.children}\n );\n};\n\nexport const TransitionContainer = styled.div`\n .fade-enter,\n &.fade-enter {\n opacity: 0;\n }\n .fade-enter-active,\n &.fade-enter-active {\n opacity: 1;\n transition: 0.15s opacity ease;\n }\n .fade-exit,\n &.fade-exit {\n opacity: 1;\n }\n .fade-exit-active,\n &.fade-exit-active {\n opacity: 0;\n transition: 0.15s opacity ease;\n }\n\n .fade-500-enter,\n &.fade-500-enter {\n opacity: 0;\n }\n .fade-500-enter-active,\n &.fade-500-enter-active {\n opacity: 1;\n transition: 0.5s opacity ease;\n }\n .fade-500-exit,\n &.fade-500-exit {\n opacity: 1;\n }\n .fade-500-exit-active,\n &.fade-500-exit-active {\n opacity: 0;\n transition: 0.5s opacity ease;\n }\n`;\n\nexport const PageWrapper = (\n props: React.PropsWithChildren<{\n title: string;\n description: string;\n progress: number;\n loading?: boolean;\n loader?: () => Promise;\n skeleton?: JSX.Element;\n }>\n) => {\n const { application, loading, error, loadApplication } = React.useContext(ApplicationContext);\n const location = useLocation();\n const history = useHistory();\n const loader =\n props.loader ||\n (() =>\n loadApplication().then((res) => {\n if (res?.state == BusinessApplicationState.Submitted) {\n history.push(`/commercial/app/${res.id}/complete`);\n }\n }));\n\n React.useEffect(() => {\n window.scroll({ top: 0 });\n loader();\n }, [location.pathname]);\n\n return (\n
\n \n
\n
\n
\n \n
\n\n \n \n \n {!error && (\n <>\n {application?.businessName && (\n \n {application.businessName}\n \n )}\n {!application?.businessName && (\n
\n )}\n \n {props.title}\n \n

\n {props.description}\n

\n \n )}\n {error && }\n \n \n \n\n \n \n \n {(!application || loading || props.loading) && !error && props.skeleton}\n {!!application && !loading && !props.loading && !error && props.children}\n \n \n \n
\n
\n
\n );\n};\n","import * as React from 'react';\nimport { IoDownloadOutline, IoOpenOutline } from 'react-icons/io5';\nimport { Badge } from '@oysterjs/ui/Badge';\n\nimport { PageTitle } from '@oysterjs/ui/Page/section';\nimport { Action, ActionsContainer } from './table';\nimport config from '@oysterjs/core/config';\nimport {\n BusinessInsuranceType,\n BusinessOperationType,\n Merchant,\n MerchantUser,\n ProductType\n} from '@oysterjs/types';\nimport {\n PolicyState,\n FileRole,\n GetCertificateQuery,\n GetCertificateDocument,\n File,\n GenerateCertificateInput,\n useGenerateCertificateMutation,\n InsuranceType,\n AddressInput,\n MerchantFieldsFragment,\n FileFieldsFragment\n} from '../../../types/graphql';\nimport {\n GetMerchantBusinessPolicyDocument,\n GetMerchantBusinessPolicyQuery,\n ValidationError\n} from '../../../types/graphql';\nimport { getDisplayInsuranceType } from '../../../types/map';\nimport { openPageInNewTab } from '@oysterjs/core/window';\nimport { useHistory, useLocation } from 'react-router';\nimport { Slideout } from '@oysterjs/uiv2/slideout';\nimport ErrorBoundary, { ErrorBoundaryV2 } from '@oysterjs/ui/ErrorBoundary';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport { getMerchantGraphQLClient } from '@oysterjs/core/api/merchant';\nimport { Button } from '@oysterjs/uiv2/button';\nimport clsx from 'clsx';\nimport { NavLink } from 'react-router-dom';\nimport { DocumentPlusIcon, ExclamationTriangleIcon } from '@heroicons/react/24/outline';\nimport { BusinessPolicyFieldsFragment } from '../../../types/graphql';\nimport {\n Description,\n ErrorMessage,\n Field,\n FieldGroup,\n Fieldset,\n Label\n} from '@oysterjs/uiv2/fieldset';\nimport { Input } from '@oysterjs/uiv2/input';\nimport { Textarea } from '@oysterjs/uiv2/textarea';\nimport { Listbox } from '@oysterjs/uiv2/listbox';\nimport { AddressForm, RadioField } from '../../commercial/form';\nimport { TransitionContainer } from '../../commercial/common';\nimport { CheckCircleIcon } from '@heroicons/react/20/solid';\nimport { ApolloError } from '@apollo/client';\nimport * as Headless from '@headlessui/react';\n\nconst getFormId = (): string => {\n switch (config().environment) {\n case 'production':\n return 'vtaJwrn7SEus';\n default:\n return 'ohCv6cYeRaus';\n }\n};\n\nconst toNumber = (s?: string) => s?.replace(/[^\\d.]/g, '');\n\nconst getFilloutParameters = (merchant: Merchant, merchantUser: MerchantUser) => ({\n 'data-first_name': merchantUser.FirstName,\n 'data-last_name': merchantUser.LastName,\n 'data-email': merchantUser.Email,\n 'data-phone': merchant.BusinessProfile.Phone,\n 'data-merchant_id': merchant.ID,\n 'data-business_name': merchant.BusinessProfile.Name,\n 'data-dba_name': merchant.BusinessProfile.DBA,\n 'data-website': merchant.BusinessProfile.Domain,\n 'data-address_line_1': merchant.BusinessProfile.Address.AddressLine1,\n 'data-address_line_2': merchant.BusinessProfile.Address.AddressLine2,\n 'data-address_city': merchant.BusinessProfile.Address.City,\n 'data-address_state': merchant.BusinessProfile.Address.Zone,\n 'data-address_zip_code': merchant.BusinessProfile.Address.PostalCode,\n 'data-business_type':\n {\n [ProductType.bike]: 'BIKES',\n [ProductType.jewelry]: 'JEWELRY',\n [ProductType.electronics]: 'ELECTRONICS'\n }[merchant.BusinessProfile.ProductVerticals?.[0] || ''] ||\n merchant.BusinessProfile.ProductVerticals?.[0],\n 'data-insurance_types': merchant.BusinessProfile.Personalization.BusinessInsuranceTypes?.map(\n (t) =>\n ({\n [BusinessInsuranceType.BusinessOwners]: 'BUSINESS_OWNERS',\n [BusinessInsuranceType.CommercialAuto]: 'AUTO',\n [BusinessInsuranceType.Cyber]: 'CYBER',\n [BusinessInsuranceType.DirectorsAndOfficers]: 'DIRECTORS_OFFICERS',\n [BusinessInsuranceType.GeneralLiability]: 'GENERAL_LIABILITY',\n [BusinessInsuranceType.JewelersBlock]: 'JEWELERS_BLOCK',\n [BusinessInsuranceType.Property]: 'PROPERTY',\n [BusinessInsuranceType.Rental]: 'RENTAL',\n [BusinessInsuranceType.ShippingAndTransportation]: 'SHIPPING',\n [BusinessInsuranceType.UmbrellaExcess]: 'UMBRELLA',\n [BusinessInsuranceType.WorkersCompensation]: 'WORKERS_COMP'\n })[t] ||\n merchant.BusinessProfile.Personalization.BusinessInsuranceTypesOtherDesc ||\n t\n ).join(','),\n 'data-operation_types': merchant.BusinessProfile.Personalization.BusinessOperationTypes?.map(\n (t) =>\n ({\n [BusinessOperationType.RetailECommerce]: 'RETAIL',\n [BusinessOperationType.ServiceOrRepair]: 'SERVICE',\n [BusinessOperationType.Wholesale]: 'WHOLESALE',\n [BusinessOperationType.Rental]: 'RENTAL',\n [BusinessOperationType.Manufacturing]: 'MANUFACTORING_DESIGN'\n })[t] ||\n merchant.BusinessProfile.Personalization.BusinessOperationTypesOtherDesc ||\n t\n ).join(','),\n 'data-own_brand': merchant.BusinessProfile.Personalization.BusinessManufactureOrWholesaleOwnBrand,\n 'data-revenue_retail': toNumber(\n merchant.BusinessProfile.Personalization.BusinessRevenueBreakdownRetail\n ),\n 'data-revenue_service': toNumber(\n merchant.BusinessProfile.Personalization.BusinessRevenueBreakdownServiceOrRepair\n ),\n 'data-revenue_wholesale': toNumber(\n merchant.BusinessProfile.Personalization.BusinessRevenueBreakdownWholesale\n ),\n 'data-revenue_rental': toNumber(\n merchant.BusinessProfile.Personalization.BusinessRevenueBreakdownRental\n ),\n 'data-revenue_manufacturing': toNumber(\n merchant.BusinessProfile.Personalization.BusinessRevenueBreakdownManufacturing\n ),\n 'data-revenue_other': toNumber(\n merchant.BusinessProfile.Personalization.BusinessRevenueBreakdownOther\n ),\n 'data-total_employee_payroll': toNumber(\n merchant.BusinessProfile.Personalization.BusinessTotalPayroll\n ),\n 'data-number_of_losses': toNumber(\n merchant.BusinessProfile.Personalization.BusinessNumberOfPriorLosses\n )\n});\n\nconst GetInsurance = (props: { merchant: Merchant; merchantUser: MerchantUser }) => {\n React.useEffect(() => {\n // Create script component.\n const script = document.createElement('script');\n script.id = 'fillout-embed';\n script.src = `//server.fillout.com/embed/v1/`;\n script.defer = true;\n\n // Add the script to the DOM\n document.head.appendChild(script);\n\n // Remove the script when the component unmounts\n return () => {\n document.head.removeChild(script);\n };\n }, []);\n\n const prefilledParameters = getFilloutParameters(props.merchant, props.merchantUser);\n\n return (\n <>\n

\n Submit the form to get a tailored quote for your business. Our commercial insurance team of\n experts will reach out soon upon submission.\n

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

\n Thank you for submitting your information. Our commercial insurance team of experts will reach\n out soon.\n

\n \n);\n\nconst statuses = {\n [PolicyState.Binding]: 'text-primary-700 bg-primary-50 ring-primary-600/20',\n [PolicyState.Inforce]: 'text-green-700 bg-green-50 ring-green-600/20',\n [PolicyState.Expired]: 'text-neutral-600 bg-neutral-50 ring-neutral-500/10',\n [PolicyState.Canceled]: 'text-red-700 bg-red-50 ring-red-600/10'\n};\n\nexport const CertificatesTable = (props: { certificates: FileFieldsFragment[] }) => (\n \n \n \n \n Certificate Holder\n \n \n \n \n \n \n \n {props.certificates.map((certificate) => (\n \n \n \n \n \n \n ))}\n \n
\n Certificate Number\n \n Creation Date\n \n Edit\n
\n {certificate.details?.certificateHolder.name}\n \n {certificate.details?.certificateNumber}\n \n {new Intl.DateTimeFormat('en-US').format(new Date(certificate.createdAt))}\n \n \n View\n , {certificate.details?.certificateNumber}\n \n
\n);\n\nconst ManageBusinessInsurance = (props: {\n merchant: Merchant;\n merchantUser: MerchantUser;\n graphMerchant: MerchantFieldsFragment;\n policies: BusinessPolicyFieldsFragment[];\n}) => {\n const urlParams = new URLSearchParams(\n Object.fromEntries(\n Object.entries(getFilloutParameters(props.merchant, props.merchantUser)).map(\n ([key, value]) => [key.replace(/^data-/, ''), value]\n )\n )\n );\n\n const filloutLink =\n config().environment === 'production'\n ? 'https://www.withoyster.com/business-insurance-app'\n : `https://form.fillout.com/t/${getFormId()}?${urlParams.toString()}`;\n\n const certificates = props.graphMerchant.files\n .filter((f) => f.role === FileRole.Certificate)\n .filter((f) => !!f.details?.certificateNumber);\n\n return (\n
\n
\n
\n
\n
\n

\n Your Coverage\n

\n

\n Details about your business insurance policies\n

\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n \n \n Coverage\n \n \n Status\n \n \n Carrier\n \n \n Expiration Date\n \n \n \n \n \n {props.policies.map((policy) => (\n \n \n \n \n \n \n \n ))}\n \n
\n Edit\n
\n
\n {getDisplayInsuranceType(policy.type)}\n
\n
\n {policy.policyNumber || 'N/A'}\n
\n
\n \n {titleCase(policy.state)}\n \n \n {policy.carrier.name}\n \n {!policy.expiresAt || isNaN(new Date(policy.expiresAt).getTime())\n ? 'N/A'\n : new Intl.DateTimeFormat('en-US').format(new Date(policy.expiresAt))}\n \n \n View\n , {getDisplayInsuranceType(policy.type)}\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n

\n Your Certificates\n

\n

\n Certificates of insurance you have created with Oyster\n

\n
\n {certificates.length > 0 && (\n
\n \n
\n )}\n
\n
\n
\n
\n
\n {certificates.length === 0 && (\n
\n \n

No certiciates

\n

\n Get started by creating a new certificate.\n

\n
\n \n
\n
\n )}\n {certificates.length > 0 && }\n
\n
\n
\n
\n
\n );\n};\n\nconst getPolicyBadge = (state: PolicyState) => {\n switch (state) {\n case PolicyState.Binding:\n return ;\n\n case PolicyState.Inforce:\n return ;\n\n case PolicyState.Expired:\n return ;\n\n default:\n return <>;\n }\n};\n\nconst titleCase = (s: string) =>\n s\n .split(/[\\s_]/g)\n .map((part) => part[0].toUpperCase() + part.substring(1).toLowerCase())\n .join(' ');\n\nconst unescapeSafe = (input: string) => {\n const doc = new DOMParser().parseFromString(input, 'text/html');\n return doc.documentElement.textContent;\n};\n\nconst ViewBusinessPolicy = (props: { policy: BusinessPolicyFieldsFragment }) => (\n
\n {[\n ['Carrier', props.policy.carrier.name],\n [\n 'Premium',\n new Intl.NumberFormat(undefined, { style: 'currency', currency: 'USD' }).format(\n props.policy.pricing.premium\n )\n ],\n [\n 'Total Charge',\n new Intl.NumberFormat(undefined, { style: 'currency', currency: 'USD' }).format(\n props.policy.pricing.total\n )\n ],\n ['Payment Mode', titleCase(props.policy.pricing.billingType)]\n ].map(([label, description]) => (\n
\n
{label}
\n
{description}
\n
\n ))}\n
\n
Documents
\n {!props.policy.files.length && (\n
No documents available yet
\n )}\n {!!props.policy.files.length && (\n
    \n {props.policy.files\n .filter((f) => !!f.url)\n .map((f) => (\n
  • \n \n {titleCase(f.role)} \n \n
  • \n ))}\n
\n )}\n
\n
\n);\n\nconst ViewCertificate = (props: { certificate: File }) => (\n <>\n \n \n openPageInNewTab(\n `${config().serviceBaseUrl.partners}/certificate/${\n props.certificate.details?.certificateNumber\n }`\n )\n }\n >\n Open Sharable Link \n \n openPageInNewTab(props.certificate.url || '')}>\n Download Certificate \n \n \n
\n {[\n ['Insured Name', unescapeSafe(props.certificate.details?.insured.name || '')],\n ['Insured Address', unescapeSafe(props.certificate.details?.insured.address || '')],\n [\n 'Certificate Holder Name',\n unescapeSafe(props.certificate.details?.certificateHolder.name || '')\n ],\n [\n 'Certificate Holder Address',\n unescapeSafe(props.certificate.details?.certificateHolder.address || '')\n ],\n [\n 'Description of Operations',\n unescapeSafe(props.certificate.details?.descriptionOfOperations || '')\n ]\n ].map(\n ([label, description]) =>\n !!description && (\n
\n
{label}
\n
{description}
\n
\n )\n )}\n
\n \n);\n\ntype AdditionalInsured = {\n id: string;\n type: string;\n address: AddressInput | null;\n title: string;\n description: string;\n policyType: InsuranceType;\n policyId: string;\n};\n\nconst CreateCertificate = (props: { policies: BusinessPolicyFieldsFragment[] }) => {\n const history = useHistory();\n const [generateCertificate, { loading }] = useGenerateCertificateMutation();\n\n const [validationErrors, setValidationErrors] = React.useState([]);\n const [error, setError] = React.useState();\n const [needsAgentAction, setNeedsAgentAction] = React.useState(false);\n\n // Define the form variables\n const [form, setForm] = React.useState<\n Omit & {\n additionalInsured: boolean | null;\n }\n >({\n additionalInsured: null,\n additionalInsuredRelationship: null,\n additionalInsuredRelationshipDescription: null,\n address: { line1: '', line2: '', city: '', zone: '', postalCode: '' },\n name: '',\n notes: ''\n });\n\n // Define the list of additional insureds that the user can select\n const [selectedAdditionalInsured, setSelectedAdditionalInsured] =\n React.useState(null);\n const additionalInsureds: AdditionalInsured[] = [\n ...(props.policies\n .filter(\n (p) =>\n p.state === PolicyState.Inforce &&\n [\n InsuranceType.BusinessOwners,\n InsuranceType.CommercialAuto,\n InsuranceType.GeneralLiability,\n InsuranceType.Package\n ].includes(p.type)\n )\n .flatMap(\n (p) =>\n p.details?.blanketAdditionalInsureds?.map((b) => ({\n id: b.type + ' /// ' + p.id + ' /// ' + 'blanket',\n type: 'blanket',\n address: null,\n title: b.type,\n description: b.description,\n policyType: p.type,\n policyId: p.id\n })) || []\n ) || []),\n ...(props.policies\n .filter(\n (p) =>\n p.state === PolicyState.Inforce &&\n [\n InsuranceType.BusinessOwners,\n InsuranceType.CommercialAuto,\n InsuranceType.GeneralLiability,\n InsuranceType.Package\n ].includes(p.type)\n )\n .flatMap(\n (p) =>\n p.details?.namedAdditionalInsureds?.map((n) => ({\n id: n.name + ' /// ' + p.id + ' /// ' + 'named',\n type: 'named',\n address: n.address,\n title: n.name,\n description: n.address.line1,\n policyType: p.type,\n policyId: p.id\n })) || []\n ) || [])\n ];\n\n // Define an update handler for the form\n const updateFormMulti = (\n fieldPartsList: string[][],\n update: (prev: typeof form) => typeof form\n ) => {\n fieldPartsList.forEach((fieldParts) =>\n setValidationErrors((prev) =>\n prev.filter(\n (e) =>\n e.field.length !== fieldParts.length || !e.field.every((v, i) => v === fieldParts[i])\n )\n )\n );\n setForm((prev) => update(prev));\n };\n\n const updateForm = (fieldParts: string[], update: (prev: typeof form) => typeof form) =>\n updateFormMulti([fieldParts], update);\n\n // Get the error message for a specific field\n const getError = (fieldParts: string[]) =>\n validationErrors.find(\n (e) => e.field.length === fieldParts.length && e.field.every((v, i) => v === fieldParts[i])\n )?.message;\n\n // Handle form submission, i.e. updating the application on the backend.\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n try {\n const res = await generateCertificate({\n variables: {\n req: {\n ...form,\n additionalInsured: form.additionalInsured || false,\n additionalInsuredRelationship: form.additionalInsured\n ? selectedAdditionalInsured?.title || 'other'\n : null\n }\n },\n errorPolicy: 'all'\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n\n if (res.data && !res.data.generateCertificate && validationErrors.length === 0) {\n setNeedsAgentAction(true);\n } else if (res.data?.generateCertificate?.details?.certificateNumber) {\n history.push(\n `/insurance/certificates/certificate/${res.data?.generateCertificate?.details?.certificateNumber}`\n );\n }\n } catch (e) {\n setError(e as ApolloError);\n }\n };\n\n // Reset the form\n const onReset = () => {\n setForm({\n name: '',\n address: { line1: '', line2: '', city: '', zone: '', postalCode: '' },\n additionalInsured: null,\n additionalInsuredRelationship: null,\n additionalInsuredRelationshipDescription: '',\n notes: ''\n });\n setNeedsAgentAction(false);\n };\n\n if (needsAgentAction) {\n return (\n <>\n
\n
\n
\n \n
\n
\n

Request Received

\n

\n Your request has been received. An agent will follow up via email with your\n completed certificate.\n

\n
\n
\n
\n \n \n );\n }\n\n return (\n \n
\n
\n \n {\n updateForm(['additionalInsured'], (prev) => ({\n ...prev,\n additionalInsured: val === 'true'\n }));\n }}\n error={getError(['additionalInsured'])}\n />\n\n {form.additionalInsured && (\n <>\n {additionalInsureds.length > 0 && (\n \n \n {\n setSelectedAdditionalInsured(val);\n updateForm(['additionalInsuredRelationship'], (prev) => ({\n ...prev,\n additionalInsuredRelationship: val?.title || null,\n additionalInsuredRelationshipDescription: null\n }));\n if (val?.type === 'named') {\n updateFormMulti(\n [\n ['name'],\n ['address', 'line1'],\n ['address', 'line2'],\n ['address', 'city'],\n ['address', 'zone'],\n ['address', 'postalCode']\n ],\n (prev) => ({\n ...prev,\n name: val?.title || prev.name,\n address: val?.address || prev.address\n })\n );\n } else {\n updateFormMulti(\n [\n ['name'],\n ['address', 'line1'],\n ['address', 'line2'],\n ['address', 'city'],\n ['address', 'zone'],\n ['address', 'postalCode']\n ],\n (prev) => ({\n ...prev,\n name: '',\n address: {\n line1: '',\n line2: '',\n city: '',\n zone: '',\n postalCode: ''\n }\n })\n );\n }\n }}\n invalid={!!getError(['additionalInsuredRelationship'])}\n className=\"w-full truncate\"\n >\n {additionalInsureds.map((ai) => (\n \n ))}\n \n \n {getError(['additionalInsuredRelationship'])}\n \n )}\n {(additionalInsureds.length === 0 || selectedAdditionalInsured?.id === 'other') && (\n \n \n \n Describe the relationship between the certificate holder and the insured.\n \n {\n const val = e.currentTarget.value;\n updateForm(['additionalInsuredRelationshipDescription'], (prev) => ({\n ...prev,\n additionalInsuredRelationshipDescription: val\n }));\n }}\n invalid={!!getError(['additionalInsuredRelationshipDescription'])}\n />\n \n {getError(['additionalInsuredRelationshipDescription'])}\n \n \n )}\n {(additionalInsureds.length === 0 || selectedAdditionalInsured?.id === 'other') && (\n
\n
\n
\n \n
\n
\n

\n Additional Review Required\n

\n

\n In order to make sure your policy extends coverage to this party, Oyster\n will perform a manual review. In most cases, you'll receive your\n certificate within 24 hours, but the process may take up to several\n business days depending on complexity. Our agents will follow up via\n email.\n

\n
\n
\n
\n )}\n \n )}\n
\n\n {form.additionalInsured !== null && (\n \n \n \n \n Enter the name of the party that will receive and hold the certificate.\n \n {\n const val = e.currentTarget.value;\n updateForm(['name'], (prev) => ({ ...prev, name: val }));\n }}\n invalid={!!getError(['name'])}\n />\n {getError(['name'])}\n \n \n )}\n\n {form.additionalInsured !== null && (\n \n updateFormMulti(\n [\n ['address', 'line1'],\n ['address', 'line2'],\n ['address', 'city'],\n ['address', 'zone'],\n ['address', 'postalCode']\n ],\n (prev) => ({\n ...prev,\n address: update(prev.address)\n })\n )\n }\n validationErrors={{\n line1: getError(['address', 'line1']),\n line2: getError(['address', 'line2']),\n city: getError(['address', 'city']),\n zone: getError(['address', 'zone']),\n postalCode: getError(['address', 'postalCode'])\n }}\n />\n )}\n\n {form.additionalInsured !== null && (\n \n \n \n \n Additional notes to include for the Oyster team to review.\n \n {\n const val = e.currentTarget.value;\n updateForm(['notes'], (prev) => ({ ...prev, notes: val }));\n }}\n invalid={!!getError(['notes'])}\n />\n {getError(['notes'])}\n \n \n )}\n
\n\n {form.additionalInsured !== null && (\n \n )}\n\n {error && (\n
\n {error.message}\n
\n )}\n
\n
\n );\n};\n\nconst AdditionalInsuredListOption = (props: {\n type: string;\n title: string;\n description: string;\n value: AdditionalInsured;\n}) => {\n const sharedClasses = clsx(\n // Base\n 'flex flex-grow flex-col max-w-[26rem] col-start-2'\n );\n\n return (\n \n {({ selectedOption }) => {\n if (selectedOption) {\n return (\n
\n
{props.title}
\n
\n {props.description}\n
\n
\n );\n }\n\n return (\n \n
\n
\n
\n
{props.title}
\n
\n {props.description}\n
\n
\n
\n );\n }}\n \n );\n};\n\nexport const InsurancePage = (props: {\n merchant: Merchant;\n merchantUser: MerchantUser;\n graphMerchant: MerchantFieldsFragment;\n policies?: BusinessPolicyFieldsFragment[];\n}) => {\n const history = useHistory();\n const location = useLocation();\n\n return (\n <>\n \n\n {!props.merchant.BusinessProfile.Personalization.BusinessInsuranceFilloutFormSubmitted &&\n !props.policies?.length && (\n \n )}\n {props.merchant.BusinessProfile.Personalization.BusinessInsuranceFilloutFormSubmitted &&\n !props.policies?.length && }\n {!!props.policies?.length && (\n \n )}\n\n history.replace('/insurance/overview')}\n title=\"View Policy\"\n >\n \n {!location.pathname.match(/\\/policy\\/(.+)$/)?.[1] ? null : (\n ({\n query: GetMerchantBusinessPolicyDocument,\n variables: {\n id: location.pathname.match(/\\/policy\\/(.+)$/)?.[1]\n }\n })\n .then((res) => {\n if (res.data?.businessPolicy) {\n return res.data.businessPolicy;\n }\n\n throw new Error('Policy not found');\n })}\n >\n {(data) => (\n \n \n \n )}\n \n )}\n \n \n\n history.replace('/insurance/certificates')}\n title=\"View Certificate\"\n >\n \n {!location.pathname.match(/\\/certificate\\/(.+)$/)?.[1] ? null : (\n ({\n query: GetCertificateDocument,\n variables: {\n certificateNumber: location.pathname.match(/\\/certificate\\/(.+)$/)?.[1]\n }\n })\n .then((res) => {\n if (res.data?.certificate?.details) {\n return res.data.certificate;\n }\n\n throw new Error('Certificate not found');\n })}\n >\n {(data) => (\n \n \n \n )}\n \n )}\n \n \n\n history.replace('/insurance/certificates')}\n title=\"Create Certificate\"\n >\n \n \n \n \n \n \n \n );\n};\n\ninterface PolicySlideoutContainerProps {\n title: string;\n description: string;\n badge?: JSX.Element;\n}\n\nexport const PolicySlideoutContainer = (\n props: React.PropsWithChildren\n) => (\n <>\n

{props.title}

\n

{props.description}

\n {props.children}\n \n);\n","import { Redirect, Route as BrowserRoute, Switch, useLocation } from 'react-router';\nimport { useRouteMatch, NavLink } from 'react-router-dom';\nimport * as Sentry from '@sentry/react';\nconst Route = Sentry.withSentryRouting(BrowserRoute);\n\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport {\n getMerchantAccount,\n getMerchantGraphQLClient,\n getMerchantIntegrations,\n getMerchantReferrals,\n getMerchantRentalConfiguration,\n getMerchantUsers,\n getRentalWaivers,\n merchantUserSignOut\n} from '@oysterjs/core/api/merchant';\nimport { HomePage } from './home';\nimport { IntegrationsPage } from './insurance/product';\nimport { TeamPage } from './team';\nimport { RiskPage, RiskDashboardPage, ModelRiskPage, ExploreRiskPage } from './risk';\nimport { MerchantRentalPage } from './rental';\nimport { InvitePage } from './invite';\nimport { InsurancePage } from './insurance/business';\nimport { ApolloProvider } from '@apollo/client';\nimport { GetMerchantDocument, GetMerchantQuery } from '../types/graphql';\nimport {\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesDocument\n} from '../types/graphql';\nimport React from 'react';\n\nimport clsx from 'clsx';\nimport {\n Dialog,\n DialogBackdrop,\n DialogPanel,\n Menu,\n MenuButton,\n TransitionChild\n} from '@headlessui/react';\nimport {\n Bars3Icon,\n BellIcon,\n PowerIcon,\n GiftIcon,\n HomeIcon,\n PuzzlePieceIcon,\n ShieldCheckIcon,\n UsersIcon,\n XMarkIcon,\n AdjustmentsHorizontalIcon\n} from '@heroicons/react/24/outline';\nimport { OysterLogoOld } from '@oysterjs/ui/Logo';\nimport { resetToken, useAuth } from '@oysterjs/core/auth';\nimport { GetRiskManagementQuery, GetRiskManagementDocument } from '../types/graphql';\nimport { enableRiskManagement } from '@oysterjs/core/api/flag';\n\nconst navigation = [\n { name: 'Home', href: '/home', icon: HomeIcon },\n { name: 'Insurance', href: '/insurance', icon: ShieldCheckIcon },\n { name: 'Integrations', href: '/integrations', icon: PuzzlePieceIcon },\n { name: 'Risk', href: '/risk', icon: AdjustmentsHorizontalIcon },\n { name: 'Team', href: '/team', icon: UsersIcon },\n { name: 'Invite', href: '/invite', icon: GiftIcon }\n];\n\nconst AsyncMerchantHomePage = () => (\n ({ query: GetMerchantDocument })\n .then((res) => res.data?.merchant),\n getMerchantGraphQLClient()\n .query({ query: GetMerchantBusinessPoliciesDocument })\n .then((res) => res.data?.businessPolicies || []),\n getMerchantReferrals(\n new Date(new Date().getUTCFullYear(), new Date().getUTCMonth()),\n new Date(new Date().getUTCFullYear(), new Date().getUTCMonth() + 1)\n ),\n getMerchantIntegrations(),\n getMerchantRentalConfiguration(),\n getRentalWaivers()\n ])}\n >\n {([merchant, businessPolicies, referrals, integrations, rental, waivers]) => {\n return !merchant ? null : (\n \n );\n }}\n \n);\n\nconst AsyncMerchantIntegrationsPage = () => (\n \n {([accountRes, integrationsRes, rentalRes]) => {\n return (\n \n );\n }}\n \n);\n\nconst AsyncMerchantInsurancePage = () => (\n ({ query: GetMerchantBusinessPoliciesDocument })\n .then((res) => res.data?.businessPolicies || []),\n getMerchantGraphQLClient()\n .query({ query: GetMerchantDocument })\n .then((res) => res.data?.merchant)\n ])}\n >\n {([account, businessPolicies, merchant]) => {\n return !merchant ? null : (\n \n );\n }}\n \n);\n\nconst AsyncRiskPage = () => (\n ({ query: GetRiskManagementDocument })\n .then((res) => res.data?.riskManagement || null),\n getMerchantGraphQLClient()\n .query({ query: GetMerchantBusinessPoliciesDocument })\n .then((res) => res.data?.businessPolicies || []),\n enableRiskManagement()\n ])}\n >\n {([account, riskManagement, businessPolicies, enableRiskManagement]) => {\n return (\n \n );\n }}\n \n);\n\nconst AsyncManageRiskPage = () => (\n ({ query: GetMerchantBusinessPoliciesDocument })\n .then((res) => res.data?.businessPolicies || []),\n getMerchantGraphQLClient()\n .query({ query: GetRiskManagementDocument })\n .then((res) => res.data?.riskManagement || null)\n ])}\n >\n {([account, users, businessPolicies, riskManagement]) => {\n return (\n \n );\n }}\n \n);\n\nconst AsyncModelRiskPage = () => (\n \n {() => {\n return ;\n }}\n \n);\n\nconst AsyncExploreRiskPage = () => (\n ({ query: GetMerchantBusinessPoliciesDocument })\n .then((res) => res.data?.businessPolicies || [])\n ])}\n >\n {([businessPolicies]) => {\n return ;\n }}\n \n);\n\nconst AsyncTeamPage = () => (\n \n {([account, users]) => {\n return ;\n }}\n \n);\n\nconst AsyncInvitePage = () => (\n \n {(account) => {\n return ;\n }}\n \n);\n\nconst DashboardContainer = (props: React.PropsWithChildren) => {\n const [sidebarOpen, setSidebarOpen] = React.useState(false);\n const location = useLocation();\n const [auth] = useAuth();\n const user = auth.MerchantUser;\n\n const signOut = () => {\n merchantUserSignOut().finally(() => {\n resetToken();\n });\n };\n\n return (\n <>\n
\n \n \n\n
\n \n \n
\n setSidebarOpen(false)}\n className=\"-m-2.5 p-2.5\"\n >\n Close sidebar\n \n \n
\n
\n {/* Sidebar component, swap this element with another sidebar if you like */}\n
\n
\n \n
\n \n
\n \n
\n
\n\n {/* Static sidebar for desktop */}\n
\n {/* Sidebar component, swap this element with another sidebar if you like */}\n
\n
\n \n
\n \n
\n
\n\n
\n
\n setSidebarOpen(true)}\n className=\"-m-2.5 p-2.5 text-neutral-700 lg:hidden\"\n >\n Open sidebar\n \n \n\n {/* Separator */}\n
\n\n
\n
\n {/*
\n \n \n \n */}\n
\n \n View notifications\n \n \n\n {/* Separator */}\n \n\n {/* Profile dropdown */}\n \n \n Open user menu\n\n
\n {user?.FirstName[0]}\n {user?.LastName[0]}\n
\n \n \n {user?.FirstName} {user?.LastName}\n \n {/* */}\n \n
\n
\n
\n
\n
\n\n
\n
{props.children}
\n
\n
\n
\n \n );\n};\n\nexport const Dashboard = () => {\n const { path } = useRouteMatch();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import styled from 'styled-components';\n\nconst ProgressContainer = styled.div`\n margin: 30px 0px 30px 0px;\n position: relative;\n`;\n\nconst ProgressBarContainer = styled.div``;\n\nconst ProgressBarTrack = styled.div`\n background: #eaeaea;\n width: 100%;\n height: 6px;\n border-radius: 4px;\n`;\n\nconst ProgressBarInner = styled.div`\n height: 100%;\n background: #0ea5e9;\n border-radius: 4px;\n transition: all 0.15s ease-in;\n`;\n\nconst ProgressStepContainer = styled.div`\n position: absolute;\n top: -16px;\n left: 0;\n width: 100%;\n display: flex;\n justify-content: space-between;\n`;\n\nconst ProgressStep = styled.div<{ filled: boolean }>`\n height: 32px;\n width: 32px;\n transform: scale(1);\n border-radius: 50%;\n background: ${(props) => (props.filled ? '#0EA5E9' : '#eaeaea')};\n transition: all 0.15s ease-in;\n\n text-align: center;\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n a,\n svg {\n display: block;\n font-size: 1em;\n color: ${(props) => (props.filled ? 'white' : '#666666')};\n transition: all 0.15s ease-in;\n }\n`;\n\nconst ProgressBar = (props: { percentage: number }) => (\n \n \n \n \n \n);\n\ninterface ProgressProps {\n steps: number | JSX.Element[];\n currentStep: number;\n}\n\nexport const Progress = (props: ProgressProps): JSX.Element => {\n const numSteps = (() => {\n if (Number.isFinite(props.steps)) {\n return props.steps as number;\n }\n if (Array.isArray(props.steps)) {\n return (props.steps as JSX.Element[]).length;\n }\n // impossible?\n return 0;\n })();\n\n const steps = (() => {\n if (Number.isFinite(props.steps)) {\n return [...Array(numSteps).keys()].map(() => <>);\n }\n if (Array.isArray(props.steps)) {\n return props.steps as JSX.Element[];\n }\n // impossible?\n return [];\n })();\n\n return (\n \n \n \n {steps.map((step, i) => (\n \n {step}\n \n ))}\n \n \n );\n};\n","import * as React from 'react';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\nimport { Merchant, MerchantUser, ValidationError } from '@oysterjs/types';\nimport { getMerchantAccount } from '@oysterjs/core/api/merchant';\nimport { PageContainer, PageSection } from '@oysterjs/ui/Page';\nimport { Spinner } from '@oysterjs/ui/Spinner/index';\n\nexport const ThrowError = (props: { error: Error }) => {\n throw props.error;\n};\n\nexport const Authenticated = (props: React.PropsWithChildren) => {\n const [loaded, setLoaded] = React.useState(false);\n const [data, setData] = React.useState<{\n Merchant: Merchant;\n MerchantUser: MerchantUser;\n PersonalizationError?: ValidationError;\n }>();\n\n const history = useHistory();\n const match = useRouteMatch();\n\n React.useEffect(() => {\n if (!loaded) {\n getMerchantAccount()\n .then((data) => setData(data))\n .finally(() => setLoaded(true));\n }\n }, [loaded]);\n\n React.useEffect(() => {\n setLoaded(false);\n }, [match.url]);\n\n if (!loaded) {\n return (\n \n \n \n \n \n );\n }\n\n if (data?.PersonalizationError) {\n // launch personalization flow\n history.replace('/personalization');\n return null;\n }\n\n if (data?.Merchant) {\n return <>{props.children};\n }\n\n return null;\n};\n","import styled from 'styled-components';\n\nimport { Checkbox } from './checkbox';\nimport { Radio } from './radio';\n\nconst OptionContainer = styled.div<{ enabled: boolean; disabled?: boolean }>`\n transition: 0.15s all ease-in-out;\n box-sizing: border-box;\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n\n display: flex;\n flex-direction: row;\n`;\n\nconst OptionCheckboxContainer = styled.div`\n width: 27px;\n padding-left: 3px;\n`;\n\nconst OptionImageContainer = styled.div`\n width: 60px;\n height: 60px;\n margin-right: 10px;\n border-radius: 10px;\n border: 1px solid #eeeeee;\n background: #eeeeee;\n\n img {\n width: 60px;\n object-fit: cover;\n border-radius: 10px;\n }\n`;\n\nconst OptionContentContainer = styled.div`\n flex: 1 1 0;\n`;\n\nconst OptionDescription = styled.div`\n color: #999999;\n font-size: 0.8em;\n margin-top: 5px;\n`;\n\nconst OptionContent = styled.div`\n color: #999999;\n font-size: 0.8em;\n margin-top: 5px;\n padding: 10px 0px 5px 0px;\n`;\n\nconst OptionHeaderContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n font-weight: 600;\n`;\n\nconst OptionHeader = ({\n title,\n description\n}: {\n title: string;\n description?: string | JSX.Element;\n}) => (\n \n {title}\n {description}\n \n);\n\ninterface OptionGroupProps {\n multi?: boolean;\n loading?: boolean;\n name: string;\n options: Array<{\n title: string;\n description: string | JSX.Element;\n imageUrl?: string;\n titleRight?: string | JSX.Element;\n enabled?: boolean;\n disabled?: boolean;\n children?: JSX.Element;\n onSelect?: () => void;\n }>;\n}\n\nexport const OptionGroup = (props: OptionGroupProps): JSX.Element => (\n
\n {props.options.map((option) => (\n option.onSelect && option.onSelect()}\n >\n \n {props.multi ? (\n option.onSelect && option.onSelect()}\n />\n ) : (\n option.onSelect && option.onSelect()}\n />\n )}\n \n {option.imageUrl && (\n \n \n \n )}\n \n \n {option.description}\n {option.enabled && option.children && {option.children}}\n \n \n ))}\n
\n);\n","import styled from 'styled-components';\nimport {\n InStoreSalesChannelType,\n Merchant,\n OnlineSalesChannelType,\n Personalization,\n RentalProductType,\n SalesChannelType,\n ValidationError\n} from '@oysterjs/types';\nimport { FormColumn, FormContainer, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { Checkbox, CheckboxProps } from '@oysterjs/ui/Form/checkbox';\nimport { Radio, RadioProps } from '@oysterjs/ui/Form/radio';\nimport { TextInput } from '@oysterjs/ui/Form/text';\nimport { OptionGroup } from '@oysterjs/ui/Form/option';\nimport { Select } from '@oysterjs/ui/Form/select';\n\nexport interface PageProps {\n merchant: Merchant;\n onNext: () => Promise;\n onBack: ((e) => unknown) | null;\n onUpdate: (merchant: Merchant) => void;\n validationError?: ValidationError;\n loading: boolean;\n}\n\nexport const NColumnListContainer = styled.div<{ columns: number }>`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 8px;\n\n & > * {\n flex: 1 0\n calc(\n ${(props) => Math.floor(100 / props.columns)}% -\n ${(props) => Math.ceil(8 / props.columns)}px\n );\n }\n`;\n\nexport const LabeledCheckbox = (props: CheckboxProps) => (\n
\n \n
{props.label}
\n
\n);\n\nconst LabeledRadio = (props: RadioProps) => (\n
\n \n
{props.label}
\n
\n);\n\nexport const MerchantPersonalizationProductInsuranceForm = (props: PageProps) => {\n const updatePersonalization = (fn: (prev: Personalization) => Personalization) =>\n props.onUpdate({\n ...props.merchant,\n BusinessProfile: {\n ...props.merchant.BusinessProfile,\n Personalization: fn(props.merchant.BusinessProfile.Personalization)\n }\n });\n\n return (\n {\n e.preventDefault();\n props.onNext();\n }}\n >\n \n \n \n \n updatePersonalization((prev) => ({\n ...prev,\n SalesChannels: !prev.SalesChannels?.includes(SalesChannelType.Online)\n ? [...(prev.SalesChannels || []), SalesChannelType.Online]\n : prev.SalesChannels.filter((v) => v !== SalesChannelType.Online)\n }))\n },\n {\n title: 'Owned Retail',\n description:\n 'You accept orders in-store with a physical point-of-sale system, like Lightspeed.',\n enabled: props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.InStore\n ),\n onSelect: () =>\n updatePersonalization((prev) => ({\n ...prev,\n SalesChannels: !prev.SalesChannels?.includes(SalesChannelType.InStore)\n ? [...(prev.SalesChannels || []), SalesChannelType.InStore]\n : prev.SalesChannels.filter((v) => v !== SalesChannelType.InStore)\n }))\n },\n {\n title: 'Dealer',\n description: 'Your sales occur through authorized dealers or third-parties.',\n enabled: props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.Dealer\n ),\n onSelect: () =>\n updatePersonalization((prev) => ({\n ...prev,\n SalesChannels: !prev.SalesChannels?.includes(SalesChannelType.Dealer)\n ? [...(prev.SalesChannels || []), SalesChannelType.Dealer]\n : prev.SalesChannels.filter((v) => v !== SalesChannelType.Dealer)\n }))\n },\n {\n title: 'Rental',\n description: 'Some of your products are available to rent or lease.',\n enabled: props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.Rental\n ),\n onSelect: () =>\n updatePersonalization((prev) => ({\n ...prev,\n SalesChannels: !prev.SalesChannels?.includes(SalesChannelType.Rental)\n ? [...(prev.SalesChannels || []), SalesChannelType.Rental]\n : prev.SalesChannels.filter((v) => v !== SalesChannelType.Rental)\n }))\n }\n ]}\n />\n \n \n {props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.Online\n ) && (\n <>\n \n \n \n \n updatePersonalization((prev) => ({\n ...prev,\n OnlineSalesChannelType: v\n }))\n }\n error={\n props.validationError?.Field === 'OnlineSalesChannelType' &&\n props.validationError?.Message\n }\n style={{ maxWidth: '360px' }}\n />\n \n \n \n )}\n {props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.Online\n ) &&\n props.merchant.BusinessProfile.Personalization.OnlineSalesChannelType ===\n OnlineSalesChannelType.Other && (\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n OnlineSalesChannelName: value\n }));\n }}\n style={{ maxWidth: '360px' }}\n />\n \n \n )}\n {props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.Online\n ) &&\n props.merchant.BusinessProfile.Personalization.OnlineSalesChannelType ===\n OnlineSalesChannelType.Shopify && (\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n ShopifyAdminURL: value\n }));\n }}\n style={{ maxWidth: '360px' }}\n />\n \n \n )}\n {props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.InStore\n ) && (\n <>\n \n \n \n \n updatePersonalization((prev) => ({\n ...prev,\n InStoreSalesChannelType: v\n }))\n }\n error={\n props.validationError?.Field === 'InStoreSalesChannelType' &&\n props.validationError?.Message\n }\n style={{ maxWidth: '360px' }}\n />\n \n \n \n )}\n {props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.InStore\n ) &&\n props.merchant.BusinessProfile.Personalization.InStoreSalesChannelType ===\n InStoreSalesChannelType.Other && (\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n InStoreSalesChannelName: value\n }));\n }}\n style={{ maxWidth: '360px' }}\n />\n \n \n )}\n {props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.Rental\n ) && (\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalChannelName: value\n }));\n }}\n style={{ maxWidth: '360px' }}\n />\n \n \n )}\n \n \n \n {\n updatePersonalization((personalization) => ({\n ...personalization,\n ProductAnnualRevenue: e.currentTarget.value\n }));\n }}\n />\n \n \n \n );\n};\n\nexport const MerchantPersonalizationRentalInsuranceForm = (props: PageProps) => {\n const updatePersonalization = (fn: (prev: Personalization) => Personalization) =>\n props.onUpdate({\n ...props.merchant,\n BusinessProfile: {\n ...props.merchant.BusinessProfile,\n Personalization: fn(props.merchant.BusinessProfile.Personalization)\n }\n });\n\n return (\n {\n e.preventDefault();\n props.onNext();\n }}\n >\n \n \n \n {[\n RentalProductType.BikesAndEbikes,\n RentalProductType.Kayaks,\n RentalProductType.Paddleboards,\n RentalProductType.Other\n ].map((operation) => (\n {\n const checked =\n props.merchant.BusinessProfile.Personalization.RentalProductTypes?.includes(\n operation\n );\n if (checked) {\n updatePersonalization((personalization) => ({\n ...personalization,\n RentalProductTypes: (personalization.RentalProductTypes || []).filter(\n (o) => o !== operation\n )\n }));\n } else {\n updatePersonalization((personalization) => ({\n ...personalization,\n RentalProductTypes: [...(personalization.RentalProductTypes || []), operation]\n }));\n }\n }}\n />\n ))}\n \n \n {props.merchant.BusinessProfile.Personalization.RentalProductTypes?.includes(\n RentalProductType.Other\n ) && (\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalProductTypeOtherDesc: value\n }));\n }}\n style={{ maxWidth: '360px' }}\n />\n \n \n )}\n {props.merchant.BusinessProfile.Personalization.RentalProductTypes?.some((productType) =>\n [RentalProductType.BikesAndEbikes, RentalProductType.Other].includes(productType)\n ) && (\n <>\n \n \n \n \n \n updatePersonalization((personalization) => ({\n ...personalization,\n RentalMotorizedAssetsExceedEBikeClassification: true\n }))\n }\n />\n \n updatePersonalization((personalization) => ({\n ...personalization,\n RentalMotorizedAssetsExceedEBikeClassification: false\n }))\n }\n />\n \n \n \n \n )}\n \n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalMaximumAssetValue: value\n }));\n }}\n />\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalAverageAssetValue: value\n }));\n }}\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalAnnualRevenue: value\n }));\n }}\n />\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalAnnualVolume: value\n }));\n }}\n />\n \n \n\n \n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalPlatformName: value\n }));\n }}\n />\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalPointOfSaleName: value\n }));\n }}\n />\n \n \n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Button, ButtonContainer, ButtonLink, LinkComponent } from '@oysterjs/ui/Button';\nimport { ErrorDisplay } from '@oysterjs/ui/Form/text';\nimport { OysterLogoOld } from '@oysterjs/ui/Logo';\nimport { PageContainer, PageSection } from '@oysterjs/ui/Page';\nimport {\n IoArrowForward,\n IoBagOutline,\n IoCheckmarkDone,\n IoCheckmarkSharp,\n IoFlag,\n IoTimerOutline\n} from 'react-icons/io5';\nimport {\n Merchant,\n MerchantIntegrationType,\n Personalization,\n ProductType,\n ValidationError\n} from '@oysterjs/types';\nimport { personalizeMerchant, getMerchantAccount } from '@oysterjs/core/api/merchant';\nimport { matchPath, Route as BrowserRoute, Switch, useHistory, useRouteMatch } from 'react-router';\nimport * as Sentry from '@sentry/react';\nconst Route = Sentry.withSentryRouting(BrowserRoute);\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\nimport { Progress } from '@oysterjs/ui/Form/progress';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport { ThrowError } from '../../authenticated';\nimport {\n MerchantPersonalizationProductInsuranceForm,\n MerchantPersonalizationRentalInsuranceForm,\n PageProps\n} from './forms';\n\ninterface Page {\n path: string;\n component: (props: PageProps) => JSX.Element;\n hasError: (validationError: ValidationError) => boolean;\n icon: JSX.Element;\n}\n\nconst OptionContainer = styled.div<{ selected: boolean }>`\n transition: 0.15s all ease-in-out;\n box-sizing: border-box;\n cursor: pointer;\n\n display: flex;\n flex-direction: row;\n\n padding: 24px;\n\n box-shadow: ${(props) => (props.selected ? '0 0 0 2px #0ea5e9' : 'none')};\n border: ${(props) => (props.selected ? '1px solid transparent' : '1px dashed #e2e2e2')};\n border-radius: 12px;\n`;\n\nconst OptionCheckboxContainer = styled.div`\n width: 32px;\n padding-left: 2px;\n padding-top: 2px;\n`;\n\nconst OptionContentContainer = styled.div`\n flex: 1 1 0;\n`;\n\nconst OptionDescription = styled.div`\n color: #333333;\n font-size: 0.9em;\n margin-top: 4px;\n`;\n\nconst OptionHeaderContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n font-weight: 500;\n font-size: 1.2em;\n`;\n\nconst OptionContent = styled.ul`\n margin: 0px;\n padding: 16px 0px 5px 0px;\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n`;\n\nconst InsuranceDetailItemContainer = styled.li`\n color: #666666;\n font-size: 0.9em;\n list-style: none;\n display: flex;\n flex: 1 0 30%;\n gap: 0px 8px;\n`;\n\nconst InsuranceDetailItem = (props: { item: string }) => (\n \n
\n \n
\n
{props.item}
\n
\n);\n\nconst InsuranceOptionCardContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 24px;\n`;\n\nconst InsuranceOptionCard = (props: {\n title: string;\n description: string;\n displayItems: string[];\n selected: boolean;\n onSelect: () => void;\n}) => (\n props.onSelect()}>\n \n props.onSelect()}\n />\n \n \n {props.title}\n {props.description}\n \n {props.displayItems.map((item) => (\n \n ))}\n \n \n \n);\n\nconst MerchantPersonalizationIntro = (props: PageProps) => {\n const merchantEligibleForRentalInsurance =\n props.merchant.BusinessProfile.ProductVerticals?.includes(ProductType.bike);\n\n const updatePersonalization = (fn: (prev: Personalization) => Personalization) =>\n props.onUpdate({\n ...props.merchant,\n BusinessProfile: {\n ...props.merchant.BusinessProfile,\n Personalization: fn(props.merchant.BusinessProfile.Personalization)\n }\n });\n\n return (\n <>\n \n

What can we help you with?

\n

\n Oyster is a unified platform to serve all your insurance needs. Choose which products\n you're interested in so we can personalize your experience.\n

\n
\n \n \n \n updatePersonalization((prev) => ({\n ...prev,\n BusinessInsuranceEnabled: !prev.BusinessInsuranceEnabled\n }))\n }\n />\n \n updatePersonalization((prev) => ({\n ...prev,\n ProductInsuranceEnabled: !prev.ProductInsuranceEnabled\n }))\n }\n />\n {merchantEligibleForRentalInsurance && (\n \n updatePersonalization((prev) => ({\n ...prev,\n RentalInsuranceEnabled: !prev.RentalInsuranceEnabled\n }))\n }\n />\n )}\n \n \n \n \n \n I need help with something else\n \n \n \n {props.validationError && (\n \n {props.validationError.Message}\n \n )}\n \n \n );\n};\n\nconst MerchantPersonalizationProductInsurancePage = (props: PageProps) => {\n return (\n <>\n \n

Your Sales Channels

\n

Tell us a little bit about what and how you sell.

\n \n
\n \n \n \n \n \n \n \n );\n};\n\nconst MerchantPersonalizationRentalInsurancePage = (props: PageProps) => {\n return (\n <>\n \n

Your Rental Operations

\n

\n We'll use this information to get you set up with the right integrations and products.\n

\n \n
\n \n \n \n \n \n \n \n );\n};\n\nconst MerchantPersonalizationCompletePageContainer = styled.div`\n width: 100%;\n display: flex;\n margin: 30px 0px;\n gap: 20px;\n\n @media (max-width: 900px) {\n flex-direction: column;\n align-items: center;\n gap: 40px;\n }\n`;\n\nconst MerchantPersonalizationCompletePagePane = styled.div`\n max-width: 700px;\n flex: 1 0 1;\n\n a {\n font-weight: 500;\n }\n\n @media (max-width: 900px) {\n width: 80%;\n }\n\n @media (max-width: 700px) {\n width: 100%;\n }\n`;\n\nconst MerchantPersonalizationCompletePageImage = styled.img`\n display: block;\n margin: auto;\n width: 100%;\n max-width: 450px;\n`;\n\nconst getChannelUrl = (type: MerchantIntegrationType): string => {\n switch (type) {\n case MerchantIntegrationType.referral_link:\n return `/integrations/channels/referral`;\n case MerchantIntegrationType.qr_code:\n return `/integrations/channels/qrcode`;\n case MerchantIntegrationType.shopify:\n return `/integrations/channels/shopify`;\n default:\n return ``;\n }\n};\n\nexport const MerchantPersonalizationCompletePage = (props: PageProps) => {\n return (\n \n \n \n

Welcome to Oyster!

\n

\n Thank you for becoming an Oyster partner. There are a few steps remaining, which you can\n also find in the partners dashboard.\n

\n {props.merchant.BusinessProfile.Personalization.BusinessInsuranceEnabled && (\n <>\n

Business Insurance

\n

\n Continue to the dashboard and complete your{' '}\n \n business insurance application\n \n . Our team of insurance experts will reach out shortly to better understand your\n insurance needs.\n

\n \n )}\n {props.merchant.BusinessProfile.Personalization.ProductInsuranceEnabled && (\n <>\n

Product Insurance

\n

\n Access and share your{' '}\n \n custom referral link\n {' '}\n and{' '}\n \n marketing materials\n \n .\n

\n

\n Install and configure your{' '}\n \n Shopify integration\n \n .\n

\n

\n Set your{' '}\n \n payout method\n {' '}\n to receive revenue.\n

\n \n )}\n {props.merchant.BusinessProfile.Personalization.RentalInsuranceEnabled && (\n <>\n

Rental Insurance

\n

\n Continue to the dashboard and set up the{' '}\n \n rental insurance app\n \n . Our team will reach out to get you up and running.\n

\n \n )}\n \n } href=\"/\">\n Go to the dashboard\n \n \n
\n \n
\n
\n );\n};\n\nconst getPages = (merchant: Merchant): Page[] => {\n const pages: Page[] = [\n {\n path: '/personalization',\n hasError: (err: ValidationError) => err.Field === 'InsuranceEnabled',\n component: MerchantPersonalizationIntro,\n icon: \n }\n ];\n\n if (merchant.BusinessProfile.Personalization.ProductInsuranceEnabled) {\n pages.push({\n path: '/personalization/product',\n hasError: (err: ValidationError) =>\n [\n 'SalesChannels',\n 'OnlineSalesChannelType',\n 'OnlineSalesChannelName',\n 'ShopifyAdminURL',\n 'InStoreSalesChannelType',\n 'InStoreSalesChannelName',\n 'RentalChannelName',\n 'ProductAnnualRevenue'\n ].includes(err.Field),\n component: MerchantPersonalizationProductInsurancePage,\n icon: \n });\n }\n\n if (merchant.BusinessProfile.Personalization.RentalInsuranceEnabled) {\n pages.push({\n path: '/personalization/rental',\n hasError: (err: ValidationError) => err.Field.startsWith('Rental'),\n component: MerchantPersonalizationRentalInsurancePage,\n icon: \n });\n }\n\n // Add the final page\n pages.push({\n path: '/personalization/complete',\n hasError: () => false,\n component: MerchantPersonalizationCompletePage,\n icon: \n });\n\n return pages;\n};\n\nexport default () => {\n useRouteMatch();\n const history = useHistory();\n\n const [pages, setPages] = React.useState([]);\n const [error, setError] = React.useState();\n const [loading, setLoading] = React.useState(false);\n const [merchant, setMerchant] = React.useState();\n const [validationError, setValidationError] = React.useState();\n\n // Handle initial load - fetch the initial merchant\n // account and determine if the merchant still needs\n // to personalize. If not, put them on the completion\n // page. If they do, and they're on the complete page,\n // return them to the first page.\n React.useEffect(() => {\n setLoading(true);\n getMerchantAccount()\n .then((data) => {\n setMerchant(data.Merchant);\n setPages(getPages(data.Merchant));\n if (data.PersonalizationError && window.location.pathname === '/personalization/complete') {\n history.replace('/personalization');\n }\n if (\n !data.PersonalizationError &&\n window.location.pathname.startsWith('/personalization') &&\n window.location.pathname !== '/personalization/complete'\n ) {\n history.replace('/personalization/complete');\n return null;\n }\n })\n .catch((err) => setError(err))\n .finally(() => setLoading(false));\n }, []);\n\n React.useEffect(() => {\n if (merchant) {\n setPages(getPages(merchant));\n }\n }, [merchant, window.location.pathname]);\n\n if (error) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n }\n\n if (loading && !merchant) {\n return (\n \n \n \n \n \n \n \n \n );\n }\n\n // This case should never happen, it's purely here to help the\n // TypeScript compiler a little bit :)\n if (!merchant) {\n return null;\n }\n\n const currentPageIndex = pages.findIndex((page) =>\n matchPath(window.location.pathname, {\n path: page.path,\n exact: true\n })\n );\n\n const onUpdate = async (merchant: Merchant) => {\n setMerchant(merchant);\n setValidationError(undefined);\n };\n\n const onBack = (e) => {\n e.preventDefault();\n if (currentPageIndex > 0) {\n history.push(pages[currentPageIndex - 1].path);\n window.scrollTo({ top: 0 });\n }\n };\n\n const onNext = async () => {\n if (!merchant) {\n return;\n }\n\n setLoading(true);\n try {\n const { Merchant, NextValidationError } = await personalizeMerchant(merchant);\n\n let nextPageIndex;\n const nextPages = getPages(Merchant);\n\n if (NextValidationError) {\n nextPageIndex = nextPages.findIndex((page) => page.hasError(NextValidationError));\n if (nextPageIndex === -1 || nextPageIndex - currentPageIndex > 1) {\n nextPageIndex = currentPageIndex + 1;\n }\n if (nextPageIndex <= currentPageIndex) {\n setValidationError(NextValidationError);\n }\n } else {\n setValidationError(undefined);\n nextPageIndex = currentPageIndex + 1;\n }\n\n if (Merchant) {\n setMerchant(Merchant);\n }\n\n setPages(() => {\n if (nextPageIndex !== currentPageIndex && nextPageIndex < nextPages.length) {\n history.push(nextPages[nextPageIndex].path);\n window.scrollTo({ top: 0 });\n }\n return nextPages;\n });\n } catch (e) {\n if (e instanceof Error) {\n setError(e);\n }\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n \n \n \n \n {currentPageIndex !== 0 && currentPageIndex !== pages.length - 1 && (\n \n \n i < currentPageIndex ? (\n {page.icon}\n ) : (\n page.icon\n )\n )}\n currentStep={currentPageIndex}\n />\n \n )}\n \n {pages.map((page) => (\n \n React.createElement(page.component, {\n loading,\n merchant,\n validationError:\n validationError && page.hasError(validationError) ? validationError : undefined,\n onNext,\n onBack,\n onUpdate\n })\n }\n />\n ))}\n \n \n \n );\n};\n","import * as React from 'react';\nimport { useLocation, useHistory } from 'react-router';\nimport {\n linkBIApplicationWithShopify,\n linkMerchantWithCheckfront,\n linkMerchantWithLightspeedRetailRSeries,\n linkMerchantWithShopify\n} from '@oysterjs/core/api/merchant';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport { PageContainer, PageSection } from '@oysterjs/ui/Page';\nimport { OysterLogoOld } from '@oysterjs/ui/Logo';\nimport { ButtonContainer, ButtonLink } from '@oysterjs/ui/Button';\nimport { IoArrowForward } from 'react-icons/io5';\nimport { Spinner } from '@oysterjs/ui/Spinner';\n\n/**\n * This component is the entrypoint to OAuth callback when\n * a user adds the Oyster app to their shopify store. The\n * proposed flow will be:\n *\n * 1. merchant is redirected to /link/shopify?data (this component)\n * 2. if merchant is not logged in:\n * 2a. if merchant has an account:\n * -> sign in flow with redirect to /link/shopify?data\n * 2b. if merchant does not have account:\n * -> sign up flow, then log in flow, and redirect to /link/shopify?data\n * 3. if merchant is logged in:\n * -> show special linking page/animation\n * -> send request to API endpoint /merchant/link\n * -> receive integration ID or error if could not link or already linked to another merchant\n * 4. if this integration was already linked to this merchant, this is just a reauthorization\n * -> redirect back to the embedded app\n * else:\n * -> redirect to dashboard page /channels/{ID} and show remaining integration\n * instructions with link to open app in merchant's shopify store\n */\nexport const OnboardShopify: React.FunctionComponent = () => {\n const location = useLocation();\n const history = useHistory();\n\n const shop = new URLSearchParams(location.search).get('shop');\n const redirection = `${location.pathname}${location.search}`;\n\n const biApplicationID = JSON.parse(\n window.localStorage.getItem('oyster-commercial-application-id') || '{}'\n )['BIApplicationID'];\n\n return (\n <>\n {!biApplicationID && (\n \n {() => {\n history.replace('/integrations/channels/shopify');\n return <>;\n }}\n \n )}\n {biApplicationID && (\n \n {() => {\n history.replace(`/app/commercial/${biApplicationID}/connect`);\n return <>;\n }}\n \n )}\n \n );\n};\n\nexport const OnboardLightspeedRetailRSeries: React.FunctionComponent = () => {\n const location = useLocation();\n const history = useHistory();\n\n const code = new URLSearchParams(location.search).get('code');\n const redirection = `${location.pathname}${location.search}`;\n\n return (\n \n {() => {\n history.replace('/integrations/channels/lsretail-rseries');\n return <>;\n }}\n \n );\n};\n\nexport const OnboardWooCommerce: React.FunctionComponent = () => {\n const location = useLocation();\n const history = useHistory();\n\n const params = new URLSearchParams(location.search);\n const success = params.get('success') === '1';\n\n React.useEffect(() => {\n let timeout;\n if (success) {\n timeout = setTimeout(() => history.replace('/integrations/channels/woocommerce'), 2000);\n }\n\n return () => clearTimeout(timeout);\n }, []);\n\n return (\n \n \n \n \n {success && (\n \n \n \n )}\n {!success && (\n \n

Something went wrong

\n

There was an error linking your store. Please try again.

\n \n } href=\"/integrations/channels/woocommerce\">\n Try Again\n \n \n
\n )}\n
\n );\n};\n\nexport const OnboardCheckfront: React.FunctionComponent = () => {\n const location = useLocation();\n const history = useHistory();\n\n const code = new URLSearchParams(location.search).get('code');\n const redirection = `${location.pathname}${location.search}`;\n\n return (\n \n {() => {\n history.replace('/integrations/channels/checkfront');\n return <>;\n }}\n \n );\n};\n","import React from 'react';\nimport ReactGA from 'react-ga4';\nimport { useLocation } from 'react-router';\n\nexport const useGA = (trackingId: string): void => {\n useLocation();\n\n React.useEffect(() => {\n ReactGA.initialize(trackingId);\n }, []);\n\n React.useEffect(() => {\n const obj = { hitType: 'pageview', page: window.location.pathname + window.location.search };\n ReactGA.send(obj);\n }, [window.location.href]);\n};\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nconst DigitsInputContainer = styled.div`\n display: flex;\n flex-direction: row;\n`;\n\nconst Digit = styled.input`\n border: 0;\n outline: none;\n box-shadow: none;\n appearance: none;\n\n border-radius: 15px;\n border: 2px solid #e8e8e8;\n box-sizing: border-box;\n font-size: 1.8em;\n font-weight: 500;\n\n width: 60px;\n height: 72px;\n text-align: center;\n\n transition: 0.15s border ease-in-out;\n\n &:not(:last-child) {\n margin-right: 10px;\n }\n\n &:focus {\n border: 2px solid #0ea5e9;\n }\n\n @media (max-width: 500px) {\n width: 48px;\n height: 58px;\n font-size: 1.4em;\n }\n\n @media (max-width: 400px) {\n width: 42px;\n height: 50px;\n font-size: 1.2em;\n }\n`;\n\nexport const DigitsInput = (props: {\n digits: number;\n initialDigits?: string;\n disabled?: boolean;\n onComplete: (value: string) => void;\n onInputChange: (value: string) => void;\n}): JSX.Element => {\n const refs = [...new Array(props.digits)].map(() => React.useRef(null));\n const [digits, setDigits] = React.useState(\n (() => {\n const digits = new Array(props.digits).fill('');\n (props.initialDigits || '').split('').forEach((v, i) => {\n if (i < digits.length) {\n digits[i] = v;\n }\n });\n return digits;\n })()\n );\n\n React.useEffect(() => {\n refs[0].current?.focus();\n }, []);\n\n return (\n \n {[...new Array(props.digits)].map((_, i) => (\n \n \n {\n if (e.key === 'Backspace') {\n refs[i - 1]?.current?.focus();\n }\n }}\n onFocus={(e) => {\n e.currentTarget.select();\n }}\n onChange={(e) => {\n const value = e.currentTarget.value;\n setDigits((prev) => {\n const next = [...prev];\n next[i] = '';\n value.split('').forEach((v, j) => {\n if (i + j < next.length) {\n next[i + j] = v;\n }\n });\n props.onInputChange(next.join(''));\n if (i + value.length >= next.length) {\n props.onComplete(next.join(''));\n }\n if (next[i]) {\n refs[i]?.current?.blur();\n refs[i + value.length]?.current?.focus();\n }\n return next;\n });\n }}\n >\n \n ))}\n \n );\n};\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { IoArrowForward, IoLockClosed } from 'react-icons/io5';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\nimport { Button, ButtonContainer, LinkComponent } from '@oysterjs/ui/Button';\nimport { useAuth } from '@oysterjs/core/auth';\nimport { OysterLogoOld } from '@oysterjs/ui/Logo';\nimport { PageContainer, PageSection } from '@oysterjs/ui/Page';\nimport { DigitsInput } from '@oysterjs/ui/Form/digits';\nimport { TextInput } from '@oysterjs/ui/Form/text';\nimport { AdditionalMerchantProductType, ProductType, ValidationError } from '@oysterjs/types';\nimport { FormColumn, FormContainer, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { FormRow } from '@oysterjs/ui/Form/builder';\nimport {\n createMerchant,\n merchantUserSignInComplete,\n merchantUserSignInInit\n} from '@oysterjs/core/api/merchant';\nimport { ErrorType, WrappedError } from '@oysterjs/core/errors';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\nimport { ErrorDisplay } from '@oysterjs/ui/Form/text';\nimport { Select } from '@oysterjs/ui/Form/select';\n\nconst SignInContainer = styled.div`\n width: 100%;\n display: flex;\n margin: 30px 0px;\n gap: 20px;\n\n @media (max-width: 900px) {\n flex-direction: column;\n align-items: center;\n gap: 40px;\n }\n`;\n\nconst SignInPane = styled.div`\n width: 50%;\n max-width: 700px;\n\n @media (max-width: 700px) {\n width: 100%;\n }\n`;\n\nconst SignInImage = styled.img`\n display: block;\n margin: auto;\n width: 100%;\n max-width: 320px;\n max-height: 400px;\n\n @media (max-width: 550px) {\n width: 100%;\n }\n`;\n\nconst SignInPage = (props: { redirect?: string }) => {\n const history = useHistory();\n\n const [email, setEmail] = React.useState('');\n\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState('');\n\n const redirectUri = props.redirect ? `redirect=${encodeURIComponent(props.redirect)}` : '';\n const signupUri = `/signup?${redirectUri}`;\n\n const handleLogin = () => {\n setLoading(true);\n setTimeout(\n () =>\n merchantUserSignInInit(email)\n .then(() =>\n history.push(\n `/signin?email=${encodeURIComponent(email)}` +\n `${redirectUri ? `&${redirectUri}` : ''}`\n )\n )\n .catch((err) => setError(err.message))\n .finally(() => setLoading(false)),\n 500\n );\n };\n\n const onSubmit = (e) => {\n e.preventDefault();\n handleLogin();\n };\n\n return (\n \n \n \n

Merchant Sign In

\n \n Don't have a merchant account yet?{' '}\n Create one.\n

\n \n \n \n setEmail(e.currentTarget.value)}\n />\n \n \n \n }\n icon={}\n loading={loading}\n onClick={() => handleLogin()}\n >\n Sign In\n \n \n \n
\n\n \n
\n
\n );\n};\n\nconst SignUpPage = (props: { code?: string; redirect?: string }) => {\n const history = useHistory();\n\n const [formData, setFormData] = React.useState({\n BusinessName: '',\n BusinessDBA: '',\n BusinessDomain: '',\n ProductVerticals: [],\n FirstName: '',\n LastName: '',\n Email: '',\n Phone: '',\n AccessCode: props.code || ''\n });\n\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState('');\n\n const [validationError, setValidationError] = React.useState();\n\n const redirectUri = props.redirect ? `redirect=${encodeURIComponent(props.redirect)}` : '';\n const signinUri = `/signin?${redirectUri}`;\n\n const setData = (field: string, value: string | ProductType[]) => {\n if (validationError?.Field === field) {\n setValidationError(undefined);\n }\n setFormData((prev) => ({\n ...prev,\n [field]: value\n }));\n };\n\n const handleSignUp = () => {\n setLoading(true);\n createMerchant({\n Merchant: {\n BusinessProfile: {\n Name: formData.BusinessName,\n DBA: formData.BusinessDBA,\n Email: formData.Email,\n Phone: formData.Phone,\n Domain: formData.BusinessDomain,\n ProductVerticals: formData.ProductVerticals\n }\n },\n MerchantUser: {\n FirstName: formData.FirstName,\n LastName: formData.LastName,\n Email: formData.Email,\n Phone: formData.Phone\n },\n AccessCode: formData.AccessCode\n })\n .then(() =>\n history.push(\n `/signin?email=${encodeURIComponent(formData.Email)}` +\n `${redirectUri ? `&${redirectUri}` : ''}`\n )\n )\n .catch((e) => {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.validationError) {\n setError('');\n setValidationError(err.getValidationError());\n } else {\n setValidationError(undefined);\n setError(err.message);\n }\n })\n .finally(() => setLoading(false));\n };\n\n const onSubmit = (e) => {\n e.preventDefault();\n handleSignUp();\n };\n\n return (\n \n

Get started

\n \n Tell us some basic information about your business and yourself. Already have a merchant\n account? Sign in.\n

\n \n \n \n \n setData('BusinessName', e.currentTarget.value)}\n autoComplete=\"business-name\"\n />\n \n \n setData('BusinessDBA', e.currentTarget.value)}\n autoComplete=\"business-name\"\n />\n \n \n \n \n setData('BusinessDomain', e.currentTarget.value)}\n autoComplete=\"website\"\n />\n \n \n {\n setData('ProductVerticals', value ? [value] : []);\n }}\n error={validationError?.SubField === 'ProductVerticals' && validationError?.Message}\n />\n \n \n \n \n \n setData('FirstName', e.currentTarget.value)}\n autoComplete=\"first-name\"\n />\n \n \n setData('LastName', e.currentTarget.value)}\n autoComplete=\"last-name\"\n />\n \n \n \n \n setData('Email', e.currentTarget.value)}\n inputMode=\"email\"\n autoComplete=\"email\"\n />\n \n \n setData('Phone', e.currentTarget.value)}\n inputMode=\"tel\"\n autoComplete=\"tel\"\n />\n \n \n \n }\n icon={}\n loading={loading}\n onClick={() => handleSignUp()}\n >\n Sign Up\n \n \n {error && {error}}\n

\n By signing up, you agree to Oyster's{' '}\n \n Terms of Service\n \n {', '}\n \n Privacy Policy\n {' '}\n and{' '}\n \n Merchant Partner Agreement\n \n .\n

\n
\n
\n );\n};\n\nconst SignInCompletePage = (props: { email: string; redirect?: string; code?: string }) => {\n const history = useHistory();\n\n const [code, setCode] = React.useState(props.code);\n const [loading, setLoading] = React.useState(false);\n const [resending, setResending] = React.useState(false);\n const [error, setError] = React.useState('');\n const [, setAuth] = useAuth();\n\n const resendCode = () => {\n setResending(true);\n setTimeout(\n () =>\n merchantUserSignInInit(props.email, props.redirect)\n .catch((err) => setError(err.message))\n .finally(() => setResending(false)),\n 500\n );\n };\n\n const handleLogin = (code?: string) => {\n if (code === undefined || code.length !== 6) {\n return;\n }\n\n setLoading(true);\n setTimeout(\n () =>\n merchantUserSignInComplete(props.email, code)\n .then((res) => {\n setLoading(false);\n setAuth(res);\n props.redirect ? history.replace(props.redirect) : history.push('/');\n })\n .catch((err) => {\n setLoading(false);\n setError(err.message);\n }),\n 500\n );\n };\n\n React.useEffect(() => {\n handleLogin(props.code);\n }, [props.code]);\n\n return (\n <>\n
\n \n

Check your email

\n

\n We've sent a magic link to {props.email}. Click the link in the email to finish\n signing in, or enter the 6-digit code from the email here. The code is valid for 15\n minutes.\n

\n
\n \n \n \n \n \n \n }\n icon={}\n onClick={(e) => {\n e.preventDefault();\n handleLogin(code);\n }}\n loading={loading}\n >\n Continue\n \n \n \n {error && {error}}\n
\n \n \n \n );\n};\n\nconst SignInCompleteWrapper: React.FunctionComponent<{\n width?: number;\n children: (data: { code?: string; email?: string; redirect?: string }) => JSX.Element | null;\n}> = (props) => {\n // Triggers a re-render when the URL changes, but does not contain the query string\n useRouteMatch();\n\n const params = new URLSearchParams(window.location.search);\n const email = params.get('email') || undefined;\n const redirect = params.get('redirect') || undefined;\n const code = params.get('code') || undefined;\n\n return (\n \n \n \n \n {props.children({ code, email, redirect })}\n \n );\n};\n\nexport const SignIn = (): JSX.Element => (\n \n {({ code, email, redirect }) => {\n if (email) {\n return ;\n }\n\n return ;\n }}\n \n);\n\nexport const SignUp = (): JSX.Element => (\n \n {({ code, email, redirect }) => {\n if (email) {\n return ;\n }\n\n return ;\n }}\n \n);\n","import {\n AccountSummary,\n AttachmentFile,\n Policy,\n Product,\n Statement,\n UserReferral,\n UserVerification\n} from '@oysterjs/types';\nimport { Delete, Get, getEncodedQueryString, Post } from './base';\nimport { CreatePolicyOptions } from './sdk';\nimport config from '@oysterjs/core/config';\n\nexport const getPolicies = () => Get<{ Policies: Policy[] }>('/user/policies');\n\nexport const getPolicy = (policyId: string) =>\n Get<{ Policy: Policy }>(`/user/policies/${policyId}`);\n\nexport const userCreatePolicy = (products: Product[], opts?: CreatePolicyOptions) =>\n Post<{ Policy: Policy }>(\n `/user/policy?${getEncodedQueryString({\n AllowValidationErrors: opts?.allowValidationErrors\n })}`,\n {\n Products: products,\n Insured: opts?.insured,\n ReferralChannelInfo: opts?.referralChannel\n },\n {\n headers: {\n 'X-Merchant-API-Key': opts?.merchantApiKey || config().merchant?.apiKey || '',\n 'X-Merchant-Integration-ID': opts?.integrationID || ''\n }\n }\n );\n\nexport const getAccountSummary = (redirectUrl?: string) =>\n Get('/user/account', { redirectUrl });\n\nexport const confirmAccount = (redirectUrl?: string) =>\n Post('/user/account/confirm', undefined, { redirectUrl });\n\nexport const getAccountStatement = (statementId: string) =>\n Get<{ Statement: Statement }>(`/user/account/statements/${statementId}`);\n\nexport const retrieveVerificationSession = () =>\n Post<{ VerificationSession: UserVerification }>('/user/account/verifications');\n\nexport const deletePaymentMethod = (id: string) => Delete(`/user/account/payment_methods/${id}`);\n\nexport const makePaymentMethodDefault = (id: string) =>\n Post(`/user/account/payment_methods/${id}/default`);\n\nexport const createPaymentMethod = () =>\n Post<{ StripeClientSecret: string }>('/user/account/payment_methods').then(\n (d) => d.StripeClientSecret\n );\n\nexport const getReferralList = () =>\n Get<{ Referrals: UserReferral[] }>('/user/referrals').then((d) => d.Referrals || []);\n\nexport const expressInterest = (product: string) => Post('/user/interest', { Product: product });\n\nexport const userCreatePolicyAttachments = (policyId: string, fileRole: string, files: File[]) => {\n const form = new FormData();\n files.forEach((file) => form.append('files[]', file));\n form.append('FileRole', fileRole);\n return Post<{ Metadata: AttachmentFile[] }>(`/user/policy/${policyId}/attach`, undefined, {\n body: form\n }).then((d) => d.Metadata || []);\n};\n\nexport const userGetPaymentSession = (policyId: string): Promise =>\n Post<{ StripeClientSecret: string }>(`/user/policies/${policyId}/payment`).then((d) => {\n return d.StripeClientSecret;\n });\n\nexport const userCompletePolicy = (policyId: string) =>\n Post<{ Policy: Policy; Redirect?: string }>(`/user/policies/${policyId}/complete`, undefined, {\n headers: {\n 'X-Merchant-API-Key': config().merchant?.apiKey || ''\n }\n });\n\nexport const userIdentify = (email?: string, firstName?: string, lastName?: string) =>\n Post<{ Token: string; Email: string }>(`/user/identify`, {\n Email: email,\n FirstName: firstName,\n LastName: lastName\n });\n","/**\n * Debounces a function\n */\nexport default ) => ReturnType>(func: F, waitFor: number) => {\n let timeout: NodeJS.Timeout;\n\n const debounced = (...args: Parameters) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => func(...args), waitFor);\n };\n\n return debounced;\n};\n","import React from 'react';\nimport { Cookies } from 'react-cookie';\nimport { useLocation } from 'react-router';\nimport { userIdentify } from './api/user';\nimport debounce from './debounce';\n\n/**\n * The tracking script ID used to connect this instance to our account.\n */\nconst PORTAL_ID = '22383747';\n\n/**\n * Hubspot chat properties that can be accessed through the context.\n */\ninterface HubspotChatContextProps {\n /**\n * Manually identify the current user based on the provided information.\n */\n identify: (email: string, firstName?: string, lastName?: string) => void;\n}\n\n/**\n * Hubspot chat context which gives access to HubspotChatContextProps.\n */\nexport const HubspotChatContext = React.createContext(null);\n\n/**\n * Provider that allows child elements to access HubspotChatContext. Also\n * initializes and renders the chat widget.\n */\nexport const HubspotChatContextProvider = (props: React.PropsWithChildren) => {\n const chat = useHubspotChat(PORTAL_ID);\n return {props.children};\n};\n\n/**\n * Implements the interface to the Hubspot chat widget and manages its lifecycle.\n *\n * @param portalId the script ID to use to initialize Hubspot\n */\nexport const useHubspotChat = (portalId): HubspotChatContextProps => {\n // Indicates that the Hubspot script has loaded (not necessarily the widget)\n const [scriptLoaded, setScriptLoaded] = React.useState(false);\n // Indicates that we are manually identifying the user based on information\n // they have entered, and that this should take precedence over the absense\n // of any automatic user identification.\n const [manualIdentification, setManualIdentification] = React.useState(false);\n // Listen for path changes to reset the identification when the user navigates\n // between pages.\n const location = useLocation();\n\n /**\n * Updates the Hubspot identification of the user based on a response\n * from the API server. It returns true if the identification changed\n * and false otherwise.\n */\n const updateIdentification = (email: string, token: string): boolean => {\n if (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.hsConversationsSettings.identificationEmail !== email ||\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.hsConversationsSettings.identificationToken !== token\n ) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (email && email !== window.hsConversationsSettings.identificationEmail) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window._hsq = window._hsq || [];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window._hsq.push(['identify', { email }]);\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n } else if (!email && email !== window.hsConversationsSettings.identificationEmail) {\n new Cookies().remove('hubspotutk');\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.hsConversationsSettings.identificationEmail = email;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.hsConversationsSettings.identificationToken = token;\n\n return true;\n }\n\n return false;\n };\n\n const trackPageView = () => {\n const path = location.pathname + location.search;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window._hsq = window._hsq || [];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window._hsq.push(['setPath', path]);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window._hsq.push(['trackPageView']);\n };\n\n /**\n * Performs identification with the API server, using either the provided\n * credentials or falling back to the session cookie which authenticates\n * the current user. It returns true if the identification changed and false\n * otherwise.\n */\n const identify = async (\n email?: string,\n firstName?: string,\n lastName?: string,\n manual?: boolean\n ): Promise => {\n if (!scriptLoaded) {\n return false;\n }\n\n try {\n // get token\n const res = await userIdentify(email, firstName, lastName);\n setManualIdentification((prev) => prev || !!manual);\n return updateIdentification(res.Email, res.Token);\n } catch (e) {\n // Only reset the identification if the user was not identified manually\n if (manualIdentification || manual) {\n return false;\n }\n\n return updateIdentification('', '');\n }\n };\n\n /**\n * Resets the widget state and reloads it. Call this when the identification\n * changes in order to reflect the latest state. This function is debounced\n * so that the latest state is always available and to respect the 1-second\n * throttle that the Hubspot SDK applies.\n */\n const refreshWidget = debounce(() => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.HubSpotConversations.clear({ resetWidget: true });\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.HubSpotConversations.widget.load();\n }, 500);\n\n /**\n * Effect that controls the initial load of the hook. It adds the\n * Hubspot script tag and sets `scriptLoaded` to `true` when the\n * script finishes loading and is ready.\n */\n React.useEffect(() => {\n // Set HubSpot chat settings\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.hsConversationsSettings = {\n loadImmediately: false,\n identificationEmail: '',\n identificationToken: ''\n };\n\n // Add event listener.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.hsConversationsOnReady = [() => setScriptLoaded(true)];\n\n // Create script component.\n const script = document.createElement('script');\n script.src = `//js.hs-scripts.com/${portalId}.js`;\n script.defer = true;\n\n // Add the script to the DOM\n document.head.appendChild(script);\n\n // Cleanup when the component is component is unmounted\n return () => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.hsConversationsOnReady = [];\n document.head.removeChild(script);\n };\n }, []);\n\n /**\n * Effect controls the initial load of the widget by identifying\n * the current user (using the automatic, cookie-based method) and\n * then loads the widget.\n */\n React.useEffect(() => {\n if (scriptLoaded) {\n identify().then(() => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.HubSpotConversations.widget.load();\n });\n }\n }, [scriptLoaded]);\n\n /**\n * Effect controls subsequent page route changes by re-performing\n * identification and refreshing the widget if identification changes.\n */\n React.useEffect(() => {\n if (scriptLoaded) {\n identify()\n .then((updatedIdentification) => {\n if (updatedIdentification) {\n refreshWidget();\n }\n })\n .finally(trackPageView);\n }\n\n // This effect intentionally omits `loaded` from the array\n // so that identification and refresh only runs on subsequent\n // page changes. The effect above should take care of the\n // initial render and loading of the chat widget.\n }, [location.pathname, location.search]);\n\n return {\n identify: async (email, firstName, lastName) => {\n const updatedIdentification = await identify(email, firstName, lastName, true);\n if (updatedIdentification) {\n refreshWidget();\n }\n }\n };\n};\n","import * as React from 'react';\nimport clsx from 'clsx';\nimport styled from 'styled-components';\nimport { CertificateCoverage, CertificateDetails, InsuranceType } from '../../types/graphql';\nimport { IoCheckmarkOutline, IoCopyOutline, IoOpenOutline } from 'react-icons/io5';\nimport { getDisplayInsuranceType } from '../../types/map';\nimport { CheckIcon } from '@heroicons/react/24/outline';\nimport { Button } from '@oysterjs/uiv2/button';\n\nexport const CertificateSectionContainer = styled.div`\n display: flex;\n gap: 30px;\n flex-direction: row;\n\n @media (max-width: 650px) {\n flex-direction: column;\n }\n`;\n\nexport const CertificateRightSection = styled.div`\n display: flex;\n flex-direction: column;\n gap: 30px;\n padding: 0px 0px 0px 30px;\n flex: 1 0 224px;\n\n @media (max-width: 650px) {\n border-top: 1px solid #cccccc;\n padding: 30px 0px 0px 0px;\n }\n`;\n\nexport const CertificateLeftSection = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: 16px;\n`;\n\nexport const CertificateRightSectionTitle = styled.div`\n text-transform: uppercase;\n color: #999999;\n font-weight: 600;\n font-size: 0.8em;\n`;\n\nconst unescapeSafe = (input: string) => {\n const doc = new DOMParser().parseFromString(input, 'text/html');\n return doc.documentElement.textContent;\n};\n\nconst CertificateEntity = (props: { entity: string; name: string; address: string }) => (\n
\n
{props.entity}
\n {props.name &&

{unescapeSafe(props.name)}

}\n

\n {props.address\n .trim()\n .split('\\n')\n .map((l) => (\n \n {unescapeSafe(l)}\n
\n
\n ))}\n

\n
\n);\n\nconst CertificatePolicy = (props: { coverage: CertificateCoverage }) => (\n
\n

{getDisplayInsuranceType(props.coverage.type)}

\n

\n {unescapeSafe(props.coverage.insurer.name)}\n

\n

\n {props.coverage.policyNumber}\n

\n
    \n
  • \n \n
    \n Policy is effective from{' '}\n {new Date(props.coverage.effectiveDate?.toString().replace('Z', '')).toLocaleDateString()}{' '}\n to{' '}\n {new Date(\n props.coverage.expirationDate?.toString().replace('Z', '')\n ).toLocaleDateString()}\n
    \n
  • \n {props.coverage.hasWaiverOfSubrogation && (\n
  • \n \n
    Policy has waiver of subrogation
    \n
  • \n )}\n {props.coverage.holderIsAdditionalInsured && (\n
  • \n \n
    \n Policy lists certificate holder as an additional insured\n
    \n
  • \n )}\n {props.coverage.type !== InsuranceType.WorkersCompensation &&\n props.coverage.limits.map((limit) => (\n
  • \n \n
    \n {limit.name} Limit:{' '}\n {new Intl.NumberFormat(undefined, {\n currency: 'USD',\n style: 'currency',\n maximumFractionDigits: 0\n }).format(limit.limit)}\n
    \n
  • \n ))}\n
\n
\n);\n\nconst CertificateSection = (props: { certificate: CertificateDetails }) => (\n \n \n {props.certificate.coverages.map((coverage) => (\n \n ))}\n \n \n \n \n {props.certificate.descriptionOfOperations && (\n \n )}\n \n \n);\n\nconst ActionsContainer = styled.div`\n display: flex;\n flex-direction: row;\n gap: 12px;\n`;\n\nexport const Action = styled.button`\n border: 0;\n\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 6px;\n\n padding: 8px 16px;\n border-radius: 30px;\n user-select: none;\n\n font-size: 0.7em;\n font-weight: 500;\n\n justify-content: center;\n\n color: #333333;\n background: #eaeaea;\n font-family: 'Rubik', 'Helvetica Neue', 'Helvetica', Arial, sans-serif;\n cursor: pointer;\n\n transition: all 0.15s ease-in-out;\n\n svg {\n font-size: 1.2em;\n }\n\n &:hover {\n background: #e6e6e6;\n }\n\n &:active {\n background: #cccccc;\n }\n`;\n\nconst MarketingBanner = () => (\n
\n

Get a competitive quote for your business insurance.

\n

\n Oyster is the only all-in-one platform for all your insurance needs, from insurance for your\n business to insurance for your customers. Our team of experts can help you save up to 30% on\n insurance costs.\n

\n \n Get a Quote\n \n
\n);\n\nexport const Certificate = (props: { url: string; details: CertificateDetails }) => {\n const [copyClicked, setCopyClicked] = React.useState(false);\n\n React.useEffect(() => {\n if (!copyClicked) {\n return;\n }\n\n if (navigator && navigator.clipboard && navigator.clipboard.writeText) {\n navigator.clipboard.writeText(window.location.href).catch(() => 0);\n }\n\n const timeout = setTimeout(() => {\n setCopyClicked(false);\n }, 2000);\n\n return () => clearTimeout(timeout);\n }, [copyClicked]);\n\n return (\n
\n

\n This document was produced by {props.details.producer.name} to certify that the insured has\n been issued the listed policies, each with its respective limits and conditions.\n

\n \n setCopyClicked(true)}>\n {!copyClicked && (\n <>\n Copy Link \n \n )}\n {copyClicked && (\n <>\n Link Copied! \n \n )}\n \n \n \n View Certificate \n \n \n \n \n \n
\n );\n};\n","import {\n CertificateLeftSection,\n CertificateRightSection,\n CertificateSectionContainer\n} from './certificate';\n\nconst CertificatePolicySkeleton = () => (\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n);\n\nconst CertificateSectionSkeleton = () => (\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n);\n\nexport const CertificateSkeleton = () => (\n <>\n
\n
\n\n
\n
\n
\n
\n\n
\n \n
\n \n);\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { useGetCertificateLazyQuery } from '../../types/graphql';\nimport { OysterWordMark } from '@oysterjs/ui/Logo';\nimport { Certificate } from './certificate';\nimport { CertificateSkeleton } from './skeleton';\nimport { CSSTransition, SwitchTransition } from 'react-transition-group';\nimport { Heading } from '@oysterjs/uiv2/heading';\nimport { ErrorComponentV2 } from '@oysterjs/ui/ErrorBoundary';\n\nconst TransitionContainer = styled.div`\n &.fade-enter {\n opacity: 0;\n }\n &.fade-enter-active {\n opacity: 1;\n transition: 0.15s opacity ease;\n }\n &.fade-exit {\n opacity: 1;\n }\n &.fade-exit-active {\n opacity: 0;\n transition: 0.15s opacity ease;\n }\n`;\n\nexport const CertificateApp = (props: { certificateNumber: string }) => {\n const [getCertificate, { data, error }] = useGetCertificateLazyQuery({\n variables: { certificateNumber: props.certificateNumber }\n });\n\n const [loading, setLoading] = React.useState(true);\n\n React.useEffect(() => {\n // For visual purposes load longer\n setTimeout(() => getCertificate().finally(() => setLoading(false)), 1500);\n }, []);\n\n return (\n
\n
\n
\n
\n \n
\n\n \n \n \n {!error && (\n <>\n {data?.certificate?.details?.insured?.name && (\n \n {data.certificate.details.insured.name}\n \n )}\n {!data?.certificate?.details?.insured?.name && (\n
\n )}\n \n Certificate of Insurance\n \n \n )}\n {error && }\n \n \n \n\n \n \n \n {loading && !error && }\n {!loading && !error && data?.certificate?.details && data?.certificate?.url && (\n \n )}\n \n \n \n
\n
\n
\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport { useHistory } from 'react-router';\nimport { useMutation } from '@apollo/client';\nimport { Button as HeadlessButton } from '@headlessui/react';\n\nimport { ShieldCheckIcon, LockClosedIcon, ComputerDesktopIcon } from '@heroicons/react/20/solid';\nimport { OysterWordMark } from '@oysterjs/ui/Logo';\nimport { Field, FieldGroup, Fieldset, Label } from '@oysterjs/uiv2/fieldset';\nimport {\n CreateBusinessApplicationDocument,\n CreateBusinessApplicationMutation\n} from '../../types/graphql';\nimport { Input } from '@oysterjs/uiv2/input';\nimport { Select } from '@oysterjs/uiv2/select';\nimport { ProductType } from '../../types/graphql';\n\nconst features = [\n {\n name: 'Comprehensive coverage.',\n description:\n 'Oyster works with 30+ carriers to ensure you get tailored coverage for your business.',\n icon: ShieldCheckIcon\n },\n {\n name: 'Digital experience.',\n description: 'Experience a seamless digital experience from quote to policy management.',\n icon: ComputerDesktopIcon\n },\n {\n name: 'Risk management.',\n description:\n 'Generate, share, and manage COIs on your own. Get access to a dedicated risk expert.',\n icon: LockClosedIcon\n }\n];\n\nconst getMerchantInfo = (merchantHandle?: string) => {\n const merchants = {\n '1800d2c': {\n name: '1-800-D2C',\n logo: 'https://cdn.prod.website-files.com/612afc0875843d237ddf95fc/66a279f55ce0fe8f522bbf8a_1800d2c-p-500.png',\n size: 'h-8'\n },\n aircfo: {\n name: 'AirCFO',\n logo: '/images/logos/aircfo.png',\n size: 'h-8'\n },\n bbg: {\n name: 'Balanced Business Group',\n logo: '/images/logos/bbg.png',\n size: 'h-10'\n },\n beyondsku: {\n name: 'BeyondSKU',\n logo: '/images/logos/beyondsku.png',\n size: 'h-10'\n },\n bookkeeper360: {\n name: 'Bookkeeper360',\n logo: '/images/logos/bookkeeper360.svg',\n size: 'h-10'\n },\n cfoplans: {\n name: 'CFO Plans',\n logo: '/images/logos/cfoplans.png',\n size: 'h-10'\n },\n decimal: {\n name: 'Decimal',\n logo: '/images/logos/decimal.png',\n size: 'h-10'\n },\n ecombalance: {\n name: 'EcomBalance',\n logo: '/images/logos/ecombalance.png',\n size: 'h-10'\n },\n finta: {\n name: 'Finta',\n logo: '/images/logos/finta.png',\n size: 'h-10'\n },\n fulfil: {\n name: 'Fulfil',\n logo: '/images/logos/fulfil.png',\n size: 'h-10'\n },\n guidance: {\n name: 'Guidance',\n logo: '/images/logos/guidance.png',\n size: 'h-10'\n },\n hawkemedia: {\n name: 'Hawke Media',\n logo: 'https://cdn.prod.website-files.com/612afc0875843d237ddf95fc/66a279f67cb2a4a80735ff4c_hawkemedia.png',\n size: 'h-8'\n },\n keptpro: {\n name: 'KeptPro',\n logo: '/images/logos/keptpro.png',\n size: 'h-10'\n },\n pacificcrestgroup: {\n name: 'Pacific Crest Group',\n logo: '/images/logos/pacificcrestgroup.jpg',\n size: 'h-10'\n },\n paperchase: {\n name: 'Paperchase',\n logo: '/images/logos/paperchase.png',\n size: 'h-10'\n },\n scharfconsulting: {\n name: 'Scharf Consulting',\n logo: '/images/logos/scharfconsulting.png',\n size: 'h-10'\n },\n pilot: {\n name: 'Pilot',\n logo: 'https://cdn.prod.website-files.com/612afc0875843d237ddf95fc/66a279f500e083184307f7cb_pilot.png',\n size: 'h-10'\n },\n rho: {\n name: 'Rho',\n logo: 'https://cdn.prod.website-files.com/612afc0875843d237ddf95fc/66a279f59a6e8aa01ecb6ad9_rho.png',\n size: 'h-8'\n },\n smartrr: {\n name: 'SmartRR',\n logo: '/images/logos/smartrr.png',\n size: 'h-9'\n },\n steptwo: {\n name: 'StepTwo',\n logo: '/images/logos/steptwo.png',\n size: 'h-10'\n }\n };\n\n return merchantHandle ? merchants[merchantHandle] : null;\n};\n\nexport const Landing = (props: { merchantHandle?: string }) => {\n const history = useHistory();\n\n const [isSubmitting, setIsSubmitting] = React.useState(false);\n const [createApplication, { data, error }] = useMutation(\n CreateBusinessApplicationDocument\n );\n\n React.useEffect(() => {\n if (data?.createBusinessApplication?.id) {\n history.push(`/commercial/app/${data.createBusinessApplication.id}`);\n }\n }, [data?.createBusinessApplication?.id]);\n\n const onSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n\n const formData = new FormData(e.currentTarget);\n const form = Object.fromEntries(formData.entries());\n\n if (form.businessVertical === ProductType.Bike) {\n // Go to fillout\n const filloutParams = new URLSearchParams({\n first_name: form.fullName?.toString().split(' ')[0] || '',\n last_name: form.fullName?.toString().split(' ')[1] || '',\n email: form.email?.toString() || '',\n phone: form.phone?.toString() || '',\n business_type: 'BIKES'\n });\n window.location.href = `https://www.withoyster.com/business-insurance-app?${filloutParams.toString()}`;\n return;\n }\n\n setIsSubmitting(true);\n setTimeout(() => {\n createApplication({\n variables: {\n application: {\n businessName: form.businessName?.toString(),\n fullName: form.fullName?.toString(),\n email: form.email?.toString(),\n phone: form.phone?.toString()\n }\n }\n }).finally(() => {\n setIsSubmitting(false);\n });\n }, 1000);\n };\n\n const merchantInfo = getMerchantInfo(props.merchantHandle);\n\n return (\n
\n
\n
\n
\n
\n
\n \n {merchantInfo?.logo && (\n \n \n \n )}\n {merchantInfo?.logo && (\n \n )}\n
\n

\n Reduce risk and grow confidently\n

\n

\n Find the right insurance for your business\n

\n {!merchantInfo?.name && (\n

\n Oyster works with top-rated insurance carriers to provide you with the best\n coverage for your business. Plus, leverage Oyster's risk management platform and\n experts to better protect your business.\n

\n )}\n {!!merchantInfo?.name && (\n

\n {merchantInfo.name} works with Oyster to offer insurance from top-rated carriers\n so that you get the best coverage for your business. Plus, leverage Oyster's risk\n management platform and experts to better protect your business.\n

\n )}\n
\n {features.map((feature) => (\n
\n
\n \n {feature.name}{' '}\n
\n
{feature.description}
\n
\n ))}\n
\n
\n
\n
\n
\n

Start your quote

\n
\n
\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n
\n\n \n Continue\n \n {!!error?.message && (\n
{error.message}
\n )}\n \n\n \n \n
\n
\n
\n
\n
\n
\n );\n};\n","import clsx from 'clsx';\nimport React from 'react';\nimport { Link } from './link';\n\nexport function Text({ className, ...props }: React.ComponentPropsWithoutRef<'p'>) {\n return (\n \n );\n}\n\nexport function TextLink({ className, ...props }: React.ComponentPropsWithoutRef) {\n return (\n \n );\n}\n\nexport function Strong({ className, ...props }: React.ComponentPropsWithoutRef<'strong'>) {\n return ;\n}\n\nexport function Code({ className, ...props }: React.ComponentPropsWithoutRef<'code'>) {\n return (\n \n );\n}\n","import clsx from 'clsx';\nimport React from 'react';\n\nexport function Divider({\n soft = false,\n className,\n ...props\n}: { soft?: boolean } & React.ComponentPropsWithoutRef<'hr'>) {\n return (\n \n );\n}\n","import * as Headless from '@headlessui/react';\nimport clsx from 'clsx';\nimport React, { forwardRef } from 'react';\nimport { TouchTarget } from './button';\nimport { Link } from './link';\n\nconst colors = {\n red: 'bg-red-500/15 text-red-700 group-data-[hover]:bg-red-500/25 dark:bg-red-500/10 dark:text-red-400 dark:group-data-[hover]:bg-red-500/20',\n orange:\n 'bg-orange-500/15 text-orange-700 group-data-[hover]:bg-orange-500/25 dark:bg-orange-500/10 dark:text-orange-400 dark:group-data-[hover]:bg-orange-500/20',\n amber:\n 'bg-amber-400/20 text-amber-700 group-data-[hover]:bg-amber-400/30 dark:bg-amber-400/10 dark:text-amber-400 dark:group-data-[hover]:bg-amber-400/15',\n yellow:\n 'bg-yellow-400/20 text-yellow-700 group-data-[hover]:bg-yellow-400/30 dark:bg-yellow-400/10 dark:text-yellow-300 dark:group-data-[hover]:bg-yellow-400/15',\n lime: 'bg-lime-400/20 text-lime-700 group-data-[hover]:bg-lime-400/30 dark:bg-lime-400/10 dark:text-lime-300 dark:group-data-[hover]:bg-lime-400/15',\n green:\n 'bg-green-500/15 text-green-700 group-data-[hover]:bg-green-500/25 dark:bg-green-500/10 dark:text-green-400 dark:group-data-[hover]:bg-green-500/20',\n emerald:\n 'bg-emerald-500/15 text-emerald-700 group-data-[hover]:bg-emerald-500/25 dark:bg-emerald-500/10 dark:text-emerald-400 dark:group-data-[hover]:bg-emerald-500/20',\n teal: 'bg-teal-500/15 text-teal-700 group-data-[hover]:bg-teal-500/25 dark:bg-teal-500/10 dark:text-teal-300 dark:group-data-[hover]:bg-teal-500/20',\n cyan: 'bg-cyan-400/20 text-cyan-700 group-data-[hover]:bg-cyan-400/30 dark:bg-cyan-400/10 dark:text-cyan-300 dark:group-data-[hover]:bg-cyan-400/15',\n sky: 'bg-sky-500/15 text-sky-700 group-data-[hover]:bg-sky-500/25 dark:bg-sky-500/10 dark:text-sky-300 dark:group-data-[hover]:bg-sky-500/20',\n blue: 'bg-blue-500/15 text-blue-700 group-data-[hover]:bg-blue-500/25 dark:text-blue-400 dark:group-data-[hover]:bg-blue-500/25',\n indigo:\n 'bg-indigo-500/15 text-indigo-700 group-data-[hover]:bg-indigo-500/25 dark:text-indigo-400 dark:group-data-[hover]:bg-indigo-500/20',\n violet:\n 'bg-violet-500/15 text-violet-700 group-data-[hover]:bg-violet-500/25 dark:text-violet-400 dark:group-data-[hover]:bg-violet-500/20',\n purple:\n 'bg-purple-500/15 text-purple-700 group-data-[hover]:bg-purple-500/25 dark:text-purple-400 dark:group-data-[hover]:bg-purple-500/20',\n fuchsia:\n 'bg-fuchsia-400/15 text-fuchsia-700 group-data-[hover]:bg-fuchsia-400/25 dark:bg-fuchsia-400/10 dark:text-fuchsia-400 dark:group-data-[hover]:bg-fuchsia-400/20',\n pink: 'bg-pink-400/15 text-pink-700 group-data-[hover]:bg-pink-400/25 dark:bg-pink-400/10 dark:text-pink-400 dark:group-data-[hover]:bg-pink-400/20',\n rose: 'bg-rose-400/15 text-rose-700 group-data-[hover]:bg-rose-400/25 dark:bg-rose-400/10 dark:text-rose-400 dark:group-data-[hover]:bg-rose-400/20',\n zinc: 'bg-zinc-600/10 text-zinc-700 group-data-[hover]:bg-zinc-600/20 dark:bg-white/5 dark:text-zinc-400 dark:group-data-[hover]:bg-white/10',\n neutral:\n 'bg-neutral-100 text-neutral-700 group-data-[hover]:bg-neutral-200 dark:bg-neutral-900 dark:text-neutral-400 dark:group-data-[hover]:bg-neutral-800'\n};\n\ntype BadgeProps = { color?: keyof typeof colors; hoverColor?: keyof typeof colors };\n\nexport function Badge({\n color = 'zinc',\n className,\n ...props\n}: BadgeProps & React.ComponentPropsWithoutRef<'span'>) {\n return (\n \n );\n}\n\nexport const BadgeButton = forwardRef(function BadgeButton(\n {\n color = 'zinc',\n className,\n children,\n ...props\n }: BadgeProps & { className?: string; children: React.ReactNode } & (\n | Omit\n | Omit, 'className'>\n ),\n ref: React.ForwardedRef\n) {\n const classes = clsx(\n className,\n 'group relative inline-flex rounded-md focus:outline-none data-[focus]:outline data-[focus]:outline-2 data-[focus]:outline-offset-2 data-[focus]:outline-blue-500'\n );\n\n return 'href' in props ? (\n }>\n \n {children}\n \n \n ) : (\n \n \n {children}\n \n \n );\n});\n","import React from 'react';\nimport {\n Combobox as HeadlessCombobox,\n ComboboxButton,\n ComboboxInput,\n ComboboxOption,\n ComboboxOptions\n} from '@headlessui/react';\nimport { CheckIcon, ChevronUpDownIcon } from '@heroicons/react/20/solid';\nimport clsx from 'clsx';\nimport { ErrorMessage } from './fieldset';\nimport { Badge } from './badge';\n\ntype Option = { value: T; label: string; description?: string; badgeText?: string };\n\nexport function Combobox<\n T extends {\n toString(): string;\n }\n>(props: {\n value?: T;\n error?: string;\n disabled?: boolean;\n placeholder?: string;\n options: Option[];\n minQueryLength?: number;\n maxOptions?: number;\n onChange: (value: T | '') => void;\n}) {\n const [query, setQuery] = React.useState('');\n const [selectedOption, setSelectedOption] = React.useState(\n props.value ? (props.options.find((opt) => opt.value === props.value) ?? null) : null\n );\n\n const queryRegex = new RegExp(`(${query.trim().replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')})`, 'gi');\n\n const minQueryLength = props.minQueryLength || 3;\n const maxOptions = props.maxOptions || 50;\n\n React.useEffect(() => {\n setSelectedOption(\n props.value ? (props.options.find((opt) => opt.value === props.value) ?? null) : null\n );\n }, [props.value, props.options]);\n\n const filteredOptions = props.options.filter((option) => {\n return (\n option.label.toString().toLowerCase().includes(query.trim().toLowerCase()) ||\n option.value.toString().toLowerCase().includes(query.trim().toLowerCase()) ||\n option.description?.toString().toLowerCase().includes(query.trim().toLowerCase())\n );\n });\n\n return (\n <>\n ) => {\n setQuery('');\n setSelectedOption(option);\n props.onChange(option?.value ?? '');\n }}\n data-invalid={props.error ? true : undefined}\n disabled={props.disabled}\n immediate={props.minQueryLength === 0}\n >\n \n {\n setQuery(event.target.value);\n setSelectedOption(null);\n props.onChange('');\n }}\n onBlur={() => setQuery('')}\n displayValue={(option: { label: string }) => option?.label}\n data-invalid={props.error ? true : undefined}\n disabled={props.disabled}\n placeholder={props.placeholder}\n />\n \n \n \n\n {(filteredOptions.length <= maxOptions || query.trim().length >= minQueryLength) &&\n filteredOptions.length > 0 && (\n \n {filteredOptions.map((option) => (\n \n
\n
\n
\n {option.label.split(queryRegex).map((part, i) =>\n part.toLowerCase() === query.trim().toLowerCase() ? (\n \n {part}\n \n ) : (\n {part}\n )\n )}\n
\n {option.badgeText && (\n
\n {option.badgeText}\n
\n )}\n
\n {option.description && (\n
\n {option.description.split(queryRegex).map((part, i) =>\n part.toLowerCase() === query.trim().toLowerCase() ? (\n \n {part}\n \n ) : (\n {part}\n )\n )}\n
\n )}\n
\n\n \n \n ))}\n
\n )}\n \n \n {!!props.error && {props.error}}\n \n );\n}\n","import clsx from 'clsx';\n\nexport function LegendSkeleton({ className }: { className?: string }) {\n return (\n \n );\n}\n\nexport function LabelSkeleton({\n className,\n long,\n extraLong\n}: {\n className?: string;\n long?: boolean;\n extraLong?: boolean;\n}) {\n return (\n \n );\n}\n\nexport function DescriptionSkeleton({ className, long }: { className?: string; long?: boolean }) {\n return (\n \n );\n}\n\nexport function TextSkeleton({ className }: { className?: string }) {\n return (\n <>\n \n \n \n );\n}\n\nexport function InputSkeleton({ className, short }: { className?: string; short?: boolean }) {\n return (\n \n );\n}\n","import React from 'react';\nimport ReactMarkdown from 'react-markdown';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport { useHistory } from 'react-router';\nimport styled from 'styled-components';\nimport clsx from 'clsx';\n\nimport {\n Button as HeadlessButton,\n Checkbox as HeadlessCheckbox,\n Radio,\n RadioGroup,\n Dialog,\n DialogBackdrop,\n DialogPanel,\n DialogTitle\n} from '@headlessui/react';\n\nimport {\n BuildingOffice2Icon,\n ShieldCheckIcon,\n ShieldExclamationIcon,\n XMarkIcon\n} from '@heroicons/react/24/outline';\nimport {\n CheckCircleIcon,\n CheckIcon,\n ChevronDoubleRightIcon,\n TrashIcon,\n PencilSquareIcon,\n PlusIcon,\n CurrencyDollarIcon,\n InformationCircleIcon\n} from '@heroicons/react/20/solid';\n\nimport { Text } from '@oysterjs/uiv2/text';\nimport {\n Fieldset,\n Legend,\n Field,\n Label,\n FieldGroup,\n Description,\n ErrorMessage\n} from '@oysterjs/uiv2/fieldset';\nimport { Input, InputGroup } from '@oysterjs/uiv2/input';\nimport { Select } from '@oysterjs/uiv2/select';\nimport { Textarea } from '@oysterjs/uiv2/textarea';\nimport { Divider } from '@oysterjs/uiv2/divider';\nimport { Combobox } from '@oysterjs/uiv2/combobox';\n\nimport { naics, states } from './naics';\nimport { Button } from '@oysterjs/uiv2/button';\nimport { PageWrapper } from './common';\nimport {\n AddBusinessApplicationLocationDocument,\n Address,\n ApplicationQuoteFieldsFragment,\n AvailableCoverageLimit,\n BindQuoteDocument,\n BindQuoteMutation,\n BuildingConstructionType,\n BuildingOwnershipType,\n BurglarAlarmType,\n BusinessApplicationCarrier,\n BusinessApplicationQuoteState,\n BusinessApplicationQuoteType,\n BusinessApplicationState,\n BusinessLegalEntityType,\n GetCoverageLimitsDocument,\n GetCoverageLimitsQuery,\n InsuranceLimits,\n InsuranceType,\n PastPolicyLossClaimStatus,\n PastPolicyLossType,\n PaymentPlanInstallmentFrequency,\n PaymentPlanPaymentMethodType,\n QuoteBusinessApplicationDocument,\n QuoteBusinessApplicationMutation,\n RemoveBusinessApplicationLocationDocument,\n SubmitBusinessApplicationDocument,\n SubmitBusinessApplicationMutation,\n UnderwritingQuestion,\n UnderwritingQuestionDependencyType,\n UnderwritingQuestionType,\n UnderwritingStatement,\n UpdateBusinessApplicationDocument,\n UpdateBusinessApplicationLocationDocument,\n UpdateBusinessApplicationMutation,\n ValidationError\n} from '../../types/graphql';\nimport { ApplicationContext } from './context';\nimport {\n DescriptionSkeleton,\n InputSkeleton,\n LabelSkeleton,\n LegendSkeleton,\n TextSkeleton\n} from '@oysterjs/uiv2/skeleton';\nimport { getMerchantGraphQLClient, merchantUserSignInInit } from '@oysterjs/core/api/merchant';\nimport * as UnderwritingForm from './form';\nimport { getDisplayInsuranceType } from '../../types/map';\nimport { Heading } from '@oysterjs/uiv2/heading';\nimport { ApolloError } from '@apollo/client';\n\nconst commonCoverages = [\n '$0 liability deductible',\n 'AM-Best Excellent-rated carrier',\n 'Create and manage COIs online',\n 'Dedicated risk expert'\n];\n\nconst insuranceTypes = [\n {\n id: InsuranceType.BusinessOwners,\n title: 'Business Owners',\n description: 'Combines essential coverages that include both liability and property.',\n coverages: [\n 'Premise, products, and operations liability including property',\n ...commonCoverages\n ]\n },\n {\n id: InsuranceType.GeneralLiability,\n title: 'General Liability',\n description: 'Covers your business from legal claims arising from normal operations.',\n coverages: ['Premise, products, and operations liability', ...commonCoverages]\n },\n {\n id: InsuranceType.WorkersCompensation,\n title: \"Workers' Compensation\",\n description: 'Covers your workers by providing benefits in case of illness or injury.',\n coverages: ['Employee physical injury, disability, and death', ...commonCoverages]\n },\n {\n id: InsuranceType.Cyber,\n title: 'Cyber',\n description: 'Covers your business from cyber incidents and data breaches.',\n coverages: ['Data breach, data loss, and hacked equipment', ...commonCoverages]\n },\n {\n id: InsuranceType.DirectorsAndOfficers,\n title: 'Directors and Officers',\n description: 'Protects your company and its executives from legal claims.',\n coverages: [...commonCoverages]\n },\n {\n id: InsuranceType.ErrorsAndOmission,\n title: 'Errors and Omission',\n description: 'Protects your business from claims of inadequate work or negligent actions.',\n coverages: [...commonCoverages]\n },\n {\n id: InsuranceType.Rental,\n title: 'Rental',\n description: 'Covers any equipment your rent out from damage and liability.',\n coverages: [...commonCoverages]\n },\n {\n id: InsuranceType.UmbrellaOrExcess,\n title: 'Umbrella or Excess',\n description: 'Provides additional coverage above your primary policies.',\n coverages: [...commonCoverages]\n }\n];\n\nconst workersCompensationDisabledStates = ['WY', 'ND', 'WA', 'OH'];\n\nconst currencyFormatter = new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0,\n maximumFractionDigits: 2\n});\n\nconst displaySelectedLimit = (insuranceType: InsuranceType, selectedLimits: InsuranceLimits) => {\n switch (insuranceType) {\n case InsuranceType.WorkersCompensation:\n return `${currencyFormatter.format(selectedLimits.wcPerAccidentLimit || 0)} / ${currencyFormatter.format(\n selectedLimits.wcPerDiseaseEmployeeLimit || 0\n )} / ${currencyFormatter.format(selectedLimits.wcPerDiseasePolicyLimit || 0)}`;\n case InsuranceType.GeneralLiability:\n return `${currencyFormatter.format(selectedLimits.glPerOccurrenceLimit || 0)} / ${currencyFormatter.format(\n selectedLimits.glAggregateLimit || 0\n )}`;\n case InsuranceType.BusinessOwners:\n return `${currencyFormatter.format(selectedLimits.bopPerOccurrenceLimit || 0)} / ${currencyFormatter.format(\n selectedLimits.bopAggregateLimit || 0\n )}`;\n case InsuranceType.Cyber:\n return `${currencyFormatter.format(selectedLimits.cyberRetentionLimit || 0)} / ${currencyFormatter.format(\n selectedLimits.cyberAggregateLimit || 0\n )}`;\n default:\n return '';\n }\n};\n\nconst PlusDivider = (props: React.PropsWithChildren) => {\n return (\n
\n
\n
\n
\n
{props.children}
\n
\n );\n};\n\nexport const Intro = () => {\n const history = useHistory();\n\n // Common state variables\n const { application, updateApplication, setError } = React.useContext(ApplicationContext);\n const [loading, setLoading] = React.useState(false);\n const [validationErrors, setValidationErrors] = React.useState([]);\n const [availableLimits, setAvailableLimits] = React.useState();\n\n // Define the form variables\n const [form, setForm] = React.useState<{\n contact?: {\n fullName?: string;\n email?: string;\n phone?: string;\n };\n selectedLimits?: {\n coverageState?: string;\n wcPerAccidentLimit?: number | null;\n wcPerDiseaseEmployeeLimit?: number | null;\n wcPerDiseasePolicyLimit?: number | null;\n glPerOccurrenceLimit?: number | null;\n glAggregateLimit?: number | null;\n bopPerOccurrenceLimit?: number | null;\n bopAggregateLimit?: number | null;\n cyberRetentionLimit?: number | null;\n cyberAggregateLimit?: number | null;\n };\n naicsCode?: string;\n insuranceTypes?: InsuranceType[];\n insuranceEffectiveAt?: string;\n }>({});\n\n // Set the form values based on the application\n React.useEffect(() => {\n setForm({\n contact: {\n fullName: application?.contact.fullName || '',\n email: application?.contact.email || '',\n phone: application?.contact.phone || ''\n },\n selectedLimits: application?.selectedLimits || {},\n naicsCode: application?.naicsCode || '',\n insuranceTypes: application?.insuranceTypes || [],\n insuranceEffectiveAt: (application?.insuranceEffectiveAt\n ? new Date(application?.insuranceEffectiveAt)\n : new Date()\n )\n .toISOString()\n .split('T')[0]\n });\n }, [application]);\n\n // If the coverage state changes, reload the available limits based on\n // the state.\n React.useEffect(() => {\n if (!form.selectedLimits?.coverageState) {\n return;\n }\n\n setLoading(true);\n getMerchantGraphQLClient()\n .query({\n query: GetCoverageLimitsDocument,\n errorPolicy: 'all',\n variables: {\n applicationId: application?.id || '',\n state: form.selectedLimits.coverageState\n }\n })\n .then((res) => {\n if (res.data?.coverageLimits) {\n setAvailableLimits(res.data.coverageLimits);\n chooseDefaultLimits(res.data.coverageLimits);\n }\n if (res.error?.message) {\n setError(res.error);\n }\n })\n .finally(() => setLoading(false));\n\n return () =>\n updateForm([], (prev) => ({\n ...prev,\n selectedLimits: { coverageState: prev.selectedLimits?.coverageState }\n }));\n }, [form.selectedLimits?.coverageState]);\n\n React.useEffect(() => {\n // Unselect WC if selected\n if (!checkWorkersCompensationEligibility()) {\n updateForm(['insuranceTypes'], (prev) => ({\n ...prev,\n insuranceTypes: (prev.insuranceTypes || []).filter(\n (v) => v !== InsuranceType.WorkersCompensation\n )\n }));\n }\n }, [form.selectedLimits?.coverageState]);\n\n // Define handlers for limits\n const onChangeLimit =\n (insuranceType: InsuranceType) => (e: React.ChangeEvent) => {\n const selectedIndex = parseInt(e.currentTarget.value);\n if (isNaN(selectedIndex)) {\n return;\n }\n\n setLimit(availableLimits || [], insuranceType, selectedIndex);\n };\n\n const setLimit = (\n limits: AvailableCoverageLimit[],\n insuranceType: InsuranceType,\n index: number\n ) => {\n const fields = {\n [InsuranceType.WorkersCompensation]: [\n 'wcPerAccidentLimit',\n 'wcPerDiseaseEmployeeLimit',\n 'wcPerDiseasePolicyLimit'\n ],\n [InsuranceType.GeneralLiability]: ['glPerOccurrenceLimit', 'glAggregateLimit'],\n [InsuranceType.BusinessOwners]: ['bopPerOccurrenceLimit', 'bopAggregateLimit'],\n [InsuranceType.Cyber]: ['cyberRetentionLimit', 'cyberAggregateLimit']\n };\n\n updateFormMulti(\n fields[insuranceType]?.map((field) => ['selectedLimits', field]) || [],\n (prev) => ({\n ...prev,\n selectedLimits: {\n ...prev.selectedLimits,\n ...Object.fromEntries(\n Object.entries(limits?.[index]?.limits || {}).filter(([, v]) => !!v)\n )\n }\n })\n );\n };\n\n const getLimitValue = (insuranceType: InsuranceType) => {\n // Depending on the insurance type, find the index of the available limit based on what\n // is selected in the form.\n let index: number | undefined;\n\n switch (insuranceType) {\n case InsuranceType.WorkersCompensation:\n index = availableLimits?.findIndex(\n (l) =>\n form.selectedLimits?.wcPerAccidentLimit &&\n form.selectedLimits?.wcPerDiseaseEmployeeLimit &&\n form.selectedLimits?.wcPerDiseasePolicyLimit &&\n l.limits.wcPerAccidentLimit === form.selectedLimits?.wcPerAccidentLimit &&\n l.limits.wcPerDiseaseEmployeeLimit === form.selectedLimits?.wcPerDiseaseEmployeeLimit &&\n l.limits.wcPerDiseasePolicyLimit === form.selectedLimits?.wcPerDiseasePolicyLimit\n );\n break;\n case InsuranceType.GeneralLiability:\n index = availableLimits?.findIndex(\n (l) =>\n form.selectedLimits?.glPerOccurrenceLimit &&\n form.selectedLimits?.glAggregateLimit &&\n l.limits.glPerOccurrenceLimit === form.selectedLimits?.glPerOccurrenceLimit &&\n l.limits.glAggregateLimit === form.selectedLimits?.glAggregateLimit\n );\n break;\n case InsuranceType.BusinessOwners:\n index = availableLimits?.findIndex(\n (l) =>\n form.selectedLimits?.bopPerOccurrenceLimit &&\n form.selectedLimits?.bopAggregateLimit &&\n l.limits.bopPerOccurrenceLimit === form.selectedLimits?.bopPerOccurrenceLimit &&\n l.limits.bopAggregateLimit === form.selectedLimits?.bopAggregateLimit\n );\n break;\n case InsuranceType.Cyber:\n index = availableLimits?.findIndex(\n (l) =>\n form.selectedLimits?.cyberRetentionLimit &&\n form.selectedLimits?.cyberAggregateLimit &&\n l.limits.cyberRetentionLimit === form.selectedLimits?.cyberRetentionLimit &&\n l.limits.cyberAggregateLimit === form.selectedLimits?.cyberAggregateLimit\n );\n break;\n }\n\n return index === undefined || index < 0 ? '' : index.toString();\n };\n\n const chooseDefaultLimits = (limits: AvailableCoverageLimit[]) => {\n // Group limits by insurance type\n const groupedLimits: Record = limits.reduce(\n (acc, limit) => ({\n ...acc,\n [limit.insuranceType]: [...(acc[limit.insuranceType] || []), limit]\n }),\n {} as Record\n );\n\n // Choose the default limit for each insurance type if it's not already set\n Object.entries(groupedLimits).forEach(([insuranceType, limits]) => {\n let index: number = -1;\n\n switch (insuranceType) {\n case InsuranceType.WorkersCompensation:\n if (!form.selectedLimits?.wcPerAccidentLimit) {\n index = limits.findIndex((l) => l.limits.wcPerAccidentLimit === 1_000_000);\n }\n break;\n case InsuranceType.GeneralLiability:\n if (!form.selectedLimits?.glPerOccurrenceLimit) {\n index = limits.findIndex((l) => l.limits.glPerOccurrenceLimit === 1_000_000);\n }\n break;\n case InsuranceType.BusinessOwners:\n if (!form.selectedLimits?.bopPerOccurrenceLimit) {\n index = limits.findIndex((l) => l.limits.bopPerOccurrenceLimit === 1_000_000);\n }\n break;\n case InsuranceType.Cyber:\n if (!form.selectedLimits?.cyberRetentionLimit) {\n index = limits.findIndex((l) => l.limits.cyberRetentionLimit === 10_000);\n }\n break;\n }\n\n if (index !== -1) {\n setLimit(limits, insuranceType as InsuranceType, index);\n }\n });\n };\n\n // Define the error fields that need to be validated on this page\n const errorFields = [\n ['contact', 'fullName'],\n ['contact', 'email'],\n ['contact', 'phone'],\n ['naicsCode'],\n ['insuranceTypes'],\n ['selectedLimits', 'coverageState'],\n ['selectedLimits', 'wcPerAccidentLimit'],\n ['selectedLimits', 'wcDiseaseEachEmployeeLimit'],\n ['selectedLimits', 'wcPerDiseasePolicyLimit'],\n ['selectedLimits', 'glPerOccurrenceLimit'],\n ['selectedLimits', 'glAggregateLimit'],\n ['selectedLimits', 'bopPerOccurrenceLimit'],\n ['selectedLimits', 'bopAggregateLimit'],\n ['selectedLimits', 'cyberRetentionLimit'],\n ['selectedLimits', 'cyberAggregateLimit'],\n ['insuranceEffectiveAt']\n ];\n\n // Define an update handler for the form\n const updateFormMulti = (\n fieldPartsList: string[][],\n update: (prev: typeof form) => typeof form\n ) => {\n fieldPartsList.forEach((fieldParts) =>\n setValidationErrors((prev) =>\n prev.filter(\n (e) =>\n e.field.length !== fieldParts.length || !e.field.every((v, i) => v === fieldParts[i])\n )\n )\n );\n setForm((prev) => update(prev));\n };\n\n const updateForm = (fieldParts: string[], update: (prev: typeof form) => typeof form) =>\n updateFormMulti([fieldParts], update);\n\n // Get the error message for a specific field\n const getError = (fieldParts: string[]) =>\n validationErrors.find(\n (e) => e.field.length === fieldParts.length && e.field.every((v, i) => v === fieldParts[i])\n )?.message;\n\n const checkWorkersCompensationEligibility = () => {\n if (!form.selectedLimits?.coverageState) {\n return true;\n }\n\n return !workersCompensationDisabledStates.includes(form.selectedLimits?.coverageState);\n };\n\n // Handle form submission, i.e. updating the application on the backend.\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setLoading(true);\n\n try {\n const res = await getMerchantGraphQLClient().mutate({\n mutation: UpdateBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application?.id,\n application: {\n ...form,\n insuranceEffectiveAt: form.insuranceEffectiveAt + 'T00:00:00Z'\n }\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const noValidationErrorMatched = validationErrors.every(\n (e) =>\n !errorFields.some(\n (f) => f.length === e.field.length && f.every((v, i) => v === e.field[i])\n )\n );\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.updateBusinessApplication || application);\n\n if (noValidationErrorMatched) {\n history.push(`/commercial/app/${application?.id}/business`);\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n }\n >\n
\n
\n Contact information\n Provide your information and how we can contact you.\n \n
\n \n \n {\n const fullName = e.currentTarget.value;\n updateForm(['contact', 'fullName'], (prev) => ({\n ...prev,\n contact: { ...prev.contact, fullName }\n }));\n }}\n invalid={!!getError(['contact', 'fullName'])}\n />\n {!!getError(['contact', 'fullName']) && (\n {getError(['contact', 'fullName'])}\n )}\n \n \n \n {\n const email = e.currentTarget.value;\n updateForm(['contact', 'email'], (prev) => ({\n ...prev,\n contact: { ...prev.contact, email }\n }));\n }}\n invalid={!!getError(['contact', 'email'])}\n />\n {!!getError(['contact', 'email']) && (\n {getError(['contact', 'email'])}\n )}\n \n \n \n {\n const phone = e.currentTarget.value;\n updateForm(['contact', 'phone'], (prev) => ({\n ...prev,\n contact: { ...prev.contact, phone }\n }));\n }}\n invalid={!!getError(['contact', 'phone'])}\n />\n {!!getError(['contact', 'phone']) && (\n {getError(['contact', 'phone'])}\n )}\n \n
\n
\n
\n\n \n\n
\n Business classification\n \n Tell us how to classify your business. This will ensure you get the right coverages for\n your business.\n \n\n \n \n \n \n Choose the state that you're looking for coverage in (most of the time, this is the\n state that the business is based out of).\n \n {\n const val = e.currentTarget.value;\n updateForm(['selectedLimits', 'coverageState'], (prev) => ({\n ...prev,\n selectedLimits: { coverageState: val }\n }));\n }}\n >\n \n {states.map((state) => (\n \n ))}\n \n {!!getError(['selectedLimits', 'coverageState']) && (\n {getError(['selectedLimits', 'coverageState'])}\n )}\n \n \n \n \n Search for the industry classification that best matches your business.\n \n \n updateForm(['naicsCode'], (prev) => ({ ...prev, naicsCode }))\n }\n options={Object.entries(naics).map(([code, entry]) => ({\n value: code,\n label: entry.title,\n description: entry.description\n }))}\n error={getError(['naicsCode'])}\n />\n \n \n
\n\n \n\n
\n Coverage\n \n Select the types of insurance coverage that your business needs. We can get you a\n competitive quote for each of these.\n \n\n \n \n
\n {insuranceTypes.map((insuranceType) => (\n \n updateForm(['insuranceTypes'], (prev) => ({\n ...prev,\n insuranceTypes: checked\n ? [...(prev.insuranceTypes || []), insuranceType.id]\n : (prev.insuranceTypes || []).filter((v) => v !== insuranceType.id)\n }))\n }\n disabled={\n insuranceType.id === InsuranceType.WorkersCompensation &&\n !checkWorkersCompensationEligibility()\n }\n aria-label={insuranceType.title}\n aria-description={`${insuranceType.title}: ${insuranceType.description}`}\n className={clsx([\n 'data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[disabled]:pointer-events-none',\n 'group relative flex cursor-pointer rounded-lg bg-white p-4 shadow-sm focus:outline-none border border-neutral-950/10 data-[hover]:border-neutral-950/20 data-[focus]:border-primary-500 data-[focus]:ring-2 data-[focus]:ring-primary-500 dark:bg-neutral-800 dark:border-white/10 dark:data-[hover]:border-white/20'\n ])}\n >\n \n \n \n {insuranceType.title}\n \n \n {(insuranceType.id !== InsuranceType.WorkersCompensation ||\n checkWorkersCompensationEligibility()) &&\n insuranceType.description}\n {insuranceType.id === InsuranceType.WorkersCompensation &&\n !checkWorkersCompensationEligibility() &&\n \"Your state is a monopolistic state. If you need to obtain workers' compensation coverage, please contact your state.\"}\n \n \n \n \n \n \n ))}\n
\n {!!getError(['insuranceTypes']) && (\n {getError(['insuranceTypes'])}\n )}\n
\n
\n {!!availableLimits?.length && (\n \n {form.insuranceTypes?.includes(InsuranceType.BusinessOwners) && (\n \n \n \n Choose the liability limits you'd like on your business owner's policy.\n \n \n \n {availableLimits.map((limit, i) =>\n limit.insuranceType !== InsuranceType.BusinessOwners ? null : (\n \n )\n )}\n \n {!!getError(['selectedLimits', 'bopPerOccurrenceLimit']) && (\n \n {getError(['selectedLimits', 'bopPerOccurrenceLimit'])}\n \n )}\n \n )}\n {form.insuranceTypes?.includes(InsuranceType.GeneralLiability) && (\n \n \n Choose the limits you'd like on your liability policy.\n \n \n {availableLimits.map((limit, i) =>\n limit.insuranceType !== InsuranceType.GeneralLiability ? null : (\n \n )\n )}\n \n {!!getError(['selectedLimits', 'glPerOccurrenceLimit']) && (\n \n {getError(['selectedLimits', 'glPerOccurrenceLimit'])}\n \n )}\n \n )}\n {form.insuranceTypes?.includes(InsuranceType.WorkersCompensation) && (\n \n \n \n Choose the limits you'd like on your workers' compensation policy.\n \n \n \n {availableLimits.map((limit, i) =>\n limit.insuranceType !== InsuranceType.WorkersCompensation ? null : (\n \n )\n )}\n \n {!!getError(['selectedLimits', 'wcPerAccidentLimit']) && (\n \n {getError(['selectedLimits', 'wcPerAccidentLimit'])}\n \n )}\n \n )}\n {form.insuranceTypes?.includes(InsuranceType.Cyber) && (\n \n \n \n Choose the liability limits you'd like on your cyber policy.\n \n \n \n {availableLimits.map((limit, i) =>\n limit.insuranceType !== InsuranceType.Cyber ? null : (\n \n )\n )}\n \n {!!getError(['selectedLimits', 'cyberRetentionLimit']) && (\n \n {getError(['selectedLimits', 'cyberRetentionLimit'])}\n \n )}\n \n )}\n \n )}\n\n \n \n \n \n This is the date you'd like your insurance coverage to start. You can change this\n later.\n \n {\n const insuranceEffectiveAt = e.currentTarget.value;\n updateForm(['insuranceEffectiveAt'], (prev) => ({\n ...prev,\n insuranceEffectiveAt\n }));\n }}\n invalid={!!getError(['insuranceEffectiveAt'])}\n />\n {!!getError(['insuranceEffectiveAt']) && (\n {getError(['insuranceEffectiveAt'])}\n )}\n \n \n
\n\n
\n \n Save and continue\n \n
\n \n \n );\n};\n\nexport const IntroSkeleton = () => {\n return (\n
\n
\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n\n \n\n
\n \n \n\n \n \n \n \n \n \n \n \n \n \n
\n\n \n\n
\n \n \n\n \n \n \n \n \n \n \n
\n
\n );\n};\n\nexport const Business = () => {\n const history = useHistory();\n\n // Common state variables\n const { application, updateApplication, setError } = React.useContext(ApplicationContext);\n // const [jobCodes, setJobCodes] = React.useState();\n const [loading, setLoading] = React.useState(false);\n const [validationErrors, setValidationErrors] = React.useState([]);\n\n // Define the form variables\n const [form, setForm] = React.useState<{\n businessName?: string;\n businessDba?: string;\n mailingAddress: Address;\n fein?: string;\n legalEntityType?: string;\n annualRevenue?: string;\n yearOfFounding?: string;\n yearsOfManagementExperience?: string;\n employeeInfo?: {\n numFullTimeEmployees?: string;\n numPartTimeEmployees?: string;\n totalEmployeePayroll?: string;\n };\n owners?: {\n fullName?: string;\n annualPayroll?: string;\n dateOfBirth?: string;\n jobCode?: string;\n }[];\n }>({ mailingAddress: { line1: '', city: '', zone: '', postalCode: '' } });\n\n // Set the form values based on the application\n React.useEffect(() => {\n setForm({\n businessName: application?.businessName || '',\n businessDba: application?.businessDba || '',\n mailingAddress: {\n line1: application?.mailingAddress?.line1 || '',\n line2: application?.mailingAddress?.line2,\n city: application?.mailingAddress?.city || '',\n zone: application?.mailingAddress?.zone || '',\n postalCode: application?.mailingAddress?.postalCode || ''\n },\n fein: application?.fein || '',\n legalEntityType: application?.legalEntityType || '',\n annualRevenue: !application?.annualRevenue ? '' : application.annualRevenue.toString(),\n yearOfFounding: application?.yearOfFounding || '',\n yearsOfManagementExperience: !application?.annualRevenue\n ? ''\n : application.yearsOfManagementExperience.toString(),\n employeeInfo: {\n numFullTimeEmployees: !application?.employeeInfo?.numFullTimeEmployees\n ? ''\n : application.employeeInfo.numFullTimeEmployees.toString(),\n numPartTimeEmployees: !application?.employeeInfo?.numPartTimeEmployees\n ? ''\n : application.employeeInfo.numPartTimeEmployees.toString(),\n totalEmployeePayroll: !application?.employeeInfo?.totalEmployeePayroll\n ? ''\n : application.employeeInfo.totalEmployeePayroll.toString()\n },\n owners: application?.owners?.length\n ? application.owners.map((owner) => ({\n fullName: owner.fullName,\n annualPayroll: !owner.annualPayroll ? '' : owner.annualPayroll.toString(),\n dateOfBirth: (owner.dateOfBirth ? new Date(owner.dateOfBirth) : new Date())\n .toISOString()\n .split('T')[0],\n jobCode: owner.jobCode || ''\n }))\n : [\n {\n fullName: '',\n annualPayroll: '',\n dateOfBirth: new Date().toISOString().split('T')[0],\n jobCode: ''\n }\n ]\n });\n }, [application]);\n\n // Define the error fields that need to be validated on this page\n const errorFields = [\n ['businessName'],\n ['businessDba'],\n ['mailingAddress', 'line1'],\n ['mailingAddress', 'line2'],\n ['mailingAddress', 'city'],\n ['mailingAddress', 'zone'],\n ['mailingAddress', 'postalCode'],\n ['fein'],\n ['legalEntityType'],\n ['annualRevenue'],\n ['yearOfFounding'],\n ['yearsOfManagementExperience'],\n ['employeeInfo', 'numFullTimeEmployees'],\n ['employeeInfo', 'numPartTimeEmployees'],\n ['employeeInfo', 'totalEmployeePayroll'],\n ...(form.owners?.flatMap((_, i) => [\n ['owners', i.toString(), 'fullName'],\n ['owners', i.toString(), 'annualPayroll'],\n ['owners', i.toString(), 'dateOfBirth'],\n ['owners', i.toString(), 'jobCode']\n ]) || [])\n ];\n\n // Define an update handler for the form\n const updateFormMulti = (\n fieldPartsList: string[][],\n update: (prev: typeof form) => typeof form\n ) => {\n fieldPartsList.forEach((fieldParts) =>\n setValidationErrors((prev) =>\n prev.filter(\n (e) =>\n e.field.length !== fieldParts.length || !e.field.every((v, i) => v === fieldParts[i])\n )\n )\n );\n setForm((prev) => update(prev));\n };\n\n const updateForm = (fieldParts: string[], update: (prev: typeof form) => typeof form) =>\n updateFormMulti([fieldParts], update);\n\n const addEmptyOwner = () =>\n updateForm([], (prev) => ({\n ...prev,\n owners: [\n ...(prev.owners || []),\n {\n fullName: '',\n annualPayroll: '',\n dateOfBirth: new Date().toISOString().split('T')[0]\n }\n ]\n }));\n\n const removePreviousOwner = () =>\n updateForm([], (prev) => ({\n ...prev,\n owners: prev.owners?.slice(0, prev.owners.length - 1)\n }));\n\n // Get the error message for a specific field\n const getError = (fieldParts: string[]) =>\n validationErrors.find(\n (e) => e.field.length === fieldParts.length && e.field.every((v, i) => v === fieldParts[i])\n )?.message;\n\n // Handle form submission, i.e. updating the application on the backend.\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setLoading(true);\n\n try {\n const res = await getMerchantGraphQLClient().mutate({\n mutation: UpdateBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application?.id,\n application: {\n ...form,\n employeeInfo: {\n numFullTimeEmployees: parseInt(\n (form.employeeInfo?.numFullTimeEmployees || '0').replace(/[$,]/g, '')\n ),\n numPartTimeEmployees: parseInt(\n (form.employeeInfo?.numPartTimeEmployees || '0').replace(/[$,]/g, '')\n ),\n totalEmployeePayroll: parseFloat(\n (form.employeeInfo?.totalEmployeePayroll || '0').replace(/[$,]/g, '')\n )\n },\n legalEntityType: form.legalEntityType || null,\n annualRevenue: parseFloat((form.annualRevenue || '').replace(/[$,]/g, '')),\n yearsOfManagementExperience: parseInt(form.yearsOfManagementExperience || '0'),\n owners: form.owners?.map((owner) => ({\n ...owner,\n annualPayroll: parseFloat((owner.annualPayroll || '0').replace(/[$,]/g, ''))\n }))\n }\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const noValidationErrorMatched = validationErrors.every(\n (e) =>\n !errorFields.some(\n (f) => f.length === e.field.length && f.every((v, i) => v === e.field[i])\n )\n );\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.updateBusinessApplication || application);\n\n if (noValidationErrorMatched) {\n history.push(`/commercial/app/${application?.id}/locations`);\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n }\n >\n
\n
\n Business Profile\n Provide some basic details about the business you'd like insurance for.\n \n
\n \n \n {\n const businessName = e.currentTarget.value;\n updateForm(['businessName'], (prev) => ({ ...prev, businessName }));\n }}\n invalid={!!getError(['businessName'])}\n />\n {!!getError(['businessName']) && (\n {getError(['businessName'])}\n )}\n \n \n \n {\n const businessDba = e.currentTarget.value;\n updateForm(['businessDba'], (prev) => ({ ...prev, businessDba }));\n }}\n invalid={!!getError(['businessDba'])}\n />\n {!!getError(['businessDba']) && (\n {getError(['businessDba'])}\n )}\n \n
\n
\n \n updateFormMulti(\n [\n ['mailingAddress', 'line1'],\n ['mailingAddress', 'line2'],\n ['mailingAddress', 'city'],\n ['mailingAddress', 'zone'],\n ['mailingAddress', 'postalCode']\n ],\n (prev) => ({\n ...prev,\n mailingAddress: update(prev.mailingAddress)\n })\n )\n }\n initialValue={{\n line1: form.mailingAddress?.line1 || '',\n line2: form.mailingAddress?.line2,\n city: form.mailingAddress?.city || '',\n zone: form.mailingAddress?.zone || '',\n postalCode: form.mailingAddress?.postalCode || ''\n }}\n validationErrors={{\n line1: getError(['mailingAddress', 'line1']),\n line2: getError(['mailingAddress', 'line2']),\n city: getError(['mailingAddress', 'city']),\n zone: getError(['mailingAddress', 'zone']),\n postalCode: getError(['mailingAddress', 'postalCode'])\n }}\n />\n
\n\n \n\n
\n Business Details\n \n Tell us more about your business, including your FEIN, legal entity type, annual\n revenue, and year of founding.\n \n\n \n
\n {application?.insuranceTypes.includes(InsuranceType.WorkersCompensation) && (\n \n \n {\n const fein = e.currentTarget.value;\n updateForm(['fein'], (prev) => ({ ...prev, fein }));\n }}\n invalid={!!getError(['fein'])}\n />\n {!!getError(['fein']) && {getError(['fein'])}}\n \n )}\n \n \n {\n const legalEntityType = e.currentTarget.value;\n updateForm(['legalEntityType'], (prev) => ({ ...prev, legalEntityType }));\n }}\n invalid={!!getError(['legalEntityType'])}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {!!getError(['legalEntityType']) && (\n {getError(['legalEntityType'])}\n )}\n \n
\n
\n \n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const annualRevenue = e.currentTarget.value;\n updateForm(['annualRevenue'], (prev) => ({ ...prev, annualRevenue }));\n }}\n invalid={!!getError(['annualRevenue'])}\n />\n \n\n {!!getError(['annualRevenue']) && (\n {getError(['annualRevenue'])}\n )}\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const yearOfFounding = e.currentTarget.value;\n updateForm(['yearOfFounding'], (prev) => ({ ...prev, yearOfFounding }));\n }}\n invalid={!!getError(['yearOfFounding'])}\n />\n {!!getError(['yearOfFounding']) && (\n {getError(['yearOfFounding'])}\n )}\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const yearsOfManagementExperience = e.currentTarget.value;\n updateForm(['yearsOfManagementExperience'], (prev) => ({\n ...prev,\n yearsOfManagementExperience\n }));\n }}\n invalid={!!getError(['yearsOfManagementExperience'])}\n />\n {!!getError(['yearsOfManagementExperience']) && (\n {getError(['yearsOfManagementExperience'])}\n )}\n \n
\n
\n
\n\n {(application?.insuranceTypes?.some((i) =>\n [\n InsuranceType.BusinessOwners,\n InsuranceType.GeneralLiability,\n InsuranceType.Cyber\n ].includes(i)\n ) ||\n application?.insuranceTypes?.includes(InsuranceType.WorkersCompensation)) && }\n\n {application?.insuranceTypes?.some((i) =>\n [\n InsuranceType.BusinessOwners,\n InsuranceType.GeneralLiability,\n InsuranceType.Cyber\n ].includes(i)\n ) && (\n
\n Employees\n \n Tell us how many employees work at your business and the total payroll amount\n (excluding owners).\n \n\n \n
\n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const numFullTimeEmployees = e.currentTarget.value;\n updateForm(['employeeInfo', 'numFullTimeEmployees'], (prev) => ({\n ...prev,\n employeeInfo: {\n ...prev?.employeeInfo,\n numFullTimeEmployees\n }\n }));\n }}\n invalid={!!getError(['employeeInfo', 'numFullTimeEmployees'])}\n />\n {!!getError(['employeeInfo', 'numFullTimeEmployees']) && (\n \n {getError(['employeeInfo', 'numFullTimeEmployees'])}\n \n )}\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const numPartTimeEmployees = e.currentTarget.value;\n updateForm(['employeeInfo', 'numPartTimeEmployees'], (prev) => ({\n ...prev,\n employeeInfo: {\n ...prev?.employeeInfo,\n numPartTimeEmployees\n }\n }));\n }}\n invalid={!!getError(['employeeInfo', 'numPartTimeEmployees'])}\n />\n {!!getError(['employeeInfo', 'numPartTimeEmployees']) && (\n \n {getError(['employeeInfo', 'numPartTimeEmployees'])}\n \n )}\n \n \n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const totalEmployeePayroll = e.currentTarget.value;\n updateForm(['employeeInfo', 'totalEmployeePayroll'], (prev) => ({\n ...prev,\n employeeInfo: {\n ...prev?.employeeInfo,\n totalEmployeePayroll\n }\n }));\n }}\n invalid={!!getError(['employeeInfo', 'totalEmployeePayroll'])}\n />\n \n {!!getError(['employeeInfo', 'totalEmployeePayroll']) && (\n \n {getError(['employeeInfo', 'totalEmployeePayroll'])}\n \n )}\n \n
\n
\n
\n )}\n\n {application?.insuranceTypes?.some((i) =>\n [\n InsuranceType.BusinessOwners,\n InsuranceType.GeneralLiability,\n InsuranceType.Cyber\n ].includes(i)\n ) &&\n application?.insuranceTypes?.includes(InsuranceType.WorkersCompensation) && }\n\n {application?.insuranceTypes?.includes(InsuranceType.WorkersCompensation) && (\n
\n Business owners\n Tell us about each individual considered an owner of your business.\n\n {form.owners?.map((owner, index) => (\n \n
\n \n \n {\n const fullName = e.currentTarget.value;\n updateForm(['owners', index.toString(), 'fullName'], (prev) => ({\n ...prev,\n owners: prev.owners?.map((owner, i) =>\n i !== index ? owner : { ...owner, fullName }\n )\n }));\n }}\n invalid={!!getError(['owners', index.toString(), 'fullName'])}\n />\n {!!getError(['owners', index.toString(), 'fullName']) && (\n \n {getError(['owners', index.toString(), 'fullName'])}\n \n )}\n \n\n \n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const annualPayroll = e.currentTarget.value;\n updateForm(['owners', index.toString(), 'annualPayroll'], (prev) => ({\n ...prev,\n owners: prev.owners?.map((owner, i) =>\n i !== index ? owner : { ...owner, annualPayroll }\n )\n }));\n }}\n invalid={!!getError(['owners', index.toString(), 'annualPayroll'])}\n />\n \n {!!getError(['owners', index.toString(), 'annualPayroll']) && (\n \n {getError(['owners', index.toString(), 'annualPayroll'])}\n \n )}\n \n\n \n \n {\n const dateOfBirth = e.currentTarget.value;\n updateForm(['owners', index.toString(), 'dateOfBirth'], (prev) => ({\n ...prev,\n owners: prev.owners?.map((owner, i) =>\n i !== index ? owner : { ...owner, dateOfBirth }\n )\n }));\n }}\n invalid={!!getError(['owners', index.toString(), 'dateOfBirth'])}\n />\n {!!getError(['owners', index.toString(), 'dateOfBirth']) && (\n \n {getError(['owners', index.toString(), 'dateOfBirth'])}\n \n )}\n \n
\n
\n ))}\n\n \n {form.owners && form.owners.length > 1 && (\n \n )}\n \n \n
\n )}\n\n
\n \n \n
\n \n \n );\n};\n\nexport const BusinessSkeleton = () => {\n return (\n
\n
\n \n \n \n
\n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n\n \n\n
\n \n \n \n
\n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n\n \n\n
\n \n \n\n \n
\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n
\n
\n
\n\n \n\n
\n \n \n\n \n
\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n
\n
\n
\n
\n );\n};\n\nexport const Locations = () => {\n const history = useHistory();\n\n // Common state variables\n const { application, updateApplication, setError } = React.useContext(ApplicationContext);\n // const [jobCodes, setJobCodes] = React.useState();\n const [loading, setLoading] = React.useState(false);\n const [validationErrors, setValidationErrors] = React.useState([]);\n\n // Define the form variables\n const [open, setOpen] = React.useState(false);\n const [form, setForm] = React.useState<{\n id: string;\n isPrimary: boolean;\n address: Address;\n buildingInfo: {\n annualSales?: string;\n areaOccupiedByBusiness?: string;\n buildingCoverage?: string;\n burglarAlarmType?: BurglarAlarmType | '';\n constructionType?: BuildingConstructionType | '';\n ownershipType?: BuildingOwnershipType | '';\n personalPropertyCoverage?: string;\n sprinkleredPercentage?: string;\n totalArea?: string;\n totalStories?: string;\n yearBuilt?: string;\n };\n employeeInfo: {\n numFullTimeEmployees?: string;\n numPartTimeEmployees?: string;\n totalEmployeePayroll?: string;\n jobCode?: string;\n };\n }>({\n id: '',\n address: { line1: '', city: '', zone: '', postalCode: '' },\n buildingInfo: {},\n isPrimary: false,\n employeeInfo: {}\n });\n\n // Define the error fields that need to be validated on this page\n const errorFields = Array((application?.locations?.length || 0) + 1)\n .fill(0)\n .flatMap((_, i) => [\n ['locations', i.toString(), 'isPrimary'],\n ['locations', i.toString(), 'address', 'line1'],\n ['locations', i.toString(), 'address', 'line2'],\n ['locations', i.toString(), 'address', 'city'],\n ['locations', i.toString(), 'address', 'zone'],\n ['locations', i.toString(), 'address', 'postalCode'],\n ['locations', i.toString(), 'buildingInfo', 'annualSales'],\n ['locations', i.toString(), 'buildingInfo', 'areaOccupiedByBusiness'],\n ['locations', i.toString(), 'buildingInfo', 'buildingCoverage'],\n ['locations', i.toString(), 'buildingInfo', 'burglarAlarmType'],\n ['locations', i.toString(), 'buildingInfo', 'constructionType'],\n ['locations', i.toString(), 'buildingInfo', 'ownershipType'],\n ['locations', i.toString(), 'buildingInfo', 'personalPropertyCoverage'],\n ['locations', i.toString(), 'buildingInfo', 'sprinkleredPercentage'],\n ['locations', i.toString(), 'buildingInfo', 'totalArea'],\n ['locations', i.toString(), 'buildingInfo', 'totalStories'],\n ['locations', i.toString(), 'buildingInfo', 'yearBuilt'],\n ['locations', i.toString(), 'employeeInfo', 'numFullTimeEmployees'],\n ['locations', i.toString(), 'employeeInfo', 'numPartTimeEmployees'],\n ['locations', i.toString(), 'employeeInfo', 'totalEmployeePayroll'],\n ['locations', i.toString(), 'employeeInfo', 'jobCode']\n ]);\n\n // Define an update handler for the form\n const updateFormMulti = (\n fieldPartsList: string[][],\n update: (prev: typeof form) => typeof form\n ) => {\n fieldPartsList.forEach((fieldParts) => {\n const foundIdx = application?.locations?.findIndex((l) => l.id === form.id) || 0;\n const idx = foundIdx !== -1 ? foundIdx : (application?.locations?.length || 1) - 1;\n\n fieldParts = ['locations', idx.toString(), ...fieldParts];\n setValidationErrors((prev) =>\n prev.filter(\n (e) =>\n e.field.length !== fieldParts.length || !e.field.every((v, i) => v === fieldParts[i])\n )\n );\n });\n setForm((prev) => update(prev));\n };\n\n const updateForm = (fieldParts: string[], update: (prev: typeof form) => typeof form) =>\n updateFormMulti([fieldParts], update);\n\n // Get the error message for a specific field\n const getError = (fieldParts: string[]) => {\n const foundIdx = application?.locations?.findIndex((l) => l.id === form.id) || 0;\n const idx = foundIdx !== -1 ? foundIdx : application?.locations?.length || 0;\n\n fieldParts = ['locations', idx.toString(), ...fieldParts];\n return validationErrors.find(\n (e) => e.field.length === fieldParts.length && e.field.every((v, i) => v === fieldParts[i])\n )?.message;\n };\n\n const locationIndexHasError = (index: number) =>\n !open && !!validationErrors.find((e) => e.field[1] === index.toString());\n\n const getDefaultLocationInfo = () => ({\n id: '' + Math.random(),\n isPrimary: !application?.locations?.length,\n address: { line1: '', city: '', zone: '', postalCode: '' },\n buildingInfo: {\n annualSales:\n application?.locations.length === 0 ? application?.annualRevenue.toString() : undefined\n },\n employeeInfo: {\n numFullTimeEmployees:\n application?.locations.length === 0\n ? application?.employeeInfo.numFullTimeEmployees.toString()\n : undefined,\n numPartTimeEmployees:\n application?.locations.length === 0\n ? application?.employeeInfo.numPartTimeEmployees.toString()\n : undefined,\n totalEmployeePayroll:\n application?.locations.length === 0\n ? application?.employeeInfo.totalEmployeePayroll.toString()\n : undefined\n }\n });\n\n const addLocation = () => {\n setValidationErrors([]);\n updateForm([], () => ({ ...getDefaultLocationInfo() }));\n setOpen(true);\n };\n\n const addLocationFromMailingAddress = () => {\n setValidationErrors([]);\n updateForm([], () => ({\n ...getDefaultLocationInfo(),\n address: application?.mailingAddress || {\n line1: '',\n city: '',\n zone: '',\n postalCode: ''\n }\n }));\n setOpen(true);\n };\n\n const discardChanges = () => {\n editLocation(form.id);\n setValidationErrors([]);\n setOpen(false);\n };\n\n // Handle form submission, i.e. updating the application on the backend.\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setLoading(true);\n\n try {\n // determine if update or addition\n const isUpdate = application?.locations?.find((l) => l.id === form.id);\n const mutation = isUpdate\n ? UpdateBusinessApplicationLocationDocument\n : AddBusinessApplicationLocationDocument;\n\n const res = await getMerchantGraphQLClient().mutate({\n mutation: mutation,\n errorPolicy: 'all',\n variables: {\n applicationId: application?.id,\n locationId: form.id,\n location: {\n ...form,\n buildingInfo: {\n annualSales: parseFloat((form.buildingInfo?.annualSales || '0').replace(/[$,]/g, '')),\n areaOccupiedByBusiness: parseFloat(\n (form.buildingInfo?.areaOccupiedByBusiness || '0').replace(/[,]/g, '')\n ),\n buildingCoverage: parseFloat(\n (form.buildingInfo?.buildingCoverage || '0').replace(/[$,]/g, '')\n ),\n burglarAlarmType: form.buildingInfo.burglarAlarmType || undefined,\n constructionType: form.buildingInfo.constructionType || undefined,\n ownershipType: form.buildingInfo.ownershipType || undefined,\n personalPropertyCoverage: parseFloat(\n (form.buildingInfo?.personalPropertyCoverage || '0').replace(/[$,]/g, '')\n ),\n sprinkleredPercentage: parseFloat(\n (form.buildingInfo?.sprinkleredPercentage || '0').replace(/[,]/g, '')\n ),\n totalArea: parseFloat((form.buildingInfo?.totalArea || '0').replace(/[,]/g, '')),\n totalStories: parseFloat(\n (form.buildingInfo?.totalStories || '0').replace(/[,]/g, '')\n ),\n yearBuilt: form.buildingInfo.yearBuilt || undefined\n },\n employeeInfo: {\n jobCode: form.employeeInfo?.jobCode || '',\n numFullTimeEmployees: parseInt(\n (form.employeeInfo?.numFullTimeEmployees || '0').replace(/[$,]/g, '')\n ),\n numPartTimeEmployees: parseInt(\n (form.employeeInfo?.numPartTimeEmployees || '0').replace(/[$,]/g, '')\n ),\n totalEmployeePayroll: parseFloat(\n (form.employeeInfo?.totalEmployeePayroll || '0').replace(/[$,]/g, '')\n )\n }\n }\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const noValidationErrorMatched = validationErrors.every(\n (e) =>\n !errorFields.some(\n (f) => f.length === e.field.length && f.every((v, i) => v === e.field[i])\n )\n );\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.businessApplication || application);\n\n if (noValidationErrorMatched) {\n setOpen(false);\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n const editLocation = (id: string) => {\n const location = application?.locations?.find((l) => l.id === id);\n if (!location) {\n return;\n }\n\n updateForm([], () => ({\n id: location.id,\n isPrimary: location.isPrimary,\n address: location.address,\n buildingInfo: {\n ...location.buildingInfo,\n annualSales: location.buildingInfo.annualSales\n ? location.buildingInfo.annualSales.toString()\n : '',\n areaOccupiedByBusiness: location.buildingInfo.areaOccupiedByBusiness\n ? location.buildingInfo.areaOccupiedByBusiness.toString()\n : '',\n buildingCoverage: location.buildingInfo.buildingCoverage\n ? location.buildingInfo.buildingCoverage.toString()\n : '',\n burglarAlarmType: location.buildingInfo.burglarAlarmType || '',\n constructionType: location.buildingInfo.constructionType || '',\n ownershipType: location.buildingInfo.ownershipType || '',\n personalPropertyCoverage: location.buildingInfo.personalPropertyCoverage\n ? location.buildingInfo.personalPropertyCoverage.toString()\n : '',\n sprinkleredPercentage: location.buildingInfo.sprinkleredPercentage\n ? location.buildingInfo.sprinkleredPercentage.toString()\n : '',\n totalArea: location.buildingInfo.totalArea\n ? location.buildingInfo.totalArea.toString()\n : '',\n totalStories: location.buildingInfo.totalStories\n ? location.buildingInfo.totalStories.toString()\n : ''\n },\n employeeInfo: {\n numFullTimeEmployees: !location?.employeeInfo?.numFullTimeEmployees\n ? ''\n : location.employeeInfo.numFullTimeEmployees.toString(),\n numPartTimeEmployees: !location?.employeeInfo?.numPartTimeEmployees\n ? ''\n : location.employeeInfo.numPartTimeEmployees.toString(),\n totalEmployeePayroll: !location?.employeeInfo?.totalEmployeePayroll\n ? ''\n : location.employeeInfo.totalEmployeePayroll.toString(),\n jobCode: location.employeeInfo.jobCode || ''\n }\n }));\n setOpen(true);\n };\n\n const removeLocation = async (id: string) => {\n setLoading(true);\n\n try {\n const res = await getMerchantGraphQLClient().mutate({\n mutation: RemoveBusinessApplicationLocationDocument,\n errorPolicy: 'all',\n variables: {\n applicationId: application?.id,\n locationId: id\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.businessApplication || application);\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n const onContinue = async () => {\n setLoading(true);\n\n try {\n // Trigger an update to get any validation errors\n const res = await getMerchantGraphQLClient().mutate({\n mutation: UpdateBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application?.id,\n application: {}\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const noValidationErrorMatched = validationErrors.every(\n (e) =>\n !errorFields.some(\n (f) => f.length === e.field.length && f.every((v, i) => v === e.field[i])\n )\n );\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.updateBusinessApplication || application);\n\n if (noValidationErrorMatched) {\n history.push(`/commercial/app/${application?.id}/losses`);\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n }\n >\n \n \n\n
\n\n
\n
\n
\n \n
\n
\n
\n \n Add a new location\n \n
\n setOpen(false)}\n className=\"relative rounded-md bg-primary-800 text-primary-200 hover:text-white focus:outline-none focus:ring-2 focus:ring-white\"\n >\n \n Close panel\n \n \n
\n
\n
\n
\n
\n
\n Location Address\n Enter the address for the location you'd like to add.\n {\n updateFormMulti(\n [\n ['address', 'line1'],\n ['address', 'line2'],\n ['address', 'city'],\n ['address', 'zone'],\n ['address', 'postalCode']\n ],\n (prev) => ({ ...prev, address: update(prev.address) })\n );\n }}\n initialValue={{\n line1: form.address?.line1 || '',\n line2: form.address?.line2,\n city: form.address?.city || '',\n zone: form.address?.zone || '',\n postalCode: form.address?.postalCode || ''\n }}\n validationErrors={{\n line1: getError(['address', 'line1']),\n line2: getError(['address', 'line2']),\n city: getError(['address', 'city']),\n zone: getError(['address', 'zone']),\n postalCode: getError(['address', 'postalCode'])\n }}\n />\n
\n {application?.insuranceTypes.includes(InsuranceType.BusinessOwners) && (\n
\n Building Information\n Tell us about some building characteristics\n \n
\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const areaOccupiedByBusiness = e.currentTarget.value;\n updateForm(\n ['buildingInfo', 'areaOccupiedByBusiness'],\n (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n areaOccupiedByBusiness\n }\n })\n );\n }}\n />\n
\n square feet\n
\n
\n {!!getError(['buildingInfo', 'areaOccupiedByBusiness']) && (\n \n {getError(['buildingInfo', 'areaOccupiedByBusiness'])}\n \n )}\n
\n\n \n \n {\n const burglarAlarmType = e.currentTarget.value;\n updateForm(['buildingInfo', 'burglarAlarmType'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n burglarAlarmType: burglarAlarmType as BurglarAlarmType\n }\n }));\n }}\n >\n \n \n \n \n \n \n {!!getError(['buildingInfo', 'burglarAlarmType']) && (\n \n {getError(['buildingInfo', 'burglarAlarmType'])}\n \n )}\n \n\n \n \n {\n const constructionType = e.currentTarget.value;\n updateForm(['buildingInfo', 'constructionType'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n constructionType:\n constructionType as BuildingConstructionType\n }\n }));\n }}\n >\n \n \n \n \n \n \n \n \n {!!getError(['buildingInfo', 'constructionType']) && (\n \n {getError(['buildingInfo', 'constructionType'])}\n \n )}\n \n\n \n \n {\n const ownershipType = e.currentTarget.value;\n updateForm(['buildingInfo', 'ownershipType'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n ownershipType: ownershipType as BuildingOwnershipType\n }\n }));\n }}\n >\n \n \n \n \n \n {!!getError(['buildingInfo', 'ownershipType']) && (\n \n {getError(['buildingInfo', 'ownershipType'])}\n \n )}\n \n\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const sprinkleredPercentage = e.currentTarget.value;\n updateForm(\n ['buildingInfo', 'sprinkleredPercentage'],\n (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n sprinkleredPercentage\n }\n })\n );\n }}\n />\n\n
\n %\n
\n
\n {!!getError(['buildingInfo', 'sprinkleredPercentage']) && (\n \n {getError(['buildingInfo', 'sprinkleredPercentage'])}\n \n )}\n
\n\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const totalArea = e.currentTarget.value;\n updateForm(['buildingInfo', 'totalArea'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n totalArea\n }\n }));\n }}\n />\n\n
\n square feet\n
\n
\n {!!getError(['buildingInfo', 'totalArea']) && (\n \n {getError(['buildingInfo', 'totalArea'])}\n \n )}\n
\n\n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const totalStories = e.currentTarget.value;\n updateForm(['buildingInfo', 'totalStories'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n totalStories\n }\n }));\n }}\n />\n {!!getError(['buildingInfo', 'totalStories']) && (\n \n {getError(['buildingInfo', 'totalStories'])}\n \n )}\n \n\n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const yearBuilt = e.currentTarget.value;\n updateForm(['buildingInfo', 'yearBuilt'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n yearBuilt\n }\n }));\n }}\n />\n {!!getError(['buildingInfo', 'yearBuilt']) && (\n \n {getError(['buildingInfo', 'yearBuilt'])}\n \n )}\n \n
\n
\n
\n )}\n {application?.insuranceTypes.includes(InsuranceType.BusinessOwners) && (\n
\n Operational Information\n Tell us about the operations tied to this location\n \n
\n \n \n \n Sales per year associated with this location\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const annualSales = e.currentTarget.value;\n updateForm(['buildingInfo', 'annualSales'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n annualSales\n }\n }));\n }}\n />\n \n {!!getError(['buildingInfo', 'annualSales']) && (\n \n {getError(['buildingInfo', 'annualSales'])}\n \n )}\n \n\n \n \n \n Coverage for the structure of the building\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const buildingCoverage = e.currentTarget.value;\n updateForm(['buildingInfo', 'buildingCoverage'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n buildingCoverage\n }\n }));\n }}\n />\n \n {!!getError(['buildingInfo', 'buildingCoverage']) && (\n \n {getError(['buildingInfo', 'buildingCoverage'])}\n \n )}\n \n\n \n \n \n Covers business property inside, e.g. inventory, furniture, and\n equipment\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const personalPropertyCoverage = e.currentTarget.value;\n updateForm(\n ['buildingInfo', 'personalPropertyCoverage'],\n (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n personalPropertyCoverage\n }\n })\n );\n }}\n />\n \n {!!getError(['buildingInfo', 'personalPropertyCoverage']) && (\n \n {getError(['buildingInfo', 'personalPropertyCoverage'])}\n \n )}\n \n
\n
\n
\n )}\n {application?.insuranceTypes.includes(InsuranceType.GeneralLiability) &&\n !application?.insuranceTypes.includes(InsuranceType.BusinessOwners) && (\n
\n Operational Information\n Tell us about the operations tied to this location\n \n
\n \n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const annualSales = e.currentTarget.value;\n updateForm(['buildingInfo', 'annualSales'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n annualSales\n }\n }));\n }}\n />\n \n {!!getError(['buildingInfo', 'annualSales']) && (\n \n {getError(['buildingInfo', 'annualSales'])}\n \n )}\n \n
\n
\n
\n )}\n {application?.insuranceTypes.includes(InsuranceType.WorkersCompensation) && (\n
\n Employee Information\n Tell us about the employees tied to this location\n \n
\n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const numFullTimeEmployees = e.currentTarget.value;\n updateForm(\n ['employeeInfo', 'numFullTimeEmployees'],\n (prev) => ({\n ...prev,\n employeeInfo: {\n ...prev?.employeeInfo,\n numFullTimeEmployees\n }\n })\n );\n }}\n invalid={!!getError(['employeeInfo', 'numFullTimeEmployees'])}\n />\n {!!getError(['employeeInfo', 'numFullTimeEmployees']) && (\n \n {getError(['employeeInfo', 'numFullTimeEmployees'])}\n \n )}\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const numPartTimeEmployees = e.currentTarget.value;\n updateForm(\n ['employeeInfo', 'numPartTimeEmployees'],\n (prev) => ({\n ...prev,\n employeeInfo: {\n ...prev?.employeeInfo,\n numPartTimeEmployees\n }\n })\n );\n }}\n invalid={!!getError(['employeeInfo', 'numPartTimeEmployees'])}\n />\n {!!getError(['employeeInfo', 'numPartTimeEmployees']) && (\n \n {getError(['employeeInfo', 'numPartTimeEmployees'])}\n \n )}\n \n \n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const totalEmployeePayroll = e.currentTarget.value;\n updateForm(\n ['employeeInfo', 'totalEmployeePayroll'],\n (prev) => ({\n ...prev,\n employeeInfo: {\n ...prev?.employeeInfo,\n totalEmployeePayroll\n }\n })\n );\n }}\n invalid={!!getError(['employeeInfo', 'totalEmployeePayroll'])}\n />\n \n {!!getError(['employeeInfo', 'totalEmployeePayroll']) && (\n \n {getError(['employeeInfo', 'totalEmployeePayroll'])}\n \n )}\n \n {/* \n \n \n Choose the role that best describes these employees.\n \n \n updateForm(['employeeInfo', 'jobCode'], (prev) => ({\n ...prev,\n employeeInfo: {\n ...prev?.employeeInfo,\n jobCode\n }\n }))\n }\n options={\n jobCodes?.map((jobCode) => ({\n label: jobCode.description,\n value: jobCode.id\n })) || []\n }\n error={getError(['employeeInfo', 'jobCode'])}\n disabled={loading}\n />\n */}\n
\n
\n
\n )}\n
\n
\n \n Discard\n \n \n
\n
\n
\n \n
\n
\n
\n
\n\n {!application?.locations?.length && (\n
\n \n

No locations added

\n

Add a business location to continue.

\n
\n history.push(`/commercial/app/${application?.id}/business`)}\n disabled={loading}\n >\n Previous Page\n \n \n \n
\n
\n )}\n\n {!!application?.locations?.length && (\n
    \n {application.locations.map((location, i) => (\n \n
    \n
    \n
    \n

    \n {location.address.line1}\n

    \n

    \n {location.address.city}, {location.address.zone}\n

    \n {location.isPrimary && (\n \n Primary Location\n \n )}\n
    \n \n
    \n\n {locationIndexHasError(i) && (\n \n Please correct errors before proceeding.\n \n )}\n
    \n
    \n
    \n
    \n removeLocation(location.id)}\n disabled={loading}\n >\n \n Remove\n \n
    \n
    \n editLocation(location.id)}\n disabled={loading}\n >\n \n Edit\n \n
    \n
    \n
    \n \n ))}\n
  • \n \n \n \n Add another location\n \n \n
  • \n
\n )}\n\n {!!application?.locations?.length && (\n
\n history.push(`/commercial/app/${application?.id}/business`)}\n disabled={loading}\n >\n Previous Page\n \n \n Save and continue\n \n
\n )}\n \n );\n};\n\nexport const LocationsSkeleton = () => {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n};\n\nexport const Losses = () => {\n const history = useHistory();\n\n // Common state variables\n const { application, updateApplication, setError } = React.useContext(ApplicationContext);\n const [loading, setLoading] = React.useState(false);\n const [validationErrors, setValidationErrors] = React.useState([]);\n\n // Define the form variables\n const [hasLosses, setHasLosses] = React.useState<'YES' | 'NO' | null>(null);\n const [form, setForm] = React.useState<\n {\n claimDate?: string;\n claimStatus?: string;\n lossDate?: string;\n lossDescription?: string;\n lossState?: string;\n lossType?: string;\n policyEffectiveDate?: string;\n policyExpirationDate?: string;\n policyType?: string;\n totalPaidAmount?: string;\n totalReservedAmount?: string;\n }[]\n >([]);\n\n React.useEffect(() => {\n if (application?.pastPolicyLosses?.length) {\n setHasLosses('YES');\n setForm(\n application.pastPolicyLosses.map((l) => ({\n claimDate: l.claimDate ? new Date(l.claimDate).toISOString().split('T')[0] : undefined,\n claimStatus: l.claimStatus || '',\n lossDate: l.lossDate ? new Date(l.lossDate).toISOString().split('T')[0] : undefined,\n lossDescription: l.lossDescription,\n lossState: l.lossState || '',\n lossType: l.lossType || '',\n policyEffectiveDate: l.policyEffectiveDate\n ? new Date(l.policyEffectiveDate).toISOString().split('T')[0]\n : undefined,\n policyExpirationDate: l.policyExpirationDate\n ? new Date(l.policyExpirationDate).toISOString().split('T')[0]\n : undefined,\n policyType: l.policyType || '',\n totalPaidAmount: (l.totalPaidAmount || '').toString(),\n totalReservedAmount: (l.totalReservedAmount || '').toString()\n }))\n );\n }\n }, [application]);\n\n React.useEffect(() => {\n if (hasLosses === 'YES' && form.length === 0) {\n setForm([{}]);\n }\n }, [hasLosses]);\n\n // Define the error fields that need to be validated on this page\n const errorFields = Array((application?.pastPolicyLosses?.length || 0) + 1)\n .fill(0)\n .flatMap((_, i) => [\n ['pastPolicyLosses', i.toString(), 'claimDate'],\n ['pastPolicyLosses', i.toString(), 'claimStatus'],\n ['pastPolicyLosses', i.toString(), 'lossDate'],\n ['pastPolicyLosses', i.toString(), 'lossDescription'],\n ['pastPolicyLosses', i.toString(), 'lossState'],\n ['pastPolicyLosses', i.toString(), 'lossType'],\n ['pastPolicyLosses', i.toString(), 'policyEffectiveDate'],\n ['pastPolicyLosses', i.toString(), 'policyExpirationDate'],\n ['pastPolicyLosses', i.toString(), 'policyType'],\n ['pastPolicyLosses', i.toString(), 'totalPaidAmount'],\n ['pastPolicyLosses', i.toString(), 'totalReservedAmount']\n ]);\n\n // Define an update handler for the form\n const updateFormMulti = (\n fieldPartsList: string[][],\n update: (prev: typeof form) => typeof form\n ) => {\n fieldPartsList.forEach((fieldParts) => {\n setValidationErrors((prev) =>\n prev.filter(\n (e) =>\n e.field.length !== fieldParts.length || !e.field.every((v, i) => v === fieldParts[i])\n )\n );\n });\n setForm((prev) => update(prev));\n };\n\n const updateForm = (fieldParts: string[], update: (prev: typeof form) => typeof form) =>\n updateFormMulti([fieldParts], update);\n\n // Get the error message for a specific field\n const getError = (fieldParts: string[]) =>\n validationErrors.find(\n (e) => e.field.length === fieldParts.length && e.field.every((v, i) => v === fieldParts[i])\n )?.message;\n\n const addLoss = () => updateForm([], (prev) => [...prev, {}]);\n\n const removeLoss = async (index: number) => {\n setValidationErrors([]);\n updateForm([], (prev) => prev.filter((_, i) => i !== index));\n };\n\n // Handle form submission, i.e. updating the application on the backend.\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setLoading(true);\n\n try {\n const res = await getMerchantGraphQLClient().mutate({\n mutation: UpdateBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application?.id,\n application: {\n pastPolicyLosses:\n hasLosses === 'YES'\n ? form.map((l) => ({\n claimDate: l.claimDate || '',\n claimStatus: l.claimStatus || undefined,\n lossDate: l.lossDate || '',\n lossDescription: l.lossDescription || '',\n lossState: l.lossState || '',\n lossType: l.lossType || undefined,\n policyEffectiveDate: l.policyExpirationDate\n ? yearsAgo(l.policyExpirationDate, 1)\n : '',\n policyExpirationDate: l.policyExpirationDate || '',\n policyType: l.policyType || undefined,\n totalPaidAmount: parseFloat((l.totalPaidAmount || '0').replace(/[$,]/g, '')),\n totalReservedAmount: parseFloat(\n (l.totalReservedAmount || '0').replace(/[$,]/g, '')\n )\n }))\n : []\n }\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const noValidationErrorMatched = validationErrors.every(\n (e) =>\n !errorFields.some(\n (f) => f.length === e.field.length && f.every((v, i) => v === e.field[i])\n )\n );\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.updateBusinessApplication || application);\n\n if (noValidationErrorMatched) {\n history.push(`/commercial/app/${application?.id}/carriers`);\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n const yearsAgo = (d: string, n: number) => {\n const date = new Date(d);\n date.setFullYear(date.getFullYear() - n);\n return date.toISOString().split('T')[0];\n };\n\n return (\n }\n >\n
\n
\n \n \n \n \n Include all losses regardless of whether a claim was paid out by an insurance policy\n \n \n \n Yes\n \n \n No\n \n \n \n \n {hasLosses === 'YES' &&\n form.map((loss, i) => (\n \n
\n \n \n {\n const policyType = e.currentTarget.value;\n updateForm(['pastPolicyLosses', i.toString(), 'policyType'], (prev) =>\n prev.map((loss, index) =>\n i !== index\n ? loss\n : { ...loss, policyType: policyType as InsuranceType, lossType: '' }\n )\n );\n }}\n >\n \n \n \n \n \n \n {!!getError(['pastPolicyLosses', i.toString(), 'policyType']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'policyType'])}\n \n )}\n \n\n \n \n {\n const date = e.currentTarget.value;\n updateForm(\n ['pastPolicyLosses', i.toString(), 'policyExpirationDate'],\n (prev) =>\n prev.map((loss, index) =>\n i !== index\n ? loss\n : {\n ...loss,\n policyExpirationDate: date\n }\n )\n );\n }}\n />\n {!!getError(['pastPolicyLosses', i.toString(), 'policyExpirationDate']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'policyExpirationDate'])}\n \n )}\n \n\n \n \n {\n const lossType = e.currentTarget.value;\n updateForm(['pastPolicyLosses', i.toString(), 'lossType'], (prev) =>\n prev.map((loss, index) =>\n i !== index\n ? loss\n : { ...loss, lossType: lossType as PastPolicyLossType }\n )\n );\n }}\n disabled={!loss.policyType}\n >\n \n {loss.policyType === InsuranceType.WorkersCompensation && (\n <>\n \n \n \n \n \n )}\n {loss.policyType === InsuranceType.GeneralLiability && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n {loss.policyType === InsuranceType.BusinessOwners && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n {loss.policyType === InsuranceType.Cyber && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n \n {!!getError(['pastPolicyLosses', i.toString(), 'lossType']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'lossType'])}\n \n )}\n \n\n \n \n {\n const lossState = e.currentTarget.value;\n updateForm(['pastPolicyLosses', i.toString(), 'lossState'], (prev) =>\n prev.map((loss, index) => (i !== index ? loss : { ...loss, lossState }))\n );\n }}\n >\n \n {states.map((state) => (\n \n ))}\n \n {!!getError(['pastPolicyLosses', i.toString(), 'lossState']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'lossState'])}\n \n )}\n \n\n \n \n {\n const lossDate = e.currentTarget.value;\n updateForm(['pastPolicyLosses', i.toString(), 'lossDate'], (prev) =>\n prev.map((loss, index) => (i !== index ? loss : { ...loss, lossDate }))\n );\n }}\n />\n {!!getError(['pastPolicyLosses', i.toString(), 'lossDate']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'lossDate'])}\n \n )}\n \n\n \n \n {\n const claimDate = e.currentTarget.value;\n updateForm(['pastPolicyLosses', i.toString(), 'claimDate'], (prev) =>\n prev.map((loss, index) => (i !== index ? loss : { ...loss, claimDate }))\n );\n }}\n />\n {!!getError(['pastPolicyLosses', i.toString(), 'claimDate']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'claimDate'])}\n \n )}\n \n\n \n \n {\n const claimStatus = e.currentTarget.value;\n updateForm(['pastPolicyLosses', i.toString(), 'claimStatus'], (prev) =>\n prev.map((loss, index) =>\n i !== index\n ? loss\n : { ...loss, claimStatus: claimStatus as PastPolicyLossClaimStatus }\n )\n );\n }}\n >\n \n \n \n \n {!!getError(['pastPolicyLosses', i.toString(), 'claimStatus']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'claimStatus'])}\n \n )}\n \n\n \n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const amount = e.currentTarget.value;\n updateForm(\n ['pastPolicyLosses', i.toString(), 'totalPaidAmount'],\n (prev) =>\n prev.map((loss, index) =>\n i !== index\n ? loss\n : {\n ...loss,\n totalPaidAmount: amount,\n totalReservedAmount: '0'\n }\n )\n );\n }}\n />\n \n {!!getError(['pastPolicyLosses', i.toString(), 'totalPaidAmount']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'totalPaidAmount'])}\n \n )}\n \n\n \n \n {\n const lossDescription = e.currentTarget.value;\n updateForm(['pastPolicyLosses', i.toString(), 'lossDescription'], (prev) =>\n prev.map((loss, index) =>\n i !== index ? loss : { ...loss, lossDescription }\n )\n );\n }}\n />\n {!!getError(['pastPolicyLosses', i.toString(), 'lossDescription']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'lossDescription'])}\n \n )}\n \n
\n\n
\n {form.length > 1 && (\n \n )}\n {i === form.length - 1 && (\n \n )}\n
\n
\n ))}\n
\n\n
\n history.push(`/commercial/app/${application?.id}/locations`)}\n disabled={loading}\n >\n Previous Page\n \n \n Save and continue\n \n
\n
\n \n );\n};\n\nexport const LossesSkeleton = () => {\n return (\n
\n
\n \n \n \n \n \n \n \n
\n
\n );\n};\n\nexport const CarrierSelection = () => {\n const history = useHistory();\n\n const { application, updateApplication, setError } = React.useContext(ApplicationContext);\n const [loading, setLoading] = React.useState(false);\n const [validationErrors, setValidationErrors] = React.useState([]);\n\n // Define the form variables\n const [form, setForm] = React.useState<{\n selectedCarriers: BusinessApplicationCarrier[];\n }>({ selectedCarriers: [] });\n\n // Set the form values based on the application\n React.useEffect(() => {\n setForm({\n selectedCarriers: application?.selectedCarriers || []\n });\n }, [application]);\n\n // Define the error fields that need to be validated on this page\n const errorFields = [['selectedCarriers']];\n\n // Define an update handler for the form\n const updateFormMulti = (\n fieldPartsList: string[][],\n update: (prev: typeof form) => typeof form\n ) => {\n fieldPartsList.forEach((fieldParts) =>\n setValidationErrors((prev) =>\n prev.filter(\n (e) =>\n e.field.length !== fieldParts.length || !e.field.every((v, i) => v === fieldParts[i])\n )\n )\n );\n setForm((prev) => update(prev));\n };\n\n const updateForm = (fieldParts: string[], update: (prev: typeof form) => typeof form) =>\n updateFormMulti([fieldParts], update);\n\n // Get the error message for a specific field\n const getError = (fieldParts: string[]) =>\n validationErrors.find(\n (e) => e.field.length === fieldParts.length && e.field.every((v, i) => v === fieldParts[i])\n )?.message;\n\n // Handle form submission, i.e. updating the application on the backend.\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setLoading(true);\n\n try {\n const res = await getMerchantGraphQLClient().mutate({\n mutation: UpdateBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application?.id,\n application: {\n selectedCarriers: form.selectedCarriers\n }\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const noValidationErrorMatched = validationErrors.every(\n (e) =>\n !errorFields.some(\n (f) => f.length === e.field.length && f.every((v, i) => v === e.field[i])\n )\n );\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.updateBusinessApplication || application);\n\n if (noValidationErrorMatched) {\n history.push(`/commercial/app/${application?.id}/underwriting`);\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n const onSubmitWithNoQuotes = async (e: React.FormEvent) => {\n e.preventDefault();\n\n if (!application) {\n return;\n }\n\n try {\n setLoading(true);\n\n const res = await getMerchantGraphQLClient().mutate({\n mutation: SubmitBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application.id\n }\n });\n\n if (res.data?.submitBusinessApplication) {\n updateApplication(res.data.submitBusinessApplication);\n }\n\n if (res.errors?.[0]?.message) {\n throw new ApolloError({ graphQLErrors: res.errors });\n }\n\n history.push(`/commercial/app/${application.id}/complete`);\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n const rates =\n application?.quotableCarriers?.length === undefined\n ? []\n : application?.insuranceTypes?.map((t) => ({\n name: getDisplayInsuranceType(t),\n id: t,\n description: insuranceTypes.find((i) => i.id === t)?.description || '',\n features: insuranceTypes.find((i) => i.id === t)?.coverages || commonCoverages,\n online: !!application?.quotableCarriers?.some((c) => c.supportedPolicies?.includes(t))\n })) || [];\n\n return (\n }\n >\n
\n
\n {rates.map((quote) => (\n
\n {quote.online && (\n
\n
\n \n Great news! We found coverage.\n
\n
\n )}\n {!quote.online && (\n
\n
\n \n Online coverage not available.\n
\n
\n )}\n \n \n {quote.name}\n \n

\n {quote.description}\n

\n {quote.online && (\n \n {quote.features.map((feature) => (\n
  • \n \n {feature}\n
  • \n ))}\n \n )}\n {!quote.online && (\n

    \n We can't quote your business online, but we'll pair you with a dedicated\n insurance expert to find you coverage after you submit your application.\n

    \n )}\n
    \n
    \n ))}\n
    \n
    \n\n {!!application?.quotableCarriers?.length && (\n
    \n
    \n Select carriers\n \n By choosing more carriers, you'll increase the likelihood of getting a competitive\n quote. However, you may also need to answer more underwriting questions.\n \n \n ({\n displayText: c.name,\n value: c.id\n })) || []\n }\n onChange={() => {}}\n onChangeMulti={(selected) => {\n updateForm(['selectedCarriers'], (prev) => ({\n ...prev,\n selectedCarriers: selected as BusinessApplicationCarrier[]\n }));\n }}\n error={getError(['selectedCarriers'])}\n />\n \n
    \n
    \n history.push(`/commercial/app/${application?.id}/losses`)}\n >\n Back to Application\n \n \n
    \n
    \n )}\n\n {!application?.quotableCarriers?.length && (\n
    \n
    \n history.push(`/commercial/app/${application?.id}/losses`)}\n >\n Back to Application\n \n \n
    \n
    \n )}\n \n );\n};\n\nexport const CarrierSelectionSkeleton = () => {\n return (\n
    \n
    \n
    \n
    \n \n \n \n
      \n \n \n \n \n
    \n
    \n
    \n \n \n \n
      \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nexport const UnderwritingProgress = (props: {\n steps: string[];\n currentStep: number;\n onClick: (step: number) => void;\n}) => {\n return (\n \n );\n};\n\nconst MarkdownStyleContainer = styled.div`\n color: #4b5563;\n\n h1 {\n &:first-child {\n margin-top: 0;\n padding-top: 0;\n }\n\n font-size: 1.375rem;\n }\n h2 {\n font-size: 1.25rem;\n }\n h3 {\n font-size: 1.125rem;\n }\n h4 {\n font-size: 1rem;\n }\n h5 {\n font-size: 0.875rem;\n }\n h6 {\n font-size: 0.875rem;\n }\n p {\n font-size: 0.875rem;\n line-height: 1rem;\n margin: 0.5rem 0;\n }\n`;\n\nexport const CarrierStatement = (props: { statements: UnderwritingStatement[] }) => {\n return (\n
    \n \n {props.statements.map((s) => s.markdown).join('\\n\\n')}\n \n
    \n );\n};\n\nconst getCarrierName = (carrier: BusinessApplicationCarrier): string => {\n switch (carrier) {\n case BusinessApplicationCarrier.Amtrust:\n return 'AmTrust';\n case BusinessApplicationCarrier.Biberk:\n return 'BiBerk';\n case BusinessApplicationCarrier.Chubb:\n return 'Chubb';\n case BusinessApplicationCarrier.Cna:\n return 'CNA';\n case BusinessApplicationCarrier.Coalition:\n return 'Coalition';\n case BusinessApplicationCarrier.Coterie:\n return 'Coterie';\n case BusinessApplicationCarrier.Employers:\n return 'Employers';\n case BusinessApplicationCarrier.Gaig:\n return 'Great American';\n case BusinessApplicationCarrier.Guard:\n return 'Guard';\n case BusinessApplicationCarrier.Hiscox:\n return 'Hiscox';\n case BusinessApplicationCarrier.Libertymutual:\n return 'Liberty Mutual';\n case BusinessApplicationCarrier.Markel:\n return 'Markel';\n case BusinessApplicationCarrier.Nationwide:\n return 'Nationwide';\n case BusinessApplicationCarrier.Next:\n return 'Next';\n case BusinessApplicationCarrier.Progressive:\n return 'Progressive';\n case BusinessApplicationCarrier.Travelers:\n return 'Travelers';\n }\n};\n\nexport const Underwriting = () => {\n const history = useHistory();\n\n // Common state variables\n const { application, updateApplication, setError } = React.useContext(ApplicationContext);\n const [loading, setLoading] = React.useState(false);\n const [validationErrors, setValidationErrors] = React.useState([]);\n const [carrierIndex, setCarrierIndex] = React.useState(0);\n\n // Define the form variables\n const [form, setForm] = React.useState<{\n generalAnswers: { [key: string]: string | null | undefined };\n locationAnswers: { [key: string]: { [key: string]: string | null | undefined } };\n }>({ generalAnswers: {}, locationAnswers: {} });\n\n // Set the form values based on the application\n React.useEffect(() => {\n setForm({\n generalAnswers:\n application?.underwritingAnswers\n ?.filter((a) => !a.locationId)\n .reduce(\n (acc, answer) => ({\n ...acc,\n [answer.questionId]: answer.answer\n }),\n {}\n ) || {},\n locationAnswers:\n application?.underwritingAnswers\n ?.filter((a) => !!a.locationId)\n .reduce(\n (acc, answer) => ({\n ...acc,\n [answer.locationId || '']: {\n ...acc[answer.locationId || ''],\n [answer.questionId]: answer.answer\n }\n }),\n {}\n ) || {}\n });\n }, [application]);\n\n // Reset the scroll position when the carrier index changes\n React.useEffect(() => {\n window.scrollTo(0, 0);\n }, [carrierIndex]);\n\n // Define the error fields that need to be validated on this page\n const errorFields =\n application?.underwritingQuestions.map((question) => ['underwritingQuestions', question.id]) ||\n [];\n\n // List of carriers to display questions for\n const carriers = [\n ...new Set(application?.underwritingQuestions.flatMap((question) => question.carriers))\n ].sort((a, b) => a.localeCompare(b));\n\n // Questions grouped by carriers\n const carrierQuestionGroups = carriers.map((carrier) => ({\n carrier: carrier,\n generalQuestions:\n application?.underwritingQuestions.filter(\n (question) => !question.locationId && question.carriers.includes(carrier)\n ) || [],\n locationQuestions:\n application?.locations\n .map((location) => ({\n location: location.address.line1,\n questions: application?.underwritingQuestions.filter(\n (question) => question.locationId === location.id && question.carriers.includes(carrier)\n )\n }))\n .filter((v) => !!v.questions?.length) || [],\n statements: application?.underwritingStatements.filter((s) => s.carrier === carrier) || []\n }));\n\n // Define an update handler for the form\n const updateFormMulti = (\n fieldPartsList: string[][],\n update: (prev: typeof form) => typeof form\n ) => {\n fieldPartsList.forEach((fieldParts) =>\n setValidationErrors((prev) =>\n prev.filter(\n (e) =>\n e.field.length !== fieldParts.length || !e.field.every((v, i) => v === fieldParts[i])\n )\n )\n );\n setForm((prev) => update(prev));\n };\n\n const updateForm = (fieldParts: string[], update: (prev: typeof form) => typeof form) =>\n updateFormMulti([fieldParts], update);\n\n // Get the error message for a specific field\n const getError = (questionId: string, locationId?: string) =>\n validationErrors.find(\n (e) =>\n e.field[0] === 'underwritingQuestions' &&\n (e.field[1] === questionId || (e.field[1] === locationId && e.field[2] === questionId))\n )?.message;\n\n const renderQuestion = (question: UnderwritingQuestion) => {\n const componentTypeMap = {\n [UnderwritingQuestionType.Date]: UnderwritingForm.DateField,\n [UnderwritingQuestionType.Radio]: UnderwritingForm.RadioField,\n [UnderwritingQuestionType.Email]: UnderwritingForm.EmailField,\n [UnderwritingQuestionType.Phonenumber]: UnderwritingForm.PhoneNumberField,\n [UnderwritingQuestionType.Number]: UnderwritingForm.NumberField,\n [UnderwritingQuestionType.Year]: UnderwritingForm.YearField,\n [UnderwritingQuestionType.Text]: UnderwritingForm.TextField,\n [UnderwritingQuestionType.Singleselectdropdown]: UnderwritingForm.SelectField,\n [UnderwritingQuestionType.Multiselectdropdown]: UnderwritingForm.MultiSelectField\n };\n\n // Check if the question type is present in the component type map\n if (!componentTypeMap[question.type]) {\n return null;\n }\n\n const updateGeneralForm = (value: string) =>\n updateForm(['underwritingQuestions', question.id], (prev) => ({\n ...prev,\n generalAnswers: {\n ...prev.generalAnswers,\n [question.id]: value\n }\n }));\n\n const updateLocationForm = (value: string) =>\n updateForm(['underwritingQuestions', question.id], (prev) => ({\n ...prev,\n locationAnswers: {\n ...prev.locationAnswers,\n [question.locationId || '']: {\n ...prev.locationAnswers[question.locationId || ''],\n [question.id]: value\n }\n }\n }));\n\n const updateGeneralFormMulti = (values: string[]) =>\n updateForm(['underwritingQuestions', question.id], (prev) => ({\n ...prev,\n generalAnswers: {\n ...prev.generalAnswers,\n [question.id]: values.filter((v) => !!v).join(':#:')\n }\n }));\n\n const updateLocationFormMulti = (values: string[]) =>\n updateForm(['underwritingQuestions', question.id], (prev) => ({\n ...prev,\n locationAnswers: {\n ...prev.locationAnswers,\n [question.locationId || '']: {\n ...prev.locationAnswers[question.locationId || ''],\n [question.id]: values.filter((v) => !!v).join(':#:')\n }\n }\n }));\n\n return React.createElement(componentTypeMap[question.type], {\n // Common props\n key: question.id,\n label: question.question,\n description: question.tooltip,\n error: getError(question.id),\n\n // Props for single-value fields\n value: question.locationId\n ? form.locationAnswers[question.locationId]?.[question.id] || undefined\n : form.generalAnswers[question.id] || undefined,\n onChange: question.locationId ? updateLocationForm : updateGeneralForm,\n\n // Props for multiple-value fields\n options: question.answerOptions || [],\n values: question.locationId\n ? form.locationAnswers[question.locationId]?.[question.id]?.split(':#:') || []\n : form.generalAnswers[question.id]?.split(':#:') || [],\n onChangeMulti: question.locationId ? updateLocationFormMulti : updateGeneralFormMulti\n });\n };\n\n const filterQuestion = (question: UnderwritingQuestion) => {\n // Question should be shown if there are no parent questions.\n if (!question.hasParentQuestion) {\n return true;\n }\n\n // Otherwise, evaluate the rules to determine if the question should be shown.\n // First find all questions that have a rule that references this question.\n const parentQuestions =\n application?.underwritingQuestions.filter((q) =>\n q.dependentQuestions?.some((d) => d.dependentQuestionIds.includes(question.id))\n ) || [];\n\n return parentQuestions.every((parentQuestion) => {\n const rules =\n parentQuestion.dependentQuestions?.filter((d) =>\n d.dependentQuestionIds.includes(question.id)\n ) || [];\n\n return (\n filterQuestion(parentQuestion) &&\n rules.some((rule) => {\n // If the parent condition is a direct dependency, return try\n if (rule.type === UnderwritingQuestionDependencyType.Direct) {\n return true;\n }\n\n // check if the rule is satisfied directly\n const answerForm = question.locationId\n ? form.locationAnswers[question.locationId]\n : form.generalAnswers;\n const parentAnswer = answerForm?.[parentQuestion.id]?.split(':#:') || [];\n const validAnswers = rule.condition?.split('|') || [];\n\n if (parentAnswer && validAnswers.some((answer) => parentAnswer.includes(answer))) {\n return true;\n }\n\n // check if the rule is satisfied by condition. make this more robust by actually\n // evaluating the condition, but requires backend implementation too.\n if (\n ['<', '>', '<=', '>=', '==', '&&', '||'].some(\n (op) => rule.condition && rule.condition.indexOf(op) >= 0\n )\n ) {\n return true;\n }\n\n return false;\n })\n );\n });\n };\n\n // Handle form submission, i.e. updating the application on the backend.\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setLoading(true);\n\n try {\n const res = await getMerchantGraphQLClient().mutate({\n mutation: UpdateBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application?.id,\n application: {\n underwritingAnswers: [\n ...Object.entries(form.generalAnswers)\n .filter(([, answer]) => !!answer)\n .map(([questionId, answer]) => ({\n questionId,\n answer\n })),\n ...Object.entries(form.locationAnswers).flatMap(([locationId, answers]) =>\n Object.entries(answers)\n .filter(([, answer]) => !!answer)\n .map(([questionId, answer]) => ({\n questionId,\n answer,\n locationId\n }))\n )\n ]\n }\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const noValidationErrorMatched = validationErrors.every(\n (e) =>\n !errorFields.some(\n (f) => f.length === e.field.length && f.every((v, i) => v === e.field[i])\n )\n );\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.updateBusinessApplication || application);\n\n if (noValidationErrorMatched) {\n history.push(`/commercial/app/${application?.id}/quote`);\n } else {\n // Set the carrier index of the first carrier that had an error\n setCarrierIndex(\n carrierQuestionGroups.findIndex(\n (c) =>\n c.generalQuestions.some((q) =>\n validationErrors.some((v) => v.field.at(-1) === q.id)\n ) ||\n c.locationQuestions.some((location) =>\n location.questions.some((q) =>\n validationErrors.some((v) => v.field.at(-1) === q.id)\n )\n )\n )\n );\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n }\n >\n {carriers.length > 1 && (\n
    \n \n
    \n )}\n
    \n {!!carrierQuestionGroups[carrierIndex]?.generalQuestions?.length && (\n
    \n General Questions\n \n {carrierQuestionGroups[carrierIndex].generalQuestions\n .filter(filterQuestion)\n .map((question) => renderQuestion(question))}\n \n
    \n )}\n {carrierQuestionGroups[carrierIndex]?.locationQuestions.map((location) => (\n
    \n Questions for location: {location.location}\n \n {location.questions\n .filter(filterQuestion)\n .map((question) => renderQuestion(question))}\n \n
    \n ))}\n {!!carrierQuestionGroups[carrierIndex]?.statements.length && (\n
    \n \n
    \n )}\n\n
    \n history.push(`/commercial/app/${application?.id}/carriers`)}\n disabled={loading}\n >\n Back to Carriers\n \n {carrierIndex > 0 && carriers.length > 1 && (\n setCarrierIndex((prev) => prev - 1)}\n disabled={loading}\n >\n Previous Page\n \n )}\n {carrierIndex < carriers.length - 1 && carriers.length > 1 && (\n setCarrierIndex((prev) => prev + 1)}\n disabled={loading}\n >\n Next Page\n \n )}\n {carrierIndex === carriers.length - 1 && (\n \n )}\n
    \n
    \n \n );\n};\n\nconst UnderwritingSkeleton = () => {\n return (\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n );\n};\n\nconst BindQuote = (props: {\n quote?: ApplicationQuoteFieldsFragment['quotes'][number];\n loading: boolean;\n error?: string;\n open: boolean;\n onClose: () => void;\n onBind: (\n paymentPlanId?: string,\n paymentMethod?: PaymentPlanPaymentMethodType\n ) => Promise;\n}) => {\n const [bindOptions, setBindOptions] = React.useState({\n paymentMethod: '',\n paymentPlanId: ''\n });\n\n React.useEffect(() => {\n setBindOptions({\n paymentMethod: '',\n paymentPlanId: ''\n });\n }, [props.quote]);\n\n const describePlan = (\n quote: ApplicationQuoteFieldsFragment['quotes'][number]['paymentPlans'][number]\n ) => {\n if (quote.installmentCount == 0) {\n return `Single payment of ${currencyFormatter.format(quote.totalAmount)} due today.`;\n }\n\n const cadance =\n quote.installmentFrequency === PaymentPlanInstallmentFrequency.Monthly\n ? 'monthly'\n : quote.installmentFrequency === PaymentPlanInstallmentFrequency.Quarterly\n ? 'quarterly'\n : 'annual';\n\n const firstInstallmentDate = quote.installmentDueAt\n ? new Date(quote.installmentDueAt).toLocaleDateString()\n : null;\n\n return `Down payment of ${currencyFormatter.format(quote.downAmount)} due today, followed by ${quote.installmentCount} ${cadance} payments of ${currencyFormatter.format(quote.installmentAmount)} starting ${firstInstallmentDate}.`;\n };\n\n const paymentPlansSorted =\n props.quote?.paymentPlans\n .filter((plan) => plan.paymentMethod === bindOptions.paymentMethod)\n .sort((a, b) => b.downAmount - a.downAmount) || [];\n\n const paymentPlans =\n paymentPlansSorted.length > 2\n ? [paymentPlansSorted.at(0)!, paymentPlansSorted.at(-1)!]\n : paymentPlansSorted;\n\n const onSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n props.onBind(\n !!bindOptions.paymentPlanId && bindOptions.paymentPlanId !== 'NO_PAYMENT_PLAN'\n ? bindOptions.paymentPlanId\n : undefined,\n (bindOptions.paymentMethod as PaymentPlanPaymentMethodType) || undefined\n );\n };\n\n return (\n \n \n\n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n Bind Coverage\n \n
    \n \n \n Close panel\n \n \n
    \n
    \n
    \n

    \n Complete this form to finalize your coverage\n

    \n
    \n
    \n {props.quote && (\n
    \n
    \n \n {getDisplayInsuranceType(props.quote.policyType)}\n \n

    \n Thank you for choosing Oyster, in partnership with{' '}\n {getCarrierName(props.quote.carrier)}, for your{' '}\n {getDisplayInsuranceType(props.quote.policyType)} coverage. Please review\n the details below and confirm your selection.\n

    \n
    \n
    \n \n \n {currencyFormatter.format(props.quote.premiumAmount)}\n \n \n \n {currencyFormatter.format(props.quote.totalAmount)}\n \n
    \n {props.quote.type === BusinessApplicationQuoteType.Bridge && (\n \n \n \n An agent will be in touch to review payment options.\n \n \n )}\n {props.quote.type === BusinessApplicationQuoteType.BindOnline &&\n props.quote.paymentPlans.length > 0 && (\n \n \n \n {\n const paymentMethod = e.currentTarget\n .value as PaymentPlanPaymentMethodType;\n setBindOptions((prev) => ({\n ...prev,\n paymentPlanId: '',\n paymentMethod\n }));\n }}\n >\n \n \n p.paymentMethod ===\n PaymentPlanPaymentMethodType.DirectDebit\n )\n }\n >\n Direct Debit\n \n \n p.paymentMethod ===\n PaymentPlanPaymentMethodType.ElectronicFundTransfer\n )\n }\n >\n EFT\n \n \n p.paymentMethod ===\n PaymentPlanPaymentMethodType.CreditCard\n )\n }\n >\n Credit Card\n \n \n \n {!!paymentPlans.length && (\n \n \n \n setBindOptions((prev) => ({ ...prev, paymentPlanId: e }))\n }\n >\n {paymentPlans.map((plan) => (\n \n \n \n \n \n \n \n {plan.title}\n \n \n
    \n {describePlan(plan)}\n
    \n
    \n \n \n ))}\n \n
    \n )}\n
    \n )}\n {!!props.quote && !props.quote.paymentPlans.length && (\n \n \n \n \n setBindOptions((prev) => ({ ...prev, paymentPlanId: e }))\n }\n >\n \n \n \n \n \n \n \n Pay in full\n \n \n
    \n Single payment of{' '}\n {currencyFormatter.format(props.quote.totalAmount)} due today.\n
    \n
    \n \n \n \n
    \n
    \n )}\n
    \n {props.quote.type === BusinessApplicationQuoteType.BindOnline && (\n

    \n By clicking below and binding this policy, you agree to the terms laid out\n in{' '}\n \n the quote proposal\n {' '}\n and agree to make payments according to the selected schedule. Payment\n amounts may differ slightly in the carrier's system.\n

    \n )}\n {props.quote.type === BusinessApplicationQuoteType.Bridge && (\n

    \n By clicking below and binding this policy, you agree to the terms laid out\n in{' '}\n \n the quote proposal\n {' '}\n and agree to make the required payments for this policy. An agent will\n reach out to you to finalize the policy details and payment schedule.\n

    \n )}\n \n Agree and Bind\n \n {props.error && (\n
    {props.error}
    \n )}\n
    \n
    \n )}\n
    \n \n
    \n
    \n
    \n
    \n );\n};\n\nexport const Quote = () => {\n const history = useHistory();\n const { applicationId, application, updateApplication, getApplication, setError } =\n React.useContext(ApplicationContext);\n\n const [open, setOpen] = React.useState(false);\n const [loading, setLoading] = React.useState(true);\n const [showProgress, setShowProgress] = React.useState(false);\n const [bindLoading, setBindLoading] = React.useState(false);\n const [bindError, setBindError] = React.useState();\n const [bindQuote, setBindQuote] =\n React.useState();\n const [submitLoading, setSubmitLoading] = React.useState(false);\n\n const onLoadLoop = async () => {\n setShowProgress(true);\n\n try {\n const res = await getApplication();\n if (res.state === BusinessApplicationState.Quoted) {\n updateApplication(res);\n return res;\n } else {\n await new Promise((resolve) => setTimeout(resolve, 5000));\n return await onLoadLoop();\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setShowProgress(false);\n }\n\n return null;\n };\n\n const onLoad = async () => {\n // Submit the application for quoting\n setLoading(true);\n updateApplication(undefined);\n\n try {\n const [res] = await Promise.all([\n getMerchantGraphQLClient().mutate({\n mutation: QuoteBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: applicationId\n }\n }),\n new Promise((resolve) => setTimeout(resolve, 500))\n ]);\n\n if (res.errors?.[0]?.message) {\n throw new ApolloError({ graphQLErrors: res.errors });\n }\n\n if (res.data?.quoteBusinessApplication?.state) {\n updateApplication(res.data.quoteBusinessApplication);\n\n if (res.data.quoteBusinessApplication.state === BusinessApplicationState.Submitted) {\n history.push(`/commercial/app/${applicationId}/complete`);\n }\n\n if (res.data.quoteBusinessApplication?.state !== BusinessApplicationState.Quoted) {\n return await onLoadLoop();\n }\n\n return res.data.quoteBusinessApplication;\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n\n return null;\n };\n\n // Quote display criteria:\n const selectQuote = (quotes: ApplicationQuoteFieldsFragment['quotes']) => {\n // If there are any quotes that are in the binding state, return those\n const bindingQuote = quotes.find((q) => q.state === BusinessApplicationQuoteState.Binding);\n if (bindingQuote) {\n return {\n ...bindingQuote,\n bound: true,\n isOnline: bindingQuote.type === BusinessApplicationQuoteType.BindOnline\n };\n }\n\n const bindOnlineQuotes = quotes.filter(\n (q) => q.type === BusinessApplicationQuoteType.BindOnline && q.premiumAmount > 0\n );\n const bridgeQuotes = quotes.filter(\n (q) => q.type === BusinessApplicationQuoteType.Bridge && q.premiumAmount > 0\n );\n\n // Choose the cheapest quote for each type\n const bindOnlineQuote =\n bindOnlineQuotes.length === 0\n ? null\n : bindOnlineQuotes.reduce(\n (prev, curr) => (prev.totalAmount < curr.totalAmount ? prev : curr),\n bindOnlineQuotes[0]\n );\n\n const bridgeQuote =\n bridgeQuotes.length === 0\n ? null\n : bridgeQuotes.reduce(\n (prev, curr) => (prev.totalAmount < curr.totalAmount ? prev : curr),\n bridgeQuotes[0]\n );\n\n if (!bridgeQuote && bindOnlineQuote) {\n return { ...bindOnlineQuote, isOnline: true, bound: false };\n }\n\n if (!bindOnlineQuote && bridgeQuote) {\n return { ...bridgeQuote, isOnline: false, bound: false };\n }\n\n if (!!bridgeQuote && !!bindOnlineQuote) {\n const bindOnlineQuoteAmount = bindOnlineQuote.totalAmount;\n const bridgeQuoteAmount = bridgeQuote.totalAmount;\n\n // If the BIND_ONLINE is <= 15% more expensive than the BRIDGE quote, select the BIND_ONLINE quote.\n if (bindOnlineQuoteAmount <= bridgeQuoteAmount * 1.15) {\n return { ...bindOnlineQuote, isOnline: true, bound: false };\n }\n\n return { ...bridgeQuote, isOnline: false, bound: false };\n }\n\n return null;\n };\n\n const coverageTypes =\n application?.insuranceTypes.map((t) => ({\n name: getDisplayInsuranceType(t),\n id: t,\n features: insuranceTypes.find((i) => i.id === t)?.coverages || commonCoverages,\n quote: selectQuote(application?.quotes?.filter((q) => q.policyType === t) || [])\n })) || [];\n\n const onBind = async (paymentPlanId?: string, paymentMethod?: PaymentPlanPaymentMethodType) => {\n if (!application?.id || !bindQuote?.id) {\n return;\n }\n\n setBindLoading(true);\n\n try {\n const res = await getMerchantGraphQLClient().mutate({\n mutation: BindQuoteDocument,\n errorPolicy: 'all',\n variables: {\n applicationId: application.id,\n quoteId: bindQuote.id,\n paymentPlanId,\n paymentMethod\n }\n });\n\n if (res.data?.bindQuote) {\n updateApplication(res.data.bindQuote);\n }\n\n if (res.errors?.[0]?.message) {\n setBindError(res.errors[0].message);\n } else {\n setOpen(false);\n }\n } catch (e) {\n setBindError((e as Error).message);\n } finally {\n setBindLoading(false);\n }\n };\n\n const onSubmitApplication = async () => {\n if (!application) {\n return;\n }\n\n try {\n setSubmitLoading(true);\n\n const res = await getMerchantGraphQLClient().mutate({\n mutation: SubmitBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application.id\n }\n });\n\n if (res.data?.submitBusinessApplication) {\n updateApplication(res.data.submitBusinessApplication);\n }\n\n if (res.errors?.[0]?.message) {\n throw new ApolloError({ graphQLErrors: res.errors });\n }\n\n history.push(`/commercial/app/${application.id}/complete`);\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setSubmitLoading(false);\n }\n };\n\n return (\n \n \n {showProgress && (\n \n \n \n )}\n \n \n \n }\n >\n setOpen(false)}\n onBind={onBind}\n />\n\n {coverageTypes.some((coverage) => !!coverage.quote?.bound) && (\n
    \n
    \n
    \n \n
    \n
    \n

    \n Your bind has been recorded, but you still need to submit your application for your\n coverage to be confirmed by our team.\n

    \n {coverageTypes.some((coverage) => !coverage.quote) && (\n

    \n Since not all coverage could be found online, we'll also match you with a\n dedicated specialist to find the remaining coverage after you finish and submit\n your application.\n

    \n )}\n
    \n
    \n
    \n )}\n\n {coverageTypes.some((coverage) => !coverage.quote) &&\n !coverageTypes.some((coverage) => !!coverage.quote?.bound) && (\n
    \n
    \n
    \n \n
    \n
    \n

    \n Since not all coverage could be found online, we'll match you with a dedicated\n specialist to find the remaining coverage after you finish and submit your\n application.\n

    \n
    \n
    \n
    \n )}\n\n
    \n
    \n {coverageTypes.map((coverage) => (\n \n

    \n {coverage.quote?.carrier ? getCarrierName(coverage.quote.carrier) : 'Not available'}\n

    \n

    \n {coverage.name}\n

    \n {!!coverage.quote && (\n <>\n

    \n \n {new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'usd',\n minimumFractionDigits: 0,\n maximumFractionDigits: 2\n }).format(coverage.quote.premiumAmount)}\n \n \n /year\n \n

    \n

    \n \n +\n {new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'usd',\n minimumFractionDigits: 0,\n maximumFractionDigits: 2\n }).format(coverage.quote.totalAmount - coverage.quote.premiumAmount)}{' '}\n in fees and taxes\n \n

    \n \n )}\n {!!coverage.quote && (\n \n {coverage.features.map((feature) => (\n
  • \n \n {feature}\n
  • \n ))}\n \n )}\n {!!coverage.quote?.bound && (\n \n Bind confirmed\n \n \n \n \n )}\n {!coverage.quote?.bound && !!coverage.quote?.isOnline && (\n {\n setBindQuote(coverage.quote!);\n setOpen(true);\n }}\n disabled={bindLoading || submitLoading}\n className={clsx(\n 'w-full bg-primary-500 text-white shadow-sm hover:bg-primary-50 hover:text-primary-700 hover:outline hover:outline-primary-700 cursor-pointer',\n 'font-heading transition-all',\n 'mt-6 block rounded-md px-3 py-2 text-center text-sm font-semibold leading-6 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-500',\n 'data-[disabled]:opacity-75 data-[disabled]:cursor-not-allowed data-[disabled]:hover:bg-primary-500 data-[disabled]:hover:text-white data-[disabled]:hover:outline-none data-[disabled]:focus-visible:outline-none'\n )}\n >\n Bind Now\n \n )}\n {!!coverage.quote && !coverage.quote.bound && !coverage.quote.isOnline && (\n {\n setBindQuote(coverage.quote!);\n setOpen(true);\n }}\n disabled={bindLoading || submitLoading}\n className={clsx(\n 'w-full bg-primary-500 text-white shadow-sm hover:bg-primary-50 hover:text-primary-700 hover:outline hover:outline-primary-700 cursor-pointer',\n 'font-heading transition-all',\n 'mt-6 block rounded-md px-3 py-2 text-center text-sm font-semibold leading-6 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-500',\n\n 'data-[disabled]:opacity-75 data-[disabled]:cursor-not-allowed data-[disabled]:hover:bg-primary-500 data-[disabled]:hover:text-white data-[disabled]:hover:outline-none data-[disabled]:focus-visible:outline-none'\n )}\n >\n Bind with Agent\n \n )}\n {!!coverage.quote?.quoteProposalUrl && (\n \n View quote proposal\n \n )}\n {!coverage.quote && (\n
    \n

    \n We can't quote your business online, but we'll pair you with a dedicated\n insurance expert to find you coverage after you finish and submit your\n application.\n

    \n
    \n )}\n
    \n ))}\n
    \n
    \n\n
    e.preventDefault()}>\n
    \n history.push(`/commercial/app/${application?.id}/underwriting`)}\n >\n Back to Underwriting\n \n \n Finish and Submit\n \n
    \n
    \n \n );\n};\n\nconst QuoteSkeleton = () => {\n return (\n <>\n
    \n
    \n
    \n \n \n \n \n\n
      \n \n \n \n
    \n \n
    \n
    \n \n \n \n \n\n
      \n \n \n \n
    \n \n
    \n
    \n
    \n \n );\n};\n\nconst QuoteProgress = () => {\n // Build a two-minute animation to keep the user engaged while the quote loads\n const steps = [\n { title: 'Verifying application data...', maxDuration: 2500, maxWidth: 4 },\n { title: 'Submitting application...', maxDuration: 4000, maxWidth: 11 },\n { title: 'Waiting for carriers...', maxDuration: 6000, maxWidth: 22 },\n { title: 'Checking carrier status...', maxDuration: 10000, maxWidth: 34 },\n { title: 'Gathering quotes...', maxDuration: 6000, maxWidth: 48 },\n { title: 'Gathering quotes...', maxDuration: 4000, maxWidth: 62 },\n { title: 'Gathering quotes...', maxDuration: 8000, maxWidth: 72 },\n { title: 'Gathering quotes...', maxDuration: 6000, maxWidth: 81 },\n { title: 'Gathering quotes...', maxDuration: 4000, maxWidth: 88 },\n { title: 'Gathering quotes...', maxDuration: 16000, maxWidth: 93 },\n { title: 'Finalizing...', maxDuration: 30000, maxWidth: 100 }\n ];\n\n const [stepIndex, setStepIndex] = React.useState(0);\n React.useEffect(() => {\n if (stepIndex === steps.length) {\n return;\n }\n\n const timeout = setTimeout(() => {\n setStepIndex((prev) => (prev >= steps.length - 1 ? prev : prev + 1));\n }, steps[stepIndex].maxDuration); // add jitter\n\n return () => clearTimeout(timeout);\n }, [stepIndex]);\n\n return (\n <>\n
    \n
    \n \n Getting your quotes\n \n

    \n Hang tight and we'll have your quotes ready in just a moment. Please don't navigate away\n from the page.\n

    \n
    \n {steps[stepIndex].title}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n );\n};\n\nexport const Complete = () => {\n const history = useHistory();\n const { application, loadApplication, setError } = React.useContext(ApplicationContext);\n const [loading, setLoading] = React.useState(false);\n\n const onLoad = async () => {\n const res = await loadApplication();\n if (!!res && res.state !== BusinessApplicationState.Submitted) {\n history.push(`/commercial/app/${res.id}`);\n }\n if (!res) {\n history.push('/commercial');\n }\n\n return res;\n };\n\n const onComplete = async () => {\n setLoading(true);\n try {\n await merchantUserSignInInit(application?.contact.email || '');\n history.push(`/signin?email=${encodeURIComponent(application?.contact.email || '')}`);\n } catch (e) {\n setError(new ApolloError({ graphQLErrors: [{ message: (e as Error).message }] }));\n } finally {\n setLoading(false);\n }\n };\n\n const bindingQuotes =\n application?.quotes.filter((q) => q.state === BusinessApplicationQuoteState.Binding) || [];\n const pendingCoverages =\n application?.insuranceTypes.filter(\n (i) => !application.quotes.some((q) => q.policyType === i)\n ) || [];\n\n return (\n }\n >\n
    \n {bindingQuotes.length > 0 && (\n
    \n
    \n \n Your quotes\n \n

    \n You've successfully submitted your application. Our team is now reviewing your\n quotes and will reach out to you shortly. Remember that you've agreed to pay for the\n below policies.\n

    \n
      \n {bindingQuotes.map((quote) => (\n
    • \n \n \n {getDisplayInsuranceType(quote.policyType)}\n \n \n Binding\n \n \n \n {currencyFormatter.format(quote.totalAmount)}\n \n
    • \n ))}\n
    \n
    \n
    \n )}\n {pendingCoverages.length > 0 && (\n
    \n
    \n \n Other coverages\n \n

    \n Since we couldn't find all the coverage you need online, we'll pair you with a\n complementary dedicated insurance specialist to find the remaining coverages for\n you.\n

    \n
      \n {pendingCoverages.map((coverage) => (\n
    • \n \n {getDisplayInsuranceType(coverage)}\n \n Not found online\n \n \n
    • \n ))}\n
    \n
    \n
    \n )}\n
    \n
    \n \n Next steps\n \n

    \n An Oyster team member will reach out to your shortly. In the meantime, we've created a\n free Oyster account where you can manage your application, policies, and access our\n other risk management tools.\n

    \n
    \n \n Continue to Dashboard\n \n
    \n
    \n
    \n
    \n \n );\n};\n\nconst CompleteSkeleton = () => {\n return (\n
    \n
    \n \n \n \n \n \n
    \n\n
    \n \n \n \n \n
    \n\n
    \n \n \n \n \n\n \n
    \n
    \n );\n};\n","import { init as initApm } from '@oysterjs/core/apm';\ninitApm();\n\nimport { init as initAppConfiguration } from '@oysterjs/core/api/appConfiguration';\ninitAppConfiguration();\n\nimport { createRoot } from 'react-dom/client';\nimport { BrowserRouter as Router, Switch, Route as BrowserRoute, Redirect } from 'react-router-dom';\n\nimport * as Sentry from '@sentry/react';\nconst Route = Sentry.withSentryRouting(BrowserRoute);\n\nimport config from '@oysterjs/core/config';\n\nimport { Dashboard } from './pages';\nimport MerchantPersonalization from './pages/personalization';\n\nimport {\n OnboardCheckfront,\n OnboardLightspeedRetailRSeries,\n OnboardShopify,\n OnboardWooCommerce\n} from './onboard';\nimport { useGA } from '@oysterjs/core/ga';\nimport { SignIn, SignUp } from './pages/signin';\nimport { useGoogleTags } from '@oysterjs/core/analytics/googletags';\nimport { HubspotChatContextProvider } from '@oysterjs/core/hubspot';\nimport { Authenticated } from './authenticated';\nimport { CertificateApp } from './pages/certificate';\nimport { ApolloProvider } from '@apollo/client';\nimport { getMerchantGraphQLClient } from '@oysterjs/core/api/merchant';\n\nimport { Landing as CommercialLanding } from './pages/commercial/landing';\nimport * as CommercialApp from './pages/commercial/app';\nimport { ApplicationWrapper } from './pages/commercial/common';\n\nconst App = () => {\n if (config().environment === 'production') {\n useGA('G-MX1C87Q096');\n useGoogleTags();\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {(props) => (\n \n )}\n \n \n \n \n \n \n \n \n {(props) => }\n \n \n {(props) => (\n \n \n \n )}\n \n \n {(props) => (\n \n \n \n )}\n \n \n {(props) => (\n \n \n \n )}\n \n \n {(props) => (\n \n \n \n )}\n \n \n {(props) => (\n \n \n \n )}\n \n \n {(props) => (\n \n \n \n )}\n \n \n {(props) => (\n \n \n \n )}\n \n \n {(props) => (\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst container = document.getElementById('root');\nconst root = createRoot(container!);\n\nroot.render();\n"],"names":["ProductType","AdditionalMerchantProductType","PolicyType","ReferralSubChannel","DefaultFileRoles","ReferralStatus","PaymentMethodType","SalesChannelType","OnlineSalesChannelType","InStoreSalesChannelType","BusinessOperationType","BusinessInsuranceType","RentalProductType","MerchantIntegrationStatus","MerchantIntegrationType","BillingMode","RentalPolicyState","MercuryPaymentTypes","WaiverState","RentalBookingState","RentalClaimState","RentalDamageType","TransactionType","useAuth","getAuth","data","window","localStorage","getItem","auth","JSON","parse","apm","setUserContext","id","User","ID","MerchantUser","email","Email","setAuth","setItem","stringify","_setAuth","React","updateAuth","addEventListener","removeEventListener","getToken","Token","getUser","resetToken","redirect","removeItem","location","href","encodeURIComponent","getEnvironment","environment","_b","_a","getApiBaseUrl","devServiceUrl","getAdminBaseUrl","getMerchantBaseUrl","getMetricsBaseUrl","getStaticsBaseUrl","getIntegrateBaseUrl","getOysterJsBaseUrl","getDashboardBaseUrl","getGetOysterBaseUrl","getPartnersBaseUrl","getWebhooksBaseUrl","getServiceName","getServiceVersion","service","user","getSecret","secretName","devSecret","dynamicConfig","config","ErrorCode","ErrorType","WrappedError","message","opts","err","validationError","errors","getEncodedQueryString","m","params","key","value","Get","path","init","request","Post","json","Put","Delete","res","getFlagOptions","evaluateFlag","flagId","listFlags","evaluateBooleanFlag","flag","d","enableRiskManagement","retrieveAllFeatureFlags","appConfiguration","MainAppConfiguration","timeoutPromise","resolve","timeoutId","ff","updateFunction","updateIndex","f","appConfiguration$1","Apm","session","error","Sentry.isInitialized","Sentry.captureException","userObject","Sentry.setUser","product","itemList","item","Sentry.getReplay","subChannel","metadata","productType","featureFlags","formattedFeatureFlags","updatedMetadata","url","_c","initSession","getRandomString","len","characters","str","i","userId","Sentry.init","Sentry.browserTracingIntegration","Sentry.browserProfilingIntegration","Sentry.captureConsoleIntegration","Sentry.extraErrorDataIntegration","Sentry.httpClientIntegration","Sentry.reactRouterV5BrowserTracingIntegration","Sentry.replayIntegration","Sentry.sessionTimingIntegration","apm$1","Spinner","color","size","centerHorizontal","jsx","background","width","undefined","LoadableContainer","styled","div","props","inline","Loadable","setData","exactlyOnce","then","children","hideSpinner","getMerchantGraphQLClient","removeTypenameLink","removeTypenameFromVariables","link","from","createHttpLink","ApolloClient","InMemoryCache","createMerchant","merchantUserSignInInit","merchantUserSignInComplete","code","merchantUserSignOut","getMerchantAccount","redirectUrl","getMerchantIntegrations","updateMerchantIntegration","integration","personalizeMerchant","merchant","discardUpdateOnError","linkMerchantWithShopify","shop","integrationData","linkBIApplicationWithShopify","biApplicationID","linkMerchantWithLightspeedRetailRSeries","_","linkMerchantWithCheckfront","requestEmbeddablePage","requestCheckfront","requestQRCodePdf","getMerchantReferrals","start","end","getMerchantTransactions","getMerchantUsers","createMerchantUser","getMerchantRentalConfiguration","updateMerchantRentalConfiguration","settings","getMerchantRentalPaymentSetup","getRentalDocuments","uploadRentalDocuments","files","form","file","deleteRentalDocument","getRentalWaivers","getRentalWaiver","waiverId","getRentalBooking","bookingId","getWaiverPricing","booking","waiver","integrationId","createRentalWaiver","sendEmail","updateRentalWaiver","createMerchantRentalAsset","asset","r","deleteMerchantRentalAsset","assetId","addRentalAssetSerialNumber","serialNumber","cancelBookingRenewal","getMerchantRentalAssets","getRentalBookingFiles","getRentalClaimByWaiverId","getRentalClaim","createRentalClaim","claim","updateRentalClaim","uploadClaimAttachments","claimId","fileRole","getMerchantReferralList","defaultOptions","BuildingConstructionType","FireResistive","Frame","JoistedMasonry","MasonryNonCombustible","ModifiedFireResistive","NonCombustible","BuildingOwnershipType","Home","Leased","Owned","BurglarAlarmType","BurglarCentral","BurglarLocal","BurglarNone","BurglarPoliceFire","BusinessApplicationCarrier","Amtrust","Biberk","Chubb","Cna","Coalition","Coterie","Employers","Gaig","Guard","Hiscox","Libertymutual","Markel","Nationwide","Next","Progressive","Travelers","BusinessApplicationQuoteState","Binding","Created","BusinessApplicationQuoteType","BindOnline","Bridge","Decline","Failed","Refer","BusinessApplicationState","Canceled","Quoted","Quoting","Submitted","BusinessLegalEntityType","Association","Corporation","Estate","Executor","GeneralPartnership","GovernmentEntity","Individual","JointEmployers","JointVenture","LaborUnion","LimitedLiabilityCompany","LimitedLiabilityPartnership","LimitedPartnership","MultipleStatus","NonProfitAssociation","NonProfitCorporation","SCorporation","TenantsInCommon","Trust","ComplianceActionStatus","Closed","Open","FileRole","ApplicationForm","Binder","Certificate","CertificateOfLiabilityInsuranceTemplate","Endorsement","Invoice","LossPolicyRelease","NoticeOfCancellation","Other","PolicyDocument","QuoteDocument","Unknown","InsuranceType","AccidentAndHealth","BusinessOwners","CommercialAuto","Cyber","DirectorsAndOfficers","EmploymentPracticesLiability","ErrorsAndOmission","GeneralLiability","JewelersBlock","Package","ProductLiability","ProfessionalLiability","Property","Rental","ShippingAndTransportation","UmbrellaOrExcess","WorkersCompensation","PastPolicyLossClaimStatus","PastPolicyLossType","BodilyInjuryOther","BusinessInterruption","ComputerFraud","ContingentBusinessInterruption","CyberIncident","DigitalData","EmployeePractices","ErrorsAndOmissions","Fire","FoodSpoilage","FundTransferFraud","GeneralLiabilityProducts","GlPropertyDamage","Hail","Indemnity","InlandMarine","LiabilityMedicalPayments","MediaLiability","Medical","MedicalAndIndemnity","NetworkExtortion","PaymentCard","PersonalInjury","PrivacyAndNetworkSecurity","PropertyDamageCollapse","PropertyDamageOther","RegulatoryProceeding","SlipFallInside","SlipFallOutside","SocialEngineeringFraud","TechnologyErrorsAndOmissions","Theft","Vandalism","WaterNonWeatherRelated","Windstorm","PaymentPlanInstallmentFrequency","Monthly","None","Quarterly","PaymentPlanPaymentMethodType","CreditCard","DirectDebit","ElectronicFundTransfer","PolicyConversationMessageRole","Ai","PolicyState","Expired","Inforce","Pending","BeautyAndSupplements","Bike","Collectibles","Electronics","Fashion","FoodAndBeverage","Furniture","Jewelry","Motorcycle","OffroadVehicle","OutdoorSports","TobaccoCbdSmokeShop","UnderwritingQuestionDependencyType","Conditional","Direct","UnderwritingQuestionType","Date","Multiselectdropdown","Number","Phonenumber","Radio","Singleselectdropdown","Text","Year","CertificateDetailsFieldsFragmentDoc","gql","ApplicationFieldsFragmentDoc","ApplicationQuoteFieldsFragmentDoc","ApplicationQuotableCarrierFieldsFragmentDoc","BusinessPolicyDetailFieldsFragmentDoc","BusinessPolicyFieldsFragmentDoc","FileFieldsFragmentDoc","MerchantFieldsFragmentDoc","ActionItemFieldsFragmentDoc","RiskManagementDataFieldsFragmentDoc","PolicyConversationMessageFieldsFragmentDoc","GetCertificateDocument","useGetCertificateLazyQuery","baseOptions","options","Apollo","GenerateCertificateDocument","useGenerateCertificateMutation","GetCoverageLimitsDocument","GetBusinessApplicationDocument","CreateBusinessApplicationDocument","UpdateBusinessApplicationDocument","QuoteBusinessApplicationDocument","SubmitBusinessApplicationDocument","AddBusinessApplicationLocationDocument","UpdateBusinessApplicationLocationDocument","RemoveBusinessApplicationLocationDocument","BindQuoteDocument","GetMerchantBusinessPoliciesDocument","GetMerchantBusinessPolicyDocument","GetMerchantDocument","RiskManagementSetupDocument","useRiskManagementSetupMutation","GetRiskManagementDocument","useGetRiskManagementQuery","RiskManagementSetActionItemDueDateDocument","RiskManagementSetActionItemAssigneeDocument","RiskManagementMarkActionItemCompleteDocument","GetPolicyConversationDocument","useGetPolicyConversationQuery","AddPolicyConversationMessageDocument","useAddPolicyConversationMessageMutation","getDisplayInsuranceType","type","Link","forwardRef","ref","startsWith","Headless.DataInteractive","RouterLink","colors","red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose","zinc","neutral","white","clsx","styles","base","solid","outline","plain","light","dark","Button","className","loading","classes","TouchTarget","Headless.Button","disabled","jsxs","Fragment","PageTitle","title","badge","description","getBadgeColor","status","ChannelBadge","state","BusinessInsuranceSection","history","useHistory","policies","businessPolicies","filter","p","length","map","push","carrier","name","policyNumber","expiresAt","Intl","DateTimeFormat","dateStyle","format","ShieldCheckIcon","CertificatesSection","certificates","role","details","certificateNumber","sort","a","b","createdAt","getTime","slice","certificate","certificateHolder","DocumentIcon","ArrowRightIcon","HomePage","BannerContainer","ContentContainer","IconContainer","TextContainer","ActionContainer","TitleText","DescriptionText","Banner","IoInformationCircleOutline","bannerAction","UnstyledLink","ButtonContainerComponent","center","ButtonContainer","ButtonComponent","button","primary","ButtonDivComponent","ButtonLink","match","target","textDecoration","display","ButtonDiv","leftIcon","icon","cloneElement","e","onClick","onPointerUp","style","UnstyledButton","LinkComponent","ErrorIllustration","img","forceMobile","ErrorContainer","ErrorDetailsContainer","ErrorDetailContainer","ErrorDetailTitle","ErrorDetailDescription","pre","ErrorDetail","ErrorCopyData","ErrorDetails","copied","setCopied","clipboard","writeText","errorData","setTimeout","IoCheckmark","IoClipboard","ErrorComponent","toString","transaction","getSession","pageLoadId","margin","join","ErrorDetailsV2","ErrorComponentV2","getSessionId","ErrorBoundary","constructor","getDerivedStateFromError","componentDidCatch","captureError","render","ErrorBoundaryV2","SwitchContainer","SwitchLabel","label","Switch","enabled","onChange","currentTarget","checked","VerticalLayoutContainer","invertedIcon","activeIconColor","VerticalLayoutItemContainer","inactive","last","VerticalLayoutIconContainer","VerticalLayoutDetailsContainer","VerticalLayout","VerticalLayoutItem","BetaLabel","AdditionalSetup","borderLeft","padding","fontSize","setupUrl","ChannelSetting","indented","beta","footer","rightContent","ChannelSettingsWrapper","setLoading","updated","setUpdated","setError","onUpdate","Settings","onUpdateIntegration","asWrappedError","CheckIcon","ExclamationCircleIcon","Step","ShopifyPreLinkSetup","ShopifyPostLinkSetup","Status","IoOpenOutline","apiKey","maxWidth","onUpdateSettings","ProductPageWidgetEnabled","ProductPageAddToCartTriggerEnabled","CartPageWidgetEnabled","OrderConfirmationPageWidgetEnabled","OrderConfirmationPageWidgetFirstLoad","valueOf","ShopifySetup","pending","ColorPicker","showColorPicker","setShowColorPicker","primaryColor","setPrimaryColor","backgroundColor","SketchPicker","hex","LinkContainer","LinkDisplay","CopyableLink","flex","ReactTooltip","navigator","ReferralLinkSetup","referralLink","ReferralLink","BrandColor","ErrorDisplay","TextInputComponent","input","currency","TextInput","position","left","top","NumericFormat","TextAreaInputComponent","textarea","TextAreaInput","QRCodeSetup","setErr","onDownload","binaryString","atob","DocumentZip","binaryLen","arrayBuffer","ArrayBuffer","intArray","Uint8Array","charCodeAt","blob","Blob","open","URL","createObjectURL","catch","finally","Slideout","Dialog","showing","onClose","DialogBackdrop","DialogPanel","DialogTitle","XMarkIcon","LightspeedRetailRSeriesSetup","installUrl","backendBaseUrl","integrate","EmailMarketingEnabled","EmailMarketingRequiresOptIn","resize","EmailMarketingCategoriesEnabled","paddingTop","elem","document","querySelector","categories","split","s","trim","EmbeddablePageSetup","setIntegration","useState","onSetup","empIntegration","script","WooCommerceSetup","validInstallUrl","setValidInstallUrl","storeUrl","setStoreUrl","updateInstallUrl","parsedUrl","protocol","Error","test","hostname","hash","password","pathname","search","username","URLSearchParams","store_url","useEffect","get","IoLockClosed","IoArrowForward","CheckfrontSetup","configuration","setConfiguration","onFetchConfigurationData","Configuration","checkfrontIntegration","onClickRentalApp","notificationURL","serviceBaseUrl","webhooks","publicHandle","Details","State","approved","active","useWindowScrollPosition","scrollPosX","setScrollPosX","scrollX","scrollPosY","setScrollPosY","scrollY","onscroll","openPageInNewTab","openAsyncPageInNewTab","urlPromise","w","close","MerchantRentalSetup","getDescription","registered","submitted","approved_blanket","denied","merchantUser","onApply","set","BusinessProfile","Phone","Domain","FirstName","LastName","merchantAddress","Address","AddressLine1","AddressLine2","City","Zone","PostalCode","filloutFormId","onContinueToRental","productInsuranceChannels","referral_link","qr_code","embeddable_marketing_page","shopify","lsretail_rseries","woocommerce","rentalInsuranceChannels","checkfront","getChannelLabel","custom","getChannelDescription","getChannelImage","QrCodeIcon","LinkIcon","BookmarkIcon","BuildingStorefrontIcon","getChannelPath","getRentalConfigurationStatus","ChannelCard","Card","image","ChannelSlideoutContent","integrationStatus","ChannelsListPage","useLocation","onClickRental","rentalConfiguration","integrationByType","merchantIntegrations","find","Type","includes","every","merchantIntegration","DocumentCheckIcon","endsWith","replace","PublicHandle","PageNavigation","useRouteMatch","concatPath","relative","routes","tab","NavLink","count","route","Route","exact","Object","entries","to","Redirect","Select","multiple","Headless.Select","Table","table","Fieldset","Headless.Fieldset","Legend","Headless.Legend","FieldGroup","Field","Headless.Field","Label","Headless.Label","Description","Headless.Description","ErrorMessage","monthList","ReferralItem","referral","InsuredItems","CreatedAt","Name","NumberFormat","minimumFractionDigits","maximumFractionDigits","Price","Amount","AsyncMerchantReferrals","Promise","all","startDate","endDate","referrals","transactions","payouts","Transactions","t","credit","Referrals","marginTop","payout","toLocaleDateString","ProcessorID","Currency","getMonthsDate","today","diff","UTC","getUTCFullYear","getUTCMonth","getMonthName","date","ReferralsPage","monthOptions","index","month","setMonth","preventDefault","parseInt","opt","setMerchantPayment","getMerchantPayment","connectToPlaid","BadgeContainer","Badge","textColor","InputGroup","dateTypes","Input","Headless.Input","setValue","displayValue","setDisplayValue","formatter","parsedValue","parseFloat","isNaN","NaN","Textarea","resizable","Headless.Textarea","CheckboxGroup","CheckboxField","Checkbox","Headless.Checkbox","MAPBOX_PUBLIC_KEY","secrets","mapboxPublicKey","states","naics","DateField","EmailField","PhoneNumberField","NumberField","blur","YearField","TextField","SelectField","displayText","RadioField","RadioGroup","option","MultiSelectField","__CheckboxField","values","onChangeMulti","v","AddressForm","onRetrieve","address","features","properties","line1","address_line1","line2","address_line2","city","address_level2","zone","address_level1","postalCode","postcode","showSecondLine","initialValue","validationErrors","showCityStateZip","addressTitle","addressDescription","AddressAutofill","country","val","prev","TransitionGroup","CSSTransition","SummaryContainer","SummerFieldContainer","SummaryHeaderDescription","SummaryHeaderTitle","getMercuryPaymentMethod","paymentMethod","Check","check","Electronic","electronic","unknown","SummaryField","PayoutSummary","UserPayment","setPaymentMethod","token","setToken","formAddress","setFormAddress","setValidationError","fetchToken","useCallback","LinkToken","onSuccess","ready","usePlaidLink","onClickCheck","onUpdateLoading","PublicToken","PaymentType","onUpdatePayoutsInfo","onSave","getValidationError","newAddress","HeadlessCheckbox","CheckCircleIcon","Message","PayoutPage","mercuryRecipientID","PayoutsPage","PaymentMethod","setMercuryRecipientID","MercuryRecipientID","setAddress","merchantPayment","processingError","submissionFailed","IntegrationsPage","setMerchantIntegrations","Integration","sizes","xs","sm","md","lg","xl","Headless.Dialog","Headless.DialogBackdrop","Headless.DialogPanel","Headless.DialogTitle","DialogDescription","DialogBody","DialogActions","UserList","users","charAt","AddUserForm","formData","setFormData","handleAddUser","onAddUser","Users","TeamPage","setUsers","merchantUsers","showAddUser","setShowAddUser","RiskPage","showRiskManagementOnboarding","setShowRiskManagementOnboarding","totalComplianceItems","riskManagement","compliance","reduce","acc","group","items","compliancePercentage","actions","action","stats","stat","actionItems","BellIcon","ChartBarIcon","ExclamationTriangleIconOutline","complianceFactors","flatMap","allActionItems","complianceItems","some","actionComplianceItem","completedItems","OnboardRiskManagement","threshold","colorClass","colorClasses","classThreshold","Math","floor","getExplorablePolicies","riskManagementSetupMutation","setForm","changeDescription","complianceFrameworks","setValidationErrors","handleSubmit","hasErrors","next","variables","riskManagementSetup","getActionItemStatus","dueDate","toISOString","ActionItems","showConfirmation","setShowConfirmation","selectedActionItemId","pop","selectedActionItem","updateUser","actionId","mutate","mutation","refetchRiskManagement","updateDueDate","markComplete","loadingRiskManagement","ArrowTopRightOnSquareIcon","assignee","completionRequirements","requirement","toUpperCase","day","year","timeZone","ComplianceItems","selectedComplianceItemId","selectedComplianceItem","standards","standard","referenceMaterials","material","requirements","EyeIcon","category","slug","RiskDashboardPage","refetch","ModelRiskFieldNote","positive","changeAmount","original","ModelRiskPage","useRef","showRiskModel","setShowRiskModel","annualRevenue","totalPayroll","primaryOperations","productTypes","additionalOperations","XCircleIcon","CursorArrowRaysIcon","abs","ExploreRiskPage","explorablePolicies","selectedPolicy","setSelectedPolicy","showPolicyQuotes","setShowPolicyQuotes","policyStats","pricing","premium","policyLimits","limit","limits","cyberAggregateLimit","cyberRetentionLimit","glAggregateLimit","glMedicalPerOccurrenceLimit","glMedicalPerPersonLimit","glPerOccurrenceLimit","glPersonalAndAdvertisingInjuryLimit","glProductsAndCompletedOperationsLimit","glRentedPremisesDamageLimit","propertyBuildingLimit","propertyContentsLimit","wcPerAccidentLimit","wcPerDiseaseEmployeeLimit","wcPerDiseasePolicyLimit","extraLimits","locations","policy","insured","summary","coverageDescriptions","coverage","policyQuotes","HeadlessButton","quote","exclusionDescriptions","exclusion","PolicyChat","initialData","initialLoading","refetchInitialData","policyId","sendMessage","sendMessageData","sendMessageLoading","sendMessageError","editorText","setEditorText","messages","setMessages","stagedMessage","setStagedMessage","showAttachments","setShowAttachments","policyConversation","riskManagementAddPolicyConversationMessage","content","attachments","attachment","AIChatProgress","steps","maxDuration","stepIndex","setStepIndex","timeout","clearTimeout","Overlay","SlideOutContainer","wide","HeaderContainer","HeaderButtonContainer","Header","alignItems","justifyContent","IoClose","ContentBox","SlideOut","overflowState","setOverflowState","body","overflow","stopPropagation","onBack","FormContainer","FormRowContainer","singleItem","breakMobile","FormRowHeaderContainer","FormRowHeaderDescription","FormRowHeaderTitle","FormRowError","FormRow","FormRowHeader","FormColumnContainer","FormColumnTitle","FormColumnDescription","FormColumnContents","FormColumn","useId","formColumnStyle","FormColumnStyle","optional","fontWeight","Children","isValidElement","child","SelectInput","select","Carat","SearchableSelectOptionsContainer","SearchableSelectOptions","handleAddOption","onAdd","inputText","caseInsensitiveIndexOf","sub","toLowerCase","indexOf","rankedOptions","maxHeight","overflowY","onSelect","char","IoAdd","SearchableSelect","selectedOption","setSelectedOption","onSelectOption","onAddOption","DatePickerContainer","DatePicker","DayPicker","SettingsContainer","Setting","flexDirection","rightAction","DetailsContainer","RentalSlideoutHeader","RentalPageContainer","StatementTable","Statement","lineItems","adjustments","customer","assets","rentalDuration","textAlign","adjustment","amount","curr","acc2","CoveragePriceAmount","span","getCurrentTime","setMinutes","setSeconds","setMilliseconds","minimumRentalDuration","AutoRenewWaiver","RentalWaiverForm","priceLoading","setPriceLoading","submitLoading","setSubmitLoading","inputChanged","setInputChanged","showDatePicker","setShowDatePicker","setRentalConfiguration","availableAssets","setAvailableAssets","setWaiver","setBooking","startTime","setStartTime","durationInDays","setDurationInDays","waiverPrice","setWaiverPrice","pricingUpdateIndex","setPricingUpdateIndex","serialNumberErrors","setSerialNumberErrors","fetchData","minDurationInDays","autoRenewWaiver","entry","Booking","Waiver","EndTime","StartTime","max","endTime","setDate","getDate","MerchantID","Confirmed","Assets","Accessories","BookingReference","Insured","AutoRenew","RentalBookingID","Customer","rentalAssetToWaiverAsset","WaiverReferenceNumber","Premium","Base","Total","MerchantFeeAmount","OysterFeeAmount","ProcessingFeeAmount","PremiumRounding","rentalAsset","Asset","assetNames","keys","assetSerialNumbers","fromEntries","SerialNumber","onChangeBooking","block","onChangeWaiver","onAddAsset","currentBooking","currentWaiver","onRemoveAsset","clearSerialNumberError","updatedAssets","splice","setSerialNumberError","newErrors","selectSerialNumber","selectedAsset","ast","handleSelectSerialNumber","handleAddSerialNumber","onAddAccessory","assetIndex","accessory","updatedAsset","onRemoveAccessory","indexToRemove","findIndex","Value","updatedAccessories","getStartTimeOptions","padStart","updateBookingTimes","useDebounce","delay","debouncedValue","setDebouncedValue","timer","debouncedPricingUpdateIndex","updatedWaiver","onCreateOrUpdateWaiver","apiFunc","hasSerialNumberError","updateHandler","onWaiverCreated","UpdatedBooking","UpdatedWaiver","getoyster","toDateString","getHours","newStartHour","updatedTime","setHours","getMinutes","getSeconds","getAccessoriesQuantity","list","flexWrap","gap","AvailableAccessories","flexGrow","minWidth","marginRight","marginLeft","RentalWaiverSentPage","getStaticFileUrl","getDocumentUrl","getRentalDocumentUrl","InsuredItemContainer","InsuredItemDetails","InsuredItemTitle","InsuredItemContent","RentalDescription","formattedRentalDate","IoBicycle","itemName","accessories","InsuredDescription","IoPerson","AddressCity","AddressState","AddressZipCode","RenewalDescription","IoRefresh","showRenewalPeriod","RentalBookingDetailsPage","rentalConfig","setRentalConfig","setClaim","setFiles","onFetchData","Claim","onCancelRenewal","updatedBooking","getCompactRentedAssets","getWaiverStatus","canceled","expired","getClaimStatus","c","requires_information","logged","getFileNameForRentalFiles","Attachment","Role","signedRentalAgreement","waiverLDWDocument","toLocaleString","BookingLineItems","onCreateWaiver","onViewWaiver","onFileClaim","CheckboxContainer","ConditionalWrapper","condition","wrap","AddressInputForm","setState","businessName","streetAddress","streetAddressLine2","aptFloor","aptUnit","zipCode","fn","showBusinessName","serviceName","singleSecondLine","RequirementItemContainer","RequirementCheckboxContainer","RequirementContentContainer","RequirementDescription","RequirementTitle","AttachmentLozengeContainer","uploading","formatSize","round","AttachmentLozenge","cursor","IoAttachOutline","paddingRight","onRemove","paddingLeft","AttachmentContainer","dragging","AttachmentCheckboxContainer","AttachmentContentContainer","AttachmentDescription","AttachmentContent","AttachmentHeaderContainer","ChildrenContainer","getFilesFromEvent","dataTransfer","kind","getAsFile","AttachmentUploader","setDragging","attachRef","existingAttachmentsList","setExistingAttachmentsList","newAttachmentsList","setNewAttachmentsList","newAttachment","uploadedAttachment","addFiles","onAttachmentsAdded","onDragEnter","onDragLeave","onDragOver","dropEffect","onDrop","Array","current","click","IoEllipseOutline","IoCheckmarkCircle","Size","onAttachmentRemoved","allowDeleteExisting","newIndex","RentalClaimForm","setAttachments","filesToUpload","setFilesToUpload","incidentDate","setIncidentDate","Entry","Attachments","RentalWaiverID","ClaimNumber","DamageType","IncidentDate","IncidentCause","IncidentAddress","onChangeClaim","addedFiles","getDamageTypeOptions","currentClaim","onSubmitClaim","claimToSubmit","updatedClaim","updatedFiles","waiverClaimAttachment","onClaimSubmitted","getDisplayName","propsAsset","fire","theft","accident","PoliceReportFiled","NameOfEmergencyDepartment","ReportOrIncidentNumber","water","SourceOfWaterDamage","addr","HasOtherInsuranceCoverage","ViewRentalAssetPage","deleteSerialNumberLoading","setDeleteSerialNumberLoading","addSerialNumberLoading","setAddSerialNumberLoading","setSerialNumber","serialNumberAssets","deleteAsset","addSerialNumber","IoTrashOutline","paddingBottom","CreateRentalAssetPage","_setAsset","setAsset","field","addAsset","createdAsset","onCreate","RadioContainer","CardGallery","ul","comingSoon","CardContents","SlimCardContainer","selected","SlimCardImage","SlimCardContents","CheckmarkBox","TitleBadge","SelectableOptionCard","titleAction","IoCheckmarkSharp","FooterStandardContainer","FooterContainer","FooterLinksContainer","OysterCopyright","opacity","CustomFooter","policyType","chubbJewelry","FooterStandard","FooterMinimalContainer","FooterMinimal","PaneContainer","Pane","paneWidth","TwoPaneContainer","leftPaneWidth","rightPane","PageContainerDiv","marginBottom","PageContainer","footerStyle","FooterStyle","footerTextColor","PageSection","customPadding","noPadding","noBorder","centered","STRIPE_PUBLIC_KEY","stripePublicKey","stripe","loadStripe","apiVersion","tagId","GetOysterEventNames","install","scriptId","head","tagScript","useGoogleTags","GoogleTagAnalytics","tagEvent","convertEvent","AggregateAnalytics","useAnalytics","analytics","PaymentDisclosure","disclosure","bike","markelBike","minicoJewelry","worthAveElectronics","PaymentCollection","hasConsent","setHasConsent","useStripe","elements","useElements","event","PaymentSubmitted","confirmParams","return_url","returnUrl","setupOnly","confirmSetup","confirmPayment","PaymentElement","terms","card","defaultValues","billingDetails","defaultName","defaultEmail","hideLegal","underwriter","IoArrowBack","continueLabel","PaymentMethodInput","getPaymentIntent","clientSecret","Elements","fonts","family","weight","src","unicodeRange","appearance","theme","fontFamily","borderRadius","fontSizeBase","fontWeightNormal","colorPrimary","colorBackground","colorText","colorDanger","spacingGridRow","spacingGridColumn","rules","letterSpacing","border","boxShadow","borderColor","LabeledCheckbox","MerchantBilledInsuranceSettings","agreementAccepted","setAgreementAccepted","setup","SetupIntentClientSecret","origin","BankName","LastFour","onEnable","MerchantUnifiedWaiverFlowSettings","documents","setDocuments","getDocuments","uploadLoading","setUploadLoading","deleteLoading","setDeleteLoading","uploadDocuments","deleteDocument","RentalTable","MerchantRentalList","onCreateNewWaiver","onViewBooking","onCreateClaim","waivers","IoShieldCheckmarkSharp","IoShieldOutline","IoChevronForwardSharp","MerchantRentalAssetManager","setAssets","getAssetIdFromRentalUrl","pathMatch","assetGroups","fetchAssets","replacementAsset","onCreateAsset","onViewAsset","MerchantRentalSettings","setMerchant","updateLoading","setUpdateLoading","Merchant","origConfig","updatedConfig","IoBusiness","UnifiedWaiverFlowEnabled","IoAlertCircleSharp","MerchantRentalResources","setReferralLink","qrCode","setQrCode","downloadLoading","setDownloadLoading","QRCodeBase64","height","IoDownload","MerchantRentalStatementsPage","selectedMonth","setSelectedMonth","o","MerchantRentalStatement","calculateDuration","days","ceil","BookingLineItem","show","MerchantRentalPage","getWaiverIdFromRentalUrl","getBookingIdFromRentalUrl","showConfirmationInDashboard","ActivityItem","IoPaperPlane","referree","boxSizing","ReferralList","fulfilled","Referee","BusinessName","UpdatedAt","Reward","getInviteLinkHost","host","InvitePage","copyClicked","setCopyClicked","IoCopyOutline","ActionsContainer","Action","Listbox","placeholder","autoFocus","ariaLabel","Headless.Listbox","Headless.ListboxButton","Headless.ListboxSelectedOption","Headless.ListboxOptions","OysterLogoOldContainer","OysterWordMarkContainer","OysterLogoOld","scale","verticalAlign","textTransform","OysterWordMark","forceLight","Heading","level","Element","ApplicationContext","createContext","useBusinessApplicationProvider","includeQuotes","includeQuotableCarriers","application","setApplication","getApplication","query","errorPolicy","businessApplication","otherErrors","extensions","ApolloError","graphQLErrors","applicationId","updateApplication","loadApplication","ProgressBar","scrollPos","progress","scrollHeight","ApplicationWrapper","TransitionContainer","PageWrapper","useContext","loader","scroll","SwitchTransition","skeleton","getFormId","toNumber","getFilloutParameters","DBA","jewelry","electronics","ProductVerticals","Personalization","BusinessInsuranceTypes","UmbrellaExcess","BusinessInsuranceTypesOtherDesc","BusinessOperationTypes","RetailECommerce","ServiceOrRepair","Wholesale","Manufacturing","BusinessOperationTypesOtherDesc","BusinessManufactureOrWholesaleOwnBrand","BusinessRevenueBreakdownRetail","BusinessRevenueBreakdownServiceOrRepair","BusinessRevenueBreakdownWholesale","BusinessRevenueBreakdownRental","BusinessRevenueBreakdownManufacturing","BusinessRevenueBreakdownOther","BusinessTotalPayroll","BusinessNumberOfPriorLosses","GetInsurance","createElement","defer","appendChild","removeChild","prefilledParameters","InsuranceFormSubmitted","statuses","CertificatesTable","ManageBusinessInsurance","urlParams","filloutLink","graphMerchant","titleCase","DocumentPlusIcon","getPolicyBadge","part","substring","unescapeSafe","DOMParser","parseFromString","documentElement","textContent","ViewBusinessPolicy","total","billingType","ViewCertificate","partners","IoDownloadOutline","descriptionOfOperations","CreateCertificate","generateCertificate","needsAgentAction","setNeedsAgentAction","additionalInsured","additionalInsuredRelationship","additionalInsuredRelationshipDescription","notes","selectedAdditionalInsured","setSelectedAdditionalInsured","additionalInsureds","blanketAdditionalInsureds","namedAdditionalInsureds","n","updateFormMulti","fieldPartsList","update","forEach","fieldParts","updateForm","getError","onSubmit","req","onReset","ai","AdditionalInsuredListOption","ExclamationTriangleIcon","sharedClasses","Headless.ListboxOption","InsurancePage","BusinessInsuranceFilloutFormSubmitted","businessPolicy","PolicySlideoutContainer","Sentry","BrowserRoute","navigation","HomeIcon","PuzzlePieceIcon","AdjustmentsHorizontalIcon","UsersIcon","GiftIcon","AsyncMerchantHomePage","integrations","rental","Integrations","AsyncMerchantIntegrationsPage","accountRes","integrationsRes","rentalRes","ApiKey","AsyncMerchantInsurancePage","account","AsyncRiskPage","AsyncManageRiskPage","AsyncModelRiskPage","AsyncExploreRiskPage","AsyncTeamPage","AsyncInvitePage","DashboardContainer","sidebarOpen","setSidebarOpen","signOut","TransitionChild","PowerIcon","Bars3Icon","Menu","MenuButton","Dashboard","ApolloProvider","ProgressContainer","ProgressBarContainer","ProgressBarTrack","ProgressBarInner","ProgressStepContainer","ProgressStep","filled","percentage","toFixed","Progress","numSteps","isFinite","isArray","currentStep","step","ThrowError","Authenticated","loaded","setLoaded","PersonalizationError","OptionContainer","OptionCheckboxContainer","OptionImageContainer","OptionContentContainer","OptionDescription","OptionContent","OptionHeaderContainer","OptionHeader","OptionGroup","multi","imageUrl","titleRight","NColumnListContainer","columns","LabeledRadio","MerchantPersonalizationProductInsuranceForm","updatePersonalization","onNext","SalesChannels","Online","InStore","Dealer","Shopify","WooCommerce","Lightspeed","BigCommerce","Adobe","Custom","OnlineSalesChannelName","ShopifyAdminURL","ShopifyPOS","LightspeedRSeries","LightspeedXSeries","Ascend","Edge","InStoreSalesChannelName","RentalChannelName","ProductAnnualRevenue","personalization","MerchantPersonalizationRentalInsuranceForm","BikesAndEbikes","Kayaks","Paddleboards","operation","RentalProductTypes","RentalProductTypeOtherDesc","RentalMotorizedAssetsExceedEBikeClassification","RentalMaximumAssetValue","RentalAverageAssetValue","RentalAnnualRevenue","RentalAnnualVolume","RentalPlatformName","RentalPointOfSaleName","InsuranceDetailItemContainer","li","InsuranceDetailItem","InsuranceOptionCardContainer","InsuranceOptionCard","displayItems","MerchantPersonalizationIntro","merchantEligibleForRentalInsurance","BusinessInsuranceEnabled","ProductInsuranceEnabled","RentalInsuranceEnabled","MerchantPersonalizationProductInsurancePage","MerchantPersonalizationRentalInsurancePage","MerchantPersonalizationCompletePageContainer","MerchantPersonalizationCompletePagePane","MerchantPersonalizationCompletePageImage","getChannelUrl","MerchantPersonalizationCompletePage","getPages","pages","hasError","component","IoFlag","IoBagOutline","IoTimerOutline","IoCheckmarkDone","MerchantPersonalization","setPages","currentPageIndex","matchPath","page","scrollTo","NextValidationError","nextPageIndex","nextPages","OnboardShopify","redirection","OnboardLightspeedRetailRSeries","OnboardWooCommerce","success","OnboardCheckfront","useGA","trackingId","ReactGA","obj","DigitsInputContainer","Digit","DigitsInput","refs","digits","setDigits","fill","initialDigits","focus","React.Fragment","j","onInputChange","onComplete","SignInContainer","SignInPane","SignInImage","SignInPage","setEmail","redirectUri","signupUri","handleLogin","SignUpPage","BusinessDBA","BusinessDomain","AccessCode","signinUri","handleSignUp","SubField","collectibles","furniture","fashion","motorcycle","offroad","food_and_beverage","beauty_and_supplements","outdoor_sports","other","SignInCompletePage","setCode","resending","setResending","resendCode","SignInCompleteWrapper","SignIn","SignUp","userIdentify","firstName","lastName","debounce","func","waitFor","args","PORTAL_ID","HubspotChatContext","HubspotChatContextProvider","chat","useHubspotChat","portalId","scriptLoaded","setScriptLoaded","manualIdentification","setManualIdentification","updateIdentification","hsConversationsSettings","identificationEmail","identificationToken","_hsq","Cookies","remove","trackPageView","identify","manual","refreshWidget","HubSpotConversations","clear","resetWidget","widget","load","loadImmediately","hsConversationsOnReady","updatedIdentification","CertificateSectionContainer","CertificateRightSection","CertificateLeftSection","CertificateEntity","entity","l","CertificatePolicy","insurer","effectiveDate","expirationDate","hasWaiverOfSubrogation","holderIsAdditionalInsured","CertificateSection","coverages","MarketingBanner","producer","IoCheckmarkOutline","CertificatePolicySkeleton","CertificateSectionSkeleton","CertificateSkeleton","CertificateApp","getCertificate","ComputerDesktopIcon","LockClosedIcon","getMerchantInfo","merchantHandle","logo","aircfo","bbg","beyondsku","bookkeeper360","cfoplans","decimal","ecombalance","finta","fulfil","guidance","hawkemedia","keptpro","pacificcrestgroup","paperchase","scharfconsulting","pilot","rho","smartrr","steptwo","Landing","isSubmitting","setIsSubmitting","createApplication","useMutation","createBusinessApplication","FormData","businessVertical","filloutParams","first_name","fullName","last_name","phone","business_type","merchantInfo","feature","clipPath","Divider","soft","Combobox","setQuery","queryRegex","RegExp","minQueryLength","maxOptions","filteredOptions","HeadlessCombobox","ComboboxInput","ComboboxButton","ChevronUpDownIcon","ComboboxOptions","ComboboxOption","badgeText","LegendSkeleton","LabelSkeleton","long","extraLong","DescriptionSkeleton","TextSkeleton","InputSkeleton","short","commonCoverages","insuranceTypes","workersCompensationDisabledStates","currencyFormatter","displaySelectedLimit","insuranceType","selectedLimits","bopPerOccurrenceLimit","bopAggregateLimit","PlusDivider","Intro","availableLimits","setAvailableLimits","contact","naicsCode","insuranceEffectiveAt","coverageState","coverageLimits","checkWorkersCompensationEligibility","onChangeLimit","selectedIndex","setLimit","fields","getLimitValue","chooseDefaultLimits","groupedLimits","errorFields","noValidationErrorMatched","updateBusinessApplication","IntroSkeleton","Business","mailingAddress","businessDba","fein","legalEntityType","yearOfFounding","yearsOfManagementExperience","employeeInfo","numFullTimeEmployees","numPartTimeEmployees","totalEmployeePayroll","owners","owner","annualPayroll","dateOfBirth","jobCode","addEmptyOwner","removePreviousOwner","BusinessSkeleton","UnderwritingForm.AddressForm","CurrencyDollarIcon","TrashIcon","PlusIcon","Locations","setOpen","buildingInfo","isPrimary","foundIdx","locationIndexHasError","getDefaultLocationInfo","random","annualSales","addLocation","addLocationFromMailingAddress","discardChanges","editLocation","locationId","areaOccupiedByBusiness","buildingCoverage","burglarAlarmType","constructionType","ownershipType","personalPropertyCoverage","sprinkleredPercentage","totalArea","totalStories","yearBuilt","removeLocation","onContinue","LocationsSkeleton","BuildingOffice2Icon","ChevronDoubleRightIcon","PencilSquareIcon","Losses","hasLosses","setHasLosses","pastPolicyLosses","claimDate","claimStatus","lossDate","lossDescription","lossState","lossType","policyEffectiveDate","policyExpirationDate","totalPaidAmount","totalReservedAmount","addLoss","removeLoss","yearsAgo","setFullYear","getFullYear","LossesSkeleton","loss","CarrierSelection","selectedCarriers","onSubmitWithNoQuotes","submitBusinessApplication","rates","quotableCarriers","online","supportedPolicies","CarrierSelectionSkeleton","ShieldExclamationIcon","UnderwritingForm.CheckboxField","UnderwritingProgress","MarkdownStyleContainer","CarrierStatement","ReactMarkdown","statements","markdown","getCarrierName","Underwriting","carrierIndex","setCarrierIndex","generalAnswers","locationAnswers","underwritingAnswers","answer","questionId","underwritingQuestions","question","carriers","Set","localeCompare","carrierQuestionGroups","generalQuestions","locationQuestions","questions","underwritingStatements","renderQuestion","componentTypeMap","UnderwritingForm","updateGeneralForm","updateLocationForm","updateGeneralFormMulti","updateLocationFormMulti","tooltip","answerOptions","filterQuestion","hasParentQuestion","q","dependentQuestions","dependentQuestionIds","parentQuestion","rule","answerForm","parentAnswer","validAnswers","op","answers","at","UnderwritingSkeleton","BindQuote","bindOptions","setBindOptions","paymentPlanId","describePlan","installmentCount","totalAmount","cadance","installmentFrequency","firstInstallmentDate","installmentDueAt","downAmount","installmentAmount","paymentPlansSorted","paymentPlans","plan","onBind","premiumAmount","quoteProposalUrl","Quote","showProgress","setShowProgress","bindLoading","setBindLoading","bindError","setBindError","bindQuote","setBindQuote","onLoadLoop","onLoad","quoteBusinessApplication","selectQuote","quotes","bindingQuote","bound","isOnline","bindOnlineQuotes","bridgeQuotes","bindOnlineQuote","bridgeQuote","bindOnlineQuoteAmount","bridgeQuoteAmount","coverageTypes","quoteId","onSubmitApplication","QuoteProgress","QuoteSkeleton","InformationCircleIcon","Complete","bindingQuotes","pendingCoverages","CompleteSkeleton","initApm","initAppConfiguration","App","Router","CommercialLanding","CommercialApp.Intro","CommercialApp.Business","CommercialApp.Locations","CommercialApp.Losses","CommercialApp.CarrierSelection","CommercialApp.Underwriting","CommercialApp.Quote","CommercialApp.Complete","container","getElementById","root","createRoot"],"mappings":"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;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EA2H/BE,GAAoCF;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EA6BpCG,GAA8CH;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAY9CI,GAAwCJ;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAsGxCK,GAAkCL;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAyB3CI,EAAqC;AAAA,EAE5BE,GAAwBN;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAuBxBO,GAA4BP;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAQrCM,EAAqB;AAAA,EAEZE,GAA8BR;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EA4B9BS,GAAsCT;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAkC/CQ,EAA2B;AAAA,EAElBE,GAA6CV;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAY7CW,GAAyBX;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IASlCD,EAAmC;AAAA,EA6BhC,SAASa,GACdC,EACA,CACA,MAAMC,EAAU,CAAE,GAAGhM,GAAgB,GAAG+L,CAAAA,EACjCE,OAAAA,GACLJ,GACAG,CACF,CACF,CAmBO,MAAME,GAA8BhB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAiCpC,SAASiB,GACdJ,EAIA,CACA,MAAMC,EAAU,CAAE,GAAGhM,GAAgB,GAAG+L,CAAAA,EACjCE,OAAAA,GACLC,GACAF,CACF,CACF,CASO,MAAMI,GAA4BlB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EA6E5BmB,GAAiCnB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAY1CC,EAA4B;AAAA,IAC5BC,EAAiC;AAAA,IACjCC,EAA2C;AAAA,EAuElCiB,GAAoCpB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAkDpCqB,GAAoCrB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAa7CC,EAA4B;AAAA,IAC5BC,EAAiC;AAAA,IACjCC,EAA2C;AAAA,EAgDlCmB,GAAmCtB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAQ5CC,EAA4B;AAAA,IAC5BC,EAAiC;AAAA,IACjCC,EAA2C;AAAA,EA6ClCoB,GAAoCvB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAQ7CC,EAA4B;AAAA,IAC5BC,EAAiC;AAAA,IACjCC,EAA2C;AAAA,EA6ClCqB,GAAyCxB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAMlDC,EAA4B;AAAA,EA8CnBwB,GAA4CzB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAcrDC,EAA4B;AAAA,EA+CnByB,GAA4C1B;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IASrDC,EAA4B;AAAA,EA8CnB0B,GAAoB3B;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAkB7BC,EAA4B;AAAA,IAC5BC,EAAiC;AAAA,IACjCC,EAA2C;AAAA,EA0ClCyB,GAAsC5B;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAM/CK,EAA+B;AAAA,EAmEtBwB,GAAoC7B;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAM7CK,EAA+B;AAAA,EAqEtByB,GAAsB9B;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAM/BO,EAAyB;AAAA,EAiDhBwB,GAA8B/B;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAgBvCS,EAAmC;AAAA,EA0BhC,SAASuB,GACdnB,EAIA,CACA,MAAMC,EAAU,CAAE,GAAGhM,GAAgB,GAAG+L,CAAAA,EACjCE,OAAAA,GACLgB,GACAjB,CACF,CACF,CASO,MAAMmB,GAA4BjC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAMrCS,EAAmC;AAAA,EAkBhC,SAASyB,GACdrB,EACA,CACA,MAAMC,EAAU,CAAE,GAAGhM,GAAgB,GAAG+L,CAAAA,EACjCE,OAAAA,GACLkB,GACAnB,CACF,CACF,CA+BO,MAAMqB,GAA6CnC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAMtDQ,EAA2B;AAAA,EA8ClB4B,GAA8CpC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAMvDQ,EAA2B;AAAA,EA8ClB6B,GAA+CrC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAMxDQ,EAA2B;AAAA,EA6ClB8B,GAAgCtC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAMzCU,EAA0C;AAAA,EAmBvC,SAAS6B,GACd1B,EAKA,CACA,MAAMC,EAAU,CAAE,GAAGhM,GAAgB,GAAG+L,CAAAA,EACjCE,OAAAA,GACLuB,GACAxB,CACF,CACF,CAoCO,MAAM0B,GAAuCxC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAMhDU,EAA0C;AAAA,EAyBvC,SAAS+B,GACd5B,EAIA,CACA,MAAMC,EAAU,CAAE,GAAGhM,GAAgB,GAAG+L,CAAAA,EACjCE,OAAAA,GAGLyB,GAAsC1B,CAAO,CACjD,CCn4Oa4B,MAAAA,GAA2BC,GAA4C,CAClF,OAAQA,EAAI,CACV,KAAKzI,EAAcC,kBACV,MAAA,sBACT,KAAKD,EAAcE,eACV,MAAA,kBACT,KAAKF,EAAcG,eACV,MAAA,OACT,KAAKH,EAAcI,MACV,MAAA,QACT,KAAKJ,EAAcK,qBACV,MAAA,yBACT,KAAKL,EAAcM,6BACV,MAAA,iCACT,KAAKN,EAAcO,kBACV,MAAA,gCACT,KAAKP,EAAcQ,iBACV,MAAA,oBACT,KAAKR,EAAcS,cACV,MAAA,iBACT,KAAKT,EAAcJ,MACV,MAAA,QACT,KAAKI,EAAcU,QACV,MAAA,UACT,KAAKV,EAAcW,iBACV,MAAA,oBACT,KAAKX,EAAcY,sBACV,MAAA,yBACT,KAAKZ,EAAca,SACV,MAAA,WACT,KAAKb,EAAcc,OACV,MAAA,SACT,KAAKd,EAAce,0BACV,MAAA,8BACT,KAAKf,EAAcgB,iBACV,MAAA,qBACT,KAAKhB,EAAciB,oBACV,MAAA,uBACT,QACS,MAAA,SACX,CACF,EC/BayH,GAAOC,EAAAA,WAAW,SAC7BtT,EACAuT,EACA,CACA,OAAOvT,EAAMnH,KAAK2a,WAAW,GAAG,EAC9B/T,EAAAA,IAACgU,GAAA,CACC,SAAAhU,EAAAA,IAACiU,GAAW,CAAA,GAAI1T,EAAMnH,KAAM,IAAA0a,EAAU,GAAIvT,CAAM,CAAA,CAAA,CAClD,EAEAP,EAAA,IAACgU,GAAA,CACC,SAAAhU,EAAAA,IAAC,IAAMO,CAAAA,GAAAA,EAAO,IAAAuT,CAAS,CAAA,CACzB,CAAA,CAEJ,CAAC,ECvBKI,GAAS,CACbC,IAAK,mBACLC,OAAQ,sBACRC,MAAO,qBACPC,OAAQ,sBACRC,KAAM,oBACNC,MAAO,qBACPC,QAAS,uBACTC,KAAM,oBACNC,KAAM,oBACNC,IAAK,mBACLC,KAAM,oBACNC,OAAQ,sBACRC,OAAQ,sBACRC,OAAQ,sBACRC,QAAS,uBACTC,KAAM,oBACNC,KAAM,oBACNC,KAAM,oBACNC,QAAS,uBACTC,MAAO,gBACT,EAEa1V,GAAUA,CAAC,CACtBC,MAAAA,EACAC,KAAAA,CAYF,IACEE,MAAC,OAAI,UAAU,0CAAyC,wBAAA,UAAA,0BAAA,cACtD,SAACA,EAAA,IAAA,MAAA,CACC,UAAWuV,EACT,0EACArB,GAAOrU,GAAS,OAAO,EACvBC,GAAQ,QACV,EAAE,CAEN,CAAA,EC1CI0V,GAAS,CACbC,KAAM,CAEJ,+GAEA,8JAEA,gIAEA,6BAEA,gTAAgT,EAElTC,MAAO,CAEL,uCAEA,qBAEA,qHAEA,gBAEA,qBAEA,sBAEA,4FAEA,4DAEA,2FAEA,6CAEA,sEAAsE,EAExEC,QAAS,CAEP,gHAEA,8HAEA,oQAAoQ,EAEtQC,MAAO,CAEL,mGAEA,+EAEA,gTAAgT,EAElT1B,OAAQ,CACN,eAAgB,CACd,6IACA,8GACA,iJAAiJ,EAEnJ2B,MAAO,CACL,2PACA,8GACA,gTAAgT,EAElT,aAAc,CACZ,6IACA,sGACA,gTAAgT,EAElTC,KAAM,CACJ,6IACA,8FACA,iJAAiJ,EAEnJR,MAAO,CACL,2PACA,0DACA,iJAAiJ,EAEnJD,QAAS,CACP,6IACA,oDACA,iJAAiJ,EAEnJP,OAAQ,CACN,2IACA,8IAA8I,EAEhJH,KAAM,CACJ,0IACA,qCAAqC,EAEvCR,IAAK,CACH,qIACA,qIAAqI,EAEvIC,OAAQ,CACN,2IACA,8IAA8I,EAEhJC,MAAO,CACL,6IACA,sCAAsC,EAExCC,OAAQ,CACN,gJACA,8IAA8I,EAEhJC,KAAM,CACJ,0IACA,wIAAwI,EAE1IC,MAAO,CACL,yIACA,2IAA2I,EAE7IC,QAAS,CACP,6IACA,2IAA2I,EAE7IC,KAAM,CACJ,uIACA,2IAA2I,EAE7IE,IAAK,CACH,qIACA,2IAA2I,EAE7IC,KAAM,CACJ,uIACA,wIAAwI,EAE1IE,OAAQ,CACN,2IACA,8IAA8I,EAEhJC,OAAQ,CACN,2IACA,8IAA8I,EAEhJC,QAAS,CACP,6IACA,iJAAiJ,EAEnJC,KAAM,CACJ,uIACA,wIAAwI,EAE1IC,KAAM,CACJ,uIACA,wIAAwI,CAE5I,CACF,EAWaY,GAASlC,EAAAA,WAAW,SAC/B,CAAEhU,MAAAA,EAAO8V,QAAAA,EAASC,MAAAA,EAAOI,UAAAA,EAAWC,QAAAA,EAASpV,SAAAA,EAAU,GAAGN,CAAmB,EAC7EuT,EACA,CACA,MAAMoC,EAAUX,EACdS,EACAR,GAAOC,KACPE,EACIH,GAAOG,QACPC,EACEJ,GAAOI,MACPL,EAAKC,GAAOE,MAAOF,GAAOtB,OAAOrU,GAAS,cAAc,CAAC,CACjE,EAEA,MAAO,SAAUU,EACdP,EAAA,IAAA4T,GAAA,CAAK,GAAIrT,EAAO,UAAW2V,EAAS,IAAApC,EACnC,SAAC9T,EAAAA,IAAAmW,GAAA,CAAatV,SAAAA,EAAS,CAAA,CACzB,EAECb,MAAAoW,GAAA,CACC,GAAI7V,EACJ,SAAUA,EAAM8V,UAAYJ,EAC5B,UAAWV,EAAKW,EAAS,gBAAgB,EACzC,IAAApC,EAEA,SAAC9T,EAAA,IAAAmW,GAAA,CAAatV,SAAAA,EAAS,CACzB,CAAA,CAEJ,CAAC,EAKM,SAASsV,GAAY,CAAEtV,SAAAA,CAAwC,EAAG,CACvE,OAEIyV,EAAA,KAAAC,WAAA,CAAA,SAAA,CAAAvW,EAAA,IAAC,OACC,CAAA,UAAU,qHACV,cAAY,OAAM,EAEnBa,CACH,CAAA,CAAA,CAEJ,CAE6BgT,EAAW,WAAA,SACtC,CACEoC,QAAAA,EACAD,UAAAA,EACAnV,SAAAA,EACA,GAAGN,CAML,EACAuT,EACA,CACA,MAAMoC,EAAUX,EACd,+IACA,8BACA,6LACA,oNACA,mCACAS,CACF,EAEA,MAAO,SAAUzV,EACdP,EAAAA,IAAA4T,GAAA,CAAK,GAAIrT,EAAO,UAAW2V,EAAS,IAAApC,EACnC,SAAA9T,EAAAA,IAACmW,GAAatV,CAAAA,SAAAA,CAAAA,CAAS,CACzB,CAAA,EAECb,EAAAA,IAAAoW,GAAA,CAAoB7V,GAAAA,EAAO,SAAUA,EAAM8V,UAAYJ,EAAS,UAAWC,EAAS,IAAApC,EACnF,SAAAwC,EAAAA,KAACH,GACE,CAAA,SAAA,CAAA,CAACF,GAAWpV,EACZoV,SAAYrW,GAAU,EAAA,CAAA,CACzB,CAAA,CACF,CAAA,CAEJ,CAAC,ECxPY4W,MAAAA,GACXjW,GAMA+V,EAAAA,KAAC,OAAG,wBAAA,YAAA,0BAAA,cACF,SAAA,CAAAtW,EAAA,IAAC,KAAG,CAAA,UAAU,MAAOO,SAAAA,EAAMkW,MAAM,EAChClW,EAAMmW,OAAS1W,EAAA,IAAC,OAAI,UAAU,OAAQO,WAAMmW,MAAM,EAClDnW,EAAMoW,aAAe3W,EAAA,IAAC,KAAE,UAAU,kCAAmCO,WAAMoW,YAAY,EACvF3W,EAAA,IAAA,MAAA,CAAI,UAAU,OAAQO,WAAMM,SAAS,CAAA,EACxC,ECWI+V,GAAiBC,GAAgC,CACrD,OAAQA,EAAM,CACZ,KAAK1H,GAAYE,QACR,MAAA,+CACT,KAAKF,GAAYlH,QACjB,KAAKkH,GAAYG,QACR,MAAA,+CACT,KAAKH,GAAYzG,SACR,MAAA,yCACT,QACS,MAAA,oDACX,CACF,EAEMoO,GAAgBvW,SACnB,OACC,CAAA,UAAWgV,EACT,sGACAqB,GAAcrW,EAAMwW,KAAK,CAC3B,EAAE,wBAAA,eAAA,0BAAA,YAEDxW,SAAAA,EAAMwW,OAAS,SAClB,CAAA,EAGIC,GAA4BzW,GAAyB,CACzD,MAAM0W,EAAUC,KACVC,EAAW5W,EAAM6W,iBAAiBC,UAAcC,EAAEP,QAAU5H,GAAYC,OAAO,EAErF,OAAI+H,EAASI,OAETvX,EAAAA,IAAC,KAAG,CAAA,KAAK,OAAO,UAAU,+DACvBmX,SAAAA,EAASK,IAAKF,GAAAA,OACZtX,OAAAA,EAAA,IAAA,KAAA,CACC,KAAK,SAEL,UAAU,mGACV,QAAS,IAAMiX,EAAQQ,KAAK,8BAA8BH,EAAEvf,EAAE,EAAE,EAEhE,SAAAue,OAAC,MAAI,CAAA,UAAU,4CACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,SACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,oCACb,SAAA,CAAAtW,MAAC,MAAG,UAAU,4CACX0T,SAAwB4D,GAAAA,EAAE3D,IAAI,EACjC,EACC3T,EAAAA,IAAA8W,GAAA,CAAa,MAAOQ,EAAEP,KAAM,CAAA,CAAA,EAC/B,EACAT,EAAAA,KAAC,MAAI,CAAA,UAAU,kDACb,SAAA,CAAAtW,MAAC,KAAE,UAAU,cAAesX,WAAEI,EAAAA,EAAAA,UAAAA,YAAAA,EAASC,OAAQ,MAAM,EACpD3X,EAAA,IAAA,MAAA,CAAI,QAAQ,UAAU,UAAU,2BAC/B,SAAAA,EAAA,IAAC,SAAO,CAAA,EAAG,EAAG,GAAI,EAAG,GAAI,CAAE,CAAA,EAC7B,EAAO,UACN,IAAE,CAAA,UAAU,cAAesX,SAAAA,EAAEM,cAAgB,MAAM,CAAA,EACtD,EAECN,EAAEO,WACAvB,OAAA,IAAA,CAAE,UAAU,gCAA+B,SAAA,CAAA,UAClC,IACP,IAAIwB,KAAKC,eAAe,QAAS,CAAEC,UAAW,QAAU,CAAA,EAAEC,OACzD,IAAI1H,KAAK+G,EAAEO,SAAS,CACtB,CAAA,EACF,CAAA,EAEJ,EACA7X,EAAAA,IAAC,OAAI,UAAU,uDACb,eAACkY,GAAgB,CAAA,UAAU,2BAA0B,CACvD,CAAA,CAAA,CAAA,CACF,CAhCKZ,EAAAA,EAAEvf,EAiCT,EACD,CACH,CAAA,SAKD,MAAI,CAAA,UAAU,OAAM,wBAAA,2BAAA,0BAAA,YACnB,SAAA,CAACiI,EAAA,IAAA,IAAA,CAAE,UAAU,uCAAsC,SAEnD,2CAAA,QACC,MAAI,CAAA,UAAU,2BACb,SAAAA,EAAAA,IAAC+V,IAAO,KAAK,SAAS,MAAM,MAAM,KAAK,aAAY,sBAAA,SAAA,0BAAA,YAAA,6BAEnD,CAAA,EACF,CACF,CAAA,CAAA,CAEJ,EAEMoC,GAAuB5X,GAAyB,SACpD,MAAM6X,IACJ7X,GAAAA,EAAAA,EAAM2B,WAAN3B,YAAAA,EAAgBoD,QAAhBpD,YAAAA,EACI8W,UAAc/Z,EAAE+a,OAAShO,GAASG,aACnC6M,OAAQ/Z,GAAM,OAAA,OAAC,GAACA,EAAAA,EAAEgb,UAAFhb,MAAAA,EAAWib,qBAC3BC,KAAK,CAACC,EAAGC,IAAM,IAAInI,KAAKmI,EAAEC,SAAS,EAAEC,QAAAA,EAAY,IAAIrI,KAAKkI,EAAEE,SAAS,EAAEC,QAAQ,KAAM,GAEpF3B,EAAUC,KAEhB,OAAIkB,EAAab,OAEZjB,EAAAA,KAAA,KAAA,CAAG,KAAK,OAAO,UAAU,+CACvB8B,SAAAA,CAAaS,EAAAA,MAAM,EAAG,CAAC,EAAErB,OACvBxX,OAAAA,OAAAA,EAAAA,IAAA,KAAA,CACC,KAAK,SAEL,UAAU,mGACV,QAAS,WACPiX,OAAAA,EAAQQ,KACN,wCAAuCqB,EAAAA,EAAYR,UAAZQ,YAAAA,EAAqBP,iBAAiB,EAC/E,GAGF,SAAAjC,EAAA,KAAC,MAAI,CAAA,UAAU,kDACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,SACb,SAAA,CAACtW,EAAA,IAAA,MAAA,CAAI,UAAU,oCACb,SAACA,EAAA,IAAA,KAAA,CAAG,UAAU,4CACX8Y,UAAYR,EAAAA,EAAAA,UAAAA,YAAAA,EAASS,kBAAkBpB,IAC1C,CAAA,EACF,QACC,IAAE,CAAA,UAAU,gCACV,SAAIG,IAAAA,KAAKC,eAAe,QAAS,CAAEC,UAAW,QAAA,CAAU,EAAEC,OACzD,IAAI1H,KAAKuI,EAAYH,SAAS,CAChC,EACF,CAAA,EACF,EACA3Y,EAAAA,IAAC,OAAI,UAAU,uDACb,eAACgZ,GAAa,CAAA,UAAU,UAAS,CACnC,CAAA,CACF,CAAA,CAAA,CAAA,EAxBKF,EAAY/gB,EAyBnB,EACD,QACA,KAEC,CAAA,KAAK,SACL,UAAU,8IACV,QAAS,IAAMkf,EAAQQ,KAAK,YAAY,EAExC,eAAC,MAAI,CAAA,UAAU,oCACb,SAACnB,EAAA,KAAA,IAAA,CAAE,UAAU,+DAA8D,SAAA,CAAA,wBACpDtW,EAAAA,IAACiZ,GAAe,CAAA,UAAU,gBAAgB,CAAA,CAAA,EACjE,CAAA,CACF,GATI,oBAUN,CACF,CAAA,CAAA,EAKFjZ,EAAA,IAAC,OAAI,UAAU,+CAA8C,wBAAA,sBAAA,0BAAA,YAC3D,SAACA,EAAA,IAAA,MAAA,CACC,UAAU,8IACV,QAAS,IAAMiX,EAAQQ,KAAK,gCAAgC,EAE5D,SAAAnB,EAAA,KAAC,MAAI,CAAA,UAAU,mDACb,SAAA,CAACtW,EAAA,IAAA,IAAA,CAAE,UAAU,8CAA8C,SAAwB,2BAAA,QAClF,IACC,CAAA,UAAU,+DACV,KAAK,iCAAgC,SAGvC,qBAAA,CAAA,EACF,EACF,CACF,CAAA,CAEJ,EAEakZ,GAAY3Y,GAAyB,CAChD,MAAM0W,EAAUC,KAEhB,cACG,MAAI,CAAA,UAAU,aAAY,wBAAA,WAAA,0BAAA,YACzB,SAAA,CAAClX,EAAAA,IAAAwW,GAAA,CACC,MAAM,oBACN,YAAY,iFAAgF,sBAAA,YAAA,0BAAA,WAAA,CAAA,EAE9FF,EAAAA,KAAC,MAAI,CAAA,UAAU,mFACb,SAAA,CAAAA,OAAC,MACC,CAAA,SAAA,CAACtW,EAAA,IAAA,KAAA,CAAG,UAAU,uDAAsD,SAEpE,qBAAA,EACCA,EAAA,IAAA,IAAA,CAAE,UAAU,gCAA+B,SAE5C,mDAAA,CAAA,EACF,EACAsW,EAAAA,KAAC,MAAI,CAAA,UAAU,kCACZ/V,SAAAA,CAAM6W,EAAAA,iBAAiBG,OAAS,GAC9BvX,EAAA,IAAA+V,GAAA,CAAO,KAAK,SAAS,MAAM,QAAQ,KAAK,aAAY,SAErD,WAAA,EAED/V,EAAA,IAAA+V,GAAA,CAAO,KAAK,SAAS,MAAM,MAAM,KAAK,aAAY,sBAAA,SAAA,0BAAA,YAAA,SAEnD,qBAAA,CAAA,EACF,CAAA,EACF,QACCiB,GAAyB,CAAA,GAAIzW,EAAM,sBAAA,2BAAA,0BAAA,YAAA,EAuBpC+V,EAAAA,KAAC,MAAI,CAAA,UAAU,8DACZ/V,SAAAA,CAAAA,EAAM6W,iBAAiBG,OAAS,GAC9BjB,EAAAA,KAAA,MAAA,CAAI,UAAU,2CACb,SAAA,CAAAtW,MAAC,MAAI,CAAA,UAAU,8EACb,SAAAsW,EAAA,KAAC,MACC,CAAA,SAAA,CAACtW,EAAA,IAAA,KAAA,CAAG,UAAU,uDAAsD,SAEpE,4BAAA,EACCA,EAAA,IAAA,IAAA,CAAE,UAAU,gCAA+B,SAE5C,6CAAA,CAAA,CAAA,CACF,CAMF,CAAA,EACAA,EAAAA,IAACmY,GAAoB,CAAA,GAAI5X,EAAM,CAAA,EACjC,EAuCF+V,EAAAA,KAAC,MAAI,CAAA,UAAU,2CACb,SAAA,CAAAtW,MAAC,MAAI,CAAA,UAAU,8EACb,SAAAsW,EAAA,KAAC,MACC,CAAA,SAAA,CAACtW,EAAA,IAAA,KAAA,CAAG,UAAU,uDAAsD,SAEpE,kBAAA,EACCA,EAAA,IAAA,IAAA,CAAE,UAAU,gCAAgC,SAAoB,uBAAA,CAAA,CAAA,CACnE,CACF,CAAA,QACC,MAAI,CAAA,UAAU,OACb,SAAAA,EAAA,IAAC,OACC,UAAU,8IACV,QAAS,IAAMiX,EAAQQ,KAAK,OAAO,EAEnC,SAACnB,OAAA,MAAA,CAAI,UAAU,mDACb,SAAA,CAACtW,EAAA,IAAA,IAAA,CAAE,UAAU,8CAA8C,SAAkB,qBAAA,QAC5E,IACC,CAAA,UAAU,+DACV,KAAK,QAAO,SAGd,yBAAA,CAAA,CACF,CAAA,CACF,CAAA,EACF,CAAA,EACF,CAAA,EACF,CACF,CAAA,CAAA,CAEJ,ECtUMmZ,GAAkB9Y,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAczB8Y,GAAmB/Y,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAW1B+Y,GAAgBhZ,EAAOC;AAAAA;AAAAA,EAIvBgZ,GAAgBjZ,EAAOC;AAAAA;AAAAA,EAIvBiZ,GAAkBlZ,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAWzBkZ,GAAYnZ,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA,EAMnBmZ,GAAkBpZ,EAAOC;AAAAA;AAAAA;AAAAA,EAWlBoZ,GAERnZ,GACH+V,EAAA,KAAC6C,GAAgB,CAAA,GAAI5Y,EAAM,sBAAA,kBAAA,wBAAA,SAAA,0BAAA,YACzB,SAAA,CAAAP,EAAA,IAACqZ,GAAc,CAAA,cAAW,GAAA,sBAAA,gBAAA,0BAAA,YACxB,SAAArZ,EAAA,IAAC2Z,GAA0B,CAAA,sBAAA,6BAAA,0BAAA,WAAA,CAAA,EAC7B,EACCrD,EAAA,KAAA8C,GAAA,CAAgB,sBAAA,mBAAA,0BAAA,YACf,SAAA,CAAA9C,EAAA,KAACgD,GAAa,CAAA,sBAAA,gBAAA,0BAAA,YACZ,SAAA,CAAAtZ,MAACwZ,IAAU,sBAAA,YAAA,0BAAA,YAACjZ,WAAMkW,MAAM,QACvBgD,GAAgB,CAAA,sBAAA,kBAAA,0BAAA,YAAClZ,WAAMoW,YAAY,CAAA,EACtC,EACCpW,EAAMqZ,cAAiB5Z,MAAAuZ,GAAA,CAAiBhZ,WAAMqZ,aAAa,CAAA,EAC9D,CAAA,EACF,ECzEIC,GAAexZ,EAAOoY;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAUtBqB,GAA2BzZ,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,qBAMPC,GAAAA,EAAMwZ,OAAS,SAAW,MAAO;AAAA,EAOrDC,GACXzZ,GACGP,EAAA,IAAC8Z,OAA6BvZ,EAAO,sBAAA,2BAAA,wBAAA,kBAAA,0BAAA,YAACA,WAAMM,QAAS,CAAA,EAEpDoZ,GAAkB5Z,EAAO6Z;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,WAqBR3Z,GAAAA,EAAM4Z,QAAU,QAAU,SAAU;AAAA,gBAC/B5Z,GAAAA,EAAM4Z,QAAU,UAAY,SAAU;AAAA,YAC1C5Z,GAAAA,EAAM4Z,QAAU,wBAA0B,mBAAoB;AAAA;AAAA;AAAA,gBAG7D5Z,EAAM0V,SAAW1V,EAAM8V,SAAW,GAAM,CAAE;AAAA,eAC3C9V,EAAM0V,SAAW1V,EAAM8V,SAAW,UAAY,SAAU;AAAA;AAAA;AAAA;AAAA;AAAA,iBAKpD9V,GAClBA,EAAM0V,SAAW1V,EAAM8V,SAClB,OAEF,iBACR;AAAA,kBACwB9V,GACnBA,EAAM0V,SAAW1V,EAAM8V,SAClB9V,EAAM4Z,QAAU,UAAY,UAE9B5Z,EAAM4Z,QAAU,UAAY,oBACpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYCC,GAAqB/Z,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,WAmBXC,GAAAA,EAAM4Z,QAAU,QAAU,SAAU;AAAA,gBAC/B5Z,GAAAA,EAAM4Z,QAAU,UAAY,SAAU;AAAA,YAC1C5Z,GAAAA,EAAM4Z,QAAU,wBAA0B,mBAAoB;AAAA;AAAA;AAAA,gBAG7D5Z,EAAM0V,SAAW1V,EAAM8V,SAAW,GAAM,CAAE;AAAA,eAC3C9V,EAAM0V,SAAW1V,EAAM8V,SAAW,UAAY,SAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAMnD9V,GACnBA,EAAM0V,SAAW1V,EAAM8V,SAClB9V,EAAM4Z,QAAU,UAAY,UAE9B5Z,EAAM4Z,QAAU,UAAY,oBACpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA2BQE,GAAc9Z,GACzBA,EAAM8V,SACHrW,EAAA,IAAA+V,GAAA,CAAWxV,GAAAA,CAAM,CAAA,EAChBA,EAAMnH,KAAKkhB,MAAM,cAAc,EAChCta,EAAA,IAAA6Z,GAAA,CAAa,KAAMtZ,EAAMnH,KAAM,OAAQmH,EAAMga,OAC5C,eAACxE,GAAO,CAAA,GAAIxV,CAAM,CAAA,CACpB,CAAA,EAECP,EAAAA,IAAA4T,GAAA,CAAK,GAAIrT,EAAMnH,KAAM,MAAO,CAAEohB,eAAgB,OAAQC,QAAS,cAAe,EAC7E,SAACza,EAAAA,IAAA0a,GAAA,CAAU,GAAIna,CAAAA,CAAM,CACvB,CAAA,EAGSma,GAAana,GACvB+V,OAAA8D,GAAA,CACK7Z,GAAAA,EACJ,QAASA,EAAM4Z,QACf,QAAS5Z,EAAM0V,QACf,SAAU1V,EAAM8V,UAAY9V,EAAM0V,QAClC,KAAK,SAAQ,sBAAA,qBAAA,wBAAA,YAAA,0BAAA,YAEZ1V,SAAAA,CAAAA,EAAMoa,SAAWliB,eAAmB8H,EAAMoa,SAAU,CAAE,cAAe,EAAM,CAAA,EAAI,KAC/Epa,EAAMM,SACN,CAACN,EAAM0V,SAAW1V,EAAMqa,KAAOniB,EAAMoiB,aAAata,EAAMqa,KAAM,CAAE,cAAe,EAAM,CAAA,EAAI,KACzFra,EAAM0V,SAAWjW,MAACJ,GAAQ,CAAA,MAAOW,EAAM4Z,QAAU,UAAY,UAAW,KAAM,EAAM,CAAA,CAAA,CACvF,CAAA,EAGWpE,GACXxV,GAOC+V,EAAA,KAAA2D,GAAA,CACC,QACE,CAAC1Z,EAAM0V,SAAW,CAAC1V,EAAM8V,SAAYyE,GAAMva,EAAMwa,SAAWxa,EAAMwa,QAAQD,CAAC,EAAI3a,OAEjF,YAAc2a,UAAM,OAACva,EAAM0V,SAAW,CAAC1V,EAAM8V,YAAY9V,EAAAA,EAAMya,cAANza,YAAAA,EAAAA,KAAAA,EAAoBua,KAC7E,QAASva,EAAM4Z,QAAU5Z,EAAM4Z,QAAUha,OACzC,QAASI,EAAM0V,QAAU1V,EAAM0V,QAAU9V,OACzC,SAAUI,EAAM8V,UAAY9V,EAAM0V,QAClC,MAAO1V,EAAM0a,MAAM,sBAAA,kBAAA,wBAAA,SAAA,0BAAA,YAElB1a,SAAAA,CAAAA,EAAMoa,SAAWliB,eAAmB8H,EAAMoa,SAAU,CAAE,cAAe,EAAM,CAAA,EAAI,KAC/Epa,EAAMM,SACN,CAACN,EAAM0V,SAAW1V,EAAMqa,KAAOniB,EAAMoiB,aAAata,EAAMqa,KAAM,CAAE,cAAe,EAAM,CAAA,EAAI,KACzFra,EAAM0V,SAAWjW,MAACJ,GAAQ,CAAA,MAAOW,EAAM4Z,QAAU,UAAY,UAAW,KAAM,EAAM,CAAA,CAAA,CACvF,CAAA,EAGWe,GAAiB7a,EAAO6Z;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAYxBiB,GAAiB5a,GAC5BA,EAAMnH,KAAKkhB,MAAM,cAAc,GAAK/Z,EAAMnH,OAAS,IACjD4G,EAAA,IAAC6Z,IAAa,KAAMtZ,EAAMnH,KAAM,OAAQmH,EAAMga,OAC3Cha,SAAMM,EAAAA,QAAAA,CACT,EAECb,EAAA,IAAA4T,GAAA,CAAK,GAAIrT,EAAMnH,KAAM,OAAQmH,EAAMga,OACjCha,WAAMM,SACT,ECzNEua,GAAoB/a,EAAOgb;AAAAA;AAAAA;AAAAA,eAGN9a,GAAAA,EAAM+a,YAAc,QAAU,OAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAY3DC,GAAiBlb,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,oBAMEC,GAAAA,EAAM+a,YAAc,SAAW,KAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/DE,GAAwBnb,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAa/Bmb,GAAuBpb,EAAOC;AAAAA;AAAAA,EAI9Bob,GAAmBrb,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAO1Bqb,GAAyBtb,EAAOub;AAAAA;AAAAA;AAAAA;AAAAA,EAMzBC,GAAetb,GACzB+V,EAAA,KAAAmF,GAAA,CAAoB,sBAAA,uBAAA,wBAAA,cAAA,0BAAA,YACnB,SAAA,CAAAzb,MAAC0b,IAAiB,sBAAA,mBAAA,0BAAA,YAACnb,WAAMkW,MAAM,QAC9BkF,GAAuB,CAAA,sBAAA,yBAAA,0BAAA,YAACpb,WAAMoW,YAAY,CAAA,CAC7C,CAAA,EAGImF,GAAgBzb,EAAO6Z;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EA0BhB6B,GACXxb,GACG,CACH,KAAM,CAACyb,EAAQC,CAAS,EAAIxjB,WAAe,EAAK,EAEhDA,OAAAA,EAAAA,UAAgB,IAAM,CACfujB,IAIKE,UAAAA,UAAUC,UAAU5b,EAAM6b,SAAS,EAC7CC,WAAW,IAAMJ,EAAU,EAAK,EAAG,GAAI,EAAA,EACtC,CAACD,CAAM,CAAC,EAGT1F,OAACkF,IAAsB,GAAIjb,EAAM,sBAAA,wBAAA,wBAAA,eAAA,0BAAA,YAC/B,SAAA,CAACP,EAAAA,IAAA8b,GAAA,CAAc,UAAWE,EAAS,SAAW7b,OAAW,QAAS,IAAM8b,EAAU,EAAI,EAAE,sBAAA,gBAAA,0BAAA,YACrFD,SAASA,EAAAhc,EAAAA,IAACsc,IAAc,CAAA,EAAGtc,EAAA,IAACuc,KAAc,CAC7C,CAAA,EACChc,EAAMM,QACT,CAAA,CAAA,CAEJ,EAEM2b,GAAkBjc,GAAkE,CAClFrF,MAAAA,EAAUqF,EAAM7C,MAAM+e,SAAS,EAC/BC,EAAc7kB,GAAAA,EAAM8kB,WAAAA,EAAaC,WACjCR,EAAY,CAChB,CAAE3F,MAAO,QAASE,YAAazb,CAAAA,EAC/B,CAAEub,MAAO,iBAAkBE,YAAa+F,CAAAA,CAAa,EACrDrF,OAAO,CAAC,CAAEV,YAAAA,CAAAA,IAAkB,CAAC,CAACA,CAAW,EAGzC,OAAAL,EAAA,KAACiF,GAAe,CAAA,YAAahb,EAAM+a,YAAY,sBAAA,iBAAA,wBAAA,iBAAA,0BAAA,YAC7C,SAAA,CAACtb,EAAAA,IAAAob,GAAA,CAAkB,IAAI,oBAAoB,YAAa7a,EAAM+a,YAAY,sBAAA,oBAAA,0BAAA,WAAA,CAAA,SACzE,MACC,CAAA,SAAA,CAAAtb,MAAC,MAAG,MAAO,CAAE6c,OAAQ,CAAA,EAAK,SAAqB,wBAAA,SAC9C,IAAC,CAAA,SAAA,CAAA,sHAE2B,IAC1B7c,EAAA,IAAA,IAAA,CAAE,KAAK,gCAAgC,SAAsB,yBAAA,EAAI,wCAAA,EAEpE,EACAA,MAAC+b,IAAa,UAAWK,EAAU5E,IAAW7a,GAAA,GAAGA,EAAE8Z,KAAK;AAAA,EAAK9Z,EAAEga,WAAW,EAAE,EAAEmG,KAAK;AAAA;AAAA,CAAM,EAAE,sBAAA,eAAA,0BAAA,YACxFV,SAAU5E,EAAAA,OACRxX,EAAA,IAAA6b,GAAA,CAAiCvkB,GAAAA,CAAhBA,EAAAA,EAAKmf,KAAgB,CACxC,EACH,CAAA,EACF,CACF,CAAA,CAAA,CAEJ,EAeMsG,GACJxc,GACG,CACH,KAAM,CAACyb,EAAQC,CAAS,EAAIxjB,WAAe,EAAK,EAEhDA,OAAAA,EAAAA,UAAgB,IAAM,CACfujB,IAIKE,UAAAA,UAAUC,UAAU5b,EAAM6b,SAAS,EAC7CC,WAAW,IAAMJ,EAAU,EAAK,EAAG,GAAI,EAAA,EACtC,CAACD,CAAM,CAAC,SAGR,MAAI,CAAA,UAAU,yEAAwE,wBAAA,iBAAA,0BAAA,YACrF,SAAA,CAAChc,EAAAA,IAAA8b,GAAA,CAAc,UAAWE,EAAS,SAAW7b,OAAW,QAAS,IAAM8b,EAAU,EAAI,EAAE,sBAAA,gBAAA,0BAAA,YACrFD,SAASA,EAAAhc,EAAAA,IAACsc,IAAc,CAAA,EAAGtc,EAAA,IAACuc,KAAc,CAC7C,CAAA,EACChc,EAAMM,QACT,CAAA,CAAA,CAEJ,EAEamc,GAAoBzc,GAAkE,CAC3FrF,MAAAA,EAAUqF,EAAM7C,MAAM+e,SAAS,EAC/BC,EAAc7kB,KAAMolB,eACpBb,EAAY,CAChB,CAAE3F,MAAO,QAASE,YAAazb,CAAAA,EAC/B,CAAEub,MAAO,aAAcE,YAAa+F,GAAe,EAAA,CAAI,EACvDrF,OAAO,CAAC,CAAEV,YAAAA,CAAAA,IAAkB,CAAC,CAACA,CAAW,EAE3C,OACGL,EAAAA,KAAA,MAAA,CAAG,wBAAA,mBAAA,0BAAA,YACF,SAAA,CAACtW,EAAA,IAAA,KAAA,CAAG,UAAU,6CAA6C,SAAiB,oBAAA,EAC3EA,EAAA,IAAA,KAAA,CAAG,UAAU,aAAa,SAAoB,uBAAA,EAC/CsW,EAAAA,KAAC,IAAE,CAAA,UAAU,eAAc,SAAA,CAAA,uJAEmC,IAC3DtW,EAAA,IAAA,IAAA,CAAE,KAAK,gCAAgC,SAAsB,yBAAA,EAAI,wCAAA,EAEpE,QAEC,MAAI,CAAA,UAAU,8BACb,SAAAA,MAAC,OAAI,UAAU,aACb,SAACA,MAAA+c,GAAA,CACC,UAAWX,EAAU5E,IAAW7a,GAAA,GAAGA,EAAE8Z,KAAK;AAAA,EAAK9Z,EAAEga,WAAW,EAAE,EAAEmG,KAAK;AAAA;AAAA,CAAM,EAAE,sBAAA,iBAAA,0BAAA,YAE5EV,SAAAA,EACE/E,OAAc1a,GAAA,CAAC,CAACA,EAAEga,WAAW,EAC7Ba,IAAKlgB,GACH0I,EAAAA,IAAA6b,GAAA,CAA6B,GAAIvkB,CAAAA,EAAhBA,EAAKmf,MACxB,CAAA,CACL,EACF,CACF,CAAA,CACF,CAAA,CAAA,CAEJ,EAEqByG,MAAAA,WAAsBzkB,EAAAA,SAGzC,CACA0kB,YAAY5c,EAAO,CACjB,MAAMA,CAAK,EACX,KAAKwW,MAAQ,EACf,CAEA,OAAOqG,yBAAyBhiB,EAAY,CACnC,MAAA,CAAEsC,MAAOtC,CAAAA,CAClB,CAEAiiB,kBAAkB3f,EAAO,CACnB7F,GAAA,EAAEylB,aAAa5f,CAAK,CAC1B,CAEA6f,QAA0B,CACpB,OAAA,KAAKxG,MAAMrZ,MACLsC,EAAAA,IAAAwc,GAAA,CAAe,YAAa,KAAKjc,MAAM+a,YAAa,MAAO,KAAKvE,MAAMrZ,MAAS,sBAAA,iBAAA,wBAAA,gBAAA,0BAAA,WAAA,CAAA,EAGlF,KAAK6C,MAAMM,QACpB,CACF,CAEa2c,MAAAA,WAAwB/kB,EAAAA,SAGnC,CACA0kB,YAAY5c,EAAO,CACjB,MAAMA,CAAK,EACX,KAAKwW,MAAQ,EACf,CAEA,OAAOqG,yBAAyBhiB,EAAY,CACnC,MAAA,CAAEsC,MAAOtC,CAAAA,CAClB,CAEAiiB,kBAAkB3f,EAAO,CACnB7F,GAAA,EAAEylB,aAAa5f,CAAK,CAC1B,CAEA6f,QAA0B,CACpB,OAAA,KAAKxG,MAAMrZ,MACNsC,EAAA,IAACgd,GAAiB,CAAA,MAAO,KAAKjG,MAAMrZ,MAAS,sBAAA,mBAAA,wBAAA,kBAAA,0BAAA,WAAA,CAAA,EAG/C,KAAK6C,MAAMM,QACpB,CACF,CClRA,MAAM4c,GAAkBpd,EAAOC,MAEzBod,GAAcrd,EAAOsd;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,aAMFpd,GAAAA,EAAM8V,SAAW,GAAM,CAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAW1B9V,GAAAA,EAAM8V,SAAW,UAAY,SAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkCpDuH,GAAUrd,GAMrBP,EAAA,IAACyd,IAAe,sBAAA,kBAAA,wBAAA,SAAA,0BAAA,aACd,SAACnH,OAAAoH,GAAA,CAAY,SAAUnd,EAAM8V,UAAY9V,EAAM0V,QAAQ,sBAAA,cAAA,0BAAA,aACrD,SAAA,CAAAjW,EAAA,IAAC,QACC,CAAA,KAAK,WACL,SAAUO,EAAM8V,UAAY9V,EAAM0V,QAClC,QAAS1V,EAAMsd,QACf,QAAgB/C,GAAA,QACRgD,EAAAA,EAAAA,WAAAA,MAAAA,EAAAA,KAAAA,EAAWhD,EAAEiD,cAAcC,QAAO,EACxC,EAEJhe,EAAAA,IAAC,OAAK,CAAA,UAAU,QAAQ,CAAA,CAAA,CAAA,CAC1B,CACF,CAAA,ECtEIie,GAA0B5d,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,iBAMbC,EAAM2d,aAAe3d,EAAM4d,iBAAmB,oBAAsB,GAAI;AAAA,qBACpE5d,EAAM2d,aAAe,QAAU3d,EAAM4d,iBAAmB,SAAU;AAAA;AAAA,EAI1FC,GAA8B/d,EAAOC;AAAAA,oBACXC,GAAAA,EAAM8d,SAAW,OAAS,MAAO;AAAA;AAAA;AAAA;AAAA,2BAI1B9d,GAAAA,EAAM+d,KAAO,cAAgB,SAAU;AAAA;AAAA;AAAA,EAKxEC,GAA8Ble,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,gBAafC,GAAAA,EAAM8d,SAAW,qBAAuB,SAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAOxEG,GAAiCne,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA,aAIrBC,GAAAA,EAAM8d,SAAW,GAAM,CAAE;AAAA,EAQrCI,GAGXle,GAAAP,EAAAA,IAACie,GACC,CAAA,gBAAiB1d,EAAM4d,gBACvB,aAAc5d,EAAM2d,aAAa,sBAAA,0BAAA,wBAAA,iBAAA,0BAAA,YAEhC3d,WAAMM,QACT,CAAA,EAYW6d,GAAqBjmB,EAAAA,WAChC,CAAC8H,EAAyDuT,IACxDwC,EAAA,KAAC8H,IACC,QAAS7d,EAAMwa,QACf,SAAUxa,EAAM8d,SAChB,KAAM9d,EAAM+d,KACZ,MAAO/d,EAAM0a,MACb,IAAAnH,EAEA,SAAA,CAAC9T,EAAAA,IAAAue,GAAA,CAA4B,UAAU,iBAAiB,SAAUhe,EAAM8d,SAAU,cAAW,GAC1F9d,SAAAA,EAAMqa,IACT,CAAA,QACC4D,GAA+B,CAAA,SAAUje,EAAM8d,SAC7C9d,WAAMM,SACT,CAAA,CAAA,CACF,CAEJ,ECtFM8d,GAAYA,IAChB3e,EAAA,IAAC,MAAI,CAAA,UAAU,uEAAsE,wBAAA,YAAA,0BAAA,eAAC,SAAI,MAAA,CAAA,EAG/E4e,GAAmBre,GAC9B+V,EAAA,KAAC,OACC,MAAO,CACLuI,WAAY,oBACZ5e,WAAY,UACZJ,MAAO,UACPif,QAAS,OACT5e,MAAO,OACP6e,SAAU,OACZ,EAAE,wBAAA,kBAAA,0BAAA,eAAA,SAAA,CAAA,yCAEqC,UACtC,IAAE,CAAA,KAAMxe,EAAMye,SAAU,OAAO,SAAQ,SAExC,aAAA,EAAK,IAAG,mBAAA,CAEV,CAAA,EAGWC,GACX1e,GASA+V,EAAA,KAAC,OAAI,UAAWf,EAAKhV,EAAM2e,UAAY,OAAQ,qBAAqB,EAAE,wBAAA,iBAAA,0BAAA,eACpE,SAAA,CAAC5I,EAAAA,KAAA,MAAA,CAAI,UAAU,6BACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,cACb,SAAA,CAACA,EAAAA,KAAA,KAAA,CAAG,UAAU,yEACX/V,SAAAA,CAAMkW,EAAAA,MACNlW,EAAM4e,MAAQnf,MAAC2e,GAAY,CAAA,CAAA,CAAA,EAC9B,EACC3e,EAAA,IAAA,IAAA,CAAE,UAAU,2BAA4BO,WAAMoW,YAAY,EAC1DpW,EAAM6e,QAAUpf,EAAA,IAAC,OAAI,UAAU,OAAQO,WAAM6e,OAAO,CAAA,EACvD,EACC7e,EAAM8e,cAAiBrf,MAAA,MAAA,CAAKO,WAAM8e,aAAa,CAAA,EAClD,EACCrf,EAAA,IAAA,MAAA,CAAI,UAAU,cAAeO,WAAMM,SAAS,CAAA,CAC/C,CAAA,EAGWye,GAAiE/e,GAQxE,CACJ,KAAM,CAAC0V,EAASsJ,CAAU,EAAI9mB,WAAe,EAAK,EAC5C,CAAC+mB,EAASC,CAAU,EAAIhnB,WAAe,EAAK,EAC5C,CAACiF,EAAOgiB,CAAQ,EAAIjnB,EAAuB,SAAA,EAE3CknB,EAAW,MAAOpc,GAA0C,CAChE,MAAMvB,EAAc,CAAE,GAAGzB,EAAMyB,YAAa4d,SAAUrc,CAAAA,EAEtDgc,EAAW,EAAI,EACfE,EAAW,EAAK,EAChBC,EAASvf,MAAS,EAEd,GAAA,CACII,MAAAA,EAAMsf,oBAAoB7d,CAAW,EAC3Cyd,EAAW,EAAI,QACR3E,EAAG,CACJ1f,MAAAA,EAAMH,GAAa6kB,eAAehF,CAAC,EACzC4E,EAAStkB,EAAIF,OAAO,CAAA,QACZ,CACRqkB,EAAW,EAAK,CAClB,CAAA,EAGF,OAEIjJ,EAAA,KAAAC,WAAA,CAAA,SAAA,CAACvW,EAAA,IAAA,KAAA,CAAG,UAAU,yCAAyC,SAAQ,WAAA,EAC/DA,EAAAA,IAAC,MAAI,CAAA,UAAU,sBACZO,SAAAA,EAAMM,SAASN,EAAMyB,YAAY4d,SAAe3J,EAAS0J,CAAQ,CACpE,CAAA,GACEH,GAAW9hB,IACX4Y,EAAA,KAAC,MACEkJ,CAAAA,SAAAA,CACCA,GAAAlJ,EAAA,KAAC,MAAI,CAAA,UAAU,iDACb,SAAA,CAACtW,EAAAA,IAAA+f,GAAA,CAAU,UAAU,SAAS,CAAA,EAC9B/f,EAAAA,IAAC,OAAI,SAAM,QAAA,CAAA,CAAA,EACb,EAEDtC,GACC4Y,EAAA,KAAC,MAAI,CAAA,UAAU,+CACb,SAAA,CAACtW,EAAAA,IAAAggB,GAAA,CAAsB,UAAU,SAAS,CAAA,EAC1ChgB,EAAAA,IAAC,OAAKtC,SAAMA,CAAA,CAAA,CAAA,EACd,CAAA,EAEJ,CAEJ,CAAA,CAAA,CAEJ,EAEauiB,GAAQ1f,GAClB+V,OAAAoI,GAAA,CAAmB,KAAQ1e,EAAAA,IAAAuW,EAAA,SAAA,EAAA,EAAK,KAAMhW,EAAM+d,KAAK,sBAAA,qBAAA,wBAAA,OAAA,0BAAA,eAChD,SAAA,CAAAte,EAAA,IAAC,KAAG,CAAA,UAAU,8CAA+CO,SAAAA,EAAMkW,MAAM,EACxEzW,EAAA,IAAA,IAAA,CAAE,UAAU,gCAAiCO,WAAMM,SAAS,CAAA,EAC/D,ECxGIqf,GAAsBA,IAGtB5J,EAAA,KAAAC,WAAA,CAAA,SAAA,CAACD,EAAAA,KAAA,IAAA,CAAE,UAAU,iBAAgB,SAAA,CAAA,+FACkE,UAC5F,IAAE,CAAA,KAAK,kCAAkC,OAAO,SAAQ,SAEzD,aAAA,EAAK,IAAG,+CAAA,EAEV,SACCmI,GAAe,CAAA,aAAY,GAAA,sBAAA,iBAAA,0BAAA,cAC1B,SAAA,CAAAnI,OAAC2J,IAAK,MAAM,0CAAyC,sBAAA,OAAA,0BAAA,cAAA,SAAA,CAAA,mGAE7C,UACL,IAAE,CAAA,KAAK,kCAAkC,OAAO,SAAQ,SAEzD,oCAAA,EAAK,IAAG,gDAAA,EAEV,EACAjgB,EAAAA,IAACigB,IAAK,MAAM,yBAAwB,sBAAA,OAAA,0BAAA,cAAA,SAKpC,sRAAA,CAAA,EACAjgB,EAAAA,IAACigB,GAAK,CAAA,MAAM,qCAAqC,KAAI,GAAA,sBAAA,OAAA,0BAAA,cAAA,SAGrD,qKAAA,CAAA,CAAA,EACF,CACF,CAAA,CAAA,EAIEE,GAAwB5f,GAOvBA,EAAAA,KAAAA,WAAAA,CAAAA,SAAAA,CAAAA,EAAMyB,YAAYoe,SAAW1pB,GAA0B2nB,UACtDre,MAAC0Z,IACC,MAAO,CAAEmD,OAAQ,kBAAA,EACjB,MAAM,qCACN,YAAY,2EACZ,mBACGxC,GACC,CAAA,OAAO,SACP,KAAK,sFACL,SAAWra,EAAAA,IAAAqgB,GAAA,EAAgB,EAC3B,QAAO,GAAA,yBAGT,CAAA,EAGL,SACA,MACC,CAAA,SAAA,CAAC/J,EAAAA,KAAA,MAAA,CAAI,UAAU,sBACb,SAAA,CAAAtW,EAAA,IAAC+b,GAAa,CAAA,UAAWxb,EAAM+f,OAAQ,MAAO,CAAEC,SAAU,MAAA,EAAS,sBAAA,eAAA,0BAAA,cACjE,eAAC1E,GAAY,CAAA,MAAM,UAAU,YAAatb,EAAM+f,OAAO,sBAAA,cAAA,0BAAA,aAAA,CAAA,EACzD,QACCvE,GAAa,CAAA,UAAWxb,EAAMyB,YAAY/J,GAAI,MAAO,CAAEsoB,SAAU,MAAA,EAAS,sBAAA,eAAA,0BAAA,cACzE,eAAC1E,GAAY,CAAA,MAAM,iBAAiB,YAAatb,EAAMyB,YAAY/J,GAAG,sBAAA,cAAA,0BAAA,aAAA,CAAA,EACxE,CAAA,EACF,QACCqnB,GACC,CAAA,YAAa/e,EAAMyB,YACnB,oBAAqBzB,EAAMsf,oBAAoB,sBAAA,yBAAA,0BAAA,cAE9C,SAAA,CAACtc,EAAsC0S,EAASuK,IAE7ClK,EAAA,KAAAC,WAAA,CAAA,SAAA,CAAAvW,EAAA,IAACif,GACC,CAAA,MAAM,6BACN,YAAY,4JACZ,aACEjf,EAAAA,IAAC4d,GACC,CAAA,QAASra,EAASkd,yBAClB,QAAAxK,EACA,SAAU,IACRuK,EAAiB,CACf,GAAGjd,EACHkd,yBAA0B,CAACld,EAASkd,wBAAAA,CACrC,EACF,CAEJ,CAAA,QAEFxB,GACC,CAAA,MAAM,6BACN,YAAY,wGACZ,KAAI,GACJ,aACEjf,EAAAA,IAAC4d,IACC,QAASra,EAASmd,mCAClB,QAAAzK,EACA,SAAU,IACRuK,EAAiB,CACf,GAAGjd,EACHmd,mCACE,CAACnd,EAASmd,kCAAAA,CACb,EACF,CAEJ,CAAA,QAEFzB,GACC,CAAA,MAAM,qBACN,YAAY,qHACZ,KAAI,GACJ,aACEjf,EAAAA,IAAC4d,IACC,QAASra,EAASod,sBAClB,QAAA1K,EACA,SAAU,IACRuK,EAAiB,CACf,GAAGjd,EACHod,sBAAuB,CAACpd,EAASod,qBAAAA,CAClC,EACF,CAEJ,CAAA,QAEF1B,GACC,CAAA,MAAM,6BACN,YAAY,wIACZ,KAAI,GACJ,aACEjf,EAAAA,IAAC4d,IACC,QAASra,EAASqd,mCAClB,QAAA3K,EACA,SAAU,IACRuK,EAAiB,CACf,GAAGjd,EACHqd,mCACE,CAACrd,EAASqd,kCAAAA,CACb,CACF,CAAA,EAGL,OACE,CAACrd,EAASqd,oCACV,IAAIrQ,KAAKhN,EAASsd,oCAAoC,EAAEC,QAAAA,EACtD,EAAI3gB,aACHye,GAAgB,CAAA,SAAS,yHAE7B,CAAA,CAAA,CAEL,CAEJ,CAAA,CAAA,EACF,CACF,CAAA,CAAA,EAISmC,GAAgBxgB,GAAAA,SAK3B,SAACA,EAAAA,EAAMyB,cAANzB,MAAAA,EAAmB6f,WAAU7f,EAAAA,EAAMyB,cAANzB,YAAAA,EAAmB6f,UAAW1pB,GAA0BsqB,cACnFd,GAAsB,EAAA,EAEtBlgB,EAAA,IAAAmgB,GAAA,CACC,OAAQ5f,EAAM+f,OACd,YAAa/f,EAAMyB,YACnB,oBAAqBzB,EAAMsf,mBAE9B,CAAA,GCpLUoB,GAAe1gB,GAGtB,CACJ,KAAM,CAAC2gB,EAAiBC,CAAkB,EAAI1oB,WAAe,EAAK,EAC5D,CAAC2oB,EAAcC,CAAe,EAAI5oB,EAAAA,SAAe8H,EAAMV,KAAK,EAElE,OAEIG,EAAA,IAAAuW,WAAA,CAAA,SAAAD,EAAAA,KAAC,MAAI,CAAA,UAAU,iFACb,SAAA,CAACtW,EAAAA,IAAA,MAAA,CACC,UAAU,yBACV,MAAO,CAAEshB,gBAAiBF,CAC1B,EAAA,QAAS,IAAMD,EAAmB,EAAI,CAAE,CAAA,EAEzCnhB,EAAA,IAAA,MAAA,CAAI,UAAU,OAAO,QAAS,IAAMmhB,EAAmB,EAAI,EAC1D,SAACnhB,EAAA,IAAA,MAAA,CAAI,UAAU,mBAAoBohB,UAAa,CAAA,EAClD,EACCF,GACC5K,EAAA,KAAC,MAAI,CAAA,UAAU,8BACb,SAAA,CAAAtW,EAAAA,IAAC,MACC,CAAA,UAAU,sCACV,QAAS,IAAM,CACbO,EAAMigB,iBAAiBY,CAAY,EACnCD,EAAmB,EAAK,CAAA,EACxB,EAEJnhB,EAAAA,IAACuhB,GACC,CAAA,MAAOH,EACP,iBAAmBvhB,GAA2BwhB,EAAgBxhB,EAAM2hB,GAAG,CAAE,CAAA,CAAA,EAE7E,CAAA,CAEJ,CAAA,CACF,CAAA,CAEJ,EChCMC,GAAgBphB,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAQvBohB,GAAcrhB,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAuBdqhB,GAAgBphB,GAC1B+V,EAAA,KAAAmL,GAAA,CAAa,sBAAA,gBAAA,wBAAA,eAAA,0BAAA,mBACZ,SAAA,CAACzhB,EAAAA,IAAA,IAAA,CACC,WAAQ,GACR,WAAS,YACT,aAAW,QACX,iBAAe,WACf,MAAO,CAAE4hB,KAAM,GAAI,EAEnB,eAACF,GAAY,CAAA,sBAAA,cAAA,0BAAA,mBAACnhB,SAAMW,EAAAA,IAAAA,CAAK,CAC3B,CAAA,EACAlB,MAAC6hB,IACC,GAAG,YACH,OAAO,QACP,UAAW,IACX,UAAW,IAAMC,UAAU5F,UAAUC,UAAU5b,EAAMW,IAAI,EAAE,sBAAA,eAAA,0BAAA,mBAAA,SAG7D,UAAA,EACClB,EAAA,IAAA,IAAA,CAAE,WAAQ,GAAC,WAAS,cAAc,aAAW,QAAQ,iBAAe,WACnE,SAACA,EAAA,IAAA+V,GAAA,CAAO,KAAK,SAAS,MAAM,MAAM,QAAS,IAAM+L,UAAU5F,UAAUC,UAAU5b,EAAMW,IAAI,EAAE,sBAAA,SAAA,0BAAA,mBAAA,yBAE3F,CAAA,EACF,EACAlB,MAAC6hB,IACC,GAAG,cACH,OAAO,QACP,UAAW,IACX,UAAW,IAAMC,UAAU5F,UAAUC,UAAU5b,EAAMW,IAAI,EAAE,sBAAA,eAAA,0BAAA,mBAAA,SAG7D,UAAA,CAAA,CACF,CAAA,EAGW6gB,GAAqBxhB,GAG5B,OACEyhB,MAAAA,IAAgBzhB,EAAAA,EAAMyB,cAANzB,YAAAA,EAAmBqf,UACtCqC,aAGD,OAAAjiB,EAAA,IAAAuW,WAAA,CACGhW,SAAMyB,EAAAA,aAEHsU,EAAA,KAAAC,WAAA,CAAA,SAAA,CAACvW,EAAAA,IAAA2hB,GAAA,CAAa,KAAMK,CAAa,CAAA,EAChChiB,EAAA,IAAAsf,GAAA,CACC,YAAa/e,EAAMyB,YACnB,oBAAqBzB,EAAMsf,oBAE1B,SAACtc,CAAAA,EAA2Cb,EAAG8d,wBAC7CvB,GACC,CAAA,MAAM,sBACN,YAAY;AAAA,mDAEZ,aACGjf,EAAAA,IAAAihB,GAAA,CACC,QACG1gB,EAAAA,EAAMyB,cAANzB,YAAAA,EAAmBqf,UAA6CsC,YACjE,UAEF,iBAAmBriB,GACjB2gB,EAAiB,CAAE,GAAGjd,EAAU2e,WAAYriB,CAAAA,CAAO,CAErD,CAAA,CAGP,CAAA,GACH,EACCG,EAAA,IAAA,KAAA,CAAG,UAAU,yCAAyC,SAAU,aAAA,EACjEsW,EAAAA,KAAC,KAAG,CAAA,UAAU,gCACZ,SAAA,CAAAtW,EAAAA,IAAC,MAAG,SAAqC,uCAAA,CAAA,EACzCA,EAAAA,IAAC,MAAG,SAAkD,oDAAA,CAAA,EACtDA,EAAAA,IAAC,MAAG,SAAkD,oDAAA,CAAA,CAAA,EACxD,CAAA,CACF,CAAA,CAEJ,CAAA,CAEJ,EClHamiB,GAAe9hB,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA,EAMtB8hB,GAAqB/hB,EAAOgiB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,YAQjB9hB,GAAAA,EAAM7C,MAAQ,oBAAsB,mBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAM7D6C,GAAUA,EAAM+hB,UAAY,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAexCC,GAAY9pB,EAAMob,WAC7B,CACEtT,EAIAuT,IAEA9T,EAAAA,IAAAuW,EAAA,SAAA,CACE,SAACD,EAAAA,KAAA,MAAA,CAAI,MAAO,CAAEkM,SAAU,UAAW,EAChCjiB,SAAAA,CAAM+hB,EAAAA,UACJtiB,EAAAA,IAAA,OAAA,CAAK,MAAO,CAAEwiB,SAAU,WAAYC,KAAM,OAAQC,IAAK,OAAQ7iB,MAAO,SAAA,EAAY,SAEnF,IAAA,EAEDG,EAAAA,IAAAoiB,GAAA,CAAuB7hB,GAAAA,EAAO,IAAAuT,CAAS,CAAA,EACvCvT,EAAM7C,OAAS6C,EAAM7C,QAAU,IAASsC,MAAAmiB,GAAA,CAAc5hB,WAAM7C,KAAM,CAAA,CAAA,CACrE,CAAA,CACF,CAAA,CAEJ,EAEiC2C,EAAOsiB,EAAa;AAAA;AAAA;AAAA;AAAA;AAAA,YAQ7BpiB,GAAAA,EAAM7C,MAAQ,oBAAsB,mBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4CnD2C,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EA4F7B,MAAMsiB,GAAyBviB,EAAOwiB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,YAKrBtiB,GAAAA,EAAM7C,MAAQ,oBAAsB,mBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAenEolB,MAITxM,EAAA,KAAAC,EAAA,SAAA,CAAA,SAAA,CAAAvW,MAAC4iB,IAAuB,GAAIriB,EAAM,sBAAA,yBAAA,0BAAA,WAAA,EACjCA,EAAM7C,OAAUsC,MAAAmiB,GAAA,CAAc5hB,WAAM7C,MAAM,CAAA,EAC7C,EC/NWqlB,GAAexiB,GAGtB,CACJ,KAAM,CAAC0V,EAASsJ,CAAU,EAAI9mB,WAAe,EAAK,EAC5C,CAAC2C,EAAK4nB,CAAM,EAAIvqB,WAAe,EAAE,EAEjCwqB,EAAaA,IAAM,CACvBD,EAAO,EAAE,EACTzD,EAAW,EAAI,EACEzc,GAAA,EACdlC,KAAcxE,GAAA,CACb,MAAM8mB,EAAe3rB,OAAO4rB,KAAK/mB,EAAIgnB,WAAW,EAC1CC,EAAYH,EAAa3L,OAEzB+L,EAAc,IAAIC,YAAYF,CAAS,EACvCG,EAAW,IAAIC,WAAWH,CAAW,EAC3C,QAAStkB,EAAI,EAAGA,EAAIqkB,EAAWrkB,IAC7BwkB,EAASxkB,CAAC,EAAIkkB,EAAaQ,WAAW1kB,CAAC,EAGzC,MAAM2kB,EAAO,IAAIC,KAAK,CAACN,CAAW,EAAG,CAAE3P,KAAM,iBAAA,CAAmB,EAChEpc,OAAOssB,KAAKC,IAAIC,gBAAgBJ,CAAI,EAAG,OAAO,CAAA,CAC/C,EACAK,MAAM,IAAM,CACXhB,EACE,oGACF,CACD,CAAA,EACAiB,QAAQ,IAAM1E,EAAW,EAAK,CAAC,CAAA,EAIlC,OAAAvf,EAAA,IAAAuW,WAAA,CACGhW,SAAMyB,EAAAA,aAEHsU,EAAA,KAAAC,WAAA,CAAA,SAAA,CAACvW,EAAAA,IAAA+V,GAAA,CAAO,MAAM,MAAM,KAAK,SAAS,QAAAE,EAAkB,QAASgN,EAAW,SAExE,mBAAA,CAAA,EACC7nB,GAAQ4E,EAAAA,IAAAmiB,GAAA,CAAc/mB,SAAIA,CAAA,CAAA,EAC1B4E,EAAA,IAAAsf,GAAA,CACC,YAAa/e,EAAMyB,YACnB,oBAAqBzB,EAAMsf,oBAE1B,SAACtc,CAAAA,EAAqCb,EAAG8d,wBACvCvB,GACC,CAAA,MAAM,sBACN,YAAY;AAAA,mDAEZ,aACGjf,EAAAA,IAAAihB,GAAA,CACC,QACG1gB,EAAAA,EAAMyB,cAANzB,YAAAA,EAAmBqf,UAAuCsC,YAC3D,UAEF,iBAAmBriB,GACjB2gB,EAAiB,CAAE,GAAGjd,EAAU2e,WAAYriB,CAAAA,CAAO,CAErD,CAAA,CAGP,CAAA,GACH,EACCG,EAAA,IAAA,KAAA,CAAG,UAAU,yCAAyC,SAAU,aAAA,EACjEsW,EAAAA,KAAC,KAAG,CAAA,UAAU,gCACZ,SAAA,CAAAtW,EAAAA,IAAC,MAAG,SAAoC,sCAAA,CAAA,EACxCA,EAAAA,IAAC,MAAG,SAAqD,uDAAA,CAAA,EACzDA,EAAAA,IAAC,MAAG,SAA6C,+CAAA,CAAA,CAAA,EACnD,CAAA,CACF,CAAA,CAEJ,CAAA,CAEJ,EC7EakkB,GACX3jB,UAOG4jB,GAAO,CAAA,KAAM,CAAC,CAAC5jB,EAAM6jB,QAAS,QAAS7jB,EAAM8jB,QAAS,UAAU,gBAAe,sBAAA,SAAA,wBAAA,WAAA,0BAAA,eAC9E,SAAA,CAACrkB,EAAAA,IAAAskB,GAAA,CACC,WAAU,GACV,UAAU,4PAA2P,sBAAA,iBAAA,0BAAA,cAAA,CAAA,EAGvQtkB,EAAA,IAAC,MAAI,CAAA,UAAU,gCACb,SAAAA,EAAAA,IAAC,OAAI,UAAU,mCACb,SAACA,EAAA,IAAA,MAAA,CAAI,UAAU,oEACb,eAACukB,GACC,CAAA,WAAU,GACV,UAAU,kJAAiJ,sBAAA,cAAA,0BAAA,eAE3J,SAAAjO,OAAC,MAAI,CAAA,UAAU,iEACb,SAAA,CAAAtW,EAAAA,IAAC,OAAI,UAAU,eACb,SAACsW,EAAA,KAAA,MAAA,CAAI,UAAU,mCACb,SAAA,CAACtW,EAAAA,IAAAwkB,GAAA,CAAY,UAAU,uDAAsD,sBAAA,cAAA,0BAAA,eAC1EjkB,WAAMkW,KACT,CAAA,EACCzW,EAAA,IAAA,MAAA,CAAI,UAAU,6BACb,SAACsW,EAAAA,KAAA,SAAA,CACC,KAAK,SACL,QAAS/V,EAAM8jB,QACf,UAAU,kJAEV,SAAA,CAACrkB,EAAAA,IAAA,OAAA,CAAK,UAAU,qBAAqB,CAAA,EACpCA,EAAA,IAAA,OAAA,CAAK,UAAU,UAAU,SAAW,cAAA,EACrCA,EAAAA,IAACykB,IAAU,cAAY,OAAO,UAAU,UAAS,sBAAA,YAAA,0BAAA,cAAA,CAAA,CAAA,CAAA,CACnD,CACF,CAAA,CAAA,CAAA,CACF,CACF,CAAA,EACCzkB,EAAA,IAAA,MAAA,CAAI,UAAU,oCAAqCO,WAAMM,SAAS,CACrE,CAAA,CAAA,CACF,CAAA,EACF,CAAA,CACF,CACF,CAAA,CACF,CAAA,CAAA,EC1CS6jB,GAAgCnkB,GAGvC,CACA,GAAA,CAACA,EAAMyB,YAAa,CACtB,MAAM2iB,EAAa,GAAG7pB,GAAO,EAAE8pB,eAAeC,SAAS,8BACvD,OAEIvO,EAAA,KAAAC,WAAA,CAAA,SAAA,CAACD,EAAAA,KAAA,IAAA,CAAE,UAAU,iBAAgB,SAAA,CAAA,kGAEf,UACX,IAAE,CAAA,KAAMqO,EAAY,OAAO,SAAQ,SAEpC,aAAA,EAAK,IAAG,+CAAA,EAEV,EACArO,EAAAA,KAACmI,GAAe,CAAA,aAAY,GAC1B,SAAA,CAACnI,EAAAA,KAAA2J,GAAA,CAAK,MAAM,0CAAyC,SAAA,CAAA,sGAErC,UACb,IAAE,CAAA,KAAM0E,EAAY,OAAO,SAAQ,SAEpC,+BAAA,EAAK,IAAG,gBAAA,EAEV,EACC3kB,EAAA,IAAAigB,GAAA,CAAK,MAAM,yBAAwB,SAKpC,uQAAA,QACCA,GAAK,CAAA,MAAM,qCAAqC,KAAI,GAAA,SAGrD,6FAAA,CAAA,EACF,CACF,CAAA,CAAA,CAEJ,CAEA,aACGX,GACC,CAAA,YAAa/e,EAAMyB,YACnB,oBAAqBzB,EAAMsf,oBAAoB,sBAAA,yBAAA,wBAAA,+BAAA,0BAAA,8BAE9C,UAACtc,EAA8C0S,EAASuK,IAErDlK,OAAAA,OAAAA,EAAAA,KAAAC,EAAA,SAAA,CAAA,SAAA,CAAAvW,EAAA,IAACif,GACC,CAAA,MAAM,sBACN,YAAY,mHACZ,aACEjf,EAAAA,IAAC4d,GACC,CAAA,QAASra,EAASuhB,sBAClB,QAAA7O,EACA,SAAU,IACRuK,EAAiB,CACf,GAAGjd,EACHuhB,sBAAuB,CAACvhB,EAASuhB,qBAAAA,CAClC,EACF,CAEJ,CAAA,EAEFvhB,EAASuhB,uBAENxO,EAAAA,KAAAC,EAAA,SAAA,CAAA,SAAA,CAAAvW,MAACif,IACC,MAAM,0BACN,YAAY,yFACZ,SAAQ,GACR,aACGjf,EAAAA,IAAA4d,GAAA,CACC,QAASra,EAASwhB,4BAClB,QAAA9O,EACA,SAAU,IACRuK,EAAiB,CACf,GAAGjd,EACHwhB,4BAA6B,CAACxhB,EAASwhB,2BAAAA,CACxC,EACF,CAEJ,CAAA,SAEF9F,GACC,CAAA,MAAM,qBACN,YAAY,kIACZ,SAAQ,GAER,SAAA,CAAAjf,EAAA,IAAC8iB,GACC,CAAA,KAAM,EACN,GAAG,+BACH,MAAO,CAAEkC,OAAQ,MAAA,EACjB,cAAczhB,EAAAA,EAAS0hB,kCAAT1hB,YAAAA,EAA0CuZ,KAAK;AAAA,GAC7D,SAAU7G,EAAQ,EAEpBjW,MAACga,IAAgB,MAAO,CAAEkL,WAAY,KAAA,EACpC,SAACllB,EAAA,IAAA+V,GAAA,CACC,QAAO,GACP,QAAAE,EACA,QAAS,IAAM,CACPkP,MAAAA,EAAOC,SAASC,cACpB,+BACF,EACA,GAAIF,EAAM,CACR,MAAMG,EAAaH,EAAKxpB,MACrB4pB,MAAM;AAAA,CAAI,EACV/N,IAAKgO,GAAMA,EAAEC,KAAAA,CAAM,EACnBpO,OAAcmO,GAAAA,EAAEjO,OAAS,CAAC,EACZiJ,EAAA,CACf,GAAGjd,EACH0hB,gCAAiCK,EAAW/N,OAAS,EAAI+N,EAAa,IAAA,CACvE,CACH,CAAA,EACA,0BAGJ,CAAA,EACF,CAAA,EACF,CAAA,EACF,CAAA,CAEJ,CAAA,EAEJ,CAAA,CAEJ,EC9HaI,GAAuBnlB,GAG9B,CACJ,KAAM,CAACyB,EAAa2jB,CAAc,EAAIltB,EAAMmtB,SAASrlB,EAAMyB,WAAW,EAChE,CAACiU,EAASsJ,CAAU,EAAI9mB,EAAMmtB,SAAS,EAAK,EAE5CC,EAAU,SAAY,CAC1B,GAAI7jB,EACF,OAGFud,EAAW,EAAI,EACTuG,MAAAA,EAAiB,MAAMljB,KAC7B+iB,EAAeG,CAAc,EAC7BvG,EAAW,EAAK,CAAA,EAGZjf,EAAM,oCACNylB,EAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAQAxlB,EAAM+f,MAAM;AAAA,yBACLte,GAAAA,YAAAA,EAAa/J,KAAM,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAQ3C,OAEKqe,EAAA,KAAAC,WAAA,CAAA,SAAA,CAACvU,CAAAA,UACC,MACC,CAAA,SAAA,CAAChC,EAAA,IAAA,IAAA,CAAE,UAAU,iBAAgB,SAI7B,yLAAA,EACAA,EAAAA,IAAC+V,IAAO,QAAAE,EAAkB,KAAK,SAAS,MAAM,MAAM,QAAS4P,EAAQ,SAErE,mBAAA,CAAA,EACA7lB,EAAAA,IAAC,MAAI,CAAA,UAAU,gDACb,SAAAA,EAAA,IAAC,OAAI,UAAU,SAAS,IAAI,wBAAA,CAAwB,CACtD,CAAA,CAAA,EACF,EAEDgC,GAEGsU,EAAA,KAAAC,WAAA,CAAA,SAAA,CAACvW,EAAA,IAAA,IAAA,CAAE,UAAU,iBAAgB,SAG7B,oIAAA,EACCA,EAAAA,IAAA+b,GAAA,CAAa,UAAWzb,EAAK,MAAO,CAAEigB,SAAU,MAAA,EAC/C,SAACvgB,MAAA6b,GAAA,CAAY,MAAM,OAAO,YAAavb,CAAI,CAAA,EAC7C,EACCN,EAAA,IAAA,IAAA,CAAE,UAAU,iBAAiB,SAAwB,2BAAA,EACrDA,EAAAA,IAAA+b,GAAA,CAAa,UAAWgK,EAAQ,MAAO,CAAExF,SAAU,MAAA,EAClD,SAACvgB,MAAA6b,GAAA,CAAY,MAAM,aAAa,YAAakK,CAAO,CAAA,EACtD,EACC/lB,EAAA,IAAA,IAAA,CAAE,UAAU,iBAAgB,SAE7B,4DAAA,CAAA,EACF,CAEJ,CAAA,CAAA,CAEJ,EC/DagmB,GAAoBzlB,GAI3B,CACJ,KAAM,CAAC0lB,EAAiBC,CAAkB,EAAIztB,EAAMmtB,SAAS,EAAE,EACzD,CAACO,EAAUC,CAAW,EAAI3tB,EAAMmtB,SAAS,EAAE,EAE3CS,EAAoB5nB,GAAgB,CACxC2nB,EAAY3nB,CAAG,EAEX,GAAA,CACF,MAAM6nB,EAAY,IAAIxC,IAAIrlB,EAAIgnB,KAAM,CAAA,EAEpC,GAAIa,EAAUC,WAAa,SAAWD,EAAUC,WAAa,SAC3D,MAAM,IAAIC,MAGZ,GAAI,CAAC,6BAA6BC,KAAKH,EAAUI,SAASjB,KAAAA,CAAM,EAC9D,MAAM,IAAIe,MAGZF,EAAUK,KAAO,GACjBL,EAAUM,SAAW,GACrBN,EAAUO,SAAW,GACrBP,EAAUQ,OAAS,GACnBR,EAAUS,SAAW,GAErB,MAAMpC,EAAa,IAAIb,IAAIhpB,GAAS8pB,EAAAA,eAAeC,UAAY,wBAAwB,EAC5EiC,EAAAA,OAAS,IAAIE,gBAAgB,CAAEC,UAAWX,EAAU7J,SAAS,CAAA,CAAG,EAAEA,SAAS,EAEnEkI,EAAAA,EAAWlI,UAAU,OAC9B,CACVyJ,EAAmB,EAAE,CACvB,CAAA,EAQF,OALAztB,EAAMyuB,UAAU,IAAM,CACpB,MAAMzrB,EAAS,IAAIurB,gBAAgBzvB,OAAO4B,SAAS2tB,MAAM,EACzDT,EAAiB5qB,EAAO0rB,IAAI,WAAW,GAAK,EAAE,CAC7C,EAAA,CAAC5vB,OAAO4B,SAAS2tB,MAAM,CAAC,EAEvB,CAACvmB,EAAMyB,aAAezB,EAAMyB,YAAYoe,SAAW1pB,GAA0BsqB,QAG3E1K,EAAA,KAAAC,WAAA,CAAA,SAAA,CAACvW,EAAA,IAAA,IAAA,CAAE,UAAU,iBAAgB,SAG7B,wKAAA,EACAsW,EAAAA,KAACmI,GAAe,CAAA,aAAY,GAC1B,SAAA,CAACnI,EAAAA,KAAA2J,GAAA,CAAK,MAAM,oDAAmD,SAAA,CAAA,2KAG7D3J,EAAAA,KAAC,MAAI,CAAA,UAAU,kBACb,SAAA,CAAAtW,MAAC,OAAI,UAAU,SACb,SAACA,EAAA,IAAAuiB,GAAA,CACC,YAAY,6BACZ,MAAO4D,EACP,YAAiBE,EAAiBvL,EAAEiD,cAAcpiB,KAAK,EACvD,MAAO,CAAE4kB,SAAU,QAAS,CAEhC,CAAA,EACAvgB,EAAAA,IAAC,OAAI,UAAU,WACb,eAACqa,GACC,CAAA,SAAWra,EAAAA,IAAAonB,GAAA,CAAY,CAAA,EACvB,WAAOC,GAAiB,CAAA,CAAA,EACxB,QAAO,GACP,SAAU,CAACpB,EACX,KAAMA,EAAgB,SAAA,WAAA,CAGxB,CACF,CAAA,CAAA,EACF,CAAA,EACF,EACCjmB,EAAA,IAAAigB,GAAA,CAAK,MAAM,yBAAwB,SAIpC,sOAAA,QACCA,GAAK,CAAA,MAAM,qCAAqC,KAAI,GAAA,SAGrD,iIAAA,CAAA,EACF,CACF,CAAA,CAAA,EAMC1f,EAAAA,KAAAA,WAAAA,CAAAA,SAAAA,CAAAA,EAAMyB,YAAYoe,SAAW1pB,GAA0B2nB,UACtDre,MAAC0Z,IACC,MAAO,CAAEmD,OAAQ,kBAAA,EACjB,MAAM,qCACN,YAAY,2EACZ,mBACGxC,GACC,CAAA,OAAO,SACP,KAAK,0FACL,SAAWra,EAAAA,IAAAqgB,GAAA,EAAgB,EAC3B,QAAO,GAAA,yBAGT,CAAA,EAGL,SACA,MACC,CAAA,SAAA,CAAC/J,EAAAA,KAAA,MAAA,CAAI,UAAU,sBACb,SAAA,CAAAtW,EAAA,IAAC+b,GAAa,CAAA,UAAWxb,EAAM+f,OAAQ,MAAO,CAAEC,SAAU,MAAA,EAAS,sBAAA,eAAA,0BAAA,kBACjE,eAAC1E,GAAY,CAAA,MAAM,UAAU,YAAatb,EAAM+f,OAAO,sBAAA,cAAA,0BAAA,iBAAA,CAAA,EACzD,QACCvE,GAAa,CAAA,UAAWxb,EAAMyB,YAAY/J,GAAI,MAAO,CAAEsoB,SAAU,MAAA,EAAS,sBAAA,eAAA,0BAAA,kBACzE,eAAC1E,GAAY,CAAA,MAAM,iBAAiB,YAAatb,EAAMyB,YAAY/J,GAAG,sBAAA,cAAA,0BAAA,iBAAA,CAAA,EACxE,CAAA,EACF,EACC+H,EAAA,IAAAsf,GAAA,CACC,YAAa/e,EAAMyB,YACnB,oBAAqBzB,EAAMsf,oBAAoB,sBAAA,yBAAA,0BAAA,kBAE9C,SAAA,CAACtc,EAA0C0S,EAASuK,IAEjDxgB,EAAA,IAAAuW,EAAA,SAAA,CAAA,SAAAvW,EAAAA,IAACif,GACC,CAAA,MAAM,6BACN,YAAY,gKACZ,aACEjf,EAAAA,IAAC4d,GACC,CAAA,QAASra,EAASkd,yBAClB,QAAAxK,EACA,SAAU,IACRuK,EAAiB,CACf,GAAGjd,EACHkd,yBAA0B,CAACld,EAASkd,wBACrC,CAAA,EACF,CAEJ,CAAA,CAEL,CAAA,EAEJ,CAAA,EACF,CACF,CAAA,CAAA,CAEJ,EClJa6G,GAAmB/mB,GAI1B,CACJ,MAAM0W,EAAUC,KACV,CAAClV,EAAa2jB,CAAc,EAAIltB,EAAAA,SAAe8H,EAAMyB,WAAW,EAChE,CAACiU,EAASsJ,CAAU,EAAI9mB,WAAe,EAAK,EAC5C,CAAC8uB,EAAeC,CAAgB,EAAI/uB,EAA4C,SAAA,EAEhFgvB,EAA2B,SAAY,CAC3ClI,EAAW,EAAI,EACX,GAAA,CACIzkB,MAAAA,EAAS,MAAMuI,KACrBmkB,EAAiB1sB,EAAO4sB,aAAa,CAAA,QAC7B,CACRnI,EAAW,EAAK,CAClB,CAAA,EAGF9mB,EAAAA,UAAgB,IAAM,CACKgvB,GAC3B,EAAG,CAAE,CAAA,EAEL,MAAM5B,EAAU,SAAY,CAC1B,GAAI7jB,CAAAA,EAIJud,CAAAA,EAAW,EAAI,EACX,GAAA,CACIoI,MAAAA,EAAwB,MAAM9kB,KACpC8iB,EAAegC,CAAqB,CAAA,QAC5B,CACRpI,EAAW,EAAK,CAClB,EAAA,EAGIqI,EAAmBA,IAAM,CAC7B3Q,EAAQQ,KAAK,+BAA+B,CAAA,EAGxCoQ,EAAkB,GAAG/sB,KAASgtB,eAAeC,QAAQ,eAAexnB,EAAMynB,YAAY,GAE5F,OAEK/R,EAAAA,KAAAA,WAAAA,CAAAA,SAAAA,CAAWA,GAAAjW,EAAAA,IAACJ,GAAQ,CAAA,MAAM,SAAY,CAAA,EACtC,CAACqW,IACC,CAACsR,IAAiBA,GAAAA,YAAAA,EAAeU,QAAQC,SAAUrxB,GAAkBsxB,WACpE7R,EAAAA,KAAC,MACC,CAAA,SAAA,CAACA,EAAAA,KAAA,IAAA,CAAE,UAAU,iBAAgB,SAAA,CAAA,4IAE+BtW,EAAAA,IAAC,KAAE,SAAgB,kBAAA,CAAA,EAAI,0DAAA,EAEnF,EACAA,EAAAA,IAAC+V,IAAO,QAAAE,EAAkB,KAAK,SAAS,MAAM,MAAM,QAAS2R,EAAiB,SAE9E,wBAAA,CAAA,CAAA,EACF,EAEH,CAAC3R,GACA,CAACjU,GACDulB,IACAA,GAAAA,YAAAA,EAAeU,QAAQC,SAAUrxB,GAAkBsxB,UACjD7R,EAAAA,KAAC,MACC,CAAA,SAAA,CAACtW,EAAA,IAAA,IAAA,CAAE,UAAU,iBAAgB,SAG7B,6HAAA,EACAA,EAAAA,IAAC+V,IAAO,QAAAE,EAAkB,KAAK,SAAS,MAAM,MAAM,QAAS4P,EAAQ,SAErE,8BAAA,CAAA,CAAA,EACF,EAEH,CAAC5P,GACAjU,GACAA,EAAYoe,QAAU1pB,GAA0B0xB,QAChDb,IACAA,GAAAA,YAAAA,EAAeU,QAAQC,SAAUrxB,GAAkBsxB,UAE/C7R,EAAAA,KAAAC,EAAAA,SAAA,CAAA,SAAA,CAACvW,EAAA,IAAA,IAAA,CAAE,UAAU,iBAAgB,SAG7B,0IAAA,EACAsW,EAAAA,KAAC,IAAE,CAAA,UAAU,iBAAgB,SAAA,CAAA,qBACTtW,EAAAA,IAAC,KAAE,SAAmC,+BAAA,CAAA,EAAI,UAAQ,IACpEA,EAAAA,IAAC,KAAE,SAAa,eAAA,CAAA,EAAI,kCAAA,EACtB,EACCA,EAAAA,IAAA+b,GAAA,CAAa,UAAW8L,EAAiB,MAAO,CAAEtH,SAAU,MAAA,EAC3D,SAACvgB,MAAA6b,GAAA,CAAY,MAAM,mBAAmB,YAAagM,CAAgB,CAAA,EACrE,EACC7nB,EAAA,IAAA,MAAA,CAAI,UAAU,SAAS,IAAI,uCAAsC,CAAA,EACpE,EAEH,CAACiW,GACAjU,GACAA,EAAYoe,QAAU1pB,GAA0B0xB,QAChDb,IACAA,GAAAA,YAAAA,EAAeU,QAAQC,SAAUrxB,GAAkBsxB,UAChD7R,EAAA,KAAA,IAAA,CAAE,UAAU,iBAAgB,SAAA,CAAA,wDAC2B,IACtDtW,EAAAA,IAAC,KACC,OAAO,SACP,KAAK,iCACL,UAAU,kDAAiD,SAG7D,yBAAA,CAAA,EAAK,IAAG,+CAAA,EAEV,CAEN,CAAA,CAAA,CAEJ,EC9HaqoB,GAA0BA,IAGlC,CACH,KAAM,CAACC,EAAYC,CAAa,EAAI9vB,EAAMmtB,SAASruB,OAAOixB,OAAO,EAC3D,CAACC,EAAYC,CAAa,EAAIjwB,EAAMmtB,SAASruB,OAAOoxB,OAAO,EAEjElwB,OAAAA,EAAMyuB,UAAU,IAAM,CACpB,MAAM0B,EAAWA,IAAM,CACrBL,EAAchxB,OAAOixB,OAAO,EAC5BE,EAAcnxB,OAAOoxB,OAAO,CAAA,EAGvBhwB,cAAAA,iBAAiB,SAAUiwB,CAAQ,EACnC,IAAMrxB,OAAOqB,oBAAoB,SAAUgwB,CAAQ,CAAA,EACzD,CAACL,EAAeG,CAAa,CAAC,EAE1B,CAAEJ,WAAAA,EAAYG,WAAAA,CAAAA,CACvB,EAsBaI,GAAoBpqB,GACxBlH,OAAOssB,KAAKplB,EAAK,QAAQ,EAGrBqqB,GACXC,GACkB,CAEZC,MAAAA,EAAIH,GAAiB,EAAE,EAC7B,OAAIG,GAAK,MAEPD,EAAWnoB,KAAcnC,GAAA,CAEnBA,EACFuqB,EAAE7vB,SAAWsF,EAEbuqB,EAAEC,MAAM,CACV,CACD,EAGID,CACT,EC1DaE,GAAuB3oB,GAI9B,CACJ,MAAM4oB,EAAiBA,IAAmB,OACpC,GAAA,CAAC5oB,EAAMgnB,cACT,OAEIjR,EAAA,KAAAC,WAAA,CAAA,SAAA,CAACvW,EAAA,IAAA,IAAA,CAAE,UAAU,YAAW,SAGxB,wGAAA,EACAsW,EAAAA,KAAC,KAAG,CAAA,UAAU,sBACZ,SAAA,CAAAtW,EAAAA,IAAC,MAAG,SAA+D,iEAAA,CAAA,EACnEA,EAAAA,IAAC,MAAE,SAGH,kGAAA,CAAA,EACAA,EAAAA,IAAC,MAAG,SAAkE,oEAAA,CAAA,EACtEA,EAAAA,IAAC,MAAG,SAAoE,sEAAA,CAAA,CAAA,EAC1E,CACF,CAAA,CAAA,EAIIO,QAAAA,EAAAA,EAAMgnB,gBAANhnB,YAAAA,EAAqB0nB,QAAQC,MAAK,CACxC,KAAKrxB,GAAkBuyB,WACrB,OACGppB,EAAAA,IAAA,IAAA,CAAE,UAAU,YAAW,SAGxB,oGAAA,CAAA,EAEJ,KAAKnJ,GAAkBwyB,UACrB,OACGrpB,EAAAA,IAAA,IAAA,CAAE,UAAU,YAAW,SAGxB,8HAAA,CAAA,EAEJ,KAAKnJ,GAAkBsxB,SACrB,OACGnoB,EAAAA,IAAA,IAAA,CAAE,UAAU,YAAW,SAExB,sFAAA,CAAA,EAEJ,KAAKnJ,GAAkByyB,iBACrB,OACGtpB,EAAAA,IAAA,IAAA,CAAE,UAAU,YAAW,SAGxB,wGAAA,CAAA,EAEJ,KAAKnJ,GAAkB0yB,OACrB,OACGvpB,EAAAA,IAAA,IAAA,CAAE,UAAU,YAAW,SAExB,6EAAA,CAAA,EAEJ,QACQ,MAAA,IAAIwmB,MAAM,qCAAqC,CACzD,CAAA,EAGIgD,EAAezwB,KAEf0wB,EAAUA,IAAM,iBACdhuB,MAAAA,EAAS,IAAIurB,gBACnBvrB,EAAOiuB,IAAI,OAAMnpB,EAAAA,EAAM2B,WAAN3B,YAAAA,EAAgBtI,KAAM,EAAE,EACzCwD,EAAOiuB,IAAI,UAASnpB,EAAAA,EAAM2B,WAAN3B,YAAAA,EAAgBopB,gBAAgBvxB,QAAS,EAAE,EAC/DqD,EAAOiuB,IAAI,UAASnpB,EAAAA,EAAM2B,WAAN3B,YAAAA,EAAgBopB,gBAAgBC,QAAS,EAAE,EAC/DnuB,EAAOiuB,IAAI,WAAUnpB,EAAAA,EAAM2B,WAAN3B,YAAAA,EAAgBopB,gBAAgBE,SAAU,EAAE,EAEjEpuB,EAAOiuB,IAAI,MAAMF,GAAAA,YAAAA,EAAcM,YAAa,EAAE,EAC9CruB,EAAOiuB,IAAI,MAAMF,GAAAA,YAAAA,EAAcO,WAAY,EAAE,EAEvCC,MAAAA,GAAkBzpB,EAAAA,EAAM2B,WAAN3B,YAAAA,EAAgBopB,gBAAgBM,QACxDxuB,EAAOiuB,IAAI,MAAMM,GAAAA,YAAAA,EAAiBE,eAAgB,EAAE,EAChDF,GAAAA,MAAAA,EAAiBG,cACnB1uB,EAAOiuB,IAAI,OAAMnpB,EAAAA,EAAM2B,WAAN3B,YAAAA,EAAgBopB,gBAAgBM,QAAQE,eAAgB,EAAE,EAE7E1uB,EAAOiuB,IAAI,KAAKM,GAAAA,YAAAA,EAAiBI,OAAQ,EAAE,EAC3C3uB,EAAOiuB,IAAI,KAAKM,GAAAA,YAAAA,EAAiBK,OAAQ,EAAE,EAC3C5uB,EAAOiuB,IAAI,KAAKM,GAAAA,YAAAA,EAAiBM,aAAc,EAAE,EAEjD,IAAIC,EAAgB,UACZzvB,OAAAA,KAASvB,YAAW,CAC1B,IAAK,QACagxB,EAAA,eAChB,MACF,IAAK,UACaA,EAAA,eAChB,MACF,IAAK,MACaA,EAAA,eAChB,MACF,IAAK,aAEH1B,GAAiB,kDAAkDptB,EAAOghB,SAAU,CAAA,EAAE,EACtF,OACF,QACQ,MAAA,IAAI+J,MAAM,sBAAsB,CAC1C,CAEAqC,GAAiB,8BAA8B0B,CAAa,IAAI9uB,EAAOghB,SAAAA,CAAU,EAAE,CAAA,EAGrF,OAEK0M,EAAAA,KAAAA,WAAAA,CAAAA,SAAAA,CAAeA,EAAA,EACf,CAAC5oB,EAAMgnB,eACNvnB,EAAAA,IAAC+V,GAAO,CAAA,KAAK,SAAS,MAAM,MAAM,QAAS0T,EAAS,UAAU,OAAM,SAEpE,6BAAA,EAEDlpB,EAAMgnB,gBACJhnB,EAAMgnB,cAAcU,QAAQC,QAAUrxB,GAAkBsxB,UACvD5nB,EAAMgnB,cAAcU,QAAQC,QAAUrxB,GAAkByyB,mBACxDtpB,EAAA,IAAC+V,GAAO,CAAA,KAAK,SAAS,MAAM,MAAM,QAASxV,EAAMiqB,mBAAoB,UAAU,OAAM,SAErF,8BAAA,CAAA,CAEN,CAAA,CAAA,CAEJ,ECrGMC,GAAsD,CAC1D9zB,GAAwB+zB,cACxB/zB,GAAwBg0B,QACxBh0B,GAAwBi0B,0BACxBj0B,GAAwBk0B,QACxBl0B,GAAwBm0B,iBACxBn0B,GAAwBo0B,WAAW,EAG/BC,GAAqD,CAACr0B,GAAwBs0B,UAAU,EAExFC,GAAmBvX,GAAkC,CACzD,OAAQA,EAAI,CACV,KAAKhd,GAAwBk0B,QACpB,MAAA,UACT,KAAKl0B,GAAwBm0B,iBACpB,MAAA,aACT,KAAKn0B,GAAwBo0B,YACpB,MAAA,cACT,KAAKp0B,GAAwBs0B,WACpB,MAAA,aACT,KAAKt0B,GAAwBg0B,QACpB,MAAA,gBACT,KAAKh0B,GAAwB+zB,cACpB,MAAA,gBACT,KAAK/zB,GAAwBi0B,0BACpB,MAAA,iBACT,KAAKj0B,GAAwBw0B,OACpB,MAAA,QACT,QACS,MAAA,EACX,CACF,EAEMC,GAAyBzX,GAAkC,CAC/D,OAAQA,EAAI,CACV,KAAKhd,GAAwBk0B,QACpB,MAAA,qEACT,KAAKl0B,GAAwBm0B,iBACpB,MAAA,wEACT,KAAKn0B,GAAwBo0B,YACpB,MAAA,4EACT,KAAKp0B,GAAwBg0B,QACpB,MAAA,2EACT,KAAKh0B,GAAwB+zB,cACpB,MAAA,iEACT,KAAK/zB,GAAwBi0B,0BACpB,MAAA,gEACT,KAAKj0B,GAAwBs0B,WACpB,MAAA,wEACT,KAAKt0B,GAAwBw0B,OACpB,MAAA,2CACT,QACS,MAAA,EACX,CACF,EAEME,GAAmB1X,GAAkC,CACzD,OAAQA,EAAI,CACV,KAAKhd,GAAwBk0B,QAC3B,OAAQ7qB,EAAAA,IAAA,MAAA,CAAI,UAAU,wBAAwB,IAAI,qBAAwB,CAAA,EAC5E,KAAKrJ,GAAwBm0B,iBAC3B,OAAQ9qB,EAAAA,IAAA,MAAA,CAAI,UAAU,wBAAwB,IAAI,wBAA2B,CAAA,EAC/E,KAAKrJ,GAAwBo0B,YAC3B,OAAQ/qB,EAAAA,IAAA,MAAA,CAAI,UAAU,0BAA0B,IAAI,yBAA4B,CAAA,EAClF,KAAKrJ,GAAwBs0B,WAC3B,OAAQjrB,EAAAA,IAAA,MAAA,CAAI,UAAU,wBAAwB,IAAI,wBAA2B,CAAA,EAC/E,KAAKrJ,GAAwBg0B,QACpB,OAAA3qB,EAAA,IAACsrB,GAAW,CAAA,UAAU,wCAA2C,CAAA,EAC1E,KAAK30B,GAAwB+zB,cACpB,OAAA1qB,EAAA,IAACurB,GAAS,CAAA,UAAU,wCAA2C,CAAA,EACxE,KAAK50B,GAAwBi0B,0BACpB,OAAA5qB,EAAA,IAACwrB,GAAa,CAAA,UAAU,wCAA2C,CAAA,EAC5E,KAAK70B,GAAwBw0B,OACpB,OAAAnrB,EAAA,IAACyrB,GAAuB,CAAA,UAAU,wCAA2C,CAAA,EACtF,QACE,OAASzrB,EAAA,IAAAuW,WAAA,CAAA,CAAA,CACb,CACF,EAEMmV,GAAkB/X,GAAkC,CACxD,OAAQA,EAAI,CACV,KAAKhd,GAAwBk0B,QACpB,MAAA,iCACT,KAAKl0B,GAAwBm0B,iBACpB,MAAA,0CACT,KAAKn0B,GAAwBo0B,YACpB,MAAA,qCACT,KAAKp0B,GAAwBg0B,QACpB,MAAA,gCACT,KAAKh0B,GAAwB+zB,cACpB,MAAA,kCACT,KAAK/zB,GAAwBi0B,0BACpB,MAAA,yCACT,KAAKj0B,GAAwBs0B,WACpB,MAAA,oCACT,QACS,MAAA,wBACX,CACF,EAEMrU,GAAiBC,GAA8C,CACnE,OAAQA,EAAM,CACZ,KAAKngB,GAA0B0xB,OACtB,MAAA,+CACT,KAAK1xB,GAA0BsqB,QACtB,MAAA,+CACT,KAAKtqB,GAA0B2f,SACtB,MAAA,yCACT,KAAK3f,GAA0B2nB,SACtB,MAAA,oDACX,CACF,EAEMsN,GAAgCpE,GAAgD,CAC5EA,OAAAA,GAAAA,YAAAA,EAAeU,QAAQC,MAAK,CAClC,KAAKrxB,GAAkBwyB,UACvB,KAAKxyB,GAAkBuyB,WACrB,OAAO1yB,GAA0BsqB,QACnC,KAAKnqB,GAAkBsxB,SACvB,KAAKtxB,GAAkByyB,iBACrB,OAAO5yB,GAA0B0xB,MACrC,CACF,EAEMtR,GAAgBvW,GACpBP,EAAA,IAAC,QACC,UAAWuV,EACT,iGACAqB,GAAcrW,EAAMsW,QAAUngB,GAA0B2nB,QAAQ,CAClE,EAAE,wBAAA,eAAA,0BAAA,eAED9d,SAAMsW,EAAAA,QAAU,WACnB,CAAA,EAGW+U,GAAerrB,GAGtB,CACJ,MAAM0W,EAAUC,KAChB,OACGlX,EAAAA,IAAA6rB,GAAA,CACC,MAAOX,GAAgB3qB,EAAMoT,IAAI,EACjC,OAAQpT,EAAMsW,OACd,YAAauU,GAAsB7qB,EAAMoT,IAAI,EAC7C,MAAO0X,GAAgB9qB,EAAMoT,IAAI,EACjC,QAAS,IAAMsD,EAAQQ,KAAKiU,GAAenrB,EAAMoT,IAAI,CAAC,EACtD,sBAAA,OAAA,wBAAA,cAAA,0BAAA,cAAA,CAAA,CAEN,EAEMkY,GAAQtrB,SAOX,KACC,CAAA,KAAK,SACL,UAAU,mGACV,QAASA,EAAMwa,QAAQ,wBAAA,OAAA,0BAAA,eAEvB,SAACzE,OAAA,MAAA,CAAI,UAAU,4CACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,SACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,oCACb,SAAA,CAAAtW,EAAA,IAAC,KAAG,CAAA,UAAU,4CAA6CO,SAAAA,EAAMod,MAAM,EACvE3d,MAAC8W,IAAa,OAAQvW,EAAMsW,OAAO,sBAAA,eAAA,0BAAA,eAAA,CAAA,EACrC,EACC7W,EAAA,IAAA,IAAA,CAAE,UAAU,gCAAiCO,WAAMoW,YAAY,CAAA,EAClE,EACCpW,EAAMurB,KAAAA,CACT,CAAA,CACF,CAAA,EASIC,GAA0BxrB,GAE5B+V,EAAA,KAAAC,EAAA,SAAA,CAAA,SAAA,CAACD,EAAAA,KAAA,MAAA,CAAI,UAAU,6CACb,SAAA,CAAAtW,EAAA,IAAC,KAAG,CAAA,UAAU,8CAA+CO,SAAAA,EAAMkW,MAAM,EACzEzW,MAAC8W,IAAa,OAAQvW,EAAMyrB,kBAAkB,sBAAA,eAAA,0BAAA,eAAA,CAAA,EAChD,EACChsB,EAAA,IAAA,IAAA,CAAE,UAAU,2BAA4BO,WAAMoW,YAAY,EAC1D3W,EAAA,IAAA,MAAA,CAAI,UAAU,OAAQO,WAAMM,SAAS,CAAA,CACxC,CAAA,EAGWorB,GAAoB1rB,GAM3B,2BACJ,MAAM0W,EAAUC,KACV/d,EAAW+yB,KAEXC,EAAgBA,IAAM,SACtB5rB,EAAAA,EAAM6rB,sBAAN7rB,YAAAA,EAA2B0nB,QAAQC,SAAUrxB,GAAkBsxB,UACjElR,EAAQQ,KAAK,SAAS,EAGxBR,EAAQQ,KAAK,+BAA+B,CAAA,EAGxC4U,EAAqB1Y,GAAmE,OAC5F,OAAOpT,EAAAA,EAAM+rB,uBAAN/rB,YAAAA,EAA4BgsB,KAAYvtB,GAAAA,EAAEwtB,OAAS7Y,EAAI,EAGhE,cACG,MAAI,CAAA,UAAU,aAAY,wBAAA,mBAAA,0BAAA,eACzB,SAAA,CAAC2C,EAAAA,KAAA,MAAA,CAAI,UAAU,mCACb,SAAA,CAACtW,EAAA,IAAA,KAAA,CAAG,UAAU,uDAAuD,SAAiB,oBAAA,EACrFA,EAAA,IAAA,IAAA,CAAE,UAAU,gCAA+B,SAE5C,qFAAA,CAAA,EACF,EACCsW,EAAA,KAAA,KAAA,CAAG,KAAK,OAAO,UAAU,+DACvB/V,SAAAA,CAAAA,EAAM+rB,qBAAqB9U,IACzBxV,GACCyoB,GAAyBgC,SAASzqB,EAAYwqB,IAAI,GAChDxsB,EAAA,IAAC4rB,GAEC,CAAA,KAAM5pB,EAAYwqB,KAClB,OAAQxqB,EAAYoe,MAFfpe,EAAAA,EAAY/J,EAEU,CAGnC,EACCwyB,GACEpT,OAAwBrV,GAChBzB,EAAM+rB,qBAAqBI,MACPC,GAAAA,EAAoBH,MAAQxqB,CACvD,CACD,EACAwV,IAAKxV,SACH4pB,GAA8B,CAAA,KAAM5pB,GAAnBA,CAA+B,CAClD,CAAA,EACL,EAEAsU,EAAAA,KAAC,MAAI,CAAA,UAAU,wCACb,SAAA,CAACtW,EAAA,IAAA,KAAA,CAAG,UAAU,uDAAuD,SAAgB,mBAAA,EACpFA,EAAA,IAAA,IAAA,CAAE,UAAU,gCAA+B,SAE5C,0FAAA,CAAA,EACF,EACCsW,EAAA,KAAA,KAAA,CAAG,KAAK,OAAO,UAAU,+DACxB,SAAA,CAACtW,EAAAA,IAAA6rB,GAAA,CAEC,MAAM,mBACN,OAAQF,GAA6BprB,EAAM6rB,mBAAmB,EAC9D,YAAY,6DACZ,YAAQQ,GAAkB,CAAA,UAAU,2CACpC,QAAST,EAAc,sBAAA,OAAA,0BAAA,cAAA,EALnB,kBAKmB,EAExB5rB,EAAM+rB,qBAAqB9U,OAExBwT,GAAwByB,SAASzqB,EAAYwqB,IAAI,SAC9CZ,GAEC,CAAA,KAAM5pB,EAAYwqB,KAClB,OAAQxqB,EAAYoe,MAFfpe,EAAAA,EAAY/J,EAEU,CAGnC,EACC+yB,GACE3T,OAAwBrV,GAChBzB,EAAM+rB,qBAAqBI,MACPC,GAAAA,EAAoBH,MAAQxqB,CACvD,CACD,EACAwV,IAAKxV,SACH4pB,GAA8B,CAAA,KAAM5pB,GAAnBA,CAA+B,CAClD,CAAA,EACL,EACAhC,EAAAA,IAACkkB,GACC,CAAA,MAAM,eACN,QAAS/qB,EAAS0tB,SAASgG,SAAS,cAAc,EAClD,QAAS,IAAM5V,EAAQ6V,QAAQ,wBAAwB,EAAE,sBAAA,WAAA,0BAAA,eAEzD,SAAA9sB,EAAAA,IAAC+rB,GACC,CAAA,MAAM,cACN,YAAY,gEACZ,mBACExrB,GAAAA,EAAAA,EAAM+rB,uBAAN/rB,YAAAA,EAA4BgsB,KAAMvtB,GAAMA,EAAEwtB,OAAS71B,GAAwBo0B,eAA3ExqB,YAAAA,EACI6f,OACL,sBAAA,yBAAA,0BAAA,eAED,SAACpgB,EAAA,IAAAgmB,GAAA,CACC,OAAQzlB,EAAM+f,OACd,YAAa+L,EAAkB11B,GAAwBo0B,WAAW,EAClE,oBAAqBxqB,EAAMsf,oBAAoB,sBAAA,mBAAA,0BAAA,cAAA,CAAA,CAAA,CAEnD,CACF,CAAA,EACA7f,EAAAA,IAACkkB,GACC,CAAA,MAAM,eACN,QAAS/qB,EAAS0tB,SAASgG,SAAS,mBAAmB,EACvD,QAAS,IAAM5V,EAAQ6V,QAAQ,wBAAwB,EAAE,sBAAA,WAAA,0BAAA,eAEzD,SAAC9sB,EAAAA,IAAA+rB,GAAA,CACC,MAAM,sBACN,YAAY,wEACZ,mBACExrB,GAAAA,EAAAA,EAAM+rB,uBAAN/rB,YAAAA,EAA4BgsB,KACzBvtB,GAAMA,EAAEwtB,OAAS71B,GAAwBm0B,oBAD5CvqB,YAAAA,EAEG6f,OACJ,sBAAA,yBAAA,0BAAA,eAED,SAACpgB,EAAAA,IAAA0kB,GAAA,CACC,YAAa2H,EAAkB11B,GAAwBm0B,gBAAgB,EACvE,oBAAqBvqB,EAAMsf,oBAAoB,sBAAA,+BAAA,0BAAA,cAAA,CAAA,CAAA,CAEnD,CACF,CAAA,EACA7f,EAAAA,IAACkkB,GACC,CAAA,MAAM,eACN,QAAS/qB,EAAS0tB,SAASgG,SAAS,aAAa,EACjD,QAAS,IAAM5V,EAAQ6V,QAAQ,wBAAwB,EAAE,sBAAA,WAAA,0BAAA,eAEzD,SAAA9sB,EAAA,IAAC+rB,GACC,CAAA,MAAM,aACN,YAAY,+DACZ,mBAAmBM,EAAAA,EAAkB11B,GAAwBs0B,UAAU,IAApDoB,YAAAA,EAAuDjM,OAAO,sBAAA,yBAAA,0BAAA,eAEjF,SAACpgB,EAAA,IAAAsnB,GAAA,CACC,YAAa+E,EAAkB11B,GAAwBs0B,UAAU,EACjE,oBAAqB1qB,EAAMsf,oBAC3B,aAActf,EAAM2B,SAAS6qB,aAAa,sBAAA,kBAAA,0BAAA,cAAA,CAAA,CAAA,CAE9C,CACF,CAAA,EACA/sB,EAAAA,IAACkkB,GACC,CAAA,MAAM,eACN,QAAS/qB,EAAS0tB,SAASgG,SAAS,UAAU,EAC9C,QAAS,IAAM5V,EAAQ6V,QAAQ,wBAAwB,EAAE,sBAAA,WAAA,0BAAA,eAEzD,SAAA9sB,EAAAA,IAAC+rB,GACC,CAAA,MAAM,cACN,YAAY,2DACZ,mBAAmBM,EAAAA,EAAkB11B,GAAwBk0B,OAAO,IAAjDwB,YAAAA,EAAoDjM,OAAO,sBAAA,yBAAA,0BAAA,eAE9E,SAAApgB,EAAAA,IAAC+gB,GACC,CAAA,OAAQxgB,EAAM+f,OACd,aAAa/f,EAAAA,EAAM+rB,uBAAN/rB,YAAAA,EAA4BgsB,KAChCvtB,GAAAA,EAAEwtB,OAAS71B,GAAwBk0B,SAE5C,oBAAqBtqB,EAAMsf,oBAAoB,sBAAA,eAAA,0BAAA,cAChD,CAAA,CAAA,CACH,CACF,CAAA,EACA7f,EAAAA,IAACkkB,GACC,CAAA,MAAM,eACN,QAAS/qB,EAAS0tB,SAASgG,SAAS,WAAW,EAC/C,QAAS,IAAM5V,EAAQ6V,QAAQ,wBAAwB,EAAE,sBAAA,WAAA,0BAAA,eAEzD,SAAC9sB,EAAAA,IAAA+rB,GAAA,CACC,MAAM,gBACN,YAAY,oFACZ,mBACExrB,GAAAA,EAAAA,EAAM+rB,uBAAN/rB,YAAAA,EAA4BgsB,KACzBvtB,GAAMA,EAAEwtB,OAAS71B,GAAwB+zB,iBAD5CnqB,YAAAA,EAEG6f,OACJ,sBAAA,yBAAA,0BAAA,eAED,SAACpgB,EAAAA,IAAA+hB,GAAA,CACC,YAAasK,EAAkB11B,GAAwB+zB,aAAa,EACpE,oBAAqBnqB,EAAMsf,oBAC5B,sBAAA,oBAAA,0BAAA,cAAA,CAAA,CAAA,CACH,CACF,CAAA,EACA7f,EAAAA,IAACkkB,IACC,MAAM,eACN,QAAS/qB,EAAS0tB,SAASgG,SAAS,SAAS,EAC7C,QAAS,IAAM5V,EAAQ6V,QAAQ,wBAAwB,EAAE,sBAAA,WAAA,0BAAA,eAEzD,SAAA9sB,EAAA,IAAC+rB,GACC,CAAA,MAAM,gBACN,YAAY,uEACZ,mBAAmBM,EAAAA,EAAkB11B,GAAwBg0B,OAAO,IAAjD0B,YAAAA,EAAoDjM,OAAO,sBAAA,yBAAA,0BAAA,eAE9E,SAAApgB,EAAA,IAAC+iB,GACC,CAAA,YAAasJ,EAAkB11B,GAAwBg0B,OAAO,EAC9D,oBAAqBpqB,EAAMsf,oBAAoB,sBAAA,cAAA,0BAAA,eAAA,CAAA,CAEnD,CACF,CAAA,EACA7f,EAAAA,IAACkkB,IACC,MAAM,eACN,QAAS/qB,EAAS0tB,SAASgG,SAAS,kBAAkB,EACtD,QAAS,IAAM5V,EAAQ6V,QAAQ,wBAAwB,EAAE,sBAAA,WAAA,0BAAA,eAEzD,SAAA9sB,EAAA,IAAC+rB,GACC,CAAA,MAAM,uBACN,YAAY,6DACZ,mBACEM,EAAAA,EAAkB11B,GAAwBi0B,yBAAyB,IAAnEyB,YAAAA,EAAsEjM,OACvE,sBAAA,yBAAA,0BAAA,eAED,SAAApgB,EAAA,IAAC0lB,GACC,CAAA,OAAQnlB,EAAM+f,OACd,YAAa+L,EAAkB11B,GAAwBi0B,yBAAyB,EAAE,sBAAA,sBAAA,0BAAA,eAAA,CAAA,CAEtF,CACF,CAAA,EACC5qB,EAAA,IAAAkkB,GAAA,CACC,MAAM,WACN,QAAS/qB,EAAS0tB,SAASgG,SAAS,SAAS,EAC7C,QAAS,IAAM5V,EAAQ6V,QAAQ,wBAAwB,EAAE,sBAAA,WAAA,0BAAA,eAEzD,SAAC9sB,EAAAA,IAAA+rB,GAAA,CACC,MAAM,mBACN,YAAY,4DACZ,kBAAmBJ,GAA6BprB,EAAM6rB,mBAAmB,EAAE,sBAAA,yBAAA,0BAAA,eAE3E,SAAApsB,EAAA,IAACwd,GAAe,CAAA,sBAAA,kBAAA,0BAAA,eACd,SAAAxd,EAAAA,IAACkpB,GACC,CAAA,SAAU3oB,EAAM2B,SAChB,cAAe3B,EAAM6rB,oBACrB,mBAAoB,IAAMnV,EAAQ6V,QAAQ,SAAS,EAAE,sBAAA,sBAAA,0BAAA,cAAA,CAAA,CAEzD,CAAA,CACF,CAAA,EACF,CACF,CAAA,CAAA,CAEJ,EC5baE,GAAkBzsB,GAAwD,OAC/E,KAAA,CAAE9B,IAAAA,EAAK5C,KAAAA,GAASoxB,GAAc,EAC9BhW,EAAUC,KACVgW,EAAaA,CAACzX,EAAc0X,IAChC,GAAG1X,EAAKqX,QAAQ,OAAQ,EAAE,CAAC,IAAIK,EAASL,QAAQ,OAAQ,EAAE,EAAEA,QAAQ,OAAQ,EAAE,CAAC,GAEjF,cACG,MAAI,CAAA,UAAU,QAAO,wBAAA,iBAAA,0BAAA,iBACpB,SAAA,CAACxW,EAAAA,KAAA,MAAA,CAAI,UAAU,YACb,SAAA,CAAAtW,MAAC,QAAM,CAAA,QAAQ,OAAO,UAAU,UAAS,SAEzC,eAAA,EACAA,EAAAA,IAAC,UACC,GAAG,OACH,KAAK,OACL,OACEO,EAAAA,EAAM6sB,OAAOb,KAAMc,GAAQ91B,OAAO4B,SAAS0tB,SAAS4F,SAASS,EAAWzuB,EAAK4uB,EAAIxxB,IAAI,CAAC,CAAC,IAAvF0E,YAAAA,EACI1E,KAEN,SAAWif,GAAM7D,EAAQQ,KAAKyV,EAAWzuB,EAAKqc,EAAEiD,cAAcpiB,KAAK,CAAC,EACpE,UAAU,qJAET4E,SAAM6sB,EAAAA,OAAO5V,IACZ6V,GAAArtB,EAAAA,IAAC,SAAsB,CAAA,MAAOqtB,EAAIxxB,KAC/BwxB,WAAI5W,KADM4W,EAAAA,EAAIxxB,IAEjB,CACD,CACH,CAAA,CAAA,EACF,EACAmE,EAAAA,IAAC,MAAI,CAAA,UAAU,kBACb,SAAAA,EAAA,IAAC,OAAI,UAAU,8BACb,SAACA,EAAA,IAAA,MAAA,CAAI,aAAW,OAAO,UAAU,wBAC9BO,SAAAA,EAAM6sB,OAAO5V,IACZ6V,GAAA/W,EAAA,KAACgX,GAEC,CAAA,GAAIJ,EAAWzuB,EAAK4uB,EAAIxxB,IAAI,EAC5B,eACEtE,OAAO4B,SAAS0tB,SAAS4F,SAASS,EAAWzuB,EAAK4uB,EAAIxxB,IAAI,CAAC,EAAI,OAASsE,OAE1E,UAAWoV,EACThe,OAAO4B,SAAS0tB,SAAS4F,SAASS,EAAWzuB,EAAK4uB,EAAIxxB,IAAI,CAAC,EACvD,sCACA,sFACJ,iEACF,EAECwxB,SAAAA,CAAI5W,EAAAA,MACJ4W,EAAIE,MACFvtB,MAAA,OAAA,CACC,UAAWuV,EACThe,OAAO4B,SAAS0tB,SAAS4F,SAASS,EAAWzuB,EAAK4uB,EAAIxxB,IAAI,CAAC,EACvD,qCACA,kCACJ,4EACF,EAECwxB,SAAIE,EAAAA,KAAAA,CACP,EACE,IAAA,CAAA,EAxBCF,EAAIxxB,IAyBX,CACD,CAAA,CACH,EACF,CACF,CAAA,EACAmE,EAAAA,IAAC,OAAI,UAAU,OACb,gBAAC4d,GAAM,CAAA,sBAAA,SAAA,0BAAA,iBACJrd,SAAAA,CAAAA,EAAM6sB,OAAO5V,IAAKgW,SAChBC,GACC,CAAA,MAAOD,EAAME,MAEb,KAAMR,EAAWrxB,EAAM2xB,EAAM3xB,IAAI,EACjC,OAAQ2xB,EAAMjQ,MAFTiQ,EAAAA,EAAM3xB,IAEU,CAExB,EACA8xB,OAAOC,QAAQrtB,EAAMtH,UAAY,CAAE,CAAA,EAAEue,IAAI,CAAC,CAACrW,EAAM0sB,CAAE,IAClD7tB,EAAA,IAAC8tB,GACC,CAAA,MAAK,GAEL,KAAMZ,EAAWrxB,EAAMsF,CAAI,EAC3B,GAAI+rB,EAAWrxB,EAAMgyB,CAAE,CAFlB1sB,EAAAA,EAAO0sB,CAEa,CAE5B,CAAA,CAAA,CACH,CACF,CAAA,CACF,CAAA,CAAA,CAEJ,ECpGaE,GAASla,EAAAA,WAAW,SAC/B,CACEmC,UAAAA,EACAgY,SAAAA,EACA,GAAGztB,CAC6D,EAClEuT,EACA,CACA,OACG9T,EAAAA,IAAA,OAAA,CACC,YAAU,UACV,UAAWuV,EAAK,CACdS,EAEA,8BAEA,kHAEA,qBAEA,mMAEA,yHAAA,CACD,EAED,SAAAhW,EAAA,IAACiuB,GAAA,CACC,IAAAna,EACA,SAAAka,EACIztB,GAAAA,EACJ,UAAWgV,EAAK,CAEd,4HAEAyY,EACI,wEACA,4IAEJ,6BAEA,2GAEA,yHAEA,uDAEA,kCAEA,8JAEA,+LAAA,CACD,EAAE,CAyBP,CAAA,CAEJ,CAAC,EC/EYE,GAAQ7tB,EAAO8tB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,ECErB,SAASC,GAAS,CACvBpY,UAAAA,EACA,GAAGzV,CAC+D,EAAG,CACrE,aACG8tB,GAAA,CACC,GAAI9tB,EACJ,UAAWgV,EAAKS,EAAW,0DAA0D,EACrF,sBAAA,UAAA,wBAAA,WAAA,0BAAA,cAAA,CAAA,CAEN,CAEO,SAASsY,GAAO,CACrBtY,UAAAA,EACA,GAAGzV,CAC6D,EAAG,CACnE,aACGguB,GAAA,CACC,YAAU,SACNhuB,GAAAA,EACJ,UAAWgV,EACTS,EACA,qFACF,EACA,sBAAA,UAAA,wBAAA,SAAA,0BAAA,cAAA,CAAA,CAEN,CAEO,SAASwY,GAAW,CAAExY,UAAAA,EAAW,GAAGzV,CAA6C,EAAG,CACzF,OAAQP,EAAAA,IAAA,MAAA,CAAI,YAAU,aAAcO,EAAO,UAAWgV,EAAKS,EAAW,WAAW,EAAK,wBAAA,aAAA,0BAAA,cAAA,CAAA,CACxF,CAEO,SAASyY,EAAM,CACpBzY,UAAAA,EACA,GAAGzV,CAC4D,EAAG,CAEhE,OAAAP,EAAA,IAAC0uB,GAAA,CACC,GAAInuB,EACJ,UAAWgV,EACTS,EACA,iDACA,qDACA,uDACA,uDACA,iDACA,mCACF,EACA,sBAAA,UAAA,wBAAA,QAAA,0BAAA,cAAA,CAAA,CAEN,CAEO,SAAS2Y,EAAM,CACpB3Y,UAAAA,EACA,GAAGzV,CAC4D,EAAG,CAClE,aACGquB,GAAA,CACC,YAAU,QACNruB,GAAAA,EACJ,UAAWgV,EACTS,EACA,kGACF,EACA,sBAAA,UAAA,wBAAA,QAAA,0BAAA,cAAA,CAAA,CAEN,CAEO,SAAS6Y,GAAY,CAC1B7Y,UAAAA,EACA,GAAGzV,CACkE,EAAG,CACxE,aACGuuB,GAAA,CACC,YAAU,cACNvuB,GAAAA,EACJ,UAAWgV,EACTS,EACA,4FACF,EACA,sBAAA,UAAA,wBAAA,cAAA,0BAAA,cAAA,CAAA,CAEN,CAEO,SAAS+Y,EAAa,CAC3B/Y,UAAAA,EACA,GAAGzV,CACkE,EAAG,CACxE,aACGuuB,GAAA,CACC,YAAU,QACNvuB,GAAAA,EACJ,UAAWgV,EACTS,EACA,kFACF,EACA,sBAAA,UAAA,wBAAA,eAAA,0BAAA,cAAA,CAAA,CAEN,CC7FA,MAAMgZ,GAAY,CAChB,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,UAAU,EAGCC,GAAgB1uB,GAA2C,CACtE,MAAMtC,EAAOsC,EAAM2uB,SAASC,aAAa,CAAC,EAC1C,OACG7Y,EAAAA,KAAA,KAAA,CAAE,wBAAA,eAAA,0BAAA,gBACD,SAAA,CAAAtW,EAAA,IAAC,KAAI,CAAA,SAAA,IAAI8X,KAAKC,eAAe,OAAO,EAAEE,OAAO,IAAI1H,KAAKhQ,EAAM2uB,SAASE,SAAS,CAAC,CAAE,CAAA,EACjFpvB,EAAAA,IAAC,KAAI/B,CAAAA,SAAAA,EAAKoxB,IAAK,CAAA,EACdrvB,EAAA,IAAA,KAAA,CACE,SAAI8X,IAAAA,KAAKwX,aAAa,QAAS,CAC9BrU,MAAO,WACPqH,SAAU,MACViN,sBAAuB,EACvBC,sBAAuB,CACxB,CAAA,EAAEvX,OAAOha,EAAKwxB,MAAMC,MAAM,CAC7B,CAAA,CACF,CAAA,CAAA,CAEJ,EAEMC,GAA0BpvB,GAC9BP,EAAAA,IAACS,IACC,QAASmvB,QAAQC,IAAI,CACnB9sB,GAAqBxC,EAAMuvB,UAAWvvB,EAAMwvB,OAAO,EACnD7sB,GAAwB3C,EAAMuvB,UAAWvvB,EAAMwvB,OAAO,CAAC,CACxD,EAAE,sBAAA,WAAA,wBAAA,yBAAA,0BAAA,gBAEF,SAAA,CAAC,CAACC,EAAWC,CAAY,IAAM,OACxBC,MAAAA,GAAUD,EAAAA,EAAaE,eAAbF,YAAAA,EAA2B5Y,UAAc+Y,EAAE5D,OAASr1B,GAAgBk5B,QAChFL,OAAAA,EAAUM,UAAU/Y,QAAU,EAE7BjB,OAAA,MAAA,CAAI,UAAU,mBACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CACC,UAAU,qCACV,KAAK,OACL,QAAQ,YACR,OAAO,eACP,cAAY,OAEZ,SAAA,CAACtW,EAAAA,IAAA,UAAA,CAAQ,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,YAAY,GAAG,CAAA,EACpDA,EAAA,IAAA,OAAA,CAAK,EAAE,oCAAoC,YAAY,IAAG,EAC1DA,EAAA,IAAA,OAAA,CAAK,EAAE,oCAAoC,YAAY,IAAG,EAC1DA,EAAA,IAAA,OAAA,CAAK,EAAE,sCAAsC,YAAY,IAAG,EAC5DA,EAAA,IAAA,OAAA,CAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,OAAO,eAAe,YAAY,IAAG,CAAA,EAC3E,EACCA,EAAA,IAAA,KAAA,CAAG,UAAU,8CAA8C,SAAO,UAAA,EAClEA,EAAA,IAAA,IAAA,CAAE,UAAU,gCAA+B,SAE5C,6DAAA,CACF,CAAA,CAAA,EAKEsW,EAAA,KAAAC,WAAA,CAAA,SAAA,CAAAD,OAAC4X,IAAM,MAAO,CAAEqC,UAAW,MACzB,EAAA,SAAA,CAACvwB,EAAA,IAAA,QAAA,CACC,gBAAC,KACC,CAAA,SAAA,CAAAA,EAAAA,IAAC,MAAG,SAAI,MAAA,CAAA,EACRA,EAAAA,IAAC,MAAG,SAAI,MAAA,CAAA,EACRA,EAAAA,IAAC,MAAG,SAAK,OAAA,CAAA,CAAA,CAAA,CACX,CACF,CAAA,EACAA,EAAAA,IAAC,QACEgwB,CAAAA,SAAAA,EAAUM,UAAU9Y,OAClBxX,EAAA,IAAAivB,GAAA,CAAa,SAAAC,GACf,CACH,CAAA,CAAA,EACF,EACCgB,GAAWA,EAAQ3Y,OAAS,GAC3BjB,EAAAA,KAAC4X,IAAM,MAAO,CAAEqC,UAAW,MACzB,EAAA,SAAA,CAACvwB,EAAA,IAAA,QAAA,CACC,gBAAC,KACC,CAAA,SAAA,CAAAA,EAAAA,IAAC,MAAG,SAAI,MAAA,CAAA,EACRA,EAAAA,IAAC,MAAG,SAAc,gBAAA,CAAA,EAClBA,EAAAA,IAAC,MAAG,SAAM,QAAA,CAAA,EACVA,EAAAA,IAAC,MAAG,SAAM,QAAA,CAAA,CAAA,CAAA,CACZ,CACF,CAAA,QACC,QACEkwB,CAAAA,SAAAA,EAAQ1Y,IAAKgZ,UACX,KACC,CAAA,SAAA,CAAAxwB,MAAC,MAAI,SAAIuQ,IAAAA,KAAKigB,EAAOpB,SAAS,EAAEqB,qBAAqB,EACpDzwB,EAAA,IAAA,KAAA,CAAIwwB,SAAOE,EAAAA,aAAe,MAAM,EAChC1wB,EAAA,IAAA,KAAA,CACE,SAAI8X,IAAAA,KAAKwX,aAAa,QAAS,CAC9BrU,MAAO,WACPqH,SAAUkO,EAAOG,SACjBpB,sBAAuB,EACvBC,sBAAuB,CACxB,CAAA,EAAEvX,OAAOuY,EAAOd,MAAM,CACzB,CAAA,EACA1vB,EAAAA,IAAC,KAAIwwB,CAAAA,SAAAA,EAAOtI,KAAM,CAAA,CAAA,CACpB,CAAA,CACD,CACH,CAAA,CAAA,EACF,CAEJ,CAAA,CAAA,CAEN,CACF,CAAA,EAEI0I,GAAiBC,GACrB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAErZ,IAAesZ,IAAA,CACnC9tB,MAAOuN,KAAKwgB,IAAIF,EAAMG,eAAkBH,EAAAA,EAAMI,YAAY,EAAIH,EAAM,EAAG,EAAG,EAAG,EAAG,CAAC,EACjF7tB,IAAKsN,KAAKwgB,IAAIF,EAAMG,iBAAkBH,EAAMI,YAAY,EAAI,EAAIH,EAAM,EAAG,EAAG,EAAG,EAAG,CAAC,CACrF,EAAE,EAEEI,GAAgBC,GAAuBnC,GAAUmC,EAAKF,YAAa,CAAA,EAE5DG,GAAgBA,IAAM,CACjC,MAAMC,EAAeT,GAAc,IAAIrgB,IAAM,EAAEiH,IAAI,CAAC,CAAExU,MAAAA,EAAOC,IAAAA,GAAOjE,KAAO,CACzEsyB,MAAOtyB,EAAEyd,SAAS,EAClBhG,MAAO,GAAGya,GAAa,IAAI3gB,KAAKvN,CAAK,CAAC,CAAC,IAAI,IAAIuN,KAAKvN,CAAK,EAAEguB,eAAgB,CAAA,GAC3EhuB,MAAAA,EACAC,IAAAA,CACA,EAAA,EAEI,CAACsuB,EAAOC,CAAQ,EAAI/4B,EAAe44B,SAAAA,EAAa,CAAC,CAAC,EAExD,OAEI/a,EAAA,KAAAC,WAAA,CAAA,SAAA,CAACvW,EAAA,IAAA,OAAA,CAAK,UAAU,cAAc,SAAW8a,GAAMA,EAAE2W,eAAe,EAC9D,SAACzxB,EAAA,IAAAouB,GAAA,CAAQ,sBAAA,WAAA,0BAAA,gBACP,SAAApuB,EAAA,IAACwuB,GAAU,CAAA,sBAAA,aAAA,0BAAA,gBACT,SAAAlY,EAAA,KAACmY,EAAK,CAAA,sBAAA,QAAA,0BAAA,gBACJ,SAAA,CAAAzuB,EAAAA,IAAC2uB,GAAM,UAAU,eAAc,sBAAA,QAAA,0BAAA,gBAAC,SAAqB,uBAAA,CAAA,QACpDE,GAAY,CAAA,sBAAA,cAAA,0BAAA,gBAAA,SAA6C,gDAAA,QACzDd,GACC,CAAA,MAAOwD,EAAMD,MACb,SAAiBxW,GAAA,CACf0W,EAASH,EAAaK,SAAS5W,EAAEiD,cAAcpiB,KAAK,CAAC,CAAC,CAAA,EACtD,sBAAA,SAAA,0BAAA,gBAED01B,SAAAA,EAAa7Z,IACZma,GAAA3xB,MAAC,SAAuB,CAAA,MAAO2xB,EAAIL,MAChCK,SAAAA,EAAIlb,OADMkb,EAAIL,KAEjB,CACD,EACH,CAAA,EACF,CAAA,CACF,CACF,CAAA,EACF,QACC3B,GAAuB,CAAA,UAAW,IAAIpf,KAAKghB,EAAMvuB,KAAK,EAAG,QAAS,IAAIuN,KAAKghB,EAAMtuB,GAAG,EAAE,sBAAA,yBAAA,0BAAA,gBAAA,CACzF,CAAA,CAAA,CAEJ,ECtKa2uB,GAAsBt6B,GAI7B0E,GAAK,oBAAqB1E,CAAI,EAEvBu6B,GAAqB,IAChCj2B,GACE,mBACF,EAEWk2B,GAAiB,IAAMl2B,GAA2B,iBAAiB,ECX1Em2B,GAAiB1xB,EAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,gBAObC,GAAUA,EAAMV,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,EAOzBmyB,GACXzxB,GAQAP,EAAA,IAAC,OAAI,MAAO,CAAEya,QAASla,EAAMka,SAAW,cAAe,EAAE,wBAAA,QAAA,0BAAA,YACvD,SAACnE,EAAAA,KAAAyb,GAAA,CAAe,MAAOxxB,EAAMV,MAAM,sBAAA,iBAAA,0BAAA,YAChCU,SAAAA,CAAAA,EAAMqa,MACL5a,MAAC,MAAI,CAAA,cAAW,GAAC,MAAO,CAAEya,QAAS,MAAA,EAChCla,WAAMqa,KACT,EAEF5a,MAAC,OAAI,MAAO,CAAEH,MAAOU,EAAM0xB,SAAAA,EAAc1xB,WAAMod,MAAM,CAAA,CAAA,CACvD,CACF,CAAA,EC/BK,SAASuU,GAAW,CAAErxB,SAAAA,CAAiD,EAAG,CAC/E,aACG,OACC,CAAA,YAAU,UACV,UAAW0U,EACT,yBACA,gNACA,yNACA,4KACA,kFACF,EAAE,wBAAA,aAAA,0BAAA,YAED1U,SAAAA,CACH,CAAA,CAEJ,CAEA,MAAMsxB,GAAY,CAAC,OAAQ,iBAAkB,QAAS,OAAQ,MAAM,EAGvDC,GAAQve,EAAAA,WAAW,SAC9B,CACEmC,UAAAA,EACA,GAAGzV,CAI2C,EAChDuT,EACA,CACA,OACG9T,EAAAA,IAAA,OAAA,CACC,YAAU,UACV,UAAWuV,EAAK,CACdS,EAEA,wBAEA,kHAEA,qBAEA,mMAEA,0HAEA,+CAAA,CACD,EAED,SAAAhW,EAAAA,IAACqyB,GAAA,CACC,IAAAve,EACA,GAAIvT,EACJ,UAAWgV,EAAK,CAEdhV,EAAMoT,MACJwe,GAAU1F,SAASlsB,EAAMoT,IAAI,GAAK,CAChC,gDACA,iDACA,yCACA,iCACA,4CACA,6CACA,2CACA,4CACA,8CACA,8CACA,mDACA,+CAA+C,EAGnD,mMAEA,yFAEA,yHAEA,iCAEA,kCAEA,8JAEA,oKAEA,0BAAA,CACD,EAAE,CAEP,CAAA,CAEJ,CAAC,EAE4BE,EAAW,WAAA,SACtC,CACEmC,UAAAA,EACA8H,SAAAA,EACA,GAAGvd,CAIiE,EACtEuT,EACA,SACA,KAAM,CAACnY,EAAO22B,CAAQ,EAAI1M,EAAiB,SAAA,EACrC,CAAC2M,EAAcC,CAAe,EAAI5M,aAAiBrlB,EAAAA,EAAM5E,QAAN4E,YAAAA,EAAakc,aAAc,EAAE,EAEhFgW,EAAY,IAAI3a,KAAKwX,aAAa,QAAS,CAC/CrU,MAAO,WACPqH,SAAU,MACViN,sBAAuB,EACvBC,sBAAuB,CAAA,CACxB,EAEKkD,EAAcC,aAAWpyB,EAAAA,EAAM5E,QAAN4E,YAAAA,EAAakc,aAAc,EAAE,EAE5DhkB,OAAAA,EAAMyuB,UAAU,IAAM,OACpB,MAAMvrB,EAAQg3B,aAAWpyB,EAAAA,EAAM5E,QAAN4E,YAAAA,EAAakc,aAAc,EAAE,EACjDmW,MAAMj3B,CAAK,IAEd22B,EAAS32B,CAAK,EAGE82B,EAAAA,EAAUxa,OAAOtc,CAAK,CAAC,EACzC,EACC,CAAC4E,EAAM5E,KAAK,CAAC,EAGbqE,EAAAA,IAAA,OAAA,CACC,YAAU,UACV,UAAWuV,EAAK,CACdS,EAEA,wBAEA,kHAEA,qBAEA,mMAEA,0HAEA,+CACD,CAAA,EAED,SAAChW,EAAAA,IAAAqyB,GAAA,CACC,IAAAve,EACA,GAAIvT,EACJ,KAAK,OACL,MAAOgyB,EACP,SAAiBzX,GAAA,CACCA,EAAAA,EAAEiD,cAAcpiB,KAAK,EAC5Bg3B,EAAAA,WAAW7X,EAAEiD,cAAcpiB,MAAMmxB,QAAQ,WAAY,EAAE,CAAC,CAAC,CACpE,EACA,OAAQ,IAAM,CACRnxB,IAAUwE,QAAa,CAACyyB,MAAMj3B,CAAK,GACrB82B,EAAAA,EAAUxa,OAAOtc,CAAK,CAAC,EACvCmiB,GAAAA,MAAAA,EAAWniB,KAENi3B,MAAMF,CAAW,GACJD,EAAAA,EAAUxa,OAAOya,CAAW,CAAC,EAE/C5U,GAAAA,MAAAA,EAAW+U,KACb,EAEF,UAAWtd,EAAK,CAEd,mMAEA,yFAEA,yHAEA,iCAEA,kCAEA,8JAEA,oKAEA,0BAAA,CACD,EAAE,CAEP,CAAA,CAEJ,CAAC,EAE8B1B,EAAW,WAAA,SACxC,CACEmC,UAAAA,EACA8H,SAAAA,EACA,GAAGvd,CAIiE,EACtEuT,EACA,SACA,KAAM,CAACnY,EAAO22B,CAAQ,EAAI1M,EAAiB,SAAA,EACrC,CAAC2M,EAAcC,CAAe,EAAI5M,aAAiBrlB,EAAAA,EAAM5E,QAAN4E,YAAAA,EAAakc,aAAc,EAAE,EAEhFgW,EAAY,IAAI3a,KAAKwX,aAAa,QAAS,CAC/CrU,MAAO,UACPsU,sBAAuB,EACvBC,sBAAuB,CAAA,CACxB,EAEKkD,EAAcC,aAAWpyB,EAAAA,EAAM5E,QAAN4E,YAAAA,EAAakc,aAAc,EAAE,EAE5DhkB,OAAAA,EAAMyuB,UAAU,IAAM,OACpB,MAAMvrB,EAAQg3B,aAAWpyB,EAAAA,EAAM5E,QAAN4E,YAAAA,EAAakc,aAAc,EAAE,EACjDmW,MAAMj3B,CAAK,IAEd22B,EAAS32B,CAAK,EAGE82B,EAAAA,EAAUxa,OAAOtc,CAAK,CAAC,EACzC,EACC,CAAC4E,EAAM5E,KAAK,CAAC,EAGbqE,EAAAA,IAAA,OAAA,CACC,YAAU,UACV,UAAWuV,EAAK,CACdS,EAEA,wBAEA,kHAEA,qBAEA,mMAEA,0HAEA,+CACD,CAAA,EAED,SAAChW,EAAAA,IAAAqyB,GAAA,CACC,IAAAve,EACA,GAAIvT,EACJ,KAAK,OACL,MAAOgyB,EACP,SAAiBzX,GAAA,CACCA,EAAAA,EAAEiD,cAAcpiB,KAAK,EAI5Bg3B,EAAAA,WAAW7X,EAAEiD,cAAcpiB,MAAMmxB,QAAQ,WAAY,EAAE,CAAC,EAAI,GAAG,CAC1E,EACA,OAAQ,IAAM,CACRnxB,IAAUwE,QAAa,CAACyyB,MAAMj3B,CAAK,GACrB82B,EAAAA,EAAUxa,OAAOtc,CAAK,CAAC,EACvCmiB,GAAAA,MAAAA,EAAWniB,KAENi3B,MAAMF,CAAW,GACJD,EAAAA,EAAUxa,OAAOya,CAAW,CAAC,EAE/C5U,GAAAA,MAAAA,EAAW+U,KACb,EAEF,UAAWtd,EAAK,CAEd,mMAEA,yFAEA,yHAEA,iCAEA,kCAEA,8JAEA,oKAEA,0BAAA,CACD,EAAE,CAEP,CAAA,CAEJ,CAAC,EC3RYud,MAAAA,GAAWjf,EAAAA,WAAW,SACjC,CACEmC,UAAAA,EACA+c,UAAAA,EAAY,GACZ,GAAGxyB,CACoF,EACzFuT,EACA,CACA,OACG9T,EAAAA,IAAA,OAAA,CACC,YAAU,UACV,UAAWuV,EAAK,CACdS,EAEA,wBAEA,kHAEA,qBAEA,sLAEA,yHAAA,CACD,EAED,SAAAhW,EAAAA,IAACgzB,GAAA,CACC,IAAAlf,EACA,GAAIvT,EACJ,UAAWgV,EAAK,CAEd,yMAEA,yFAEA,yHAEA,iCAEA,kCAEA,8JAEA,wIAEAwd,EAAY,WAAa,aAAA,CAC1B,EAAE,CAEP,CAAA,CAEJ,CAAC,ECjDM,SAASE,GAAc,CAAEjd,UAAAA,EAAW,GAAGzV,CAA6C,EAAG,CAC5F,aACG,MACC,CAAA,YAAU,UACV,GAAIA,EACJ,UAAWgV,EACTS,EAEA,YAEA,yGAEF,EAAA,wBAAA,gBAAA,0BAAA,cAAA,CAAA,CAEN,CAEO,SAASkd,GAAc,CAC5Bld,UAAAA,EACA,GAAGzV,CAC4D,EAAG,CAEhE,OAAAP,EAAAA,IAAC0uB,GAAA,CACC,YAAU,QACNnuB,GAAAA,EACJ,UAAWgV,EACTS,EAEA,qFAEA,sHAEA,+GAEA,kFAEA,iEAAA,EAEF,sBAAA,UAAA,wBAAA,gBAAA,0BAAA,cAAA,CAAA,CAEN,CAEA,MAAMP,GAAO,CAEX,kGAEA,iHAEA,yDAEA,qBAEA,uEAEA,yNACA,oKAEA,sHACA,8GAEA,qIAEA,mCACA,+LACA,2NAEA,kKACA,gLAAgL,EAG5KvB,GAAS,CACb,YAAa,CACX,+IACA,qDAAqD,EAEvD,aAAc,CACZ,+IACA,6JAA6J,EAE/JoB,MACE,+IACFQ,KAAM,+IACNV,KAAM,+IACNjB,IAAK,6IACLC,OACE,mJACFC,MACE,qJACFC,OACE,wJACFC,KAAM,kJACNC,MACE,iJACFC,QACE,qJACFC,KAAM,+IACNC,KAAM,kJACNC,IAAK,6IACLuF,QACE,qJACFrF,OACE,mJACFC,OACE,mJACFC,OACE,mJACFC,QACE,qJACFC,KAAM,+IACNC,KAAM,8IACR,EAIO,SAASge,GAAS,CACvBtzB,MAAAA,EAAQ,YACRmW,UAAAA,EACA,GAAGzV,CAIuC,EAAG,CAC7C,aACG6yB,GAAA,CACC,YAAU,UACN7yB,GAAAA,EACJ,UAAWgV,EAAKS,EAAW,sCAAsC,EAAE,sBAAA,UAAA,wBAAA,WAAA,0BAAA,eAEnE,SAAAhW,EAAA,IAAC,OAAK,CAAA,UAAWuV,EAAK,CAACE,GAAMvB,GAAOrU,CAAK,CAAC,CAAC,EACzC,SAAAyW,OAAC,OACC,UAAU,gGACV,QAAQ,YACR,KAAK,OAAM,sBAAA,MAAA,0BAAA,eAGX,SAAA,CAAAtW,EAAA,IAAC,OACC,CAAA,UAAU,mDACV,EAAE,mBACF,YAAa,EACb,cAAc,QACd,eAAe,QAAO,sBAAA,OAAA,0BAAA,eAAA,EAGvBA,EAAA,IAAA,OAAA,CACC,UAAU,mDACV,EAAE,UACF,YAAa,EACb,cAAc,QACd,eAAe,QAAO,sBAAA,OAAA,0BAAA,eAAA,CAAA,EAE1B,EACF,CACF,CAAA,CAEJ,CC3JO,MAAMqzB,GAAoBA,IAAMv4B,GAAO,EAAEw4B,QAAQC,iBAAmB,GCF9DC,GAAS,CACpB,CAAE73B,MAAO,KAAMgc,KAAM,SAAU,EAC/B,CAAEhc,MAAO,KAAMgc,KAAM,QAAS,EAE9B,CAAEhc,MAAO,KAAMgc,KAAM,SAAU,EAC/B,CAAEhc,MAAO,KAAMgc,KAAM,UAAW,EAChC,CAAEhc,MAAO,KAAMgc,KAAM,YAAa,EAClC,CAAEhc,MAAO,KAAMgc,KAAM,UAAW,EAChC,CAAEhc,MAAO,KAAMgc,KAAM,aAAc,EACnC,CAAEhc,MAAO,KAAMgc,KAAM,UAAW,EAChC,CAAEhc,MAAO,KAAMgc,KAAM,qBAAsB,EAC3C,CAAEhc,MAAO,KAAMgc,KAAM,SAAU,EAC/B,CAAEhc,MAAO,KAAMgc,KAAM,SAAU,EAE/B,CAAEhc,MAAO,KAAMgc,KAAM,QAAS,EAC9B,CAAEhc,MAAO,KAAMgc,KAAM,OAAQ,EAC7B,CAAEhc,MAAO,KAAMgc,KAAM,UAAW,EAChC,CAAEhc,MAAO,KAAMgc,KAAM,SAAU,EAC/B,CAAEhc,MAAO,KAAMgc,KAAM,MAAO,EAC5B,CAAEhc,MAAO,KAAMgc,KAAM,QAAS,EAC9B,CAAEhc,MAAO,KAAMgc,KAAM,UAAW,EAChC,CAAEhc,MAAO,KAAMgc,KAAM,WAAY,EACjC,CAAEhc,MAAO,KAAMgc,KAAM,OAAQ,EAC7B,CAAEhc,MAAO,KAAMgc,KAAM,UAAW,EAChC,CAAEhc,MAAO,KAAMgc,KAAM,eAAgB,EACrC,CAAEhc,MAAO,KAAMgc,KAAM,UAAW,EAChC,CAAEhc,MAAO,KAAMgc,KAAM,WAAY,EACjC,CAAEhc,MAAO,KAAMgc,KAAM,aAAc,EACnC,CAAEhc,MAAO,KAAMgc,KAAM,UAAW,EAChC,CAAEhc,MAAO,KAAMgc,KAAM,SAAU,EAC/B,CAAEhc,MAAO,KAAMgc,KAAM,UAAW,EAChC,CAAEhc,MAAO,KAAMgc,KAAM,QAAS,EAC9B,CAAEhc,MAAO,KAAMgc,KAAM,eAAgB,EACrC,CAAEhc,MAAO,KAAMgc,KAAM,YAAa,EAClC,CAAEhc,MAAO,KAAMgc,KAAM,YAAa,EAClC,CAAEhc,MAAO,KAAMgc,KAAM,UAAW,EAChC,CAAEhc,MAAO,KAAMgc,KAAM,gBAAiB,EACtC,CAAEhc,MAAO,KAAMgc,KAAM,cAAe,EAEpC,CAAEhc,MAAO,KAAMgc,KAAM,MAAO,EAC5B,CAAEhc,MAAO,KAAMgc,KAAM,UAAW,EAChC,CAAEhc,MAAO,KAAMgc,KAAM,QAAS,EAC9B,CAAEhc,MAAO,KAAMgc,KAAM,cAAe,EAEpC,CAAEhc,MAAO,KAAMgc,KAAM,cAAe,EACpC,CAAEhc,MAAO,KAAMgc,KAAM,gBAAiB,EACtC,CAAEhc,MAAO,KAAMgc,KAAM,cAAe,EACpC,CAAEhc,MAAO,KAAMgc,KAAM,WAAY,EACjC,CAAEhc,MAAO,KAAMgc,KAAM,OAAQ,EAE7B,CAAEhc,MAAO,KAAMgc,KAAM,MAAO,EAC5B,CAAEhc,MAAO,KAAMgc,KAAM,SAAU,EAC/B,CAAEhc,MAAO,KAAMgc,KAAM,UAAW,EAEhC,CAAEhc,MAAO,KAAMgc,KAAM,YAAa,EAClC,CAAEhc,MAAO,KAAMgc,KAAM,eAAgB,EACrC,CAAEhc,MAAO,KAAMgc,KAAM,WAAY,EACjC,CAAEhc,MAAO,KAAMgc,KAAM,SAAU,CAAC,EAGrB8b,GAAQ,CACnB,OAAU,CACRhd,MAAO,kBACPE,YACE,8GACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,oMACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,sGACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,yGACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,2HACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,0HACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,4XACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,uLACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,mHACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,8TACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YAAa,8EACf,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,qGACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YAAa,kFACf,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,gIACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,wFACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YAAa,mFACf,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,qFACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,4RACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,wKACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,2JACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,yIACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,yTACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,6PACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YAAa,8EACf,EACA,OAAU,CACRF,MAAO,iBACPE,YAAa,6EACf,EACA,OAAU,CACRF,MAAO,oBACPE,YAAa,gFACf,EACA,OAAU,CACRF,MAAO,cACPE,YACE,6GACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,uFACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YAAa,mFACf,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,gmBACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,iIACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,gGACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YAAa,mFACf,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,kHACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,0OACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,mKACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,+HACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,yGACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,2FACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,uIACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,oLACJ,EACA,OAAU,CACRF,MAAO,eACPE,YAAa,4EACf,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,0LACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,6IACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,oQACJ,EACA,OAAU,CACRF,MAAO,aACPE,YACE,oPACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,gHACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,+KACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,qaACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,wIACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,mOACJ,EACA,OAAU,CACRF,MAAO,UACPE,YACE,+LACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,iLACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,mNACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,sJACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,qOACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YAAa,kFACf,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,8OACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,iNACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,+VACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,6HACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,wcACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,geACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,2dACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,kgBACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,ybACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,ogBACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,iWACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,uUACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,4WACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,kbACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,+QACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,kLACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,0VACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,gVACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,oaACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,kTACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,4PACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,uTACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,kaACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,0PACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,oiBACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,2bACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,8gBACJ,EACA,OAAU,CACRF,MAAO,oEACPE,YACE,yiBACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,2VACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,2bACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,4UACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,gVACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,0VACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,6VACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,yWACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,+aACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,gVACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,8UACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,0cACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,gSACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,+JACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,sJACJ,EACA,OAAU,CACRF,MAAO,oEACPE,YACE,6mBACJ,EACA,OAAU,CACRF,MAAO,kEACPE,YACE,2bACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,qaACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,kaACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,woBACJ,EACA,OAAU,CACRF,MAAO,qDACPE,YACE,2sBACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,0nBACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,ujBACJ,EACA,OAAU,CACRF,MAAO,mEACPE,YACE,unBACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,ynBACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,0cACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,+wBACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,4SACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,meACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,kPACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,wNACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,6PACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,4RACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,oWACJ,EACA,OAAU,CACRF,MAAO,iEACPE,YACE,8TACJ,EACA,OAAU,CACRF,MAAO,mEACPE,YACE,kTACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,wTACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,2WACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,qZACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,iNACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,8OACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,2SACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,+KACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,yUACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,obACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,6VACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,6KACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,6LACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,kMACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,wHACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,iSACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,uSACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,uUACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,mGACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,qHACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,+IACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,6QACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,kLACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,4UACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,0LACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,iQACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,2XACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,yRACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,2SACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,iQACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,0IACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,iQACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,mJACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,8LACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,uMACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,qTACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,gHACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,0LACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,+gBACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,oMACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,2LACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,2JACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,gJACJ,EACA,OAAU,CACRF,MAAO,uEACPE,YACE,yRACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,sFACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,gQACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,qIACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,mTACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,gMACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,qPACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,qVACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,+MACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,inBACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,gIACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,iIACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,qFACJ,EACA,OAAU,CACRF,MAAO,YACPE,YACE,4HACJ,EACA,OAAU,CACRF,MAAO,WACPE,YACE,4QACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,6OACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,8JACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,4TACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,6PACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,+cACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,iPACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,uaACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,6hBACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,4IACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,4UACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,mVACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,0OACJ,EACA,OAAU,CACRF,MAAO,yDACPE,YACE,qaACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,+kBACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,2OACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,4OACJ,EACA,OAAU,CACRF,MAAO,yDACPE,YACE,qXACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,6nBACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,iPACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,4HACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,kMACJ,EACA,OAAU,CACRF,MAAO,WACPE,YACE,qTACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,iYACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,yHACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,yHACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,gNACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,sHACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,8LACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,wZACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,2IACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,uLACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,uUACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,4KACJ,EACA,OAAU,CACRF,MAAO,qDACPE,YACE,iZACJ,EACA,OAAU,CACRF,MAAO,aACPE,YACE,qSACJ,EACA,OAAU,CACRF,MAAO,cACPE,YACE,0TACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,uUACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,6SACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,sLACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,oNACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,+hBACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,wKACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,yUACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,+xBACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,yfACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,2IACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,gYACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,gQACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,+JACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,4QACJ,EACA,OAAU,CACRF,MAAO,qDACPE,YACE,qMACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,4RACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,kYACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,0JACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,gMACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,gKACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,0GACJ,EACA,OAAU,CACRF,MAAO,sEACPE,YACE,mfACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,qRACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,uQACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,kGACJ,EACA,OAAU,CACRF,MAAO,8DACPE,YACE,gVACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,+SACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,kNACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,sHACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,wLACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,wKACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,4TACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,qVACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,qLACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,oXACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,qHACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,wQACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,4IACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,wRACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,2QACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,2HACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,uFACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,sMACJ,EACA,OAAU,CACRF,MAAO,0EACPE,YACE,mSACJ,EACA,OAAU,CACRF,MAAO,yEACPE,YACE,kgBACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,0UACJ,EACA,OAAU,CACRF,MAAO,wEACPE,YACE,0JACJ,EACA,OAAU,CACRF,MAAO,uEACPE,YACE,0JACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,kNACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,oIACJ,EACA,OAAU,CACRF,MAAO,8EACPE,YACE,mRACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,sGACJ,EACA,OAAU,CACRF,MAAO,qEACPE,YACE,wHACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,6FACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,gQACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,qOACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,yIACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,kGACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,4RACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,kSACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,wZACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,6NACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,6bACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,2NACJ,EACA,OAAU,CACRF,MAAO,4DACPE,YACE,oNACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,mIACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,8HACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,uPACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,0GACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,+FACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,8HACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,0SACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,gSACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,8LACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,0QACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,iOACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,wOACJ,EACA,OAAU,CACRF,MAAO,oEACPE,YACE,oZACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,yvBACJ,EACA,OAAU,CACRF,MAAO,kEACPE,YACE,oJACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,4KACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,qGACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,saACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,kSACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,8SACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,+VACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,yNACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,0aACJ,EACA,OAAU,CACRF,MAAO,gFACPE,YACE,iVACJ,EACA,OAAU,CACRF,MACE,8FACFE,YACE,kTACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,8RACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,sZACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,gNACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,+QACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,wPACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,6VACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,gfACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,ueACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,2LACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,sUACJ,EACA,OAAU,CACRF,MAAO,qEACPE,YACE,yoBACJ,EACA,OAAU,CACRF,MAAO,yFACPE,YACE,2QACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,oNACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,qIACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,oLACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,uLACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,6TACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,qHACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,iNACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,uOACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,kKACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,4GACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,8HACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,6LACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,4HACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,oJACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,oZACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,wXACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,iOACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,gMACJ,EACA,OAAU,CACRF,MACE,iGACFE,YACE,utBACJ,EACA,OAAU,CACRF,MAAO,8DACPE,YACE,+UACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,0JACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,sHACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,sLACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,gNACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,2HACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,uGACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,8PACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,yIACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,sLACJ,EACA,OAAU,CACRF,MAAO,iEACPE,YACE,4dACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,oQACJ,EACA,OAAU,CACRF,MAAO,2EACPE,YACE,oOACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,oJACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,0TACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,sUACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,+dACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,sMACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,2aACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,sSACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,+ZACJ,EACA,OAAU,CACRF,MAAO,wFACPE,YACE,0bACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,mPACJ,EACA,OAAU,CACRF,MACE,sHACFE,YACE,mPACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,oLACJ,EACA,OAAU,CACRF,MAAO,gEACPE,YACE,yKACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,+JACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,sSACJ,EACA,OAAU,CACRF,MAAO,8DACPE,YACE,ySACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,+LACJ,EACA,OAAU,CACRF,MAAO,qEACPE,YACE,8JACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,kSACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,uJACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,iSACJ,EACA,OAAU,CACRF,MAAO,mEACPE,YACE,mdACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,gHACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,kQACJ,EACA,OAAU,CACRF,MAAO,qEACPE,YACE,yIACJ,EACA,OAAU,CACRF,MAAO,0EACPE,YACE,oOACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,wNACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,kVACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,kKACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,2RACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,qJACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,8IACJ,EACA,OAAU,CACRF,MAAO,kEACPE,YACE,ggBACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,8hCACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,0VACJ,EACA,OAAU,CACRF,MAAO,0EACPE,YACE,qKACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,ofACJ,EACA,OAAU,CACRF,MAAO,wFACPE,YACE,6YACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,mNACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,4bACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,mTACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,8SACJ,EACA,OAAU,CACRF,MAAO,2EACPE,YACE,oXACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,uMACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,icACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,sTACJ,EACA,OAAU,CACRF,MAAO,gEACPE,YACE,qSACJ,EACA,OAAU,CACRF,MACE,0GACFE,YACE,+XACJ,EACA,OAAU,CACRF,MACE,+FACFE,YACE,sMACJ,EACA,OAAU,CACRF,MACE,yHACFE,YACE,gdACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,4UACJ,EACA,OAAU,CACRF,MAAO,wFACPE,YACE,0VACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,qQACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,iUACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,mmBACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,0YACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,2RACJ,EACA,OAAU,CACRF,MAAO,oFACPE,YACE,sJACJ,EACA,OAAU,CACRF,MAAO,gEACPE,YACE,8WACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,8PACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,kVACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,qVACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,0XACJ,EACA,OAAU,CACRF,MAAO,qDACPE,YACE,sHACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,+KACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,0GACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,+IACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,mJACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,iHACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,oHACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,oSACJ,EACA,OAAU,CACRF,MAAO,2EACPE,YACE,qkBACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,iXACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,0SACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,sPACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,+NACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,wRACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,qeACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,qRACJ,EACA,OAAU,CACRF,MAAO,kEACPE,YACE,yWACJ,EACA,OAAU,CACRF,MAAO,iFACPE,YACE,2KACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,iJACJ,EACA,OAAU,CACRF,MAAO,iEACPE,YACE,gJACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,0JACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,0JACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,sbACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,gYACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,4cACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,mZACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,kNACJ,EACA,OAAU,CACRF,MACE,2FACFE,YACE,+RACJ,EACA,OAAU,CACRF,MAAO,qFACPE,YACE,uVACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,ibACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,yeACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,yUACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,mJACJ,EACA,OAAU,CACRF,MAAO,mEACPE,YACE,uMACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,qQACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,4PACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,4KACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,6TACJ,EACA,OAAU,CACRF,MAAO,kEACPE,YACE,wYACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,icACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,wNACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,2hBACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,2NACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,qdACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,mIACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,kUACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,6ZACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,6WACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,uSACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,4UACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,6KACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,+8BACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,sIACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,kTACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,4TACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,wLACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,wIACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,mHACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,8MACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,2GACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,qIACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,kXACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,uOACJ,EACA,OAAU,CACRF,MAAO,4DACPE,YACE,yNACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,2KACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,oQACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,8KACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,wIACJ,EACA,OAAU,CACRF,MAAO,iEACPE,YACE,wRACJ,EACA,OAAU,CACRF,MAAO,uEACPE,YACE,oPACJ,EACA,OAAU,CACRF,MAAO,gEACPE,YACE,iKACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,maACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,mKACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,gMACJ,EACA,OAAU,CACRF,MAAO,+EACPE,YACE,gMACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,yTACJ,EACA,OAAU,CACRF,MAAO,4EACPE,YACE,6QACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,kOACJ,EACA,OAAU,CACRF,MAAO,iEACPE,YACE,4NACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,gUACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,8PACJ,EACA,OAAU,CACRF,MACE,kGACFE,YACE,+SACJ,EACA,OAAU,CACRF,MACE,2FACFE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,4DACPE,YACE,mSACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,oIACJ,EACA,OAAU,CACRF,MAAO,+EACPE,YACE,mMACJ,EACA,OAAU,CACRF,MAAO,oFACPE,YACE,kKACJ,EACA,OAAU,CACRF,MAAO,4DACPE,YACE,mMACJ,EACA,OAAU,CACRF,MAAO,yFACPE,YACE,0OACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,8NACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,+NACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,gNACJ,EACA,OAAU,CACRF,MAAO,oEACPE,YACE,2ZACJ,EACA,OAAU,CACRF,MAAO,oFACPE,YACE,6LACJ,EACA,OAAU,CACRF,MAAO,oEACPE,YACE,yPACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,2LACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,0SACJ,EACA,OAAU,CACRF,MAAO,0EACPE,YACE,4PACJ,EACA,OAAU,CACRF,MAAO,yDACPE,YACE,wmBACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,kLACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,mJACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,6PACJ,EACA,OAAU,CACRF,MAAO,qDACPE,YACE,mVACJ,EACA,OAAU,CACRF,MAAO,iEACPE,YACE,iNACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,wNACJ,EACA,OAAU,CACRF,MAAO,yDACPE,YACE,uIACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,8IACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,mJACJ,EACA,OAAU,CACRF,MAAO,8DACPE,YACE,6IACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,yKACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,0NACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,yJACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,6KACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,iIACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,miBACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,gXACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,yIACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,sNACJ,EACA,OAAU,CACRF,MAAO,qEACPE,YACE,gOACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,qQACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,mNACJ,EACA,OAAU,CACRF,MACE,6FACFE,YACE,mLACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,2JACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,+NACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,wNACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,wIACJ,EACA,OAAU,CACRF,MAAO,qEACPE,YACE,4LACJ,EACA,OAAU,CACRF,MAAO,gEACPE,YACE,4OACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,kNACJ,EACA,OAAU,CACRF,MAAO,4DACPE,YACE,4nBACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,8bACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,oUACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,wKACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,gRACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,kVACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,8bACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,sQACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,8KACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,0UACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,+GACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,mJACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,8XACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,mOACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,2cACJ,EACA,OAAU,CACRF,MAAO,0EACPE,YACE,+ZACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,6OACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,oIACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,oGACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,0PACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,wJACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,oJACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,uLACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,sQACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,0IACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,mYACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,gVACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,iJACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,6JACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,+oBACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,0hBACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,6YACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,wjBACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,mKACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,wIACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,0TACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,+KACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,oPACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,wXACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,8aACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,4KACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,mXACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,iTACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,qVACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,+PACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,sRACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,2IACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,4NACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,gPACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,qJACJ,EACA,OAAU,CACRF,MAAO,WACPE,YACE,qOACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,wVACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,gLACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,uUACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,0GACJ,EACA,OAAU,CACRF,MAAO,cACPE,YACE,6PACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,sJACJ,EACA,OAAU,CACRF,MAAO,sEACPE,YACE,oKACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,izBACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,0YACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,sYACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,mLACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,sLACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,oXACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,6YACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,qNACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,uIACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,4IACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,qkBACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,kcACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,iMACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,sMACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,iaACJ,EACA,OAAU,CACRF,MAAO,qDACPE,YACE,wXACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,meACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,gRACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,mPACJ,EACA,OAAU,CACRF,MAAO,kEACPE,YACE,2NACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,+QACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,0YACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,6QACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,wUACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,kOACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,6ZACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,yRACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,4KACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,0PACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,wQACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,4pBACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,uGACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,4WACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,wHACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,sKACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,iTACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,+MACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,oOACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,gKACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,yRACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,8KACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,wUACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,0IACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,kJACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,uKACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,oNACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,2OACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,qIACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,0VACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,sIACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,+QACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,8qBACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,qiBACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,gUACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,mYACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,wVACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,+NACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,gMACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,+KACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,kQACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,oMACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,8GACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,0PACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,4OACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,wrBACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,0WACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,wpBACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,wSACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,4ZACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,+bACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,yTACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,kjBACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,wMACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,kSACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,0eACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,6VACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,uVACJ,EACA,OAAU,CACRF,MACE,yGACFE,YACE,2YACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,u0BACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,wXACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,wcACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,yLACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,0SACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,guBACJ,EACA,OAAU,CACRF,MAAO,yFACPE,YACE,kcACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,6uBACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,6eACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,0UACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,sOACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,4KACJ,EACA,OAAU,CACRF,MAAO,kEACPE,YACE,gdACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,uTACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,mWACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,4GACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,gHACJ,EACA,OAAU,CACRF,MAAO,qFACPE,YACE,msBACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,sJACJ,EACA,OAAU,CACRF,MAAO,2EACPE,YACE,wTACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,oNACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,4nBACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,wcACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,4NACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,0SACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,qlBACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,8OACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,8ZACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,kRACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,6VACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,mQACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,kSACJ,EACA,OAAU,CACRF,MAAO,qEACPE,YACE,ySACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,+LACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,2IACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,4HACJ,EACA,OAAU,CACRF,MACE,kGACFE,YACE,0UACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,oVACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,kLACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,gQACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,4VACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,qWACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,2LACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,oPACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,kcACJ,EACA,OAAU,CACRF,MAAO,8DACPE,YACE,wkBACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,uQACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,sMACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,6OACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,+GACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,kHACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,8GACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,uPACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,+IACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,8IACJ,EACA,OAAU,CACRF,MAAO,2EACPE,YACE,gOACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,6NACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,sMACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,uLACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,2LACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,yLACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,oYACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,qmBACJ,EACA,OAAU,CACRF,MAAO,8EACPE,YACE,uMACJ,EACA,OAAU,CACRF,MAAO,gFACPE,YACE,4QACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,kNACJ,EACA,OAAU,CACRF,MAAO,6EACPE,YACE,6mBACJ,EACA,OAAU,CACRF,MAAO,uEACPE,YACE,0OACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,6VACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,2QACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,wkBACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,gQACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,moBACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,6dACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,iXACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,mSACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,oaACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,glBACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,oNACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,+bACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,shBACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,2XACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,yaACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,qsBACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,8lBACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,iiBACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,6NACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,mKACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,kcACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,qSACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,iUACJ,EACA,OAAU,CACRF,MAAO,uEACPE,YACE,uoBACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,mYACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,2VACJ,EACA,OAAU,CACRF,MAAO,oEACPE,YACE,sfACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,4YACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,suBACJ,EACA,OAAU,CACRF,MAAO,qDACPE,YACE,8LACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,mgBACJ,EACA,OAAU,CACRF,MAAO,uEACPE,YACE,spBACJ,EACA,OAAU,CACRF,MACE,qHACFE,YACE,sdACJ,EACA,OAAU,CACRF,MAAO,iEACPE,YACE,+NACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,ieACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,6TACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,gMACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,0IACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,iYACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,qfACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,oXACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,gXACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,gKACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,8JACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,sMACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,yNACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,unBACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,0bACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,2cACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,8ZACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,uXACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,40BACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,oPACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,4qBACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,qXACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,kwBACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,uUACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,2LACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,6lBACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,0YACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,6kBACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,+IACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,4RACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,sNACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,iMACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,yeACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,gLACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,6NACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,icACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,uMACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,8IACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,oKACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,yOACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,8PACJ,EACA,OAAU,CACRF,MAAO,aACPE,YACE,qVACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,+RACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,oLACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,qZACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,qHACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,sOACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,gKACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,oSACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,6cACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,wUACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,oVACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,uQACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,wTACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,sXACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,kOACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,ohBACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,iaACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,2VACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,gLACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,4SACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,kTACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,gvBACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,woBACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,oyBACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,4rBACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,kvBACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,qNACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,6LACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,6KACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,qVACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,uIACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,gNACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,gUACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,wJACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,2GACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,4UACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,iJACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,+cACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,2ZACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,mlBACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,8gBACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,qvBACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,kkBACJ,EACA,OAAU,CACRF,MAAO,4EACPE,YACE,00BACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,saACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,qaACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,gTACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,8eACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,4bACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,6IACJ,EACA,OAAU,CACRF,MAAO,yDACPE,YACE,8mBACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,uiBACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,wQACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,wLACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,odACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,8UACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,2KACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,uTACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,0uBACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,2yBACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,27BACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,2YACJ,EACA,OAAU,CACRF,MAAO,mEACPE,YACE,oVACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,ufACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,ykBACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,+ZACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,+XACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,qTACJ,EACA,OAAU,CACRF,MAAO,yDACPE,YACE,+ZACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,0QACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,gjBACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,kcACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,yoBACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,0NACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,0mBACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,seACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,sfACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,sSACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,oZACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,uLACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,4WACJ,EACA,OAAU,CACRF,MAAO,aACPE,YACE,uOACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,iiBACJ,EACA,OAAU,CACRF,MAAO,2EACPE,YACE,ybACJ,EACA,OAAU,CACRF,MAAO,8EACPE,YACE,8XACJ,EACA,OAAU,CACRF,MAAO,oFACPE,YACE,iaACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,saACJ,EACA,OAAU,CACRF,MAAO,UACPE,YACE,2JACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,oTACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,qIACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,2HACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,wTACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,2IACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,kYACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,6JACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,wYACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,gXACJ,EACA,OAAU,CACRF,MAAO,UACPE,YACE,ySACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,qQACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,6IACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,gSACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,yVACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,whBACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,4XACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,mKACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,gWACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,yfACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,qeACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,4sBACJ,EACA,OAAU,CACRF,MAAO,WACPE,YACE,sdACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,gbACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,sPACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,qYACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,maACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,+bACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,8fACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,6QACJ,EACA,OAAU,CACRF,MAAO,8DACPE,YACE,wMACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,8KACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,mLACJ,EACA,OAAU,CACRF,MAAO,aACPE,YACE,gLACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,kWACJ,EACA,OAAU,CACRF,MAAO,4DACPE,YACE,inBACJ,EACA,OAAU,CACRF,MACE,8GACFE,YACE,iiBACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,gQACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,6OACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,wNACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,wOACJ,EACA,OAAU,CACRF,MAAO,4DACPE,YACE,0cACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,mNACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,iTACJ,EACA,OAAU,CACRF,MAAO,cACPE,YACE,mJACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,wZACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,uMACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,+TACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,4KACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,gaACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,+oBACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,qRACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,mWACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,+KACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,sMACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,qOACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,sLACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,6QACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,yRACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,gUACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,iNACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,8NACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,6qBACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,ueACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,qgBACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,4MACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,yWACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,uWACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,6HACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,0PACJ,EACA,OAAU,CACRF,MACE,kGACFE,YACE,qSACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,gYACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,gQACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,wQACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,+XACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,8QACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,0UACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,qSACJ,EACA,OAAU,CACRF,MAAO,SACPE,YACE,+NACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,8RACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,4IACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,0QACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,kKACJ,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"}